]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
Merge branch 'master' into V9_merge
authorpascale.noyret <pascale.noyret@edf.fr>
Mon, 20 Sep 2021 10:01:54 +0000 (12:01 +0200)
committerpascale.noyret <pascale.noyret@edf.fr>
Mon, 20 Sep 2021 10:01:54 +0000 (12:01 +0200)
rappatriement dans master des modifications faites pour MDM après un 'merge manuel'

799 files changed:
Accas/A_ASSD.py
Accas/A_AU_MOINS_UN.py
Accas/A_AU_PLUS_UN.py
Accas/A_AVANT.py
Accas/A_A_CLASSER.py
Accas/A_BLOC.py
Accas/A_ENSEMBLE.py
Accas/A_ETAPE.py
Accas/A_EVAL.py
Accas/A_EXCLUS.py
Accas/A_FACT.py
Accas/A_FICHIER.py
Accas/A_FORM.py
Accas/A_FORM_ETAPE.py
Accas/A_JDC.py
Accas/A_JDC_CATA.py
Accas/A_MACRO.py
Accas/A_MACRO_ETAPE.py
Accas/A_MCBLOC.py
Accas/A_MCFACT.py
Accas/A_MCLIST.py
Accas/A_MCNUPLET.py
Accas/A_MCSIMP.py
Accas/A_MEME_NOMBRE.py
Accas/A_NUPLET.py
Accas/A_OPER.py
Accas/A_PRESENT_ABSENT.py
Accas/A_PRESENT_PRESENT.py
Accas/A_PROC.py
Accas/A_PROC_ETAPE.py
Accas/A_SALOME_ENTRY.py
Accas/A_SENSIBILITE.py
Accas/A_SIMP.py
Accas/A_TUPLE.py [new file with mode: 0644]
Accas/A_UN_PARMI.py
Accas/__init__.py
Adao/ADAO_Cata_V0_V7_7_0.py [deleted file]
Adao/ADAO_Cata_V0_V8_3_0_DEV.py [deleted file]
Adao/ADAO_Cata_V0_pour_V9_5_0.py [new file with mode: 0644]
Adao/configuration_Adao.py [deleted file]
Adao/exempleGetattr.py [new file with mode: 0755]
Adao/monCode_Cata.py [deleted file]
Adao/prefs.py
Adao/prefs_Adao.py
Adao/qtDico.py
Adao/qtEficas_Adao.py
Carmel3D/CMakeLists.txt [deleted file]
Carmel3D/Carmel3D_Cata_V0.py [deleted file]
Carmel3D/Carmel3D_Cata_frequentiel_V0.py [deleted file]
Carmel3D/Carmel3D_Cata_frequentiel_V1.py [deleted file]
Carmel3D/E24 [deleted file]
Carmel3D/FEV1000 [deleted file]
Carmel3D/FEV470 [deleted file]
Carmel3D/FEV600 [deleted file]
Carmel3D/FEV800 [deleted file]
Carmel3D/HA600 [deleted file]
Carmel3D/M600_65 [deleted file]
Carmel3D/M6X2ISO1 [deleted file]
Carmel3D/M6X_epsilon.mater [deleted file]
Carmel3D/M6X_homog_mu.mater [deleted file]
Carmel3D/M6X_homog_sigma.mater [deleted file]
Carmel3D/M6X_lineaire_mu.mater [deleted file]
Carmel3D/M6X_lineaire_sigma.mater [deleted file]
Carmel3D/M6X_mu.mater [deleted file]
Carmel3D/__init__.py [deleted file]
Carmel3D/ajoutGroupe.py [deleted file]
Carmel3D/configuration_CARMEL3D.py [deleted file]
Carmel3D/materiaux/ACIER_TEAM13 [deleted file]
Carmel3D/materiaux/CMakeLists.txt [deleted file]
Carmel3D/materiaux/E24 [deleted file]
Carmel3D/materiaux/FEV1000 [deleted file]
Carmel3D/materiaux/FEV470 [deleted file]
Carmel3D/materiaux/FEV600 [deleted file]
Carmel3D/materiaux/FEV800 [deleted file]
Carmel3D/materiaux/HA600 [deleted file]
Carmel3D/materiaux/M600_65 [deleted file]
Carmel3D/materiaux/M6X2ISO1 [deleted file]
Carmel3D/materiaux/M6X_epsilon.mater [deleted file]
Carmel3D/materiaux/M6X_homogene_mu.mater [deleted file]
Carmel3D/materiaux/M6X_homogene_sigma.mater [deleted file]
Carmel3D/materiaux/M6X_lineaire_mu.mater [deleted file]
Carmel3D/materiaux/M6X_lineaire_sigma.mater [deleted file]
Carmel3D/materiaux/M6X_mu.mater [deleted file]
Carmel3D/materiaux/M6X_sigma.mater [deleted file]
Carmel3D/materiaux/materiaux.comm [deleted file]
Carmel3D/opsCarmel.py [deleted file]
Carmel3D/prefs.py [deleted file]
Carmel3D/prefs_CARMEL3D.py [deleted file]
Carmel3D/properties.py [deleted file]
Carmel3D/qtEficas_Carmel3D.py [deleted file]
Carmel3D/style.py [deleted file]
CatasDeTests/.b.py.swp [new file with mode: 0644]
CatasDeTests/.cataMemesNoms.py.swp [new file with mode: 0644]
CatasDeTests/.cataSimple_driver.xsd.swp [new file with mode: 0644]
CatasDeTests/.cataTesteDelete.py.swp [new file with mode: 0644]
CatasDeTests/ReadMe.txt [new file with mode: 0644]
CatasDeTests/cataListes.py [new file with mode: 0644]
CatasDeTests/cata_1.py [new file with mode: 0644]
CatasDeTests/cata_1.xsd [new file with mode: 0644]
CatasDeTests/cata_FactFreresMemesNoms.py [new file with mode: 0644]
CatasDeTests/cata_FactFreresMemesNomsV1_ref.xsd [new file with mode: 0644]
CatasDeTests/cata_FactFreresMemesNoms_driver.py [new file with mode: 0644]
CatasDeTests/cata_FactFreresMemesNoms_ref.xsd [new file with mode: 0644]
CatasDeTests/cata_UserAssd.py [new file with mode: 0644]
CatasDeTests/cata_UserAssd.xsd [new file with mode: 0644]
CatasDeTests/cata_UserAssd.xsd_ref [new file with mode: 0644]
CatasDeTests/cata_UserAssd2.xsd [new file with mode: 0644]
CatasDeTests/cata_UserAssd2_driver.py [new file with mode: 0644]
CatasDeTests/cata_UserAssd_driver.py [new file with mode: 0644]
CatasDeTests/decorateur/metier.py [new file with mode: 0644]
CatasDeTests/exemple.xml [new file with mode: 0644]
CatasDeTests/generateXML.py [new file with mode: 0755]
CatasDeTests/generateXSD.py [new file with mode: 0755]
CatasDeTests/prefs.py [new file with mode: 0644]
CatasDeTests/prefs_Essai.py [new file with mode: 0644]
CatasDeTests/qtEficasEssai.py [new file with mode: 0755]
CatasDeTests/raw/__init__.py [new file with mode: 0644]
CatasDeTests/raw/cata_FactFreresMemesNoms_driver.py [new file with mode: 0644]
CatasDeTests/raw/cata_UserAssd2_driver.py [new file with mode: 0644]
CatasDeTests/raw/cata_UserAssd_driver.py [new file with mode: 0644]
CatasDeTests/raw/toto.py [new file with mode: 0644]
CatasDeTests/ref/cata_Vimmp_genere.xsd [new file with mode: 0644]
CatasDeTests/ref/cata_gromacs_genere.xsd [new file with mode: 0644]
Editeur/Eficas_utils.py
Editeur/Objecttreeitem.py
Editeur/TroisDPal.py
Editeur/__init__.py
Editeur/analyse_catalogue.py
Editeur/analyse_catalogue_initial.py
Editeur/autre_analyse_cata.py
Editeur/basestyle.py
Editeur/cata2Xml.py
Editeur/catadesc.py
Editeur/chercheBlocInto.py
Editeur/chercheNbElem.py
Editeur/comploader.py
Editeur/fontes.py
Editeur/icons/ast-green-dark-ball.png [new file with mode: 0644]
Editeur/import_code.py
Editeur/listePatrons.py
Editeur/session.py
Editeur/styles.py
Editeur/uiinfo.py
Efi2Xsd/AccasXsd.py
Efi2Xsd/MCAccasXML.py [new file with mode: 0755]
Efi2Xsd/MCAccasXsd.py [deleted file]
Efi2Xsd/__init__.py
Efi2Xsd/ajoutBalise.py [new file with mode: 0644]
Efi2Xsd/balises.py
Efi2Xsd/balisesXSD.py [new file with mode: 0644]
Efi2Xsd/introspect.py
Efi2Xsd/mapDesTypes.py
Efi2Xsd/readerEfiXsd.py
EssaiInit/Cata_MED_FAM.xml [deleted file]
EssaiInit/Cata_MED_FAM.xml.mini [deleted file]
EssaiInit/Cata_MED_FAM.xml.origin [deleted file]
EssaiInit/README.txt [deleted file]
EssaiInit/aide1 [deleted file]
EssaiInit/efficas.py [deleted file]
EssaiInit/model.xsd [deleted file]
EssaiInit/raw/__init__.py [deleted file]
EssaiInit/raw/efficas.py [deleted file]
EssaiInit/readerEfficas.py [deleted file]
Extensions/commande_comm.py
Extensions/commentaire.py
Extensions/eficas_exception.py
Extensions/etape_niveau.py
Extensions/interpreteur_formule.py
Extensions/jdc.py
Extensions/jdc_include.py
Extensions/localisation.py
Extensions/mcnuplet.py
Extensions/niveau.py
Extensions/nuplet.py
Extensions/param2.py
Extensions/parametre.py
Extensions/parametre_eval.py
Extensions/pluginloader.py
Extensions/translationQT5.py
Ihm/CONNECTOR.py
Ihm/I_ASSD.py
Ihm/I_AVANT.py
Ihm/I_A_CLASSER.py
Ihm/I_ENTITE.py
Ihm/I_ETAPE.py
Ihm/I_EVAL.py
Ihm/I_EXCLUS.py
Ihm/I_FICHIER.py
Ihm/I_FONCTION.py
Ihm/I_FORM_ETAPE.py
Ihm/I_JDC.py
Ihm/I_JDC_CATA.py
Ihm/I_LASSD.py
Ihm/I_MACRO_ETAPE.py
Ihm/I_MCBLOC.py
Ihm/I_MCCOMPO.py
Ihm/I_MCFACT.py
Ihm/I_MCLIST.py
Ihm/I_MCSIMP.py
Ihm/I_OBJECT.py
Ihm/I_PRESENT_ABSENT.py
Ihm/I_PRESENT_PRESENT.py
Ihm/I_PROC_ETAPE.py
Ihm/I_REGLE.py
Ihm/I_TUPLE.py [new file with mode: 0644]
Ihm/I_UN_PARMI.py
Ihm/I_VALIDATOR.py
InterfaceQT4/aiemonWidgetPlusieursBase.py [deleted file]
InterfaceQT4/bizarreEditorDu5aout.py [deleted file]
InterfaceQT4/browser.py
InterfaceQT4/compobloc.py
InterfaceQT4/compocomm.py
InterfaceQT4/compocommandecomm.py
InterfaceQT4/compofact.py
InterfaceQT4/compoformule.py
InterfaceQT4/compojdc.py
InterfaceQT4/compomacro.py
InterfaceQT4/compomclist.py
InterfaceQT4/compooper.py
InterfaceQT4/compoparam.py
InterfaceQT4/compoproc.py
InterfaceQT4/composimp.py
InterfaceQT4/configuration.py
InterfaceQT4/editor.pourCIST [deleted file]
InterfaceQT4/editor.py
InterfaceQT4/editorJuillet.py [deleted file]
InterfaceQT4/editorSsIhm.py [changed mode: 0644->0755]
InterfaceQT4/eficas_go.py
InterfaceQT4/feuille.py
InterfaceQT4/gereIcones.py
InterfaceQT4/gereListe.py
InterfaceQT4/gereListeAvril11.py
InterfaceQT4/gereRegles.py
InterfaceQT4/gereTraduction.py
InterfaceQT4/getVersion.py
InterfaceQT4/groupe.py
InterfaceQT4/monBoutonValide.py
InterfaceQT4/monChoixCata.py
InterfaceQT4/monChoixCode.py
InterfaceQT4/monChoixCommande.py
InterfaceQT4/monChoixLangue.py
InterfaceQT4/monFonctionPanel.py
InterfaceQT4/monGroupeOptionnel.py
InterfaceQT4/monLabelClic.py
InterfaceQT4/monLayoutBouton.py
InterfaceQT4/monRecherche.py
InterfaceQT4/monRechercheCatalogue.py
InterfaceQT4/monSelectVal.py
InterfaceQT4/monViewRegles.py
InterfaceQT4/monViewTexte.py
InterfaceQT4/monVisu.py
InterfaceQT4/monWidget4a6RadioButton.py
InterfaceQT4/monWidget4a6RadioButtonSD.py
InterfaceQT4/monWidgetBloc.py
InterfaceQT4/monWidgetCB.py
InterfaceQT4/monWidgetCBIntoSug.py
InterfaceQT4/monWidgetCBSD.py
InterfaceQT4/monWidgetCommande.py
InterfaceQT4/monWidgetCommandeDeplie1Niveau.py
InterfaceQT4/monWidgetCommentaire.py
InterfaceQT4/monWidgetCreeParam.py
InterfaceQT4/monWidgetCreeUserAssd.py [new file with mode: 0644]
InterfaceQT4/monWidgetDate.py
InterfaceQT4/monWidgetFact.py
InterfaceQT4/monWidgetFactPlie.py
InterfaceQT4/monWidgetFormule.py
InterfaceQT4/monWidgetHeure.py
InterfaceQT4/monWidgetInactif.py
InterfaceQT4/monWidgetInfo.py
InterfaceQT4/monWidgetIntoSug.py
InterfaceQT4/monWidgetMatrice.py
InterfaceQT4/monWidgetNiveauFact.py
InterfaceQT4/monWidgetOptionnel.py
InterfaceQT4/monWidgetParam.py
InterfaceQT4/monWidgetPlusieursASSDIntoOrdonne.py
InterfaceQT4/monWidgetPlusieursBase.py
InterfaceQT4/monWidgetPlusieursCreeUserAssd.py [new file with mode: 0644]
InterfaceQT4/monWidgetPlusieursInto.py
InterfaceQT4/monWidgetPlusieursIntoOrdonne.py
InterfaceQT4/monWidgetPlusieursPlie.py
InterfaceQT4/monWidgetPlusieursTuple.py
InterfaceQT4/monWidgetPlusieursTuple2.py [deleted file]
InterfaceQT4/monWidgetPlusieursTuple3.py [deleted file]
InterfaceQT4/monWidgetPlusieursTupleAvril11.py [deleted file]
InterfaceQT4/monWidgetPlusieursTupleN.py
InterfaceQT4/monWidgetRadioButton.py
InterfaceQT4/monWidgetSDCOInto.py
InterfaceQT4/monWidgetSimpBase.py
InterfaceQT4/monWidgetSimpBool.py
InterfaceQT4/monWidgetSimpComplexe.py
InterfaceQT4/monWidgetSimpFichier.py
InterfaceQT4/monWidgetSimpSalome.py
InterfaceQT4/monWidgetSimpTuple.py
InterfaceQT4/monWidgetSimpTuple2.py [deleted file]
InterfaceQT4/monWidgetSimpTuple3.py [deleted file]
InterfaceQT4/monWidgetSimpTupleN.py
InterfaceQT4/monWidgetSimpTxt.py
InterfaceQT4/monWidgetTableau.py
InterfaceQT4/monWidgetUniqueSDCO.py
InterfaceQT4/monWidgetVide.py
InterfaceQT4/politiquesValidation.py
InterfaceQT4/qtEficas.py
InterfaceQT4/qtEficasSsIhm.py
InterfaceQT4/qtEficas_with_log.py [deleted file]
InterfaceQT4/qtSaisie.py
InterfaceQT4/readercata.py
InterfaceQT4/readercataXML.py
InterfaceQT4/ssIhm.py
InterfaceQT4/typeNode.py
InterfaceQT4/viewManager.py
InterfaceQT4/viewManagerSsIhm.py
MAP/configuration_MAP.py
MAP/prefs.py
MAP/prefs_MAP.py
MAP/qtEficas_map.py
MAP/style.py
MED/CataAZ.py [deleted file]
MED/Elementary_Lists_52996_Cata.py [deleted file]
MED/Elementary_Lists_53000_Cata.py [deleted file]
MED/Elementary_Lists_53013_Cata.py [deleted file]
MED/Elementary_Lists_53036_Cata.py [deleted file]
MED/Elementary_Lists_Cata.py [deleted file]
MED/Global_Condition_Cata.py [deleted file]
MED/Many_Concepts_52983_Cata.py [deleted file]
MED/Many_Concepts_52988_Cata.py [deleted file]
MED/Many_Concepts_52989_Cata.py [deleted file]
MED/Many_Concepts_52992_Cata.py [deleted file]
MED/Matrix_Cata.py [deleted file]
MED/Nested_Cond_52945_Cata.py [deleted file]
MED/Nested_Cond_52946_Cata.py [deleted file]
MED/Nested_Cond_52947_Cata.py [deleted file]
MED/Nested_Cond_52948_Cata.py [deleted file]
MED/Nested_Cond_52949_Cata.py [deleted file]
MED/Nested_Cond_52952_Cata.py [deleted file]
MED/Separate_Blocks_52958_Cata.py [deleted file]
MED/Separate_Blocks_52963_Cata.py [deleted file]
MED/Separate_Blocks_52966_Cata.py [deleted file]
MED/Separate_Blocks_52972_Cata.py [deleted file]
MED/Separate_Blocks_52975_Cata.py [deleted file]
MED/a [deleted file]
MED/cata_diapo.py [deleted file]
MED/cata_med.py [deleted file]
MED/configuration_MED.py [deleted file]
MED/images/essaiAster.png [deleted file]
MED/items_integer_space.txt [deleted file]
MED/monCode_qtEficas.py [deleted file]
MED/prefs.py [deleted file]
MED/prefs_MED.py [deleted file]
MED/prefs_monCode.py [deleted file]
MED/properties.py [deleted file]
MED/qtEficas_AZ.py [deleted file]
MED/qtEficas_Med.py [deleted file]
MED/typescript [deleted file]
Noyau/N_ASSD.py
Noyau/N_BLOC.py
Noyau/N_CO.py
Noyau/N_CONVERT.py
Noyau/N_CR.py
Noyau/N_ENTITE.py
Noyau/N_ETAPE.py
Noyau/N_Exception.py
Noyau/N_FACT.py
Noyau/N_FONCTION.py
Noyau/N_GEOM.py
Noyau/N_JDC.py
Noyau/N_JDC_CATA.py
Noyau/N_MACRO.py
Noyau/N_MACRO_ETAPE.py
Noyau/N_MCBLOC.py
Noyau/N_MCCOMPO.py
Noyau/N_MCFACT.py
Noyau/N_MCLIST.py
Noyau/N_MCSIMP.py
Noyau/N_OBJECT.py
Noyau/N_OPER.py
Noyau/N_OPS.py
Noyau/N_PROC.py
Noyau/N_REGLE.py
Noyau/N_SENSIBILITE.py
Noyau/N_SIMP.py
Noyau/N_TUPLE.py [new file with mode: 0644]
Noyau/N_UserASSD.py [new file with mode: 0644]
Noyau/N_UserASSDMultiple.py [new file with mode: 0644]
Noyau/N_VALIDATOR.py
Noyau/N__F.py
Noyau/N_utils.py
Noyau/__init__.py
Noyau/context.py
Noyau/nommage.py
Noyau/strfunc.py
OldCodes/Aster/__init__.py
OldCodes/Aster/configuration_ASTER.py
OldCodes/Aster/prefs.py
OldCodes/Aster/prefs_ASTER.py
OldCodes/Aster/properties.py
OldCodes/Aster/qtEficas_aster.py
OldCodes/Aster/qtGroup.py
OldCodes/Aster/style.py
OldCodes/Carmel3D/CMakeLists.txt [new file with mode: 0644]
OldCodes/Carmel3D/Carmel3D_Cata_V0.py [new file with mode: 0644]
OldCodes/Carmel3D/Carmel3D_Cata_frequentiel_V0.py [new file with mode: 0755]
OldCodes/Carmel3D/Carmel3D_Cata_frequentiel_V1.py [new file with mode: 0644]
OldCodes/Carmel3D/E24 [new file with mode: 0644]
OldCodes/Carmel3D/FEV1000 [new file with mode: 0644]
OldCodes/Carmel3D/FEV470 [new file with mode: 0644]
OldCodes/Carmel3D/FEV600 [new file with mode: 0644]
OldCodes/Carmel3D/FEV800 [new file with mode: 0644]
OldCodes/Carmel3D/HA600 [new file with mode: 0644]
OldCodes/Carmel3D/M600_65 [new file with mode: 0644]
OldCodes/Carmel3D/M6X2ISO1 [new file with mode: 0644]
OldCodes/Carmel3D/M6X_epsilon.mater [new file with mode: 0644]
OldCodes/Carmel3D/M6X_homog_mu.mater [new file with mode: 0644]
OldCodes/Carmel3D/M6X_homog_sigma.mater [new file with mode: 0644]
OldCodes/Carmel3D/M6X_lineaire_mu.mater [new file with mode: 0644]
OldCodes/Carmel3D/M6X_lineaire_sigma.mater [new file with mode: 0644]
OldCodes/Carmel3D/M6X_mu.mater [new file with mode: 0644]
OldCodes/Carmel3D/__init__.py [new file with mode: 0644]
OldCodes/Carmel3D/ajoutGroupe.py [new file with mode: 0644]
OldCodes/Carmel3D/configuration_CARMEL3D.py [new file with mode: 0644]
OldCodes/Carmel3D/materiaux/ACIER_TEAM13 [new file with mode: 0644]
OldCodes/Carmel3D/materiaux/CMakeLists.txt [new file with mode: 0644]
OldCodes/Carmel3D/materiaux/E24 [new file with mode: 0644]
OldCodes/Carmel3D/materiaux/FEV1000 [new file with mode: 0644]
OldCodes/Carmel3D/materiaux/FEV470 [new file with mode: 0644]
OldCodes/Carmel3D/materiaux/FEV600 [new file with mode: 0644]
OldCodes/Carmel3D/materiaux/FEV800 [new file with mode: 0644]
OldCodes/Carmel3D/materiaux/HA600 [new file with mode: 0644]
OldCodes/Carmel3D/materiaux/M600_65 [new file with mode: 0644]
OldCodes/Carmel3D/materiaux/M6X2ISO1 [new file with mode: 0644]
OldCodes/Carmel3D/materiaux/M6X_epsilon.mater [new file with mode: 0644]
OldCodes/Carmel3D/materiaux/M6X_homogene_mu.mater [new file with mode: 0644]
OldCodes/Carmel3D/materiaux/M6X_homogene_sigma.mater [new file with mode: 0644]
OldCodes/Carmel3D/materiaux/M6X_lineaire_mu.mater [new file with mode: 0644]
OldCodes/Carmel3D/materiaux/M6X_lineaire_sigma.mater [new file with mode: 0644]
OldCodes/Carmel3D/materiaux/M6X_mu.mater [new file with mode: 0644]
OldCodes/Carmel3D/materiaux/M6X_sigma.mater [new file with mode: 0644]
OldCodes/Carmel3D/materiaux/materiaux.comm [new file with mode: 0644]
OldCodes/Carmel3D/opsCarmel.py [new file with mode: 0644]
OldCodes/Carmel3D/prefs.py [new file with mode: 0644]
OldCodes/Carmel3D/prefs_CARMEL3D.py [new file with mode: 0644]
OldCodes/Carmel3D/properties.py [new file with mode: 0644]
OldCodes/Carmel3D/qtEficas_Carmel3D.py [new file with mode: 0755]
OldCodes/Carmel3D/style.py [new file with mode: 0644]
OldCodes/CarmelCND/prefs.py
OldCodes/CarmelCND/qtEficas_CarmelCND.py
OldCodes/CarmelCS/prefs.py
OldCodes/CarmelCS/qtEficas_CarmelCS.py
OldCodes/MED/CataAZ.py [new file with mode: 0755]
OldCodes/MED/Elementary_Lists_52996_Cata.py [new file with mode: 0644]
OldCodes/MED/Elementary_Lists_53000_Cata.py [new file with mode: 0644]
OldCodes/MED/Elementary_Lists_53013_Cata.py [new file with mode: 0644]
OldCodes/MED/Elementary_Lists_53036_Cata.py [new file with mode: 0644]
OldCodes/MED/Elementary_Lists_Cata.py [new file with mode: 0755]
OldCodes/MED/Global_Condition_Cata.py [new file with mode: 0755]
OldCodes/MED/Many_Concepts_52983_Cata.py [new file with mode: 0644]
OldCodes/MED/Many_Concepts_52988_Cata.py [new file with mode: 0644]
OldCodes/MED/Many_Concepts_52989_Cata.py [new file with mode: 0644]
OldCodes/MED/Many_Concepts_52992_Cata.py [new file with mode: 0644]
OldCodes/MED/Matrix_Cata.py [new file with mode: 0644]
OldCodes/MED/Nested_Cond_52945_Cata.py [new file with mode: 0644]
OldCodes/MED/Nested_Cond_52946_Cata.py [new file with mode: 0644]
OldCodes/MED/Nested_Cond_52947_Cata.py [new file with mode: 0644]
OldCodes/MED/Nested_Cond_52948_Cata.py [new file with mode: 0644]
OldCodes/MED/Nested_Cond_52949_Cata.py [new file with mode: 0644]
OldCodes/MED/Nested_Cond_52952_Cata.py [new file with mode: 0644]
OldCodes/MED/Separate_Blocks_52958_Cata.py [new file with mode: 0644]
OldCodes/MED/Separate_Blocks_52963_Cata.py [new file with mode: 0644]
OldCodes/MED/Separate_Blocks_52966_Cata.py [new file with mode: 0644]
OldCodes/MED/Separate_Blocks_52972_Cata.py [new file with mode: 0644]
OldCodes/MED/Separate_Blocks_52975_Cata.py [new file with mode: 0644]
OldCodes/MED/a [new file with mode: 0644]
OldCodes/MED/cata_diapo.py [new file with mode: 0644]
OldCodes/MED/cata_med.py [new file with mode: 0644]
OldCodes/MED/configuration_MED.py [new file with mode: 0644]
OldCodes/MED/images/essaiAster.png [new file with mode: 0644]
OldCodes/MED/items_integer_space.txt [new file with mode: 0644]
OldCodes/MED/monCode_qtEficas.py [new file with mode: 0755]
OldCodes/MED/prefs.py [new file with mode: 0644]
OldCodes/MED/prefs_MED.py [new file with mode: 0644]
OldCodes/MED/prefs_monCode.py [new file with mode: 0644]
OldCodes/MED/properties.py [new file with mode: 0644]
OldCodes/MED/qtEficas_AZ.py [new file with mode: 0755]
OldCodes/MED/qtEficas_Med.py [new file with mode: 0755]
OldCodes/MED/typescript [new file with mode: 0644]
OldCodes/Med/Cata_MED_FAM.xml [new file with mode: 0755]
OldCodes/Med/Cata_MED_FAM.xml.mini [new file with mode: 0755]
OldCodes/Med/Cata_MED_FAM.xml.origin [new file with mode: 0755]
OldCodes/Med/README.txt [new file with mode: 0644]
OldCodes/Med/aide1 [new file with mode: 0644]
OldCodes/Med/efficas.py [new file with mode: 0644]
OldCodes/Med/model.xsd [new file with mode: 0755]
OldCodes/Med/raw/__init__.py [new file with mode: 0644]
OldCodes/Med/raw/efficas.py [new file with mode: 0644]
OldCodes/Med/readerEfficas.py [new file with mode: 0755]
OldCodes/Openturns_Study/OpenTURNS_Cata_Study_V8.py
OldCodes/Openturns_Study/configuration_OPENTURNS_STUDY.py
OldCodes/Openturns_Study/opsOT.py
OldCodes/Openturns_Study/prefs.py
OldCodes/Openturns_Study/qtEficas_openturns_study.py
OldCodes/Openturns_Wrapper/OpenTURNS_Cata_Wrapper_V4.py
OldCodes/Openturns_Wrapper/configuration_OPENTURNS_WRAPPER.py
OldCodes/Openturns_Wrapper/prefs.py
OldCodes/PSEN_Eficas/ExtractGeneratorLoadLineandTransfoDico.py [new file with mode: 0755]
OldCodes/PSEN_Eficas/ExtractGeneratorandLoadList.py [new file with mode: 0755]
OldCodes/PSEN_Eficas/PSEN/PSEN_GUI.py [new file with mode: 0755]
OldCodes/PSEN_Eficas/PSEN/PSSEWrapper.py [new file with mode: 0755]
OldCodes/PSEN_Eficas/PSEN/__init__.py [new file with mode: 0755]
OldCodes/PSEN_Eficas/PSEN/exploit2.ows [new file with mode: 0755]
OldCodes/PSEN_Eficas/PSEN/support_functions.py [new file with mode: 0755]
OldCodes/PSEN_Eficas/PSEN_Cata.py [new file with mode: 0644]
OldCodes/PSEN_Eficas/configuration_PSEN.py [new file with mode: 0755]
OldCodes/PSEN_Eficas/mesScripts.py [new file with mode: 0755]
OldCodes/PSEN_Eficas/mesScripts_PSEN.py [new file with mode: 0644]
OldCodes/PSEN_Eficas/opsPSEN.py [new file with mode: 0755]
OldCodes/PSEN_Eficas/prefs.py [new file with mode: 0755]
OldCodes/PSEN_Eficas/prefs_PSEN.py [new file with mode: 0755]
OldCodes/PSEN_Eficas/properties.py [new file with mode: 0755]
OldCodes/PSEN_Eficas/qtEficas_PSEN.py [new file with mode: 0755]
OldCodes/PSEN_N1/PSEN_Cata_N1.py
OldCodes/PSEN_N1/opsPSEN_N1.py
OldCodes/PSEN_N1/prefs.py
OldCodes/PSEN_N1/qtEficas_PSEN_N1.py
OldCodes/ProcessOutputs_Eficas/EssaiMulti.py [new file with mode: 0755]
OldCodes/ProcessOutputs_Eficas/ExtractGeneratorLoadLineandTransfoDico.py [new file with mode: 0644]
OldCodes/ProcessOutputs_Eficas/ExtractGeneratorLoadLineandTransfoDicoProcess.py [new file with mode: 0644]
OldCodes/ProcessOutputs_Eficas/PSEN_Cata_N1.py [new file with mode: 0644]
OldCodes/ProcessOutputs_Eficas/PSEN_Cata_N1.py.ok [new file with mode: 0644]
OldCodes/ProcessOutputs_Eficas/ProcessOutputs_Cata.py [new file with mode: 0644]
OldCodes/ProcessOutputs_Eficas/configuration_PSEN_N1.py [new file with mode: 0644]
OldCodes/ProcessOutputs_Eficas/mesScripts_PSEN_N1.py [new file with mode: 0644]
OldCodes/ProcessOutputs_Eficas/opsPSEN_N1.py [new file with mode: 0644]
OldCodes/ProcessOutputs_Eficas/prefs.py [new file with mode: 0644]
OldCodes/ProcessOutputs_Eficas/prefs_PSEN_N1.py [new file with mode: 0644]
OldCodes/ProcessOutputs_Eficas/properties.py [new file with mode: 0644]
OldCodes/ProcessOutputs_Eficas/qtEficas_PSEN_N1.py [new file with mode: 0755]
OldCodes/SPECA/SPECA_Cata_V1.py [new file with mode: 0644]
OldCodes/SPECA/SPECA_Cata_V2016.py [new file with mode: 0644]
OldCodes/SPECA/SPECA_Cata_V2_00.py [new file with mode: 0644]
OldCodes/SPECA/configuration_SPECA.py [new file with mode: 0644]
OldCodes/SPECA/prefs.py [new file with mode: 0644]
OldCodes/SPECA/prefs_SPECA.py [new file with mode: 0644]
OldCodes/SPECA/properties.py [new file with mode: 0644]
OldCodes/SPECA/qtEficasSPECA.py [new file with mode: 0755]
OldCodes/Sep/SEP_Cata_V1_4.py
OldCodes/Sep/__init__.py
OldCodes/Sep/configuration_SEP.py
OldCodes/Sep/prefs.py
OldCodes/Sep/prefs_SEP.py
OldCodes/Sep/qtEficas_SEP.py
OldCodes/Tests/CataAZ.py [new file with mode: 0755]
OldCodes/Tests/Elementary_Lists_52996_Cata.py [new file with mode: 0644]
OldCodes/Tests/Elementary_Lists_53000_Cata.py [new file with mode: 0644]
OldCodes/Tests/Elementary_Lists_53013_Cata.py [new file with mode: 0644]
OldCodes/Tests/Elementary_Lists_53036_Cata.py [new file with mode: 0644]
OldCodes/Tests/Elementary_Lists_Cata.py [new file with mode: 0755]
OldCodes/Tests/Global_Condition_Cata.py [new file with mode: 0755]
OldCodes/Tests/Many_Concepts_52983_Cata.py [new file with mode: 0644]
OldCodes/Tests/Many_Concepts_52988_Cata.py [new file with mode: 0644]
OldCodes/Tests/Many_Concepts_52989_Cata.py [new file with mode: 0644]
OldCodes/Tests/Many_Concepts_52992_Cata.py [new file with mode: 0644]
OldCodes/Tests/Matrix_Cata.py [new file with mode: 0644]
OldCodes/Tests/Nested_Cond_52945_Cata.py [new file with mode: 0644]
OldCodes/Tests/Nested_Cond_52946_Cata.py [new file with mode: 0644]
OldCodes/Tests/Nested_Cond_52947_Cata.py [new file with mode: 0644]
OldCodes/Tests/Nested_Cond_52948_Cata.py [new file with mode: 0644]
OldCodes/Tests/Nested_Cond_52949_Cata.py [new file with mode: 0644]
OldCodes/Tests/Nested_Cond_52952_Cata.py [new file with mode: 0644]
OldCodes/Tests/Separate_Blocks_52958_Cata.py [new file with mode: 0644]
OldCodes/Tests/Separate_Blocks_52963_Cata.py [new file with mode: 0644]
OldCodes/Tests/Separate_Blocks_52966_Cata.py [new file with mode: 0644]
OldCodes/Tests/Separate_Blocks_52972_Cata.py [new file with mode: 0644]
OldCodes/Tests/Separate_Blocks_52975_Cata.py [new file with mode: 0644]
OldCodes/Tests/a [new file with mode: 0644]
OldCodes/Tests/cata_diapo.py [new file with mode: 0644]
OldCodes/Tests/cata_med.py [new file with mode: 0644]
OldCodes/Tests/configuration_MED.py [new file with mode: 0644]
OldCodes/Tests/images/essaiAster.png [new file with mode: 0644]
OldCodes/Tests/items_integer_space.txt [new file with mode: 0644]
OldCodes/Tests/monCode_qtEficas.py [new file with mode: 0755]
OldCodes/Tests/prefs.py [new file with mode: 0644]
OldCodes/Tests/prefs_MED.py [new file with mode: 0644]
OldCodes/Tests/prefs_monCode.py [new file with mode: 0644]
OldCodes/Tests/properties.py [new file with mode: 0644]
OldCodes/Tests/qtEficas_AZ.py [new file with mode: 0755]
OldCodes/Tests/qtEficas_Med.py [new file with mode: 0755]
OldCodes/Tests/typescript [new file with mode: 0644]
OldCodes/ZCracks/prefs.py
OldCodes/ZCracks/qtEficas_ZCracks.py
OldCodes/boundary_conditions/CMakeLists.txt [new file with mode: 0644]
OldCodes/boundary_conditions/__init__.py [new file with mode: 0644]
OldCodes/boundary_conditions/appli.py [new file with mode: 0644]
OldCodes/boundary_conditions/boundary_conditions_cata.py [new file with mode: 0644]
OldCodes/boundary_conditions/configuration_boundary_conditions.py [new file with mode: 0644]
OldCodes/boundary_conditions/generator_boundary_conditions.py [new file with mode: 0644]
OldCodes/boundary_conditions/prefs.py [new file with mode: 0644]
OldCodes/boundary_conditions/prefs_boundary_conditions.py [new file with mode: 0644]
OldCodes/ts/prefs.py
PSEN_Eficas/ExtractGeneratorLoadLineandTransfoDico.py [deleted file]
PSEN_Eficas/ExtractGeneratorandLoadList.py [deleted file]
PSEN_Eficas/PSEN/PSEN_GUI.py [deleted file]
PSEN_Eficas/PSEN/PSSEWrapper.py [deleted file]
PSEN_Eficas/PSEN/__init__.py [deleted file]
PSEN_Eficas/PSEN/exploit2.ows [deleted file]
PSEN_Eficas/PSEN/support_functions.py [deleted file]
PSEN_Eficas/PSEN_Cata.py [deleted file]
PSEN_Eficas/configuration_PSEN.py [deleted file]
PSEN_Eficas/mesScripts.py [deleted file]
PSEN_Eficas/mesScripts_PSEN.py [deleted file]
PSEN_Eficas/opsPSEN.py [deleted file]
PSEN_Eficas/prefs.py [deleted file]
PSEN_Eficas/prefs_PSEN.py [deleted file]
PSEN_Eficas/properties.py [deleted file]
PSEN_Eficas/qtEficas_PSEN.py [deleted file]
ProcessOutputs_Eficas/EssaiMulti.py [deleted file]
ProcessOutputs_Eficas/ExtractGeneratorLoadLineandTransfoDico.py [deleted file]
ProcessOutputs_Eficas/ExtractGeneratorLoadLineandTransfoDicoProcess.py [deleted file]
ProcessOutputs_Eficas/PSEN_Cata_N1.py [deleted file]
ProcessOutputs_Eficas/PSEN_Cata_N1.py.ok [deleted file]
ProcessOutputs_Eficas/ProcessOutputs_Cata.py [deleted file]
ProcessOutputs_Eficas/configuration_PSEN_N1.py [deleted file]
ProcessOutputs_Eficas/mesScripts_PSEN_N1.py [deleted file]
ProcessOutputs_Eficas/opsPSEN_N1.py [deleted file]
ProcessOutputs_Eficas/prefs.py [deleted file]
ProcessOutputs_Eficas/prefs_PSEN_N1.py [deleted file]
ProcessOutputs_Eficas/properties.py [deleted file]
ProcessOutputs_Eficas/qtEficas_PSEN_N1.py [deleted file]
SPECA/SPECA_Cata_V1.py [deleted file]
SPECA/SPECA_Cata_V2016.py [deleted file]
SPECA/SPECA_Cata_V2_00.py [deleted file]
SPECA/configuration_SPECA.py [deleted file]
SPECA/prefs.py [deleted file]
SPECA/prefs_SPECA.py [deleted file]
SPECA/properties.py [deleted file]
SPECA/qtEficasSPECA.py [deleted file]
Telemac/mascaret/CMakeLists.txt [new file with mode: 0644]
Telemac/mascaret/__init__.py [new file with mode: 0644]
Telemac/mascaret/appli.py [new file with mode: 0644]
Telemac/mascaret/configuration_mascaret.py [new file with mode: 0644]
Telemac/mascaret/mascaret_V7_cata.py [new file with mode: 0644]
Telemac/mascaret/prefs.py [new file with mode: 0644]
Telemac/mascaret/prefs_mascaret.py [new file with mode: 0644]
Telemac/transforme/ReadMe [deleted file]
Telemac/transforme/reEcrittsEn.py [deleted file]
Telemac/transforme/reEcrittsFr.py [deleted file]
Tests/HTMLTestRunner.py [deleted file]
Traducteur/__init__.py
Traducteur/calcG.py
Traducteur/changeValeur.py
Traducteur/dictErreurs.py
Traducteur/inseremocle.py
Traducteur/load.py
Traducteur/log.py
Traducteur/mocles.py
Traducteur/movemocle.py
Traducteur/parseur.py
Traducteur/regles.py
Traducteur/removemocle.py
Traducteur/renamemocle.py
Traducteur/toto.comm [deleted file]
Traducteur/traduitV10V11.py
Traducteur/traduitV11V12.py
Traducteur/traduitV7V8.py
Traducteur/traduitV8V9.py
Traducteur/traduitV9V10.py
Traducteur/utils.py
Traducteur/visiteur.py
UiQT5/GNUmakefile [new file with mode: 0644]
UiQT5/Tuple10.ui
UiQT5/Tuple2.ui
UiQT5/Tuple3.ui
UiQT5/Tuple4.ui
UiQT5/Tuple5.ui
UiQT5/Tuple6.ui
UiQT5/Tuple7.ui
UiQT5/Tuple8.ui
UiQT5/Tuple9.ui
UiQT5/desBaseWidget.ui
UiQT5/desChoixCode.ui
UiQT5/desGroupeOptionnel.ui
UiQT5/desPBOptionnelMT.ui
UiQT5/desVisu.ui
UiQT5/desWidget4a6RadioButton.ui
UiQT5/desWidgetBloc.ui
UiQT5/desWidgetCommande.ui
UiQT5/desWidgetFact.ui
UiQT5/desWidgetFactPlie.ui
UiQT5/desWidgetPlusieursBase.ui
UiQT5/desWidgetPlusieursInto.ui
UiQT5/desWidgetPlusieursTuple.ui
UiQT5/desWidgetSimpBase.ui
UiQT5/desWidgetSimpComplexe.ui
UiQT5/desWidgetTableau.ui
UiQT5/desWidgetTuple10.ui
UiQT5/desWidgetTuple2.ui
UiQT5/desWidgetTuple3.ui
UiQT5/desWidgetTuple4.ui
UiQT5/desWidgetTuple5.ui
UiQT5/desWidgetTuple6.ui
UiQT5/desWidgetTuple7.ui
UiQT5/desWidgetTuple8.ui
UiQT5/desWidgetTuple9.ui
UiQT5/eficas_en.qm [new file with mode: 0644]
UiQT5/eficas_en.ts
UiQT5/eficas_fr.qm [new file with mode: 0644]
Validation/V_AU_MOINS_UN.py
Validation/V_AU_PLUS_UN.py
Validation/V_A_CLASSER.py
Validation/V_ENSEMBLE.py
Validation/V_ETAPE.py
Validation/V_EXCLUS.py
Validation/V_JDC.py
Validation/V_MACRO_ETAPE.py
Validation/V_MCBLOC.py
Validation/V_MCCOMPO.py
Validation/V_MCFACT.py
Validation/V_MCLIST.py
Validation/V_MCSIMP.py
Validation/V_MEME_NOMBRE.py
Validation/V_PRESENT_ABSENT.py
Validation/V_PRESENT_PRESENT.py
Validation/V_PROC_ETAPE.py
Validation/V_UN_PARMI.py
Validation/__init__.py
VirtualPolymer/VP_Cata_V1.py
VirtualPolymer/VP_Cata_V2.py
VirtualPolymer/configuration_VP.py
VirtualPolymer/lienDB.py
VirtualPolymer/listesDB.py
VirtualPolymer/prefs.py
VirtualPolymer/prefs_VP.py
VirtualPolymer/properties.py
VirtualPolymer/qtEficasVP.py
boundary_conditions/CMakeLists.txt [deleted file]
boundary_conditions/__init__.py [deleted file]
boundary_conditions/appli.py [deleted file]
boundary_conditions/boundary_conditions_cata.py [deleted file]
boundary_conditions/configuration_boundary_conditions.py [deleted file]
boundary_conditions/generator_boundary_conditions.py [deleted file]
boundary_conditions/prefs.py [deleted file]
boundary_conditions/prefs_boundary_conditions.py [deleted file]
convert/__init__.py
convert/autre_parseur.py
convert/convert_TELEMAC.py
convert/convert_XML.py
convert/convert_dico.py
convert/convert_map.py
convert/convert_pyth.py
convert/convert_python.py
convert/old/convert_openturns_study.py
convert/old/convert_openturns_wrapper.py
convert/parseur_python.py
generator/Formatage.py
generator/__init__.py
generator/generator_GroupMA.py
generator/generator_PSEN.py
generator/generator_ProcessOutputs.py
generator/generator_TELEMAC.py
generator/generator_XML.py
generator/generator_aplat.py
generator/generator_dico.py
generator/generator_dicoImbrique.py
generator/generator_map.py
generator/generator_mapVP.py [new file with mode: 0644]
generator/generator_modification.py
generator/generator_python.py
generator/generator_vers3DSalome.py
generator/oldCodes/DefautASTER.py
generator/oldCodes/OpenturnsBase.py
generator/oldCodes/OpenturnsSTD.py
generator/oldCodes/OpenturnsXML.py
generator/oldCodes/generator_CARMEL3D.py
generator/oldCodes/generator_CARMEL3D_temporel.py
generator/oldCodes/generator_CARMELCND.py
generator/oldCodes/generator_CARMELCS.py
generator/oldCodes/generator_SEP.py
generator/oldCodes/generator_ZCracks.py
generator/oldCodes/generator_asterv5.py
generator/oldCodes/generator_cuve2dg.py
generator/oldCodes/generator_file_from_template.py
generator/oldCodes/generator_homard.py
generator/oldCodes/generator_ini.py
generator/oldCodes/generator_openturns.py
generator/oldCodes/generator_openturns_study.py
generator/oldCodes/generator_openturns_wrapper.py
generator/oldCodes/generator_pyth.py
generator/oldCodes/generator_python6.py
generator/oldCodes/oldGenerator_CARMEL3D_frequentiel.py
mascaret/CMakeLists.txt [deleted file]
mascaret/__init__.py [deleted file]
mascaret/appli.py [deleted file]
mascaret/configuration_mascaret.py [deleted file]
mascaret/mascaret_V7_cata.py [deleted file]
mascaret/prefs.py [deleted file]
mascaret/prefs_mascaret.py [deleted file]
monCode/Global_Condition_Cata.py [deleted file]
monCode/Many_Concepts_52992_Cata.py [deleted file]
monCode/Matrix_Cata.py [deleted file]
monCode/prefs_monCode.py [deleted file]
monCode/properties.py [deleted file]

index e7ae49e11af99c5b40d6c676338c7229b3ca2289..28b67b2a360a7b2f4bbaaf73fb5e0cd4517702f9 100644 (file)
@@ -22,40 +22,44 @@ from __future__ import absolute_import
 from Ihm import I_ASSD
 from Ihm import I_LASSD
 from Ihm import I_FONCTION
-from Noyau import N_ASSD 
-from Noyau import N_GEOM 
-from Noyau import N_FONCTION 
-from Noyau import N_CO 
+from Noyau import N_ASSD
+from Noyau import N_GEOM
+from Noyau import N_FONCTION
+from Noyau import N_CO
+from Noyau import N_UserASSD
+from Noyau import N_UserASSDMultiple
 
-# On ajoute la classe ASSD dans l'heritage multiple pour recreer 
+# On ajoute la classe ASSD dans l'heritage multiple pour recreer
 # une hierarchie d'heritage identique a celle de Noyau
-# pour faire en sorte que isinstance(o,ASSD) marche encore apres 
+# pour faire en sorte que isinstance(o,ASSD) marche encore apres
 # derivation
 
 class ASSD(I_ASSD.ASSD,N_ASSD.ASSD):pass
 #class LASSD(I_LASSD.LASSD,N_LASSD.LASSD):pass
 class LASSD(I_LASSD.LASSD):pass
+class UserASSD(N_UserASSD.UserASSD,ASSD): pass
+class UserASSDMultiple(N_UserASSDMultiple.UserASSDMultiple,UserASSD): pass
 
 class assd(N_ASSD.assd,I_ASSD.assd,ASSD):pass
 
 class FONCTION(N_FONCTION.FONCTION,I_FONCTION.FONCTION,ASSD):
-   def __init__(self,etape=None,sd=None,reg='oui'):
-      N_FONCTION.FONCTION.__init__(self,etape=etape,sd=sd,reg=reg)
-      I_FONCTION.FONCTION.__init__(self,etape=etape,sd=sd,reg=reg)
+    def __init__(self,etape=None,sd=None,reg='oui'):
+        N_FONCTION.FONCTION.__init__(self,etape=etape,sd=sd,reg=reg)
+        I_FONCTION.FONCTION.__init__(self,etape=etape,sd=sd,reg=reg)
 
 class formule(I_FONCTION.formule,N_FONCTION.formule,ASSD):
-   def __init__(self,etape=None,sd=None,reg='oui'):
-      N_FONCTION.formule.__init__(self,etape=etape,sd=sd,reg=reg)
-      I_FONCTION.formule.__init__(self,etape=etape,sd=sd,reg=reg)
+    def __init__(self,etape=None,sd=None,reg='oui'):
+        N_FONCTION.formule.__init__(self,etape=etape,sd=sd,reg=reg)
+        I_FONCTION.formule.__init__(self,etape=etape,sd=sd,reg=reg)
 
 class formule_c(formule):pass
 
 # On conserve fonction (ceinture et bretelles)
 # fonction n'existe plus dans N_FONCTION on le remplace par formule
 class fonction(N_FONCTION.formule,I_FONCTION.fonction,ASSD):
-   def __init__(self,etape=None,sd=None,reg='oui'):
-      N_FONCTION.formule.__init__(self,etape=etape,sd=sd,reg=reg)
-      I_FONCTION.fonction.__init__(self,etape=etape,sd=sd,reg=reg)
+    def __init__(self,etape=None,sd=None,reg='oui'):
+        N_FONCTION.formule.__init__(self,etape=etape,sd=sd,reg=reg)
+        I_FONCTION.fonction.__init__(self,etape=etape,sd=sd,reg=reg)
 
 class GEOM(N_GEOM.GEOM,I_ASSD.GEOM,ASSD):pass
 class geom(N_GEOM.geom,I_ASSD.geom,ASSD):pass
index fb288a09c5d3355f891e01a3b1997dd1d24b9cbf..1bcb4e003507fe659d69728cc9910ce6ef48c1ff 100644 (file)
@@ -23,8 +23,8 @@ from Validation import V_AU_MOINS_UN
 from Ihm import I_REGLE
 
 class AU_MOINS_UN(V_AU_MOINS_UN.AU_MOINS_UN,I_REGLE.REGLE,N_REGLE.REGLE):
-   """
-       La classe utilise l'initialiseur de REGLE. Il n'est pas 
-       necessaire d'expliciter son initialiseur car 
-       V_AU_MOINS_UN.AU_MOINS_UN n'en a pas 
-   """
+    """
+        La classe utilise l'initialiseur de REGLE. Il n'est pas
+        necessaire d'expliciter son initialiseur car
+        seule N_REGLE.REGLE en a un
+    """
index 188ab56372e761f53be4828d5d43e3198f033f97..8bdcc34f2e118b31613e6b1796d1d9aaeee86175 100644 (file)
@@ -23,8 +23,9 @@ from Validation import V_AU_PLUS_UN
 from Ihm import I_REGLE
 
 class AU_PLUS_UN(V_AU_PLUS_UN.AU_PLUS_UN,I_REGLE.REGLE,N_REGLE.REGLE):
-   """
-       La classe utilise l'initialiseur de REGLE. Il n'est pas
-       necessaire d'expliciter son initialiseur car
-       V_AU_PLUS_UN.AU_PLUS_UN n'en a pas
-   """
+    """
+        La classe utilise l'initialiseur de REGLE. Il n'est pas
+        necessaire d'expliciter son initialiseur car
+        V_AU_PLUS_UN.AU_PLUS_UN n'en a pas
+        V_UN_PARMI.UN_PARMI et I_REGLE.REGLE  n'en ont pas
+    """
index fce8e21cd6a55dad6aaff991b659fe803051ad3d..f32f1fa24940424477381e1dbcb6d2de88c7161d 100644 (file)
@@ -22,8 +22,8 @@ from Noyau import N_REGLE
 from Ihm import I_REGLE, I_AVANT
 
 class AVANT(I_AVANT.I_AVANT,I_REGLE.REGLE,N_REGLE.REGLE):
-   """
-       La classe utilise l'initialiseur de REGLE. Il n'est pas 
-       necessaire d'expliciter son initialiseur car 
-       I_AVANT.I_AVANT n'en a pas 
-   """
+    """
+        La classe utilise l'initialiseur de REGLE. Il n'est pas
+        necessaire d'expliciter son initialiseur car
+        I_AVANT.I_AVANT et I_REGLE.REGLE  n'en ont pas
+    """
index 562eb024d815d11cbf4f02f3a16237a171b19745..1e9e3fcc754290230f08846c6258866f1c812d49 100644 (file)
@@ -23,7 +23,7 @@ from Validation import V_A_CLASSER
 from Ihm import I_A_CLASSER
 
 class A_CLASSER(V_A_CLASSER.A_CLASSER,N_REGLE.REGLE,I_A_CLASSER.A_CLASSER):
-   """
-       La classe utilise l'initialiseur  du module V_. 
-       Il faut absolument que V_A_CLASSER soit en premier dans l'heritage
-   """
+    """
+        La classe utilise l'initialiseur  du module V_.
+        Il faut absolument que V_A_CLASSER soit en premier dans l'heritage
+    """
index 3f0ff48dfd3bddbe32958d3b5d13a38eafdd87b0..d68b28e35d2d404799753df01db2f43600d40a09 100644 (file)
@@ -25,8 +25,7 @@ from Efi2Xsd.AccasXsd  import X_BLOC
 
 
 class BLOC(N_BLOC.BLOC,X_BLOC,I_ENTITE.ENTITE):
-   class_instance=A_MCBLOC.MCBLOC
-   def __init__(self,*tup,**args):
-      I_ENTITE.ENTITE.__init__(self)
-      N_BLOC.BLOC.__init__(self,*tup,**args)
-
+    class_instance=A_MCBLOC.MCBLOC
+    def __init__(self,*tup,**args):
+        I_ENTITE.ENTITE.__init__(self)
+        N_BLOC.BLOC.__init__(self,*tup,**args)
index 3f4b981f7ac1abb1524a968f65a82556eb4ca2ab..62d289fa9d5785b11400f8a09e81040327989426 100644 (file)
@@ -23,8 +23,9 @@ from Validation import V_ENSEMBLE
 from Ihm import I_REGLE
 
 class ENSEMBLE(I_REGLE.REGLE,V_ENSEMBLE.ENSEMBLE,N_REGLE.REGLE):
-   """
-       La classe utilise l'initialiseur de REGLE. Il n'est pas 
-       necessaire d'expliciter son initialiseur car 
-       V_ENSEMBLE.ENSEMBLE n'en a pas 
-   """
+    """
+        La classe utilise l'initialiseur de REGLE. Il n'est pas
+        necessaire d'expliciter son initialiseur car
+        seule N_REGLE.REGLE en a un
+    
+    """
index f5be7609e7423ab2d1a4b1776d00acb85fd7f79c..301dfd9ff42d2b9077f3e8c2aa07c349c4c847cb 100644 (file)
@@ -21,10 +21,9 @@ from __future__ import absolute_import
 from Noyau import N_ETAPE
 from Validation import V_ETAPE
 from Ihm import I_ETAPE
-from Efi2Xsd.MCAccasXsd  import X_MCCOMPO
+from Efi2Xsd.MCAccasXML  import X_ETAPE
 
-class ETAPE(I_ETAPE.ETAPE,V_ETAPE.ETAPE,X_MCCOMPO,N_ETAPE.ETAPE):
-   def __init__(self,oper=None,reuse=None,args={}):
-      print ('------------- ETAPE accas', oper.nom, args)
-      N_ETAPE.ETAPE.__init__(self,oper,reuse,args)
-      V_ETAPE.ETAPE.__init__(self)
+class ETAPE(I_ETAPE.ETAPE,V_ETAPE.ETAPE,X_ETAPE,N_ETAPE.ETAPE):
+    def __init__(self,oper=None,reuse=None,args={}):
+        N_ETAPE.ETAPE.__init__(self,oper,reuse,args)
+        V_ETAPE.ETAPE.__init__(self)
index 05ddb441a5fc531e27a4ba54fcd5feb4df7ff369..16905ee21f1696ce31d60febbc35dcb13b162c5a 100644 (file)
@@ -18,8 +18,8 @@
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 from __future__ import absolute_import
-from Ihm import I_EVAL 
+from Ihm import I_EVAL
 
 class EVAL(I_EVAL.EVAL):
-   def __init__(self,str):
-      I_EVAL.EVAL.__init__(self,str)
+    def __init__(self,str):
+        I_EVAL.EVAL.__init__(self,str)
index d83ef7c9edc4b45444bfd3c880d2db009b5bcab4..d302aaf24b23c67b300a4b6e9441834d98ea0936 100644 (file)
@@ -23,8 +23,8 @@ from Validation import V_EXCLUS
 from Ihm import I_EXCLUS
 
 class EXCLUS(I_EXCLUS.EXCLUS,V_EXCLUS.EXCLUS,N_REGLE.REGLE):
-   """
-       La classe utilise l'initialiseur de REGLE. Il n'est pas 
-       necessaire d'expliciter son initialiseur car 
-       V_EXCLUS.EXCLUS n'en a pas 
-   """
+    """
+        La classe utilise l'initialiseur de REGLE. Il n'est pas
+        necessaire d'expliciter son initialiseur car
+        I_EXCLUS.EXCLUS V_EXCLUS.EXCLUS n'en ont pas
+    """
index 0d821efaa1316df6cfc28a77b3b3cc1048e17d33..27ee372d1eca949e6b56764c8b08e7de13676944 100644 (file)
@@ -26,15 +26,14 @@ from Efi2Xsd.AccasXsd  import X_FACT
 
 
 class FACT(N_FACT.FACT,X_FACT,I_ENTITE.ENTITE):
-   class_instance=A_MCFACT.MCFACT
-   list_instance=A_MCLIST.MCList
-   def __init__(self,*tup,**args):
-      I_ENTITE.ENTITE.__init__(self)
-      N_FACT.FACT.__init__(self,*tup,**args)
+    class_instance = A_MCFACT.MCFACT
+    list_instance  = A_MCLIST.MCList
+    def __init__(self,*tup,**args):
+        I_ENTITE.ENTITE.__init__(self)
+        N_FACT.FACT.__init__(self,*tup,**args)
 
 from Noyau import N_OBJECT
 from Ihm import I_OBJECT
 
 class ErrorObj(I_OBJECT.ErrorObj,N_OBJECT.ErrorObj):pass
 N_OBJECT.ErrorObj=ErrorObj
-
index 4b2b94d8f29f1064ac75e764978a6766e0676abf..473f4058213e01c692820176050d1da8f2ed04b1 100644 (file)
@@ -25,7 +25,5 @@ from __future__ import absolute_import
 from Ihm import I_FICHIER
 
 class Fichier (I_FICHIER.Fichier):
-   def __init__(self,*tup,**args):
-      I_FICHIER.FICHIER.__init__(self,*tup,**args)
-
-
+    def __init__(self,*tup,**args):
+        I_FICHIER.FICHIER.__init__(self,*tup,**args)
index a71ce4c3dc16c225c06dd2a53fc2e065d7c1edd8..c310fa11d9bdd3b7793996b897f5cc6ddf943ddd 100644 (file)
@@ -20,7 +20,7 @@
 from __future__ import absolute_import
 from Noyau import N_FORM
 from Ihm import I_ENTITE
-from . import A_FORM_ETAPE 
+from . import A_FORM_ETAPE
 
 class FORM(N_FORM.FORM,I_ENTITE.ENTITE):
-   class_instance=A_FORM_ETAPE.FORM_ETAPE
+    class_instance=A_FORM_ETAPE.FORM_ETAPE
index 086882047e1c6006e5f00024599edb6b6941a09c..b6161946ba5087bfbd2d5410b94f465bd5710457 100644 (file)
@@ -24,8 +24,7 @@ from Validation import V_MACRO_ETAPE
 from Ihm import I_FORM_ETAPE
 
 class FORM_ETAPE(I_FORM_ETAPE.FORM_ETAPE,V_MACRO_ETAPE.MACRO_ETAPE,N_FORM_ETAPE.FORM_ETAPE):
-   def __init__(self,oper=None,reuse=None,args={}):
-      N_FORM_ETAPE.FORM_ETAPE.__init__(self,oper,reuse,args)
-      V_MACRO_ETAPE.MACRO_ETAPE.__init__(self)
-      I_FORM_ETAPE.FORM_ETAPE.__init__(self)
-
+    def __init__(self,oper=None,reuse=None,args={}):
+        N_FORM_ETAPE.FORM_ETAPE.__init__(self,oper,reuse,args)
+        V_MACRO_ETAPE.MACRO_ETAPE.__init__(self)
+        I_FORM_ETAPE.FORM_ETAPE.__init__(self)
index 29a608d3e19f96f92ba7649fcc8cfa4aaec9300d..cc05f3056ff062530646ee2905672a791a17f486 100644 (file)
@@ -22,15 +22,15 @@ from Noyau import N_JDC
 from Validation import V_JDC
 from Extensions import jdc
 from Ihm import I_JDC
-from Efi2Xsd.MCAccasXsd  import X_JDC
+from Efi2Xsd.MCAccasXML  import X_JDC
 
 class JDC(jdc.JDC,I_JDC.JDC,X_JDC,V_JDC.JDC,N_JDC.JDC):
-   from .A_ASSD import CO,assd
+    from .A_ASSD import CO,assd
 
-   def __init__(self,*pos,**args):
-      N_JDC.JDC.__init__(self,*pos,**args)
-      X_JDC.__init__(self)
-      V_JDC.JDC.__init__(self)
-      I_JDC.JDC.__init__(self)
-      jdc.JDC.__init__(self)
-      self.icmd=0
+    def __init__(self,*pos,**args):
+        N_JDC.JDC.__init__(self,*pos,**args)
+        X_JDC.__init__(self)
+        V_JDC.JDC.__init__(self)
+        I_JDC.JDC.__init__(self)
+        jdc.JDC.__init__(self)
+        self.icmd=0
index c56951bfbc84c2c0fc55ddb1d7998449db89fcec..1e34ba1046cbc8262a62b875310e1951e8174387 100644 (file)
@@ -24,9 +24,9 @@ from Ihm import I_JDC_CATA
 from Efi2Xsd.AccasXsd  import X_JDC_CATA
 
 class JDC_CATA(I_JDC_CATA.JDC_CATA,N_JDC_CATA.JDC_CATA,X_JDC_CATA):
-   class_instance=A_JDC.JDC
-   def __init__(self,*pos,**kw):
-      #print pos
-      #print kw
-      N_JDC_CATA.JDC_CATA.__init__(self,*pos,**kw)
-      I_JDC_CATA.JDC_CATA.__init__(self)
+    class_instance=A_JDC.JDC
+    def __init__(self,*pos,**kw):
+        #print pos
+        #print kw
+        N_JDC_CATA.JDC_CATA.__init__(self,*pos,**kw)
+        I_JDC_CATA.JDC_CATA.__init__(self)
index 8c072e98811b86b5085b27e2e6e4f4a39a018402..b8f7b93bd8656809e300f1ac10968fba3b53dcb2 100644 (file)
 from __future__ import absolute_import
 from Noyau import N_MACRO
 from Ihm import I_ENTITE
-from . import A_MACRO_ETAPE 
+from . import A_MACRO_ETAPE
 
 class MACRO(N_MACRO.MACRO,I_ENTITE.ENTITE):
-   class_instance=A_MACRO_ETAPE.MACRO_ETAPE
-   def __init__(self,*tup,**args):
-      I_ENTITE.ENTITE.__init__(self)
-      N_MACRO.MACRO.__init__(self,*tup,**args)
-
+    class_instance=A_MACRO_ETAPE.MACRO_ETAPE
+    def __init__(self,*tup,**args):
+        I_ENTITE.ENTITE.__init__(self)
+        N_MACRO.MACRO.__init__(self,*tup,**args)
index 52ef3b063e7fade3c76a399b1a5f7d5857e894eb..74ef0b4bd9b8921c8b9c6d5c54164ba770941cfa 100644 (file)
@@ -22,14 +22,14 @@ from Noyau import N_MACRO_ETAPE
 from Validation import V_MACRO_ETAPE
 from Ihm import I_MACRO_ETAPE
 from .A_ASSD import CO
-from Efi2Xsd.MCAccasXsd  import X_MCCOMPO
+from Efi2Xsd.MCAccasXML  import X_MCCOMPO
 
 class MACRO_ETAPE(I_MACRO_ETAPE.MACRO_ETAPE,
                   X_MCCOMPO,
                   V_MACRO_ETAPE.MACRO_ETAPE,
                   N_MACRO_ETAPE.MACRO_ETAPE):
-   typeCO=CO
-   def __init__(self,oper=None,reuse=None,args={}):
-      N_MACRO_ETAPE.MACRO_ETAPE.__init__(self,oper,reuse,args)
-      V_MACRO_ETAPE.MACRO_ETAPE.__init__(self)
-      I_MACRO_ETAPE.MACRO_ETAPE.__init__(self)
+    typeCO=CO
+    def __init__(self,oper=None,reuse=None,args={}):
+        N_MACRO_ETAPE.MACRO_ETAPE.__init__(self,oper,reuse,args)
+        V_MACRO_ETAPE.MACRO_ETAPE.__init__(self)
+        I_MACRO_ETAPE.MACRO_ETAPE.__init__(self)
index 02df7ddb5d3774fd66b1451aa0ac97348396b033..e871ffdabfb95cd1e465a3fd91b709269da87519 100644 (file)
@@ -21,10 +21,10 @@ from __future__ import absolute_import
 from Noyau import N_MCBLOC
 from Validation import V_MCBLOC
 from Ihm import I_MCBLOC
-from Efi2Xsd.MCAccasXsd  import X_MCBLOC
+from Efi2Xsd.MCAccasXML  import X_MCBLOC
 
 
 class MCBLOC(I_MCBLOC.MCBLOC,N_MCBLOC.MCBLOC,X_MCBLOC,V_MCBLOC.MCBLOC):
-   def __init__(self,val,definition,nom,parent,dicoPyxbDeConstruction=None):
-      N_MCBLOC.MCBLOC.__init__(self,val,definition,nom,parent,dicoPyxbDeConstruction=dicoPyxbDeConstruction)
-      V_MCBLOC.MCBLOC.__init__(self)
+    def __init__(self,val,definition,nom,parent,dicoPyxbDeConstruction=None):
+        N_MCBLOC.MCBLOC.__init__(self,val,definition,nom,parent,dicoPyxbDeConstruction=dicoPyxbDeConstruction)
+        V_MCBLOC.MCBLOC.__init__(self)
index d4752b7cfb4c09f8c590ebd18a0ba3339f175456..87c5a3d461a37db8f4eb0af9423f31979298e00a 100644 (file)
@@ -21,9 +21,9 @@ from __future__ import absolute_import
 from Noyau import N_MCFACT
 from Validation import V_MCFACT
 from Ihm import I_MCFACT
-from Efi2Xsd.MCAccasXsd  import X_MCFACT
+from Efi2Xsd.MCAccasXML  import X_MCFACT
 
 class MCFACT(I_MCFACT.MCFACT,N_MCFACT.MCFACT,X_MCFACT,V_MCFACT.MCFACT):
-   def __init__(self,val,definition,nom,parent,dicoPyxbDeConstruction=None):
-      N_MCFACT.MCFACT.__init__(self,val,definition,nom,parent,dicoPyxbDeConstruction=dicoPyxbDeConstruction)
-      V_MCFACT.MCFACT.__init__(self)
+    def __init__(self,val,definition,nom,parent,dicoPyxbDeConstruction=None):
+        N_MCFACT.MCFACT.__init__(self,val,definition,nom,parent,dicoPyxbDeConstruction=dicoPyxbDeConstruction)
+        V_MCFACT.MCFACT.__init__(self)
index fe57a521aa5460525a843ae9c5bd6765e40bceb9..f80f1368bee584ec065903b2bbb4bfbf82d7888b 100644 (file)
@@ -21,9 +21,9 @@ from __future__ import absolute_import
 from Noyau import N_MCLIST
 from Validation import V_MCLIST
 from Ihm import I_MCLIST
-from Efi2Xsd.MCAccasXsd  import X_MCLIST
+from Efi2Xsd.MCAccasXML  import X_MCLIST
 
 
 class MCList(I_MCLIST.MCList,N_MCLIST.MCList,X_MCLIST,V_MCLIST.MCList):
-   def __init__(self):
-      N_MCLIST.MCList.__init__(self)
+    def __init__(self):
+        N_MCLIST.MCList.__init__(self)
index eadaba995d2b10679b75684695a1ef7b398fb9e2..7451527084d1eee341070c60576e6d5d4d9a9089 100644 (file)
@@ -22,5 +22,5 @@ from Extensions import mcnuplet
 from Ihm import I_MCCOMPO
 
 class MCNUPLET(mcnuplet.MCNUPLET,I_MCCOMPO.MCCOMPO):
-   def __init__(self,*pos,**args):
-      mcnuplet.MCNUPLET.__init__(self,*pos,**args)
+    def __init__(self,*pos,**args):
+        mcnuplet.MCNUPLET.__init__(self,*pos,**args)
index 23be911b47f0befd14ec0c091e92f89136a90d8e..525262c7cf5e87030a499f1319c794fad701a5cd 100644 (file)
@@ -21,10 +21,10 @@ from __future__ import absolute_import
 from Noyau import N_MCSIMP
 from Validation import V_MCSIMP
 from Ihm import I_MCSIMP
-from Efi2Xsd.MCAccasXsd  import X_MCSIMP
+from Efi2Xsd.MCAccasXML  import X_MCSIMP
 
 class MCSIMP(I_MCSIMP.MCSIMP,N_MCSIMP.MCSIMP,X_MCSIMP,V_MCSIMP.MCSIMP):
-   def __init__(self,val,definition,nom,parent,objPyxbDeConstruction=None):
-   #def __init__(self,val,definition,nom,parent,objPyxbDeConstruction) quand cela sera correct dans les update_etape. pour l instant on laisse le defaut a None : 9 Aout 18:
-      N_MCSIMP.MCSIMP.__init__(self,val,definition,nom,parent,objPyxbDeConstruction)
-      V_MCSIMP.MCSIMP.__init__(self)
+    def __init__(self,val,definition,nom,parent,objPyxbDeConstruction=None):
+    #le defaut de objPyxbDeConstruction permet de lire les comm avec des modeles sans equivalent XSD
+        N_MCSIMP.MCSIMP.__init__(self,val,definition,nom,parent,objPyxbDeConstruction)
+        V_MCSIMP.MCSIMP.__init__(self)
index de29503ee82b18b64767a53452e4f0b0485c24f2..0bf042893a9137e77828edb76af50d6e2858d3a0 100644 (file)
@@ -23,8 +23,8 @@ from Validation import V_MEME_NOMBRE
 from Ihm import I_REGLE
 
 class MEME_NOMBRE(V_MEME_NOMBRE.MEME_NOMBRE,I_REGLE.REGLE,N_REGLE.REGLE):
-   """
-       La classe utilise l'initialiseur de REGLE. Il n'est pas 
-       necessaire d'expliciter son initialiseur car 
-       V_MEME_NOMBRE.MEME_NOMBRE n'en a pas 
-   """
+    """
+        La classe utilise l'initialiseur de REGLE. Il n'est pas
+        necessaire d'expliciter son initialiseur car
+        seule N_REGLE.REGLE en a un
+    """
index 2a538303740a8780e8716372fca184f2da41eb46..89ac50028ba3d08ced2100a1789be885740f60c2 100644 (file)
@@ -23,5 +23,5 @@ from . import A_MCLIST
 from . import A_MCNUPLET
 
 class NUPL(nuplet.NUPL):
-   class_instance=A_MCNUPLET.MCNUPLET
-   list_instance=A_MCLIST.MCList
+    class_instance = A_MCNUPLET.MCNUPLET
+    list_instance  = A_MCLIST.MCList
index f63d6c0ed0b265346919811fb200ef0dac74a271..353a69efefc424503b6a87dd1067ab078278ec80 100644 (file)
 from __future__ import absolute_import
 from Noyau import N_OPER
 from Ihm import I_ENTITE
-from Accas import A_ETAPE 
+from Accas import A_ETAPE
 from Efi2Xsd.AccasXsd  import X_OPER
 
 
 class OPER(N_OPER.OPER,X_OPER,I_ENTITE.ENTITE):
-   class_instance=A_ETAPE.ETAPE
-   def __init__(self,*tup,**args):
-      I_ENTITE.ENTITE.__init__(self)
-      N_OPER.OPER.__init__(self,*tup,**args)
+    class_instance=A_ETAPE.ETAPE
+    def __init__(self,*tup,**args):
+        I_ENTITE.ENTITE.__init__(self)
+        N_OPER.OPER.__init__(self,*tup,**args)
index b8bfe3c1e2a94bf5561da93ff62bb7b52f04f792..b8a895f3cf1b257db8ff444df501b556fca3154e 100644 (file)
@@ -24,8 +24,8 @@ from Ihm import I_PRESENT_ABSENT
 
 class PRESENT_ABSENT(I_PRESENT_ABSENT.PRESENT_ABSENT,V_PRESENT_ABSENT.PRESENT_ABSENT,
                      N_REGLE.REGLE):
-   """
-       La classe utilise l'initialiseur de REGLE. Il n'est pas 
-       necessaire d'expliciter son initialiseur car 
-       V_PRESENT_ABSENT.PRESENT_ABSENT n'en a pas 
-   """
+    """
+        La classe utilise l'initialiseur de REGLE. Il n'est pas
+        necessaire d'expliciter son initialiseur car
+        seule N_REGLE.REGLE.py en a un
+    """
index bc1fe1a91f5ac41eff77c3ff7e48b88e5a41261c..9da2781cccd9f5df6fff15f8c621e19bd8cc4cb3 100644 (file)
@@ -25,8 +25,8 @@ from Ihm import I_PRESENT_PRESENT
 class PRESENT_PRESENT(I_PRESENT_PRESENT.PRESENT_PRESENT,
                       V_PRESENT_PRESENT.PRESENT_PRESENT,
                       N_REGLE.REGLE):
-   """
-       La classe utilise l'initialiseur de REGLE. Il n'est pas 
-       necessaire d'expliciter son initialiseur car 
-       V_PRESENT_PRESENT.PRESENT_PRESENT n'en a pas 
-   """
+    """
+        La classe utilise l'initialiseur de REGLE. Il n'est pas
+        necessaire d'expliciter son initialiseur car
+        seule N_REGLE.REGLE en a un
+    """
index 4b5c41a48ee178b1cd82c807392e227d84a9d4e1..a22a170e4a0d2233fbf0984fc79805fa611cc725 100644 (file)
 from __future__ import absolute_import
 from Noyau import N_PROC
 from Ihm import I_ENTITE
-from Accas import A_PROC_ETAPE 
+from Accas import A_PROC_ETAPE
 from Efi2Xsd.AccasXsd import X_PROC
 
 class PROC(N_PROC.PROC,X_PROC,I_ENTITE.ENTITE):
-   class_instance=A_PROC_ETAPE.PROC_ETAPE
-   def __init__(self,*tup,**args):
-      #print (tup)
-      #print (args)
-      I_ENTITE.ENTITE.__init__(self)
-      N_PROC.PROC.__init__(self,*tup,**args)
-
+    class_instance=A_PROC_ETAPE.PROC_ETAPE
+    def __init__(self,*tup,**args):
+        #print (tup)
+        #print (args)
+        I_ENTITE.ENTITE.__init__(self)
+        N_PROC.PROC.__init__(self,*tup,**args)
index 9485f749c8f0b042f915a8c6641535b66e1e9701..9f395ee0c2a67533410fa51b7d958406afedf58e 100644 (file)
@@ -21,12 +21,12 @@ from __future__ import absolute_import
 from Noyau import N_PROC_ETAPE
 from Validation import V_PROC_ETAPE
 from Ihm import I_PROC_ETAPE
-from Efi2Xsd.MCAccasXsd  import X_MCCOMPO
+from Efi2Xsd.MCAccasXML  import X_MCCOMPO
 
 class PROC_ETAPE(I_PROC_ETAPE.PROC_ETAPE,
                  V_PROC_ETAPE.PROC_ETAPE,
                  X_MCCOMPO,
                  N_PROC_ETAPE.PROC_ETAPE):
-   def __init__(self,oper=None,args={}):
-      N_PROC_ETAPE.PROC_ETAPE.__init__(self,oper=oper,args=args)
-      V_PROC_ETAPE.PROC_ETAPE.__init__(self)
+    def __init__(self,oper=None,args={}):
+        N_PROC_ETAPE.PROC_ETAPE.__init__(self,oper=oper,args=args)
+        V_PROC_ETAPE.PROC_ETAPE.__init__(self)
index 0f62053497975ed6b189425e99a96ac3b8b32768..e52b4cf99c976c25a7c886e6f01fc706f2f2c502 100644 (file)
@@ -23,4 +23,4 @@
 #from builtins import object
 #class SalomeEntry(object):
 class SalomeEntry:
-  pass
+    pass
index 896d325ad1987541c722f1997f57cd65e0f93fca..f59759a796ab0af416140d3a57082324770c9317 100644 (file)
@@ -20,9 +20,8 @@
 
 from __future__ import absolute_import
 from Ihm import I_REGLE
-from Noyau import N_SENSIBILITE 
+from Noyau import N_SENSIBILITE
 
 class REUSE_SENSIBLE(I_REGLE.REGLE,N_SENSIBILITE.REUSE_SENSIBLE):pass
 class CONCEPT_SENSIBLE(I_REGLE.REGLE,N_SENSIBILITE.CONCEPT_SENSIBLE):pass
 class DERIVABLE(I_REGLE.REGLE,N_SENSIBILITE.DERIVABLE):pass
-
index 772bbec882871a350201585316e3aa1598f2331f..59c5f444c4f0bb27d059aa8ca80efd3519110289 100644 (file)
@@ -24,10 +24,9 @@ from Accas import A_MCSIMP
 from Efi2Xsd.AccasXsd import X_SIMP
 
 class SIMP(N_SIMP.SIMP,X_SIMP,I_ENTITE.ENTITE):
-   class_instance=A_MCSIMP.MCSIMP
-   def __init__(self,*tup,**args):
-      #print tup
-      #print args
-      I_ENTITE.ENTITE.__init__(self)
-      N_SIMP.SIMP.__init__(self,*tup,**args)
-
+    class_instance=A_MCSIMP.MCSIMP
+    def __init__(self,*tup,**args):
+        #print tup
+        #print args
+        I_ENTITE.ENTITE.__init__(self)
+        N_SIMP.SIMP.__init__(self,*tup,**args)
diff --git a/Accas/A_TUPLE.py b/Accas/A_TUPLE.py
new file mode 100644 (file)
index 0000000..3abdd06
--- /dev/null
@@ -0,0 +1,12 @@
+#
+from __future__ import absolute_import
+from Noyau import N_TUPLE
+from Ihm  import I_TUPLE
+
+class Tuple (N_TUPLE.N_Tuple): pass
+class Matrice (I_TUPLE.I_Matrice,N_TUPLE.N_Matrice):pass
+#      def __init__(self,*tup,**args):
+#          I_TUPLE.I_Matrice.__init__(self)
+#          N_TUPLE.N_Matrice(self,*tup,**args)
+#          print (tup)
+#          print (args)
index e2e198ea3cf113ae04eb6be133fef854a26c6b44..f15504bdd017e6c5e13ad5453c2aacdb84460cbe 100644 (file)
@@ -23,8 +23,8 @@ from Validation import V_UN_PARMI
 from Ihm import I_UN_PARMI
 
 class UN_PARMI(I_UN_PARMI.UN_PARMI,V_UN_PARMI.UN_PARMI,N_REGLE.REGLE):
-   """
-       La classe utilise l'initialiseur de REGLE. Il n'est pas 
-       necessaire d'expliciter son initialiseur car 
-       V_UN_PARMI.UN_PARMI n'en a pas 
-   """
+    """
+        La classe utilise l'initialiseur de REGLE. Il n'est pas
+        necessaire d'expliciter son initialiseur car
+        V_UN_PARMI.UN_PARMI et I_UN_PARMI.UN_PARMI  n'en ont pas
+    """
index b5093529524d8dfec0abf4c94857a49c6bcf5278..b87034f77deb6e8ad8618f6ddafb889afb35bd1c 100644 (file)
    classes et leur implementation.
 """
 
-# permet de se proteger de l'oubli de carte coding
-# ce warning deviendra fatal en python 2.4
+
 from __future__ import absolute_import
 import warnings
 warnings.filterwarnings('error','Non-ASCII character.*pep-0263',DeprecationWarning)
 
 from .A_JDC_CATA import JDC_CATA
-from .A_OPER import OPER
-from .A_PROC import PROC
-from .A_MACRO import MACRO
-from .A_FORM import FORM
-from .A_BLOC import BLOC
-from .A_FACT import FACT
-from .A_SIMP import SIMP
-from .A_EVAL import EVAL
-from .A_NUPLET import NUPL
+from .A_OPER     import OPER
+from .A_PROC     import PROC
+from .A_MACRO    import MACRO
+from .A_FORM     import FORM
+from .A_BLOC     import BLOC
+from .A_FACT     import FACT
+from .A_SIMP     import SIMP
+from .A_EVAL     import EVAL
+from .A_NUPLET   import NUPL
+from .A_TUPLE    import Tuple
+from .A_TUPLE    import Matrice
+
 
 from .A_JDC import JDC
 from .A_ETAPE import ETAPE
@@ -68,7 +70,7 @@ from .A_ENSEMBLE import ENSEMBLE
 from .A_A_CLASSER import A_CLASSER
 from .A_AVANT import AVANT
 
-from .A_ASSD import ASSD,assd
+from .A_ASSD import ASSD,assd, UserASSD, UserASSDMultiple
 from .A_ASSD import GEOM,geom
 # Pour le moment on laisse fonction (ceinture et bretelles)
 from .A_ASSD import FONCTION, fonction
@@ -90,7 +92,7 @@ from .A_VALIDATOR import RangeVal, EnumVal, TypeVal, PairVal
 from .A_VALIDATOR import CardVal, InstanceVal
 from .A_VALIDATOR import VerifTypeTuple, VerifExiste
 from .A_VALIDATOR import FileExtVal, FunctionVal
-from .A_VALIDATOR import CreeMotClef 
+from .A_VALIDATOR import CreeMotClef
 
 # On remplace la factory des validateurs initialement dans Noyau par celle
 # de A_VALIDATOR
@@ -103,9 +105,9 @@ from .A_SENSIBILITE import CONCEPT_SENSIBLE, REUSE_SENSIBLE, DERIVABLE
 from Extensions.niveau import NIVEAU
 from Extensions.etape_niveau import ETAPE_NIVEAU
 from Extensions.commentaire import COMMENTAIRE
-from Extensions.parametre import PARAMETRE  
+from Extensions.parametre import PARAMETRE
 from Extensions.parametre_eval import PARAMETRE_EVAL
-from Extensions.commande_comm import COMMANDE_COMM 
+from Extensions.commande_comm import COMMANDE_COMM
 from Extensions.mcnuplet import MCNUPLET
 
 from .A_SALOME_ENTRY import SalomeEntry
diff --git a/Adao/ADAO_Cata_V0_V7_7_0.py b/Adao/ADAO_Cata_V0_V7_7_0.py
deleted file mode 100755 (executable)
index b9e8c02..0000000
+++ /dev/null
@@ -1,1261 +0,0 @@
-#-*-coding:iso-8859-1-*-
-#
-# Copyright (C) 2008-2015 EDF R&D
-#
-# This file is part of SALOME ADAO module
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-# Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
-
-# --------------------------------------------------------
-# Generated by AdaoCatalogGenerator on 2015-10-08 07:57:55
-# --------------------------------------------------------
-
-import os, re
-import Accas
-from Accas import *
-
-JdC = JDC_CATA (
-    code = 'ADAO',
-    execmodul = None,
-    regles = ( AU_MOINS_UN ('ASSIMILATION_STUDY','CHECKING_STUDY'), AU_PLUS_UN ('ASSIMILATION_STUDY','CHECKING_STUDY')),
-    )
-VERSION_CATALOGUE='V7_7_0'
-
-def NoCheckInNS(filename):
-    return 1
-NoCheckInNS.info = ""
-def DirectOperatorInNS(filename):
-    if os.path.exists(filename):
-        fc = open(filename, 'r').readlines()
-        cr = re.compile("^def[\s]*DirectOperator[\s]*\(")
-        for ln in fc:
-            if cr.match(ln): return 1
-        cr = re.compile("^DirectOperator[\s]*=")
-        for ln in fc:
-            if cr.match(ln): return 1
-    return 0
-DirectOperatorInNS.info = u"The Python file has to contain explicitly a \"DirectOperator\" function definition with only one vector as argument."
-def TangentOperatorInNS(filename):
-    if os.path.exists(filename):
-        fc = open(filename, 'r').readlines()
-        cr = re.compile("^def[\s]*TangentOperator[\s]*\(")
-        for ln in fc:
-            if cr.match(ln): return 1
-        cr = re.compile("^TangentOperator[\s]*=")
-        for ln in fc:
-            if cr.match(ln): return 1
-    return 0
-TangentOperatorInNS.info = u"The Python file has to contain explicitly a \"TangentOperator\" function definition with only one pair of vectors as argument."
-def AdjointOperatorInNS(filename):
-    if os.path.exists(filename):
-        fc = open(filename, 'r').readlines()
-        cr = re.compile("^def[\s]*AdjointOperator[\s]*\(")
-        for ln in fc:
-            if cr.match(ln): return 1
-        cr = re.compile("^AdjointOperator[\s]*=")
-        for ln in fc:
-            if cr.match(ln): return 1
-    return 0
-AdjointOperatorInNS.info = u"The Python file has to contain explicitly an \"AdjointOperator\" function definition with only one pair of vectors as argument."
-
-def F_VectorSerie(statut, fv=NoCheckInNS) : return FACT(
-    statut = statut,
-    FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", ), defaut="Script"),
-    SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ",
-        SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(fv)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si ariable interne de meme nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"),
-        ),
-    STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ",
-        STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"),
-        ),
-    SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ",
-        SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS), FunctionVal(TangentOperatorInNS), FunctionVal(AdjointOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"),
-        ),
-    SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ",
-        SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"),
-        DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"),
-        CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite differences method"),
-        EnableMultiProcessing = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Calculs élémentaires effectués en séquentiel (0) ou en parallèle (1) dans la méthode des différences finies", ang="Elementary calculations done sequentially (0) or in parallel (1) in the finite differences method"),
-        NumberOfProcesses = SIMP(statut="f", typ = "I", val_min=0, defaut=0, fr="Nombre de processus parallèles, 0 pour un contrôle automatique", ang="Number of parallel processes, 0 for automatic control"),
-        ),
-    SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ",
-        SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"),
-        ),
-    TEMPLATE_DATA =  BLOC (condition = " FROM in ( 'Template', ) ",
-        Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")),
-        AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa" ),
-            ),
-        AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ),
-            ),
-        AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ),
-            ),
-        ),
-    )
-
-def F_Function(statut, fv=NoCheckInNS) : return FACT(
-    statut = statut,
-    FROM = SIMP(statut = "o", typ = "TXM", into=("ScriptWithOneFunction", "ScriptWithFunctions", "ScriptWithSwitch", "FunctionDict", ), defaut="ScriptWithOneFunction"),
-    SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ",
-        SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(fv)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"),
-        ),
-    STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ",
-        STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"),
-        ),
-    SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ",
-        SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS), FunctionVal(TangentOperatorInNS), FunctionVal(AdjointOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"),
-        ),
-    SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ",
-        SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"),
-        DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"),
-        CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite differences method"),
-        EnableMultiProcessing = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Calculs élémentaires effectués en séquentiel (0) ou en parallèle (1) dans la méthode des différences finies", ang="Elementary calculations done sequentially (0) or in parallel (1) in the finite differences method"),
-        NumberOfProcesses = SIMP(statut="f", typ = "I", val_min=0, defaut=0, fr="Nombre de processus parallèles, 0 pour un contrôle automatique", ang="Number of parallel processes, 0 for automatic control"),
-        ),
-    SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ",
-        SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"),
-        ),
-    TEMPLATE_DATA =  BLOC (condition = " FROM in ( 'Template', ) ",
-        Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")),
-        AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa" ),
-            ),
-        AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ),
-            ),
-        AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ),
-            ),
-        ),
-    )
-
-def F_Matrix(statut, fv=NoCheckInNS) : return FACT(
-    statut = statut,
-    FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", ), defaut="Script"),
-    SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ",
-        SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(fv)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"),
-        ),
-    STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ",
-        STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"),
-        ),
-    SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ",
-        SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS), FunctionVal(TangentOperatorInNS), FunctionVal(AdjointOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"),
-        ),
-    SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ",
-        SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"),
-        DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"),
-        CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite differences method"),
-        EnableMultiProcessing = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Calculs élémentaires effectués en séquentiel (0) ou en parallèle (1) dans la méthode des différences finies", ang="Elementary calculations done sequentially (0) or in parallel (1) in the finite differences method"),
-        NumberOfProcesses = SIMP(statut="f", typ = "I", val_min=0, defaut=0, fr="Nombre de processus parallèles, 0 pour un contrôle automatique", ang="Number of parallel processes, 0 for automatic control"),
-        ),
-    SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ",
-        SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"),
-        ),
-    TEMPLATE_DATA =  BLOC (condition = " FROM in ( 'Template', ) ",
-        Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")),
-        AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa" ),
-            ),
-        AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ),
-            ),
-        AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ),
-            ),
-        ),
-    )
-
-def F_DiagonalSparseMatrix(statut, fv=NoCheckInNS) : return FACT(
-    statut = statut,
-    FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", ), defaut="String"),
-    SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ",
-        SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(fv)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"),
-        ),
-    STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ",
-        STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"),
-        ),
-    SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ",
-        SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS), FunctionVal(TangentOperatorInNS), FunctionVal(AdjointOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"),
-        ),
-    SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ",
-        SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"),
-        DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"),
-        CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite differences method"),
-        EnableMultiProcessing = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Calculs élémentaires effectués en séquentiel (0) ou en parallèle (1) dans la méthode des différences finies", ang="Elementary calculations done sequentially (0) or in parallel (1) in the finite differences method"),
-        NumberOfProcesses = SIMP(statut="f", typ = "I", val_min=0, defaut=0, fr="Nombre de processus parallèles, 0 pour un contrôle automatique", ang="Number of parallel processes, 0 for automatic control"),
-        ),
-    SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ",
-        SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"),
-        ),
-    TEMPLATE_DATA =  BLOC (condition = " FROM in ( 'Template', ) ",
-        Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")),
-        AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa" ),
-            ),
-        AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ),
-            ),
-        AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ),
-            ),
-        ),
-    )
-
-def F_Vector(statut, fv=NoCheckInNS) : return FACT(
-    statut = statut,
-    FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", ), defaut="Script"),
-    SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ",
-        SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(fv)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"),
-        ),
-    STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ",
-        STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"),
-        ),
-    SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ",
-        SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS), FunctionVal(TangentOperatorInNS), FunctionVal(AdjointOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"),
-        ),
-    SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ",
-        SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"),
-        DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"),
-        CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite differences method"),
-        EnableMultiProcessing = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Calculs élémentaires effectués en séquentiel (0) ou en parallèle (1) dans la méthode des différences finies", ang="Elementary calculations done sequentially (0) or in parallel (1) in the finite differences method"),
-        NumberOfProcesses = SIMP(statut="f", typ = "I", val_min=0, defaut=0, fr="Nombre de processus parallèles, 0 pour un contrôle automatique", ang="Number of parallel processes, 0 for automatic control"),
-        ),
-    SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ",
-        SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"),
-        ),
-    TEMPLATE_DATA =  BLOC (condition = " FROM in ( 'Template', ) ",
-        Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")),
-        AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa" ),
-            ),
-        AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ),
-            ),
-        AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ),
-            ),
-        ),
-    )
-
-def F_Dict(statut, fv=NoCheckInNS) : return FACT(
-    statut = statut,
-    FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", ), defaut="Script"),
-    SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ",
-        SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(fv)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"),
-        ),
-    STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ",
-        STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"),
-        ),
-    SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ",
-        SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS), FunctionVal(TangentOperatorInNS), FunctionVal(AdjointOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"),
-        ),
-    SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ",
-        SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"),
-        DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"),
-        CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite differences method"),
-        EnableMultiProcessing = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Calculs élémentaires effectués en séquentiel (0) ou en parallèle (1) dans la méthode des différences finies", ang="Elementary calculations done sequentially (0) or in parallel (1) in the finite differences method"),
-        NumberOfProcesses = SIMP(statut="f", typ = "I", val_min=0, defaut=0, fr="Nombre de processus parallèles, 0 pour un contrôle automatique", ang="Number of parallel processes, 0 for automatic control"),
-        ),
-    SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ",
-        SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"),
-        ),
-    TEMPLATE_DATA =  BLOC (condition = " FROM in ( 'Template', ) ",
-        Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")),
-        AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa" ),
-            ),
-        AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ),
-            ),
-        AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ),
-            ),
-        ),
-    )
-
-def F_ScalarSparseMatrix(statut, fv=NoCheckInNS) : return FACT(
-    statut = statut,
-    FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", ), defaut="String"),
-    SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ",
-        SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(fv)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"),
-        ),
-    STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ",
-        STRING = SIMP(statut = "o", typ = "TXM", defaut="1.", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"),
-        ),
-    SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ",
-        SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS), FunctionVal(TangentOperatorInNS), FunctionVal(AdjointOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"),
-        ),
-    SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ",
-        SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"),
-        DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"),
-        CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite differences method"),
-        EnableMultiProcessing = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Calculs élémentaires effectués en séquentiel (0) ou en parallèle (1) dans la méthode des différences finies", ang="Elementary calculations done sequentially (0) or in parallel (1) in the finite differences method"),
-        NumberOfProcesses = SIMP(statut="f", typ = "I", val_min=0, defaut=0, fr="Nombre de processus parallèles, 0 pour un contrôle automatique", ang="Number of parallel processes, 0 for automatic control"),
-        ),
-    SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ",
-        SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"),
-        ),
-    TEMPLATE_DATA =  BLOC (condition = " FROM in ( 'Template', ) ",
-        Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")),
-        AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa" ),
-            ),
-        AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ),
-            ),
-        AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ),
-            ),
-        ),
-    )
-
-def ObservationErrorInNS(filename):
-    if os.path.exists(filename):
-        fc = open(filename, 'r').readlines()
-        cr = re.compile("^ObservationError[\s]*=")
-        for ln in fc:
-            if cr.match(ln): return 1
-    return 0
-ObservationErrorInNS.info = u"The Python file has to contain explicitly a \"ObservationError\" variable."
-def F_ObservationError(statut, fv=NoCheckInNS) : return FACT(
-    statut=statut,
-    Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"),
-    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Matrix", "ScalarSparseMatrix", "DiagonalSparseMatrix", ), defaut="ScalarSparseMatrix"),
-    Matrix = BLOC ( condition = " INPUT_TYPE in ( 'Matrix', ) ",
-        data = F_Matrix("o", fv),
-        ),
-    ScalarSparseMatrix = BLOC ( condition = " INPUT_TYPE in ( 'ScalarSparseMatrix', ) ",
-        data = F_ScalarSparseMatrix("o", fv),
-        ),
-    DiagonalSparseMatrix = BLOC ( condition = " INPUT_TYPE in ( 'DiagonalSparseMatrix', ) ",
-        data = F_DiagonalSparseMatrix("o", fv),
-        ),
-    )
-
-def ObservationInNS(filename):
-    if os.path.exists(filename):
-        fc = open(filename, 'r').readlines()
-        cr = re.compile("^Observation[\s]*=")
-        for ln in fc:
-            if cr.match(ln): return 1
-    return 0
-ObservationInNS.info = u"The Python file has to contain explicitly a \"Observation\" variable."
-def F_Observation(statut, fv=NoCheckInNS) : return FACT(
-    statut=statut,
-    Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"),
-    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Vector", "VectorSerie", ), defaut="Vector"),
-    Vector = BLOC ( condition = " INPUT_TYPE in ( 'Vector', ) ",
-        data = F_Vector("o", fv),
-        ),
-    VectorSerie = BLOC ( condition = " INPUT_TYPE in ( 'VectorSerie', ) ",
-        data = F_VectorSerie("o", fv),
-        ),
-    )
-
-def BackgroundErrorInNS(filename):
-    if os.path.exists(filename):
-        fc = open(filename, 'r').readlines()
-        cr = re.compile("^BackgroundError[\s]*=")
-        for ln in fc:
-            if cr.match(ln): return 1
-    return 0
-BackgroundErrorInNS.info = u"The Python file has to contain explicitly a \"BackgroundError\" variable."
-def F_BackgroundError(statut, fv=NoCheckInNS) : return FACT(
-    statut=statut,
-    Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"),
-    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Matrix", "ScalarSparseMatrix", "DiagonalSparseMatrix", ), defaut="ScalarSparseMatrix"),
-    Matrix = BLOC ( condition = " INPUT_TYPE in ( 'Matrix', ) ",
-        data = F_Matrix("o", fv),
-        ),
-    ScalarSparseMatrix = BLOC ( condition = " INPUT_TYPE in ( 'ScalarSparseMatrix', ) ",
-        data = F_ScalarSparseMatrix("o", fv),
-        ),
-    DiagonalSparseMatrix = BLOC ( condition = " INPUT_TYPE in ( 'DiagonalSparseMatrix', ) ",
-        data = F_DiagonalSparseMatrix("o", fv),
-        ),
-    )
-
-def ObservationOperatorInNS(filename):
-    if os.path.exists(filename):
-        fc = open(filename, 'r').readlines()
-        cr = re.compile("^ObservationOperator[\s]*=")
-        for ln in fc:
-            if cr.match(ln): return 1
-    return 0
-ObservationOperatorInNS.info = u"The Python file has to contain explicitly a \"ObservationOperator\" variable."
-def F_ObservationOperator(statut, fv=NoCheckInNS) : return FACT(
-    statut=statut,
-    Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"),
-    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Matrix", "Function", ), defaut="Function"),
-    Matrix = BLOC ( condition = " INPUT_TYPE in ( 'Matrix', ) ",
-        data = F_Matrix("o", fv),
-        ),
-    Function = BLOC ( condition = " INPUT_TYPE in ( 'Function', ) ",
-        data = F_Function("o", fv),
-        ),
-    )
-
-def CheckingPointInNS(filename):
-    if os.path.exists(filename):
-        fc = open(filename, 'r').readlines()
-        cr = re.compile("^CheckingPoint[\s]*=")
-        for ln in fc:
-            if cr.match(ln): return 1
-    return 0
-CheckingPointInNS.info = u"The Python file has to contain explicitly a \"CheckingPoint\" variable."
-def F_CheckingPoint(statut, fv=NoCheckInNS) : return FACT(
-    statut=statut,
-    Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"),
-    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Vector", ), defaut="Vector"),
-    Vector = BLOC ( condition = " INPUT_TYPE in ( 'Vector', ) ",
-        data = F_Vector("o", fv),
-        ),
-    )
-
-def ControlInputInNS(filename):
-    if os.path.exists(filename):
-        fc = open(filename, 'r').readlines()
-        cr = re.compile("^ControlInput[\s]*=")
-        for ln in fc:
-            if cr.match(ln): return 1
-    return 0
-ControlInputInNS.info = u"The Python file has to contain explicitly a \"ControlInput\" variable."
-def F_ControlInput(statut, fv=NoCheckInNS) : return FACT(
-    statut=statut,
-    Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"),
-    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Vector", "VectorSerie", ), defaut="Vector"),
-    Vector = BLOC ( condition = " INPUT_TYPE in ( 'Vector', ) ",
-        data = F_Vector("o", fv),
-        ),
-    VectorSerie = BLOC ( condition = " INPUT_TYPE in ( 'VectorSerie', ) ",
-        data = F_VectorSerie("o", fv),
-        ),
-    )
-
-def BackgroundInNS(filename):
-    if os.path.exists(filename):
-        fc = open(filename, 'r').readlines()
-        cr = re.compile("^Background[\s]*=")
-        for ln in fc:
-            if cr.match(ln): return 1
-    return 0
-BackgroundInNS.info = u"The Python file has to contain explicitly a \"Background\" variable."
-def F_Background(statut, fv=NoCheckInNS) : return FACT(
-    statut=statut,
-    Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"),
-    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Vector", "VectorSerie", ), defaut="Vector"),
-    Vector = BLOC ( condition = " INPUT_TYPE in ( 'Vector', ) ",
-        data = F_Vector("o", fv),
-        ),
-    VectorSerie = BLOC ( condition = " INPUT_TYPE in ( 'VectorSerie', ) ",
-        data = F_VectorSerie("o", fv),
-        ),
-    )
-
-def AlgorithmParametersInNS(filename):
-    if os.path.exists(filename):
-        fc = open(filename, 'r').readlines()
-        cr = re.compile("^AlgorithmParameters[\s]*=")
-        for ln in fc:
-            if cr.match(ln): return 1
-    return 0
-AlgorithmParametersInNS.info = u"The Python file has to contain explicitly a \"AlgorithmParameters\" variable."
-def F_AlgorithmParameters(statut, fv=NoCheckInNS) : return FACT(
-    statut=statut,
-
-    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Dict", ), defaut="Dict"),
-    Dict = BLOC ( condition = " INPUT_TYPE in ( 'Dict', ) ",
-        data = F_Dict("o", fv),
-        ),
-    )
-
-def EvolutionErrorInNS(filename):
-    if os.path.exists(filename):
-        fc = open(filename, 'r').readlines()
-        cr = re.compile("^EvolutionError[\s]*=")
-        for ln in fc:
-            if cr.match(ln): return 1
-    return 0
-EvolutionErrorInNS.info = u"The Python file has to contain explicitly a \"EvolutionError\" variable."
-def F_EvolutionError(statut, fv=NoCheckInNS) : return FACT(
-    statut=statut,
-    Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"),
-    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Matrix", "ScalarSparseMatrix", "DiagonalSparseMatrix", ), defaut="ScalarSparseMatrix"),
-    Matrix = BLOC ( condition = " INPUT_TYPE in ( 'Matrix', ) ",
-        data = F_Matrix("o", fv),
-        ),
-    ScalarSparseMatrix = BLOC ( condition = " INPUT_TYPE in ( 'ScalarSparseMatrix', ) ",
-        data = F_ScalarSparseMatrix("o", fv),
-        ),
-    DiagonalSparseMatrix = BLOC ( condition = " INPUT_TYPE in ( 'DiagonalSparseMatrix', ) ",
-        data = F_DiagonalSparseMatrix("o", fv),
-        ),
-    )
-
-def UserDataInitInNS(filename):
-    if os.path.exists(filename):
-        fc = open(filename, 'r').readlines()
-        cr = re.compile("^UserDataInit[\s]*=")
-        for ln in fc:
-            if cr.match(ln): return 1
-    return 0
-UserDataInitInNS.info = u"The Python file has to contain explicitly a \"UserDataInit\" variable."
-def F_UserDataInit(statut, fv=NoCheckInNS) : return FACT(
-    statut=statut,
-
-    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Dict", ), defaut="Dict"),
-    Dict = BLOC ( condition = " INPUT_TYPE in ( 'Dict', ) ",
-        data = F_Dict("o", fv),
-        ),
-    )
-
-def EvolutionModelInNS(filename):
-    if os.path.exists(filename):
-        fc = open(filename, 'r').readlines()
-        cr = re.compile("^EvolutionModel[\s]*=")
-        for ln in fc:
-            if cr.match(ln): return 1
-    return 0
-EvolutionModelInNS.info = u"The Python file has to contain explicitly a \"EvolutionModel\" variable."
-def F_EvolutionModel(statut, fv=NoCheckInNS) : return FACT(
-    statut=statut,
-    Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"),
-    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Matrix", "Function", ), defaut="Function"),
-    Matrix = BLOC ( condition = " INPUT_TYPE in ( 'Matrix', ) ",
-        data = F_Matrix("o", fv),
-        ),
-    Function = BLOC ( condition = " INPUT_TYPE in ( 'Function', ) ",
-        data = F_Function("o", fv),
-        ),
-    )
-
-def F_UserPostAnalysis(statut, fv=NoCheckInNS) : return FACT(
-    statut = statut,
-    FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", "Template", ), defaut="Template"),
-    SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ",
-        SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(fv)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"),
-        ),
-    STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ",
-        STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"),
-        ),
-    SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ",
-        SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS), FunctionVal(TangentOperatorInNS), FunctionVal(AdjointOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"),
-        ),
-    SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ",
-        SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"),
-        DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"),
-        CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite differences method"),
-        EnableMultiProcessing = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Calculs élémentaires effectués en séquentiel (0) ou en parallèle (1) dans la méthode des différences finies", ang="Elementary calculations done sequentially (0) or in parallel (1) in the finite differences method"),
-        NumberOfProcesses = SIMP(statut="f", typ = "I", val_min=0, defaut=0, fr="Nombre de processus parallèles, 0 pour un contrôle automatique", ang="Number of parallel processes, 0 for automatic control"),
-        ),
-    SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ",
-        SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"),
-        ),
-    TEMPLATE_DATA =  BLOC (condition = " FROM in ( 'Template', ) ",
-        Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")),
-        AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa" ),
-            ),
-        AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ),
-            ),
-        AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ),
-            ),
-        ),
-    )
-
-def F_InitChoice() : return  ("Background",
-                              "BackgroundError",
-                              "Observation",
-                              "ObservationError",
-                              "ObservationOperator",
-                              "EvolutionModel",
-                              "EvolutionError",
-                              "AlgorithmParameters",
-                              "UserPostAnalysis",
-                             )
-
-def F_Init(statut) : return FACT(statut = statut,
-    INIT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')]),
-    TARGET_LIST = SIMP(statut = "o", typ = "TXM", min=1, max="**", into=F_InitChoice(),  validators=(VerifExiste(2))),
-    )
-
-def F_ObserverTemplate() : return BLOC(condition = " NodeType == 'Template' ",
-                Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter", "ValuePrinterAndGnuPlotter", "ValueSeriePrinterAndGnuPlotter", "ValuePrinterSaverAndGnuPlotter", "ValueSeriePrinterSaverAndGnuPlotter", "ValueMean", "ValueStandardError", "ValueVariance", "ValueL2Norm", "ValueRMS")),
-                ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info, var[-1]", fr="Imprime sur la sortie standard la valeur courante de la variable", ang="Print on standard output the current value of the variable" ),
-                    ),
-                ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info, var[:]", fr="Imprime sur la sortie standard la série des valeurs de la variable", ang="Print on standard output the value serie of the variable" ),
-                    ),
-                ValueSaver = BLOC (condition = " Template == 'ValueSaver' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy, re\nv=numpy.array(var[-1], ndmin=1)\nglobal istep\ntry:\n    istep += 1\nexcept:\n    istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)", fr="Enregistre la valeur courante de la variable dans un fichier du répertoire '/tmp' nommé 'value...txt' selon le nom de la variable et l'étape d'enregistrement", ang="Save the current value of the variable in a file of the '/tmp' directory named 'value...txt' from the variable name and the saving step" ),
-                    ),
-                ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy, re\nv=numpy.array(var[:],  ndmin=1)\nglobal istep\ntry:\n    istep += 1\nexcept:\n    istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)", fr="Enregistre la série des valeurs de la variable dans un fichier du répertoire '/tmp' nommé 'value...txt' selon le nom de la variable et l'étape", ang="Save the value serie of the variable in a file of the '/tmp' directory named 'value...txt' from the variable name and the saving step" ),
-                    ),
-                ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy, re\nv=numpy.array(var[-1], ndmin=1)\nprint info,v\nglobal istep\ntry:\n    istep += 1\nexcept:\n    istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)", fr="Imprime sur la sortie standard et, en même temps, enregistre dans un fichier la valeur courante de la variable", ang="Print on standard output and, in the same time, save in a file the current value of the variable" ),
-                    ),
-                ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy, re\nv=numpy.array(var[:],  ndmin=1)\nprint info,v\nglobal istep\ntry:\n    istep += 1\nexcept:\n    istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)", fr="Imprime sur la sortie standard et, en même temps, enregistre dans un fichier la série des valeurs de la variable", ang="Print on standard output and, in the same time, save in a file the value serie of the variable" ),
-                    ),
-                ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy, Gnuplot\nv=numpy.array(var[-1], ndmin=1)\nglobal ifig, gp\ntry:\n    ifig += 1\n    gp(' set style data lines')\nexcept:\n    ifig = 0\n    gp = Gnuplot.Gnuplot(persist=1)\n    gp(' set style data lines')\ngp('set title  \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( v, with_='lines lw 2' ) )", fr="Affiche graphiquement avec Gnuplot la valeur courante de la variable", ang="Graphically plot with Gnuplot the current value of the variable" ),
-                    ),
-                ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy, Gnuplot\nv=numpy.array(var[:],  ndmin=1)\nglobal ifig, gp\ntry:\n    ifig += 1\n    gp(' set style data lines')\nexcept:\n    ifig = 0\n    gp = Gnuplot.Gnuplot(persist=1)\n    gp(' set style data lines')\ngp('set title  \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( v, with_='lines lw 2' ) )", fr="Affiche graphiquement avec Gnuplot la série des valeurs de la variable", ang="Graphically plot with Gnuplot the value serie of the variable" ),
-                    ),
-                ValuePrinterAndGnuPlotter = BLOC (condition = " Template == 'ValuePrinterAndGnuPlotter' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info, var[-1]\nimport numpy, Gnuplot\nv=numpy.array(var[-1], ndmin=1)\nglobal ifig,gp\ntry:\n    ifig += 1\n    gp(' set style data lines')\nexcept:\n    ifig = 0\n    gp = Gnuplot.Gnuplot(persist=1)\n    gp(' set style data lines')\ngp('set title  \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( v, with_='lines lw 2' ) )", fr="Imprime sur la sortie standard et, en même temps, affiche graphiquement avec Gnuplot la valeur courante de la variable", ang="Print on standard output and, in the same time, graphically plot with Gnuplot the current value of the variable" ),
-                    ),
-                ValueSeriePrinterAndGnuPlotter = BLOC (condition = " Template == 'ValueSeriePrinterAndGnuPlotter' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info, var[:] \nimport numpy, Gnuplot\nv=numpy.array(var[:],  ndmin=1)\nglobal ifig,gp\ntry:\n    ifig += 1\n    gp(' set style data lines')\nexcept:\n    ifig = 0\n    gp = Gnuplot.Gnuplot(persist=1)\n    gp(' set style data lines')\ngp('set title  \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( v, with_='lines lw 2' ) )", fr="Imprime sur la sortie standard et, en même temps, affiche graphiquement avec Gnuplot la série des valeurs de la variable", ang="Print on standard output and, in the same time, graphically plot with Gnuplot the value serie of the variable" ),
-                    ),
-                ValuePrinterSaverAndGnuPlotter = BLOC (condition = " Template == 'ValuePrinterSaverAndGnuPlotter' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info, var[-1]\nimport numpy, re\nv=numpy.array(var[-1], ndmin=1)\nglobal istep\ntry:\n    istep += 1\nexcept:\n    istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)\nimport Gnuplot\nglobal ifig,gp\ntry:\n    ifig += 1\n    gp(' set style data lines')\nexcept:\n    ifig = 0\n    gp = Gnuplot.Gnuplot(persist=1)\n    gp(' set style data lines')\ngp('set title  \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( v, with_='lines lw 2' ) )", fr="Imprime sur la sortie standard et, en même temps, enregistre dans un fichier et affiche graphiquement la valeur courante de la variable ", ang="Print on standard output and, in the same, time save in a file and graphically plot the current value of the variable" ),
-                    ),
-                ValueSeriePrinterSaverAndGnuPlotter = BLOC (condition = " Template == 'ValueSeriePrinterSaverAndGnuPlotter' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print info, var[:] \nimport numpy, re\nv=numpy.array(var[:],  ndmin=1)\nglobal istep\ntry:\n    istep += 1\nexcept:\n    istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint 'Value saved in \"%s\"'%f\nnumpy.savetxt(f,v)\nimport Gnuplot\nglobal ifig,gp\ntry:\n    ifig += 1\n    gp(' set style data lines')\nexcept:\n    ifig = 0\n    gp = Gnuplot.Gnuplot(persist=1)\n    gp(' set style data lines')\ngp('set title  \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( v, with_='lines lw 2' ) )", fr="Imprime sur la sortie standard et, en même temps, enregistre dans un fichier et affiche graphiquement la série des valeurs de la variable", ang="Print on standard output and, in the same, time save in a file and graphically plot the value serie of the variable" ),
-                    ),
-                ValueMean = BLOC (condition = " Template == 'ValueMean' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nprint info, numpy.nanmean(var[-1])", fr="Imprime sur la sortie standard la moyenne de la valeur courante de la variable", ang="Print on standard output the mean of the current value of the variable" ),
-                    ),
-                ValueStandardError = BLOC (condition = " Template == 'ValueStandardError' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nprint info, numpy.nanstd(var[-1])", fr="Imprime sur la sortie standard l'écart-type de la valeur courante de la variable", ang="Print on standard output the standard error of the current value of the variable" ),
-                    ),
-                ValueVariance = BLOC (condition = " Template == 'ValueVariance' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nprint info, numpy.nanvar(var[-1])", fr="Imprime sur la sortie standard la variance de la valeur courante de la variable", ang="Print on standard output the variance of the current value of the variable" ),
-                    ),
-                ValueL2Norm = BLOC (condition = " Template == 'ValueL2Norm' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nv = numpy.matrix( numpy.ravel( var[-1] ) )\nprint info, float( numpy.linalg.norm(v) )", fr="Imprime sur la sortie standard la norme L2 de la valeur courante de la variable", ang="Print on standard output the L2 norm of the current value of the variable" ),
-                    ),
-                ValueRMS = BLOC (condition = " Template == 'ValueRMS' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nv = numpy.matrix( numpy.ravel( var[-1] ) )\nprint info, float( numpy.sqrt((1./v.size)*(v*v.T)) )", fr="Imprime sur la sortie standard la racine de la moyenne des carrés (RMS), ou moyenne quadratique, de la valeur courante de la variable", ang="Print on standard output the root mean square (RMS), or quadratic mean, of the current value of the variable" ),
-                    ),
-                )
-
-def F_Observers(statut) : return FACT(
-    statut=statut,
-    SELECTION = SIMP(statut="o", defaut=[], typ="TXM", min=0, max="**", validators=NoRepeat(), into=(['Analysis', 'Innovation', 'InnovationAtCurrentState', 'CurrentState', 'CurrentOptimum', 'IndexOfOptimum', 'SimulatedObservationAtBackground', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum', 'SimulatedObservationAtCurrentOptimum', 'BMA', 'OMA', 'OMB', 'CostFunctionJ', 'CostFunctionJb', 'CostFunctionJo', 'GradientOfCostFunctionJ', 'GradientOfCostFunctionJb', 'GradientOfCostFunctionJo', 'SigmaObs2', 'SigmaBck2', 'APosterioriCorrelations', 'APosterioriCovariance', 'APosterioriStandardDeviations', 'APosterioriVariances', 'Residu'])),
-    Analysis = BLOC (condition=" 'Analysis' in set(SELECTION) ",
-        Analysis_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "Analysis"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    Innovation = BLOC (condition=" 'Innovation' in set(SELECTION) ",
-        Innovation_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "Innovation"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    InnovationAtCurrentState = BLOC (condition=" 'InnovationAtCurrentState' in set(SELECTION) ",
-        InnovationAtCurrentState_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "InnovationAtCurrentState"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    CurrentState = BLOC (condition=" 'CurrentState' in set(SELECTION) ",
-        CurrentState_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "CurrentState"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    CurrentOptimum = BLOC (condition=" 'CurrentOptimum' in set(SELECTION) ",
-        CurrentOptimum_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "CurrentOptimum"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    IndexOfOptimum = BLOC (condition=" 'IndexOfOptimum' in set(SELECTION) ",
-        IndexOfOptimum_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "IndexOfOptimum"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    SimulatedObservationAtBackground = BLOC (condition=" 'SimulatedObservationAtBackground' in set(SELECTION) ",
-        SimulatedObservationAtBackground_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "SimulatedObservationAtBackground"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    SimulatedObservationAtCurrentState = BLOC (condition=" 'SimulatedObservationAtCurrentState' in set(SELECTION) ",
-        SimulatedObservationAtCurrentState_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "SimulatedObservationAtCurrentState"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    SimulatedObservationAtOptimum = BLOC (condition=" 'SimulatedObservationAtOptimum' in set(SELECTION) ",
-        SimulatedObservationAtOptimum_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "SimulatedObservationAtOptimum"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    SimulatedObservationAtCurrentOptimum = BLOC (condition=" 'SimulatedObservationAtCurrentOptimum' in set(SELECTION) ",
-        SimulatedObservationAtCurrentOptimum_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "SimulatedObservationAtCurrentOptimum"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    BMA = BLOC (condition=" 'BMA' in set(SELECTION) ",
-        BMA_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "BMA"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    OMA = BLOC (condition=" 'OMA' in set(SELECTION) ",
-        OMA_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "OMA"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    OMB = BLOC (condition=" 'OMB' in set(SELECTION) ",
-        OMB_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "OMB"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    CostFunctionJ = BLOC (condition=" 'CostFunctionJ' in set(SELECTION) ",
-        CostFunctionJ_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "CostFunctionJ"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    CostFunctionJb = BLOC (condition=" 'CostFunctionJb' in set(SELECTION) ",
-        CostFunctionJb_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "CostFunctionJb"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    CostFunctionJo = BLOC (condition=" 'CostFunctionJo' in set(SELECTION) ",
-        CostFunctionJo_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "CostFunctionJo"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    GradientOfCostFunctionJ = BLOC (condition=" 'GradientOfCostFunctionJ' in set(SELECTION) ",
-        GradientOfCostFunctionJ_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "GradientOfCostFunctionJ"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    GradientOfCostFunctionJb = BLOC (condition=" 'GradientOfCostFunctionJb' in set(SELECTION) ",
-        GradientOfCostFunctionJb_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "GradientOfCostFunctionJb"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    GradientOfCostFunctionJo = BLOC (condition=" 'GradientOfCostFunctionJo' in set(SELECTION) ",
-        GradientOfCostFunctionJo_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "GradientOfCostFunctionJo"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    SigmaObs2 = BLOC (condition=" 'SigmaObs2' in set(SELECTION) ",
-        SigmaObs2_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "SigmaObs2"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    SigmaBck2 = BLOC (condition=" 'SigmaBck2' in set(SELECTION) ",
-        SigmaBck2_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "SigmaBck2"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    APosterioriCorrelations = BLOC (condition=" 'APosterioriCorrelations' in set(SELECTION) ",
-        APosterioriCorrelations_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "APosterioriCorrelations"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    APosterioriCovariance = BLOC (condition=" 'APosterioriCovariance' in set(SELECTION) ",
-        APosterioriCovariance_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "APosterioriCovariance"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    APosterioriStandardDeviations = BLOC (condition=" 'APosterioriStandardDeviations' in set(SELECTION) ",
-        APosterioriStandardDeviations_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "APosterioriStandardDeviations"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    APosterioriVariances = BLOC (condition=" 'APosterioriVariances' in set(SELECTION) ",
-        APosterioriVariances_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "APosterioriVariances"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    Residu = BLOC (condition=" 'Residu' in set(SELECTION) ",
-        Residu_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "Residu"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    )
-
-def AlgorithmParametersInNS(filename):
-    if os.path.exists(filename):
-        fc = open(filename, 'r').readlines()
-        cr = re.compile("^AlgorithmParameters[\s]*=")
-        for ln in fc:
-            if cr.match(ln): return 1
-    return 0
-AlgorithmParametersInNS.info = u"The Python file has to contain explicitly an \"AlgorithmParameters\" variable."
-def F_AlgorithmParameters(statut, algos_names, fv=NoCheckInNS) : return FACT(
-    statut = statut,
-    Algorithm = SIMP(statut="o", typ = "TXM", into = algos_names ),
-    Parameters = SIMP(statut="f", typ = "TXM", into=("Defaults", "Dict") ),
-    Dict = BLOC ( condition = " Parameters == 'Dict' ",
-        statut="f",
-        data = F_Dict("o", fv),
-        ),
-    Parameters3DVAR = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == '3DVAR') ",
-        statut="f",
-        Bounds = SIMP(statut="f", typ="TXM", fr="Liste des valeurs de bornes"),
-        CostDecrementTolerance = SIMP(statut="f", typ="R", min=1, max=1, defaut=1e-07, fr="Diminution relative minimale du cout lors de l'arrêt"),
-        GradientNormTolerance = SIMP(statut="f", typ="R", min=1, max=1, defaut=1e-05, fr="Maximum des composantes du gradient lors de l'arrêt"),
-        MaximumNumberOfSteps = SIMP(statut="f", typ="I", val_min=-1, min=1, max=1, defaut=15000, fr="Nombre maximal de pas d'optimisation"),
-        Minimizer = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="LBFGSB", into=['LBFGSB', 'TNC', 'CG', 'NCG', 'BFGS'], fr="Minimiseur utilisé"),
-        NumberOfSamplesForQuantiles = SIMP(statut="f", typ="I", val_min=1, min=1, max=1, defaut=100, fr="Nombre d'échantillons simulés pour le calcul des quantiles"),
-        ProjectedGradientTolerance = SIMP(statut="f", typ="R", val_min=-1, min=1, max=1, defaut=-1.0, fr="Maximum des composantes du gradient projeté lors de l'arrêt"),
-        Quantiles = SIMP(statut="f", typ="TXM", max="**", into=None, fr="Liste des valeurs de quantiles"),
-        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
-        SimulationForQuantiles = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="Linear", into=['Linear', 'NonLinear'], fr="Type de simulation pour l'estimation des quantiles"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['APosterioriCorrelations', 'APosterioriCovariance', 'APosterioriStandardDeviations', 'APosterioriVariances', 'BMA', 'OMA', 'OMB', 'CostFunctionJ', 'CurrentState', 'CurrentOptimum', 'IndexOfOptimum', 'Innovation', 'InnovationAtCurrentState', 'CostFunctionJAtCurrentOptimum', 'SigmaObs2', 'MahalanobisConsistency', 'SimulationQuantiles', 'SimulatedObservationAtBackground', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum', 'SimulatedObservationAtCurrentOptimum'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    Parameters4DVAR = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == '4DVAR') ",
-        statut="f",
-        Bounds = SIMP(statut="f", typ="TXM", fr="Liste des valeurs de bornes"),
-        ConstrainedBy = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="EstimateProjection", into=['EstimateProjection'], fr="Prise en compte des contraintes"),
-        CostDecrementTolerance = SIMP(statut="f", typ="R", min=1, max=1, defaut=1e-07, fr="Diminution relative minimale du cout lors de l'arrêt"),
-        EstimationOf = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="State", into=['State', 'Parameters'], fr="Estimation d'etat ou de parametres"),
-        GradientNormTolerance = SIMP(statut="f", typ="R", min=1, max=1, defaut=1e-05, fr="Maximum des composantes du gradient lors de l'arrêt"),
-        MaximumNumberOfSteps = SIMP(statut="f", typ="I", val_min=-1, min=1, max=1, defaut=15000, fr="Nombre maximal de pas d'optimisation"),
-        Minimizer = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="LBFGSB", into=['LBFGSB', 'TNC', 'CG', 'NCG', 'BFGS'], fr="Minimiseur utilisé"),
-        ProjectedGradientTolerance = SIMP(statut="f", typ="R", val_min=-1, min=1, max=1, defaut=-1.0, fr="Maximum des composantes du gradient projeté lors de l'arrêt"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['BMA', 'CurrentState', 'CostFunctionJ', 'IndexOfOptimum', 'CurrentOptimum', 'CostFunctionJAtCurrentOptimum'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    ParametersBlue = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'Blue') ",
-        statut="f",
-        NumberOfSamplesForQuantiles = SIMP(statut="f", typ="I", val_min=1, min=1, max=1, defaut=100, fr="Nombre d'échantillons simulés pour le calcul des quantiles"),
-        Quantiles = SIMP(statut="f", typ="TXM", max="**", into=None, fr="Liste des valeurs de quantiles"),
-        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
-        SimulationForQuantiles = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="Linear", into=['Linear', 'NonLinear'], fr="Type de simulation pour l'estimation des quantiles"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['APosterioriCorrelations', 'APosterioriCovariance', 'APosterioriStandardDeviations', 'APosterioriVariances', 'BMA', 'OMA', 'OMB', 'CurrentState', 'CostFunctionJ', 'Innovation', 'SigmaBck2', 'SigmaObs2', 'MahalanobisConsistency', 'SimulationQuantiles', 'SimulatedObservationAtBackground', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    ParametersDerivativeFreeOptimization = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'DerivativeFreeOptimization') ",
-        statut="f",
-        CostDecrementTolerance = SIMP(statut="f", typ="R", min=1, max=1, defaut=1e-07, fr="Diminution relative minimale du cout lors de l'arrêt"),
-        MaximumNumberOfFunctionEvaluations = SIMP(statut="f", typ="I", val_min=-1, min=1, max=1, defaut=15000, fr="Nombre maximal de d'évaluations de la function"),
-        MaximumNumberOfSteps = SIMP(statut="f", typ="I", val_min=-1, min=1, max=1, defaut=15000, fr="Nombre maximal de pas d'optimisation"),
-        Minimizer = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="POWELL", into=['POWELL', 'SIMPLEX'], fr="Minimiseur utilisé"),
-        QualityCriterion = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="AugmentedWeightedLeastSquares", into=['AugmentedWeightedLeastSquares', 'AWLS', 'DA', 'WeightedLeastSquares', 'WLS', 'LeastSquares', 'LS', 'L2', 'AbsoluteValue', 'L1', 'MaximumError', 'ME'], fr="Critère de qualité utilisé"),
-        StateVariationTolerance = SIMP(statut="f", typ="R", min=1, max=1, defaut=0.0001, fr="Variation relative maximale de l'état lors de l'arrêt"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['CurrentState', 'CostFunctionJ', 'SimulatedObservationAtBackground', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    ParametersEnsembleBlue = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'EnsembleBlue') ",
-        statut="f",
-        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['CurrentState', 'Innovation', 'SimulatedObservationAtBackground', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    ParametersExtendedBlue = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'ExtendedBlue') ",
-        statut="f",
-        NumberOfSamplesForQuantiles = SIMP(statut="f", typ="I", val_min=1, min=1, max=1, defaut=100, fr="Nombre d'échantillons simulés pour le calcul des quantiles"),
-        Quantiles = SIMP(statut="f", typ="TXM", max="**", into=None, fr="Liste des valeurs de quantiles"),
-        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
-        SimulationForQuantiles = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="Linear", into=['Linear', 'NonLinear'], fr="Type de simulation pour l'estimation des quantiles"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['APosterioriCorrelations', 'APosterioriCovariance', 'APosterioriStandardDeviations', 'APosterioriVariances', 'BMA', 'OMA', 'OMB', 'CurrentState', 'CostFunctionJ', 'Innovation', 'SigmaBck2', 'SigmaObs2', 'MahalanobisConsistency', 'SimulationQuantiles', 'SimulatedObservationAtBackground', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    ParametersExtendedKalmanFilter = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'ExtendedKalmanFilter') ",
-        statut="f",
-        Bounds = SIMP(statut="f", typ="TXM", fr="Liste des valeurs de bornes"),
-        ConstrainedBy = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="EstimateProjection", into=['EstimateProjection'], fr="Prise en compte des contraintes"),
-        EstimationOf = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="State", into=['State', 'Parameters'], fr="Estimation d'etat ou de parametres"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['APosterioriCorrelations', 'APosterioriCovariance', 'APosterioriStandardDeviations', 'APosterioriVariances', 'BMA', 'CurrentState', 'CostFunctionJ', 'Innovation'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    ParametersKalmanFilter = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'KalmanFilter') ",
-        statut="f",
-        EstimationOf = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="State", into=['State', 'Parameters'], fr="Estimation d'etat ou de parametres"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['APosterioriCorrelations', 'APosterioriCovariance', 'APosterioriStandardDeviations', 'APosterioriVariances', 'BMA', 'CurrentState', 'CostFunctionJ', 'Innovation'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    ParametersLinearLeastSquares = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'LinearLeastSquares') ",
-        statut="f",
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['OMA', 'CurrentState', 'CostFunctionJ', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    ParametersNonLinearLeastSquares = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'NonLinearLeastSquares') ",
-        statut="f",
-        Bounds = SIMP(statut="f", typ="TXM", fr="Liste des valeurs de bornes"),
-        CostDecrementTolerance = SIMP(statut="f", typ="R", min=1, max=1, defaut=1e-07, fr="Diminution relative minimale du cout lors de l'arrêt"),
-        GradientNormTolerance = SIMP(statut="f", typ="R", min=1, max=1, defaut=1e-05, fr="Maximum des composantes du gradient lors de l'arrêt"),
-        MaximumNumberOfSteps = SIMP(statut="f", typ="I", val_min=-1, min=1, max=1, defaut=15000, fr="Nombre maximal de pas d'optimisation"),
-        Minimizer = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="LBFGSB", into=['LBFGSB', 'TNC', 'CG', 'NCG', 'BFGS', 'LM'], fr="Minimiseur utilisé"),
-        ProjectedGradientTolerance = SIMP(statut="f", typ="R", val_min=-1, min=1, max=1, defaut=-1.0, fr="Maximum des composantes du gradient projeté lors de l'arrêt"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['BMA', 'OMA', 'OMB', 'CurrentState', 'CostFunctionJ', 'Innovation', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    ParametersParticleSwarmOptimization = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'ParticleSwarmOptimization') ",
-        statut="f",
-        BoxBounds = SIMP(statut="f", typ="TXM", fr="Liste des valeurs de bornes d'incréments de paramètres"),
-        GroupRecallRate = SIMP(statut="f", typ="R", val_min=0.0, val_max=1.0, min=1, max=1, defaut=0.5, fr="Taux de rappel au meilleur insecte du groupe (entre 0 et 1)"),
-        MaximumNumberOfSteps = SIMP(statut="f", typ="I", val_min=1, min=1, max=1, defaut=50, fr="Nombre maximal de pas d'optimisation"),
-        NumberOfInsects = SIMP(statut="f", typ="I", val_min=-1, min=1, max=1, defaut=100, fr="Nombre d'insectes dans l'essaim"),
-        QualityCriterion = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="AugmentedWeightedLeastSquares", into=['AugmentedWeightedLeastSquares', 'AWLS', 'AugmentedPonderatedLeastSquares', 'APLS', 'DA', 'WeightedLeastSquares', 'WLS', 'PonderatedLeastSquares', 'PLS', 'LeastSquares', 'LS', 'L2', 'AbsoluteValue', 'L1', 'MaximumError', 'ME'], fr="Critère de qualité utilisé"),
-        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['BMA', 'OMA', 'OMB', 'CurrentState', 'CostFunctionJ', 'Innovation', 'SimulatedObservationAtBackground', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        SwarmVelocity = SIMP(statut="f", typ="R", val_min=0.0, min=1, max=1, defaut=1.0, fr="Vitesse de groupe imposée par l'essaim"),
-        ),
-    ParametersQuantileRegression = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'QuantileRegression') ",
-        statut="f",
-        Bounds = SIMP(statut="f", typ="TXM", fr="Liste des valeurs de bornes"),
-        CostDecrementTolerance = SIMP(statut="f", typ="R", min=1, max=1, defaut=1e-06, fr="Maximum de variation de la fonction d'estimation lors de l'arrêt"),
-        MaximumNumberOfSteps = SIMP(statut="f", typ="I", val_min=1, min=1, max=1, defaut=15000, fr="Nombre maximal de pas d'optimisation"),
-        Minimizer = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="MMQR", into=['MMQR'], fr="Minimiseur utilisé"),
-        Quantile = SIMP(statut="f", typ="R", val_min=0.0, val_max=1.0, min=1, max=1, defaut=0.5, fr="Quantile pour la regression de quantile"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['BMA', 'OMA', 'OMB', 'CurrentState', 'CostFunctionJ', 'Innovation', 'SimulatedObservationAtBackground', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    ParametersUnscentedKalmanFilter = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'UnscentedKalmanFilter') ",
-        statut="f",
-        Alpha = SIMP(statut="f", typ="R", val_min=0.0001, val_max=1.0, min=1, max=1, defaut=1.0, fr=""),
-        Beta = SIMP(statut="f", typ="R", min=1, max=1, defaut=2.0, fr=""),
-        Bounds = SIMP(statut="f", typ="TXM", fr="Liste des valeurs de bornes"),
-        ConstrainedBy = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="EstimateProjection", into=['EstimateProjection'], fr="Prise en compte des contraintes"),
-        EstimationOf = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="State", into=['State', 'Parameters'], fr="Estimation d'etat ou de parametres"),
-        Kappa = SIMP(statut="f", typ="I", val_max=2, min=1, max=1, defaut=0, fr=""),
-        Reconditioner = SIMP(statut="f", typ="R", val_min=0.001, val_max=10.0, min=1, max=1, defaut=1.0, fr=""),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['APosterioriCorrelations', 'APosterioriCovariance', 'APosterioriStandardDeviations', 'APosterioriVariances', 'BMA', 'CurrentState', 'CostFunctionJ', 'Innovation'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    ParametersAdjointTest = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'AdjointTest') ",
-        statut="f",
-        AmplitudeOfInitialDirection = SIMP(statut="f", typ="R", min=1, max=1, defaut=1.0, fr="Amplitude de la direction initiale de la dérivée directionnelle autour du point nominal"),
-        EpsilonMinimumExponent = SIMP(statut="f", typ="I", val_min=-20, val_max=0, min=1, max=1, defaut=-8, fr="Exposant minimal en puissance de 10 pour le multiplicateur d'incrément"),
-        InitialDirection = SIMP(statut="f", typ="TXM", fr="Direction initiale de la dérivée directionnelle autour du point nominal"),
-        ResiduFormula = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="ScalarProduct", into=['ScalarProduct'], fr="Formule de résidu utilisée"),
-        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['CurrentState', 'Residu', 'SimulatedObservationAtCurrentState'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    ParametersFunctionTest = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'FunctionTest') ",
-        statut="f",
-        NumberOfPrintedDigits = SIMP(statut="f", typ="I", val_min=0, min=1, max=1, defaut=5, fr="Nombre de chiffres affichés pour les impressions de réels"),
-        NumberOfRepetition = SIMP(statut="f", typ="I", val_min=1, min=1, max=1, defaut=1, fr="Nombre de fois où l'exécution de la fonction est répétée"),
-        SetDebug = SIMP(statut="f", typ="I", min=1, max=1, defaut=0, fr="Activation du mode debug lors de l'exécution"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['CurrentState', 'SimulatedObservationAtCurrentState'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    ParametersGradientTest = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'GradientTest') ",
-        statut="f",
-        AmplitudeOfInitialDirection = SIMP(statut="f", typ="R", min=1, max=1, defaut=1.0, fr="Amplitude de la direction initiale de la dérivée directionnelle autour du point nominal"),
-        AmplitudeOfTangentPerturbation = SIMP(statut="f", typ="R", val_min=1e-10, val_max=1.0, min=1, max=1, defaut=0.01, fr="Amplitude de la perturbation pour le calcul de la forme tangente"),
-        EpsilonMinimumExponent = SIMP(statut="f", typ="I", val_min=-20, val_max=0, min=1, max=1, defaut=-8, fr="Exposant minimal en puissance de 10 pour le multiplicateur d'incrément"),
-        InitialDirection = SIMP(statut="f", typ="TXM", fr="Direction initiale de la dérivée directionnelle autour du point nominal"),
-        ResiduFormula = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="Taylor", into=['Norm', 'TaylorOnNorm', 'Taylor'], fr="Formule de résidu utilisée"),
-        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['CurrentState', 'Residu', 'SimulatedObservationAtCurrentState'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    ParametersLinearityTest = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'LinearityTest') ",
-        statut="f",
-        AmplitudeOfInitialDirection = SIMP(statut="f", typ="R", min=1, max=1, defaut=1.0, fr="Amplitude de la direction initiale de la dérivée directionnelle autour du point nominal"),
-        AmplitudeOfTangentPerturbation = SIMP(statut="f", typ="R", val_min=1e-10, val_max=1.0, min=1, max=1, defaut=0.01, fr="Amplitude de la perturbation pour le calcul de la forme tangente"),
-        EpsilonMinimumExponent = SIMP(statut="f", typ="I", val_min=-20, val_max=0, min=1, max=1, defaut=-8, fr="Exposant minimal en puissance de 10 pour le multiplicateur d'incrément"),
-        InitialDirection = SIMP(statut="f", typ="TXM", fr="Direction initiale de la dérivée directionnelle autour du point nominal"),
-        ResiduFormula = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="CenteredDL", into=['CenteredDL', 'Taylor', 'NominalTaylor', 'NominalTaylorRMS'], fr="Formule de résidu utilisée"),
-        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['CurrentState', 'Residu', 'SimulatedObservationAtCurrentState'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    ParametersSamplingTest = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'SamplingTest') ",
-        statut="f",
-        QualityCriterion = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="AugmentedWeightedLeastSquares", into=['AugmentedWeightedLeastSquares', 'AWLS', 'AugmentedPonderatedLeastSquares', 'APLS', 'DA', 'WeightedLeastSquares', 'WLS', 'PonderatedLeastSquares', 'PLS', 'LeastSquares', 'LS', 'L2', 'AbsoluteValue', 'L1', 'MaximumError', 'ME'], fr="Critère de qualité utilisé"),
-        SampleAsExplicitHyperCube = SIMP(statut="f", typ="TXM", max="**", into=None, fr="Points de calcul définis par un hyper-cube dont on donne la liste des échantillonages de chaque variable comme une liste"),
-        SampleAsIndependantRandomVariables = SIMP(statut="f", typ="TXM", max="**", into=None, fr="Points de calcul définis par un hyper-cube dont les points sur chaque axe proviennent de l'échantillonage indépendant de la variable selon la spécification ['distribution',[parametres],nombre]"),
-        SampleAsMinMaxStepHyperCube = SIMP(statut="f", typ="TXM", max="**", into=None, fr="Points de calcul définis par un hyper-cube dont on donne la liste des échantillonages de chaque variable par un triplet [min,max,step]"),
-        SampleAsnUplet = SIMP(statut="f", typ="TXM", max="**", into=None, fr="Points de calcul définis par une liste de n-uplet"),
-        SetDebug = SIMP(statut="f", typ="I", min=1, max=1, defaut=0, fr="Activation du mode debug lors de l'exécution"),
-        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['CostFunctionJ', 'CurrentState', 'InnovationAtCurrentState', 'SimulatedObservationAtCurrentState'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    ParametersTangentTest = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'TangentTest') ",
-        statut="f",
-        AmplitudeOfInitialDirection = SIMP(statut="f", typ="R", min=1, max=1, defaut=1.0, fr="Amplitude de la direction initiale de la dérivée directionnelle autour du point nominal"),
-        AmplitudeOfTangentPerturbation = SIMP(statut="f", typ="R", val_min=1e-10, val_max=1.0, min=1, max=1, defaut=0.01, fr="Amplitude de la perturbation pour le calcul de la forme tangente"),
-        EpsilonMinimumExponent = SIMP(statut="f", typ="I", val_min=-20, val_max=0, min=1, max=1, defaut=-8, fr="Exposant minimal en puissance de 10 pour le multiplicateur d'incrément"),
-        InitialDirection = SIMP(statut="f", typ="TXM", fr="Direction initiale de la dérivée directionnelle autour du point nominal"),
-        ResiduFormula = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="Taylor", into=['Taylor'], fr="Formule de résidu utilisée"),
-        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['CurrentState', 'Residu', 'SimulatedObservationAtCurrentState'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    )
-
-def F_variables(statut) : return FACT(
-    statut=statut,
-    regles = ( MEME_NOMBRE ('NAMES', 'SIZES')),
-    NAMES = SIMP(statut="o", typ="TXM", max="**", validators=NoRepeat()),
-    SIZES = SIMP(statut="o", typ="I", val_min=1, max="**")
-    )
-def ChDir(dirname):
-    os.chdir(os.path.abspath(dirname))
-    return 1
-ChDir.info = u"This has to be a regular directory path."
-
-ASSIMILATION_STUDY = PROC(nom="ASSIMILATION_STUDY",
-    op=None,
-    repetable           = "n",
-    StudyName           = SIMP(statut="o", typ = "TXM", defaut="ADAO Calculation Case"),
-    StudyRepertory      = SIMP(statut="f", typ = "Repertoire", validators=FunctionVal(ChDir), min=1, max=1),
-    Debug               = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0),
-    AlgorithmParameters = F_AlgorithmParameters("o",("3DVAR", "4DVAR", "Blue", "DerivativeFreeOptimization", "EnsembleBlue", "ExtendedBlue", "ExtendedKalmanFilter", "KalmanFilter", "LinearLeastSquares", "NonLinearLeastSquares", "ParticleSwarmOptimization", "QuantileRegression", "UnscentedKalmanFilter", ), AlgorithmParametersInNS),
-    Background          = F_Background("o", BackgroundInNS),
-    BackgroundError     = F_BackgroundError("o", BackgroundErrorInNS),
-    Observation         = F_Observation("o", ObservationInNS),
-    ObservationError    = F_ObservationError("o", ObservationErrorInNS),
-    ObservationOperator = F_ObservationOperator("o"),
-    EvolutionModel      = F_EvolutionModel("f"),
-    EvolutionError      = F_EvolutionError("f", EvolutionErrorInNS),
-    ControlInput        = F_ControlInput("f"),
-    UserDataInit        = F_Init("f"),
-    UserPostAnalysis    = F_UserPostAnalysis("o"),
-    InputVariables      = F_variables("f"),
-    OutputVariables     = F_variables("f"),
-    Observers           = F_Observers("f")
-    )
-
-CHECKING_STUDY = PROC(nom="CHECKING_STUDY",
-    op=None,
-    repetable           = "n",
-    StudyName           = SIMP(statut="o", typ = "TXM", defaut="ADAO Checking Case"),
-    StudyRepertory      = SIMP(statut="f", typ = "Repertoire", validators=FunctionVal(ChDir), min=1, max=1),
-    Debug               = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0),
-    AlgorithmParameters = F_AlgorithmParameters("o", ("AdjointTest", "FunctionTest", "GradientTest", "LinearityTest", "ObserverTest", "SamplingTest", "TangentTest", ), AlgorithmParametersInNS),
-    CheckingPoint       = F_CheckingPoint("o", CheckingPointInNS),
-    BackgroundError     = F_BackgroundError("f", BackgroundErrorInNS),
-    Observation         = F_Observation("f", ObservationInNS),
-    ObservationError    = F_ObservationError("f", ObservationErrorInNS),
-    ObservationOperator = F_ObservationOperator("o"),
-    UserDataInit        = F_Init("f"),
-    Observers           = F_Observers("f")
-    )
diff --git a/Adao/ADAO_Cata_V0_V8_3_0_DEV.py b/Adao/ADAO_Cata_V0_V8_3_0_DEV.py
deleted file mode 100755 (executable)
index 78beda6..0000000
+++ /dev/null
@@ -1,1270 +0,0 @@
-#-*-coding:iso-8859-1-*-
-#
-# Copyright (C) 2008-2017 EDF R&D
-#
-# This file is part of SALOME ADAO module
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-# Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
-
-# --------------------------------------------------------
-# Generated by AdaoCatalogGenerator on 2017-03-06 09:14:06
-# --------------------------------------------------------
-
-import os, re
-import Accas
-from Accas import *
-
-JdC = JDC_CATA (
-    code = 'ADAO',
-    execmodul = None,
-    regles = ( AU_MOINS_UN ('ASSIMILATION_STUDY','CHECKING_STUDY'), AU_PLUS_UN ('ASSIMILATION_STUDY','CHECKING_STUDY')),
-    )
-VERSION_CATALOGUE='V8_3_0'
-
-def NoCheckInNS(filename):
-    return 1
-NoCheckInNS.info = ""
-def DirectOperatorInNS(filename):
-    if os.path.exists(filename):
-        fc = open(filename, 'r').readlines()
-        cr = re.compile("^def[\s]*DirectOperator[\s]*\(")
-        for ln in fc:
-            if cr.match(ln): return 1
-        cr = re.compile("^DirectOperator[\s]*=")
-        for ln in fc:
-            if cr.match(ln): return 1
-    return 0
-DirectOperatorInNS.info = u"The Python file has to contain explicitly a \"DirectOperator\" function definition with only one vector as argument."
-def TangentOperatorInNS(filename):
-    if os.path.exists(filename):
-        fc = open(filename, 'r').readlines()
-        cr = re.compile("^def[\s]*TangentOperator[\s]*\(")
-        for ln in fc:
-            if cr.match(ln): return 1
-        cr = re.compile("^TangentOperator[\s]*=")
-        for ln in fc:
-            if cr.match(ln): return 1
-    return 0
-TangentOperatorInNS.info = u"The Python file has to contain explicitly a \"TangentOperator\" function definition with only one pair of vectors as argument."
-def AdjointOperatorInNS(filename):
-    if os.path.exists(filename):
-        fc = open(filename, 'r').readlines()
-        cr = re.compile("^def[\s]*AdjointOperator[\s]*\(")
-        for ln in fc:
-            if cr.match(ln): return 1
-        cr = re.compile("^AdjointOperator[\s]*=")
-        for ln in fc:
-            if cr.match(ln): return 1
-    return 0
-AdjointOperatorInNS.info = u"The Python file has to contain explicitly an \"AdjointOperator\" function definition with only one pair of vectors as argument."
-
-def F_VectorSerie(statut, fv=NoCheckInNS) : return FACT(
-    statut = statut,
-    FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", ), defaut="Script"),
-    SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ",
-        SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(fv)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"),
-        ),
-    STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ",
-        STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"),
-        ),
-    SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ",
-        SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS), FunctionVal(TangentOperatorInNS), FunctionVal(AdjointOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"),
-        ),
-    SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ",
-        SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"),
-        DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"),
-        CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite differences method"),
-        EnableMultiProcessing = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Calculs élémentaires effectués en séquentiel (0) ou en parallèle (1) dans la méthode des différences finies", ang="Elementary calculations done sequentially (0) or in parallel (1) in the finite differences method"),
-        NumberOfProcesses = SIMP(statut="f", typ = "I", val_min=0, defaut=0, fr="Nombre de processus parallèles, 0 pour un contrôle automatique", ang="Number of parallel processes, 0 for automatic control"),
-        ),
-    SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ",
-        SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"),
-        ),
-    TEMPLATE_DATA =  BLOC (condition = " FROM in ( 'Template', ) ",
-        Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")),
-        AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa" ),
-            ),
-        AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ),
-            ),
-        AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ),
-            ),
-        ),
-    )
-
-def F_Function(statut, fv=NoCheckInNS) : return FACT(
-    statut = statut,
-    FROM = SIMP(statut = "o", typ = "TXM", into=("ScriptWithOneFunction", "ScriptWithFunctions", "ScriptWithSwitch", "FunctionDict", ), defaut="ScriptWithOneFunction"),
-    SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ",
-        SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(fv)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"),
-        ),
-    STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ",
-        STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"),
-        ),
-    SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ",
-        SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS), FunctionVal(TangentOperatorInNS), FunctionVal(AdjointOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"),
-        ),
-    SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ",
-        SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"),
-        DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"),
-        CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite differences method"),
-        EnableMultiProcessing = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Calculs élémentaires effectués en séquentiel (0) ou en parallèle (1) dans la méthode des différences finies", ang="Elementary calculations done sequentially (0) or in parallel (1) in the finite differences method"),
-        NumberOfProcesses = SIMP(statut="f", typ = "I", val_min=0, defaut=0, fr="Nombre de processus parallèles, 0 pour un contrôle automatique", ang="Number of parallel processes, 0 for automatic control"),
-        ),
-    SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ",
-        SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"),
-        ),
-    TEMPLATE_DATA =  BLOC (condition = " FROM in ( 'Template', ) ",
-        Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")),
-        AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa" ),
-            ),
-        AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ),
-            ),
-        AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ),
-            ),
-        ),
-    )
-
-def F_Matrix(statut, fv=NoCheckInNS) : return FACT(
-    statut = statut,
-    FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", ), defaut="Script"),
-    SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ",
-        SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(fv)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"),
-        ),
-    STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ",
-        STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"),
-        ),
-    SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ",
-        SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS), FunctionVal(TangentOperatorInNS), FunctionVal(AdjointOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"),
-        ),
-    SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ",
-        SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"),
-        DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"),
-        CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite differences method"),
-        EnableMultiProcessing = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Calculs élémentaires effectués en séquentiel (0) ou en parallèle (1) dans la méthode des différences finies", ang="Elementary calculations done sequentially (0) or in parallel (1) in the finite differences method"),
-        NumberOfProcesses = SIMP(statut="f", typ = "I", val_min=0, defaut=0, fr="Nombre de processus parallèles, 0 pour un contrôle automatique", ang="Number of parallel processes, 0 for automatic control"),
-        ),
-    SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ",
-        SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"),
-        ),
-    TEMPLATE_DATA =  BLOC (condition = " FROM in ( 'Template', ) ",
-        Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")),
-        AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa" ),
-            ),
-        AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ),
-            ),
-        AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ),
-            ),
-        ),
-    )
-
-def F_DiagonalSparseMatrix(statut, fv=NoCheckInNS) : return FACT(
-    statut = statut,
-    FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", ), defaut="String"),
-    SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ",
-        SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(fv)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"),
-        ),
-    STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ",
-        STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"),
-        ),
-    SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ",
-        SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS), FunctionVal(TangentOperatorInNS), FunctionVal(AdjointOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"),
-        ),
-    SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ",
-        SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"),
-        DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"),
-        CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite differences method"),
-        EnableMultiProcessing = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Calculs élémentaires effectués en séquentiel (0) ou en parallèle (1) dans la méthode des différences finies", ang="Elementary calculations done sequentially (0) or in parallel (1) in the finite differences method"),
-        NumberOfProcesses = SIMP(statut="f", typ = "I", val_min=0, defaut=0, fr="Nombre de processus parallèles, 0 pour un contrôle automatique", ang="Number of parallel processes, 0 for automatic control"),
-        ),
-    SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ",
-        SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"),
-        ),
-    TEMPLATE_DATA =  BLOC (condition = " FROM in ( 'Template', ) ",
-        Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")),
-        AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa" ),
-            ),
-        AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ),
-            ),
-        AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ),
-            ),
-        ),
-    )
-
-def F_Vector(statut, fv=NoCheckInNS) : return FACT(
-    statut = statut,
-    FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", ), defaut="Script"),
-    SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ",
-        SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(fv)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"),
-        ),
-    STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ",
-        STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"),
-        ),
-    SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ",
-        SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS), FunctionVal(TangentOperatorInNS), FunctionVal(AdjointOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"),
-        ),
-    SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ",
-        SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"),
-        DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"),
-        CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite differences method"),
-        EnableMultiProcessing = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Calculs élémentaires effectués en séquentiel (0) ou en parallèle (1) dans la méthode des différences finies", ang="Elementary calculations done sequentially (0) or in parallel (1) in the finite differences method"),
-        NumberOfProcesses = SIMP(statut="f", typ = "I", val_min=0, defaut=0, fr="Nombre de processus parallèles, 0 pour un contrôle automatique", ang="Number of parallel processes, 0 for automatic control"),
-        ),
-    SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ",
-        SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"),
-        ),
-    TEMPLATE_DATA =  BLOC (condition = " FROM in ( 'Template', ) ",
-        Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")),
-        AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa" ),
-            ),
-        AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ),
-            ),
-        AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ),
-            ),
-        ),
-    )
-
-def F_Dict(statut, fv=NoCheckInNS) : return FACT(
-    statut = statut,
-    FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", ), defaut="Script"),
-    SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ",
-        SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(fv)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"),
-        ),
-    STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ",
-        STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"),
-        ),
-    SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ",
-        SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS), FunctionVal(TangentOperatorInNS), FunctionVal(AdjointOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"),
-        ),
-    SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ",
-        SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"),
-        DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"),
-        CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite differences method"),
-        EnableMultiProcessing = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Calculs élémentaires effectués en séquentiel (0) ou en parallèle (1) dans la méthode des différences finies", ang="Elementary calculations done sequentially (0) or in parallel (1) in the finite differences method"),
-        NumberOfProcesses = SIMP(statut="f", typ = "I", val_min=0, defaut=0, fr="Nombre de processus parallèles, 0 pour un contrôle automatique", ang="Number of parallel processes, 0 for automatic control"),
-        ),
-    SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ",
-        SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"),
-        ),
-    TEMPLATE_DATA =  BLOC (condition = " FROM in ( 'Template', ) ",
-        Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")),
-        AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa" ),
-            ),
-        AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ),
-            ),
-        AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ),
-            ),
-        ),
-    )
-
-def F_ScalarSparseMatrix(statut, fv=NoCheckInNS) : return FACT(
-    statut = statut,
-    FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", ), defaut="String"),
-    SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ",
-        SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(fv)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"),
-        ),
-    STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ",
-        STRING = SIMP(statut = "o", typ = "TXM", defaut="1.", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"),
-        ),
-    SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ",
-        SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS), FunctionVal(TangentOperatorInNS), FunctionVal(AdjointOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"),
-        ),
-    SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ",
-        SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"),
-        DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"),
-        CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite differences method"),
-        EnableMultiProcessing = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Calculs élémentaires effectués en séquentiel (0) ou en parallèle (1) dans la méthode des différences finies", ang="Elementary calculations done sequentially (0) or in parallel (1) in the finite differences method"),
-        NumberOfProcesses = SIMP(statut="f", typ = "I", val_min=0, defaut=0, fr="Nombre de processus parallèles, 0 pour un contrôle automatique", ang="Number of parallel processes, 0 for automatic control"),
-        ),
-    SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ",
-        SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"),
-        ),
-    TEMPLATE_DATA =  BLOC (condition = " FROM in ( 'Template', ) ",
-        Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")),
-        AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa" ),
-            ),
-        AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ),
-            ),
-        AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ),
-            ),
-        ),
-    )
-
-def ObservationErrorInNS(filename):
-    if os.path.exists(filename):
-        fc = open(filename, 'r').readlines()
-        cr = re.compile("^ObservationError[\s]*=")
-        for ln in fc:
-            if cr.match(ln): return 1
-    return 0
-ObservationErrorInNS.info = u"The Python file has to contain explicitly a \"ObservationError\" variable."
-def F_ObservationError(statut, fv=NoCheckInNS) : return FACT(
-    statut=statut,
-    Stored = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"),
-    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Matrix", "ScalarSparseMatrix", "DiagonalSparseMatrix", ), defaut="ScalarSparseMatrix"),
-    Matrix = BLOC ( condition = " INPUT_TYPE in ( 'Matrix', ) ",
-        data = F_Matrix("o", fv),
-        ),
-    ScalarSparseMatrix = BLOC ( condition = " INPUT_TYPE in ( 'ScalarSparseMatrix', ) ",
-        data = F_ScalarSparseMatrix("o", fv),
-        ),
-    DiagonalSparseMatrix = BLOC ( condition = " INPUT_TYPE in ( 'DiagonalSparseMatrix', ) ",
-        data = F_DiagonalSparseMatrix("o", fv),
-        ),
-    )
-
-def ObservationInNS(filename):
-    if os.path.exists(filename):
-        fc = open(filename, 'r').readlines()
-        cr = re.compile("^Observation[\s]*=")
-        for ln in fc:
-            if cr.match(ln): return 1
-    return 0
-ObservationInNS.info = u"The Python file has to contain explicitly a \"Observation\" variable."
-def F_Observation(statut, fv=NoCheckInNS) : return FACT(
-    statut=statut,
-    Stored = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"),
-    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Vector", "VectorSerie", ), defaut="Vector"),
-    Vector = BLOC ( condition = " INPUT_TYPE in ( 'Vector', ) ",
-        data = F_Vector("o", fv),
-        ),
-    VectorSerie = BLOC ( condition = " INPUT_TYPE in ( 'VectorSerie', ) ",
-        data = F_VectorSerie("o", fv),
-        ),
-    )
-
-def BackgroundErrorInNS(filename):
-    if os.path.exists(filename):
-        fc = open(filename, 'r').readlines()
-        cr = re.compile("^BackgroundError[\s]*=")
-        for ln in fc:
-            if cr.match(ln): return 1
-    return 0
-BackgroundErrorInNS.info = u"The Python file has to contain explicitly a \"BackgroundError\" variable."
-def F_BackgroundError(statut, fv=NoCheckInNS) : return FACT(
-    statut=statut,
-    Stored = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"),
-    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Matrix", "ScalarSparseMatrix", "DiagonalSparseMatrix", ), defaut="ScalarSparseMatrix"),
-    Matrix = BLOC ( condition = " INPUT_TYPE in ( 'Matrix', ) ",
-        data = F_Matrix("o", fv),
-        ),
-    ScalarSparseMatrix = BLOC ( condition = " INPUT_TYPE in ( 'ScalarSparseMatrix', ) ",
-        data = F_ScalarSparseMatrix("o", fv),
-        ),
-    DiagonalSparseMatrix = BLOC ( condition = " INPUT_TYPE in ( 'DiagonalSparseMatrix', ) ",
-        data = F_DiagonalSparseMatrix("o", fv),
-        ),
-    )
-
-def ObservationOperatorInNS(filename):
-    if os.path.exists(filename):
-        fc = open(filename, 'r').readlines()
-        cr = re.compile("^ObservationOperator[\s]*=")
-        for ln in fc:
-            if cr.match(ln): return 1
-    return 0
-ObservationOperatorInNS.info = u"The Python file has to contain explicitly a \"ObservationOperator\" variable."
-def F_ObservationOperator(statut, fv=NoCheckInNS) : return FACT(
-    statut=statut,
-    Stored = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"),
-    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Matrix", "Function", ), defaut="Function"),
-    Matrix = BLOC ( condition = " INPUT_TYPE in ( 'Matrix', ) ",
-        data = F_Matrix("o", fv),
-        ),
-    Function = BLOC ( condition = " INPUT_TYPE in ( 'Function', ) ",
-        data = F_Function("o", fv),
-        ),
-    )
-
-def CheckingPointInNS(filename):
-    if os.path.exists(filename):
-        fc = open(filename, 'r').readlines()
-        cr = re.compile("^CheckingPoint[\s]*=")
-        for ln in fc:
-            if cr.match(ln): return 1
-    return 0
-CheckingPointInNS.info = u"The Python file has to contain explicitly a \"CheckingPoint\" variable."
-def F_CheckingPoint(statut, fv=NoCheckInNS) : return FACT(
-    statut=statut,
-    Stored = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"),
-    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Vector", ), defaut="Vector"),
-    Vector = BLOC ( condition = " INPUT_TYPE in ( 'Vector', ) ",
-        data = F_Vector("o", fv),
-        ),
-    )
-
-def ControlInputInNS(filename):
-    if os.path.exists(filename):
-        fc = open(filename, 'r').readlines()
-        cr = re.compile("^ControlInput[\s]*=")
-        for ln in fc:
-            if cr.match(ln): return 1
-    return 0
-ControlInputInNS.info = u"The Python file has to contain explicitly a \"ControlInput\" variable."
-def F_ControlInput(statut, fv=NoCheckInNS) : return FACT(
-    statut=statut,
-    Stored = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"),
-    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Vector", "VectorSerie", ), defaut="Vector"),
-    Vector = BLOC ( condition = " INPUT_TYPE in ( 'Vector', ) ",
-        data = F_Vector("o", fv),
-        ),
-    VectorSerie = BLOC ( condition = " INPUT_TYPE in ( 'VectorSerie', ) ",
-        data = F_VectorSerie("o", fv),
-        ),
-    )
-
-def BackgroundInNS(filename):
-    if os.path.exists(filename):
-        fc = open(filename, 'r').readlines()
-        cr = re.compile("^Background[\s]*=")
-        for ln in fc:
-            if cr.match(ln): return 1
-    return 0
-BackgroundInNS.info = u"The Python file has to contain explicitly a \"Background\" variable."
-def F_Background(statut, fv=NoCheckInNS) : return FACT(
-    statut=statut,
-    Stored = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"),
-    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Vector", "VectorSerie", ), defaut="Vector"),
-    Vector = BLOC ( condition = " INPUT_TYPE in ( 'Vector', ) ",
-        data = F_Vector("o", fv),
-        ),
-    VectorSerie = BLOC ( condition = " INPUT_TYPE in ( 'VectorSerie', ) ",
-        data = F_VectorSerie("o", fv),
-        ),
-    )
-
-def AlgorithmParametersInNS(filename):
-    if os.path.exists(filename):
-        fc = open(filename, 'r').readlines()
-        cr = re.compile("^AlgorithmParameters[\s]*=")
-        for ln in fc:
-            if cr.match(ln): return 1
-    return 0
-AlgorithmParametersInNS.info = u"The Python file has to contain explicitly a \"AlgorithmParameters\" variable."
-def F_AlgorithmParameters(statut, fv=NoCheckInNS) : return FACT(
-    statut=statut,
-
-    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Dict", ), defaut="Dict"),
-    Dict = BLOC ( condition = " INPUT_TYPE in ( 'Dict', ) ",
-        data = F_Dict("o", fv),
-        ),
-    )
-
-def EvolutionErrorInNS(filename):
-    if os.path.exists(filename):
-        fc = open(filename, 'r').readlines()
-        cr = re.compile("^EvolutionError[\s]*=")
-        for ln in fc:
-            if cr.match(ln): return 1
-    return 0
-EvolutionErrorInNS.info = u"The Python file has to contain explicitly a \"EvolutionError\" variable."
-def F_EvolutionError(statut, fv=NoCheckInNS) : return FACT(
-    statut=statut,
-    Stored = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"),
-    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Matrix", "ScalarSparseMatrix", "DiagonalSparseMatrix", ), defaut="ScalarSparseMatrix"),
-    Matrix = BLOC ( condition = " INPUT_TYPE in ( 'Matrix', ) ",
-        data = F_Matrix("o", fv),
-        ),
-    ScalarSparseMatrix = BLOC ( condition = " INPUT_TYPE in ( 'ScalarSparseMatrix', ) ",
-        data = F_ScalarSparseMatrix("o", fv),
-        ),
-    DiagonalSparseMatrix = BLOC ( condition = " INPUT_TYPE in ( 'DiagonalSparseMatrix', ) ",
-        data = F_DiagonalSparseMatrix("o", fv),
-        ),
-    )
-
-def UserDataInitInNS(filename):
-    if os.path.exists(filename):
-        fc = open(filename, 'r').readlines()
-        cr = re.compile("^UserDataInit[\s]*=")
-        for ln in fc:
-            if cr.match(ln): return 1
-    return 0
-UserDataInitInNS.info = u"The Python file has to contain explicitly a \"UserDataInit\" variable."
-def F_UserDataInit(statut, fv=NoCheckInNS) : return FACT(
-    statut=statut,
-
-    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Dict", ), defaut="Dict"),
-    Dict = BLOC ( condition = " INPUT_TYPE in ( 'Dict', ) ",
-        data = F_Dict("o", fv),
-        ),
-    )
-
-def EvolutionModelInNS(filename):
-    if os.path.exists(filename):
-        fc = open(filename, 'r').readlines()
-        cr = re.compile("^EvolutionModel[\s]*=")
-        for ln in fc:
-            if cr.match(ln): return 1
-    return 0
-EvolutionModelInNS.info = u"The Python file has to contain explicitly a \"EvolutionModel\" variable."
-def F_EvolutionModel(statut, fv=NoCheckInNS) : return FACT(
-    statut=statut,
-    Stored = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"),
-    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Matrix", "Function", ), defaut="Function"),
-    Matrix = BLOC ( condition = " INPUT_TYPE in ( 'Matrix', ) ",
-        data = F_Matrix("o", fv),
-        ),
-    Function = BLOC ( condition = " INPUT_TYPE in ( 'Function', ) ",
-        data = F_Function("o", fv),
-        ),
-    )
-
-def F_UserPostAnalysis(statut, fv=NoCheckInNS) : return FACT(
-    statut = statut,
-    FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", "Template", ), defaut="Template"),
-    SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ",
-        SCRIPT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(fv)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"),
-        ),
-    STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ",
-        STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"),
-        ),
-    SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ",
-        SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS), FunctionVal(TangentOperatorInNS), FunctionVal(AdjointOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"),
-        ),
-    SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ",
-        SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"),
-        DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"),
-        CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite differences method"),
-        EnableMultiProcessing = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Calculs élémentaires effectués en séquentiel (0) ou en parallèle (1) dans la méthode des différences finies", ang="Elementary calculations done sequentially (0) or in parallel (1) in the finite differences method"),
-        NumberOfProcesses = SIMP(statut="f", typ = "I", val_min=0, defaut=0, fr="Nombre de processus parallèles, 0 pour un contrôle automatique", ang="Number of parallel processes, 0 for automatic control"),
-        ),
-    SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ",
-        SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"),
-        ),
-    TEMPLATE_DATA =  BLOC (condition = " FROM in ( 'Template', ) ",
-        Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")),
-        AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa" ),
-            ),
-        AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ),
-            ),
-        AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint 'Analysis saved in \"%s\"'%f\nnumpy.savetxt(f,xa)" ),
-            ),
-        ),
-    )
-
-def F_InitChoice() : return  ("Background",
-                              "BackgroundError",
-                              "Observation",
-                              "ObservationError",
-                              "ObservationOperator",
-                              "EvolutionModel",
-                              "EvolutionError",
-                              "AlgorithmParameters",
-                              "UserPostAnalysis",
-                             )
-
-def F_Init(statut) : return FACT(statut = statut,
-    INIT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')]),
-    TARGET_LIST = SIMP(statut = "o", typ = "TXM", min=1, max="**", into=F_InitChoice(),  validators=(VerifExiste(2))),
-    )
-
-def F_ObserverTemplate() : return BLOC(condition = " NodeType == 'Template' ",
-                Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueAndIndexPrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueIndexPrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter", "ValuePrinterAndGnuPlotter", "ValueSeriePrinterAndGnuPlotter", "ValuePrinterSaverAndGnuPlotter", "ValueSeriePrinterSaverAndGnuPlotter", "ValueMean", "ValueStandardError", "ValueVariance", "ValueL2Norm", "ValueRMS")),
-                ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print(str(info)+\" \"+str(var[-1]))", fr="Imprime sur la sortie standard la valeur courante de la variable", ang="Print on standard output the current value of the variable" ),
-                    ),
-                ValueAndIndexPrinter = BLOC (condition = " Template == 'ValueAndIndexPrinter' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print(str(info)+(\" index %i:\"%(len(var)-1))+\" \"+str(var[-1]))", fr="Imprime sur la sortie standard la valeur courante de la variable, en ajoutant son index", ang="Print on standard output the current value of the variable, adding its index" ),
-                    ),
-                ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print(str(info)+\" \"+str(var[:]))", fr="Imprime sur la sortie standard la série des valeurs de la variable", ang="Print on standard output the value series of the variable" ),
-                    ),
-                ValueSaver = BLOC (condition = " Template == 'ValueSaver' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy, re\nv=numpy.array(var[-1], ndmin=1)\nglobal istep\ntry:\n    istep += 1\nexcept:\n    istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint('Value saved in \"%s\"'%f)\nnumpy.savetxt(f,v)", fr="Enregistre la valeur courante de la variable dans un fichier du répertoire '/tmp' nommé 'value...txt' selon le nom de la variable et l'étape d'enregistrement", ang="Save the current value of the variable in a file of the '/tmp' directory named 'value...txt' from the variable name and the saving step" ),
-                    ),
-                ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy, re\nv=numpy.array(var[:],  ndmin=1)\nglobal istep\ntry:\n    istep += 1\nexcept:\n    istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint('Value saved in \"%s\"'%f)\nnumpy.savetxt(f,v)", fr="Enregistre la série des valeurs de la variable dans un fichier du répertoire '/tmp' nommé 'value...txt' selon le nom de la variable et l'étape", ang="Save the value series of the variable in a file of the '/tmp' directory named 'value...txt' from the variable name and the saving step" ),
-                    ),
-                ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy, re\nv=numpy.array(var[-1], ndmin=1)\nprint(str(info)+\" \"+str(v))\nglobal istep\ntry:\n    istep += 1\nexcept:\n    istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint('Value saved in \"%s\"'%f)\nnumpy.savetxt(f,v)", fr="Imprime sur la sortie standard et, en même temps enregistre dans un fichier, la valeur courante de la variable", ang="Print on standard output and, in the same time save in a file, the current value of the variable" ),
-                    ),
-                ValueIndexPrinterAndSaver = BLOC (condition = " Template == 'ValueIndexPrinterAndSaver' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy, re\nv=numpy.array(var[-1], ndmin=1)\nprint(str(info)+(\" index %i:\"%(len(var)-1))+\" \"+str(v))\nglobal istep\ntry:\n    istep += 1\nexcept:\n    istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint('Value saved in \"%s\"'%f)\nnumpy.savetxt(f,v)", fr="Imprime sur la sortie standard et, en même temps enregistre dans un fichier, la valeur courante de la variable, en ajoutant son index", ang="Print on standard output and, in the same time save in a file, the current value of the variable, adding its index" ),
-                    ),
-                ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy, re\nv=numpy.array(var[:],  ndmin=1)\nprint(str(info)+\" \"+str(v))\nglobal istep\ntry:\n    istep += 1\nexcept:\n    istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint('Value saved in \"%s\"'%f)\nnumpy.savetxt(f,v)", fr="Imprime sur la sortie standard et, en même temps, enregistre dans un fichier la série des valeurs de la variable", ang="Print on standard output and, in the same time, save in a file the value series of the variable" ),
-                    ),
-                ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy, Gnuplot\nv=numpy.array(var[-1], ndmin=1)\nglobal ifig, gp\ntry:\n    ifig += 1\n    gp(' set style data lines')\nexcept:\n    ifig = 0\n    gp = Gnuplot.Gnuplot(persist=1)\n    gp(' set style data lines')\ngp('set title  \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( v, with_='lines lw 2' ) )", fr="Affiche graphiquement avec Gnuplot la valeur courante de la variable", ang="Graphically plot with Gnuplot the current value of the variable" ),
-                    ),
-                ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy, Gnuplot\nv=numpy.array(var[:],  ndmin=1)\nglobal ifig, gp\ntry:\n    ifig += 1\n    gp(' set style data lines')\nexcept:\n    ifig = 0\n    gp = Gnuplot.Gnuplot(persist=1)\n    gp(' set style data lines')\ngp('set title  \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( v, with_='lines lw 2' ) )", fr="Affiche graphiquement avec Gnuplot la série des valeurs de la variable", ang="Graphically plot with Gnuplot the value series of the variable" ),
-                    ),
-                ValuePrinterAndGnuPlotter = BLOC (condition = " Template == 'ValuePrinterAndGnuPlotter' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print(str(info)+\" \"+str(var[-1]))\nimport numpy, Gnuplot\nv=numpy.array(var[-1], ndmin=1)\nglobal ifig,gp\ntry:\n    ifig += 1\n    gp(' set style data lines')\nexcept:\n    ifig = 0\n    gp = Gnuplot.Gnuplot(persist=1)\n    gp(' set style data lines')\ngp('set title  \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( v, with_='lines lw 2' ) )", fr="Imprime sur la sortie standard et, en même temps, affiche graphiquement avec Gnuplot la valeur courante de la variable", ang="Print on standard output and, in the same time, graphically plot with Gnuplot the current value of the variable" ),
-                    ),
-                ValueSeriePrinterAndGnuPlotter = BLOC (condition = " Template == 'ValueSeriePrinterAndGnuPlotter' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print(str(info)+\" \"+str(var[:]))\nimport numpy, Gnuplot\nv=numpy.array(var[:],  ndmin=1)\nglobal ifig,gp\ntry:\n    ifig += 1\n    gp(' set style data lines')\nexcept:\n    ifig = 0\n    gp = Gnuplot.Gnuplot(persist=1)\n    gp(' set style data lines')\ngp('set title  \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( v, with_='lines lw 2' ) )", fr="Imprime sur la sortie standard et, en même temps, affiche graphiquement avec Gnuplot la série des valeurs de la variable", ang="Print on standard output and, in the same time, graphically plot with Gnuplot the value series of the variable" ),
-                    ),
-                ValuePrinterSaverAndGnuPlotter = BLOC (condition = " Template == 'ValuePrinterSaverAndGnuPlotter' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print(str(info)+\" \"+str(var[-1]))\nimport numpy, re\nv=numpy.array(var[-1], ndmin=1)\nglobal istep\ntry:\n    istep += 1\nexcept:\n    istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint('Value saved in \"%s\"'%f)\nnumpy.savetxt(f,v)\nimport Gnuplot\nglobal ifig,gp\ntry:\n    ifig += 1\n    gp(' set style data lines')\nexcept:\n    ifig = 0\n    gp = Gnuplot.Gnuplot(persist=1)\n    gp(' set style data lines')\ngp('set title  \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( v, with_='lines lw 2' ) )", fr="Imprime sur la sortie standard et, en même temps, enregistre dans un fichier et affiche graphiquement la valeur courante de la variable ", ang="Print on standard output and, in the same, time save in a file and graphically plot the current value of the variable" ),
-                    ),
-                ValueSeriePrinterSaverAndGnuPlotter = BLOC (condition = " Template == 'ValueSeriePrinterSaverAndGnuPlotter' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print(str(info)+\" \"+str(var[:]))\nimport numpy, re\nv=numpy.array(var[:],  ndmin=1)\nglobal istep\ntry:\n    istep += 1\nexcept:\n    istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint('Value saved in \"%s\"'%f)\nnumpy.savetxt(f,v)\nimport Gnuplot\nglobal ifig,gp\ntry:\n    ifig += 1\n    gp(' set style data lines')\nexcept:\n    ifig = 0\n    gp = Gnuplot.Gnuplot(persist=1)\n    gp(' set style data lines')\ngp('set title  \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( v, with_='lines lw 2' ) )", fr="Imprime sur la sortie standard et, en même temps, enregistre dans un fichier et affiche graphiquement la série des valeurs de la variable", ang="Print on standard output and, in the same, time save in a file and graphically plot the value series of the variable" ),
-                    ),
-                ValueMean = BLOC (condition = " Template == 'ValueMean' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nprint(str(info)+\" \"+str(numpy.nanmean(var[-1])))", fr="Imprime sur la sortie standard la moyenne de la valeur courante de la variable", ang="Print on standard output the mean of the current value of the variable" ),
-                    ),
-                ValueStandardError = BLOC (condition = " Template == 'ValueStandardError' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nprint(str(info)+\" \"+str(numpy.nanstd(var[-1])))", fr="Imprime sur la sortie standard l'écart-type de la valeur courante de la variable", ang="Print on standard output the standard error of the current value of the variable" ),
-                    ),
-                ValueVariance = BLOC (condition = " Template == 'ValueVariance' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nprint(str(info)+\" \"+str(numpy.nanvar(var[-1])))", fr="Imprime sur la sortie standard la variance de la valeur courante de la variable", ang="Print on standard output the variance of the current value of the variable" ),
-                    ),
-                ValueL2Norm = BLOC (condition = " Template == 'ValueL2Norm' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nv = numpy.matrix( numpy.ravel( var[-1] ) )\nprint(str(info)+\" \"+str(float( numpy.linalg.norm(v) )))", fr="Imprime sur la sortie standard la norme L2 de la valeur courante de la variable", ang="Print on standard output the L2 norm of the current value of the variable" ),
-                    ),
-                ValueRMS = BLOC (condition = " Template == 'ValueRMS' ",
-                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nv = numpy.matrix( numpy.ravel( var[-1] ) )\nprint(str(info)+\" \"+str(float( numpy.sqrt((1./v.size)*(v*v.T)) )))", fr="Imprime sur la sortie standard la racine de la moyenne des carrés (RMS), ou moyenne quadratique, de la valeur courante de la variable", ang="Print on standard output the root mean square (RMS), or quadratic mean, of the current value of the variable" ),
-                    ),
-                )
-
-def F_Observers(statut) : return FACT(
-    statut=statut,
-    SELECTION = SIMP(statut="o", defaut=[], typ="TXM", min=0, max="**",homo="SansOrdreNiDoublon", validators=NoRepeat(), into=(['Analysis', 'Innovation', 'InnovationAtCurrentState', 'CurrentState', 'CurrentOptimum', 'IndexOfOptimum', 'SimulatedObservationAtBackground', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum', 'SimulatedObservationAtCurrentOptimum', 'BMA', 'OMA', 'OMB', 'CostFunctionJ', 'CostFunctionJb', 'CostFunctionJo', 'GradientOfCostFunctionJ', 'GradientOfCostFunctionJb', 'GradientOfCostFunctionJo', 'SigmaObs2', 'SigmaBck2', 'APosterioriCorrelations', 'APosterioriCovariance', 'APosterioriStandardDeviations', 'APosterioriVariances', 'Residu'])),
-    #SELECTION = SIMP(statut="o", defaut=[], typ="TXM", min=0, max="**", validators=NoRepeat(), into=(['Analysis', 'Innovation', 'InnovationAtCurrentState', 'CurrentState', 'CurrentOptimum', 'IndexOfOptimum', 'SimulatedObservationAtBackground', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum', 'SimulatedObservationAtCurrentOptimum', 'BMA', 'OMA', 'OMB', 'CostFunctionJ', 'CostFunctionJb', 'CostFunctionJo', 'GradientOfCostFunctionJ', 'GradientOfCostFunctionJb', 'GradientOfCostFunctionJo', 'SigmaObs2', 'SigmaBck2', 'APosterioriCorrelations', 'APosterioriCovariance', 'APosterioriStandardDeviations', 'APosterioriVariances', 'Residu'])),
-    Analysis = BLOC (condition=" 'Analysis' in set(SELECTION) ",
-        Analysis_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "Analysis"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    Innovation = BLOC (condition=" 'Innovation' in set(SELECTION) ",
-        Innovation_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "Innovation"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    InnovationAtCurrentState = BLOC (condition=" 'InnovationAtCurrentState' in set(SELECTION) ",
-        InnovationAtCurrentState_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "InnovationAtCurrentState"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    CurrentState = BLOC (condition=" 'CurrentState' in set(SELECTION) ",
-        CurrentState_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "CurrentState"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    CurrentOptimum = BLOC (condition=" 'CurrentOptimum' in set(SELECTION) ",
-        CurrentOptimum_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "CurrentOptimum"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    IndexOfOptimum = BLOC (condition=" 'IndexOfOptimum' in set(SELECTION) ",
-        IndexOfOptimum_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "IndexOfOptimum"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    SimulatedObservationAtBackground = BLOC (condition=" 'SimulatedObservationAtBackground' in set(SELECTION) ",
-        SimulatedObservationAtBackground_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "SimulatedObservationAtBackground"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    SimulatedObservationAtCurrentState = BLOC (condition=" 'SimulatedObservationAtCurrentState' in set(SELECTION) ",
-        SimulatedObservationAtCurrentState_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "SimulatedObservationAtCurrentState"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    SimulatedObservationAtOptimum = BLOC (condition=" 'SimulatedObservationAtOptimum' in set(SELECTION) ",
-        SimulatedObservationAtOptimum_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "SimulatedObservationAtOptimum"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    SimulatedObservationAtCurrentOptimum = BLOC (condition=" 'SimulatedObservationAtCurrentOptimum' in set(SELECTION) ",
-        SimulatedObservationAtCurrentOptimum_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "SimulatedObservationAtCurrentOptimum"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    BMA = BLOC (condition=" 'BMA' in set(SELECTION) ",
-        BMA_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "BMA"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    OMA = BLOC (condition=" 'OMA' in set(SELECTION) ",
-        OMA_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "OMA"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    OMB = BLOC (condition=" 'OMB' in set(SELECTION) ",
-        OMB_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "OMB"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    CostFunctionJ = BLOC (condition=" 'CostFunctionJ' in set(SELECTION) ",
-        CostFunctionJ_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "CostFunctionJ"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    CostFunctionJb = BLOC (condition=" 'CostFunctionJb' in set(SELECTION) ",
-        CostFunctionJb_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "CostFunctionJb"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    CostFunctionJo = BLOC (condition=" 'CostFunctionJo' in set(SELECTION) ",
-        CostFunctionJo_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "CostFunctionJo"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    GradientOfCostFunctionJ = BLOC (condition=" 'GradientOfCostFunctionJ' in set(SELECTION) ",
-        GradientOfCostFunctionJ_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "GradientOfCostFunctionJ"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    GradientOfCostFunctionJb = BLOC (condition=" 'GradientOfCostFunctionJb' in set(SELECTION) ",
-        GradientOfCostFunctionJb_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "GradientOfCostFunctionJb"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    GradientOfCostFunctionJo = BLOC (condition=" 'GradientOfCostFunctionJo' in set(SELECTION) ",
-        GradientOfCostFunctionJo_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "GradientOfCostFunctionJo"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    SigmaObs2 = BLOC (condition=" 'SigmaObs2' in set(SELECTION) ",
-        SigmaObs2_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "SigmaObs2"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    SigmaBck2 = BLOC (condition=" 'SigmaBck2' in set(SELECTION) ",
-        SigmaBck2_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "SigmaBck2"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    APosterioriCorrelations = BLOC (condition=" 'APosterioriCorrelations' in set(SELECTION) ",
-        APosterioriCorrelations_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "APosterioriCorrelations"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    APosterioriCovariance = BLOC (condition=" 'APosterioriCovariance' in set(SELECTION) ",
-        APosterioriCovariance_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "APosterioriCovariance"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    APosterioriStandardDeviations = BLOC (condition=" 'APosterioriStandardDeviations' in set(SELECTION) ",
-        APosterioriStandardDeviations_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "APosterioriStandardDeviations"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    APosterioriVariances = BLOC (condition=" 'APosterioriVariances' in set(SELECTION) ",
-        APosterioriVariances_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "APosterioriVariances"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    Residu = BLOC (condition=" 'Residu' in set(SELECTION) ",
-        Residu_data = FACT(statut = "o",
-            Scheduler    = SIMP(statut = "f", typ = "TXM"),
-            Info         = SIMP(statut = "o", typ = "TXM", defaut = "Residu"),
-            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
-            PythonScript = BLOC (condition = " NodeType == 'String' ",
-                Value = SIMP(statut = "o", typ = "TXM")
-                ),
-            UserFile = BLOC (condition = " NodeType == 'Script' ",
-                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
-                ),
-            ObserverTemplate = F_ObserverTemplate(),
-            ),
-        ),
-    )
-
-def AlgorithmParametersInNS(filename):
-    if os.path.exists(filename):
-        fc = open(filename, 'r').readlines()
-        cr = re.compile("^AlgorithmParameters[\s]*=")
-        for ln in fc:
-            if cr.match(ln): return 1
-    return 0
-AlgorithmParametersInNS.info = u"The Python file has to contain explicitly an \"AlgorithmParameters\" variable."
-def F_AlgorithmParameters(statut, algos_names, fv=NoCheckInNS) : return FACT(
-    statut = statut,
-    Algorithm = SIMP(statut="o", typ = "TXM", into = algos_names ),
-    Parameters = SIMP(statut="f", typ = "TXM", into=("Defaults", "Dict") ),
-    Dict = BLOC ( condition = " Parameters == 'Dict' ",
-        statut="f",
-        data = F_Dict("o", fv),
-        ),
-    Parameters3DVAR = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == '3DVAR') ",
-        statut="f",
-        Bounds = SIMP(statut="f", typ="TXM", fr="Liste des valeurs de bornes"),
-        CostDecrementTolerance = SIMP(statut="f", typ="R", min=1, max=1, defaut=1e-07, fr="Diminution relative minimale du cout lors de l'arrêt"),
-        GradientNormTolerance = SIMP(statut="f", typ="R", min=1, max=1, defaut=1e-05, fr="Maximum des composantes du gradient lors de l'arrêt"),
-        MaximumNumberOfSteps = SIMP(statut="f", typ="I", val_min=-1, min=1, max=1, defaut=15000, fr="Nombre maximal de pas d'optimisation"),
-        Minimizer = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="LBFGSB", into=['LBFGSB', 'TNC', 'CG', 'NCG', 'BFGS'], fr="Minimiseur utilisé"),
-        NumberOfSamplesForQuantiles = SIMP(statut="f", typ="I", val_min=1, min=1, max=1, defaut=100, fr="Nombre d'échantillons simulés pour le calcul des quantiles"),
-        ProjectedGradientTolerance = SIMP(statut="f", typ="R", val_min=-1, min=1, max=1, defaut=-1.0, fr="Maximum des composantes du gradient projeté lors de l'arrêt"),
-        Quantiles = SIMP(statut="f", typ="TXM", max="**", into=None, fr="Liste des valeurs de quantiles"),
-        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
-        SimulationForQuantiles = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="Linear", into=['Linear', 'NonLinear'], fr="Type de simulation pour l'estimation des quantiles"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['APosterioriCorrelations', 'APosterioriCovariance', 'APosterioriStandardDeviations', 'APosterioriVariances', 'BMA', 'OMA', 'OMB', 'CostFunctionJ', 'CostFunctionJb', 'CostFunctionJo', 'CurrentState', 'CurrentOptimum', 'IndexOfOptimum', 'Innovation', 'InnovationAtCurrentState', 'CostFunctionJAtCurrentOptimum', 'SigmaObs2', 'MahalanobisConsistency', 'SimulationQuantiles', 'SimulatedObservationAtBackground', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum', 'SimulatedObservationAtCurrentOptimum'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    Parameters4DVAR = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == '4DVAR') ",
-        statut="f",
-        Bounds = SIMP(statut="f", typ="TXM", fr="Liste des valeurs de bornes"),
-        ConstrainedBy = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="EstimateProjection", into=['EstimateProjection'], fr="Prise en compte des contraintes"),
-        CostDecrementTolerance = SIMP(statut="f", typ="R", min=1, max=1, defaut=1e-07, fr="Diminution relative minimale du cout lors de l'arrêt"),
-        EstimationOf = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="State", into=['State', 'Parameters'], fr="Estimation d'etat ou de parametres"),
-        GradientNormTolerance = SIMP(statut="f", typ="R", min=1, max=1, defaut=1e-05, fr="Maximum des composantes du gradient lors de l'arrêt"),
-        MaximumNumberOfSteps = SIMP(statut="f", typ="I", val_min=-1, min=1, max=1, defaut=15000, fr="Nombre maximal de pas d'optimisation"),
-        Minimizer = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="LBFGSB", into=['LBFGSB', 'TNC', 'CG', 'NCG', 'BFGS'], fr="Minimiseur utilisé"),
-        ProjectedGradientTolerance = SIMP(statut="f", typ="R", val_min=-1, min=1, max=1, defaut=-1.0, fr="Maximum des composantes du gradient projeté lors de l'arrêt"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['BMA', 'CurrentState', 'CostFunctionJ', 'CostFunctionJb', 'CostFunctionJo', 'IndexOfOptimum', 'CurrentOptimum', 'CostFunctionJAtCurrentOptimum'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    ParametersBlue = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'Blue') ",
-        statut="f",
-        NumberOfSamplesForQuantiles = SIMP(statut="f", typ="I", val_min=1, min=1, max=1, defaut=100, fr="Nombre d'échantillons simulés pour le calcul des quantiles"),
-        Quantiles = SIMP(statut="f", typ="TXM", max="**", into=None, fr="Liste des valeurs de quantiles"),
-        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
-        SimulationForQuantiles = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="Linear", into=['Linear', 'NonLinear'], fr="Type de simulation pour l'estimation des quantiles"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['APosterioriCorrelations', 'APosterioriCovariance', 'APosterioriStandardDeviations', 'APosterioriVariances', 'BMA', 'OMA', 'OMB', 'CurrentState', 'CostFunctionJ', 'CostFunctionJb', 'CostFunctionJo', 'Innovation', 'SigmaBck2', 'SigmaObs2', 'MahalanobisConsistency', 'SimulationQuantiles', 'SimulatedObservationAtBackground', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    ParametersDerivativeFreeOptimization = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'DerivativeFreeOptimization') ",
-        statut="f",
-        Bounds = SIMP(statut="f", typ="TXM", fr="Liste des valeurs de bornes"),
-        CostDecrementTolerance = SIMP(statut="f", typ="R", min=1, max=1, defaut=1e-07, fr="Diminution relative minimale du cout lors de l'arrêt"),
-        MaximumNumberOfFunctionEvaluations = SIMP(statut="f", typ="I", val_min=-1, min=1, max=1, defaut=15000, fr="Nombre maximal d'évaluations de la fonction"),
-        MaximumNumberOfSteps = SIMP(statut="f", typ="I", val_min=-1, min=1, max=1, defaut=15000, fr="Nombre maximal de pas d'optimisation"),
-        Minimizer = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="BOBYQA", into=['BOBYQA', 'COBYLA', 'NEWUOA', 'POWELL', 'SIMPLEX', 'SUBPLEX'], fr="Minimiseur utilisé"),
-        QualityCriterion = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="AugmentedWeightedLeastSquares", into=['AugmentedWeightedLeastSquares', 'AWLS', 'DA', 'WeightedLeastSquares', 'WLS', 'LeastSquares', 'LS', 'L2', 'AbsoluteValue', 'L1', 'MaximumError', 'ME'], fr="Critère de qualité utilisé"),
-        StateVariationTolerance = SIMP(statut="f", typ="R", min=1, max=1, defaut=0.0001, fr="Variation relative maximale de l'état lors de l'arrêt"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['CurrentState', 'CostFunctionJ', 'CostFunctionJb', 'CostFunctionJo', 'CostFunctionJAtCurrentOptimum', 'CurrentOptimum', 'IndexOfOptimum', 'InnovationAtCurrentState', 'BMA', 'OMA', 'OMB', 'SimulatedObservationAtBackground', 'SimulatedObservationAtCurrentOptimum', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    ParametersEnsembleBlue = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'EnsembleBlue') ",
-        statut="f",
-        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['CurrentState', 'Innovation', 'SimulatedObservationAtBackground', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    ParametersExtendedBlue = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'ExtendedBlue') ",
-        statut="f",
-        NumberOfSamplesForQuantiles = SIMP(statut="f", typ="I", val_min=1, min=1, max=1, defaut=100, fr="Nombre d'échantillons simulés pour le calcul des quantiles"),
-        Quantiles = SIMP(statut="f", typ="TXM", max="**", into=None, fr="Liste des valeurs de quantiles"),
-        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
-        SimulationForQuantiles = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="Linear", into=['Linear', 'NonLinear'], fr="Type de simulation pour l'estimation des quantiles"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['APosterioriCorrelations', 'APosterioriCovariance', 'APosterioriStandardDeviations', 'APosterioriVariances', 'BMA', 'OMA', 'OMB', 'CurrentState', 'CostFunctionJ', 'CostFunctionJb', 'CostFunctionJo', 'Innovation', 'SigmaBck2', 'SigmaObs2', 'MahalanobisConsistency', 'SimulationQuantiles', 'SimulatedObservationAtBackground', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    ParametersExtendedKalmanFilter = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'ExtendedKalmanFilter') ",
-        statut="f",
-        Bounds = SIMP(statut="f", typ="TXM", fr="Liste des valeurs de bornes"),
-        ConstrainedBy = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="EstimateProjection", into=['EstimateProjection'], fr="Prise en compte des contraintes"),
-        EstimationOf = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="State", into=['State', 'Parameters'], fr="Estimation d'etat ou de parametres"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['APosterioriCorrelations', 'APosterioriCovariance', 'APosterioriStandardDeviations', 'APosterioriVariances', 'BMA', 'CurrentState', 'CostFunctionJ', 'CostFunctionJb', 'CostFunctionJo', 'Innovation'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    ParametersKalmanFilter = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'KalmanFilter') ",
-        statut="f",
-        EstimationOf = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="State", into=['State', 'Parameters'], fr="Estimation d'etat ou de parametres"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['APosterioriCorrelations', 'APosterioriCovariance', 'APosterioriStandardDeviations', 'APosterioriVariances', 'BMA', 'CurrentState', 'CostFunctionJ', 'CostFunctionJb', 'CostFunctionJo', 'Innovation'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    ParametersLinearLeastSquares = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'LinearLeastSquares') ",
-        statut="f",
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['OMA', 'CurrentState', 'CostFunctionJ', 'CostFunctionJb', 'CostFunctionJo', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    ParametersNonLinearLeastSquares = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'NonLinearLeastSquares') ",
-        statut="f",
-        Bounds = SIMP(statut="f", typ="TXM", fr="Liste des valeurs de bornes"),
-        CostDecrementTolerance = SIMP(statut="f", typ="R", min=1, max=1, defaut=1e-07, fr="Diminution relative minimale du cout lors de l'arrêt"),
-        GradientNormTolerance = SIMP(statut="f", typ="R", min=1, max=1, defaut=1e-05, fr="Maximum des composantes du gradient lors de l'arrêt"),
-        MaximumNumberOfSteps = SIMP(statut="f", typ="I", val_min=-1, min=1, max=1, defaut=15000, fr="Nombre maximal de pas d'optimisation"),
-        Minimizer = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="LBFGSB", into=['LBFGSB', 'TNC', 'CG', 'NCG', 'BFGS', 'LM'], fr="Minimiseur utilisé"),
-        ProjectedGradientTolerance = SIMP(statut="f", typ="R", val_min=-1, min=1, max=1, defaut=-1.0, fr="Maximum des composantes du gradient projeté lors de l'arrêt"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['BMA', 'OMA', 'OMB', 'CurrentState', 'CostFunctionJ', 'CostFunctionJb', 'CostFunctionJo', 'Innovation', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    ParametersParticleSwarmOptimization = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'ParticleSwarmOptimization') ",
-        statut="f",
-        BoxBounds = SIMP(statut="f", typ="TXM", fr="Liste des valeurs de bornes d'incréments de paramètres"),
-        GroupRecallRate = SIMP(statut="f", typ="R", val_min=0.0, val_max=1.0, min=1, max=1, defaut=0.5, fr="Taux de rappel au meilleur insecte du groupe (entre 0 et 1)"),
-        MaximumNumberOfFunctionEvaluations = SIMP(statut="f", typ="I", val_min=-1, min=1, max=1, defaut=15000, fr="Nombre maximal d'évaluations de la fonction"),
-        MaximumNumberOfSteps = SIMP(statut="f", typ="I", val_min=0, min=1, max=1, defaut=50, fr="Nombre maximal de pas d'optimisation"),
-        NumberOfInsects = SIMP(statut="f", typ="I", val_min=-1, min=1, max=1, defaut=100, fr="Nombre d'insectes dans l'essaim"),
-        QualityCriterion = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="AugmentedWeightedLeastSquares", into=['AugmentedWeightedLeastSquares', 'AWLS', 'AugmentedPonderatedLeastSquares', 'APLS', 'DA', 'WeightedLeastSquares', 'WLS', 'PonderatedLeastSquares', 'PLS', 'LeastSquares', 'LS', 'L2', 'AbsoluteValue', 'L1', 'MaximumError', 'ME'], fr="Critère de qualité utilisé"),
-        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['BMA', 'OMA', 'OMB', 'CurrentState', 'CostFunctionJ', 'CostFunctionJb', 'CostFunctionJo', 'Innovation', 'SimulatedObservationAtBackground', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        SwarmVelocity = SIMP(statut="f", typ="R", val_min=0.0, min=1, max=1, defaut=1.0, fr="Vitesse de groupe imposée par l'essaim"),
-        ),
-    ParametersQuantileRegression = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'QuantileRegression') ",
-        statut="f",
-        Bounds = SIMP(statut="f", typ="TXM", fr="Liste des valeurs de bornes"),
-        CostDecrementTolerance = SIMP(statut="f", typ="R", min=1, max=1, defaut=1e-06, fr="Maximum de variation de la fonction d'estimation lors de l'arrêt"),
-        MaximumNumberOfSteps = SIMP(statut="f", typ="I", val_min=1, min=1, max=1, defaut=15000, fr="Nombre maximal de pas d'optimisation"),
-        Minimizer = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="MMQR", into=['MMQR'], fr="Minimiseur utilisé"),
-        Quantile = SIMP(statut="f", typ="R", val_min=0.0, val_max=1.0, min=1, max=1, defaut=0.5, fr="Quantile pour la regression de quantile"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['BMA', 'OMA', 'OMB', 'CurrentState', 'CostFunctionJ', 'CostFunctionJb', 'CostFunctionJo', 'Innovation', 'SimulatedObservationAtBackground', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    ParametersUnscentedKalmanFilter = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'UnscentedKalmanFilter') ",
-        statut="f",
-        Alpha = SIMP(statut="f", typ="R", val_min=0.0001, val_max=1.0, min=1, max=1, defaut=1.0, fr=""),
-        Beta = SIMP(statut="f", typ="R", min=1, max=1, defaut=2.0, fr=""),
-        Bounds = SIMP(statut="f", typ="TXM", fr="Liste des valeurs de bornes"),
-        ConstrainedBy = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="EstimateProjection", into=['EstimateProjection'], fr="Prise en compte des contraintes"),
-        EstimationOf = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="State", into=['State', 'Parameters'], fr="Estimation d'etat ou de parametres"),
-        Kappa = SIMP(statut="f", typ="I", val_max=2, min=1, max=1, defaut=0, fr=""),
-        Reconditioner = SIMP(statut="f", typ="R", val_min=0.001, val_max=10.0, min=1, max=1, defaut=1.0, fr=""),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['APosterioriCorrelations', 'APosterioriCovariance', 'APosterioriStandardDeviations', 'APosterioriVariances', 'BMA', 'CurrentState', 'CostFunctionJ', 'CostFunctionJb', 'CostFunctionJo', 'Innovation'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    ParametersAdjointTest = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'AdjointTest') ",
-        statut="f",
-        AmplitudeOfInitialDirection = SIMP(statut="f", typ="R", min=1, max=1, defaut=1.0, fr="Amplitude de la direction initiale de la dérivée directionnelle autour du point nominal"),
-        EpsilonMinimumExponent = SIMP(statut="f", typ="I", val_min=-20, val_max=0, min=1, max=1, defaut=-8, fr="Exposant minimal en puissance de 10 pour le multiplicateur d'incrément"),
-        InitialDirection = SIMP(statut="f", typ="TXM", fr="Direction initiale de la dérivée directionnelle autour du point nominal"),
-        ResiduFormula = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="ScalarProduct", into=['ScalarProduct'], fr="Formule de résidu utilisée"),
-        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['CurrentState', 'Residu', 'SimulatedObservationAtCurrentState'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    ParametersFunctionTest = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'FunctionTest') ",
-        statut="f",
-        NumberOfPrintedDigits = SIMP(statut="f", typ="I", val_min=0, min=1, max=1, defaut=5, fr="Nombre de chiffres affichés pour les impressions de réels"),
-        NumberOfRepetition = SIMP(statut="f", typ="I", val_min=1, min=1, max=1, defaut=1, fr="Nombre de fois où l'exécution de la fonction est répétée"),
-        SetDebug = SIMP(statut="f", typ="I", min=1, max=1, defaut=0, fr="Activation du mode debug lors de l'exécution"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['CurrentState', 'SimulatedObservationAtCurrentState'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    ParametersGradientTest = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'GradientTest') ",
-        statut="f",
-        AmplitudeOfInitialDirection = SIMP(statut="f", typ="R", min=1, max=1, defaut=1.0, fr="Amplitude de la direction initiale de la dérivée directionnelle autour du point nominal"),
-        AmplitudeOfTangentPerturbation = SIMP(statut="f", typ="R", val_min=1e-10, val_max=1.0, min=1, max=1, defaut=0.01, fr="Amplitude de la perturbation pour le calcul de la forme tangente"),
-        EpsilonMinimumExponent = SIMP(statut="f", typ="I", val_min=-20, val_max=0, min=1, max=1, defaut=-8, fr="Exposant minimal en puissance de 10 pour le multiplicateur d'incrément"),
-        InitialDirection = SIMP(statut="f", typ="TXM", fr="Direction initiale de la dérivée directionnelle autour du point nominal"),
-        ResiduFormula = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="Taylor", into=['Norm', 'TaylorOnNorm', 'Taylor'], fr="Formule de résidu utilisée"),
-        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['CurrentState', 'Residu', 'SimulatedObservationAtCurrentState'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    ParametersLinearityTest = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'LinearityTest') ",
-        statut="f",
-        AmplitudeOfInitialDirection = SIMP(statut="f", typ="R", min=1, max=1, defaut=1.0, fr="Amplitude de la direction initiale de la dérivée directionnelle autour du point nominal"),
-        AmplitudeOfTangentPerturbation = SIMP(statut="f", typ="R", val_min=1e-10, val_max=1.0, min=1, max=1, defaut=0.01, fr="Amplitude de la perturbation pour le calcul de la forme tangente"),
-        EpsilonMinimumExponent = SIMP(statut="f", typ="I", val_min=-20, val_max=0, min=1, max=1, defaut=-8, fr="Exposant minimal en puissance de 10 pour le multiplicateur d'incrément"),
-        InitialDirection = SIMP(statut="f", typ="TXM", fr="Direction initiale de la dérivée directionnelle autour du point nominal"),
-        ResiduFormula = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="CenteredDL", into=['CenteredDL', 'Taylor', 'NominalTaylor', 'NominalTaylorRMS'], fr="Formule de résidu utilisée"),
-        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['CurrentState', 'Residu', 'SimulatedObservationAtCurrentState'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    ParametersSamplingTest = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'SamplingTest') ",
-        statut="f",
-        QualityCriterion = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="AugmentedWeightedLeastSquares", into=['AugmentedWeightedLeastSquares', 'AWLS', 'AugmentedPonderatedLeastSquares', 'APLS', 'DA', 'WeightedLeastSquares', 'WLS', 'PonderatedLeastSquares', 'PLS', 'LeastSquares', 'LS', 'L2', 'AbsoluteValue', 'L1', 'MaximumError', 'ME'], fr="Critère de qualité utilisé"),
-        SampleAsExplicitHyperCube = SIMP(statut="f", typ="TXM", max="**", into=None, fr="Points de calcul définis par un hyper-cube dont on donne la liste des échantillonages de chaque variable comme une liste"),
-        SampleAsIndependantRandomVariables = SIMP(statut="f", typ="TXM", max="**", into=None, fr="Points de calcul définis par un hyper-cube dont les points sur chaque axe proviennent de l'échantillonage indépendant de la variable selon la spécification ['distribution',[parametres],nombre]"),
-        SampleAsMinMaxStepHyperCube = SIMP(statut="f", typ="TXM", max="**", into=None, fr="Points de calcul définis par un hyper-cube dont on donne la liste des échantillonages de chaque variable par un triplet [min,max,step]"),
-        SampleAsnUplet = SIMP(statut="f", typ="TXM", max="**", into=None, fr="Points de calcul définis par une liste de n-uplet"),
-        SetDebug = SIMP(statut="f", typ="I", min=1, max=1, defaut=0, fr="Activation du mode debug lors de l'exécution"),
-        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['CostFunctionJ', 'CostFunctionJb', 'CostFunctionJo', 'CurrentState', 'InnovationAtCurrentState', 'SimulatedObservationAtCurrentState'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    ParametersTangentTest = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'TangentTest') ",
-        statut="f",
-        AmplitudeOfInitialDirection = SIMP(statut="f", typ="R", min=1, max=1, defaut=1.0, fr="Amplitude de la direction initiale de la dérivée directionnelle autour du point nominal"),
-        AmplitudeOfTangentPerturbation = SIMP(statut="f", typ="R", val_min=1e-10, val_max=1.0, min=1, max=1, defaut=0.01, fr="Amplitude de la perturbation pour le calcul de la forme tangente"),
-        EpsilonMinimumExponent = SIMP(statut="f", typ="I", val_min=-20, val_max=0, min=1, max=1, defaut=-8, fr="Exposant minimal en puissance de 10 pour le multiplicateur d'incrément"),
-        InitialDirection = SIMP(statut="f", typ="TXM", fr="Direction initiale de la dérivée directionnelle autour du point nominal"),
-        ResiduFormula = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="Taylor", into=['Taylor'], fr="Formule de résidu utilisée"),
-        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
-        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['CurrentState', 'Residu', 'SimulatedObservationAtCurrentState'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
-        ),
-    )
-
-def F_variables(statut) : return FACT(
-    statut=statut,
-    regles = ( MEME_NOMBRE ('NAMES', 'SIZES')),
-    NAMES = SIMP(statut="o", typ="TXM", max="**", validators=NoRepeat()),
-    SIZES = SIMP(statut="o", typ="I", val_min=1, max="**")
-    )
-def ChDir(dirname):
-    os.chdir(os.path.abspath(dirname))
-    return 1
-ChDir.info = u"This has to be a regular directory path."
-
-ASSIMILATION_STUDY = PROC(nom="ASSIMILATION_STUDY",
-    op=None,
-    repetable           = "n",
-    StudyName           = SIMP(statut="o", typ = "TXM", defaut="ADAO Calculation Case"),
-    StudyRepertory      = SIMP(statut="f", typ = "Repertoire", validators=FunctionVal(ChDir), min=1, max=1),
-    Debug               = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0),
-    AlgorithmParameters = F_AlgorithmParameters("o",("3DVAR", "4DVAR", "Blue", "DerivativeFreeOptimization", "EnsembleBlue", "ExtendedBlue", "ExtendedKalmanFilter", "KalmanFilter", "LinearLeastSquares", "NonLinearLeastSquares", "ParticleSwarmOptimization", "QuantileRegression", "UnscentedKalmanFilter", ), AlgorithmParametersInNS),
-    Background          = F_Background("o", BackgroundInNS),
-    BackgroundError     = F_BackgroundError("o", BackgroundErrorInNS),
-    Observation         = F_Observation("o", ObservationInNS),
-    ObservationError    = F_ObservationError("o", ObservationErrorInNS),
-    ObservationOperator = F_ObservationOperator("o"),
-    EvolutionModel      = F_EvolutionModel("f"),
-    EvolutionError      = F_EvolutionError("f", EvolutionErrorInNS),
-    ControlInput        = F_ControlInput("f"),
-    UserDataInit        = F_Init("f"),
-    UserPostAnalysis    = F_UserPostAnalysis("o"),
-    InputVariables      = F_variables("f"),
-    OutputVariables     = F_variables("f"),
-    Observers           = F_Observers("f")
-    )
-
-CHECKING_STUDY = PROC(nom="CHECKING_STUDY",
-    op=None,
-    repetable           = "n",
-    StudyName           = SIMP(statut="o", typ = "TXM", defaut="ADAO Checking Case"),
-    StudyRepertory      = SIMP(statut="f", typ = "Repertoire", validators=FunctionVal(ChDir), min=1, max=1),
-    Debug               = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0),
-    AlgorithmParameters = F_AlgorithmParameters("o", ("AdjointTest", "FunctionTest", "GradientTest", "LinearityTest", "ObserverTest", "SamplingTest", "TangentTest", ), AlgorithmParametersInNS),
-    CheckingPoint       = F_CheckingPoint("o", CheckingPointInNS),
-    BackgroundError     = F_BackgroundError("f", BackgroundErrorInNS),
-    Observation         = F_Observation("f", ObservationInNS),
-    ObservationError    = F_ObservationError("f", ObservationErrorInNS),
-    ObservationOperator = F_ObservationOperator("o"),
-    UserDataInit        = F_Init("f"),
-    Observers           = F_Observers("f")
-    )
diff --git a/Adao/ADAO_Cata_V0_pour_V9_5_0.py b/Adao/ADAO_Cata_V0_pour_V9_5_0.py
new file mode 100644 (file)
index 0000000..d60b7c3
--- /dev/null
@@ -0,0 +1,1361 @@
+# -*- coding: utf-8 -*-
+#
+# Copyright (C) 2008-2020 EDF R&D
+#
+# This file is part of SALOME ADAO module
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+# Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
+
+# --------------------------------------------------------
+# Generated by AdaoCatalogGenerator on 2020-03-23 18:51:58
+# --------------------------------------------------------
+
+import os, re
+import Accas
+from Accas import *
+
+JdC = JDC_CATA (
+    code = 'ADAO',
+    execmodul = None,
+    regles = ( AU_MOINS_UN ('ASSIMILATION_STUDY','CHECKING_STUDY'), AU_PLUS_UN ('ASSIMILATION_STUDY','CHECKING_STUDY')),
+    )
+VERSION_CATALOGUE='V9_5_0'
+
+def NoCheckInNS(filename):
+    return 1
+NoCheckInNS.info = u""
+def DirectOperatorInNS(filename):
+    if os.path.exists(filename):
+        fc = open(filename, 'r').readlines()
+        cr = re.compile("^def[\s]*DirectOperator[\s]*\(")
+        for ln in fc:
+            if cr.match(ln): return 1
+        cr = re.compile("^DirectOperator[\s]*=")
+        for ln in fc:
+            if cr.match(ln): return 1
+    return 0
+DirectOperatorInNS.info = u"The Python file has to contain explicitly a \"DirectOperator\" function definition with only one vector as argument."
+def TangentOperatorInNS(filename):
+    if os.path.exists(filename):
+        fc = open(filename, 'r').readlines()
+        cr = re.compile("^def[\s]*TangentOperator[\s]*\(")
+        for ln in fc:
+            if cr.match(ln): return 1
+        cr = re.compile("^TangentOperator[\s]*=")
+        for ln in fc:
+            if cr.match(ln): return 1
+    return 0
+TangentOperatorInNS.info = u"The Python file has to contain explicitly a \"TangentOperator\" function definition with only one pair of vectors as argument."
+def AdjointOperatorInNS(filename):
+    if os.path.exists(filename):
+        fc = open(filename, 'r').readlines()
+        cr = re.compile("^def[\s]*AdjointOperator[\s]*\(")
+        for ln in fc:
+            if cr.match(ln): return 1
+        cr = re.compile("^AdjointOperator[\s]*=")
+        for ln in fc:
+            if cr.match(ln): return 1
+    return 0
+AdjointOperatorInNS.info = u"The Python file has to contain explicitly an \"AdjointOperator\" function definition with only one pair of vectors as argument."
+def ColDataFileExtVal(filename):
+    __readable = (".csv", ".tsv", ".txt", ".npy", ".npz")
+    if os.path.exists(filename) and os.path.splitext(filename)[1] in __readable:
+        return 1
+    return 0
+ColDataFileExtVal.info = u"The data file has to contain explicitly one or more number columns with separator, or one variable, that can fit in a unique continuous vector."
+
+def F_Vector(statut, fv=NoCheckInNS) : return FACT(
+    statut = statut,
+    FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", "DataFile", ), defaut="Script"),
+    SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ",
+        SCRIPT_FILE = SIMP(statut = "o", typ = ("FichierNoAbs",'Python Files (*.py)',), validators=[OnlyStr(), FileExtVal('py'), FunctionVal(fv)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"),
+        ),
+    DATA_DATA = BLOC ( condition = " FROM in ( 'DataFile', ) ",
+        DATA_FILE = SIMP(statut = "o", typ = ("FichierNoAbs",'CSV Text Files (*.csv);;TSV Text Files (*.tsv);;TXT Text Files (*.txt);;NPY Binary Numpy Files (*.npy);;NPZ Binary Numpy Files (*.npz);;All Files (*)", ',), validators=[OnlyStr(), FunctionVal(ColDataFileExtVal)], fr="En attente d'un nom de fichier de données, avec ou sans le chemin complet pour le trouver, contenant ou plusieurs colonnes pour définir un unique vecteur continu", ang="Waiting for a data file name, with or without the full path to find it, containing one or more columns to define a unique continuous vector"),
+        ColMajor = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Variables en colonnes acquises ligne par ligne (0) ou colonne par colonne (1)", ang="Variables in columns acquired line by line (0) or column by column (1)"),
+        ),
+    STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ",
+        STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"),
+        ),
+    SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ",
+        SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS), FunctionVal(TangentOperatorInNS), FunctionVal(AdjointOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"),
+        ),
+    SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ",
+        SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"),
+        DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"),
+        CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite differences method"),
+        EnableMultiProcessing = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Calculs élémentaires effectués en séquentiel (0) ou en parallèle (1) dans la méthode des différences finies", ang="Elementary calculations done sequentially (0) or in parallel (1) in the finite differences method"),
+        NumberOfProcesses = SIMP(statut="f", typ = "I", val_min=0, defaut=0, fr="Nombre de processus parallèles, 0 pour un contrôle automatique", ang="Number of parallel processes, 0 for automatic control"),
+        ),
+    SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ",
+        SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"),
+        ),
+    TEMPLATE_DATA =  BLOC (condition = " FROM in ( 'Template', ) ",
+        Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")),
+        AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ",
+            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint('Analysis:',xa)" ),
+            ),
+        AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ",
+            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint('Analysis saved in \"%s\"'%f)\nnumpy.savetxt(f,xa)" ),
+            ),
+        AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ",
+            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint('Analysis saved in \"%s\"'%f)\nnumpy.savetxt(f,xa)" ),
+            ),
+        ),
+    )
+
+def F_VectorSerie(statut, fv=NoCheckInNS) : return FACT(
+    statut = statut,
+    FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", "DataFile", ), defaut="Script"),
+    SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ",
+        SCRIPT_FILE = SIMP(statut = "o", typ = ("FichierNoAbs",'Python Files (*.py)',), validators=[OnlyStr(), FileExtVal('py'), FunctionVal(fv)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"),
+        ),
+    DATA_DATA = BLOC ( condition = " FROM in ( 'DataFile', ) ",
+        DATA_FILE = SIMP(statut = "o", typ = ("FichierNoAbs",'CSV Text Files (*.csv);;TSV Text Files (*.tsv);;TXT Text Files (*.txt);;NPY Binary Numpy Files (*.npy);;NPZ Binary Numpy Files (*.npz);;All Files (*)", ',), validators=[OnlyStr(), FunctionVal(ColDataFileExtVal)], fr="En attente d'un nom de fichier de données, avec ou sans le chemin complet pour le trouver, contenant ou plusieurs colonnes pour définir un unique vecteur continu", ang="Waiting for a data file name, with or without the full path to find it, containing one or more columns to define a unique continuous vector"),
+        ColMajor = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Variables en colonnes acquises ligne par ligne (0) ou colonne par colonne (1)", ang="Variables in columns acquired line by line (0) or column by column (1)"),
+        ),
+    STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ",
+        STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"),
+        ),
+    SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ",
+        SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS), FunctionVal(TangentOperatorInNS), FunctionVal(AdjointOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"),
+        ),
+    SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ",
+        SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"),
+        DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"),
+        CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite differences method"),
+        EnableMultiProcessing = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Calculs élémentaires effectués en séquentiel (0) ou en parallèle (1) dans la méthode des différences finies", ang="Elementary calculations done sequentially (0) or in parallel (1) in the finite differences method"),
+        NumberOfProcesses = SIMP(statut="f", typ = "I", val_min=0, defaut=0, fr="Nombre de processus parallèles, 0 pour un contrôle automatique", ang="Number of parallel processes, 0 for automatic control"),
+        ),
+    SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ",
+        SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"),
+        ),
+    TEMPLATE_DATA =  BLOC (condition = " FROM in ( 'Template', ) ",
+        Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")),
+        AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ",
+            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint('Analysis:',xa)" ),
+            ),
+        AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ",
+            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint('Analysis saved in \"%s\"'%f)\nnumpy.savetxt(f,xa)" ),
+            ),
+        AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ",
+            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint('Analysis saved in \"%s\"'%f)\nnumpy.savetxt(f,xa)" ),
+            ),
+        ),
+    )
+
+def F_Matrix(statut, fv=NoCheckInNS) : return FACT(
+    statut = statut,
+    FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", ), defaut="Script"),
+    SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ",
+        SCRIPT_FILE = SIMP(statut = "o", typ = ("FichierNoAbs",'Python Files (*.py)',), validators=[OnlyStr(), FileExtVal('py'), FunctionVal(fv)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"),
+        ),
+    DATA_DATA = BLOC ( condition = " FROM in ( 'DataFile', ) ",
+        DATA_FILE = SIMP(statut = "o", typ = ("FichierNoAbs",'CSV Text Files (*.csv);;TSV Text Files (*.tsv);;TXT Text Files (*.txt);;NPY Binary Numpy Files (*.npy);;NPZ Binary Numpy Files (*.npz);;All Files (*)", ',), validators=[OnlyStr(), FunctionVal(ColDataFileExtVal)], fr="En attente d'un nom de fichier de données, avec ou sans le chemin complet pour le trouver, contenant ou plusieurs colonnes pour définir un unique vecteur continu", ang="Waiting for a data file name, with or without the full path to find it, containing one or more columns to define a unique continuous vector"),
+        ColMajor = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Variables en colonnes acquises ligne par ligne (0) ou colonne par colonne (1)", ang="Variables in columns acquired line by line (0) or column by column (1)"),
+        ),
+    STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ",
+        STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"),
+        ),
+    SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ",
+        SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS), FunctionVal(TangentOperatorInNS), FunctionVal(AdjointOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"),
+        ),
+    SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ",
+        SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"),
+        DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"),
+        CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite differences method"),
+        EnableMultiProcessing = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Calculs élémentaires effectués en séquentiel (0) ou en parallèle (1) dans la méthode des différences finies", ang="Elementary calculations done sequentially (0) or in parallel (1) in the finite differences method"),
+        NumberOfProcesses = SIMP(statut="f", typ = "I", val_min=0, defaut=0, fr="Nombre de processus parallèles, 0 pour un contrôle automatique", ang="Number of parallel processes, 0 for automatic control"),
+        ),
+    SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ",
+        SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"),
+        ),
+    TEMPLATE_DATA =  BLOC (condition = " FROM in ( 'Template', ) ",
+        Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")),
+        AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ",
+            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint('Analysis:',xa)" ),
+            ),
+        AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ",
+            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint('Analysis saved in \"%s\"'%f)\nnumpy.savetxt(f,xa)" ),
+            ),
+        AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ",
+            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint('Analysis saved in \"%s\"'%f)\nnumpy.savetxt(f,xa)" ),
+            ),
+        ),
+    )
+
+def F_ScalarSparseMatrix(statut, fv=NoCheckInNS) : return FACT(
+    statut = statut,
+    FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", ), defaut="String"),
+    SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ",
+        SCRIPT_FILE = SIMP(statut = "o", typ = ("FichierNoAbs",'Python Files (*.py)',), validators=[OnlyStr(), FileExtVal('py'), FunctionVal(fv)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"),
+        ),
+    DATA_DATA = BLOC ( condition = " FROM in ( 'DataFile', ) ",
+        DATA_FILE = SIMP(statut = "o", typ = ("FichierNoAbs",'CSV Text Files (*.csv);;TSV Text Files (*.tsv);;TXT Text Files (*.txt);;NPY Binary Numpy Files (*.npy);;NPZ Binary Numpy Files (*.npz);;All Files (*)", ',), validators=[OnlyStr(), FunctionVal(ColDataFileExtVal)], fr="En attente d'un nom de fichier de données, avec ou sans le chemin complet pour le trouver, contenant ou plusieurs colonnes pour définir un unique vecteur continu", ang="Waiting for a data file name, with or without the full path to find it, containing one or more columns to define a unique continuous vector"),
+        ColMajor = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Variables en colonnes acquises ligne par ligne (0) ou colonne par colonne (1)", ang="Variables in columns acquired line by line (0) or column by column (1)"),
+        ),
+    STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ",
+        STRING = SIMP(statut = "o", typ = "TXM", defaut="1.", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"),
+        ),
+    SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ",
+        SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS), FunctionVal(TangentOperatorInNS), FunctionVal(AdjointOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"),
+        ),
+    SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ",
+        SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"),
+        DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"),
+        CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite differences method"),
+        EnableMultiProcessing = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Calculs élémentaires effectués en séquentiel (0) ou en parallèle (1) dans la méthode des différences finies", ang="Elementary calculations done sequentially (0) or in parallel (1) in the finite differences method"),
+        NumberOfProcesses = SIMP(statut="f", typ = "I", val_min=0, defaut=0, fr="Nombre de processus parallèles, 0 pour un contrôle automatique", ang="Number of parallel processes, 0 for automatic control"),
+        ),
+    SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ",
+        SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"),
+        ),
+    TEMPLATE_DATA =  BLOC (condition = " FROM in ( 'Template', ) ",
+        Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")),
+        AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ",
+            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint('Analysis:',xa)" ),
+            ),
+        AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ",
+            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint('Analysis saved in \"%s\"'%f)\nnumpy.savetxt(f,xa)" ),
+            ),
+        AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ",
+            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint('Analysis saved in \"%s\"'%f)\nnumpy.savetxt(f,xa)" ),
+            ),
+        ),
+    )
+
+def F_DiagonalSparseMatrix(statut, fv=NoCheckInNS) : return FACT(
+    statut = statut,
+    FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", ), defaut="String"),
+    SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ",
+        SCRIPT_FILE = SIMP(statut = "o", typ = ("FichierNoAbs",'Python Files (*.py)',), validators=[OnlyStr(), FileExtVal('py'), FunctionVal(fv)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"),
+        ),
+    DATA_DATA = BLOC ( condition = " FROM in ( 'DataFile', ) ",
+        DATA_FILE = SIMP(statut = "o", typ = ("FichierNoAbs",'CSV Text Files (*.csv);;TSV Text Files (*.tsv);;TXT Text Files (*.txt);;NPY Binary Numpy Files (*.npy);;NPZ Binary Numpy Files (*.npz);;All Files (*)", ',), validators=[OnlyStr(), FunctionVal(ColDataFileExtVal)], fr="En attente d'un nom de fichier de données, avec ou sans le chemin complet pour le trouver, contenant ou plusieurs colonnes pour définir un unique vecteur continu", ang="Waiting for a data file name, with or without the full path to find it, containing one or more columns to define a unique continuous vector"),
+        ColMajor = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Variables en colonnes acquises ligne par ligne (0) ou colonne par colonne (1)", ang="Variables in columns acquired line by line (0) or column by column (1)"),
+        ),
+    STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ",
+        STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"),
+        ),
+    SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ",
+        SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS), FunctionVal(TangentOperatorInNS), FunctionVal(AdjointOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"),
+        ),
+    SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ",
+        SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"),
+        DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"),
+        CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite differences method"),
+        EnableMultiProcessing = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Calculs élémentaires effectués en séquentiel (0) ou en parallèle (1) dans la méthode des différences finies", ang="Elementary calculations done sequentially (0) or in parallel (1) in the finite differences method"),
+        NumberOfProcesses = SIMP(statut="f", typ = "I", val_min=0, defaut=0, fr="Nombre de processus parallèles, 0 pour un contrôle automatique", ang="Number of parallel processes, 0 for automatic control"),
+        ),
+    SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ",
+        SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"),
+        ),
+    TEMPLATE_DATA =  BLOC (condition = " FROM in ( 'Template', ) ",
+        Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")),
+        AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ",
+            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint('Analysis:',xa)" ),
+            ),
+        AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ",
+            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint('Analysis saved in \"%s\"'%f)\nnumpy.savetxt(f,xa)" ),
+            ),
+        AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ",
+            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint('Analysis saved in \"%s\"'%f)\nnumpy.savetxt(f,xa)" ),
+            ),
+        ),
+    )
+
+def F_Function(statut, fv=NoCheckInNS) : return FACT(
+    statut = statut,
+    FROM = SIMP(statut = "o", typ = "TXM", into=("ScriptWithOneFunction", "ScriptWithFunctions", "ScriptWithSwitch", "FunctionDict", ), defaut="ScriptWithOneFunction"),
+    SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ",
+        SCRIPT_FILE = SIMP(statut = "o", typ = ("FichierNoAbs",'Python Files (*.py)',), validators=[OnlyStr(), FileExtVal('py'), FunctionVal(fv)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"),
+        ),
+    DATA_DATA = BLOC ( condition = " FROM in ( 'DataFile', ) ",
+        DATA_FILE = SIMP(statut = "o", typ = ("FichierNoAbs",'CSV Text Files (*.csv);;TSV Text Files (*.tsv);;TXT Text Files (*.txt);;NPY Binary Numpy Files (*.npy);;NPZ Binary Numpy Files (*.npz);;All Files (*)", ',), validators=[OnlyStr(), FunctionVal(ColDataFileExtVal)], fr="En attente d'un nom de fichier de données, avec ou sans le chemin complet pour le trouver, contenant ou plusieurs colonnes pour définir un unique vecteur continu", ang="Waiting for a data file name, with or without the full path to find it, containing one or more columns to define a unique continuous vector"),
+        ColMajor = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Variables en colonnes acquises ligne par ligne (0) ou colonne par colonne (1)", ang="Variables in columns acquired line by line (0) or column by column (1)"),
+        ),
+    STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ",
+        STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"),
+        ),
+    SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ",
+        SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS), FunctionVal(TangentOperatorInNS), FunctionVal(AdjointOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"),
+        ),
+    SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ",
+        SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"),
+        DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"),
+        CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite differences method"),
+        EnableMultiProcessing = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Calculs élémentaires effectués en séquentiel (0) ou en parallèle (1) dans la méthode des différences finies", ang="Elementary calculations done sequentially (0) or in parallel (1) in the finite differences method"),
+        NumberOfProcesses = SIMP(statut="f", typ = "I", val_min=0, defaut=0, fr="Nombre de processus parallèles, 0 pour un contrôle automatique", ang="Number of parallel processes, 0 for automatic control"),
+        ),
+    SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ",
+        SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"),
+        ),
+    TEMPLATE_DATA =  BLOC (condition = " FROM in ( 'Template', ) ",
+        Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")),
+        AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ",
+            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint('Analysis:',xa)" ),
+            ),
+        AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ",
+            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint('Analysis saved in \"%s\"'%f)\nnumpy.savetxt(f,xa)" ),
+            ),
+        AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ",
+            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint('Analysis saved in \"%s\"'%f)\nnumpy.savetxt(f,xa)" ),
+            ),
+        ),
+    )
+
+def F_Dict(statut, fv=NoCheckInNS) : return FACT(
+    statut = statut,
+    FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", ), defaut="Script"),
+    SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ",
+        SCRIPT_FILE = SIMP(statut = "o", typ = ("FichierNoAbs",'Python Files (*.py)',), validators=[OnlyStr(), FileExtVal('py'), FunctionVal(fv)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"),
+        ),
+    DATA_DATA = BLOC ( condition = " FROM in ( 'DataFile', ) ",
+        DATA_FILE = SIMP(statut = "o", typ = ("FichierNoAbs",'CSV Text Files (*.csv);;TSV Text Files (*.tsv);;TXT Text Files (*.txt);;NPY Binary Numpy Files (*.npy);;NPZ Binary Numpy Files (*.npz);;All Files (*)", ',), validators=[OnlyStr(), FunctionVal(ColDataFileExtVal)], fr="En attente d'un nom de fichier de données, avec ou sans le chemin complet pour le trouver, contenant ou plusieurs colonnes pour définir un unique vecteur continu", ang="Waiting for a data file name, with or without the full path to find it, containing one or more columns to define a unique continuous vector"),
+        ColMajor = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Variables en colonnes acquises ligne par ligne (0) ou colonne par colonne (1)", ang="Variables in columns acquired line by line (0) or column by column (1)"),
+        ),
+    STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ",
+        STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"),
+        ),
+    SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ",
+        SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS), FunctionVal(TangentOperatorInNS), FunctionVal(AdjointOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"),
+        ),
+    SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ",
+        SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"),
+        DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"),
+        CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite differences method"),
+        EnableMultiProcessing = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Calculs élémentaires effectués en séquentiel (0) ou en parallèle (1) dans la méthode des différences finies", ang="Elementary calculations done sequentially (0) or in parallel (1) in the finite differences method"),
+        NumberOfProcesses = SIMP(statut="f", typ = "I", val_min=0, defaut=0, fr="Nombre de processus parallèles, 0 pour un contrôle automatique", ang="Number of parallel processes, 0 for automatic control"),
+        ),
+    SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ",
+        SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"),
+        ),
+    TEMPLATE_DATA =  BLOC (condition = " FROM in ( 'Template', ) ",
+        Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")),
+        AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ",
+            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint('Analysis:',xa)" ),
+            ),
+        AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ",
+            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint('Analysis saved in \"%s\"'%f)\nnumpy.savetxt(f,xa)" ),
+            ),
+        AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ",
+            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint('Analysis saved in \"%s\"'%f)\nnumpy.savetxt(f,xa)" ),
+            ),
+        ),
+    )
+
+def BackgroundInNS(filename):
+    if os.path.exists(filename):
+        fc = open(filename, 'r').readlines()
+        cr = re.compile("^Background[\s]*=")
+        for ln in fc:
+            if cr.match(ln): return 1
+    return 0
+BackgroundInNS.info = u"The Python file has to contain explicitly a \"Background\" variable."
+def F_Background(statut, fv=NoCheckInNS) : return FACT(
+    statut=statut,
+    Stored = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"),
+    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Vector", "VectorSerie", ), defaut="Vector"),
+    Vector = BLOC ( condition = " INPUT_TYPE in ( 'Vector', ) ",
+        data = F_Vector("o", fv),
+        ),
+    VectorSerie = BLOC ( condition = " INPUT_TYPE in ( 'VectorSerie', ) ",
+        data = F_VectorSerie("o", fv),
+        ),
+    )
+
+def BackgroundErrorInNS(filename):
+    if os.path.exists(filename):
+        fc = open(filename, 'r').readlines()
+        cr = re.compile("^BackgroundError[\s]*=")
+        for ln in fc:
+            if cr.match(ln): return 1
+    return 0
+BackgroundErrorInNS.info = u"The Python file has to contain explicitly a \"BackgroundError\" variable."
+def F_BackgroundError(statut, fv=NoCheckInNS) : return FACT(
+    statut=statut,
+    Stored = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"),
+    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Matrix", "ScalarSparseMatrix", "DiagonalSparseMatrix", ), defaut="ScalarSparseMatrix"),
+    Matrix = BLOC ( condition = " INPUT_TYPE in ( 'Matrix', ) ",
+        data = F_Matrix("o", fv),
+        ),
+    ScalarSparseMatrix = BLOC ( condition = " INPUT_TYPE in ( 'ScalarSparseMatrix', ) ",
+        data = F_ScalarSparseMatrix("o", fv),
+        ),
+    DiagonalSparseMatrix = BLOC ( condition = " INPUT_TYPE in ( 'DiagonalSparseMatrix', ) ",
+        data = F_DiagonalSparseMatrix("o", fv),
+        ),
+    )
+
+def ObservationInNS(filename):
+    if os.path.exists(filename):
+        fc = open(filename, 'r').readlines()
+        cr = re.compile("^Observation[\s]*=")
+        for ln in fc:
+            if cr.match(ln): return 1
+    return 0
+ObservationInNS.info = u"The Python file has to contain explicitly a \"Observation\" variable."
+def F_Observation(statut, fv=NoCheckInNS) : return FACT(
+    statut=statut,
+    Stored = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"),
+    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Vector", "VectorSerie", ), defaut="Vector"),
+    Vector = BLOC ( condition = " INPUT_TYPE in ( 'Vector', ) ",
+        data = F_Vector("o", fv),
+        ),
+    VectorSerie = BLOC ( condition = " INPUT_TYPE in ( 'VectorSerie', ) ",
+        data = F_VectorSerie("o", fv),
+        ),
+    )
+
+def ObservationErrorInNS(filename):
+    if os.path.exists(filename):
+        fc = open(filename, 'r').readlines()
+        cr = re.compile("^ObservationError[\s]*=")
+        for ln in fc:
+            if cr.match(ln): return 1
+    return 0
+ObservationErrorInNS.info = u"The Python file has to contain explicitly a \"ObservationError\" variable."
+def F_ObservationError(statut, fv=NoCheckInNS) : return FACT(
+    statut=statut,
+    Stored = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"),
+    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Matrix", "ScalarSparseMatrix", "DiagonalSparseMatrix", ), defaut="ScalarSparseMatrix"),
+    Matrix = BLOC ( condition = " INPUT_TYPE in ( 'Matrix', ) ",
+        data = F_Matrix("o", fv),
+        ),
+    ScalarSparseMatrix = BLOC ( condition = " INPUT_TYPE in ( 'ScalarSparseMatrix', ) ",
+        data = F_ScalarSparseMatrix("o", fv),
+        ),
+    DiagonalSparseMatrix = BLOC ( condition = " INPUT_TYPE in ( 'DiagonalSparseMatrix', ) ",
+        data = F_DiagonalSparseMatrix("o", fv),
+        ),
+    )
+
+def ObservationOperatorInNS(filename):
+    if os.path.exists(filename):
+        fc = open(filename, 'r').readlines()
+        cr = re.compile("^ObservationOperator[\s]*=")
+        for ln in fc:
+            if cr.match(ln): return 1
+    return 0
+ObservationOperatorInNS.info = u"The Python file has to contain explicitly a \"ObservationOperator\" variable."
+def F_ObservationOperator(statut, fv=NoCheckInNS) : return FACT(
+    statut=statut,
+    Stored = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"),
+    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Matrix", "Function", ), defaut="Function"),
+    Matrix = BLOC ( condition = " INPUT_TYPE in ( 'Matrix', ) ",
+        data = F_Matrix("o", fv),
+        ),
+    Function = BLOC ( condition = " INPUT_TYPE in ( 'Function', ) ",
+        data = F_Function("o", fv),
+        ),
+    )
+
+def EvolutionModelInNS(filename):
+    if os.path.exists(filename):
+        fc = open(filename, 'r').readlines()
+        cr = re.compile("^EvolutionModel[\s]*=")
+        for ln in fc:
+            if cr.match(ln): return 1
+    return 0
+EvolutionModelInNS.info = u"The Python file has to contain explicitly a \"EvolutionModel\" variable."
+def F_EvolutionModel(statut, fv=NoCheckInNS) : return FACT(
+    statut=statut,
+    Stored = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"),
+    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Matrix", "Function", ), defaut="Function"),
+    Matrix = BLOC ( condition = " INPUT_TYPE in ( 'Matrix', ) ",
+        data = F_Matrix("o", fv),
+        ),
+    Function = BLOC ( condition = " INPUT_TYPE in ( 'Function', ) ",
+        data = F_Function("o", fv),
+        ),
+    )
+
+def EvolutionErrorInNS(filename):
+    if os.path.exists(filename):
+        fc = open(filename, 'r').readlines()
+        cr = re.compile("^EvolutionError[\s]*=")
+        for ln in fc:
+            if cr.match(ln): return 1
+    return 0
+EvolutionErrorInNS.info = u"The Python file has to contain explicitly a \"EvolutionError\" variable."
+def F_EvolutionError(statut, fv=NoCheckInNS) : return FACT(
+    statut=statut,
+    Stored = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"),
+    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Matrix", "ScalarSparseMatrix", "DiagonalSparseMatrix", ), defaut="ScalarSparseMatrix"),
+    Matrix = BLOC ( condition = " INPUT_TYPE in ( 'Matrix', ) ",
+        data = F_Matrix("o", fv),
+        ),
+    ScalarSparseMatrix = BLOC ( condition = " INPUT_TYPE in ( 'ScalarSparseMatrix', ) ",
+        data = F_ScalarSparseMatrix("o", fv),
+        ),
+    DiagonalSparseMatrix = BLOC ( condition = " INPUT_TYPE in ( 'DiagonalSparseMatrix', ) ",
+        data = F_DiagonalSparseMatrix("o", fv),
+        ),
+    )
+
+def AlgorithmParametersInNS(filename):
+    if os.path.exists(filename):
+        fc = open(filename, 'r').readlines()
+        cr = re.compile("^AlgorithmParameters[\s]*=")
+        for ln in fc:
+            if cr.match(ln): return 1
+    return 0
+AlgorithmParametersInNS.info = u"The Python file has to contain explicitly a \"AlgorithmParameters\" variable."
+def F_AlgorithmParameters(statut, fv=NoCheckInNS) : return FACT(
+    statut=statut,
+
+    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Dict", ), defaut="Dict"),
+    Dict = BLOC ( condition = " INPUT_TYPE in ( 'Dict', ) ",
+        data = F_Dict("o", fv),
+        ),
+    )
+
+def UserDataInitInNS(filename):
+    if os.path.exists(filename):
+        fc = open(filename, 'r').readlines()
+        cr = re.compile("^UserDataInit[\s]*=")
+        for ln in fc:
+            if cr.match(ln): return 1
+    return 0
+UserDataInitInNS.info = u"The Python file has to contain explicitly a \"UserDataInit\" variable."
+def F_UserDataInit(statut, fv=NoCheckInNS) : return FACT(
+    statut=statut,
+
+    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Dict", ), defaut="Dict"),
+    Dict = BLOC ( condition = " INPUT_TYPE in ( 'Dict', ) ",
+        data = F_Dict("o", fv),
+        ),
+    )
+
+def CheckingPointInNS(filename):
+    if os.path.exists(filename):
+        fc = open(filename, 'r').readlines()
+        cr = re.compile("^CheckingPoint[\s]*=")
+        for ln in fc:
+            if cr.match(ln): return 1
+    return 0
+CheckingPointInNS.info = u"The Python file has to contain explicitly a \"CheckingPoint\" variable."
+def F_CheckingPoint(statut, fv=NoCheckInNS) : return FACT(
+    statut=statut,
+    Stored = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"),
+    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Vector", ), defaut="Vector"),
+    Vector = BLOC ( condition = " INPUT_TYPE in ( 'Vector', ) ",
+        data = F_Vector("o", fv),
+        ),
+    )
+
+def ControlInputInNS(filename):
+    if os.path.exists(filename):
+        fc = open(filename, 'r').readlines()
+        cr = re.compile("^ControlInput[\s]*=")
+        for ln in fc:
+            if cr.match(ln): return 1
+    return 0
+ControlInputInNS.info = u"The Python file has to contain explicitly a \"ControlInput\" variable."
+def F_ControlInput(statut, fv=NoCheckInNS) : return FACT(
+    statut=statut,
+    Stored = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"),
+    INPUT_TYPE = SIMP(statut="o", typ = "TXM", into=("Vector", "VectorSerie", ), defaut="Vector"),
+    Vector = BLOC ( condition = " INPUT_TYPE in ( 'Vector', ) ",
+        data = F_Vector("o", fv),
+        ),
+    VectorSerie = BLOC ( condition = " INPUT_TYPE in ( 'VectorSerie', ) ",
+        data = F_VectorSerie("o", fv),
+        ),
+    )
+
+def F_UserPostAnalysis(statut, fv=NoCheckInNS) : return FACT(
+    statut = statut,
+    FROM = SIMP(statut = "o", typ = "TXM", into=("String", "Script", "Template", ), defaut="Template"),
+    SCRIPT_DATA = BLOC ( condition = " FROM in ( 'Script', ) ",
+        SCRIPT_FILE = SIMP(statut = "o", typ = ("FichierNoAbs",'Python Files (*.py)',), validators=[OnlyStr(), FileExtVal('py'), FunctionVal(fv)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant si nécessaire la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing if necessary the definition of an internal variable of the same name as the parent concept"),
+        ),
+    DATA_DATA = BLOC ( condition = " FROM in ( 'DataFile', ) ",
+        DATA_FILE = SIMP(statut = "o", typ = ("FichierNoAbs",'CSV Text Files (*.csv);;TSV Text Files (*.tsv);;TXT Text Files (*.txt);;NPY Binary Numpy Files (*.npy);;NPZ Binary Numpy Files (*.npz);;All Files (*)", ',), validators=[OnlyStr(), FunctionVal(ColDataFileExtVal)], fr="En attente d'un nom de fichier de données, avec ou sans le chemin complet pour le trouver, contenant ou plusieurs colonnes pour définir un unique vecteur continu", ang="Waiting for a data file name, with or without the full path to find it, containing one or more columns to define a unique continuous vector"),
+        ColMajor = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Variables en colonnes acquises ligne par ligne (0) ou colonne par colonne (1)", ang="Variables in columns acquired line by line (0) or column by column (1)"),
+        ),
+    STRING_DATA = BLOC ( condition = " FROM in ( 'String', ) ",
+        STRING = SIMP(statut = "o", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur ou une matrice, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector or a matrix, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"),
+        ),
+    SCRIPTWITHFUNCTIONS_DATA = BLOC ( condition = " FROM in ( 'ScriptWithFunctions', ) ",
+        SCRIPTWITHFUNCTIONS_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS), FunctionVal(TangentOperatorInNS), FunctionVal(AdjointOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variables internes trois fonctions de calcul nommées DirectOperator, TangentOperator et AdjointOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variables three computation functions named DirectOperator, TangentOperator and AdjointOperator"),
+        ),
+    SCRIPTWITHONEFUNCTION_DATA = BLOC ( condition = " FROM in ( 'ScriptWithOneFunction', ) ",
+        SCRIPTWITHONEFUNCTION_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py'), FunctionVal(DirectOperatorInNS)], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant en variable interne une seule fonction de calcul nommée DirectOperator", ang="Waiting for a script file name, with or without the full path to find it, containing as internal variable only one function named DirectOperator"),
+        DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"),
+        CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite differences method"),
+        EnableMultiProcessing = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Calculs élémentaires effectués en séquentiel (0) ou en parallèle (1) dans la méthode des différences finies", ang="Elementary calculations done sequentially (0) or in parallel (1) in the finite differences method"),
+        NumberOfProcesses = SIMP(statut="f", typ = "I", val_min=0, defaut=0, fr="Nombre de processus parallèles, 0 pour un contrôle automatique", ang="Number of parallel processes, 0 for automatic control"),
+        ),
+    SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ",
+        SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')], fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"),
+        ),
+    TEMPLATE_DATA =  BLOC (condition = " FROM in ( 'Template', ) ",
+        Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")),
+        AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ",
+            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint('Analysis:',xa)" ),
+            ),
+        AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ",
+            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nf='/tmp/analysis.txt'\nprint('Analysis saved in \"%s\"'%f)\nnumpy.savetxt(f,xa)" ),
+            ),
+        AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ",
+            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nxa=numpy.ravel(ADD.get('Analysis')[-1])\nprint 'Analysis:',xa\nf='/tmp/analysis.txt'\nprint('Analysis saved in \"%s\"'%f)\nnumpy.savetxt(f,xa)" ),
+            ),
+        ),
+    )
+
+def F_InitChoice() : return  ("Background",
+                              "BackgroundError",
+                              "Observation",
+                              "ObservationError",
+                              "ObservationOperator",
+                              "EvolutionModel",
+                              "EvolutionError",
+                              "AlgorithmParameters",
+                              "UserPostAnalysis",
+                             )
+
+def F_Init(statut) : return FACT(statut = statut,
+    INIT_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')]),
+    TARGET_LIST = SIMP(statut = "o", typ = "TXM", min=1, max="**", into=F_InitChoice(),  validators=(VerifExiste(2))),
+    )
+
+def F_ObserverTemplate() : return BLOC(condition = " NodeType == 'Template' ",
+                Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "ValuePrinter", into=("ValuePrinter", "ValueAndIndexPrinter", "ValueSeriePrinter", "ValueSaver", "ValueSerieSaver", "ValuePrinterAndSaver", "ValueIndexPrinterAndSaver", "ValueSeriePrinterAndSaver", "ValueGnuPlotter", "ValueSerieGnuPlotter", "ValuePrinterAndGnuPlotter", "ValueSeriePrinterAndGnuPlotter", "ValuePrinterSaverAndGnuPlotter", "ValueSeriePrinterSaverAndGnuPlotter", "ValueMean", "ValueStandardError", "ValueVariance", "ValueL2Norm", "ValueRMS")),
+                ValuePrinter = BLOC (condition = " Template == 'ValuePrinter' ",
+                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print(str(info)+\" \"+str(var[-1]))", fr="Imprime sur la sortie standard la valeur courante de la variable", ang="Print on standard output the current value of the variable" ),
+                    ),
+                ValueAndIndexPrinter = BLOC (condition = " Template == 'ValueAndIndexPrinter' ",
+                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print(str(info)+(\" index %i:\"%(len(var)-1))+\" \"+str(var[-1]))", fr="Imprime sur la sortie standard la valeur courante de la variable, en ajoutant son index", ang="Print on standard output the current value of the variable, adding its index" ),
+                    ),
+                ValueSeriePrinter = BLOC (condition = " Template == 'ValueSeriePrinter' ",
+                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print(str(info)+\" \"+str(var[:]))", fr="Imprime sur la sortie standard la série des valeurs de la variable", ang="Print on standard output the value series of the variable" ),
+                    ),
+                ValueSaver = BLOC (condition = " Template == 'ValueSaver' ",
+                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy, re\nv=numpy.array(var[-1], ndmin=1)\nglobal istep\ntry:\n    istep += 1\nexcept:\n    istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint('Value saved in \"%s\"'%f)\nnumpy.savetxt(f,v)", fr="Enregistre la valeur courante de la variable dans un fichier du répertoire '/tmp' nommé 'value...txt' selon le nom de la variable et l'étape d'enregistrement", ang="Save the current value of the variable in a file of the '/tmp' directory named 'value...txt' from the variable name and the saving step" ),
+                    ),
+                ValueSerieSaver = BLOC (condition = " Template == 'ValueSerieSaver' ",
+                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy, re\nv=numpy.array(var[:],  ndmin=1)\nglobal istep\ntry:\n    istep += 1\nexcept:\n    istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint('Value saved in \"%s\"'%f)\nnumpy.savetxt(f,v)", fr="Enregistre la série des valeurs de la variable dans un fichier du répertoire '/tmp' nommé 'value...txt' selon le nom de la variable et l'étape", ang="Save the value series of the variable in a file of the '/tmp' directory named 'value...txt' from the variable name and the saving step" ),
+                    ),
+                ValuePrinterAndSaver = BLOC (condition = " Template == 'ValuePrinterAndSaver' ",
+                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy, re\nv=numpy.array(var[-1], ndmin=1)\nprint(str(info)+\" \"+str(v))\nglobal istep\ntry:\n    istep += 1\nexcept:\n    istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint('Value saved in \"%s\"'%f)\nnumpy.savetxt(f,v)", fr="Imprime sur la sortie standard et, en même temps enregistre dans un fichier du répertoire '/tmp', la valeur courante de la variable", ang="Print on standard output and, in the same time save in a file of the '/tmp' directory, the current value of the variable" ),
+                    ),
+                ValueIndexPrinterAndSaver = BLOC (condition = " Template == 'ValueIndexPrinterAndSaver' ",
+                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy, re\nv=numpy.array(var[-1], ndmin=1)\nprint(str(info)+(\" index %i:\"%(len(var)-1))+\" \"+str(v))\nglobal istep\ntry:\n    istep += 1\nexcept:\n    istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint('Value saved in \"%s\"'%f)\nnumpy.savetxt(f,v)", fr="Imprime sur la sortie standard et, en même temps enregistre dans un fichier du répertoire '/tmp', la valeur courante de la variable, en ajoutant son index", ang="Print on standard output and, in the same time save in a file of the '/tmp' directory, the current value of the variable, adding its index" ),
+                    ),
+                ValueSeriePrinterAndSaver = BLOC (condition = " Template == 'ValueSeriePrinterAndSaver' ",
+                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy, re\nv=numpy.array(var[:],  ndmin=1)\nprint(str(info)+\" \"+str(v))\nglobal istep\ntry:\n    istep += 1\nexcept:\n    istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint('Value saved in \"%s\"'%f)\nnumpy.savetxt(f,v)", fr="Imprime sur la sortie standard et, en même temps, enregistre dans un fichier du répertoire '/tmp', la série des valeurs de la variable", ang="Print on standard output and, in the same time, save in a file of the '/tmp' directory, the value series of the variable" ),
+                    ),
+                ValueGnuPlotter = BLOC (condition = " Template == 'ValueGnuPlotter' ",
+                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy, Gnuplot\nv=numpy.array(var[-1], ndmin=1)\nglobal ifig, gp\ntry:\n    ifig += 1\n    gp(' set style data lines')\nexcept:\n    ifig = 0\n    gp = Gnuplot.Gnuplot(persist=1)\n    gp(' set style data lines')\ngp('set title  \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( v, with_='lines lw 2' ) )", fr="Affiche graphiquement avec Gnuplot la valeur courante de la variable", ang="Graphically plot with Gnuplot the current value of the variable" ),
+                    ),
+                ValueSerieGnuPlotter = BLOC (condition = " Template == 'ValueSerieGnuPlotter' ",
+                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy, Gnuplot\nv=numpy.array(var[:],  ndmin=1)\nglobal ifig, gp\ntry:\n    ifig += 1\n    gp(' set style data lines')\nexcept:\n    ifig = 0\n    gp = Gnuplot.Gnuplot(persist=1)\n    gp(' set style data lines')\ngp('set title  \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( v, with_='lines lw 2' ) )", fr="Affiche graphiquement avec Gnuplot la série des valeurs de la variable", ang="Graphically plot with Gnuplot the value series of the variable" ),
+                    ),
+                ValuePrinterAndGnuPlotter = BLOC (condition = " Template == 'ValuePrinterAndGnuPlotter' ",
+                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print(str(info)+\" \"+str(var[-1]))\nimport numpy, Gnuplot\nv=numpy.array(var[-1], ndmin=1)\nglobal ifig,gp\ntry:\n    ifig += 1\n    gp(' set style data lines')\nexcept:\n    ifig = 0\n    gp = Gnuplot.Gnuplot(persist=1)\n    gp(' set style data lines')\ngp('set title  \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( v, with_='lines lw 2' ) )", fr="Imprime sur la sortie standard et, en même temps, affiche graphiquement avec Gnuplot la valeur courante de la variable", ang="Print on standard output and, in the same time, graphically plot with Gnuplot the current value of the variable" ),
+                    ),
+                ValueSeriePrinterAndGnuPlotter = BLOC (condition = " Template == 'ValueSeriePrinterAndGnuPlotter' ",
+                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print(str(info)+\" \"+str(var[:]))\nimport numpy, Gnuplot\nv=numpy.array(var[:],  ndmin=1)\nglobal ifig,gp\ntry:\n    ifig += 1\n    gp(' set style data lines')\nexcept:\n    ifig = 0\n    gp = Gnuplot.Gnuplot(persist=1)\n    gp(' set style data lines')\ngp('set title  \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( v, with_='lines lw 2' ) )", fr="Imprime sur la sortie standard et, en même temps, affiche graphiquement avec Gnuplot la série des valeurs de la variable", ang="Print on standard output and, in the same time, graphically plot with Gnuplot the value series of the variable" ),
+                    ),
+                ValuePrinterSaverAndGnuPlotter = BLOC (condition = " Template == 'ValuePrinterSaverAndGnuPlotter' ",
+                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print(str(info)+\" \"+str(var[-1]))\nimport numpy, re\nv=numpy.array(var[-1], ndmin=1)\nglobal istep\ntry:\n    istep += 1\nexcept:\n    istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint('Value saved in \"%s\"'%f)\nnumpy.savetxt(f,v)\nimport Gnuplot\nglobal ifig,gp\ntry:\n    ifig += 1\n    gp(' set style data lines')\nexcept:\n    ifig = 0\n    gp = Gnuplot.Gnuplot(persist=1)\n    gp(' set style data lines')\ngp('set title  \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( v, with_='lines lw 2' ) )", fr="Imprime sur la sortie standard et, en même temps, enregistre dans un fichier du répertoire '/tmp' et affiche graphiquement la valeur courante de la variable", ang="Print on standard output and, in the same, time save in a file of the '/tmp' directory and graphically plot the current value of the variable" ),
+                    ),
+                ValueSeriePrinterSaverAndGnuPlotter = BLOC (condition = " Template == 'ValueSeriePrinterSaverAndGnuPlotter' ",
+                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "print(str(info)+\" \"+str(var[:]))\nimport numpy, re\nv=numpy.array(var[:],  ndmin=1)\nglobal istep\ntry:\n    istep += 1\nexcept:\n    istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\s','_',f)\nprint('Value saved in \"%s\"'%f)\nnumpy.savetxt(f,v)\nimport Gnuplot\nglobal ifig,gp\ntry:\n    ifig += 1\n    gp(' set style data lines')\nexcept:\n    ifig = 0\n    gp = Gnuplot.Gnuplot(persist=1)\n    gp(' set style data lines')\ngp('set title  \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( v, with_='lines lw 2' ) )", fr="Imprime sur la sortie standard et, en même temps, enregistre dans un fichier du répertoire '/tmp' et affiche graphiquement la série des valeurs de la variable", ang="Print on standard output and, in the same, time save in a file of the '/tmp' directory and graphically plot the value series of the variable" ),
+                    ),
+                ValueMean = BLOC (condition = " Template == 'ValueMean' ",
+                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nprint(str(info)+\" \"+str(numpy.nanmean(var[-1])))", fr="Imprime sur la sortie standard la moyenne de la valeur courante de la variable", ang="Print on standard output the mean of the current value of the variable" ),
+                    ),
+                ValueStandardError = BLOC (condition = " Template == 'ValueStandardError' ",
+                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nprint(str(info)+\" \"+str(numpy.nanstd(var[-1])))", fr="Imprime sur la sortie standard l'écart-type de la valeur courante de la variable", ang="Print on standard output the standard error of the current value of the variable" ),
+                    ),
+                ValueVariance = BLOC (condition = " Template == 'ValueVariance' ",
+                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nprint(str(info)+\" \"+str(numpy.nanvar(var[-1])))", fr="Imprime sur la sortie standard la variance de la valeur courante de la variable", ang="Print on standard output the variance of the current value of the variable" ),
+                    ),
+                ValueL2Norm = BLOC (condition = " Template == 'ValueL2Norm' ",
+                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nv = numpy.ravel( var[-1] )\nprint(str(info)+\" \"+str(float( numpy.linalg.norm(v) )))", fr="Imprime sur la sortie standard la norme L2 de la valeur courante de la variable", ang="Print on standard output the L2 norm of the current value of the variable" ),
+                    ),
+                ValueRMS = BLOC (condition = " Template == 'ValueRMS' ",
+                    ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\nv = numpy.ravel( var[-1] )\nprint(str(info)+\" \"+str(float( numpy.sqrt((1./v.size)*numpy.dot(v,v)) )))", fr="Imprime sur la sortie standard la racine de la moyenne des carrés (RMS), ou moyenne quadratique, de la valeur courante de la variable", ang="Print on standard output the root mean square (RMS), or quadratic mean, of the current value of the variable" ),
+                    ),
+                )
+
+def F_Observers(statut) : return FACT(
+    statut=statut,
+    SELECTION = SIMP(statut="o", defaut=[], typ="TXM", min=0, max="**", homo="SansOrdreNiDoublon", validators=NoRepeat(), into=(['Analysis', 'Innovation', 'InnovationAtCurrentState', 'CurrentState', 'CurrentOptimum', 'IndexOfOptimum', 'SimulatedObservationAtBackground', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum', 'SimulatedObservationAtCurrentOptimum', 'BMA', 'OMA', 'OMB', 'CostFunctionJ', 'CostFunctionJb', 'CostFunctionJo', 'GradientOfCostFunctionJ', 'GradientOfCostFunctionJb', 'GradientOfCostFunctionJo', 'SigmaObs2', 'SigmaBck2', 'APosterioriCorrelations', 'APosterioriCovariance', 'APosterioriStandardDeviations', 'APosterioriVariances', 'Residu'])),
+    Analysis = BLOC (condition=" 'Analysis' in set(SELECTION) ",
+        Analysis_data = FACT(statut = "o",
+            Scheduler    = SIMP(statut = "f", typ = "TXM"),
+            Info         = SIMP(statut = "o", typ = "TXM", defaut = "Analysis"),
+            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
+            PythonScript = BLOC (condition = " NodeType == 'String' ",
+                Value = SIMP(statut = "o", typ = "TXM")
+                ),
+            UserFile = BLOC (condition = " NodeType == 'Script' ",
+                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
+                ),
+            ObserverTemplate = F_ObserverTemplate(),
+            ),
+        ),
+    Innovation = BLOC (condition=" 'Innovation' in set(SELECTION) ",
+        Innovation_data = FACT(statut = "o",
+            Scheduler    = SIMP(statut = "f", typ = "TXM"),
+            Info         = SIMP(statut = "o", typ = "TXM", defaut = "Innovation"),
+            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
+            PythonScript = BLOC (condition = " NodeType == 'String' ",
+                Value = SIMP(statut = "o", typ = "TXM")
+                ),
+            UserFile = BLOC (condition = " NodeType == 'Script' ",
+                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
+                ),
+            ObserverTemplate = F_ObserverTemplate(),
+            ),
+        ),
+    InnovationAtCurrentState = BLOC (condition=" 'InnovationAtCurrentState' in set(SELECTION) ",
+        InnovationAtCurrentState_data = FACT(statut = "o",
+            Scheduler    = SIMP(statut = "f", typ = "TXM"),
+            Info         = SIMP(statut = "o", typ = "TXM", defaut = "InnovationAtCurrentState"),
+            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
+            PythonScript = BLOC (condition = " NodeType == 'String' ",
+                Value = SIMP(statut = "o", typ = "TXM")
+                ),
+            UserFile = BLOC (condition = " NodeType == 'Script' ",
+                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
+                ),
+            ObserverTemplate = F_ObserverTemplate(),
+            ),
+        ),
+    CurrentState = BLOC (condition=" 'CurrentState' in set(SELECTION) ",
+        CurrentState_data = FACT(statut = "o",
+            Scheduler    = SIMP(statut = "f", typ = "TXM"),
+            Info         = SIMP(statut = "o", typ = "TXM", defaut = "CurrentState"),
+            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
+            PythonScript = BLOC (condition = " NodeType == 'String' ",
+                Value = SIMP(statut = "o", typ = "TXM")
+                ),
+            UserFile = BLOC (condition = " NodeType == 'Script' ",
+                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
+                ),
+            ObserverTemplate = F_ObserverTemplate(),
+            ),
+        ),
+    CurrentOptimum = BLOC (condition=" 'CurrentOptimum' in set(SELECTION) ",
+        CurrentOptimum_data = FACT(statut = "o",
+            Scheduler    = SIMP(statut = "f", typ = "TXM"),
+            Info         = SIMP(statut = "o", typ = "TXM", defaut = "CurrentOptimum"),
+            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
+            PythonScript = BLOC (condition = " NodeType == 'String' ",
+                Value = SIMP(statut = "o", typ = "TXM")
+                ),
+            UserFile = BLOC (condition = " NodeType == 'Script' ",
+                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
+                ),
+            ObserverTemplate = F_ObserverTemplate(),
+            ),
+        ),
+    IndexOfOptimum = BLOC (condition=" 'IndexOfOptimum' in set(SELECTION) ",
+        IndexOfOptimum_data = FACT(statut = "o",
+            Scheduler    = SIMP(statut = "f", typ = "TXM"),
+            Info         = SIMP(statut = "o", typ = "TXM", defaut = "IndexOfOptimum"),
+            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
+            PythonScript = BLOC (condition = " NodeType == 'String' ",
+                Value = SIMP(statut = "o", typ = "TXM")
+                ),
+            UserFile = BLOC (condition = " NodeType == 'Script' ",
+                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
+                ),
+            ObserverTemplate = F_ObserverTemplate(),
+            ),
+        ),
+    SimulatedObservationAtBackground = BLOC (condition=" 'SimulatedObservationAtBackground' in set(SELECTION) ",
+        SimulatedObservationAtBackground_data = FACT(statut = "o",
+            Scheduler    = SIMP(statut = "f", typ = "TXM"),
+            Info         = SIMP(statut = "o", typ = "TXM", defaut = "SimulatedObservationAtBackground"),
+            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
+            PythonScript = BLOC (condition = " NodeType == 'String' ",
+                Value = SIMP(statut = "o", typ = "TXM")
+                ),
+            UserFile = BLOC (condition = " NodeType == 'Script' ",
+                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
+                ),
+            ObserverTemplate = F_ObserverTemplate(),
+            ),
+        ),
+    SimulatedObservationAtCurrentState = BLOC (condition=" 'SimulatedObservationAtCurrentState' in set(SELECTION) ",
+        SimulatedObservationAtCurrentState_data = FACT(statut = "o",
+            Scheduler    = SIMP(statut = "f", typ = "TXM"),
+            Info         = SIMP(statut = "o", typ = "TXM", defaut = "SimulatedObservationAtCurrentState"),
+            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
+            PythonScript = BLOC (condition = " NodeType == 'String' ",
+                Value = SIMP(statut = "o", typ = "TXM")
+                ),
+            UserFile = BLOC (condition = " NodeType == 'Script' ",
+                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
+                ),
+            ObserverTemplate = F_ObserverTemplate(),
+            ),
+        ),
+    SimulatedObservationAtOptimum = BLOC (condition=" 'SimulatedObservationAtOptimum' in set(SELECTION) ",
+        SimulatedObservationAtOptimum_data = FACT(statut = "o",
+            Scheduler    = SIMP(statut = "f", typ = "TXM"),
+            Info         = SIMP(statut = "o", typ = "TXM", defaut = "SimulatedObservationAtOptimum"),
+            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
+            PythonScript = BLOC (condition = " NodeType == 'String' ",
+                Value = SIMP(statut = "o", typ = "TXM")
+                ),
+            UserFile = BLOC (condition = " NodeType == 'Script' ",
+                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
+                ),
+            ObserverTemplate = F_ObserverTemplate(),
+            ),
+        ),
+    SimulatedObservationAtCurrentOptimum = BLOC (condition=" 'SimulatedObservationAtCurrentOptimum' in set(SELECTION) ",
+        SimulatedObservationAtCurrentOptimum_data = FACT(statut = "o",
+            Scheduler    = SIMP(statut = "f", typ = "TXM"),
+            Info         = SIMP(statut = "o", typ = "TXM", defaut = "SimulatedObservationAtCurrentOptimum"),
+            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
+            PythonScript = BLOC (condition = " NodeType == 'String' ",
+                Value = SIMP(statut = "o", typ = "TXM")
+                ),
+            UserFile = BLOC (condition = " NodeType == 'Script' ",
+                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
+                ),
+            ObserverTemplate = F_ObserverTemplate(),
+            ),
+        ),
+    BMA = BLOC (condition=" 'BMA' in set(SELECTION) ",
+        BMA_data = FACT(statut = "o",
+            Scheduler    = SIMP(statut = "f", typ = "TXM"),
+            Info         = SIMP(statut = "o", typ = "TXM", defaut = "BMA"),
+            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
+            PythonScript = BLOC (condition = " NodeType == 'String' ",
+                Value = SIMP(statut = "o", typ = "TXM")
+                ),
+            UserFile = BLOC (condition = " NodeType == 'Script' ",
+                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
+                ),
+            ObserverTemplate = F_ObserverTemplate(),
+            ),
+        ),
+    OMA = BLOC (condition=" 'OMA' in set(SELECTION) ",
+        OMA_data = FACT(statut = "o",
+            Scheduler    = SIMP(statut = "f", typ = "TXM"),
+            Info         = SIMP(statut = "o", typ = "TXM", defaut = "OMA"),
+            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
+            PythonScript = BLOC (condition = " NodeType == 'String' ",
+                Value = SIMP(statut = "o", typ = "TXM")
+                ),
+            UserFile = BLOC (condition = " NodeType == 'Script' ",
+                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
+                ),
+            ObserverTemplate = F_ObserverTemplate(),
+            ),
+        ),
+    OMB = BLOC (condition=" 'OMB' in set(SELECTION) ",
+        OMB_data = FACT(statut = "o",
+            Scheduler    = SIMP(statut = "f", typ = "TXM"),
+            Info         = SIMP(statut = "o", typ = "TXM", defaut = "OMB"),
+            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
+            PythonScript = BLOC (condition = " NodeType == 'String' ",
+                Value = SIMP(statut = "o", typ = "TXM")
+                ),
+            UserFile = BLOC (condition = " NodeType == 'Script' ",
+                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
+                ),
+            ObserverTemplate = F_ObserverTemplate(),
+            ),
+        ),
+    CostFunctionJ = BLOC (condition=" 'CostFunctionJ' in set(SELECTION) ",
+        CostFunctionJ_data = FACT(statut = "o",
+            Scheduler    = SIMP(statut = "f", typ = "TXM"),
+            Info         = SIMP(statut = "o", typ = "TXM", defaut = "CostFunctionJ"),
+            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
+            PythonScript = BLOC (condition = " NodeType == 'String' ",
+                Value = SIMP(statut = "o", typ = "TXM")
+                ),
+            UserFile = BLOC (condition = " NodeType == 'Script' ",
+                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
+                ),
+            ObserverTemplate = F_ObserverTemplate(),
+            ),
+        ),
+    CostFunctionJb = BLOC (condition=" 'CostFunctionJb' in set(SELECTION) ",
+        CostFunctionJb_data = FACT(statut = "o",
+            Scheduler    = SIMP(statut = "f", typ = "TXM"),
+            Info         = SIMP(statut = "o", typ = "TXM", defaut = "CostFunctionJb"),
+            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
+            PythonScript = BLOC (condition = " NodeType == 'String' ",
+                Value = SIMP(statut = "o", typ = "TXM")
+                ),
+            UserFile = BLOC (condition = " NodeType == 'Script' ",
+                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
+                ),
+            ObserverTemplate = F_ObserverTemplate(),
+            ),
+        ),
+    CostFunctionJo = BLOC (condition=" 'CostFunctionJo' in set(SELECTION) ",
+        CostFunctionJo_data = FACT(statut = "o",
+            Scheduler    = SIMP(statut = "f", typ = "TXM"),
+            Info         = SIMP(statut = "o", typ = "TXM", defaut = "CostFunctionJo"),
+            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
+            PythonScript = BLOC (condition = " NodeType == 'String' ",
+                Value = SIMP(statut = "o", typ = "TXM")
+                ),
+            UserFile = BLOC (condition = " NodeType == 'Script' ",
+                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
+                ),
+            ObserverTemplate = F_ObserverTemplate(),
+            ),
+        ),
+    GradientOfCostFunctionJ = BLOC (condition=" 'GradientOfCostFunctionJ' in set(SELECTION) ",
+        GradientOfCostFunctionJ_data = FACT(statut = "o",
+            Scheduler    = SIMP(statut = "f", typ = "TXM"),
+            Info         = SIMP(statut = "o", typ = "TXM", defaut = "GradientOfCostFunctionJ"),
+            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
+            PythonScript = BLOC (condition = " NodeType == 'String' ",
+                Value = SIMP(statut = "o", typ = "TXM")
+                ),
+            UserFile = BLOC (condition = " NodeType == 'Script' ",
+                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
+                ),
+            ObserverTemplate = F_ObserverTemplate(),
+            ),
+        ),
+    GradientOfCostFunctionJb = BLOC (condition=" 'GradientOfCostFunctionJb' in set(SELECTION) ",
+        GradientOfCostFunctionJb_data = FACT(statut = "o",
+            Scheduler    = SIMP(statut = "f", typ = "TXM"),
+            Info         = SIMP(statut = "o", typ = "TXM", defaut = "GradientOfCostFunctionJb"),
+            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
+            PythonScript = BLOC (condition = " NodeType == 'String' ",
+                Value = SIMP(statut = "o", typ = "TXM")
+                ),
+            UserFile = BLOC (condition = " NodeType == 'Script' ",
+                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
+                ),
+            ObserverTemplate = F_ObserverTemplate(),
+            ),
+        ),
+    GradientOfCostFunctionJo = BLOC (condition=" 'GradientOfCostFunctionJo' in set(SELECTION) ",
+        GradientOfCostFunctionJo_data = FACT(statut = "o",
+            Scheduler    = SIMP(statut = "f", typ = "TXM"),
+            Info         = SIMP(statut = "o", typ = "TXM", defaut = "GradientOfCostFunctionJo"),
+            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
+            PythonScript = BLOC (condition = " NodeType == 'String' ",
+                Value = SIMP(statut = "o", typ = "TXM")
+                ),
+            UserFile = BLOC (condition = " NodeType == 'Script' ",
+                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
+                ),
+            ObserverTemplate = F_ObserverTemplate(),
+            ),
+        ),
+    SigmaObs2 = BLOC (condition=" 'SigmaObs2' in set(SELECTION) ",
+        SigmaObs2_data = FACT(statut = "o",
+            Scheduler    = SIMP(statut = "f", typ = "TXM"),
+            Info         = SIMP(statut = "o", typ = "TXM", defaut = "SigmaObs2"),
+            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
+            PythonScript = BLOC (condition = " NodeType == 'String' ",
+                Value = SIMP(statut = "o", typ = "TXM")
+                ),
+            UserFile = BLOC (condition = " NodeType == 'Script' ",
+                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
+                ),
+            ObserverTemplate = F_ObserverTemplate(),
+            ),
+        ),
+    SigmaBck2 = BLOC (condition=" 'SigmaBck2' in set(SELECTION) ",
+        SigmaBck2_data = FACT(statut = "o",
+            Scheduler    = SIMP(statut = "f", typ = "TXM"),
+            Info         = SIMP(statut = "o", typ = "TXM", defaut = "SigmaBck2"),
+            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
+            PythonScript = BLOC (condition = " NodeType == 'String' ",
+                Value = SIMP(statut = "o", typ = "TXM")
+                ),
+            UserFile = BLOC (condition = " NodeType == 'Script' ",
+                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
+                ),
+            ObserverTemplate = F_ObserverTemplate(),
+            ),
+        ),
+    APosterioriCorrelations = BLOC (condition=" 'APosterioriCorrelations' in set(SELECTION) ",
+        APosterioriCorrelations_data = FACT(statut = "o",
+            Scheduler    = SIMP(statut = "f", typ = "TXM"),
+            Info         = SIMP(statut = "o", typ = "TXM", defaut = "APosterioriCorrelations"),
+            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
+            PythonScript = BLOC (condition = " NodeType == 'String' ",
+                Value = SIMP(statut = "o", typ = "TXM")
+                ),
+            UserFile = BLOC (condition = " NodeType == 'Script' ",
+                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
+                ),
+            ObserverTemplate = F_ObserverTemplate(),
+            ),
+        ),
+    APosterioriCovariance = BLOC (condition=" 'APosterioriCovariance' in set(SELECTION) ",
+        APosterioriCovariance_data = FACT(statut = "o",
+            Scheduler    = SIMP(statut = "f", typ = "TXM"),
+            Info         = SIMP(statut = "o", typ = "TXM", defaut = "APosterioriCovariance"),
+            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
+            PythonScript = BLOC (condition = " NodeType == 'String' ",
+                Value = SIMP(statut = "o", typ = "TXM")
+                ),
+            UserFile = BLOC (condition = " NodeType == 'Script' ",
+                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
+                ),
+            ObserverTemplate = F_ObserverTemplate(),
+            ),
+        ),
+    APosterioriStandardDeviations = BLOC (condition=" 'APosterioriStandardDeviations' in set(SELECTION) ",
+        APosterioriStandardDeviations_data = FACT(statut = "o",
+            Scheduler    = SIMP(statut = "f", typ = "TXM"),
+            Info         = SIMP(statut = "o", typ = "TXM", defaut = "APosterioriStandardDeviations"),
+            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
+            PythonScript = BLOC (condition = " NodeType == 'String' ",
+                Value = SIMP(statut = "o", typ = "TXM")
+                ),
+            UserFile = BLOC (condition = " NodeType == 'Script' ",
+                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
+                ),
+            ObserverTemplate = F_ObserverTemplate(),
+            ),
+        ),
+    APosterioriVariances = BLOC (condition=" 'APosterioriVariances' in set(SELECTION) ",
+        APosterioriVariances_data = FACT(statut = "o",
+            Scheduler    = SIMP(statut = "f", typ = "TXM"),
+            Info         = SIMP(statut = "o", typ = "TXM", defaut = "APosterioriVariances"),
+            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
+            PythonScript = BLOC (condition = " NodeType == 'String' ",
+                Value = SIMP(statut = "o", typ = "TXM")
+                ),
+            UserFile = BLOC (condition = " NodeType == 'Script' ",
+                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
+                ),
+            ObserverTemplate = F_ObserverTemplate(),
+            ),
+        ),
+    Residu = BLOC (condition=" 'Residu' in set(SELECTION) ",
+        Residu_data = FACT(statut = "o",
+            Scheduler    = SIMP(statut = "f", typ = "TXM"),
+            Info         = SIMP(statut = "o", typ = "TXM", defaut = "Residu"),
+            NodeType     = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "Template", into=("String", "Script", "Template")),
+            PythonScript = BLOC (condition = " NodeType == 'String' ",
+                Value = SIMP(statut = "o", typ = "TXM")
+                ),
+            UserFile = BLOC (condition = " NodeType == 'Script' ",
+                Value = SIMP(statut = "o", typ = "FichierNoAbs", validators=[OnlyStr(), FileExtVal('py')])
+                ),
+            ObserverTemplate = F_ObserverTemplate(),
+            ),
+        ),
+    )
+
+def AlgorithmParametersInNS(filename):
+    if os.path.exists(filename):
+        fc = open(filename, 'r').readlines()
+        cr = re.compile("^AlgorithmParameters[\s]*=")
+        for ln in fc:
+            if cr.match(ln): return 1
+    return 0
+AlgorithmParametersInNS.info = u"The Python file has to contain explicitly an \"AlgorithmParameters\" variable."
+def F_AlgorithmParameters(statut, algos_names, fv=NoCheckInNS) : return FACT(
+    statut = statut,
+    Algorithm = SIMP(statut="o", typ = "TXM", into = algos_names ),
+    Parameters = SIMP(statut="f", typ = "TXM", into=("Defaults", "Dict"), defaut="Defaults"),
+    Dict = BLOC ( condition = " Parameters == 'Dict' ",
+        statut="f",
+        data = F_Dict("o", fv),
+        ),
+    Parameters3DVAR = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == '3DVAR') ",
+        statut="f",
+        Bounds = SIMP(statut="f", typ="TXM", fr="Liste des valeurs de bornes"),
+        CostDecrementTolerance = SIMP(statut="f", typ="R", val_min=0.0, min=1, max=1, defaut=1e-07, fr="Diminution relative minimale du coût lors de l'arrêt"),
+        GradientNormTolerance = SIMP(statut="f", typ="R", val_min=0.0, min=1, max=1, defaut=1e-05, fr="Maximum des composantes du gradient lors de l'arrêt"),
+        MaximumNumberOfSteps = SIMP(statut="f", typ="I", val_min=-1, min=1, max=1, defaut=15000, fr="Nombre maximal de pas d'optimisation"),
+        Minimizer = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="LBFGSB", into=['LBFGSB', 'TNC', 'CG', 'NCG', 'BFGS'], fr="Minimiseur utilisé"),
+        NumberOfSamplesForQuantiles = SIMP(statut="f", typ="I", val_min=1, min=1, max=1, defaut=100, fr="Nombre d'échantillons simulés pour le calcul des quantiles"),
+        ProjectedGradientTolerance = SIMP(statut="f", typ="R", val_min=-1, min=1, max=1, defaut=-1.0, fr="Maximum des composantes du gradient projeté lors de l'arrêt"),
+        Quantiles = SIMP(statut="f", typ="TXM", max="**", into=None, fr="Liste des valeurs de quantiles"),
+        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
+        SimulationForQuantiles = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="Linear", into=['Linear', 'NonLinear'], fr="Type de simulation pour l'estimation des quantiles"),
+        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['Analysis', 'APosterioriCorrelations', 'APosterioriCovariance', 'APosterioriStandardDeviations', 'APosterioriVariances', 'BMA', 'CostFunctionJ', 'CostFunctionJAtCurrentOptimum', 'CostFunctionJb', 'CostFunctionJbAtCurrentOptimum', 'CostFunctionJo', 'CostFunctionJoAtCurrentOptimum', 'CurrentOptimum', 'CurrentState', 'IndexOfOptimum', 'Innovation', 'InnovationAtCurrentState', 'JacobianMatrixAtBackground', 'JacobianMatrixAtOptimum', 'KalmanGainAtOptimum', 'MahalanobisConsistency', 'OMA', 'OMB', 'SigmaObs2', 'SimulatedObservationAtBackground', 'SimulatedObservationAtCurrentOptimum', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum', 'SimulationQuantiles'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
+        ),
+    Parameters4DVAR = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == '4DVAR') ",
+        statut="f",
+        Bounds = SIMP(statut="f", typ="TXM", fr="Liste des valeurs de bornes"),
+        ConstrainedBy = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="EstimateProjection", into=['EstimateProjection'], fr="Prise en compte des contraintes"),
+        CostDecrementTolerance = SIMP(statut="f", typ="R", val_min=0.0, min=1, max=1, defaut=1e-07, fr="Diminution relative minimale du coût lors de l'arrêt"),
+        EstimationOf = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="State", into=['State', 'Parameters'], fr="Estimation d'etat ou de parametres"),
+        GradientNormTolerance = SIMP(statut="f", typ="R", val_min=0.0, min=1, max=1, defaut=1e-05, fr="Maximum des composantes du gradient lors de l'arrêt"),
+        MaximumNumberOfSteps = SIMP(statut="f", typ="I", val_min=-1, min=1, max=1, defaut=15000, fr="Nombre maximal de pas d'optimisation"),
+        Minimizer = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="LBFGSB", into=['LBFGSB', 'TNC', 'CG', 'NCG', 'BFGS'], fr="Minimiseur utilisé"),
+        ProjectedGradientTolerance = SIMP(statut="f", typ="R", val_min=-1, min=1, max=1, defaut=-1.0, fr="Maximum des composantes du gradient projeté lors de l'arrêt"),
+        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['Analysis', 'BMA', 'CostFunctionJ', 'CostFunctionJAtCurrentOptimum', 'CostFunctionJb', 'CostFunctionJbAtCurrentOptimum', 'CostFunctionJo', 'CostFunctionJoAtCurrentOptimum', 'CurrentOptimum', 'CurrentState', 'IndexOfOptimum'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
+        ),
+    ParametersBlue = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'Blue') ",
+        statut="f",
+        NumberOfSamplesForQuantiles = SIMP(statut="f", typ="I", val_min=1, min=1, max=1, defaut=100, fr="Nombre d'échantillons simulés pour le calcul des quantiles"),
+        Quantiles = SIMP(statut="f", typ="TXM", max="**", into=None, fr="Liste des valeurs de quantiles"),
+        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
+        SimulationForQuantiles = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="Linear", into=['Linear', 'NonLinear'], fr="Type de simulation pour l'estimation des quantiles"),
+        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['Analysis', 'APosterioriCorrelations', 'APosterioriCovariance', 'APosterioriStandardDeviations', 'APosterioriVariances', 'BMA', 'CostFunctionJ', 'CostFunctionJAtCurrentOptimum', 'CostFunctionJb', 'CostFunctionJbAtCurrentOptimum', 'CostFunctionJo', 'CostFunctionJoAtCurrentOptimum', 'CurrentOptimum', 'CurrentState', 'Innovation', 'MahalanobisConsistency', 'OMA', 'OMB', 'SigmaBck2', 'SigmaObs2', 'SimulatedObservationAtBackground', 'SimulatedObservationAtCurrentOptimum', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum', 'SimulationQuantiles'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
+        ),
+    ParametersDerivativeFreeOptimization = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'DerivativeFreeOptimization') ",
+        statut="f",
+        Bounds = SIMP(statut="f", typ="TXM", fr="Liste des valeurs de bornes"),
+        CostDecrementTolerance = SIMP(statut="f", typ="R", min=1, max=1, defaut=1e-07, fr="Diminution relative minimale du cout lors de l'arrêt"),
+        MaximumNumberOfFunctionEvaluations = SIMP(statut="f", typ="I", val_min=-1, min=1, max=1, defaut=15000, fr="Nombre maximal d'évaluations de la fonction"),
+        MaximumNumberOfSteps = SIMP(statut="f", typ="I", val_min=-1, min=1, max=1, defaut=15000, fr="Nombre maximal de pas d'optimisation"),
+        Minimizer = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="BOBYQA", into=['BOBYQA', 'COBYLA', 'NEWUOA', 'POWELL', 'SIMPLEX', 'SUBPLEX'], fr="Minimiseur utilisé"),
+        QualityCriterion = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="AugmentedWeightedLeastSquares", into=['AugmentedWeightedLeastSquares', 'AWLS', 'DA', 'WeightedLeastSquares', 'WLS', 'LeastSquares', 'LS', 'L2', 'AbsoluteValue', 'L1', 'MaximumError', 'ME'], fr="Critère de qualité utilisé"),
+        StateVariationTolerance = SIMP(statut="f", typ="R", min=1, max=1, defaut=0.0001, fr="Variation relative maximale de l'état lors de l'arrêt"),
+        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['Analysis', 'BMA', 'CostFunctionJ', 'CostFunctionJb', 'CostFunctionJo', 'CostFunctionJAtCurrentOptimum', 'CostFunctionJbAtCurrentOptimum', 'CostFunctionJoAtCurrentOptimum', 'CurrentOptimum', 'CurrentState', 'IndexOfOptimum', 'Innovation', 'InnovationAtCurrentState', 'OMA', 'OMB', 'SimulatedObservationAtBackground', 'SimulatedObservationAtCurrentOptimum', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
+        ),
+    ParametersDifferentialEvolution = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'DifferentialEvolution') ",
+        statut="f",
+        Bounds = SIMP(statut="f", typ="TXM", fr="Liste des valeurs de bornes"),
+        CrossOverProbability_CR = SIMP(statut="f", typ="R", val_min=0.0, val_max=1.0, min=1, max=1, defaut=0.7, fr="Probabilité de recombinaison ou de croisement, notée CR"),
+        MaximumNumberOfFunctionEvaluations = SIMP(statut="f", typ="I", val_min=-1, min=1, max=1, defaut=15000, fr="Nombre maximal d'évaluations de la fonction"),
+        MaximumNumberOfSteps = SIMP(statut="f", typ="I", val_min=0, min=1, max=1, defaut=15000, fr="Nombre maximal de générations"),
+        Minimizer = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="BEST1BIN", into=['BEST1BIN', 'BEST1EXP', 'RAND1EXP', 'RANDTOBEST1EXP', 'BEST2EXP', 'RAND2EXP', 'RANDTOBEST1BIN', 'BEST2BIN', 'RAND2BIN', 'RAND1BIN'], fr="Stratégie de minimisation utilisée"),
+        MutationDifferentialWeight_F = SIMP(statut="f", typ="TXM", max="**", into=None, fr="Poids différentiel de mutation, constant ou aléatoire dans l'intervalle, noté F"),
+        PopulationSize = SIMP(statut="f", typ="I", val_min=1, min=1, max=1, defaut=100, fr="Taille approximative de la population à chaque génération"),
+        QualityCriterion = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="AugmentedWeightedLeastSquares", into=['AugmentedWeightedLeastSquares', 'AWLS', 'DA', 'WeightedLeastSquares', 'WLS', 'LeastSquares', 'LS', 'L2', 'AbsoluteValue', 'L1', 'MaximumError', 'ME'], fr="Critère de qualité utilisé"),
+        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
+        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['Analysis', 'BMA', 'CostFunctionJ', 'CostFunctionJb', 'CostFunctionJo', 'CostFunctionJAtCurrentOptimum', 'CostFunctionJbAtCurrentOptimum', 'CostFunctionJoAtCurrentOptimum', 'CurrentOptimum', 'CurrentState', 'IndexOfOptimum', 'Innovation', 'InnovationAtCurrentState', 'OMA', 'OMB', 'SimulatedObservationAtBackground', 'SimulatedObservationAtCurrentOptimum', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
+        ),
+    ParametersEnsembleBlue = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'EnsembleBlue') ",
+        statut="f",
+        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
+        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['Analysis', 'CurrentState', 'Innovation', 'SimulatedObservationAtBackground', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
+        ),
+    ParametersEnsembleKalmanFilter = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'EnsembleKalmanFilter') ",
+        statut="f",
+        EstimationOf = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="State", into=['State', 'Parameters'], fr="Estimation d'etat ou de parametres"),
+        NumberOfMembers = SIMP(statut="f", typ="I", val_min=-1, min=1, max=1, defaut=100, fr="Nombre de membres dans l'ensemble"),
+        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
+        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['Analysis', 'APosterioriCorrelations', 'APosterioriCovariance', 'APosterioriStandardDeviations', 'APosterioriVariances', 'BMA', 'CostFunctionJ', 'CostFunctionJAtCurrentOptimum', 'CostFunctionJb', 'CostFunctionJbAtCurrentOptimum', 'CostFunctionJo', 'CostFunctionJoAtCurrentOptimum', 'CurrentOptimum', 'CurrentState', 'ForecastState', 'IndexOfOptimum', 'InnovationAtCurrentAnalysis', 'InnovationAtCurrentState', 'SimulatedObservationAtCurrentAnalysis', 'SimulatedObservationAtCurrentOptimum', 'SimulatedObservationAtCurrentState'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
+        ),
+    ParametersExtendedBlue = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'ExtendedBlue') ",
+        statut="f",
+        NumberOfSamplesForQuantiles = SIMP(statut="f", typ="I", val_min=1, min=1, max=1, defaut=100, fr="Nombre d'échantillons simulés pour le calcul des quantiles"),
+        Quantiles = SIMP(statut="f", typ="TXM", max="**", into=None, fr="Liste des valeurs de quantiles"),
+        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
+        SimulationForQuantiles = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="Linear", into=['Linear', 'NonLinear'], fr="Type de simulation pour l'estimation des quantiles"),
+        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['Analysis', 'APosterioriCorrelations', 'APosterioriCovariance', 'APosterioriStandardDeviations', 'APosterioriVariances', 'BMA', 'CostFunctionJ', 'CostFunctionJAtCurrentOptimum', 'CostFunctionJb', 'CostFunctionJbAtCurrentOptimum', 'CostFunctionJo', 'CostFunctionJoAtCurrentOptimum', 'CurrentOptimum', 'CurrentState', 'Innovation', 'MahalanobisConsistency', 'OMA', 'OMB', 'SigmaBck2', 'SigmaObs2', 'SimulatedObservationAtBackground', 'SimulatedObservationAtCurrentOptimum', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum', 'SimulationQuantiles'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
+        ),
+    ParametersExtendedKalmanFilter = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'ExtendedKalmanFilter') ",
+        statut="f",
+        Bounds = SIMP(statut="f", typ="TXM", fr="Liste des valeurs de bornes"),
+        ConstrainedBy = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="EstimateProjection", into=['EstimateProjection'], fr="Prise en compte des contraintes"),
+        EstimationOf = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="State", into=['State', 'Parameters'], fr="Estimation d'etat ou de parametres"),
+        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['Analysis', 'APosterioriCorrelations', 'APosterioriCovariance', 'APosterioriStandardDeviations', 'APosterioriVariances', 'BMA', 'CostFunctionJ', 'CostFunctionJAtCurrentOptimum', 'CostFunctionJb', 'CostFunctionJbAtCurrentOptimum', 'CostFunctionJo', 'CostFunctionJoAtCurrentOptimum', 'CurrentOptimum', 'CurrentState', 'ForecastState', 'IndexOfOptimum', 'InnovationAtCurrentAnalysis', 'InnovationAtCurrentState', 'SimulatedObservationAtCurrentAnalysis', 'SimulatedObservationAtCurrentOptimum', 'SimulatedObservationAtCurrentState'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
+        ),
+    ParametersKalmanFilter = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'KalmanFilter') ",
+        statut="f",
+        EstimationOf = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="State", into=['State', 'Parameters'], fr="Estimation d'etat ou de parametres"),
+        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['Analysis', 'APosterioriCorrelations', 'APosterioriCovariance', 'APosterioriStandardDeviations', 'APosterioriVariances', 'BMA', 'CostFunctionJ', 'CostFunctionJAtCurrentOptimum', 'CostFunctionJb', 'CostFunctionJbAtCurrentOptimum', 'CostFunctionJo', 'CostFunctionJoAtCurrentOptimum', 'CurrentOptimum', 'CurrentState', 'ForecastState', 'IndexOfOptimum', 'InnovationAtCurrentAnalysis', 'InnovationAtCurrentState', 'SimulatedObservationAtCurrentAnalysis', 'SimulatedObservationAtCurrentOptimum', 'SimulatedObservationAtCurrentState'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
+        ),
+    ParametersLinearLeastSquares = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'LinearLeastSquares') ",
+        statut="f",
+        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['Analysis', 'CostFunctionJ', 'CostFunctionJAtCurrentOptimum', 'CostFunctionJb', 'CostFunctionJbAtCurrentOptimum', 'CostFunctionJo', 'CostFunctionJoAtCurrentOptimum', 'CurrentOptimum', 'CurrentState', 'OMA', 'SimulatedObservationAtCurrentOptimum', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
+        ),
+    ParametersNonLinearLeastSquares = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'NonLinearLeastSquares') ",
+        statut="f",
+        Bounds = SIMP(statut="f", typ="TXM", fr="Liste des valeurs de bornes"),
+        CostDecrementTolerance = SIMP(statut="f", typ="R", val_min=0.0, min=1, max=1, defaut=1e-07, fr="Diminution relative minimale du coût lors de l'arrêt"),
+        GradientNormTolerance = SIMP(statut="f", typ="R", val_min=0.0, min=1, max=1, defaut=1e-05, fr="Maximum des composantes du gradient lors de l'arrêt"),
+        MaximumNumberOfSteps = SIMP(statut="f", typ="I", val_min=-1, min=1, max=1, defaut=15000, fr="Nombre maximal de pas d'optimisation"),
+        Minimizer = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="LBFGSB", into=['LBFGSB', 'TNC', 'CG', 'NCG', 'BFGS', 'LM'], fr="Minimiseur utilisé"),
+        ProjectedGradientTolerance = SIMP(statut="f", typ="R", val_min=-1, min=1, max=1, defaut=-1.0, fr="Maximum des composantes du gradient projeté lors de l'arrêt"),
+        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['Analysis', 'BMA', 'CostFunctionJ', 'CostFunctionJAtCurrentOptimum', 'CostFunctionJb', 'CostFunctionJbAtCurrentOptimum', 'CostFunctionJo', 'CostFunctionJoAtCurrentOptimum', 'CurrentOptimum', 'CurrentState', 'IndexOfOptimum', 'Innovation', 'InnovationAtCurrentState', 'OMA', 'OMB', 'SimulatedObservationAtBackground', 'SimulatedObservationAtCurrentOptimum', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
+        ),
+    ParametersParticleSwarmOptimization = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'ParticleSwarmOptimization') ",
+        statut="f",
+        BoxBounds = SIMP(statut="f", typ="TXM", fr="Liste des valeurs de bornes d'incréments de paramètres"),
+        GroupRecallRate = SIMP(statut="f", typ="R", val_min=0.0, val_max=1.0, min=1, max=1, defaut=0.5, fr="Taux de rappel au meilleur insecte du groupe (entre 0 et 1)"),
+        MaximumNumberOfFunctionEvaluations = SIMP(statut="f", typ="I", val_min=-1, min=1, max=1, defaut=15000, fr="Nombre maximal d'évaluations de la fonction"),
+        MaximumNumberOfSteps = SIMP(statut="f", typ="I", val_min=0, min=1, max=1, defaut=50, fr="Nombre maximal de pas d'optimisation"),
+        NumberOfInsects = SIMP(statut="f", typ="I", val_min=-1, min=1, max=1, defaut=100, fr="Nombre d'insectes dans l'essaim"),
+        QualityCriterion = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="AugmentedWeightedLeastSquares", into=['AugmentedWeightedLeastSquares', 'AWLS', 'AugmentedPonderatedLeastSquares', 'APLS', 'DA', 'WeightedLeastSquares', 'WLS', 'PonderatedLeastSquares', 'PLS', 'LeastSquares', 'LS', 'L2', 'AbsoluteValue', 'L1', 'MaximumError', 'ME'], fr="Critère de qualité utilisé"),
+        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
+        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['Analysis', 'BMA', 'CurrentState', 'CostFunctionJ', 'CostFunctionJb', 'CostFunctionJo', 'Innovation', 'OMA', 'OMB', 'SimulatedObservationAtBackground', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
+        SwarmVelocity = SIMP(statut="f", typ="R", val_min=0.0, min=1, max=1, defaut=1.0, fr="Vitesse de groupe imposée par l'essaim"),
+        ),
+    ParametersQuantileRegression = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'QuantileRegression') ",
+        statut="f",
+        Bounds = SIMP(statut="f", typ="TXM", fr="Liste des valeurs de bornes"),
+        CostDecrementTolerance = SIMP(statut="f", typ="R", min=1, max=1, defaut=1e-06, fr="Maximum de variation de la fonction d'estimation lors de l'arrêt"),
+        MaximumNumberOfSteps = SIMP(statut="f", typ="I", val_min=1, min=1, max=1, defaut=15000, fr="Nombre maximal de pas d'optimisation"),
+        Minimizer = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="MMQR", into=['MMQR'], fr="Minimiseur utilisé"),
+        Quantile = SIMP(statut="f", typ="R", val_min=0.0, val_max=1.0, min=1, max=1, defaut=0.5, fr="Quantile pour la regression de quantile"),
+        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['Analysis', 'BMA', 'CostFunctionJ', 'CostFunctionJb', 'CostFunctionJo', 'CurrentState', 'Innovation', 'OMA', 'OMB', 'SimulatedObservationAtBackground', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
+        ),
+    ParametersTabuSearch = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'TabuSearch') ",
+        statut="f",
+        Bounds = SIMP(statut="f", typ="TXM", fr="Liste des valeurs de bornes"),
+        LengthOfTabuList = SIMP(statut="f", typ="I", val_min=1, min=1, max=1, defaut=50, fr="Longueur de la liste tabou"),
+        MaximumNumberOfSteps = SIMP(statut="f", typ="I", val_min=1, min=1, max=1, defaut=50, fr="Nombre maximal de pas d'optimisation"),
+        NoiseAddingProbability = SIMP(statut="f", typ="R", val_min=0.0, val_max=1.0, min=1, max=1, defaut=1.0, fr="Probabilité de perturbation d'une composante de l'état"),
+        NoiseDistribution = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="Uniform", into=['Gaussian', 'Uniform'], fr="Distribution pour générer les perturbations d'état"),
+        NoiseHalfRange = SIMP(statut="f", typ="TXM", fr="Demi-amplitude des perturbations uniformes centrées d'état pour chaque composante de l'état"),
+        NumberOfElementaryPerturbations = SIMP(statut="f", typ="I", val_min=1, min=1, max=1, defaut=1, fr="Nombre de perturbations élémentaires pour choisir une perturbation d'état"),
+        QualityCriterion = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="AugmentedWeightedLeastSquares", into=['AugmentedWeightedLeastSquares', 'AWLS', 'DA', 'WeightedLeastSquares', 'WLS', 'LeastSquares', 'LS', 'L2', 'AbsoluteValue', 'L1', 'MaximumError', 'ME'], fr="Critère de qualité utilisé"),
+        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
+        StandardDeviation = SIMP(statut="f", typ="TXM", fr="Ecart-type des perturbations gaussiennes d'état pour chaque composante de l'état"),
+        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['Analysis', 'BMA', 'CurrentState', 'CostFunctionJ', 'CostFunctionJb', 'CostFunctionJo', 'Innovation', 'OMA', 'OMB', 'SimulatedObservationAtBackground', 'SimulatedObservationAtCurrentState', 'SimulatedObservationAtOptimum'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
+        ),
+    ParametersUnscentedKalmanFilter = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'UnscentedKalmanFilter') ",
+        statut="f",
+        Alpha = SIMP(statut="f", typ="R", val_min=0.0001, val_max=1.0, min=1, max=1, defaut=1.0, fr=""),
+        Beta = SIMP(statut="f", typ="R", min=1, max=1, defaut=2.0, fr=""),
+        Bounds = SIMP(statut="f", typ="TXM", fr="Liste des valeurs de bornes"),
+        ConstrainedBy = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="EstimateProjection", into=['EstimateProjection'], fr="Prise en compte des contraintes"),
+        EstimationOf = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="State", into=['State', 'Parameters'], fr="Estimation d'etat ou de parametres"),
+        Kappa = SIMP(statut="f", typ="I", val_max=2, min=1, max=1, defaut=0, fr=""),
+        Reconditioner = SIMP(statut="f", typ="R", val_min=0.001, val_max=10.0, min=1, max=1, defaut=1.0, fr=""),
+        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['Analysis', 'APosterioriCorrelations', 'APosterioriCovariance', 'APosterioriStandardDeviations', 'APosterioriVariances', 'BMA', 'CostFunctionJ', 'CostFunctionJb', 'CostFunctionJo', 'CurrentState', 'InnovationAtCurrentState'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
+        ),
+    ParametersAdjointTest = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'AdjointTest') ",
+        statut="f",
+        AmplitudeOfInitialDirection = SIMP(statut="f", typ="R", min=1, max=1, defaut=1.0, fr="Amplitude de la direction initiale de la dérivée directionnelle autour du point nominal"),
+        EpsilonMinimumExponent = SIMP(statut="f", typ="I", val_min=-20, val_max=0, min=1, max=1, defaut=-8, fr="Exposant minimal en puissance de 10 pour le multiplicateur d'incrément"),
+        InitialDirection = SIMP(statut="f", typ="TXM", fr="Direction initiale de la dérivée directionnelle autour du point nominal"),
+        ResiduFormula = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="ScalarProduct", into=['ScalarProduct'], fr="Formule de résidu utilisée"),
+        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
+        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['CurrentState', 'Residu', 'SimulatedObservationAtCurrentState'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
+        ),
+    ParametersFunctionTest = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'FunctionTest') ",
+        statut="f",
+        NumberOfPrintedDigits = SIMP(statut="f", typ="I", val_min=0, min=1, max=1, defaut=5, fr="Nombre de chiffres affichés pour les impressions de réels"),
+        NumberOfRepetition = SIMP(statut="f", typ="I", val_min=1, min=1, max=1, defaut=1, fr="Nombre de fois où l'exécution de la fonction est répétée"),
+        SetDebug = SIMP(statut="f", typ="I", min=1, max=1, defaut=0, fr="Activation du mode debug lors de l'exécution"),
+        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['CurrentState', 'SimulatedObservationAtCurrentState'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
+        ),
+    ParametersGradientTest = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'GradientTest') ",
+        statut="f",
+        AmplitudeOfInitialDirection = SIMP(statut="f", typ="R", min=1, max=1, defaut=1.0, fr="Amplitude de la direction initiale de la dérivée directionnelle autour du point nominal"),
+        AmplitudeOfTangentPerturbation = SIMP(statut="f", typ="R", val_min=1e-10, val_max=1.0, min=1, max=1, defaut=0.01, fr="Amplitude de la perturbation pour le calcul de la forme tangente"),
+        EpsilonMinimumExponent = SIMP(statut="f", typ="I", val_min=-20, val_max=0, min=1, max=1, defaut=-8, fr="Exposant minimal en puissance de 10 pour le multiplicateur d'incrément"),
+        InitialDirection = SIMP(statut="f", typ="TXM", fr="Direction initiale de la dérivée directionnelle autour du point nominal"),
+        ResiduFormula = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="Taylor", into=['Norm', 'TaylorOnNorm', 'Taylor'], fr="Formule de résidu utilisée"),
+        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
+        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['CurrentState', 'Residu', 'SimulatedObservationAtCurrentState'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
+        ),
+    ParametersInputValuesTest = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'InputValuesTest') ",
+        statut="f",
+        NumberOfPrintedDigits = SIMP(statut="f", typ="I", val_min=0, min=1, max=1, defaut=5, fr="Nombre de chiffres affichés pour les impressions de réels"),
+        PrintAllValuesFor = SIMP(statut="f", typ="TXM", max="**", into=['Background', 'CheckingPoint', 'Observation'], fr="Liste de noms de vecteurs dont les valeurs détaillées sont à imprimer"),
+        SetDebug = SIMP(statut="f", typ="I", min=1, max=1, defaut=0, fr="Activation du mode debug lors de l'exécution"),
+        ShowInformationOnlyFor = SIMP(statut="f", typ="TXM", max="**", into=['Background', 'CheckingPoint', 'Observation'], fr="Liste de noms de vecteurs dont les informations synthétiques sont à imprimer"),
+        ),
+    ParametersLinearityTest = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'LinearityTest') ",
+        statut="f",
+        AmplitudeOfInitialDirection = SIMP(statut="f", typ="R", min=1, max=1, defaut=1.0, fr="Amplitude de la direction initiale de la dérivée directionnelle autour du point nominal"),
+        AmplitudeOfTangentPerturbation = SIMP(statut="f", typ="R", val_min=1e-10, val_max=1.0, min=1, max=1, defaut=0.01, fr="Amplitude de la perturbation pour le calcul de la forme tangente"),
+        EpsilonMinimumExponent = SIMP(statut="f", typ="I", val_min=-20, val_max=0, min=1, max=1, defaut=-8, fr="Exposant minimal en puissance de 10 pour le multiplicateur d'incrément"),
+        InitialDirection = SIMP(statut="f", typ="TXM", fr="Direction initiale de la dérivée directionnelle autour du point nominal"),
+        ResiduFormula = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="CenteredDL", into=['CenteredDL', 'Taylor', 'NominalTaylor', 'NominalTaylorRMS'], fr="Formule de résidu utilisée"),
+        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
+        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['CurrentState', 'Residu', 'SimulatedObservationAtCurrentState'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
+        ),
+    ParametersLocalSensitivityTest = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'LocalSensitivityTest') ",
+        statut="f",
+        SetDebug = SIMP(statut="f", typ="I", min=1, max=1, defaut=0, fr="Activation du mode debug lors de l'exécution"),
+        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['CurrentState', 'JacobianMatrixAtCurrentState', 'SimulatedObservationAtCurrentState'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
+        ),
+    ParametersParallelFunctionTest = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'ParallelFunctionTest') ",
+        statut="f",
+        NumberOfPrintedDigits = SIMP(statut="f", typ="I", val_min=0, min=1, max=1, defaut=5, fr="Nombre de chiffres affichés pour les impressions de réels"),
+        NumberOfRepetition = SIMP(statut="f", typ="I", val_min=1, min=1, max=1, defaut=1, fr="Nombre de fois où l'exécution de la fonction est répétée"),
+        SetDebug = SIMP(statut="f", typ="I", min=1, max=1, defaut=0, fr="Activation du mode debug lors de l'exécution"),
+        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['CurrentState', 'SimulatedObservationAtCurrentState'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
+        ),
+    ParametersSamplingTest = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'SamplingTest') ",
+        statut="f",
+        QualityCriterion = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="AugmentedWeightedLeastSquares", into=['AugmentedWeightedLeastSquares', 'AWLS', 'AugmentedPonderatedLeastSquares', 'APLS', 'DA', 'WeightedLeastSquares', 'WLS', 'PonderatedLeastSquares', 'PLS', 'LeastSquares', 'LS', 'L2', 'AbsoluteValue', 'L1', 'MaximumError', 'ME'], fr="Critère de qualité utilisé"),
+        SampleAsExplicitHyperCube = SIMP(statut="f", typ="TXM", max="**", into=None, fr="Points de calcul définis par un hyper-cube dont on donne la liste des échantillonages de chaque variable comme une liste"),
+        SampleAsIndependantRandomVariables = SIMP(statut="f", typ="TXM", max="**", into=None, fr="Points de calcul définis par un hyper-cube dont les points sur chaque axe proviennent de l'échantillonage indépendant de la variable selon la spécification ['distribution',[parametres],nombre]"),
+        SampleAsMinMaxStepHyperCube = SIMP(statut="f", typ="TXM", max="**", into=None, fr="Points de calcul définis par un hyper-cube dont on donne la liste des échantillonages de chaque variable par un triplet [min,max,step]"),
+        SampleAsnUplet = SIMP(statut="f", typ="TXM", max="**", into=None, fr="Points de calcul définis par une liste de n-uplet"),
+        SetDebug = SIMP(statut="f", typ="I", min=1, max=1, defaut=0, fr="Activation du mode debug lors de l'exécution"),
+        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
+        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['CostFunctionJ', 'CostFunctionJb', 'CostFunctionJo', 'CurrentState', 'InnovationAtCurrentState', 'SimulatedObservationAtCurrentState'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
+        ),
+    ParametersTangentTest = BLOC (condition = " (Parameters == 'Defaults') and (Algorithm == 'TangentTest') ",
+        statut="f",
+        AmplitudeOfInitialDirection = SIMP(statut="f", typ="R", min=1, max=1, defaut=1.0, fr="Amplitude de la direction initiale de la dérivée directionnelle autour du point nominal"),
+        AmplitudeOfTangentPerturbation = SIMP(statut="f", typ="R", val_min=1e-10, val_max=1.0, min=1, max=1, defaut=0.01, fr="Amplitude de la perturbation pour le calcul de la forme tangente"),
+        EpsilonMinimumExponent = SIMP(statut="f", typ="I", val_min=-20, val_max=0, min=1, max=1, defaut=-8, fr="Exposant minimal en puissance de 10 pour le multiplicateur d'incrément"),
+        InitialDirection = SIMP(statut="f", typ="TXM", fr="Direction initiale de la dérivée directionnelle autour du point nominal"),
+        ResiduFormula = SIMP(statut="f", typ="TXM", min=1, max=1, defaut="Taylor", into=['Taylor'], fr="Formule de résidu utilisée"),
+        SetSeed = SIMP(statut="f", typ="TXM", fr="Graine fixée pour le générateur aléatoire"),
+        StoreSupplementaryCalculations = SIMP(statut="f", typ="TXM", max="**", into=['CurrentState', 'Residu', 'SimulatedObservationAtCurrentState'], fr="Liste de calculs supplémentaires à stocker et/ou effectuer"),
+        ),
+    )
+
+def F_variables(statut) : return FACT(
+    statut=statut,
+    regles = ( MEME_NOMBRE ('NAMES', 'SIZES')),
+    NAMES = SIMP(statut="o", typ="TXM", max="**", validators=NoRepeat()),
+    SIZES = SIMP(statut="o", typ="I", val_min=1, max="**")
+    )
+def ChDir(dirname):
+    os.chdir(os.path.abspath(dirname))
+    return 1
+ChDir.info = u"This has to be a regular directory path."
+
+ASSIMILATION_STUDY = PROC(nom="ASSIMILATION_STUDY",
+    op=None,
+    repetable           = "n",
+    StudyName           = SIMP(statut="o", typ = "TXM", defaut="ADAO Calculation Case"),
+    StudyRepertory      = SIMP(statut="f", typ = "Repertoire", validators=FunctionVal(ChDir), min=1, max=1),
+    Debug               = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0),
+    AlgorithmParameters = F_AlgorithmParameters("o",("3DVAR", "4DVAR", "Blue", "DerivativeFreeOptimization", "DifferentialEvolution", "EnsembleBlue", "EnsembleKalmanFilter", "ExtendedBlue", "ExtendedKalmanFilter", "KalmanFilter", "LinearLeastSquares", "NonLinearLeastSquares", "ParticleSwarmOptimization", "QuantileRegression", "TabuSearch", "UnscentedKalmanFilter", ), AlgorithmParametersInNS),
+    Background          = F_Background("o", BackgroundInNS),
+    BackgroundError     = F_BackgroundError("o", BackgroundErrorInNS),
+    Observation         = F_Observation("o", ObservationInNS),
+    ObservationError    = F_ObservationError("o", ObservationErrorInNS),
+    ObservationOperator = F_ObservationOperator("o"),
+    EvolutionModel      = F_EvolutionModel("f"),
+    EvolutionError      = F_EvolutionError("f", EvolutionErrorInNS),
+    ControlInput        = F_ControlInput("f"),
+    UserDataInit        = F_Init("f"),
+    UserPostAnalysis    = F_UserPostAnalysis("o"),
+    InputVariables      = F_variables("f"),
+    OutputVariables     = F_variables("f"),
+    Observers           = F_Observers("f")
+    )
+
+CHECKING_STUDY = PROC(nom="CHECKING_STUDY",
+    op=None,
+    repetable           = "n",
+    StudyName           = SIMP(statut="o", typ = "TXM", defaut="ADAO Checking Case"),
+    StudyRepertory      = SIMP(statut="f", typ = "Repertoire", validators=FunctionVal(ChDir), min=1, max=1),
+    Debug               = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0),
+    AlgorithmParameters = F_AlgorithmParameters("o", ("AdjointTest", "FunctionTest", "GradientTest", "InputValuesTest", "LinearityTest", "LocalSensitivityTest", "ObserverTest", "ParallelFunctionTest", "SamplingTest", "TangentTest", ), AlgorithmParametersInNS),
+    CheckingPoint       = F_CheckingPoint("o", CheckingPointInNS),
+    Background          = F_Background("f", BackgroundInNS),
+    BackgroundError     = F_BackgroundError("f", BackgroundErrorInNS),
+    Observation         = F_Observation("f", ObservationInNS),
+    ObservationError    = F_ObservationError("f", ObservationErrorInNS),
+    ObservationOperator = F_ObservationOperator("o"),
+    UserDataInit        = F_Init("f"),
+    Observers           = F_Observers("f")
+    )
diff --git a/Adao/configuration_Adao.py b/Adao/configuration_Adao.py
deleted file mode 100644 (file)
index 735905f..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# Copyright (C) 2008-2016 EDF R&D
-#
-# This file is part of SALOME ADAO module
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-
-"""
-"""
-# Modules Python
-# print "passage dans la surcharge de configuration pour Adao"
-import os, sys, string, types, re
-
-
-# Modules Eficas
-
-
-#from Editeur import Eficas_utils
-from InterfaceQT4 import configuration
-
-# Classe de base permettant de lire, afficher
-# et sauvegarder les fichiers utilisateurs
-class CONFIG(configuration.configBase):
-
-  def __init__(self,appli,repIni):
-
-    self.labels_eficas=['lang','rep_cata','catalogues','closeAutreCommande','closeFrameRechercheCommande','closeEntete','taille']
-    configuration.configBase.__init__(self,appli,repIni)
-
-    #self.rep_user = os.environ["HOME"]
-    self.rep_user = os.path.expanduser("~")
-    self.appli   = appli
-    self.code    = appli.code
-    # self.lang    = "fr"
-    self.rep_ini = repIni
-    self.rep_mat=" " # Compatbilite Aster
-    self.savedir      = self.rep_user
-    self.generator_module = "generator_adao"
-    self.convert_module = "convert_adao"
-
-    # Format des catalogues...
-    # (code, version, catalogue, formatIn, formatOut)
-    # Il faut les mettre dans un tuple
-    #self.catalogues = (("ADAO", "V0", os.path.join(self.rep_ini, 'ADAO_Cata_V0.py'), "adao"),)
-
-def make_config(appli,rep):
-    return CONFIG(appli,rep)
-
diff --git a/Adao/exempleGetattr.py b/Adao/exempleGetattr.py
new file mode 100755 (executable)
index 0000000..e18698c
--- /dev/null
@@ -0,0 +1,54 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2021   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+"""
+"""
+import sys,os
+import prefs
+sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..'))
+
+from InterfaceQT4 import eficas_go
+jdd = eficas_go.createFromDocumentAccas('ADAO_Cata_V0_pour_V9_5_0.py','exemple01_Func.comm')
+
+
+# les premiers niveaux sont tous des listes dans eficas car il est possible 
+# d en avoir plusieurs
+myCheckingStudy=jdd.CHECKING_STUDY[0]
+print ('myCheckingStudy', myCheckingStudy, ' a pour nom', myCheckingStudy.StudyName)
+
+# Pour les Facts, si c est une liste d'elements, utilisation de [n] 
+# si la liste ne contient qu'un element, l' utilisation de [0]  est optionnelle
+
+print (myCheckingStudy.AlgorithmParameters.Algorithm)
+print (myCheckingStudy.AlgorithmParameters[0].NumberOfRepetition)
+
+print ('on fait une erreur volontaire')
+try :
+  myAssimilationStudy=jdd.ASSIMILATION_STUDY[0]
+except : 
+  print ('myAssimilationStudy non trouve')
+  myAssimilationStudy=None
+
+# Pour les OPER il est aussi possible de chercher par le nom du concept produit
+# n exite pas dans Adao
+#monRodBank2=jdd.getEtapeByConceptName('RB')
+
+
+
diff --git a/Adao/monCode_Cata.py b/Adao/monCode_Cata.py
deleted file mode 100644 (file)
index 2f37071..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- coding: utf-8 -*-
-from Accas import *
-
-JdC = JDC_CATA (code = 'ADAO',
-                execmodul = None,
-                )
-JdC = JDC_CATA (code = 'ADAO',
-                execmodul = None,
-                regles = ( AU_MOINS_UN ('ASSIMILATION_STUDY','CHECKING_STUDY'), AU_PLUS_UN ('ASSIMILATION_STUDY','CHECKING_STUDY')),
-               )
-
-
-ASSIMILATION_STUDY = PROC(nom="ASSIMILATION_STUDY", op=None, repetable           = "n",
-        Study_name          = SIMP(statut="o", typ = "TXM"),
-        Study_repertory     = SIMP(statut="f", typ = "Repertoire", min=1, max=1),
-        Debug               = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0),
-        Algorithm           = SIMP(statut="o", typ = "TXM", into=("3DVAR", "Blue", "EnsembleBlue", "KalmanFilter", "LinearLeastSquares", "NonLinearLeastSquares", "ParticleSwarmOptimization", "QuantileRegression", )),
-        Background         = FACT(statut="o",
-                     regles=(UN_PARMI('SCRIPT_DATA_FILE','VECTOR_STRING'),),
-                     Stored = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Choix de stockage interne ou non du concept parent", ang="Choice of the storage or not of the parent concept"),
-                     SCRIPT_DATA_FILE = SIMP(statut = "f", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant la définition d'une variable interne de même nom que le concept parent", ang="Waiting for a script file name, with or without the full path to find it, containing the definition of an internal variable of the same name as the parent concept"),
-                     VECTOR_STRING = SIMP(statut = "f", typ = "TXM", fr="En attente d'une chaine de caractères entre guillements. Pour construire un vecteur, ce doit être une suite de nombres, utilisant un espace ou une virgule pour séparer deux éléments et un point-virgule pour séparer deux lignes", ang="Waiting for a string in quotes. To build a vector, it has to be a float serie, using a space or comma to separate two elements in a line, a semi-colon to separate rows"),
-                              ),
-
-)
index 5cbdc26364b99c8f654972a4fc9e610d0d87feea..c235a3e8cab94a844cafb6f04bc84878b9db76d8 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -16,7 +16,7 @@
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
-code="Adao" 
+code="Adao"
 import sys, os
 if os.path.dirname(os.path.abspath(__file__)) not in sys.path :
-   sys.path.insert(0,os.path.dirname(os.path.abspath(__file__)))
+    sys.path.insert(0,os.path.dirname(os.path.abspath(__file__)))
index 4e758db64ac0a1256fb6babf4c02adfeccdf8890..5846703d9568b9834398aed2828a130ab9f546ea 100644 (file)
@@ -14,18 +14,13 @@ encoding='iso-8859-1'
 # Choix des catalogues
 # format du Tuple (code,version,catalogue,formatOut, finit par defaut eventuellement)
 catalogues = (
-# ('Adao','V1',os.path.join(repIni,'ADAO_Cata_V1.py'),'python','python'),
-# ('Adao','V770',os.path.join(repIni,'ADAO_Cata_V0_V7_7_0.py'),'python','python'),
-# ('Adao','V83',os.path.join(repIni,'ADAO_Cata_V0_V8_3_0_DEV.py'),'dicoImbrique','dico'),
-# ('Adao','dico',os.path.join(repIni,'ADAO_Cata_V0_V8_3_0_DEV.py'),'dico','dico'),
- ('Adao','V83',os.path.join(repIni,'ADAO_Cata_V0_V8_3_0_DEV.py'),'python','python'),
-# ('Adao','V83',os.path.join(repIni,'ADAO_Cata_PN.py'),'python','python'),
-# ('Adao','V751',os.path.join(repIni,'ADAO_Cata_V0_V7_5_1.py'),'python','python'),
+ ('Adao','V95',os.path.join(repIni,'ADAO_Cata_V0_pour_V9_5_0.py'),'python','python'),
 )
 
 # lang indique la langue utilisee pour les chaines d'aide : fr ou ang
-
+#lang='ang'
 lang='fr'
+
 closeAutreCommande = True
 closeFrameRechercheCommande = True
 #closeEntete = True
@@ -33,4 +28,4 @@ closeArbre = True
 translatorFichier = os.path.join(repIni,'Adao')
 nombreDeBoutonParLigne=1
 #dumpXSD=True
-
+#afficheIhm=False
index 51156caa39b14da5f75bf973ff1cc1d0c05243d8..09866c03077918bbec557577fa4f4b3debe56847 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 4360516383912cff44e9198866df2a32bebab5cf..9ff2b4c3981f1a6c219bf06dcb8ef6f149e8e96a 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
diff --git a/Carmel3D/CMakeLists.txt b/Carmel3D/CMakeLists.txt
deleted file mode 100644 (file)
index 2f24146..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-# -*- coding: utf-8 -*-
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-#
-#
-# ======================================================================
-
-
-install ( FILES 
-            qtEficas_Carmel3D.py prefs_CARMEL3D.py prefs.py configuration_CARMEL3D.py
-           Carmel3D_Cata_frequentiel_V0.py opsCarmel.py ajoutGroupe.py
-          DESTINATION ${CMAKE_INSTALL_PREFIX}/Carmel3D
-        )
-
-add_subdirectory (materiaux)
-
-### Local Variables:
-### mode: cmake
-### End:
diff --git a/Carmel3D/Carmel3D_Cata_V0.py b/Carmel3D/Carmel3D_Cata_V0.py
deleted file mode 100644 (file)
index 6fe6de9..0000000
+++ /dev/null
@@ -1,553 +0,0 @@
-# -*- coding: utf-8 -*-
-# --------------------------------------------------
-# Copyright (C) 2007-2013   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-# --------------------------------------------------
-
-import os
-import sys
-from Accas import *
-import types
-from decimal import Decimal
-# repertoire ou sont stockés le catalogue carmel3d 
-# et les fichiers de donnees des materiaux de reference
-from prefs_CARMEL3D import repIni
-
-#print "catalogue carmel"
-#print "repIni = ", repIni
-
-# Version du catalogue
-VERSION_CATA = "2.3.1 for harmonic problems"
-# --------------------------------------------------
-# definition d une classe pour les materiaux
-# definition d une classe pour les sources
-# definition d une classe pour les groupes de mailles
-# --------------------------------------------------
-class material ( ASSD ) : pass
-class source   ( ASSD ) : pass
-class grmaille ( ASSD ) : pass
-
-#CONTEXT.debug = 1
-# --------------------------------------------------
-# déclaration du jeu de commandes : 1ere instruction du catalogue obligatoire 
-#---------------------------------------------------
-
-JdC = JDC_CATA ( code = 'CARMEL3D',
-#                execmodul = None,
-                 regles =(
-                           AU_MOINS_UN ('MATERIAL','INCLUDE'),
-                           ENSEMBLE ('SOURCE','MESHGROUP'),
-                           ),
-                 ) # Fin JDC_CATA
-##=========================================================
-# création d'une macro pour traiter les INCLUDE
-#
-#----------------------------------------------------------
-
-import opsCarmel
-INCLUDE = MACRO ( nom = "INCLUDE",
-                 op = None,
-                 UIinfo = { "groupes" : ( "Gestion du travail", ) },
-                 sd_prod = opsCarmel.INCLUDE,
-                 op_init = opsCarmel.INCLUDE_context,
-                 fichier_ini = 1,
-   FileName = SIMP ( statut = "o",
-                    typ = ('Fichier', 'comm Files (*.comm);;All Files (*)',),
-                     fr = u"bibliothèque des matériaux",
-                    ang = "material library file",
-                     ),
-  
- ) # Fin MACRO 
-
-# --------------------------------------------------
-# definition de groupe de mailles
-# il est associe a un  materiau ou a une source
-#---------------------------------------------------
-
-MESHGROUP     = OPER (nom = "MESHGROUP",
-                    op = None,
-                repetable = 'n',
-                    UIinfo= {"groupes":("Definition",)},
-            fr= u"attribution d'un matériau ou d'une source à un groupe du maillage", 
-            ang = "mesh group association to material or source", 
-                    sd_prod= grmaille,
-                    regles =(
-                             EXCLUS ('MATERIAL','SOURCE'),
-                           ),
-
-# ----------------------------------------------------------
-# le mot cle SIMP doit etre facultatif sinon la recuperation 
-# des groupes de mailles sous SALOME ne fonctionne pas car 
-# le concept ne peut pas etre nomme car non valide
-#-----------------------------------------------------------
-              MATERIAL =  SIMP (statut="f",
-                         typ=(material,),
-                                 ang="name of the linked material",
-                         fr =u"nom du matériau associé",
-                                ), 
-              SOURCE =  SIMP (statut="f",
-                         typ=(source,),
-                                 ang="name of the linked source",
-                         fr =u"nom de la source associée",
-                                ), 
-                      )
-
-
-#======================================================================
-# le fichier .PHYS contient 3 blocs et jusqu'a 3 niveaux de sous-blocs
-# 
-#======================================================================
-# 1er bloc : bloc VERSION
-# ce bloc est volontairement cache dans l IHM 
-#===================================================
-
-VERSION = PROC ( nom = "VERSION",
-                        op = None,
-                repetable = 'n',
-                        UIinfo= {"groupes":("CACHE",)},
-                        ang= "version block definition", 
-
-#----------------------
-# Liste des parametres
-#----------------------
-        
-   NUM      = SIMP (statut="o",
-                    typ="I",
-            defaut=1, 
-                    ang="version number of the physical model", 
-                    into=( 1,),
-                   ),
-   FILETYPE = SIMP (statut="o",
-                    typ="TXM",
-            defaut="PHYS", 
-                    ang="file type",
-                    into=( "PHYS",),
-                   ),
-
-) # Fin PROC VERSION
-
-#===================================================================
-# 2eme bloc : bloc MATERIALS
-#===================================================================
-# definition des matériaux utilisateurs 
-# a partir des materiaux de reference ou de materiaux generiques
-#-------------------------------------------------------------------
-#
-MATERIAL = OPER (nom = "MATERIAL",
-                 op = None,
-                 repetable = 'n',
-                 ang= "material block definition", 
-                 fr= u"définition d'un matériau", 
-                 sd_prod= material,
-                 regles=EXCLUS('PERMITTIVITY','CONDUCTIVITY'),
-
-#---------------------------------------------------------------------
-# liste des matériaux de reference fournis par THEMIS et  des
-# materiaux generiques (les materiaux generiques peuvent etre utilises 
-# si aucun materiau de reference  ne convient) 
-#---------------------------------------------------------------------
-# debut commentaire PN pour que le fichier materiaux soit valide
-#                 TYPE = SIMP(statut='o',
-                 MAT_REF = SIMP(statut='f',
-                             typ='TXM',
-                             into=(
-#  matériaux génériques 
-                                 "DIELECTRIC",
-                                 "CONDUCTOR",
-                                 "ZINSULATOR","ZSURFACIC",
-                                 "NILMAT","EM_ISOTROPIC","EM_ANISOTROPIC",
-                             ),
-                             ang = "generic materials list",
-                             fr  = u"liste des matériaux génériques",
-                            ),
-
-##############################################################################
-# Remarque generale a tous les materiaux : 
-# pour conserver l'affichage scientifique le nombre derriere l'exposant doit
-# etre strictement superieur au nombre de decimales 
-#
-
-##----------------------------------------------------------------------------------------------
-# Données de perméabilité, utilisée pour les diélectriques, conducteurs et impédances de surface
-#-----------------------------------------------------------------------------------------------
-  #HAS_PERMEABILITY = BLOC(condition="TYPE in ('DIELECTRIC','CONDUCTOR','ZSURFACIC')",
-
-#------------------------------------------------
-# sous bloc niveau 2 : PERMEABILITY
-#------------------------------------------------
-#
-  PERMEABILITY = FACT ( statut="f", 
-                        ang ="Permeability properties",
-                        fr  =u"propriétés de perméabilité du matériau",
-                        HOMOGENEOUS = SIMP (statut="o",
-                                            typ="TXM",
-                                            defaut="TRUE",
-                                            into = ("TRUE","FALSE"),
-                                            ang = "the material is homogeneous or not",
-                                            fr  = u"le matériau est homogène ou non",
-                                           ),
-                        ISOTROPIC = SIMP (statut="o",
-                                          typ="TXM",
-                                          defaut="TRUE",
-                                          into = ("TRUE","FALSE"),
-                                          ang = "the material is isotropic or not",
-                                          fr  = u"le matériau est isotrope ou non",
-                                         ),
-                   HOMOGENEOUS_ISOTROPIC_PROPERTIES = BLOC (condition="HOMOGENEOUS=='TRUE' and ISOTROPIC=='TRUE'",
-                        TYPE_LAW = SIMP (statut="o",
-                                    typ="TXM",
-                                    defaut="LINEAR_REAL",
-                                    into = ("LINEAR_REAL","NONLINEAR"),
-                                    ang = "harmonic or time-domain linear or nonlinear law only for homogeneous and isotropic materials",
-                                    fr  = u"loi linéaire (fréquentielle ou temporelle) ou non (homogène et isotrope seulement)",
-                                   ), 
-                        VALUE = SIMP (statut="o",
-                                      typ="C", 
-                                      defaut=('RI',1,0),
-                                      ang = "Relative linear permeability value, also used at first nonlinear iteration",
-                                      fr = u"Valeur de la perméabilité relative à l'air utilisée pour une loi linéaire ou pour la première itération non-linéaire",
-                                     ),
-                    NONLINEAR_LAW_PROPERTIES = BLOC (condition="LAW=='NONLINEAR'",
-                        NATURE = SIMP (statut="o",
-                                       typ="TXM",
-                                       defaut="MARROCCO",
-                                       into = ("SPLINE","MARROCCO","MARROCCO+SATURATION"),
-                                       ang = "nature law",
-                                       fr  = u"nature de la loi",
-                                      ),
-                     SPLINE_LAW_PROPERTIES = BLOC (condition="NATURE=='SPLINE'",
-                        FILENAME = SIMP (statut="o", 
-                                         typ=("FichierNoAbs",'All Files (*)',), # l'existence du fichier n'est pas vérifiée
-                                         ang="data file name",
-                                         fr =u"nom du fichier contenant les mesures expérimentales B(H)",
-                                        ),
-                     ), # Fin BLOC SPLINE_PROPERTIES
-                     MARROCCO_LAW_PROPERTIES = BLOC (condition="NATURE in ('MARROCCO','MARROCCO+SATURATION')",
-                        ALPHA = SIMP (statut="o", 
-                                      typ="R",
-                                      defaut=0,
-                                      val_min=0,
-                                      ang="alpha parameter",
-                                      fr =u"paramètre alpha de la loi de Marrocco" ,
-                                     ),
-                        TAU = SIMP (statut="o", 
-                                    typ="R",
-                                    defaut=0,
-                                    val_min=0,
-                                    ang="tau parameter",
-                                    fr =u"paramètre tau de la loi de Marrocco" ,
-                                   ),
-                        C = SIMP (statut="o", 
-                                  typ="R",
-                                  defaut=0,
-                                  val_min=0,
-                                  ang="c parameter",
-                                  fr =u"paramètre c de la loi de Marrocco" ,
-                                 ),
-                        EPSILON = SIMP (statut="o", 
-                                        typ="R",
-                                        defaut=0,
-                                        val_min=0,
-                                        ang="epsilon parameter",
-                                        fr =u"paramètre epsilon de la loi de Marrocco" ,
-                                       ),
-                     ), # Fin BLOC MARROCCO_LAW_PROPERTIES
-                     SATURATION_LAW_PROPERTIES = BLOC (condition="NATURE=='MARROCCO+SATURATION'",
-                        BMAX = SIMP (statut="o", 
-                                     typ="R",
-                                     defaut=0,
-                                     val_min=0,
-                                     ang="intersection B",
-                                     fr = u"valeur de B marquant la fin de la loi de Marrocco et le début du raccord à la loi de saturation",
-                                    ),
-                        HSAT = SIMP (statut="o", 
-                                     typ="R",
-                                     defaut=0,
-                                     val_min=0,
-                                     ang="H value",
-                                     fr = u"valeur de H définissant la loi de saturation",
-                                    ),
-                        BSAT = SIMP (statut="o", 
-                                     typ="R",
-                                     defaut=0,
-                                     val_min=0,
-                                     ang="B value",
-                                     fr = u"valeur de B définissant la loi de saturation",
-                                    ),
-                        JOIN = SIMP (statut="o", 
-                                     typ="TXM",
-                                     defaut="SPLINE",
-                                     into= ("SPLINE","PARABOLIC","LINEAR"),
-                                     ang="type of join between laws",
-                                     fr =u"type de raccord entre la loi choisie et la loi de saturation" ,
-                                    ),
-                     ), # Fin BLOC SATURATION_LAW_PROPERTIES
-                        APPLIEDTO = SIMP (statut="o",    
-                                          typ="TXM",   
-                                          into=("B(H)&H(B)","B(H)","H(B)"),
-                                          defaut="B(H)&H(B)",
-                                          ang="join applied to",
-                                          fr =u"Le raccord tel que défini est appliqué à la courbe B(H) seulement, à la courbe H(B) seulement ou aux deux courbes à la fois. Dans les deux premiers cas, le raccord de la courbe H(B) est inversé numériquement à partir du raccord défini pour la courbe B(H), et vice-versa.",
-                                         ),
-                    ), # Fin BLOC NONLINEAR_LAW_PROPERTIES
-                   ), # Fin BLOC HOMOGENEOUS_ISOTROPIC_PROPERTIES
-             ), # fin FACT PERMEABILITY
-   #), # Fin BLOC HAS_PERMEABILITY
-
-##------------------------------------------------------------------
-# Données de permittivité, utilisée pour les diélectriques seulement
-#-------------------------------------------------------------------
-  #HAS_PERMITTIVITY = BLOC(condition="TYPE == 'DIELECTRIC'",
-
-#------------------------------------------------
-# sous bloc niveau 2 : PERMITTIVITY
-#------------------------------------------------
-  PERMITTIVITY = FACT ( statut="f", 
-                        ang ="Permittivity properties",
-                        fr  = u"propriétés de permittivité du matériau",
-                        HOMOGENEOUS = SIMP (statut="o",
-                                            typ="TXM",
-                                            defaut="TRUE",
-                                            into = ("TRUE","FALSE"),
-                                            ang = "the material is homogeneous or not",
-                                            fr  = u"le matériau est homogène ou non",
-                                           ),
-                        ISOTROPIC = SIMP (statut="o",
-                                          typ="TXM",
-                                          defaut="TRUE",
-                                          into = ("TRUE","FALSE"),
-                                          ang = "the material is isotropic or not",
-                                          fr  = u"le matériau est isotrope ou non",
-                                         ),
-                       HOMOGENEOUS_ISOTROPIC_PROPERTIES = BLOC (condition="HOMOGENEOUS=='TRUE' and ISOTROPIC=='TRUE'",
-                        LAW = SIMP (statut="o",
-                                    typ="TXM",
-                                    defaut="LINEAR",
-                                    into = ("LINEAR",),
-                                    ang = "linear law",
-                                    fr  = u"loi linéaire",
-                                   ),
-                        VALUE = SIMP (statut="o",
-                                      typ="C", 
-                                      defaut=('RI',1,0),
-                                      ang = "enter a complex relative value",
-                                      fr = u"saisir une valeur complexe relative",
-                                     ),
-                       ), # Fin BLOC HOMOGENEOUS_ISOTROPIC_PROPERTIES
-                      ), # fin FACT PERMITTIVITY
-
-   #), # Fin BLOC HAS_PERMITTIVITY
-
-##----------------------------------------------------------------------------------------------
-# Données de conductivité, utilisée pour les conducteurs et impédances de surface
-#-----------------------------------------------------------------------------------------------
-  #HAS_CONDUCTIVITY = BLOC(condition="TYPE in ('CONDUCTOR','ZSURFACIC')",
-#------------------------------------------------
-# sous bloc niveau 2 : CONDUCTIVITY
-#------------------------------------------------
-  CONDUCTIVITY = FACT ( statut="f", 
-                        ang ="Permittivity properties",
-                        fr  = u"propriétés de permittivité du matériau",
-                        HOMOGENEOUS = SIMP (statut="o",
-                                            typ="TXM",
-                                            defaut="TRUE",
-                                            into = ("TRUE","FALSE"),
-                                            ang = "the material is homogeneous or not",
-                                            fr  = u"le matériau est homogène ou non",
-                                           ),
-                        ISOTROPIC = SIMP (statut="o",
-                                          typ="TXM",
-                                          defaut="TRUE",
-                                          into = ("TRUE","FALSE"),
-                                          ang = "the material is isotropic or not",
-                                          fr  = u"le matériau est isotrope ou non",
-                                         ),
-                       HOMOGENEOUS_ISOTROPIC_PROPERTIES = BLOC (condition="HOMOGENEOUS=='TRUE' and ISOTROPIC=='TRUE'",
-                        LAW = SIMP (statut="o",
-                                    typ="TXM",
-                                    defaut="LINEAR",
-                                    into = ("LINEAR",),
-                                    ang = "linear law",
-                                    fr  = u"loi linéaire",
-                                   ),
-                        VALUE = SIMP (statut="o",
-                                      typ="C", 
-                                      defaut=('RI',1,0),
-                                      ang = "enter a complex relative value",
-                                      fr = u"saisir une valeur complexe relative",
-                                     ),
-                       ), # Fin BLOC HOMOGENEOUS_ISOTROPIC_PROPERTIES
-                      ), # fin FACT CONDUCTIVITY
-
-   #), # Fin BLOC HAS_CONDUCTICITY
-
-###################################################################################################
-#---------------------------------------------
-# sous bloc niveau 1  
-#---------------------------------------
-# matériau generique de type ZINSULATOR 
-#---------------------------------------
-  
-# aucun parametre a saisir pour ce materiau
-
-
-###################################################################################################
-#---------------------------------------------
-# sous bloc niveau 1     
-#---------------------------------------------
-# matériau generique de type NILMAT (fictif)  
-#---------------------------------------------
-  
-# aucun parametre a saisir pour ce materiau
-
-
-###################################################################################################
-#----------------------------------------------------------
-# sous bloc niveau 1 : EM_ISOTROPIC_FILES   
-#-------------------------------------------------
-# matériau isotropique non homogene generique
-#-------------------------------------------------
-   EM_ISOTROPIC_properties=BLOC(condition="TYPE=='EM_ISOTROPIC'", 
-               
-           CONDUCTIVITY_File = SIMP (statut="o", 
-                                     typ=("FichierNoAbs",'MED Files (*.med)',),
-                                     ang="CONDUCTIVITY MED data file name",
-                                     fr = u"nom du fichier MED CONDUCTIVITY",
-                                    ),
-           PERMEABILITY_File = SIMP (statut="o", 
-                                     typ=("FichierNoAbs",'MED Files (*.med)',),
-                                     ang="PERMEABILITY MED data file name",
-                                     fr = u"nom du fichier MED PERMEABILITY",
-                                    ),
-   ), # fin bloc EM_ISOTROPIC_properties
-
-    
-#---------------------------------------------------
-# matériau  anisotropique non homogene generique 
-#---------------------------------------------------
-   EM_ANISOTROPIC_properties=BLOC(condition="TYPE=='EM_ANISOTROPIC'",
-                 
-           PERMEABILITY_File = SIMP (statut="o", 
-                                     #typ=("Fichier",'.mater Files (*.mater)'), # le fichier doit exister dans le répertoire d'où on lancer Eficas si le fichier est défini par un nom relatif, ce qui est trop contraignant
-                                     #typ=("Fichier",'.mater Files (*.mater)','Sauvegarde'), # Le fichier peut ne pas exister, mais on propose de le sauvegarder et d'écraser un fichier existant : pas approprié
-                                     typ=("FichierNoAbs",'.mater Files (*.mater)'), # l'existence du fichier n'est pas vérifiée, mais on peut le sélectionner quand même via la navigateur. C'est suffisant et permet une bibliothèque de matériaux.
-                                     ang="PERMEABILITY .mater data file name",
-                                     fr ="nom du fichier .mater PERMEABILITY",
-                                    ),
-           CONDUCTIVITY_File = SIMP (statut="o", 
-                                     typ=("FichierNoAbs",'.mater Files (*.mater)'),
-                                     ang="CONDUCTIVITY .mater data file name",
-                                     fr ="nom du fichier .mater CONDUCTIVITY",
-                                    ),
-   ), # fin bloc EM_ANISOTROPIC_properties
-
-
-) # fin OPER MATERIAL
-    
-#===================================================================
-# 3eme bloc : bloc SOURCES
-#====================================================================
-# definition des differentes sources qui seront dans le bloc SOURCES
-#-------------------------------------------------------------------
-#
-
-SOURCE = OPER ( nom = "SOURCE",
-                op = None,
-                repetable = 'n',
-                ang = "source definition", 
-                fr = u"définition d'une source", 
-                sd_prod = source,
-                regles = (UN_PARMI('STRANDED_INDUCTOR','HPORT','EPORT'), # choix d'un type de source
-                          UN_PARMI('WAVEFORM_CONSTANT','WAVEFORM_SINUS'), # choix d'une forme de source
-                         ),
-
-#----------------------------------------------------------
-# sous bloc niveau 1 : stranded inductor source 
-##---------------------------------------------------------
-                STRANDED_INDUCTOR = FACT(statut='f',
-                                         ang="Stranded inductor source",
-                                         fr=u"source de type inducteur bobiné",
-                                         NTURNS = SIMP (statut="o",
-                                                        typ="I",
-                                                        defaut=1,
-                                                        ang="number of turns in the inductor",
-                                                        fr= u"nombre de tours dans l'inducteur bobiné",
-                                                       ),
-                                         TYPE = SIMP (statut="o",
-                                                      typ="TXM",
-                                                      defaut="CURRENT",
-                                                      into=("CURRENT",),
-                                                      fr= u"source de type courant",
-                                                      ang="current source type",
-                                                     ),
-                ), # FIN de FACT STRANDED_INDUCTOR
-                HPORT = FACT(statut='f',
-                             ang="Magnetic port source",
-                             fr=u"source de type port magnétique",
-                             TYPE = SIMP (statut="o",
-                                          typ="TXM",
-                                          into=("VOLTAGE","CURRENT"),
-                                          fr= u"source de type tension ou courant",
-                                          ang="voltage or current source type",
-                                         ),
-                ), # FIN de FACT HPORT
-                EPORT = FACT(statut='f',
-                             ang="Electric port source",
-                             fr=u"source de type port électrique",
-                             TYPE = SIMP (statut="o",
-                                          typ="TXM",
-                                          into=("VOLTAGE","CURRENT"),
-                                          fr= u"source de type tension ou courant",
-                                          ang="voltage or current source type",
-                                         ),
-                ), # FIN de FACT EPORT
-                WAVEFORM_CONSTANT = FACT(statut='f',
-                                         ang="constant source",
-                                         fr=u"source constante",
-                                         AMPLITUDE = SIMP (statut="o",
-                                                           typ="R", 
-                                                           defaut=1,
-                                                           ang = "enter the source magnitude value, in A or V units",
-                                                           fr = u"saisir la valeur de l'amplitude de la source, en unités A ou V",
-                                                          ),
-                ), # FIN de FACT WAVEFORM_CONSTANT
-                WAVEFORM_SINUS = FACT(statut='f',
-                                      ang="sinus variation source",
-                                      fr=u"source variant avec une forme sinusoïdale, définie par son amplitude, sa fréquence et sa phase",
-                                      AMPLITUDE = SIMP (statut="o",
-                                                        typ="R", 
-                                                        defaut=1,
-                                                        ang = "enter the source magnitude value, in A or V units",
-                                                        fr = u"saisir la valeur de l'amplitude de la source, en unités A ou V",
-                                                       ),
-                                      FREQUENCY = SIMP (statut="o",
-                                                        typ="R", 
-                                                        defaut=50.0,
-                                                        ang = "enter the source frequency value, in Hz units",
-                                                        fr = u"saisir la valeur de la fréquence de la source, en Hz",
-                                                       ),
-                                      PHASE = SIMP (statut="o",
-                                                    typ="R", 
-                                                    defaut=0.0,
-                                                    ang = "enter the source phase value, in degrees units",
-                                                    fr = u"saisir la valeur de la phase de la source, en degrés",
-                                                   ),
-                ), # FIN de FACT WAVEFORM_SINUS
-) # Fin OPER SOURCE
diff --git a/Carmel3D/Carmel3D_Cata_frequentiel_V0.py b/Carmel3D/Carmel3D_Cata_frequentiel_V0.py
deleted file mode 100755 (executable)
index a90c562..0000000
+++ /dev/null
@@ -1,552 +0,0 @@
-# -*- coding: utf-8 -*-\r
-# --------------------------------------------------\r
-# Copyright (C) 2007-2013   EDF R&D\r
-#\r
-# This library is free software; you can redistribute it and/or\r
-# modify it under the terms of the GNU Lesser General Public\r
-# License as published by the Free Software Foundation; either\r
-# version 2.1 of the License.\r
-#\r
-# This library is distributed in the hope that it will be useful,\r
-# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
-# Lesser General Public License for more details.\r
-#\r
-# You should have received a copy of the GNU Lesser General Public\r
-# License along with this library; if not, write to the Free Software\r
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
-#\r
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com\r
-#\r
-# --------------------------------------------------\r
-\r
-import os\r
-import sys\r
-from Accas import *\r
-import types\r
-from decimal import Decimal\r
-# repertoire ou sont stockés le catalogue carmel3d \r
-# et les fichiers de donnees des materiaux de reference\r
-from prefs_CARMEL3D import repIni\r
-\r
-#print "catalogue carmel"\r
-#print "repIni = ", repIni\r
-\r
-# Version du catalogue\r
-VERSION_CATA = "2.3.1 for harmonic problems"\r
-# --------------------------------------------------\r
-# definition d une classe pour les materiaux\r
-# definition d une classe pour les sources\r
-# definition d une classe pour les groupes de mailles\r
-# --------------------------------------------------\r
-class material ( ASSD ) : pass\r
-class source   ( ASSD ) : pass\r
-class grmaille ( ASSD ) : pass\r
-\r
-#CONTEXT.debug = 1\r
-# --------------------------------------------------\r
-# déclaration du jeu de commandes : 1ere instruction du catalogue obligatoire \r
-#---------------------------------------------------\r
-\r
-##=========================================================\r
-JdC = JDC_CATA ( code = 'CARMEL3D',\r
-#                execmodul = None,\r
-                 regles =(\r
-                           AU_MOINS_UN ('MATERIAL','INCLUDE'),\r
-                           AU_MOINS_UN ('SOURCE','INCLUDE'),\r
-                           AU_MOINS_UN ('MESHGROUP'),\r
-                           ),\r
-                 ) # Fin JDC_CATA\r
-##=========================================================\r
-# création d'une macro pour traiter les INCLUDE\r
-#\r
-#----------------------------------------------------------\r
-\r
-import opsCarmel\r
-INCLUDE = MACRO ( nom = "INCLUDE",\r
-                 op = None,\r
-                 UIinfo = { "groupes" : ( "Gestion du travail", ) },\r
-                 sd_prod = opsCarmel.INCLUDE,\r
-                 op_init = opsCarmel.INCLUDE_context,\r
-                 fichier_ini = 1,\r
\r
-   FileName = SIMP ( statut = "o",\r
-                    typ = ('Fichier', 'comm Files (*.comm);;All Files (*)',),\r
-                     fr = u"bibliothèque des matériaux",\r
-                    ang = "material library file",\r
-                     ),\r
-  \r
- ) # Fin MACRO \r
-# --------------------------------------------------\r
-# definition de groupe de mailles\r
-# il est associe a un  materiau ou a une source\r
-#---------------------------------------------------\r
-\r
-MESHGROUP     = OPER (nom = "MESHGROUP",\r
-                    op = None,\r
-                repetable = 'n',\r
-                    UIinfo= {"groupes":("Definition",)},\r
-            fr= u"attribution d'un matériau ou d'une source à un groupe du maillage", \r
-            ang = "mesh group association to material or source", \r
-                    sd_prod= grmaille,\r
-                    regles =(\r
-                             EXCLUS ('MATERIAL','SOURCE'),\r
-                           ),\r
-\r
-# ----------------------------------------------------------\r
-# le mot cle SIMP doit etre facultatif sinon la recuperation \r
-# des groupes de mailles sous SALOME ne fonctionne pas car \r
-# le concept ne peut pas etre nomme car non valide\r
-#-----------------------------------------------------------\r
-              MATERIAL =  SIMP (statut="f",\r
-                         typ=(material,),\r
-                                 ang="name of the linked material",\r
-                         fr =u"nom du matériau associé",\r
-                                ), \r
-              SOURCE =  SIMP (statut="f",\r
-                         typ=(source,),\r
-                                 ang="name of the linked source",\r
-                         fr =u"nom de la source associée",\r
-                                ), \r
-                      )\r
-\r
-\r
-#======================================================================\r
-# le fichier .PHYS contient 3 blocs et jusqu'a 3 niveaux de sous-blocs\r
-# \r
-#======================================================================\r
-# 1er bloc : bloc VERSION\r
-# ce bloc est volontairement cache dans l IHM \r
-#===================================================\r
-\r
-VERSION = PROC ( nom = "VERSION",\r
-                        op = None,\r
-                repetable = 'n',\r
-                        UIinfo= {"groupes":("CACHE",)},\r
-                        ang= "version block definition", \r
-\r
-#----------------------\r
-# Liste des parametres\r
-#----------------------\r
-        \r
-   NUM      = SIMP (statut="o",\r
-                    typ="I",\r
-            defaut=1, \r
-                    ang="version number of the physical model", \r
-                    into=( 1,),\r
-                   ),\r
-   FILETYPE = SIMP (statut="o",\r
-                    typ="TXM",\r
-            defaut="PHYS", \r
-                    ang="file type",\r
-                    into=( "PHYS",),\r
-                   ),\r
-\r
-) # Fin PROC VERSION\r
-\r
-#===================================================================\r
-# 2eme bloc : bloc MATERIALS\r
-#===================================================================\r
-# definition des matériaux utilisateurs \r
-# a partir des materiaux de reference ou de materiaux generiques\r
-#-------------------------------------------------------------------\r
-#\r
-MATERIAL = OPER (nom = "MATERIAL",\r
-                 op = None,\r
-                 repetable = 'n',\r
-                 ang= "material block definition", \r
-                 fr= u"définition d'un matériau", \r
-                 sd_prod= material,\r
-                 regles=EXCLUS('PERMITTIVITY','CONDUCTIVITY'),\r
-\r
-#---------------------------------------------------------------------\r
-# liste des matériaux de reference fournis par THEMIS et  des\r
-# materiaux generiques (les materiaux generiques peuvent etre utilises \r
-# si aucun materiau de reference  ne convient) \r
-#---------------------------------------------------------------------\r
-                 TYPE = SIMP(statut='o',\r
-                             typ='TXM',\r
-                             into=(\r
-#  matériaux génériques \r
-                                 "DIELECTRIC",\r
-                                 "CONDUCTOR",\r
-                                 "ZINSULATOR","ZSURFACIC",\r
-                                 "NILMAT","EM_ISOTROPIC","EM_ANISOTROPIC",\r
-                             ),\r
-                             ang = "generic materials list",\r
-                             fr  = u"liste des matériaux génériques",\r
-                            ),\r
-\r
-##############################################################################\r
-# Remarque generale a tous les materiaux : \r
-# pour conserver l'affichage scientifique le nombre derriere l'exposant doit\r
-# etre strictement superieur au nombre de decimales \r
-#\r
-\r
-##----------------------------------------------------------------------------------------------\r
-# Données de perméabilité, utilisée pour les diélectriques, conducteurs et impédances de surface\r
-#-----------------------------------------------------------------------------------------------\r
-  #HAS_PERMEABILITY = BLOC(condition="TYPE in ('DIELECTRIC','CONDUCTOR','ZSURFACIC')",\r
-\r
-#------------------------------------------------\r
-# sous bloc niveau 2 : PERMEABILITY\r
-#------------------------------------------------\r
-#\r
-  PERMEABILITY = FACT ( statut="f", \r
-                        ang ="Permeability properties",\r
-                        fr  =u"propriétés de perméabilité du matériau",\r
-                        HOMOGENEOUS = SIMP (statut="o",\r
-                                            typ="TXM",\r
-                                            defaut="TRUE",\r
-                                            into = ("TRUE","FALSE"),\r
-                                            ang = "the material is homogeneous or not",\r
-                                            fr  = u"le matériau est homogène ou non",\r
-                                           ),\r
-                        ISOTROPIC = SIMP (statut="o",\r
-                                          typ="TXM",\r
-                                          defaut="TRUE",\r
-                                          into = ("TRUE","FALSE"),\r
-                                          ang = "the material is isotropic or not",\r
-                                          fr  = u"le matériau est isotrope ou non",\r
-                                         ),\r
-                   HOMOGENEOUS_ISOTROPIC_PROPERTIES = BLOC (condition="HOMOGENEOUS=='TRUE' and ISOTROPIC=='TRUE'",\r
-                        LAW = SIMP (statut="o",\r
-                                    typ="TXM",\r
-                                    defaut="LINEAR",\r
-                                    into = ("LINEAR","NONLINEAR"),\r
-                                    ang = "harmonic or time-domain linear or nonlinear law only for homogeneous and isotropic materials",\r
-                                    fr  = u"loi linéaire (fréquentielle ou temporelle) ou non (homogène et isotrope seulement)",\r
-                                   ), \r
-                        VALUE = SIMP (statut="o",\r
-                                      typ="C", \r
-                                      defaut=('RI',1,0),\r
-                                      ang = "Relative linear permeability value, also used at first nonlinear iteration",\r
-                                      fr = u"Valeur de la perméabilité relative à l'air utilisée pour une loi linéaire ou pour la première itération non-linéaire",\r
-                                     ),\r
-                    NONLINEAR_LAW_PROPERTIES = BLOC (condition="LAW=='NONLINEAR'",\r
-                        NATURE = SIMP (statut="o",\r
-                                       typ="TXM",\r
-                                       defaut="MARROCCO",\r
-                                       into = ("SPLINE","MARROCCO","MARROCCO+SATURATION"),\r
-                                       ang = "nature law",\r
-                                       fr  = u"nature de la loi",\r
-                                      ),\r
-                     SPLINE_LAW_PROPERTIES = BLOC (condition="NATURE=='SPLINE'",\r
-                        FILENAME = SIMP (statut="o", \r
-                                         typ=("FichierNoAbs",'All Files (*)',), # l'existence du fichier n'est pas vérifiée\r
-                                         ang="data file name",\r
-                                         fr =u"nom du fichier contenant les mesures expérimentales B(H)",\r
-                                        ),\r
-                     ), # Fin BLOC SPLINE_PROPERTIES\r
-                     MARROCCO_LAW_PROPERTIES = BLOC (condition="NATURE in ('MARROCCO','MARROCCO+SATURATION')",\r
-                        ALPHA = SIMP (statut="o", \r
-                                      typ="R",\r
-                                      defaut=0,\r
-                                      val_min=0,\r
-                                      ang="alpha parameter",\r
-                                      fr =u"paramètre alpha de la loi de Marrocco" ,\r
-                                     ),\r
-                        TAU = SIMP (statut="o", \r
-                                    typ="R",\r
-                                    defaut=0,\r
-                                    val_min=0,\r
-                                    ang="tau parameter",\r
-                                    fr =u"paramètre tau de la loi de Marrocco" ,\r
-                                   ),\r
-                        C = SIMP (statut="o", \r
-                                  typ="R",\r
-                                  defaut=0,\r
-                                  val_min=0,\r
-                                  ang="c parameter",\r
-                                  fr =u"paramètre c de la loi de Marrocco" ,\r
-                                 ),\r
-                        EPSILON = SIMP (statut="o", \r
-                                        typ="R",\r
-                                        defaut=0,\r
-                                        val_min=0,\r
-                                        ang="epsilon parameter",\r
-                                        fr =u"paramètre epsilon de la loi de Marrocco" ,\r
-                                       ),\r
-                     ), # Fin BLOC MARROCCO_LAW_PROPERTIES\r
-                     SATURATION_LAW_PROPERTIES = BLOC (condition="NATURE=='MARROCCO+SATURATION'",\r
-                        BMAX = SIMP (statut="o", \r
-                                     typ="R",\r
-                                     defaut=0,\r
-                                     val_min=0,\r
-                                     ang="intersection B",\r
-                                     fr = u"valeur de B marquant la fin de la loi de Marrocco et le début du raccord à la loi de saturation",\r
-                                    ),\r
-                        HSAT = SIMP (statut="o", \r
-                                     typ="R",\r
-                                     defaut=0,\r
-                                     val_min=0,\r
-                                     ang="H value",\r
-                                     fr = u"valeur de H définissant la loi de saturation",\r
-                                    ),\r
-                        BSAT = SIMP (statut="o", \r
-                                     typ="R",\r
-                                     defaut=0,\r
-                                     val_min=0,\r
-                                     ang="B value",\r
-                                     fr = u"valeur de B définissant la loi de saturation",\r
-                                    ),\r
-                        JOIN = SIMP (statut="o", \r
-                                     typ="TXM",\r
-                                     defaut="SPLINE",\r
-                                     into= ("SPLINE","PARABOLIC","LINEAR"),\r
-                                     ang="type of join between laws",\r
-                                     fr =u"type de raccord entre la loi choisie et la loi de saturation" ,\r
-                                    ),\r
-                     ), # Fin BLOC SATURATION_LAW_PROPERTIES\r
-                        APPLIEDTO = SIMP (statut="o",    \r
-                                          typ="TXM",   \r
-                                          into=("B(H)&H(B)","B(H)","H(B)"),\r
-                                          defaut="B(H)&H(B)",\r
-                                          ang="join applied to",\r
-                                          fr =u"Le raccord tel que défini est appliqué à la courbe B(H) seulement, à la courbe H(B) seulement ou aux deux courbes à la fois. Dans les deux premiers cas, le raccord de la courbe H(B) est inversé numériquement à partir du raccord défini pour la courbe B(H), et vice-versa.",\r
-                                         ),\r
-                    ), # Fin BLOC NONLINEAR_LAW_PROPERTIES\r
-                   ), # Fin BLOC HOMOGENEOUS_ISOTROPIC_PROPERTIES\r
-             ), # fin FACT PERMEABILITY\r
-   #), # Fin BLOC HAS_PERMEABILITY\r
-\r
-##------------------------------------------------------------------\r
-# Données de permittivité, utilisée pour les diélectriques seulement\r
-#-------------------------------------------------------------------\r
-  #HAS_PERMITTIVITY = BLOC(condition="TYPE == 'DIELECTRIC'",\r
-\r
-#------------------------------------------------\r
-# sous bloc niveau 2 : PERMITTIVITY\r
-#------------------------------------------------\r
-  PERMITTIVITY = FACT ( statut="f", \r
-                        ang ="Permittivity properties",\r
-                        fr  = u"propriétés de permittivité du matériau",\r
-                        HOMOGENEOUS = SIMP (statut="o",\r
-                                            typ="TXM",\r
-                                            defaut="TRUE",\r
-                                            into = ("TRUE","FALSE"),\r
-                                            ang = "the material is homogeneous or not",\r
-                                            fr  = u"le matériau est homogène ou non",\r
-                                           ),\r
-                        ISOTROPIC = SIMP (statut="o",\r
-                                          typ="TXM",\r
-                                          defaut="TRUE",\r
-                                          into = ("TRUE","FALSE"),\r
-                                          ang = "the material is isotropic or not",\r
-                                          fr  = u"le matériau est isotrope ou non",\r
-                                         ),\r
-                       HOMOGENEOUS_ISOTROPIC_PROPERTIES = BLOC (condition="HOMOGENEOUS=='TRUE' and ISOTROPIC=='TRUE'",\r
-                        LAW = SIMP (statut="o",\r
-                                    typ="TXM",\r
-                                    defaut="LINEAR",\r
-                                    into = ("LINEAR",),\r
-                                    ang = "linear law",\r
-                                    fr  = u"loi linéaire",\r
-                                   ),\r
-                        VALUE = SIMP (statut="o",\r
-                                      typ="C", \r
-                                      defaut=('RI',1,0),\r
-                                      ang = "enter a complex relative value",\r
-                                      fr = u"saisir une valeur complexe relative",\r
-                                     ),\r
-                       ), # Fin BLOC HOMOGENEOUS_ISOTROPIC_PROPERTIES\r
-                      ), # fin FACT PERMITTIVITY\r
-\r
-   #), # Fin BLOC HAS_PERMITTIVITY\r
-\r
-##----------------------------------------------------------------------------------------------\r
-# Données de conductivité, utilisée pour les conducteurs et impédances de surface\r
-#-----------------------------------------------------------------------------------------------\r
-  #HAS_CONDUCTIVITY = BLOC(condition="TYPE in ('CONDUCTOR','ZSURFACIC')",\r
-#------------------------------------------------\r
-# sous bloc niveau 2 : CONDUCTIVITY\r
-#------------------------------------------------\r
-  CONDUCTIVITY = FACT ( statut="f", \r
-                        ang ="Permittivity properties",\r
-                        fr  = u"propriétés de permittivité du matériau",\r
-                        HOMOGENEOUS = SIMP (statut="o",\r
-                                            typ="TXM",\r
-                                            defaut="TRUE",\r
-                                            into = ("TRUE","FALSE"),\r
-                                            ang = "the material is homogeneous or not",\r
-                                            fr  = u"le matériau est homogène ou non",\r
-                                           ),\r
-                        ISOTROPIC = SIMP (statut="o",\r
-                                          typ="TXM",\r
-                                          defaut="TRUE",\r
-                                          into = ("TRUE","FALSE"),\r
-                                          ang = "the material is isotropic or not",\r
-                                          fr  = u"le matériau est isotrope ou non",\r
-                                         ),\r
-                       HOMOGENEOUS_ISOTROPIC_PROPERTIES = BLOC (condition="HOMOGENEOUS=='TRUE' and ISOTROPIC=='TRUE'",\r
-                        LAW = SIMP (statut="o",\r
-                                    typ="TXM",\r
-                                    defaut="LINEAR",\r
-                                    into = ("LINEAR",),\r
-                                    ang = "linear law",\r
-                                    fr  = u"loi linéaire",\r
-                                   ),\r
-                        VALUE = SIMP (statut="o",\r
-                                      typ="C", \r
-                                      defaut=('RI',1,0),\r
-                                      ang = "enter a complex relative value",\r
-                                      fr = u"saisir une valeur complexe relative",\r
-                                     ),\r
-                       ), # Fin BLOC HOMOGENEOUS_ISOTROPIC_PROPERTIES\r
-                      ), # fin FACT CONDUCTIVITY\r
-\r
-   #), # Fin BLOC HAS_CONDUCTICITY\r
-\r
-###################################################################################################\r
-#---------------------------------------------\r
-# sous bloc niveau 1  \r
-#---------------------------------------\r
-# matériau generique de type ZINSULATOR \r
-#---------------------------------------\r
-  \r
-# aucun parametre a saisir pour ce materiau\r
-\r
-\r
-###################################################################################################\r
-#---------------------------------------------\r
-# sous bloc niveau 1     \r
-#---------------------------------------------\r
-# matériau generique de type NILMAT (fictif)  \r
-#---------------------------------------------\r
-  \r
-# aucun parametre a saisir pour ce materiau\r
-\r
-\r
-###################################################################################################\r
-#----------------------------------------------------------\r
-# sous bloc niveau 1 : EM_ISOTROPIC_FILES   \r
-#-------------------------------------------------\r
-# matériau isotropique non homogene generique\r
-#-------------------------------------------------\r
-   EM_ISOTROPIC_properties=BLOC(condition="TYPE=='EM_ISOTROPIC'", \r
-               \r
-           CONDUCTIVITY_File = SIMP (statut="o", \r
-                                     typ=("FichierNoAbs",'MED Files (*.med)',),\r
-                                     ang="CONDUCTIVITY MED data file name",\r
-                                     fr = u"nom du fichier MED CONDUCTIVITY",\r
-                                    ),\r
-           PERMEABILITY_File = SIMP (statut="o", \r
-                                     typ=("FichierNoAbs",'MED Files (*.med)',),\r
-                                     ang="PERMEABILITY MED data file name",\r
-                                     fr = u"nom du fichier MED PERMEABILITY",\r
-                                    ),\r
-   ), # fin bloc EM_ISOTROPIC_properties\r
-\r
-    \r
-#---------------------------------------------------\r
-# matériau  anisotropique non homogene generique \r
-#---------------------------------------------------\r
-   EM_ANISOTROPIC_properties=BLOC(condition="TYPE=='EM_ANISOTROPIC'",\r
-                 \r
-           PERMEABILITY_File = SIMP (statut="o", \r
-                                     #typ=("Fichier",'.mater Files (*.mater)'), # le fichier doit exister dans le répertoire d'où on lancer Eficas si le fichier est défini par un nom relatif, ce qui est trop contraignant\r
-                                     #typ=("Fichier",'.mater Files (*.mater)','Sauvegarde'), # Le fichier peut ne pas exister, mais on propose de le sauvegarder et d'écraser un fichier existant : pas approprié\r
-                                     typ=("FichierNoAbs",'.mater Files (*.mater)'), # l'existence du fichier n'est pas vérifiée, mais on peut le sélectionner quand même via la navigateur. C'est suffisant et permet une bibliothèque de matériaux.\r
-                                     ang="PERMEABILITY .mater data file name",\r
-                                     fr ="nom du fichier .mater PERMEABILITY",\r
-                                    ),\r
-           CONDUCTIVITY_File = SIMP (statut="o", \r
-                                     typ=("FichierNoAbs",'.mater Files (*.mater)'),\r
-                                     ang="CONDUCTIVITY .mater data file name",\r
-                                     fr ="nom du fichier .mater CONDUCTIVITY",\r
-                                    ),\r
-   ), # fin bloc EM_ANISOTROPIC_properties\r
-\r
-\r
-) # fin OPER MATERIAL\r
-    \r
-#===================================================================\r
-# 3eme bloc : bloc SOURCES\r
-#====================================================================\r
-# definition des differentes sources qui seront dans le bloc SOURCES\r
-#-------------------------------------------------------------------\r
-#\r
-\r
-SOURCE = OPER ( nom = "SOURCE",\r
-                op = None,\r
-                repetable = 'n',\r
-                ang = "source definition", \r
-                fr = u"définition d'une source", \r
-                sd_prod = source,\r
-                regles = (UN_PARMI('STRANDED_INDUCTOR','HPORT','EPORT'), # choix d'un type de source\r
-                          UN_PARMI('WAVEFORM_CONSTANT','WAVEFORM_SINUS'), # choix d'une forme de source\r
-                         ),\r
-\r
-#----------------------------------------------------------\r
-# sous bloc niveau 1 : stranded inductor source \r
-##---------------------------------------------------------\r
-                STRANDED_INDUCTOR = FACT(statut='f',\r
-                                         ang="Stranded inductor source",\r
-                                         fr=u"source de type inducteur bobiné",\r
-                                         NTURNS = SIMP (statut="o",\r
-                                                        typ="I",\r
-                                                        defaut=1,\r
-                                                        ang="number of turns in the inductor",\r
-                                                        fr= u"nombre de tours dans l'inducteur bobiné",\r
-                                                       ),\r
-                                         TYPE = SIMP (statut="o",\r
-                                                      typ="TXM",\r
-                                                      defaut="CURRENT",\r
-                                                      into=("CURRENT",),\r
-                                                      fr= u"source de type courant",\r
-                                                      ang="current source type",\r
-                                                     ),\r
-                ), # FIN de FACT STRANDED_INDUCTOR\r
-                HPORT = FACT(statut='f',\r
-                             ang="Magnetic port source",\r
-                             fr=u"source de type port magnétique",\r
-                             TYPE = SIMP (statut="o",\r
-                                          typ="TXM",\r
-                                          into=("VOLTAGE","CURRENT"),\r
-                                          fr= u"source de type tension ou courant",\r
-                                          ang="voltage or current source type",\r
-                                         ),\r
-                ), # FIN de FACT HPORT\r
-                EPORT = FACT(statut='f',\r
-                             ang="Electric port source",\r
-                             fr=u"source de type port électrique",\r
-                             TYPE = SIMP (statut="o",\r
-                                          typ="TXM",\r
-                                          into=("VOLTAGE","CURRENT"),\r
-                                          fr= u"source de type tension ou courant",\r
-                                          ang="voltage or current source type",\r
-                                         ),\r
-                ), # FIN de FACT EPORT\r
-                WAVEFORM_CONSTANT = FACT(statut='f',\r
-                                         ang="constant source",\r
-                                         fr=u"source constante",\r
-                                         AMPLITUDE = SIMP (statut="o",\r
-                                                           typ="R", \r
-                                                           defaut=1,\r
-                                                           ang = "enter the source magnitude value, in A or V units",\r
-                                                           fr = u"saisir la valeur de l'amplitude de la source, en unités A ou V",\r
-                                                          ),\r
-                ), # FIN de FACT WAVEFORM_CONSTANT\r
-                WAVEFORM_SINUS = FACT(statut='f',\r
-                                      ang="sinus variation source",\r
-                                      fr=u"source variant avec une forme sinusoïdale, définie par son amplitude, sa fréquence et sa phase",\r
-                                      AMPLITUDE = SIMP (statut="o",\r
-                                                        typ="R", \r
-                                                        defaut=1,\r
-                                                        ang = "enter the source magnitude value, in A or V units",\r
-                                                        fr = u"saisir la valeur de l'amplitude de la source, en unités A ou V",\r
-                                                       ),\r
-                                      FREQUENCY = SIMP (statut="o",\r
-                                                        typ="R", \r
-                                                        defaut=50.0,\r
-                                                        ang = "enter the source frequency value, in Hz units",\r
-                                                        fr = u"saisir la valeur de la fréquence de la source, en Hz",\r
-                                                       ),\r
-                                      PHASE = SIMP (statut="o",\r
-                                                    typ="R", \r
-                                                    defaut=0.0,\r
-                                                    ang = "enter the source phase value, in degrees units",\r
-                                                    fr = u"saisir la valeur de la phase de la source, en degrés",\r
-                                                   ),\r
-                ), # FIN de FACT WAVEFORM_SINUS\r
-) # Fin OPER SOURCE\r
diff --git a/Carmel3D/Carmel3D_Cata_frequentiel_V1.py b/Carmel3D/Carmel3D_Cata_frequentiel_V1.py
deleted file mode 100644 (file)
index b70bb96..0000000
+++ /dev/null
@@ -1,903 +0,0 @@
-# -*- coding: utf-8 -*-
-# --------------------------------------------------
-# Copyright (C) 2007-2013   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-# --------------------------------------------------
-
-import os
-import sys
-from Accas import *
-import types
-from decimal import Decimal
-# repertoire ou sont stockés le catalogue carmel3d 
-# et les fichiers de donnees des materiaux de reference
-from prefs_CARMEL3D import repIni
-
-class Tuple:
-  def __init__(self,ntuple):
-    self.ntuple=ntuple
-
-  def __convert__(self,valeur):
-    if type(valeur) == types.StringType:
-      return None
-    if len(valeur) != self.ntuple:
-      return None
-    return valeur
-
-  def info(self):
-    return "Tuple de %s elements" % self.ntuple
-
-
-
-#print "catalogue carmel"
-#print "repIni = ", repIni
-
-# Version du catalogue
-VERSION_CATA = "Code_Carmel3D 2.4.0 for harmonic problems"
-# --------------------------------------------------
-# definition d une classe pour les materiaux
-# definition d une classe pour les sources
-# definition d une classe pour les groupes de mailles
-# --------------------------------------------------
-class material ( ASSD ) : pass
-class source   ( ASSD ) : pass
-class grmaille ( ASSD ) : pass
-class stranded_inductor_geometry ( ASSD ) : pass
-class macro_groupe ( ASSD ) : pass 
-
-#CONTEXT.debug = 1
-# --------------------------------------------------
-# déclaration du jeu de commandes : 1ere instruction du catalogue obligatoire 
-#---------------------------------------------------
-
-##=========================================================
-JdC = JDC_CATA ( code = 'CARMEL3D',
-                execmodul = None,
-                 regles =(
-                           AU_MOINS_UN ('PARAMETERS'),
-                           AU_PLUS_UN ('PARAMETERS'),
-                           AU_MOINS_UN ('SOLVEUR'),
-                           AU_PLUS_UN ('SOLVEUR'),
-                           AU_MOINS_UN ('POST_COMMANDS'), 
-                           AU_PLUS_UN ('POST_COMMANDS'), 
-                           AU_MOINS_UN ('MATERIAL','INCLUDE'),
-                           AU_MOINS_UN ('SOURCE','INCLUDE'),
-                           AU_MOINS_UN ('MESHGROUP'),
-                           ),
-                 ) # Fin JDC_CATA
-
-import opsCarmel
-
-#======================================================================
-# 1er bloc : bloc VERSION
-# ce bloc est volontairement cache dans l IHM 
-#===================================================
-
-VERSION = PROC ( nom = "VERSION",
-                        op = None,
-                        repetable = 'n',
-                        UIinfo= {"groupes":("CACHE",)},
-                        ang= "version block definition", 
-
-#----------------------
-# Liste des parametres
-#----------------------
-        
-   NUM      = SIMP (statut="o",
-                    typ="I",
-            defaut=1, 
-                    ang="version number of the physical model", 
-                    into=( 1,),
-                   ),
-   FILETYPE = SIMP (statut="o",
-                    typ="TXM",
-            defaut="PHYS", 
-                    ang="file type",
-                    into=( "PHYS",),
-                   ),
-                   
-) # Fin PROC VERSION
-
-PARAMETERS= PROC ( nom = "PARAMETERS",
-                 op = None,
-                 repetable = 'n',
-                 UIinfo = { "groupes" : ( "1) Parametres", ) },
-                 ang= "General parameters for this study", 
-                 fr= u"Paramètres généraux de l'étude", 
-#----------------------
-# Liste des parametres
-#----------------------                
-    RepCarmel=SIMP(typ='Repertoire', statut='o', 
-                                ang= "Code_Carmel3D executables directory",
-                                fr= u"Répertoire contenant les programmes de Code_Carmel3D",
-                                ),
-    Fichier_maillage = SIMP (statut="o", typ=("FichierNoAbs",'All Files (*)',), # l'existence du fichier n'est pas vérifiée
-                                             ang="Mesh file path (relative, aka file name, or absolute path).",
-                                             fr =u"Emplacement du fichier contenant le maillage (relatif, i.e., nom du fichier, ou absolu, i.e., chemin complet).",
-                                           ),
-    
-    Echelle_du_maillage = SIMP (statut='o',  typ="TXM",  defaut= "Millimetre",  into = ("Metre", "Millimetre"), 
-                                                 ang="Mesh geometry units.",
-                                                 fr =u"Unités géométriques du maillage.",
-                                                ), 
-    
-    Formulation=SIMP(statut='o', typ='TXM', into=("TOMEGA","APHI"), 
-                                                 ang="Problem formulation.",
-                                                 fr =u"Formulation du problème.",
-                                                ), 
-
-    FREQUENCY = SIMP (statut="o",
-                 typ="R",
-                 defaut=50.0, 
-                 ang = "enter the source frequency value, in Hz units",
-                 fr = u"saisir la valeur de la fréquence de la source, en Hz",
-                 val_min=0.0,
-                ),
-    Realiser_topologie_gendof = SIMP (statut='o',  typ="TXM", defaut="TRUE", into=("TRUE", "FALSE"),  
-                                                 ang="Build topology (.car file) using gendof.exe.",
-                                                 fr =u"Construction de la topologie (fichier .car) en éxécutant gendof.exe.",
-                                                ), 
-    Resoudre_probleme = SIMP (statut='o',  typ="TXM", defaut="TRUE", into=("TRUE", "FALSE"),
-                                                 ang="Solve the problem using fcarmel.exe.",
-                                                 fr =u"Résolution du problème en éxécutant fcarmel.exe.",
-                                                ), 
-
-    Realiser_post_traitement_aposteriori = SIMP (statut='o',  typ="TXM", defaut="TRUE", into=("TRUE", "FALSE"),
-                                                 ang="Make post-processing using postprocess.exe.",
-                                                 fr =u"Réalisation du post-traitement en éxécutant postprocess.exe.",
-                                                ), 
-) # Fin PROC PARAMETERS
-
-SOLVEUR = PROC ( nom ="SOLVEUR",
-          op=None,
-          repetable = 'n',
-          UIinfo= {"groupes":("1) Parametres",)},
-          ang= "Solver parameters for this study", 
-          fr= u"Paramètres liés au solveur de l'étude", 
-          
-          Type= SIMP (statut="o",
-                              typ="TXM",
-                              into=("Solveur_lineaire"), 
-                              defaut='Solveur_lineaire', 
-                              ang="Linear solver only for harmonic problems.",
-                              fr =u"Solveur linéaire seulement pour les problèmes fréquentiels.",
-                            ), 
-                                      
-            Solveur_lineaire=BLOC(condition="Type=='Solveur_lineaire'", 
-                                                  ang="This block contains whole linear solver properties.",
-                                                  fr =u"Ce bloc contient toutes les propriétés du solveur linéaire.",
-                    Methode_lineaire=SIMP(statut='o', typ='TXM', into=("Methode iterative BICGCR", "Methode directe MUMPS"), 
-                                                          ang="Algorithm used for this linear solver.",
-                                                          fr =u"Méthode (algorithme) utilisée par ce solveur linéaire.",
-                                                        ), 
-                                   
-                    Parametres_methode_iterative_BICGCR=BLOC(condition="Methode_lineaire=='Methode iterative BICGCR'", 
-                                                                                              ang="This block contains whole BICGCR algorithm properties used for the linear solver.",
-                                                                                              fr =u"Ce bloc contient toutes les propriétés de la méthode BICGCR utilisée par le solveur linéaire.",
-                              Precision=SIMP(statut='o', typ='R', defaut=1e-9,
-                                                      ang="Accuracy on linear computations.",
-                                                      fr =u"Précision du calcul linéaire.",
-                                                      ), 
-                              Nombre_iterations_max=SIMP(statut='o', typ='I',defaut=10000,  
-                                                                              ang="Maximal number of iterations.",
-                                                                              fr =u"Nombre maximal d'itérations.",
-                                                                              ), 
-                              Preconditionneur=SIMP(statut='f', typ='TXM',  into=("Jacobi"), defaut='Jacobi', 
-                                                                  ang="Preconditioner choice. Jacobi only.",
-                                                                  fr =u"Choix du préconditioneur. Jacobi disponible seulement.",
-                                                                    ), 
-                              ), 
-                                
-                    Parametres_methode_directe_MUMPS=BLOC(condition="Methode_lineaire=='Methode directe MUMPS'",
-                                                                                              ang="This block contains whole MUMPS properties used for the linear solver.",
-                                                                                              fr =u"Ce bloc contient toutes les propriétés de la méthode MUMPS utilisée par le solveur linéaire.",
-                              Type_de_matrice=SIMP(statut='o', typ='I', defaut=2,
-                                                                  ang="Matrix type (symetry). 2: symetric. Please refer to MUMPS documentation.",
-                                                                  fr =u"Type de matrice (symétrie). Choisir 2 pour une matrice symétrique. Expliqué dans la documentation MUMPS.",
-                                                                   ), 
-                              ICNTL_Control_Parameters=SIMP(statut='o', typ='I', defaut=7,  
-                                                                  ang="ICNTL control parameter. Please refer to MUMPS documentation.",
-                                                                  fr =u"Paramètre de contrôle ICNTL. Expliqué dans la documentation MUMPS.",
-                                                                   ), 
-                              CNTL_Control_Parameters=SIMP(statut='o', typ='I', defaut=5,  
-                                                                  ang="CNTL control parameter. Please refer to MUMPS documentation.",
-                                                                  fr =u"Paramètre de contrôle CNTL. Expliqué dans la documentation MUMPS.",
-                                                                   ), 
-                              ), 
-                ), 
-    )
-
-POST_COMMANDS = PROC ( nom = "POST_COMMANDS",
-                                                op = None,
-                                                repetable = 'n',
-                                                UIinfo = { "groupes" : ( "1) Parametres", ) },
-                                                ang= "post-processing commands .cmd or .post file", 
-                                                fr= u"fichiers .cmd ou .post de commandes de post-traitement", 
-    # Sous-parties, moins indentées pour améliorer la lisibilité
-    # Grandeurs globales
-    GLOBAL = FACT ( statut="f", 
-                                ang ="Post-processing of global quantities",
-                                fr  =u"Post-traitement des grandeurs globales",
-                                ), 
-    # Carte de tous les champs possibles
-    VISU = FACT ( statut="f", 
-                            ang ="Post-processing of field maps",
-                            fr  =u"Post-traitement des cartes de champ",
-                            VISU_Format=SIMP(statut='o', typ='TXM', into=("MED", "VTK"), defaut="MED"), 
-                            VISU_Type=SIMP(statut='o', typ='TXM', into=("ELEMENT", "NOEUD"), defaut="ELEMENT"), 
-                         ), 
-    # Ligne de coupe
-    CUTLINE = FACT ( statut="f", 
-                            ang = "Post-processing of one cutline",
-                            fr  = u"Post-traitement d'une ligne de coupe",
-                            first_point = SIMP(statut='o', 
-                            typ = Tuple(3),validators = VerifTypeTuple(('R','R','R')),
-                            ang="First point of the cutline (cartesian coordinates).", 
-                            fr=u"Point de départ (premier point) de la ligne de coupe (coordonnées cartésiennes).",
-                                                             ), 
-
-                            last_point = SIMP(statut='o', typ='R', min=3, max=3, 
-                                                              ang="Last point of the cutline (cartesian coordinates).", 
-                                                              fr=u"Point d'arrivée (dernier point) de la ligne de coupe (coordonnées cartésiennes)."
-                                                             ), 
-                            number_of_points = SIMP(statut='o', typ='I', 
-                                                              ang="Number of points of the cutline.", 
-                                                              fr=u"Nombre de points de la ligne de coupe."
-                                                             ), 
-                            name = SIMP(statut='o', typ='TXM', 
-                                                              ang="Name of the cutline, used in the output filename.", 
-                                                              fr=u"Nom de la ligne de coupe, utilisé dans le nom du fichier de sortie."
-                                                             ), 
-                            field = SIMP(statut='o', typ='TXM', into=("H", "B", "J", "E"),  
-                                                              ang="Field on which the cutline is applied.", 
-                                                              fr=u"Champ pour lequel la ligne de coupe est définie."
-                                                             ), 
-                         ), 
-    # Plan de coupe
-    CUTPLANE = FACT ( statut="f", 
-                            ang = "Post-processing of one cutplane",
-                            fr  = u"Post-traitement d'un plan de coupe",
-                            normal_vector = SIMP(statut='o', typ='TXM', into=("Ox", "Oy", "Oz"),  
-                                                              ang="Cutplane normal vector, i.e., perpendicular axis, 3 possible cartesian values: Ox, Oy, Oz.", 
-                                                              fr=u"Vecteur normal au plan de coupe, i.e., son axe perpendiculaire, parmi les 3 valeurs cartésiennes Ox, Oy et Oz."
-                                                             ), 
-                            plane_position = SIMP(statut='o', typ='R', 
-                                                              ang="Cutplane position, i.e., its coordinate along the normal vector axis.", 
-                                                              fr=u"Position du plan de coupe, i.e., coordonnée le long de l'axe de vecteur normal."
-                                                             ), 
-                            number_of_points = SIMP(statut='o', typ='I', min=2, max=2,  
-                                                              ang="Number of points on the cutplane, which define a cartesian grid along its canonical directions, e.g., Ox and Oy if plane normal to Oz.", 
-                                                              fr=u"Nombre de points sur le plan de coupe dans les deux directions (grille cartésienne), e.g., Ox et Oy si le plan est normal à Oz."
-                                                             ), 
-                            name = SIMP(statut='o', typ='TXM', 
-                                                              ang="Name of the cutplane, used in the output filename.", 
-                                                              fr=u"Nom du plan de coupe, utilisé dans le nom du fichier de sortie."
-                                                             ), 
-                            field = SIMP(statut='o', typ='TXM', into=("H", "B", "J", "E"),  
-                                                              ang="Field on which the cutplane is applied.", 
-                                                              fr=u"Champ pour lequel le plan de coupe est défini."
-                                                             ), 
-                         ), 
-            
-) # Fin PROC POST_COMMANDS
-
-
-#======================================================================
-# le fichier .PHYS contient 3 blocs et jusqu'a 3 niveaux de sous-blocs
-# 
-#======================================================================
-
-#===================================================================
-# 2eme bloc : bloc MATERIALS
-#===================================================================
-# definition des matériaux utilisateurs 
-# a partir des materiaux de reference ou de materiaux generiques
-#-------------------------------------------------------------------
-
-MATERIAL = OPER (nom = "MATERIAL",
-                 op = None,
-                 repetable = 'n',
-                 UIinfo = { "groupes" : ( "2) Proprietes", ) },
-                 ang= "real material block definition", 
-                 fr= u"définition d'un matériau réel", 
-                 sd_prod= material,
- #                regles=EXCLUS('PERMITTIVITY','CONDUCTIVITY'),
-
-#---------------------------------------------------------------------
-# liste des matériaux de reference fournis par THEMIS et  des
-# materiaux generiques (les materiaux generiques peuvent etre utilises 
-# si aucun materiau de reference  ne convient) 
-#---------------------------------------------------------------------
-                 TYPE = SIMP(statut='o',
-                             typ='TXM',
-                             into=(
-#  matériaux génériques 
-                                 "DIELECTRIC",
-                                 "CONDUCTOR",
-                                  "ZINSULATOR","ZSURFACIC",
-                                 "NILMAT","EM_ISOTROPIC","EM_ANISOTROPIC",
-                             ),
-                             ang = "generic materials list",
-                             fr  = u"liste des matériaux génériques",
-                            ),
-
-##############################################################################
-# Remarque generale a tous les materiaux : 
-# pour conserver l'affichage scientifique le nombre derriere l'exposant doit
-# etre strictement superieur au nombre de decimales 
-#
-
-##----------------------------------------------------------------------------------------------
-# Données de perméabilité, utilisée pour les diélectriques, conducteurs et impédances de surface
-#-----------------------------------------------------------------------------------------------
-  #HAS_PERMEABILITY = BLOC(condition="TYPE in ('DIELECTRIC','CONDUCTOR','ZSURFACIC')",
-
-#------------------------------------------------
-# sous bloc niveau 2 : PERMEABILITY
-#------------------------------------------------
-#
- PERMEABILITY_properties = BLOC (condition="TYPE=='DIELECTRIC' or TYPE=='CONDUCTOR'", 
-  PERMEABILITY = FACT ( statut="o", 
-                        ang ="Permeability properties",
-                        fr  =u"propriétés de perméabilité du matériau",
-                        HOMOGENEOUS = SIMP (statut="o",
-                                            typ="TXM",
-                                            defaut="TRUE",
-                                            into = ("TRUE","FALSE"),
-                                            ang = "the material is homogeneous or not",
-                                            fr  = u"le matériau est homogène ou non",
-                                           ),
-                        ISOTROPIC = SIMP (statut="o",
-                                          typ="TXM",
-                                          defaut="TRUE",
-                                          into = ("TRUE","FALSE"),
-                                          ang = "the material is isotropic or not",
-                                          fr  = u"le matériau est isotrope ou non",
-                                         ),
-                   HOMOGENEOUS_ISOTROPIC_PROPERTIES = BLOC (condition="HOMOGENEOUS=='TRUE' and ISOTROPIC=='TRUE'",
-                        LAW = SIMP (statut="o",
-                                    typ="TXM",
-                                    defaut="LINEAR",
-                                    into = ("LINEAR","NONLINEAR"),
-                                    ang = "harmonic or time-domain linear or nonlinear law only for homogeneous and isotropic materials",
-                                    fr  = u"loi linéaire (fréquentielle ou temporelle) ou non (homogène et isotrope seulement)",
-                                   ), 
-                        VALUE = SIMP (statut="o",
-                                      typ="C", 
-                                      defaut=1,
-                                      ang = "Relative linear permeability value, also used at first nonlinear iteration",
-                                      fr = u"Valeur de la perméabilité relative à l'air utilisée pour une loi linéaire ou pour la première itération non-linéaire",
-                                     ),
-
-                    NONLINEAR_LAW_PROPERTIES = BLOC (condition="LAW=='NONLINEAR'",
-                        NATURE = SIMP (statut="o",
-                                       typ="TXM",
-                                       defaut="MARROCCO",
-                                       into = ("SPLINE","MARROCCO","MARROCCO+SATURATION"),
-                                       ang = "nature law",
-                                       fr  = u"nature de la loi",
-                                      ),
-                     SPLINE_LAW_PROPERTIES = BLOC (condition="NATURE=='SPLINE'",
-                        FILENAME = SIMP (statut="o", 
-                                         typ=("FichierNoAbs",'All Files (*)',), # l'existence du fichier n'est pas vérifiée
-                                         ang="data file name",
-                                         fr =u"nom du fichier contenant les mesures expérimentales B(H)",
-                                        ),
-                     ), # Fin BLOC SPLINE_PROPERTIES
-                     MARROCCO_LAW_PROPERTIES = BLOC (condition="NATURE in ('MARROCCO','MARROCCO+SATURATION')",
-                        ALPHA = SIMP (statut="o", 
-                                      typ="R",
-                                      defaut=0,
-                                      val_min=0,
-                                      ang="alpha parameter",
-                                      fr =u"paramètre alpha de la loi de Marrocco" ,
-                                     ),
-                        TAU = SIMP (statut="o", 
-                                    typ="R",
-                                    defaut=0,
-                                    val_min=0,
-                                    ang="tau parameter",
-                                    fr =u"paramètre tau de la loi de Marrocco" ,
-                                   ),
-                        C = SIMP (statut="o", 
-                                  typ="R",
-                                  defaut=0,
-                                  val_min=0,
-                                  ang="c parameter",
-                                  fr =u"paramètre c de la loi de Marrocco" ,
-                                 ),
-                        EPSILON = SIMP (statut="o", 
-                                        typ="R",
-                                        defaut=0,
-                                        val_min=0,
-                                        ang="epsilon parameter",
-                                        fr =u"paramètre epsilon de la loi de Marrocco" ,
-                                       ),
-                     ), # Fin BLOC MARROCCO_LAW_PROPERTIES
-                     SATURATION_LAW_PROPERTIES = BLOC (condition="NATURE=='MARROCCO+SATURATION'",
-                        BMAX = SIMP (statut="o", 
-                                     typ="R",
-                                     defaut=0,
-                                     val_min=0,
-                                     ang="intersection B",
-                                     fr = u"valeur de B marquant la fin de la loi de Marrocco et le début du raccord à la loi de saturation",
-                                    ),
-                        HSAT = SIMP (statut="o", 
-                                     typ="R",
-                                     defaut=0,
-                                     val_min=0,
-                                     ang="H value",
-                                     fr = u"valeur de H définissant la loi de saturation",
-                                    ),
-                        BSAT = SIMP (statut="o", 
-                                     typ="R",
-                                     defaut=0,
-                                     val_min=0,
-                                     ang="B value",
-                                     fr = u"valeur de B définissant la loi de saturation",
-                                    ),
-                        JOIN = SIMP (statut="o", 
-                                     typ="TXM",
-                                     defaut="SPLINE",
-                                     into= ("SPLINE","PARABOLIC","LINEAR"),
-                                     ang="type of join between laws",
-                                     fr =u"type de raccord entre la loi choisie et la loi de saturation" ,
-                                    ),
-                     ), # Fin BLOC SATURATION_LAW_PROPERTIES
-                        APPLIEDTO = SIMP (statut="o",    
-                                          typ="TXM",   
-                                          into=("B(H)&H(B)","B(H)","H(B)"),
-                                          defaut="B(H)&H(B)",
-                                          ang="join applied to",
-                                          fr =u"Le raccord tel que défini est appliqué à la courbe B(H) seulement, à la courbe H(B) seulement ou aux deux courbes à la fois. Dans les deux premiers cas, le raccord de la courbe H(B) est inversé numériquement à partir du raccord défini pour la courbe B(H), et vice-versa.",
-                                         ),
-                    ), # Fin BLOC NONLINEAR_LAW_PROPERTIES
-                   ), # Fin BLOC HOMOGENEOUS_ISOTROPIC_PROPERTIES
-             ), 
-    ),# fin FACT PERMEABILITY
-
-
-##----------------------------------------------------------------------------------------------
-# Données de conductivité, utilisée pour les conducteurs et impédances de surface
-#-----------------------------------------------------------------------------------------------
-  #HAS_CONDUCTIVITY = BLOC(condition="TYPE in ('CONDUCTOR','ZSURFACIC')",
-#------------------------------------------------
-# sous bloc niveau 2 : CONDUCTIVITY
-#------------------------------------------------
-  
- CONDUCTIVITY_properties= BLOC (condition="TYPE=='CONDUCTOR'", 
-  CONDUCTIVITY = FACT ( statut="o", 
-                        ang ="Permittivity properties",
-                        fr  = u"propriétés de permittivité du matériau",
-                        HOMOGENEOUS = SIMP (statut="o",
-                                            typ="TXM",
-                                            defaut="TRUE",
-                                            into = ("TRUE","FALSE"),
-                                            ang = "the material is homogeneous or not",
-                                            fr  = u"le matériau est homogène ou non",
-                                           ),
-                        ISOTROPIC = SIMP (statut="o",
-                                          typ="TXM",
-                                          defaut="TRUE",
-                                          into = ("TRUE","FALSE"),
-                                          ang = "the material is isotropic or not",
-                                          fr  = u"le matériau est isotrope ou non",
-                                         ),
-                       HOMOGENEOUS_ISOTROPIC_PROPERTIES = BLOC (condition="HOMOGENEOUS=='TRUE' and ISOTROPIC=='TRUE'",
-                        LAW = SIMP (statut="o",
-                                    typ="TXM",
-                                    defaut="LINEAR",
-                                    into = ("LINEAR",),
-                                    ang = "linear law",
-                                    fr  = u"loi linéaire",
-                                   ),
-                        VALUE = SIMP (statut="o",
-                                      typ="C", 
-                                      defaut=1, 
-                                      ang = "enter a complex relative value",
-                                      fr = u"saisir une valeur complexe relative",
-                                     ),
-                       ), # Fin BLOC HOMOGENEOUS_ISOTROPIC_PROPERTIES
-                      ), 
-
-             ), 
-
-            
-        # fin FACT CONDUCTIVITY
-
-   
-
-###################################################################################################
-#---------------------------------------------
-# sous bloc niveau 1  
-#---------------------------------------
-# matériau generique de type ZINSULATOR 
-#---------------------------------------
-  
-# aucun parametre a saisir pour ce materiau
-
-
-###################################################################################################
-#---------------------------------------------
-# sous bloc niveau 1     
-#---------------------------------------------
-# matériau generique de type NILMAT (fictif)  
-#---------------------------------------------
-  
-# aucun parametre a saisir pour ce materiau
-
-
-###################################################################################################
-#----------------------------------------------------------
-# sous bloc niveau 1 : EM_ISOTROPIC_FILES   
-#-------------------------------------------------
-# matériau isotropique non homogene generique
-#-------------------------------------------------
-    EM_ISOTROPIC_properties=BLOC(condition="TYPE=='EM_ISOTROPIC'", 
-                 regles =(
-                           AU_MOINS_UN ('CONDUCTIVITY_File','PERMEABILITY_File'),
-                           ),
-           CONDUCTIVITY_File = SIMP (statut="f", 
-                                     typ=("FichierNoAbs",'MED Files (*.med)',),
-                                     ang="CONDUCTIVITY MED data file name",
-                                     fr = u"nom du fichier MED CONDUCTIVITY",
-                                    ),
-           PERMEABILITY_File = SIMP (statut="f", 
-                                     typ=("FichierNoAbs",'MED Files (*.med)',),
-                                     ang="PERMEABILITY MED data file name",
-                                     fr = u"nom du fichier MED PERMEABILITY",
-                                    ),
-   ), # fin bloc EM_ISOTROPIC_properties
-
-    
-#---------------------------------------------------
-# matériau  anisotropique non homogene generique 
-#---------------------------------------------------
-   EM_ANISOTROPIC_properties=BLOC(condition="TYPE=='EM_ANISOTROPIC'",
-                 regles =(
-                           AU_MOINS_UN ('CONDUCTIVITY_File','PERMEABILITY_File'),
-                           ),                 
-           PERMEABILITY_File = SIMP (statut="f", 
-                                     #typ=("Fichier",'.mater Files (*.mater)'), # le fichier doit exister dans le répertoire d'où on lancer Eficas si le fichier est défini par un nom relatif, ce qui est trop contraignant
-                                     #typ=("Fichier",'.mater Files (*.mater)','Sauvegarde'), # Le fichier peut ne pas exister, mais on propose de le sauvegarder et d'écraser un fichier existant : pas approprié
-                                     typ=("FichierNoAbs",'.mater Files (*.mater)'), # l'existence du fichier n'est pas vérifiée, mais on peut le sélectionner quand même via la navigateur. C'est suffisant et permet une bibliothèque de matériaux.
-                                     ang="PERMEABILITY .mater data file name",
-                                     fr ="nom du fichier .mater PERMEABILITY",
-                                    ),
-           CONDUCTIVITY_File = SIMP (statut="f", 
-                                     typ=("FichierNoAbs",'.mater Files (*.mater)'),
-                                     ang="CONDUCTIVITY .mater data file name",
-                                     fr ="nom du fichier .mater CONDUCTIVITY",
-                                    ),
-   ), # fin bloc EM_ANISOTROPIC_properties
-
-
-#------------------------------------------------------------------
-# Données de permittivité, utilisée pour les diélectriques seulement
-#-------------------------------------------------------------------
-  #HAS_PERMITTIVITY = BLOC(condition="TYPE == 'DIELECTRIC'",
-
-#------------------------------------------------
-# sous bloc niveau 2 : PERMITTIVITY
-#------------------------------------------------
-
- Utiliser_la_permittivite = SIMP (statut='o', 
-                                 typ='TXM',
-                                 into = ("OUI","NON"),
-                                 defaut="NON", 
-                                ang ="Optionnaly use permittivity or not (default)",
-                                fr  = u"Utilisation optionnelle de la permittivité du matériau. Pas d'utilisation par défaut.",
-                                ), 
- PERMITTIVITY_properties = BLOC (condition="Utiliser_la_permittivite=='OUI'", 
-  PERMITTIVITY = FACT ( statut="o", 
-                        ang ="Permittivity properties",
-                        fr  = u"propriétés de permittivité du matériau",
-                        HOMOGENEOUS = SIMP (statut="o",
-                                            typ="TXM",
-                                            defaut="TRUE",
-                                            into = ("TRUE","FALSE"),
-                                            ang = "the material is homogeneous or not",
-                                            fr  = u"le matériau est homogène ou non",
-                                           ),
-                        ISOTROPIC = SIMP (statut="o",
-                                          typ="TXM",
-                                          defaut="TRUE",
-                                          into = ("TRUE","FALSE"),
-                                          ang = "the material is isotropic or not",
-                                          fr  = u"le matériau est isotrope ou non",
-                                         ),
-                       HOMOGENEOUS_ISOTROPIC_PROPERTIES = BLOC (condition="HOMOGENEOUS=='TRUE' and ISOTROPIC=='TRUE'",
-                        LAW = SIMP (statut="o",
-                                    typ="TXM",
-                                    defaut="LINEAR",
-                                    into = ("LINEAR",),
-                                    ang = "linear law",
-                                    fr  = u"loi linéaire",
-                                   ),
-                        VALUE = SIMP (statut="o",
-                                      typ="C", 
-                                      defaut=1,
-                                      ang = "enter a complex relative value",
-                                      fr = u"saisir une valeur complexe relative",
-                                     ),
-                       ), # Fin BLOC HOMOGENEOUS_ISOTROPIC_PROPERTIES
-                    ), 
-                ),# fin FACT PERMITTIVITY
-
-        )  # fin OPER MATERIAL
-    
-    
-
-##############################################################################
-# Remarque generale a tous les materiaux : 
-# pour conserver l'affichage scientifique le nombre derriere l'exposant doit
-# etre strictement superieur au nombre de decimales 
-
-
-#===================================================================
-# 3eme bloc : bloc SOURCES
-#====================================================================
-# definition des differentes sources qui seront dans le bloc SOURCES
-#-------------------------------------------------------------------
-
-
-
-SOURCE = OPER ( nom = "SOURCE",
-                op = None,
-                repetable = 'n',
-                UIinfo = { "groupes" : ( "2) Proprietes", ) },
-                ang = "source definition", 
-                fr = u"définition d'une source", 
-                sd_prod = source,
-#                regles = (UN_PARMI('STRANDED_INDUCTOR','HPORT','EPORT'), # choix d'un type de source
-#                          UN_PARMI('WAVEFORM_CONSTANT','WAVEFORM_SINUS'), # choix d'une forme de source
-                        
-
-#----------------------------------------------------------
-# sous bloc niveau 1 : stranded inductor source 
-##---------------------------------------------------------
-        Type=SIMP(statut='o', 
-                                typ='TXM', 
-                                into=("STRANDED_INDUCTOR", "HPORT", "EPORT"), 
-                                ang = "Source type", 
-                                fr = u"Type de source", 
-                                ), 
-
-            STRANDED_INDUCTOR_properties = BLOC (condition="Type=='STRANDED_INDUCTOR'", 
-                STRANDED_INDUCTOR = FACT(statut='o',
-                                         ang="Stranded inductor source",
-                                         fr=u"source de type inducteur bobiné",
-                                         NTURNS = SIMP (statut="o",
-                                                        typ="I",
-                                                        defaut=1,
-                                                        ang="number of turns in the inductor",
-                                                        fr= u"nombre de tours dans l'inducteur bobiné",
-                                                       ),
-                                         TYPE = SIMP (statut="o",
-                                                      typ="TXM",
-                                                      defaut="CURRENT",
-                                                      into=("CURRENT",),
-                                                      fr= u"source de type courant",
-                                                      ang="current source type",
-                                                     ),
-                                ), 
-            ),# FIN de FACT STRANDED_INDUCTOR
-         HPORT_properties = BLOC (condition="Type=='HPORT'",
-                HPORT = FACT(statut='o',
-                             ang="Magnetic port source",
-                             fr=u"source de type port magnétique",
-                             TYPE = SIMP (statut="o",
-                                          typ="TXM",
-                                          into=("VOLTAGE","CURRENT"),
-                                          fr= u"source de type tension ou courant",
-                                          ang="voltage or current source type",
-                                         ),
-                ), 
-            ),# FIN de FACT HPORT
-         EPORT_properties = BLOC (condition="Type=='EPORT'",
-                EPORT = FACT(statut='o',
-                             ang="Electric port source",
-                             fr=u"source de type port électrique",
-                             TYPE = SIMP (statut="o",
-                                          typ="TXM",
-                                          into=("VOLTAGE","CURRENT"),
-                                          fr= u"source de type tension ou courant",
-                                          ang="voltage or current source type",
-                                         ),
-                ), 
-            ),# FIN de FACT EPORT
-            
-            Signal=SIMP(statut='o', 
-                                typ='TXM', 
-                                into=("WAVEFORM_CONSTANT", "WAVEFORM_SINUS"), 
-                                ang = "Signal type, i.e., source evolution shape", 
-                                fr = u"Type de signal, i.e., forme de la source", 
-                                ), 
-           WAVEFORM_CONSTANT_properties = BLOC (condition="Signal=='WAVEFORM_CONSTANT'", 
-                WAVEFORM_CONSTANT = FACT(statut='o',
-                                         ang="constant source",
-                                         fr=u"source constante",
-                                         AMPLITUDE = SIMP (statut="o",
-                                                           typ="R", 
-                                                           defaut=1,
-                                                           ang = "enter the source magnitude value, in A or V units",
-                                                           fr = u"saisir la valeur de l'amplitude de la source, en unités A ou V",
-                                                          ),
-                ),
-            ),# FIN de FACT WAVEFORM_CONSTANT
-            
-            WAVEFORM_SINUS_properties = BLOC (condition="Signal=='WAVEFORM_SINUS'", 
-                WAVEFORM_SINUS = FACT(statut='o',
-                                      ang="sinus variation source",
-                                      fr=u"source variant avec une forme sinusoïdale, définie par son amplitude, sa fréquence et sa phase",
-                                      AMPLITUDE = SIMP (statut="o",
-                                                        typ="R", 
-                                                        defaut=1,
-                                                        ang = "enter the source magnitude value, in A or V units",
-                                                        fr = u"saisir la valeur de l'amplitude de la source, en unités A ou V",
-                                                       ),
-                                      FREQUENCY = SIMP (statut="o",
-                                                        typ="R", 
-                                                        defaut=0.0,
-                                                        ang = "enter the source frequency value, in Hz units",
-                                                        fr = u"saisir la valeur de la fréquence de la source, en Hz",
-                                                       ),
-                                      PHASE = SIMP (statut="o",
-                                                    typ="R", 
-                                                    defaut=0.0,
-                                                    ang = "enter the source phase value, in degrees units",
-                                                    fr = u"saisir la valeur de la phase de la source, en degrés",
-                                                   ),
-                ), 
-            ),# FIN de FACT WAVEFORM_SINUS
-
-       
-)# Fin OPER SOURCE
-
-
-STRANDED_INDUCTOR_GEOMETRY=OPER(nom="STRANDED_INDUCTOR_GEOMETRY",
-            op=None,
-            repetable = 'n',
-            sd_prod=stranded_inductor_geometry,
-            UIinfo = { "groupes" : ( "2) Proprietes", ) },
-            ang = "Geometry properties (shape, direction, etc.) for this stranded inductor",
-            fr = u"Propriétés géométriques de cet inducteur bobiné, e.g., forme, direction, sens",
-            
-            Forme=SIMP(statut='o', typ="TXM", into=("Droit", "Circulaire"), 
-                                ang = "Stranded inductor shape. Straight or circular.",
-                                fr = u"Forme de l'inducteur bobiné (complet ou morceau) : droit ou circulaire.",
-                                ), 
-            Propriete= BLOC (condition="Forme=='Circulaire'",
-                    Centre=SIMP(statut='o',typ='R',min=3,max=3,
-                                        ang = "Circular stranded inductor rotation center (cartesian coordinates).",
-                                        fr = u"Centre de rotation, en coordonnées cartésiennes, de l'inducteur bobiné (complet ou morceau) circulaire.",
-                                        ),  
-                    ),               
-            Direction=SIMP(statut='o',typ='R',min=3,max=3,
-                                        ang = "Stranded inductor direction (or rotation) axis for the straight (circular) inductor (cartesian coordinates).",
-                                        fr = u"Axe indiquant la direction de l'inducteur bobiné droit, ou l'axe de rotation (support : Centre) de l'inducteur circulaire, en coordonnées cartésiennes.",
-                                        ),  
-            Section=SIMP(statut='o', typ='R',
-                                        ang = "Stranded inductor section (m^2).",
-                                        fr = u"Section de l'inducteur bobiné, en m^2.",
-                                        ),  
-)              
-
-#=========================================================
-# création d'une macro pour traiter les INCLUDE
-#
-#----------------------------------------------------------
-
-INCLUDE = MACRO ( nom = "INCLUDE",
-                 op = None,
-                 UIinfo = { "groupes" : ( "3) Bibliotheque", ) },
-                 sd_prod = opsCarmel.INCLUDE,
-                 op_init = opsCarmel.INCLUDE_context,
-                 fichier_ini = 1,
-                ang = "Used in order to add external material, source, etc. libraries to the study.",
-                fr = u"Permet d'utiliser des bibliothèques de matériaux, sources, etc., dans l'étude.",
-   FileName = SIMP ( statut = "o",
-                    typ = ('Fichier', 'comm Files (*.comm);;All Files (*)',),
-                     fr = u"Emplacement du fichier (chemin absolu ou relatif) contenant la bibliothèque des matériaux, etc.",
-                    ang = "material library file (full or relative path)",
-                     ),
-  
- ) # Fin MACRO 
-
-MESHGROUP  = OPER (nom = "MESHGROUP",
-                op = None,
-                repetable = 'n',
-                UIinfo= {"groupes":("4) Maillage",)},
-                fr= u"attribution d'un matériau ou d'une source à un groupe du maillage", 
-                ang = "mesh group association to material or source", 
-                sd_prod= grmaille,
-                regles =(
-                         EXCLUS ('MATERIAL','SOURCE'),
-                           ),
-
-# ----------------------------------------------------------
-# le mot cle SIMP doit etre facultatif sinon la recuperation 
-# des groupes de mailles sous SALOME ne fonctionne pas car 
-# le concept ne peut pas etre nomme car non valide
-#-----------------------------------------------------------
-              Domaine = SIMP (statut="f", 
-                        typ=(grmaille, 'TXM'), 
-                        defaut="default", 
-                        ang="Domain used with stranded inductors or topological holes.",
-                        fr =u"Domaine utilisé par les inducteurs bobinés ou les trous topologiques.",
-                        ), 
-
-              MATERIAL =  SIMP (statut="f",
-                        typ=(material),
-                        ang="name of the linked real or imaginary material",
-                        fr =u"nom du matériau réel ou imaginaire associé",
-                                ), 
-              SOURCE =  SIMP (statut="f",
-                        typ=(source,),
-                        ang="name of the linked source",
-                        fr =u"nom de la source associée",
-                                ), 
-               STRANDED_INDUCTOR_GEOMETRY = SIMP ( statut="f", 
-                       typ=(stranded_inductor_geometry), 
-                        ang="name of the linked stranded inductor geometry",
-                        fr =u"nom de la géométrie d'inducteur bobiné associée",
-                                                   )
-                      )
-
-# --------------------------------------------------
-# definition de macro-groupe de mailles
-# il est associe a un  materiau, source ou inducteur bobiné en morceaux
-#---------------------------------------------------
-
-MACRO_GROUPE = OPER (nom="MACRO_GROUPE", 
-                    op=None, 
-                    repetable='n', 
-                    sd_prod=macro_groupe, 
-                    UIinfo = { "groupes" : ( "4) Maillage", ) },  
-                    fr=u"Macro-groupe = liste de groupes de maillage, e.g., inducteur bobiné en morceaux.", 
-                    ang=u"Macro-groupe = liste of mesh groups, e.g., stranded inductor defined as several parts.", 
-                    regles =(
-                             EXCLUS ('MATERIAL','SOURCE'),
-                           ),
-              Domaine = SIMP (statut='f',
-                                            typ=(grmaille, 'TXM'), 
-                                            defaut="default", 
-                                            ang="Domain used with stranded inductors or topological holes.",
-                                            fr =u"Domaine utilisé par les inducteurs bobinés ou les trous topologiques.",
-                                           ),  
-
-              MATERIAL =  SIMP (statut="f",
-                                            typ=(material,),
-                                            ang="name of the linked real or imaginary material",
-                                            fr =u"nom du matériau réel ou imaginaire associé",
-                                    ), 
-              SOURCE =  SIMP (statut="f",
-                                        typ=(source,),
-                                        ang="name of the linked source",
-                                        fr =u"nom de la source associée",
-                                    ), 
-               LISTE_MESHGROUP=SIMP(statut='f',# facultatif pour l'acquisition automatique des groupes du maillage
-                                                        typ=(grmaille,),
-                                                        min=1,max=100,                     
-                                                        ang="Ordered list of associated mesh groups, e.g., stranded inductor parts or topological hole parts.",
-                                                        fr =u"Liste ordonnée de groupes de maillage associés entre eux, e.g., morceaux d'un inducteur bobiné ou d'un trou topologique.",
-                                                        ), 
-) # Fin OPER
diff --git a/Carmel3D/E24 b/Carmel3D/E24
deleted file mode 100644 (file)
index bc906b3..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-              0.             0.             
-        1000.000       1.200000             
-        1200.000       1.270000             
-        1600.000       1.350000             
-        3000.000       1.520000             
-        6000.000       1.660000             
-        10000.00       1.750000             
-        20000.00       1.900000             
-        30000.00       2.000000             
-        49944.66       2.101082             
-        80000.00       2.200000             
-        132000.0       2.300000             
-        250000.0       2.400000             
diff --git a/Carmel3D/FEV1000 b/Carmel3D/FEV1000
deleted file mode 100644 (file)
index 7324073..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-        0.0000000      0.0000000      
-        54.38605      0.5687161      
-        125.0879      0.9107189      
-        217.0004       1.133191      
-        336.4865       1.285649      
-        491.8185       1.394206      
-        693.7501       1.474002      
-        956.2611       1.534492      
-        1297.525       1.581962      
-        1741.169       1.620847      
-        2317.906       1.654481      
-        3067.663       1.685556      
-        4042.348       1.716430      
-        5309.438       1.749361      
-        6956.655       1.786698      
-        9098.037       1.831067      
-        11881.83       1.882414      
-        15500.77       1.931322      
-        20205.39       1.976478      
-        26321.39       2.017967      
-        34272.19       2.056381      
-        44608.23       2.092746      
-        58045.08       2.128448      
-        75512.98       2.165203      
-        98221.27       2.205061      
-        127742.0       2.250466      
-        166119.0       2.304362      
-        216009.1       2.370358      
-        280866.3       2.452947      
-        308952.9       2.488242      
-
diff --git a/Carmel3D/FEV470 b/Carmel3D/FEV470
deleted file mode 100644 (file)
index d3281a2..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-               0.             0.             
-        40.28202      0.3233068             
-        80.56404      0.6466137             
-        133.2969      0.8959763             
-        196.5763       1.092960             
-        272.5116       1.235844             
-        363.6339       1.322937             
-        472.9807       1.364753             
-        604.1969       1.403417             
-        761.6563       1.442002             
-        950.6076       1.479882             
-        1177.349       1.516478             
-        1449.439       1.551293             
-        1775.947       1.583937             
-        2167.756       1.614135             
-        2637.928       1.641730             
-        3202.133       1.666674             
-        3879.180       1.689014             
-        4691.636       1.708866             
-        5666.584       1.726406             
-        6836.521       1.741841             
-        8240.445       1.755403             
-        9925.154       1.767332             
-        11946.81       1.777868             
-        14372.79       1.787249             
-        17283.96       1.795704             
-        20777.38       1.803454             
-        24969.48       1.810715             
-        30000.00       1.817699             
-        33000.00       1.821469             
-
diff --git a/Carmel3D/FEV600 b/Carmel3D/FEV600
deleted file mode 100644 (file)
index 5281d05..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-              0.             0.             
-        40.28202      0.5217850             
-        80.56404       1.043570             
-        133.2969       1.219489             
-        196.5763       1.330541             
-        272.5116       1.406615             
-        363.6339       1.461884             
-        472.9807       1.503975             
-        604.1969       1.537396             
-        761.6563       1.565024             
-        950.6076       1.588824             
-        1177.349       1.610226             
-        1449.439       1.630343             
-        1775.947       1.650098             
-        2167.756       1.670444             
-        2637.928       1.693085             
-        3202.133       1.718405             
-        3879.180       1.746379             
-        4691.636       1.776860             
-        5666.584       1.809549             
-        6836.521       1.843973             
-        8240.445       1.879470             
-        9925.154       1.915191             
-        11946.81       1.950107             
-        14372.79       1.983036             
-        17283.96       2.012676             
-        20777.38       2.037636             
-        24969.48       2.056473             
-        30000.00       2.067699             
-        33000.00       2.071469             
-
diff --git a/Carmel3D/FEV800 b/Carmel3D/FEV800
deleted file mode 100644 (file)
index 810c3ab..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-              0.             0.             
-        40.28202      0.3324555             
-        80.56404      0.6649110             
-        133.2969      0.9138392             
-        196.5763       1.111536             
-        272.5116       1.260901             
-        363.6339       1.364212             
-        472.9807       1.422949             
-        604.1969       1.451498             
-        761.6563       1.480342             
-        950.6076       1.510200             
-        1177.349       1.540614             
-        1449.439       1.571091             
-        1775.947       1.601134             
-        2167.756       1.630277             
-        2637.928       1.658111             
-        3202.133       1.684309             
-        3879.180       1.708632             
-        4691.636       1.730937             
-        5666.584       1.751169             
-        6836.521       1.769348             
-        8240.445       1.785560             
-        9925.154       1.799934             
-        11946.81       1.812635             
-        14372.79       1.823846             
-        17283.96       1.833761             
-        20777.38       1.842578             
-        24969.48       1.850493             
-        30000.00       1.857699             
-        33000.00       1.861469             
diff --git a/Carmel3D/HA600 b/Carmel3D/HA600
deleted file mode 100644 (file)
index 4c4a877..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-              0.             0.             
-        40.28202      0.3951843             
-        80.56404      0.7903686             
-        133.2969      0.9716319             
-        196.5763       1.095780             
-        272.5116       1.185383             
-        363.6339       1.252692             
-        472.9807       1.304966             
-        604.1969       1.346809             
-        761.6563       1.381319             
-        950.6076       1.410688             
-        1177.349       1.436551             
-        1449.439       1.460186             
-        1775.947       1.483959             
-        2167.756       1.510788             
-        2637.928       1.540831             
-        3202.133       1.574084             
-        3879.180       1.610407             
-        4691.636       1.649490             
-        5666.584       1.690835             
-        6836.521       1.733738             
-        8240.445       1.777294             
-        9925.154       1.820413             
-        11946.81       1.861850             
-        14372.79       1.900252             
-        17283.96       1.934193             
-        20777.38       1.962221             
-        24969.48       1.982877             
-        30000.00       1.994699             
-        33000.00       1.998469             
diff --git a/Carmel3D/M600_65 b/Carmel3D/M600_65
deleted file mode 100644 (file)
index cfc3f3b..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-              0.             0.             
-       0.1676396E-03  0.2082807E-05         
-       0.3352792E-03  0.4165609E-05         
-       0.7823178E-03  0.9719718E-05         
-       0.1676395E-02  0.2082782E-04         
-       0.3464548E-02  0.4304356E-04         
-       0.7040854E-02  0.8747321E-04         
-       0.1419346E-01  0.1763252E-03         
-       0.2849867E-01  0.3540000E-03         
-       0.5710909E-01  0.7092333E-03         
-       0.1143299      0.1419235E-02         
-       0.2287715      0.2837381E-02         
-       0.4576545      0.5666269E-02         
-       0.9154205      0.1129461E-01         
-        1.830952      0.2243500E-01         
-        3.662015      0.4426165E-01         
-        7.324139      0.8618276E-01         
-        14.64838      0.1637067             
-        29.29687      0.2975280             
-        58.59383      0.5032464             
-        117.1877      0.7693985             
-        234.3755       1.046909             
-        468.7509       1.279960             
-        937.5016       1.447085             
-        1875.003       1.563602             
-        3750.004       1.671697             
-        7500.005       1.775926             
-        15000.00       1.854134             
-        30000.00       1.897699             
-        33000.00       1.901469             
diff --git a/Carmel3D/M6X2ISO1 b/Carmel3D/M6X2ISO1
deleted file mode 100644 (file)
index e6facc8..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-          0.             0.             
-        477.0000       1.100000             
-        922.9141       1.633186             
-        1337.513       1.756419             
-        4292.604       1.852735             
-        6366.000       1.880000             
-        7958.000       1.900000             
-        15915.00       1.980000             
-        23873.00       2.020000             
-        31830.00       2.045000             
-        47746.00       2.080000             
-        64329.63       2.111715             
-        86767.84       2.145308             
-        148638.1       2.239294             
-        238700.0       2.355000             
-        318300.0       2.420000             
diff --git a/Carmel3D/M6X_epsilon.mater b/Carmel3D/M6X_epsilon.mater
deleted file mode 100644 (file)
index c1c50ef..0000000
+++ /dev/null
@@ -1 +0,0 @@
-         1.0
diff --git a/Carmel3D/M6X_homog_mu.mater b/Carmel3D/M6X_homog_mu.mater
deleted file mode 100644 (file)
index 57d6c24..0000000
+++ /dev/null
@@ -1 +0,0 @@
-        1.5331206E4-j.1.6906576E4 1.9440262E3-j.2.6880635E1    1.6315E1
diff --git a/Carmel3D/M6X_homog_sigma.mater b/Carmel3D/M6X_homog_sigma.mater
deleted file mode 100644 (file)
index 6597c15..0000000
+++ /dev/null
@@ -1 +0,0 @@
-        0.0
diff --git a/Carmel3D/M6X_lineaire_mu.mater b/Carmel3D/M6X_lineaire_mu.mater
deleted file mode 100644 (file)
index 8698c6b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-        1.60000E4      2.0000E3       3.0000E1
diff --git a/Carmel3D/M6X_lineaire_sigma.mater b/Carmel3D/M6X_lineaire_sigma.mater
deleted file mode 100644 (file)
index a4cfced..0000000
+++ /dev/null
@@ -1 +0,0 @@
-        1.492537313E6.
diff --git a/Carmel3D/M6X_mu.mater b/Carmel3D/M6X_mu.mater
deleted file mode 100644 (file)
index fa1141c..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-         0.             0.             0.             0.
-        625.9739       1.572659       477.0000      0.7020000
-        796.0000       1.665000       796.0000       1.170000
-        1719.099       1.786521       1591.000       1.310000
-        3183.000       1.810000       3183.000       1.430000
-        3979.000       1.830000       3979.000       1.475000
-        4775.000       1.850000       4775.000       1.510000
-        5570.000       1.865000       5570.000       1.540000
-        6366.000       1.880000       6366.000       1.570000
-        7958.000       1.900000       7958.000       1.620000
-        11937.00       1.950000       11937.00       1.695000
-        15915.00       1.980000       15915.00       1.760000
-        19098.00       2.000000       19098.00       1.810000
-        31830.00       2.045000       31830.00       1.930000
-        47746.00       2.080000       47746.00       2.010000
-        63662.00       2.110000       63662.00       2.070000
-        79577.00       2.145000       79577.00       2.120000
-        111041.0       2.200000       111041.0       2.190000
-        143200.0       2.240000       143200.0       2.255000
-        198900.0       2.310000       198900.0       2.325000
-        238700.0       2.355000       238700.0       2.360000
-        318300.0       2.420000       318300.0       2.420000
diff --git a/Carmel3D/__init__.py b/Carmel3D/__init__.py
deleted file mode 100644 (file)
index 40a96af..0000000
+++ /dev/null
@@ -1 +0,0 @@
-# -*- coding: utf-8 -*-
diff --git a/Carmel3D/ajoutGroupe.py b/Carmel3D/ajoutGroupe.py
deleted file mode 100644 (file)
index 7179c9e..0000000
+++ /dev/null
@@ -1,203 +0,0 @@
-# -*- coding: iso-8859-1 -*-
-
-import re # module interne utilisé pour vérifier la validité du nom du maillage
-
-concept_re=re.compile(r'[a-zA-Z_]\w*$') # nom de maillage valide s'il correspond à un identifiant (variable) Python possible. Basé sur Ihm/I_Etape.py:nomme_sd, qui fait foi
-
-def handleAjoutGroupSansFiltre(editor,listeGroup):
-        """code_Carmel temporel : obtention des groupes de maille du maillage selectionne dans Salome
-        Les groupes de mailles ne sont pas filtrés.
-        La creation du MESH_GROUPE n'est donc pas typé.
-        ATTENTION! Le nom devenant un concept, i.e. une variable Python, certains signes sont interdits dans le nom du groupe,
-        e.g. les signes moins (-), plus (+), etc. Une erreur est retournee en ce cas.
-        """
-        # retourne le dernier element du JdC, ou None si le JdC est vide, afin de savoir a quelle place ajouter les MESH_GROUPE (en dernier)
-        debug = True
-        try:
-            dernier=editor.tree.racine.children[-1]
-        except:
-            dernier=None
-        for groupe in listeGroup: # parcours de la liste de tous les groupes de maille trouves (volumiques et les autres), puis ecriture du MESHGROUP systématique sans analyse de nom multiple
-            if debug: print 'groupe=', groupe
-            if not concept_re.match(groupe): # Le nom du groupe de maillage doit etre un identificateur Python
-                raise ValueError, "Ce nom de groupe ("+groupe+") ne peut pas etre utilise car il ne peut pas servir de concept a cause de caracteres interdits, e.g. signes moins (-), plus (+), etc."
-            try: # test de conformite du nom pour un concept, i.e. une variable Python
-                #exec(groupe+'=None') # le test consiste a tenter de creer une variable, initialisee a None, a partir du nom, e.g. toto=None est bon mais toto-foo=None ne fonctionne pas.
-                # creation du groupe MESH_GROUPE
-                if dernier != None:
-                    new_node = dernier.append_brother("MESHGROUP",'after')
-                else:
-                    new_node=editor.tree.racine.append_child("MESHGROUP",pos='first')
-                test,mess = new_node.item.nomme_sd(groupe) # precision du nom (de concept) du groupe
-                if debug: print u"ce nom de groupe ("+groupe+") est utilise..."
-                dernier=new_node # mise a jour du dernier noeud du JdC, afin de rajouter les autres MESH_GROUPE eventuels a sa suite
-            except:
-                raise ValueError,  "Ce nom de groupe ("+groupe+") pose un probleme inconnu"
-
-def handleAjoutGroupAvecFiltre(editor,listeGroup):
-        """CARMEL3D : obtention des groupes de maille du maillage selectionne dans Salome
-        Les groupes de mailles sont filtres en utilisant une liste des  prefixes autorises pour code Code_Carmel3D,
-        i.e. un nom de groupe de mailles est DIEL_toto_foo par exemple, qui deviendra toto_foo.
-        La creation du MESH_GROUPE est type (materiau ou source), d'après le prefixe.
-        ATTENTION! Le nom devenant un concept, i.e. une variable Python, certains signes sont interdits dans le nom du groupe,
-        e.g. les signes moins (-), plus (+), etc. Une erreur est retournee en ce cas.
-        """
-        from string import join
-        debug = False #True
-        listePrefixesMateriaux = ('DIEL', 'NOCOND','COND', 'ZS', 'ZJ', 'NILMAT') # liste des prefixes pour les materiaux
-        listePrefixesSourcesHorsInducteur = ('EPORT', 'HPORT') # liste des prefixes pour les sources
-        listePrefixesInducteurBobine = ('CURRENT', ) # listes des prefixes autorises pour definir la geometrie d'un inducteur bobiné complet ou en morceaux
-        listePrefixesTrous = ('TOPO', ) # listes des prefixes autorises pour definir la geometrie d'un trou complet ou en morceaux
-        listePrefixesBBK = ('BBK', ) # listes des prefixes autorises pour definir le groupe d'éléments servant de boîte englobante dans laquelle est calculée K (inducteur bobiné ou topo).
-        listePrefixes = listePrefixesMateriaux + listePrefixesSourcesHorsInducteur +listePrefixesInducteurBobine + listePrefixesTrous + listePrefixesBBK # liste de tous les prefixes autorises
-        listePrefixesGroupesMultiples = ('CURRENT', 'TOPO' ) # listes des prefixes autorises pour groupes multiples, i.e. plusieurs groupes de mailles associes en une seule caracteistique materiau ou source
-        if debug:
-            print "listePrefixes=", listePrefixes
-            print "listePrefixesGroupesMultiples=", listePrefixesGroupesMultiples
-        sep = '_' # separateur entre le prefixe et le nom reel du groupe (qui peut lui aussi contenir ce separateur)
-        dictGroupesMultiples = {} # dictionnaire contenant les noms reels possibles de groupes multiples et leur occurence dans la liste, i.e. 1 par defaut et > 1 pour une groupe multiple, e.g. pour un inducteur bobine en plusieurs morceaux CURRENT_toto_1, CURRENT_toto_2, ce dictionnaire contiendra 'toto':2 
-        for groupe in listeGroup:
-            partiesGroupe = groupe.split(sep) # parties du nom, separees initialement par le separateur du prefixe, e.g. 'CURRENT_toto_foo' devient ['CURRENT','toto','foo'] et 'toto' devient ['toto']
-            prefix = partiesGroupe[0] # prefixe possible de ce nom, ou nom lui-meme
-            if len(partiesGroupe) >= 3 and prefix in listePrefixesGroupesMultiples: # prefixe existant et autorise
-                nomGroupeMultiple = partiesGroupe[1] # nom possible d'un groupe multiple
-                if dictGroupesMultiples.has_key(nomGroupeMultiple): # comptage du nombre d'occurrences de ce nom de groupe multiple possible
-                    dictGroupesMultiples[nomGroupeMultiple]['nombre'] += 1
-                    dictGroupesMultiples[nomGroupeMultiple]['membres'].append(join(partiesGroupe[1:], sep))
-                else:
-                    dictGroupesMultiples[nomGroupeMultiple] = {'type': prefix,'nombre':1, 'membres':[join(partiesGroupe[1:], sep)]}
-        for groupe in dictGroupesMultiples.keys(): # recherche de tous les groupes multiples. Boucle ignorée si aucun groupe multiple.
-            dictGroupesMultiples[groupe]['membres'].sort() # tri alphabétique des membres du groupe multiple, qui est l'ordre lu par gendof.exe/MED (ordre lexicographique).
-            dictGroupesMultiples[groupe]['membres'] = tuple(dictGroupesMultiples[groupe]['membres']) # transformation en tuple, qui est le format attendu par le catalogue (LISTE_MESHGROUP)
-        if debug:
-            print "dictGroupesMultiples=", dictGroupesMultiples
-        # retourne le dernier element du JdC, ou None si le JdC est vide, afin de savoir a quelle place ajouter les MESH_GROUPE (en dernier)
-        try:
-            dernier=editor.tree.racine.children[-1]
-        except:
-            dernier=None
-        for groupe in listeGroup: # parcours de la liste de tous les groupes de maille trouves (volumiques et les autres), puis ecriture du MESHGROUP systématique sans analyse de nom multiple
-            if debug: print 'groupe=', groupe
-            partiesGroupe = groupe.split(sep) # parties du nom, separees initialement par le separateur du prefixe, e.g. 'CURRENT_toto_foo' devient ['CURRENT','toto','foo'] et 'toto' devient ['toto']
-            if len(partiesGroupe) == 1: # pas de prefixe
-                print u"ERREUR: ce nom de groupe ("+groupe+") ne peut pas etre utilise car il n'a pas de prefixe"
-            elif len(partiesGroupe) >= 2 and partiesGroupe[0] in listePrefixes: # prefixe existant et autorise
-                prefix = partiesGroupe[0] # prefixe possible de ce nom, ou nom lui-meme
-                nom = partiesGroupe[1] # nom du groupe ou du macro-groupe si défini.
-                nomReel = join(partiesGroupe[1:], sep) # reconstruction du nom reel, i.e. sans le prefixe, pour la plupart des groupes
-                if prefix in listePrefixesBBK: nomReel = groupe # pour la boite englobante, il faut le nom avec préfixe
-                if not concept_re.match(nomReel): # Le nom du groupe de maillage doit etre un identificateur Python
-                    raise ValueError, "Ce nom de groupe ("+nomReel+") ne peut pas etre utilise car il ne peut pas servir de concept a cause de caracteres interdits, e.g. signes moins (-), plus (+), etc."
-                try: # test de conformite du nom pour un concept, i.e. une variable Python
-                    #exec(nomReel+'=None') # le test consiste a tenter de creer une variable, initialisee a None, a partir du nom, e.g. toto=None est bon mais toto-foo=None ne fonctionne pas.
-                    # creation du groupe MESH_GROUPE
-                    if dernier != None:
-                        new_node = dernier.append_brother("MESHGROUP",'after')
-                    else:
-                        new_node=editor.tree.racine.append_child("MESHGROUP",pos='first')
-                    test,mess = new_node.item.nomme_sd(nomReel) # precision du nom (de concept) du groupe
-                    if debug: print u"ce nom de groupe ("+nomReel+") est utilise..."
-                    if prefix in listePrefixesMateriaux: # ce groupe est associe a un materiau
-                        new_node.append_child('MATERIAL') # on rajoute la propriete de materiau, qu'il suffit d'associer ensuite a la liste des materiaux presents
-                        if debug: print u" et c'est un materiau."
-                    elif prefix in listePrefixesSourcesHorsInducteur: # ce groupe est associe a une source
-                        new_node.append_child('SOURCE') # on rajoute la propriete de la source, qu'il suffit d'associer ensuite a la liste des sources presentes
-                        if debug: print u" et c'est une source."
-                    elif prefix in listePrefixesInducteurBobine: # ce groupe est associe a une source
-                        new_node.append_child('STRANDED_INDUCTOR_GEOMETRY') # on rajoute la propriete de géométrie de l'inducteur bobiné
-                        if debug: print u" et c'est un inducteur bobine dont on definit la geometrie."
-                        if nom not in dictGroupesMultiples.keys(): # il ne fait pas partie d'un macro-groupe. La source est définie ici, ainsi que le domaine.
-                            new_node.append_child('SOURCE') # on rajoute la propriete de la source, qu'il suffit d'associer ensuite a la liste des sources presentes
-                            new_node.append_child('Domaine') # on rajoute la propriete du domaine (default automatique), qu'il suffit d'associer ensuite a la liste des domaines présents
-                            if debug: print u" et c'est une source en un seul morceau."
-                    else: # ce cas ne devrait pas se produire
-                        pass
-                    dernier=new_node # mise a jour du dernier noeud du JdC, afin de rajouter les autres MESH_GROUPE eventuels a sa suite
-                except:
-                    raise ValueError,  "Ce nom de groupe ("+nomReel+") pose un probleme inconnu"
-                    #print u"ERREUR: ce nom de groupe ("+nomReel+") ne peut pas etre utilise car il ne peut pas servir de concept a cause de caractères interdits, e.g. signes moins (-), plus (+), etc."
-            else: # prefixe existant mais non autorise
-                print u"ERREUR: ce nom de groupe ("+groupe+") ne peut pas etre utilise car son prefixe ("+partiesGroupe[0]+") n'est pas dans la liste autorisee "+str(listePrefixes)
-        if len(dictGroupesMultiples) > 0: # on a des groupes à nom multiples, e.g., inducteur bobiné en morceaux.
-            for groupe, contenu in dictGroupesMultiples.iteritems(): # parcours de la liste de tous les groupes de maille trouves (volumiques et les autres), et sélection des groupes à nom multiple
-                if debug: print 'groupe, contenu=', groupe, contenu
-                nomReel = groupe
-                prefix = contenu['type']
-                try: # test de conformite du nom pour un concept, i.e. une variable Python
-                    exec(nomReel+'=None') # le test consiste a tenter de creer une variable, initialisee a None, a partir du nom, e.g. toto=None est bon mais toto-foo=None ne fonctionne pas.
-                    # creation du groupe MACRO_GROUPE
-                    if dernier != None:
-                        new_node = dernier.append_brother("MACRO_GROUPE",'after')
-                    else:
-                        new_node=editor.tree.racine.append_child("MACRO_GROUPE",pos='first')
-                    test,mess = new_node.item.nomme_sd(nomReel) # precision du nom (de concept) du groupe
-                    if debug: print u"ce nom de groupe ("+nomReel+") est utilise..."
-                    if debug: print u" et on ajoute la liste LISTE_MESHGROUP."
-                    node_list=new_node.append_child('LISTE_MESHGROUP') # Ajout de la liste des membres du groupe multiple
-                    if debug:
-                        print 'Liste possible pour LISTE_MESHGROUP :'
-                        print '_____________________'
-                        print node_list.item.get_liste_possible(())
-                        print '_____________________'
-                        print dir(node_list.item)
-                    listeNom=node_list.item.get_sd_avant_du_bon_type()
-                    listeObjet=[]
-                    for nom in listeNom: 
-                        if nom in dictGroupesMultiples[groupe]['membres']:
-                           #--> transformation du nom en objet
-                           obj,valide=node_list.item.eval_valeur(nom)
-                           listeObjet.append(obj)
-                    node_list.item.set_valeur(listeObjet) 
-                    node_list.affichePanneau()             
-                    if prefix in listePrefixesMateriaux: # ce groupe est associe a un materiau
-                        new_node.append_child('MATERIAL') # on rajoute la propriete de materiau, qu'il suffit d'associer ensuite a la liste des materiaux presents
-                        if debug: print u" et c'est un materiau."
-                    elif prefix in listePrefixesSourcesHorsInducteur: # ce groupe est associe a une source
-                        new_node.append_child('SOURCE') # on rajoute la propriete de la source, qu'il suffit d'associer ensuite a la liste des sources presentes
-                        if debug: print u" et c'est une source hors inducteur."
-                    elif prefix in listePrefixesInducteurBobine: # ce groupe est associe a une source
-                        new_node.append_child('SOURCE') # on rajoute la propriete de la source, qu'il suffit d'associer ensuite a la liste des sources presentes
-                        new_node.append_child('Domaine') # on rajoute la propriete du domaine (default automatique), qu'il suffit d'associer ensuite a la liste des domaines présents
-                        if debug: print u" et c'est une source inducteur."
-                    elif prefix in listePrefixesTrous: # ce groupe est associe a un trou
-                        new_node.append_child('Domaine') # on rajoute la propriete du domaine (default automatique), qu'il suffit d'associer ensuite a la liste des domaines présents
-                        if debug: print u" et c'est un trou."
-                    else: # ce cas ne devrait pas se produire
-                        pass
-                    dernier=new_node # mise a jour du dernier noeud du JdC, afin de rajouter les autres MESH_GROUPE eventuels a sa suite
-                except:
-                    print u"ERREUR: ce nom de groupe ("+nomReel+") ne peut pas etre utilise car il ne peut pas servir de concept a cause de caractères interdits, e.g. signes moins (-), plus (+), etc."
-
-def handleAjoutGroupFiltre(editor,listeGroup):
-        """CARMEL3D : obtention des groupes de maille du maillage selectionne dans Salome
-        Les groupes de mailles sont filtres en utilisant une liste des  prefixes autorises pour code Code_Carmel3D,
-        i.e. un nom de groupe de mailles est DIEL_toto_foo par exemple, qui deviendra toto_foo.
-        La creation du MESH_GROUPE est type (materiau ou source), d'après le prefixe.
-        ATTENTION! Le nom devenant un concept, i.e. une variable Python, certains signes sont interdits dans le nom du groupe,
-        e.g. les signes moins (-), plus (+), etc. Une erreur est retournee en ce cas.
-        """
-        from string import join
-        debug = True
-        #print 'DEBUG listeGroup manuel' # Il faut aussi commenter la ligne Msg,listeGroup=self.ChercheGrpMailleInSalome() dans la routine  ChercheGrpMaille de qtEficas.py
-        #listeGroup = ['DIEL_air', 'COND_plaque', 'CURRENT_bobine'  ] # cas-test plaque Rodger avec DIEL_
-        #listeGroup = ['NOCOND_air', 'COND_plaque', 'CURRENT_bobine'  ] # cas-test plaque Rodger
-        #listeGroup = ['DIEL_air', 'COND_plaque', 'NOCOND_noyau', 'CURRENT_bobine_1', 'CURRENT_bobine_2', 'CURRENT_bobine_3' ]
-        #listeGroup = ['DIEL_air', 'COND_plaque', 'NOCOND_noyau', 'CURRENT_bobine'  ]
-        #listeGroup = ['BBK_bobine', 'DIEL_air', 'COND_plaque', 'NOCOND_noyau', 'CURRENT_bobine'  ] # avec BBK
-        #listeGroup = ['EPORT+_dom', 'EPORT-_dom', 'H', 'COND_cyl', 'EPORT_dom'] # cas-test CSS_Tempimpo
-        #listeGroup= ['BBK_spire', 'CURRENT_spire_4', 'NOCOND_air', 'CURRENT_spire_3', 'CURRENT_spire_1', 'CURRENT_spire_2'] # cas-test spire_dans l'air en 4 morceaux
-        #listeGroup= ['BBK_bobine', 'CURRENT_ind_2', 'DIEL_air', 'CURRENT_ind_8', 'CURRENT_ind_6', 'CURRENT_ind_1', 'CURRENT_ind_3', 'CURRENT_ind_7', 'CURRENT_ind_5', 'CURRENT_ind_4', 'BBK_topo', 'COND_plaque', 'TOPO_trou_1', 'TOPO_trou_3', 'TOPO_trou_2', 'TOPO_trou_8', 'TOPO_trou_4', 'TOPO_trou_7', 'TOPO_trou_5', 'TOPO_trou_6'] # cas-test T.E.A.M. Workshop 7
-        if debug:
-            print "listeGroup=", listeGroup
-        version_catalogue = editor.CONFIGURATION.appli.readercata.version_code # détermination si le catalogue est fréquentiel ou temporel, d'après la deuxième entrée de la liste catalogues dans prefs_CARMEL3D.py
-        if debug:
-            print "Version catalogue=", version_catalogue
-        type_code = version_catalogue.split(' ')[0] # on garde le premier mot de la version du catalogue : 'frequentiel' ou 'temporel'
-        if debug:
-            print "Type de code=", type_code
-        if type_code not in ('frequentiel', 'temporel'): # test de cohérence du type de code
-            raise ValueError("Ce catalogue n'est ni frequentiel ni temporel")
-        if type_code == 'frequentiel':
-            handleAjoutGroupAvecFiltre(editor, listeGroup)
-        if type_code == 'temporel':
-            handleAjoutGroupSansFiltre(editor, listeGroup)
diff --git a/Carmel3D/configuration_CARMEL3D.py b/Carmel3D/configuration_CARMEL3D.py
deleted file mode 100644 (file)
index e559711..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-# -*- coding: utf-8 -*-\r
-# Copyright (C) 2007-2013   EDF R&D\r
-#\r
-# This library is free software; you can redistribute it and/or\r
-# modify it under the terms of the GNU Lesser General Public\r
-# License as published by the Free Software Foundation; either\r
-# version 2.1 of the License.\r
-#\r
-# This library is distributed in the hope that it will be useful,\r
-# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
-# Lesser General Public License for more details.\r
-#\r
-# You should have received a copy of the GNU Lesser General Public\r
-# License along with this library; if not, write to the Free Software\r
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
-#\r
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com\r
-#\r
-"""\r
-    Ce module sert pour charger les paramètres de configuration d'EFICAS\r
-"""\r
-# Modules Python\r
-import configuration\r
-import os\r
-\r
-\r
-class CONFIG(configuration.CONFIG_BASE):\r
-\r
-  #-----------------------------------\r
-  def __init__(self,appli,repIni):\r
-  #-----------------------------------\r
-\r
-      self.labels_user=['exec_acrobat', 'catalogues','savedir']\r
-      self.labels_eficas=['path_doc','exec_acrobat','lang','rep_cata','catalogues']\r
-\r
-      self.INSTALLDIR =os.path.dirname(__file__)\r
-      configuration.CONFIG_BASE.__init__(self,appli,repIni)\r
-\r
-\r
-def make_config(appli,rep):\r
-    return CONFIG(appli,rep)\r
-\r
diff --git a/Carmel3D/materiaux/ACIER_TEAM13 b/Carmel3D/materiaux/ACIER_TEAM13
deleted file mode 100644 (file)
index 27b9f3b..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-# B(H) curve from T.E.A.M. Workshop 13
-# New measures, last table from the notice (COMPEL 1995)
-# Measures from B=0 to 1.8 T, saturation J_s=2.16T
-# Hmod Bmod
-0.0      0.0
-45.0     0.0250   
-75.0     0.0500   
-120.0    0.1000   
-173.0    0.2000   
-201.0    0.3000   
-222.0    0.4000   
-240.0    0.5000   
-250.0    0.6000   
-265.0    0.7000   
-280.0    0.8000   
-300.0    0.9000   
-330.0    1.0000   
-365.0    1.1000   
-415.0    1.2000   
-500.0    1.3000   
-640.0    1.4000   
-890.0    1.5000   
-1150.0   1.5500   
-1940.0   1.6000   
-3100.0   1.6500   
-4370.0   1.7000   
-6347.0   1.7500   
-8655.0   1.8000   
diff --git a/Carmel3D/materiaux/CMakeLists.txt b/Carmel3D/materiaux/CMakeLists.txt
deleted file mode 100644 (file)
index f616359..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-# -*- coding: utf-8 -*-
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-#
-#
-# ======================================================================
-
-
-install ( FILES 
-            ACIER_TEAM13 E24 FEV470 FEV600 FEV800 FEV1000 HA600 M600_65 M6X2ISO1
-            M6X_epsilon.mater M6X_mu.mater M6X_sigma.mater
-            M6X_homogene_mu.mater M6X_homogene_sigma.mater 
-            M6X_lineaire_mu.mater M6X_lineaire_sigma.mater
-            materiaux.comm
-          DESTINATION ${CMAKE_INSTALL_PREFIX}/Carmel3D/materiaux
-        )
-
-
-### Local Variables:
-### mode: cmake
-### End:
diff --git a/Carmel3D/materiaux/E24 b/Carmel3D/materiaux/E24
deleted file mode 100644 (file)
index bc906b3..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-              0.             0.             
-        1000.000       1.200000             
-        1200.000       1.270000             
-        1600.000       1.350000             
-        3000.000       1.520000             
-        6000.000       1.660000             
-        10000.00       1.750000             
-        20000.00       1.900000             
-        30000.00       2.000000             
-        49944.66       2.101082             
-        80000.00       2.200000             
-        132000.0       2.300000             
-        250000.0       2.400000             
diff --git a/Carmel3D/materiaux/FEV1000 b/Carmel3D/materiaux/FEV1000
deleted file mode 100644 (file)
index 7324073..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-        0.0000000      0.0000000      
-        54.38605      0.5687161      
-        125.0879      0.9107189      
-        217.0004       1.133191      
-        336.4865       1.285649      
-        491.8185       1.394206      
-        693.7501       1.474002      
-        956.2611       1.534492      
-        1297.525       1.581962      
-        1741.169       1.620847      
-        2317.906       1.654481      
-        3067.663       1.685556      
-        4042.348       1.716430      
-        5309.438       1.749361      
-        6956.655       1.786698      
-        9098.037       1.831067      
-        11881.83       1.882414      
-        15500.77       1.931322      
-        20205.39       1.976478      
-        26321.39       2.017967      
-        34272.19       2.056381      
-        44608.23       2.092746      
-        58045.08       2.128448      
-        75512.98       2.165203      
-        98221.27       2.205061      
-        127742.0       2.250466      
-        166119.0       2.304362      
-        216009.1       2.370358      
-        280866.3       2.452947      
-        308952.9       2.488242      
-
diff --git a/Carmel3D/materiaux/FEV470 b/Carmel3D/materiaux/FEV470
deleted file mode 100644 (file)
index d3281a2..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-               0.             0.             
-        40.28202      0.3233068             
-        80.56404      0.6466137             
-        133.2969      0.8959763             
-        196.5763       1.092960             
-        272.5116       1.235844             
-        363.6339       1.322937             
-        472.9807       1.364753             
-        604.1969       1.403417             
-        761.6563       1.442002             
-        950.6076       1.479882             
-        1177.349       1.516478             
-        1449.439       1.551293             
-        1775.947       1.583937             
-        2167.756       1.614135             
-        2637.928       1.641730             
-        3202.133       1.666674             
-        3879.180       1.689014             
-        4691.636       1.708866             
-        5666.584       1.726406             
-        6836.521       1.741841             
-        8240.445       1.755403             
-        9925.154       1.767332             
-        11946.81       1.777868             
-        14372.79       1.787249             
-        17283.96       1.795704             
-        20777.38       1.803454             
-        24969.48       1.810715             
-        30000.00       1.817699             
-        33000.00       1.821469             
-
diff --git a/Carmel3D/materiaux/FEV600 b/Carmel3D/materiaux/FEV600
deleted file mode 100644 (file)
index 5281d05..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-              0.             0.             
-        40.28202      0.5217850             
-        80.56404       1.043570             
-        133.2969       1.219489             
-        196.5763       1.330541             
-        272.5116       1.406615             
-        363.6339       1.461884             
-        472.9807       1.503975             
-        604.1969       1.537396             
-        761.6563       1.565024             
-        950.6076       1.588824             
-        1177.349       1.610226             
-        1449.439       1.630343             
-        1775.947       1.650098             
-        2167.756       1.670444             
-        2637.928       1.693085             
-        3202.133       1.718405             
-        3879.180       1.746379             
-        4691.636       1.776860             
-        5666.584       1.809549             
-        6836.521       1.843973             
-        8240.445       1.879470             
-        9925.154       1.915191             
-        11946.81       1.950107             
-        14372.79       1.983036             
-        17283.96       2.012676             
-        20777.38       2.037636             
-        24969.48       2.056473             
-        30000.00       2.067699             
-        33000.00       2.071469             
-
diff --git a/Carmel3D/materiaux/FEV800 b/Carmel3D/materiaux/FEV800
deleted file mode 100644 (file)
index 810c3ab..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-              0.             0.             
-        40.28202      0.3324555             
-        80.56404      0.6649110             
-        133.2969      0.9138392             
-        196.5763       1.111536             
-        272.5116       1.260901             
-        363.6339       1.364212             
-        472.9807       1.422949             
-        604.1969       1.451498             
-        761.6563       1.480342             
-        950.6076       1.510200             
-        1177.349       1.540614             
-        1449.439       1.571091             
-        1775.947       1.601134             
-        2167.756       1.630277             
-        2637.928       1.658111             
-        3202.133       1.684309             
-        3879.180       1.708632             
-        4691.636       1.730937             
-        5666.584       1.751169             
-        6836.521       1.769348             
-        8240.445       1.785560             
-        9925.154       1.799934             
-        11946.81       1.812635             
-        14372.79       1.823846             
-        17283.96       1.833761             
-        20777.38       1.842578             
-        24969.48       1.850493             
-        30000.00       1.857699             
-        33000.00       1.861469             
diff --git a/Carmel3D/materiaux/HA600 b/Carmel3D/materiaux/HA600
deleted file mode 100644 (file)
index 4c4a877..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-              0.             0.             
-        40.28202      0.3951843             
-        80.56404      0.7903686             
-        133.2969      0.9716319             
-        196.5763       1.095780             
-        272.5116       1.185383             
-        363.6339       1.252692             
-        472.9807       1.304966             
-        604.1969       1.346809             
-        761.6563       1.381319             
-        950.6076       1.410688             
-        1177.349       1.436551             
-        1449.439       1.460186             
-        1775.947       1.483959             
-        2167.756       1.510788             
-        2637.928       1.540831             
-        3202.133       1.574084             
-        3879.180       1.610407             
-        4691.636       1.649490             
-        5666.584       1.690835             
-        6836.521       1.733738             
-        8240.445       1.777294             
-        9925.154       1.820413             
-        11946.81       1.861850             
-        14372.79       1.900252             
-        17283.96       1.934193             
-        20777.38       1.962221             
-        24969.48       1.982877             
-        30000.00       1.994699             
-        33000.00       1.998469             
diff --git a/Carmel3D/materiaux/M600_65 b/Carmel3D/materiaux/M600_65
deleted file mode 100644 (file)
index cfc3f3b..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-              0.             0.             
-       0.1676396E-03  0.2082807E-05         
-       0.3352792E-03  0.4165609E-05         
-       0.7823178E-03  0.9719718E-05         
-       0.1676395E-02  0.2082782E-04         
-       0.3464548E-02  0.4304356E-04         
-       0.7040854E-02  0.8747321E-04         
-       0.1419346E-01  0.1763252E-03         
-       0.2849867E-01  0.3540000E-03         
-       0.5710909E-01  0.7092333E-03         
-       0.1143299      0.1419235E-02         
-       0.2287715      0.2837381E-02         
-       0.4576545      0.5666269E-02         
-       0.9154205      0.1129461E-01         
-        1.830952      0.2243500E-01         
-        3.662015      0.4426165E-01         
-        7.324139      0.8618276E-01         
-        14.64838      0.1637067             
-        29.29687      0.2975280             
-        58.59383      0.5032464             
-        117.1877      0.7693985             
-        234.3755       1.046909             
-        468.7509       1.279960             
-        937.5016       1.447085             
-        1875.003       1.563602             
-        3750.004       1.671697             
-        7500.005       1.775926             
-        15000.00       1.854134             
-        30000.00       1.897699             
-        33000.00       1.901469             
diff --git a/Carmel3D/materiaux/M6X2ISO1 b/Carmel3D/materiaux/M6X2ISO1
deleted file mode 100644 (file)
index e6facc8..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-          0.             0.             
-        477.0000       1.100000             
-        922.9141       1.633186             
-        1337.513       1.756419             
-        4292.604       1.852735             
-        6366.000       1.880000             
-        7958.000       1.900000             
-        15915.00       1.980000             
-        23873.00       2.020000             
-        31830.00       2.045000             
-        47746.00       2.080000             
-        64329.63       2.111715             
-        86767.84       2.145308             
-        148638.1       2.239294             
-        238700.0       2.355000             
-        318300.0       2.420000             
diff --git a/Carmel3D/materiaux/M6X_epsilon.mater b/Carmel3D/materiaux/M6X_epsilon.mater
deleted file mode 100644 (file)
index c1c50ef..0000000
+++ /dev/null
@@ -1 +0,0 @@
-         1.0
diff --git a/Carmel3D/materiaux/M6X_homogene_mu.mater b/Carmel3D/materiaux/M6X_homogene_mu.mater
deleted file mode 100644 (file)
index 57d6c24..0000000
+++ /dev/null
@@ -1 +0,0 @@
-        1.5331206E4-j.1.6906576E4 1.9440262E3-j.2.6880635E1    1.6315E1
diff --git a/Carmel3D/materiaux/M6X_homogene_sigma.mater b/Carmel3D/materiaux/M6X_homogene_sigma.mater
deleted file mode 100644 (file)
index 6597c15..0000000
+++ /dev/null
@@ -1 +0,0 @@
-        0.0
diff --git a/Carmel3D/materiaux/M6X_lineaire_mu.mater b/Carmel3D/materiaux/M6X_lineaire_mu.mater
deleted file mode 100644 (file)
index 8698c6b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-        1.60000E4      2.0000E3       3.0000E1
diff --git a/Carmel3D/materiaux/M6X_lineaire_sigma.mater b/Carmel3D/materiaux/M6X_lineaire_sigma.mater
deleted file mode 100644 (file)
index a4cfced..0000000
+++ /dev/null
@@ -1 +0,0 @@
-        1.492537313E6.
diff --git a/Carmel3D/materiaux/M6X_mu.mater b/Carmel3D/materiaux/M6X_mu.mater
deleted file mode 100644 (file)
index fa1141c..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-         0.             0.             0.             0.
-        625.9739       1.572659       477.0000      0.7020000
-        796.0000       1.665000       796.0000       1.170000
-        1719.099       1.786521       1591.000       1.310000
-        3183.000       1.810000       3183.000       1.430000
-        3979.000       1.830000       3979.000       1.475000
-        4775.000       1.850000       4775.000       1.510000
-        5570.000       1.865000       5570.000       1.540000
-        6366.000       1.880000       6366.000       1.570000
-        7958.000       1.900000       7958.000       1.620000
-        11937.00       1.950000       11937.00       1.695000
-        15915.00       1.980000       15915.00       1.760000
-        19098.00       2.000000       19098.00       1.810000
-        31830.00       2.045000       31830.00       1.930000
-        47746.00       2.080000       47746.00       2.010000
-        63662.00       2.110000       63662.00       2.070000
-        79577.00       2.145000       79577.00       2.120000
-        111041.0       2.200000       111041.0       2.190000
-        143200.0       2.240000       143200.0       2.255000
-        198900.0       2.310000       198900.0       2.325000
-        238700.0       2.355000       238700.0       2.360000
-        318300.0       2.420000       318300.0       2.420000
diff --git a/Carmel3D/materiaux/M6X_sigma.mater b/Carmel3D/materiaux/M6X_sigma.mater
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/Carmel3D/materiaux/materiaux.comm b/Carmel3D/materiaux/materiaux.comm
deleted file mode 100644 (file)
index 3a5f08f..0000000
+++ /dev/null
@@ -1,270 +0,0 @@
-\r
-AIR=MATERIAL(TYPE='DIELECTRIC',\r
-             PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
-                             ISOTROPIC='TRUE',\r
-                             LAW='LINEAR',\r
-                             VALUE=1,),\r
-             PERMITTIVITY=_F(HOMOGENEOUS='TRUE',\r
-                             ISOTROPIC='TRUE',\r
-                             LAW='LINEAR',\r
-                             VALUE=1,),);\r
-\r
-ALU=MATERIAL(TYPE='CONDUCTOR',\r
-             PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
-                             ISOTROPIC='TRUE',\r
-                             LAW='LINEAR',\r
-                             VALUE=1,),\r
-             CONDUCTIVITY=_F(HOMOGENEOUS='TRUE',\r
-                             ISOTROPIC='TRUE',\r
-                             LAW='LINEAR',\r
-                             VALUE=Decimal('3.448E+7'),),);\r
-\r
-ACIER_NOIR=MATERIAL(TYPE='CONDUCTOR',\r
-                    PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
-                                    ISOTROPIC='TRUE',\r
-                                    LAW='LINEAR',\r
-                                    VALUE=Decimal('1.0E+2'),),\r
-                    CONDUCTIVITY=_F(HOMOGENEOUS='TRUE',\r
-                                    ISOTROPIC='TRUE',\r
-                                    LAW='LINEAR',\r
-                                    VALUE=Decimal('6.00000E+6'),),);\r
-\r
-ACIER_CIMBLOT=MATERIAL(TYPE='CONDUCTOR',\r
-                       PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
-                                       ISOTROPIC='TRUE',\r
-                                       LAW='LINEAR',\r
-                                       VALUE=Decimal('50.0000'),),\r
-                       CONDUCTIVITY=_F(HOMOGENEOUS='TRUE',\r
-                                       ISOTROPIC='TRUE',\r
-                                       LAW='LINEAR',\r
-                                       VALUE=Decimal('3.00000E+6'),),);\r
-\r
-ACIER_PE=MATERIAL(TYPE='CONDUCTOR',\r
-                  PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
-                                  ISOTROPIC='TRUE',\r
-                                  LAW='LINEAR',\r
-                                  VALUE=Decimal('70'),),\r
-                  CONDUCTIVITY=_F(HOMOGENEOUS='TRUE',\r
-                                  ISOTROPIC='TRUE',\r
-                                  LAW='LINEAR',\r
-                                  VALUE=Decimal('1.75000E+6'),),);\r
-\r
-ACIER_TEAM13_mesures=MATERIAL(TYPE='DIELECTRIC',\r
-                              PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
-                                              ISOTROPIC='TRUE',\r
-                                              LAW='NONLINEAR',\r
-                                              VALUE=2376,\r
-                                              NATURE='SPLINE',\r
-                                              FILENAME='ACIER_TEAM13',\r
-                                              APPLIEDTO='B(H)&H(B)',),\r
-                              PERMITTIVITY=_F(HOMOGENEOUS='TRUE',\r
-                                              ISOTROPIC='TRUE',\r
-                                              LAW='LINEAR',\r
-                                              VALUE=('RI',1,0,),),);\r
-\r
-ACIER_TEAM13_Marrocco=MATERIAL(TYPE='DIELECTRIC',\r
-                               PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
-                                               ISOTROPIC='TRUE',\r
-                                               LAW='NONLINEAR',\r
-                                               VALUE=2376,\r
-                                               NATURE='MARROCCO+SATURATION',\r
-                                               ALPHA=9.98,\r
-                                               TAU=106000.0,\r
-                                               C=0.0119,\r
-                                               EPSILON=0.000467,\r
-                                               BMAX=1.85,\r
-                                               HSAT=47732.7,\r
-                                               BSAT=2.22,\r
-                                               JOIN='PARABOLIC',\r
-                                               APPLIEDTO='B(H)&H(B)',),\r
-                               PERMITTIVITY=_F(HOMOGENEOUS='TRUE',\r
-                                               ISOTROPIC='TRUE',\r
-                                               LAW='LINEAR',\r
-                                               VALUE=('RI',1,0,),),);\r
-\r
-BRONZE=MATERIAL(TYPE='CONDUCTOR',\r
-                PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
-                                ISOTROPIC='TRUE',\r
-                                LAW='LINEAR',\r
-                                VALUE=3.0,),\r
-                CONDUCTIVITY=_F(HOMOGENEOUS='TRUE',\r
-                                ISOTROPIC='TRUE',\r
-                                LAW='LINEAR',\r
-                                VALUE=Decimal('1.00000E+6'),),);\r
-\r
-CUIVRE=MATERIAL(TYPE='CONDUCTOR',\r
-                PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
-                                ISOTROPIC='TRUE',\r
-                                LAW='LINEAR',\r
-                                VALUE=1.0,),\r
-                CONDUCTIVITY=_F(HOMOGENEOUS='TRUE',\r
-                                ISOTROPIC='TRUE',\r
-                                LAW='LINEAR',\r
-                                VALUE=Decimal('5.85E+7'),),);\r
-\r
-E24=MATERIAL(TYPE='DIELECTRIC',\r
-             PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
-                             ISOTROPIC='TRUE',\r
-                             LAW='NONLINEAR',\r
-                             VALUE=Decimal('1.0'),\r
-                             NATURE='SPLINE',\r
-                             FILENAME='E24',\r
-                             APPLIEDTO='B(H)&H(B)',),\r
-             PERMITTIVITY=_F(HOMOGENEOUS='TRUE',\r
-                             ISOTROPIC='TRUE',\r
-                             LAW='LINEAR',\r
-                             VALUE=Decimal('1.0'),),);\r
-\r
-HA600=MATERIAL(TYPE='DIELECTRIC',\r
-               PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
-                               ISOTROPIC='TRUE',\r
-                               LAW='NONLINEAR',\r
-                               VALUE=Decimal('1.0'),\r
-                               NATURE='SPLINE',\r
-                               FILENAME='HA600',\r
-                               APPLIEDTO='B(H)&H(B)',),\r
-               PERMITTIVITY=_F(HOMOGENEOUS='TRUE',\r
-                               ISOTROPIC='TRUE',\r
-                               LAW='LINEAR',\r
-                               VALUE=Decimal('1.0'),),);\r
-\r
-INCONEL600=MATERIAL(TYPE='CONDUCTOR',\r
-                    PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
-                                    ISOTROPIC='TRUE',\r
-                                    LAW='LINEAR',\r
-                                    VALUE=1.01,),\r
-                    CONDUCTIVITY=_F(HOMOGENEOUS='TRUE',\r
-                                    ISOTROPIC='TRUE',\r
-                                    LAW='LINEAR',\r
-                                    VALUE=Decimal('9.7000E+5'),),);\r
-\r
-FERRITEB30=MATERIAL(TYPE='DIELECTRIC',\r
-                    PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
-                                    ISOTROPIC='TRUE',\r
-                                    LAW='LINEAR',\r
-                                    VALUE=Decimal('1.10E+3'),),\r
-                    PERMITTIVITY=_F(HOMOGENEOUS='TRUE',\r
-                                    ISOTROPIC='TRUE',\r
-                                    LAW='LINEAR',\r
-                                    VALUE=1.0,),);\r
-\r
-FERRITE_Ni_Zn=MATERIAL(TYPE='CONDUCTOR',\r
-                       PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
-                                       ISOTROPIC='TRUE',\r
-                                       LAW='LINEAR',\r
-                                       VALUE=Decimal('15.0000'),),\r
-                       CONDUCTIVITY=_F(HOMOGENEOUS='TRUE',\r
-                                       ISOTROPIC='TRUE',\r
-                                       LAW='LINEAR',\r
-                                       VALUE=Decimal('0.0000010000'),),);\r
-\r
-FERRITE_Mn_Zn=MATERIAL(TYPE='CONDUCTOR',\r
-                       PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
-                                       ISOTROPIC='TRUE',\r
-                                       LAW='LINEAR',\r
-                                       VALUE=Decimal('1.25E+3'),),\r
-                       CONDUCTIVITY=_F(HOMOGENEOUS='TRUE',\r
-                                       ISOTROPIC='TRUE',\r
-                                       LAW='LINEAR',\r
-                                       VALUE=Decimal('10'),),);\r
-\r
-FEV470=MATERIAL(TYPE='DIELECTRIC',\r
-                PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
-                                ISOTROPIC='TRUE',\r
-                                LAW='NONLINEAR',\r
-                                VALUE=Decimal('1.0'),\r
-                                NATURE='SPLINE',\r
-                                FILENAME='FEV470',\r
-                                APPLIEDTO='B(H)&H(B)',),\r
-                PERMITTIVITY=_F(HOMOGENEOUS='TRUE',\r
-                                ISOTROPIC='TRUE',\r
-                                LAW='LINEAR',\r
-                                VALUE=Decimal('1.0'),),);\r
-\r
-FEV600=MATERIAL(TYPE='DIELECTRIC',\r
-                PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
-                                ISOTROPIC='TRUE',\r
-                                LAW='NONLINEAR',\r
-                                VALUE=Decimal('1.0'),\r
-                                NATURE='SPLINE',\r
-                                FILENAME='FEV600',\r
-                                APPLIEDTO='B(H)&H(B)',),\r
-                PERMITTIVITY=_F(HOMOGENEOUS='TRUE',\r
-                                ISOTROPIC='TRUE',\r
-                                LAW='LINEAR',\r
-                                VALUE=Decimal('1.0'),),);\r
-\r
-FEV800=MATERIAL(TYPE='DIELECTRIC',\r
-                PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
-                                ISOTROPIC='TRUE',\r
-                                LAW='NONLINEAR',\r
-                                VALUE=Decimal('1.0'),\r
-                                NATURE='SPLINE',\r
-                                FILENAME='FEV800',\r
-                                APPLIEDTO='B(H)&H(B)',),\r
-                PERMITTIVITY=_F(HOMOGENEOUS='TRUE',\r
-                                ISOTROPIC='TRUE',\r
-                                LAW='LINEAR',\r
-                                VALUE=Decimal('1.0'),),);\r
-\r
-FEV1000=MATERIAL(TYPE='DIELECTRIC',\r
-                 PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
-                                 ISOTROPIC='TRUE',\r
-                                 LAW='NONLINEAR',\r
-                                 VALUE=Decimal('1.0'),\r
-                                 NATURE='SPLINE',\r
-                                 FILENAME='FEV1000',\r
-                                 APPLIEDTO='B(H)&H(B)',),\r
-                 PERMITTIVITY=_F(HOMOGENEOUS='TRUE',\r
-                                 ISOTROPIC='TRUE',\r
-                                 LAW='LINEAR',\r
-                                 VALUE=Decimal('1.0'),),);\r
-\r
-M600_65=MATERIAL(TYPE='DIELECTRIC',\r
-                 PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
-                                 ISOTROPIC='TRUE',\r
-                                 LAW='NONLINEAR',\r
-                                 VALUE=Decimal('1.0'),\r
-                                 NATURE='SPLINE',\r
-                                 FILENAME='M600_65',\r
-                                 APPLIEDTO='B(H)&H(B)',),\r
-                 PERMITTIVITY=_F(HOMOGENEOUS='TRUE',\r
-                                 ISOTROPIC='TRUE',\r
-                                 LAW='LINEAR',\r
-                                 VALUE=Decimal('1.0'),),);\r
-\r
-#M6X=MATERIAL(TYPE='EM_ANISOTROPIC',\r
-#             PERMEABILITY_File='M6X_mu.mater',\r
-#             CONDUCTIVITY_File='M6X_sigma.mater',);\r
-\r
-M6X2ISO1=MATERIAL(TYPE='CONDUCTOR',\r
-                  PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
-                                  ISOTROPIC='TRUE',\r
-                                  LAW='NONLINEAR',\r
-                                  VALUE=Decimal('1.0'),\r
-                                  NATURE='SPLINE',\r
-                                  FILENAME='M6X2ISO1',\r
-                                  APPLIEDTO='B(H)&H(B)',),\r
-                  CONDUCTIVITY=_F(HOMOGENEOUS='TRUE',\r
-                                  ISOTROPIC='TRUE',\r
-                                  LAW='LINEAR',\r
-                                  VALUE=Decimal('1.724E+6'),),);\r
-\r
-#M6X_LINEAIRE=MATERIAL(TYPE='EM_ANISOTROPIC',\r
-#                      PERMEABILITY_File='M6X_lineaire_mu.mater',\r
-#                      CONDUCTIVITY_File='M6X_lineaire_sigma.mater',);\r
-\r
-#M6X_HOMOGENE=MATERIAL(TYPE='EM_ANISOTROPIC',\r
-#                      PERMEABILITY_File='M6X_homogene_mu.mater',\r
-#                      CONDUCTIVITY_File='M6X_homogene_sigma.mater',);\r
-\r
-POTASSE=MATERIAL(TYPE='CONDUCTOR',\r
-                 PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
-                                 ISOTROPIC='TRUE',\r
-                                 LAW='LINEAR',\r
-                                 VALUE=Decimal('1.0'),),\r
-                 CONDUCTIVITY=_F(HOMOGENEOUS='TRUE',\r
-                                 ISOTROPIC='TRUE',\r
-                                 LAW='LINEAR',\r
-                                 VALUE=Decimal('71.43'),),);\r
-#CHECKSUM:614994a51cd56f24959331e5ef1c7a98  -:FIN CHECKSUM\r
diff --git a/Carmel3D/opsCarmel.py b/Carmel3D/opsCarmel.py
deleted file mode 100644 (file)
index 8270d47..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-# -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2013   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-
-def INCLUDE(self,FileName,**args):
-   """ 
-       Fonction sd_prod pour la macro INCLUDE
-   """
-   if hasattr(self,'change_fichier'):
-       delattr(self,'change_fichier')
-       delattr(self,'fichier_ini')
-
-   self.make_includeCarmel(fichier=FileName)
-
-def INCLUDE_context(self,d):
-   """ 
-       Fonction op_init pour macro INCLUDE
-   """
-   for k,v in self.g_context.items():
-      d[k]=v
-
-
diff --git a/Carmel3D/prefs.py b/Carmel3D/prefs.py
deleted file mode 100644 (file)
index a69b761..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright (C) 2007-2013   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-code="CARMEL3D" 
-import sys, os
-if os.path.dirname(os.path.abspath(__file__)) not in sys.path :
-   sys.path.insert(0,os.path.dirname(os.path.abspath(__file__)))
diff --git a/Carmel3D/prefs_CARMEL3D.py b/Carmel3D/prefs_CARMEL3D.py
deleted file mode 100644 (file)
index 41e26ee..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-
-import os
-
-# repIni sert a localiser le fichier editeur.ini  
-repIni=os.path.dirname(os.path.abspath(__file__))
-
-# lang indique la langue utilisee pour les chaines d'aide : fr ou ang
-lang='fr'
-
-# Codage des strings qui accepte les accents (en remplacement de 'ascii')
-encoding='utf-8'
-
-# Choix des catalogues
-# format du Tuple (code,version,catalogue,formatOut, finit par defaut Ăventuellement)
-catalogues = (
-
-# catalogue avec generation Phys et materiaux reels
- ('CARMEL3D','temporel (dev)',os.path.join(repIni,'Carmel3D_Cata_temporel_V0.py'),'CARMEL3DTV0','defaut'), 
- ('CARMEL3D','frequentiel',os.path.join(repIni,'Carmel3D_Cata_frequentiel_V1.py'),'CARMEL3DFV0','defaut')
-)
diff --git a/Carmel3D/properties.py b/Carmel3D/properties.py
deleted file mode 100644 (file)
index 3db8254..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-#@ MODIF properties Accas DATE 02/06/2010 AUTEUR aster M.ADMINISTRATEUR
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# RESPONSABLE D6BHHHH J-P.LEFEBVRE
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-#     IDENTIFICATION DU GESTIONNAIRE DE COMMANDE ACCAS A PARTIR
-#     DE LA VERSION DU CODE_ASTER ASSOCIE
-#----------------------------------------------------------------------
-version = "10.1.27"
-date = "02/06/2010"
-exploit = False
diff --git a/Carmel3D/qtEficas_Carmel3D.py b/Carmel3D/qtEficas_Carmel3D.py
deleted file mode 100755 (executable)
index d38a998..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-
-"""
-   Ce module sert à lancer EFICAS configuré pour Carmel
-"""
-# Modules Python
-# Modules Eficas
-
-import sys,os
-sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..'))
-
-import prefs
-from InterfaceQT4 import eficas_go
-eficas_go.lance_eficas(code=prefs.code)
diff --git a/Carmel3D/style.py b/Carmel3D/style.py
deleted file mode 100644 (file)
index d485572..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
-Pour modifier le style d'EFICAS  il faut ajouter un fichier style.py qui contiendra les
-informations sur le style voulu dans son repertoire Eficas_install.
-
-La methode la plus simple consiste à modifier directement les attributs de l'objet style dans le 
-fichier style.py d'Eficas_install. Exemple::
-
-    style.background='yellow'
-
-pour modifier la couleur du background.
-
-Il existe une autre méthode qui peut être utilisée quand on veut modifier plusieurs propriétés à la fois.
-
-Le fichier style.py doit définir une nouvelle classe qui dérive de la classe de base STYLE avec des attributs
-de classe qui définiront le nouveau style (par exemple, si on veut modifier le background)::
-
-   class STYLE(STYLE):
-       background='yellow'
-
-Il faut ensuite instancier cette classe, dans ce meme fichier, en donnant le nom style à l'objet cree::
-
-   style=STYLE()
-
-Tous les attributs de classe possibles sont visibles dans le module Editeur/basestyle.py::
-
-    background='gray90'
-    foreground='black'
-    entry_background='white'
-    list_background='white'
-    list_select_background='#00008b'
-    list_select_foreground='grey'
-    tooltip_background="yellow"
-
-    standard = ("Helvetica",12)
-    standard_italique = ("Helvetica",12,'italic')
-    standard_gras = ("Helvetica",12,'bold')
-    standard_gras_souligne = ("Helvetica",12,'bold','underline')
-
-    canvas = ('Helvetica',10)
-    canvas_italique = ('Helvetica',10,'italic')
-    canvas_gras = ("Helvetica",10,'bold')
-    canvas_gras_italique = ("Helvetica",12,'bold','italic')
-
-    standard12 = ("Helvetica",14)
-    standard12_gras = ("Helvetica",14,'bold')
-    standard12_gras_italique = ( "Helvetica",14,'bold','italic')
-
-
-Le fichier style.py contenu dans le répertoire Aster permet de spécifier des propriétés globales pour une installation.
-Les modifications de style contenues dans ce fichier et dans le fichier style.py d'Eficas_install
-sont prises en compte dans cet ordre.
-"""
-
-p1=10
-p2=14
-f1="Helvetica"
-
-style.background='gray90'
-style.foreground='black'
-style.standard = (f1,p1)
-style.standard_italique = (f1,p1,'italic')
-style.standard_gras = (f1,p1,'bold')
-style.canvas_italique = (f1,p1,'italic')
-style.canvas_gras = (f1,p1,'bold')
-style.statusfont = (f1,p2)
diff --git a/CatasDeTests/.b.py.swp b/CatasDeTests/.b.py.swp
new file mode 100644 (file)
index 0000000..4f94329
Binary files /dev/null and b/CatasDeTests/.b.py.swp differ
diff --git a/CatasDeTests/.cataMemesNoms.py.swp b/CatasDeTests/.cataMemesNoms.py.swp
new file mode 100644 (file)
index 0000000..6c632e9
Binary files /dev/null and b/CatasDeTests/.cataMemesNoms.py.swp differ
diff --git a/CatasDeTests/.cataSimple_driver.xsd.swp b/CatasDeTests/.cataSimple_driver.xsd.swp
new file mode 100644 (file)
index 0000000..d766936
Binary files /dev/null and b/CatasDeTests/.cataSimple_driver.xsd.swp differ
diff --git a/CatasDeTests/.cataTesteDelete.py.swp b/CatasDeTests/.cataTesteDelete.py.swp
new file mode 100644 (file)
index 0000000..aee2e78
Binary files /dev/null and b/CatasDeTests/.cataTesteDelete.py.swp differ
diff --git a/CatasDeTests/ReadMe.txt b/CatasDeTests/ReadMe.txt
new file mode 100644 (file)
index 0000000..fd82865
--- /dev/null
@@ -0,0 +1 @@
+xmllint --schema XMLSchema11.xsd cata_genere.xsd
diff --git a/CatasDeTests/cataListes.py b/CatasDeTests/cataListes.py
new file mode 100644 (file)
index 0000000..cf9b19b
--- /dev/null
@@ -0,0 +1,37 @@
+# Copyright (C) 2008-2018 EDF R&D
+#
+# This file is part of SALOME ADAO module
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+import os, re
+import Accas
+from Accas import *
+monFichier=os.path.abspath(__file__)
+
+JdC = JDC_CATA (
+    code='Essai'
+    )
+VERSION_CATALOGUE='V_0'
+
+# tout est Facultatif car sinon, on ne peut pas supprimer et c 'est ce qu on veut tester
+
+
+DefinitionListe = PROC( nom='DefinitionListe',
+        listeTexte = SIMP( statut='f', typ = 'TXM',max='**'),
+        listeIntInto = SIMP( statut='f', typ = 'I',homo="SansOrdreNiDoublon",max='**', into=(1,2,3,4)),
+        listeIntIntoOrdre = SIMP( statut='f', typ = 'I',max='**', into=(1,2,3,4)),
+)
diff --git a/CatasDeTests/cata_1.py b/CatasDeTests/cata_1.py
new file mode 100644 (file)
index 0000000..2a78327
--- /dev/null
@@ -0,0 +1,53 @@
+#  coding: utf-8 -*-
+#
+
+#import os
+#import types
+#monFile=os.path.abspath(__file__)
+
+from Accas import *
+import types
+
+#type UserASSD
+class User_Data(UserASSD): pass
+#type ASSD
+class Mesh(ASSD): pass
+class MeshU(UserASSD): pass
+
+#Be careful when modidying the order/names od the test_simp since they are used bye the documentation xsd_mapping.rst
+#beginJdC
+JdC   = JDC_CATA(code='Test1',)
+
+#Usecase 1abis : Le contenu de l'objet est completement déterminé par les paramètres suivants
+#CreateMesh    = OPER(nom = 'CreateMesh', sd_prod=Mesh,
+#                     meshname       = SIMP(typ='TXM'),
+#                     dimension      = SIMP(typ='I', into=[1,2,3]),
+#                     listOfEntities = SIMP(typ='I', max='**'),)
+##Usecase 1ater : Il est possible de créer plusieurs
+#CreateBoth   =  OPER(nom = 'CreateBoth', sd_prod=Mesh,
+#                     meshname       = SIMP(typ=(MeshU,'createObject')),
+#                     dimension      = SIMP(typ='I', into=[1,2,3]),
+#                     listOfEntities = SIMP(typ='I', max='**'),)
+#
+##Usecase 1b : Chaque champ (crée à la racine) utilise l'objet maillage précedement construit (à la racine)
+## statut='o', ??
+MyField  =   PROC(nom='MyField',
+                 onMesh = SIMP(statut='o',typ=Mesh),)
+
+#
+#############################
+##Usecase 2a : Il est possible de créer plusieurs maillages dans une structure nommée meshes
+## La définition du nom du maillage dans le JDD sert de référence à un notre mesh (un objet python du type UserASSD Mesh
+## est également crée pour l'occasion (sans paramètre au constructeur) ).
+## le typ <réel> du SIMP est en fait une chaîne pour laquelle il est possible d'ajouter un validateur.
+#Meshes   =   PROC(nom = 'Meshes',
+#                   mesh = FACT(max='**',
+#                               name           = SIMP(typ=(MeshU,'createObject')),
+#                               dimension      = SIMP(typ='I', into=[1,2,3]),
+#                               listOfEntities = SIMP(typ='I', max='**'),
+#                           ),
+#              )#Meshes
+
+#MyFieldBis  =   PROC(nom='MyFieldBis',
+#                 onMesh = SIMP(statut='o',typ=MeshU),)
+#
diff --git a/CatasDeTests/cata_1.xsd b/CatasDeTests/cata_1.xsd
new file mode 100644 (file)
index 0000000..aa2dca6
--- /dev/null
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+xmlns="http://chercheurs.edf.com/logiciels/Test1"
+xmlns:Test1="http://chercheurs.edf.com/logiciels/Test1"
+targetNamespace="http://chercheurs.edf.com/logiciels/Test1"
+elementFormDefault="qualified" attributeFormDefault="unqualified" version="0">
+       <xs:simpleType name="T_onMesh">
+               <xs:restriction base="Mesh_U">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:complexType name="T_MyField" >
+        <xs:complexContent>
+         <xs:extension base="T_step_Test1">
+               <xs:sequence>
+                       <xs:element name="onMesh" type="Test1:T_onMesh" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+         </xs:extension>
+        </xs:complexContent>
+       </xs:complexType>
+       <xs:element name="MyField" type="Test1:T_MyField" substitutionGroup="step_Test1"/>
+       <xs:complexType name="T_step_Test1" abstract="true"/>
+       <xs:element name="step_Test1" type="Test1:T_step_Test1"/>
+       <xs:element name="Test1" type="Test1:T_Test1"/>
+               <xs:complexType name="T_Test1">
+                 <xs:choice minOccurs="0" maxOccurs="unbounded">
+                       <xs:element ref="step_Test1" minOccurs="0" maxOccurs="1"/>
+                 </xs:choice>
+               </xs:complexType>
+</xs:schema>
\ No newline at end of file
diff --git a/CatasDeTests/cata_FactFreresMemesNoms.py b/CatasDeTests/cata_FactFreresMemesNoms.py
new file mode 100644 (file)
index 0000000..dbf6436
--- /dev/null
@@ -0,0 +1,61 @@
+# Copyright (C) 2008-2018 EDF R&D
+#
+# This file is part of SALOME ADAO module
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+import os, re
+import Accas
+from Accas import *
+monFichier=os.path.abspath(__file__)
+
+JdC = JDC_CATA (
+    code='Essai'
+    )
+VERSION_CATALOGUE='V_0'
+
+#leProc = PROC(nom = 'leProc',
+#      unSimp = SIMP(statut='o', typ ='I'),
+#      bloc1 = BLOC(condition = "UnSimp == 1",
+#         leFact1 = FACT(statut = 'o',
+#               Name = SIMP(typ='TXM', statut='o',),
+#               ScalarFluxModel = SIMP(typ='TXM', statut='o'),
+#          ),
+#      ), # fin bloc1
+#      bloc2 = BLOC(condition = "UnSimp == 2",
+#         leFact1 = FACT(statut = 'o',
+#               Name = SIMP(typ='TXM', statut='o',),
+#         ),
+#      )
+#)
+leProcV2 = PROC(nom = 'leProcV2',
+      unSimpV2 = SIMP(statut='o', typ ='I'),
+      blocV21 = BLOC(condition = "UnSimpV2 == 1",
+         leFactV21 = FACT(statut = 'o',
+            ScalarV2 = FACT(statut = 'f', max ='**',
+               NameV2 = SIMP(typ='TXM', statut='o',),
+               ScalarFluxModelV2 = SIMP(typ='TXM', statut='o'),
+            ),# Scalar
+          ),
+      ), # fin bloc1
+      blocV22 = BLOC(condition = "UnSimp == 2",
+         leFactV21 = FACT(statut = 'o',
+            ScalarV2 = FACT (  statut = 'f', max ='**',
+               NameV2 = SIMP(typ='TXM', statut='o',),
+          ),# ScalarV2
+         ),
+      ), # fin bloc2
+)
diff --git a/CatasDeTests/cata_FactFreresMemesNomsV1_ref.xsd b/CatasDeTests/cata_FactFreresMemesNomsV1_ref.xsd
new file mode 100644 (file)
index 0000000..6a7ea53
--- /dev/null
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+xmlns="http://chercheurs.edf.com/logiciels/Essai"
+xmlns:Essai="http://chercheurs.edf.com/logiciels/Essai"
+targetNamespace="http://chercheurs.edf.com/logiciels/Essai"
+elementFormDefault="qualified" attributeFormDefault="unqualified" version="0">
+       <xs:simpleType name="T_unSimp">
+               <xs:restriction base="xs:int">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Name">
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_ScalarFluxModel">
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:group name="T_bloc1_bloc2">
+               <xs:sequence>
+                       <xs:element name="leFact1" type="Essai:T_leFact1" minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:complexType name="T_leFact1" >
+               <xs:choice>
+               <xs:sequence>
+                       <xs:element name="Name" type="Essai:T_Name" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="ScalarFluxModel" type="Essai:T_ScalarFluxModel" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+               <xs:sequence>
+                       <xs:element name="Name" type="Essai:T_Name" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+               </xs:choice>
+       </xs:complexType>
+       <xs:complexType name="T_leProc" >
+        <xs:complexContent>
+         <xs:extension base="T_step_Essai">
+               <xs:sequence>
+                       <xs:element name="unSimp" type="Essai:T_unSimp" minOccurs="1" maxOccurs="1"/>
+                       <xs:group ref="Essai:T_bloc1_bloc2"  minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+         </xs:extension>
+        </xs:complexContent>
+       </xs:complexType>
+       <xs:element name="leProc" type="Essai:T_leProc" substitutionGroup="step_Essai"/>
+       <xs:complexType name="T_step_Essai" abstract="true"/>
+       <xs:element name="step_Essai" type="Essai:T_step_Essai"/>
+       <xs:element name="Essai" type="Essai:T_Essai"/>
+               <xs:complexType name="T_Essai">
+                 <xs:choice minOccurs="0" maxOccurs="unbounded">
+                       <xs:element ref="step_Essai" minOccurs="0" maxOccurs="1"/>
+                 </xs:choice>
+               </xs:complexType>
+</xs:schema>
\ No newline at end of file
diff --git a/CatasDeTests/cata_FactFreresMemesNoms_driver.py b/CatasDeTests/cata_FactFreresMemesNoms_driver.py
new file mode 100644 (file)
index 0000000..67aa30a
--- /dev/null
@@ -0,0 +1,2 @@
+# -*- coding: utf-8 -*-
+from raw.cata_FactFreresMemesNoms_driver import *
diff --git a/CatasDeTests/cata_FactFreresMemesNoms_ref.xsd b/CatasDeTests/cata_FactFreresMemesNoms_ref.xsd
new file mode 100644 (file)
index 0000000..d917bbc
--- /dev/null
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+xmlns="http://chercheurs.edf.com/logiciels/Essai"
+xmlns:Essai="http://chercheurs.edf.com/logiciels/Essai"
+targetNamespace="http://chercheurs.edf.com/logiciels/Essai"
+elementFormDefault="qualified" attributeFormDefault="unqualified" version="0">
+       <xs:simpleType name="T_unSimpV2">
+               <xs:restriction base="xs:int">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_NameV2">
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_ScalarFluxModelV2">
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:group name="T_blocV21_blocV22">
+               <xs:sequence>
+                       <xs:element name="leFactV21" type="Essai:T_leFactV21" minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:complexType name="T_leFactV21" >
+               <xs:sequence>
+                       <xs:element name="ScalarV2" type="Essai:T_ScalarV2" minOccurs="0" maxOccurs="unbounded"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="T_ScalarV2" >
+               <xs:choice>
+               <xs:sequence>
+                       <xs:element name="NameV2" type="Essai:T_NameV2" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="ScalarFluxModelV2" type="Essai:T_ScalarFluxModelV2" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+               <xs:sequence>
+                       <xs:element name="ScalarV2" type="Essai:T_ScalarV2" minOccurs="0" maxOccurs="unbounded"/>
+               </xs:sequence>
+               </xs:choice>
+       </xs:complexType>
+       <xs:complexType name="T_leProcV2" >
+        <xs:complexContent>
+         <xs:extension base="T_step_Essai">
+               <xs:sequence>
+                       <xs:element name="unSimpV2" type="Essai:T_unSimpV2" minOccurs="1" maxOccurs="1"/>
+                       <xs:group ref="Essai:T_blocV21_blocV22"  minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+         </xs:extension>
+        </xs:complexContent>
+       </xs:complexType>
+       <xs:element name="leProcV2" type="Essai:T_leProcV2" substitutionGroup="step_Essai"/>
+       <xs:complexType name="T_step_Essai" abstract="true"/>
+       <xs:element name="step_Essai" type="Essai:T_step_Essai"/>
+       <xs:element name="Essai" type="Essai:T_Essai"/>
+               <xs:complexType name="T_Essai">
+                 <xs:choice minOccurs="0" maxOccurs="unbounded">
+                       <xs:element ref="step_Essai" minOccurs="0" maxOccurs="1"/>
+                 </xs:choice>
+               </xs:complexType>
+</xs:schema>
diff --git a/CatasDeTests/cata_UserAssd.py b/CatasDeTests/cata_UserAssd.py
new file mode 100644 (file)
index 0000000..c6e8d2a
--- /dev/null
@@ -0,0 +1,68 @@
+# Copyright (C) 2008-2018 EDF R&D
+#
+# This file is part of SALOME ADAO module
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+import os, re
+import Accas
+from Accas import *
+monFichier=os.path.abspath(__file__)
+
+JdC = JDC_CATA (
+    code='Essai'
+    )
+VERSION_CATALOGUE='V_0'
+
+# tout est Facultatif car sinon, on ne peut pas supprimer et c 'est ce qu on veut tester
+
+class laClasseUser(UserASSD): pass
+class laClasseUserDerive(laClasseUser): pass
+class lASSD(ASSD): pass
+
+# En fait, cela n pas vraiment de sens que cela soit dans le fact
+# ou si ? pour l instant on laisse de cote
+
+DefinitionDsFactDsOper = OPER( nom='DefinitionDsFactDsOper', sd_prod=lASSD,
+     unFact1 = FACT(statut='f', max="**",
+        creeUserAssd = SIMP( statut='f', typ = (laClasseUser,'createObject'),),
+       ),
+)
+
+DefinitionDsSimpDsOper = OPER( nom='DefinitionDsSimpDsOper', sd_prod=lASSD,
+      creeUserAssd = SIMP( statut='f', typ = (laClasseUserDerive,'createObject'),),
+)
+
+DefinitionDsFactDsProc = PROC( nom='DefinitionDsFactDsProc',
+     unFact = FACT(statut='f',
+        creeUserAssd = SIMP( statut='f', typ = (laClasseUser,'createObject'),),
+       ),
+)
+DefinitionDsSimpDsProc = PROC( nom='DefinitionDsSimpDsProc',
+        creeUserAssd = SIMP( statut='f', typ = (laClasseUser,'createObject'),),
+)
+
+DefinitionDsSimpListe = PROC( nom='DefinitionDsSimpListe',
+        creeUserAssd = SIMP( statut='f', typ = (laClasseUser,'createObject'),max='**'),
+)
+
+UtiliseUnUserAssD = PROC( nom = 'UtiliseUnUserAssD',
+        utiliseUnUserAssd  = SIMP(statut= 'o',typ =laClasseUser),
+)
+UtiliseEtDefinitDsLeMemeProc = PROC( nom = 'UtiliseEtDefinitDsLeMemeProc',
+        utiliseUserAssd  = SIMP(statut= 'o',typ= laClasseUser,max='**'),
+        creeUserAssd = SIMP( statut='f', typ = (laClasseUser,'createObject'),),
+)
diff --git a/CatasDeTests/cata_UserAssd.xsd b/CatasDeTests/cata_UserAssd.xsd
new file mode 100644 (file)
index 0000000..083ea0c
--- /dev/null
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+xmlns="http://chercheurs.edf.com/logiciels/Essai"
+xmlns:Essai="http://chercheurs.edf.com/logiciels/Essai"
+targetNamespace="http://chercheurs.edf.com/logiciels/Essai"
+elementFormDefault="qualified" attributeFormDefault="unqualified" version="0">
+       <xs:simpleType name="AccasUserAssd">
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="laClasseUser_C">
+               <xs:restriction base="AccasUserAssd">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_creeUserAssd">
+               <xs:restriction base="laClasseUser_C">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="laClasseUserDerive_C">
+               <xs:restriction base="AccasUserAssd">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_creeUserAssd_2">
+               <xs:restriction base="laClasseUserDerive_C">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_creeUserAssd_4">
+               <xs:restriction>
+                       <xs:simpleType>
+                               <xs:list>
+                                       <xs:simpleType>
+                                               <xs:restriction base="laClasseUser_C">
+                                               </xs:restriction>
+                                       </xs:simpleType>
+                               </xs:list>
+                        </xs:simpleType>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="laClasseUser_U">
+               <xs:restriction base="AccasUserAssd">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_utiliseUserAssd">
+               <xs:restriction>
+                       <xs:simpleType>
+                               <xs:list>
+                                       <xs:simpleType>
+                                               <xs:restriction base="laClasseUser_U">
+                                               </xs:restriction>
+                                       </xs:simpleType>
+                               </xs:list>
+                        </xs:simpleType>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_utiliseUnUserAssd">
+               <xs:restriction base="laClasseUser_U">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:complexType name="T_unFact1" >
+               <xs:sequence>
+                       <xs:element name="creeUserAssd" type="Essai:T_creeUserAssd" minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="T_DefinitionDsFactDsOper" >
+        <xs:complexContent>
+         <xs:extension base="T_step_Essai">
+               <xs:sequence>
+                       <xs:element name="unFact1" type="Essai:T_unFact1" minOccurs="0" maxOccurs="unbounded"/>
+               </xs:sequence>
+               <xs:attribute name="accasName" type="xs:string"/>
+               <xs:attribute name="accasType" type="xs:string" fixed="ASSD"/>
+               <xs:attribute name="typeUtilisateur" type="xs:string" fixed="lASSD"/>
+         </xs:extension>
+        </xs:complexContent>
+       </xs:complexType>
+       <xs:complexType name="T_unFact" >
+               <xs:sequence>
+                       <xs:element name="creeUserAssd" type="Essai:T_creeUserAssd" minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="T_DefinitionDsFactDsProc" >
+        <xs:complexContent>
+         <xs:extension base="T_step_Essai">
+               <xs:sequence>
+                       <xs:element name="unFact" type="Essai:T_unFact" minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+         </xs:extension>
+        </xs:complexContent>
+       </xs:complexType>
+       <xs:complexType name="T_DefinitionDsSimpDsOper" >
+        <xs:complexContent>
+         <xs:extension base="T_step_Essai">
+               <xs:sequence>
+                       <xs:element name="creeUserAssd" type="Essai:T_creeUserAssd_2" minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+               <xs:attribute name="accasName" type="xs:string"/>
+               <xs:attribute name="accasType" type="xs:string" fixed="ASSD"/>
+               <xs:attribute name="typeUtilisateur" type="xs:string" fixed="lASSD"/>
+         </xs:extension>
+        </xs:complexContent>
+       </xs:complexType>
+       <xs:complexType name="T_DefinitionDsSimpDsProc" >
+        <xs:complexContent>
+         <xs:extension base="T_step_Essai">
+               <xs:sequence>
+                       <xs:element name="creeUserAssd" type="Essai:T_creeUserAssd" minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+         </xs:extension>
+        </xs:complexContent>
+       </xs:complexType>
+       <xs:complexType name="T_DefinitionDsSimpListe" >
+        <xs:complexContent>
+         <xs:extension base="T_step_Essai">
+               <xs:sequence>
+                       <xs:element name="creeUserAssd" type="Essai:T_creeUserAssd_4" minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+         </xs:extension>
+        </xs:complexContent>
+       </xs:complexType>
+       <xs:complexType name="T_UtiliseEtDefinitDsLeMemeProc" >
+        <xs:complexContent>
+         <xs:extension base="T_step_Essai">
+               <xs:sequence>
+                       <xs:element name="utiliseUserAssd" type="Essai:T_utiliseUserAssd" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="creeUserAssd" type="Essai:T_creeUserAssd" minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+         </xs:extension>
+        </xs:complexContent>
+       </xs:complexType>
+       <xs:complexType name="T_UtiliseUnUserAssD" >
+        <xs:complexContent>
+         <xs:extension base="T_step_Essai">
+               <xs:sequence>
+                       <xs:element name="utiliseUnUserAssd" type="Essai:T_utiliseUnUserAssd" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+         </xs:extension>
+        </xs:complexContent>
+       </xs:complexType>
+       <xs:element name="DefinitionDsFactDsOper" type="Essai:T_DefinitionDsFactDsOper" substitutionGroup="step_Essai"/>
+       <xs:element name="DefinitionDsFactDsProc" type="Essai:T_DefinitionDsFactDsProc" substitutionGroup="step_Essai"/>
+       <xs:element name="DefinitionDsSimpDsOper" type="Essai:T_DefinitionDsSimpDsOper" substitutionGroup="step_Essai"/>
+       <xs:element name="DefinitionDsSimpDsProc" type="Essai:T_DefinitionDsSimpDsProc" substitutionGroup="step_Essai"/>
+       <xs:element name="DefinitionDsSimpListe" type="Essai:T_DefinitionDsSimpListe" substitutionGroup="step_Essai"/>
+       <xs:element name="UtiliseEtDefinitDsLeMemeProc" type="Essai:T_UtiliseEtDefinitDsLeMemeProc" substitutionGroup="step_Essai"/>
+       <xs:element name="UtiliseUnUserAssD" type="Essai:T_UtiliseUnUserAssD" substitutionGroup="step_Essai"/>
+       <xs:complexType name="T_step_Essai" abstract="true"/>
+       <xs:element name="step_Essai" type="Essai:T_step_Essai"/>
+       <xs:element name="Essai" type="Essai:T_Essai"/>
+               <xs:complexType name="T_Essai">
+                 <xs:choice minOccurs="0" maxOccurs="unbounded">
+                       <xs:element ref="step_Essai" minOccurs="0" maxOccurs="1"/>
+                 </xs:choice>
+               </xs:complexType>
+       <xs:simpleType name="PNEFdico_Essai">
+               <xs:annotation>
+               <xs:documentation>{'T_creeUserAssd': {'_creeUserAssd_DefinitionDsSimpDsOper': 'T_creeUserAssd_2', '_creeUserAssd_DefinitionDsSimpListe': 'T_creeUserAssd_4'}}
+               </xs:documentation>
+               </xs:annotation>
+       <xs:restriction base="xs:string"></xs:restriction>
+       </xs:simpleType>
+</xs:schema>
\ No newline at end of file
diff --git a/CatasDeTests/cata_UserAssd.xsd_ref b/CatasDeTests/cata_UserAssd.xsd_ref
new file mode 100644 (file)
index 0000000..0650a12
--- /dev/null
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+xmlns="http://chercheurs.edf.com/logiciels/Essai"
+xmlns:Essai="http://chercheurs.edf.com/logiciels/Essai"
+targetNamespace="http://chercheurs.edf.com/logiciels/Essai"
+elementFormDefault="qualified" attributeFormDefault="unqualified" version="0">
+       <xs:simpleType name="AccasUserAssd">
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="laClasseUser">
+               <xs:restriction base="AccasUserAssd">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="laClasseUser_U">
+               <xs:restriction base="AccasUserAssd">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="laClasseUser_C">
+               <xs:restriction base="AccasUserAssd">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_creeUserAssd">
+               <xs:restriction base="laClasseUser_C">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_utiliseUnUserAssd">
+               <xs:restriction base="laClasseUser_U">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:complexType name="T_DefinitionDsSimpDsOper" >
+        <xs:complexContent>
+         <xs:extension base="T_step_Essai">
+               <xs:sequence>
+                       <xs:element name="creeUserAssd" type="Essai:T_creeUserAssd" minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+               <xs:attribute name="name" type="xs:string"/>
+               <xs:attribute name="accasType" type="xs:string" fixed="ASSD"/>
+               <xs:attribute name="typeUtilisateur" type="xs:string" fixed="lASSD"/>
+         </xs:extension>
+        </xs:complexContent>
+       </xs:complexType>
+       <xs:complexType name="T_UtiliseUnUserAssD" >
+        <xs:complexContent>
+         <xs:extension base="T_step_Essai">
+               <xs:sequence>
+                       <xs:element name="utiliseUnUserAssd" type="Essai:T_utiliseUnUserAssd" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+         </xs:extension>
+        </xs:complexContent>
+       </xs:complexType>
+       <xs:element name="DefinitionDsSimpDsOper" type="Essai:T_DefinitionDsSimpDsOper" substitutionGroup="step_Essai"/>
+       <xs:element name="UtiliseUnUserAssD" type="Essai:T_UtiliseUnUserAssD" substitutionGroup="step_Essai"/>
+       <xs:complexType name="T_step_Essai" abstract="true"/>
+       <xs:element name="step_Essai" type="Essai:T_step_Essai"/>
+       <xs:element name="Essai" type="Essai:T_Essai"/>
+               <xs:complexType name="T_Essai">
+                 <xs:choice minOccurs="0" maxOccurs="unbounded">
+                       <xs:element ref="step_Essai" minOccurs="0" maxOccurs="1"/>
+                 </xs:choice>
+               </xs:complexType>
+</xs:schema>
diff --git a/CatasDeTests/cata_UserAssd2.xsd b/CatasDeTests/cata_UserAssd2.xsd
new file mode 100644 (file)
index 0000000..74724aa
--- /dev/null
@@ -0,0 +1,184 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+xmlns="http://chercheurs.edf.com/logiciels/Essai"
+xmlns:Essai="http://chercheurs.edf.com/logiciels/Essai"
+targetNamespace="http://chercheurs.edf.com/logiciels/Essai"
+elementFormDefault="qualified" attributeFormDefault="unqualified" version="0">
+       <xs:simpleType name="T_creeUserAssd">
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_creeUserAssd2">
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+               <xs:attribute name="name" type="xs:string"/>
+               <xs:attribute name="accasType" type="xs:string" fixed="UserASSDCreation"/>
+               <xs:attribute name="typeUtilisateur" type="xs:string" fixed="laClasseUser"/>
+       </xs:simpleType>
+       <xs:simpleType name="T_creeUserAssd_4">
+               <xs:restriction>
+                       <xs:simpleType>
+                               <xs:list>
+                                       <xs:simpleType>
+                                               <xs:restriction base="xs:string">
+                                               </xs:restriction>
+                                       </xs:simpleType>
+                               </xs:list>
+                        </xs:simpleType>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_utiliseUserAssd">
+               <xs:restriction>
+                       <xs:simpleType>
+                               <xs:list>
+                                       <xs:simpleType>
+                                               <xs:restriction base="xs:string">
+                                               </xs:restriction>
+                                       </xs:simpleType>
+                               </xs:list>
+                        </xs:simpleType>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_utiliseListeUneListeUserAssd">
+               <xs:restriction>
+                       <xs:simpleType>
+                               <xs:list>
+                                       <xs:simpleType>
+                                               <xs:restriction base="xs:string">
+                                               </xs:restriction>
+                                       </xs:simpleType>
+                               </xs:list>
+                        </xs:simpleType>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:complexType name="T_unFact1" >
+               <xs:sequence>
+                       <xs:element name="creeUserAssd" type="Essai:T_creeUserAssd" minOccurs="0" maxOccurs="1">
+                       <xs:attribute name="name" type="xs:string"/>
+                       <xs:attribute name="accasType" type="xs:string" fixed="UserASSDCreation"/>
+                       <xs:attribute name="typeUtilisateur" type="xs:string" fixed="laClasseUser"/>
+                       </xs:element>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="T_DefinitionDsFactDsOper" >
+        <xs:complexContent>
+         <xs:extension base="T_step_Essai">
+               <xs:sequence>
+                       <xs:element name="unFact1" type="Essai:T_unFact1" minOccurs="0" maxOccurs="unbounded"/>
+               </xs:sequence>
+               <xs:attribute name="name" type="xs:string"/>
+               <xs:attribute name="accasType" type="xs:string" fixed="ASSD"/>
+               <xs:attribute name="typeUtilisateur" type="xs:string" fixed="lASSD"/>
+         </xs:extension>
+        </xs:complexContent>
+       </xs:complexType>
+       <xs:complexType name="T_unFact" >
+               <xs:sequence>
+                       <xs:element name="creeUserAssd" type="Essai:T_creeUserAssd" minOccurs="0" maxOccurs="1">
+                       <xs:attribute name="name" type="xs:string"/>
+                       <xs:attribute name="accasType" type="xs:string" fixed="UserASSDCreation"/>
+                       <xs:attribute name="typeUtilisateur" type="xs:string" fixed="laClasseUser"/>
+                       </xs:element>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="T_DefinitionDsFactDsProc" >
+        <xs:complexContent>
+         <xs:extension base="T_step_Essai">
+               <xs:sequence>
+                       <xs:element name="unFact" type="Essai:T_unFact" minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+         </xs:extension>
+        </xs:complexContent>
+       </xs:complexType>
+       <xs:complexType name="T_DefinitionDsSimpDsOper" >
+        <xs:complexContent>
+         <xs:extension base="T_step_Essai">
+               <xs:sequence>
+                       <xs:element name="creeUserAssd" type="Essai:T_creeUserAssd" minOccurs="0" maxOccurs="1">
+                       <xs:attribute name="name" type="xs:string"/>
+                       <xs:attribute name="accasType" type="xs:string" fixed="UserASSDCreation"/>
+                       <xs:attribute name="typeUtilisateur" type="xs:string" fixed="laClasseUser"/>
+                       </xs:element>
+               </xs:sequence>
+               <xs:attribute name="name" type="xs:string"/>
+               <xs:attribute name="accasType" type="xs:string" fixed="ASSD"/>
+               <xs:attribute name="typeUtilisateur" type="xs:string" fixed="lASSD"/>
+         </xs:extension>
+        </xs:complexContent>
+       </xs:complexType>
+       <xs:complexType name="T_DefinitionDsSimpDsProc" >
+        <xs:complexContent>
+         <xs:extension base="T_step_Essai">
+               <xs:sequence>
+                       <xs:element name="creeUserAssd" type="Essai:T_creeUserAssd" minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+         </xs:extension>
+        </xs:complexContent>
+       </xs:complexType>
+       <xs:complexType name="T_DefinitionDsSimpListe" >
+        <xs:complexContent>
+         <xs:extension base="T_step_Essai">
+               <xs:sequence>
+                       <xs:element name="creeUserAssd" type="Essai:T_creeUserAssd_4" minOccurs="0" maxOccurs="1">
+                       <xs:attribute name="name" type="xs:string"/>
+                       <xs:attribute name="accasType" type="xs:string" fixed="UserASSDCreation"/>
+                       <xs:attribute name="typeUtilisateur" type="xs:string" fixed="laClasseUser"/>
+                       </xs:element>
+               </xs:sequence>
+         </xs:extension>
+        </xs:complexContent>
+       </xs:complexType>
+       <xs:complexType name="T_UtiliseEtDefinitDsLeMemeProc" >
+        <xs:complexContent>
+         <xs:extension base="T_step_Essai">
+               <xs:sequence>
+                       <xs:element name="utiliseUserAssd" type="Essai:T_utiliseUserAssd" minOccurs="1" maxOccurs="1">
+                       <xs:attribute name="name" type="xs:string"/>
+                       <xs:attribute name="accasType" type="xs:string" fixed="UserASSDConsommation"/>
+                       <xs:attribute name="typeUtilisateur" type="xs:string" fixed="laClasseUser"/>
+                       </xs:element>
+                       <xs:element name="creeUserAssd" type="Essai:T_creeUserAssd" minOccurs="0" maxOccurs="1">
+                       <xs:attribute name="name" type="xs:string"/>
+                       <xs:attribute name="accasType" type="xs:string" fixed="UserASSDCreation"/>
+                       <xs:attribute name="typeUtilisateur" type="xs:string" fixed="laClasseUser"/>
+                       </xs:element>
+               </xs:sequence>
+         </xs:extension>
+        </xs:complexContent>
+       </xs:complexType>
+       <xs:complexType name="T_UtiliseUserAssD" >
+        <xs:complexContent>
+         <xs:extension base="T_step_Essai">
+               <xs:sequence>
+                       <xs:element name="utiliseListeUneListeUserAssd" type="Essai:T_utiliseListeUneListeUserAssd" minOccurs="1" maxOccurs="1">
+                       <xs:attribute name="name" type="xs:string"/>
+                       <xs:attribute name="accasType" type="xs:string" fixed="UserASSDConsommation"/>
+                       <xs:attribute name="typeUtilisateur" type="xs:string" fixed="laClasseUser"/>
+                       </xs:element>
+               </xs:sequence>
+         </xs:extension>
+        </xs:complexContent>
+       </xs:complexType>
+       <xs:element name="DefinitionDsFactDsOper" type="Essai:T_DefinitionDsFactDsOper" substitutionGroup="step_Essai"/>
+       <xs:element name="DefinitionDsFactDsProc" type="Essai:T_DefinitionDsFactDsProc" substitutionGroup="step_Essai"/>
+       <xs:element name="DefinitionDsSimpDsOper" type="Essai:T_DefinitionDsSimpDsOper" substitutionGroup="step_Essai"/>
+       <xs:element name="DefinitionDsSimpDsProc" type="Essai:T_DefinitionDsSimpDsProc" substitutionGroup="step_Essai"/>
+       <xs:element name="DefinitionDsSimpListe" type="Essai:T_DefinitionDsSimpListe" substitutionGroup="step_Essai"/>
+       <xs:element name="UtiliseEtDefinitDsLeMemeProc" type="Essai:T_UtiliseEtDefinitDsLeMemeProc" substitutionGroup="step_Essai"/>
+       <xs:element name="UtiliseUserAssD" type="Essai:T_UtiliseUserAssD" substitutionGroup="step_Essai"/>
+       <xs:complexType name="T_step_Essai" abstract="true"/>
+       <xs:element name="step_Essai" type="Essai:T_step_Essai"/>
+       <xs:element name="Essai" type="Essai:T_Essai"/>
+               <xs:complexType name="T_Essai">
+                 <xs:choice minOccurs="0" maxOccurs="unbounded">
+                       <xs:element ref="step_Essai" minOccurs="0" maxOccurs="1"/>
+                 </xs:choice>
+               </xs:complexType>
+       <xs:simpleType name="PNEFdico_Essai">
+               <xs:annotation>
+               <xs:documentation>{'T_creeUserAssd': {'_creeUserAssd_DefinitionDsSimpListe': 'T_creeUserAssd_4'}}
+               </xs:documentation>
+               </xs:annotation>
+       <xs:restriction base="xs:string"></xs:restriction>
+       </xs:simpleType>
+</xs:schema>
diff --git a/CatasDeTests/cata_UserAssd2_driver.py b/CatasDeTests/cata_UserAssd2_driver.py
new file mode 100644 (file)
index 0000000..16add34
--- /dev/null
@@ -0,0 +1,2 @@
+# -*- coding: utf-8 -*-
+from raw.cata_UserAssd2_driver import *
diff --git a/CatasDeTests/cata_UserAssd_driver.py b/CatasDeTests/cata_UserAssd_driver.py
new file mode 100644 (file)
index 0000000..52b0917
--- /dev/null
@@ -0,0 +1,2 @@
+# -*- coding: utf-8 -*-
+from raw.cata_UserAssd_driver import *
diff --git a/CatasDeTests/decorateur/metier.py b/CatasDeTests/decorateur/metier.py
new file mode 100644 (file)
index 0000000..7ccc9aa
--- /dev/null
@@ -0,0 +1,21 @@
+def MaFonction (monArgument1, monArgument2 = 3):
+    print ('********************************************')
+    print ('je passe dans MaFonction du catalogue metier')
+    print ('monArgument1 = ', monArgument1)
+    print ('monArgument2 = ', monArgument2)
+    print ('********************************************')
+
+# ----------------------------------------
+
+import os, sys
+if os.path.join(os.path.abspath(os.path.dirname(__file__)),'..') not in sys.path :
+   sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..'))
+from InterfaceQT4.eficas_go import validateFonction 
+
+#MaFonction('1er appel sans Validation')
+#MaFonction(1)
+MaFonction=validateFonction(MaFonction)
+#MaFonction('1er appel texte avec validation')
+MaFonction('1er appel texte avec validation', monArgument2= 33)
+MaFonction(1)
+
diff --git a/CatasDeTests/exemple.xml b/CatasDeTests/exemple.xml
new file mode 100644 (file)
index 0000000..e5a99c5
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" ?>
+<ns1:Essai xmlns:ns1="http://chercheurs.edf.com/logiciels/Essai" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+       <ns1:step_Essai typeUtilisateur="lASSD" xsi:type="ns1:T_DefinitionDsSimpDsOper">
+               <ns1:creeUserAssd typeUtilisateur="laClasseUser">aa</ns1:creeUserAssd>
+       </ns1:step_Essai>
+       <ns1:step_Essai xsi:type="ns1:T_DefinitionDsSimpDsOper">
+               <ns1:creeUserAssd>aa</ns1:creeUserAssd>
+       </ns1:step_Essai>
+</ns1:Essai>
+
diff --git a/CatasDeTests/generateXML.py b/CatasDeTests/generateXML.py
new file mode 100755 (executable)
index 0000000..687b9c8
--- /dev/null
@@ -0,0 +1,36 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2021   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+"""
+   Ce module sert a lancer EFICAS configure pour Meteo
+"""
+# Modules Python
+# Modules Eficas
+import prefs
+name='prefs_'+prefs.code
+__import__(name)
+
+import sys
+import os
+sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'../..'))
+
+import prefs
+from InterfaceQT4 import eficas_go
+eficas_go.genereXML(code=prefs.code)
diff --git a/CatasDeTests/generateXSD.py b/CatasDeTests/generateXSD.py
new file mode 100755 (executable)
index 0000000..4ba4b9f
--- /dev/null
@@ -0,0 +1,36 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2021   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+"""
+   Ce module sert a lancer EFICAS configure pour Meteo
+"""
+# Modules Python
+# Modules Eficas
+import prefs
+name='prefs_'+prefs.code
+__import__(name)
+
+import sys
+import os
+sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'../..'))
+
+import prefs
+from InterfaceQT4 import eficas_go
+eficas_go.genereXSD(code=prefs.code)
diff --git a/CatasDeTests/prefs.py b/CatasDeTests/prefs.py
new file mode 100644 (file)
index 0000000..6a364b8
--- /dev/null
@@ -0,0 +1,22 @@
+# Copyright (C) 2007-2021   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+code="Essai"
+import sys, os
+if os.path.dirname(os.path.abspath(__file__)) not in sys.path :
+    sys.path.insert(0,os.path.dirname(os.path.abspath(__file__)))
diff --git a/CatasDeTests/prefs_Essai.py b/CatasDeTests/prefs_Essai.py
new file mode 100644 (file)
index 0000000..694afe0
--- /dev/null
@@ -0,0 +1,50 @@
+# -*- coding: utf-8 -*-
+#            maConfiguration MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+
+import os,sys
+# repIni sert a localiser le fichier editeur.ini
+# Obligatoire
+repIni=os.path.dirname(os.path.abspath(__file__))
+INSTALLDIR=os.path.join(repIni,'..')
+sys.path[:0]=[INSTALLDIR]
+
+
+# lang indique la langue utilisee pour les chaines d'aide : fr ou ang
+lang='fr'
+
+# Codage des strings qui accepte les accents (en remplacement de 'ascii')
+encoding='iso-8859-1'
+
+#
+#typeDeCata='XML'
+catalogues=(
+    ('Essai','UserASSD',os.path.join(repIni,'cataListes.py'),'python','python'),
+)
+#nombreDeBoutonParLigne=4
+simpleClic=True
+#closeFrameRechercheCommande=True
+boutonDsMenuBar=False
+#closeArbre=True
+afficheListesPliees=False
+#withXSD=True
+afficheCommandesPliees = False
+#dumpXSD=True
+#afficheIhm=False
diff --git a/CatasDeTests/qtEficasEssai.py b/CatasDeTests/qtEficasEssai.py
new file mode 100755 (executable)
index 0000000..5ccf187
--- /dev/null
@@ -0,0 +1,36 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2021   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+"""
+   Ce module sert a lancer EFICAS configure pour MAP
+"""
+# Modules Python
+# Modules Eficas
+import prefs
+name='prefs_'+prefs.code
+__import__(name)
+
+import os, sys
+sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..'))
+
+import prefs
+from InterfaceQT4 import eficas_go
+print (prefs.code)
+eficas_go.lanceEficas(code=prefs.code)
diff --git a/CatasDeTests/raw/__init__.py b/CatasDeTests/raw/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/CatasDeTests/raw/cata_FactFreresMemesNoms_driver.py b/CatasDeTests/raw/cata_FactFreresMemesNoms_driver.py
new file mode 100644 (file)
index 0000000..70befdf
--- /dev/null
@@ -0,0 +1,359 @@
+# ./raw/cata_FactFreresMemesNoms_driver.py
+# -*- coding: utf-8 -*-
+# PyXB bindings for NM:9c3bd166183fcfc95687f415bcc4a066eb33ac79
+# Generated 2020-10-22 12:32:22.612163 by PyXB version 1.2.5 using Python 3.4.2.final.0
+# Namespace http://chercheurs.edf.com/logiciels/Essai
+
+from __future__ import unicode_literals
+import pyxb
+import pyxb.binding
+import pyxb.binding.saxer
+import io
+import pyxb.utils.utility
+import pyxb.utils.domutils
+import sys
+import pyxb.utils.six as _six
+# Unique identifier for bindings created at the same time
+_GenerationUID = pyxb.utils.utility.UniqueIdentifier('urn:uuid:deafbfb4-1451-11eb-b347-cc3d82d871d8')
+
+# Version of PyXB used to generate the bindings
+_PyXBVersion = '1.2.5'
+# Generated bindings are not compatible across PyXB versions
+if pyxb.__version__ != _PyXBVersion:
+    raise pyxb.PyXBVersionError(_PyXBVersion)
+
+# A holder for module-level binding classes so we can access them from
+# inside class definitions where property names may conflict.
+_module_typeBindings = pyxb.utils.utility.Object()
+
+# Import bindings for namespaces imported into schema
+import pyxb.binding.datatypes
+
+# NOTE: All namespace declarations are reserved within the binding
+Namespace = pyxb.namespace.NamespaceForURI('http://chercheurs.edf.com/logiciels/Essai', create_if_missing=True)
+Namespace.configureCategories(['typeBinding', 'elementBinding'])
+
+def CreateFromDocument (xml_text, default_namespace=None, location_base=None):
+    """Parse the given XML and use the document element to create a
+    Python instance.
+
+    @param xml_text An XML document.  This should be data (Python 2
+    str or Python 3 bytes), or a text (Python 2 unicode or Python 3
+    str) in the L{pyxb._InputEncoding} encoding.
+
+    @keyword default_namespace The L{pyxb.Namespace} instance to use as the
+    default namespace where there is no default namespace in scope.
+    If unspecified or C{None}, the namespace of the module containing
+    this function will be used.
+
+    @keyword location_base: An object to be recorded as the base of all
+    L{pyxb.utils.utility.Location} instances associated with events and
+    objects handled by the parser.  You might pass the URI from which
+    the document was obtained.
+    """
+
+    if pyxb.XMLStyle_saxer != pyxb._XMLStyle:
+        dom = pyxb.utils.domutils.StringToDOM(xml_text)
+        return CreateFromDOM(dom.documentElement, default_namespace=default_namespace)
+    if default_namespace is None:
+        default_namespace = Namespace.fallbackNamespace()
+    saxer = pyxb.binding.saxer.make_parser(fallback_namespace=default_namespace, location_base=location_base)
+    handler = saxer.getContentHandler()
+    xmld = xml_text
+    if isinstance(xmld, _six.text_type):
+        xmld = xmld.encode(pyxb._InputEncoding)
+    saxer.parse(io.BytesIO(xmld))
+    instance = handler.rootObject()
+    return instance
+
+def CreateFromDOM (node, default_namespace=None):
+    """Create a Python instance from the given DOM node.
+    The node tag must correspond to an element declaration in this module.
+
+    @deprecated: Forcing use of DOM interface is unnecessary; use L{CreateFromDocument}."""
+    if default_namespace is None:
+        default_namespace = Namespace.fallbackNamespace()
+    return pyxb.binding.basis.element.AnyCreateFromDOM(node, default_namespace)
+
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/Essai}T_unSimp
+class T_unSimp (pyxb.binding.datatypes.int):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_unSimp')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_FactFreresMemesNoms.xsd', 7, 1)
+    _Documentation = None
+T_unSimp._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', 'T_unSimp', T_unSimp)
+_module_typeBindings.T_unSimp = T_unSimp
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/Essai}T_Name
+class T_Name (pyxb.binding.datatypes.string):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_Name')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_FactFreresMemesNoms.xsd', 11, 1)
+    _Documentation = None
+T_Name._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', 'T_Name', T_Name)
+_module_typeBindings.T_Name = T_Name
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/Essai}T_ScalarFluxModel
+class T_ScalarFluxModel (pyxb.binding.datatypes.string):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_ScalarFluxModel')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_FactFreresMemesNoms.xsd', 15, 1)
+    _Documentation = None
+T_ScalarFluxModel._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', 'T_ScalarFluxModel', T_ScalarFluxModel)
+_module_typeBindings.T_ScalarFluxModel = T_ScalarFluxModel
+
+# Complex type {http://chercheurs.edf.com/logiciels/Essai}T_leFact1 with content type ELEMENT_ONLY
+class T_leFact1 (pyxb.binding.basis.complexTypeDefinition):
+    """Complex type {http://chercheurs.edf.com/logiciels/Essai}T_leFact1 with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_leFact1')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_FactFreresMemesNoms.xsd', 24, 1)
+    _ElementMap = {}
+    _AttributeMap = {}
+    # Base type is pyxb.binding.datatypes.anyType
+    
+    # Element {http://chercheurs.edf.com/logiciels/Essai}Name uses Python identifier Name
+    __Name = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'Name'), 'Name', '__httpchercheurs_edf_comlogicielsEssai_T_leFact1_httpchercheurs_edf_comlogicielsEssaiName', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_FactFreresMemesNoms.xsd', 27, 3), )
+
+    
+    Name = property(__Name.value, __Name.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/Essai}ScalarFluxModel uses Python identifier ScalarFluxModel
+    __ScalarFluxModel = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'ScalarFluxModel'), 'ScalarFluxModel', '__httpchercheurs_edf_comlogicielsEssai_T_leFact1_httpchercheurs_edf_comlogicielsEssaiScalarFluxModel', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_FactFreresMemesNoms.xsd', 28, 3), )
+
+    
+    ScalarFluxModel = property(__ScalarFluxModel.value, __ScalarFluxModel.set, None, None)
+
+    _ElementMap.update({
+        __Name.name() : __Name,
+        __ScalarFluxModel.name() : __ScalarFluxModel
+    })
+    _AttributeMap.update({
+        
+    })
+_module_typeBindings.T_leFact1 = T_leFact1
+Namespace.addCategoryObject('typeBinding', 'T_leFact1', T_leFact1)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/Essai}T_step_Essai with content type EMPTY
+class T_step_Essai (pyxb.binding.basis.complexTypeDefinition):
+    """Complex type {http://chercheurs.edf.com/logiciels/Essai}T_step_Essai with content type EMPTY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_EMPTY
+    _Abstract = True
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_step_Essai')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_FactFreresMemesNoms.xsd', 46, 1)
+    _ElementMap = {}
+    _AttributeMap = {}
+    # Base type is pyxb.binding.datatypes.anyType
+    _ElementMap.update({
+        
+    })
+    _AttributeMap.update({
+        
+    })
+_module_typeBindings.T_step_Essai = T_step_Essai
+Namespace.addCategoryObject('typeBinding', 'T_step_Essai', T_step_Essai)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/Essai}T_Essai with content type ELEMENT_ONLY
+class T_Essai (pyxb.binding.basis.complexTypeDefinition):
+    """Complex type {http://chercheurs.edf.com/logiciels/Essai}T_Essai with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_Essai')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_FactFreresMemesNoms.xsd', 49, 2)
+    _ElementMap = {}
+    _AttributeMap = {}
+    # Base type is pyxb.binding.datatypes.anyType
+    
+    # Element {http://chercheurs.edf.com/logiciels/Essai}step_Essai uses Python identifier step_Essai
+    __step_Essai = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'step_Essai'), 'step_Essai', '__httpchercheurs_edf_comlogicielsEssai_T_Essai_httpchercheurs_edf_comlogicielsEssaistep_Essai', True, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_FactFreresMemesNoms.xsd', 47, 1), )
+
+    
+    step_Essai = property(__step_Essai.value, __step_Essai.set, None, None)
+
+    _ElementMap.update({
+        __step_Essai.name() : __step_Essai
+    })
+    _AttributeMap.update({
+        
+    })
+_module_typeBindings.T_Essai = T_Essai
+Namespace.addCategoryObject('typeBinding', 'T_Essai', T_Essai)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/Essai}T_leProc with content type ELEMENT_ONLY
+class T_leProc (T_step_Essai):
+    """Complex type {http://chercheurs.edf.com/logiciels/Essai}T_leProc with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_leProc')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_FactFreresMemesNoms.xsd', 35, 1)
+    _ElementMap = T_step_Essai._ElementMap.copy()
+    _AttributeMap = T_step_Essai._AttributeMap.copy()
+    # Base type is T_step_Essai
+    
+    # Element {http://chercheurs.edf.com/logiciels/Essai}leFact1 uses Python identifier leFact1
+    __leFact1 = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'leFact1'), 'leFact1', '__httpchercheurs_edf_comlogicielsEssai_T_leProc_httpchercheurs_edf_comlogicielsEssaileFact1', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_FactFreresMemesNoms.xsd', 21, 3), )
+
+    
+    leFact1 = property(__leFact1.value, __leFact1.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/Essai}unSimp uses Python identifier unSimp
+    __unSimp = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'unSimp'), 'unSimp', '__httpchercheurs_edf_comlogicielsEssai_T_leProc_httpchercheurs_edf_comlogicielsEssaiunSimp', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_FactFreresMemesNoms.xsd', 39, 3), )
+
+    
+    unSimp = property(__unSimp.value, __unSimp.set, None, None)
+
+    _ElementMap.update({
+        __leFact1.name() : __leFact1,
+        __unSimp.name() : __unSimp
+    })
+    _AttributeMap.update({
+        
+    })
+_module_typeBindings.T_leProc = T_leProc
+Namespace.addCategoryObject('typeBinding', 'T_leProc', T_leProc)
+
+
+step_Essai = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'step_Essai'), T_step_Essai, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_FactFreresMemesNoms.xsd', 47, 1))
+Namespace.addCategoryObject('elementBinding', step_Essai.name().localName(), step_Essai)
+
+Essai = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'Essai'), T_Essai, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_FactFreresMemesNoms.xsd', 48, 1))
+Namespace.addCategoryObject('elementBinding', Essai.name().localName(), Essai)
+
+leProc = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'leProc'), T_leProc, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_FactFreresMemesNoms.xsd', 45, 1))
+Namespace.addCategoryObject('elementBinding', leProc.name().localName(), leProc)
+
+
+
+T_leFact1._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'Name'), T_Name, scope=T_leFact1, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_FactFreresMemesNoms.xsd', 27, 3)))
+
+T_leFact1._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'ScalarFluxModel'), T_ScalarFluxModel, scope=T_leFact1, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_FactFreresMemesNoms.xsd', 28, 3)))
+
+def _BuildAutomaton ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton
+    del _BuildAutomaton
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    states = []
+    final_update = None
+    symbol = pyxb.binding.content.ElementUse(T_leFact1._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'Name')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_FactFreresMemesNoms.xsd', 27, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    final_update = set()
+    symbol = pyxb.binding.content.ElementUse(T_leFact1._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'ScalarFluxModel')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_FactFreresMemesNoms.xsd', 28, 3))
+    st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_1)
+    final_update = set()
+    symbol = pyxb.binding.content.ElementUse(T_leFact1._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'Name')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_FactFreresMemesNoms.xsd', 31, 3))
+    st_2 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_2)
+    transitions = []
+    transitions.append(fac.Transition(st_1, [
+         ]))
+    st_0._set_transitionSet(transitions)
+    transitions = []
+    st_1._set_transitionSet(transitions)
+    transitions = []
+    st_2._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, False, containing_state=None)
+T_leFact1._Automaton = _BuildAutomaton()
+
+
+
+
+T_Essai._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'step_Essai'), T_step_Essai, scope=T_Essai, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_FactFreresMemesNoms.xsd', 47, 1)))
+
+def _BuildAutomaton_ ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_
+    del _BuildAutomaton_
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_FactFreresMemesNoms.xsd', 50, 4))
+    counters.add(cc_0)
+    cc_1 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_FactFreresMemesNoms.xsd', 51, 3))
+    counters.add(cc_1)
+    states = []
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_0, False))
+    final_update.add(fac.UpdateInstruction(cc_1, False))
+    symbol = pyxb.binding.content.ElementUse(T_Essai._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'step_Essai')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_FactFreresMemesNoms.xsd', 51, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_0, True),
+        fac.UpdateInstruction(cc_1, False) ]))
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_1, True) ]))
+    st_0._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, True, containing_state=None)
+T_Essai._Automaton = _BuildAutomaton_()
+
+
+
+
+T_leProc._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'leFact1'), T_leFact1, scope=T_leProc, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_FactFreresMemesNoms.xsd', 21, 3)))
+
+T_leProc._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'unSimp'), T_unSimp, scope=T_leProc, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_FactFreresMemesNoms.xsd', 39, 3)))
+
+def _BuildAutomaton_2 ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_2
+    del _BuildAutomaton_2
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_FactFreresMemesNoms.xsd', 40, 3))
+    counters.add(cc_0)
+    cc_1 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_FactFreresMemesNoms.xsd', 21, 3))
+    counters.add(cc_1)
+    states = []
+    final_update = set()
+    symbol = pyxb.binding.content.ElementUse(T_leProc._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'unSimp')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_FactFreresMemesNoms.xsd', 39, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_0, False))
+    final_update.add(fac.UpdateInstruction(cc_1, False))
+    symbol = pyxb.binding.content.ElementUse(T_leProc._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'leFact1')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_FactFreresMemesNoms.xsd', 21, 3))
+    st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_1)
+    transitions = []
+    transitions.append(fac.Transition(st_1, [
+         ]))
+    st_0._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_1, [
+        fac.UpdateInstruction(cc_0, True),
+        fac.UpdateInstruction(cc_1, False) ]))
+    transitions.append(fac.Transition(st_1, [
+        fac.UpdateInstruction(cc_1, True) ]))
+    st_1._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, False, containing_state=None)
+T_leProc._Automaton = _BuildAutomaton_2()
+
+
+leProc._setSubstitutionGroup(step_Essai)
diff --git a/CatasDeTests/raw/cata_UserAssd2_driver.py b/CatasDeTests/raw/cata_UserAssd2_driver.py
new file mode 100644 (file)
index 0000000..5927f1f
--- /dev/null
@@ -0,0 +1,917 @@
+# ./raw/cata_UserAssd2_driver.py
+# -*- coding: utf-8 -*-
+# PyXB bindings for NM:9c3bd166183fcfc95687f415bcc4a066eb33ac79
+# Generated 2020-10-14 16:20:43.053836 by PyXB version 1.2.5 using Python 3.4.2.final.0
+# Namespace http://chercheurs.edf.com/logiciels/Essai
+
+from __future__ import unicode_literals
+import pyxb
+import pyxb.binding
+import pyxb.binding.saxer
+import io
+import pyxb.utils.utility
+import pyxb.utils.domutils
+import sys
+import pyxb.utils.six as _six
+# Unique identifier for bindings created at the same time
+_GenerationUID = pyxb.utils.utility.UniqueIdentifier('urn:uuid:71791ae6-0e28-11eb-9ba5-cc3d82d871d8')
+
+# Version of PyXB used to generate the bindings
+_PyXBVersion = '1.2.5'
+# Generated bindings are not compatible across PyXB versions
+if pyxb.__version__ != _PyXBVersion:
+    raise pyxb.PyXBVersionError(_PyXBVersion)
+
+# A holder for module-level binding classes so we can access them from
+# inside class definitions where property names may conflict.
+_module_typeBindings = pyxb.utils.utility.Object()
+
+# Import bindings for namespaces imported into schema
+import pyxb.binding.datatypes
+
+# NOTE: All namespace declarations are reserved within the binding
+Namespace = pyxb.namespace.NamespaceForURI('http://chercheurs.edf.com/logiciels/Essai', create_if_missing=True)
+Namespace.configureCategories(['typeBinding', 'elementBinding'])
+
+def CreateFromDocument (xml_text, default_namespace=None, location_base=None):
+    """Parse the given XML and use the document element to create a
+    Python instance.
+
+    @param xml_text An XML document.  This should be data (Python 2
+    str or Python 3 bytes), or a text (Python 2 unicode or Python 3
+    str) in the L{pyxb._InputEncoding} encoding.
+
+    @keyword default_namespace The L{pyxb.Namespace} instance to use as the
+    default namespace where there is no default namespace in scope.
+    If unspecified or C{None}, the namespace of the module containing
+    this function will be used.
+
+    @keyword location_base: An object to be recorded as the base of all
+    L{pyxb.utils.utility.Location} instances associated with events and
+    objects handled by the parser.  You might pass the URI from which
+    the document was obtained.
+    """
+
+    if pyxb.XMLStyle_saxer != pyxb._XMLStyle:
+        dom = pyxb.utils.domutils.StringToDOM(xml_text)
+        return CreateFromDOM(dom.documentElement, default_namespace=default_namespace)
+    if default_namespace is None:
+        default_namespace = Namespace.fallbackNamespace()
+    saxer = pyxb.binding.saxer.make_parser(fallback_namespace=default_namespace, location_base=location_base)
+    handler = saxer.getContentHandler()
+    xmld = xml_text
+    if isinstance(xmld, _six.text_type):
+        xmld = xmld.encode(pyxb._InputEncoding)
+    saxer.parse(io.BytesIO(xmld))
+    instance = handler.rootObject()
+    return instance
+
+def CreateFromDOM (node, default_namespace=None):
+    """Create a Python instance from the given DOM node.
+    The node tag must correspond to an element declaration in this module.
+
+    @deprecated: Forcing use of DOM interface is unnecessary; use L{CreateFromDocument}."""
+    if default_namespace is None:
+        default_namespace = Namespace.fallbackNamespace()
+    return pyxb.binding.basis.element.AnyCreateFromDOM(node, default_namespace)
+
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/Essai}T_creeUserAssd
+class T_creeUserAssd (pyxb.binding.datatypes.string):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_creeUserAssd')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 7, 1)
+    _Documentation = None
+T_creeUserAssd._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', 'T_creeUserAssd', T_creeUserAssd)
+_module_typeBindings.T_creeUserAssd = T_creeUserAssd
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/Essai}T_creeUserAssd2
+class T_creeUserAssd2 (pyxb.binding.datatypes.string):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_creeUserAssd2')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 11, 1)
+    _Documentation = None
+T_creeUserAssd2._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', 'T_creeUserAssd2', T_creeUserAssd2)
+_module_typeBindings.T_creeUserAssd2 = T_creeUserAssd2
+
+# Atomic simple type: [anonymous]
+class STD_ANON (pyxb.binding.datatypes.string):
+
+    """An atomic simple type."""
+
+    _ExpandedName = None
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 22, 5)
+    _Documentation = None
+STD_ANON._InitializeFacetMap()
+_module_typeBindings.STD_ANON = STD_ANON
+
+# Atomic simple type: [anonymous]
+class STD_ANON_ (pyxb.binding.datatypes.string):
+
+    """An atomic simple type."""
+
+    _ExpandedName = None
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 34, 5)
+    _Documentation = None
+STD_ANON_._InitializeFacetMap()
+_module_typeBindings.STD_ANON_ = STD_ANON_
+
+# Atomic simple type: [anonymous]
+class STD_ANON_2 (pyxb.binding.datatypes.string):
+
+    """An atomic simple type."""
+
+    _ExpandedName = None
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 46, 5)
+    _Documentation = None
+STD_ANON_2._InitializeFacetMap()
+_module_typeBindings.STD_ANON_2 = STD_ANON_2
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/Essai}PNEFdico_Essai
+class PNEFdico_Essai (pyxb.binding.datatypes.string):
+
+    """{'T_creeUserAssd': {'_creeUserAssd_DefinitionDsSimpListe': 'T_creeUserAssd_4'}}
+               """
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'PNEFdico_Essai')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 177, 1)
+    _Documentation = "{'T_creeUserAssd': {'_creeUserAssd_DefinitionDsSimpListe': 'T_creeUserAssd_4'}}\n\t\t"
+PNEFdico_Essai._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', 'PNEFdico_Essai', PNEFdico_Essai)
+_module_typeBindings.PNEFdico_Essai = PNEFdico_Essai
+
+# List simple type: [anonymous]
+# superclasses pyxb.binding.datatypes.anySimpleType
+class STD_ANON_3 (pyxb.binding.basis.STD_list):
+
+    """Simple type that is a list of STD_ANON."""
+
+    _ExpandedName = None
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 20, 3)
+    _Documentation = None
+
+    _ItemType = STD_ANON
+STD_ANON_3._InitializeFacetMap()
+_module_typeBindings.STD_ANON_3 = STD_ANON_3
+
+# List simple type: [anonymous]
+# superclasses pyxb.binding.datatypes.anySimpleType
+class STD_ANON_4 (pyxb.binding.basis.STD_list):
+
+    """Simple type that is a list of STD_ANON_."""
+
+    _ExpandedName = None
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 32, 3)
+    _Documentation = None
+
+    _ItemType = STD_ANON_
+STD_ANON_4._InitializeFacetMap()
+_module_typeBindings.STD_ANON_4 = STD_ANON_4
+
+# List simple type: [anonymous]
+# superclasses pyxb.binding.datatypes.anySimpleType
+class STD_ANON_5 (pyxb.binding.basis.STD_list):
+
+    """Simple type that is a list of STD_ANON_2."""
+
+    _ExpandedName = None
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 44, 3)
+    _Documentation = None
+
+    _ItemType = STD_ANON_2
+STD_ANON_5._InitializeFacetMap()
+_module_typeBindings.STD_ANON_5 = STD_ANON_5
+
+# List simple type: {http://chercheurs.edf.com/logiciels/Essai}T_creeUserAssd_4
+# superclasses STD_ANON_3
+class T_creeUserAssd_4 (pyxb.binding.basis.STD_list):
+
+    """Simple type that is a list of STD_ANON."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_creeUserAssd_4')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 18, 1)
+    _Documentation = None
+
+    _ItemType = STD_ANON
+T_creeUserAssd_4._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', 'T_creeUserAssd_4', T_creeUserAssd_4)
+_module_typeBindings.T_creeUserAssd_4 = T_creeUserAssd_4
+
+# List simple type: {http://chercheurs.edf.com/logiciels/Essai}T_utiliseUserAssd
+# superclasses STD_ANON_4
+class T_utiliseUserAssd (pyxb.binding.basis.STD_list):
+
+    """Simple type that is a list of STD_ANON_."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_utiliseUserAssd')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 30, 1)
+    _Documentation = None
+
+    _ItemType = STD_ANON_
+T_utiliseUserAssd._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', 'T_utiliseUserAssd', T_utiliseUserAssd)
+_module_typeBindings.T_utiliseUserAssd = T_utiliseUserAssd
+
+# List simple type: {http://chercheurs.edf.com/logiciels/Essai}T_utiliseListeUneListeUserAssd
+# superclasses STD_ANON_5
+class T_utiliseListeUneListeUserAssd (pyxb.binding.basis.STD_list):
+
+    """Simple type that is a list of STD_ANON_2."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_utiliseListeUneListeUserAssd')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 42, 1)
+    _Documentation = None
+
+    _ItemType = STD_ANON_2
+T_utiliseListeUneListeUserAssd._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', 'T_utiliseListeUneListeUserAssd', T_utiliseListeUneListeUserAssd)
+_module_typeBindings.T_utiliseListeUneListeUserAssd = T_utiliseListeUneListeUserAssd
+
+# Complex type {http://chercheurs.edf.com/logiciels/Essai}T_unFact1 with content type ELEMENT_ONLY
+class T_unFact1 (pyxb.binding.basis.complexTypeDefinition):
+    """Complex type {http://chercheurs.edf.com/logiciels/Essai}T_unFact1 with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_unFact1')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 54, 1)
+    _ElementMap = {}
+    _AttributeMap = {}
+    # Base type is pyxb.binding.datatypes.anyType
+    
+    # Element {http://chercheurs.edf.com/logiciels/Essai}creeUserAssd uses Python identifier creeUserAssd
+    __creeUserAssd = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd'), 'creeUserAssd', '__httpchercheurs_edf_comlogicielsEssai_T_unFact1_httpchercheurs_edf_comlogicielsEssaicreeUserAssd', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 56, 3), )
+
+    
+    creeUserAssd = property(__creeUserAssd.value, __creeUserAssd.set, None, None)
+
+    _ElementMap.update({
+        __creeUserAssd.name() : __creeUserAssd
+    })
+    _AttributeMap.update({
+        
+    })
+_module_typeBindings.T_unFact1 = T_unFact1
+Namespace.addCategoryObject('typeBinding', 'T_unFact1', T_unFact1)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/Essai}T_unFact with content type ELEMENT_ONLY
+class T_unFact (pyxb.binding.basis.complexTypeDefinition):
+    """Complex type {http://chercheurs.edf.com/logiciels/Essai}T_unFact with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_unFact')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 75, 1)
+    _ElementMap = {}
+    _AttributeMap = {}
+    # Base type is pyxb.binding.datatypes.anyType
+    
+    # Element {http://chercheurs.edf.com/logiciels/Essai}creeUserAssd uses Python identifier creeUserAssd
+    __creeUserAssd = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd'), 'creeUserAssd', '__httpchercheurs_edf_comlogicielsEssai_T_unFact_httpchercheurs_edf_comlogicielsEssaicreeUserAssd', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 77, 3), )
+
+    
+    creeUserAssd = property(__creeUserAssd.value, __creeUserAssd.set, None, None)
+
+    _ElementMap.update({
+        __creeUserAssd.name() : __creeUserAssd
+    })
+    _AttributeMap.update({
+        
+    })
+_module_typeBindings.T_unFact = T_unFact
+Namespace.addCategoryObject('typeBinding', 'T_unFact', T_unFact)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/Essai}T_step_Essai with content type EMPTY
+class T_step_Essai (pyxb.binding.basis.complexTypeDefinition):
+    """Complex type {http://chercheurs.edf.com/logiciels/Essai}T_step_Essai with content type EMPTY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_EMPTY
+    _Abstract = True
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_step_Essai')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 169, 1)
+    _ElementMap = {}
+    _AttributeMap = {}
+    # Base type is pyxb.binding.datatypes.anyType
+    _ElementMap.update({
+        
+    })
+    _AttributeMap.update({
+        
+    })
+_module_typeBindings.T_step_Essai = T_step_Essai
+Namespace.addCategoryObject('typeBinding', 'T_step_Essai', T_step_Essai)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/Essai}T_Essai with content type ELEMENT_ONLY
+class T_Essai (pyxb.binding.basis.complexTypeDefinition):
+    """Complex type {http://chercheurs.edf.com/logiciels/Essai}T_Essai with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_Essai')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 172, 2)
+    _ElementMap = {}
+    _AttributeMap = {}
+    # Base type is pyxb.binding.datatypes.anyType
+    
+    # Element {http://chercheurs.edf.com/logiciels/Essai}step_Essai uses Python identifier step_Essai
+    __step_Essai = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'step_Essai'), 'step_Essai', '__httpchercheurs_edf_comlogicielsEssai_T_Essai_httpchercheurs_edf_comlogicielsEssaistep_Essai', True, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 170, 1), )
+
+    
+    step_Essai = property(__step_Essai.value, __step_Essai.set, None, None)
+
+    _ElementMap.update({
+        __step_Essai.name() : __step_Essai
+    })
+    _AttributeMap.update({
+        
+    })
+_module_typeBindings.T_Essai = T_Essai
+Namespace.addCategoryObject('typeBinding', 'T_Essai', T_Essai)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/Essai}T_DefinitionDsFactDsOper with content type ELEMENT_ONLY
+class T_DefinitionDsFactDsOper (T_step_Essai):
+    """Complex type {http://chercheurs.edf.com/logiciels/Essai}T_DefinitionDsFactDsOper with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_DefinitionDsFactDsOper')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 63, 1)
+    _ElementMap = T_step_Essai._ElementMap.copy()
+    _AttributeMap = T_step_Essai._AttributeMap.copy()
+    # Base type is T_step_Essai
+    
+    # Element {http://chercheurs.edf.com/logiciels/Essai}unFact1 uses Python identifier unFact1
+    __unFact1 = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'unFact1'), 'unFact1', '__httpchercheurs_edf_comlogicielsEssai_T_DefinitionDsFactDsOper_httpchercheurs_edf_comlogicielsEssaiunFact1', True, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 67, 3), )
+
+    
+    unFact1 = property(__unFact1.value, __unFact1.set, None, None)
+
+    
+    # Attribute name uses Python identifier name
+    __name = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'name'), 'name', '__httpchercheurs_edf_comlogicielsEssai_T_DefinitionDsFactDsOper_name', pyxb.binding.datatypes.string)
+    __name._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 69, 2)
+    __name._UseLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 69, 2)
+    
+    name = property(__name.value, __name.set, None, None)
+
+    
+    # Attribute accasType uses Python identifier accasType
+    __accasType = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'accasType'), 'accasType', '__httpchercheurs_edf_comlogicielsEssai_T_DefinitionDsFactDsOper_accasType', pyxb.binding.datatypes.string, fixed=True, unicode_default='ASSD')
+    __accasType._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 70, 2)
+    __accasType._UseLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 70, 2)
+    
+    accasType = property(__accasType.value, __accasType.set, None, None)
+
+    
+    # Attribute typeUtilisateur uses Python identifier typeUtilisateur
+    __typeUtilisateur = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'typeUtilisateur'), 'typeUtilisateur', '__httpchercheurs_edf_comlogicielsEssai_T_DefinitionDsFactDsOper_typeUtilisateur', pyxb.binding.datatypes.string, fixed=True, unicode_default='lASSD')
+    __typeUtilisateur._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 71, 2)
+    __typeUtilisateur._UseLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 71, 2)
+    
+    typeUtilisateur = property(__typeUtilisateur.value, __typeUtilisateur.set, None, None)
+
+    _ElementMap.update({
+        __unFact1.name() : __unFact1
+    })
+    _AttributeMap.update({
+        __name.name() : __name,
+        __accasType.name() : __accasType,
+        __typeUtilisateur.name() : __typeUtilisateur
+    })
+_module_typeBindings.T_DefinitionDsFactDsOper = T_DefinitionDsFactDsOper
+Namespace.addCategoryObject('typeBinding', 'T_DefinitionDsFactDsOper', T_DefinitionDsFactDsOper)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/Essai}T_DefinitionDsFactDsProc with content type ELEMENT_ONLY
+class T_DefinitionDsFactDsProc (T_step_Essai):
+    """Complex type {http://chercheurs.edf.com/logiciels/Essai}T_DefinitionDsFactDsProc with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_DefinitionDsFactDsProc')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 84, 1)
+    _ElementMap = T_step_Essai._ElementMap.copy()
+    _AttributeMap = T_step_Essai._AttributeMap.copy()
+    # Base type is T_step_Essai
+    
+    # Element {http://chercheurs.edf.com/logiciels/Essai}unFact uses Python identifier unFact
+    __unFact = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'unFact'), 'unFact', '__httpchercheurs_edf_comlogicielsEssai_T_DefinitionDsFactDsProc_httpchercheurs_edf_comlogicielsEssaiunFact', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 88, 3), )
+
+    
+    unFact = property(__unFact.value, __unFact.set, None, None)
+
+    _ElementMap.update({
+        __unFact.name() : __unFact
+    })
+    _AttributeMap.update({
+        
+    })
+_module_typeBindings.T_DefinitionDsFactDsProc = T_DefinitionDsFactDsProc
+Namespace.addCategoryObject('typeBinding', 'T_DefinitionDsFactDsProc', T_DefinitionDsFactDsProc)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/Essai}T_DefinitionDsSimpDsOper with content type ELEMENT_ONLY
+class T_DefinitionDsSimpDsOper (T_step_Essai):
+    """Complex type {http://chercheurs.edf.com/logiciels/Essai}T_DefinitionDsSimpDsOper with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_DefinitionDsSimpDsOper')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 93, 1)
+    _ElementMap = T_step_Essai._ElementMap.copy()
+    _AttributeMap = T_step_Essai._AttributeMap.copy()
+    # Base type is T_step_Essai
+    
+    # Element {http://chercheurs.edf.com/logiciels/Essai}creeUserAssd uses Python identifier creeUserAssd
+    __creeUserAssd = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd'), 'creeUserAssd', '__httpchercheurs_edf_comlogicielsEssai_T_DefinitionDsSimpDsOper_httpchercheurs_edf_comlogicielsEssaicreeUserAssd', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 97, 3), )
+
+    
+    creeUserAssd = property(__creeUserAssd.value, __creeUserAssd.set, None, None)
+
+    
+    # Attribute name uses Python identifier name
+    __name = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'name'), 'name', '__httpchercheurs_edf_comlogicielsEssai_T_DefinitionDsSimpDsOper_name', pyxb.binding.datatypes.string)
+    __name._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 103, 2)
+    __name._UseLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 103, 2)
+    
+    name = property(__name.value, __name.set, None, None)
+
+    
+    # Attribute accasType uses Python identifier accasType
+    __accasType = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'accasType'), 'accasType', '__httpchercheurs_edf_comlogicielsEssai_T_DefinitionDsSimpDsOper_accasType', pyxb.binding.datatypes.string, fixed=True, unicode_default='ASSD')
+    __accasType._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 104, 2)
+    __accasType._UseLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 104, 2)
+    
+    accasType = property(__accasType.value, __accasType.set, None, None)
+
+    
+    # Attribute typeUtilisateur uses Python identifier typeUtilisateur
+    __typeUtilisateur = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'typeUtilisateur'), 'typeUtilisateur', '__httpchercheurs_edf_comlogicielsEssai_T_DefinitionDsSimpDsOper_typeUtilisateur', pyxb.binding.datatypes.string, fixed=True, unicode_default='lASSD')
+    __typeUtilisateur._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 105, 2)
+    __typeUtilisateur._UseLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 105, 2)
+    
+    typeUtilisateur = property(__typeUtilisateur.value, __typeUtilisateur.set, None, None)
+
+    _ElementMap.update({
+        __creeUserAssd.name() : __creeUserAssd
+    })
+    _AttributeMap.update({
+        __name.name() : __name,
+        __accasType.name() : __accasType,
+        __typeUtilisateur.name() : __typeUtilisateur
+    })
+_module_typeBindings.T_DefinitionDsSimpDsOper = T_DefinitionDsSimpDsOper
+Namespace.addCategoryObject('typeBinding', 'T_DefinitionDsSimpDsOper', T_DefinitionDsSimpDsOper)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/Essai}T_DefinitionDsSimpDsProc with content type ELEMENT_ONLY
+class T_DefinitionDsSimpDsProc (T_step_Essai):
+    """Complex type {http://chercheurs.edf.com/logiciels/Essai}T_DefinitionDsSimpDsProc with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_DefinitionDsSimpDsProc')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 109, 1)
+    _ElementMap = T_step_Essai._ElementMap.copy()
+    _AttributeMap = T_step_Essai._AttributeMap.copy()
+    # Base type is T_step_Essai
+    
+    # Element {http://chercheurs.edf.com/logiciels/Essai}creeUserAssd uses Python identifier creeUserAssd
+    __creeUserAssd = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd'), 'creeUserAssd', '__httpchercheurs_edf_comlogicielsEssai_T_DefinitionDsSimpDsProc_httpchercheurs_edf_comlogicielsEssaicreeUserAssd', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 113, 3), )
+
+    
+    creeUserAssd = property(__creeUserAssd.value, __creeUserAssd.set, None, None)
+
+    _ElementMap.update({
+        __creeUserAssd.name() : __creeUserAssd
+    })
+    _AttributeMap.update({
+        
+    })
+_module_typeBindings.T_DefinitionDsSimpDsProc = T_DefinitionDsSimpDsProc
+Namespace.addCategoryObject('typeBinding', 'T_DefinitionDsSimpDsProc', T_DefinitionDsSimpDsProc)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/Essai}T_DefinitionDsSimpListe with content type ELEMENT_ONLY
+class T_DefinitionDsSimpListe (T_step_Essai):
+    """Complex type {http://chercheurs.edf.com/logiciels/Essai}T_DefinitionDsSimpListe with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_DefinitionDsSimpListe')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 118, 1)
+    _ElementMap = T_step_Essai._ElementMap.copy()
+    _AttributeMap = T_step_Essai._AttributeMap.copy()
+    # Base type is T_step_Essai
+    
+    # Element {http://chercheurs.edf.com/logiciels/Essai}creeUserAssd uses Python identifier creeUserAssd
+    __creeUserAssd = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd'), 'creeUserAssd', '__httpchercheurs_edf_comlogicielsEssai_T_DefinitionDsSimpListe_httpchercheurs_edf_comlogicielsEssaicreeUserAssd', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 122, 3), )
+
+    
+    creeUserAssd = property(__creeUserAssd.value, __creeUserAssd.set, None, None)
+
+    _ElementMap.update({
+        __creeUserAssd.name() : __creeUserAssd
+    })
+    _AttributeMap.update({
+        
+    })
+_module_typeBindings.T_DefinitionDsSimpListe = T_DefinitionDsSimpListe
+Namespace.addCategoryObject('typeBinding', 'T_DefinitionDsSimpListe', T_DefinitionDsSimpListe)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/Essai}T_UtiliseEtDefinitDsLeMemeProc with content type ELEMENT_ONLY
+class T_UtiliseEtDefinitDsLeMemeProc (T_step_Essai):
+    """Complex type {http://chercheurs.edf.com/logiciels/Essai}T_UtiliseEtDefinitDsLeMemeProc with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_UtiliseEtDefinitDsLeMemeProc')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 131, 1)
+    _ElementMap = T_step_Essai._ElementMap.copy()
+    _AttributeMap = T_step_Essai._AttributeMap.copy()
+    # Base type is T_step_Essai
+    
+    # Element {http://chercheurs.edf.com/logiciels/Essai}utiliseUserAssd uses Python identifier utiliseUserAssd
+    __utiliseUserAssd = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'utiliseUserAssd'), 'utiliseUserAssd', '__httpchercheurs_edf_comlogicielsEssai_T_UtiliseEtDefinitDsLeMemeProc_httpchercheurs_edf_comlogicielsEssaiutiliseUserAssd', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 135, 3), )
+
+    
+    utiliseUserAssd = property(__utiliseUserAssd.value, __utiliseUserAssd.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/Essai}creeUserAssd uses Python identifier creeUserAssd
+    __creeUserAssd = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd'), 'creeUserAssd', '__httpchercheurs_edf_comlogicielsEssai_T_UtiliseEtDefinitDsLeMemeProc_httpchercheurs_edf_comlogicielsEssaicreeUserAssd', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 140, 3), )
+
+    
+    creeUserAssd = property(__creeUserAssd.value, __creeUserAssd.set, None, None)
+
+    _ElementMap.update({
+        __utiliseUserAssd.name() : __utiliseUserAssd,
+        __creeUserAssd.name() : __creeUserAssd
+    })
+    _AttributeMap.update({
+        
+    })
+_module_typeBindings.T_UtiliseEtDefinitDsLeMemeProc = T_UtiliseEtDefinitDsLeMemeProc
+Namespace.addCategoryObject('typeBinding', 'T_UtiliseEtDefinitDsLeMemeProc', T_UtiliseEtDefinitDsLeMemeProc)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/Essai}T_UtiliseUserAssD with content type ELEMENT_ONLY
+class T_UtiliseUserAssD (T_step_Essai):
+    """Complex type {http://chercheurs.edf.com/logiciels/Essai}T_UtiliseUserAssD with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_UtiliseUserAssD')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 149, 1)
+    _ElementMap = T_step_Essai._ElementMap.copy()
+    _AttributeMap = T_step_Essai._AttributeMap.copy()
+    # Base type is T_step_Essai
+    
+    # Element {http://chercheurs.edf.com/logiciels/Essai}utiliseListeUneListeUserAssd uses Python identifier utiliseListeUneListeUserAssd
+    __utiliseListeUneListeUserAssd = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'utiliseListeUneListeUserAssd'), 'utiliseListeUneListeUserAssd', '__httpchercheurs_edf_comlogicielsEssai_T_UtiliseUserAssD_httpchercheurs_edf_comlogicielsEssaiutiliseListeUneListeUserAssd', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 153, 3), )
+
+    
+    utiliseListeUneListeUserAssd = property(__utiliseListeUneListeUserAssd.value, __utiliseListeUneListeUserAssd.set, None, None)
+
+    _ElementMap.update({
+        __utiliseListeUneListeUserAssd.name() : __utiliseListeUneListeUserAssd
+    })
+    _AttributeMap.update({
+        
+    })
+_module_typeBindings.T_UtiliseUserAssD = T_UtiliseUserAssD
+Namespace.addCategoryObject('typeBinding', 'T_UtiliseUserAssD', T_UtiliseUserAssD)
+
+
+step_Essai = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'step_Essai'), T_step_Essai, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 170, 1))
+Namespace.addCategoryObject('elementBinding', step_Essai.name().localName(), step_Essai)
+
+Essai = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'Essai'), T_Essai, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 171, 1))
+Namespace.addCategoryObject('elementBinding', Essai.name().localName(), Essai)
+
+DefinitionDsFactDsOper = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'DefinitionDsFactDsOper'), T_DefinitionDsFactDsOper, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 162, 1))
+Namespace.addCategoryObject('elementBinding', DefinitionDsFactDsOper.name().localName(), DefinitionDsFactDsOper)
+
+DefinitionDsFactDsProc = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'DefinitionDsFactDsProc'), T_DefinitionDsFactDsProc, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 163, 1))
+Namespace.addCategoryObject('elementBinding', DefinitionDsFactDsProc.name().localName(), DefinitionDsFactDsProc)
+
+DefinitionDsSimpDsOper = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'DefinitionDsSimpDsOper'), T_DefinitionDsSimpDsOper, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 164, 1))
+Namespace.addCategoryObject('elementBinding', DefinitionDsSimpDsOper.name().localName(), DefinitionDsSimpDsOper)
+
+DefinitionDsSimpDsProc = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'DefinitionDsSimpDsProc'), T_DefinitionDsSimpDsProc, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 165, 1))
+Namespace.addCategoryObject('elementBinding', DefinitionDsSimpDsProc.name().localName(), DefinitionDsSimpDsProc)
+
+DefinitionDsSimpListe = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'DefinitionDsSimpListe'), T_DefinitionDsSimpListe, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 166, 1))
+Namespace.addCategoryObject('elementBinding', DefinitionDsSimpListe.name().localName(), DefinitionDsSimpListe)
+
+UtiliseEtDefinitDsLeMemeProc = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'UtiliseEtDefinitDsLeMemeProc'), T_UtiliseEtDefinitDsLeMemeProc, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 167, 1))
+Namespace.addCategoryObject('elementBinding', UtiliseEtDefinitDsLeMemeProc.name().localName(), UtiliseEtDefinitDsLeMemeProc)
+
+UtiliseUserAssD = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'UtiliseUserAssD'), T_UtiliseUserAssD, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 168, 1))
+Namespace.addCategoryObject('elementBinding', UtiliseUserAssD.name().localName(), UtiliseUserAssD)
+
+
+
+T_unFact1._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd'), T_creeUserAssd, scope=T_unFact1, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 56, 3)))
+
+def _BuildAutomaton ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton
+    del _BuildAutomaton
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 56, 3))
+    counters.add(cc_0)
+    states = []
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_0, False))
+    symbol = pyxb.binding.content.ElementUse(T_unFact1._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 56, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_0, True) ]))
+    st_0._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, True, containing_state=None)
+T_unFact1._Automaton = _BuildAutomaton()
+
+
+
+
+T_unFact._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd'), T_creeUserAssd, scope=T_unFact, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 77, 3)))
+
+def _BuildAutomaton_ ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_
+    del _BuildAutomaton_
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 77, 3))
+    counters.add(cc_0)
+    states = []
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_0, False))
+    symbol = pyxb.binding.content.ElementUse(T_unFact._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 77, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_0, True) ]))
+    st_0._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, True, containing_state=None)
+T_unFact._Automaton = _BuildAutomaton_()
+
+
+
+
+T_Essai._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'step_Essai'), T_step_Essai, scope=T_Essai, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 170, 1)))
+
+def _BuildAutomaton_2 ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_2
+    del _BuildAutomaton_2
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 173, 4))
+    counters.add(cc_0)
+    cc_1 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 174, 3))
+    counters.add(cc_1)
+    states = []
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_0, False))
+    final_update.add(fac.UpdateInstruction(cc_1, False))
+    symbol = pyxb.binding.content.ElementUse(T_Essai._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'step_Essai')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 174, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_0, True),
+        fac.UpdateInstruction(cc_1, False) ]))
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_1, True) ]))
+    st_0._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, True, containing_state=None)
+T_Essai._Automaton = _BuildAutomaton_2()
+
+
+
+
+T_DefinitionDsFactDsOper._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'unFact1'), T_unFact1, scope=T_DefinitionDsFactDsOper, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 67, 3)))
+
+def _BuildAutomaton_3 ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_3
+    del _BuildAutomaton_3
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 67, 3))
+    counters.add(cc_0)
+    states = []
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_0, False))
+    symbol = pyxb.binding.content.ElementUse(T_DefinitionDsFactDsOper._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'unFact1')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 67, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_0, True) ]))
+    st_0._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, True, containing_state=None)
+T_DefinitionDsFactDsOper._Automaton = _BuildAutomaton_3()
+
+
+
+
+T_DefinitionDsFactDsProc._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'unFact'), T_unFact, scope=T_DefinitionDsFactDsProc, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 88, 3)))
+
+def _BuildAutomaton_4 ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_4
+    del _BuildAutomaton_4
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 88, 3))
+    counters.add(cc_0)
+    states = []
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_0, False))
+    symbol = pyxb.binding.content.ElementUse(T_DefinitionDsFactDsProc._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'unFact')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 88, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_0, True) ]))
+    st_0._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, True, containing_state=None)
+T_DefinitionDsFactDsProc._Automaton = _BuildAutomaton_4()
+
+
+
+
+T_DefinitionDsSimpDsOper._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd'), T_creeUserAssd, scope=T_DefinitionDsSimpDsOper, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 97, 3)))
+
+def _BuildAutomaton_5 ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_5
+    del _BuildAutomaton_5
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 97, 3))
+    counters.add(cc_0)
+    states = []
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_0, False))
+    symbol = pyxb.binding.content.ElementUse(T_DefinitionDsSimpDsOper._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 97, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_0, True) ]))
+    st_0._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, True, containing_state=None)
+T_DefinitionDsSimpDsOper._Automaton = _BuildAutomaton_5()
+
+
+
+
+T_DefinitionDsSimpDsProc._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd'), T_creeUserAssd, scope=T_DefinitionDsSimpDsProc, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 113, 3)))
+
+def _BuildAutomaton_6 ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_6
+    del _BuildAutomaton_6
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 113, 3))
+    counters.add(cc_0)
+    states = []
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_0, False))
+    symbol = pyxb.binding.content.ElementUse(T_DefinitionDsSimpDsProc._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 113, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_0, True) ]))
+    st_0._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, True, containing_state=None)
+T_DefinitionDsSimpDsProc._Automaton = _BuildAutomaton_6()
+
+
+
+
+T_DefinitionDsSimpListe._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd'), T_creeUserAssd_4, scope=T_DefinitionDsSimpListe, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 122, 3)))
+
+def _BuildAutomaton_7 ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_7
+    del _BuildAutomaton_7
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 122, 3))
+    counters.add(cc_0)
+    states = []
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_0, False))
+    symbol = pyxb.binding.content.ElementUse(T_DefinitionDsSimpListe._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 122, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_0, True) ]))
+    st_0._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, True, containing_state=None)
+T_DefinitionDsSimpListe._Automaton = _BuildAutomaton_7()
+
+
+
+
+T_UtiliseEtDefinitDsLeMemeProc._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'utiliseUserAssd'), T_utiliseUserAssd, scope=T_UtiliseEtDefinitDsLeMemeProc, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 135, 3)))
+
+T_UtiliseEtDefinitDsLeMemeProc._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd'), T_creeUserAssd, scope=T_UtiliseEtDefinitDsLeMemeProc, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 140, 3)))
+
+def _BuildAutomaton_8 ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_8
+    del _BuildAutomaton_8
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 140, 3))
+    counters.add(cc_0)
+    states = []
+    final_update = set()
+    symbol = pyxb.binding.content.ElementUse(T_UtiliseEtDefinitDsLeMemeProc._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'utiliseUserAssd')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 135, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_0, False))
+    symbol = pyxb.binding.content.ElementUse(T_UtiliseEtDefinitDsLeMemeProc._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 140, 3))
+    st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_1)
+    transitions = []
+    transitions.append(fac.Transition(st_1, [
+         ]))
+    st_0._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_1, [
+        fac.UpdateInstruction(cc_0, True) ]))
+    st_1._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, False, containing_state=None)
+T_UtiliseEtDefinitDsLeMemeProc._Automaton = _BuildAutomaton_8()
+
+
+
+
+T_UtiliseUserAssD._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'utiliseListeUneListeUserAssd'), T_utiliseListeUneListeUserAssd, scope=T_UtiliseUserAssD, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 153, 3)))
+
+def _BuildAutomaton_9 ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_9
+    del _BuildAutomaton_9
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    states = []
+    final_update = set()
+    symbol = pyxb.binding.content.ElementUse(T_UtiliseUserAssD._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'utiliseListeUneListeUserAssd')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd2.xsd', 153, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    transitions = []
+    st_0._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, False, containing_state=None)
+T_UtiliseUserAssD._Automaton = _BuildAutomaton_9()
+
+
+DefinitionDsFactDsOper._setSubstitutionGroup(step_Essai)
+
+DefinitionDsFactDsProc._setSubstitutionGroup(step_Essai)
+
+DefinitionDsSimpDsOper._setSubstitutionGroup(step_Essai)
+
+DefinitionDsSimpDsProc._setSubstitutionGroup(step_Essai)
+
+DefinitionDsSimpListe._setSubstitutionGroup(step_Essai)
+
+UtiliseEtDefinitDsLeMemeProc._setSubstitutionGroup(step_Essai)
+
+UtiliseUserAssD._setSubstitutionGroup(step_Essai)
diff --git a/CatasDeTests/raw/cata_UserAssd_driver.py b/CatasDeTests/raw/cata_UserAssd_driver.py
new file mode 100644 (file)
index 0000000..f9a8fbb
--- /dev/null
@@ -0,0 +1,937 @@
+# ./raw/cata_UserAssd_driver.py
+# -*- coding: utf-8 -*-
+# PyXB bindings for NM:9c3bd166183fcfc95687f415bcc4a066eb33ac79
+# Generated 2020-10-19 16:07:37.824784 by PyXB version 1.2.5 using Python 3.4.2.final.0
+# Namespace http://chercheurs.edf.com/logiciels/Essai
+
+from __future__ import unicode_literals
+import pyxb
+import pyxb.binding
+import pyxb.binding.saxer
+import io
+import pyxb.utils.utility
+import pyxb.utils.domutils
+import sys
+import pyxb.utils.six as _six
+# Unique identifier for bindings created at the same time
+_GenerationUID = pyxb.utils.utility.UniqueIdentifier('urn:uuid:7181a702-1214-11eb-a804-cc3d82d871d8')
+
+# Version of PyXB used to generate the bindings
+_PyXBVersion = '1.2.5'
+# Generated bindings are not compatible across PyXB versions
+if pyxb.__version__ != _PyXBVersion:
+    raise pyxb.PyXBVersionError(_PyXBVersion)
+
+# A holder for module-level binding classes so we can access them from
+# inside class definitions where property names may conflict.
+_module_typeBindings = pyxb.utils.utility.Object()
+
+# Import bindings for namespaces imported into schema
+import pyxb.binding.datatypes
+
+# NOTE: All namespace declarations are reserved within the binding
+Namespace = pyxb.namespace.NamespaceForURI('http://chercheurs.edf.com/logiciels/Essai', create_if_missing=True)
+Namespace.configureCategories(['typeBinding', 'elementBinding'])
+
+def CreateFromDocument (xml_text, default_namespace=None, location_base=None):
+    """Parse the given XML and use the document element to create a
+    Python instance.
+
+    @param xml_text An XML document.  This should be data (Python 2
+    str or Python 3 bytes), or a text (Python 2 unicode or Python 3
+    str) in the L{pyxb._InputEncoding} encoding.
+
+    @keyword default_namespace The L{pyxb.Namespace} instance to use as the
+    default namespace where there is no default namespace in scope.
+    If unspecified or C{None}, the namespace of the module containing
+    this function will be used.
+
+    @keyword location_base: An object to be recorded as the base of all
+    L{pyxb.utils.utility.Location} instances associated with events and
+    objects handled by the parser.  You might pass the URI from which
+    the document was obtained.
+    """
+
+    if pyxb.XMLStyle_saxer != pyxb._XMLStyle:
+        dom = pyxb.utils.domutils.StringToDOM(xml_text)
+        return CreateFromDOM(dom.documentElement, default_namespace=default_namespace)
+    if default_namespace is None:
+        default_namespace = Namespace.fallbackNamespace()
+    saxer = pyxb.binding.saxer.make_parser(fallback_namespace=default_namespace, location_base=location_base)
+    handler = saxer.getContentHandler()
+    xmld = xml_text
+    if isinstance(xmld, _six.text_type):
+        xmld = xmld.encode(pyxb._InputEncoding)
+    saxer.parse(io.BytesIO(xmld))
+    instance = handler.rootObject()
+    return instance
+
+def CreateFromDOM (node, default_namespace=None):
+    """Create a Python instance from the given DOM node.
+    The node tag must correspond to an element declaration in this module.
+
+    @deprecated: Forcing use of DOM interface is unnecessary; use L{CreateFromDocument}."""
+    if default_namespace is None:
+        default_namespace = Namespace.fallbackNamespace()
+    return pyxb.binding.basis.element.AnyCreateFromDOM(node, default_namespace)
+
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/Essai}AccasUserAssd
+class AccasUserAssd (pyxb.binding.datatypes.string):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'AccasUserAssd')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 7, 1)
+    _Documentation = None
+AccasUserAssd._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', 'AccasUserAssd', AccasUserAssd)
+_module_typeBindings.AccasUserAssd = AccasUserAssd
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/Essai}PNEFdico_Essai
+class PNEFdico_Essai (pyxb.binding.datatypes.string):
+
+    """{'T_creeUserAssd': {'_creeUserAssd_DefinitionDsSimpDsOper': 'T_creeUserAssd_2', '_creeUserAssd_DefinitionDsSimpListe': 'T_creeUserAssd_4'}}
+               """
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'PNEFdico_Essai')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 154, 1)
+    _Documentation = "{'T_creeUserAssd': {'_creeUserAssd_DefinitionDsSimpDsOper': 'T_creeUserAssd_2', '_creeUserAssd_DefinitionDsSimpListe': 'T_creeUserAssd_4'}}\n\t\t"
+PNEFdico_Essai._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', 'PNEFdico_Essai', PNEFdico_Essai)
+_module_typeBindings.PNEFdico_Essai = PNEFdico_Essai
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/Essai}laClasseUser_C
+class laClasseUser_C (AccasUserAssd):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'laClasseUser_C')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 11, 1)
+    _Documentation = None
+laClasseUser_C._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', 'laClasseUser_C', laClasseUser_C)
+_module_typeBindings.laClasseUser_C = laClasseUser_C
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/Essai}laClasseUserDerive_C
+class laClasseUserDerive_C (AccasUserAssd):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'laClasseUserDerive_C')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 19, 1)
+    _Documentation = None
+laClasseUserDerive_C._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', 'laClasseUserDerive_C', laClasseUserDerive_C)
+_module_typeBindings.laClasseUserDerive_C = laClasseUserDerive_C
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/Essai}laClasseUser_U
+class laClasseUser_U (AccasUserAssd):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'laClasseUser_U')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 39, 1)
+    _Documentation = None
+laClasseUser_U._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', 'laClasseUser_U', laClasseUser_U)
+_module_typeBindings.laClasseUser_U = laClasseUser_U
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/Essai}T_creeUserAssd
+class T_creeUserAssd (laClasseUser_C):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_creeUserAssd')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 15, 1)
+    _Documentation = None
+T_creeUserAssd._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', 'T_creeUserAssd', T_creeUserAssd)
+_module_typeBindings.T_creeUserAssd = T_creeUserAssd
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/Essai}T_creeUserAssd_2
+class T_creeUserAssd_2 (laClasseUserDerive_C):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_creeUserAssd_2')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 23, 1)
+    _Documentation = None
+T_creeUserAssd_2._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', 'T_creeUserAssd_2', T_creeUserAssd_2)
+_module_typeBindings.T_creeUserAssd_2 = T_creeUserAssd_2
+
+# Atomic simple type: [anonymous]
+class STD_ANON (laClasseUser_C):
+
+    """An atomic simple type."""
+
+    _ExpandedName = None
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 31, 5)
+    _Documentation = None
+STD_ANON._InitializeFacetMap()
+_module_typeBindings.STD_ANON = STD_ANON
+
+# Atomic simple type: [anonymous]
+class STD_ANON_ (laClasseUser_U):
+
+    """An atomic simple type."""
+
+    _ExpandedName = None
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 47, 5)
+    _Documentation = None
+STD_ANON_._InitializeFacetMap()
+_module_typeBindings.STD_ANON_ = STD_ANON_
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/Essai}T_utiliseUnUserAssd
+class T_utiliseUnUserAssd (laClasseUser_U):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_utiliseUnUserAssd')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 55, 1)
+    _Documentation = None
+T_utiliseUnUserAssd._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', 'T_utiliseUnUserAssd', T_utiliseUnUserAssd)
+_module_typeBindings.T_utiliseUnUserAssd = T_utiliseUnUserAssd
+
+# List simple type: [anonymous]
+# superclasses pyxb.binding.datatypes.anySimpleType
+class STD_ANON_2 (pyxb.binding.basis.STD_list):
+
+    """Simple type that is a list of STD_ANON."""
+
+    _ExpandedName = None
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 29, 3)
+    _Documentation = None
+
+    _ItemType = STD_ANON
+STD_ANON_2._InitializeFacetMap()
+_module_typeBindings.STD_ANON_2 = STD_ANON_2
+
+# List simple type: [anonymous]
+# superclasses pyxb.binding.datatypes.anySimpleType
+class STD_ANON_3 (pyxb.binding.basis.STD_list):
+
+    """Simple type that is a list of STD_ANON_."""
+
+    _ExpandedName = None
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 45, 3)
+    _Documentation = None
+
+    _ItemType = STD_ANON_
+STD_ANON_3._InitializeFacetMap()
+_module_typeBindings.STD_ANON_3 = STD_ANON_3
+
+# List simple type: {http://chercheurs.edf.com/logiciels/Essai}T_creeUserAssd_4
+# superclasses STD_ANON_2
+class T_creeUserAssd_4 (pyxb.binding.basis.STD_list):
+
+    """Simple type that is a list of STD_ANON."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_creeUserAssd_4')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 27, 1)
+    _Documentation = None
+
+    _ItemType = STD_ANON
+T_creeUserAssd_4._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', 'T_creeUserAssd_4', T_creeUserAssd_4)
+_module_typeBindings.T_creeUserAssd_4 = T_creeUserAssd_4
+
+# List simple type: {http://chercheurs.edf.com/logiciels/Essai}T_utiliseUserAssd
+# superclasses STD_ANON_3
+class T_utiliseUserAssd (pyxb.binding.basis.STD_list):
+
+    """Simple type that is a list of STD_ANON_."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_utiliseUserAssd')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 43, 1)
+    _Documentation = None
+
+    _ItemType = STD_ANON_
+T_utiliseUserAssd._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', 'T_utiliseUserAssd', T_utiliseUserAssd)
+_module_typeBindings.T_utiliseUserAssd = T_utiliseUserAssd
+
+# Complex type {http://chercheurs.edf.com/logiciels/Essai}T_unFact1 with content type ELEMENT_ONLY
+class T_unFact1 (pyxb.binding.basis.complexTypeDefinition):
+    """Complex type {http://chercheurs.edf.com/logiciels/Essai}T_unFact1 with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_unFact1')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 59, 1)
+    _ElementMap = {}
+    _AttributeMap = {}
+    # Base type is pyxb.binding.datatypes.anyType
+    
+    # Element {http://chercheurs.edf.com/logiciels/Essai}creeUserAssd uses Python identifier creeUserAssd
+    __creeUserAssd = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd'), 'creeUserAssd', '__httpchercheurs_edf_comlogicielsEssai_T_unFact1_httpchercheurs_edf_comlogicielsEssaicreeUserAssd', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 61, 3), )
+
+    
+    creeUserAssd = property(__creeUserAssd.value, __creeUserAssd.set, None, None)
+
+    _ElementMap.update({
+        __creeUserAssd.name() : __creeUserAssd
+    })
+    _AttributeMap.update({
+        
+    })
+_module_typeBindings.T_unFact1 = T_unFact1
+Namespace.addCategoryObject('typeBinding', 'T_unFact1', T_unFact1)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/Essai}T_unFact with content type ELEMENT_ONLY
+class T_unFact (pyxb.binding.basis.complexTypeDefinition):
+    """Complex type {http://chercheurs.edf.com/logiciels/Essai}T_unFact with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_unFact')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 76, 1)
+    _ElementMap = {}
+    _AttributeMap = {}
+    # Base type is pyxb.binding.datatypes.anyType
+    
+    # Element {http://chercheurs.edf.com/logiciels/Essai}creeUserAssd uses Python identifier creeUserAssd
+    __creeUserAssd = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd'), 'creeUserAssd', '__httpchercheurs_edf_comlogicielsEssai_T_unFact_httpchercheurs_edf_comlogicielsEssaicreeUserAssd', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 78, 3), )
+
+    
+    creeUserAssd = property(__creeUserAssd.value, __creeUserAssd.set, None, None)
+
+    _ElementMap.update({
+        __creeUserAssd.name() : __creeUserAssd
+    })
+    _AttributeMap.update({
+        
+    })
+_module_typeBindings.T_unFact = T_unFact
+Namespace.addCategoryObject('typeBinding', 'T_unFact', T_unFact)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/Essai}T_step_Essai with content type EMPTY
+class T_step_Essai (pyxb.binding.basis.complexTypeDefinition):
+    """Complex type {http://chercheurs.edf.com/logiciels/Essai}T_step_Essai with content type EMPTY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_EMPTY
+    _Abstract = True
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_step_Essai')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 146, 1)
+    _ElementMap = {}
+    _AttributeMap = {}
+    # Base type is pyxb.binding.datatypes.anyType
+    _ElementMap.update({
+        
+    })
+    _AttributeMap.update({
+        
+    })
+_module_typeBindings.T_step_Essai = T_step_Essai
+Namespace.addCategoryObject('typeBinding', 'T_step_Essai', T_step_Essai)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/Essai}T_Essai with content type ELEMENT_ONLY
+class T_Essai (pyxb.binding.basis.complexTypeDefinition):
+    """Complex type {http://chercheurs.edf.com/logiciels/Essai}T_Essai with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_Essai')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 149, 2)
+    _ElementMap = {}
+    _AttributeMap = {}
+    # Base type is pyxb.binding.datatypes.anyType
+    
+    # Element {http://chercheurs.edf.com/logiciels/Essai}step_Essai uses Python identifier step_Essai
+    __step_Essai = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'step_Essai'), 'step_Essai', '__httpchercheurs_edf_comlogicielsEssai_T_Essai_httpchercheurs_edf_comlogicielsEssaistep_Essai', True, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 147, 1), )
+
+    
+    step_Essai = property(__step_Essai.value, __step_Essai.set, None, None)
+
+    _ElementMap.update({
+        __step_Essai.name() : __step_Essai
+    })
+    _AttributeMap.update({
+        
+    })
+_module_typeBindings.T_Essai = T_Essai
+Namespace.addCategoryObject('typeBinding', 'T_Essai', T_Essai)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/Essai}T_DefinitionDsFactDsOper with content type ELEMENT_ONLY
+class T_DefinitionDsFactDsOper (T_step_Essai):
+    """Complex type {http://chercheurs.edf.com/logiciels/Essai}T_DefinitionDsFactDsOper with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_DefinitionDsFactDsOper')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 64, 1)
+    _ElementMap = T_step_Essai._ElementMap.copy()
+    _AttributeMap = T_step_Essai._AttributeMap.copy()
+    # Base type is T_step_Essai
+    
+    # Element {http://chercheurs.edf.com/logiciels/Essai}unFact1 uses Python identifier unFact1
+    __unFact1 = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'unFact1'), 'unFact1', '__httpchercheurs_edf_comlogicielsEssai_T_DefinitionDsFactDsOper_httpchercheurs_edf_comlogicielsEssaiunFact1', True, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 68, 3), )
+
+    
+    unFact1 = property(__unFact1.value, __unFact1.set, None, None)
+
+    
+    # Attribute accasName uses Python identifier accasName
+    __accasName = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'accasName'), 'accasName', '__httpchercheurs_edf_comlogicielsEssai_T_DefinitionDsFactDsOper_accasName', pyxb.binding.datatypes.string)
+    __accasName._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 70, 2)
+    __accasName._UseLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 70, 2)
+    
+    accasName = property(__accasName.value, __accasName.set, None, None)
+
+    
+    # Attribute accasType uses Python identifier accasType
+    __accasType = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'accasType'), 'accasType', '__httpchercheurs_edf_comlogicielsEssai_T_DefinitionDsFactDsOper_accasType', pyxb.binding.datatypes.string, fixed=True, unicode_default='ASSD')
+    __accasType._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 71, 2)
+    __accasType._UseLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 71, 2)
+    
+    accasType = property(__accasType.value, __accasType.set, None, None)
+
+    
+    # Attribute typeUtilisateur uses Python identifier typeUtilisateur
+    __typeUtilisateur = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'typeUtilisateur'), 'typeUtilisateur', '__httpchercheurs_edf_comlogicielsEssai_T_DefinitionDsFactDsOper_typeUtilisateur', pyxb.binding.datatypes.string, fixed=True, unicode_default='lASSD')
+    __typeUtilisateur._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 72, 2)
+    __typeUtilisateur._UseLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 72, 2)
+    
+    typeUtilisateur = property(__typeUtilisateur.value, __typeUtilisateur.set, None, None)
+
+    _ElementMap.update({
+        __unFact1.name() : __unFact1
+    })
+    _AttributeMap.update({
+        __accasName.name() : __accasName,
+        __accasType.name() : __accasType,
+        __typeUtilisateur.name() : __typeUtilisateur
+    })
+_module_typeBindings.T_DefinitionDsFactDsOper = T_DefinitionDsFactDsOper
+Namespace.addCategoryObject('typeBinding', 'T_DefinitionDsFactDsOper', T_DefinitionDsFactDsOper)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/Essai}T_DefinitionDsFactDsProc with content type ELEMENT_ONLY
+class T_DefinitionDsFactDsProc (T_step_Essai):
+    """Complex type {http://chercheurs.edf.com/logiciels/Essai}T_DefinitionDsFactDsProc with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_DefinitionDsFactDsProc')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 81, 1)
+    _ElementMap = T_step_Essai._ElementMap.copy()
+    _AttributeMap = T_step_Essai._AttributeMap.copy()
+    # Base type is T_step_Essai
+    
+    # Element {http://chercheurs.edf.com/logiciels/Essai}unFact uses Python identifier unFact
+    __unFact = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'unFact'), 'unFact', '__httpchercheurs_edf_comlogicielsEssai_T_DefinitionDsFactDsProc_httpchercheurs_edf_comlogicielsEssaiunFact', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 85, 3), )
+
+    
+    unFact = property(__unFact.value, __unFact.set, None, None)
+
+    _ElementMap.update({
+        __unFact.name() : __unFact
+    })
+    _AttributeMap.update({
+        
+    })
+_module_typeBindings.T_DefinitionDsFactDsProc = T_DefinitionDsFactDsProc
+Namespace.addCategoryObject('typeBinding', 'T_DefinitionDsFactDsProc', T_DefinitionDsFactDsProc)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/Essai}T_DefinitionDsSimpDsOper with content type ELEMENT_ONLY
+class T_DefinitionDsSimpDsOper (T_step_Essai):
+    """Complex type {http://chercheurs.edf.com/logiciels/Essai}T_DefinitionDsSimpDsOper with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_DefinitionDsSimpDsOper')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 90, 1)
+    _ElementMap = T_step_Essai._ElementMap.copy()
+    _AttributeMap = T_step_Essai._AttributeMap.copy()
+    # Base type is T_step_Essai
+    
+    # Element {http://chercheurs.edf.com/logiciels/Essai}creeUserAssd uses Python identifier creeUserAssd
+    __creeUserAssd = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd'), 'creeUserAssd', '__httpchercheurs_edf_comlogicielsEssai_T_DefinitionDsSimpDsOper_httpchercheurs_edf_comlogicielsEssaicreeUserAssd', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 94, 3), )
+
+    
+    creeUserAssd = property(__creeUserAssd.value, __creeUserAssd.set, None, None)
+
+    
+    # Attribute accasName uses Python identifier accasName
+    __accasName = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'accasName'), 'accasName', '__httpchercheurs_edf_comlogicielsEssai_T_DefinitionDsSimpDsOper_accasName', pyxb.binding.datatypes.string)
+    __accasName._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 96, 2)
+    __accasName._UseLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 96, 2)
+    
+    accasName = property(__accasName.value, __accasName.set, None, None)
+
+    
+    # Attribute accasType uses Python identifier accasType
+    __accasType = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'accasType'), 'accasType', '__httpchercheurs_edf_comlogicielsEssai_T_DefinitionDsSimpDsOper_accasType', pyxb.binding.datatypes.string, fixed=True, unicode_default='ASSD')
+    __accasType._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 97, 2)
+    __accasType._UseLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 97, 2)
+    
+    accasType = property(__accasType.value, __accasType.set, None, None)
+
+    
+    # Attribute typeUtilisateur uses Python identifier typeUtilisateur
+    __typeUtilisateur = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'typeUtilisateur'), 'typeUtilisateur', '__httpchercheurs_edf_comlogicielsEssai_T_DefinitionDsSimpDsOper_typeUtilisateur', pyxb.binding.datatypes.string, fixed=True, unicode_default='lASSD')
+    __typeUtilisateur._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 98, 2)
+    __typeUtilisateur._UseLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 98, 2)
+    
+    typeUtilisateur = property(__typeUtilisateur.value, __typeUtilisateur.set, None, None)
+
+    _ElementMap.update({
+        __creeUserAssd.name() : __creeUserAssd
+    })
+    _AttributeMap.update({
+        __accasName.name() : __accasName,
+        __accasType.name() : __accasType,
+        __typeUtilisateur.name() : __typeUtilisateur
+    })
+_module_typeBindings.T_DefinitionDsSimpDsOper = T_DefinitionDsSimpDsOper
+Namespace.addCategoryObject('typeBinding', 'T_DefinitionDsSimpDsOper', T_DefinitionDsSimpDsOper)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/Essai}T_DefinitionDsSimpDsProc with content type ELEMENT_ONLY
+class T_DefinitionDsSimpDsProc (T_step_Essai):
+    """Complex type {http://chercheurs.edf.com/logiciels/Essai}T_DefinitionDsSimpDsProc with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_DefinitionDsSimpDsProc')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 102, 1)
+    _ElementMap = T_step_Essai._ElementMap.copy()
+    _AttributeMap = T_step_Essai._AttributeMap.copy()
+    # Base type is T_step_Essai
+    
+    # Element {http://chercheurs.edf.com/logiciels/Essai}creeUserAssd uses Python identifier creeUserAssd
+    __creeUserAssd = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd'), 'creeUserAssd', '__httpchercheurs_edf_comlogicielsEssai_T_DefinitionDsSimpDsProc_httpchercheurs_edf_comlogicielsEssaicreeUserAssd', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 106, 3), )
+
+    
+    creeUserAssd = property(__creeUserAssd.value, __creeUserAssd.set, None, None)
+
+    _ElementMap.update({
+        __creeUserAssd.name() : __creeUserAssd
+    })
+    _AttributeMap.update({
+        
+    })
+_module_typeBindings.T_DefinitionDsSimpDsProc = T_DefinitionDsSimpDsProc
+Namespace.addCategoryObject('typeBinding', 'T_DefinitionDsSimpDsProc', T_DefinitionDsSimpDsProc)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/Essai}T_DefinitionDsSimpListe with content type ELEMENT_ONLY
+class T_DefinitionDsSimpListe (T_step_Essai):
+    """Complex type {http://chercheurs.edf.com/logiciels/Essai}T_DefinitionDsSimpListe with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_DefinitionDsSimpListe')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 111, 1)
+    _ElementMap = T_step_Essai._ElementMap.copy()
+    _AttributeMap = T_step_Essai._AttributeMap.copy()
+    # Base type is T_step_Essai
+    
+    # Element {http://chercheurs.edf.com/logiciels/Essai}creeUserAssd uses Python identifier creeUserAssd
+    __creeUserAssd = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd'), 'creeUserAssd', '__httpchercheurs_edf_comlogicielsEssai_T_DefinitionDsSimpListe_httpchercheurs_edf_comlogicielsEssaicreeUserAssd', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 115, 3), )
+
+    
+    creeUserAssd = property(__creeUserAssd.value, __creeUserAssd.set, None, None)
+
+    _ElementMap.update({
+        __creeUserAssd.name() : __creeUserAssd
+    })
+    _AttributeMap.update({
+        
+    })
+_module_typeBindings.T_DefinitionDsSimpListe = T_DefinitionDsSimpListe
+Namespace.addCategoryObject('typeBinding', 'T_DefinitionDsSimpListe', T_DefinitionDsSimpListe)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/Essai}T_UtiliseEtDefinitDsLeMemeProc with content type ELEMENT_ONLY
+class T_UtiliseEtDefinitDsLeMemeProc (T_step_Essai):
+    """Complex type {http://chercheurs.edf.com/logiciels/Essai}T_UtiliseEtDefinitDsLeMemeProc with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_UtiliseEtDefinitDsLeMemeProc')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 120, 1)
+    _ElementMap = T_step_Essai._ElementMap.copy()
+    _AttributeMap = T_step_Essai._AttributeMap.copy()
+    # Base type is T_step_Essai
+    
+    # Element {http://chercheurs.edf.com/logiciels/Essai}utiliseUserAssd uses Python identifier utiliseUserAssd
+    __utiliseUserAssd = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'utiliseUserAssd'), 'utiliseUserAssd', '__httpchercheurs_edf_comlogicielsEssai_T_UtiliseEtDefinitDsLeMemeProc_httpchercheurs_edf_comlogicielsEssaiutiliseUserAssd', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 124, 3), )
+
+    
+    utiliseUserAssd = property(__utiliseUserAssd.value, __utiliseUserAssd.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/Essai}creeUserAssd uses Python identifier creeUserAssd
+    __creeUserAssd = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd'), 'creeUserAssd', '__httpchercheurs_edf_comlogicielsEssai_T_UtiliseEtDefinitDsLeMemeProc_httpchercheurs_edf_comlogicielsEssaicreeUserAssd', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 125, 3), )
+
+    
+    creeUserAssd = property(__creeUserAssd.value, __creeUserAssd.set, None, None)
+
+    _ElementMap.update({
+        __utiliseUserAssd.name() : __utiliseUserAssd,
+        __creeUserAssd.name() : __creeUserAssd
+    })
+    _AttributeMap.update({
+        
+    })
+_module_typeBindings.T_UtiliseEtDefinitDsLeMemeProc = T_UtiliseEtDefinitDsLeMemeProc
+Namespace.addCategoryObject('typeBinding', 'T_UtiliseEtDefinitDsLeMemeProc', T_UtiliseEtDefinitDsLeMemeProc)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/Essai}T_UtiliseUnUserAssD with content type ELEMENT_ONLY
+class T_UtiliseUnUserAssD (T_step_Essai):
+    """Complex type {http://chercheurs.edf.com/logiciels/Essai}T_UtiliseUnUserAssD with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_UtiliseUnUserAssD')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 130, 1)
+    _ElementMap = T_step_Essai._ElementMap.copy()
+    _AttributeMap = T_step_Essai._AttributeMap.copy()
+    # Base type is T_step_Essai
+    
+    # Element {http://chercheurs.edf.com/logiciels/Essai}utiliseUnUserAssd uses Python identifier utiliseUnUserAssd
+    __utiliseUnUserAssd = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'utiliseUnUserAssd'), 'utiliseUnUserAssd', '__httpchercheurs_edf_comlogicielsEssai_T_UtiliseUnUserAssD_httpchercheurs_edf_comlogicielsEssaiutiliseUnUserAssd', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 134, 3), )
+
+    
+    utiliseUnUserAssd = property(__utiliseUnUserAssd.value, __utiliseUnUserAssd.set, None, None)
+
+    _ElementMap.update({
+        __utiliseUnUserAssd.name() : __utiliseUnUserAssd
+    })
+    _AttributeMap.update({
+        
+    })
+_module_typeBindings.T_UtiliseUnUserAssD = T_UtiliseUnUserAssD
+Namespace.addCategoryObject('typeBinding', 'T_UtiliseUnUserAssD', T_UtiliseUnUserAssD)
+
+
+step_Essai = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'step_Essai'), T_step_Essai, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 147, 1))
+Namespace.addCategoryObject('elementBinding', step_Essai.name().localName(), step_Essai)
+
+Essai = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'Essai'), T_Essai, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 148, 1))
+Namespace.addCategoryObject('elementBinding', Essai.name().localName(), Essai)
+
+DefinitionDsFactDsOper = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'DefinitionDsFactDsOper'), T_DefinitionDsFactDsOper, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 139, 1))
+Namespace.addCategoryObject('elementBinding', DefinitionDsFactDsOper.name().localName(), DefinitionDsFactDsOper)
+
+DefinitionDsFactDsProc = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'DefinitionDsFactDsProc'), T_DefinitionDsFactDsProc, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 140, 1))
+Namespace.addCategoryObject('elementBinding', DefinitionDsFactDsProc.name().localName(), DefinitionDsFactDsProc)
+
+DefinitionDsSimpDsOper = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'DefinitionDsSimpDsOper'), T_DefinitionDsSimpDsOper, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 141, 1))
+Namespace.addCategoryObject('elementBinding', DefinitionDsSimpDsOper.name().localName(), DefinitionDsSimpDsOper)
+
+DefinitionDsSimpDsProc = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'DefinitionDsSimpDsProc'), T_DefinitionDsSimpDsProc, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 142, 1))
+Namespace.addCategoryObject('elementBinding', DefinitionDsSimpDsProc.name().localName(), DefinitionDsSimpDsProc)
+
+DefinitionDsSimpListe = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'DefinitionDsSimpListe'), T_DefinitionDsSimpListe, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 143, 1))
+Namespace.addCategoryObject('elementBinding', DefinitionDsSimpListe.name().localName(), DefinitionDsSimpListe)
+
+UtiliseEtDefinitDsLeMemeProc = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'UtiliseEtDefinitDsLeMemeProc'), T_UtiliseEtDefinitDsLeMemeProc, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 144, 1))
+Namespace.addCategoryObject('elementBinding', UtiliseEtDefinitDsLeMemeProc.name().localName(), UtiliseEtDefinitDsLeMemeProc)
+
+UtiliseUnUserAssD = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'UtiliseUnUserAssD'), T_UtiliseUnUserAssD, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 145, 1))
+Namespace.addCategoryObject('elementBinding', UtiliseUnUserAssD.name().localName(), UtiliseUnUserAssD)
+
+
+
+T_unFact1._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd'), T_creeUserAssd, scope=T_unFact1, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 61, 3)))
+
+def _BuildAutomaton ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton
+    del _BuildAutomaton
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 61, 3))
+    counters.add(cc_0)
+    states = []
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_0, False))
+    symbol = pyxb.binding.content.ElementUse(T_unFact1._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 61, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_0, True) ]))
+    st_0._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, True, containing_state=None)
+T_unFact1._Automaton = _BuildAutomaton()
+
+
+
+
+T_unFact._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd'), T_creeUserAssd, scope=T_unFact, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 78, 3)))
+
+def _BuildAutomaton_ ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_
+    del _BuildAutomaton_
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 78, 3))
+    counters.add(cc_0)
+    states = []
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_0, False))
+    symbol = pyxb.binding.content.ElementUse(T_unFact._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 78, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_0, True) ]))
+    st_0._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, True, containing_state=None)
+T_unFact._Automaton = _BuildAutomaton_()
+
+
+
+
+T_Essai._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'step_Essai'), T_step_Essai, scope=T_Essai, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 147, 1)))
+
+def _BuildAutomaton_2 ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_2
+    del _BuildAutomaton_2
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 150, 4))
+    counters.add(cc_0)
+    cc_1 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 151, 3))
+    counters.add(cc_1)
+    states = []
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_0, False))
+    final_update.add(fac.UpdateInstruction(cc_1, False))
+    symbol = pyxb.binding.content.ElementUse(T_Essai._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'step_Essai')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 151, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_0, True),
+        fac.UpdateInstruction(cc_1, False) ]))
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_1, True) ]))
+    st_0._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, True, containing_state=None)
+T_Essai._Automaton = _BuildAutomaton_2()
+
+
+
+
+T_DefinitionDsFactDsOper._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'unFact1'), T_unFact1, scope=T_DefinitionDsFactDsOper, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 68, 3)))
+
+def _BuildAutomaton_3 ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_3
+    del _BuildAutomaton_3
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 68, 3))
+    counters.add(cc_0)
+    states = []
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_0, False))
+    symbol = pyxb.binding.content.ElementUse(T_DefinitionDsFactDsOper._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'unFact1')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 68, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_0, True) ]))
+    st_0._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, True, containing_state=None)
+T_DefinitionDsFactDsOper._Automaton = _BuildAutomaton_3()
+
+
+
+
+T_DefinitionDsFactDsProc._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'unFact'), T_unFact, scope=T_DefinitionDsFactDsProc, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 85, 3)))
+
+def _BuildAutomaton_4 ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_4
+    del _BuildAutomaton_4
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 85, 3))
+    counters.add(cc_0)
+    states = []
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_0, False))
+    symbol = pyxb.binding.content.ElementUse(T_DefinitionDsFactDsProc._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'unFact')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 85, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_0, True) ]))
+    st_0._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, True, containing_state=None)
+T_DefinitionDsFactDsProc._Automaton = _BuildAutomaton_4()
+
+
+
+
+T_DefinitionDsSimpDsOper._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd'), T_creeUserAssd_2, scope=T_DefinitionDsSimpDsOper, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 94, 3)))
+
+def _BuildAutomaton_5 ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_5
+    del _BuildAutomaton_5
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 94, 3))
+    counters.add(cc_0)
+    states = []
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_0, False))
+    symbol = pyxb.binding.content.ElementUse(T_DefinitionDsSimpDsOper._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 94, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_0, True) ]))
+    st_0._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, True, containing_state=None)
+T_DefinitionDsSimpDsOper._Automaton = _BuildAutomaton_5()
+
+
+
+
+T_DefinitionDsSimpDsProc._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd'), T_creeUserAssd, scope=T_DefinitionDsSimpDsProc, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 106, 3)))
+
+def _BuildAutomaton_6 ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_6
+    del _BuildAutomaton_6
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 106, 3))
+    counters.add(cc_0)
+    states = []
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_0, False))
+    symbol = pyxb.binding.content.ElementUse(T_DefinitionDsSimpDsProc._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 106, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_0, True) ]))
+    st_0._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, True, containing_state=None)
+T_DefinitionDsSimpDsProc._Automaton = _BuildAutomaton_6()
+
+
+
+
+T_DefinitionDsSimpListe._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd'), T_creeUserAssd_4, scope=T_DefinitionDsSimpListe, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 115, 3)))
+
+def _BuildAutomaton_7 ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_7
+    del _BuildAutomaton_7
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 115, 3))
+    counters.add(cc_0)
+    states = []
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_0, False))
+    symbol = pyxb.binding.content.ElementUse(T_DefinitionDsSimpListe._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 115, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_0, True) ]))
+    st_0._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, True, containing_state=None)
+T_DefinitionDsSimpListe._Automaton = _BuildAutomaton_7()
+
+
+
+
+T_UtiliseEtDefinitDsLeMemeProc._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'utiliseUserAssd'), T_utiliseUserAssd, scope=T_UtiliseEtDefinitDsLeMemeProc, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 124, 3)))
+
+T_UtiliseEtDefinitDsLeMemeProc._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd'), T_creeUserAssd, scope=T_UtiliseEtDefinitDsLeMemeProc, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 125, 3)))
+
+def _BuildAutomaton_8 ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_8
+    del _BuildAutomaton_8
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 125, 3))
+    counters.add(cc_0)
+    states = []
+    final_update = set()
+    symbol = pyxb.binding.content.ElementUse(T_UtiliseEtDefinitDsLeMemeProc._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'utiliseUserAssd')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 124, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_0, False))
+    symbol = pyxb.binding.content.ElementUse(T_UtiliseEtDefinitDsLeMemeProc._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'creeUserAssd')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 125, 3))
+    st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_1)
+    transitions = []
+    transitions.append(fac.Transition(st_1, [
+         ]))
+    st_0._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_1, [
+        fac.UpdateInstruction(cc_0, True) ]))
+    st_1._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, False, containing_state=None)
+T_UtiliseEtDefinitDsLeMemeProc._Automaton = _BuildAutomaton_8()
+
+
+
+
+T_UtiliseUnUserAssD._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'utiliseUnUserAssd'), T_utiliseUnUserAssd, scope=T_UtiliseUnUserAssD, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 134, 3)))
+
+def _BuildAutomaton_9 ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_9
+    del _BuildAutomaton_9
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    states = []
+    final_update = set()
+    symbol = pyxb.binding.content.ElementUse(T_UtiliseUnUserAssD._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'utiliseUnUserAssd')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_UserAssd.xsd', 134, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    transitions = []
+    st_0._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, False, containing_state=None)
+T_UtiliseUnUserAssD._Automaton = _BuildAutomaton_9()
+
+
+DefinitionDsFactDsOper._setSubstitutionGroup(step_Essai)
+
+DefinitionDsFactDsProc._setSubstitutionGroup(step_Essai)
+
+DefinitionDsSimpDsOper._setSubstitutionGroup(step_Essai)
+
+DefinitionDsSimpDsProc._setSubstitutionGroup(step_Essai)
+
+DefinitionDsSimpListe._setSubstitutionGroup(step_Essai)
+
+UtiliseEtDefinitDsLeMemeProc._setSubstitutionGroup(step_Essai)
+
+UtiliseUnUserAssD._setSubstitutionGroup(step_Essai)
diff --git a/CatasDeTests/raw/toto.py b/CatasDeTests/raw/toto.py
new file mode 100644 (file)
index 0000000..24048f4
--- /dev/null
@@ -0,0 +1,550 @@
+# ./raw/toto.py
+# -*- coding: utf-8 -*-
+# PyXB bindings for NM:6edffaeea9d56b1698d1f555fb81b70e6e147421
+# Generated 2020-10-19 15:46:37.580374 by PyXB version 1.2.5 using Python 3.4.2.final.0
+# Namespace http://chercheurs.edf.com/logiciels/Test1
+
+from __future__ import unicode_literals
+import pyxb
+import pyxb.binding
+import pyxb.binding.saxer
+import io
+import pyxb.utils.utility
+import pyxb.utils.domutils
+import sys
+import pyxb.utils.six as _six
+# Unique identifier for bindings created at the same time
+_GenerationUID = pyxb.utils.utility.UniqueIdentifier('urn:uuid:8258bf5a-1211-11eb-875b-cc3d82d871d8')
+
+# Version of PyXB used to generate the bindings
+_PyXBVersion = '1.2.5'
+# Generated bindings are not compatible across PyXB versions
+if pyxb.__version__ != _PyXBVersion:
+    raise pyxb.PyXBVersionError(_PyXBVersion)
+
+# A holder for module-level binding classes so we can access them from
+# inside class definitions where property names may conflict.
+_module_typeBindings = pyxb.utils.utility.Object()
+
+# Import bindings for namespaces imported into schema
+import pyxb.binding.datatypes
+
+# NOTE: All namespace declarations are reserved within the binding
+Namespace = pyxb.namespace.NamespaceForURI('http://chercheurs.edf.com/logiciels/Test1', create_if_missing=True)
+Namespace.configureCategories(['typeBinding', 'elementBinding'])
+
+def CreateFromDocument (xml_text, default_namespace=None, location_base=None):
+    """Parse the given XML and use the document element to create a
+    Python instance.
+
+    @param xml_text An XML document.  This should be data (Python 2
+    str or Python 3 bytes), or a text (Python 2 unicode or Python 3
+    str) in the L{pyxb._InputEncoding} encoding.
+
+    @keyword default_namespace The L{pyxb.Namespace} instance to use as the
+    default namespace where there is no default namespace in scope.
+    If unspecified or C{None}, the namespace of the module containing
+    this function will be used.
+
+    @keyword location_base: An object to be recorded as the base of all
+    L{pyxb.utils.utility.Location} instances associated with events and
+    objects handled by the parser.  You might pass the URI from which
+    the document was obtained.
+    """
+
+    if pyxb.XMLStyle_saxer != pyxb._XMLStyle:
+        dom = pyxb.utils.domutils.StringToDOM(xml_text)
+        return CreateFromDOM(dom.documentElement, default_namespace=default_namespace)
+    if default_namespace is None:
+        default_namespace = Namespace.fallbackNamespace()
+    saxer = pyxb.binding.saxer.make_parser(fallback_namespace=default_namespace, location_base=location_base)
+    handler = saxer.getContentHandler()
+    xmld = xml_text
+    if isinstance(xmld, _six.text_type):
+        xmld = xmld.encode(pyxb._InputEncoding)
+    saxer.parse(io.BytesIO(xmld))
+    instance = handler.rootObject()
+    return instance
+
+def CreateFromDOM (node, default_namespace=None):
+    """Create a Python instance from the given DOM node.
+    The node tag must correspond to an element declaration in this module.
+
+    @deprecated: Forcing use of DOM interface is unnecessary; use L{CreateFromDocument}."""
+    if default_namespace is None:
+        default_namespace = Namespace.fallbackNamespace()
+    return pyxb.binding.basis.element.AnyCreateFromDOM(node, default_namespace)
+
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/Test1}AccasUserAssd
+class AccasUserAssd (pyxb.binding.datatypes.string):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'AccasUserAssd')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 7, 1)
+    _Documentation = None
+AccasUserAssd._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', 'AccasUserAssd', AccasUserAssd)
+_module_typeBindings.AccasUserAssd = AccasUserAssd
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/Test1}T_dimension
+class T_dimension (pyxb.binding.datatypes.int, pyxb.binding.basis.enumeration_mixin):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_dimension')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 19, 1)
+    _Documentation = None
+T_dimension._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=T_dimension, enum_prefix=None)
+T_dimension._CF_enumeration.addEnumeration(unicode_value='1', tag=None)
+T_dimension._CF_enumeration.addEnumeration(unicode_value='2', tag=None)
+T_dimension._CF_enumeration.addEnumeration(unicode_value='3', tag=None)
+T_dimension._InitializeFacetMap(T_dimension._CF_enumeration)
+Namespace.addCategoryObject('typeBinding', 'T_dimension', T_dimension)
+_module_typeBindings.T_dimension = T_dimension
+
+# Atomic simple type: [anonymous]
+class STD_ANON (pyxb.binding.datatypes.int):
+
+    """An atomic simple type."""
+
+    _ExpandedName = None
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 30, 5)
+    _Documentation = None
+STD_ANON._InitializeFacetMap()
+_module_typeBindings.STD_ANON = STD_ANON
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/Test1}T_meshname_1
+class T_meshname_1 (pyxb.binding.datatypes.string):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_meshname_1')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 38, 1)
+    _Documentation = None
+T_meshname_1._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', 'T_meshname_1', T_meshname_1)
+_module_typeBindings.T_meshname_1 = T_meshname_1
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/Test1}PNEFdico_Test1
+class PNEFdico_Test1 (pyxb.binding.datatypes.string):
+
+    """{'T_meshname': {'_meshname_CreateMesh': 'T_meshname_1'}}
+               """
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'PNEFdico_Test1')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 80, 1)
+    _Documentation = "{'T_meshname': {'_meshname_CreateMesh': 'T_meshname_1'}}\n\t\t"
+PNEFdico_Test1._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', 'PNEFdico_Test1', PNEFdico_Test1)
+_module_typeBindings.PNEFdico_Test1 = PNEFdico_Test1
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/Test1}MeshU_C
+class MeshU_C (AccasUserAssd):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'MeshU_C')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 11, 1)
+    _Documentation = None
+MeshU_C._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', 'MeshU_C', MeshU_C)
+_module_typeBindings.MeshU_C = MeshU_C
+
+# List simple type: [anonymous]
+# superclasses pyxb.binding.datatypes.anySimpleType
+class STD_ANON_ (pyxb.binding.basis.STD_list):
+
+    """Simple type that is a list of STD_ANON."""
+
+    _ExpandedName = None
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 28, 3)
+    _Documentation = None
+
+    _ItemType = STD_ANON
+STD_ANON_._InitializeFacetMap()
+_module_typeBindings.STD_ANON_ = STD_ANON_
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/Test1}T_meshname
+class T_meshname (MeshU_C):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_meshname')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 15, 1)
+    _Documentation = None
+T_meshname._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', 'T_meshname', T_meshname)
+_module_typeBindings.T_meshname = T_meshname
+
+# List simple type: {http://chercheurs.edf.com/logiciels/Test1}T_listOfEntities
+# superclasses STD_ANON_
+class T_listOfEntities (pyxb.binding.basis.STD_list):
+
+    """Simple type that is a list of STD_ANON."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_listOfEntities')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 26, 1)
+    _Documentation = None
+
+    _ItemType = STD_ANON
+T_listOfEntities._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', 'T_listOfEntities', T_listOfEntities)
+_module_typeBindings.T_listOfEntities = T_listOfEntities
+
+# Complex type {http://chercheurs.edf.com/logiciels/Test1}T_step_Test1 with content type EMPTY
+class T_step_Test1 (pyxb.binding.basis.complexTypeDefinition):
+    """Complex type {http://chercheurs.edf.com/logiciels/Test1}T_step_Test1 with content type EMPTY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_EMPTY
+    _Abstract = True
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_step_Test1')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 72, 1)
+    _ElementMap = {}
+    _AttributeMap = {}
+    # Base type is pyxb.binding.datatypes.anyType
+    _ElementMap.update({
+        
+    })
+    _AttributeMap.update({
+        
+    })
+_module_typeBindings.T_step_Test1 = T_step_Test1
+Namespace.addCategoryObject('typeBinding', 'T_step_Test1', T_step_Test1)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/Test1}T_Test1 with content type ELEMENT_ONLY
+class T_Test1 (pyxb.binding.basis.complexTypeDefinition):
+    """Complex type {http://chercheurs.edf.com/logiciels/Test1}T_Test1 with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_Test1')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 75, 2)
+    _ElementMap = {}
+    _AttributeMap = {}
+    # Base type is pyxb.binding.datatypes.anyType
+    
+    # Element {http://chercheurs.edf.com/logiciels/Test1}step_Test1 uses Python identifier step_Test1
+    __step_Test1 = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'step_Test1'), 'step_Test1', '__httpchercheurs_edf_comlogicielsTest1_T_Test1_httpchercheurs_edf_comlogicielsTest1step_Test1', True, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 73, 1), )
+
+    
+    step_Test1 = property(__step_Test1.value, __step_Test1.set, None, None)
+
+    _ElementMap.update({
+        __step_Test1.name() : __step_Test1
+    })
+    _AttributeMap.update({
+        
+    })
+_module_typeBindings.T_Test1 = T_Test1
+Namespace.addCategoryObject('typeBinding', 'T_Test1', T_Test1)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/Test1}T_CreateBoth with content type ELEMENT_ONLY
+class T_CreateBoth (T_step_Test1):
+    """Complex type {http://chercheurs.edf.com/logiciels/Test1}T_CreateBoth with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_CreateBoth')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 42, 1)
+    _ElementMap = T_step_Test1._ElementMap.copy()
+    _AttributeMap = T_step_Test1._AttributeMap.copy()
+    # Base type is T_step_Test1
+    
+    # Element {http://chercheurs.edf.com/logiciels/Test1}meshname uses Python identifier meshname
+    __meshname = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'meshname'), 'meshname', '__httpchercheurs_edf_comlogicielsTest1_T_CreateBoth_httpchercheurs_edf_comlogicielsTest1meshname', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 46, 3), )
+
+    
+    meshname = property(__meshname.value, __meshname.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/Test1}dimension uses Python identifier dimension
+    __dimension = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'dimension'), 'dimension', '__httpchercheurs_edf_comlogicielsTest1_T_CreateBoth_httpchercheurs_edf_comlogicielsTest1dimension', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 47, 3), )
+
+    
+    dimension = property(__dimension.value, __dimension.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/Test1}listOfEntities uses Python identifier listOfEntities
+    __listOfEntities = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'listOfEntities'), 'listOfEntities', '__httpchercheurs_edf_comlogicielsTest1_T_CreateBoth_httpchercheurs_edf_comlogicielsTest1listOfEntities', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 48, 3), )
+
+    
+    listOfEntities = property(__listOfEntities.value, __listOfEntities.set, None, None)
+
+    
+    # Attribute accasName uses Python identifier accasName
+    __accasName = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'accasName'), 'accasName', '__httpchercheurs_edf_comlogicielsTest1_T_CreateBoth_accasName', pyxb.binding.datatypes.string)
+    __accasName._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 50, 2)
+    __accasName._UseLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 50, 2)
+    
+    accasName = property(__accasName.value, __accasName.set, None, None)
+
+    
+    # Attribute accasType uses Python identifier accasType
+    __accasType = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'accasType'), 'accasType', '__httpchercheurs_edf_comlogicielsTest1_T_CreateBoth_accasType', pyxb.binding.datatypes.string, fixed=True, unicode_default='ASSD')
+    __accasType._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 51, 2)
+    __accasType._UseLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 51, 2)
+    
+    accasType = property(__accasType.value, __accasType.set, None, None)
+
+    
+    # Attribute typeUtilisateur uses Python identifier typeUtilisateur
+    __typeUtilisateur = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'typeUtilisateur'), 'typeUtilisateur', '__httpchercheurs_edf_comlogicielsTest1_T_CreateBoth_typeUtilisateur', pyxb.binding.datatypes.string, fixed=True, unicode_default='Mesh')
+    __typeUtilisateur._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 52, 2)
+    __typeUtilisateur._UseLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 52, 2)
+    
+    typeUtilisateur = property(__typeUtilisateur.value, __typeUtilisateur.set, None, None)
+
+    _ElementMap.update({
+        __meshname.name() : __meshname,
+        __dimension.name() : __dimension,
+        __listOfEntities.name() : __listOfEntities
+    })
+    _AttributeMap.update({
+        __accasName.name() : __accasName,
+        __accasType.name() : __accasType,
+        __typeUtilisateur.name() : __typeUtilisateur
+    })
+_module_typeBindings.T_CreateBoth = T_CreateBoth
+Namespace.addCategoryObject('typeBinding', 'T_CreateBoth', T_CreateBoth)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/Test1}T_CreateMesh with content type ELEMENT_ONLY
+class T_CreateMesh (T_step_Test1):
+    """Complex type {http://chercheurs.edf.com/logiciels/Test1}T_CreateMesh with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_CreateMesh')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 56, 1)
+    _ElementMap = T_step_Test1._ElementMap.copy()
+    _AttributeMap = T_step_Test1._AttributeMap.copy()
+    # Base type is T_step_Test1
+    
+    # Element {http://chercheurs.edf.com/logiciels/Test1}meshname uses Python identifier meshname
+    __meshname = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'meshname'), 'meshname', '__httpchercheurs_edf_comlogicielsTest1_T_CreateMesh_httpchercheurs_edf_comlogicielsTest1meshname', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 60, 3), )
+
+    
+    meshname = property(__meshname.value, __meshname.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/Test1}dimension uses Python identifier dimension
+    __dimension = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'dimension'), 'dimension', '__httpchercheurs_edf_comlogicielsTest1_T_CreateMesh_httpchercheurs_edf_comlogicielsTest1dimension', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 61, 3), )
+
+    
+    dimension = property(__dimension.value, __dimension.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/Test1}listOfEntities uses Python identifier listOfEntities
+    __listOfEntities = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'listOfEntities'), 'listOfEntities', '__httpchercheurs_edf_comlogicielsTest1_T_CreateMesh_httpchercheurs_edf_comlogicielsTest1listOfEntities', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 62, 3), )
+
+    
+    listOfEntities = property(__listOfEntities.value, __listOfEntities.set, None, None)
+
+    
+    # Attribute accasName uses Python identifier accasName
+    __accasName = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'accasName'), 'accasName', '__httpchercheurs_edf_comlogicielsTest1_T_CreateMesh_accasName', pyxb.binding.datatypes.string)
+    __accasName._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 64, 2)
+    __accasName._UseLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 64, 2)
+    
+    accasName = property(__accasName.value, __accasName.set, None, None)
+
+    
+    # Attribute accasType uses Python identifier accasType
+    __accasType = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'accasType'), 'accasType', '__httpchercheurs_edf_comlogicielsTest1_T_CreateMesh_accasType', pyxb.binding.datatypes.string, fixed=True, unicode_default='ASSD')
+    __accasType._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 65, 2)
+    __accasType._UseLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 65, 2)
+    
+    accasType = property(__accasType.value, __accasType.set, None, None)
+
+    
+    # Attribute typeUtilisateur uses Python identifier typeUtilisateur
+    __typeUtilisateur = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'typeUtilisateur'), 'typeUtilisateur', '__httpchercheurs_edf_comlogicielsTest1_T_CreateMesh_typeUtilisateur', pyxb.binding.datatypes.string, fixed=True, unicode_default='Mesh')
+    __typeUtilisateur._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 66, 2)
+    __typeUtilisateur._UseLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 66, 2)
+    
+    typeUtilisateur = property(__typeUtilisateur.value, __typeUtilisateur.set, None, None)
+
+    _ElementMap.update({
+        __meshname.name() : __meshname,
+        __dimension.name() : __dimension,
+        __listOfEntities.name() : __listOfEntities
+    })
+    _AttributeMap.update({
+        __accasName.name() : __accasName,
+        __accasType.name() : __accasType,
+        __typeUtilisateur.name() : __typeUtilisateur
+    })
+_module_typeBindings.T_CreateMesh = T_CreateMesh
+Namespace.addCategoryObject('typeBinding', 'T_CreateMesh', T_CreateMesh)
+
+
+step_Test1 = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'step_Test1'), T_step_Test1, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 73, 1))
+Namespace.addCategoryObject('elementBinding', step_Test1.name().localName(), step_Test1)
+
+Test1 = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'Test1'), T_Test1, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 74, 1))
+Namespace.addCategoryObject('elementBinding', Test1.name().localName(), Test1)
+
+CreateBoth = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'CreateBoth'), T_CreateBoth, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 70, 1))
+Namespace.addCategoryObject('elementBinding', CreateBoth.name().localName(), CreateBoth)
+
+CreateMesh = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'CreateMesh'), T_CreateMesh, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 71, 1))
+Namespace.addCategoryObject('elementBinding', CreateMesh.name().localName(), CreateMesh)
+
+
+
+T_Test1._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'step_Test1'), T_step_Test1, scope=T_Test1, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 73, 1)))
+
+def _BuildAutomaton ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton
+    del _BuildAutomaton
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 76, 4))
+    counters.add(cc_0)
+    cc_1 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 77, 3))
+    counters.add(cc_1)
+    states = []
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_0, False))
+    final_update.add(fac.UpdateInstruction(cc_1, False))
+    symbol = pyxb.binding.content.ElementUse(T_Test1._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'step_Test1')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 77, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_0, True),
+        fac.UpdateInstruction(cc_1, False) ]))
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_1, True) ]))
+    st_0._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, True, containing_state=None)
+T_Test1._Automaton = _BuildAutomaton()
+
+
+
+
+T_CreateBoth._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'meshname'), T_meshname, scope=T_CreateBoth, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 46, 3)))
+
+T_CreateBoth._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'dimension'), T_dimension, scope=T_CreateBoth, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 47, 3)))
+
+T_CreateBoth._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'listOfEntities'), T_listOfEntities, scope=T_CreateBoth, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 48, 3)))
+
+def _BuildAutomaton_ ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_
+    del _BuildAutomaton_
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 46, 3))
+    counters.add(cc_0)
+    cc_1 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 47, 3))
+    counters.add(cc_1)
+    cc_2 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 48, 3))
+    counters.add(cc_2)
+    states = []
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_0, False))
+    symbol = pyxb.binding.content.ElementUse(T_CreateBoth._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'meshname')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 46, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_1, False))
+    symbol = pyxb.binding.content.ElementUse(T_CreateBoth._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'dimension')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 47, 3))
+    st_1 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_1)
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_2, False))
+    symbol = pyxb.binding.content.ElementUse(T_CreateBoth._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'listOfEntities')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 48, 3))
+    st_2 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_2)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_0, True) ]))
+    transitions.append(fac.Transition(st_1, [
+        fac.UpdateInstruction(cc_0, False) ]))
+    transitions.append(fac.Transition(st_2, [
+        fac.UpdateInstruction(cc_0, False) ]))
+    st_0._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_1, [
+        fac.UpdateInstruction(cc_1, True) ]))
+    transitions.append(fac.Transition(st_2, [
+        fac.UpdateInstruction(cc_1, False) ]))
+    st_1._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_2, [
+        fac.UpdateInstruction(cc_2, True) ]))
+    st_2._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, True, containing_state=None)
+T_CreateBoth._Automaton = _BuildAutomaton_()
+
+
+
+
+T_CreateMesh._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'meshname'), T_meshname_1, scope=T_CreateMesh, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 60, 3)))
+
+T_CreateMesh._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'dimension'), T_dimension, scope=T_CreateMesh, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 61, 3)))
+
+T_CreateMesh._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'listOfEntities'), T_listOfEntities, scope=T_CreateMesh, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 62, 3)))
+
+def _BuildAutomaton_2 ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_2
+    del _BuildAutomaton_2
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 60, 3))
+    counters.add(cc_0)
+    cc_1 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 61, 3))
+    counters.add(cc_1)
+    cc_2 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 62, 3))
+    counters.add(cc_2)
+    states = []
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_0, False))
+    symbol = pyxb.binding.content.ElementUse(T_CreateMesh._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'meshname')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 60, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_1, False))
+    symbol = pyxb.binding.content.ElementUse(T_CreateMesh._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'dimension')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 61, 3))
+    st_1 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_1)
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_2, False))
+    symbol = pyxb.binding.content.ElementUse(T_CreateMesh._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'listOfEntities')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/CatasDeTests/cata_1.xsd', 62, 3))
+    st_2 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_2)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_0, True) ]))
+    transitions.append(fac.Transition(st_1, [
+        fac.UpdateInstruction(cc_0, False) ]))
+    transitions.append(fac.Transition(st_2, [
+        fac.UpdateInstruction(cc_0, False) ]))
+    st_0._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_1, [
+        fac.UpdateInstruction(cc_1, True) ]))
+    transitions.append(fac.Transition(st_2, [
+        fac.UpdateInstruction(cc_1, False) ]))
+    st_1._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_2, [
+        fac.UpdateInstruction(cc_2, True) ]))
+    st_2._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, True, containing_state=None)
+T_CreateMesh._Automaton = _BuildAutomaton_2()
+
+
+CreateBoth._setSubstitutionGroup(step_Test1)
+
+CreateMesh._setSubstitutionGroup(step_Test1)
diff --git a/CatasDeTests/ref/cata_Vimmp_genere.xsd b/CatasDeTests/ref/cata_Vimmp_genere.xsd
new file mode 100644 (file)
index 0000000..9db1d5a
--- /dev/null
@@ -0,0 +1,1104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+xmlns="http://chercheurs.edf.com/logiciels/Vimmp"
+xmlns:Vimmp="http://chercheurs.edf.com/logiciels/Vimmp"
+targetNamespace="http://chercheurs.edf.com/logiciels/Vimmp"
+elementFormDefault="qualified" attributeFormDefault="unqualified" version="0">
+       <xs:simpleType name="T_Title">
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Initial_Time">
+               <xs:restriction base="xs:float">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Duration">
+               <xs:restriction base="xs:float">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Shape">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="Simplified Shape"/>
+                       <xs:enumeration value="CAD or Mesh"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Box">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="Cube"/>
+                       <xs:enumeration value="Sphere"/>
+                       <xs:enumeration value="Cylinder"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Size_Of_Bounding_Box">
+               <xs:restriction>
+                       <xs:simpleType>
+                               <xs:list>
+                                       <xs:simpleType>
+                                               <xs:restriction base="xs:float">
+                                               </xs:restriction>
+                                       </xs:simpleType>
+                               </xs:list>
+                        </xs:simpleType>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Center">
+               <xs:restriction>
+                       <xs:simpleType>
+                               <xs:list>
+                                       <xs:simpleType>
+                                               <xs:restriction base="xs:float">
+                                               </xs:restriction>
+                                       </xs:simpleType>
+                               </xs:list>
+                        </xs:simpleType>
+                       <xs:maxLength value = "3"/>
+                       <xs:minLength value = "3"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Heigth">
+               <xs:restriction base="xs:float">
+                       <xs:minInclusive value = "0.0"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Radius">
+               <xs:restriction base="xs:float">
+                       <xs:minInclusive value = "0.0"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_FileFormat">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="txt"/>
+                       <xs:enumeration value="med"/>
+                       <xs:enumeration value="I-deas"/>
+                       <xs:enumeration value="Gmsh"/>
+                       <xs:enumeration value="top"/>
+                       <xs:enumeration value="others"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_FileName">
+                       <xs:union>
+       <xs:simpleType>
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType>
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType>
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType>
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType>
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType>
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+                       </xs:union>
+       </xs:simpleType>
+       <xs:simpleType name="T_SurfaceName">
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_General_Level_Of_Description">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="Microscopic"/>
+                       <xs:enumeration value="Mesoscopic"/>
+                       <xs:enumeration value="Macroscopic"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Component">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="Quantum System"/>
+                       <xs:enumeration value="Classical_Particle System"/>
+                       <xs:enumeration value="Continuum Sytem"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Number_Of_Species">
+               <xs:restriction base="xs:int">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Name_Of_Specie">
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Mass_Molaire">
+               <xs:restriction base="xs:float">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Mass_Fraction">
+               <xs:restriction base="xs:float">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Number_of_Particle">
+               <xs:restriction base="xs:int">
+                       <xs:minInclusive value = "1"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Charge">
+               <xs:restriction base="xs:float">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Name_Of_Bonded_Particles">
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Species_in_Particle">
+               <xs:restriction>
+                       <xs:simpleType>
+                               <xs:list>
+                                       <xs:simpleType>
+                                               <xs:restriction base="xs:string">
+                                               </xs:restriction>
+                                       </xs:simpleType>
+                               </xs:list>
+                        </xs:simpleType>
+                       <xs:minLength value = "2"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Type_Of_Bonded_Interaction">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="No"/>
+                       <xs:enumeration value="Covalent Bond Length"/>
+                       <xs:enumeration value="FENE"/>
+                       <xs:enumeration value="Covalent Bond Angle"/>
+                       <xs:enumeration value="Dihedral Angles"/>
+                       <xs:enumeration value="Improper Dihedral"/>
+                       <xs:enumeration value="Frozen Motion"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Apply_To_Bonded_Particles">
+               <xs:restriction>
+                       <xs:simpleType>
+                               <xs:list>
+                                       <xs:simpleType>
+                                               <xs:restriction base="xs:string">
+                                               </xs:restriction>
+                                       </xs:simpleType>
+                               </xs:list>
+                        </xs:simpleType>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Spring_Stifness">
+               <xs:restriction base="xs:float">
+                       <xs:minInclusive value = "0"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Mean_Bond_Length">
+               <xs:restriction base="xs:float">
+                       <xs:minInclusive value = "0"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Mean_Bond_Angle">
+               <xs:restriction base="xs:float">
+                       <xs:minInclusive value = "0"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Applies_To_All_Particles">
+               <xs:restriction base="xs:boolean">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Species_Pair">
+               <xs:restriction>
+                       <xs:simpleType>
+                               <xs:list>
+                                       <xs:simpleType>
+                                               <xs:restriction base="xs:string">
+                                               </xs:restriction>
+                                       </xs:simpleType>
+                               </xs:list>
+                        </xs:simpleType>
+                       <xs:maxLength value = "2"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Spring_Constant_H">
+               <xs:restriction base="xs:float">
+                       <xs:minInclusive value = "0"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_LMax">
+               <xs:restriction base="xs:float">
+                       <xs:minInclusive value = "0"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Particle_Name">
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Type_Of_Unbonded_Interaction">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="No"/>
+                       <xs:enumeration value="electro_magnetic"/>
+                       <xs:enumeration value="Repulsion_and_VdW"/>
+                       <xs:enumeration value="Soft_Potentiel"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Permittivity">
+               <xs:restriction base="xs:float">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Magnetic">
+               <xs:restriction base="xs:boolean">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Permability">
+               <xs:restriction base="xs:float">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Type_Repulsion_and_VdW">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="Lennard_Jones"/>
+                       <xs:enumeration value="Hard_sphere_model"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_VdW_Radius">
+               <xs:restriction base="xs:float">
+                       <xs:minInclusive value = "0"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Depth_Of_The_Potential_Well">
+               <xs:restriction base="xs:float">
+                       <xs:minInclusive value = "0"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Groot_Warren_Repulsion">
+               <xs:restriction base="xs:float">
+                       <xs:minInclusive value = "0"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Groot_Warren_Cutoff">
+               <xs:restriction base="xs:float">
+                       <xs:minInclusive value = "0"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Drag_Coefficient">
+               <xs:restriction base="xs:float">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Drag_Force_Cutoff">
+               <xs:restriction base="xs:float">
+                       <xs:minInclusive value = "0"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Type_Of_Interaction_With_An_External_Field">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="No"/>
+                       <xs:enumeration value="gravitational field"/>
+                       <xs:enumeration value="electric field"/>
+                       <xs:enumeration value="magnetic field"/>
+                       <xs:enumeration value="Hydrodynamic_Field"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_G">
+               <xs:restriction base="xs:float">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Input_Mode">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="uniform value"/>
+                       <xs:enumeration value="values directly assigned"/>
+                       <xs:enumeration value="values read in file"/>
+                       <xs:enumeration value="analytical function"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_E">
+               <xs:restriction base="xs:float">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Field">
+               <xs:restriction>
+                       <xs:simpleType>
+                               <xs:list>
+                                       <xs:simpleType>
+                                               <xs:restriction base="xs:float">
+                                               </xs:restriction>
+                                       </xs:simpleType>
+                               </xs:list>
+                        </xs:simpleType>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Format">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="txt"/>
+                       <xs:enumeration value="Med"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_File">
+                       <xs:union>
+       <xs:simpleType>
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType>
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+                       </xs:union>
+       </xs:simpleType>
+       <xs:simpleType name="T_FieldName">
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Function">
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_B">
+               <xs:restriction base="xs:float">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_File_1">
+                       <xs:union>
+       <xs:simpleType>
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType>
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+                       </xs:union>
+       </xs:simpleType>
+       <xs:simpleType name="T_U">
+               <xs:restriction base="xs:float">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_File_2">
+                       <xs:union>
+       <xs:simpleType>
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType>
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+                       </xs:union>
+       </xs:simpleType>
+       <xs:simpleType name="T_Field_Applies_On_All_Species">
+               <xs:restriction base="xs:boolean">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Species_List">
+               <xs:restriction>
+                       <xs:simpleType>
+                               <xs:list>
+                                       <xs:simpleType>
+                                               <xs:restriction base="xs:string">
+                                               </xs:restriction>
+                                       </xs:simpleType>
+                               </xs:list>
+                        </xs:simpleType>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Type_Of_Statistical_Physics">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="No"/>
+                       <xs:enumeration value="Equilibrium"/>
+                       <xs:enumeration value="Non_Equilibrium"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Distribution">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="nvt"/>
+                       <xs:enumeration value="nve"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Target_Temperature">
+               <xs:restriction base="xs:float">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Target_Energie">
+               <xs:restriction base="xs:float">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Non_Equilibrium_Driving_Force">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="Temperature"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Imposed_Temperature">
+               <xs:restriction base="xs:float">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Applied_On_Surface">
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Representation_Type">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="Particle_Representation"/>
+                       <xs:enumeration value="Field_Representation"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Type_Of_Entity">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="Electron"/>
+                       <xs:enumeration value="Atom"/>
+                       <xs:enumeration value="Grain"/>
+                       <xs:enumeration value="CVE"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Type_Of_State_Vector">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="Position"/>
+                       <xs:enumeration value="Kinetic"/>
+                       <xs:enumeration value="Extended_Kinetic"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Angular_Velocity">
+               <xs:restriction base="xs:boolean">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Numerical_Model">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="MD"/>
+                       <xs:enumeration value="DPD"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Numerical_Model_DPD">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="DPD"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Structure_Of_The_Evolution_Law">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="Newton equations"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Type_Of_Boundary_Condition">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="Inlet"/>
+                       <xs:enumeration value="Outlet"/>
+                       <xs:enumeration value="Symmetry"/>
+                       <xs:enumeration value="Periodic"/>
+                       <xs:enumeration value="Wall"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Direction">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="X"/>
+                       <xs:enumeration value="Y"/>
+                       <xs:enumeration value="Z"/>
+                       <xs:enumeration value="XYZ"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Boundary_Face">
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Apply_to_Wich_Quantity">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="Mass FLux"/>
+                       <xs:enumeration value="Velocity"/>
+                       <xs:enumeration value="Temperature"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Formulation_of_Boundary">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="Dirichlet"/>
+                       <xs:enumeration value="Neumann"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Value">
+               <xs:restriction base="xs:float">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Applies_To_The_Complete_State_Vector">
+               <xs:restriction base="xs:boolean">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_State_Vector_Variable">
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Type_Initials_Conditions">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="Initial distribution of the state vector"/>
+                       <xs:enumeration value="Initial values of the state vector variables"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_State_Vector_Initial_Distribution">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="MaxWell"/>
+                       <xs:enumeration value="Uniform"/>
+                       <xs:enumeration value="Auto"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Injection_Subdomain">
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_File_Vecteur_Etat_Initial">
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Format_File_Vecteur_Etat_Initial">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="txt"/>
+                       <xs:enumeration value="a definir avec Eric"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:complexType name="T_Simulated_Time_Lapse" >
+               <xs:sequence>
+                       <xs:element name="Initial_Time" type="Vimmp:T_Initial_Time" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="Duration" type="Vimmp:T_Duration" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:group name="T_b_Cube">   
+               <xs:sequence>
+                       <xs:element name="Size_Of_Bounding_Box" type="Vimmp:T_Size_Of_Bounding_Box" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_b_Boule">   
+               <xs:sequence>
+                       <xs:element name="Center" type="Vimmp:T_Center" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_b_Cylinder">   
+               <xs:sequence>
+                       <xs:element name="Heigth" type="Vimmp:T_Heigth" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_b_Boule_ou_Cylinder">   
+               <xs:sequence>
+                       <xs:element name="Radius" type="Vimmp:T_Radius" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_b_Shape">   
+               <xs:sequence>
+                       <xs:element name="Box" type="Vimmp:T_Box" minOccurs="1" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_Cube"  minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_Boule"  minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_Cylinder"  minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_Boule_ou_Cylinder"  minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_b_format_fichiertxt_b_format_fichier_others_1">
+               <xs:sequence>
+                       <xs:element name="FileName" type="Vimmp:T_FileName" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_b_CAO">   
+               <xs:sequence>
+                       <xs:element name="FileFormat" type="Vimmp:T_FileFormat" minOccurs="1" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_format_fichiertxt_b_format_fichier_others_1"  minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:complexType name="T_Surface" >
+               <xs:sequence>
+                       <xs:element name="SurfaceName" type="Vimmp:T_SurfaceName" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="T_Geometric_Domain" >
+               <xs:sequence>
+                       <xs:element name="Shape" type="Vimmp:T_Shape" minOccurs="1" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_Shape"  minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_CAO"  minOccurs="0" maxOccurs="1"/>
+                       <xs:element name="Surface" type="Vimmp:T_Surface" minOccurs="0" maxOccurs="unbounded"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:group name="T_b_Electrostatique">   
+               <xs:sequence>
+                       <xs:element name="Charge" type="Vimmp:T_Charge" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:complexType name="T_Specie" >
+               <xs:sequence>
+                       <xs:element name="Name_Of_Specie" type="Vimmp:T_Name_Of_Specie" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="Mass_Molaire" type="Vimmp:T_Mass_Molaire" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="Mass_Fraction" type="Vimmp:T_Mass_Fraction" minOccurs="0" maxOccurs="1"/>
+                       <xs:element name="Number_of_Particle" type="Vimmp:T_Number_of_Particle" minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_Electrostatique"  minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="T_List_Of_Species" >
+               <xs:sequence>
+                       <xs:element name="Number_Of_Species" type="Vimmp:T_Number_Of_Species" minOccurs="1" maxOccurs="1" default="1"/>
+                       <xs:element name="Specie" type="Vimmp:T_Specie" minOccurs="0" maxOccurs="unbounded"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="T_Bonded_Particles" >
+               <xs:sequence>
+                       <xs:element name="Name_Of_Bonded_Particles" type="Vimmp:T_Name_Of_Bonded_Particles" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="Species_in_Particle" type="Vimmp:T_Species_in_Particle" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="T_List_Of_Bonded_Particles" >
+               <xs:sequence>
+                       <xs:element name="Bonded_Particles" type="Vimmp:T_Bonded_Particles" minOccurs="0" maxOccurs="unbounded"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="T_Interaction_Length_Parameters" >
+               <xs:sequence>
+                       <xs:element name="Apply_To_Bonded_Particles" type="Vimmp:T_Apply_To_Bonded_Particles" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="Spring_Stifness" type="Vimmp:T_Spring_Stifness" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="Mean_Bond_Length" type="Vimmp:T_Mean_Bond_Length" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:group name="T_bloc_covalent_length">   
+               <xs:sequence>
+                       <xs:element name="Interaction_Length_Parameters" type="Vimmp:T_Interaction_Length_Parameters" minOccurs="0" maxOccurs="unbounded"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:complexType name="T_Interaction_Angles_Parameters" >
+               <xs:sequence>
+                       <xs:element name="Apply_To_Bonded_Particles" type="Vimmp:T_Apply_To_Bonded_Particles" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="Spring_Stifness" type="Vimmp:T_Spring_Stifness" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="Mean_Bond_Angle" type="Vimmp:T_Mean_Bond_Angle" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:group name="T_bloc_covalent_angle">   
+               <xs:sequence>
+                       <xs:element name="Interaction_Angles_Parameters" type="Vimmp:T_Interaction_Angles_Parameters" minOccurs="0" maxOccurs="unbounded"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:complexType name="T_FENE_Parameters" >
+               <xs:sequence>
+                       <xs:element name="Species_Pair" type="Vimmp:T_Species_Pair" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="Spring_Constant_H" type="Vimmp:T_Spring_Constant_H" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="LMax" type="Vimmp:T_LMax" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:group name="T_bloc_not_on_all">   
+               <xs:sequence>
+                       <xs:element name="FENE_Parameters" type="Vimmp:T_FENE_Parameters" minOccurs="0" maxOccurs="unbounded"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_bloc_on_all">   
+               <xs:sequence>
+                       <xs:element name="Spring_Constant_H" type="Vimmp:T_Spring_Constant_H" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="LMax" type="Vimmp:T_LMax" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_bloc_FENE">   
+               <xs:sequence>
+                       <xs:element name="Applies_To_All_Particles" type="Vimmp:T_Applies_To_All_Particles" minOccurs="1" maxOccurs="1" default="true"/>
+                       <xs:group ref="Vimmp:T_bloc_not_on_all"  minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_bloc_on_all"  minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_bloc_le_reste">   
+               <xs:sequence>
+                       <xs:element name="Particle_Name" type="Vimmp:T_Particle_Name" minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:complexType name="T_Bonded_Interactions" >
+               <xs:sequence>
+                       <xs:element name="Type_Of_Bonded_Interaction" type="Vimmp:T_Type_Of_Bonded_Interaction" minOccurs="1" maxOccurs="1" default="No"/>
+                       <xs:group ref="Vimmp:T_bloc_covalent_length"  minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_bloc_covalent_angle"  minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_bloc_FENE"  minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_bloc_le_reste"  minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:group name="T_bloc_magnetic">   
+               <xs:sequence>
+                       <xs:element name="Permability" type="Vimmp:T_Permability" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_bloc_elec">   
+               <xs:sequence>
+                       <xs:element name="Permittivity" type="Vimmp:T_Permittivity" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="Magnetic" type="Vimmp:T_Magnetic" minOccurs="1" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_bloc_magnetic"  minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_b_Lennard">   
+               <xs:sequence>
+                       <xs:element name="Depth_Of_The_Potential_Well" type="Vimmp:T_Depth_Of_The_Potential_Well" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:complexType name="T_Species_Pair_Parameters" >
+               <xs:sequence>
+                       <xs:element name="Type_Repulsion_and_VdW" type="Vimmp:T_Type_Repulsion_and_VdW" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="Species_Pair" type="Vimmp:T_Species_Pair" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="VdW_Radius" type="Vimmp:T_VdW_Radius" minOccurs="1" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_Lennard"  minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:group name="T_bloc_VdW">   
+               <xs:sequence>
+                       <xs:element name="Species_Pair_Parameters" type="Vimmp:T_Species_Pair_Parameters" minOccurs="0" maxOccurs="unbounded"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_b_Param_Soft_Potentiel">   
+               <xs:sequence>
+                       <xs:element name="Groot_Warren_Repulsion" type="Vimmp:T_Groot_Warren_Repulsion" minOccurs="1" maxOccurs="1" default="25.0"/>
+                       <xs:element name="Groot_Warren_Cutoff" type="Vimmp:T_Groot_Warren_Cutoff" minOccurs="1" maxOccurs="1" default="1.0"/>
+                       <xs:element name="Drag_Coefficient" type="Vimmp:T_Drag_Coefficient" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="Drag_Force_Cutoff" type="Vimmp:T_Drag_Force_Cutoff" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:complexType name="T_Unbonded_Interactions" >
+               <xs:sequence>
+                       <xs:element name="Type_Of_Unbonded_Interaction" type="Vimmp:T_Type_Of_Unbonded_Interaction" minOccurs="1" maxOccurs="1" default="No"/>
+                       <xs:group ref="Vimmp:T_bloc_elec"  minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_bloc_VdW"  minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_Param_Soft_Potentiel"  minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:group name="T_b_gravite">   
+               <xs:sequence>
+                       <xs:element name="G" type="Vimmp:T_G" minOccurs="1" maxOccurs="1" default="9.81"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_b_uniforme">   
+               <xs:sequence>
+                       <xs:element name="E" type="Vimmp:T_E" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_b_vsaisies">   
+               <xs:sequence>
+                       <xs:element name="Field" type="Vimmp:T_Field" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_td_txt_td_med_1_15">
+               <xs:sequence>
+                       <xs:element name="File" type="Vimmp:T_File" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_td_med_2">   
+               <xs:sequence>
+                       <xs:element name="FieldName" type="Vimmp:T_FieldName" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_b_vdsfich">   
+               <xs:sequence>
+                       <xs:element name="Format" type="Vimmp:T_Format" minOccurs="1" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_td_txt_td_med_1_15"  minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_td_med_2"  minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_b_vfct">   
+               <xs:sequence>
+                       <xs:element name="Function" type="Vimmp:T_Function" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:complexType name="T_Electric_Field" >
+               <xs:sequence>
+                       <xs:element name="Input_Mode" type="Vimmp:T_Input_Mode" minOccurs="1" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_uniforme"  minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_vsaisies"  minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_vdsfich"  minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_vfct"  minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:group name="T_b_elect">   
+               <xs:sequence>
+                       <xs:element name="Electric_Field" type="Vimmp:T_Electric_Field" minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_b_uniforme_1">   
+               <xs:sequence>
+                       <xs:element name="B" type="Vimmp:T_B" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_td_txt_td_med_1_16">
+               <xs:sequence>
+                       <xs:element name="File" type="Vimmp:T_File_1" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_b_vdsfich_1">   
+               <xs:sequence>
+                       <xs:element name="Format" type="Vimmp:T_Format" minOccurs="1" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_td_txt_td_med_1_16"  minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_td_med_2"  minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:complexType name="T_Magnetic_Field" >
+               <xs:sequence>
+                       <xs:element name="Input_Mode" type="Vimmp:T_Input_Mode" minOccurs="1" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_uniforme_1"  minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_vsaisies"  minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_vdsfich_1"  minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_vfct"  minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:group name="T_b_magnetic">   
+               <xs:sequence>
+                       <xs:element name="Magnetic_Field" type="Vimmp:T_Magnetic_Field" minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_b_uniforme_2">   
+               <xs:sequence>
+                       <xs:element name="U" type="Vimmp:T_U" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_td_txt_td_med_1_17">
+               <xs:sequence>
+                       <xs:element name="File" type="Vimmp:T_File_2" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_b_vdsfich_2">   
+               <xs:sequence>
+                       <xs:element name="Format" type="Vimmp:T_Format" minOccurs="1" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_td_txt_td_med_1_17"  minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_td_med_2"  minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:complexType name="T_Hydrodynamic_Field" >
+               <xs:sequence>
+                       <xs:element name="Input_Mode" type="Vimmp:T_Input_Mode" minOccurs="1" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_uniforme_2"  minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_vsaisies"  minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_vdsfich_2"  minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_vfct"  minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:group name="T_b_hydrodynamic">   
+               <xs:sequence>
+                       <xs:element name="Hydrodynamic_Field" type="Vimmp:T_Hydrodynamic_Field" minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_b_porte_espece">   
+               <xs:sequence>
+                       <xs:element name="Species_List" type="Vimmp:T_Species_List" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_b_External_Field_Interaction">   
+               <xs:sequence>
+                       <xs:element name="Field_Applies_On_All_Species" type="Vimmp:T_Field_Applies_On_All_Species" minOccurs="1" maxOccurs="1" default="true"/>
+                       <xs:group ref="Vimmp:T_b_porte_espece"  minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:complexType name="T_External_Field_Interaction" >
+               <xs:sequence>
+                       <xs:element name="Type_Of_Interaction_With_An_External_Field" type="Vimmp:T_Type_Of_Interaction_With_An_External_Field" minOccurs="1" maxOccurs="1" default="No"/>
+                       <xs:group ref="Vimmp:T_b_gravite"  minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_elect"  minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_magnetic"  minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_hydrodynamic"  minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_External_Field_Interaction"  minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="T_List_Of_Interactions" >
+               <xs:sequence>
+                       <xs:element name="Bonded_Interactions" type="Vimmp:T_Bonded_Interactions" minOccurs="0" maxOccurs="unbounded"/>
+                       <xs:element name="Unbonded_Interactions" type="Vimmp:T_Unbonded_Interactions" minOccurs="0" maxOccurs="unbounded"/>
+                       <xs:element name="External_Field_Interaction" type="Vimmp:T_External_Field_Interaction" minOccurs="0" maxOccurs="unbounded"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:group name="T_b_nvt">   
+               <xs:sequence>
+                       <xs:element name="Target_Temperature" type="Vimmp:T_Target_Temperature" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_b_nve">   
+               <xs:sequence>
+                       <xs:element name="Target_Energie" type="Vimmp:T_Target_Energie" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_b_Statistical_Physics_Equilibrium">   
+               <xs:sequence>
+                       <xs:element name="Distribution" type="Vimmp:T_Distribution" minOccurs="1" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_nvt"  minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_nve"  minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:complexType name="T_Imposed_non_isothermal" >
+               <xs:sequence>
+                       <xs:element name="Imposed_Temperature" type="Vimmp:T_Imposed_Temperature" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="Applied_On_Surface" type="Vimmp:T_Applied_On_Surface" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:group name="T_b_Statistical_Physics_Equilibrium_false">   
+               <xs:sequence>
+                       <xs:element name="Non_Equilibrium_Driving_Force" type="Vimmp:T_Non_Equilibrium_Driving_Force" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="Imposed_non_isothermal" type="Vimmp:T_Imposed_non_isothermal" minOccurs="2" maxOccurs="unbounded"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:complexType name="T_Statistical_Physics" >
+               <xs:sequence>
+                       <xs:element name="Type_Of_Statistical_Physics" type="Vimmp:T_Type_Of_Statistical_Physics" minOccurs="1" maxOccurs="1" default="No"/>
+                       <xs:group ref="Vimmp:T_b_Statistical_Physics_Equilibrium"  minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_Statistical_Physics_Equilibrium_false"  minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="T_Physical_Description_Particle" >
+               <xs:sequence>
+                       <xs:element name="List_Of_Species" type="Vimmp:T_List_Of_Species" minOccurs="0" maxOccurs="1"/>
+                       <xs:element name="List_Of_Bonded_Particles" type="Vimmp:T_List_Of_Bonded_Particles" minOccurs="0" maxOccurs="1"/>
+                       <xs:element name="List_Of_Interactions" type="Vimmp:T_List_Of_Interactions" minOccurs="0" maxOccurs="unbounded"/>
+                       <xs:element name="Statistical_Physics" type="Vimmp:T_Statistical_Physics" minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:group name="T_b_Extended_Kinetic">   
+               <xs:sequence>
+                       <xs:element name="Angular_Velocity" type="Vimmp:T_Angular_Velocity" minOccurs="1" maxOccurs="1" default="true"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:complexType name="T_Numerical_Particle_Model" >
+               <xs:sequence>
+                       <xs:element name="Type_Of_State_Vector" type="Vimmp:T_Type_Of_State_Vector" minOccurs="1" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_Extended_Kinetic"  minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:group name="T_b_State_Vector_Kinetic">   
+               <xs:sequence>
+                       <xs:element name="Numerical_Model" type="Vimmp:T_Numerical_Model" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_b_State_Vector_Extanded_Kinetic">   
+               <xs:sequence>
+                       <xs:element name="Numerical_Model_DPD" type="Vimmp:T_Numerical_Model_DPD" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:complexType name="T_Definition_Numerical_Model" >
+               <xs:sequence>
+                       <xs:group ref="Vimmp:T_b_State_Vector_Kinetic"  minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_State_Vector_Extanded_Kinetic"  minOccurs="0" maxOccurs="1"/>
+                       <xs:element name="Structure_Of_The_Evolution_Law" type="Vimmp:T_Structure_Of_The_Evolution_Law" minOccurs="1" maxOccurs="1" default="Newton equations"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:group name="T_b_repr_particle">   
+               <xs:sequence>
+                       <xs:element name="Numerical_Particle_Model" type="Vimmp:T_Numerical_Particle_Model" minOccurs="0" maxOccurs="unbounded"/>
+                       <xs:element name="Definition_Numerical_Model" type="Vimmp:T_Definition_Numerical_Model" minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:complexType name="T_Particle_Representation" >
+               <xs:sequence>
+                       <xs:element name="Representation_Type" type="Vimmp:T_Representation_Type" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="Type_Of_Entity" type="Vimmp:T_Type_Of_Entity" minOccurs="1" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_repr_particle"  minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:group name="T_b_component_particle">   
+               <xs:sequence>
+                       <xs:element name="Physical_Description_Particle" type="Vimmp:T_Physical_Description_Particle" minOccurs="0" maxOccurs="1"/>
+                       <xs:element name="Particle_Representation" type="Vimmp:T_Particle_Representation" minOccurs="1" maxOccurs="2"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:complexType name="T_System_Component" >
+               <xs:sequence>
+                       <xs:element name="General_Level_Of_Description" type="Vimmp:T_General_Level_Of_Description" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="Component" type="Vimmp:T_Component" minOccurs="1" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_component_particle"  minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:group name="T_b_periodique">   
+               <xs:sequence>
+                       <xs:element name="Direction" type="Vimmp:T_Direction" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_b_Formulation_of_Boundary_dirichlet">   
+               <xs:sequence>
+                       <xs:element name="Value" type="Vimmp:T_Value" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_b_non_periodique">   
+               <xs:sequence>
+                       <xs:element name="Boundary_Face" type="Vimmp:T_Boundary_Face" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="Apply_to_Wich_Quantity" type="Vimmp:T_Apply_to_Wich_Quantity" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="Formulation_of_Boundary" type="Vimmp:T_Formulation_of_Boundary" minOccurs="1" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_Formulation_of_Boundary_dirichlet"  minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:complexType name="T_Boundary_Conditions" >
+               <xs:sequence>
+                       <xs:element name="Type_Of_Boundary_Condition" type="Vimmp:T_Type_Of_Boundary_Condition" minOccurs="1" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_periodique"  minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_non_periodique"  minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:group name="T_b_Variable_CI">   
+               <xs:sequence>
+                       <xs:element name="State_Vector_Variable" type="Vimmp:T_State_Vector_Variable" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_b_distrib">   
+               <xs:sequence>
+                       <xs:element name="State_Vector_Initial_Distribution" type="Vimmp:T_State_Vector_Initial_Distribution" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="Injection_Subdomain" type="Vimmp:T_Injection_Subdomain" minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_b_initials">   
+               <xs:sequence>
+                       <xs:element name="File_Vecteur_Etat_Initial" type="Vimmp:T_File_Vecteur_Etat_Initial" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="Format_File_Vecteur_Etat_Initial" type="Vimmp:T_Format_File_Vecteur_Etat_Initial" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:complexType name="T_Initial_Condition" >
+               <xs:sequence>
+                       <xs:group ref="Vimmp:T_b_Variable_CI"  minOccurs="0" maxOccurs="1"/>
+                       <xs:element name="Type_Initials_Conditions" type="Vimmp:T_Type_Initials_Conditions" minOccurs="1" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_distrib"  minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_initials"  minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="T_Initials_Conditions" >
+               <xs:sequence>
+                       <xs:element name="Applies_To_The_Complete_State_Vector" type="Vimmp:T_Applies_To_The_Complete_State_Vector" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="Initial_Condition" type="Vimmp:T_Initial_Condition" minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="T_CDM" >
+               <xs:sequence>
+                       <xs:element name="Title" type="Vimmp:T_Title" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="Simulated_Time_Lapse" type="Vimmp:T_Simulated_Time_Lapse" minOccurs="0" maxOccurs="1"/>
+                       <xs:element name="Geometric_Domain" type="Vimmp:T_Geometric_Domain" minOccurs="0" maxOccurs="1"/>
+                       <xs:element name="System_Component" type="Vimmp:T_System_Component" minOccurs="0" maxOccurs="unbounded"/>
+                       <xs:element name="Boundary_Conditions" type="Vimmp:T_Boundary_Conditions" minOccurs="0" maxOccurs="unbounded"/>
+                       <xs:element name="Initials_Conditions" type="Vimmp:T_Initials_Conditions" minOccurs="0" maxOccurs="unbounded"/>
+               </xs:sequence>
+               <xs:attribute name="name" type="xs:string"/>
+               <xs:attribute name="accasType" type="xs:string" fixed="ASSD"/>
+               <xs:attribute name="typeUtilisateur" type="xs:string" fixed="CDM_SD"/>
+       </xs:complexType>
+       <xs:complexType name="T_Vimmp">
+               <xs:choice minOccurs="0" maxOccurs="unbounded">
+                       <xs:element name="CDM" type="Vimmp:T_CDM"/>
+               </xs:choice>
+       </xs:complexType>
+       <xs:element name="Vimmp" type="Vimmp:T_Vimmp">
+       <xs:key name="Key_Name_For_BondedParticle">
+               <xs:selector xpath="."/>
+               <xs:field xpath="./Vimmp:CDM/System_Component/Physical_Description_Particle/List_Of_Bonded_Particles/Bonded_Particles/Name_Of_Bonded_Particles "/>
+       </xs:key>
+       <xs:key name="Key_Name_For_CDM_SD">
+               <xs:selector xpath="."/>
+               <xs:field xpath="./Vimmp:CDM/@name"/>
+       </xs:key>
+       <xs:key name="Key_Name_For_Specie">
+               <xs:selector xpath="."/>
+               <xs:field xpath="./Vimmp:CDM/System_Component/Physical_Description_Particle/List_Of_Species/Specie/Name_Of_Specie "/>
+       </xs:key>
+       <xs:key name="Key_Name_For_ElementarySurface">
+               <xs:selector xpath="."/>
+               <xs:field xpath="./Vimmp:CDM/Geometric_Domain/Surface/SurfaceName "/>
+       </xs:key>
+
+       <xs:keyref name="CDM_System_Component_b_component_particle_Physical_Description_Particle_List_Of_Interactions_Bonded_Interactions_bloc_covalent_length_Interaction_Length_Parameters_Apply_To_Bonded_Particles_Name_ref_aBondedParticle" refer="Vimmp:Key_Name_For_BondedParticle"> 
+               <xs:selector xpath="./Vimmp:CDM/System_Component/Physical_Description_Particle/List_Of_Interactions/Bonded_Interactions/Interaction_Length_Parameters/Apply_To_Bonded_Particles"/>
+               <xs:field xpath="."/>
+       </xs:keyref>
+
+       <xs:keyref name="CDM_System_Component_b_component_particle_Physical_Description_Particle_List_Of_Interactions_Bonded_Interactions_bloc_covalent_angle_Interaction_Angles_Parameters_Apply_To_Bonded_Particles_Name_ref_aBondedParticle" refer="Vimmp:Key_Name_For_BondedParticle"> 
+               <xs:selector xpath="./Vimmp:CDM/System_Component/Physical_Description_Particle/List_Of_Interactions/Bonded_Interactions/Interaction_Angles_Parameters/Apply_To_Bonded_Particles"/>
+               <xs:field xpath="."/>
+       </xs:keyref>
+
+       <xs:keyref name="CDM_System_Component_b_component_particle_Physical_Description_Particle_List_Of_Bonded_Particles_Bonded_Particles_Species_in_Particle_Name_ref_aSpecie" refer="Vimmp:Key_Name_For_Specie"> 
+               <xs:selector xpath="./Vimmp:CDM/System_Component/PhysicalDescription_Particle/List_Of_Bonded_Particles/Bonded_Particles/Species_in_Particle"/>
+               <xs:field xpath="."/>
+       </xs:keyref>
+
+       <xs:keyref name="CDM_System_Component_b_component_particle_Physical_Description_Particle_Statistical_Physics_b_Statistical_Physics_Equilibrium_false_Imposed_non_isothermal_Applied_On_Surface_Name_ref_aElementarySurface" refer="Vimmp:Key_Name_For_ElementarySurface"> 
+               <xs:selector xpath="./Vimmp:CDM/System_Component/Physical_Description_Particle/Statistical_Physics/Imposed_non_isothermal/Applied_On_Surface"/>
+               <xs:field xpath="."/>
+       </xs:keyref>
+
+       <xs:keyref name="CDM_Boundary_Conditions_b_non_periodique_Boundary_Face_Name_ref_aElementarySurface" refer="Vimmp:Key_Name_For_ElementarySurface"> 
+               <xs:selector xpath="./Vimmp:CDM/Boundary_Conditions/Boundary_Face"/>
+               <xs:field xpath="."/>
+       </xs:keyref>
+       </xs:element>
+</xs:schema>
diff --git a/CatasDeTests/ref/cata_gromacs_genere.xsd b/CatasDeTests/ref/cata_gromacs_genere.xsd
new file mode 100644 (file)
index 0000000..052a349
--- /dev/null
@@ -0,0 +1,373 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+xmlns="http://chercheurs.edf.com/logiciels/Vimmp"
+xmlns:Vimmp="http://chercheurs.edf.com/logiciels/Vimmp"
+targetNamespace="http://chercheurs.edf.com/logiciels/Vimmp"
+elementFormDefault="qualified" attributeFormDefault="unqualified" version="0">
+       <xs:simpleType name="T_Remove_Center_Of_Mass_Motion">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="Linear"/>
+                       <xs:enumeration value="Angular"/>
+                       <xs:enumeration value="Non Activ"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_nstcomm">
+               <xs:restriction base="xs:int">
+                       <xs:minInclusive value = "0"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Apply_On_The_Complete_System">
+               <xs:restriction base="xs:boolean">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_List_Of_Groups">
+               <xs:restriction>
+                       <xs:simpleType>
+                               <xs:list>
+                                       <xs:simpleType>
+                                               <xs:restriction base="xs:string">
+                                               </xs:restriction>
+                                       </xs:simpleType>
+                               </xs:list>
+                        </xs:simpleType>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Bond_Constraint_Type">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="BC_none"/>
+                       <xs:enumeration value="h-bonds"/>
+                       <xs:enumeration value="all-bonds"/>
+                       <xs:enumeration value="h-angles"/>
+                       <xs:enumeration value="all-angles"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Bond_Constraint_Algorithm">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="LINCS"/>
+                       <xs:enumeration value="SHAKE"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_lincs_order">
+               <xs:restriction base="xs:int">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_lincs_iter">
+               <xs:restriction base="xs:int">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_lincs_warnangle">
+               <xs:restriction base="xs:int">
+                       <xs:minInclusive value = "0"/>
+                       <xs:maxInclusive value = "359"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_shake_tol">
+               <xs:restriction base="xs:float">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Morse">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="no"/>
+                       <xs:enumeration value="yes"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_tcoupl">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="Non Activ"/>
+                       <xs:enumeration value="Berendsen"/>
+                       <xs:enumeration value="Nos-Hoover"/>
+                       <xs:enumeration value="Andersen"/>
+                       <xs:enumeration value="Andersen-Massive"/>
+                       <xs:enumeration value="V-Rescale"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Groups_Separatly_Coupled">
+               <xs:restriction base="xs:boolean">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Name_Of_Group">
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_tau-t">
+               <xs:restriction base="xs:float">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_ref_t">
+               <xs:restriction base="xs:float">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Integrator">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="steep"/>
+                       <xs:enumeration value="md"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_emtol">
+               <xs:restriction base="xs:float">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_emstep">
+               <xs:restriction base="xs:float">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_nstcgsteep">
+               <xs:restriction base="xs:int">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_nbfgscorr">
+               <xs:restriction base="xs:int">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Nb_Of_Steps">
+               <xs:restriction base="xs:int">
+                       <xs:minInclusive value = "1"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_nsttcouple">
+               <xs:restriction base="xs:int">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_cutoff_scheme">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="verlet"/>
+                       <xs:enumeration value="group"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_nstlist">
+               <xs:restriction base="xs:int">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_nst_type">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="grid"/>
+                       <xs:enumeration value="simple"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_periodic_molecules">
+               <xs:restriction base="xs:boolean">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_rlist">
+               <xs:restriction base="xs:int">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_rcoulomb">
+               <xs:restriction base="xs:float">
+                       <xs:minInclusive value = "0"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_rvdw">
+               <xs:restriction base="xs:float">
+                       <xs:minInclusive value = "0"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_gen_vel">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="yes"/>
+                       <xs:enumeration value="no"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_gen_temp">
+               <xs:restriction base="xs:float">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_gen_seed">
+               <xs:restriction base="xs:float">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_UserDef">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="-DFLEX_SRC"/>
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_MDP_Initial_Input_File">
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Gromos_File">
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Gromacs_Topology_File">
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Gromacs_Index_File">
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_MDP_Generated_File">
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Run_Generated_File">
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_log_File">
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Energie_Output_File">
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:simpleType name="T_Trajectory_Output_File">
+               <xs:restriction base="xs:string">
+               </xs:restriction>
+       </xs:simpleType>
+       <xs:group name="T_b_porte_sur_tout_le_system">   
+               <xs:sequence>
+                       <xs:element name="List_Of_Groups" type="Vimmp:T_List_Of_Groups" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_b_recalage_cgt">   
+               <xs:sequence>
+                       <xs:element name="nstcomm" type="Vimmp:T_nstcomm" minOccurs="1" maxOccurs="1" default="100"/>
+                       <xs:element name="Apply_On_The_Complete_System" type="Vimmp:T_Apply_On_The_Complete_System" minOccurs="1" maxOccurs="1" default="true"/>
+                       <xs:group ref="Vimmp:T_b_porte_sur_tout_le_system"  minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_b_bond_constraint_algorithm_lincs">   
+               <xs:sequence>
+                       <xs:element name="lincs_order" type="Vimmp:T_lincs_order" minOccurs="1" maxOccurs="1" default="4"/>
+                       <xs:element name="lincs_iter" type="Vimmp:T_lincs_iter" minOccurs="1" maxOccurs="1" default="1"/>
+                       <xs:element name="lincs_warnangle" type="Vimmp:T_lincs_warnangle" minOccurs="1" maxOccurs="1" default="30"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_b_bond_constraint_algorithm_shake">   
+               <xs:sequence>
+                       <xs:element name="shake_tol" type="Vimmp:T_shake_tol" minOccurs="1" maxOccurs="1" default="0.0001"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:complexType name="T_Bond_Constraints" >
+               <xs:sequence>
+                       <xs:element name="Bond_Constraint_Type" type="Vimmp:T_Bond_Constraint_Type" minOccurs="1" maxOccurs="1" default="BC_none"/>
+                       <xs:element name="Bond_Constraint_Algorithm" type="Vimmp:T_Bond_Constraint_Algorithm" minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_bond_constraint_algorithm_lincs"  minOccurs="0" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_bond_constraint_algorithm_shake"  minOccurs="0" maxOccurs="1"/>
+                       <xs:element name="Morse" type="Vimmp:T_Morse" minOccurs="0" maxOccurs="1" default="no"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:group name="T_b_tau_t">   
+               <xs:sequence>
+                       <xs:element name="ref_t" type="Vimmp:T_ref_t" minOccurs="1" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:complexType name="T_TC_Group_Param" >
+               <xs:sequence>
+                       <xs:element name="Name_Of_Group" type="Vimmp:T_Name_Of_Group" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="tau-t" type="Vimmp:T_tau-t" minOccurs="1" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_tau_t"  minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:group name="T_b_groups_separatly_coupled">   
+               <xs:sequence>
+                       <xs:element name="TC_Group_Param" type="Vimmp:T_TC_Group_Param" minOccurs="0" maxOccurs="unbounded"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_b_t_coupling">   
+               <xs:sequence>
+                       <xs:element name="Groups_Separatly_Coupled" type="Vimmp:T_Groups_Separatly_Coupled" minOccurs="1" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_groups_separatly_coupled"  minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:complexType name="T_Temperature_Coupling" >
+               <xs:sequence>
+                       <xs:element name="tcoupl" type="Vimmp:T_tcoupl" minOccurs="1" maxOccurs="1" default="Non Activ"/>
+                       <xs:group ref="Vimmp:T_b_t_coupling"  minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="T_Gromacs_Physical_Constraints" >
+               <xs:sequence>
+                       <xs:element name="Remove_Center_Of_Mass_Motion" type="Vimmp:T_Remove_Center_Of_Mass_Motion" minOccurs="1" maxOccurs="1" default="Non Activ"/>
+                       <xs:group ref="Vimmp:T_b_recalage_cgt"  minOccurs="0" maxOccurs="1"/>
+                       <xs:element name="Bond_Constraints" type="Vimmp:T_Bond_Constraints" minOccurs="0" maxOccurs="1"/>
+                       <xs:element name="Temperature_Coupling" type="Vimmp:T_Temperature_Coupling" minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:group name="T_b_steep">   
+               <xs:sequence>
+                       <xs:element name="emtol" type="Vimmp:T_emtol" minOccurs="1" maxOccurs="1" default="10.0"/>
+                       <xs:element name="emstep" type="Vimmp:T_emstep" minOccurs="1" maxOccurs="1" default="0.001"/>
+                       <xs:element name="nstcgsteep" type="Vimmp:T_nstcgsteep" minOccurs="0" maxOccurs="1" default="1000"/>
+                       <xs:element name="nbfgscorr" type="Vimmp:T_nbfgscorr" minOccurs="0" maxOccurs="1" default="10"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:group name="T_b_t_coupling_num">   
+               <xs:sequence>
+                       <xs:element name="nsttcouple" type="Vimmp:T_nsttcouple" minOccurs="1" maxOccurs="1" default="-1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:complexType name="T_Gromacs_Numerical_Description" >
+               <xs:sequence>
+                       <xs:element name="Integrator" type="Vimmp:T_Integrator" minOccurs="1" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_steep"  minOccurs="0" maxOccurs="1"/>
+                       <xs:element name="Nb_Of_Steps" type="Vimmp:T_Nb_Of_Steps" minOccurs="1" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_t_coupling_num"  minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:group name="T_b_rlist">   
+               <xs:sequence>
+                       <xs:element name="rlist" type="Vimmp:T_rlist" minOccurs="1" maxOccurs="1" default="-1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:complexType name="T_Gromacs_Neighbor_Searching" >
+               <xs:sequence>
+                       <xs:element name="cutoff_scheme" type="Vimmp:T_cutoff_scheme" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="nstlist" type="Vimmp:T_nstlist" minOccurs="1" maxOccurs="1" default="10"/>
+                       <xs:element name="nst_type" type="Vimmp:T_nst_type" minOccurs="1" maxOccurs="1" default="grid"/>
+                       <xs:element name="periodic_molecules" type="Vimmp:T_periodic_molecules" minOccurs="1" maxOccurs="1"/>
+                       <xs:group ref="Vimmp:T_b_rlist"  minOccurs="0" maxOccurs="1"/>
+                       <xs:element name="rcoulomb" type="Vimmp:T_rcoulomb" minOccurs="1" maxOccurs="1" default="1"/>
+                       <xs:element name="rvdw" type="Vimmp:T_rvdw" minOccurs="1" maxOccurs="1" default="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:group name="T_b_Velocity_Generation">   
+               <xs:sequence>
+                       <xs:element name="gen_temp" type="Vimmp:T_gen_temp" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="gen_seed" type="Vimmp:T_gen_seed" minOccurs="1" maxOccurs="1" default="-1"/>
+               </xs:sequence>
+       </xs:group>
+       <xs:complexType name="T_Gromacs_Initial_Conditions" >
+               <xs:sequence>
+                       <xs:element name="gen_vel" type="Vimmp:T_gen_vel" minOccurs="1" maxOccurs="1" default="yes"/>
+                       <xs:group ref="Vimmp:T_b_Velocity_Generation"  minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="T_Files" >
+               <xs:sequence>
+                       <xs:element name="MDP_Initial_Input_File" type="Vimmp:T_MDP_Initial_Input_File" minOccurs="0" maxOccurs="1"/>
+                       <xs:element name="Gromos_File" type="Vimmp:T_Gromos_File" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="Gromacs_Topology_File" type="Vimmp:T_Gromacs_Topology_File" minOccurs="1" maxOccurs="1"/>
+                       <xs:element name="Gromacs_Index_File" type="Vimmp:T_Gromacs_Index_File" minOccurs="0" maxOccurs="1"/>
+                       <xs:element name="MDP_Generated_File" type="Vimmp:T_MDP_Generated_File" minOccurs="0" maxOccurs="1"/>
+                       <xs:element name="Run_Generated_File" type="Vimmp:T_Run_Generated_File" minOccurs="0" maxOccurs="1"/>
+                       <xs:element name="log_File" type="Vimmp:T_log_File" minOccurs="0" maxOccurs="1" default="/tmp/EM.log"/>
+                       <xs:element name="Energie_Output_File" type="Vimmp:T_Energie_Output_File" minOccurs="0" maxOccurs="1"/>
+                       <xs:element name="Trajectory_Output_File" type="Vimmp:T_Trajectory_Output_File" minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="T_Gromacs_Run_Options" >
+               <xs:sequence>
+                       <xs:element name="UserDef" type="Vimmp:T_UserDef" minOccurs="0" maxOccurs="1"/>
+                       <xs:element name="Files" type="Vimmp:T_Files" minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="T_CodeSpecific" >
+               <xs:sequence>
+                       <xs:element name="Gromacs_Physical_Constraints" type="Vimmp:T_Gromacs_Physical_Constraints" minOccurs="0" maxOccurs="1"/>
+                       <xs:element name="Gromacs_Numerical_Description" type="Vimmp:T_Gromacs_Numerical_Description" minOccurs="0" maxOccurs="1"/>
+                       <xs:element name="Gromacs_Neighbor_Searching" type="Vimmp:T_Gromacs_Neighbor_Searching" minOccurs="0" maxOccurs="1"/>
+                       <xs:element name="Gromacs_Initial_Conditions" type="Vimmp:T_Gromacs_Initial_Conditions" minOccurs="0" maxOccurs="1"/>
+                       <xs:element name="Gromacs_Run_Options" type="Vimmp:T_Gromacs_Run_Options" minOccurs="0" maxOccurs="1"/>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="T_Vimmp">
+               <xs:choice minOccurs="0" maxOccurs="unbounded">
+                       <xs:element name="CodeSpecific" type="Vimmp:T_CodeSpecific"/>
+               </xs:choice>
+       </xs:complexType>
+       <xs:element name="Vimmp" type="Vimmp:T_Vimmp"/>
+</xs:schema>
\ No newline at end of file
index 4ed93f310d64e3cd0f19ef3789a8313197d4ab4c..06712372bb06bac01efbd564a9036d4b1f9e2dc6 100644 (file)
@@ -28,62 +28,60 @@ import codecs,types
 from Extensions.i18n import tr
 
 def substractList(liste1,liste2):
-  """ 
-      Enleve tous les elements de liste2 presents dans liste1 et retourne liste1
-  """
-  for item in liste2:
-    try:
-      liste1.remove(item)
-    except:
-      pass
-  return liste1
+    """
+        Enleve tous les elements de liste2 presents dans liste1 et retourne liste1
+    """
+    for item in liste2:
+        try:
+            liste1.remove(item)
+        except:
+            pass
+    return liste1
 
 def getRepUser(dir):
-  """
-      Determine sur quelle plate-forme s'execute Eficas et recherche
-      le repertoire de l'utilisateur /$home/Eficas_install
-  """
+    """
+        Determine sur quelle plate-forme s'execute Eficas et recherche
+        le repertoire de l'utilisateur /$home/Eficas_install
+    """
 
-  #rep_user_eficas= os.path.join(os.environ['HOME'],dir)
-  rep_user_eficas= os.path.join(os.path.expanduser("~"),dir)
-  if os.path.exists(rep_user_eficas):
-    if os.path.isfile(rep_user_eficas) :
-      print (tr("Un fichier de nom %s existe deja : impossible de creer un repertoire de meme nom", rep_user_eficas))
-      rep_user_eficas=None
-  else :
-    try:
-      os.mkdir(rep_user_eficas)
-    except:
-      print (tr("Creation du repertoire %s impossible\n Verifiez vos droits d'acces", rep_user_eficas))
-  return rep_user_eficas
+    #rep_user_eficas= os.path.join(os.environ['HOME'],dir)
+    rep_user_eficas= os.path.join(os.path.expanduser("~"),dir)
+    if os.path.exists(rep_user_eficas):
+        if os.path.isfile(rep_user_eficas) :
+            print (tr("Un fichier de nom %s existe deja : impossible de creer un repertoire de meme nom", rep_user_eficas))
+            rep_user_eficas=None
+    else :
+        try:
+            os.mkdir(rep_user_eficas)
+        except:
+            print (tr("Creation du repertoire %s impossible\n Verifiez vos droits d'acces", rep_user_eficas))
+    return rep_user_eficas
 
 def read_file(file):
-  """
-      ouvre le fichier file et retourne son contenu
-      si pbe retourne None
-  """
-  try :
-    f=open(file)
-    text=f.read()
-    f.close()
-    return text
-  except:
-    return None
+    """
+        ouvre le fichier file et retourne son contenu
+        si pbe retourne None
+    """
+    try :
+        with open(file) as fd :
+            text=fd.read()
+        return text
+    except:
+        return None
 
 def save_in_file(file,text,dir=None):
-  """
-      cree le fichier file (ou l'ecrase s'il existe) et ecrit text dedans
-      retourne 1 si OK 0 sinon
-  """
-  try :
-      if dir != None:
-         os.chdir(dir)
-      f=open(file,'w')
-      f.write(text)
-      f.close()
-      return 1
-  except:
-      return 0
+    """
+        cree le fichier file (ou l'ecrase s'il existe) et ecrit text dedans
+        retourne 1 si OK 0 sinon
+    """
+    try :
+        if dir != None:
+            os.chdir(dir)
+        with open(file) as fd :
+            fd.write(text)
+        return 1
+    except:
+        return 0
 
 def extension_fichier(pathAndFile):
     """ Return ext if path/filename.ext is given """
@@ -94,49 +92,48 @@ def stripPath(pathAndFile):
     return os.path.split(pathAndFile)[1]
 
 def initRep_CataDev(fic_cata,rep_goal):
-  """ 
-      Initialise le repertoire des catalogues developpeurs (chemin d'acces donne
-      dans le fichier eficas.ini cad :
-        - le cree s'il n'existe pas encore
-        - copie dedans les 3 fichiers necessaires :
-          * __init__.py (pour que ce repertoire puisse etre interprete comme un package)
-          * entete.py (pour realiser les import necessaires a l'interpretation des catalogues)
-          * declaration_concepts.py (idem)
-        - cree le fichier cata_developpeur.py qui sera par la suite importe
-  """
-  try :
-    if not os.path.isdir(rep_goal) :
-      os.mkdir(rep_goal)
-    #texte_entete = getEnteteCata(fic_cata)
-    texte_entete=""
-    # rep_goal doit contenir les catalogues du developpeur sous la forme *.capy
-    # il faut creer le catalogue developpeur par concatenation de entete,declaration_concepts
-    # et de tous ces fichiers
-    cur_dir = os.getcwd()
-    os.chdir(rep_goal)
-    l_cata_dev = glob.glob('*.capy')
-    if os.path.isfile('cata_developpeur.py') : os.remove('cata_developpeur.py')
-    if len(l_cata_dev) :
-      # des catalogues developpeurs sont effectivement presents : on cree cata_dev.py dans rep_goal
-      str = ''
-      str = str + texte_entete+'\n'
-      for file in l_cata_dev :
-        str = str + open(file,'r').read() +'\n'
-      open('cata_developpeur.py','w+').write(str)
-    os.chdir(cur_dir)
-  except:
-    traceback.print_exc()
-    print ( tr("Impossible de transferer les fichiers requis dans : %s", str(rep_goal)))
+    """
+        Initialise le repertoire des catalogues developpeurs (chemin d'acces donne
+        dans le fichier eficas.ini cad :
+          - le cree s'il n'existe pas encore
+          - copie dedans les 3 fichiers necessaires :
+            * __init__.py (pour que ce repertoire puisse etre interprete comme un package)
+            * entete.py (pour realiser les import necessaires a l'interpretation des catalogues)
+            * declaration_concepts.py (idem)
+          - cree le fichier cata_developpeur.py qui sera par la suite importe
+    """
+    try :
+        if not os.path.isdir(rep_goal) :
+            os.mkdir(rep_goal)
+        #texte_entete = getEnteteCata(fic_cata)
+        texte_entete=""
+        # rep_goal doit contenir les catalogues du developpeur sous la forme *.capy
+        # il faut creer le catalogue developpeur par concatenation de entete,declaration_concepts
+        # et de tous ces fichiers
+        cur_dir = os.getcwd()
+        os.chdir(rep_goal)
+        l_cata_dev = glob.glob('*.capy')
+        if os.path.isfile('cata_developpeur.py') : os.remove('cata_developpeur.py')
+        if len(l_cata_dev) :
+            # des catalogues developpeurs sont effectivement presents : on cree cata_dev.py dans rep_goal
+            str = ''
+            str = str + texte_entete+'\n'
+            for file in l_cata_dev :
+                str = str + open(file,'r').read() +'\n'
+            open('cata_developpeur.py','w+').write(str)
+        os.chdir(cur_dir)
+    except:
+        traceback.print_exc()
+        print ( tr("Impossible de transferer les fichiers requis dans : %s", str(rep_goal)))
 
 def getEnteteCata(fic_cata):
-  """ Retrouve l'entete du catalogue """
-  l_lignes = open(fic_cata,'r').readlines()
-  txt = ''
-  flag = 0
-  for ligne in l_lignes :
-    if re.match(u"# debut entete",ligne) : flag = 1
-    if re.match(u"# fin entete",ligne) : break
-    if not flag : continue
-    txt = txt + ligne
-  return txt
-
+    """ Retrouve l'entete du catalogue """
+    l_lignes = open(fic_cata,'r').readlines()
+    txt = ''
+    flag = 0
+    for ligne in l_lignes :
+        if re.match(u"# debut entete",ligne) : flag = 1
+        if re.match(u"# fin entete",ligne) : break
+        if not flag : continue
+        txt = txt + ligne
+    return txt
index 575042c71ef5beeae34493b323408bc70552fdb9..8b6fbbd6835e944fa51ceb157ef6940b397aa041 100644 (file)
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import str
-   from builtins import range
-   from builtins import object
+    from builtins import str
+    from builtins import object
 except :
-   pass
+    pass
 import types,os,glob,imp,sys
-from six.moves.reprlib import Repr
 from copy import copy,deepcopy
 
 # import du chargeur de composants
@@ -37,8 +35,11 @@ from .comploader import makeObjecttreeitem
 from Ihm import CONNECTOR
 from Extensions.i18n import tr
 from Extensions.eficas_exception import EficasException
-from six.moves import range
 
+try :
+    from repr import Repr
+except :
+    from reprlib import Repr
 myrepr = Repr()
 myrepr.maxstring = 100
 myrepr.maxother = 100
@@ -143,9 +144,9 @@ class Delegate(object):
 
 
 class ObjectTreeItem(TreeItem,Delegate):
-    def __init__(self, appli, labeltext, object, setFunction=None):
+    def __init__(self, appliEficas, labeltext, object, setFunction=None):
         self.labeltext = labeltext
-        self.appli = appli
+        self.appliEficas = appliEficas
         # L'objet delegue est stocke dans l'attribut object
         # L'objet associe a l'item est stocke dans l'attribut _object
         # Il peut etre obtenu par appel a la methode getObject
@@ -168,7 +169,7 @@ class ObjectTreeItem(TreeItem,Delegate):
         return self._object
 
     def connect(self,channel,callable,args):
-        """ Connecte la fonction callable (avec arguments args) a l'item self sur le 
+        """ Connecte la fonction callable (avec arguments args) a l'item self sur le
             canal channel
         """
         #print self,channel,callable,args
@@ -180,18 +181,18 @@ class ObjectTreeItem(TreeItem,Delegate):
         Cree un item copie de self
         """
         object = self._object.copy()
-        appli = copy(self.appli)
+        appliEficas = copy(self.appliEficas)
         labeltext = copy(self.labeltext)
         fonction = deepcopy(self.setFunction)
-        item = makeObjecttreeitem(appli,labeltext,object,fonction)
+        item = makeObjecttreeitem(appliEficas,labeltext,object,fonction)
         return item
-    
+
     def isActif(self):
         if hasattr(self.object,'actif'):
             return self.object.actif
         else:
             return 1
-    
+
     def update(self,item):
         """
           Met a jour l'item courant a partir d'un autre item passe en argument
@@ -209,27 +210,27 @@ class ObjectTreeItem(TreeItem,Delegate):
         return tr(self.labeltext),None,None
 
     def getNature(self) :
-        """ 
+        """
             Retourne la nature de l'item et de l'objet
-        """ 
+        """
         return self.object.nature
 
     def getRegles(self):
         """ retourne les regles de l'objet pointe par self """
         return self.object.getRegles()
-    
+
     def getListeMcPresents(self):
         """ Retourne la liste des mots-cles fils de l'objet pointe par self """
         return self.object.listeMcPresents()
-    
+
     def getVal(self):
         """ Retourne le nom de la valeur de l'objet pointe par self dans le cas
             ou celle-ci est un objet (ASSD) """
         return self.object.getVal()
-    
+
     def get_definition(self):
-        """ 
-           Retourne l'objet definition de l'objet pointe par self 
+        """
+           Retourne l'objet definition de l'objet pointe par self
         """
         return self.object.definition
 
@@ -248,7 +249,7 @@ class ObjectTreeItem(TreeItem,Delegate):
         d'une liste du type :ETAPE + MCFACT ou MCBLOC + ...
         """
         return self.object.getListeMcOrdonneeBrute(liste,dico)
-   
+
     def getGenealogie(self):
         """
         Retourne la liste des noms des ascendants (noms de MCSIMP,MCFACT,MCBLOC ou ETAPE)
@@ -278,7 +279,7 @@ class ObjectTreeItem(TreeItem,Delegate):
                 l.append(nom)
         # l contient les anciens mots-cles + le nouveau dans l'ordre
         return l.index(nom_fils)
-        
+
     def appendChild(self,name,pos=None):
         """
           Permet d'ajouter un item fils a self
@@ -288,7 +289,7 @@ class ObjectTreeItem(TreeItem,Delegate):
         elif pos == 'last':
             index = len(self.listeMcPresents())
         elif type(pos) == int :
-            # la position est fixee 
+            # la position est fixee
             index = pos
         #elif type(pos) == types.InstanceType:
         elif type(pos) == object :
@@ -319,7 +320,7 @@ class ObjectTreeItem(TreeItem,Delegate):
     def getCopieObjet(self):
         """ Retourne une copie de l'objet pointe par self """
         return self.object.copy()
-    
+
     def getPosition(self):
         """ Retourne la valeur de l'attribut position de l'objet pointe par self """
         definition = self.get_definition()
@@ -327,7 +328,7 @@ class ObjectTreeItem(TreeItem,Delegate):
             return getattr(definition,'position')
         except AttributeError:
             return 'local'
-        
+
     def getNom(self):
         """ Retourne le nom de l'objet pointe par self """
         return self.object.nom
@@ -335,7 +336,7 @@ class ObjectTreeItem(TreeItem,Delegate):
     def getJdc(self):
         """ Retourne le jdc auquel appartient l'objet pointe par self """
         return self.object.jdc
-    
+
     def getValeur(self):
         """ Retourne la valeur de l'objet pointe par self """
         return self.object.valeur
@@ -353,7 +354,7 @@ class ObjectTreeItem(TreeItem,Delegate):
         raise EficasException("MESSAGE AU DEVELOPPEUR : il faut \
                                  surcharger la methode getObjetCommentarise() \
                                  pour la classe %s", self.__class__.__name__)
-        
+
     def isValid(self):
         """ Retourne 1 si l'objet pointe par self est valide, 0 sinon"""
         return self.object.isValid()
@@ -364,7 +365,7 @@ class ObjectTreeItem(TreeItem,Delegate):
         Par defaut retourne 0
         """
         return 0
-    
+
     def getMcPresents(self):
         """ Retourne le dictionnaire des mots-cles presents de l'objet pointe par self """
         return self.object.dictMcPresents()
@@ -386,10 +387,10 @@ class ObjectTreeItem(TreeItem,Delegate):
     def setValeur(self,new_valeur):
         """ Remplace la valeur de l'objet pointe par self par new_valeur """
         return self.object.setValeur(new_valeur)
-        
+
     def getText(self):
         return myrepr.repr(self.object)
-    
+
     def getIconName(self):
         if not self.isExpandable():
             return "python"
@@ -403,14 +404,10 @@ class ObjectTreeItem(TreeItem,Delegate):
             self.setFunction(value)
         except:
             pass
-# Modif de ma part CCar : je ne comprend pas a quoi ca sert
-# ca parait meme incorrect
-      #  else:
-      #      self.object = value
 
     def isExpandable(self):
         return 1
-        
+
     def getSubList(self):
         keys = dir(self.object)
         sublist = []
@@ -420,7 +417,7 @@ class ObjectTreeItem(TreeItem,Delegate):
             except AttributeError:
                 continue
             item = makeObjecttreeitem(
-                self.appli,
+                self.appliEficas,
                 str(key) + " =",
                 value,
                 lambda value, key=key, object=self.object:
@@ -434,12 +431,12 @@ class ObjectTreeItem(TreeItem,Delegate):
         (ex: macros POURSUITE et INCLUDE de Code_Aster), 0 SINON """
     #    return self.object.definition.fichier_ini
 
-    def makeObjecttreeitem(self,appli,labeltext, object, setFunction=None):
+    def makeObjecttreeitem(self,appliEficas,labeltext, object, setFunction=None):
         """
            Cette methode, globale pour les objets de type item, permet de construire et de retourner un objet
            de type item associe a l'object passe en argument.
         """
-        return makeObjecttreeitem(appli,labeltext,object,setFunction)
+        return makeObjecttreeitem(appliEficas,labeltext,object,setFunction)
 
     #def __del__(self):
     #    print "__del__",self
@@ -454,17 +451,17 @@ class SequenceTreeItem(ObjectTreeItem):
 
     def __len__(self) :
         return len(self._object)
-   
+
     def keys(self):
         return list(range(len(self._object)))
 
     def getIconName(self):
         if self._object.isValid():
-          return "ast-green-los"
+            return "ast-green-los"
         elif self._object.isOblig():
-          return "ast-red-los"
+            return "ast-red-los"
         else:
-          return "ast-yel-los"
+            return "ast-yel-los"
 
     def ajoutPossible(self):
         return self._object.ajoutPossible()
@@ -474,11 +471,11 @@ class SequenceTreeItem(ObjectTreeItem):
         return self._object.getIndex(child.getObject())
 
     def getText(self):
-      return  "    "
+        return  "    "
 
     def addItem(self,obj,pos):
         self._object.insert(pos,obj)
-        item = self.makeObjecttreeitem(self.appli, obj.nom + ":", obj)
+        item = self.makeObjecttreeitem(self.appliEficas, obj.nom + ":", obj)
         return item
 
     def suppItem(self,item):
@@ -486,7 +483,7 @@ class SequenceTreeItem(ObjectTreeItem):
             self._object.remove(item.getObject())
             # la liste peut etre retournee vide !
             message = "Mot-clef " + item.getObject().nom + " supprime"
-            self.appli.afficheInfos(message)
+            self.appliEficas.afficheInfos(message)
             return 1
         except:
             return 0
@@ -498,18 +495,18 @@ class SequenceTreeItem(ObjectTreeItem):
         self.sublist=[]
 
         while(1):
-           old_obj=obj=None
-           for item in isublist:
-              old_obj=item.getObject()
-              if old_obj in liste:break
-
-           for obj in iliste:
-              if obj is old_obj:break
-              # nouvel objet : on cree un nouvel item
-              def setFunction(value, object=obj):
-                  object=value
-              it = self.makeObjecttreeitem(self.appli, obj.nom + " : ", obj, setFunction)
-              self.sublist.append(it)
-           if old_obj is None and obj is None:break
-           if old_obj is obj: self.sublist.append(item)
+            old_obj=obj=None
+            for item in isublist:
+                old_obj=item.getObject()
+                if old_obj in liste:break
+
+            for obj in iliste:
+                if obj is old_obj:break
+                # nouvel objet : on cree un nouvel item
+                def setFunction(value, object=obj):
+                    object=value
+                it = self.makeObjecttreeitem(self.appliEficas, obj.nom + " : ", obj, setFunction)
+                self.sublist.append(it)
+            if old_obj is None and obj is None:break
+            if old_obj is obj: self.sublist.append(item)
         return self.sublist
index a4d74d43dc36ae2dcb7e06daa1b3000615f24915..561ff1c7dc5614551b647235cb272a88b4325071 100644 (file)
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 """
-   Ce module contient la classe 3Dpilote qui va creer les ordres 
+   Ce module contient la classe 3Dpilote qui va creer les ordres
    de pilotage de l idl PAL pour un element de structure
 """
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import object
+    from builtins import object
 except :
-   pass
+    pass
 import generator
 from Extensions.i18n import tr
 
 class TroisDPilote(object):
 
-   def __init__(self,node,appli):
-      self.node=node
-      self.appli=appli
+    def __init__(self,node,appliEficas):
+        self.node=node
+        self.appliEficas=appliEficas
 
-   def envoievisu(self):
-      """ 
-      """
-      format="vers3DSalome"
-      if format in generator.plugins :
-         # Le generateur existe on l'utilise
-         g=generator.plugins[format]()
-         g.initJdc(self.node.getJdc())
-         texte=g.gener(self.node)
-      else:
-         print ("Le generateur n'a pas ete trouve")
-         print ("Erreur ! Erreur!")
-         return ""
-      from Extensions.param2 import originalMath
-      originalMath.toOriginal()
-      self.appli.envoievisu(texte)
-      originalMath.toSurcharge()
-  
+    def envoievisu(self):
+        """
+        """
+        format="vers3DSalome"
+        if format in generator.plugins :
+            # Le generateur existe on l'utilise
+            g=generator.plugins[format]()
+            g.initJdc(self.node.getJdc())
+            texte=g.gener(self.node)
+        else:
+            print ("Le generateur n'a pas ete trouve")
+            print ("Erreur ! Erreur!")
+            return ""
+        from Extensions.param2 import originalMath
+        originalMath.toOriginal()
+        self.appliEficas.envoievisu(texte)
+        originalMath.toSurcharge()
index fec152901959a4b9f89400bdac16c6bcf167896b..58d19a987f2594b881184532090d28adcde55319 100644 (file)
@@ -18,6 +18,4 @@
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 """
-    Ce package contient les fonctionnalites COMMUNES necessaires
-    aux deux editeurs graphiques QT et TK
 """
index 11354ff31f2489e33edf20bcc3d49331d3a7456a..200f59942a8ea5fa1b15e804c94d344f9273bc21 100644 (file)
 #
 from __future__ import absolute_import
 from __future__ import print_function
-try : 
-   from builtins import str
-   from builtins import range
-   from builtins import object
+try :
+    from builtins import str
+    from builtins import object
 except :
-   pass
+    pass
 
 import re,six.moves.cPickle,os
 
 from Extensions.i18n import tr
 from Noyau.N_CR import CR
 
-from six.moves import range
 
 #
 __Id__="$Id: analyseCatalogue.py,v 1.9.8.1.2.1.2.6 2014-01-23 09:14:44 pnoyret Exp $"
@@ -43,285 +41,271 @@ l_noms_simples=['SIMP',]
 l_noms=l_noms_composes+l_noms_simples
 
 def elimineCommentaires(text):
-        """ Elimine les lignes de commentaires dans text
-        Attention : supprime sauvagement tous les caracteres entre # et le retour chariot ..."""
-        comments = re.compile(r'#[^\n]*')
-        return comments.sub(u'',text)
+    """ Elimine les lignes de commentaires dans text
+    Attention : supprime sauvagement tous les caracteres entre # et le retour chariot ..."""
+    comments = re.compile(r'#[^\n]*')
+    return comments.sub(u'',text)
 
 def chercheNom(text):
-        Whitespace = r'[ \f\t]*'
-        Name = r'[a-zA-Z_]\w*'
-        myexpr = '(u'+Name+')'+Whitespace+'='+Whitespace+'$'
-        a=re.search(myexpr,text)
-        return a.group(1)
+    Whitespace = r'[ \f\t]*'
+    Name = r'[a-zA-Z_]\w*'
+    myexpr = '(u'+Name+')'+Whitespace+'='+Whitespace+'$'
+    a=re.search(myexpr,text)
+    return a.group(1)
 
 def chercheArgs(text):
-        text = text.strip()
-        longueur = len(text)
-        if text[0] != '(u':
-                return 'erreur !'
+    text = text.strip()
+    longueur = len(text)
+    if text[0] != '(u':
+        return 'erreur !'
+    else :
+        nbpar = 1
+        for i in range(1,longueur) :
+            if text[i] =='(u':
+                nbpar = nbpar + 1
+            elif text[i] == ')':
+                nbpar = nbpar - 1
+            else :
+                continue
+            if nbpar == 0:
+                break
+        if nbpar != 0 :
+            return tr('Erreur ! Erreur !')
         else :
-                nbpar = 1
-                for i in range(1,longueur) :
-                        if text[i] =='(u':
-                                nbpar = nbpar + 1
-                        elif text[i] == ')':
-                                nbpar = nbpar - 1
-                        else :
-                                continue
-                        if nbpar == 0:
-                                break
-                if nbpar != 0 :
-                        return tr('Erreur ! Erreur !')
-                else :
-                        try :
-                                return text[1:i],text[i+1:] # on enleve les premiere et derniere parentheses
-                        except :
-                                return text[1:i],''
+            try :
+                return text[1:i],text[i+1:] # on enleve les premiere et derniere parentheses
+            except :
+                return text[1:i],''
 
 class ENTITE(object):
-        def chercheEnfants(self):
-                try :
-                        self.text = self.text.strip()
-                        liste = re.split(u'=',self.text,1)
-                        if len(liste)>1 :
-                                arg1=liste[0]
-                                reste=liste[1]
-                                reste = reste.strip()
-                                if reste[0:4] in l_noms :
-                                        nom_mc = chercheNom(arg1+'=')
-                                        arg_mc, self.text = chercheArgs(reste[4:])
-                                        self.creeMc(nom_mc,arg_mc,reste[0:4])
-                                else :
-                                        self.text = reste
-                                self.chercheEnfants()
-                        else :
-                                # pas de = rencontre
-                                return
-                except Exception as e:
-                        self.cr.fatal(tr("Erreur rencontree dans rechercheEnfants : %s", e.__str()))
-                
-        def creeMc(self,nom_mc,arg_mc,test):
-                if test in l_noms_composes :
-                        mc = FACT_CATA(nom_mc,arg_mc,self)
-                        self.children.append(mc)
-                elif test in l_noms_simples :
-                        mc = SIMP_CATA(nom_mc,self)
-                        self.children.append(mc)
+    def chercheEnfants(self):
+        try :
+            self.text = self.text.strip()
+            liste = re.split(u'=',self.text,1)
+            if len(liste)>1 :
+                arg1=liste[0]
+                reste=liste[1]
+                reste = reste.strip()
+                if reste[0:4] in l_noms :
+                    nom_mc = chercheNom(arg1+'=')
+                    arg_mc, self.text = chercheArgs(reste[4:])
+                    self.creeMc(nom_mc,arg_mc,reste[0:4])
                 else :
-                        print (tr("Erreur dans la creation du mot-cle : %s", nom_mc) )
-
-        def construitListeDico(self):
-                l=[]
-                d={}
-                if len(self.children)==0:
-                        self.ordre_mc = l
-                        self.entites = d
-                        return
-                try :
-                        for child in self.children:
-                                l.append(child.nom)
-                                d[child.nom]=child
-                        self.ordre_mc = l
-                        self.entites = d
-                except:
-                        print (("erreur : ", self.nom,  self.__class__))
-                
-class COMMANDE_CATA(ENTITE) :
-        def __init__(self,nom,args,parent):
-                self.nom = nom
-                self.args = args
-                self.children = []
-                self.text = args
-                self.cr = CR()
-                self.cr.debut = "Debut commande %s" %self.nom
-                self.cr.fin = "Fin commande %s" %self.nom
+                    self.text = reste
                 self.chercheEnfants()
-                self.construitListeDico()
-                parent.cr.add(self.cr)
+            else :
+                # pas de = rencontre
+                return
+        except Exception as e:
+            self.cr.fatal(tr("Erreur rencontree dans rechercheEnfants : %s", e.__str()))
+
+    def creeMc(self,nom_mc,arg_mc,test):
+        if test in l_noms_composes :
+            mc = FACT_CATA(nom_mc,arg_mc,self)
+            self.children.append(mc)
+        elif test in l_noms_simples :
+            mc = SIMP_CATA(nom_mc,self)
+            self.children.append(mc)
+        else :
+            print (tr("Erreur dans la creation du mot-cle : %s", nom_mc) )
+
+    def construitListeDico(self):
+        l=[]
+        d={}
+        if len(self.children)==0:
+            self.ordre_mc = l
+            self.entites = d
+            return
+        try :
+            for child in self.children:
+                l.append(child.nom)
+                d[child.nom]=child
+            self.ordre_mc = l
+            self.entites = d
+        except:
+            print (("erreur : ", self.nom,  self.__class__))
 
-        def affiche(self):
-                texte_cmd = '\n'
-                texte_cmd = texte_cmd + 'Commande :' + self.nom + '\n'
-                for child in self.children :
-                        texte_cmd = texte_cmd + child.affiche(1)
-                return texte_cmd
+class COMMANDE_CATA(ENTITE) :
+    def __init__(self,nom,args,parent):
+        self.nom = nom
+        self.args = args
+        self.children = []
+        self.text = args
+        self.cr = CR()
+        self.cr.debut = "Debut commande %s" %self.nom
+        self.cr.fin = "Fin commande %s" %self.nom
+        self.chercheEnfants()
+        self.construitListeDico()
+        parent.cr.add(self.cr)
+
+    def affiche(self):
+        texte_cmd = '\n'
+        texte_cmd = texte_cmd + 'Commande :' + self.nom + '\n'
+        for child in self.children :
+            texte_cmd = texte_cmd + child.affiche(1)
+        return texte_cmd
 
 class SIMP_CATA(object) :
-        def __init__(self,nom,parent):
-                self.nom = nom
-                self.cr = CR()
-                self.cr.debut = "Debut mot-cle simple %s" %self.nom
-                self.cr.fin = "Fin mot-cle simple %s" %self.nom
-                parent.cr.add(self.cr)
+    def __init__(self,nom,parent):
+        self.nom = nom
+        self.cr = CR()
+        self.cr.debut = "Debut mot-cle simple %s" %self.nom
+        self.cr.fin = "Fin mot-cle simple %s" %self.nom
+        parent.cr.add(self.cr)
 
-        def affiche(self,ind):
-                sep = ' '*5
-                return sep*ind+self.nom+'\n'
+    def affiche(self,ind):
+        sep = ' '*5
+        return sep*ind+self.nom+'\n'
 
 class FACT_CATA(ENTITE) :
-        def __init__(self,nom,args,parent):
-                self.nom=nom
-                self.args=args
-                self.children = []
-                self.text=args
-                self.cr = CR()
-                self.cr.debut = "Debut mot-cle facteur ou bloc %s" %self.nom
-                self.cr.fin = "Fin mot-cle facteur ou bloc %s" %self.nom
-                self.chercheEnfants()
-                self.construitListeDico()
-                parent.cr.add(self.cr)
+    def __init__(self,nom,args,parent):
+        self.nom=nom
+        self.args=args
+        self.children = []
+        self.text=args
+        self.cr = CR()
+        self.cr.debut = "Debut mot-cle facteur ou bloc %s" %self.nom
+        self.cr.fin = "Fin mot-cle facteur ou bloc %s" %self.nom
+        self.chercheEnfants()
+        self.construitListeDico()
+        parent.cr.add(self.cr)
+
+    def affiche(self,ind):
+        sep = ' '*5
+        text = ''
+        text = text + sep*ind+self.nom+'\n'
+        for child in self.children :
+            text = text + child.affiche(ind+1)
+        return text
 
-        def affiche(self,ind):
-                sep = ' '*5
-                text = ''
-                text = text + sep*ind+self.nom+'\n'
-                for child in self.children :
-                        text = text + child.affiche(ind+1)
-                return text
-                
 class CATALOGUE_CATA(object):
-        def __init__(self,parent,fichier):
-                self.parent = parent
-                self.fichier=fichier
-                self.cr = CR()
-                self.cr.debut = "Debut compte-rendu catalogue %s" %self.fichier
-                self.cr.fin = "Fin compte-rendu catalogue %s" %self.fichier
-                self.ouvrirFichier()
-                self.liste_commandes=[]
-                self.liste_textes_commandes=[]
-
-        def ouvrirFichier(self):
-                try :
-                        f=open(self.fichier,'r')
-                        self.texte_complet=f.read()
-                        f.close()
-                except :
-                        print((tr("Impossible d'ouvrir le fichier : %s ", str(self.fichier))))
-                        self.cr.fatal(tr("Impossible d'ouvrir le fichier : %s ", str(self.fichier)))
-
-        def constrListTxtCmd(self,text):
-                text = elimineCommentaires(text)
-                pattern = '\) *;'
-                liste=re.split(pattern,text)
-                for i in range(0,len(liste)-1):
-                        self.liste_textes_commandes.append(liste[i]+')')
-
-        def analyseCommandeOld(self,text):
-                liste = re.split(u'OPER *\(u',text,1)
-                if len(liste) < 2 :
-                        liste = re.split(u'PROC *\(u',text,1)
-                if len(liste) < 2 :
-                        liste = re.split(u'MACRO *\(u',text,1)
-                if len(liste) < 2 :
-                        print ((tr("le texte a analyser n'est pas celui d'une commande ou d'un operateur : "), text))
-                        self.cr.fatal(tr("le texte a analyser n'est pas celui d'une commande ou \
-                                         d'un operateur : %s", text))
-                        return
-                debut = liste[0]
-                fin = liste[1]
-                nom_cmd = chercheNom(debut)
-                if nom_cmd == 'erreur !':
-                        print((tr("Erreur dans la recherche  du nom de la commande : "), debut))
-                args_cmd,toto = chercheArgs(u'(u'+fin)
-                if args_cmd == 'erreur !':
-                        print((tr("Erreur dans la recherche des  args de la commande :") , debut))
-                cmd=COMMANDE_CATA(nom_cmd,args_cmd,self)
-                self.liste_commandes.append(cmd)
-
-        def analyseCommande(self,text):
-                for nom_cmd in l_noms_commandes:
-                        liste = re.split(nom_cmd+' *\(u',text,1)
-                        if len(liste) == 2 : break
-                if len(liste) < 2 :
-                        print((tr("le texte a analyser n'est pas celui d'une commande connue : \
-                                        %(v_1)s %(v_2)s", {'v_1': str(l_noms_commandes), 'v_2': text})))
-                        self.cr.fatal(tr("le texte a analyser n'est pas celui d'une commande connue : \
-                                         %(v_1)s %(v_2)s", {'v_1': str(l_noms_commandes), 'v_2': text}))
-                        return
-                debut = liste[0]
-                fin = liste[1]
-                nom_cmd = chercheNom(debut)
-                if nom_cmd == 'erreur !':
-                        print(( tr("Erreur dans la recherche du  nom de la commande : "), debut))
-                args_cmd,toto = chercheArgs(u'(u'+fin)
-                if args_cmd == 'erreur !':
-                        print(( tr("Erreur dans la recherche des args de la commande : "), debut))
-                        print((tr(fin)))
-                cmd=COMMANDE_CATA(nom_cmd,args_cmd,self)
-                self.liste_commandes.append(cmd)
-                
-        def analyseTexte(self,texte):
-                self.constrListTxtCmd(texte)
-                try:
-                        self.parent.configure_barre(len(self.liste_textes_commandes))
-                except:
-                        pass
-                for texte_commande in self.liste_textes_commandes :
-                        try:
-                                self.parent.update_barre()
-                        except:
-                                pass
-                        self.analyseCommande(texte_commande)
-                self.construitListeDico()
-
-        def ecritLcmd(self):
-                f=open(u'U:\\EFICAS\\Accas\\cata.txt','w')
-                for cmd in self.liste_commandes :
-                        f.write(cmd.affiche())
-                f.close()
+    def __init__(self,parent,fichier):
+        self.parent = parent
+        self.fichier=fichier
+        self.cr = CR()
+        self.cr.debut = "Debut compte-rendu catalogue %s" %self.fichier
+        self.cr.fin = "Fin compte-rendu catalogue %s" %self.fichier
+        self.ouvrirFichier()
+        self.liste_commandes=[]
+        self.liste_textes_commandes=[]
+
+    def ouvrirFichier(self):
+        try :
+            with open(self.fichier) as fd:
+                self.texte_complet=fd.read()
+        except :
+            print((tr("Impossible d'ouvrir le fichier : %s ", str(self.fichier))))
+            self.cr.fatal(tr("Impossible d'ouvrir le fichier : %s ", str(self.fichier)))
+
+    def constrListTxtCmd(self,text):
+        text = elimineCommentaires(text)
+        pattern = '\) *;'
+        liste=re.split(pattern,text)
+        for i in range(0,len(liste)-1):
+            self.liste_textes_commandes.append(liste[i]+')')
+
+    def analyseCommandeOld(self,text):
+        liste = re.split(u'OPER *\(u',text,1)
+        if len(liste) < 2 :
+            liste = re.split(u'PROC *\(u',text,1)
+        if len(liste) < 2 :
+            liste = re.split(u'MACRO *\(u',text,1)
+        if len(liste) < 2 :
+            print ((tr("le texte a analyser n'est pas celui d'une commande ou d'un operateur : "), text))
+            self.cr.fatal(tr("le texte a analyser n'est pas celui d'une commande ou \
+                             d'un operateur : %s", text))
+            return
+        debut = liste[0]
+        fin = liste[1]
+        nom_cmd = chercheNom(debut)
+        if nom_cmd == 'erreur !':
+            print((tr("Erreur dans la recherche  du nom de la commande : "), debut))
+        args_cmd,toto = chercheArgs(u'(u'+fin)
+        if args_cmd == 'erreur !':
+            print((tr("Erreur dans la recherche des  args de la commande :") , debut))
+        cmd=COMMANDE_CATA(nom_cmd,args_cmd,self)
+        self.liste_commandes.append(cmd)
+
+    def analyseCommande(self,text):
+        for nom_cmd in l_noms_commandes:
+            liste = re.split(nom_cmd+' *\(u',text,1)
+            if len(liste) == 2 : break
+        if len(liste) < 2 :
+            print((tr("le texte a analyser n'est pas celui d'une commande connue : \
+                            %(v_1)s %(v_2)s", {'v_1': str(l_noms_commandes), 'v_2': text})))
+            self.cr.fatal(tr("le texte a analyser n'est pas celui d'une commande connue : \
+                             %(v_1)s %(v_2)s", {'v_1': str(l_noms_commandes), 'v_2': text}))
+            return
+        debut = liste[0]
+        fin = liste[1]
+        nom_cmd = chercheNom(debut)
+        if nom_cmd == 'erreur !':
+            print(( tr("Erreur dans la recherche du  nom de la commande : "), debut))
+        args_cmd,toto = chercheArgs(u'(u'+fin)
+        if args_cmd == 'erreur !':
+            print(( tr("Erreur dans la recherche des args de la commande : "), debut))
+            print((tr(fin)))
+        cmd=COMMANDE_CATA(nom_cmd,args_cmd,self)
+        self.liste_commandes.append(cmd)
+
+    def analyseTexte(self,texte):
+        self.constrListTxtCmd(texte)
+        try:
+            self.parent.configure_barre(len(self.liste_textes_commandes))
+        except:
+            pass
+        for texte_commande in self.liste_textes_commandes :
+            try:
+                self.parent.update_barre()
+            except:
+                pass
+            self.analyseCommande(texte_commande)
+        self.construitListeDico()
+
+    def ecritLcmd(self):
+        f=open(u'U:\\EFICAS\\Accas\\cata.txt','w')
+        for cmd in self.liste_commandes :
+            f.write(cmd.affiche())
+        f.close()
 
-        def construitListeDico(self):
-                l=[]
-                d={}
-                for cmd in self.liste_commandes:
-                        l.append(cmd.nom)
-                        d[cmd.nom]=cmd
-                self.ordre_mc = l
-                self.entites = d
+    def construitListeDico(self):
+        l=[]
+        d={}
+        for cmd in self.liste_commandes:
+            l.append(cmd.nom)
+            d[cmd.nom]=cmd
+        self.ordre_mc = l
+        self.entites = d
 
-        def report(self):
-                """ retourne l'objet rapport du catalogue de commande """
-                return self.cr
+    def report(self):
+        """ retourne l'objet rapport du catalogue de commande """
+        return self.cr
 
 def analyseCatalogue(parent,nom_cata):
-        cata = CATALOGUE_CATA(parent,nom_cata)
-        cata.analyseTexte(cata.texte_complet)
-        return cata
+    cata = CATALOGUE_CATA(parent,nom_cata)
+    cata.analyseTexte(cata.texte_complet)
+    return cata
 
 def analyseCatalogueCommande(parent,nom_cata):
-        cata = CATALOGUE_CATA(parent,nom_cata)
-        cata.analyseCommande(cata.texte_complet)
-        cata.construitListeDico()
-        return cata
-
+    cata = CATALOGUE_CATA(parent,nom_cata)
+    cata.analyseCommande(cata.texte_complet)
+    cata.construitListeDico()
+    return cata
+
+
+def makeCataPickle(ficCata):
+    """
+    Lance l'analyse de l'ordre des mots-cles dans le catalogue dont le nom
+    est passe en argument et sauvegarde ces infos dans le fichier pickle relu
+    par Eficas
+    """
+    ficCata_p = os.path.splitext(ficCata)[0]+'_pickled.py'
+    cata_ordonne = analyseCatalogue(None,ficCata)
+    f = open(ficCata_p,'w+')
+    p = six.moves.cPickle.Pickler(f)
+    p.dump(cata_ordonne.entites)
+    f.close()
 
-def makeCataPickle(fic_cata):
-        """
-        Lance l'analyse de l'ordre des mots-cles dans le catalogue dont le nom
-        est passe en argument et sauvegarde ces infos dans le fichier pickle relu
-        par Eficas
-        """
-        fic_cata_p = os.path.splitext(fic_cata)[0]+'_pickled.py'
-        cata_ordonne = analyseCatalogue(None,fic_cata)
-        f = open(fic_cata_p,'w+')
-        p = six.moves.cPickle.Pickler(f)
-        p.dump(cata_ordonne.entites)
-        f.close()
-        
 if __name__ == "__main__" :
-        import profile
-        profile.run(u"analyseCatalogue(None,'U:\\EFICAS\\Cata\\cata_saturne.py')")
-
-
-
-
-
-
-
-
-
-
-
-                                
-                                
+    import profile
+    profile.run(u"analyseCatalogue(None,'U:\\EFICAS\\Cata\\cata_saturne.py')")
index 90e73d6b29a71922c0ce59f1119b4af910bebb4b..8a5bb62f21dc9c4b7daf00ed28e06689cefe372e 100644 (file)
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-  from builtins import str
-  from builtins import object
+    from builtins import str
+    from builtins import object
 except :
-  pass
+    pass
 import re,os
 
 from Extensions.i18n import tr
@@ -32,50 +32,36 @@ __Id__="$Id: analyseCatalogue_initial.py,v 1.2.4.1.2.2.2.4 2017-04-09 14:04:44 p
 __version__="$Name: V7_main $"
 #
 
-                
-class Catalogue_initial(object):
-        def __init__(self,fichier):
-                self.liste_commandes=[]
-                self.lignes=[]
-                self.fichier=fichier
-                self.ouvrirFichier()
-                self.constrListTxtCmd()
-
-        def ouvrirFichier(self):
-                try :
-                        f=open(self.fichier,'r')
-                        self.lignes=f.readlines()
-                        f.close()
-                except :
-                        print(tr("Impossible d'ouvrir le fichier : %s", str(self.fichier)))
 
-        def constrListTxtCmd(self):
-                pattern = '^# Ordre Catalogue '
-                for i in self.lignes :
-                    if (re.search(pattern,i)):
-                        i=i.replace('# Ordre Catalogue ','')
-                        i=i.replace('\n','')
-                        self.liste_commandes.append(i)
+class Catalogue_initial(object):
+    def __init__(self,fichier):
+        self.liste_commandes=[]
+        self.lignes=[]
+        self.fichier=fichier
+        self.ouvrirFichier()
+        self.constrListTxtCmd()
+
+    def ouvrirFichier(self):
+        try :
+            with open(self.fichier) as fd:
+                self.lignes=fd.readlines()
+        except :
+            print(tr("Impossible d'ouvrir le fichier : %s", str(self.fichier)))
+
+    def constrListTxtCmd(self):
+        pattern = '^# Ordre Catalogue '
+        for i in self.lignes :
+            if (re.search(pattern,i)):
+                i=i.replace('# Ordre Catalogue ','')
+                i=i.replace('\n','')
+                self.liste_commandes.append(i)
 
 
 def analyseCatalogue(nom_cata):
-        cata = Catalogue_initial(nom_cata)
-        return cata.liste_commandes
+    cata = Catalogue_initial(nom_cata)
+    return cata.liste_commandes
 
 
 if __name__ == "__main__" :
-        monCata="/local/noyret/Install_Eficas/EficasQT4/Openturns_StudyOpenTURNS_Cata_Study_V4.py"
-        analyseCatalogue(monCata)
-
-
-
-
-
-
-
-
-
-
-
-                                
-                                
+    monCata="/local/noyret/Install_Eficas/EficasQT4/Openturns_StudyOpenTURNS_Cata_Study_V4.py"
+    analyseCatalogue(monCata)
index 9699bcf2558cf7302807a0cbb0402b54d6120cc1..359b8bdfdb6409d50466be8ba5e608dd37efa19b 100644 (file)
 from __future__ import absolute_import
 from __future__ import print_function
 if __name__ == "__main__" :
-   import sys
-   sys.path[:0]=[".."]
-   sys.path[:0]=["../Aster"]
-   sys.path[:0]=["../Saturne"]
+    import sys
+    sys.path[:0]=[".."]
+    sys.path[:0]=["../Aster"]
+    sys.path[:0]=["../Saturne"]
 
 from Accas import NUPL
 
 def traiteEntiteNUPL(entite):
-   """
-       Fonction speciale pour les nuplets (classe NUPL)
-       Cette fonction ajoute a l'objet entite un attribut de nom ordre_mc
-       qui est une liste vide.
-   """
-   entite.ordre_mc=[]
+    """
+        Fonction speciale pour les nuplets (classe NUPL)
+        Cette fonction ajoute a l'objet entite un attribut de nom ordre_mc
+        qui est une liste vide.
+    """
+    entite.ordre_mc=[]
 
 def traiteEntite(entite,liste_simp_reel):
-   """
-       Cette fonction ajoute a l'objet entite un attribut de nom ordre_mc
-       qui est une liste contenant le nom des sous entites dans l'ordre 
-       de leur apparition dans le catalogue.
-       L'ordre d'apparition dans le catalogue est donne par l'attribut _no
-       de l'entite
-       La fonction active le meme type de traitement pour les sous entites
-       de entite
-   """
-   l=[]
-   for k,v in list(entite.entites.items()):
-      if isinstance(v,NUPL):
-         traiteEntiteNUPL(v)
-      else:
-         traiteReel(v,liste_simp_reel)
-         traiteEntite(v,liste_simp_reel)
-         traiteCache(v)
-      l.append((v._no,k))
-   l.sort()
-   entite.ordre_mc=[ item for index, item in l ]
+    """
+        Cette fonction ajoute a l'objet entite un attribut de nom ordre_mc
+        qui est une liste contenant le nom des sous entites dans l'ordre
+        de leur apparition dans le catalogue.
+        L'ordre d'apparition dans le catalogue est donne par l'attribut _no
+        de l'entite
+        La fonction active le meme type de traitement pour les sous entites
+        de entite
+    """
+    l=[]
+    for k,v in list(entite.entites.items()):
+        if isinstance(v,NUPL):
+            traiteEntiteNUPL(v)
+        else:
+            traiteReel(v,liste_simp_reel)
+            traiteEntite(v,liste_simp_reel)
+            traiteCache(v)
+        l.append((v._no,k))
+    l.sort()
+    entite.ordre_mc=[ item for index, item in l ]
 
 def traiteCache(objet):
     if not hasattr(objet, "cache"): return
@@ -67,63 +67,63 @@ def traiteCache(objet):
     clef=objet.nom
     if objet.equiv != None : clef=objet.equiv
     if hasattr(objet.pere,"mcOblig"):
-      objet.pere.mcOblig[clef]=objet.defaut
+        objet.pere.mcOblig[clef]=objet.defaut
     else :
-      objet.pere.mcOblig={}
-      objet.pere.mcOblig[clef]=objet.defaut
+        objet.pere.mcOblig={}
+        objet.pere.mcOblig[clef]=objet.defaut
 
 def traiteReel(objet,liste_simp_reel):
     if objet.__class__.__name__ == "SIMP":
-       if ( 'R' in objet.type):
-          if objet.nom not in liste_simp_reel :
-             liste_simp_reel.append(objet.nom)
+        if ( 'R' in objet.type):
+            if objet.nom not in liste_simp_reel :
+                liste_simp_reel.append(objet.nom)
 
 def analyseNiveau(cata_ordonne_dico,niveau,liste_simp_reel):
-   """
-       Analyse un niveau dans un catalogue de commandes
-   """
-   if niveau.l_niveaux == ():
-       # Il n'y a pas de sous niveaux
-       for oper in niveau.entites:
-           traiteEntite(oper,liste_simp_reel)
-           cata_ordonne_dico[oper.nom]=oper
-   else:
-       for niv in niveau.l_niveaux:
-           analyseNiveau(cata_ordonne_dico,niv)
-  
+    """
+        Analyse un niveau dans un catalogue de commandes
+    """
+    if niveau.l_niveaux == ():
+        # Il n'y a pas de sous niveaux
+        for oper in niveau.entites:
+            traiteEntite(oper,liste_simp_reel)
+            cata_ordonne_dico[oper.nom]=oper
+    else:
+        for niv in niveau.l_niveaux:
+            analyseNiveau(cata_ordonne_dico,niv)
+
 def analyseCatalogue(cata):
-   """
-      Cette fonction analyse le catalogue cata pour construire avec l'aide
-      de traiteEntite la structure de donnees ordre_mc qui donne l'ordre
-      d'apparition des mots cles dans le catalogue
-      Elle retourne un dictionnaire qui contient toutes les commandes
-      du catalogue indexees par leur nom
-   """
-   cata_ordonne_dico={}
-   liste_simp_reel=[]
-   if cata.JdC.l_niveaux == ():
-       # Il n'y a pas de niveaux
-       for oper in cata.JdC.commandes:
-           traiteEntite(oper,liste_simp_reel)
-           cata_ordonne_dico[oper.nom]=oper
-   else:
-       for niv in cata.JdC.l_niveaux:
-           analyseNiveau(cata_ordonne_dico,niv,liste_simp_reel)
-   return cata_ordonne_dico,liste_simp_reel
+    """
+       Cette fonction analyse le catalogue cata pour construire avec l'aide
+       de traiteEntite la structure de donnees ordre_mc qui donne l'ordre
+       d'apparition des mots cles dans le catalogue
+       Elle retourne un dictionnaire qui contient toutes les commandes
+       du catalogue indexees par leur nom
+    """
+    cata_ordonne_dico={}
+    liste_simp_reel=[]
+    if cata.JdC.l_niveaux == ():
+        # Il n'y a pas de niveaux
+        for oper in cata.JdC.commandes:
+            traiteEntite(oper,liste_simp_reel)
+            cata_ordonne_dico[oper.nom]=oper
+    else:
+        for niv in cata.JdC.l_niveaux:
+            analyseNiveau(cata_ordonne_dico,niv,liste_simp_reel)
+    return cata_ordonne_dico,liste_simp_reel
 
 
 if __name__ == "__main__" :
-   from Cata import cata_STA6
-   dico=analyseCatalogue(cata_STA6)
-   #import cata_saturne
-   #dico=analyseCatalogue(cata_saturne)
+    from Cata import cata_STA6
+    dico=analyseCatalogue(cata_STA6)
+    #import cata_saturne
+    #dico=analyseCatalogue(cata_saturne)
 
-   def print_entite(entite,dec='  '):
-       print (dec,entite.nom,entite.__class__.__name__)
-       for mocle in entite.ordre_mc:
-          print_entite(entite.entites[mocle],dec=dec+'  ')
+    def print_entite(entite,dec='  '):
+        print (dec,entite.nom,entite.__class__.__name__)
+        for mocle in entite.ordre_mc:
+            print_entite(entite.entites[mocle],dec=dec+'  ')
 
-   for k,v in list(dico.items()):
-      print_entite(v,dec='')
+    for k,v in list(dico.items()):
+        print_entite(v,dec='')
 
-   print (dico)
+    print (dico)
index 3cc104a360dad9732dc012d120919705d5bed90e..65fc785ce6d5256d5d735da4b7b8b82cb83d6dfd 100644 (file)
@@ -17,7 +17,7 @@
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 try :
-  from builtins import object
+    from builtins import object
 except : pass
 
 class STYLE(object):
index 4bf5bb1f70cbd7234055e72455e7b171077b0f8a..516c8a59b48cefdf2fdbcabce6882f3182c4d658 100755 (executable)
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-  from builtins import str
-  from builtins import object
+    from builtins import str
+    from builtins import object
 except :
-  pass
+    pass
 import sys,os
 sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..'))
 sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'../InterfaceQT4'))
@@ -46,64 +46,60 @@ def prettify(elem):
     reparsed = minidom.parseString(rough_string)
     return reparsed.toprettyxml(indent="  ")
 
-                
+
 class CatalogueXML(object):
-        def __init__(self,cata,cataName):
-                self.fichier="/tmp/XML/"+cataName+".xml"
-                self.cata=cata
-                self.first=ET.Element('cata')
-                comment=ET.Comment("catalogue "+str(cataName))
-                self.first.append(comment)
-                self.reglesUtilisees=[]
-                self.validatorsUtilises=[]
-                self.constrListTxtCmd()
-                self.ecrire_fichier()
-
-
-        def ecrire_fichier(self):
-                try :
-                   import codecs
-                  f = codecs.open(self.fichier, "w", "ISO-8859-1")
-                   #print prettify(self.first)
-                   f.write(prettify(self.first))
-                   f.close()
-                except :
-                   print(("Impossible d'ecrire le fichier : "+ str(self.fichier)))
-
-        def constrListTxtCmd(self):
-                mesCommandes=self.cata.JdC.commandes
-                self.commandes=ET.SubElement(self.first,'commandes')
-                for maCommande in mesCommandes:
-                    maCommande.enregistreXMLStructure(self.commandes,self)
+    def __init__(self,cata,cataName):
+        self.fichier="/tmp/XML/"+cataName+".xml"
+        self.cata=cata
+        self.first=ET.Element('cata')
+        comment=ET.Comment("catalogue "+str(cataName))
+        self.first.append(comment)
+        self.reglesUtilisees=[]
+        self.validatorsUtilises=[]
+        self.constrListTxtCmd()
+        self.ecrire_fichier()
+
+
+    def ecrire_fichier(self):
+        try :
+            import codecs
+            f = codecs.open(self.fichier, "w", "ISO-8859-1")
+            #print prettify(self.first)
+            f.write(prettify(self.first))
+            f.close()
+        except :
+            print(("Impossible d'ecrire le fichier : "+ str(self.fichier)))
+
+    def constrListTxtCmd(self):
+        mesCommandes=self.cata.JdC.commandes
+        self.commandes=ET.SubElement(self.first,'commandes')
+        for maCommande in mesCommandes:
+            maCommande.enregistreXMLStructure(self.commandes,self)
 
 
 if __name__ == "__main__" :
-       #monCata="/local/noyret/Install_Eficas/MAP/mapcata.py"
-       #monCata="/local/noyret/Install_Eficas/Aster/Cata/cataSTA11/cata.py"
-       #monCata="/local/noyret/Install_Eficas/MAP/mapcata.py"
-       #monCata="/local/noyret/Install_Eficas/MAP/mapcata.py"
-        code="Aster"
-        version=None
-
-        from Editeur  import session
-        options=session.parse(sys.argv)
-        if options.code!= None :    code=options.code
-        if options.cata!= None : monCata=options.cata
-        if options.ssCode!= None :  ssCode=options.ssCode
-
-        sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..',code))
-
-        from InterfaceQT4.ssIhm  import QWParentSSIhm, appliEficasSSIhm
-        Eficas=appliEficasSSIhm(code=code)
-        parent=QWParentSSIhm(code,Eficas,version)
-
-        import readercata
-        monreadercata  = readercata.READERCATA( parent, parent )
-        Eficas.readercata=monreadercata
-        monCata=monreadercata.cata
-
-        monCataXML=CatalogueXML(monCata,code)
-
-
-
-
+    #monCata="/local/noyret/Install_Eficas/MAP/mapcata.py"
+    #monCata="/local/noyret/Install_Eficas/Aster/Cata/cataSTA11/cata.py"
+    #monCata="/local/noyret/Install_Eficas/MAP/mapcata.py"
+    #monCata="/local/noyret/Install_Eficas/MAP/mapcata.py"
+    code="Aster"
+    version=None
+
+    from Editeur  import session
+    options=session.parse(sys.argv)
+    if options.code!= None :    code=options.code
+    if options.cata!= None : monCata=options.cata
+    if options.ssCode!= None :  ssCode=options.ssCode
+
+    sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..',code))
+
+    from InterfaceQT4.ssIhm  import QWParentSSIhm, appliEficasSSIhm
+    Eficas=appliEficasSSIhm(code=code)
+    parent=QWParentSSIhm(code,Eficas,version)
+
+    import readercata
+    monreadercata  = readercata.READERCATA( parent, parent )
+    Eficas.readercata=monreadercata
+    monCata=monreadercata.cata
+
+    monCataXML=CatalogueXML(monCata,code)
index 2f43cc37f0b55a1ebdd72c93db757bc8cac56885..3a30d15933eb54f05ab8837c27a67f2f40e9ce34 100644 (file)
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 try :
-   from builtins import object
+    from builtins import object
 except : pass
 
 class CatalogDescription(object):
-    
-    def __init__(self, identifier, cata_file_path, file_format = "python",
-                 default = False, code = None,ss_code=None, user_name = None,
-                 selectable = True, file_format_in = "python"):
+
+    def __init__(self, labelCode, fichierCata, formatFichierOut = "python", formatFichierIn='python',
+                 default = False, code = None,ssCode=None, selectable = True, userName=None):
         """
         This class can be used to describe an Eficas catalog.
 
-        :type  identifier: string
-        :param identifier: unique identifier for the catalog
-                
-        :type  cata_file_path: string
-        :param cata_file_path: path of the file containing the catalog itself
-                
-        :type  file_format: string
-        :param file_format: format of the files generated when using this
-                            catalog
-                
+        :type  labelCode: string
+        :param labelCode: unique labelCode for the catalog
+
+        :type  fichierCata: string
+        :param fichierCata: path of the file containing the catalog itself
+
+        :type  fileFormatOut: string
+        :param fileFormatOut: format of the files generated when using this catalog
+
         :type  default: boolean
-        :param default: indicate if this catalog is the default one (appear on
-                        the top of the catalogs list)
-                
+        :param default: indicate if this catalog is the default one (appear on the top of the catalogs list)
+
         :type  code: string
-        :param code: Deprecated. Used to indicate the code associated to this
-                     catalog
-                
-        :type  ss_code: string
-        :param ss_code: scheme associated to this catalog (Map only)
-
-        :type  user_name: string
-        :param user_name: name of the catalog as it will appear in the list
-                
+        :param code: Used to indicate the code associated to this catalog
+
+        :type  ssCode: string
+        :param ssCode: scheme associated to this catalog (Map only)
+
+        :type  userName: string
+        :param userName: name of the catalog as it will appear in the list
+
         :type  selectable: boolean
         :param selectable: indicate if this catalog appears in the list.
                            Setting this parameter to False is useful to keep
                            old catalogs to edit existing files but to forbid
                            to use them to create new files.
-                
+
+
+
+
         """
-        self.identifier = identifier
-        self.cata_file_path = cata_file_path
-        self.file_format = file_format
+
+        self.labelCode = labelCode
+        self.fichierCata = fichierCata
+        self.formatFichierOut = formatFichierOut
+        self.formatFichierIn = formatFichierIn
         self.default = default
         self.code = code
-        self.ssCode = ss_code
-        if user_name is None:
-            self.user_name = identifier
+        self.ssCode = ssCode
+        if userName is None:
+            self.userName = labelCode
         else:
-            self.user_name = user_name
+            self.userName = userName
         self.selectable = selectable
-        self.file_format_in = file_format_in
+
 
     @staticmethod
-    def create_from_tuple(cata_tuple):
+    def createFromTuple(cataTuple):
         #print "Warning: Describing a catalog with a tuple is deprecated. " \
         #      "Please create a CatalogDescription instance directly."
-        if cata_tuple[0] == 'TELEMAC':
-            desc = CatalogDescription(code = cata_tuple[0],
-                                      ss_code = cata_tuple[1],
-                                      identifier = cata_tuple[0]+cata_tuple[1],
-                                      cata_file_path = cata_tuple[2],
-                                      file_format = cata_tuple[3],
-                                      file_format_in = cata_tuple[4])
-        else:
-            desc = CatalogDescription(code = cata_tuple[0],
-                                      identifier = cata_tuple[1],
-                                      cata_file_path = cata_tuple[2],
-                                      file_format = cata_tuple[3])
-
-            if len(cata_tuple) == 5:
-                if cata_tuple[4] == "defaut":
-                    desc.default = True
-                else:
-                    desc.file_format_in = cata_tuple[4]
+        if cataTuple[0] == 'TELEMAC':
+            desc = CatalogDescription(code = cataTuple[0],
+                                      ssCode = cataTuple[1],
+                                      labelCode = cataTuple[0]+cataTuple[1],
+                                      fichierCata = cataTuple[2],
+                                      formatFichierOut = cataTuple[3],
+                                      formatFichierIn = cataTuple[4])
+            return desc
+        if cataTuple[0] == 'MAP' :
+            desc = CatalogDescription(code = cataTuple[0],
+                                   labelCode = cataTuple[1],
+                                   fichierCata = cataTuple[2],
+                                   ssCode      = cataTuple[3],
+                                   formatFichierOut = 'MAP',
+                                   formatFichierIn  = 'MAP')
+        elif len(cataTuple) == 4:
+            desc = CatalogDescription(code = cataTuple[0],
+                                   labelCode = cataTuple[1],
+                                   fichierCata = cataTuple[2],
+                                   formatFichierOut = cataTuple[3],
+                                   formatFichierIn  = 'python')
+        elif len(cataTuple) == 5 :
+            desc = CatalogDescription(code = cataTuple[0],
+                                   labelCode = cataTuple[1],
+                                   fichierCata = cataTuple[2],
+                                   formatFichierOut = cataTuple[3],
+                                   formatFichierIn  = cataTuple[4])
+        elif len(cataTuple) == 6 :
+            desc = CatalogDescription(code = cataTuple[0],
+                                   labelCode = cataTuple[1],
+                                   fichierCata = cataTuple[2],
+                                   formatFichierOut = cataTuple[3],
+                                   formatFichierIn  = cataTuple[4],
+                                   defaut=cataTuple[5])
+        else :
+            print ('pb a la description du catalogue avec les donnees')
+            print (cataTuple)
+            desc=None
+
         return desc
index 8aaa24ba032d78bae5ffe962b6bece201caa5b28..3349c1a1d1d2c82b9fb306b15295fa02b0054e35 100755 (executable)
@@ -30,48 +30,44 @@ import Accas
 
 
 class ChercheInto:
-        def __init__(self,cata,cataName):
-                self.cata=cata
-                self.dictInto={}
-                mesCommandes=self.cata.JdC.commandes
-                for maCommande in mesCommandes:
-                    self.construitListeInto(maCommande)
+    def __init__(self,cata,cataName):
+        self.cata=cata
+        self.dictInto={}
+        mesCommandes=self.cata.JdC.commandes
+        for maCommande in mesCommandes:
+            self.construitListeInto(maCommande)
 
 
-        def construitListeInto(self,e):
-            if isinstance(e,Accas.A_BLOC.BLOC) :
-               print (e.condition)
-            for nomFils, fils in e.entites.items():
-                self.construitListeInto(fils)
+    def construitListeInto(self,e):
+        if isinstance(e,Accas.A_BLOC.BLOC) :
+            print (e.condition)
+        for nomFils, fils in e.entites.items():
+            self.construitListeInto(fils)
 
 
 if __name__ == "__main__" :
-       #monCata="/local/noyret/Install_Eficas/MAP/mapcata.py"
-       #monCata="/local/noyret/Install_Eficas/Aster/Cata/cataSTA11/cata.py"
-       #monCata="/local/noyret/Install_Eficas/MAP/mapcata.py"
-       #monCata="/local/noyret/Install_Eficas/MAP/mapcata.py"
-        code="Aster"
-        version=None
-
-        from Editeur  import session
-        options=session.parse(sys.argv)
-        if options.code!= None :    code=options.code
-        if options.cata!= None : monCata=options.cata
-        if options.ssCode!= None :  ssCode=options.ssCode
-
-        sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..',code))
-
-        from InterfaceQT4.ssIhm  import QWParentSSIhm, appliEficasSSIhm
-        Eficas=appliEficasSSIhm(code=code)
-        parent=QWParentSSIhm(code,Eficas,version)
-
-        import readercata
-        monreadercata  = readercata.READERCATA( parent, parent )
-        Eficas.readercata=monreadercata
-        monCata=monreadercata.cata
-
-        monConstruitInto=ChercheInto(monCata,code)
-
-
-
-
+    #monCata="/local/noyret/Install_Eficas/MAP/mapcata.py"
+    #monCata="/local/noyret/Install_Eficas/Aster/Cata/cataSTA11/cata.py"
+    #monCata="/local/noyret/Install_Eficas/MAP/mapcata.py"
+    #monCata="/local/noyret/Install_Eficas/MAP/mapcata.py"
+    code="Aster"
+    version=None
+
+    from Editeur  import session
+    options=session.parse(sys.argv)
+    if options.code!= None :    code=options.code
+    if options.cata!= None : monCata=options.cata
+    if options.ssCode!= None :  ssCode=options.ssCode
+
+    sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..',code))
+
+    from InterfaceQT4.ssIhm  import QWParentSSIhm, appliEficasSSIhm
+    Eficas=appliEficasSSIhm(code=code)
+    parent=QWParentSSIhm(code,Eficas,version)
+
+    import readercata
+    monreadercata  = readercata.READERCATA( parent, parent )
+    Eficas.readercata=monreadercata
+    monCata=monreadercata.cata
+
+    monConstruitInto=ChercheInto(monCata,code)
index 3dcec6048a17ab9421444aadd592b6fb499a86ec..238903313a6a6a27743400dcd56c80ed3d416caf 100755 (executable)
@@ -30,14 +30,14 @@ import Accas
 
 
 class ChercheInto:
-        def __init__(self,cata,cataName):
-                self.cata=cata
-                self.dictInto={}
-                mesCommandes=self.cata.JdC.commandes
-                for maCommande in mesCommandes:
-                    print (maCommande.nom)
-                    print (maCommande.entites )
-                    print (len(maCommande.entites) )
+    def __init__(self,cata,cataName):
+        self.cata=cata
+        self.dictInto={}
+        mesCommandes=self.cata.JdC.commandes
+        for maCommande in mesCommandes:
+            print (maCommande.nom)
+            print (maCommande.entites )
+            print (len(maCommande.entites) )
 
 
 #        def construitListeInto(self,e):
@@ -48,32 +48,28 @@ class ChercheInto:
 
 
 if __name__ == "__main__" :
-       #monCata="/local/noyret/Install_Eficas/MAP/mapcata.py"
-       #monCata="/local/noyret/Install_Eficas/Aster/Cata/cataSTA11/cata.py"
-       #monCata="/local/noyret/Install_Eficas/MAP/mapcata.py"
-       monCata="/local/noyret/Install_Eficas/MAP/mapcata.py"
-        code="MAP"
-        version=None
-
-        from Editeur  import session
-        options=session.parse(sys.argv)
-        if options.code!= None :    code=options.code
-        if options.cata!= None : monCata=options.cata
-        if options.ssCode!= None :  ssCode=options.ssCode
-
-        sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..',code))
-
-        from InterfaceQT4.ssIhm  import QWParentSSIhm, appliEficasSSIhm
-        Eficas=appliEficasSSIhm(code=code)
-        parent=QWParentSSIhm(code,Eficas,version)
-
-        import readercata
-        monreadercata  = readercata.READERCATA( parent, parent )
-        Eficas.readercata=monreadercata
-        monCata=monreadercata.cata
-
-        monConstruitInto=ChercheInto(monCata,code)
-
-
-
-
+    #monCata="/local/noyret/Install_Eficas/MAP/mapcata.py"
+    #monCata="/local/noyret/Install_Eficas/Aster/Cata/cataSTA11/cata.py"
+    #monCata="/local/noyret/Install_Eficas/MAP/mapcata.py"
+    monCata="/local/noyret/Install_Eficas/MAP/mapcata.py"
+    code="MAP"
+    version=None
+
+    from Editeur  import session
+    options=session.parse(sys.argv)
+    if options.code!= None :    code=options.code
+    if options.cata!= None : monCata=options.cata
+    if options.ssCode!= None :  ssCode=options.ssCode
+
+    sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..',code))
+
+    from InterfaceQT4.ssIhm  import QWParentSSIhm, appliEficasSSIhm
+    Eficas=appliEficasSSIhm(code=code)
+    parent=QWParentSSIhm(code,Eficas,version)
+
+    import readercata
+    monreadercata  = readercata.READERCATA( parent, parent )
+    Eficas.readercata=monreadercata
+    monCata=monreadercata.cata
+
+    monConstruitInto=ChercheInto(monCata,code)
index 9fe4a1ede1c5d4fc555ea38d39e07a10d6345ecb..c802862ce1ce8bd23f1e95478d2539ad3e0dfd53 100644 (file)
@@ -27,7 +27,7 @@
        le dictionnaire composants.
      - gettreeitem(object) -> type d'item : fonction qui retourne un type
        d'item correspondant au type de l'objet noyau fourni.
-     - makeObjecttreeitem(appli,labeltext, object, setFunction=None) -> item : fonction qui retourne un item
+     - makeObjecttreeitem(appliEficas,labeltext, object, setFunction=None) -> item : fonction qui retourne un item
        correspondant a l'objet noyau fourni.
 """
 # import generaux
@@ -35,7 +35,7 @@ from __future__ import absolute_import
 import os,glob,types
 
 # Dictionnaire {object : item} permettant d'associer un item a un object
-# Ce dictionnaire est renseigne par la methode chargerComposants 
+# Ce dictionnaire est renseigne par la methode chargerComposants
 composants = {}
 
 def chargerComposants(Ihm="QT"):
@@ -61,35 +61,34 @@ def gettreeitem(object):
       Cette classe item depend bien sur de la nature de object, d'ou
       l'interrogation du dictionnaire composants
     """
-    # Si la definition de l'objet a un attribut itemeditor, il indique 
+    # Si la definition de l'objet a un attribut itemeditor, il indique
     # la classe a utiliser pour l'item
     try:
-       return object.definition.itemeditor
+        return object.definition.itemeditor
     except:
-       pass
+        pass
 
     # On cherche ensuite dans les composants (plugins)
     try:
-       itemtype= composants[object.__class__]
-       return itemtype
+        itemtype= composants[object.__class__]
+        return itemtype
     except:
-       pass
+        pass
 
     # Puis une eventuelle classe heritee (aleatoire car sans ordre)
     for e in list(composants.keys()):
         if e and isinstance(object,e):
-           itemtype= composants[e]
-           return itemtype
+            itemtype= composants[e]
+            return itemtype
 
     # Si on n'a rien trouve dans les composants on utilise l'objet par defaut
     itemtype=composants[None]
     return itemtype
 
-def makeObjecttreeitem(appli,labeltext, object, setFunction=None):
+def makeObjecttreeitem(appliEficas,labeltext, object, setFunction=None):
     """
        Cette fonction permet de construire et de retourner un objet
        de type item associe a l'object passe en argument.
     """
     c = gettreeitem(object)
-    return c(appli,labeltext, object, setFunction)
-
+    return c(appliEficas,labeltext, object, setFunction)
index 1c2b2439168995d32db43f4343969438f231dfb9..ab0c8b8d893d6f5363e527ff01cfb642451133e3 100644 (file)
@@ -32,4 +32,3 @@ standard12_gras = ("Times",12,'bold')
 standard12_gras_italique = ( "times",12,'bold','italic')
 
 standardcourier10 = ("Courier",10)
-
diff --git a/Editeur/icons/ast-green-dark-ball.png b/Editeur/icons/ast-green-dark-ball.png
new file mode 100644 (file)
index 0000000..6fc9d5b
Binary files /dev/null and b/Editeur/icons/ast-green-dark-ball.png differ
index 35df462fb5fc54fdcc8afa112058ca913d8c0de5..c9295e8485b1028ea0d87cfd6b77d72ad826d379 100644 (file)
@@ -18,7 +18,7 @@
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 """
-    Ce module realise toutes les mises a jour du chemin pour 
+    Ce module realise toutes les mises a jour du chemin pour
     les imports de modules Python
 """
 from __future__ import absolute_import
@@ -34,10 +34,10 @@ INSTALLDIR=prefs_Code.INSTALLDIR
 # representant le code utilise (si fourni)
 # Ensuite on utilise les packages de l'intallation
 if hasattr(prefs_Code,'CODE_PATH'):
-   if prefs_Code.CODE_PATH:
-      sys.path[:0]=[prefs_Code.CODE_PATH]
-      import Noyau,Validation
-      del sys.path[0]
+    if prefs_Code.CODE_PATH:
+        sys.path[:0]=[prefs_Code.CODE_PATH]
+        import Noyau,Validation
+        del sys.path[0]
 sys.path[:0]=[prefs_Code.INSTALLDIR]
 
 import Accas
index 89c1db69369c6de7584e4c0a0df2e04b7813a009..4300311367b91ef1e7a56e116e430b7aad421848 100644 (file)
 #
 from __future__ import absolute_import
 try :
-   from builtins import range
-   from builtins import object
+    from builtins import object
 except : pass
 import os
 import re
-from six.moves import range
 
 sous_menus={
-#          "OPENTURNS_STUDY" : {0:{"Essai":"Std.comm"}},
+#           "OPENTURNS_STUDY" : {0:{"Essai":"Std.comm"}},
 #            "OPENTURNS_WRAPPER" : {0:{"Essai":"wrapper_exemple.comm"}},
            }
 
 class listePatrons(object) :
 
     def __init__(self,code = "ASTER"):
-       repIni=os.path.dirname(os.path.abspath(__file__))
-       self.rep_patrons=repIni+"/Patrons/"+code
-       self.sous_menu={}
-       if code in sous_menus  :
-          self.sous_menu=sous_menus[code]
-       self.code=code
-       self.liste={}
-       self.traiteListe()
+        repIni=os.path.dirname(os.path.abspath(__file__))
+        self.rep_patrons=repIni+"/Patrons/"+code
+        self.sous_menu={}
+        if code in sous_menus  :
+            self.sous_menu=sous_menus[code]
+        self.code=code
+        self.liste={}
+        self.traiteListe()
 
     def traiteListe(self):
         if not (self.code in sous_menus) : return
@@ -50,8 +48,8 @@ class listePatrons(object) :
                 clef=list(self.sous_menu[i].keys())[0]
                 chaine=self.sous_menu[i][clef]
                 if re.search(chaine,file) :
-                   if clef in self.liste:
-                      self.liste[clef].append(file)
-                   else :
-                      self.liste[clef]=[file]
-                   break
+                    if clef in self.liste:
+                        self.liste[clef].append(file)
+                    else :
+                        self.liste[clef]=[file]
+                    break
index 7f0a44b36ba7f23b8ee068657d7977558de5828b..2fd87c62475a92da8481fac43fdc904b1360f5c2 100644 (file)
 Ce module centralise les informations issues de la ligne de commande.
 
 La ligne de commande est parsee avec l'aide du module python optparse.
-Les options possibles sont : -c, -j, -p, -d, -i, -f comme definies ci-dessous.
+Les options possibles sont : -l, -j, -p, -d, -i, -f comme definies ci-dessous.
 
 Un exemple typique d'utilisation est :
->>> ./appli.py -c V7.3 -d 1 -j aa -i 11 iii -p ppp -i 22 ii -j bb -f ff
+>>> ./appli.py -v V7.3 -d 1 -j aa -i 11 iii -p ppp -i 22 ii -j bb -f ff
 
 qui demande a l'application d'ouvrir trois jeux de commandes.
 
-Le premier (aa) a un include (11,iii) et est la suite du fichier poursuite ppp 
+Le premier (aa) a un include (11,iii) et est la suite du fichier poursuite ppp
 qui a lui meme un include (22,ii).
 
 Le deuxieme bb est un jeu de commandes simple.
@@ -37,7 +37,7 @@ Le troisieme est decrit dans le fichier ff de type .ini
 qui est parse par le module Configparser.
 Chaque section du fichier decrit un jeu de commandes.
 Un include est specifie par: numero logique=nom du fichier
-Une poursuite est specifiee par: poursuite=reference a un jeu de commande 
+Une poursuite est specifiee par: poursuite=reference a un jeu de commande
 Cette reference correspond a un nom de section decrivant le jeu de commandes.
 Le jeu de commandes maitre est donne par l'entree globale jdc dans la section jdc.
 
@@ -58,15 +58,15 @@ La session utilisera le catalogue V7.3 en mode debug.
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-  from builtins import str
+    from builtins import str
 except :
-  pass
+    pass
 try:
-   import optparse
-   from optparse import OptionValueError
+    import optparse
+    from optparse import OptionValueError
 except:
-   from Tools import optparse
-   from Tools.optparse import OptionValueError
+    from Tools import optparse
+    from Tools.optparse import OptionValueError
 
 import os,traceback
 import six.moves.configparser
@@ -88,7 +88,7 @@ d_env={}
 #
 #
 #
-# Les informations (dictionnaire) associees au fichier de commandes en cours de traitement 
+# Les informations (dictionnaire) associees au fichier de commandes en cours de traitement
 # sont stockees dans parser.values.current
 # En general, il faut utiliser current et pas parser.values.studies car les informations
 # sont stockees hierarchiquement
@@ -96,10 +96,10 @@ d_env={}
 
 def checkComm(option, opt_str, value, parser):
     if not hasattr(parser.values,"studies"):
-       parser.values.studies=[]
-       parser.values.comm=[]
+        parser.values.studies=[]
+        parser.values.comm=[]
     if not os.path.isfile(value):
-       raise OptionValueError(tr("le fichier de commandes %s n'existe pas", value))
+        raise OptionValueError(tr("le fichier de commandes %s n'existe pas", value))
     parser.values.comm.append(value)
     d_study={"comm":value}
     parser.values.current=d_study
@@ -107,9 +107,9 @@ def checkComm(option, opt_str, value, parser):
 
 def checkPoursuite(option, opt_str, value, parser):
     if parser.values.comm is None:
-       raise OptionValueError(tr("un fichier de commandes doit etre defini avant une poursuite %s", value))
+        raise OptionValueError(tr("un fichier de commandes doit etre defini avant une poursuite %s", value))
     if not os.path.isfile(value):
-       raise OptionValueError(tr("le fichier poursuite %s n'existe pas", value))
+        raise OptionValueError(tr("le fichier poursuite %s n'existe pas", value))
     #current : fichier de commandes en cours de traitement (dictionnaire des infos)
     comm=parser.values.current
     d_study={"comm":value}
@@ -118,17 +118,17 @@ def checkPoursuite(option, opt_str, value, parser):
 
 def checkInclude(option, opt_str, value, parser):
     try:
-       args=[int(parser.rargs[0]),parser.rargs[1]]
+        args=[int(parser.rargs[0]),parser.rargs[1]]
     except:
-       raise OptionValueError(tr("include mal defini %s", parser.rargs[0:2]))
+        raise OptionValueError(tr("include mal defini %s", parser.rargs[0:2]))
 
     del parser.rargs[0]
     del parser.rargs[0]
 
     if parser.values.comm is None:
-       raise OptionValueError(tr("un fichier de commandes doit etre defini avant un include %s", args))
+        raise OptionValueError(tr("un fichier de commandes doit etre defini avant un include %s", args))
     if not os.path.isfile(args[1]):
-       raise OptionValueError(tr("le fichier include %s n'existe pas", args[1]))
+        raise OptionValueError(tr("le fichier include %s n'existe pas", args[1]))
 
     comm=parser.values.current
     comm[args[0]]=args[1]
@@ -148,69 +148,75 @@ def checkJdc(config,jdc,parser,fich):
     d_study={}
 
     for o in config.options(jdc):
-       if o == "poursuite":
-          p=config.get(jdc,"poursuite")
-
-          if not config.has_option(p,"comm"):
-             raise OptionValueError(tr(" jdc %(v_1)s manque \
-                                      fichier comm dans section %(v_2)s", \
-                                      {'v_1': fich, 'v_2': p}))
-          comm=config.get(p,"comm")
-          if not os.path.isfile(comm):
-             raise OptionValueError(tr("jdc %(v_1)s, le fichier\
-                                      de commandes %(v_2)s n'existe pas", \
-                                      {'v_1': fich, 'v_2': comm}))
-
-          pours=checkJdc(config,p,parser,fich)
-          pours["comm"]=comm
-          d_study["pours"]=pours
-          continue
-
-       try:
-          unit=int(o)
-          # si le parametre est un entier, il s'agit d'un include
-          inc=config.get(jdc,o)
-       except EficasException:
-          continue
-       if not os.path.isfile(inc):
-          raise OptionValueError(tr(" jdc %(v_1)s \
-                                   fichier include %(v_2)s, %(v_3)s \
-                                   n'existe pas", \
-                                   {'v_1': fich, 'v_2': unit, 'v_3': inc}))
-       d_study[unit]=inc
+        if o == "poursuite":
+            p=config.get(jdc,"poursuite")
+
+            if not config.has_option(p,"comm"):
+                raise OptionValueError(tr(" jdc %(v_1)s manque \
+                                         fichier comm dans section %(v_2)s", \
+                                         {'v_1': fich, 'v_2': p}))
+            comm=config.get(p,"comm")
+            if not os.path.isfile(comm):
+                raise OptionValueError(tr("jdc %(v_1)s, le fichier\
+                                         de commandes %(v_2)s n'existe pas", \
+                                         {'v_1': fich, 'v_2': comm}))
+
+            pours=checkJdc(config,p,parser,fich)
+            pours["comm"]=comm
+            d_study["pours"]=pours
+            continue
+
+        try:
+            unit=int(o)
+            # si le parametre est un entier, il s'agit d'un include
+            inc=config.get(jdc,o)
+        except EficasException:
+            continue
+        if not os.path.isfile(inc):
+            raise OptionValueError(tr(" jdc %(v_1)s \
+                                     fichier include %(v_2)s, %(v_3)s \
+                                     n'existe pas", \
+                                     {'v_1': fich, 'v_2': unit, 'v_3': inc}))
+        d_study[unit]=inc
 
     return d_study
 
 def checkFich(option, opt_str, fich, parser):
     """
         Fonction : parse le fichier fich (format .ini)
-        
+
         option : option en cours de traitement
         opt_str : chaine de caracteres utilisee par l'utilisateur
         fich : nom du fichier .ini donne par l'utilisateur
         parser : objet parseur des options de la ligne de commande
     """
     if not os.path.isfile(fich):
-       raise OptionValueError(tr(" le fichier jdc %s n'existe pas", str(fich)))
+        raise OptionValueError(tr(" le fichier jdc %s n'existe pas", str(fich)))
     if parser.values.fich is None:
-       parser.values.fich=[]
+        parser.values.fich=[]
     parser.values.fich.append(fich)
     if not hasattr(parser.values,"studies"):
-       parser.values.studies=[]
-       parser.values.comm=[]
-    config = six.moves.configparser.configparser()
+        parser.values.studies=[]
+        parser.values.comm=[]
+    # Python 2 to 3
+    try :
+        import ConfigParser
+        config=ConfigParser.ConfigParser()
+    except :
+        import configparser
+        config=configparser.configparser()
     config.read([fich])
     if not config.has_option(u"jdc","jdc"):
-       raise OptionValueError(tr(" jdc %s manque option jdc dans section jdc", str(fich)))
+        raise OptionValueError(tr(" jdc %s manque option jdc dans section jdc", str(fich)))
     jdc=config.get(u"jdc","jdc")
 
     if not config.has_option(jdc,"comm"):
-       raise OptionValueError(tr(" jdc %(v_1)s manque fichier comm \
-                                dans section %(v_2)s", {'v_1': fich, 'v_2': jdc}))
+        raise OptionValueError(tr(" jdc %(v_1)s manque fichier comm \
+                                 dans section %(v_2)s", {'v_1': fich, 'v_2': jdc}))
     comm=config.get(jdc,"comm")
     if not os.path.isfile(comm):
-       raise OptionValueError(tr("jdc %(v_1)s, le fichier de commandes \
-                                %(v_2)s n'existe pas", {'v_1': fich, 'v_2': comm}))
+        raise OptionValueError(tr("jdc %(v_1)s, le fichier de commandes \
+                                 %(v_2)s n'existe pas", {'v_1': fich, 'v_2': comm}))
     parser.values.comm.append(comm)
 
     d_study=checkJdc(config,jdc,parser,fich)
@@ -220,24 +226,24 @@ def checkFich(option, opt_str, fich, parser):
 def printPours(d_pours,dec=''):
     # Les fichiers includes d'abord
     for k,v in list(d_pours.items()):
-       if k in (u"pours","comm"):continue
-       print(( tr("%(v_1)s include %(v_2)s : %(v_3)s", {'v_1': str(dec), 'v_2': str(k), 'v_3': str(v)})))
+        if k in (u"pours","comm"):continue
+        print(( tr("%(v_1)s include %(v_2)s : %(v_3)s", {'v_1': str(dec), 'v_2': str(k), 'v_3': str(v)})))
 
     if "pours" in d_pours:
-       # Description de la poursuite
-       print((tr("%(v_1)s fichier poursuite: %(v_2)s", {'v_1': dec, 'v_2': d_pours["pours"]["comm"]})))
-       printPours(d_pours["pours"],dec=dec+"++")
+        # Description de la poursuite
+        print((tr("%(v_1)s fichier poursuite: %(v_2)s", {'v_1': dec, 'v_2': d_pours["pours"]["comm"]})))
+        printPours(d_pours["pours"],dec=dec+"++")
 
 def printDEnv():
     if d_env.studies is None:return
     for study in d_env.studies:
-       print((tr("nom etude : %s", study["comm"])))
-       printPours(study,dec="++")
+        print((tr("nom etude : %s", study["comm"])))
+        printPours(study,dec="++")
 
 def createparser():
     # creation du parser des options de la ligne de commande
     #import prefs
-    parser=optparse.OptionParser(usage=tr("utilisation : %prog [options]"), version="%prog 1.13")
+    parser=optparse.OptionParser(usage=tr("utilisation : %prog [options]"), version="%prog 9.5")
 
     parser.add_option(u"-j","--jdc",dest="comm",type='string',
                     action="callback",callback=checkComm,
@@ -247,18 +253,21 @@ def createparser():
                   action="callback", callback=checkPoursuite,
                   help=tr("nom du fichier poursuite"))
 
-    parser.add_option(u"-i","--include", 
+    parser.add_option(u"-i","--include",
                   action="callback", callback=checkInclude,
                   nargs=2, help=tr("numero d'unite suivi du nom du fichier include"))
 
-    parser.add_option(u"-f","--fich", type="string",dest="fich",
-                  action="callback", callback=checkFich,
-                  help=tr("fichier decrivant une etude"))
+    #parser.add_option(u"-f","--fich", type="string",dest="fich",
+    #              action="callback", callback=checkFich,
+    #              help=tr("fichier decrivant une etude"))
 
-    parser.add_option(u"-c","--cata", action="store", type="string",dest="cata",
-                  help=tr("version de catalogue a utiliser"))
+    parser.add_option(u"-c","--cata", action="store", type="string",dest="fichierCata",
+                  help=tr("catalogue a utiliser"))
+
+    parser.add_option(u"-o","--fichierXMLOut", action="store", type="string",dest="fichierXMLOut",
+                  help=tr("nom du fichier xml genere"))
 
-    parser.add_option(u"-v","--version_cata", action="store", type="string",dest="version_cata",
+    parser.add_option(u"-v","--label", action="store", type="string",dest="labelCode",
                   help=tr("version de catalogue a utiliser"))
 
 
@@ -268,11 +277,19 @@ def createparser():
     parser.add_option(u"-d","--debug", action="store", type="int",dest="debug",
                   help=tr("niveau de debug"))
 
+    parser.add_option(u"-x","--withXSD", action="store_true", dest="withXSD",
+                  default=False,
+                  help=tr("construit le .xml en meme temps que le .comm"))
+
+    parser.add_option(u"-a","--withEltAbstrait", action="store_true", dest="avecEltAbstrait",
+                  default=False,
+                  help=tr("construit des elements abstraits dans le XSD pour gerer le cascading"))
+
     parser.add_option(u"-s","--schema", action="store", type="string",dest="ssCode",
                   help=tr("schema"))
     # To handle locale information
-    parser.add_option("-l", "--locale", action="store", type="string", dest="locale",
-                  help=tr("localisation de l'application, pour la traduction"))
+    #parser.add_option("-l", "--locale", action="store", type="string", dest="locale",
+    #              help=tr("localisation de l'application, pour la traduction"))
 
 
     return parser
@@ -281,18 +298,24 @@ def parse(args):
     parser=createparser()
     (options,args)=parser.parse_args(args[1:])
     if not hasattr(options,"studies"):
-       options.studies=[]
-       options.comm=[]
+        options.studies=[]
+        options.comm=[]
+    if not hasattr(options,"fichierCata"): options.fichierCata=None
+    if not hasattr(options,"labelCode"): options.labelCode=None
+    if not hasattr(options,"fichierXMLOut"): options.fichierXMLOut=None
+    if options.withXSD :
+        try : import pyxb
+        except : print ('Please, source pyxb environment'); exit()
     try:
-       del parser.values.current
+        del parser.values.current
     except:
-       pass
+        pass
     for file in args:
-         if os.path.isfile(file):
+        if os.path.isfile(file):
             options.comm.append(file)
             options.studies.append({"comm":file})
             #print options.studies
-         elif len(args)==1 and (re.search('.comm',file) or re.search('.map',file) or re.search('.cas',file)):
+        elif len(args)==1 and (re.search('.comm',file) or re.search('.map',file) or re.search('.cas',file) or re.search('.xml',file)):
             try :
                 f=open(file,'w')
                 f.close()
@@ -300,17 +323,21 @@ def parse(args):
                 parser.error(tr("Nombre incorrect d'arguments"))
             options.comm.append(file)
             options.studies.append({"comm":file})
-         elif len(args) == 1 and options.locale:
-            print((tr("Localisation specifiee pour l'application.")))
-         else:
+        elif len(args) == 2 :
+            if options.locale:
+                print((tr("Localisation specifiee pour l'application.")))
+            else:
+                parser.error(tr("Nombre incorrect d'arguments"))
+        else:
             parser.error(tr("Nombre incorrect d'arguments"))
 
     global d_env
     d_env=options
     #printDEnv()
+    #print (options)
     return options
 
-def getUnit(d_study,appli):
+def getUnit(d_study,appliEficas):
     """
        Fonction : construit et retourne un dictionnaire contenant les informations
        sur les fichiers poursuite et includes sous la forme adaptee
@@ -318,25 +345,25 @@ def getUnit(d_study,appli):
 
                   [None : nom_fichier, texte_source, unites_associees,           # poursuite
                    numero_include : nom_fichier, texte_source, unites_associees, # include
-                    ...] 
+                    ...]
 
        d_study : dictionnaire de l'etude
-       appli : objet application EFICAS (permet d'acceder aux services comme getSource)
+       appliEficas : objet application EFICAS (permet d'acceder aux services comme getSource)
     """
-    return getDunit(d_study,appli)
+    return getDunit(d_study,appliEficas)
 
-def getDunit(d_unit,appli):
+def getDunit(d_unit,appliEficas):
     d={}
     if 'pours' in d_unit:
-       # on a une poursuite
-       comm=d_unit["pours"]["comm"]
-       g=getDunit(d_unit["pours"],appli)
-       text=appli.getSource(comm)
-       d[None]=comm,text,g
+        # on a une poursuite
+        comm=d_unit["pours"]["comm"]
+        g=getDunit(d_unit["pours"],appliEficas)
+        text=appliEficas.getSource(comm)
+        d[None]=comm,text,g
 
     for k,v in list(d_unit.items()):
-       if k in (u"pours","comm"): continue
-       text=appli.getSource(v)
-       d[k]=v,text,d
+        if k in (u"pours","comm"): continue
+        text=appliEficas.getSource(v)
+        d[k]=v,text,d
 
     return d
index 3795f5349212885515846c4d643a25e3c48dfdf5..d87ae630706ef03f43f976c72e4a04bc2ee8ec61 100644 (file)
@@ -26,12 +26,10 @@ from basestyle import STYLE,style
 
 inistylefile=os.path.join(prefsCode.repIni,"style.py")
 if os.path.isfile(inistylefile):
-   exec(compile(open(inistylefile).read(), inistylefile, 'exec'))
+    exec(compile(open(inistylefile).read(), inistylefile, 'exec'))
 
 import fontes
 for attr in dir(style):
-   if attr[0]=='_':continue
-   if not hasattr(fontes,attr):continue
-   setattr(fontes,attr,getattr(style,attr))
-
-
+    if attr[0]=='_':continue
+    if not hasattr(fontes,attr):continue
+    setattr(fontes,attr,getattr(style,attr))
index 789fed3367240cad79c9972c8af87b011723d337..5ffe1af947222b22b9d9c2a6960025123969f3ab 100644 (file)
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 """
-   Ce module sert a construire les structures de donnees porteuses 
+   Ce module sert a construire les structures de donnees porteuses
    des informations liees aux groupes de commandes
 """
 from __future__ import absolute_import
 import types
 
 class UIINFO:
-   """
-       Pour le moment la classe UIINFO ne sait traiter que des infos
-       portant sur la definition des groupes de commandes
-       Les autres informations sont ignorees
-   """
-   def __init__(self,parent,groupes=None,**args):
-      """
-         Initialiseur de la classe UIINFO.
-         Initialise a partir du dictionnaire UIinfo passe a
-         un objet ENTITE les attributs de la classe
-      """
-      # L'attribut parent stocke le lien vers l'objet ENTITE relie a UIINFO
-      self.parent=parent
-      self.groupes=groupes
-      if groupes == None:
-         # L'entite n'a pas de groupe associe. On lui associe le groupe "DEFAUT"
-         self.groupes=("DEFAUT",)
-      if type(self.groupes) != tuple:
-         self.groupes=(self.groupes,)
+    """
+        Pour le moment la classe UIINFO ne sait traiter que des infos
+        portant sur la definition des groupes de commandes
+        Les autres informations sont ignorees
+    """
+    def __init__(self,parent,groupes=None,**args):
+        """
+           Initialiseur de la classe UIINFO.
+           Initialise a partir du dictionnaire UIinfo passe a
+           un objet ENTITE les attributs de la classe
+        """
+        # L'attribut parent stocke le lien vers l'objet ENTITE relie a UIINFO
+        self.parent=parent
+        self.groupes=groupes
+        if groupes == None:
+            # L'entite n'a pas de groupe associe. On lui associe le groupe "DEFAUT"
+            self.groupes=("DEFAUT",)
+        if type(self.groupes) != tuple:
+            self.groupes=(self.groupes,)
 
 def traiteCommande(commande,niveau):
     """
@@ -64,50 +64,47 @@ def traiteCommande(commande,niveau):
         niveau.dict_groupes[grp].append(commande.nom)
 
 def traiteNiveau(niveau):
-   if niveau.l_niveaux == ():
-       # Il n'y a pas de sous niveaux. niveau.entites ne contient que des commandes
-       niveau.dict_groupes={}
-       for oper in niveau.entites:
-           traiteCommande(oper,niveau)
-       # A la fin les cles du dictionnaire dict_groupes donnent la liste des groupes
-       # sans doublon
-       niveau.liste_groupes=list(niveau.dict_groupes.keys())
-       # On ordonne les listes alphabetiquement
-       niveau.liste_groupes.sort()
-       for v in niveau.dict_groupes.values():v.sort()
-       #print niveau.liste_groupes
-       #print niveau.dict_groupes
-   else:
-       for niv in niveau.l_niveaux:
-           traiteNiveau(niv)
+    if niveau.l_niveaux == ():
+        # Il n'y a pas de sous niveaux. niveau.entites ne contient que des commandes
+        niveau.dict_groupes={}
+        for oper in niveau.entites:
+            traiteCommande(oper,niveau)
+        # A la fin les cles du dictionnaire dict_groupes donnent la liste des groupes
+        # sans doublon
+        niveau.liste_groupes=list(niveau.dict_groupes.keys())
+        # On ordonne les listes alphabetiquement
+        niveau.liste_groupes.sort()
+        for v in niveau.dict_groupes.values():v.sort()
+        #print niveau.liste_groupes
+        #print niveau.dict_groupes
+    else:
+        for niv in niveau.l_niveaux:
+            traiteNiveau(niv)
 
 def traite_UIinfo(cata):
-   """
-      Cette fonction parcourt la liste des commandes d'un catalogue (cata)
-      construit les objets UIINFO a partir de l'attribut UIinfo de la commande
-      et construit la liste complete de tous les groupes presents
-   """
-   #dict_groupes["CACHE"]=[]
-   #XXX Ne doit pas marcher avec les niveaux
-   if cata.JdC.l_niveaux == ():
-       # Il n'y a pas de niveaux
-       # On stocke la liste des groupes et leur contenu dans le JdC
-       # dans les attributs liste_groupes et dict_groupes
-       cata.JdC.dict_groupes={}
-       for commande in cata.JdC.commandes:
-           traiteCommande(commande,cata.JdC)
-       # A la fin les cles du dictionnaire dict_groupes donnent la liste des groupes
-       # sans doublon
-       cata.JdC.liste_groupes=list(cata.JdC.dict_groupes.keys())
-       # On ordonne les listes alphabetiquement
-       cata.JdC.liste_groupes.sort()
-       for v in cata.JdC.dict_groupes.values():v.sort()
-       #print cata.JdC.liste_groupes
-       #print cata.JdC.dict_groupes
-   else:
-       # Le catalogue de commandes contient des definitions de niveau
-       for niv in cata.JdC.l_niveaux:
-          traiteNiveau(niv)
-
-
-
+    """
+       Cette fonction parcourt la liste des commandes d'un catalogue (cata)
+       construit les objets UIINFO a partir de l'attribut UIinfo de la commande
+       et construit la liste complete de tous les groupes presents
+    """
+    #dict_groupes["CACHE"]=[]
+    #XXX Ne doit pas marcher avec les niveaux
+    if cata.JdC.l_niveaux == ():
+        # Il n'y a pas de niveaux
+        # On stocke la liste des groupes et leur contenu dans le JdC
+        # dans les attributs liste_groupes et dict_groupes
+        cata.JdC.dict_groupes={}
+        for commande in cata.JdC.commandes:
+            traiteCommande(commande,cata.JdC)
+        # A la fin les cles du dictionnaire dict_groupes donnent la liste des groupes
+        # sans doublon
+        cata.JdC.liste_groupes=list(cata.JdC.dict_groupes.keys())
+        # On ordonne les listes alphabetiquement
+        cata.JdC.liste_groupes.sort()
+        for v in cata.JdC.dict_groupes.values():v.sort()
+        #print cata.JdC.liste_groupes
+        #print cata.JdC.dict_groupes
+    else:
+        # Le catalogue de commandes contient des definitions de niveau
+        for niv in cata.JdC.l_niveaux:
+            traiteNiveau(niv)
index a9d7e576ada32a5df320c0c3f063b363936f2366..1c1eaa6bad8282d8d494f3081c276d83f32d0aa9 100755 (executable)
@@ -1,7 +1,31 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
+# Copyright (C) 2007-2021   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+
 import sys,os
 import types
+import Accas
+import imp
+from copy import deepcopy, copy
+import traceback
 
 # CONTEXT est accessible (__init__.py de Noyau)
 
@@ -20,131 +44,785 @@ from .mapDesTypes import listeParamDeTypeTypeAttendu, listeParamDeTypeStr, dictP
 from .mapDesTypes import listeParamTjsSequence, listeParamSelonType
 from .mapDesTypes import Tuple
 
+PourTraduction = False
 
-from .balises import *
+from .balisesXSD import *
 
 # -----------------
 class X_definition:
 # -----------------
+    def adjoint(self, liste1, liste2):
+        #print ('adjoint', liste1, liste2)
+        l=[]
+        for elt1 in liste1:
+            for elt2 in liste2:
+                newListe=deepcopy(elt1)
+                if  elt2 != []: newListe.append(elt2)
+                l.append(newListe)
+        return l
+
+    def adjointUnMot(self, liste1, mot):
+        l=[]
+        for elt1 in liste1:
+            newListe=deepcopy(elt1)
+            newListe.append(mot)
+            l.append(newListe)
+        return l
+
+    def remplaceListeParContenuEtVide(self, liste1, liste2):
+        listeFinale=[]
+        for elt1 in liste1 :
+            for eltListe in liste2:
+                newListe=deepcopy(elt1)
+                if eltListe!=[] :newListe+=eltListe
+                if newListe not in listeFinale : listeFinale.append(newListe)
+        return listeFinale
+
+
+    def fusionne2Listes(self, liste1, liste2):
+        #print ('fusionne2Liste', liste1, liste2)
+        listeFinale=[]
+        for elt1 in liste1 :
+            for eltListe in liste2:
+                newListe=deepcopy(elt1)
+                if eltListe!=[] :newListe.append(eltListe)
+                listeFinale.append(newListe)
+        #print (listeFinale)
+        return listeFinale
+
+    def getNomDuCodeDumpe(self):
+        if hasattr(self,'nomDuCodeDumpe') : return
+        obj=self
+        while ( not hasattr(obj,'nomDuCodeDumpe') ): obj=obj.pere
+        self.nomDuCodeDumpe = obj.nomDuCodeDumpe
+        self.code=obj.code
+
+    def getXPathComplet(self):
+        obj=self
+        textePath='/'+self.code+":"+self.nom
+        while ( hasattr(obj,'pere') ):
+            obj=obj.pere
+            if isinstance(obj, X_BLOC) : continue
+            textePath= '/'+ self.code + ":" + obj.nom + textePath
+        textePath='.' + textePath
+        return textePath
+
+    def getXPathSansSelf(self):
+        obj=self
+        textePath=''
+        while ( hasattr(obj,'pere') ):
+            obj=obj.pere
+            if isinstance(obj, X_BLOC) : continue
+            textePath=  self.code + ":" + obj.nom + '/' + textePath
+        textePath='./'+ self.code + ":" + textePath
+        return textePath
+
+    def getNomCompletAvecBloc(self):
+        obj=self
+        texteNom=self.nom
+        while ( hasattr(obj,'pere') ):
+            texteNom=obj.pere.nom+'_'+texteNom
+            obj=obj.pere
+        return texteNom
+
+    def metAJourPyxb(self,nomDuTypePyxb) :
+        self.aCreer=False
+        self.nomDuTypePyxb=nomDuTypePyxb
+        cata = CONTEXT.getCurrentCata()
+        nom='T_'+self.nom
+        if (hasattr (self, 'nomXML')) and self.nomXML != None : nom='T_'+self.nomXML
+        if not (nom in cata.dictTypesXSD.keys()) :
+            cata.dictTypesXSD[nom] = [self,]
+        else :
+            cata.dictTypesXSD[nom].append(self)
+
+    def definitNomDuTypePyxb(self,forceACreer=False,debug=False):
+        #if self.nom == 'SubgridScaleModel' : debug=True
+        #print ('definitNomDuTypePyxb', self, self.nom,self.nomComplet(),forceACreer)
+        #PNPN
+        if hasattr(self,'nomDuTypePyxb') : self.aCreer = False; return self.nomDuTypePyxb
+        #debug=False
+        if debug : print ('definitNomDuTypePyxb traitement pour ',  self.nom)
+        self.aCreer = True
+        cata = CONTEXT.getCurrentCata()
+        nom='T_'+self.nom
+        if (hasattr (self, 'nomXML')) and self.nomXML != None : nom='T_'+self.nomXML
+        if not (nom in cata.dictTypesXSD.keys()) :
+            if debug : print ('definitNomDuTypePyxb encore jamais traite ',  self.nom , ' a pour type' , nom)
+            cata.dictTypesXSD[nom] = [self,]
+            self.nomDuTypePyxb=nom
+            return nom
+
+        if nom == 'T_Consigne' : return nom
+
+        if not forceACreer :
+            self.aCreer = False
+            listePossible=cata.dictTypesXSD[nom]
+            indice=0
+            while (indice < len(listePossible)) :
+                objAComparer=listePossible[indice]
+                if debug : print (self.compare)
+                if self.compare(objAComparer) :
+                    self.nomDuTypePyxb=objAComparer.nomDuTypePyxb
+                    if debug : print (self, objAComparer)
+                    if debug : print (type(self), type(objAComparer))
+                    if debug : print ('definitNomDuTypePyxb',  self.nom , 'type identique', objAComparer.nomDuTypePyxb )
+                # c est nul pour la comparaison mais cela permet d etre ok dans le dictionnaire passe a Accas
+                    cata.dictTypesXSD[nom].append(self)
+                    if self.label != 'SIMP' :
+                        if objAComparer not in list(cata.dictTypesXSDJumeaux.keys()) : cata.dictTypesXSDJumeaux[objAComparer]=[self,]
+                        else : cata.dictTypesXSDJumeaux[objAComparer].append(self)
+                    return objAComparer.nomDuTypePyxb
+                indice += 1
+        self.aCreer = True
+        cata.dictTypesXSD[nom].append(self)
+        nomAlter='T_'+self.nom+'_'+str(indice)
+        if (hasattr (self, 'nomXML')) and self.nomXML != None :
+            nomAlter='T_'+self.nomXML+'_'+str(indice)
+        self.nomDuTypePyxb=nomAlter
+        return nomAlter
 
-   def getCode(self):
-       if hasattr(self,'code') : return
-       obj=self
-       while ( not hasattr(obj,'code') ): obj=obj.pere
-       self.code = obj.code
-
-   #def genealogie(self,n):
-   #    texte=self.nom
-   #    obj=self
-   #    j=1
-   #    while ( hasattr(obj,'pere') ):
-   #        texte=obj.pere.nom+'_'+texte
-   #        obj=obj.pere
-   #        j=j+1
-   #        if j > n : return (True, 'T_'+texte)
-   #    return (False, 'T_'+texte)
-
-   def definitNomDuTypePyxb(self):
-       self.aCreer = True
-       cata = CONTEXT.getCurrentCata() 
-       nom='T_'+self.nom
-       if not (nom in cata.dictTypesXSD.keys()) :
-          cata.dictTypesXSD[nom] = [self,]
-          return nom
-       self.aCreer = False
-       if nom == 'T_Consigne' : return nom
-       listePossible=cata.dictTypesXSD[nom]
-       indice=0
-       while (indice < len(listePossible)) :
-          objAComparer=listePossible[indice]
-          if self.compare(objAComparer) : return objAComparer.nomDuTypePyxb
-          indice += 1
-       self.aCreer = True
-       cata.dictTypesXSD[nom].append(self)
-       nomAlter='T_'+self.nom+'_'+str(indice)
-       return nomAlter
-
-  # def existeDeja(self,nom):
-  #     if nom in cata.dictTypesXSD.keys() :
-  #         self.aCreer = False
-  #         return cata.dictTypesXSD[nom]
-  #     else :
-  #         cata.dictTypesXSD[nom] = self
-  #         return None
 
 # ----------------------------------------
-class X_definitionComposee (X_definition):
+class X_compoFactoriseAmbigu(X_definition):
 # ----------------------------------------
-   
-   def CreeTexteComplexeVenantDesFils(self):
-       texteComplexeVenantDesFils=""
-       for nom in self.ordre_mc:
-          mcFils = self.entites[nom]
-          mcFils.dumpXsd()
-          self.texteComplexe += mcFils.texteElt
-          self.texteSimple   += mcFils.texteSimple 
-          texteComplexeVenantDesFils += mcFils.texteComplexe
-       return texteComplexeVenantDesFils
-
-   def dumpXsd(self):
-       #print ('------------------------------------------------')
-       #print ('dumpXsd de ' , self.nom)
-       self.getCode()
-       self.nomDuTypePyxb  = self.definitNomDuTypePyxb()
-       self.texteSimple    = "" # on n ajoute pas de type simple
-
-       self.traduitMinMax()
-       # pour accepter les PROC et ...
-       # 
-       if self.aCreer :
-          self.texteComplexe = debutTypeCompo.format(self.nomDuTypePyxb,self.minOccurs,self.maxOccurs)
-          texteComplexeVenantDesFils=self.CreeTexteComplexeVenantDesFils()
-          self.texteComplexe  = texteComplexeVenantDesFils + self.texteComplexe
-          self.texteComplexe += finTypeCompo
-       else :
-          self.texteComplexe = ""
-
-       minDsSequence=0
-       if hasattr(self, 'statut') and self.statut=='f'  : minDsSequence=0
-       maxDsSequence=1
-       if self.label in ('BLOC', 'FACT'):
-          self.texteElt=eltCompoDsSequence.format(self.nom,self.code,self.nomDuTypePyxb,minDsSequence,maxDsSequence)
-       else :
-          self.texteElt=eltCompoDsSequenceSiProc.format(self.nom,self.code,self.nomDuTypePyxb)
-       #print (self.texteComplexe)
-       #print ('------------------------------------------------')
-
-   def traduitMinMax(self):
-   # ____________________
-   # valable pour bloc, proc et oper
-      self.minOccurs = 0
-      self.maxOccurs = 1
-
-   def compare(self,autreMC):
-       if self.label != autreMC.label : return False
-       for attr in (  'regles', 'fr',  'defaut', 'min' ,'max', 'position' , 'docu' ) :
-           val1=getattr(self,attr)
-           val2=getattr(autreMC,attr)
-           if val1 != val2 : return False
-       for defFille in self.entites.keys():
-           if defFille not in autreMC.entites.keys() : return False
-           if not self.entites[defFille].compare(autreMC.entites[defFille]) : return False
-       return True
+
+    def __init__(self,nom,listeDeCreation,pere, debug=True):
+
+        if debug :
+            for i in listeDeCreation : print (i.nom)
+        self.label='BlocAmbigu'
+        self.nom=nom
+        self.pere=pere
+        self.statut='f'
+        self.entites={}
+        self.mcXSD=[]
+        self.typesXSDDejaDumpes=[]
+        self.ordre_mc=[]
+        self.lesConditions = 'Possible Conditions : '
+        for mc in listeDeCreation :
+            if hasattr(mc, 'condition'):self.lesConditions += '\n\t\t\t\t\t\t' + mc.condition
+            self.mcXSD.append(mc)
+            self.ordre_mc.append(mc.nom)
+
+        if debug : print (self.mcXSD)
+        if debug : print (self.ordre_mc)
+        self.construitEntites(self.mcXSD)
+        self.constructionArbrePossibles()
+        lesPossibles=deepcopy(self.arbrePossibles)
+        if debug : print ('lesPossibles ', lesPossibles)
+
+        self.getNomDuCodeDumpe()
+        self.nomDuTypePyxb = self.definitNomDuTypePyxb()
+        if debug : print (self.nomDuTypePyxb)
+        self.texteSimple = ''
+        self.texteComplexeVenantDesFils = ''
+        self.texteComplexe = debutTypeSubstDsBlocFactorise.format(self.nomDuTypePyxb)
+        # on enleve [] des possibles puisque l elt sera optionnel
+        lesPossibles.remove([])
+        if debug : print ('________________ init de compoAmbigu',self.nom, lesPossibles)
+        if debug : print ('self.entites', self.entites)
+        self.mcXSD=self.factoriseEtCreeDump(lesPossibles,nomAppel='Root')
+        if debug : print ('self.mcXSD',self.mcXSD)
+        self.texteComplexe += finTypeSubstDsBlocFactorise
+        self.texteComplexe +=self.texteComplexeVenantDesFils
+        #print ('fin pour prepareDumpXSD pour', self.nom)
+
+    def compare(self,autreMC):
+        if self.label != autreMC.label : return False
+        #PN : le bug est la
+        # arbre des possibles identiques mais les types different
+        # comment faire ?
+        #print (self.arbrePossibles)
+        #print (autreMC.arbrePossibles)
+        #if self.arbrePossibles== autreMC.arbrePossibles : return True
+        return False
+
+    def construitEntites(self, laListe):
+        for mc in laListe :
+            if mc.nom in self.entites.keys() : self.entites[mc.nom].append(mc)
+            else : self.entites[mc.nom] = [mc,]
+            if mc.label == 'BLOC' or  mc.label == 'BlocAmbigu':
+                self.ajouteLesMCFilsAEntite(mc)
+
+
+    def ajouteLesMCFilsAEntite(self,blocMc):
+        for mcFilsNom in blocMc.entites.keys():
+            if mcFilsNom == 'Consigne' or mcFilsNom == 'blocConsigne' : continue
+            if mcFilsNom not in self.entites.keys(): self.entites[mcFilsNom]=[]
+            if blocMc.label == 'BlocAmbigu' :
+                for mc in blocMc.entites[mcFilsNom] :
+                    self.entites[mcFilsNom].append(mc)
+                    if mc.label == 'BLOC' or  mc.label == 'BlocAmbigu':
+                        self.ajouteLesMCFilsAEntite(mc)
+            else :
+                self.entites[mcFilsNom].append(blocMc.entites[mcFilsNom])
+                if blocMc.entites[mcFilsNom].label == 'BLOC' or  blocMc.entites[mcFilsNom].label == 'BlocAmbigu':
+                    self.ajouteLesMCFilsAEntite(blocMc.entites[mcFilsNom])
+
+
+
+
+    def constructionArbrePossibles(self, debug = False):
+        if debug : print ('construction pour FACT ambigu _______________', self.nom)
+        toutesLesLignes=[[]]
+        for child in self.mcXSD :
+            if not hasattr(child, 'arbrePossibles') : child.construitArbrePossibles()
+            if child.label != 'BLOC' :
+                toutesLesLignes = deepcopy(self.fusionne2Listes(toutesLesLignes, child.arbrePossibles))
+            else :
+                toutesLesLignes = deepcopy(self.fusionne2Listes(toutesLesLignes, [child.nom, []]))
+
+        lignesAGarder=[]
+        for ligne in toutesLesLignes:
+            blocContenus=[]
+            aAjouter=True
+            for mc in ligne :
+                objMC=self.entites[mc][0]
+                if objMC.label == 'BLOC' :
+                    blocContenus.append(objMC)
+            for b in blocContenus :
+                for frere in blocContenus[blocContenus.index(b)+1:]:
+                    if b.isDisjoint(frere) : continue
+                    aAjouter=False
+                    break
+                if not aAjouter : break
+            if  aAjouter and ligne not in lignesAGarder :
+                lignesAGarder.append(ligne)
+
+        #print ("______________________________________")
+        #for l in lignesAGarder : print (l)
+        #print (len(lignesAGarder))
+        #print ("______________________________________")
+        self.arbrePossibles=[]
+        for ligne in lignesAGarder :
+            #print ('lignesAGarder', ligne)
+            for newLigne in self.deploye(ligne):
+                #print (newLigne)
+                if newLigne not in self.arbrePossibles : self.arbrePossibles.append(newLigne)
+        #for l in self.arbrePossibles : print (l)
+        #print ("______________________________________")
+
+
+    def deploye (self, ligne):
+        toutesLesLignes=[[]]
+        for mc in ligne :
+            #print ( 'mc in deploye', mc)
+            objMC=self.entites[mc][0]
+            #print ( 'nom', objMC.nom, objMC.label)
+            if objMC.label == 'BLOC' or objMC.label == 'BlocAmbigu':
+                toutesLesLignes = deepcopy(self.remplaceListeParContenuEtVide(toutesLesLignes, objMC.arbrePossibles))
+            else :
+                toutesLesLignes = deepcopy(self.adjointUnMot(toutesLesLignes,mc ))
+        return toutesLesLignes
+
+    def construitArbrePossibles(self):
+    # inutile car on a deja l arbre mais appele parfois
+        #print ('dans X_factCompoAmbigu ne fait rien', self.nom, self.arbrePossibles)
+        pass
+
+    def dumpXsd(self, dansFactorisation=False, multiple = False, first=False):
+        # on ne fait rien, tout a ete fait dans le init
+        self.texteElt=substDsSequence.format(self.code,self.nomDuTypePyxb,0,1, self.lesConditions)
+
+    def nomComplet(self) :
+        print ('dans nomComplet pourquoi ?',self, self.nom)
+
+
+    def factoriseEtCreeDump(self, laListe, indent=2 ,nomAppel=None, debug=False):
+        if debug : print ('_______________________________ factoriseEtCreeDump')
+        if debug : print(self.nom, laListe, indent, nomAppel)
+        maListeRetour=[]
+        aReduire={}
+
+        if [] in laListe :
+            declencheChoiceAvecSeqVid=True
+            while [] in laListe : laListe.remove([])
+            #min=0
+        else :
+            declencheChoiceAvecSeqVid=False
+            #min=1
+        
+
+
+        for ligne in laListe :
+            if ligne[0] in aReduire.keys():
+                if len(ligne) == 1 :aReduire[ligne[0]].append([])
+                else : aReduire[ligne[0]].append(ligne[1:])
+            else :
+                if len(ligne) == 1 : aReduire[ligne[0]]=[[]]
+                else : aReduire[ligne[0]]=[ligne[1:],]
+
+
+        if debug : print ('la Liste', laListe, declencheChoiceAvecSeqVid)
+        if debug : print (aReduire)
+        if len(aReduire.keys()) == 1 :
+            if declencheChoiceAvecSeqVid == False :
+                creeChoice=False
+                creeSequence=True
+                self.texteComplexe += '\t'*(indent) +  debSequenceDsBloc; indent=indent+1
+            else :
+                creeChoice=True
+                creeSequence=False
+                # pour regler le souci du 1er Niveau
+                self.texteComplexe += '\t'*indent + debutChoiceDsBloc; indent=indent+1
+                #if min == 1 : self.texteComplexe += '\t'*indent + debutChoiceDsBloc; indent=indent+1
+                #else        : self.texteComplexe += '\t'*indent + debutChoiceDsBlocAvecMin.format(min); indent=indent+1
+        else :
+            #self.texteComplexe += '\t'*indent + debutChoiceDsBlocAvecMin.format(min); indent=indent+1
+            self.texteComplexe += '\t'*indent + debutChoiceDsBloc; indent=indent+1
+            creeChoice=True
+            creeSequence=False
+
+        if debug : print ('creeSequence', creeSequence, aReduire)
+        for nomMC in aReduire.keys():
+            if debug : print (nomMC)
+            listeSuivante=aReduire[nomMC]
+            if creeChoice and  listeSuivante != [[]] :
+                self.texteComplexe += '\t'*(indent) +  debSequenceDsBloc; indent=indent+1
+            self.ajouteAuxTextes(nomMC,indent)
+            if listeSuivante == [[]] : continue # Est-ce toujours vrai ?
+            if len(listeSuivante) == 1 : self.ajouteAuxTextes(listeSuivante[0],indent)
+            else : self.factoriseEtCreeDump(listeSuivante, indent+int(creeSequence),nomMC)
+            if creeChoice   : indent=indent -1 ; self.texteComplexe += '\t'*(indent) + finSequenceDsBloc
+
+        if declencheChoiceAvecSeqVid :
+            self.texteComplexe +=  '\t'*indent +  debSequenceDsBloc
+            self.texteComplexe +=  '\t'*indent + finSequenceDsBloc
+        if creeChoice   : indent=indent -1 ; self.texteComplexe += '\t'*indent + finChoiceDsBloc
+        if creeSequence : indent=indent -1 ; self.texteComplexe += '\t'*(indent) + finSequenceDsBloc
+
+        #if doitFermerSequence : indent=indent-1;self.texteComplexe += '\t'*(indent) + finSequenceDsBloc
+        #print (self.texteSimple)
+        #print ('______',' self.texteComplexe')
+        #print (self.texteComplexe)
+        #print ('_____', 'self.texteComplexeVenantDesFils')
+        #print (self.texteComplexeVenantDesFils)
+        #print ('fin pour _______________________________', self.nom)
+        return (maListeRetour)
+
+
+    def ajouteAuxTextes(self,nomMC,indent,debug=False) :
+        if debug : 
+           print ('______________________________________________________')
+           print ('ajouteAuxTextes', nomMC, self.nom)
+        #  for i in self.entites.keys() : print (self.entites[i][0].nom)
+        if (indent  > 3) : indent = indent - 3
+
+        # PN change le 17 fevrier . Est-ce normal  d arriver la ?
+        # if faut traiter les Blocs exclusifs qui donnent des choices de sequences
+        # mais celles-ci risquent d etre ambigues
+        while (isinstance(nomMC,list)) :
+            nomMC=nomMC[0]
+
+        if nomMC == 'Consigne' or nomMC == 'blocConsigne' : return
+        if debug : print (nomMC, 'dans ajoute vraiment aux textes', self.entites )
+        if len(self.entites[nomMC]) == 1:
+            mc=self.entites[nomMC][0]
+            mc.dumpXsd(dansFactorisation=True)
+            self.texteComplexe += '\t'*(indent) + mc.texteElt
+            if mc.aCreer : self.texteComplexeVenantDesFils += mc.texteComplexe
+            if mc.aCreer : self.texteSimple   += mc.texteSimple
+            if mc.aCreer : mc.aCreer=False
+            return
+
+        leType=type(self.entites[nomMC][0])
+        for e in (self.entites[nomMC][1:]) :
+            if type(e) != leType:
+                print ('Projection XSD impossible, changez un des ', nomMC)
+                exit()
+
+        # cette boucle ne fonctionne que pour des SIMP
+        resteATraiter=copy(self.entites[nomMC])
+        #print ('________resteATraiter', resteATraiter)
+        listePourUnion=[]
+        first=1
+        while resteATraiter != [] :
+            nvlListeATraiter=[]
+            mc=resteATraiter[0]
+            listePourUnion.append(mc)
+            for autre in resteATraiter[1:]:
+                if not (mc.compare(autre)) :  nvlListeATraiter.append(autre)
+            resteATraiter=copy(nvlListeATraiter)
+
+        if len(listePourUnion) == 1:
+            mc=listePourUnion[0]
+            mc.dumpXsd(dansFactorisation=True,multiple=False,first=first)
+            self.texteComplexe += '\t'*(indent) + mc.texteElt
+            if mc.aCreer : self.texteComplexeVenantDesFils += mc.texteComplexe
+            if mc.aCreer : self.texteSimple   += mc.texteSimple
+            for mcIdent in self.entites[nomMC][1:]: mcIdent.metAJourPyxb(mc.nomDuTypePyxb)
+            if mc.aCreer : mc.aCreer=False
+            return
+
+        # on ajoute le nom de l element
+        if not (isinstance(self.entites[nomMC][0], Accas.SIMP)) :
+            sontTousDisjoint=True
+            index=1
+            if debug : print ('on cherche si ils sont disjoints : ',self.entites[nomMC])
+            for mc in self.entites[nomMC] :
+                if debug : print ('compare mc' , mc, ' avec :')
+                for mcFrere in self.entites[nomMC][index:]:
+                    ok = mc.isDisjoint(mcFrere) 
+                    if not ok : 
+                       sontTousDisjoint=False
+                       break
+                if not(sontTousDisjoint) : break 
+                index+=1
+            if not sontTousDisjoint: 
+               print ('2 blocs freres ont le meme nom et ne sont pas disjoints : pas encore traite')
+               print ('Projection XSD impossible, changez un des ', nomMC)
+               exit()
+            self.fusionneDsUnChoix(nomMC,indent)
+            if debug : print ('self.nom', self.nom)
+            if debug : print ('self.texteComplexe' , self.texteComplexe)
+            if debug : print ('self.texteSimple' , self.texteSimple)
+            if debug : print ('self.texteElt' , self.texteElt)
+            if debug : print ('________________________')
+            return
+        
+       
+        if hasattr(self.entites[nomMC][0], 'dejaDumpe') : # on a deja cree le type
+            if debug : print (self.entites[nomMC][0].nomDuTypePyxb, ' deja dumpe')
+        else :
+            if debug : print ('appel de dumpXsd')
+            self.entites[nomMC][0].dejaDumpe=True
+            self.entites[nomMC][0].dumpXsd(dansFactorisation=True,multiple=True,first=first)
+            if debug : print (self.entites[nomMC][0].nomDuTypePyxb)
+
+        texteDocUnion='\n'
+        i=1
+        for mc in self.entites[nomMC]:
+            if mc.ang != ''   : texteDocUnion += str(i) + '- ' + mc.ang + ' or \n'; i=i+1
+            elif mc .fr != '' : texteDocUnion += str(i) + '- ' + mc.fr  + ' ou \n'; i=i+1
+        if texteDocUnion == '\n' :
+            self.texteComplexe += '\t'*(indent) + self.entites[nomMC][0].texteElt
+        else :
+            texteDocUnion = texteDocUnion[0:-4]
+            debutTexteEltUnion = self.entites[nomMC][0].texteElt.split('maxOccurs=')[0]
+            self.texteComplexe += '\t'*(indent)+ reconstitueUnion.format(debutTexteEltUnion,texteDocUnion)
+        if self.entites[nomMC][0].nomDuTypePyxb in self.typesXSDDejaDumpes : return
+        self.typesXSDDejaDumpes.append(self.entites[nomMC][0].nomDuTypePyxb)
+        if debug : print ('et la j ajoute les definitions de type', self.entites[nomMC][0].nomDuTypePyxb)
+
+        nomTypePyxbUnion=self.entites[nomMC][0].nomDuTypePyxb
+        texteSimpleUnion = debutSimpleType.format(nomTypePyxbUnion)
+        texteSimpleUnion += debutUnion
+        texteSimpleUnion += '\t'*(indent)+self.entites[nomMC][0].texteSimplePart2
+        texteSimplePart1  = self.entites[nomMC][0].texteSimplePart1
+        for e in listePourUnion[1:] :
+            e.dumpXsd(dansFactorisation=True,multiple=True,first=False)
+            # si on ext un mc simple la ligne suivante est inutile
+            # en revanche on ajoute le texte a tous les coups
+            #self.texteComplexeVenantDesFils += e.texteComplexe
+            e.metAJourPyxb(nomTypePyxbUnion)
+            texteSimpleUnion += '\t'*(indent) + e.texteSimplePart2
+            texteSimplePart1 += e.texteSimplePart1
+        texteSimpleUnion += finUnion
+        texteSimpleUnion +=fermeSimpleType
+        self.texteSimple += texteSimplePart1 + texteSimpleUnion
+        if debug : 
+           print ('______________')
+           print (self.texteSimple)
+           print ('______________')
+        #print ('self.texteSimple', self.texteSimple)
+
+    def fusionneDsUnChoix(self, nomMC,indent, debug=False):
+        if debug : print ('_________________________________', self.nom, self, nomMC,indent)
+        if debug : print (self.texteComplexe)
+        texteDocUnion='\n'
+        texteComplexe=''
+        texteComplexeVenantDesFils=''
+        texteSimple=''
+        mcRef= self.entites[nomMC][0]
+        # max = 1 : a priori les choix sont exclusifs
+        if (hasattr (mcRef, 'aDejaEteDumpe')) : 
+          if debug : print ("je passe la NORMALEMENT car j ai deja ete dumpe")
+          return
+        leNomDuTypePyxb  = mcRef.definitNomDuTypePyxb(forceACreer=True)
+        if debug : print ('nomMC', nomMC)
+        for mc in self.entites[nomMC]:
+            if debug : print ('------------', mc)
+            # on laisse dansFactorisation a False car ce n est pas comme une fusion de bloc 
+            mc.texteComplexe = ''
+            mc.texteSimple = ''
+            mc.texteElt = ''
+            mc.dumpXsd(dansFactorisationDeFusion=True)
+            if debug : print ('texteSimple\n', mc.texteSimple, '\n fin\n')
+            if debug : print ('texteComplexeVenantDesFils\n',mc.texteComplexeVenantDesFils, '\n fin\n')
+            if debug : print ('texteComplexe\n', mc.texteComplexe, '\n fin\n')
+            if mc.ang != ''   : texteDocUnion += str(i) + '- ' + mc.ang + ' or \n'; i=i+1
+            elif mc .fr != '' : texteDocUnion += str(i) + '- ' + mc.fr  + ' ou \n'; i=i+1
+            texteComplexe += mc.texteComplexe
+            texteComplexeVenantDesFils += mc.texteComplexeVenantDesFils 
+            texteSimple += mc.texteSimple
+
+        if debug : print ('______________________________')
+        if debug : print ('textecomplexeVenantDesFils : \n' ,texteComplexeVenantDesFils )
+        if debug : print ('______________________________')
+        if debug : print ('______________________________')
+        if debug : print ('textecomplexe : \n' ,texteComplexe )
+        if debug : print ('______________________________')
+        self.entites[nomMC][0].aDejaEteDumpe=True 
+
+        self.texteElt = eltCompoDsSequence.format(nomMC, self.nomDuCodeDumpe,mcRef.nomDuTypePyxb,1,1)
+        self.texteDuFact = debutTypeCompo.format(self.entites[nomMC][0].nomDuTypePyxb)
+        self.texteDuFact += debutChoiceDsBloc
+        self.texteDuFact += texteComplexe 
+        self.texteDuFact += finChoiceDsBloc
+        self.texteDuFact += finTypeCompo
+        self.texteSimple += texteSimple
+        self.texteComplexeVenantDesFils   += texteComplexeVenantDesFils
+        self.texteComplexeVenantDesFils   += self.texteDuFact 
+        self.texteComplexe += self.texteElt 
+        if debug : print ('______________________________')
+        if debug : print ('texteSimple : \n' ,self.texteSimple )
+        if debug : print ('______________________________')
+        self.entites[nomMC][0].aDejaEteDumpe=True 
+
+
+
+# ----------------------------------------
+class X_definitionComposee (X_definition):
+# ------------------------------------------
+
+    def creeTexteComplexeVenantDesFils(self,dansFactorisation=False,debug=False):
+        texteComplexeVenantDesFils=""
+        blocsDejaDumpes=set()
+        #for nom in self.ordre_mc:
+        #  mcFils = self.entites[nom]
+        if debug : print ('creeTexteComplexeVenantDesFils', self.nom)
+        if self.nom == 'LeProc' : debug = True
+        for mcFils in self.mcXSD :
+            #print (mcFils,mcFils.nom)
+            if mcFils.nom == 'B1_B2' :debug=True 
+            else : debug=False
+            if not (isinstance(mcFils, Accas.BLOC)) :
+                mcFils.dumpXsd(dansFactorisation)
+                self.texteComplexe += mcFils.texteElt
+                if mcFils.aCreer : self.texteSimple   += mcFils.texteSimple
+                if mcFils.aCreer : texteComplexeVenantDesFils += mcFils.texteComplexe
+            else   :
+                if hasattr(mcFils,'nomXML')  and mcFils.nomXML in blocsDejaDumpes and mcFils.nomXML != None : continue
+                if hasattr(mcFils,'nomXML')  and mcFils.nomXML != None: blocsDejaDumpes.add(mcFils.nomXML)
+                mcFils.dumpXsd(dansFactorisation)
+                self.texteComplexe += mcFils.texteElt
+                if mcFils.aCreer : self.texteSimple   += mcFils.texteSimple
+                if mcFils.aCreer : texteComplexeVenantDesFils += mcFils.texteComplexe
+        return texteComplexeVenantDesFils
+
+    def dumpXsd(self, dansFactorisation=False, dansFactorisationDeFusion = False, multiple = False, first=True, debug=False):
+        if PourTraduction  : print (self.nom)
+        # le prepareDump est appele sur les fils
+        if not (self.dejaPrepareDump) : self.prepareDumpXSD()
+
+        self.getNomDuCodeDumpe()
+        if first :
+            if multiple : self.nomDuTypePyxb  = self.definitNomDuTypePyxb(forceACreer=True)
+            else        : self.nomDuTypePyxb  = self.definitNomDuTypePyxb()
+        self.texteSimple    = "" # on n ajoute pas de type simple
+
+        self.traduitMinMax()
+        # pour accepter les PROC et ...
+        #
+        if debug : print ('dumpXsd', self.nom, self.aCreer)
+        if self.aCreer or dansFactorisationDeFusion:
+            if not dansFactorisationDeFusion : self.texteComplexe = debutTypeCompo.format(self.nomDuTypePyxb)
+            if isinstance(self,X_OPER) or isinstance(self,X_PROC) :
+                self.texteComplexe += debutTypeCompoEtape.format(self.code)
+            self.texteComplexe += debutTypeCompoSeq
+            texteComplexeVenantDesFils= self.creeTexteComplexeVenantDesFils(dansFactorisation)
+            if not dansFactorisationDeFusion : 
+               self.texteComplexe  = texteComplexeVenantDesFils + self.texteComplexe
+               self.texteComplexeVenantDesFils  = ''
+            else : 
+               self.texteComplexeVenantDesFils  = texteComplexeVenantDesFils 
+            # la fin de l oper est traitee dans le dumpXSD de X_OPER
+            if not isinstance(self,X_OPER ) : self.texteComplexe += finTypeCompoSeq
+            if isinstance(self,X_PROC)      : self.texteComplexe += finTypeCompoEtape
+            if not isinstance(self,X_OPER ) and not dansFactorisationDeFusion: self.texteComplexe += finTypeCompo
+        else :
+            self.texteComplexe = ""
+
+        if self.ang != "" : self.texteElt=eltCompoDsSequenceWithHelp.format(self.nom,self.nomDuCodeDumpe,self.nomDuTypePyxb,self.minOccurs,self.maxOccurs, self.ang)
+        elif self.fr != ""  : self.texteElt=eltCompoDsSequenceWithHelp.format(self.nom,self.nomDuCodeDumpe,self.nomDuTypePyxb,self.minOccurs,self.maxOccurs, self.fr)
+        else : self.texteElt=eltCompoDsSequence.format(self.nom,self.nomDuCodeDumpe,self.nomDuTypePyxb,self.minOccurs,self.maxOccurs)
+        #print ('------------------------------------------------',self.nom)
+        #print (self.texteComplexe)
+
+    def traduitMinMax(self):
+    # ______________________
+    # valable pour PROC et OPER
+        self.minOccurs = 0
+        self.maxOccurs = 1
+
+    def compare(self,autreMC):
+        if self.label != autreMC.label : return False
+        if hasattr(self,'nomXML') and hasattr(autreMC,'nomXML') and self.nomXML==autreMC.nomXML and self.nomXML != None : return True
+        for attr in (  'regles', 'fr',  'defaut', 'min' ,'max', 'position' , 'docu' ) :
+            val1=getattr(self,attr)
+            val2=getattr(autreMC,attr)
+            if val1 != val2 : return False
+        if len(self.entites) != len(autreMC.entites) : return False
+        for defFille in self.entites.keys():
+            if defFille not in autreMC.entites.keys() : return False
+            if not self.entites[defFille].compare(autreMC.entites[defFille]) : return False
+        return True
+
+    def prepareDumpXSD(self):
+        self.dejaPrepareDump=True
+        self.inUnion=False
+        self.tousLesFils=[]
+        self.mcXSD=[]
+        for nomMC in self.ordre_mc:
+            mc=self.entites[nomMC]
+            self.mcXSD.append(mc)
+            mc.prepareDumpXSD()
+        self.chercheListesDeBlocsNonDisjoints()
+        for l in list(self.listeDesBlocsNonDisjoints) :
+            if not(self.besoinDeFactoriserTrivial(l)) : self.listeDesBlocsNonDisjoints.remove(l)
+            else : self.factorise(l)
+
+    def chercheListesDeBlocsNonDisjoints(self):
+        self.listeDesBlocsNonDisjoints=[]
+        for nomChild in self.ordre_mc :
+            child=self.entites[nomChild]
+            if child.label != 'BLOC' : continue
+            if self.listeDesBlocsNonDisjoints == [] :
+                self.listeDesBlocsNonDisjoints.append([child])
+                continue
+            vraimentIndependant=True
+            for liste in list(self.listeDesBlocsNonDisjoints):
+                independant=True
+                for bloc in liste :
+                    if bloc.isDisjoint(child)   : continue
+                    if bloc.estLeMemeQue(child) : continue
+                    independant=False
+                    vraimentIndependant=False
+                if not (independant) :
+                    liste.append(child)
+            if vraimentIndependant:
+                self.listeDesBlocsNonDisjoints.append([child])
+        # on nettoye la liste des blocs tous seuls
+        for l in list(self.listeDesBlocsNonDisjoints) :
+            if len(l) ==1 : self.listeDesBlocsNonDisjoints.remove(l)
+
+    def estLeMemeQue(self,autreMC):
+        if hasattr(self,'nomXML') and hasattr(autreMC,'nomXML') and self.nomXML==autreMC.nomXML and self.nomXML != None: return True
+        return False
+
+    def aUnPremierCommunDansLesPossibles(self, laListe) :
+     # fonctionne avec liste de mc ou une liste(mc,index)
+        import types
+        mesPremiers=set()
+        for elt,index in laListe :
+            if not type(e) == types.ListType :
+                if elt.nom in mesPremiers : return True
+                mesPremiers.add(elt.nom)
+            else :
+                if elt[0].nom in mesPremiers : return True
+                mesPremiers.add(elt[0].nom)
+        return False
+
+    def besoinDeFactoriserTrivial(self,laListe):
+        # tout faux
+        # a revoir
+        return True
+        besoin=False
+        lesPremiers=set()
+        for mcBloc in laListe  :
+            mc=mcBloc.mcXSD[0]
+            if mc.label == 'BLOC'    : return True
+            if not(mc.statut=='o')   : return True
+            if mc.nom in lesPremiers : return True
+            lesPremiers.add(mc.nom)
+        return False
+
+    def factorise(self,liste,debug=False):
+        self.listeConstruction=liste
+        nomDebut=liste[0].nom
+        indexDebut=self.mcXSD.index(liste[0])
+        nomFin=liste[-1].nom
+        indexFin=self.mcXSD.index(liste[-1]) + 1
+        nom=nomDebut+'_'+nomFin
+        if debug : print ('___________ dans factorise', nom)
+        listeAFactoriser=[]
+        for  i in range(indexDebut, indexFin) :
+            listeAFactoriser.append(self.mcXSD[i])
+
+        newListe=self.mcXSD[0:indexDebut]
+
+        monEltFacteur=X_compoFactoriseAmbigu(nom,listeAFactoriser,self)
+        newListe.append(monEltFacteur)
+        newListe=newListe+self.mcXSD[indexFin:]
+        self.mcXSD=newListe
+        if debug :print ('___________ fin fin factorise', nom)
+
+    def construitTousLesFils(self):
+        for nomChild in self.ordre_mc :
+            if nomChild == 'Consigne' or nomChild == 'blocConsigne' : continue
+            child=self.entites[nomChild]
+            if child.label != 'BLOC' :
+                self.tousLesFils.append(child.nom)
+            else:
+                if child.tousLesFils == [] : child.construitTousLesFils()
+                for nomPetitFils in child.tousLesFils : self.tousLesFils.append(nomPetitFils)
+        #print ('construitArbreEntier pour ', self.nom, self.tousLesFils)
+
+
+    def isDisjoint(self, mc1) :
+        if self.tousLesFils == [] : self.construitTousLesFils()
+        if not (hasattr(mc1, 'tousLesFils')) : mc1.tousLesFils  = []
+        if mc1.tousLesFils  == []  : mc1.construitTousLesFils()
+        for fils in mc1.tousLesFils :
+            if fils in  self.tousLesFils : return False
+        return True
+
+
+
 
 # ---------------------------------
 class X_FACT (X_definitionComposee):
 #--------- ------------------------
-   def traduitMinMax(self):
-       if self.max     == '**' or self.max  == float('inf') : self.maxOccurs="unbounded"
-       else :                                                 self.maxOccurs = self.max
-       self.minOccurs = self.min
-       if self.statut =='f' : self.minOccurs=0
+#Un FACT avec max=** doit se projeter en XSD sous forme d'une sequence a cardinalite 1 et
+# l'element qui porte la repetition du FACT
+    def traduitMinMax(self):
+        if self.max     == '**' or self.max  == float('inf') : self.maxOccurs="unbounded"
+        else :                                                 self.maxOccurs = self.max
+        self.minOccurs = self.min
+        if self.statut =='f' : self.minOccurs=0
+        if self.statut =='o'  and self.min < 2: self.minOccurs=1
+
+    def construitArbrePossibles(self):
+        if self.statut   ==  'f' :
+            self.arbrePossibles = (self.nom,[])
+            self.arbreMCPossibles = (self,None)
+        else :
+            self.arbrePossibles = (self.nom,)
+            self.arbreMCPossibles = (self,)
+        #print ('XFACT arbre des possibles de ' ,self.nom, self.arbrePossibles)
+
+
 
 # ---------------------------------
 class X_OPER (X_definitionComposee):
 # ---------------------------------
-    pass
+    def dumpXsd(self, dansFactorisation=False, multiple = False, first=False):
+        X_definitionComposee.dumpXsd(self,dansFactorisation)
+        self.texteComplexe += finTypeCompoSeq
+        self.texteComplexe += attributeNameName
+        self.texteComplexe += attributeTypeForASSD
+        self.texteComplexe += attributeTypeUtilisateurName.format(self.sd_prod.__name__)
+        self.texteComplexe += finTypeCompoEtape
+        self.texteComplexe += finTypeCompo
+
+
+        cata = CONTEXT.getCurrentCata()
+        if self.sd_prod.__name__ not in list(cata.dictTypesASSDorUserASSDCrees) :
+            cata.dictTypesASSDorUserASSDCrees[self.sd_prod.__name__]=[self,]
+        else :
+            cata.dictTypesASSDorUserASSDCrees[self.sd_prod.__name__].append(self)
+
 
 # ----------------------------------
 class X_PROC (X_definitionComposee):
@@ -154,128 +832,655 @@ class X_PROC (X_definitionComposee):
 #-----------------------------------
 class X_BLOC (X_definitionComposee):
 #-----------------------------------
-   def dumpXsd(self):
-       #print ('------------------------------------------------')
-       #print ('dumpXsd de ' , self.nom)
-       self.getCode()
-       self.nomDuTypePyxb  = self.definitNomDuTypePyxb()
-       self.texteSimple    = "" # on n ajoute pas de type simple
-
-       # Pour les blocs le minOccurs vaut 0 et le max 1
-       if self.aCreer :
-          self.texteComplexe = debutTypeSubst.format(self.nomDuTypePyxb)
-          texteComplexeVenantDesFils=self.CreeTexteComplexeVenantDesFils()
-          self.texteComplexe  = texteComplexeVenantDesFils + self.texteComplexe
-          self.texteComplexe += finTypeSubst
-       else :
-          self.texteComplexe = ""
-
-       self.texteElt=substDsSequence.format(self.code,self.nomDuTypePyxb,0,1)
-
-       #print ('------------------------------------------------')
-
-   def compare(self,autreMC):
-       if self.label != autreMC.label : return False
-       for attr in ( 'condition', 'regles', ):
-           val1=getattr(self,attr)
-           val2=getattr(autreMC,attr)
-           if val1 != val2 : return False
-       for defFille in self.entites.keys():
-           if defFille not in autreMC.entites.keys() : return False
-           if not self.entites[defFille].compare(autreMC.entites[defFille]) : return False
-       return True
+    def dumpXsd(self, dansFactorisation=False, multiple = False, first=False, debug = False):
+        if debug : print ('X_BLOC dumpXsd', self.nom)
+        self.tousLesFils=[]
+        if self.nom == 'blocConsigne' :
+            self.texteComplexe = ""
+            self.texteSimple   = ""
+            self.nomDuTypePyxb = "NonTraiteConsigne"
+            self.texteSimpleVenantDesFils = ""
+            self.aCreer = False
+            self.texteElt = ""
+
+            return
+        self.getNomDuCodeDumpe()
+        # dans ce cas les blocs successifs sont identiques et on ne dumpe que le 1er
+
+        self.nomDuTypePyxb  = self.definitNomDuTypePyxb()
+        self.texteSimple    = "" # on n ajoute pas de type simple
+
+        # Pour les blocs le minOccurs vaut 0 et le max 1
+        if self.aCreer :
+            self.texteComplexe = debutTypeSubst.format(self.nomDuTypePyxb)
+            texteComplexeVenantDesFils=self.creeTexteComplexeVenantDesFils(dansFactorisation)
+            self.texteComplexe  = texteComplexeVenantDesFils + self.texteComplexe
+            self.texteComplexe += finTypeSubst
+
+        else :
+            self.texteComplexe = ""
+
+        self.texteElt=substDsSequence.format(self.code,self.nomDuTypePyxb,0,1,'condition : ' +self.condition)
+
+        #print ('------------------------------------------------')
+
+    def compare(self,autreMC):
+        if self.label != autreMC.label : return False
+        if self.inUnion == True or autreMC.inUnion == True : return False
+        if hasattr(self,'nomXML') and hasattr(autreMC,'nomXML') and self.nomXML==autreMC.nomXML and self.nomXML != None : return True
+        for attr in ( 'condition', 'regles', ):
+            val1=getattr(self,attr)
+            val2=getattr(autreMC,attr)
+            if val1 != val2 : return False
+        if len(self.entites) != len(autreMC.entites) : return False
+        for defFille in self.entites.keys():
+            if defFille not in autreMC.entites.keys() : return False
+            if not self.entites[defFille].compare(autreMC.entites[defFille]) : return False
+        return True
+
+    def construitArbrePossibles(self):
+        self.arbrePossibles=[[],]
+        #print ('X_BLOC je construis l arbre des possibles pour ', self.nom)
+        for child in self.mcXSD :
+            if not hasattr(child, 'arbrePossibles') : child.construitArbrePossibles()
+            #print (child.nom, child.label, child.arbrePossibles)
+            if child.label == 'BLOC' :
+                self.arbrePossibles = deepcopy(self.remplaceListeParContenuEtVide(self.arbrePossibles, child.arbrePossibles))
+            elif child.label == 'BlocAmbigu':
+                #print ("je passe par la pour", self.nom, child.nom, self.arbrePossibles, child.arbrePossibles)
+                self.arbrePossibles = deepcopy(self.remplaceListeParContenuEtVide(self.arbrePossibles, child.arbrePossibles))
+                #print ('resultat', self.arbrePossibles)
+            else :
+                self.arbrePossibles = deepcopy(self.adjoint(self.arbrePossibles, child.arbrePossibles))
+        self.arbrePossibles.append([]) # un bloc n est pas obligatoire
+        #print ('arbre des possibles de ' ,self.nom, self.arbrePossibles)
 
 
 #--------------------------------
 class X_SIMP (X_definition):
 #--------------------------------
-   def dumpXsd(self):
-       #print ('exploreObjet SIMP')
-       self.getCode()
-       self.aCreer = True
-
-       #  --> homonymie on peut utiliser genealogie
-       #self.traduitMinMax()
-       #self.traduitValMinValMax()
-       self.nomDuTypeDeBase = self.traduitType()
-       self.nomDuTypePyxb   = self.definitNomDuTypePyxb()
-       if self.aCreer == True :
-         if self.into != None:
-           self.texteSimple   =  debutTypeSimpleWithInto.format (self.nomDuTypePyxb, self.nomDuTypeDeBase)
-           for val in self.into :
-               self.texteSimple += typeSimpleWithInto.format(val)
-           self.texteSimple  += finTypeSimpleWithInto
-         else :
-           self.texteSimple     = typeSimple.format(self.nomDuTypePyxb, self.nomDuTypeDeBase)
-       else :
-         # le type existe deja
-         self.texteSimple=""
-       self.texteComplexe   = ""
-
-       # on se sert des listes si maxOccurs est > 0
-       # a gerer dans le dump
-       if self.statut =='f' : minOccurs = 0
-       else :                minOccurs = 1
-       self.texteElt = eltDsSequence.format(self.nom,self.code,self.nomDuTypePyxb,minOccurs,1)
-
-   def traduitType(self):
-       # il faut traduire le min et le max
-       # il faut ajouter les regles
-       # il faut gerer les types tuple et fichier
-
-       if hasattr(self.type[0], 'label') and self.type[0].label == "Tuple"  : return ('XXXXXXXX')
-       return dictNomsDesTypes[self.type[0]]
+    def dumpXsd(self, dansFactorisation=False, multiple=False, first=False, debug=False):
+        #debug = True
+        #if PourTraduction  : print (self.nom)
+        if debug : print ('X_SIMP dumpXsd pour', self.nom, '___________________________')
+        self.prepareDumpXSD()
+        # si inUnion la comparaison est fausse : on cree le nomDuType
+        if multiple : self.inUnion=True
+        #print ('exploreObjet SIMP')
+        self.getNomDuCodeDumpe()
+        self.aCreer = True
+        self.texteComplexe = ""
+        self.texteSimple   = ""
+        self.texteElt      = ""
+        if self.nom =='Consigne' : return
+
+        #  --> homonymie on peut utiliser genealogie ?
+        self.nomDuTypeDeBase = self.traduitType()
+        if debug : print ('nomDuTypeDeBase', self.nomDuTypeDeBase)
+        if debug : print ('multiple', multiple, 'first', first)
+        if not multiple :
+            self.nomDuTypePyxb   = self.definitNomDuTypePyxb()
+        else :
+            if first :
+                # on force la creation
+                self.nomDuTypePyxb   = self.definitNomDuTypePyxb()
+                self.aCreer = True
+            else :
+                self.nomDuTypePyxb='NonDetermine'
+
+        if debug : print ('nomDuTypePyxb', self.nomDuTypePyxb)
+        if debug : print ('aCreer', self.aCreer)
+
+
+        # on se sert des listes ou non pour  la gestion des minOccurs /maxOccurs est > 0
+        if self.statut =='f' : minOccurs = 0
+        else                 : minOccurs = 1
+        if dansFactorisation : minOccurs = 1
+
+        if self.suisUneMatrice :
+           self.dumpSpecifiqueMatrice(minOccurs)
+           return
+
+        if self.suisUnTuple :
+           self.dumpSpecifiqueTuple(minOccurs)
+           return
+
+        if self.avecBlancs and self.max > 1 :
+           #print ('je suis avec blanc pour ', self.nom)
+           self.dumpSpecifiqueTexteAvecBlancs(minOccurs,multiple)
+           return
+
+        #print ('minOccurs',minOccurs)
+        # le defaut est dans l elt Name -> tester la coherence d existence avec Accas
+        # regles Accas
+
+        # pas d elt si on est dans multiple
+        # sauf si on est le '1er'  dans un element ambigu
+        if not multiple :
+            #print ('je passe la pas multiple')
+            texteAide = ""
+            if self.ang != '' : texteAide = self.ang
+            else : texteAide = self.fr
+            if self.intoXML and self.into :
+               if self.intoXML != self.into :
+                  #print ('je passe la pour ', self.nom)
+                  texteAide :texteAide =  texteAide+'\nPossible choices for '+ self.nom + 'at this place : \n'+str(self.into)+'\n'
+
+            if self.defaut :
+               if self.max > 1 or self.max == '**' or self.max ==  float('inf') : 
+                    txtDefaut=""
+                    for val in self.defaut : txtDefaut+=str(val) + " " 
+                    # cela ne fonctionne pas tres bien. a revoir
+                    txtDefaut+=txtDefaut[0:-1]
+                    if not('TXM' in (self.type)) : 
+                        # a revoir pour les tuples avec defaut
+                        if texteAide != ''  : self.texteElt = eltDsSequenceWithDefautAndHelp.format(self.nom,self.code,self.nomDuTypePyxb,minOccurs,1,txtDefaut,texteAide)
+                        else : self.texteElt = eltDsSequenceWithDefaut.format(self.nom,self.code,self.nomDuTypePyxb,minOccurs,1,txtDefaut)
+                    else :
+                        texteAide +=  texteAide+'\ndefault Value in MDM : \n'+txtDefaut
+                        self.texteElt = eltDsSequenceWithHelp.format(self.nom,self.code,self.nomDuTypePyxb,minOccurs,1,texteAide)
+               else :
+                    if str(self.defaut)   == 'True'  : txtDefaut = 'true'
+                    elif str(self.defaut) == 'False' : txtDefaut = 'false'
+                    else : txtDefaut = str(self.defaut)
+                    if texteAide != ''  : self.texteElt = eltDsSequenceWithDefautAndHelp.format(self.nom,self.code,self.nomDuTypePyxb,minOccurs,1,txtDefaut,texteAide)
+                    else : self.texteElt = eltDsSequenceWithDefaut.format(self.nom,self.code,self.nomDuTypePyxb,minOccurs,1,txtDefaut)
+            else :
+               if texteAide  != '' : self.texteElt = eltDsSequenceWithHelp.format(self.nom,self.code,self.nomDuTypePyxb,minOccurs,1,texteAide)
+               else : self.texteElt = eltDsSequence.format(self.nom,self.code,self.nomDuTypePyxb,minOccurs,1)
+        elif first:
+            # l'aide est geree a la fusion 
+            self.texteElt = eltDsSequence.format(self.nom,self.code,self.nomDuTypePyxb,1,1)
+
+        # self.aCreer est mis a jour ds definitNomDuTypePyxb
+        # ou si elt est le 1er d une liste identique
+        if debug : print ('je suis aCreer', self.aCreer)
+        if not self.aCreer : return
+
+        typeATraduire=self.type[0]
+
+        self.texteSimplePart1=""
+        if not(isinstance(typeATraduire,str)) and not(isinstance(typeATraduire,Accas.Tuple)) and issubclass(typeATraduire, Accas.UserASSD) :
+            cata = CONTEXT.getCurrentCata()
+            if len(self.type) == 2 and self.type[1]=='createObject' : suffixe = 'C'
+            else : suffixe = 'U' 
+            #print (cata.listeUserASSDDumpes)
+            #print (typeATraduire.__name__)
+            #print (typeATraduire.__name__ in cata.listeUserASSDDumpes)
+            if typeATraduire.__name__  not in cata.listeUserASSDDumpes :
+                cata.listeUserASSDDumpes.add(typeATraduire.__name__)
+                if issubclass(typeATraduire, Accas.UserASSDMultiple) : 
+                   self.texteSimplePart1 = defUserASSDMultiple.format(typeATraduire.__name__)
+                   if cata.definitUserASSDMultiple == False  :
+                      cata.definitUserASSDMultiple = True
+                      cata.texteSimple = cata.texteSimple + defBaseXSDUserASSDMultiple
+                else :
+                   self.texteSimplePart1 = defUserASSD.format(typeATraduire.__name__)
+                   if cata.definitUserASSD == False  :
+                      cata.definitUserASSD = True
+                      cata.texteSimple = cata.texteSimple + defBaseXSDUserASSD
+            if typeATraduire.__name__+'_'+suffixe not in cata.listeUserASSDDumpes :
+                cata.texteSimple = cata.texteSimple + defUserASSDOrUserASSDMultiple.format(typeATraduire.__name__, suffixe,typeATraduire.__name__)
+                cata.listeUserASSDDumpes.add(typeATraduire.__name__+'_'+suffixe)
+
+
+        if not multiple : self.texteSimple  += debutSimpleType.format(self.nomDuTypePyxb)
+        else : self.texteSimple  += debutSimpleTypeSsNom
+        # On est dans une liste
+        if self.max > 1 or self.max == '**' or self.max ==  float('inf') or  hasattr(self.type[0], 'ntuple') :
+            self.texteSimple  += debutTypeSimpleListe
+            self.texteSimple  += "\t\t\t\t"+debutRestrictionBase.format(self.nomDuTypeDeBase)
+            if self.val_min != float('-inf')  : self.texteSimple += "\t\t\t\t"+minInclusiveBorne.format(self.val_min)
+            if self.val_max != float('inf') and self.val_max != '**' : self.texteSimple +="\t\t\t\t"+ maxInclusiveBorne.format(self.val_max)
+            if self.into != None:
+                # PN --> traduction des into
+                into=self.into
+                if self.intoXML != None : into = self.intoXML
+                for val in into : self.texteSimple += "\t\t\t\t"+enumeration.format(val)
+                if PourTraduction  :
+                    for val in into : print (str(val))
+            self.texteSimple  += fermeBalisesMileu
+            if  self.max !=1 and self.max != '**' and self.max !=  float('inf') : self.texteSimple  += maxLengthTypeSimple.format(self.max)
+            if  self.min !=1 and self.min !=  float('-inf') : self.texteSimple  += minLengthTypeSimple.format(self.min)
+            self.texteSimple  += fermeRestrictionBase
+        else :
+        # ou pas
+            self.texteSimple  += debutRestrictionBase.format(self.nomDuTypeDeBase)
+            if self.val_min != float('-inf')  : self.texteSimple += minInclusiveBorne.format(self.val_min)
+            if self.val_max != float('inf') and self.val_max != '**' : self.texteSimple += maxInclusiveBorne.format(self.val_max)
+            if self.into != None:
+                into=self.into
+                if self.intoXML != None : into = self.intoXML
+                for val in into : self.texteSimple += enumeration.format(val)
+                if PourTraduction  :
+                    for val in into : print (str(val))
+            self.texteSimple  += fermeRestrictionBase
+        self.texteSimple  += fermeSimpleType
+        self.texteSimplePart2 = self.texteSimple
+        self.texteSimple = self.texteSimplePart1 + self.texteSimplePart2
+
+
+    def dumpSpecifiqueTexteAvecBlancs(self,minOccurs,multiple):
+        # attention multiple non traite
+        # pour l instant on n a pas max =1 et on ne traite pas les into
+
+        texteAide = ""
+        if  self.ang != '' : texteAide = self.ang
+        elif self.fr != '' : texteAide = self.fr
+
+        self.texteElt = eltDsSequenceWithHelp.format(self.nom,self.code,self.nomDuTypePyxb,minOccurs,1,texteAide)
+        txtDefaut=""
+        # Pas de Defaut pour les string en XSD
+        # max sert pour la taille de la liste
+        if self.defaut : texteAide += ' Valeur par defaut dans le comm : '+str(self.defaut)
+        if texteAide != ''  : self.texteElt = eltDsSequenceWithHelp.format(self.nom,self.code,self.nomDuTypePyxb,minOccurs,1,texteAide)
+        else : self.texteElt = eltDsSequence.format(self.nom,self.code,self.nomDuTypePyxb,minOccurs,1)
+         
+        
+        if self.max == '**' or self.max ==  float('inf') : max='unbounded'
+        else  : max = self.max
   
-   def traduitValMinValMax(self):
-       self.maxInclusive=self.val_max
-       self.minInclusive=self.val_min
-       if self.val_min == float('-inf') and val_max== float('inf') : return
-       print ('il faut affiner le type du SIMP ', self.nom)
-       if self.val_max == '**' or self.val_max == float('inf') : self.maxInclusive=None
-       else : self.maxInclusive = self.val_max
-       if self.val_min == '**' or self.val_max == float('-inf') : self.maxInclusive=None
-       else : self.minInclusive = self.val_min
-       
-   def traduitMinMax(self):
-       if self.min == 1 and self.max == 1 :  return
-       print ('il faut creer une liste ' , self.nom)
-   def compare(self,autreMC):
-       if self.label != autreMC.label : return False
-       for attr in ( 'type', 'ang', 'fr', 'into', 'intoSug' , 'siValide', 'defaut', 'min' ,'max' ,'homo' ,'position' ,'val_min' , 'val_max' , 'docu' , 'validators' , 'sug' ) :
-           val1=getattr(self,attr)
-           val2=getattr(autreMC,attr)
-           if val1 != val2 : return False
-       return True
+        if self.max > 1 : # juste au cas ou on traite 1 pareil
+            self.texteSimple = ''
+            cata = CONTEXT.getCurrentCata()
+            if self.nomDuTypePyxb in cata.listeTypeTXMAvecBlancs: return
+            cata.listeTypeTXMAvecBlancs.add(self.nomDuTypePyxb)
+            self.texteSimple = complexChaineAvecBlancs.format(self.nomDuTypePyxb,max,self.nomDuTypePyxb)
+            if self.intoXML != None : into = self.intoXML
+            else : into = self.into
+            if into  == None :
+               self.texteSimple += typeEltChaineAvecBlancSansInto.format(self.nomDuTypePyxb)
+            else : 
+               self.texteSimple += debutChaineAvecBlancsInto.format(self.nomDuTypePyxb)
+               for val in into : self.texteSimple += milieuChaineAvecBlancsInto.format(val)
+               self.texteSimple += finChaineAvecBlancsInto
+           
+        
+    def dumpSpecifiqueTuple(self,minOccurs):
+        self.nomDuTypeDeBase = self.traduitType()
+        tousPareil=True
+        # il faut gerer l aide et les defaut
+        if self.defaut : print ('il faut tester le defaut')
+        if self.max == '**' or self.max ==  float('inf') : max='unbounded'
+        else  : max = self.max
+        self.texteElt = tupleNonHomogeneElt.format(self.nom,self.code,self.nomDuTypePyxb,minOccurs,max)
+        leType=self.nomDuTypeDeBase[0]
+        for leTypeComp in self.nomDuTypeDeBase[1:] :
+            if leTypeComp != leType : 
+                tousPareil = False
+                break;
+        #if tousPareil :
+        #PN PN a statuer
+        #    self.texteSimple  += debutSimpleType.format(self.nomDuTypePyxb)
+        #    self.texteSimple  += debutTypeSimpleListe
+        #    self.texteSimple  += "\t\t\t\t"+debutRestrictionBase.format(leType)
+        #    if self.val_min != float('-inf')  : self.texteSimple += "\t\t\t\t"+minInclusiveBorne.format(self.val_min)
+        #    if self.val_max != float('inf') and self.val_max != '**' : self.texteSimple +="\t\t\t\t"+ maxInclusiveBorne.format(self.val_max)
+        #    if self.into != None:
+        #        into=self.into
+        #        if self.intoXML != None : into = self.intoXML
+        #        for val in into : self.texteSimple += "\t\t\t\t"+enumeration.format(val)
+        #        if PourTraduction  : 
+        #            for val in into : print (str(val))
+        #    self.texteSimple  += fermeBalisesMileu
+        #    if self.max !=1 and self.max != '**' and self.max !=  float('inf') : self.texteSimple  += maxLengthTypeSimple.format(self.max)
+        #    if self.min !=1 and self.min !=  float('-inf') : self.texteSimple  += minLengthTypeSimple.format(self.min)
+        #    self.texteSimple  += fermeSimpleType
+        #    return
+
+        self.texteSimple = ''
+        complexeTypeTuple = tupleDebutComplexeType.format(self.nomDuTypePyxb)
+        num = 1
+        for leType in self.nomDuTypeDeBase :
+            self.texteSimple  += tupleNonHomogeneSimpleType.format(self.nomDuTypePyxb,str(num),leType)
+            complexeTypeTuple += tupleMilieuComplexeType.format(str(num),self.nomDuTypePyxb,str(num))
+            num = num + 1
+        complexeTypeTuple += tupleFinComplexeType
+        self.texteSimple  += complexeTypeTuple
+              
+
+    def dumpSpecifiqueMatrice(self,minOccurs):
+    # if faut traiter le defaut
+        typeDeMatrice =self.type[0]
+
+        self.texteSimple  += debutSimpleType.format(self.nomDuTypePyxb+'_element')
+        self.texteSimple  += debutRestrictionBase.format(self.nomDuTypeDeBase)
+        if typeDeMatrice.typEltInto != None:
+            for val in typeDeMatrice.typEltInto : self.texteSimple += enumeration.format(val)
+        self.texteSimple  += fermeRestrictionBase
+        self.texteSimple += fermeSimpleType
+        nom=self.nomDuTypePyxb
+        nbCols=typeDeMatrice.nbCols
+        nbLigs=typeDeMatrice.nbCols
+        self.texteSimple += matriceSimpleType.format(nom,nom,nbCols,nom,self.code,nom,nbLigs,nbLigs,nom,self.code,nom,self.min,self.max)
+        self.texteElt = eltMatrice.format(self.nom,self.code,self.nomDuTypePyxb,minOccurs,1)
+
+        
+    def prepareDumpXSD(self):
+        self.inUnion=False
+        if self.statut   ==  'f' : self.arbrePossibles = (self.nom,[])
+        else                     : self.arbrePossibles = (self.nom,)
+        self.mcXSD=[]
+
+
+
+    def traduitType(self,debug=False):
+        # il faut traduire le min et le max
+        # il faut ajouter les regles
+        # il faut gerer les types tuple et fichier
+        # on ne paut pas tester le type qui depend du cataloge
+        if hasattr(self.type[0], 'typElt') : 
+            #print ('je suis une Matrice de ' ,dictNomsDesTypes[self.type[0].typElt]) 
+            self.suisUneMatrice = True
+            # on presume que le type de l elt est un ASSD
+            if self.type[0].typElt not in dictNomsDesTypes.keys(): return 'xs:string'
+            return dictNomsDesTypes[self.type[0].typElt] 
+        else :
+            self.suisUneMatrice = False
+        if hasattr(self.type[0], 'ntuple') :
+            self.suisUnTuple = True
+            # Pour l instant pas de into dans les tuples non homogenes et pas de reference
+            # sinon, il faudra faire un for sur la suite avec les createObjet
+            leType=self.validators.typeDesTuples[0]
+            enRetour=[]
+            for i in range(self.type[0].ntuple):
+                enRetour.append(dictNomsDesTypes[self.validators.typeDesTuples[i]])
+            return enRetour
+            #typeATraduire=leType
+        else :
+            self.suisUnTuple = False
+            typeATraduire=self.type[0]
+        if not (typeATraduire in list(dictNomsDesTypes.keys())) :
+            #if (isinstance(typeATraduire, Accas.ASSD) or issubclass(typeATraduire, Accas.ASSD)) :
+            if (not(isinstance(typeATraduire,str)) and issubclass(typeATraduire, Accas.ASSD)) :
+            # cas d une creation
+                cata = CONTEXT.getCurrentCata()
+                # PNPNPN a Revoir pour la creation des keyrefs
+                if len(self.type) == 2 and self.type[1]=='createObject' :
+                    if typeATraduire.__name__ not in list(cata.dictTypesASSDorUserASSDCrees) :
+                        cata.dictTypesASSDorUserASSDCrees[typeATraduire.__name__]=[self,]
+                    else :
+                        cata.dictTypesASSDorUserASSDCrees[typeATraduire.__name__].append(self)
+                    if issubclass(typeATraduire, Accas.UserASSD) : return typeATraduire.__name__+'_C'
+                    else : return  'xs:string'
+
+                # cas d une consommation
+                if typeATraduire not in list(cata.dictTypesASSDorUserASSDUtilises) :
+                    cata.dictTypesASSDorUserASSDUtilises[typeATraduire]=[self,]
+                else :
+                    cata.dictTypesASSDorUserASSDUtilises[typeATraduire].append(self,)
+                if issubclass(typeATraduire, Accas.UserASSD) : return typeATraduire.__name__+'_U'
+                else : return  'xs:string'
+            else : return ('YYYYY')
+        return dictNomsDesTypes[typeATraduire]
+
+    def traduitValMinValMax(self):
+        self.maxInclusive=self.val_max
+        self.minInclusive=self.val_min
+        if self.val_min == float('-inf') and val_max== float('inf') : return
+        #print ('il faut affiner le type du SIMP ', self.nom)
+        if self.val_max == '**' or self.val_max == float('inf') : self.maxInclusive=None
+        else : self.maxInclusive = self.val_max
+        if self.val_min == '**' or self.val_max == float('-inf') : self.maxInclusive=None
+        else : self.minInclusive = self.val_min
+
+    def traduitMinMax(self):
+        if self.min == 1 and self.max == 1 :  return
+        #print ('il faut creer une liste ' , self.nom)
+
+    def compare(self,autreMC):
+        if self.label != autreMC.label : return False
+        if self.inUnion == True or autreMC.inUnion == True : return False
+        if hasattr(self,'nomXML') and hasattr(autreMC,'nomXML') and self.nomXML==autreMC.nomXML and self.nomXML != None : return True
+        listeAComparer = [ 'type', 'defaut', 'min' ,'max' ,'val_min' , 'val_max' ]
+        if self.intoXML != None : listeAComparer.append('intoXML')
+        else : listeAComparer.append('into')
+        if (hasattr (self, 'nomXML')) and self.nomXML != None : nomUtil=self.nomXML
+        for attr in listeAComparer :
+            val1=getattr(self,attr)
+            val2=getattr(autreMC,attr)
+            if val1 != val2 : return False
+        return True
+
+    def construitArbrePossibles(self):
+        if self.statut   ==  'f' :
+            self.arbrePossibles = (self.nom,[])
+        else :
+            self.arbrePossibles = (self.nom,)
+        #print ('SIMP arbre des possibles de ' ,self.nom, self.arbrePossibles)
+
 
 #-----------------
 class X_JDC_CATA :
 #-----------------
 
-    def dumpXsd(self):
-       
+    def dumpXsd(self, avecEltAbstrait,  debug = True):
+        cata = CONTEXT.getCurrentCata()
+        if debug : print ('avecEltAbstrait   -------------------', avecEltAbstrait)
+
+        if debug : print ('self.importedBy -------------------', self.importedBy)
+        if debug : print ('self.code       -------------------', self.code)
+
         self.texteSimple   = ""
         self.texteComplexe = ""
-        self.nomDuTypePyxb='T_'+self.code
-        self.texteCata = debutTypeCata.format(self.nomDuTypePyxb)
-        for commande in  self.commandes :
-            commande.code=self.code
-            commande.dumpXsd()
-            self.texteSimple += commande.texteSimple
-            self.texteSimple += commande.texteComplexe
-            self.texteCata   += commande.texteElt
-        self.texteCata += finTypeCata
-        self.texteElt=eltCata.format(self.code,self.code, self.nomDuTypePyxb)
-
-        self.texteXSD  = texteDebut.format(self.code,self.code,self.code)
+        self.texteCata     = ""
+        self.texteDeclaration  = ""
+        self.texteInclusion    = ""
+        self.texteElt          = ""
+        self.texteTypeAbstrait = ""
+
+        if self.implement == "" :
+            self.nomDuCodeDumpe = self.code
+            self.implement      = self.code
+            self.nomDuXsdPere   = self.code
+        else :
+            self.implement,self.nomDuXsdPere=self.implement.split(':')
+            self.nomDuCodeDumpe = self.implement
+
+        if debug : print ('self.implement       -------------------', self.implement)
+        if debug : print ('self.nomDuCodeDumpe   -------------------', self.nomDuCodeDumpe)
+        if debug : print ('self.nomDuXsdPere  -------------------', self.nomDuXsdPere)
+
+        self.nomDuTypePyxb    = 'T_'+self.nomDuCodeDumpe
+        self.dumpLesCommandes()
+
+        if self.implement == self.code :
+            self.texteCata += eltAbstraitCataPPal.format(self.code)
+            if 0 : pass
+            else  : self.texteCata += eltCataPPal.format(self.code,self.code,self.code)
+        else :
+            self.texteCata += eltAbstraitCataFils.format(self.implement,self.nomDuXsdPere,self.nomDuXsdPere)
+            if 0 : pass
+            else : self.texteCata += eltCataFils.format(self.implement,self.nomDuXsdPere,self.nomDuXsdPere,self.nomDuXsdPere)
+            self.texteInclusion += includeCata.format(self.nomDuXsdPere)
+
+    
+        self.texteCata += eltCata.format(self.implement,self.implement,self.implement,self.implement,self.nomDuXsdPere)
+        #if self.implement == self.code :
+        #   self.texteCata      += debutTypeCata.format(self.nomDuCodeDumpe)
+        #else :
+        #   self.texteCata      += debutTypeCataExtension.format(self.nomDuCodeDumpe)
+        #   self.texteCata      += debutExtension.format(self.code,self.nomDuCodeDumpe)
+        #   self.texteInclusion += includeCata.format(self.nomDuXsdPere)
+
+
+
+        #for codeHeritant in self.importedBy:
+        #    self.texteCata += eltCodeSpecDsCata.format(codeHeritant)
+        #    self.texteTypeAbstrait += eltAbstrait.format(codeHeritant,codeHeritant,self.code,codeHeritant)
+
+        #if self.implement != "" : self.texteCata = self.texteCata + finExtension + finTypeCompo
+        #else : self.texteCata  += finTypeCata
+
+        #if self.implement != "" :
+        #   self.texteElt=implementeAbstrait.format(self.nomDuCodeDumpe,self.code,self.nomDuTypePyxb,self.code,self.nomDuCodeDumpe)
+        #else :
+        #   self.texteElt  = eltCata.format(self.nomDuCodeDumpe,self.code, self.nomDuTypePyxb)
+
+        if self.implement == self.code :
+            self.texteXSD  = texteDebut.format(self.code,self.code,self.code,self.code,self.code,self.code)
+        elif self.nomDuXsdPere ==  self.code :
+            self.texteXSD  = texteDebutNiveau2.format(self.code,self.implement,self.code,self.code,self.code, self.code,self.code,self.code,self.code,self.code)
+        else :
+            self.texteXSD  = texteDebutNiveau3.format(self.code,self.implement,self.code,self.nomDuXsdPere,self.code,self.code,self.code, self.code,self.code,self.code,self.code,self.code)
+
+        if self.texteInclusion != ""   : self.texteXSD += self.texteInclusion
         self.texteXSD += self.texteSimple
+        self.texteXSD += self.texteComplexe
+
+        #if self.texteTypeAbstrait != "" : self.texteXSD += self.texteTypeAbstrait
         self.texteXSD += self.texteCata
-        self.texteXSD += self.texteElt
+        #self.texteXSD += self.texteElt
+
+        toutesLesKeys=set()
+        texteKeyRef = ""
+        # Pour le nom des key_ref en creation : le type ( une seule key-ref par type. facile a retrouver)
+        for clef in self.dictTypesASSDorUserASSDCrees:
+            existeASSD=0
+            texteDesFields=""
+            for unOper in self.dictTypesASSDorUserASSDCrees[clef]:
+                if  not(isinstance(unOper, Accas.OPER)) : continue
+                existeASSD=1
+                texteDesFields+=texteFieldUnitaire.format(self.code, unOper.nom)
+            if existeASSD : texteDesFields=texteDesFields[0:-2]
+            texteDesUserASSD=''
+            existeunUserASSD=0
+            for unSimp in self.dictTypesASSDorUserASSDCrees[clef]:
+                if not (isinstance(unSimp, Accas.SIMP)) : continue
+                texteDesUserASSD += unSimp.getXPathSansSelf() + " | "
+                #print (unSimp.getXPathSansSelf())
+                #texteFieldUnitaire='/'+self.code+":"+unSimp.nom
+                existeunUserASSD=1
+            if existeunUserASSD:
+                if existeASSD : texteDesFields = texteDesFields + texteDesUserASSD[0:-2] +"/>\n\t\t"
+                else: texteDesFields = texteDesUserASSD[0:-2]
+            #print (texteDesUserASSD)
+            #print (texteDesFields)
+            if texteDesFields != "" :
+                texteKeyRef  += producingASSDkeyRefDeclaration.format( clef ,texteDesFields)
+
+
+        # Pour le nom des key-ref en utilisation : la genealogie complete  ( une  key-ref par utilisation et on retrouve facilement la )
+        for clef in self.dictTypesASSDorUserASSDUtilises:
+            for unSimp in self.dictTypesASSDorUserASSDUtilises[clef]:
+                # il faut la genealogie
+                texteKeyRef  += UsingASSDkeyRefDeclaration.format(unSimp.getNomCompletAvecBloc(), unSimp.type[0].__name__,self.code, unSimp.type[0].__name__,unSimp.getXPathComplet() )
+
+        #PNPN on debranche les keyref le temps de bien reflechir a leur forme
+        #if texteKeyRef != '' :
+        #   self.texteXSD = self.texteXSD[0:-3]+'>\n'
+        #   self.texteXSD += texteKeyRef
+        #   self.texteXSD += fermeEltCata
+
+
+
+        #if not PourTraduction : print (self.texteXSD)
+
+        import pprint
+        #pprint.pprint (cata.dictTypesXSDJumeaux)
+        #for k in cata.dictTypesXSDJumeaux:
+        #    print (k.nom, k.nomComplet())
+        #    print (cata.dictTypesXSDJumeaux[k][0].nom, cata.dictTypesXSDJumeaux[k][0].nomComplet())
+
+        #pprint.pprint (cata.dictTypesXSD)
+        #for k in cata.dictTypesXSD:
+        #    print (k)
+        #    print (cata.dictTypesXSD)
+
+        dico = {}
+        for  k in list(cata.dictTypesXSD.keys()):
+            dico[k]={}
+            different=False
+            for definition in cata.dictTypesXSD[k] :
+                if definition.label  == 'BLOC' or  definition.label == 'BlocAmbigu':continue
+                if definition.nomDuTypePyxb != 'T_'+definition.nom : different=True
+                listeATraiter=[definition.geneaCompleteSousFormeDeListe(),]
+                while listeATraiter != [] :
+                    listeGenea=listeATraiter[0]
+                    listeATraiter=listeATraiter[1:]
+                    txtNomComplet=''
+                    indexMC=0
+                    for MC in listeGenea:
+                        txtNomComplet=txtNomComplet+'_'+MC.nom
+                        if MC in list(cata.dictTypesXSDJumeaux.keys()) :
+                            for MCJumeau in cata.dictTypesXSDJumeaux[MC]:
+                                # attention nvlleGenalogie n a pas de sens en Accas
+                                nvlleGenalogie=listeGenea[:indexMC]+MCJumeau.geneaCompleteSousFormeDeListe()
+                                listeATraiter.append(nvlleGenalogie)
+                        indexMC=indexMC+1
+                    dico[k][txtNomComplet]=definition.nomDuTypePyxb
+            if dico[k]== {} or (not different) : del dico[k]
+        import pprint
+        #pprint.pprint(dico)
+        # PN reflechir a ce *** de nom
+        #if dico != {} : self.texteXSD += texteAnnotation.format(self.nomDuCodeDumpe,str(dico))
+        if dico != {} : self.texteXSD += texteAnnotation.format(str(dico))
+
+        #import pprint
+        #if (not PourTraduction) and  (dico != {}) : pprint.pprint(dico)
+        print ('__________________________ decommenter pour le texteXSD________________________')
+        #print (dico)
+        #print (self.texteXSD)
         self.texteXSD += texteFin
-        #print (self.texteSimple)
-        #print (self.texteCata)
-        #print (self.texteElt)
-        print (self.texteXSD)
-   
+        return self.texteXSD
+
+
+    def dumpLesCommandes(self):
+        cata = CONTEXT.getCurrentCata()
+        fichierCataSourceExt=os.path.basename(cata.cata.__file__)
+        fichierCataSource, extension=os.path.splitext(fichierCataSourceExt)
+        importCataSource=__import__(fichierCataSource,{},{})
+
+        texte=""
+        for m in sys.modules:
+            monModule=sys.modules[m]
+            try :
+                if m in ('os', 'sys', 'inspect', 'six', 'pickle', 'codecs')      : continue
+                if m in ('cPickle', 'pprint', 'dis', '_sre', 'encodings.aliases'): continue
+                if m in ('numbers', 'optparse', 'binascii', 'posixpath')         : continue
+                if m in ('_locale', '_sysconfigdata_nd', 'gc', 'functools')      : continue
+                if m in ('posixpath', 'types', 'posix', 'prefs')                 : continue
+                if m in ('warnings', 'types', 'posix', 'prefs')                  : continue
+                if monModule.__name__[0:15] == '_sysconfigdata_' : continue
+                if monModule.__name__ == '__future__' :  continue
+                if monModule.__name__[0:3] == 'Ihm'   :  continue
+                if monModule.__name__[0:5] == 'numpy' :  continue
+                if monModule.__name__[0:5] == 'Noyau' :  continue
+                if monModule.__name__[0:5] == 'Accas' :  continue
+                if monModule.__name__[0:7] == 'convert'       :  continue
+                if monModule.__name__[0:7] == 'Efi2Xsd'       :  continue
+                if monModule.__name__[0:7] == 'Editeur'       :  continue
+                if monModule.__name__[0:9] == 'generator'     :  continue
+                if monModule.__name__[0:10] == 'Validation'   :  continue
+                if monModule.__name__[0:10] == 'Extensions'   :  continue
+                if monModule.__name__[0:12] == 'InterfaceQT4' :  continue
+                if monModule.__name__ == fichierCataSource    :  continue
+                texte= texte + "try : import "+ monModule.__name__ + " \n"
+                texte= texte + "except : pass \n"
+                texte= texte + "try : from  "+ monModule.__name__ + ' import * \n'
+                texte= texte + "except : pass \n"
+            except :
+                pass
+
+        newModule=imp.new_module('__main__')
+        exec (texte, newModule.__dict__)
+        allClassToDump=[]
+        for i in dir(importCataSource):
+            if i not in dir(newModule):
+                allClassToDump.append(importCataSource.__dict__[i])
+
+
+        self.texteSimple = ''
+        self.texteComplexe = ''
+        for c in allClassToDump :
+            if not(isinstance(c, Accas.OPER)) and not(isinstance(c, Accas.PROC))  : continue
+            c.nomDuCodeDumpe=self.nomDuCodeDumpe
+            c.code=self.implement
+            c.dumpXsd()
+
+            self.texteSimple   += c.texteSimple
+            self.texteComplexe += c.texteComplexe
+            if  c.ang != '' : c.texteElt = eltEtapeWithHelp.format(c.nom,self.implement,c.nomDuTypePyxb,self.implement,c.ang)
+            elif c.fr != '' : c.texteElt = eltEtapeWithHelp.format(c.nom,self.implement,c.nomDuTypePyxb,self.implement,c.fr)
+            else : c.texteElt = eltEtape.format(c.nom,self.implement,c.nomDuTypePyxb,self.implement)
+            self.texteCata   += c.texteElt
diff --git a/Efi2Xsd/MCAccasXML.py b/Efi2Xsd/MCAccasXML.py
new file mode 100755 (executable)
index 0000000..06966aa
--- /dev/null
@@ -0,0 +1,682 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2021   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+import sys,os
+import inspect
+import traceback
+def trace():
+    traceback.print_stack()
+#import raw.efficas as efficas
+import types
+
+sys.path.insert(0,os.path.abspath(os.path.join(os.getcwd(),'..')))
+
+try :
+    import pyxb
+    import pyxb.binding
+    import pyxb.binding.basis
+    #import pyxb.utils.utility
+    #import pyxb.utils.domutils
+except : pass
+
+from Accas import A_ASSD
+
+class X_OBJECT:
+# -------------
+
+    def delObjPyxb(self, debug=False):
+        if not self.cata or not self.cata.modeleMetier : return
+        if self.nom == 'Consigne' : return None
+        trouve = False
+
+        if debug : print ('--------------- in delObjPyxb pour ' , self.nom)
+        if debug : print (self.perePyxb.objPyxb.orderedContent())
+        if debug : print (list(map(lambda o:o.value, self.perePyxb.objPyxb.orderedContent())))
+
+        elt=pyxb.binding.basis.ElementContent(self.objPyxb, instance=self.perePyxb.objPyxb, tag=pyxb.namespace.ExpandedName(self.cata.modeleMetier.Namespace, self.nom))
+        if debug : print ('element moi = ', elt, 'id de moi = ', id(self.objPyxb), self.objPyxb)
+        if (elt.elementDeclaration.isPlural()):
+            if debug : print ('je suis Plural')
+        #   monIndexInOrderedContent=0
+        #   for c in self.perePyxb.objPyxb.orderedContent():
+        #     if isinstance(c._Content__value,list) and  isinstance(c._Content__value[0], type(self.objPyxb)): monIndexInOrderedContent += 1
+        #   listeObjetsAccas=self.parent.getChild(self.nom,restreint='oui')
+        #   if len(listeObjetsAccas) == 1 : monIndex=0
+        #   else : monIndex=listeObjetsAccas.index(self)
+        #   listeObjetsPyxb=getattr(self.perePyxb.objPyxb,elt.elementDeclaration._ElementDeclaration__key)
+        #   listeObjetsPyxb.pop(monIndex)
+        #   self.perePyxb.objPyxb.orderedContent().pop(monIndexInOrderedContent)
+            for c in self.perePyxb.objPyxb.orderedContent():
+                trouve=False
+                if isinstance(c._Content__value,list) and  isinstance(c._Content__value[0],type(self.objPyxb)):
+                    monIndex=c.value.index(self.objPyxb)
+                    trouve = True
+                if trouve : break
+            if not trouve : print ("************ pas trouve au delete"); return
+            listeObjetsPyxb=getattr(self.perePyxb.objPyxb,elt.elementDeclaration._ElementDeclaration__key)
+            listeObjetsPyxb.pop(monIndex)
+            # si dernier ?
+        else :
+            newOrderedContent = []
+            for i in self.perePyxb.objPyxb.orderedContent():
+                if id(self.objPyxb) == id(i._Content__value) : trouve = True ;continue
+                newOrderedContent.append(i)
+            if not trouve : print ('elt a supprimer ', self.nom, 'non trouve')
+            for i in range(len(newOrderedContent)):
+                self.perePyxb.objPyxb.orderedContent()[i]=newOrderedContent[i]
+            self.perePyxb.objPyxb.orderedContent().pop(len(newOrderedContent))
+
+            setattr(self.perePyxb.objPyxb,elt.elementDeclaration._ElementDeclaration__key,None)
+            if debug : print (list(map(lambda o:o.value, self.perePyxb.objPyxb.orderedContent())))
+
+
+
+    def addObjPyxb(self,indiceDsLeContenu,debug=False):
+        if not self.cata or not self.cata.modeleMetier : return
+        if debug :print ('_____________ addObjPyxb ds X_OBJECT', self.nom, indiceDsLeContenu)
+        # adherence Accas sur le parent
+        parent=self.parent
+        while (parent.isBLOC()):
+            if parent != self.parent : indiceDsLeContenu += parent.rangDsPyxb()
+            parent=parent.parent
+        self.perePyxb=parent
+
+        if debug :print ('indiceDsLeContenu',indiceDsLeContenu)
+        if debug :print (pyxb.namespace.ExpandedName(self.cata.modeleMetier.Namespace, self.nom))
+
+        #if self.objPyxb ! = None : self.objPyxb.objAccas=self
+        elt=pyxb.binding.basis.ElementContent(self.objPyxb, instance=self.perePyxb.objPyxb, tag=pyxb.namespace.ExpandedName(self.cata.modeleMetier.Namespace, self.nom))
+        self.perePyxb.objPyxb.orderedContent().insert(indiceDsLeContenu,elt)
+        if (elt.elementDeclaration.isPlural()):
+        # je suis donc un MCList
+            listeObjetsAccas=self.parent.getChild(self.nom,restreint='oui')
+            if len(listeObjetsAccas) == 1 : monIndex=1
+            else : monIndex=listeObjetsAccas.index(self)
+            listeObjetsPyxb=getattr(self.perePyxb.objPyxb,elt.elementDeclaration._ElementDeclaration__key)
+            listeObjetsPyxb.insert(monIndex,self.objPyxb)
+        else :
+            setattr(self.perePyxb.objPyxb,elt.elementDeclaration._ElementDeclaration__key,self.objPyxb)
+        if debug : print (list(map(lambda o:o.value, self.perePyxb.objPyxb.orderedContent())))
+        if debug : print ('fin _____________ addObjPyxb ds X_OBJECT', self.nom, indiceDsLeContenu)
+
+
+    def rangDsPyxb(self):
+        monRangEnAccas=self.parent.mcListe.index(self)
+        rangEnPyxb=0
+        for frere in self.parent.mcListe[0: monRangEnAccas] :
+            rangEnPyxb += frere.longueurDsArbre()
+        return rangEnPyxb
+
+
+class X_MCSIMP(X_OBJECT):
+# -----------------------
+
+    def buildObjPyxb(self, debug=True) :
+        if not self.cata or not self.cata.modeleMetier : return
+        if self.nom == 'Consigne' : return None
+        if debug : print (self.definition.nomComplet())
+        if debug : print ('_______________ X_MCSIMP buildObjPyxb', self.nom, self,self.valeur)
+        if debug and self.objPyxbDeConstruction == None : print (self.nom, ' pas de pyxb')
+        elif debug : print ('objPyxbDeConstruction', self.objPyxbDeConstruction)
+
+        if self.objPyxbDeConstruction != None :
+            self.objPyxb = self.objPyxbDeConstruction
+            self.maClasseModeleMetier =type(self.objPyxb)
+            self.objPyxbDeConstruction = None
+            if issubclass(self.maClasseModeleMetier, self.cata.modeleMetier.pyxb.binding.basis.STD_union):
+                self.needFactory=True
+                self.maClasseModeleMetierFactory=getattr(self.maClasseModeleMetier,'Factory')
+            else : self.needFactory=False
+        else :
+            self.monNomClasseModeleMetier ='T_'+self.nom
+            if hasattr(self.definition,'nomXML') and self.definition.nomXML != None : self.monNomClasseModeleMetier='T_'+self.definition.nomXML
+            if self.monNomClasseModeleMetier in list(self.cata.DicoNomTypeDifferentNomElt.keys()) :
+                nomComplet=self.definition.nomComplet()
+                if nomComplet in list(self.cata.DicoNomTypeDifferentNomElt[self.monNomClasseModeleMetier].keys()):
+                    self.monNomClasseModeleMetier=self.cata.DicoNomTypeDifferentNomElt[self.monNomClasseModeleMetier][nomComplet]
+            if debug : print ('Pour', self.nom, ' le type est ', self.monNomClasseModeleMetier)
+            self.maClasseModeleMetier=getattr(self.cata.modeleMetier,self.monNomClasseModeleMetier)
+
+            if self.waitMatrice() :
+               #PNPN : Attention rien ne relie les objets listeObjPyxb a un objAccas
+               # 27/04 je ne sais pas si cela posera pb
+               self.listeLines = []
+               self.maClasseModeleMetier=getattr(self.cata.modeleMetier,self.monNomClasseModeleMetier)
+               self.maClasseModeleMetier_line=getattr(self.cata.modeleMetier,self.monNomClasseModeleMetier+'_line')
+               if debug : print ('Matrice  de type ', self.maClasseModeleMetier)
+               for v in self.valeur: 
+                   l=self.maClasseModeleMetier_line(v)
+                   self.listeLines.append(l)
+               self.objPyxb=self.maClasseModeleMetier(*self.listeLines)
+               #if self.objPyxb !=None : self.objPyxb.objAccas=self
+               if debug : print ('Matrice ', self.nom, self.objPyxb)
+               return
+            if self.waitTuple() :
+               self.objPyxb = []
+               self.maClasseModeleMetier=getattr(self.cata.modeleMetier,self.monNomClasseModeleMetier)
+               # if faut traiter l autre cas
+               # et optimiser
+               if self.definition.max !=1 :
+                  for v in self.valeur :
+                    if debug : print ('je traite ', v)
+                    listeConstruction=[]
+                    for i in range(self.combienEltDsTuple()):
+                        num=i+1
+                        maClasseElt=getattr(self.cata.modeleMetier,self.monNomClasseModeleMetier+'_n'+str(num))
+                        listeConstruction.append(maClasseElt(v[i]))
+                    self.objPyxb.append(self.maClasseModeleMetier(*listeConstruction))
+                    if debug  : print (self.objPyxb)
+                  return
+            if self.waitChaineAvecBlancs() and self.definition.max > 1:
+               self.maClasseModeleMetier=getattr(self.cata.modeleMetier,self.monNomClasseModeleMetier)
+               if debug : print (self.valeur)
+               if self.valeur != None and self.valeur != [] : self.objPyxb = self.maClasseModeleMetier(*self.valeur)
+               else :self.objPyxb = self.maClasseModeleMetier()
+               if debug : print ('X_MCSIMP', self.nom, self.objPyxb, )
+               if debug : print ('__________ fin X_MCSIMP', self.objPyxb, self.nom, self, self.maClasseModeleMetier,self.valeur)
+               return
+
+                        
+            if issubclass(self.maClasseModeleMetier, self.cata.modeleMetier.pyxb.binding.basis.STD_union):
+                if debug : print ('needFactory')
+                self.needFactory=True
+                self.maClasseModeleMetierFactory=getattr(self.maClasseModeleMetier,'Factory')
+            else : self.needFactory=False
+
+            if self.valeur != None :
+                if self.needFactory :
+                    if self.definition.max > 1 :
+                       # PNPN A corriger 
+                       # self.objPyxb=self.maClasseModeleMetier(self.valeur)
+                            self.objPyxb=self.maClasseModeleMetierFactory(self.valeur)
+                    else :  self.objPyxb=self.maClasseModeleMetierFactory(self.valeur)
+                else                :  self.objPyxb=self.maClasseModeleMetier(self.valeur)
+            else                   :
+                if self.needFactory : self.objPyxb=None
+                else                : self.objPyxb=self.maClasseModeleMetier(_validate_constraints=False)
+
+
+            #if self.objPyxb !=None : self.objPyxb.objAccas=self
+        if debug : print ('X_MCSIMP', self.nom, self.objPyxb, )
+        if debug : print ('__________ fin X_MCSIMP', self.objPyxb, self.nom, self, self.maClasseModeleMetier,self.valeur)
+
+
+    def setValeurObjPyxb(self,newVal, debug=True):
+        if not self.cata or not self.cata.modeleMetier : return
+        if debug : print (' ___________________________ dans setValeurObjPyxb MCSIMP ', self.nom, newVal)
+        if debug : print (' self.perePyxb = ', self.perePyxb.nom)
+        if debug : print (self.nom , ' a pour pere', self.perePyxb, self.perePyxb.nom, self.perePyxb.objPyxb)
+        if debug : print ('debut du setValeurObjPyxb pour ', self.nom, self.perePyxb.objPyxb.orderedContent())
+
+        #if newVal != None : nvlObj=self.maClasseModeleMetier(newVal)
+        if newVal != None :
+            if self.needFactory : nvlObj=self.maClasseModeleMetierFactory(newVal)
+            else                : nvlObj=self.maClasseModeleMetier(newVal)
+        else                   :
+            if self.needFactory : nvlObj =None
+            else                : nvlObj=self.maClasseModeleMetier(_validate_constraints=False)
+        self.val=newVal
+        if debug : print ('fin du setValeurObjPyxb pour ', self.nom, self.perePyxb.objPyxb.orderedContent())
+
+        if inspect.isclass(newVal) and issubclass(newVal,A_ASSD)  :
+            newVal = newVal.nom
+        setattr(self.perePyxb.objPyxb,self.nom,nvlObj)
+        trouve=False
+        indice=0
+        for i in self.perePyxb.objPyxb.orderedContent():
+            if i.elementDeclaration.id() == self.nom:
+            #if isinstance(i._Content__value, self.maClasseModeleMetier) :
+                self.perePyxb.objPyxb.orderedContent()[indice]=self.perePyxb.objPyxb.orderedContent()[-1]
+                del(self.perePyxb.objPyxb.orderedContent()[-1])
+                trouve=True
+                break
+            indice+=1
+        if not trouve : print ('Attention souci au changement de valeur de ', self.nom)
+        self.objPyxb=nvlObj
+        #self.objPyxb.objAccas=self
+        if debug : print ('fin du setValeurObjPyxb pour ', self.nom, self.perePyxb.objPyxb.orderedContent())
+
+
+
+
+class X_MCCOMPO(X_OBJECT) :
+# -------------------------
+#
+    def buildObjPyxb(self,mc_list, debug=False) :
+        if not self.cata or not self.cata.modeleMetier : return
+
+        #if self.nom == 'Scenario_data' : debug=1
+        if debug : print ('X_MCCOMPO', self.nom)
+        deepDebug=False
+        self.listArg=[]
+        self.dicoArg={}
+        for objAccas in mc_list :
+            if objAccas.nature == 'MCBLOC' :
+                self.exploreBLOC(objAccas)
+            elif objAccas.nature == 'MCList' :
+                if objAccas[0].definition.max > 1 :
+                    self.listArg.append(objAccas) # les MCList n ont pas objPyxb
+                    self.dicoArg[objAccas.nom]=[]
+                    for fils in objAccas :
+                        fils.perePyxb=self
+                        self.dicoArg[objAccas.nom].append(fils.objPyxb)
+                else :
+                    objAccas[0].perePyxb=self
+                    self.dicoArg[objAccas.nom]=objAccas[0].objPyxb
+                    self.listArg.append(objAccas[0].objPyxb)
+            else :
+                if objAccas.nom == 'Consigne'     : continue
+                print ('______________', objAccas.nom, objAccas.objPyxb)
+                self.listArg.append(objAccas.objPyxb)
+                self.dicoArg[objAccas.nom]=objAccas.objPyxb
+                objAccas.perePyxb=self
+
+        if debug : print('X_MCCOMPO -- listArg ---',self.nom,self.listArg)
+        if debug : print('X_MCCOMPO -- dicoArg ---',self.nom,self.dicoArg)
+
+
+        self.monNomClasseModeleMetier='T_'+self.nom
+        if self.monNomClasseModeleMetier in list(self.cata.DicoNomTypeDifferentNomElt.keys()) :
+            self.nomComplet=self.definition.nomComplet()
+            self.monNomClasseModeleMetier=self.cata.DicoNomTypeDifferentNomElt[self.monNomClasseModeleMetier][self.nomComplet]
+        self.maClasseModeleMetier=getattr(self.cata.modeleMetier,self.monNomClasseModeleMetier)
+
+        # PN : Ne doit-on pas tester avant
+        if self.objPyxbDeConstruction != None :
+            self.objPyxb = self.objPyxbDeConstruction
+            self.objPyxbDeConstruction = None
+            if debug : print ('je passe dans le if pour ', self.nom, self.objPyxb, self)
+            if debug : print ('X_MCCOMPO', self, self.nom, self.objPyxb,self.listArg,self.objPyxb.orderedContent())
+        else :
+            if debug : print (self.listArg)
+            if debug : print (self.maClasseModeleMetier)
+            # self.objPyxb=self.maClasseModeleMetier(*self.listArg)
+            self.objPyxb=self.maClasseModeleMetier(**self.dicoArg)
+            if deepDebug :
+                print ('debut de __________ new ordered content')
+                for o in self.objPyxb.orderedContent():
+                    print ('o', o)
+                    print ('value', o.value)
+                    print ('type', type(o.value))
+                    print ('id', id(o.value))
+                print ('fin __________ new ordered content')
+                print ('debut de  __________ listArg')
+                for obj in self.listArg:
+                    print ('obj',obj)
+                    print ('type obj', type(obj))
+                    print ('id(obj)', id(obj))
+                print ('fin __________  listArg')
+
+            newOrderedContent=[]
+            if debug  : print ('list Arg')
+            for obj in self.listArg:
+                if debug :
+                    print ('obj',obj)
+                    print ('type obj', type(obj))
+                    print ('id(obj)', id(obj))
+
+                # on teste le caractere pluriel
+                if  isinstance(obj, list):
+                    for c in self.objPyxb.orderedContent() :
+                        if hasattr (c,'value') and c.value == obj :
+                           newOrderedContent.append(c)
+                    continue
+                if (hasattr(obj, 'nature')) : # attention on a un object Accas et non un pyxb car les MCList n ont pas de objPyxb
+                    max=obj[0].definition.max
+                else : max = 1
+                if  max == 1 :
+                    #if not(issubclass(type(obj), pyxb.binding.basis.enumeration_mixin) ):
+                    #   newOrderedContent.append(self.objPyxb.orderedContent()[list(map(lambda o:id(o.value), self.objPyxb.orderedContent())).index(id(obj))] )
+                    #else :
+                    #   newOrderedContent.append(self.objPyxb.orderedContent()[list(map(lambda o:type(o.value), self.objPyxb.orderedContent())).index(type(obj))] )
+                    # PN 22 sept 2020 . pourquoi pas toujours l id. le tyoe ne convient pas en cas d union d enum
+                    newOrderedContent.append(self.objPyxb.orderedContent()[list(map(lambda o:id(o.value), self.objPyxb.orderedContent())).index(id(obj))] )
+                else  : # element Pural
+                    for c in self.objPyxb.orderedContent() :
+                        if isinstance(c._Content__value,list) and  isinstance(c._Content__value[0], type(obj[0].objPyxb)): newOrderedContent.append(c)
+
+            for i in range(len(self.listArg)):
+                self.objPyxb.orderedContent()[i]=newOrderedContent[i]
+            debug=True
+            if debug : print ('X_MCCOMPO', self, self.nom, self.objPyxb)
+            if debug : print ('X_MCCOMPO', self.listArg)
+            if debug : print ('X_MCCOMPO', newOrderedContent)
+            if debug : print ( 'X_MCCOMPO',self.objPyxb.orderedContent())
+        if debug : print ('fin buildObjetPyxb _______________________________________')
+        # assert(self.objPyxb.validateBinding())
+
+
+    def exploreBLOC(self,objAccas,debug=False):
+        if debug : print (' ds exploreBLOC', objAccas.nom)
+        laListeSsLesBlocs=[]
+        for fils in objAccas.mcListe:
+            if fils.nature == 'MCBLOC' :
+                self.exploreBLOC(fils)
+            elif fils.nature == 'MCList' :
+                #print ('exploreBLOC des MCList', fils.nom)
+                self.dicoArg[fils.nom]=[]
+                if fils[0].definition.max > 1 :
+                    #print ('ajout de ', fils)
+                    self.listArg.append(fils) # les MCList n ont pas objPyxb
+                    for objFils in fils :
+                        objFils.perePyxb=self
+                        self.dicoArg[fils.nom].append(objFils.objPyxb)
+                else:
+                    fils[0].perePyxb=self
+                    self.dicoArg[fils.nom]=fils[0].objPyxb
+                    self.listArg.append(fils[0].objPyxb)
+            else :
+                if fils.nom == "Consigne" : continue
+                self.listArg.append(fils.objPyxb)
+                self.dicoArg[fils.nom]=fils.objPyxb
+                fils.perePyxb=self
+                if debug : print (fils.nom ,' est un SIMP a pour pere Pyxb', self, self.nom)
+        if debug : print ('fin  ds exploreBLOC', objAccas .nom)
+
+
+
+
+class X_MCBLOC (X_MCCOMPO):
+# --------------------------
+    def buildObjPyxb(self,mc_list,debug=False):
+        if not self.cata or not self.cata.modeleMetier : return
+        if debug : print ('X_MCBLOC buildObjPyxb', self.nom, self, mc_list, 'ne fait rien')
+        self.perePyxb=None
+        self.objPyxb=None
+
+    def addObjPyxb(self, indiceDsLeContenu, debug=False):
+        if not self.cata or not self.cata.modeleMetier : return
+        if debug : print ('X_MCBLOC addObjPyxb', self.nom, self, self.mcListe, indiceDsLeContenu)
+        rangDeLObjet=indiceDsLeContenu
+        for obj in self.mcListe:
+            obj.addObjPyxb( rangDeLObjet)
+            rangDeLObjet=rangDeLObjet+obj.longueurDsArbre()
+
+    def delObjPyxb(self, debug=False):
+        if not self.cata or not self.cata.modeleMetier : return
+        if debug : print ('X_MCBLOC delObjPyxb', self.nom, ' --------------------------')
+        for obj in self.mcListe:
+            obj.delObjPyxb()
+        if debug : print ('fin X_MCBLOC delObjPyxb --------------------------')
+
+class X_MCLIST (X_MCCOMPO):
+# --------------------------
+
+    def buildObjPyxb(self,mc_list, debug=False):
+        if debug : print ('X_MCLIST buildObjPyxb ne fait rien', self.nom, self, mc_list)
+        pass
+
+    def addObjPyxb(self,indiceDsLeContenu, debug=False):
+        if debug : print ('X_MCLIST addObjPyxb', self.nom, indiceDsLeContenu)
+        rangDeLObjet=indiceDsLeContenu
+        for objFils in self :
+            objFils.addObjPyxb(rangDeLObjet)
+            rangDeLObjet= rangDeLObjet + 1
+
+    def delObjPyxb(self, debug=False):
+        if not self.cata or not self.cata.modeleMetier : return
+        if debug : print ('X_MCLIST delObjPyxb', self.nom, ' --------------------------')
+        for obj in self:
+            obj.delObjPyxb()
+        if debug : print ('fin X_MCLIST delObjPyxb --------------------------')
+
+
+class X_MCFACT (X_MCCOMPO):
+# -------------------------
+    pass
+
+class X_ETAPE(X_MCCOMPO) :
+# -------------------------
+
+    def metAJourNomASSD(self, nom,debug=False):
+        if not self.cata or not self.cata.modeleMetier : return
+        if debug : print ('X_ETAPE metAJourLesAttributs', self.nom, nom,' --------------------------')
+        self.objPyxb.sdName=nom
+
+class X_JDC (X_MCCOMPO):
+# ---------------------
+
+    def  __init__(self):
+        self.perePyxb=None
+        if not self.cata or not self.cata.modeleMetier : return
+        #if hasattr(self.cata,'DicoNomTypeDifferentNomElt') : print ('jkllllllllllllllll')
+        if not(hasattr(self.cata,'DicoNomTypeDifferentNomElt')) : self.cata.DicoNomTypeDifferentNomElt={}
+        self.monNomClasseModeleMetier=self.code
+        self.maClasseModeleMetier=getattr(self.cata.modeleMetier,self.monNomClasseModeleMetier)
+        self.objPyxb=self.maClasseModeleMetier()
+        #self.objPyxb.objAccas=self
+        pyxb.GlobalValidationConfig._setContentInfluencesGeneration(pyxb.GlobalValidationConfig.NEVER)
+        pyxb.GlobalValidationConfig._setInvalidElementInContent(pyxb.GlobalValidationConfig.RAISE_EXCEPTION)
+        pyxb.GlobalValidationConfig._setOrphanElementInContent(pyxb.GlobalValidationConfig.RAISE_EXCEPTION)
+
+
+
+    def enregistreEtapePyxb(self,etape,indice=0):
+      # ne fonctionne pas : a reecrire avec les fonctions addObjPyxb et ReconstruitPerePyxb
+      # ne contient pas indice pour l insant
+      # print ( 'hhhhhhhhhhhhhhh enregistreEtapePyxb hhhhhhhhhhhhhhhhhhhhhhhhh')
+      # print ('enregistre ds ',self, etape.nom, 'indice = ', indice)
+        if not self.cata.modeleMetier : return
+        self.objPyxb.append(etape.objPyxb)
+        etape.perePyxb = self
+
+        #print (self.objPyxb.orderedContent())
+        #if indice   != (len(self.objPyxb.orderedContent()) ) :
+        #  tampon=self.objPyxb.orderedContent()[-1]
+        #  for i in reversed(range(len(self.objPyxb.orderedContent()))):
+        #    self.objPyxb.orderedContent()[i]=self.objPyxb.orderedContent()[i-1]
+        #    if i == indice + 1 : break
+        #  self.objPyxb.orderedContent()[indice]=tampon
+
+        #print (self.objPyxb.orderedContent())
+        #try:
+        #   self.objPyxb.validateBinding()
+        #except pyxb.ValidationError as e:
+        #   print(e.details())
+
+    def toXml(self,fichier=None, debug=False):
+        if debug : print ('ds to XML')
+        if not self.cata or not self.cata.modeleMetier : return
+        if debug : print (' to xml ***************',self.objPyxb,'***************',)
+        if debug : print (' to xml ***************',self,'***************',)
+        if debug : print (' to xml ***************',self.objPyxb.orderedContent(),'***************',)
+        if debug : print(self.objPyxb.toDOM().toprettyxml())
+        if debug : print(self.objPyxb.toxml())
+        return (self.objPyxb.toDOM().toprettyxml())
+
+
+    def analyseFromXML(self,debug=False):
+        print ("je suis ds analyseFromXML -- > appel ds analyseXML de I_JDC.py")
+        if self.procedure == "" : return
+        self.objPyxb=self.cata.modeleMetier.CreateFromDocument(self.procedure)
+        if not hasattr(self.cata.modeleMetier,'AccasUserAssd'):
+            from Accas import UserASSD
+            self.cata.modeleMetier.AccasUserAssd=UserASSD
+        for contentObjEtape in self.objPyxb.orderedContent():
+            objEtape=contentObjEtape.value
+            objEtape.dictArgs=(self.pyxbToDict(objEtape))
+            objEtape.monNomClasseAccas=objEtape._ExpandedName.localName()
+            objEtape.monNomClasseAccas=objEtape.monNomClasseAccas[2:]
+            # doute sur les 2 lignes suivantes : objEtape peut etre contentObjEtape 2juin20
+            objEtape.dictPyxb['objEnPyxb']=objEtape
+            objEtape.dictArgs['dicoPyxbDeConstruction']=objEtape.dictPyxb
+            if debug : print ('dicoPyxbDeConstruction', objEtape.dictArgs['dicoPyxbDeConstruction'])
+            maClasseAccas=getattr(self.cata,objEtape.monNomClasseAccas)
+            if debug : print ( 'hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh')
+            if debug : print ('maClasseAccas ', maClasseAccas)
+            if debug : print ('objEtape ', objEtape , type(objEtape))
+            if debug : print ('nomClasseAccas ',objEtape.monNomClasseAccas, type(objEtape.monNomClasseAccas))
+            if debug : print ('_ExpandedName ', objEtape._ExpandedName, type(objEtape._ExpandedName))
+            if debug : print ('dictArgs ',objEtape.dictArgs)
+            if debug : print ('dictPyxb ',objEtape.dictPyxb)
+            # attention au call d Oper qui renomme l objet pyxb
+            if hasattr(objEtape,'sdName') :
+                if debug and hasattr(objEtape,'sdName') :print ('sdName',objEtape.sdName)
+                objAccasEtape=maClasseAccas(nomXML=objEtape.sdName, **(objEtape.dictArgs))
+            else : objAccasEtape=maClasseAccas(**(objEtape.dictArgs))
+            if debug : print ( 'hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh')
+
+
+    def pyxbToDict(self,objAAnalyser, debug=True):
+        # la transformation de l objAAnalyser en type lu par eficas ne fonctionne pas pour tout
+        if objAAnalyser is None: return
+        if debug : print ('debut pour_____________________________ ',objAAnalyser)
+        dictArgs = {}
+        # traitement SIMP
+        # ---------------
+        # a revoir pour les matrices
+        # et les tuples
+        debug = 1
+        if isinstance(objAAnalyser, pyxb.binding.basis.simpleTypeDefinition):
+            if debug : print ('je suis un MCSimple', objAAnalyser)
+            # traitement scalaire
+            objAAnalyser.dictPyxb=objAAnalyser
+            if not (isinstance(objAAnalyser,pyxb.binding.basis.STD_list)):
+                if debug :  print ('je suis un scalaire')
+                if isinstance(objAAnalyser,self.cata.modeleMetier.AccasUserAssd) or isinstance(objAAnalyser,self.cata.modeleMetier.AccasUserAssdMultiple):
+                    if debug : print ('je suis un UserASSD')
+                    laClassePyxbUserAssd=type(objAAnalyser)
+                    return self.creeUserAssd(objAAnalyser,laClassePyxbUserAssd)
+                if isinstance(objAAnalyser, pyxb.binding.datatypes.boolean) : return bool(objAAnalyser)
+                if isinstance(objAAnalyser, str)  : return str(objAAnalyser)
+                if isinstance(objAAnalyser, int)  : return int(objAAnalyser)
+                if isinstance(objAAnalyser, float): return float(objAAnalyser)
+                if isinstance(objAAnalyser, pyxb.binding.basis.enumeration_mixin):    return str(objAAnalyser)
+                return objAAnalyser
+            else :
+                if debug : print ('je suis une liste')
+                laListe=[]
+                # liste homogene
+                if len(objAAnalyser)>0:
+                    if issubclass(objAAnalyser[0].__class__,self.cata.modeleMetier.AccasUserAssd) or issubclass(objAAnalyser[0].__class__,self.cata.modeleMetier.AccasUserAssdMultiple): estUnUserASSDorUserASSDMultiple = True
+                    else : estUnUserASSDorUserASSDMultiple=False
+                else : estUnUserASSDorUserASSDMultiple=False
+                if debug : print ('estUnUserASSDorUserASSDMultiple', estUnUserASSDorUserASSDMultiple)
+                for obj in objAAnalyser :
+                    if estUnUserASSDorUserASSDMultiple:
+                       laClassePyxbUserAssd=obj.__class__
+                       laListe.append(self.creeUserAssd(obj,laClassePyxbUserAssd))
+                    elif isinstance(obj, str): laListe.append (str(obj))
+                    elif isinstance(obj, int): laListe.append (int(obj))
+                    elif isinstance(obj, float): laListe.append (float(obj))
+                    elif isinstance(obj, pyxb.binding.basis.enumeration_mixin): laListe.append(str(obj))
+                    else :  laListe.append(obj)
+                return (laListe)
+            #  if debug : print ('je suis Plural')
+            # ou ? return objAAnalyser
+            #if isinstance(objAAnalyser, types.StringTypes): return pyxb.utils.utility.QuotedEscaped(objAAnalyser,)
+            #pour une enum getattr(value dans le type)
+            # return pythonLiteral(ReferenceFacet(facet=value, **kw))
+        #print ('je suis un mot complexe')
+        # traitement FACT ou BLOC
+        # ------------------------
+        # il faut traiter les fact multiples
+        objAAnalyser.dictPyxb = {}
+        objAAnalyser.dictPyxb['objEnPyxb']=objAAnalyser
+        #for expandedName, elementDeclaration in objAAnalyser._ElementMap.items():
+        #    objPyxbName  = expandedName.localName()
+        #    objPyxbValue = getattr(objAAnalyser, objPyxbName)
+        for objEltContentFils in objAAnalyser.orderedContent():
+            objPyxbValue = objEltContentFils.value
+            objPyxbName  = objEltContentFils.elementDeclaration.id()
+            elementDeclaration = objEltContentFils.elementDeclaration
+            #if objPyxbValue == None or objPyxbValue == [] : continue
+            if elementDeclaration.isPlural():
+                if objPyxbName not in list(dictArgs.keys()) : dictArgs[objPyxbName]=[]
+                if objPyxbName not in list(objAAnalyser.dictPyxb.keys()) : objAAnalyser.dictPyxb[objPyxbName]=[]
+                dictArgs[objPyxbName].append(self.pyxbToDict(objPyxbValue))
+                objAAnalyser.dictPyxb[objPyxbName].append(objPyxbValue.dictPyxb)
+            else:
+                dictArgs[objPyxbName] = self.pyxbToDict(getattr(objAAnalyser, objPyxbName))
+                objAAnalyser.dictPyxb[objPyxbName] = objPyxbValue.dictPyxb
+                # print ('ajout dans dictPyxb', objPyxbName, objPyxbValue.dictPyxb)
+                #print ('avec la valeur', 'de',  objAAnalyser.dictPyxb[objPyxbName])
+
+        #print ("***********************************")
+        #print ('pyxbToDict  fin pour ********** ', objAAnalyser)
+        #print ('pyxbToDict ', objAAnalyser, objAAnalyser.dictPyxb)
+        #print ('pyxbToDict  fin pour ********** ', objAAnalyser)
+        #print ("***********************************")
+        #print (dictArgs)
+        #print (dictPyxb)
+        #for i in dictArgs.keys(): print (i, " ", dictArgs[i], " ", type(dictArgs[i]))
+        #print ('fin pour ',objAAnalyser)
+        return dictArgs
+
+    def creeUserAssd(self,objAAnalyser,laClassePyxbUserAssd,debug=True):
+
+        enCreation=False
+        if debug : print ('creeUserAssd ', objAAnalyser, ' ',laClassePyxbUserAssd)
+        leTypeIntermediaire=laClassePyxbUserAssd.XsdSuperType()  
+        if debug : print ('leTypeIntermediaire ', leTypeIntermediaire)
+        if debug : print ('leTypeIntermediaire ', leTypeIntermediaire.XsdSuperType())
+        if leTypeIntermediaire.__name__[-2:]== '_C' : enCreation = True
+        elif leTypeIntermediaire.__name__[-2:] != '_U' : print ('pb avec', laClassePyxbUserAssd); return None #exit() 
+        nomClasseAccasUserAssd=leTypeIntermediaire.XsdSuperType().__name__
+        if debug : print ('nomClasseAccasUserAssd', nomClasseAccasUserAssd)
+        laClasseAccas=getattr(self.cata,nomClasseAccasUserAssd)
+        print (laClasseAccas)
+        if not(enCreation):
+            if str(objAAnalyser) in self.g_context.keys():return self.g_context[str(objAAnalyser)]
+            else :
+                obj=laClasseAccas()
+                self.g_context[str(objAAnalyser)]=obj
+                return obj
+        if str(objAAnalyser) in self.g_context.keys():
+            if isinstance(self.g_context[str(objAAnalyser)],laClasseAccas):
+                return self.g_context[str(objAAnalyser)]
+            else :
+                nvlObj=laClasseAccas()
+                oldObj=self.g_context[str(objAAnalyser)]
+                nvlObj.transfere(oldObj)
+                self.g_context[str(objAAnalyser)]=nvlObj
+                return nvlObj
+        else :
+            obj=laClasseAccas()
+            self.g_context[str(objAAnalyser)]=obj
+            return obj
+
+#   def analyseContent(self,objAAnalyser):
+#       objAAnalyser.dictArgs={}
+#       for objContenu in objAAnalyser.content():
+#          #print ('j analyse ', objContenu)
+#          objContenu.monNomClasseModeleMetier=str(objContenu.__class__).split('.')[-1]
+#          objContenu.monNomClasseAccas=objContenu.monNomClasseModeleMetier[2:-2]
+#          #maClasseAccas=classeAccasPere.entites[objContenu.monNomClasseAccas]
+#          if objContenu._IsSimpleTypeContent():
+#             print (objContenu.monNomClasseAccas,objContenu.pythonLiteral())
+#             print (objContenu.monNomClasseAccas,objContenu.xsdLiteral())
+#             #chaine=objContenu.pythonLiteral().split('(')[1].split(')')[0]
+#             print (dir(objContenu))
+#             objAAnalyser.dictArgs[objContenu.monNomClasseAccas]=None
+#             #objAAnalyser.dictArgs[objContenu.monNomClasseAccas]=objContenu.pythonLiteral()
+#          else :
+#             self.analyseContent(objContenu)
+#             objAAnalyser.dictArgs[objContenu.monNomClasseAccas]=objContenu.dictArgs
+            #print ( '________________')
+            #print (objAAnalyser.monNomClasseAccas)
+            #for i in objAAnalyser.dictArgs : print (i, objAAnalyser.dictArgs[i])
+            #print ( '________________')
+
+
+
+if __name__ == "__main__":
+    print ('a faire')
diff --git a/Efi2Xsd/MCAccasXsd.py b/Efi2Xsd/MCAccasXsd.py
deleted file mode 100644 (file)
index 1365685..0000000
+++ /dev/null
@@ -1,408 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-import sys,os
-import traceback
-#import raw.efficas as efficas
-import types
-
-sys.path.insert(0,os.path.abspath(os.path.join(os.getcwd(),'..')))
-
-try :
-  import pyxb
-  import pyxb.binding
-  import pyxb.binding.basis
-except : 
-  pass
-#import pyxb.utils.utility
-#import pyxb.utils.domutils
-
-class X_OBJECT:
-# -------------
-
-  def deletePyxbObject(self):
-      if not self.cata or  not self.cata.modeleMetier : return
-      print ('----------- deletePyxbObject', self.nom)  
-      indice = 0
-      trouve = False
-      for i in self.perePyxb.objPyxb.orderedContent(): 
-            if id(self.objPyxb) == id(i._Content__value) : trouve = True ;break
-            indice = indice + 1
-      if not trouve : print ('objet pas trouve')
-      print (self.perePyxb.objPyxb.description)
-      del self.perePyxb.objPyxb.__dict__[self.nom]
-      print (self.perePyxb.objPyxb.__delattr__)
-      #delattr(self.perePyxb.objPyxb,self.nom)
-      # PNPN
-      
-      print ('delattr', self.perePyxb.objPyxb,self.nom)
-      del self.perePyxb.objPyxb.orderedContent()[indice]
-
-
-class X_MCSIMP(X_OBJECT):
-# -----------------------
-      
-   def buildObjPyxb(self) :
-      # self.valeur tient compte de la valeur par defaut
-      # utiliser getValeur ? expression numpy
-      if not self.cata or  not self.cata.modeleMetier : return
-      #print ('X_MCSIMP buildObjPyxb', self.nom, self,self.valeur)
-      #if self.nom == 'diameter' : 
-      #    traceback.print_stack()
-      #    print ('****************************************************')
-      # print ('objPyxbDeConstruction', self.objPyxbDeConstruction)
-      #if self.objPyxbDeConstruction == None : print (self.nom, ' pas de pyxb')
-      if self.objPyxbDeConstruction != None :
-        self.objPyxb = self.objPyxbDeConstruction
-        self.maClasseModeleMetier =type(self.objPyxb)
-        #print (self.maClasseModeleMetier)
-        self.objPyxbDeConstruction = None
-      else :
-        self.monNomClasseModeleMetier='T_'+self.nom
-        self.maClasseModeleMetier=getattr(self.cata.modeleMetier,self.monNomClasseModeleMetier)
-        #print (self.maClasseModeleMetier)
-        #print (self.valeur)
-        #print (type(self.valeur))
-        if self.valeur != None : self.objPyxb=self.maClasseModeleMetier(self.valeur)
-        elif self.definition.into != None and 'TXM' in self.definition.type  : self.objPyxb = None
-        else                   : self.objPyxb=self.maClasseModeleMetier(); 
-      self.filsPyxb=None
-      #print ('X_MCSIMP', self.nom, self.objPyxb)
-      #print ('fin X_MCSIMP', self.objPyxb, self.nom,self)
-
-
-   def setValeurObjPyxb(self,newVal):
-       if not self.cata or  not self.cata.modeleMetier : return
-       print ('dans setValeurObjPyxb MCSIMP')
-       #  print (self.nom , ' a pour pere', self.perePyxb, self.perePyxb.nom, self.perePyxb.objPyxb)
-       if newVal != None : nvlObj=self.maClasseModeleMetier(newVal)
-       else              : nvlObj=self.maClasseModeleMetier()
-       self.val=newVal
-       setattr(self.perePyxb.objPyxb,self.nom,nvlObj)
-       print ('setattr', self.perePyxb.objPyxb,self.nom)
-       trouve=False
-       indice=0
-       for i in self.perePyxb.objPyxb.orderedContent(): 
-           if isinstance(i._Content__value, self.maClasseModeleMetier) : 
-              self.perePyxb.objPyxb.orderedContent()[indice]=self.perePyxb.objPyxb.orderedContent()[-1]
-              del(self.perePyxb.objPyxb.orderedContent()[-1])
-              trouve=True
-              break
-           indice+=1
-       if not trouve : print ('Attention souci au changement de valeur de ', self.nom)
-       self.objPyxb=nvlObj
-       print ('iiiiiiiiiiiiiiiiiiiiiiiiiiiiii', nvlObj, id(nvlObj))
-       #for i in self.perePyxb.objPyxb.orderedContent(): 
-       #    print ('ds le for pour i')
-       #    print (i._Content__value)
-       #    print (id(i._Content__value))
-       #    print (type((i._Content__value)))
-       #    if id(i._Content__value) == id(self.objPyxb) : break
-       #    indexOC +=1
-
-       #maValeur = getattr(self.perePyxb.objPyxb, self.nom)
-       #print ('je change', indexOC)
-       #if isinstance(maValeur, pyxb.binding.basis.simpleTypeDefinition):
-       #if 1 :
-       #   print ('jkjkljkljklj')
-       #   setattr(self.perePyxb.objPyxb,self.nom,nvlObj)
-       #   self.perePyxb.objPyxb.orderedContent()[indexOC]=self.perePyxb.objPyxb.orderedContent()[-1]
-       #   del(self.perePyxb.objPyxb.orderedContent()[-1])
-       #print ('apres',self.nom, self.perePyxb.objPyxb.orderedContent())
-       #else :
-       #   index=0
-       #   trouve=False
-       #   try :
-       #     for i in maValeur: 
-       #       if id(i) == id(self.objPyxb) :trouve = True ; break
-       #       index=index+1
-       #     maValeur[index]=nvlObj
-       #     self.perePyxb.objPyxb.orderedContent()[indexOC]._Content__value=nvlObj
-       #   except : pass
-       #   if not trouve : print (self.nom , 'pas trouve')
-
-       #print ('arret programme'); exit()
-
-       #print ('id objPyxb',id(self.objPyxb))
-       #print ('id objPyxb[0]',id(self.objPyxb[0]))
-       #print ('id elt ', id(self.objPyxb._element), self.objPyxb._element, type(self.objPyxb._element), type(self.objPyxb._element()))
-       #print ('        perePyxb _ElementMap')
-       #print (self.perePyxb.objPyxb._ElementMap)
-       #index=0
-       #for i in self.perePyxb.objPyxb._ElementMap.keys() : 
-       #    print (id(i), ' ',  id(self.perePyxb.objPyxb._ElementMap[i]))
-           #print (dir(self.perePyxb.objPyxb._ElementMap[i]))
-       #    print (id(self.perePyxb.objPyxb._ElementMap[i]))
-#         index=index+1
-       #print ('        objPyxb monBinding id')
-       #monBinding = getattr(self.perePyxb.objPyxb, self.nom)
-       #for i in monBinding : print id(i)
-       #print ('        perePyxb orderedContent')
-       #for i in self.perePyxb.objPyxb.orderedContent(): 
-       #    print id(i._Content__value)
-       #    print (i._Content__value, type(i._Content__value))
-       #print ('        perePyxb orderedContent')
-       #for i in self.perePyxb.objPyxb.content(): print id(i)
-       
-       #print (self.perePyxb.objPyxb.orderedContent())
-       #print (monBinding)
-        
-      
-   def addPyxbObject(self, indiceDsLeContenu):
-      if not self.cata or  not self.cata.modeleMetier : return
-
-      # adherence Accas sur le parent
-      parent=self.parent
-      while (parent.isBLOC() ): parent=parent.parent
-      self.perePyxb=parent
-
-      self.monNomClasseModeleMetier='T_'+self.nom
-      self.maClasseModeleMetier=getattr(self.cata.modeleMetier,self.monNomClasseModeleMetier)
-      nvlObj=self.maClasseModeleMetier() 
-      print ('setattr', self.perePyxb.objPyxb,self.nom)
-      setattr(self.perePyxb.objPyxb,self.nom,nvlObj)
-      tampon=self.perePyxb.objPyxb.orderedContent()[-1]
-      self.objPyxb  = nvlObj
-      indexOC=-1
-      longueur=len(self.perePyxb.objPyxb.orderedContent())
-      for i in reversed(range(longueur)):
-          self.perePyxb.objPyxb.orderedContent()[i]=self.perePyxb.objPyxb.orderedContent()[i-1]
-          if i == indiceDsLeContenu + 1 : break
-      self.perePyxb.objPyxb.orderedContent()[indiceDsLeContenu]=tampon
-
-
-      #for i in self.perePyxb.objPyxb.orderedContent() :
-      #    print (i._Content__value, type(i._Content__value))
-      #print ('----------------')
-
-      #print self.perePyxb.objPyxb.orderedContent()
-      #for i in  self.perePyxb.objPyxb.orderedContent():
-      #     print ('valeur de ', i)
-      #     print (i._Content__value)
-      #     print (type(i._Content__value))
-      #     if isinstance(i._Content__value, self.maClasseModeleMetier) : 
-      #        print dir(i._Content__value)
-      #        self.objPyxb = i._Content__value 
-      #        setattr(self.perePyxb.objPyxb, self.nom, nvlObj)
-      #        self.perePyxb.objPyxb.orderedContent()[indexOC]=self.perePyxb.objPyxb.orderedContent()[-1]
-      #        del(self.perePyxb.objPyxb.orderedContent()[-1])
-      #     indexOC+=1
-      #PNPNPNPNPNPNPNPNP
-
-class X_MCCOMPO(X_OBJECT) :
-# -------------------------
-# 
-   def buildObjPyxb(self,mc_list) :
-      #print ('________________________________________________')
-      #print ('X_MCCOMPO buildObjPyxb', self.nom, self, mc_list)
-      if not self.cata or  not self.cata.modeleMetier : return
-
-      self.listArg=[]
-      for objAccas in mc_list :
-        if objAccas.nature == 'MCBLOC' :
-           self.exploreBLOC(objAccas)
-        elif objAccas.nature == 'MCList' :
-           for fils in objAccas : 
-               fils.perePyxb=self
-               self.listArg.append(fils.objPyxb)
-        else :
-           self.listArg.append(objAccas.objPyxb)
-           objAccas.perePyxb=self
-           print (objAccas.nom ,' a pour pere Pyxb', self, self.nom)
-
-      self.monNomClasseModeleMetier='T_'+self.nom
-      self.maClasseModeleMetier=getattr(self.cata.modeleMetier,self.monNomClasseModeleMetier)
-      if self.objPyxbDeConstruction != None :
-        self.objPyxb = self.objPyxbDeConstruction
-        self.objPyxbDeConstruction = None
-        #print ('je passe dans le if pour ', self.nom, self.objPyxb, self)
-      else :
-        self.objPyxb=self.maClasseModeleMetier(*self.listArg)
-      #print ('Fin __________ ', self.nom, self.objPyxb)
-      #print ('X_MCCOMPO', self.nom, self.objPyxb)
-      #print ('_______________________________________')
-
-   def deletePyxbObject(self):
-      if not self.cata or  not self.cata.modeleMetier : return
-      print ('******************************************')
-      print ('je passe ds deletePyxbObject pour ', self, self.nom)
-      print (self.perePyxb)
-      print (dir(self)) 
-      print ('******************************************')
-
-   def exploreBLOC(self,objAccas):
-      if not self.cata or  not self.cata.modeleMetier : return
-      laListeSsLesBlocs=[]
-      for fils in objAccas.mcListe:
-        if fils.nature == 'MCBLOC' :
-           self.exploreBLOC(fils)
-        elif fils.nature == 'MCList' :
-           for objFils in fils : 
-               fils.perePyxb=self
-               self.listArg.append(fils.objPyxb)
-               #print (fils.nom ,' a pour pere Pyxb', self, self.nom)
-        else :
-           self.listArg.append(fils.objPyxb)
-           fils.perePyxb=self
-           #print (fils.nom ,' a pour pere Pyxb', self, self.nom)
-          
-   
-
-  
-class X_MCBLOC (X_MCCOMPO):
-# --------------------------
-   def buildObjPyxb(self,mc_list):
-      if not self.cata or  not self.cata.modeleMetier : return
-      # mise a none ? le bloc n a pas d existence en pyxb
-      self.perePyxb=None
-      #print ('_______________________________________')
-      #print ('X_MCBLOC buildObjPyxb', self.nom, self, mc_list)
-      # on rattache ses fils au bloc mais leur pere sera ensuite le MCCOMPO qui contient le bloc 
-      # Pas sur d en avoir besoin du filsPyxb
-      self.filsPyxb=[]
-      self.objPyxb=None
-      for objAccas in mc_list :
-         self.filsPyxb.append(objAccas.objPyxb)
-      #print (self.filsPyxb)
-      #print ('Fin ', self.nom, self.objPyxb)
-      #print ('_______________________________________')
-
-        
-       
-
-class X_MCLIST (X_MCCOMPO):
-# --------------------------
-   def buildObjPyxb(self,mc_list):
-      #print ('__________________________________________________________________')
-      #print ('X_MCLIST buildObjPyxb traite ds X_MCLIST', self.nom, self)
-      #print ('on ne fait rien pour les MCLISTs, cela sera fait dans chaque MCFACT')
-      #print ('__________________________________________________________________')
-      pass
-
-
-class X_MCFACT (X_MCCOMPO):
-# -------------------------
-# on gere  au niveau du MCCOMPO
-      pass
-
-
-class X_JDC (X_MCCOMPO):
-# ---------------------
-   def  __init__(self):
-      #print ('_______________________________________')
-      #print ('X_JDC buildObjPyxb',  self)
-      if not self.cata or  not self.cata.modeleMetier : return
-      self.monNomClasseModeleMetier=self.code
-      self.maClasseModeleMetier=getattr(self.cata.modeleMetier,self.monNomClasseModeleMetier)
-      self.objPyxb=self.maClasseModeleMetier()
-      pyxb.GlobalValidationConfig._setContentInfluencesGeneration(pyxb.GlobalValidationConfig.ALWAYS)
-      pyxb.GlobalValidationConfig._setInvalidElementInContent(pyxb.GlobalValidationConfig.RAISE_EXCEPTION)
-      pyxb.GlobalValidationConfig._setOrphanElementInContent(pyxb.GlobalValidationConfig.RAISE_EXCEPTION)
-      #print ('fin buildObjPyxb _______________________________________')
-
-   def enregistreEtapePyxb(self,etape):
-     # OK seulement si sequence (choice ? ...)
-      if not self.cata or  not self.cata.modeleMetier : return
-      print ('enregistreEtapePyxb' , etape)
-      self.objPyxb.append(etape.objPyxb)
-      etape.perePyxb = self
-      #self.toXml()
-
-   def toXml(self):
-      if not self.cata or  not self.cata.modeleMetier : return
-      print ('***************',self.objPyxb,'***************',)
-      print ('***************',self.objPyxb.orderedContent(),'***************',)
-      print(self.objPyxb.toDOM().toprettyxml())
-      print(self.objPyxb.toxml())
-      return (self.objPyxb.toDOM().toprettyxml())
-        
-
-   def analyseFromXML(self):
-      print ("je suis ds analyseFromXML -- > appel ds analyse de I_JDC.py")
-      if not self.cata or  not self.cata.modeleMetier : return
-      if self.procedure == "" : return
-      self.objPyxb=self.cata.modeleMetier.CreateFromDocument(self.procedure)
-      for objEtape in self.objPyxb.content():
-          objEtape.dictArgs= (self.pyxbToDict(objEtape))
-          objEtape.monNomClasseAccas=objEtape._ExpandedName.localName()
-          objEtape.monNomClasseAccas=objEtape.monNomClasseAccas[2:]
-          objEtape.dictPyxb['objEnPyxb']=objEtape
-          objEtape.dictArgs['dicoPyxbDeConstruction']=objEtape.dictPyxb
-          maClasseAccas=getattr(self.cata,objEtape.monNomClasseAccas)
-          objAccasEtape=maClasseAccas(**(objEtape.dictArgs))
-          # attention objAccasEtape = None normal (cf buildSd)
-          #print ( 'hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh')
-          #print (objEtape , type(objEtape))
-          #print (objEtape.dictPyxb)
-          #print (maClasseAccas)
-          #print (objAccasEtape)
-          #print (objEtape.monNomClasseAccas, type(objEtape.monNomClasseAccas))
-          #print (objEtape._ExpandedName, type(objEtape._ExpandedName))
-          #print (objEtape.dictPyxb[u'experience'])
-          #print (objEtape.dictArgs)
-          #print (objEtape.dictPyxb)
-          #print ( 'hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh')
-          #exit()
-      
-
-   def pyxbToDict(self,objAAnalyser):
-    # la transformation de l objAAnalyser en type lu par eficas ne fonctionne pas pour tout
-    # faudrait - il travailler sur les types des objets ?
-    # c est a revoir -> fonction cast a prevoir ds les 2 sens
-    if not self.cata or  not self.cata.modeleMetier : return
-    if objAAnalyser is None: return
-    #print ('debut pour ',objAAnalyser)
-    dictArgs = {}
-    if isinstance(objAAnalyser, pyxb.binding.basis.simpleTypeDefinition): 
-       objAAnalyser.dictPyxb=objAAnalyser
-       #print (objAAnalyser.dictPyxb , type(objAAnalyser.dictPyxb))
-       if isinstance(objAAnalyser, pyxb.binding.basis.enumeration_mixin):    return str(objAAnalyser)
-       if isinstance(objAAnalyser, types.StringTypes):  return str(objAAnalyser)
-       if isinstance(objAAnalyser, types.FloatType):  return float(objAAnalyser)
-       if isinstance(objAAnalyser, (types.IntType, types.LongType)):  return int(objAAnalyser)
-       #if isinstance(objAAnalyser, (types.NoneType, types.BooleanType, types.FloatType, types.IntType, types.LongType)):
-       return repr(objAAnalyser)
-       # ou ? return objAAnalyser
-       #if isinstance(objAAnalyser, types.StringTypes): return pyxb.utils.utility.QuotedEscaped(objAAnalyser,)
-       #pour une enum getattr(value dans le type)
-       # return pythonLiteral(ReferenceFacet(facet=value, **kw))
-    objAAnalyser.dictPyxb = {} 
-    for expandedName, elementDeclaration in objAAnalyser._ElementMap.items():
-        objPyxbName  = expandedName.localName()
-        objPyxbValue = getattr(objAAnalyser, objPyxbName)
-        if objPyxbValue == None or objPyxbValue == [] : continue
-        if elementDeclaration.isPlural():
-            dictArgs[objPyxbName] = []
-            #objAAnalyser.dictPyxb[objPyxbName]={} 
-            objAAnalyser.dictPyxb[objPyxbName]=[] 
-            #objAAnalyser.dictPyxb['objEnPyxb']=objAAnalyser
-            for objPyxb in objPyxbValue : 
-                #print ('-------------',objPyxb)
-                dictArgs[objPyxbName].append(self.pyxbToDict(objPyxb))
-                objPyxb.dictPyxb['objEnPyxb'] = objPyxb
-                objAAnalyser.dictPyxb[objPyxbName].append(objPyxb.dictPyxb)
-        else:
-            dictArgs[objPyxbName] = self.pyxbToDict(getattr(objAAnalyser, objPyxbName))
-            #print ('ajout ds dico de ', objAAnalyser , 'de',  objPyxbName, objPyxbValue)
-            objAAnalyser.dictPyxb[objPyxbName] = objPyxbValue.dictPyxb
-            #print ('ajout ds dico de ', objPyxbValue.dictPyxb, 'de',  objPyxbName)
-            objAAnalyser.dictPyxb['objEnPyxb']=objAAnalyser
-    #print ("***********************************")
-    #print ('pyxbToDict  fin pour ********** ', objAAnalyser)
-    #print ('pyxbToDict ', objAAnalyser, objAAnalyser.dictPyxb)
-    #print ('pyxbToDict  fin pour ********** ', objAAnalyser)
-    #print ("***********************************")
-    #print (dictArgs)
-    #print (dictPyxb)
-    #for i in dictArgs.keys(): print (i, " ", dictArgs[i], " ", type(dictArgs[i]))
-    #print ('fin pour ',objAAnalyser)
-    return dictArgs
-
-   
-  
-
-if __name__ == "__main__":
-   print ('a faire')
index df53d55186fa550bce913bbd81d5459032f2476c..5b4f0e3bad684df41a50070961e4915c4e341a15 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
diff --git a/Efi2Xsd/ajoutBalise.py b/Efi2Xsd/ajoutBalise.py
new file mode 100644 (file)
index 0000000..21b8487
--- /dev/null
@@ -0,0 +1,6 @@
+debuttypeChaineAvecBlancs = '\t\t<xs:simpleType name="T_stg">\n\t\t\t <xs:restriction>\n\t\t\t <xs:simpleType>\n\t\t\t\t <xs:list>\n\t\t\t\t <xs:simpleType>\n\t\t\t\t\t <xs:restriction base="xs:string">'
+fintypeChaineAvecBlancs = '\t\t</xs:restriction>\n\t\t </xs:simpleType>\n\t\t </xs:list>\n\t\t </xs:simpleType>\n\t\t'
+
+SequenceChaineAvecBlancs = '\t\t<xs:complexType name="T_{}">\n\t\t\t  <xs:sequence> <xs:element name="stg" type="Vimmp:T_stg" minOccurs="1" maxOccurs="1" default="{}">n\t\t\t  <\xs:sequence>\n\t\t<xs:complexType name>\n'
+
+
index 4f2a4636888a2dd5823c4a5e5f69d3caaa1776ae..697629723eb5d1a0221a109a8b89764ec8dcc7ad 100644 (file)
@@ -27,27 +27,26 @@ eltCata = '\t<element name="{}" type="{}:{}"/>\n'
 
 
 if __name__ == '__main__' :
-   nomElt='Simple'
-   nomDuType='T_Simple'
-   nomDuTypeBase='int'
-   nomDuComplexe='T_Complexe'
-   nomDuCode='monCode'
-   minOccurs=1
-   maxOccurs=1
-
-   texteSimple=typeSimple.format(nomDuType, nomDuTypeBase)
-   texteElt=eltDsSequence.format(nomElt,nomDuCode,nomDuType,minOccurs,maxOccurs)
-
-   minOccurs=0
-   texteComplexe=debutTypeComplexe.format(nomDuComplexe)
-   texteComplexe+=texteElt
-   texteComplexe+=finTypeComplexe
-   texteEltComplexe=eltDsSequence.format(nomElt,nomDuCode,nomDuType,minOccurs,maxOccurs)
-
-   texteCata=debutTypeCata.format(nomDuCode)
-   texteCata+=texteEltComplexe
-   texteCata+=finTypeCata
-
-   eltRacine=eltCata.format(nomDuCode, 'T_'+nomDuCode)
-   print (texteSimple+texteComplexe+texteCata+eltRacine)
-
+    nomElt='Simple'
+    nomDuType='T_Simple'
+    nomDuTypeBase='int'
+    nomDuComplexe='T_Complexe'
+    nomDuCode='monCode'
+    minOccurs=1
+    maxOccurs=1
+
+    texteSimple=typeSimple.format(nomDuType, nomDuTypeBase)
+    texteElt=eltDsSequence.format(nomElt,nomDuCode,nomDuType,minOccurs,maxOccurs)
+
+    minOccurs=0
+    texteComplexe=debutTypeComplexe.format(nomDuComplexe)
+    texteComplexe+=texteElt
+    texteComplexe+=finTypeComplexe
+    texteEltComplexe=eltDsSequence.format(nomElt,nomDuCode,nomDuType,minOccurs,maxOccurs)
+
+    texteCata=debutTypeCata.format(nomDuCode)
+    texteCata+=texteEltComplexe
+    texteCata+=finTypeCata
+
+    eltRacine=eltCata.format(nomDuCode, 'T_'+nomDuCode)
+    print (texteSimple+texteComplexe+texteCata+eltRacine)
diff --git a/Efi2Xsd/balisesXSD.py b/Efi2Xsd/balisesXSD.py
new file mode 100644 (file)
index 0000000..a9becb5
--- /dev/null
@@ -0,0 +1,149 @@
+texteDebut='<?xml version="1.0" encoding="UTF-8"?>\n<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"\nxmlns="http://chercheurs.edf.com/logiciels/{}"\nxmlns:{}="http://chercheurs.edf.com/logiciels/{}"\ntargetNamespace="http://chercheurs.edf.com/logiciels/{}"\nelementFormDefault="qualified" attributeFormDefault="unqualified" version="0">\n'
+texteDebutNiveau2='<?xml version="1.0" encoding="UTF-8"?>\n<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"\nxmlns="http://chercheurs.edf.com/logiciels/{}"\nxmlns:{}="http://chercheurs.edf.com/logiciels/{}"\nxmlns:{}="http://chercheurs.edf.com/logiciels/{}"\ntargetNamespace="http://chercheurs.edf.com/logiciels/{}"\nelementFormDefault="qualified" attributeFormDefault="unqualified" version="0">\n'
+texteDebutNiveau3='<?xml version="1.0" encoding="UTF-8"?>\n<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"\nxmlns="http://chercheurs.edf.com/logiciels/{}"\nxmlns:{}="http://chercheurs.edf.com/logiciels/{}"\nxmlns:{}="http://chercheurs.edf.com/logiciels/{}"\nxmlns:{}="http://chercheurs.edf.com/logiciels/{}"\ntargetNamespace="http://chercheurs.edf.com/logiciels/{}"\nelementFormDefault="qualified" attributeFormDefault="unqualified" version="0">\n'
+texteFin='</xs:schema>'
+
+#texteAnnotation= '\t<xs:simpleType name="PNEFdico_{}">\n\t\t<xs:annotation>\n\t\t<xs:documentation>{}\n\t\t</xs:documentation>\n\t\t</xs:annotation>\n\t<xs:restriction base="xs:string"></xs:restriction>\n\t</xs:simpleType>\n'
+texteAnnotation= '\t<xs:simpleType name="PNEFdico">\n\t\t<xs:annotation>\n\t\t<xs:documentation>{}\n\t\t</xs:documentation>\n\t\t</xs:annotation>\n\t<xs:restriction base="xs:string"></xs:restriction>\n\t</xs:simpleType>\n'
+
+# SIMP
+debutSimpleType      = '\t<xs:simpleType name="{}">\n'
+debutSimpleTypeSsNom = '\t<xs:simpleType>\n'
+fermeSimpleType      = '\t</xs:simpleType>\n'
+debutRestrictionBase = '\t\t<xs:restriction base="{}">\n'
+fermeRestrictionBase = '\t\t</xs:restriction>\n'
+enumeration          = '\t\t\t<xs:enumeration value="{}"/>\n'
+maxInclusiveBorne    = '\t\t\t<xs:maxInclusive value = "{}"/>\n'
+minInclusiveBorne    = '\t\t\t<xs:minInclusive value = "{}"/>\n'
+
+debutTypeSimpleListe = '\t\t<xs:restriction>\n\t\t\t<xs:simpleType>\n\t\t\t\t<xs:list>\n\t\t\t\t\t<xs:simpleType>\n'
+finTypeSimpleListe   = '\t\t</xs:restriction>\n\t\t\t</xs:simpleType>\n\t\t\t\t</xs:list>\n\t\t\t\t\t</xs:simpleType>\n'
+fermeBalisesMileu    = '\t\t\t\t\t\t</xs:restriction>\n\t\t\t\t\t</xs:simpleType>\n\t\t\t\t</xs:list>\n\t\t\t </xs:simpleType>\n'
+
+maxLengthTypeSimple   = '\t\t\t<xs:maxLength value = "{}"/>\n'
+minLengthTypeSimple   = '\t\t\t<xs:minLength value = "{}"/>\n'
+eltDsSequence         = '\t\t\t<xs:element name="{}" type="{}:{}" minOccurs="{}" maxOccurs="{}"/>\n'
+eltDsSequenceWithHelp = '\t\t\t<xs:element name="{}" type="{}:{}" minOccurs="{}" maxOccurs="{}">\n\t\t\t\t<xs:annotation>\n\t\t\t\t\t<xs:documentation>{}</xs:documentation>\n\t\t\t\t</xs:annotation>\n\t\t\t</xs:element>\n'
+eltDsSequenceWithDefautAndHelp  = '\t\t\t<xs:element name="{}" type="{}:{}" minOccurs="{}" maxOccurs="{}" default="{}">\n\t\t\t\t<xs:annotation>\n\t\t\t\t\t<xs:documentation>{}</xs:documentation>\n\t\t\t\t</xs:annotation>\n\t\t\t</xs:element>\n'
+eltDsSequenceWithDefaut    = '\t\t\t<xs:element name="{}" type="{}:{}" minOccurs="{}" maxOccurs="{}" default="{}"/>\n'
+UsingASSDkeyRefDeclaration = '\n\t<xs:keyref name="{}_Name_ref_a{}" refer="{}:Key_Name_For_{}"> \n\t\t<xs:selector xpath="{}"/>\n\t\t<xs:field xpath="."/>\n\t</xs:keyref>\n'
+#    <xs:key name="Key_Name_For_ElementarySurface">
+#            <xs:selector xpath="./Vimmp:CDM/Vimmp:Geometric_Domain/Vimmp:Surface"/>
+#            <xs:field    xpath="./Vimmp:SurfaceName"/>
+#        </xs:key>
+
+     #<xs:keyref name="MyField_Ref_A_CreateMesh" refer="Test1:Key_Name_In_ReadMesh_CreateMesh">
+     #<xs:selector xpath="./Test1:MyField/Test1:onMesh"/>
+
+
+
+
+# COMPO
+debutTypeCompo      = '\t<xs:complexType name="{}" >\n'
+debutTypeCompoEtape = '\t <xs:complexContent>\n\t  <xs:extension base="T_step_{}">\n'
+finTypeCompoEtape   = '\t  </xs:extension>\n\t </xs:complexContent>\n'
+debutTypeCompoSeq   = '\t\t<xs:sequence>\n'
+finTypeCompoSeq     = '\t\t</xs:sequence>\n'
+finTypeCompo        = '\t</xs:complexType>\n'
+eltCompoDsSequence  = '\t\t\t<xs:element name="{}" type="{}:{}" minOccurs="{}" maxOccurs="{}"/>\n'
+eltCompoDsSequenceWithHelp = '\t\t\t<xs:element name="{}" type="{}:{}" minOccurs="{}" maxOccurs="{}"/>\n' 
+#name="{}" type="{}:{}" minOccurs="{}" maxOccurs="{}">\n\t\t\t\t<xs:annotation>\n\t\t\t\t\t<xs:documentation>{}</xs:documentation>\n\t\t\t\t</xs:annotation>\n\t\t\t</xs:element>\n'
+#eltCompoDsSequenceInExtension = '\t\t\t<xs:element name="{}" type="{}:{}"/>\n'
+
+# ETAPE
+eltEtape = '\t<xs:element name="{}" type="{}:{}" substitutionGroup="step_{}"/>\n'
+eltEtapeWithHelp = '\t<xs:element name="{}" type="{}:{}" substitutionGroup="step_{}">\n\t\t\t\t<xs:annotation>\n\t\t\t\t\t<xs:documentation>{}</xs:documentation>\n\t\t\t\t</xs:annotation>\n\t\t\t</xs:element>\n'
+
+# BLOC
+debutTypeSubst    = '\t<xs:group name="{}">   \n\t\t<xs:sequence>\n'
+finTypeSubst      = '\t\t</xs:sequence>\n\t</xs:group>\n'
+substDsSequence   = '\t\t\t<xs:group ref="{}:{}"  minOccurs="{}" maxOccurs="{}">\n\t\t\t\t<xs:annotation>\n\t\t\t\t\t<xs:documentation>{}</xs:documentation>\n\t\t\t\t</xs:annotation>\n\t\t\t</xs:group>\n'
+#choiceDsBloc     = '\t\t\t<xs:choice minOccurs={}>\n'
+debutChoiceDsBloc = '\t\t<xs:choice>\n'
+debutChoiceDsBlocAvecMin = '<xs:choice minOccurs="{}">\n'
+finChoiceDsBloc   = '\t\t</xs:choice>\n'
+debSequenceDsBloc = '<xs:sequence>\n'
+finSequenceDsBloc = '</xs:sequence>\n'
+debutTypeSubstDsBlocFactorise = '\t<xs:group name="{}">\n'
+finTypeSubstDsBlocFactorise   = '\t</xs:group>\n'
+debutUnion        = '\t\t\t<xs:union>\n'
+finUnion          = '\t\t\t</xs:union>\n'
+reconstitueUnion  = '{} maxOccurs="1">\n\t\t\t\t<xs:annotation>\n\t\t\t\t\t<xs:documentation>{}</xs:documentation>\n\t\t\t\t</xs:annotation>\n\t\t\t</xs:element>\n'
+
+
+
+# User OR ASSD
+attributeNameName    = '\t\t<xs:attribute name="sdName" type="xs:string"/>\n'
+attributeTypeForASSD = '\t\t<xs:attribute name="sdType" type="xs:string" fixed="ASSD"/>\n'
+attributeTypeUtilisateurName = '\t\t<xs:attribute name="typeUtilisateur" type="xs:string" fixed="{}"/>\n'
+producingASSDkeyRefDeclaration='\t<xs:key name="Key_Name_For_{}">\n\t\t<xs:selector xpath="."/>\n\t\t<xs:field xpath="{}"/>\n\t</xs:key>\n'
+texteFieldUnitaire="./{}:{}/@name |"
+defBaseXSDUserASSD='\t<xs:simpleType name="AccasUserAssd">\n\t\t<xs:restriction base="xs:string">\n\t\t</xs:restriction>\n\t</xs:simpleType>\n'
+defBaseXSDUserASSDMultiple='\t<xs:simpleType name="AccasUserAssdMultiple">\n\t\t<xs:restriction base="xs:string">\n\t\t</xs:restriction>\n\t</xs:simpleType>\n'
+
+defUserASSDMultiple='\t<xs:simpleType name="{}">\n\t\t<xs:restriction base="AccasUserAssdMultiple">\n\t\t</xs:restriction>\n\t</xs:simpleType>\n'
+defUserASSD ='\t<xs:simpleType name="{}">\n\t\t<xs:restriction base="AccasUserAssd">\n\t\t</xs:restriction>\n\t</xs:simpleType>\n'
+
+defUserASSDOrUserASSDMultiple='\t<xs:simpleType name="{}_{}">\n\t\t<xs:restriction base="{}">\n\t\t</xs:restriction>\n\t</xs:simpleType>\n'
+
+
+# CATA
+debutTypeCata     = '\t<xs:complexType name="T_{}">\n\t\t<xs:choice minOccurs="0" maxOccurs="unbounded">\n'
+debutTypeCataExtension = '\t<xs:complexType name="T_{}">\n'
+finTypeCata       = '\t\t</xs:choice>\n\t</xs:complexType>\n'
+finSchema         = '</xs:schema>'
+#eltCata           = '\t<xs:element name="{}" type="{}:{}"/>\n'
+#eltCodeSpecDsCata = '\t\t\t<xs:element ref="{}_Abstract" minOccurs="0" maxOccurs="1"/>\n'
+#fermeEltCata      = '\t</xs:element>\n'
+includeCata       = '<xs:include schemaLocation="cata_{}.xsd" />\n\n'
+
+
+# EXTENSION
+debutExtension = '\t\t<xs:complexContent>\n\t\t<xs:extension base="{}:T_{}_Abstract">\n\t\t<xs:choice minOccurs="0" maxOccurs="unbounded">\n'
+finExtension  = '\t\t</xs:choice>\n\t\t</xs:extension>\n\t\t</xs:complexContent>\n'
+
+# TYPE ABSTRAIT
+eltAbstraitCataPPal  = '\t<xs:complexType name="T_step_{}" abstract="true"/>\n'
+eltAbstraitCataFils  = '\t<xs:complexType name="T_step_{}" abstract="true">\n\t\t<xs:complexContent>\n\t\t\t<xs:extension base="{}:T_step_{}"/>\n\t\t</xs:complexContent>\n\t</xs:complexType>\n'
+eltCataPPal = '\t<xs:element name="step_{}" type="{}:T_step_{}"/>\n'
+eltCataPPalWithHelp = '\t<xs:element name="step_{}" type="{}:T_step_{}"/>\n\t\t\t\t<xs:annotation>\n\t\t\t\t\t<xs:documentation>{}</xs:documentation>\n\t\t\t\t</xs:annotation>\n\t\t\t</xs:element>\n'
+eltCataFils = '\t<xs:element name="step_{}" type="{}:T_step_{}" substitutionGroup="step_{}"/>\n'
+eltCataFilsWithHelp = '\t<xs:element name="step_{}" type="{}:T_step_{}" substitutionGroup="step_{}"/>\n\t\t\t\t<xs:annotation>\n\t\t\t\t\t<xs:documentation>{}</xs:documentation>\n\t\t\t\t</xs:annotation>\n\t\t\t</xs:element>\n'
+
+eltCata = '\t<xs:element name="{}" type="{}:T_{}"/>\n\t\t<xs:complexType name="T_{}">\n\t\t  <xs:choice minOccurs="0" maxOccurs="unbounded">\n\t\t\t<xs:element ref="step_{}" minOccurs="0" maxOccurs="1"/>\n\t\t  </xs:choice>\n\t\t</xs:complexType>\n'
+
+#\n\t<xs:element name="{}_Abstract" type="{}:T_{}_Abstract"/>\n'
+#implementeAbstrait  = '\t<xs:element name="{}" type="{}:{}" substitutionGroup="{}:{}_Abstract"/>\n'
+
+# MATRICE oldVersion
+# (_matrix ou pas ?)
+#matriceSimpleType = '\t<xs:simpleType name="{}_matrix">\n\t\t<xs:restriction>\n\t\t\t<xs:simpleType>\n\t\t\t\t<xs:list>\n\t\t\t\t\t<xs:simpleType>\n\t\t\t\t\t\t<xs:restriction  base="{}_element"/>\n\t\t\t\t\t</xs:simpleType>\n\t\t\t\t</xs:list>\n\t\t\t</xs:simpleType>\n\t\t\t<xs:length value="{}"/>\n\t\t</xs:restriction>\n\t</xs:simpleType>\n'
+#matriceSimpleType = '\t<xs:simpleType name="{}">\n\t\t<xs:restriction>\n\t\t\t<xs:simpleType>\n\t\t\t\t<xs:list>\n\t\t\t\t\t<xs:simpleType>\n\t\t\t\t\t\t<xs:restriction  base="{}_element"/>\n\t\t\t\t\t</xs:simpleType>\n\t\t\t\t</xs:list>\n\t\t\t</xs:simpleType>\n\t\t\t<xs:length value="{}"/>\n\t\t</xs:restriction>\n\t</xs:simpleType>\n'
+#matriceSimpleType +='\t<xs:group name="{}_lines">\n\t\t<xs:sequence>\n\t\t\t<xs:element name="{}" type="{}:{}_matrix" minOccurs="{}" maxOccurs="{}"/>\t\n\t\t</xs:sequence>\n\t</xs:group>\n\t\n'
+#matriceSimpleType +='\t<xs:group name="{}_lines">\n\t\t<xs:sequence>\n\t\t\t<xs:element name="{}" type="{}:{}" minOccurs="{}" maxOccurs="{}"/>\t\n\t\t</xs:sequence>\n\t</xs:group>\n\t\n'
+#matriceSimpleType +='\t<xs:group name="{}_content">\n\t\t<xs:sequence>\n\t\t\t<xs:group ref="{}:{}_lines" minOccurs="1" maxOccurs="1"/>\t\n\t\t</xs:sequence>\n\t</xs:group>'
+#eltMatrice = ' <xs:group ref="{}:{}_content" minOccurs="{}" maxOccurs="{}"/>'
+
+# TUPLE
+tupleNonHomogeneSimpleType = '\t<xs:simpleType name="{}_n{}_tuple">\n\t\t<xs:restriction base="{}"/>\n\t\t</xs:simpleType>\n'
+tupleNonHomogeneElt        = '\t\t\t<xs:element name="{}" type="{}:{}" minOccurs="{}" maxOccurs="{}"/>\n'
+tupleDebutComplexeType     = '\t<xs:complexType name="{}">\n\t\t<xs:sequence>'
+tupleMilieuComplexeType    = '\n\t\t\t<xs:element name="n{}" type="{}_n{}_tuple" minOccurs="1" maxOccurs="1"/>'
+tupleFinComplexeType       = '\n\t\t</xs:sequence>\n\t</xs:complexType>\n'
+
+# MATRICE
+eltMatrice = '\t\t\t <xs:element name="{}" type="{}:{}" minOccurs="{}" maxOccurs="{}"/>\n'
+matriceSimpleType = '\t<xs:simpleType name="{}_line">\n\t\t<xs:restriction>\n\t\t\t<xs:simpleType>\n\t\t\t\t<xs:list>\n\t\t\t\t\t<xs:simpleType>\n\t\t\t\t\t\t<xs:restriction  base="{}_element"/>\n\t\t\t\t\t</xs:simpleType>\n\t\t\t\t</xs:list>\n\t\t\t</xs:simpleType>\n\t\t\t<xs:length value="{}"/>\n\t\t</xs:restriction>\n\t</xs:simpleType>\n'
+matriceSimpleType +='\t<xs:group name="{}_matrix">\n\t\t<xs:sequence>\n\t\t\t<xs:element name="line" type="{}:{}_line" minOccurs="{}" maxOccurs="{}"/>\n\t\t </xs:sequence>\n\t</xs:group>\n'
+matriceSimpleType +='\t<xs:complexType name="{}"> \n\t\t<xs:group ref="{}:{}_matrix" minOccurs="1" maxOccurs="1"/>\n\t</xs:complexType>\n'
+
+# CHAINES AVEC BLANC
+debutChaineAvecBlancsInto  = '\t<xs:simpleType name="{}_enum">\n\t\t<xs:restriction base="xs:string">\n'
+milieuChaineAvecBlancsInto = '\t\t\t<xs:enumeration value="{}"/>\n'
+finChaineAvecBlancsInto    = '\t\t</xs:restriction>\n\t\t</xs:simpleType>\n'
+       
+complexChaineAvecBlancs = '\t<xs:complexType name="{}">\n\t\t<xs:sequence maxOccurs="{}">\n\t\t\t\t<xs:element name="s__" type="{}_enum"/>\n\t\t\t</xs:sequence>\n\t</xs:complexType>\n'
+
+typeEltChaineAvecBlancSansInto = '\t\t<xs:simpleType name="{}_enum">\n\t\t\t<xs:restriction base="xs:string">\n\t\t\t</xs:restriction>\n\t\t</xs:simpleType>'
+if __name__ == '__main__' :
+    print ('ne fait rien')
index cf099b11e34c5e846f7d0443b101e45f6a38a52b..85254f9431ff2d44f01b9cfd58ce3f0c71c87896 100644 (file)
@@ -15,7 +15,7 @@ import Atmo.raw.atmo_test3 as raw_custom
 
 import inspect
 def creationAccasSimp(c):
-    print c 
+    print c
 
 class toto
 def __init__(self,*args):
@@ -23,7 +23,7 @@ def __init__(self,*args):
     mro = type(self).mro()
     for next_class in mro[mro.index(ChildB) + 1:] :
         if hasattr(next_class, '__init__'):
-           next_class.__init__(self,args)
+            next_class.__init__(self,args)
 
 # Utility function to identify classes of interest
 def _isSupersedable (cls):
@@ -32,14 +32,14 @@ def _isSupersedable (cls):
 def _injectClasses ():
     import sys
     import pyxb.binding.basis
-    
+
     # All PyXB complex type definitions in the original module
     raw_classes = set([_o for (_, _o) in inspect.getmembers(raw_custom) if _isSupersedable(_o)])
     raw_classes_compo=set()
     raw_classes_simp=set()
     for c in raw_classes :
-      if issubclass(c,pyxb.binding.basis.complexTypeDefinition) : raw_classes_compo.add(c)
-      else : raw_classes_simp.add(c)
+        if issubclass(c,pyxb.binding.basis.complexTypeDefinition) : raw_classes_compo.add(c)
+        else : raw_classes_simp.add(c)
     #print 'Original classes complex type: %s' % (raw_classes_compo,)
     print 'Original classes simple type: %s' % (raw_classes_simp,)
     for c in raw_classes_simp:
@@ -48,14 +48,14 @@ def _injectClasses ():
         print c.__class__
         #setattr(c,'__init__',__init__)
         print c.__mro__
-    
+
     # PyXB complex type definitions in this module that did not come
     # from the original import *.
     this_module = sys.modules[__name__]
     this_classes = set([_o for (_, _o) in inspect.getmembers(this_module) if _isSupersedable(_o) and _o not in raw_classes])
     this_classes_tuple = tuple(this_classes)
     #print 'This classes: %s' % (this_classes,)
-    
+
     # Raw classes superseded by something in this module
     superseded_classes = set([ _o for _o in raw_classes if _o._SupersedingClass() in this_classes ])
     superseded_classes_tuple = tuple(superseded_classes)
index d90cbc128a658588a9551e494f315c07662ea126..5d8126db0cb212e5a64adcee8d210a69f709abb4 100755 (executable)
@@ -1,19 +1,19 @@
 class Tuple:
-  def __init__(self,ntuple):
-    self.ntuple=ntuple
+    def __init__(self,ntuple):
+        self.ntuple=ntuple
 
-  def __convert__(self,valeur):
-    if type(valeur) == types.StringType:
-      return None
-    if len(valeur) != self.ntuple:
-      return None
-    return valeur
+    def __convert__(self,valeur):
+        if type(valeur) == types.StringType:
+            return None
+        if len(valeur) != self.ntuple:
+            return None
+        return valeur
 
-  def info(self):
-    return "Tuple de %s elements" % self.ntuple
+    def info(self):
+        return "Tuple de %s elements" % self.ntuple
 
-  __repr__=info
-  __str__=info
+    __repr__=info
+    __str__=info
 
 
 
@@ -22,38 +22,38 @@ def inverseDico(dicoSource) :
     dicoInverse = {}
     for (clef,valeur) in dicoSource.items():
         if not(type(valeur) is tuple):
-           dicoInverse[valeur]=clef
-           continue
+            dicoInverse[valeur]=clef
+            continue
         (elt,att)=valeur
         if elt not in dicoInverse : dicoInverse[elt]={}
         dicoInverse[elt][att]=clef
     return dicoInverse
-     
+
 dictSIMPEficasXML= { 'typ'        : 'nomTypeAttendu',
-                     'statut'     : 'statut', 
+                     'statut'     : 'statut',
                      'min'        : 'minOccurences',
-                     'max'        : 'maxOccurences', 
-                     'homo'       : 'homo'       , 
-                     'position'   : 'portee', 
-                     'validators' : 'validators' , 
+                     'max'        : 'maxOccurences',
+                     'homo'       : 'homo'       ,
+                     'position'   : 'portee',
+                     'validators' : 'validators' ,
                      'sug'        : 'valeurSugg',
-                     'defaut'     : 'valeurDef' , 
-                     'into'       : ('plageValeur','into'), 
-                     'val_min'    : ('plageValeur','borneInf'), 
+                     'defaut'     : 'valeurDef' ,
+                     'into'       : ('plageValeur','into'),
+                     'val_min'    : ('plageValeur','borneInf'),
                      'val_max'    : ('plageValeur','borneSup'),
-                     'ang'        : ('doc','ang'), 
+                     'ang'        : ('doc','ang'),
                      'fr'         : ('doc','fr',),
                      'docu'       : ('doc','docu'),
                    }
 
 dictSIMPXMLEficas= inverseDico(dictSIMPEficasXML)
 
 
-dictFACTEficasXML = { 'statut'     : 'statut', 
+
+dictFACTEficasXML = { 'statut'     : 'statut',
                       'min'        : 'minOccurences',
-                      'max'        : 'maxOccurences', 
-                      'ang'        : ('doc','ang'), 
+                      'max'        : 'maxOccurences',
+                      'ang'        : ('doc','ang'),
                       'fr'         : ('doc','fr',),
                       'docu'       : ('doc','docu'),
                       'regles'     : 'regles',
@@ -62,8 +62,8 @@ dictFACTEficasXML = { 'statut'     : 'statut',
 
 dictFACTXMLEficas =  inverseDico(dictFACTEficasXML)
 
-dictBLOCEficasXML = { 'statut'     : 'statut', 
-                      'ang'        : ('doc','ang'), 
+dictBLOCEficasXML = { 'statut'     : 'statut',
+                      'ang'        : ('doc','ang'),
                       'fr'         : ('doc','fr',),
                       'regles'     : 'regles',
                       'condition'  : 'condition' ,
@@ -73,15 +73,10 @@ dictBLOCXMLEficas =  inverseDico(dictBLOCEficasXML)
 
 dictPROCEficasXML =  { 'nom'        : 'nom',
                        'regles'     : 'regles',
-                       'ang'        : ('doc','ang'), 
+                       'ang'        : ('doc','ang'),
                        'fr'         : ('doc','fr',),
                        'docu'       : ('doc','docu'),
                       }
-     #                  'UIinfo' : 'UIinfo'
-     #                  'reentrant'
-     #                  'repetable'
-     #                  'op_init'
-     #                  'fenetreIhm' : 'fenetreIhm'
 
 dictPROCXMLEficas = inverseDico(dictPROCEficasXML)
 
@@ -89,34 +84,34 @@ dictOPEREficasXML = dictPROCEficasXML
 dictOPERXMLEficas = dictPROCXMLEficas
 
 dictPourCast                = { 'I' : int, 'R' : float, 'bool' : bool ,   }
-dictNomsDesTypes = { 'I' : 'int', 'R' : 'float', bool : 'boolean' , 'TXM' : 'string', 'Fichier' : 'string', 'Repertoire':'string', 'FichierNoAbs' : 'string', 'FichierOuRepertoire':'string'   }
+dictNomsDesTypes = { 'I' : 'xs:int', 'R' : 'xs:float', bool : 'xs:boolean' , 'TXM' : 'xs:string', 'Fichier' : 'xs:string', 'Repertoire':'xs:string', 'FichierNoAbs' : 'xs:string', 'FichierOuRepertoire':'xs:string'   }
 
 listeParamDeTypeTypeAttendu = ( 'defaut', 'sug', 'val_min', 'val_max', 'into', 'intoSug')
 listeParamDeTypeStr         = ('fr', 'docu', 'ang', 'nom' )
 
 listeParamTjsSequence        = ('into' , 'intoSug')
-listeParamSelonType           = ('defaut', 'sug', 'into', 'intoSug') 
+listeParamSelonType           = ('defaut', 'sug', 'into', 'intoSug')
 
 if __name__ == "__main__":
-   import pprint
-   pp=pprint.PrettyPrinter(indent=4)
-   print ('dictSIMPEficasXML')
-   pp.pprint(dictSIMPEficasXML)
-   print ('\n\n')
-   print ('dictSIMPXMLEficas')
-   pp.pprint(dictSIMPXMLEficas)
-   print ('\n\n')
-   print ('dictFACTEficasXML')
-   pp.pprint(dictFACTEficasXML)
-   print ('\n\n')
-   print ('dictFACTXMLEficas')
-   pp.pprint(dictFACTXMLEficas)
-   print ('\n\n')
-   print ('dictPROCEficasXML')
-   pp.pprint(dictPROCEficasXML)
-   print ('\n\n')
-   print ('dictPROCXMLEficas')
-   pp.pprint(dictPROCXMLEficas)
-   print ('\n\n')
-   print ('dictNomsDesTypes')
-   pp.pprint(dictNomsDesTypes )
+    import pprint
+    pp=pprint.PrettyPrinter(indent=4)
+    print ('dictSIMPEficasXML')
+    pp.pprint(dictSIMPEficasXML)
+    print ('\n\n')
+    print ('dictSIMPXMLEficas')
+    pp.pprint(dictSIMPXMLEficas)
+    print ('\n\n')
+    print ('dictFACTEficasXML')
+    pp.pprint(dictFACTEficasXML)
+    print ('\n\n')
+    print ('dictFACTXMLEficas')
+    pp.pprint(dictFACTXMLEficas)
+    print ('\n\n')
+    print ('dictPROCEficasXML')
+    pp.pprint(dictPROCEficasXML)
+    print ('\n\n')
+    print ('dictPROCXMLEficas')
+    pp.pprint(dictPROCXMLEficas)
+    print ('\n\n')
+    print ('dictNomsDesTypes')
+    pp.pprint(dictNomsDesTypes )
index c98a16cda8a423454f7e6e7f9549812b5f9c123c..b519e99a2336b993b07249209dac64eccee33b06 100755 (executable)
@@ -303,7 +303,8 @@ if __name__ == "__main__":
 #   print dir(efficas.T_SIMP)
 
    #xml = open('cata_test1.xml').read()
-   xml = open('cata.xml').read()
+   with open('cata.xml') as fd :
+     xml=fd.read()
    SchemaMed = efficas.CreateFromDocument(xml)
    SchemaMed.exploreCata()
    #SchemaMed.dumpXSD()
diff --git a/EssaiInit/Cata_MED_FAM.xml b/EssaiInit/Cata_MED_FAM.xml
deleted file mode 100755 (executable)
index 75acb49..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<cata xmlns="http://chercheurs.edf.com/logiciels/efficas" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://chercheurs.edf.com/logiciels/efficas file:///Z:/home_fayolle/MED_SVN/PASCALE/XSD/Model%20Efficas%20(1.1)%20%20v5.xsd">\r
-<commandes>\r
-<PROC xmlns:efficas="http://chercheurs.edf.com/logiciels/efficas" efficas:nom="FAS">\r
-  <efficas:FACT efficas:nom="FAMILY_MESH_NAME_REF" efficas:statut="o" efficas:min_occurs="1" efficas:max_occurs="-1">\r
-               <SIMP efficas:nom="NAME" efficas:statut="o"><typeAttendu>TXM</typeAttendu></SIMP>\r
-               <efficas:FACT efficas:nom="ELEM" efficas:statut="f"  efficas:min_occurs="1" efficas:max_occurs="-1">\r
-<!--                <efficas:regles>\r
-                       --><!-- Ajouter des contraintes de vérification de la présence ATT et GRO --><!--\r
-                               <efficas:PRESENT_PRESENT>ATT GRO</efficas:PRESENT_PRESENT>\r
-                    </efficas:regles>-->\r
-                       <efficas:SIMP efficas:nom="NUM" efficas:statut="o" efficas:max_occurs="1"><typeAttendu>TXM</typeAttendu></efficas:SIMP>\r
-                       <efficas:SIMP efficas:nom="NAME" efficas:statut="o" efficas:max_occurs="1"><typeAttendu>TXM</typeAttendu></efficas:SIMP>\r
-                       <efficas:FACT efficas:nom="ATT" efficas:statut="f"  efficas:max_occurs="1">\r
-                               <SIMP efficas:nom="NBR" efficas:statut="o" efficas:max_occurs="1"><typeAttendu>I</typeAttendu></SIMP>\r
-                               <SIMP efficas:nom="DES" efficas:statut="o" efficas:max_occurs="-1"><typeAttendu>TXM</typeAttendu></SIMP>\r
-                               <SIMP efficas:nom="IDE" efficas:statut="o" efficas:max_occurs="-1"><typeAttendu>I</typeAttendu></SIMP>\r
-                               <SIMP efficas:nom="VAL" efficas:statut="o" efficas:max_occurs="-1"><typeAttendu>I</typeAttendu></SIMP>\r
-                       </efficas:FACT>\r
-                       <efficas:FACT efficas:nom="GRO" efficas:statut="f" efficas:max_occurs="1">\r
-                               <SIMP efficas:nom="NBR" efficas:statut="o" efficas:max_occurs="1"><typeAttendu>I</typeAttendu></SIMP>\r
-                           <SIMP efficas:nom="NOM" efficas:statut="o" efficas:max_occurs="-1"><typeAttendu>TXM</typeAttendu></SIMP>\r
-                       </efficas:FACT>\r
-               </efficas:FACT>\r
-       </efficas:FACT>\r
-</PROC>\r
-</commandes>\r
-</cata>\r
diff --git a/EssaiInit/Cata_MED_FAM.xml.mini b/EssaiInit/Cata_MED_FAM.xml.mini
deleted file mode 100755 (executable)
index 75acb49..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<cata xmlns="http://chercheurs.edf.com/logiciels/efficas" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://chercheurs.edf.com/logiciels/efficas file:///Z:/home_fayolle/MED_SVN/PASCALE/XSD/Model%20Efficas%20(1.1)%20%20v5.xsd">\r
-<commandes>\r
-<PROC xmlns:efficas="http://chercheurs.edf.com/logiciels/efficas" efficas:nom="FAS">\r
-  <efficas:FACT efficas:nom="FAMILY_MESH_NAME_REF" efficas:statut="o" efficas:min_occurs="1" efficas:max_occurs="-1">\r
-               <SIMP efficas:nom="NAME" efficas:statut="o"><typeAttendu>TXM</typeAttendu></SIMP>\r
-               <efficas:FACT efficas:nom="ELEM" efficas:statut="f"  efficas:min_occurs="1" efficas:max_occurs="-1">\r
-<!--                <efficas:regles>\r
-                       --><!-- Ajouter des contraintes de vérification de la présence ATT et GRO --><!--\r
-                               <efficas:PRESENT_PRESENT>ATT GRO</efficas:PRESENT_PRESENT>\r
-                    </efficas:regles>-->\r
-                       <efficas:SIMP efficas:nom="NUM" efficas:statut="o" efficas:max_occurs="1"><typeAttendu>TXM</typeAttendu></efficas:SIMP>\r
-                       <efficas:SIMP efficas:nom="NAME" efficas:statut="o" efficas:max_occurs="1"><typeAttendu>TXM</typeAttendu></efficas:SIMP>\r
-                       <efficas:FACT efficas:nom="ATT" efficas:statut="f"  efficas:max_occurs="1">\r
-                               <SIMP efficas:nom="NBR" efficas:statut="o" efficas:max_occurs="1"><typeAttendu>I</typeAttendu></SIMP>\r
-                               <SIMP efficas:nom="DES" efficas:statut="o" efficas:max_occurs="-1"><typeAttendu>TXM</typeAttendu></SIMP>\r
-                               <SIMP efficas:nom="IDE" efficas:statut="o" efficas:max_occurs="-1"><typeAttendu>I</typeAttendu></SIMP>\r
-                               <SIMP efficas:nom="VAL" efficas:statut="o" efficas:max_occurs="-1"><typeAttendu>I</typeAttendu></SIMP>\r
-                       </efficas:FACT>\r
-                       <efficas:FACT efficas:nom="GRO" efficas:statut="f" efficas:max_occurs="1">\r
-                               <SIMP efficas:nom="NBR" efficas:statut="o" efficas:max_occurs="1"><typeAttendu>I</typeAttendu></SIMP>\r
-                           <SIMP efficas:nom="NOM" efficas:statut="o" efficas:max_occurs="-1"><typeAttendu>TXM</typeAttendu></SIMP>\r
-                       </efficas:FACT>\r
-               </efficas:FACT>\r
-       </efficas:FACT>\r
-</PROC>\r
-</commandes>\r
-</cata>\r
diff --git a/EssaiInit/Cata_MED_FAM.xml.origin b/EssaiInit/Cata_MED_FAM.xml.origin
deleted file mode 100755 (executable)
index 75acb49..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<cata xmlns="http://chercheurs.edf.com/logiciels/efficas" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://chercheurs.edf.com/logiciels/efficas file:///Z:/home_fayolle/MED_SVN/PASCALE/XSD/Model%20Efficas%20(1.1)%20%20v5.xsd">\r
-<commandes>\r
-<PROC xmlns:efficas="http://chercheurs.edf.com/logiciels/efficas" efficas:nom="FAS">\r
-  <efficas:FACT efficas:nom="FAMILY_MESH_NAME_REF" efficas:statut="o" efficas:min_occurs="1" efficas:max_occurs="-1">\r
-               <SIMP efficas:nom="NAME" efficas:statut="o"><typeAttendu>TXM</typeAttendu></SIMP>\r
-               <efficas:FACT efficas:nom="ELEM" efficas:statut="f"  efficas:min_occurs="1" efficas:max_occurs="-1">\r
-<!--                <efficas:regles>\r
-                       --><!-- Ajouter des contraintes de vérification de la présence ATT et GRO --><!--\r
-                               <efficas:PRESENT_PRESENT>ATT GRO</efficas:PRESENT_PRESENT>\r
-                    </efficas:regles>-->\r
-                       <efficas:SIMP efficas:nom="NUM" efficas:statut="o" efficas:max_occurs="1"><typeAttendu>TXM</typeAttendu></efficas:SIMP>\r
-                       <efficas:SIMP efficas:nom="NAME" efficas:statut="o" efficas:max_occurs="1"><typeAttendu>TXM</typeAttendu></efficas:SIMP>\r
-                       <efficas:FACT efficas:nom="ATT" efficas:statut="f"  efficas:max_occurs="1">\r
-                               <SIMP efficas:nom="NBR" efficas:statut="o" efficas:max_occurs="1"><typeAttendu>I</typeAttendu></SIMP>\r
-                               <SIMP efficas:nom="DES" efficas:statut="o" efficas:max_occurs="-1"><typeAttendu>TXM</typeAttendu></SIMP>\r
-                               <SIMP efficas:nom="IDE" efficas:statut="o" efficas:max_occurs="-1"><typeAttendu>I</typeAttendu></SIMP>\r
-                               <SIMP efficas:nom="VAL" efficas:statut="o" efficas:max_occurs="-1"><typeAttendu>I</typeAttendu></SIMP>\r
-                       </efficas:FACT>\r
-                       <efficas:FACT efficas:nom="GRO" efficas:statut="f" efficas:max_occurs="1">\r
-                               <SIMP efficas:nom="NBR" efficas:statut="o" efficas:max_occurs="1"><typeAttendu>I</typeAttendu></SIMP>\r
-                           <SIMP efficas:nom="NOM" efficas:statut="o" efficas:max_occurs="-1"><typeAttendu>TXM</typeAttendu></SIMP>\r
-                       </efficas:FACT>\r
-               </efficas:FACT>\r
-       </efficas:FACT>\r
-</PROC>\r
-</commandes>\r
-</cata>\r
diff --git a/EssaiInit/README.txt b/EssaiInit/README.txt
deleted file mode 100644 (file)
index a167a89..0000000
+++ /dev/null
@@ -1 +0,0 @@
-pyxbgen -u model.xsd -m efficas --write-for-customization
diff --git a/EssaiInit/aide1 b/EssaiInit/aide1
deleted file mode 100644 (file)
index 96187ef..0000000
+++ /dev/null
@@ -1,256 +0,0 @@
-Factory 
-
-OPER 
-
-PROC 
-
-_Abstract 
-
-_AddElement 
-
-_AlternativeConstructor 
-
-_AttributeMap 
-
-_AttributeWildcard 
-
-_Automaton 
-
-_CT_ELEMENT_ONLY 
-
-_CT_EMPTY 
-
-_CT_MIXED 
-
-_CT_SIMPLE 
-
-_CompatibleValue 
-
-_ContentTypeTag 
-
-_DynamicCreate 
-
-_DynamicCreate_mixin__AlternativeConstructorAttribute 
-
-_DynamicCreate_mixin__SupersedingClassAttribute 
-
-_ElementBindingDeclForName 
-
-_ElementMap 
-
-_ExpandedName 
-
-_GetValidationConfig 
-
-_HasWildcardElement 
-
-_IsMixed 
-
-_IsSimpleTypeContent 
-
-_IsUrType 
-
-_Locatable_mixin__location 
-
-_Name 
-
-_PerformValidation 
-
-_PreFactory_vx 
-
-_PyXBFactoryKeywords 
-
-_RequireXSIType 
-
-_ReservedSymbols 
-
-_SetAlternativeConstructor 
-
-_SetSupersedingClass 
-
-_SetValidationConfig 
-
-_SupersedingClass 
-
-_T_commandes__OPER 
-
-_T_commandes__PROC 
-
-_TypeBinding_mixin__AttributesFromDOM 
-
-_TypeBinding_mixin__WarnedUnassociatedElement 
-
-_TypeBinding_mixin__checkNilCtor 
-
-_TypeBinding_mixin__constructedWithValue 
-
-_TypeBinding_mixin__element 
-
-_TypeBinding_mixin__getValidationConfig 
-
-_TypeBinding_mixin__namespaceContext 
-
-_TypeBinding_mixin__xsiNil 
-
-_TypeDefinition 
-
-_UseForTag 
-
-_XSDLocation 
-
-__class__ 
-
-__delattr__ 
-
-__dict__ 
-
-__doc__ 
-
-__format__ 
-
-__getattribute__ 
-
-__hash__ 
-
-__httpchercheurs_edf_comlogicielsefficas_T_commandes_httpchercheurs_edf_comlogicielsefficasOPER 
-
-__httpchercheurs_edf_comlogicielsefficas_T_commandes_httpchercheurs_edf_comlogicielsefficasPROC 
-
-__init__ 
-
-__module__ 
-
-__new__ 
-
-__reduce__ 
-
-__reduce_ex__ 
-
-__repr__ 
-
-__setattr__ 
-
-__sizeof__ 
-
-__str__ 
-
-__subclasshook__ 
-
-__weakref__ 
-
-_addContent 
-
-_appendWildcardElement 
-
-_automatonConfiguration 
-
-_complexTypeDefinition__NeedWarnOnContent 
-
-_complexTypeDefinition__WarnOnContent 
-
-_complexTypeDefinition__automatonConfiguration 
-
-_complexTypeDefinition__childrenForDOM 
-
-_complexTypeDefinition__content 
-
-_complexTypeDefinition__setContent 
-
-_complexTypeDefinition__wildcardAttributeMap 
-
-_complexTypeDefinition__wildcardElements 
-
-_constructedWithValue 
-
-_description 
-
-_diagnosticName 
-
-_element 
-
-_finalizeContentModel 
-
-_isNil 
-
-_location 
-
-_namespaceContext 
-
-_performValidation 
-
-_postDOMValidate 
-
-_postFactory_vx 
-
-_resetAutomaton 
-
-_resetContent 
-
-_setAttribute 
-
-_setAttributesFromKeywordsAndDOM 
-
-_setDOMFromAttributes 
-
-_setElement 
-
-_setIsNil 
-
-_setLocation 
-
-_setNamespaceContext 
-
-_setValidationConfig 
-
-_substitutesFor 
-
-_symbolSet 
-
-_toDOM_csc 
-
-_validateAttributes 
-
-_validateBinding_vx 
-
-_validatedChildren 
-
-_validationConfig 
-
-_validationConfig_ 
-
-append 
-
-content 
-
-extend 
-
-orderedContent 
-
-reset 
-
-toDOM 
-
-toxml 
-
-validateBinding 
-
-value 
-
-wildcardAttributeMap 
-
-wildcardElements 
-
-xsdConstraintsOK 
-
-_______________________
-je passe ds CreerAccas
-PlageValeur
-ValeurDef
-doc
-portee
-statut
-o
-typeAttendu
-TXM
-validators
-_______________________
diff --git a/EssaiInit/efficas.py b/EssaiInit/efficas.py
deleted file mode 100644 (file)
index 3304e8a..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-# -*- coding: utf-8 -*-
-from raw.efficas import *
diff --git a/EssaiInit/model.xsd b/EssaiInit/model.xsd
deleted file mode 100755 (executable)
index 53fe25a..0000000
+++ /dev/null
@@ -1,595 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!-- edited with XMLSpy v2014 rel. 2 (x64) (http://www.altova.com) by BC (ED) -->\r
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" xmlns="http://chercheurs.edf.com/logiciels/efficas" xmlns:efficas="http://chercheurs.edf.com/logiciels/efficas" xmlns:altova="http://www.altova.com/xml-schema-extensions" targetNamespace="http://chercheurs.edf.com/logiciels/efficas" elementFormDefault="qualified" attributeFormDefault="unqualified" version="0" vc:minVersion="1.1">\r
-       <xs:element name="doc" type="T_doc"/>\r
-       <xs:element name="cata" type="T_cata"/>\r
-       <xs:element name="regles" type="T_regles"/>\r
-       <xs:element name="typeCree" type="T_classe_utilisateur"/>\r
-       <xs:element name="ValeurDef" type="T_typeAttendu"/>\r
-       <xs:element name="ValeurSugg" type="T_typeAttendu"/>\r
-       <xs:element name="fonction_utilisateur" type="T_fonction_python"/>\r
-       <xs:element name="commandes" type="T_commandes">\r
-               <xs:unique name="Uniq_Command">\r
-                       <xs:selector xpath="*"/>\r
-                       <xs:field xpath="@efficas:nom"/>\r
-               </xs:unique>\r
-               <xs:key name="Uniq_Name_In_Oper">\r
-                       <xs:annotation>\r
-                               <xs:documentation>SIMP devrait être selectionné que si .//SIMP[portee='Global']</xs:documentation>\r
-                       </xs:annotation>\r
-                       <xs:selector xpath="./OPER/BLOC |./OPER/FACT|./OPER/SIMP"/>\r
-                       <xs:field xpath="@efficas:nom"/>\r
-               </xs:key>\r
-               <xs:keyref name="Ref_A_Name_In_Oper" refer="Uniq_Name_In_Oper">\r
-                       <xs:selector xpath="./OPER/regles"/>\r
-                       <xs:field xpath="EXCLUS"/>\r
-               </xs:keyref>\r
-               <xs:key name="Uniq_Name_In_Proc">\r
-                       <xs:annotation>\r
-                               <xs:documentation>SIMP devrait être selectionné que si .//SIMP[portee='Global']</xs:documentation>\r
-                       </xs:annotation>\r
-                       <xs:selector xpath="./PROC/BLOC | ./PROC/FACT| ./PROC/SIMP"/>\r
-                       <xs:field xpath="@efficas:nom"/>\r
-               </xs:key>\r
-               <xs:keyref name="Ref_A_Name_In_Proc" refer="Uniq_Name_In_Proc">\r
-                       <xs:selector xpath="./PROC/regles"/>\r
-                       <xs:field xpath="EXCLUS"/>\r
-               </xs:keyref>\r
-       </xs:element>\r
-       <xs:element name="validators" type="T_validators"/>\r
-       <xs:element name="PlageValeur" type="T_PlageValeur"/>\r
-       <xs:element name="typeAttendu" type="T_name"/>\r
-       <xs:element name="classeUtilisateurName" type="T_classe_utilisateur_username" abstract="true" substitutionGroup="typeAttendu"/>\r
-       <xs:element name="SIMP" type="T_SIMP"/>\r
-       <xs:element name="portee" type="T_portee" default="None"/>\r
-       <xs:element name="condition" type="T_fonction_python"/>\r
-       <xs:element name="borne_sup" type="T_typeAttendu"/>\r
-       <xs:element name="borne_inf" type="T_typeAttendu"/>\r
-       <!--    <xs:element name="into" type="T_into"/>-->\r
-       <xs:element name="into" type="T_into"/>\r
-       <!--    <xs:element name="into_plus_fonction" type="T_into" abstract="true" substitutionGroup="into"/>-->\r
-       <xs:attribute name="nom" type="AT_nom"/>\r
-       <xs:attribute name="ag" type="AT_ag"/>\r
-       <xs:attribute name="fr" type="xs:string"/>\r
-       <xs:attribute name="ang" type="xs:string"/>\r
-       <xs:attribute name="docu" type="AT_docu"/>\r
-       <xs:attribute name="valeur_sugg" type="AT_valeur_sugg"/>\r
-       <xs:attribute name="statut" type="AT_statut" default="o"/>\r
-       <xs:attribute name="max_occurs" type="AT_max_occurs"/>\r
-       <xs:attribute name="min_occurs" type="AT_min_occurs"/>\r
-       <xs:attribute name="subroutine" type="AT_subroutine" default="None"/>\r
-       <xs:complexType name="T_doc">\r
-               <xs:attribute ref="fr" use="optional"/>\r
-               <xs:attribute ref="ang"/>\r
-               <xs:attribute ref="docu"/>\r
-       </xs:complexType>\r
-       <xs:complexType name="T_cata">\r
-               <xs:sequence>\r
-                       <xs:element ref="commandes" minOccurs="0" maxOccurs="unbounded"/>\r
-               </xs:sequence>\r
-       </xs:complexType>\r
-       <xs:complexType name="T_commandes">\r
-               <xs:choice minOccurs="0" maxOccurs="unbounded">\r
-                       <xs:element ref="OPER"/>\r
-                       <xs:element ref="PROC"/>\r
-               </xs:choice>\r
-       </xs:complexType>\r
-       <xs:complexType name="T_Cardinalite"/>\r
-       <xs:complexType name="T_PlageValeur">\r
-               <xs:choice>\r
-                       <xs:sequence>\r
-                               <xs:element ref="borne_sup" minOccurs="0"/>\r
-                               <xs:element ref="borne_inf" minOccurs="0"/>\r
-                       </xs:sequence>\r
-                       <xs:element ref="into"/>\r
-               </xs:choice>\r
-       </xs:complexType>\r
-       <xs:complexType name="T_Accas.Common">\r
-               <xs:sequence>\r
-                       <xs:element ref="regles" minOccurs="0"/>\r
-                       <xs:element ref="doc" minOccurs="0"/>\r
-                       <xs:choice maxOccurs="unbounded">\r
-                               <xs:element ref="BLOC"/>\r
-                               <xs:element ref="FACT"/>\r
-                               <xs:element ref="SIMP"/>\r
-                       </xs:choice>\r
-               </xs:sequence>\r
-               <xs:attribute ref="nom" use="required"/>\r
-       </xs:complexType>\r
-       <xs:element name="OPER" type="T_OPER"/>\r
-       <xs:complexType name="T_OPER">\r
-               <xs:complexContent>\r
-                       <xs:extension base="T_Accas.Common">\r
-                               <xs:sequence>\r
-                                       <xs:element ref="typeCree"/>\r
-                               </xs:sequence>\r
-                               <xs:attribute ref="subroutine"/>\r
-                       </xs:extension>\r
-               </xs:complexContent>\r
-       </xs:complexType>\r
-       <xs:element name="PROC" type="T_PROC">\r
-               <xs:unique name="Uniqb_NAme_In_PRoc">\r
-                       <xs:selector xpath="BLOC|FACT|SIMP"/>\r
-                       <xs:field xpath="@efficas:nom"/>\r
-               </xs:unique>\r
-       </xs:element>\r
-       <xs:complexType name="T_PROC">\r
-               <xs:complexContent>\r
-                       <xs:extension base="T_Accas.Common">\r
-                               <xs:attribute ref="subroutine"/>\r
-                       </xs:extension>\r
-               </xs:complexContent>\r
-       </xs:complexType>\r
-       <xs:element name="FACT" type="T_FACT"/>\r
-       <!--    <xs:complexType name="T_FACT">\r
-               <xs:complexContent>\r
-                       <xs:restriction base="T_Accas.Common">\r
-                               <xs:sequence>\r
-                                       <xs:element ref="regles" minOccurs="0"/>\r
-                                       <xs:element ref="doc" minOccurs="0"/>\r
-                                       <xs:choice maxOccurs="unbounded">\r
-                                               <xs:element ref="BLOC"/>\r
-                                               <xs:element ref="FACT"/>\r
-                                               <xs:element ref="SIMP"/>\r
-                                       </xs:choice>\r
-                               </xs:sequence>\r
-                       </xs:restriction>\r
-               </xs:complexContent>\r
-       </xs:complexType>-->\r
-       <xs:complexType name="T_FACT">\r
-               <xs:complexContent>\r
-                       <xs:extension base="T_Accas.Common">\r
-                               <xs:attribute ref="statut"/>\r
-                               <xs:attribute ref="min_occurs" default="1"/>\r
-                               <xs:attribute ref="max_occurs" default="1">\r
-                                       <xs:annotation>\r
-                                               <xs:documentation>La valuer -1 equivaut à oo</xs:documentation>\r
-                                       </xs:annotation>\r
-                               </xs:attribute>\r
-                               <xs:assert test=".[exists(@efficas:max_occurs) and exists(@efficas:min_occurs) and @efficas:max_occurs  gt @efficas:min_occurs]"/>\r
-                               <!--<xs:assert test="if (.[exists(@efficas:max_occurs)] and .[exists(@efficas:min_occurs)] ) then (@efficas:max_occurs  gt @efficas:min_occurs) or @efficas:max_occurs = -1 else true" altova:message="Erreur max_occurs  > min_occurs "/>-->\r
-                       </xs:extension>\r
-               </xs:complexContent>\r
-       </xs:complexType>\r
-       <xs:simpleType name="T_fonction_python">\r
-               <xs:restriction base="xs:string"/>\r
-       </xs:simpleType>\r
-       <xs:element name="BLOC" type="T_BLOC"/>\r
-       <xs:complexType name="T_BLOC">\r
-               <xs:complexContent>\r
-                       <xs:extension base="T_Accas.Common">\r
-                               <xs:sequence>\r
-                                       <xs:element ref="condition"/>\r
-                               </xs:sequence>\r
-                       </xs:extension>\r
-               </xs:complexContent>\r
-       </xs:complexType>\r
-       <xs:complexType name="T_SIMP">\r
-               <xs:sequence>\r
-                       <xs:element ref="doc" minOccurs="0"/>\r
-                       <xs:element ref="portee" minOccurs="0">\r
-                               <xs:annotation>\r
-                                       <xs:documentation>La portée pouurait devenir un attribut de SIMP. Une autre solution consisterait a créer un SIMPG pour distinguer les @nom uniques des SIMP a portée globale des autres.</xs:documentation>\r
-                               </xs:annotation>\r
-                       </xs:element>\r
-                       <xs:element ref="ValeurDef" minOccurs="0"/>\r
-                       <xs:element ref="ValeurSugg" minOccurs="0"/>\r
-                       <xs:element ref="PlageValeur" minOccurs="0"/>\r
-                       <xs:element ref="typeAttendu"/>\r
-                       <xs:element ref="validators" minOccurs="0"/>\r
-               </xs:sequence>\r
-               <xs:attribute ref="nom" use="required"/>\r
-               <xs:attribute ref="statut"/>\r
-               <xs:attribute ref="min_occurs" default="1"/>\r
-               <xs:attribute ref="max_occurs" default="1">\r
-                       <xs:annotation>\r
-                               <xs:documentation>La valuer -1 equivaut à oo</xs:documentation>\r
-                       </xs:annotation>\r
-               </xs:attribute>\r
-       </xs:complexType>\r
-       <xs:simpleType name="AT_statut">\r
-               <xs:restriction base="xs:string">\r
-                       <xs:enumeration value="f"/>\r
-                       <xs:enumeration value="o"/>\r
-               </xs:restriction>\r
-       </xs:simpleType>\r
-       <!--<xs:simpleType name="T_repetable">\r
-               <xs:restriction base="xs:string">\r
-                       <xs:enumeration value="n"/>\r
-                       <xs:enumeration value="o"/>\r
-               </xs:restriction>\r
-       </xs:simpleType>-->\r
-       <xs:simpleType name="T_portee">\r
-               <xs:restriction base="xs:string">\r
-                       <xs:enumeration value="None"/>\r
-                       <xs:enumeration value="Global"/>\r
-               </xs:restriction>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="AT_max_occurs">\r
-               <xs:restriction base="xs:long">\r
-                       <xs:minInclusive value="-1"/>\r
-               </xs:restriction>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="AT_min_occurs">\r
-               <xs:restriction base="xs:long">\r
-                       <xs:minExclusive value="0"/>\r
-               </xs:restriction>\r
-       </xs:simpleType>\r
-       <!-- Comparable -->\r
-       <!--    <xs:simpleType name="AT_borne_sup">\r
-       <xs:atomic base="xs:double"/>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="AT_borne_inf">\r
-               <xs:restriction base="xs:double"/>\r
-       </xs:simpleType>\r
--->\r
-       <xs:simpleType name="AT_ag">\r
-               <xs:restriction base="xs:string">\r
-                       <xs:enumeration value="No comment"/>\r
-               </xs:restriction>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="AT_docu">\r
-               <xs:annotation>\r
-                       <xs:documentation>Référence une position dans un fichier maître contenant une liste de références à des pages de documentations</xs:documentation>\r
-               </xs:annotation>\r
-               <xs:restriction base="xs:string"/>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="AT_valeur_sugg">\r
-               <xs:restriction base="xs:string"/>\r
-       </xs:simpleType>\r
-       <!-- TODO: Exclure mots clés python|efficas -->\r
-       <xs:simpleType name="AT_nom">\r
-               <xs:restriction base="xs:string">\r
-                       <xs:pattern value="([A-Z]|[a-z]|_)([A-Z]|[a-z]|_|[0-9])*"/>\r
-               </xs:restriction>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="T_predicat1">\r
-               <xs:list itemType="AT_nom"/>\r
-               <!-- TODO: Supprimer la liste -->\r
-       </xs:simpleType>\r
-       <xs:complexType name="T_predicat2">\r
-               <xs:sequence>\r
-                       <xs:element name="p1" type="T_predicat1" minOccurs="1"/>\r
-                       <xs:element name="p2" type="AT_nom" minOccurs="1"/>\r
-               </xs:sequence>\r
-               <!-- TODO: Supprimer la séquence -->\r
-       </xs:complexType>\r
-       <xs:element name="A_CLASSER" type="T_predicat2"/>\r
-       <xs:element name="AU_MOINS_UN" type="T_predicat1"/>\r
-       <xs:element name="AU_PLUS_UN" type="T_predicat1"/>\r
-       <xs:element name="ENSEMBLE" type="T_predicat1"/>\r
-       <xs:element name="EXCLUS" type="T_predicat1">\r
-               <!-- A priori, ce n'est pas l'endroit pour le placer : ? scope de Uniq_Command-->\r
-               <!--            <xs:keyref name="referToAnAlreadyDefinedName" refer="Uniq_Command">\r
-                       <xs:selector xpath="."/>\r
-                       <xs:field xpath="."/>\r
-               </xs:keyref>\r
--->\r
-       </xs:element>\r
-       <xs:element name="PRESENT_ABSENT" type="T_predicat1"/>\r
-       <xs:element name="PRESENT_PRESENT" type="T_predicat1"/>\r
-       <xs:element name="UN_PARMI" type="T_predicat1"/>\r
-       <xs:group name="predicat">\r
-               <xs:choice>\r
-                       <xs:element ref="A_CLASSER"/>\r
-                       <xs:element ref="AU_MOINS_UN"/>\r
-                       <xs:element ref="AU_PLUS_UN"/>\r
-                       <xs:element ref="ENSEMBLE"/>\r
-                       <xs:element ref="EXCLUS">\r
-                               <!-- A priori, ce n'est pas l'endroit pour le placer -->\r
-                               <!--                            <xs:keyref name="referToAnAlreadyDefinedName" refer="/Uniq_Command">\r
-                                       <xs:selector xpath="."/>\r
-                                       <xs:field xpath="."/>\r
-                               </xs:keyref>\r
--->\r
-                       </xs:element>\r
-                       <xs:element ref="PRESENT_ABSENT"/>\r
-                       <xs:element ref="PRESENT_PRESENT"/>\r
-                       <xs:element ref="UN_PARMI"/>\r
-               </xs:choice>\r
-       </xs:group>\r
-       <xs:complexType name="T_regles">\r
-               <xs:sequence maxOccurs="unbounded">\r
-                       <xs:group ref="predicat"/>\r
-               </xs:sequence>\r
-       </xs:complexType>\r
-       <!--    <xs:simpleType name="T_typeCree">\r
-               <xs:restriction base="T_classe_utilisateur"/>\r
-       </xs:simpleType>\r
--->\r
-       <xs:simpleType name="AT_subroutine">\r
-               <xs:restriction base="AT_nom"/>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="T_validators">\r
-               <xs:restriction base="xs:string">\r
-                       <xs:enumeration value="NoRepeat"/>\r
-                       <xs:enumeration value="OnlyStr"/>\r
-                       <xs:enumeration value="VerifExiste"/>\r
-                       <xs:enumeration value="VerifTypeTuple"/>\r
-               </xs:restriction>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="T_Bool">\r
-               <xs:restriction base="xs:boolean"/>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="T_list_Bool">\r
-               <xs:list itemType="T_Bool"/>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="T_I">\r
-               <xs:restriction base="xs:int"/>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="T_list_I">\r
-               <xs:list itemType="T_I"/>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="T_R">\r
-               <xs:restriction base="xs:double"/>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="T_list_R">\r
-               <xs:list itemType="T_R"/>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="T_TXM">\r
-               <xs:restriction base="AT_nom"/>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="T_list_TXM">\r
-               <xs:list itemType="T_TXM"/>\r
-       </xs:simpleType>\r
-       <!--fonctionne mais ne permet pas de créer une liste de liste -->\r
-       <xs:simpleType name="T_C">\r
-               <xs:restriction>\r
-                       <xs:simpleType>\r
-                               <xs:list itemType="xs:double"/>\r
-                       </xs:simpleType>\r
-                       <xs:minLength value="2"/>\r
-                       <xs:maxLength value="2"/>\r
-               </xs:restriction>\r
-       </xs:simpleType>\r
-       <!-- Ajouter une contrainte : taille pair -->\r
-       <!-- Il n'est pas possible de définir des listes de listes -->\r
-       <xs:simpleType name="T_list_C">\r
-               <xs:list itemType="xs:double"/>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="T_name_base">\r
-               <xs:restriction base="AT_nom"/>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="T_simple_name">\r
-               <xs:restriction base="T_name_base">\r
-                       <xs:enumeration value="Fichier"/>\r
-                       <xs:enumeration value="Repertoire"/>\r
-                       <xs:enumeration value="TXM"/>\r
-                       <xs:enumeration value="I"/>\r
-                       <xs:enumeration value="R"/>\r
-                       <xs:enumeration value="C"/>\r
-                       <xs:enumeration value="Bool"/>\r
-                       <xs:enumeration value="grma"/>\r
-                       <xs:enumeration value="grno"/>\r
-                       <xs:enumeration value="SalomeEntry"/>\r
-               </xs:restriction>\r
-       </xs:simpleType>\r
-       <!-- On ne peut pas rendre abstrait un simpleType && \r
-          Il n'est pas possible de dérivé par restriction un simplecontent d'un type complex qui\r
-          lui peut être abstrait\r
-    -->\r
-       <xs:simpleType name="T_classe_utilisateur_name">\r
-               <xs:restriction base="T_name">\r
-                       <xs:enumeration value="T_classe_utilisateur"/>\r
-               </xs:restriction>\r
-       </xs:simpleType>\r
-       <xs:complexType name="T_classe_utilisateur_username">\r
-               <xs:simpleContent>\r
-                       <xs:extension base="T_classe_utilisateur_name">\r
-                               <xs:attribute ref="nom" use="required"/>\r
-                       </xs:extension>\r
-               </xs:simpleContent>\r
-       </xs:complexType>\r
-       <xs:simpleType name="T_name">\r
-               <xs:union memberTypes="T_simple_name">\r
-                       <xs:simpleType>\r
-                               <xs:restriction base="AT_nom">\r
-                                       <xs:enumeration value="T_Matrice_double"/>\r
-                                       <xs:enumeration value="T_Matrice_Symetrique_double"/>\r
-                                       <xs:enumeration value="T_tuple"/>\r
-                                       <xs:enumeration value="T_classe_utilisateur"/>\r
-                               </xs:restriction>\r
-                       </xs:simpleType>\r
-               </xs:union>\r
-       </xs:simpleType>\r
-       <xs:complexType name="T_grma"/>\r
-       <xs:complexType name="T_grno"/>\r
-       <xs:complexType name="T_SalomeEntry"/>\r
-       <xs:complexType name="T_Fichier"/>\r
-       <!--    <xs:complexType name="T_Repertoire"/>-->\r
-       <xs:simpleType name="T_Repertoire">\r
-               <xs:list>\r
-                       <xs:simpleType>\r
-                               <xs:restriction base="xs:string">\r
-                                       <xs:whiteSpace value="preserve"/>\r
-                               </xs:restriction>\r
-                       </xs:simpleType>\r
-               </xs:list>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="T_simple">\r
-               <xs:union memberTypes="T_I T_list_I T_R T_list_R T_C T_list_C T_TXM T_list_TXM T_Bool T_list_Bool T_Repertoire"/>\r
-       </xs:simpleType>\r
-       <!--    <xs:complexType name="T_TXM"/>-->\r
-       <!--    <xs:simpleType name="T_simple">\r
-               <xs:restriction base="xs:string">\r
-                       <xs:enumeration value="Fichier"/>\r
-                       <xs:enumeration value="Repertoire"/>\r
-                       <xs:enumeration value="TXM"/>\r
-                       <xs:enumeration value="I"/>\r
-                       <xs:enumeration value="R"/>\r
-                       <xs:enumeration value="C"/>\r
-                       <xs:enumeration value="Bool"/>\r
-                       <xs:enumeration value="grma"/>\r
-                       <xs:enumeration value="grno"/>\r
-                       <xs:enumeration value="SalomeEntry"/>\r
-               </xs:restriction>\r
-       </xs:simpleType>\r
--->\r
-       <xs:simpleType name="T_list_double">\r
-               <xs:list itemType="xs:double"/>\r
-       </xs:simpleType>\r
-       <!-- Possibilité d'utiliser un type paramétré ? -->\r
-       <xs:complexType name="T_Matrice_double">\r
-               <xs:simpleContent>\r
-                       <xs:extension base="T_list_double">\r
-                               <xs:attribute name="n" type="xs:integer" use="required"/>\r
-                               <xs:attribute name="m" type="xs:integer" use="required"/>\r
-                       </xs:extension>\r
-               </xs:simpleContent>\r
-       </xs:complexType>\r
-       <!-- Faire l'exercice de dériver de T_Matrice_double -->\r
-       <xs:complexType name="T_Matrice_Symetrique_double">\r
-               <xs:simpleContent>\r
-                       <xs:extension base="T_list_double">\r
-                               <xs:attribute name="n" type="xs:int" use="required"/>\r
-                       </xs:extension>\r
-               </xs:simpleContent>\r
-       </xs:complexType>\r
-       <!-- Une liste est aussi un type simple !!!! -->\r
-       <!--    <xs:simpleType name="T_list_anySimpleType">\r
-               <xs:list itemType="xs:anySimpleType"/>\r
-       </xs:simpleType>\r
--->\r
-       <!-- Le fait de ne pas déclarer une liste risque d'être problématique pour le parsing : A voir-->\r
-       <xs:complexType name="T_tuple">\r
-               <xs:simpleContent>\r
-                       <xs:extension base="xs:anySimpleType">\r
-                               <xs:attribute name="n" type="xs:int" use="required"/>\r
-                       </xs:extension>\r
-               </xs:simpleContent>\r
-       </xs:complexType>\r
-       <xs:simpleType name="T_classe_utilisateur">\r
-               <xs:restriction base="AT_nom"/>\r
-       </xs:simpleType>\r
-       <xs:element name="typesimple" type="T_simple"/>\r
-       <xs:element name="matrice_double" type="T_Matrice_double"/>\r
-       <xs:element name="matrice_symetrique_double" type="T_Matrice_Symetrique_double"/>\r
-       <xs:element name="tuple" type="T_tuple"/>\r
-       <xs:element name="classe_utilisateur" type="T_classe_utilisateur"/>\r
-       <!-- Essai -->\r
-       <!--    <xs:group name="T_Attendu_group1">\r
-               <xs:choice>\r
-                       <xs:element ref="typesimple"/>\r
-                       <xs:element ref="matrice_double"/>\r
-                       <xs:element ref="matrice_symetrique_double"/>\r
-                       <xs:element ref="tuple"/>\r
-                       <xs:element ref="classe_utilisateur"/>\r
-               </xs:choice>\r
-       </xs:group>\r
-\r
-       <xs:group name="T_Attendu_group2">\r
-               <xs:choice>\r
-                       <xs:element ref="typesimple"/>\r
-                       <xs:element ref="matrice_double"/>\r
-                       <xs:element ref="matrice_symetrique_double"/>\r
-                       <xs:element ref="tuple"/>\r
-                       <xs:element ref="classe_utilisateur"/>\r
-                       <xs:element ref="fonction_utilisateur" minOccurs="1" maxOccurs="unbounded"/>\r
-               </xs:choice>\r
-       </xs:group>\r
-\r
-       <xs:complexType name="T_typeAttendu">\r
-               <xs:group ref="T_Attendu_group1"/>\r
-       </xs:complexType>\r
-       -->\r
-       <!-- Faire plutot un groupe de substitution pour ne pas croiser les choix -->\r
-       <!--\r
-       <xs:complexType name="T_into">\r
-         <xs:group ref="T_Attendu_group2"/>\r
-       </xs:complexType>\r
-       -->\r
-       <xs:complexType name="T_into">\r
-               <xs:choice>\r
-                       <!--                    <xs:element ref="typesimple" type="T_Base"/>-->\r
-                       <xs:element ref="typesimple" minOccurs="0" maxOccurs="unbounded"/>\r
-                       <xs:element ref="matrice_double" minOccurs="0" maxOccurs="unbounded"/>\r
-                       <xs:element ref="matrice_symetrique_double" minOccurs="0" maxOccurs="unbounded"/>\r
-                       <xs:element ref="tuple" minOccurs="0" maxOccurs="unbounded"/>\r
-                       <xs:element ref="classe_utilisateur" minOccurs="0" maxOccurs="unbounded"/>\r
-                       <xs:element ref="fonction_utilisateur" minOccurs="1" maxOccurs="unbounded"/>\r
-               </xs:choice>\r
-       </xs:complexType>\r
-       <xs:complexType name="T_typeAttendu">\r
-               <xs:complexContent>\r
-                       <xs:restriction base="T_into">\r
-                               <xs:choice>\r
-                                       <xs:element ref="typesimple" minOccurs="0" maxOccurs="unbounded"/>\r
-                                       <xs:element ref="matrice_double" minOccurs="0" maxOccurs="unbounded"/>\r
-                                       <xs:element ref="matrice_symetrique_double" minOccurs="0" maxOccurs="unbounded"/>\r
-                                       <xs:element ref="tuple" minOccurs="0" maxOccurs="unbounded"/>\r
-                                       <xs:element ref="classe_utilisateur" minOccurs="0" maxOccurs="unbounded"/>\r
-                               </xs:choice>\r
-                       </xs:restriction>\r
-               </xs:complexContent>\r
-       </xs:complexType>\r
-</xs:schema>\r
-<!-- Catalogue EFFICAS équivalent\r
-\r
-# coding: utf-8\r
-from Accas import *\r
-\r
-class carte   (ASSD) : pass\r
-class maille   (ASSD) : pass\r
-class carte_flux_r   (carte):pass\r
-\r
-class NOM_CHAM_INTO:\r
-    def __call__(self, *l_typ_cham, **kwargs):\r
-        return tuple(('A','B','C'))\r
-C_NOM_CHAM_INTO = NOM_CHAM_INTO()\r
-\r
-JdC = JDC_CATA(code='MAP',\r
-               execmodul=None,\r
-               regles=ENSEMBLE('E1','E2','E3')\r
-               )\r
-\r
-CREECARTE = OPER(nom="CREECARTE",op=None, sd_prod=carte, UNITE=SIMP(statut='f',typ='I',defaut=21),);\r
-\r
-CREECARTEFLUX = OPER(nom="CREECARTEFLUX",op=None, sd_prod=carte_flux_r,\r
-                   NOMFLUX=SIMP(statut='o',typ='TXM',defaut='monFlux'),\r
-                );\r
-\r
-CREEMAILLE = OPER(nom="CREEMAILLE",op=None, sd_prod=maille,\r
-                NOEUDS=SIMP(statut='o',typ='I',defaut=(1,2),min=2,max=2)\r
-              );\r
-\r
-E1=PROC(nom="E1",\r
-        op=None,\r
-        regles    = (EXCLUS('ETAT_INIT','RESULTAT',),),\r
-        ETAT_INIT = FACT(statut='f', max='**',\r
-                         GROUP_MA_1=SIMP(statut='o',typ='I',validators=NoRepeat(),max='**'),\r
-                         GROUP_NO_2=SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),\r
-                    ),\r
-\r
-        RESULTAT  = FACT(statut='f',\r
-                         DEPL=SIMP(statut='o', typ='R',  validators=NoRepeat()),\r
-                         VITE=SIMP(statut='f', typ='R',  validators=NoRepeat()),\r
-                         ACCE=SIMP(statut='f', typ='R',  validators=NoRepeat()),\r
-                    ), \r
-        );\r
-\r
-E2=PROC(nom="E2", op=None,\r
-        regles   = (UN_PARMI('CONCEPT','CHAINE','TOUT' ),),\r
-        CONCEPT  = FACT(statut='f',max='**',\r
-                   NOM = SIMP(statut='o',typ=assd,validators=NoRepeat(),max='**'),\r
-                   ),\r
-        CHAINE   = SIMP(statut='f',typ='TXM'),\r
-        POSITION = SIMP(statut='f',typ='I',defaut=1),\r
-        TOUT     = SIMP(statut='f',typ='TXM',into=("OUI",) ),\r
-        );\r
-\r
-E3=PROC(nom="E3",op=None,\r
-        DEFORMATION = SIMP(statut='f',typ='TXM',defaut="PETIT",\r
-                           into=("PETIT","PETIT_REAC","GROT_GDEP","SIMO_MIEHE","GDEF_HYPO_ELAS","GDEF_LOG")),\r
-        b_blocIn    = BLOC(condition = "DEFORMATION in ('PETIT','PETIT_REAC','GROT_GDEP')",\r
-             ITER_INTE_PAS = SIMP(statut='f',typ='I',defaut= 0 ),\r
-             ALGO_INTE     = SIMP(statut='f',typ='TXM',into=("ANALYTIQUE", "SECANTE", "DEKKER", "NEWTON_1D","BRENT",),),\r
-             CARTE        = SIMP(statut='f',typ=carte,),\r
-             b_carte       = BLOC(condition= "(AsType(CARTE) != carte_flux_r)",\r
-                             CONTRAINTE = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',\r
-                                          fr="Options pour le calcul de contraintes et efforts generalises",\r
-                                           into=C_NOM_CHAM_INTO(phenomene='CONTRAINTE',categorie='lin'),)\r
-                             ),\r
-                      ),  \r
-       );\r
-\r
--->\r
diff --git a/EssaiInit/raw/__init__.py b/EssaiInit/raw/__init__.py
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/EssaiInit/raw/efficas.py b/EssaiInit/raw/efficas.py
deleted file mode 100644 (file)
index de150a9..0000000
+++ /dev/null
@@ -1,2685 +0,0 @@
-# ./raw/efficas.py
-# -*- coding: utf-8 -*-
-# PyXB bindings for NM:759f40938b7670cd6d5941e706557eb2115fb17f
-# Generated 2016-11-23 16:51:37.568270 by PyXB version 1.2.3
-# Namespace http://chercheurs.edf.com/logiciels/efficas
-
-import pyxb
-import pyxb.binding
-import pyxb.binding.saxer
-import io
-import pyxb.utils.utility
-import pyxb.utils.domutils
-import sys
-
-# Unique identifier for bindings created at the same time
-_GenerationUID = pyxb.utils.utility.UniqueIdentifier('urn:uuid:b79c3f70-b194-11e6-bb0f-b05adafd94d6')
-
-# Version of PyXB used to generate the bindings
-_PyXBVersion = '1.2.3'
-# Generated bindings are not compatible across PyXB versions
-if pyxb.__version__ != _PyXBVersion:
-    raise pyxb.PyXBVersionError(_PyXBVersion)
-
-# Import bindings for namespaces imported into schema
-import pyxb.binding.datatypes
-
-# NOTE: All namespace declarations are reserved within the binding
-Namespace = pyxb.namespace.NamespaceForURI(u'http://chercheurs.edf.com/logiciels/efficas', create_if_missing=True)
-Namespace.configureCategories(['typeBinding', 'elementBinding'])
-
-def CreateFromDocument (xml_text, default_namespace=None, location_base=None):
-    """Parse the given XML and use the document element to create a
-    Python instance.
-
-    @param xml_text An XML document.  This should be data (Python 2
-    str or Python 3 bytes), or a text (Python 2 unicode or Python 3
-    str) in the L{pyxb._InputEncoding} encoding.
-
-    @keyword default_namespace The L{pyxb.Namespace} instance to use as the
-    default namespace where there is no default namespace in scope.
-    If unspecified or C{None}, the namespace of the module containing
-    this function will be used.
-
-    @keyword location_base: An object to be recorded as the base of all
-    L{pyxb.utils.utility.Location} instances associated with events and
-    objects handled by the parser.  You might pass the URI from which
-    the document was obtained.
-    """
-
-    if pyxb.XMLStyle_saxer != pyxb._XMLStyle:
-        dom = pyxb.utils.domutils.StringToDOM(xml_text)
-        return CreateFromDOM(dom.documentElement)
-    if default_namespace is None:
-        default_namespace = Namespace.fallbackNamespace()
-    saxer = pyxb.binding.saxer.make_parser(fallback_namespace=default_namespace, location_base=location_base)
-    handler = saxer.getContentHandler()
-    xmld = xml_text
-    if isinstance(xmld, unicode):
-        xmld = xmld.encode(pyxb._InputEncoding)
-    saxer.parse(io.BytesIO(xmld))
-    instance = handler.rootObject()
-    return instance
-
-def CreateFromDOM (node, default_namespace=None):
-    """Create a Python instance from the given DOM node.
-    The node tag must correspond to an element declaration in this module.
-
-    @deprecated: Forcing use of DOM interface is unnecessary; use L{CreateFromDocument}."""
-    if default_namespace is None:
-        default_namespace = Namespace.fallbackNamespace()
-    return pyxb.binding.basis.element.AnyCreateFromDOM(node, default_namespace)
-
-
-# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}T_fonction_python
-class T_fonction_python (pyxb.binding.datatypes.string):
-
-    """An atomic simple type."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_fonction_python')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 154, 1)
-    _Documentation = None
-T_fonction_python._InitializeFacetMap()
-Namespace.addCategoryObject('typeBinding', u'T_fonction_python', T_fonction_python)
-
-# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}AT_statut
-class AT_statut (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin):
-
-    """An atomic simple type."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'AT_statut')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 190, 1)
-    _Documentation = None
-AT_statut._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=AT_statut, enum_prefix=None)
-AT_statut.f = AT_statut._CF_enumeration.addEnumeration(unicode_value=u'f', tag=u'f')
-AT_statut.o = AT_statut._CF_enumeration.addEnumeration(unicode_value=u'o', tag=u'o')
-AT_statut._InitializeFacetMap(AT_statut._CF_enumeration)
-Namespace.addCategoryObject('typeBinding', u'AT_statut', AT_statut)
-
-# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}T_portee
-class T_portee (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin):
-
-    """An atomic simple type."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_portee')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 202, 1)
-    _Documentation = None
-T_portee._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=T_portee, enum_prefix=None)
-T_portee.None_ = T_portee._CF_enumeration.addEnumeration(unicode_value=u'None', tag=u'None_')
-T_portee.Global = T_portee._CF_enumeration.addEnumeration(unicode_value=u'Global', tag=u'Global')
-T_portee._InitializeFacetMap(T_portee._CF_enumeration)
-Namespace.addCategoryObject('typeBinding', u'T_portee', T_portee)
-
-# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}AT_max_occurs
-class AT_max_occurs (pyxb.binding.datatypes.long):
-
-    """An atomic simple type."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'AT_max_occurs')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 208, 1)
-    _Documentation = None
-AT_max_occurs._CF_minInclusive = pyxb.binding.facets.CF_minInclusive(value_datatype=AT_max_occurs, value=pyxb.binding.datatypes.long(-1L))
-AT_max_occurs._InitializeFacetMap(AT_max_occurs._CF_minInclusive)
-Namespace.addCategoryObject('typeBinding', u'AT_max_occurs', AT_max_occurs)
-
-# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}AT_min_occurs
-class AT_min_occurs (pyxb.binding.datatypes.long):
-
-    """An atomic simple type."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'AT_min_occurs')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 213, 1)
-    _Documentation = None
-AT_min_occurs._CF_minExclusive = pyxb.binding.facets.CF_minExclusive(value_datatype=pyxb.binding.datatypes.long, value=pyxb.binding.datatypes.integer(0L))
-AT_min_occurs._InitializeFacetMap(AT_min_occurs._CF_minExclusive)
-Namespace.addCategoryObject('typeBinding', u'AT_min_occurs', AT_min_occurs)
-
-# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}AT_ag
-class AT_ag (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin):
-
-    """An atomic simple type."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'AT_ag')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 226, 1)
-    _Documentation = None
-AT_ag._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=AT_ag, enum_prefix=None)
-AT_ag.No_comment = AT_ag._CF_enumeration.addEnumeration(unicode_value=u'No comment', tag=u'No_comment')
-AT_ag._InitializeFacetMap(AT_ag._CF_enumeration)
-Namespace.addCategoryObject('typeBinding', u'AT_ag', AT_ag)
-
-# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}AT_docu
-class AT_docu (pyxb.binding.datatypes.string):
-
-    """Référence une position dans un fichier maître contenant une liste de références à des pages de documentations"""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'AT_docu')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 231, 1)
-    _Documentation = u'R\xe9f\xe9rence une position dans un fichier ma\xeetre contenant une liste de r\xe9f\xe9rences \xe0 des pages de documentations'
-AT_docu._InitializeFacetMap()
-Namespace.addCategoryObject('typeBinding', u'AT_docu', AT_docu)
-
-# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}AT_valeur_sugg
-class AT_valeur_sugg (pyxb.binding.datatypes.string):
-
-    """An atomic simple type."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'AT_valeur_sugg')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 237, 1)
-    _Documentation = None
-AT_valeur_sugg._InitializeFacetMap()
-Namespace.addCategoryObject('typeBinding', u'AT_valeur_sugg', AT_valeur_sugg)
-
-# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}AT_nom
-class AT_nom (pyxb.binding.datatypes.string):
-
-    """An atomic simple type."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'AT_nom')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 241, 1)
-    _Documentation = None
-AT_nom._CF_pattern = pyxb.binding.facets.CF_pattern()
-AT_nom._CF_pattern.addPattern(pattern=u'([A-Z]|[a-z]|_)([A-Z]|[a-z]|_|[0-9])*')
-AT_nom._InitializeFacetMap(AT_nom._CF_pattern)
-Namespace.addCategoryObject('typeBinding', u'AT_nom', AT_nom)
-
-# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}T_validators
-class T_validators (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin):
-
-    """An atomic simple type."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_validators')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 303, 1)
-    _Documentation = None
-T_validators._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=T_validators, enum_prefix=None)
-T_validators.NoRepeat = T_validators._CF_enumeration.addEnumeration(unicode_value=u'NoRepeat', tag=u'NoRepeat')
-T_validators.OnlyStr = T_validators._CF_enumeration.addEnumeration(unicode_value=u'OnlyStr', tag=u'OnlyStr')
-T_validators.VerifExiste = T_validators._CF_enumeration.addEnumeration(unicode_value=u'VerifExiste', tag=u'VerifExiste')
-T_validators.VerifTypeTuple = T_validators._CF_enumeration.addEnumeration(unicode_value=u'VerifTypeTuple', tag=u'VerifTypeTuple')
-T_validators._InitializeFacetMap(T_validators._CF_enumeration)
-Namespace.addCategoryObject('typeBinding', u'T_validators', T_validators)
-
-# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}T_Bool
-class T_Bool (pyxb.binding.datatypes.boolean):
-
-    """An atomic simple type."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_Bool')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 311, 1)
-    _Documentation = None
-T_Bool._InitializeFacetMap()
-Namespace.addCategoryObject('typeBinding', u'T_Bool', T_Bool)
-
-# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}T_I
-class T_I (pyxb.binding.datatypes.int):
-
-    """An atomic simple type."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_I')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 317, 1)
-    _Documentation = None
-T_I._InitializeFacetMap()
-Namespace.addCategoryObject('typeBinding', u'T_I', T_I)
-
-# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}T_R
-class T_R (pyxb.binding.datatypes.double):
-
-    """An atomic simple type."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_R')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 323, 1)
-    _Documentation = None
-T_R._InitializeFacetMap()
-Namespace.addCategoryObject('typeBinding', u'T_R', T_R)
-
-# List simple type: [anonymous]
-# superclasses pyxb.binding.datatypes.anySimpleType
-class STD_ANON (pyxb.binding.basis.STD_list):
-
-    """Simple type that is a list of pyxb.binding.datatypes.double."""
-
-    _ExpandedName = None
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 338, 3)
-    _Documentation = None
-
-    _ItemType = pyxb.binding.datatypes.double
-STD_ANON._InitializeFacetMap()
-
-# List simple type: {http://chercheurs.edf.com/logiciels/efficas}T_list_C
-# superclasses pyxb.binding.datatypes.anySimpleType
-class T_list_C (pyxb.binding.basis.STD_list):
-
-    """Simple type that is a list of pyxb.binding.datatypes.double."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_list_C')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 347, 1)
-    _Documentation = None
-
-    _ItemType = pyxb.binding.datatypes.double
-T_list_C._InitializeFacetMap()
-Namespace.addCategoryObject('typeBinding', u'T_list_C', T_list_C)
-
-# Atomic simple type: [anonymous]
-class STD_ANON_ (pyxb.binding.datatypes.string):
-
-    """An atomic simple type."""
-
-    _ExpandedName = None
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 402, 3)
-    _Documentation = None
-STD_ANON_._CF_whiteSpace = pyxb.binding.facets.CF_whiteSpace(value=pyxb.binding.facets._WhiteSpace_enum.preserve)
-STD_ANON_._InitializeFacetMap(STD_ANON_._CF_whiteSpace)
-
-# List simple type: {http://chercheurs.edf.com/logiciels/efficas}T_list_double
-# superclasses pyxb.binding.datatypes.anySimpleType
-class T_list_double (pyxb.binding.basis.STD_list):
-
-    """Simple type that is a list of pyxb.binding.datatypes.double."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_list_double')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 428, 1)
-    _Documentation = None
-
-    _ItemType = pyxb.binding.datatypes.double
-T_list_double._InitializeFacetMap()
-Namespace.addCategoryObject('typeBinding', u'T_list_double', T_list_double)
-
-# List simple type: {http://chercheurs.edf.com/logiciels/efficas}T_predicat1
-# superclasses pyxb.binding.datatypes.anySimpleType
-class T_predicat1 (pyxb.binding.basis.STD_list):
-
-    """Simple type that is a list of AT_nom."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_predicat1')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 246, 1)
-    _Documentation = None
-
-    _ItemType = AT_nom
-T_predicat1._InitializeFacetMap()
-Namespace.addCategoryObject('typeBinding', u'T_predicat1', T_predicat1)
-
-# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}AT_subroutine
-class AT_subroutine (AT_nom):
-
-    """An atomic simple type."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'AT_subroutine')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 300, 1)
-    _Documentation = None
-AT_subroutine._InitializeFacetMap()
-Namespace.addCategoryObject('typeBinding', u'AT_subroutine', AT_subroutine)
-
-# List simple type: {http://chercheurs.edf.com/logiciels/efficas}T_list_Bool
-# superclasses pyxb.binding.datatypes.anySimpleType
-class T_list_Bool (pyxb.binding.basis.STD_list):
-
-    """Simple type that is a list of T_Bool."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_list_Bool')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 314, 1)
-    _Documentation = None
-
-    _ItemType = T_Bool
-T_list_Bool._InitializeFacetMap()
-Namespace.addCategoryObject('typeBinding', u'T_list_Bool', T_list_Bool)
-
-# List simple type: {http://chercheurs.edf.com/logiciels/efficas}T_list_I
-# superclasses pyxb.binding.datatypes.anySimpleType
-class T_list_I (pyxb.binding.basis.STD_list):
-
-    """Simple type that is a list of T_I."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_list_I')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 320, 1)
-    _Documentation = None
-
-    _ItemType = T_I
-T_list_I._InitializeFacetMap()
-Namespace.addCategoryObject('typeBinding', u'T_list_I', T_list_I)
-
-# List simple type: {http://chercheurs.edf.com/logiciels/efficas}T_list_R
-# superclasses pyxb.binding.datatypes.anySimpleType
-class T_list_R (pyxb.binding.basis.STD_list):
-
-    """Simple type that is a list of T_R."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_list_R')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 326, 1)
-    _Documentation = None
-
-    _ItemType = T_R
-T_list_R._InitializeFacetMap()
-Namespace.addCategoryObject('typeBinding', u'T_list_R', T_list_R)
-
-# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}T_TXM
-class T_TXM (AT_nom):
-
-    """An atomic simple type."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_TXM')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 329, 1)
-    _Documentation = None
-T_TXM._InitializeFacetMap()
-Namespace.addCategoryObject('typeBinding', u'T_TXM', T_TXM)
-
-# List simple type: {http://chercheurs.edf.com/logiciels/efficas}T_C
-# superclasses STD_ANON
-class T_C (pyxb.binding.basis.STD_list):
-
-    """Simple type that is a list of pyxb.binding.datatypes.double."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_C')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 336, 1)
-    _Documentation = None
-
-    _ItemType = pyxb.binding.datatypes.double
-T_C._CF_maxLength = pyxb.binding.facets.CF_maxLength(value=pyxb.binding.datatypes.nonNegativeInteger(2L))
-T_C._CF_minLength = pyxb.binding.facets.CF_minLength(value=pyxb.binding.datatypes.nonNegativeInteger(2L))
-T_C._InitializeFacetMap(T_C._CF_maxLength,
-   T_C._CF_minLength)
-Namespace.addCategoryObject('typeBinding', u'T_C', T_C)
-
-# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}T_name_base
-class T_name_base (AT_nom):
-
-    """An atomic simple type."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_name_base')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 350, 1)
-    _Documentation = None
-T_name_base._InitializeFacetMap()
-Namespace.addCategoryObject('typeBinding', u'T_name_base', T_name_base)
-
-# Atomic simple type: [anonymous]
-class STD_ANON_2 (AT_nom, pyxb.binding.basis.enumeration_mixin):
-
-    """An atomic simple type."""
-
-    _ExpandedName = None
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 385, 3)
-    _Documentation = None
-STD_ANON_2._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=STD_ANON_2, enum_prefix=None)
-STD_ANON_2.T_Matrice_double = STD_ANON_2._CF_enumeration.addEnumeration(unicode_value=u'T_Matrice_double', tag=u'T_Matrice_double')
-STD_ANON_2.T_Matrice_Symetrique_double = STD_ANON_2._CF_enumeration.addEnumeration(unicode_value=u'T_Matrice_Symetrique_double', tag=u'T_Matrice_Symetrique_double')
-STD_ANON_2.T_tuple = STD_ANON_2._CF_enumeration.addEnumeration(unicode_value=u'T_tuple', tag=u'T_tuple')
-STD_ANON_2.T_classe_utilisateur = STD_ANON_2._CF_enumeration.addEnumeration(unicode_value=u'T_classe_utilisateur', tag=u'T_classe_utilisateur')
-STD_ANON_2._InitializeFacetMap(STD_ANON_2._CF_enumeration)
-
-# List simple type: {http://chercheurs.edf.com/logiciels/efficas}T_Repertoire
-# superclasses pyxb.binding.datatypes.anySimpleType
-class T_Repertoire (pyxb.binding.basis.STD_list):
-
-    """Simple type that is a list of STD_ANON_."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_Repertoire')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 400, 1)
-    _Documentation = None
-
-    _ItemType = STD_ANON_
-T_Repertoire._InitializeFacetMap()
-Namespace.addCategoryObject('typeBinding', u'T_Repertoire', T_Repertoire)
-
-# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}T_classe_utilisateur
-class T_classe_utilisateur (AT_nom):
-
-    """An atomic simple type."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_classe_utilisateur')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 461, 1)
-    _Documentation = None
-T_classe_utilisateur._InitializeFacetMap()
-Namespace.addCategoryObject('typeBinding', u'T_classe_utilisateur', T_classe_utilisateur)
-
-# List simple type: {http://chercheurs.edf.com/logiciels/efficas}T_list_TXM
-# superclasses pyxb.binding.datatypes.anySimpleType
-class T_list_TXM (pyxb.binding.basis.STD_list):
-
-    """Simple type that is a list of T_TXM."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_list_TXM')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 332, 1)
-    _Documentation = None
-
-    _ItemType = T_TXM
-T_list_TXM._InitializeFacetMap()
-Namespace.addCategoryObject('typeBinding', u'T_list_TXM', T_list_TXM)
-
-# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}T_simple_name
-class T_simple_name (T_name_base, pyxb.binding.basis.enumeration_mixin):
-
-    """An atomic simple type."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_simple_name')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 353, 1)
-    _Documentation = None
-T_simple_name._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=T_simple_name, enum_prefix=None)
-T_simple_name.Fichier = T_simple_name._CF_enumeration.addEnumeration(unicode_value=u'Fichier', tag=u'Fichier')
-T_simple_name.Repertoire = T_simple_name._CF_enumeration.addEnumeration(unicode_value=u'Repertoire', tag=u'Repertoire')
-T_simple_name.TXM = T_simple_name._CF_enumeration.addEnumeration(unicode_value=u'TXM', tag=u'TXM')
-T_simple_name.I = T_simple_name._CF_enumeration.addEnumeration(unicode_value=u'I', tag=u'I')
-T_simple_name.R = T_simple_name._CF_enumeration.addEnumeration(unicode_value=u'R', tag=u'R')
-T_simple_name.C = T_simple_name._CF_enumeration.addEnumeration(unicode_value=u'C', tag=u'C')
-T_simple_name.Bool = T_simple_name._CF_enumeration.addEnumeration(unicode_value=u'Bool', tag=u'Bool')
-T_simple_name.grma = T_simple_name._CF_enumeration.addEnumeration(unicode_value=u'grma', tag=u'grma')
-T_simple_name.grno = T_simple_name._CF_enumeration.addEnumeration(unicode_value=u'grno', tag=u'grno')
-T_simple_name.SalomeEntry = T_simple_name._CF_enumeration.addEnumeration(unicode_value=u'SalomeEntry', tag=u'SalomeEntry')
-T_simple_name._InitializeFacetMap(T_simple_name._CF_enumeration)
-Namespace.addCategoryObject('typeBinding', u'T_simple_name', T_simple_name)
-
-# Union simple type: {http://chercheurs.edf.com/logiciels/efficas}T_name
-# superclasses pyxb.binding.datatypes.anySimpleType
-class T_name (pyxb.binding.basis.STD_union):
-
-    """Simple type that is a union of T_simple_name, STD_ANON_2."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_name')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 383, 1)
-    _Documentation = None
-
-    _MemberTypes = ( T_simple_name, STD_ANON_2, )
-T_name._CF_pattern = pyxb.binding.facets.CF_pattern()
-T_name._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=T_name)
-T_name.Fichier = u'Fichier'                       # originally T_simple_name.Fichier
-T_name.Repertoire = u'Repertoire'                 # originally T_simple_name.Repertoire
-T_name.TXM = u'TXM'                               # originally T_simple_name.TXM
-T_name.I = u'I'                                   # originally T_simple_name.I
-T_name.R = u'R'                                   # originally T_simple_name.R
-T_name.C = u'C'                                   # originally T_simple_name.C
-T_name.Bool = u'Bool'                             # originally T_simple_name.Bool
-T_name.grma = u'grma'                             # originally T_simple_name.grma
-T_name.grno = u'grno'                             # originally T_simple_name.grno
-T_name.SalomeEntry = u'SalomeEntry'               # originally T_simple_name.SalomeEntry
-T_name.T_Matrice_double = u'T_Matrice_double'     # originally STD_ANON_2.T_Matrice_double
-T_name.T_Matrice_Symetrique_double = u'T_Matrice_Symetrique_double'# originally STD_ANON_2.T_Matrice_Symetrique_double
-T_name.T_tuple = u'T_tuple'                       # originally STD_ANON_2.T_tuple
-T_name.T_classe_utilisateur = u'T_classe_utilisateur'# originally STD_ANON_2.T_classe_utilisateur
-T_name._InitializeFacetMap(T_name._CF_pattern,
-   T_name._CF_enumeration)
-Namespace.addCategoryObject('typeBinding', u'T_name', T_name)
-
-# Union simple type: {http://chercheurs.edf.com/logiciels/efficas}T_simple
-# superclasses pyxb.binding.datatypes.anySimpleType
-class T_simple (pyxb.binding.basis.STD_union):
-
-    """Simple type that is a union of T_I, T_list_I, T_R, T_list_R, T_C, T_list_C, T_TXM, T_list_TXM, T_Bool, T_list_Bool, T_Repertoire."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_simple')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 409, 1)
-    _Documentation = None
-
-    _MemberTypes = ( T_I, T_list_I, T_R, T_list_R, T_C, T_list_C, T_TXM, T_list_TXM, T_Bool, T_list_Bool, T_Repertoire, )
-T_simple._CF_pattern = pyxb.binding.facets.CF_pattern()
-T_simple._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=T_simple)
-T_simple._InitializeFacetMap(T_simple._CF_pattern,
-   T_simple._CF_enumeration)
-Namespace.addCategoryObject('typeBinding', u'T_simple', T_simple)
-
-# Union simple type: {http://chercheurs.edf.com/logiciels/efficas}T_classe_utilisateur_name
-# superclasses T_name, pyxb.binding.basis.enumeration_mixin
-class T_classe_utilisateur_name (pyxb.binding.basis.STD_union):
-
-    """Simple type that is a union of T_simple_name, STD_ANON_2."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_classe_utilisateur_name')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 371, 1)
-    _Documentation = None
-
-    _MemberTypes = ( T_simple_name, STD_ANON_2, )
-T_classe_utilisateur_name._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=T_classe_utilisateur_name, enum_prefix=None)
-T_classe_utilisateur_name.T_classe_utilisateur = T_classe_utilisateur_name._CF_enumeration.addEnumeration(unicode_value=u'T_classe_utilisateur', tag=u'T_classe_utilisateur')
-T_classe_utilisateur_name._InitializeFacetMap(T_classe_utilisateur_name._CF_enumeration)
-Namespace.addCategoryObject('typeBinding', u'T_classe_utilisateur_name', T_classe_utilisateur_name)
-
-# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_cata with content type ELEMENT_ONLY
-class T_cata (pyxb.binding.basis.complexTypeDefinition):
-    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_cata with content type ELEMENT_ONLY"""
-    _TypeDefinition = None
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
-    _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_cata')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 66, 1)
-    _ElementMap = {}
-    _AttributeMap = {}
-    # Base type is pyxb.binding.datatypes.anyType
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}commandes uses Python identifier commandes
-    __commandes = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'commandes'), 'commandes', '__httpchercheurs_edf_comlogicielsefficas_T_cata_httpchercheurs_edf_comlogicielsefficascommandes', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 11, 1), )
-
-    
-    commandes = property(__commandes.value, __commandes.set, None, None)
-
-    _ElementMap.update({
-        __commandes.name() : __commandes
-    })
-    _AttributeMap.update({
-        
-    })
-Namespace.addCategoryObject('typeBinding', u'T_cata', T_cata)
-
-
-# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_commandes with content type ELEMENT_ONLY
-class T_commandes (pyxb.binding.basis.complexTypeDefinition):
-    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_commandes with content type ELEMENT_ONLY"""
-    _TypeDefinition = None
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
-    _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_commandes')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 71, 1)
-    _ElementMap = {}
-    _AttributeMap = {}
-    # Base type is pyxb.binding.datatypes.anyType
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}OPER uses Python identifier OPER
-    __OPER = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'OPER'), 'OPER', '__httpchercheurs_edf_comlogicielsefficas_T_commandes_httpchercheurs_edf_comlogicielsefficasOPER', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 99, 1), )
-
-    
-    OPER = property(__OPER.value, __OPER.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}PROC uses Python identifier PROC
-    __PROC = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'PROC'), 'PROC', '__httpchercheurs_edf_comlogicielsefficas_T_commandes_httpchercheurs_edf_comlogicielsefficasPROC', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 110, 1), )
-
-    
-    PROC = property(__PROC.value, __PROC.set, None, None)
-
-    _ElementMap.update({
-        __OPER.name() : __OPER,
-        __PROC.name() : __PROC
-    })
-    _AttributeMap.update({
-        
-    })
-Namespace.addCategoryObject('typeBinding', u'T_commandes', T_commandes)
-
-
-# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_Cardinalite with content type EMPTY
-class T_Cardinalite (pyxb.binding.basis.complexTypeDefinition):
-    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_Cardinalite with content type EMPTY"""
-    _TypeDefinition = None
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_EMPTY
-    _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_Cardinalite')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 77, 1)
-    _ElementMap = {}
-    _AttributeMap = {}
-    # Base type is pyxb.binding.datatypes.anyType
-    _ElementMap.update({
-        
-    })
-    _AttributeMap.update({
-        
-    })
-Namespace.addCategoryObject('typeBinding', u'T_Cardinalite', T_Cardinalite)
-
-
-# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_PlageValeur with content type ELEMENT_ONLY
-class T_PlageValeur (pyxb.binding.basis.complexTypeDefinition):
-    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_PlageValeur with content type ELEMENT_ONLY"""
-    _TypeDefinition = None
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
-    _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_PlageValeur')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 78, 1)
-    _ElementMap = {}
-    _AttributeMap = {}
-    # Base type is pyxb.binding.datatypes.anyType
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}borne_sup uses Python identifier borne_sup
-    __borne_sup = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'borne_sup'), 'borne_sup', '__httpchercheurs_edf_comlogicielsefficas_T_PlageValeur_httpchercheurs_edf_comlogicielsefficasborne_sup', False, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 46, 1), )
-
-    
-    borne_sup = property(__borne_sup.value, __borne_sup.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}borne_inf uses Python identifier borne_inf
-    __borne_inf = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'borne_inf'), 'borne_inf', '__httpchercheurs_edf_comlogicielsefficas_T_PlageValeur_httpchercheurs_edf_comlogicielsefficasborne_inf', False, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 47, 1), )
-
-    
-    borne_inf = property(__borne_inf.value, __borne_inf.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}into uses Python identifier into
-    __into = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'into'), 'into', '__httpchercheurs_edf_comlogicielsefficas_T_PlageValeur_httpchercheurs_edf_comlogicielsefficasinto', False, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 49, 1), )
-
-    
-    into = property(__into.value, __into.set, None, None)
-
-    _ElementMap.update({
-        __borne_sup.name() : __borne_sup,
-        __borne_inf.name() : __borne_inf,
-        __into.name() : __into
-    })
-    _AttributeMap.update({
-        
-    })
-Namespace.addCategoryObject('typeBinding', u'T_PlageValeur', T_PlageValeur)
-
-
-# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_predicat2 with content type ELEMENT_ONLY
-class T_predicat2 (pyxb.binding.basis.complexTypeDefinition):
-    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_predicat2 with content type ELEMENT_ONLY"""
-    _TypeDefinition = None
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
-    _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_predicat2')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 250, 1)
-    _ElementMap = {}
-    _AttributeMap = {}
-    # Base type is pyxb.binding.datatypes.anyType
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}p1 uses Python identifier p1
-    __p1 = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'p1'), 'p1', '__httpchercheurs_edf_comlogicielsefficas_T_predicat2_httpchercheurs_edf_comlogicielsefficasp1', False, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 252, 3), )
-
-    
-    p1 = property(__p1.value, __p1.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}p2 uses Python identifier p2
-    __p2 = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'p2'), 'p2', '__httpchercheurs_edf_comlogicielsefficas_T_predicat2_httpchercheurs_edf_comlogicielsefficasp2', False, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 253, 3), )
-
-    
-    p2 = property(__p2.value, __p2.set, None, None)
-
-    _ElementMap.update({
-        __p1.name() : __p1,
-        __p2.name() : __p2
-    })
-    _AttributeMap.update({
-        
-    })
-Namespace.addCategoryObject('typeBinding', u'T_predicat2', T_predicat2)
-
-
-# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_regles with content type ELEMENT_ONLY
-class T_regles (pyxb.binding.basis.complexTypeDefinition):
-    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_regles with content type ELEMENT_ONLY"""
-    _TypeDefinition = None
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
-    _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_regles')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 291, 1)
-    _ElementMap = {}
-    _AttributeMap = {}
-    # Base type is pyxb.binding.datatypes.anyType
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}A_CLASSER uses Python identifier A_CLASSER
-    __A_CLASSER = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'A_CLASSER'), 'A_CLASSER', '__httpchercheurs_edf_comlogicielsefficas_T_regles_httpchercheurs_edf_comlogicielsefficasA_CLASSER', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 257, 1), )
-
-    
-    A_CLASSER = property(__A_CLASSER.value, __A_CLASSER.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}AU_MOINS_UN uses Python identifier AU_MOINS_UN
-    __AU_MOINS_UN = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'AU_MOINS_UN'), 'AU_MOINS_UN', '__httpchercheurs_edf_comlogicielsefficas_T_regles_httpchercheurs_edf_comlogicielsefficasAU_MOINS_UN', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 258, 1), )
-
-    
-    AU_MOINS_UN = property(__AU_MOINS_UN.value, __AU_MOINS_UN.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}AU_PLUS_UN uses Python identifier AU_PLUS_UN
-    __AU_PLUS_UN = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'AU_PLUS_UN'), 'AU_PLUS_UN', '__httpchercheurs_edf_comlogicielsefficas_T_regles_httpchercheurs_edf_comlogicielsefficasAU_PLUS_UN', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 259, 1), )
-
-    
-    AU_PLUS_UN = property(__AU_PLUS_UN.value, __AU_PLUS_UN.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}ENSEMBLE uses Python identifier ENSEMBLE
-    __ENSEMBLE = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'ENSEMBLE'), 'ENSEMBLE', '__httpchercheurs_edf_comlogicielsefficas_T_regles_httpchercheurs_edf_comlogicielsefficasENSEMBLE', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 260, 1), )
-
-    
-    ENSEMBLE = property(__ENSEMBLE.value, __ENSEMBLE.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}EXCLUS uses Python identifier EXCLUS
-    __EXCLUS = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'EXCLUS'), 'EXCLUS', '__httpchercheurs_edf_comlogicielsefficas_T_regles_httpchercheurs_edf_comlogicielsefficasEXCLUS', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 261, 1), )
-
-    
-    EXCLUS = property(__EXCLUS.value, __EXCLUS.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}PRESENT_ABSENT uses Python identifier PRESENT_ABSENT
-    __PRESENT_ABSENT = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'PRESENT_ABSENT'), 'PRESENT_ABSENT', '__httpchercheurs_edf_comlogicielsefficas_T_regles_httpchercheurs_edf_comlogicielsefficasPRESENT_ABSENT', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 269, 1), )
-
-    
-    PRESENT_ABSENT = property(__PRESENT_ABSENT.value, __PRESENT_ABSENT.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}PRESENT_PRESENT uses Python identifier PRESENT_PRESENT
-    __PRESENT_PRESENT = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'PRESENT_PRESENT'), 'PRESENT_PRESENT', '__httpchercheurs_edf_comlogicielsefficas_T_regles_httpchercheurs_edf_comlogicielsefficasPRESENT_PRESENT', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 270, 1), )
-
-    
-    PRESENT_PRESENT = property(__PRESENT_PRESENT.value, __PRESENT_PRESENT.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}UN_PARMI uses Python identifier UN_PARMI
-    __UN_PARMI = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'UN_PARMI'), 'UN_PARMI', '__httpchercheurs_edf_comlogicielsefficas_T_regles_httpchercheurs_edf_comlogicielsefficasUN_PARMI', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 271, 1), )
-
-    
-    UN_PARMI = property(__UN_PARMI.value, __UN_PARMI.set, None, None)
-
-    _ElementMap.update({
-        __A_CLASSER.name() : __A_CLASSER,
-        __AU_MOINS_UN.name() : __AU_MOINS_UN,
-        __AU_PLUS_UN.name() : __AU_PLUS_UN,
-        __ENSEMBLE.name() : __ENSEMBLE,
-        __EXCLUS.name() : __EXCLUS,
-        __PRESENT_ABSENT.name() : __PRESENT_ABSENT,
-        __PRESENT_PRESENT.name() : __PRESENT_PRESENT,
-        __UN_PARMI.name() : __UN_PARMI
-    })
-    _AttributeMap.update({
-        
-    })
-Namespace.addCategoryObject('typeBinding', u'T_regles', T_regles)
-
-
-# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_grma with content type EMPTY
-class T_grma (pyxb.binding.basis.complexTypeDefinition):
-    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_grma with content type EMPTY"""
-    _TypeDefinition = None
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_EMPTY
-    _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_grma')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 395, 1)
-    _ElementMap = {}
-    _AttributeMap = {}
-    # Base type is pyxb.binding.datatypes.anyType
-    _ElementMap.update({
-        
-    })
-    _AttributeMap.update({
-        
-    })
-Namespace.addCategoryObject('typeBinding', u'T_grma', T_grma)
-
-
-# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_grno with content type EMPTY
-class T_grno (pyxb.binding.basis.complexTypeDefinition):
-    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_grno with content type EMPTY"""
-    _TypeDefinition = None
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_EMPTY
-    _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_grno')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 396, 1)
-    _ElementMap = {}
-    _AttributeMap = {}
-    # Base type is pyxb.binding.datatypes.anyType
-    _ElementMap.update({
-        
-    })
-    _AttributeMap.update({
-        
-    })
-Namespace.addCategoryObject('typeBinding', u'T_grno', T_grno)
-
-
-# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_SalomeEntry with content type EMPTY
-class T_SalomeEntry (pyxb.binding.basis.complexTypeDefinition):
-    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_SalomeEntry with content type EMPTY"""
-    _TypeDefinition = None
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_EMPTY
-    _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_SalomeEntry')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 397, 1)
-    _ElementMap = {}
-    _AttributeMap = {}
-    # Base type is pyxb.binding.datatypes.anyType
-    _ElementMap.update({
-        
-    })
-    _AttributeMap.update({
-        
-    })
-Namespace.addCategoryObject('typeBinding', u'T_SalomeEntry', T_SalomeEntry)
-
-
-# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_Fichier with content type EMPTY
-class T_Fichier (pyxb.binding.basis.complexTypeDefinition):
-    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_Fichier with content type EMPTY"""
-    _TypeDefinition = None
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_EMPTY
-    _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_Fichier')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 398, 1)
-    _ElementMap = {}
-    _AttributeMap = {}
-    # Base type is pyxb.binding.datatypes.anyType
-    _ElementMap.update({
-        
-    })
-    _AttributeMap.update({
-        
-    })
-Namespace.addCategoryObject('typeBinding', u'T_Fichier', T_Fichier)
-
-
-# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_tuple with content type SIMPLE
-class T_tuple (pyxb.binding.basis.complexTypeDefinition):
-    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_tuple with content type SIMPLE"""
-    _TypeDefinition = pyxb.binding.datatypes.anySimpleType
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_SIMPLE
-    _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_tuple')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 454, 1)
-    _ElementMap = {}
-    _AttributeMap = {}
-    # Base type is pyxb.binding.datatypes.anySimpleType
-    
-    # Attribute n uses Python identifier n
-    __n = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, u'n'), 'n', '__httpchercheurs_edf_comlogicielsefficas_T_tuple_n', pyxb.binding.datatypes.int, required=True)
-    __n._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 457, 4)
-    __n._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 457, 4)
-    
-    n = property(__n.value, __n.set, None, None)
-
-    _ElementMap.update({
-        
-    })
-    _AttributeMap.update({
-        __n.name() : __n
-    })
-Namespace.addCategoryObject('typeBinding', u'T_tuple', T_tuple)
-
-
-# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_into with content type ELEMENT_ONLY
-class T_into (pyxb.binding.basis.complexTypeDefinition):
-    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_into with content type ELEMENT_ONLY"""
-    _TypeDefinition = None
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
-    _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_into')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 501, 1)
-    _ElementMap = {}
-    _AttributeMap = {}
-    # Base type is pyxb.binding.datatypes.anyType
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}fonction_utilisateur uses Python identifier fonction_utilisateur
-    __fonction_utilisateur = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'fonction_utilisateur'), 'fonction_utilisateur', '__httpchercheurs_edf_comlogicielsefficas_T_into_httpchercheurs_edf_comlogicielsefficasfonction_utilisateur', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 10, 1), )
-
-    
-    fonction_utilisateur = property(__fonction_utilisateur.value, __fonction_utilisateur.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}typesimple uses Python identifier typesimple
-    __typesimple = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'typesimple'), 'typesimple', '__httpchercheurs_edf_comlogicielsefficas_T_into_httpchercheurs_edf_comlogicielsefficastypesimple', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 464, 1), )
-
-    
-    typesimple = property(__typesimple.value, __typesimple.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}matrice_double uses Python identifier matrice_double
-    __matrice_double = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'matrice_double'), 'matrice_double', '__httpchercheurs_edf_comlogicielsefficas_T_into_httpchercheurs_edf_comlogicielsefficasmatrice_double', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 465, 1), )
-
-    
-    matrice_double = property(__matrice_double.value, __matrice_double.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}matrice_symetrique_double uses Python identifier matrice_symetrique_double
-    __matrice_symetrique_double = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'matrice_symetrique_double'), 'matrice_symetrique_double', '__httpchercheurs_edf_comlogicielsefficas_T_into_httpchercheurs_edf_comlogicielsefficasmatrice_symetrique_double', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 466, 1), )
-
-    
-    matrice_symetrique_double = property(__matrice_symetrique_double.value, __matrice_symetrique_double.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}tuple uses Python identifier tuple
-    __tuple = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'tuple'), 'tuple', '__httpchercheurs_edf_comlogicielsefficas_T_into_httpchercheurs_edf_comlogicielsefficastuple', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 467, 1), )
-
-    
-    tuple = property(__tuple.value, __tuple.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}classe_utilisateur uses Python identifier classe_utilisateur
-    __classe_utilisateur = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'classe_utilisateur'), 'classe_utilisateur', '__httpchercheurs_edf_comlogicielsefficas_T_into_httpchercheurs_edf_comlogicielsefficasclasse_utilisateur', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 468, 1), )
-
-    
-    classe_utilisateur = property(__classe_utilisateur.value, __classe_utilisateur.set, None, None)
-
-    _ElementMap.update({
-        __fonction_utilisateur.name() : __fonction_utilisateur,
-        __typesimple.name() : __typesimple,
-        __matrice_double.name() : __matrice_double,
-        __matrice_symetrique_double.name() : __matrice_symetrique_double,
-        __tuple.name() : __tuple,
-        __classe_utilisateur.name() : __classe_utilisateur
-    })
-    _AttributeMap.update({
-        
-    })
-Namespace.addCategoryObject('typeBinding', u'T_into', T_into)
-
-
-# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_doc with content type EMPTY
-class T_doc (pyxb.binding.basis.complexTypeDefinition):
-    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_doc with content type EMPTY"""
-    _TypeDefinition = None
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_EMPTY
-    _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_doc')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 61, 1)
-    _ElementMap = {}
-    _AttributeMap = {}
-    # Base type is pyxb.binding.datatypes.anyType
-    
-    # Attribute {http://chercheurs.edf.com/logiciels/efficas}fr uses Python identifier fr
-    __fr = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(Namespace, u'fr'), 'fr', '__httpchercheurs_edf_comlogicielsefficas_T_doc_httpchercheurs_edf_comlogicielsefficasfr', pyxb.binding.datatypes.string)
-    __fr._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 53, 1)
-    __fr._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 62, 2)
-    
-    fr = property(__fr.value, __fr.set, None, None)
-
-    
-    # Attribute {http://chercheurs.edf.com/logiciels/efficas}ang uses Python identifier ang
-    __ang = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(Namespace, u'ang'), 'ang', '__httpchercheurs_edf_comlogicielsefficas_T_doc_httpchercheurs_edf_comlogicielsefficasang', pyxb.binding.datatypes.string)
-    __ang._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 54, 1)
-    __ang._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 63, 2)
-    
-    ang = property(__ang.value, __ang.set, None, None)
-
-    
-    # Attribute {http://chercheurs.edf.com/logiciels/efficas}docu uses Python identifier docu
-    __docu = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(Namespace, u'docu'), 'docu', '__httpchercheurs_edf_comlogicielsefficas_T_doc_httpchercheurs_edf_comlogicielsefficasdocu', AT_docu)
-    __docu._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 55, 1)
-    __docu._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 64, 2)
-    
-    docu = property(__docu.value, __docu.set, None, None)
-
-    _ElementMap.update({
-        
-    })
-    _AttributeMap.update({
-        __fr.name() : __fr,
-        __ang.name() : __ang,
-        __docu.name() : __docu
-    })
-Namespace.addCategoryObject('typeBinding', u'T_doc', T_doc)
-
-
-# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common with content type ELEMENT_ONLY
-class T_Accas_Common (pyxb.binding.basis.complexTypeDefinition):
-    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common with content type ELEMENT_ONLY"""
-    _TypeDefinition = None
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
-    _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_Accas.Common')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 87, 1)
-    _ElementMap = {}
-    _AttributeMap = {}
-    # Base type is pyxb.binding.datatypes.anyType
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}doc uses Python identifier doc
-    __doc = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'doc'), 'doc', '__httpchercheurs_edf_comlogicielsefficas_T_Accas_Common_httpchercheurs_edf_comlogicielsefficasdoc', False, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 4, 1), )
-
-    
-    doc = property(__doc.value, __doc.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}regles uses Python identifier regles
-    __regles = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'regles'), 'regles', '__httpchercheurs_edf_comlogicielsefficas_T_Accas_Common_httpchercheurs_edf_comlogicielsefficasregles', False, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 6, 1), )
-
-    
-    regles = property(__regles.value, __regles.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}SIMP uses Python identifier SIMP
-    __SIMP = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'SIMP'), 'SIMP', '__httpchercheurs_edf_comlogicielsefficas_T_Accas_Common_httpchercheurs_edf_comlogicielsefficasSIMP', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 43, 1), )
-
-    
-    SIMP = property(__SIMP.value, __SIMP.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}FACT uses Python identifier FACT
-    __FACT = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'FACT'), 'FACT', '__httpchercheurs_edf_comlogicielsefficas_T_Accas_Common_httpchercheurs_edf_comlogicielsefficasFACT', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 123, 1), )
-
-    
-    FACT = property(__FACT.value, __FACT.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}BLOC uses Python identifier BLOC
-    __BLOC = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'BLOC'), 'BLOC', '__httpchercheurs_edf_comlogicielsefficas_T_Accas_Common_httpchercheurs_edf_comlogicielsefficasBLOC', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 157, 1), )
-
-    
-    BLOC = property(__BLOC.value, __BLOC.set, None, None)
-
-    
-    # Attribute {http://chercheurs.edf.com/logiciels/efficas}nom uses Python identifier nom
-    __nom = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(Namespace, u'nom'), 'nom', '__httpchercheurs_edf_comlogicielsefficas_T_Accas_Common_httpchercheurs_edf_comlogicielsefficasnom', AT_nom, required=True)
-    __nom._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 51, 1)
-    __nom._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 97, 2)
-    
-    nom = property(__nom.value, __nom.set, None, None)
-
-    _ElementMap.update({
-        __doc.name() : __doc,
-        __regles.name() : __regles,
-        __SIMP.name() : __SIMP,
-        __FACT.name() : __FACT,
-        __BLOC.name() : __BLOC
-    })
-    _AttributeMap.update({
-        __nom.name() : __nom
-    })
-Namespace.addCategoryObject('typeBinding', u'T_Accas.Common', T_Accas_Common)
-
-
-# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_SIMP with content type ELEMENT_ONLY
-class T_SIMP (pyxb.binding.basis.complexTypeDefinition):
-    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_SIMP with content type ELEMENT_ONLY"""
-    _TypeDefinition = None
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
-    _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_SIMP')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 167, 1)
-    _ElementMap = {}
-    _AttributeMap = {}
-    # Base type is pyxb.binding.datatypes.anyType
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}doc uses Python identifier doc
-    __doc = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'doc'), 'doc', '__httpchercheurs_edf_comlogicielsefficas_T_SIMP_httpchercheurs_edf_comlogicielsefficasdoc', False, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 4, 1), )
-
-    
-    doc = property(__doc.value, __doc.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}ValeurDef uses Python identifier ValeurDef
-    __ValeurDef = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'ValeurDef'), 'ValeurDef', '__httpchercheurs_edf_comlogicielsefficas_T_SIMP_httpchercheurs_edf_comlogicielsefficasValeurDef', False, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 8, 1), )
-
-    
-    ValeurDef = property(__ValeurDef.value, __ValeurDef.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}ValeurSugg uses Python identifier ValeurSugg
-    __ValeurSugg = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'ValeurSugg'), 'ValeurSugg', '__httpchercheurs_edf_comlogicielsefficas_T_SIMP_httpchercheurs_edf_comlogicielsefficasValeurSugg', False, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 9, 1), )
-
-    
-    ValeurSugg = property(__ValeurSugg.value, __ValeurSugg.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}validators uses Python identifier validators
-    __validators = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'validators'), 'validators', '__httpchercheurs_edf_comlogicielsefficas_T_SIMP_httpchercheurs_edf_comlogicielsefficasvalidators', False, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 39, 1), )
-
-    
-    validators = property(__validators.value, __validators.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}PlageValeur uses Python identifier PlageValeur
-    __PlageValeur = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'PlageValeur'), 'PlageValeur', '__httpchercheurs_edf_comlogicielsefficas_T_SIMP_httpchercheurs_edf_comlogicielsefficasPlageValeur', False, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 40, 1), )
-
-    
-    PlageValeur = property(__PlageValeur.value, __PlageValeur.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}typeAttendu uses Python identifier typeAttendu
-    __typeAttendu = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'typeAttendu'), 'typeAttendu', '__httpchercheurs_edf_comlogicielsefficas_T_SIMP_httpchercheurs_edf_comlogicielsefficastypeAttendu', False, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 41, 1), )
-
-    
-    typeAttendu = property(__typeAttendu.value, __typeAttendu.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}portee uses Python identifier portee
-    __portee = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'portee'), 'portee', '__httpchercheurs_edf_comlogicielsefficas_T_SIMP_httpchercheurs_edf_comlogicielsefficasportee', False, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 44, 1), )
-
-    
-    portee = property(__portee.value, __portee.set, None, None)
-
-    
-    # Attribute {http://chercheurs.edf.com/logiciels/efficas}nom uses Python identifier nom
-    __nom = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(Namespace, u'nom'), 'nom', '__httpchercheurs_edf_comlogicielsefficas_T_SIMP_httpchercheurs_edf_comlogicielsefficasnom', AT_nom, required=True)
-    __nom._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 51, 1)
-    __nom._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 181, 2)
-    
-    nom = property(__nom.value, __nom.set, None, None)
-
-    
-    # Attribute {http://chercheurs.edf.com/logiciels/efficas}statut uses Python identifier statut
-    __statut = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(Namespace, u'statut'), 'statut', '__httpchercheurs_edf_comlogicielsefficas_T_SIMP_httpchercheurs_edf_comlogicielsefficasstatut', AT_statut, unicode_default=u'o')
-    __statut._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 57, 1)
-    __statut._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 182, 2)
-    
-    statut = property(__statut.value, __statut.set, None, None)
-
-    
-    # Attribute {http://chercheurs.edf.com/logiciels/efficas}max_occurs uses Python identifier max_occurs
-    __max_occurs = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(Namespace, u'max_occurs'), 'max_occurs', '__httpchercheurs_edf_comlogicielsefficas_T_SIMP_httpchercheurs_edf_comlogicielsefficasmax_occurs', AT_max_occurs, unicode_default=u'1')
-    __max_occurs._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 58, 1)
-    __max_occurs._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 184, 2)
-    
-    max_occurs = property(__max_occurs.value, __max_occurs.set, None, None)
-
-    
-    # Attribute {http://chercheurs.edf.com/logiciels/efficas}min_occurs uses Python identifier min_occurs
-    __min_occurs = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(Namespace, u'min_occurs'), 'min_occurs', '__httpchercheurs_edf_comlogicielsefficas_T_SIMP_httpchercheurs_edf_comlogicielsefficasmin_occurs', AT_min_occurs, unicode_default=u'1')
-    __min_occurs._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 59, 1)
-    __min_occurs._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 183, 2)
-    
-    min_occurs = property(__min_occurs.value, __min_occurs.set, None, None)
-
-    _ElementMap.update({
-        __doc.name() : __doc,
-        __ValeurDef.name() : __ValeurDef,
-        __ValeurSugg.name() : __ValeurSugg,
-        __validators.name() : __validators,
-        __PlageValeur.name() : __PlageValeur,
-        __typeAttendu.name() : __typeAttendu,
-        __portee.name() : __portee
-    })
-    _AttributeMap.update({
-        __nom.name() : __nom,
-        __statut.name() : __statut,
-        __max_occurs.name() : __max_occurs,
-        __min_occurs.name() : __min_occurs
-    })
-Namespace.addCategoryObject('typeBinding', u'T_SIMP', T_SIMP)
-
-
-# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_Matrice_double with content type SIMPLE
-class T_Matrice_double (pyxb.binding.basis.complexTypeDefinition):
-    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_Matrice_double with content type SIMPLE"""
-    _TypeDefinition = T_list_double
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_SIMPLE
-    _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_Matrice_double')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 432, 1)
-    _ElementMap = {}
-    _AttributeMap = {}
-    # Base type is T_list_double
-    
-    # Attribute n uses Python identifier n
-    __n = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, u'n'), 'n', '__httpchercheurs_edf_comlogicielsefficas_T_Matrice_double_n', pyxb.binding.datatypes.integer, required=True)
-    __n._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 435, 4)
-    __n._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 435, 4)
-    
-    n = property(__n.value, __n.set, None, None)
-
-    
-    # Attribute m uses Python identifier m
-    __m = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, u'm'), 'm', '__httpchercheurs_edf_comlogicielsefficas_T_Matrice_double_m', pyxb.binding.datatypes.integer, required=True)
-    __m._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 436, 4)
-    __m._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 436, 4)
-    
-    m = property(__m.value, __m.set, None, None)
-
-    _ElementMap.update({
-        
-    })
-    _AttributeMap.update({
-        __n.name() : __n,
-        __m.name() : __m
-    })
-Namespace.addCategoryObject('typeBinding', u'T_Matrice_double', T_Matrice_double)
-
-
-# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_Matrice_Symetrique_double with content type SIMPLE
-class T_Matrice_Symetrique_double (pyxb.binding.basis.complexTypeDefinition):
-    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_Matrice_Symetrique_double with content type SIMPLE"""
-    _TypeDefinition = T_list_double
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_SIMPLE
-    _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_Matrice_Symetrique_double')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 441, 1)
-    _ElementMap = {}
-    _AttributeMap = {}
-    # Base type is T_list_double
-    
-    # Attribute n uses Python identifier n
-    __n = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, u'n'), 'n', '__httpchercheurs_edf_comlogicielsefficas_T_Matrice_Symetrique_double_n', pyxb.binding.datatypes.int, required=True)
-    __n._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 444, 4)
-    __n._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 444, 4)
-    
-    n = property(__n.value, __n.set, None, None)
-
-    _ElementMap.update({
-        
-    })
-    _AttributeMap.update({
-        __n.name() : __n
-    })
-Namespace.addCategoryObject('typeBinding', u'T_Matrice_Symetrique_double', T_Matrice_Symetrique_double)
-
-
-# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_typeAttendu with content type ELEMENT_ONLY
-class T_typeAttendu (T_into):
-    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_typeAttendu with content type ELEMENT_ONLY"""
-    _TypeDefinition = None
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
-    _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_typeAttendu')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 512, 1)
-    _ElementMap = T_into._ElementMap.copy()
-    _AttributeMap = T_into._AttributeMap.copy()
-    # Base type is T_into
-    
-    # Element typesimple ({http://chercheurs.edf.com/logiciels/efficas}typesimple) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_into
-    
-    # Element matrice_double ({http://chercheurs.edf.com/logiciels/efficas}matrice_double) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_into
-    
-    # Element matrice_symetrique_double ({http://chercheurs.edf.com/logiciels/efficas}matrice_symetrique_double) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_into
-    
-    # Element tuple ({http://chercheurs.edf.com/logiciels/efficas}tuple) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_into
-    
-    # Element classe_utilisateur ({http://chercheurs.edf.com/logiciels/efficas}classe_utilisateur) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_into
-    _ElementMap.update({
-        
-    })
-    _AttributeMap.update({
-        
-    })
-Namespace.addCategoryObject('typeBinding', u'T_typeAttendu', T_typeAttendu)
-
-
-# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_OPER with content type ELEMENT_ONLY
-class T_OPER (T_Accas_Common):
-    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_OPER with content type ELEMENT_ONLY"""
-    _TypeDefinition = None
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
-    _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_OPER')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 100, 1)
-    _ElementMap = T_Accas_Common._ElementMap.copy()
-    _AttributeMap = T_Accas_Common._AttributeMap.copy()
-    # Base type is T_Accas_Common
-    
-    # Element doc ({http://chercheurs.edf.com/logiciels/efficas}doc) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
-    
-    # Element regles ({http://chercheurs.edf.com/logiciels/efficas}regles) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}typeCree uses Python identifier typeCree
-    __typeCree = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'typeCree'), 'typeCree', '__httpchercheurs_edf_comlogicielsefficas_T_OPER_httpchercheurs_edf_comlogicielsefficastypeCree', False, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 7, 1), )
-
-    
-    typeCree = property(__typeCree.value, __typeCree.set, None, None)
-
-    
-    # Element SIMP ({http://chercheurs.edf.com/logiciels/efficas}SIMP) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
-    
-    # Element FACT ({http://chercheurs.edf.com/logiciels/efficas}FACT) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
-    
-    # Element BLOC ({http://chercheurs.edf.com/logiciels/efficas}BLOC) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
-    
-    # Attribute nom inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
-    
-    # Attribute {http://chercheurs.edf.com/logiciels/efficas}subroutine uses Python identifier subroutine
-    __subroutine = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(Namespace, u'subroutine'), 'subroutine', '__httpchercheurs_edf_comlogicielsefficas_T_OPER_httpchercheurs_edf_comlogicielsefficassubroutine', AT_subroutine, unicode_default=u'None')
-    __subroutine._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 60, 1)
-    __subroutine._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 106, 4)
-    
-    subroutine = property(__subroutine.value, __subroutine.set, None, None)
-
-    _ElementMap.update({
-        __typeCree.name() : __typeCree
-    })
-    _AttributeMap.update({
-        __subroutine.name() : __subroutine
-    })
-Namespace.addCategoryObject('typeBinding', u'T_OPER', T_OPER)
-
-
-# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_PROC with content type ELEMENT_ONLY
-class T_PROC (T_Accas_Common):
-    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_PROC with content type ELEMENT_ONLY"""
-    _TypeDefinition = None
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
-    _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_PROC')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 116, 1)
-    _ElementMap = T_Accas_Common._ElementMap.copy()
-    _AttributeMap = T_Accas_Common._AttributeMap.copy()
-    # Base type is T_Accas_Common
-    
-    # Element doc ({http://chercheurs.edf.com/logiciels/efficas}doc) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
-    
-    # Element regles ({http://chercheurs.edf.com/logiciels/efficas}regles) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
-    
-    # Element SIMP ({http://chercheurs.edf.com/logiciels/efficas}SIMP) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
-    
-    # Element FACT ({http://chercheurs.edf.com/logiciels/efficas}FACT) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
-    
-    # Element BLOC ({http://chercheurs.edf.com/logiciels/efficas}BLOC) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
-    
-    # Attribute nom inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
-    
-    # Attribute {http://chercheurs.edf.com/logiciels/efficas}subroutine uses Python identifier subroutine
-    __subroutine = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(Namespace, u'subroutine'), 'subroutine', '__httpchercheurs_edf_comlogicielsefficas_T_PROC_httpchercheurs_edf_comlogicielsefficassubroutine', AT_subroutine, unicode_default=u'None')
-    __subroutine._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 60, 1)
-    __subroutine._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 119, 4)
-    
-    subroutine = property(__subroutine.value, __subroutine.set, None, None)
-
-    _ElementMap.update({
-        
-    })
-    _AttributeMap.update({
-        __subroutine.name() : __subroutine
-    })
-Namespace.addCategoryObject('typeBinding', u'T_PROC', T_PROC)
-
-
-# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_FACT with content type ELEMENT_ONLY
-class T_FACT (T_Accas_Common):
-    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_FACT with content type ELEMENT_ONLY"""
-    _TypeDefinition = None
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
-    _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_FACT')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 139, 1)
-    _ElementMap = T_Accas_Common._ElementMap.copy()
-    _AttributeMap = T_Accas_Common._AttributeMap.copy()
-    # Base type is T_Accas_Common
-    
-    # Element doc ({http://chercheurs.edf.com/logiciels/efficas}doc) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
-    
-    # Element regles ({http://chercheurs.edf.com/logiciels/efficas}regles) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
-    
-    # Element SIMP ({http://chercheurs.edf.com/logiciels/efficas}SIMP) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
-    
-    # Element FACT ({http://chercheurs.edf.com/logiciels/efficas}FACT) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
-    
-    # Element BLOC ({http://chercheurs.edf.com/logiciels/efficas}BLOC) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
-    
-    # Attribute nom inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
-    
-    # Attribute {http://chercheurs.edf.com/logiciels/efficas}statut uses Python identifier statut
-    __statut = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(Namespace, u'statut'), 'statut', '__httpchercheurs_edf_comlogicielsefficas_T_FACT_httpchercheurs_edf_comlogicielsefficasstatut', AT_statut, unicode_default=u'o')
-    __statut._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 57, 1)
-    __statut._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 142, 4)
-    
-    statut = property(__statut.value, __statut.set, None, None)
-
-    
-    # Attribute {http://chercheurs.edf.com/logiciels/efficas}max_occurs uses Python identifier max_occurs
-    __max_occurs = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(Namespace, u'max_occurs'), 'max_occurs', '__httpchercheurs_edf_comlogicielsefficas_T_FACT_httpchercheurs_edf_comlogicielsefficasmax_occurs', AT_max_occurs, unicode_default=u'1')
-    __max_occurs._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 58, 1)
-    __max_occurs._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 144, 4)
-    
-    max_occurs = property(__max_occurs.value, __max_occurs.set, None, None)
-
-    
-    # Attribute {http://chercheurs.edf.com/logiciels/efficas}min_occurs uses Python identifier min_occurs
-    __min_occurs = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(Namespace, u'min_occurs'), 'min_occurs', '__httpchercheurs_edf_comlogicielsefficas_T_FACT_httpchercheurs_edf_comlogicielsefficasmin_occurs', AT_min_occurs, unicode_default=u'1')
-    __min_occurs._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 59, 1)
-    __min_occurs._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 143, 4)
-    
-    min_occurs = property(__min_occurs.value, __min_occurs.set, None, None)
-
-    _ElementMap.update({
-        
-    })
-    _AttributeMap.update({
-        __statut.name() : __statut,
-        __max_occurs.name() : __max_occurs,
-        __min_occurs.name() : __min_occurs
-    })
-Namespace.addCategoryObject('typeBinding', u'T_FACT', T_FACT)
-
-
-# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_BLOC with content type ELEMENT_ONLY
-class T_BLOC (T_Accas_Common):
-    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_BLOC with content type ELEMENT_ONLY"""
-    _TypeDefinition = None
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
-    _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_BLOC')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 158, 1)
-    _ElementMap = T_Accas_Common._ElementMap.copy()
-    _AttributeMap = T_Accas_Common._AttributeMap.copy()
-    # Base type is T_Accas_Common
-    
-    # Element doc ({http://chercheurs.edf.com/logiciels/efficas}doc) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
-    
-    # Element regles ({http://chercheurs.edf.com/logiciels/efficas}regles) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
-    
-    # Element SIMP ({http://chercheurs.edf.com/logiciels/efficas}SIMP) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
-    
-    # Element {http://chercheurs.edf.com/logiciels/efficas}condition uses Python identifier condition
-    __condition = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'condition'), 'condition', '__httpchercheurs_edf_comlogicielsefficas_T_BLOC_httpchercheurs_edf_comlogicielsefficascondition', False, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 45, 1), )
-
-    
-    condition = property(__condition.value, __condition.set, None, None)
-
-    
-    # Element FACT ({http://chercheurs.edf.com/logiciels/efficas}FACT) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
-    
-    # Element BLOC ({http://chercheurs.edf.com/logiciels/efficas}BLOC) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
-    
-    # Attribute nom inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
-    _ElementMap.update({
-        __condition.name() : __condition
-    })
-    _AttributeMap.update({
-        
-    })
-Namespace.addCategoryObject('typeBinding', u'T_BLOC', T_BLOC)
-
-
-# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_classe_utilisateur_username with content type SIMPLE
-class T_classe_utilisateur_username (pyxb.binding.basis.complexTypeDefinition):
-    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_classe_utilisateur_username with content type SIMPLE"""
-    _TypeDefinition = T_classe_utilisateur_name
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_SIMPLE
-    _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_classe_utilisateur_username')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 376, 1)
-    _ElementMap = {}
-    _AttributeMap = {}
-    # Base type is T_classe_utilisateur_name
-    
-    # Attribute {http://chercheurs.edf.com/logiciels/efficas}nom uses Python identifier nom
-    __nom = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(Namespace, u'nom'), 'nom', '__httpchercheurs_edf_comlogicielsefficas_T_classe_utilisateur_username_httpchercheurs_edf_comlogicielsefficasnom', AT_nom, required=True)
-    __nom._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 51, 1)
-    __nom._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 379, 4)
-    
-    nom = property(__nom.value, __nom.set, None, None)
-
-    _ElementMap.update({
-        
-    })
-    _AttributeMap.update({
-        __nom.name() : __nom
-    })
-Namespace.addCategoryObject('typeBinding', u'T_classe_utilisateur_username', T_classe_utilisateur_username)
-
-
-cata = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'cata'), T_cata, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 5, 1))
-Namespace.addCategoryObject('elementBinding', cata.name().localName(), cata)
-
-regles = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'regles'), T_regles, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 6, 1))
-Namespace.addCategoryObject('elementBinding', regles.name().localName(), regles)
-
-fonction_utilisateur = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'fonction_utilisateur'), T_fonction_python, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 10, 1))
-Namespace.addCategoryObject('elementBinding', fonction_utilisateur.name().localName(), fonction_utilisateur)
-
-commandes = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'commandes'), T_commandes, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 11, 1))
-Namespace.addCategoryObject('elementBinding', commandes.name().localName(), commandes)
-
-validators = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'validators'), T_validators, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 39, 1))
-Namespace.addCategoryObject('elementBinding', validators.name().localName(), validators)
-
-PlageValeur = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'PlageValeur'), T_PlageValeur, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 40, 1))
-Namespace.addCategoryObject('elementBinding', PlageValeur.name().localName(), PlageValeur)
-
-portee = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'portee'), T_portee, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 44, 1), unicode_default=u'None')
-Namespace.addCategoryObject('elementBinding', portee.name().localName(), portee)
-
-condition = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'condition'), T_fonction_python, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 45, 1))
-Namespace.addCategoryObject('elementBinding', condition.name().localName(), condition)
-
-into = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'into'), T_into, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 49, 1))
-Namespace.addCategoryObject('elementBinding', into.name().localName(), into)
-
-A_CLASSER = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'A_CLASSER'), T_predicat2, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 257, 1))
-Namespace.addCategoryObject('elementBinding', A_CLASSER.name().localName(), A_CLASSER)
-
-tuple = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'tuple'), T_tuple, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 467, 1))
-Namespace.addCategoryObject('elementBinding', tuple.name().localName(), tuple)
-
-doc = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'doc'), T_doc, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 4, 1))
-Namespace.addCategoryObject('elementBinding', doc.name().localName(), doc)
-
-typeCree = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'typeCree'), T_classe_utilisateur, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 7, 1))
-Namespace.addCategoryObject('elementBinding', typeCree.name().localName(), typeCree)
-
-ValeurDef = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'ValeurDef'), T_typeAttendu, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 8, 1))
-Namespace.addCategoryObject('elementBinding', ValeurDef.name().localName(), ValeurDef)
-
-ValeurSugg = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'ValeurSugg'), T_typeAttendu, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 9, 1))
-Namespace.addCategoryObject('elementBinding', ValeurSugg.name().localName(), ValeurSugg)
-
-SIMP = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'SIMP'), T_SIMP, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 43, 1))
-Namespace.addCategoryObject('elementBinding', SIMP.name().localName(), SIMP)
-
-borne_sup = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'borne_sup'), T_typeAttendu, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 46, 1))
-Namespace.addCategoryObject('elementBinding', borne_sup.name().localName(), borne_sup)
-
-borne_inf = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'borne_inf'), T_typeAttendu, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 47, 1))
-Namespace.addCategoryObject('elementBinding', borne_inf.name().localName(), borne_inf)
-
-AU_MOINS_UN = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'AU_MOINS_UN'), T_predicat1, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 258, 1))
-Namespace.addCategoryObject('elementBinding', AU_MOINS_UN.name().localName(), AU_MOINS_UN)
-
-AU_PLUS_UN = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'AU_PLUS_UN'), T_predicat1, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 259, 1))
-Namespace.addCategoryObject('elementBinding', AU_PLUS_UN.name().localName(), AU_PLUS_UN)
-
-ENSEMBLE = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'ENSEMBLE'), T_predicat1, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 260, 1))
-Namespace.addCategoryObject('elementBinding', ENSEMBLE.name().localName(), ENSEMBLE)
-
-EXCLUS = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'EXCLUS'), T_predicat1, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 261, 1))
-Namespace.addCategoryObject('elementBinding', EXCLUS.name().localName(), EXCLUS)
-
-PRESENT_ABSENT = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'PRESENT_ABSENT'), T_predicat1, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 269, 1))
-Namespace.addCategoryObject('elementBinding', PRESENT_ABSENT.name().localName(), PRESENT_ABSENT)
-
-PRESENT_PRESENT = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'PRESENT_PRESENT'), T_predicat1, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 270, 1))
-Namespace.addCategoryObject('elementBinding', PRESENT_PRESENT.name().localName(), PRESENT_PRESENT)
-
-UN_PARMI = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'UN_PARMI'), T_predicat1, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 271, 1))
-Namespace.addCategoryObject('elementBinding', UN_PARMI.name().localName(), UN_PARMI)
-
-matrice_double = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'matrice_double'), T_Matrice_double, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 465, 1))
-Namespace.addCategoryObject('elementBinding', matrice_double.name().localName(), matrice_double)
-
-matrice_symetrique_double = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'matrice_symetrique_double'), T_Matrice_Symetrique_double, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 466, 1))
-Namespace.addCategoryObject('elementBinding', matrice_symetrique_double.name().localName(), matrice_symetrique_double)
-
-classe_utilisateur = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'classe_utilisateur'), T_classe_utilisateur, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 468, 1))
-Namespace.addCategoryObject('elementBinding', classe_utilisateur.name().localName(), classe_utilisateur)
-
-OPER = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'OPER'), T_OPER, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 99, 1))
-Namespace.addCategoryObject('elementBinding', OPER.name().localName(), OPER)
-
-PROC = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'PROC'), T_PROC, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 110, 1))
-Namespace.addCategoryObject('elementBinding', PROC.name().localName(), PROC)
-
-FACT = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'FACT'), T_FACT, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 123, 1))
-Namespace.addCategoryObject('elementBinding', FACT.name().localName(), FACT)
-
-BLOC = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'BLOC'), T_BLOC, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 157, 1))
-Namespace.addCategoryObject('elementBinding', BLOC.name().localName(), BLOC)
-
-typeAttendu = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'typeAttendu'), T_name, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 41, 1))
-Namespace.addCategoryObject('elementBinding', typeAttendu.name().localName(), typeAttendu)
-
-typesimple = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'typesimple'), T_simple, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 464, 1))
-Namespace.addCategoryObject('elementBinding', typesimple.name().localName(), typesimple)
-
-classeUtilisateurName = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'classeUtilisateurName'), T_classe_utilisateur_username, abstract=pyxb.binding.datatypes.boolean(1), location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 42, 1))
-Namespace.addCategoryObject('elementBinding', classeUtilisateurName.name().localName(), classeUtilisateurName)
-
-
-
-T_cata._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'commandes'), T_commandes, scope=T_cata, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 11, 1)))
-
-def _BuildAutomaton ():
-    # Remove this helper function from the namespace after it is invoked
-    global _BuildAutomaton
-    del _BuildAutomaton
-    import pyxb.utils.fac as fac
-
-    counters = set()
-    cc_0 = fac.CounterCondition(min=0L, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 68, 3))
-    counters.add(cc_0)
-    states = []
-    final_update = set()
-    final_update.add(fac.UpdateInstruction(cc_0, False))
-    symbol = pyxb.binding.content.ElementUse(T_cata._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'commandes')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 68, 3))
-    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_0)
-    transitions = []
-    transitions.append(fac.Transition(st_0, [
-        fac.UpdateInstruction(cc_0, True) ]))
-    st_0._set_transitionSet(transitions)
-    return fac.Automaton(states, counters, True, containing_state=None)
-T_cata._Automaton = _BuildAutomaton()
-
-
-
-
-T_commandes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'OPER'), T_OPER, scope=T_commandes, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 99, 1)))
-
-T_commandes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'PROC'), T_PROC, scope=T_commandes, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 110, 1)))
-
-def _BuildAutomaton_ ():
-    # Remove this helper function from the namespace after it is invoked
-    global _BuildAutomaton_
-    del _BuildAutomaton_
-    import pyxb.utils.fac as fac
-
-    counters = set()
-    cc_0 = fac.CounterCondition(min=0L, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 72, 2))
-    counters.add(cc_0)
-    states = []
-    final_update = set()
-    final_update.add(fac.UpdateInstruction(cc_0, False))
-    symbol = pyxb.binding.content.ElementUse(T_commandes._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'OPER')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 73, 3))
-    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_0)
-    final_update = set()
-    final_update.add(fac.UpdateInstruction(cc_0, False))
-    symbol = pyxb.binding.content.ElementUse(T_commandes._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'PROC')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 74, 3))
-    st_1 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_1)
-    transitions = []
-    transitions.append(fac.Transition(st_0, [
-        fac.UpdateInstruction(cc_0, True) ]))
-    transitions.append(fac.Transition(st_1, [
-        fac.UpdateInstruction(cc_0, True) ]))
-    st_0._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_0, [
-        fac.UpdateInstruction(cc_0, True) ]))
-    transitions.append(fac.Transition(st_1, [
-        fac.UpdateInstruction(cc_0, True) ]))
-    st_1._set_transitionSet(transitions)
-    return fac.Automaton(states, counters, True, containing_state=None)
-T_commandes._Automaton = _BuildAutomaton_()
-
-
-
-
-T_PlageValeur._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'borne_sup'), T_typeAttendu, scope=T_PlageValeur, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 46, 1)))
-
-T_PlageValeur._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'borne_inf'), T_typeAttendu, scope=T_PlageValeur, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 47, 1)))
-
-T_PlageValeur._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'into'), T_into, scope=T_PlageValeur, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 49, 1)))
-
-def _BuildAutomaton_2 ():
-    # Remove this helper function from the namespace after it is invoked
-    global _BuildAutomaton_2
-    del _BuildAutomaton_2
-    import pyxb.utils.fac as fac
-
-    counters = set()
-    cc_0 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 81, 4))
-    counters.add(cc_0)
-    cc_1 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 82, 4))
-    counters.add(cc_1)
-    states = []
-    final_update = set()
-    final_update.add(fac.UpdateInstruction(cc_0, False))
-    symbol = pyxb.binding.content.ElementUse(T_PlageValeur._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'borne_sup')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 81, 4))
-    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_0)
-    final_update = set()
-    final_update.add(fac.UpdateInstruction(cc_1, False))
-    symbol = pyxb.binding.content.ElementUse(T_PlageValeur._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'borne_inf')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 82, 4))
-    st_1 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_1)
-    final_update = set()
-    symbol = pyxb.binding.content.ElementUse(T_PlageValeur._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'into')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 84, 3))
-    st_2 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_2)
-    transitions = []
-    transitions.append(fac.Transition(st_0, [
-        fac.UpdateInstruction(cc_0, True) ]))
-    transitions.append(fac.Transition(st_1, [
-        fac.UpdateInstruction(cc_0, False) ]))
-    st_0._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_1, [
-        fac.UpdateInstruction(cc_1, True) ]))
-    st_1._set_transitionSet(transitions)
-    transitions = []
-    st_2._set_transitionSet(transitions)
-    return fac.Automaton(states, counters, True, containing_state=None)
-T_PlageValeur._Automaton = _BuildAutomaton_2()
-
-
-
-
-T_predicat2._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'p1'), T_predicat1, scope=T_predicat2, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 252, 3)))
-
-T_predicat2._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'p2'), AT_nom, scope=T_predicat2, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 253, 3)))
-
-def _BuildAutomaton_3 ():
-    # Remove this helper function from the namespace after it is invoked
-    global _BuildAutomaton_3
-    del _BuildAutomaton_3
-    import pyxb.utils.fac as fac
-
-    counters = set()
-    states = []
-    final_update = None
-    symbol = pyxb.binding.content.ElementUse(T_predicat2._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'p1')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 252, 3))
-    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_0)
-    final_update = set()
-    symbol = pyxb.binding.content.ElementUse(T_predicat2._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'p2')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 253, 3))
-    st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_1)
-    transitions = []
-    transitions.append(fac.Transition(st_1, [
-         ]))
-    st_0._set_transitionSet(transitions)
-    transitions = []
-    st_1._set_transitionSet(transitions)
-    return fac.Automaton(states, counters, False, containing_state=None)
-T_predicat2._Automaton = _BuildAutomaton_3()
-
-
-
-
-T_regles._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'A_CLASSER'), T_predicat2, scope=T_regles, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 257, 1)))
-
-T_regles._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'AU_MOINS_UN'), T_predicat1, scope=T_regles, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 258, 1)))
-
-T_regles._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'AU_PLUS_UN'), T_predicat1, scope=T_regles, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 259, 1)))
-
-T_regles._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'ENSEMBLE'), T_predicat1, scope=T_regles, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 260, 1)))
-
-T_regles._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'EXCLUS'), T_predicat1, scope=T_regles, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 261, 1)))
-
-T_regles._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'PRESENT_ABSENT'), T_predicat1, scope=T_regles, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 269, 1)))
-
-T_regles._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'PRESENT_PRESENT'), T_predicat1, scope=T_regles, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 270, 1)))
-
-T_regles._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'UN_PARMI'), T_predicat1, scope=T_regles, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 271, 1)))
-
-def _BuildAutomaton_4 ():
-    # Remove this helper function from the namespace after it is invoked
-    global _BuildAutomaton_4
-    del _BuildAutomaton_4
-    import pyxb.utils.fac as fac
-
-    counters = set()
-    states = []
-    final_update = set()
-    symbol = pyxb.binding.content.ElementUse(T_regles._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'A_CLASSER')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 274, 3))
-    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_0)
-    final_update = set()
-    symbol = pyxb.binding.content.ElementUse(T_regles._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'AU_MOINS_UN')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 275, 3))
-    st_1 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_1)
-    final_update = set()
-    symbol = pyxb.binding.content.ElementUse(T_regles._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'AU_PLUS_UN')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 276, 3))
-    st_2 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_2)
-    final_update = set()
-    symbol = pyxb.binding.content.ElementUse(T_regles._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'ENSEMBLE')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 277, 3))
-    st_3 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_3)
-    final_update = set()
-    symbol = pyxb.binding.content.ElementUse(T_regles._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'EXCLUS')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 278, 3))
-    st_4 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_4)
-    final_update = set()
-    symbol = pyxb.binding.content.ElementUse(T_regles._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'PRESENT_ABSENT')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 286, 3))
-    st_5 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_5)
-    final_update = set()
-    symbol = pyxb.binding.content.ElementUse(T_regles._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'PRESENT_PRESENT')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 287, 3))
-    st_6 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_6)
-    final_update = set()
-    symbol = pyxb.binding.content.ElementUse(T_regles._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'UN_PARMI')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 288, 3))
-    st_7 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_7)
-    transitions = []
-    transitions.append(fac.Transition(st_0, [
-         ]))
-    transitions.append(fac.Transition(st_1, [
-         ]))
-    transitions.append(fac.Transition(st_2, [
-         ]))
-    transitions.append(fac.Transition(st_3, [
-         ]))
-    transitions.append(fac.Transition(st_4, [
-         ]))
-    transitions.append(fac.Transition(st_5, [
-         ]))
-    transitions.append(fac.Transition(st_6, [
-         ]))
-    transitions.append(fac.Transition(st_7, [
-         ]))
-    st_0._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_0, [
-         ]))
-    transitions.append(fac.Transition(st_1, [
-         ]))
-    transitions.append(fac.Transition(st_2, [
-         ]))
-    transitions.append(fac.Transition(st_3, [
-         ]))
-    transitions.append(fac.Transition(st_4, [
-         ]))
-    transitions.append(fac.Transition(st_5, [
-         ]))
-    transitions.append(fac.Transition(st_6, [
-         ]))
-    transitions.append(fac.Transition(st_7, [
-         ]))
-    st_1._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_0, [
-         ]))
-    transitions.append(fac.Transition(st_1, [
-         ]))
-    transitions.append(fac.Transition(st_2, [
-         ]))
-    transitions.append(fac.Transition(st_3, [
-         ]))
-    transitions.append(fac.Transition(st_4, [
-         ]))
-    transitions.append(fac.Transition(st_5, [
-         ]))
-    transitions.append(fac.Transition(st_6, [
-         ]))
-    transitions.append(fac.Transition(st_7, [
-         ]))
-    st_2._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_0, [
-         ]))
-    transitions.append(fac.Transition(st_1, [
-         ]))
-    transitions.append(fac.Transition(st_2, [
-         ]))
-    transitions.append(fac.Transition(st_3, [
-         ]))
-    transitions.append(fac.Transition(st_4, [
-         ]))
-    transitions.append(fac.Transition(st_5, [
-         ]))
-    transitions.append(fac.Transition(st_6, [
-         ]))
-    transitions.append(fac.Transition(st_7, [
-         ]))
-    st_3._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_0, [
-         ]))
-    transitions.append(fac.Transition(st_1, [
-         ]))
-    transitions.append(fac.Transition(st_2, [
-         ]))
-    transitions.append(fac.Transition(st_3, [
-         ]))
-    transitions.append(fac.Transition(st_4, [
-         ]))
-    transitions.append(fac.Transition(st_5, [
-         ]))
-    transitions.append(fac.Transition(st_6, [
-         ]))
-    transitions.append(fac.Transition(st_7, [
-         ]))
-    st_4._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_0, [
-         ]))
-    transitions.append(fac.Transition(st_1, [
-         ]))
-    transitions.append(fac.Transition(st_2, [
-         ]))
-    transitions.append(fac.Transition(st_3, [
-         ]))
-    transitions.append(fac.Transition(st_4, [
-         ]))
-    transitions.append(fac.Transition(st_5, [
-         ]))
-    transitions.append(fac.Transition(st_6, [
-         ]))
-    transitions.append(fac.Transition(st_7, [
-         ]))
-    st_5._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_0, [
-         ]))
-    transitions.append(fac.Transition(st_1, [
-         ]))
-    transitions.append(fac.Transition(st_2, [
-         ]))
-    transitions.append(fac.Transition(st_3, [
-         ]))
-    transitions.append(fac.Transition(st_4, [
-         ]))
-    transitions.append(fac.Transition(st_5, [
-         ]))
-    transitions.append(fac.Transition(st_6, [
-         ]))
-    transitions.append(fac.Transition(st_7, [
-         ]))
-    st_6._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_0, [
-         ]))
-    transitions.append(fac.Transition(st_1, [
-         ]))
-    transitions.append(fac.Transition(st_2, [
-         ]))
-    transitions.append(fac.Transition(st_3, [
-         ]))
-    transitions.append(fac.Transition(st_4, [
-         ]))
-    transitions.append(fac.Transition(st_5, [
-         ]))
-    transitions.append(fac.Transition(st_6, [
-         ]))
-    transitions.append(fac.Transition(st_7, [
-         ]))
-    st_7._set_transitionSet(transitions)
-    return fac.Automaton(states, counters, False, containing_state=None)
-T_regles._Automaton = _BuildAutomaton_4()
-
-
-
-
-T_into._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'fonction_utilisateur'), T_fonction_python, scope=T_into, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 10, 1)))
-
-T_into._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'typesimple'), T_simple, scope=T_into, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 464, 1)))
-
-T_into._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'matrice_double'), T_Matrice_double, scope=T_into, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 465, 1)))
-
-T_into._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'matrice_symetrique_double'), T_Matrice_Symetrique_double, scope=T_into, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 466, 1)))
-
-T_into._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'tuple'), T_tuple, scope=T_into, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 467, 1)))
-
-T_into._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'classe_utilisateur'), T_classe_utilisateur, scope=T_into, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 468, 1)))
-
-def _BuildAutomaton_5 ():
-    # Remove this helper function from the namespace after it is invoked
-    global _BuildAutomaton_5
-    del _BuildAutomaton_5
-    import pyxb.utils.fac as fac
-
-    counters = set()
-    cc_0 = fac.CounterCondition(min=0L, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 504, 3))
-    counters.add(cc_0)
-    cc_1 = fac.CounterCondition(min=0L, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 505, 3))
-    counters.add(cc_1)
-    cc_2 = fac.CounterCondition(min=0L, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 506, 3))
-    counters.add(cc_2)
-    cc_3 = fac.CounterCondition(min=0L, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 507, 3))
-    counters.add(cc_3)
-    cc_4 = fac.CounterCondition(min=0L, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 508, 3))
-    counters.add(cc_4)
-    states = []
-    final_update = set()
-    final_update.add(fac.UpdateInstruction(cc_0, False))
-    symbol = pyxb.binding.content.ElementUse(T_into._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'typesimple')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 504, 3))
-    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_0)
-    final_update = set()
-    final_update.add(fac.UpdateInstruction(cc_1, False))
-    symbol = pyxb.binding.content.ElementUse(T_into._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'matrice_double')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 505, 3))
-    st_1 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_1)
-    final_update = set()
-    final_update.add(fac.UpdateInstruction(cc_2, False))
-    symbol = pyxb.binding.content.ElementUse(T_into._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'matrice_symetrique_double')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 506, 3))
-    st_2 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_2)
-    final_update = set()
-    final_update.add(fac.UpdateInstruction(cc_3, False))
-    symbol = pyxb.binding.content.ElementUse(T_into._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'tuple')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 507, 3))
-    st_3 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_3)
-    final_update = set()
-    final_update.add(fac.UpdateInstruction(cc_4, False))
-    symbol = pyxb.binding.content.ElementUse(T_into._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'classe_utilisateur')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 508, 3))
-    st_4 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_4)
-    final_update = set()
-    symbol = pyxb.binding.content.ElementUse(T_into._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'fonction_utilisateur')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 509, 3))
-    st_5 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_5)
-    transitions = []
-    transitions.append(fac.Transition(st_0, [
-        fac.UpdateInstruction(cc_0, True) ]))
-    st_0._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_1, [
-        fac.UpdateInstruction(cc_1, True) ]))
-    st_1._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_2, [
-        fac.UpdateInstruction(cc_2, True) ]))
-    st_2._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_3, [
-        fac.UpdateInstruction(cc_3, True) ]))
-    st_3._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_4, [
-        fac.UpdateInstruction(cc_4, True) ]))
-    st_4._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_5, [
-         ]))
-    st_5._set_transitionSet(transitions)
-    return fac.Automaton(states, counters, True, containing_state=None)
-T_into._Automaton = _BuildAutomaton_5()
-
-
-
-
-T_Accas_Common._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'doc'), T_doc, scope=T_Accas_Common, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 4, 1)))
-
-T_Accas_Common._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'regles'), T_regles, scope=T_Accas_Common, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 6, 1)))
-
-T_Accas_Common._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'SIMP'), T_SIMP, scope=T_Accas_Common, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 43, 1)))
-
-T_Accas_Common._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'FACT'), T_FACT, scope=T_Accas_Common, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 123, 1)))
-
-T_Accas_Common._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'BLOC'), T_BLOC, scope=T_Accas_Common, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 157, 1)))
-
-def _BuildAutomaton_6 ():
-    # Remove this helper function from the namespace after it is invoked
-    global _BuildAutomaton_6
-    del _BuildAutomaton_6
-    import pyxb.utils.fac as fac
-
-    counters = set()
-    cc_0 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 89, 3))
-    counters.add(cc_0)
-    cc_1 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 90, 3))
-    counters.add(cc_1)
-    states = []
-    final_update = None
-    symbol = pyxb.binding.content.ElementUse(T_Accas_Common._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'regles')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 89, 3))
-    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_0)
-    final_update = None
-    symbol = pyxb.binding.content.ElementUse(T_Accas_Common._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'doc')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 90, 3))
-    st_1 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_1)
-    final_update = set()
-    symbol = pyxb.binding.content.ElementUse(T_Accas_Common._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'BLOC')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 92, 4))
-    st_2 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_2)
-    final_update = set()
-    symbol = pyxb.binding.content.ElementUse(T_Accas_Common._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'FACT')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 93, 4))
-    st_3 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_3)
-    final_update = set()
-    symbol = pyxb.binding.content.ElementUse(T_Accas_Common._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'SIMP')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 94, 4))
-    st_4 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_4)
-    transitions = []
-    transitions.append(fac.Transition(st_0, [
-        fac.UpdateInstruction(cc_0, True) ]))
-    transitions.append(fac.Transition(st_1, [
-        fac.UpdateInstruction(cc_0, False) ]))
-    transitions.append(fac.Transition(st_2, [
-        fac.UpdateInstruction(cc_0, False) ]))
-    transitions.append(fac.Transition(st_3, [
-        fac.UpdateInstruction(cc_0, False) ]))
-    transitions.append(fac.Transition(st_4, [
-        fac.UpdateInstruction(cc_0, False) ]))
-    st_0._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_1, [
-        fac.UpdateInstruction(cc_1, True) ]))
-    transitions.append(fac.Transition(st_2, [
-        fac.UpdateInstruction(cc_1, False) ]))
-    transitions.append(fac.Transition(st_3, [
-        fac.UpdateInstruction(cc_1, False) ]))
-    transitions.append(fac.Transition(st_4, [
-        fac.UpdateInstruction(cc_1, False) ]))
-    st_1._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_2, [
-         ]))
-    transitions.append(fac.Transition(st_3, [
-         ]))
-    transitions.append(fac.Transition(st_4, [
-         ]))
-    st_2._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_2, [
-         ]))
-    transitions.append(fac.Transition(st_3, [
-         ]))
-    transitions.append(fac.Transition(st_4, [
-         ]))
-    st_3._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_2, [
-         ]))
-    transitions.append(fac.Transition(st_3, [
-         ]))
-    transitions.append(fac.Transition(st_4, [
-         ]))
-    st_4._set_transitionSet(transitions)
-    return fac.Automaton(states, counters, False, containing_state=None)
-T_Accas_Common._Automaton = _BuildAutomaton_6()
-
-
-
-
-T_SIMP._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'doc'), T_doc, scope=T_SIMP, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 4, 1)))
-
-T_SIMP._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'ValeurDef'), T_typeAttendu, scope=T_SIMP, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 8, 1)))
-
-T_SIMP._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'ValeurSugg'), T_typeAttendu, scope=T_SIMP, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 9, 1)))
-
-T_SIMP._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'validators'), T_validators, scope=T_SIMP, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 39, 1)))
-
-T_SIMP._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'PlageValeur'), T_PlageValeur, scope=T_SIMP, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 40, 1)))
-
-T_SIMP._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'typeAttendu'), T_name, scope=T_SIMP, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 41, 1)))
-
-T_SIMP._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'portee'), T_portee, scope=T_SIMP, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 44, 1), unicode_default=u'None'))
-
-def _BuildAutomaton_7 ():
-    # Remove this helper function from the namespace after it is invoked
-    global _BuildAutomaton_7
-    del _BuildAutomaton_7
-    import pyxb.utils.fac as fac
-
-    counters = set()
-    cc_0 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 169, 3))
-    counters.add(cc_0)
-    cc_1 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 170, 3))
-    counters.add(cc_1)
-    cc_2 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 175, 3))
-    counters.add(cc_2)
-    cc_3 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 176, 3))
-    counters.add(cc_3)
-    cc_4 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 177, 3))
-    counters.add(cc_4)
-    cc_5 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 179, 3))
-    counters.add(cc_5)
-    states = []
-    final_update = None
-    symbol = pyxb.binding.content.ElementUse(T_SIMP._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'doc')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 169, 3))
-    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_0)
-    final_update = None
-    symbol = pyxb.binding.content.ElementUse(T_SIMP._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'portee')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 170, 3))
-    st_1 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_1)
-    final_update = None
-    symbol = pyxb.binding.content.ElementUse(T_SIMP._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'ValeurDef')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 175, 3))
-    st_2 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_2)
-    final_update = None
-    symbol = pyxb.binding.content.ElementUse(T_SIMP._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'ValeurSugg')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 176, 3))
-    st_3 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_3)
-    final_update = None
-    symbol = pyxb.binding.content.ElementUse(T_SIMP._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'PlageValeur')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 177, 3))
-    st_4 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_4)
-    final_update = set()
-    symbol = pyxb.binding.content.ElementUse(T_SIMP._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'typeAttendu')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 178, 3))
-    st_5 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_5)
-    final_update = set()
-    final_update.add(fac.UpdateInstruction(cc_5, False))
-    symbol = pyxb.binding.content.ElementUse(T_SIMP._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'validators')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 179, 3))
-    st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_6)
-    transitions = []
-    transitions.append(fac.Transition(st_0, [
-        fac.UpdateInstruction(cc_0, True) ]))
-    transitions.append(fac.Transition(st_1, [
-        fac.UpdateInstruction(cc_0, False) ]))
-    transitions.append(fac.Transition(st_2, [
-        fac.UpdateInstruction(cc_0, False) ]))
-    transitions.append(fac.Transition(st_3, [
-        fac.UpdateInstruction(cc_0, False) ]))
-    transitions.append(fac.Transition(st_4, [
-        fac.UpdateInstruction(cc_0, False) ]))
-    transitions.append(fac.Transition(st_5, [
-        fac.UpdateInstruction(cc_0, False) ]))
-    st_0._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_1, [
-        fac.UpdateInstruction(cc_1, True) ]))
-    transitions.append(fac.Transition(st_2, [
-        fac.UpdateInstruction(cc_1, False) ]))
-    transitions.append(fac.Transition(st_3, [
-        fac.UpdateInstruction(cc_1, False) ]))
-    transitions.append(fac.Transition(st_4, [
-        fac.UpdateInstruction(cc_1, False) ]))
-    transitions.append(fac.Transition(st_5, [
-        fac.UpdateInstruction(cc_1, False) ]))
-    st_1._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_2, [
-        fac.UpdateInstruction(cc_2, True) ]))
-    transitions.append(fac.Transition(st_3, [
-        fac.UpdateInstruction(cc_2, False) ]))
-    transitions.append(fac.Transition(st_4, [
-        fac.UpdateInstruction(cc_2, False) ]))
-    transitions.append(fac.Transition(st_5, [
-        fac.UpdateInstruction(cc_2, False) ]))
-    st_2._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_3, [
-        fac.UpdateInstruction(cc_3, True) ]))
-    transitions.append(fac.Transition(st_4, [
-        fac.UpdateInstruction(cc_3, False) ]))
-    transitions.append(fac.Transition(st_5, [
-        fac.UpdateInstruction(cc_3, False) ]))
-    st_3._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_4, [
-        fac.UpdateInstruction(cc_4, True) ]))
-    transitions.append(fac.Transition(st_5, [
-        fac.UpdateInstruction(cc_4, False) ]))
-    st_4._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_6, [
-         ]))
-    st_5._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_6, [
-        fac.UpdateInstruction(cc_5, True) ]))
-    st_6._set_transitionSet(transitions)
-    return fac.Automaton(states, counters, False, containing_state=None)
-T_SIMP._Automaton = _BuildAutomaton_7()
-
-
-
-
-def _BuildAutomaton_8 ():
-    # Remove this helper function from the namespace after it is invoked
-    global _BuildAutomaton_8
-    del _BuildAutomaton_8
-    import pyxb.utils.fac as fac
-
-    counters = set()
-    cc_0 = fac.CounterCondition(min=0L, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 516, 5))
-    counters.add(cc_0)
-    cc_1 = fac.CounterCondition(min=0L, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 517, 5))
-    counters.add(cc_1)
-    cc_2 = fac.CounterCondition(min=0L, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 518, 5))
-    counters.add(cc_2)
-    cc_3 = fac.CounterCondition(min=0L, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 519, 5))
-    counters.add(cc_3)
-    cc_4 = fac.CounterCondition(min=0L, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 520, 5))
-    counters.add(cc_4)
-    states = []
-    final_update = set()
-    final_update.add(fac.UpdateInstruction(cc_0, False))
-    symbol = pyxb.binding.content.ElementUse(T_typeAttendu._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'typesimple')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 516, 5))
-    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_0)
-    final_update = set()
-    final_update.add(fac.UpdateInstruction(cc_1, False))
-    symbol = pyxb.binding.content.ElementUse(T_typeAttendu._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'matrice_double')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 517, 5))
-    st_1 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_1)
-    final_update = set()
-    final_update.add(fac.UpdateInstruction(cc_2, False))
-    symbol = pyxb.binding.content.ElementUse(T_typeAttendu._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'matrice_symetrique_double')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 518, 5))
-    st_2 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_2)
-    final_update = set()
-    final_update.add(fac.UpdateInstruction(cc_3, False))
-    symbol = pyxb.binding.content.ElementUse(T_typeAttendu._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'tuple')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 519, 5))
-    st_3 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_3)
-    final_update = set()
-    final_update.add(fac.UpdateInstruction(cc_4, False))
-    symbol = pyxb.binding.content.ElementUse(T_typeAttendu._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'classe_utilisateur')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 520, 5))
-    st_4 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_4)
-    transitions = []
-    transitions.append(fac.Transition(st_0, [
-        fac.UpdateInstruction(cc_0, True) ]))
-    st_0._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_1, [
-        fac.UpdateInstruction(cc_1, True) ]))
-    st_1._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_2, [
-        fac.UpdateInstruction(cc_2, True) ]))
-    st_2._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_3, [
-        fac.UpdateInstruction(cc_3, True) ]))
-    st_3._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_4, [
-        fac.UpdateInstruction(cc_4, True) ]))
-    st_4._set_transitionSet(transitions)
-    return fac.Automaton(states, counters, True, containing_state=None)
-T_typeAttendu._Automaton = _BuildAutomaton_8()
-
-
-
-
-T_OPER._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'typeCree'), T_classe_utilisateur, scope=T_OPER, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 7, 1)))
-
-def _BuildAutomaton_9 ():
-    # Remove this helper function from the namespace after it is invoked
-    global _BuildAutomaton_9
-    del _BuildAutomaton_9
-    import pyxb.utils.fac as fac
-
-    counters = set()
-    cc_0 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 89, 3))
-    counters.add(cc_0)
-    cc_1 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 90, 3))
-    counters.add(cc_1)
-    states = []
-    final_update = None
-    symbol = pyxb.binding.content.ElementUse(T_OPER._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'regles')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 89, 3))
-    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_0)
-    final_update = None
-    symbol = pyxb.binding.content.ElementUse(T_OPER._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'doc')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 90, 3))
-    st_1 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_1)
-    final_update = None
-    symbol = pyxb.binding.content.ElementUse(T_OPER._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'BLOC')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 92, 4))
-    st_2 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_2)
-    final_update = None
-    symbol = pyxb.binding.content.ElementUse(T_OPER._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'FACT')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 93, 4))
-    st_3 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_3)
-    final_update = None
-    symbol = pyxb.binding.content.ElementUse(T_OPER._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'SIMP')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 94, 4))
-    st_4 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_4)
-    final_update = set()
-    symbol = pyxb.binding.content.ElementUse(T_OPER._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'typeCree')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 104, 5))
-    st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_5)
-    transitions = []
-    transitions.append(fac.Transition(st_0, [
-        fac.UpdateInstruction(cc_0, True) ]))
-    transitions.append(fac.Transition(st_1, [
-        fac.UpdateInstruction(cc_0, False) ]))
-    transitions.append(fac.Transition(st_2, [
-        fac.UpdateInstruction(cc_0, False) ]))
-    transitions.append(fac.Transition(st_3, [
-        fac.UpdateInstruction(cc_0, False) ]))
-    transitions.append(fac.Transition(st_4, [
-        fac.UpdateInstruction(cc_0, False) ]))
-    st_0._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_1, [
-        fac.UpdateInstruction(cc_1, True) ]))
-    transitions.append(fac.Transition(st_2, [
-        fac.UpdateInstruction(cc_1, False) ]))
-    transitions.append(fac.Transition(st_3, [
-        fac.UpdateInstruction(cc_1, False) ]))
-    transitions.append(fac.Transition(st_4, [
-        fac.UpdateInstruction(cc_1, False) ]))
-    st_1._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_2, [
-         ]))
-    transitions.append(fac.Transition(st_3, [
-         ]))
-    transitions.append(fac.Transition(st_4, [
-         ]))
-    transitions.append(fac.Transition(st_5, [
-         ]))
-    st_2._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_2, [
-         ]))
-    transitions.append(fac.Transition(st_3, [
-         ]))
-    transitions.append(fac.Transition(st_4, [
-         ]))
-    transitions.append(fac.Transition(st_5, [
-         ]))
-    st_3._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_2, [
-         ]))
-    transitions.append(fac.Transition(st_3, [
-         ]))
-    transitions.append(fac.Transition(st_4, [
-         ]))
-    transitions.append(fac.Transition(st_5, [
-         ]))
-    st_4._set_transitionSet(transitions)
-    transitions = []
-    st_5._set_transitionSet(transitions)
-    return fac.Automaton(states, counters, False, containing_state=None)
-T_OPER._Automaton = _BuildAutomaton_9()
-
-
-
-
-def _BuildAutomaton_10 ():
-    # Remove this helper function from the namespace after it is invoked
-    global _BuildAutomaton_10
-    del _BuildAutomaton_10
-    import pyxb.utils.fac as fac
-
-    counters = set()
-    cc_0 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 89, 3))
-    counters.add(cc_0)
-    cc_1 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 90, 3))
-    counters.add(cc_1)
-    states = []
-    final_update = None
-    symbol = pyxb.binding.content.ElementUse(T_PROC._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'regles')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 89, 3))
-    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_0)
-    final_update = None
-    symbol = pyxb.binding.content.ElementUse(T_PROC._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'doc')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 90, 3))
-    st_1 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_1)
-    final_update = set()
-    symbol = pyxb.binding.content.ElementUse(T_PROC._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'BLOC')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 92, 4))
-    st_2 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_2)
-    final_update = set()
-    symbol = pyxb.binding.content.ElementUse(T_PROC._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'FACT')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 93, 4))
-    st_3 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_3)
-    final_update = set()
-    symbol = pyxb.binding.content.ElementUse(T_PROC._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'SIMP')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 94, 4))
-    st_4 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_4)
-    transitions = []
-    transitions.append(fac.Transition(st_0, [
-        fac.UpdateInstruction(cc_0, True) ]))
-    transitions.append(fac.Transition(st_1, [
-        fac.UpdateInstruction(cc_0, False) ]))
-    transitions.append(fac.Transition(st_2, [
-        fac.UpdateInstruction(cc_0, False) ]))
-    transitions.append(fac.Transition(st_3, [
-        fac.UpdateInstruction(cc_0, False) ]))
-    transitions.append(fac.Transition(st_4, [
-        fac.UpdateInstruction(cc_0, False) ]))
-    st_0._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_1, [
-        fac.UpdateInstruction(cc_1, True) ]))
-    transitions.append(fac.Transition(st_2, [
-        fac.UpdateInstruction(cc_1, False) ]))
-    transitions.append(fac.Transition(st_3, [
-        fac.UpdateInstruction(cc_1, False) ]))
-    transitions.append(fac.Transition(st_4, [
-        fac.UpdateInstruction(cc_1, False) ]))
-    st_1._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_2, [
-         ]))
-    transitions.append(fac.Transition(st_3, [
-         ]))
-    transitions.append(fac.Transition(st_4, [
-         ]))
-    st_2._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_2, [
-         ]))
-    transitions.append(fac.Transition(st_3, [
-         ]))
-    transitions.append(fac.Transition(st_4, [
-         ]))
-    st_3._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_2, [
-         ]))
-    transitions.append(fac.Transition(st_3, [
-         ]))
-    transitions.append(fac.Transition(st_4, [
-         ]))
-    st_4._set_transitionSet(transitions)
-    return fac.Automaton(states, counters, False, containing_state=None)
-T_PROC._Automaton = _BuildAutomaton_10()
-
-
-
-
-def _BuildAutomaton_11 ():
-    # Remove this helper function from the namespace after it is invoked
-    global _BuildAutomaton_11
-    del _BuildAutomaton_11
-    import pyxb.utils.fac as fac
-
-    counters = set()
-    cc_0 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 89, 3))
-    counters.add(cc_0)
-    cc_1 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 90, 3))
-    counters.add(cc_1)
-    states = []
-    final_update = None
-    symbol = pyxb.binding.content.ElementUse(T_FACT._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'regles')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 89, 3))
-    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_0)
-    final_update = None
-    symbol = pyxb.binding.content.ElementUse(T_FACT._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'doc')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 90, 3))
-    st_1 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_1)
-    final_update = set()
-    symbol = pyxb.binding.content.ElementUse(T_FACT._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'BLOC')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 92, 4))
-    st_2 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_2)
-    final_update = set()
-    symbol = pyxb.binding.content.ElementUse(T_FACT._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'FACT')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 93, 4))
-    st_3 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_3)
-    final_update = set()
-    symbol = pyxb.binding.content.ElementUse(T_FACT._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'SIMP')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 94, 4))
-    st_4 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_4)
-    transitions = []
-    transitions.append(fac.Transition(st_0, [
-        fac.UpdateInstruction(cc_0, True) ]))
-    transitions.append(fac.Transition(st_1, [
-        fac.UpdateInstruction(cc_0, False) ]))
-    transitions.append(fac.Transition(st_2, [
-        fac.UpdateInstruction(cc_0, False) ]))
-    transitions.append(fac.Transition(st_3, [
-        fac.UpdateInstruction(cc_0, False) ]))
-    transitions.append(fac.Transition(st_4, [
-        fac.UpdateInstruction(cc_0, False) ]))
-    st_0._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_1, [
-        fac.UpdateInstruction(cc_1, True) ]))
-    transitions.append(fac.Transition(st_2, [
-        fac.UpdateInstruction(cc_1, False) ]))
-    transitions.append(fac.Transition(st_3, [
-        fac.UpdateInstruction(cc_1, False) ]))
-    transitions.append(fac.Transition(st_4, [
-        fac.UpdateInstruction(cc_1, False) ]))
-    st_1._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_2, [
-         ]))
-    transitions.append(fac.Transition(st_3, [
-         ]))
-    transitions.append(fac.Transition(st_4, [
-         ]))
-    st_2._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_2, [
-         ]))
-    transitions.append(fac.Transition(st_3, [
-         ]))
-    transitions.append(fac.Transition(st_4, [
-         ]))
-    st_3._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_2, [
-         ]))
-    transitions.append(fac.Transition(st_3, [
-         ]))
-    transitions.append(fac.Transition(st_4, [
-         ]))
-    st_4._set_transitionSet(transitions)
-    return fac.Automaton(states, counters, False, containing_state=None)
-T_FACT._Automaton = _BuildAutomaton_11()
-
-
-
-
-T_BLOC._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'condition'), T_fonction_python, scope=T_BLOC, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 45, 1)))
-
-def _BuildAutomaton_12 ():
-    # Remove this helper function from the namespace after it is invoked
-    global _BuildAutomaton_12
-    del _BuildAutomaton_12
-    import pyxb.utils.fac as fac
-
-    counters = set()
-    cc_0 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 89, 3))
-    counters.add(cc_0)
-    cc_1 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 90, 3))
-    counters.add(cc_1)
-    states = []
-    final_update = None
-    symbol = pyxb.binding.content.ElementUse(T_BLOC._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'regles')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 89, 3))
-    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_0)
-    final_update = None
-    symbol = pyxb.binding.content.ElementUse(T_BLOC._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'doc')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 90, 3))
-    st_1 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_1)
-    final_update = None
-    symbol = pyxb.binding.content.ElementUse(T_BLOC._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'BLOC')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 92, 4))
-    st_2 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_2)
-    final_update = None
-    symbol = pyxb.binding.content.ElementUse(T_BLOC._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'FACT')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 93, 4))
-    st_3 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_3)
-    final_update = None
-    symbol = pyxb.binding.content.ElementUse(T_BLOC._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'SIMP')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 94, 4))
-    st_4 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_4)
-    final_update = set()
-    symbol = pyxb.binding.content.ElementUse(T_BLOC._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'condition')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 162, 5))
-    st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_5)
-    transitions = []
-    transitions.append(fac.Transition(st_0, [
-        fac.UpdateInstruction(cc_0, True) ]))
-    transitions.append(fac.Transition(st_1, [
-        fac.UpdateInstruction(cc_0, False) ]))
-    transitions.append(fac.Transition(st_2, [
-        fac.UpdateInstruction(cc_0, False) ]))
-    transitions.append(fac.Transition(st_3, [
-        fac.UpdateInstruction(cc_0, False) ]))
-    transitions.append(fac.Transition(st_4, [
-        fac.UpdateInstruction(cc_0, False) ]))
-    st_0._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_1, [
-        fac.UpdateInstruction(cc_1, True) ]))
-    transitions.append(fac.Transition(st_2, [
-        fac.UpdateInstruction(cc_1, False) ]))
-    transitions.append(fac.Transition(st_3, [
-        fac.UpdateInstruction(cc_1, False) ]))
-    transitions.append(fac.Transition(st_4, [
-        fac.UpdateInstruction(cc_1, False) ]))
-    st_1._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_2, [
-         ]))
-    transitions.append(fac.Transition(st_3, [
-         ]))
-    transitions.append(fac.Transition(st_4, [
-         ]))
-    transitions.append(fac.Transition(st_5, [
-         ]))
-    st_2._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_2, [
-         ]))
-    transitions.append(fac.Transition(st_3, [
-         ]))
-    transitions.append(fac.Transition(st_4, [
-         ]))
-    transitions.append(fac.Transition(st_5, [
-         ]))
-    st_3._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_2, [
-         ]))
-    transitions.append(fac.Transition(st_3, [
-         ]))
-    transitions.append(fac.Transition(st_4, [
-         ]))
-    transitions.append(fac.Transition(st_5, [
-         ]))
-    st_4._set_transitionSet(transitions)
-    transitions = []
-    st_5._set_transitionSet(transitions)
-    return fac.Automaton(states, counters, False, containing_state=None)
-T_BLOC._Automaton = _BuildAutomaton_12()
-
-
-classeUtilisateurName._setSubstitutionGroup(typeAttendu)
diff --git a/EssaiInit/readerEfficas.py b/EssaiInit/readerEfficas.py
deleted file mode 100755 (executable)
index afd1249..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-import sys,os
-import raw.efficas as efficas
-import types
-
-sys.path.insert(0,os.path.abspath(os.path.join(os.getcwd(),'..')))
-sys.path.insert(0,os.path.abspath(os.path.join(os.getcwd(),'..','UiQT5')))
-
-
-from Accas import *
-
-
-# Attention pas d heritage possible (cf doc pyxbe)
-
-dictSIMPEficasXML= { 'typ'    : 'typeAttendu', 'statut'     : 'statut', 
-                     'min_occurs': 'min'        , 'max_occurs' : 'max', 
-                     'homo'      : 'homo'       , 'position'   : 'portee', 
-                     'validators': 'validators' , 'sug'        : 'valeur_sugg',
-                     'defaut'    : 'ValeurDef'  , 'into'       : ('PlageValeur','into'), 
-                     'val_min'   : ('PlageValeur','borne_inf') , 'val_max'    : ('PlageValeur','borne_sup'),
-                     'ang'       : ('doc','ang')               , 'fr'         : ('doc','fr',)   ,
-                     'docu'      : ('doc','docu'),}
-dictSIMPXMLEficas = {'doc' : {'fr' : 'fr' , 'ang' : 'ang' , 'docu' : 'docu' },
-                    'PlageValeur' : {'borne_sup' : 'val_max' , 'into' : 'into' , 'borne_inf' : 'val_min' ,},
-                    'statut' : 'statut' , 'validators' : 'validators' , 'homo' : 'homo' ,
-                    'ValeurDef' : 'defaut' ,  'min' : 'min_occurs' ,
-                    'valeur_sugg' : 'sug' , 'portee' : 'position' , 'max' : 'max_occurs' , }
-
-
-# ------------------------------
-class monSIMP (efficas.T_SIMP):
-# ------------------------------
-
-   def explore(self):
-      print "je passe dans  explore pour SIMP ", self.nom
-      self.dictArgsEficas={}
-      self.dictArgsEficas['typ']=self.typeAttendu
-      for nomXMLArg in dir(self) :
-          if nomXMLArg in dictSIMPXMLEficas.keys() :
-              nomEficasArg=dictSIMPXMLEficas[nomXMLArg]
-              argu=getattr(self,nomXMLArg)
-              if argu==None : continue
-              if type(nomEficasArg) == types.DictionaryType:
-                 for nomXML in nomEficasArg.keys():
-                      arguDecoupe=getattr(argu,nomXML)
-                      nomEficasDecoupe=nomEficasArg[nomXML]
-                      self.dictArgsEficas[nomEficasDecoupe]=arguDecoupe
-              else :
-                 self.dictArgsEficas[nomEficasArg] = argu
-                    
-              #if argNew != None : print argNew
-      self.objAccas=A_SIMP.SIMP(**self.dictArgsEficas)
-      self.objAccas.nom=self.nom
-     
-   def getAccasEquivalent(self):
-       return self.nom, self.objAccas
-
-# ------------------------------
-class monPROC(efficas.T_PROC):
-# ------------------------------
-   def explore(self):
-      print "je passe dans  explore pour PROC ", self.nom
-      self.dictConstruction={}
-      self.dictConstruction['nom']=self.nom
-      
-      for obj in self.content(): 
-          if  hasattr(obj,'explore') : obj.explore ()
-          if  hasattr(obj,'getAccasEquivalent') : 
-              nom,objetAccas=obj.getAccasEquivalent()
-              self.dictConstruction[nom]=objetAccas
-      self.dictConstruction['op']=None
-      self.objAccas=A_PROC.PROC(**self.dictConstruction)
-      print dir(self.objAccas)
-      print self.objAccas.entites
-
-
-# ------------------------------
-class monFACT(efficas.T_FACT):
-# ------------------------------
-   def explore(self):
-      #print "je passe dans  explore pour FACT ", self.nom
-      self.dictConstruction={}
-      for obj in self.content(): 
-          if  hasattr(obj,'explore') : obj.explore 
-          if  hasattr(obj,'creeAccasEquivalent') : 
-              nom,objetAccas=obj.creeAccasEquivalent()
-              self.dictConstruction[nom]=objetAccas
-      self.objAccas=A_FACT.FACT(**self.dictConstruction)
-
-   def getAccasEquivalent(self):
-       return self.nom, self.objAccas
-
-
-# ------------------------------
-class monCata(efficas.T_cata):
-# ------------------------------
-   def exploreCata(self):
-   # On positionne le contexte ACCAS
-      self.JdC = JDC_CATA (code = 'MED', execmodul = None,)
-      objAExplorer=self.commandes[0]
-      for obj in objAExplorer.content(): 
-         if  hasattr(obj,'explore') : obj.explore()
-    
-     
-
-efficas.T_SIMP._SetSupersedingClass(monSIMP)
-efficas.T_FACT._SetSupersedingClass(monFACT)
-efficas.T_PROC._SetSupersedingClass(monPROC)
-efficas.T_cata._SetSupersedingClass(monCata)
-
-if __name__ == "__main__":
-#   print dir(efficas)
-#   print dir(efficas.T_SIMP)
-
-
-   xml = open('Cata_MED_FAM.xml').read()
-   SchemaMed = efficas.CreateFromDocument(xml)
-   SchemaMed.exploreCata()
-
-   #print dir(efficas.T_SIMP)
-   #print dir(efficas.T_SIMP)
-
-   #for maCommande in monCata.commandes :
-   #    for monProc in maCommande.PROC:
-   #        for monFact in monProc.FACT:
-   #            for simp in monFact.SIMP:
-   #                simp.creeAccasEquivalent()
index dd23124b79dece8334c99f4a2d889d65a67c41f8..33c46e9ce5f41328881d4fc2aea72158861dadf9 100644 (file)
@@ -20,7 +20,7 @@
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-  from builtins import str
+    from builtins import str
 except : pass
 import os,traceback
 import re
@@ -37,7 +37,7 @@ class COMMANDE_COMM(N_OBJECT.OBJECT,I_OBJECT.OBJECT) :
     """
     nature = "COMMANDE_COMMENTARISEE"
     idracine='_comm'
-    
+
     def __init__(self,texte='',parent=None,reg='oui'):
         self.valeur = texte
         if not parent :
@@ -45,9 +45,9 @@ class COMMANDE_COMM(N_OBJECT.OBJECT,I_OBJECT.OBJECT) :
         else:
             self.jdc = self.parent = parent
         if hasattr(self.parent,'etape'):
-          self.etape = self.parent.etape
+            self.etape = self.parent.etape
         else :
-          self.etape = None
+            self.etape = None
         self.definition=self
         self.nom = ''
         self.niveau = self.parent.niveau
@@ -55,7 +55,7 @@ class COMMANDE_COMM(N_OBJECT.OBJECT,I_OBJECT.OBJECT) :
         self.state="unchanged"
         #self.appel = N_utils.calleeWhere(niveau=2)
         if reg=='oui' : self.register()
-            
+
     def isValid(self):
         return 1
 
@@ -76,7 +76,7 @@ class COMMANDE_COMM(N_OBJECT.OBJECT,I_OBJECT.OBJECT) :
 
     def initModif(self):
         self.state = 'modified'
-        self.parent.initModif()    
+        self.parent.initModif()
 
     def setValeur(self,new_valeur):
         """
@@ -115,16 +115,16 @@ class COMMANDE_COMM(N_OBJECT.OBJECT,I_OBJECT.OBJECT) :
         """
         Indique si self est repetable ou non : retourne toujours 1
         """
-        return 1        
+        return 1
 
     def getAttribut(self,nom_attribut) :
         """
         Retourne l'attribut de nom nom_attribut de self (ou herite)
         """
         if hasattr(self,nom_attribut) :
-          return getattr(self,nom_attribut)
+            return getattr(self,nom_attribut)
         else :
-          return None
+            return None
 
     def getFr(self):
         """
@@ -132,17 +132,17 @@ class COMMANDE_COMM(N_OBJECT.OBJECT,I_OBJECT.OBJECT) :
         """
         if self.jdc.code=='ASTER' : return self.definition.fr
         try :
-          return getattr(self.definition,self.jdc.lang)
+            return getattr(self.definition,self.jdc.lang)
         except:
-          return ''
+            return ''
 
     def listeMcPresents(self):
         return []
 
     def supprime(self):
-        """ 
+        """
         Methode qui supprime toutes les boucles de references afin que l'objet puisse
-        etre correctement detruit par le garbage collector 
+        etre correctement detruit par le garbage collector
         """
         self.parent = None
         self.etape = None
@@ -185,7 +185,7 @@ class COMMANDE_COMM(N_OBJECT.OBJECT,I_OBJECT.OBJECT) :
             # on essaie de creer un objet JDC...
             CONTEXT.unsetCurrentStep()
             if re.search('Fin Commentaire',self.valeur) :
-               self.valeur=self.valeur.replace('Fin Commentaire','')
+                self.valeur=self.valeur.replace('Fin Commentaire','')
             J=self.jdc.__class__(procedure=self.valeur,
                                  definition=self.jdc.definition,
                                  cata=self.jdc.cata,
@@ -238,47 +238,46 @@ class COMMANDE_COMM(N_OBJECT.OBJECT,I_OBJECT.OBJECT) :
         Booleenne qui retourne 1 si self est valide, 0 sinon
         """
         return self.actif
-    
+
     def verifConditionBloc(self):
-      """
-          Evalue les conditions de tous les blocs fils possibles
-          (en fonction du catalogue donc de la definition) de self et
-          retourne deux listes :
-            - la premiere contient les noms des blocs a rajouter
-            - la seconde contient les noms des blocs a supprimer
-      """
-      return [],[]
+        """
+            Evalue les conditions de tous les blocs fils possibles
+            (en fonction du catalogue donc de la definition) de self et
+            retourne deux listes :
+              - la premiere contient les noms des blocs a rajouter
+              - la seconde contient les noms des blocs a supprimer
+        """
+        return [],[]
 
     def verifConditionRegles(self,liste_presents):
-      """
-          Retourne la liste des mots-cles a rajouter pour satisfaire les regles
-          en fonction de la liste des mots-cles presents
-      """
-      return []
+        """
+            Retourne la liste des mots-cles a rajouter pour satisfaire les regles
+            en fonction de la liste des mots-cles presents
+        """
+        return []
 
     def reparent(self,parent):
-      """
-          Cette methode sert a reinitialiser la parente de l'objet
-      """
-      self.parent=parent
-      self.jdc=parent.getJdcRoot()
-      self.etape=self
+        """
+            Cette methode sert a reinitialiser la parente de l'objet
+        """
+        self.parent=parent
+        self.jdc=parent.getJdcRoot()
+        self.etape=self
 
     def verifExistenceSd(self):
-      """
-         Verifie que les structures de donnees utilisees dans self existent bien dans le contexte
-         avant etape, sinon enleve la reference a ces concepts
-         --> sans objet pour les commandes commentarisees
-      """
-      pass
-        
+        """
+           Verifie que les structures de donnees utilisees dans self existent bien dans le contexte
+           avant etape, sinon enleve la reference a ces concepts
+           --> sans objet pour les commandes commentarisees
+        """
+        pass
+
     def controlSdprods(self,d):
-      """sans objet pour les commandes commentarisees"""
-      pass
+        """sans objet pour les commandes commentarisees"""
+        pass
 
     def close(self):
-      pass
+        pass
 
     def resetContext(self):
-      pass
-
+        pass
index 7108920e155cbdf774d68df62942c7354ba5ca63..3ea378fb6390077cce50e3523b87c92f4554d5d3 100644 (file)
@@ -29,177 +29,175 @@ from Ihm import I_OBJECT
 from Extensions.i18n import tr
 
 class COMMENTAIRE(N_OBJECT.OBJECT,I_OBJECT.OBJECT) :
-  """ 
-      Cette classe permet de creer des objets de type COMMENTAIRE 
-  """
-  nature = 'COMMENTAIRE'
-  idracine = '_comm'
-
-  def __init__(self,valeur,parent=None):
-    # parent est un objet de type OBJECT (ETAPE ou MC ou JDC...)
-    self.valeur=valeur
-    if not parent :
-      self.jdc = self.parent = CONTEXT.getCurrentStep()
-    else:
-      self.jdc = self.parent = parent
-    # La classe COMMENTAIRE n'a pas de definition. On utilise self
-    # pour completude
-    self.definition=self
-    self.nom=''
-    self.niveau = self.parent.niveau
-    self.actif=1
-    self.state="unchanged"
-    self.register()
-    self.fenetreIhm=None
-
-  def register(self):
-    """ 
-        Enregistre le commentaire dans la liste des etapes de son parent
-        lorsque celui-ci est un JDC 
     """
-    if self.parent.nature == 'JDC':
-      # le commentaire est entre deux commandes:
-      # il faut l'enregistrer dans la liste des etapes
-      self.parent.register(self)
-
-  def copy(self):
-    c=COMMENTAIRE(valeur=self.valeur,parent=self.jdc)
-    return c
-
-  def isValid(self):
-    """
-    Retourne 1 si self est valide, 0 sinon
-    Retourne toujours 1 car un commentaire est toujours valide
-    """
-    return 1
-
-  def isOblig(self):
-    """ Indique si self est obligatoire ou non : retourne toujours 0 """
-    return 0
-
-  def isRepetable(self):
-    """ Indique si self est repetable ou non : retourne toujours 1 """
-    return 1
-
-  def active(self):
-      """
-      Rend l'etape courante active
-      """
-      self.actif = 1
-
-  def inactive(self):
-      """
-      Rend l'etape courante inactive
-      NB : un commentaire est toujours actif !
-      """
-      self.actif = 1
-
-  def isActif(self):
-      """
-      Booleenne qui retourne 1 si self est valide, 0 sinon
-      """
-      return self.actif
-
-  def supprime(self):
-      """
-      Methode qui supprime toutes les boucles de references afin que 
-      l'objet puisse etre correctement detruit par le garbage collector
-      """
-      self.parent=None
-      self.jdc=None
-      self.definition = None
-      self.niveau = None
-
-  def listeMcPresents(self):
-      return []
-
-  def getValeur(self) :
-    """ Retourne la valeur de self, cad le contenu du commentaire """
-    try :
-      return self.valeur
-    except:
-      return None
-
-  def setValeur(self,new_valeur):
-    """ 
-        Remplace la valeur de self(si elle existe) par new_valeur
-    """
-    self.valeur = new_valeur
-    self.initModif()
-
-  def initModif(self):
-    self.state = 'modified'
-    if self.parent:
-      self.parent.initModif()
-
-  def supprimeSdProds(self):
-    pass
-
-  def updateContext(self,d):
-    """
-        Update le dictionnaire d avec les concepts ou objets produits par self
-        --> ne fait rien pour un commentaire
-    """
-    pass
-
-  def report(self):
-    """ Genere l'objet rapport (classe CR) """
-    self.cr=CR()
-    if not self.isValid(): self.cr.warn(tr("Objet commentaire non valorise"))
-    return self.cr
-
-  def ident(self):
-    """ Retourne le nom interne associe a self
-        Ce nom n'est jamais vu par l'utilisateur dans EFICAS
-    """
-    return self.nom
-
-  def deleteConcept(self,sd):
-    pass
-
-  def replaceConcept (self,old_sd,sd):
-    pass
-
-  def verifConditionBloc(self):
-    """
-        Evalue les conditions de tous les blocs fils possibles
-        (en fonction du catalogue donc de la definition) de self et
-        retourne deux listes :
-          - la premiere contient les noms des blocs a rajouter
-          - la seconde contient les noms des blocs a supprimer
-    """
-    return [],[]
-
-  def verifConditionRegles(self,liste_presents):
+        Cette classe permet de creer des objets de type COMMENTAIRE
     """
-        Retourne la liste des mots-cles a rajouter pour satisfaire les regles
-        en fonction de la liste des mots-cles presents
-    """
-    return []
-
-  def getSdprods(self,nom_sd):
-     """
-         Retourne les concepts produits par la commande
-     """
-     return None
-
-  def verifExistenceSd(self):
-     pass
-
-  def getFr(self):
-    """
-    Retourne le commentaire lui meme tronque a la 1ere ligne
-    """
-    return self.valeur.split('\n',1)[0]
-
-  def controlSdprods(self,d):
-      """sans objet """
-      pass
-
-  def close(self):
-      pass
-
-  def resetContext(self):
-      pass
-
-
+    nature = 'COMMENTAIRE'
+    idracine = '_comm'
+
+    def __init__(self,valeur,parent=None):
+        # parent est un objet de type OBJECT (ETAPE ou MC ou JDC...)
+        self.valeur=valeur
+        if not parent :
+            self.jdc = self.parent = CONTEXT.getCurrentStep()
+        else:
+            self.jdc = self.parent = parent
+        # La classe COMMENTAIRE n'a pas de definition. On utilise self
+        # pour completude
+        self.definition=self
+        self.nom=''
+        self.niveau = self.parent.niveau
+        self.actif=1
+        self.state="unchanged"
+        self.register()
+        self.fenetreIhm=None
+
+    def register(self):
+        """
+            Enregistre le commentaire dans la liste des etapes de son parent
+            lorsque celui-ci est un JDC
+        """
+        if self.parent.nature == 'JDC':
+            # le commentaire est entre deux commandes:
+            # il faut l'enregistrer dans la liste des etapes
+            self.parent.register(self)
+
+    def copy(self):
+        c=COMMENTAIRE(valeur=self.valeur,parent=self.jdc)
+        return c
+
+    def isValid(self):
+        """
+        Retourne 1 si self est valide, 0 sinon
+        Retourne toujours 1 car un commentaire est toujours valide
+        """
+        return 1
+
+    def isOblig(self):
+        """ Indique si self est obligatoire ou non : retourne toujours 0 """
+        return 0
+
+    def isRepetable(self):
+        """ Indique si self est repetable ou non : retourne toujours 1 """
+        return 1
+
+    def active(self):
+        """
+        Rend l'etape courante active
+        """
+        self.actif = 1
+
+    def inactive(self):
+        """
+        Rend l'etape courante inactive
+        NB : un commentaire est toujours actif !
+        """
+        self.actif = 1
+
+    def isActif(self):
+        """
+        Booleenne qui retourne 1 si self est valide, 0 sinon
+        """
+        return self.actif
+
+    def supprime(self):
+        """
+        Methode qui supprime toutes les boucles de references afin que
+        l'objet puisse etre correctement detruit par le garbage collector
+        """
+        self.parent=None
+        self.jdc=None
+        self.definition = None
+        self.niveau = None
+
+    def listeMcPresents(self):
+        return []
+
+    def getValeur(self) :
+        """ Retourne la valeur de self, cad le contenu du commentaire """
+        try :
+            return self.valeur
+        except:
+            return None
+
+    def setValeur(self,new_valeur):
+        """
+            Remplace la valeur de self(si elle existe) par new_valeur
+        """
+        self.valeur = new_valeur
+        self.initModif()
+
+    def initModif(self):
+        self.state = 'modified'
+        if self.parent:
+            self.parent.initModif()
+
+    def supprimeSdProds(self):
+        pass
+
+    def updateContext(self,d):
+        """
+            Update le dictionnaire d avec les concepts ou objets produits par self
+            --> ne fait rien pour un commentaire
+        """
+        pass
+
+    def report(self):
+        """ Genere l'objet rapport (classe CR) """
+        self.cr=CR()
+        if not self.isValid(): self.cr.warn(tr("Objet commentaire non valorise"))
+        return self.cr
+
+    def ident(self):
+        """ Retourne le nom interne associe a self
+            Ce nom n'est jamais vu par l'utilisateur dans EFICAS
+        """
+        return self.nom
+
+    def deleteConcept(self,sd):
+        pass
+
+    def replaceConcept (self,old_sd,sd):
+        pass
+
+    def verifConditionBloc(self):
+        """
+            Evalue les conditions de tous les blocs fils possibles
+            (en fonction du catalogue donc de la definition) de self et
+            retourne deux listes :
+              - la premiere contient les noms des blocs a rajouter
+              - la seconde contient les noms des blocs a supprimer
+        """
+        return [],[]
+
+    def verifConditionRegles(self,liste_presents):
+        """
+            Retourne la liste des mots-cles a rajouter pour satisfaire les regles
+            en fonction de la liste des mots-cles presents
+        """
+        return []
+
+    def getSdprods(self,nom_sd):
+        """
+            Retourne les concepts produits par la commande
+        """
+        return None
+
+    def verifExistenceSd(self):
+        pass
+
+    def getFr(self):
+        """
+        Retourne le commentaire lui meme tronque a la 1ere ligne
+        """
+        return self.valeur.split('\n',1)[0]
+
+    def controlSdprods(self,d):
+        """sans objet """
+        pass
+
+    def close(self):
+        pass
+
+    def resetContext(self):
+        pass
index 6faae636ad59dec0c901a8844e11f4076289e9ea..78b4509c4221e338847d48a05a109caec4521b08 100644 (file)
@@ -16,7 +16,7 @@
 # with this program. If not, see <http://www.gnu.org/licenses/>.
 """
 Creates the ``EficasException`` class for the EDF Eficas application.
-This class supports the internationalization mechanism provided in 
+This class supports the internationalization mechanism provided in
 the ``i18n`` module.
 """
 
@@ -40,7 +40,7 @@ class EficasException(Exception):
         #sys.path.append(os.path.realpath(".."))
         from Extensions.i18n import tr
         self.args = (tr(msg),)
-    
+
 
 if __name__ == "__main__":
     import sys
index 4351c6d83374efe0ace76cdbfb1128d77ac01fc7..6bf7cc6d63005510e7c1fdf90db89041cf7c1b63 100644 (file)
@@ -18,7 +18,7 @@
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 """
-    Ce module contient la classe ETAPE_NIVEAU qui sert a 
+    Ce module contient la classe ETAPE_NIVEAU qui sert a
     concretiser les niveaux au sein d'un JDC
 """
 from __future__ import absolute_import
@@ -28,114 +28,113 @@ from Noyau import N_OBJECT
 
 class ETAPE_NIVEAU(N_OBJECT.OBJECT):
 
-  def __init__(self,niveau,parent):
-    self.parent = parent
-    self.jdc = self.parent.getJdcRoot()
-    self.niveau = self
-    self.definition = niveau
-    self.etapes=[]
-    self.etapes_niveaux = []
-    self.dict_niveaux={}
-    self.editmode = 0
-    self.state="undetermined"
-    self.buildNiveaux()
-
-  def buildNiveaux(self):
-    for niveau in self.definition.l_niveaux:
-      etape_niveau = ETAPE_NIVEAU(niveau,self)
-      self.etapes_niveaux.append(etape_niveau)
-      self.dict_niveaux[niveau.nom]=etape_niveau
-
-  def register(self,etape):
-    """ 
-          Enregistre la commande etape :
-          - si editmode = 0 : on est en mode relecture d'un fichier de commandes
-          auquel cas on ajoute etape a la fin de la liste self.etapes
-          - si editmode = 1 : on est en mode ajout d'etape depuis eficas auquel cas
-          cette methode ne fait rien, c'est addEntite qui enregistre etape
-          a la bonne place dans self.etapes 
-    """
-    if self.editmode : return
-    self.etapes.append(etape)
-
-  def unregister(self,etape):
-    """
-        Desenregistre l'etape du niveau
-    """
-    self.etapes.remove(etape)
-
-  def ident(self):
-    return self.definition.label
-
-  def isActif(self):
-    #print 'Niveau : ',self.definition.nom
-    #print '\tactif =',self.definition.actif
-    if self.definition.actif == 1 :
-      return 1
-    else :
-      # self.actif est une condition a evaluer dans un certain contexte ...
-      d = self.creeDictValeurs()
-      try:
-        t=eval(self.definition.actif,d)
-        return t
-      except:
-        traceback.print_exc()
-        return 0
-
-  def creeDictValeurs(self):
-    """
-    Retourne le dictionnaire des freres aines de self compose des couples :
-    {nom_frere isValid()}
-    """
-    d={}
-    for niveau in self.parent.etapes_niveaux:
-      if niveau is self : break
-      d[niveau.definition.nom]=niveau.isValid()
-    return d
-
-  def isValid(self):
-    """ Methode booleenne qui retourne 0 si le niveau est invalide, 1 sinon """
-    if self.etapes_niveaux == []:
-      if len(self.etapes) == 0:
-        return self.definition.valide_vide
-      else:
-        for etape in self.etapes :
-          if not etape.isValid() : return 0
-        return 1
-    else:
-      for etape_niveau in self.etapes_niveaux :
-        if not etape_niveau.isValid() : return 0
-      return 1
-
-  def accept(self,visitor):
-    visitor.visitETAPE_NIVEAU(self)
-
-  def addEntite(self,name,pos_rel):
-    self.editmode = 1
-    try :
-      pos_abs=self.jdc.getNbEtapesAvant(self)+pos_rel
-      cmd = self.jdc.addEntite(name,pos_abs)
-      self.etapes.insert(pos_rel,cmd)
-      self.editmode = 0
-      return cmd
-    except:
-      traceback.print_exc()
-      self.editmode = 0
-      return None
-
-  def suppEntite(self,etape) :
-    """ Classe ETAPE_NIVEAU
-        Supprime une etape 
-    """
-    self.jdc.suppEntite(etape)
-
-
-  def getFr(self):
-     """
-        Retourne le texte d'aide dans la langue choisie
-     """
-     try :
-        return getattr(self.definition,self.jdc.lang)
-     except:
-        return ''
-
+    def __init__(self,niveau,parent):
+        self.parent = parent
+        self.jdc = self.parent.getJdcRoot()
+        self.niveau = self
+        self.definition = niveau
+        self.etapes=[]
+        self.etapes_niveaux = []
+        self.dict_niveaux={}
+        self.editmode = 0
+        self.state="undetermined"
+        self.buildNiveaux()
+
+    def buildNiveaux(self):
+        for niveau in self.definition.l_niveaux:
+            etape_niveau = ETAPE_NIVEAU(niveau,self)
+            self.etapes_niveaux.append(etape_niveau)
+            self.dict_niveaux[niveau.nom]=etape_niveau
+
+    def register(self,etape):
+        """
+              Enregistre la commande etape :
+              - si editmode = 0 : on est en mode relecture d'un fichier de commandes
+              auquel cas on ajoute etape a la fin de la liste self.etapes
+              - si editmode = 1 : on est en mode ajout d'etape depuis eficas auquel cas
+              cette methode ne fait rien, c'est addEntite qui enregistre etape
+              a la bonne place dans self.etapes
+        """
+        if self.editmode : return
+        self.etapes.append(etape)
+
+    def unregister(self,etape):
+        """
+            Desenregistre l'etape du niveau
+        """
+        self.etapes.remove(etape)
+
+    def ident(self):
+        return self.definition.label
+
+    def isActif(self):
+        #print 'Niveau : ',self.definition.nom
+        #print '\tactif =',self.definition.actif
+        if self.definition.actif == 1 :
+            return 1
+        else :
+            # self.actif est une condition a evaluer dans un certain contexte ...
+            d = self.creeDictValeurs()
+            try:
+                t=eval(self.definition.actif,d)
+                return t
+            except:
+                traceback.print_exc()
+                return 0
+
+    def creeDictValeurs(self):
+        """
+        Retourne le dictionnaire des freres aines de self compose des couples :
+        {nom_frere isValid()}
+        """
+        d={}
+        for niveau in self.parent.etapes_niveaux:
+            if niveau is self : break
+            d[niveau.definition.nom]=niveau.isValid()
+        return d
+
+    def isValid(self):
+        """ Methode booleenne qui retourne 0 si le niveau est invalide, 1 sinon """
+        if self.etapes_niveaux == []:
+            if len(self.etapes) == 0:
+                return self.definition.valide_vide
+            else:
+                for etape in self.etapes :
+                    if not etape.isValid() : return 0
+                return 1
+        else:
+            for etape_niveau in self.etapes_niveaux :
+                if not etape_niveau.isValid() : return 0
+            return 1
+
+    def accept(self,visitor):
+        visitor.visitETAPE_NIVEAU(self)
+
+    def addEntite(self,name,pos_rel):
+        self.editmode = 1
+        try :
+            pos_abs=self.jdc.getNbEtapesAvant(self)+pos_rel
+            cmd = self.jdc.addEntite(name,pos_abs)
+            self.etapes.insert(pos_rel,cmd)
+            self.editmode = 0
+            return cmd
+        except:
+            traceback.print_exc()
+            self.editmode = 0
+            return None
+
+    def suppEntite(self,etape) :
+        """ Classe ETAPE_NIVEAU
+            Supprime une etape
+        """
+        self.jdc.suppEntite(etape)
+
+
+    def getFr(self):
+        """
+           Retourne le texte d'aide dans la langue choisie
+        """
+        try :
+            return getattr(self.definition,self.jdc.lang)
+        except:
+            return ''
index 9d17d85e5ce3702d9d002f8c54e91f8bcf810d9f..6c5acddfaa0c00a2302e38c10a22daf848e40586 100644 (file)
@@ -19,9 +19,9 @@
 #
 from __future__ import absolute_import
 from __future__ import print_function
-try : 
-   from builtins import str
-   from builtins import object
+try :
+    from builtins import str
+    from builtins import object
 except : pass
 
 import re,sys,types
@@ -59,7 +59,7 @@ def cmp_function(arg1,arg2):
         return 0
     else:
         return 1
-    
+
 class InterpreteurException(Exception):
     """
     Classe servant a definir les exceptions levees par l'interpreteur de formule
@@ -79,7 +79,7 @@ class Interpreteur_Formule(object):
                            'LOG10','SIN','COS','TAN','ASIN','ACOS','ATAN','SINH',
                            'COSH','TANH','HEAVYSID']
     l_constantes = ['PI','RD_RG','DG_RD']
+
     def __init__(self,formule=None,constantes=[],fonctions=[],parent=None):
         """
         Constructeur d'interpreteurs de formule Aster
@@ -120,7 +120,7 @@ class Interpreteur_Formule(object):
             if nom[0] in ('+','-') : nom = nom[1:]
         self.cr.debut = tr("Debut Fonction %s", nom)
         self.cr.fin = tr("Fin Fonction %s", nom)
-        
+
     def str(self):
         """
         Retourne une liste de chaines de caracteres representant la formule
@@ -141,21 +141,21 @@ class Interpreteur_Formule(object):
         """
         txt = self.cr.report()
         return txt
-    
+
     def enregistre(self,fils):
         """
         Enregistre un operateur fils dans la liste des children
         """
         self.l_children.append(fils)
         self.cr.add(fils.cr)
-        
+
     def isValid(self):
         """
         Booleenne qui retourne 1 si la formule est valide, 0 sinon
         Methode externe
         """
         self.l_operateurs = []
-        self.cr.purge() # on vide le cr 
+        self.cr.purge() # on vide le cr
         self.initCr() # on initialise le cr
         self.interpreteFormule()
         return self.cr.estvide()
@@ -205,7 +205,7 @@ class Interpreteur_Formule(object):
             self.d_fonctions_unaires[new_fonc[0]] = self.getNbArgs(new_fonc)
         #self.d_fonctions_unaires.update(self.new_fonctions_unaires)
         self.l_fonctions_unaires = list(self.d_fonctions_unaires.keys())
-        
+
     def ordonneListes(self):
         """
         Ordonne les listes de fonctions unaires et binaires
@@ -213,7 +213,7 @@ class Interpreteur_Formule(object):
         self.l_fonctions_binaires.sort(cmp_function)
         self.l_fonctions_unaires.sort(cmp_function)
         self.l_constantes.sort(cmp_function)
-        
+
 
     def splitOperateurs(self,texte):
         """
@@ -317,7 +317,7 @@ class Interpreteur_Formule(object):
             else:
                 # on n'a pas trouve de nombre
                 return None,texte
-        
+
     def chercheConstanteOld(self,texte):
         """
         Recherche une constante en debut de texte parmi la liste des constantes.
@@ -367,7 +367,7 @@ class Interpreteur_Formule(object):
         else:
             # aucune constante trouvee
             return None,texte
-        
+
     def chercheArgs(self,texte):
         """
         Cherche au debut de texte une liste d'arguments entre parentheses
@@ -391,7 +391,7 @@ class Interpreteur_Formule(object):
             else:
                 # on a fini d'analyser le texte : reste = None
                 return texte,None
-                    
+
     def chercheOperateurUnaireOld(self,texte):
         """
         Cherche dans texte un operateur unaire
@@ -468,26 +468,26 @@ class Interpreteur_Formule(object):
         elif texte[0] == '-':
             # Il faut pouvoir trapper les expressions du type exp(-(x+1)) ...
             try :
-               args,reste = self.chercheArgs(texte[1:])
+                args,reste = self.chercheArgs(texte[1:])
             except InterpreteurException as e:
                 raise InterpreteurException (e.__str__())
             if not args :
-               # Il ne s'agit pas de '-' comme operateur unaire --> on retourne None
-               return None,texte
+                # Il ne s'agit pas de '-' comme operateur unaire --> on retourne None
+                return None,texte
             else:
-               identificateur = '-'
-               args = self.splitArgs(identificateur,args,self.d_fonctions_unaires[identificateur])
-               formule_operateur = (identificateur,'',self.t_formule[2],args)
-               operateur = Interpreteur_Formule(formule = formule_operateur,
-                                                 constantes = self.new_constantes,
-                                                 fonctions = self.new_fonctions_unaires,
-                                                 parent = self)
-               operateur.interpreteFormule()
-               texte = reste
-               return operateur,reste
+                identificateur = '-'
+                args = self.splitArgs(identificateur,args,self.d_fonctions_unaires[identificateur])
+                formule_operateur = (identificateur,'',self.t_formule[2],args)
+                operateur = Interpreteur_Formule(formule = formule_operateur,
+                                                  constantes = self.new_constantes,
+                                                  fonctions = self.new_fonctions_unaires,
+                                                  parent = self)
+                operateur.interpreteFormule()
+                texte = reste
+                return operateur,reste
         else:
             return None,texte
-            
+
     def chercheOperateurBinaire(self,texte):
         """
         Cherche dans texte un operateur unaire
@@ -525,7 +525,7 @@ class Interpreteur_Formule(object):
             operateur.interpreteFormule()
             texte = reste
             return operateur,reste
-            
+
     def splitArgs(self,nom_fonction,args,nb_args):
         """
         Tente de partager args en nb_args elements
index 7dd76ec2a61c84bd85237bb76165b57705c5491e..f4717582931f9a2a0998ccd84ccaf527313ce844 100644 (file)
    pour traiter les niveaux au sein d'un JDC
 """
 from __future__ import absolute_import
-try : 
-   from builtins import object
+try :
+    from builtins import object
 except : pass
 
 from . import etape_niveau
 
 class JDC(object):
-  def __init__(self):
-    self.dict_niveaux={}
-    self.buildNiveaux()
-
-  def buildNiveaux(self):
-    for niveau in self.definition.l_niveaux:
-      etape_niv = etape_niveau.ETAPE_NIVEAU(niveau,self)
-      self.etapes_niveaux.append(etape_niv)
-      self.dict_niveaux[niveau.nom]=etape_niv
-      self.dict_niveaux.update(etape_niv.dict_niveaux)
+    def __init__(self):
+        self.dict_niveaux={}
+        self.buildNiveaux()
 
+    def buildNiveaux(self):
+        for niveau in self.definition.l_niveaux:
+            etape_niv = etape_niveau.ETAPE_NIVEAU(niveau,self)
+            self.etapes_niveaux.append(etape_niv)
+            self.dict_niveaux[niveau.nom]=etape_niv
+            self.dict_niveaux.update(etape_niv.dict_niveaux)
index 5e0b416971042bbc4348b83eb6a48bf4abcae498..22b420c1f9c78aaccc693c473221f0a0cad3e31e 100644 (file)
@@ -32,325 +32,325 @@ from Accas import JDC,ASSD,AsException,JDC_CATA
 from Ihm import CONNECTOR
 
 class JDC_POURSUITE(JDC):
-   def __init__(self,definition=None,procedure=None,cata=None,
-                     cata_ord_dico=None,parent=None,
-                     nom='SansNom',appli=None,context_ini=None,
-                     jdc_pere=None,etape_include=None,prefix_include=None,
-                     recorded_units=None,old_recorded_units=None,**args):
-
-      JDC.__init__(self, definition=definition,
-                         procedure=procedure,
-                         cata=cata,
-                         cata_ord_dico=cata_ord_dico,
-                         parent=parent,
-                         nom=nom,
-                         appli=appli,
-                         context_ini=context_ini,
-                         **args
-                         )
-      self.jdc_pere=jdc_pere
-      self.etape_include=etape_include
-      self.prefix_include=prefix_include
-      if recorded_units is not None:self.recorded_units=recorded_units
-      if old_recorded_units is not None:self.old_recorded_units=old_recorded_units
-
-   def o_register(self,sd):
-      return self.jdc_pere.o_register(sd)
-
-   def NommerSdprod(self,sd,sdnom,restrict='non'):
-      """
-          Nomme la SD apres avoir verifie que le nommage est possible : nom
-          non utilise
-          Ajoute un prefixe s'il est specifie (INCLUDE_MATERIAU)
-          Si le nom est deja utilise, leve une exception
-          Met le concept cree dans le contexe global g_context
-      """
-      #print "NommerSdprod",sd,sdnom,restrict
-      if self.prefix_include:
-          if sdnom != self.prefix_include:sdnom=self.prefix_include+sdnom
-
-      if sdnom != '' and sdnom[0] == '_':
-        # Si le nom du concept commence par le caractere _ on lui attribue
-        # un identificateur automatique comme dans JEVEUX (voir gcncon)
-        # 
-        # nom commencant par __ : il s'agit de concepts qui seront detruits
-        # nom commencant par _ : il s'agit de concepts intermediaires qui seront gardes
-        # ATTENTION : il faut traiter differemment les concepts dont le nom
-        # commence par _ mais qui sont des concepts nommes automatiquement par
-        # une eventuelle sous macro.
-        if sdnom[1] in string.digits:
-          # Ce concept provient probablement d'une sous macro (cas improbable)
-          #pas de renommage
-          pass
-        elif sdnom[1] == '_':
-          #cas d'un concept a ne pas conserver apres execution de la commande
-          sdnom=sd.id[2:]
-          pass
-        else:
-          sdnom=sd.id[2:]
-          pass
-
-      o=self.sds_dict.get(sdnom,None)
-      if isinstance(o,ASSD):
-         raise AsException(tr("Nom de concept deja defini : %s" ,sdnom))
-
-      # On pourrait verifier que le jdc_pere apres l'etape etape_include
-      # ne contient pas deja un concept de ce nom
-      #if self.jdc_pere.getSdApresEtapeAvecDetruire(sdnom,etape=self.etape_include):
-         # Il existe un concept apres self => impossible d'inserer
-      #   raise AsException("Nom de concept deja defini : %s" % sdnom)
-      # On a choisi de ne pas faire ce test ici mais de le faire en bloc
-      # si necessaire apres en appelant la methode verifContexte
-
-      # ATTENTION : Il ne faut pas ajouter sd dans sds car il s y trouve deja.
-      # Ajoute a la creation (appel de regSD).
-      self.sds_dict[sdnom]=sd
-      sd.nom=sdnom
-
-      # En plus si restrict vaut 'non', on insere le concept dans le contexte du JDC
-      if restrict == 'non':
-         self.g_context[sdnom]=sd
-
-   def getVerifContexte(self):
-      #print "getVerifContexte"
-      j_context=self.getContexteAvant(None)
-      self.verifContexte(j_context)
-      return j_context
-
-   def forceContexte(self,contexte):
-      for nom_sd,sd in list(contexte.items()):
-        if not isinstance(sd,ASSD):continue
-        autre_sd= self.jdc_pere.getSdApresEtapeAvecDetruire(nom_sd,sd,
-                                                       etape=self.etape_include)
-        if autre_sd is None:continue
-        if sd is not autre_sd:
-           # Il existe un autre concept de meme nom produit par une etape apres self 
-           # on detruit ce concept pour pouvoir inserer les etapes du jdc_include
-           if sd.etape:
-              sd.etape.supprimeSdprod(sd)
-
-      return contexte
-
-   def verifContexte(self,context):
-      """
-         Cette methode verifie si le contexte passe en argument (context)
-         peut etre insere dans le jdc pere de l'include.
-         Elle verifie que les concepts contenus dans ce contexte n'entrent
-         pas en conflit avec les concepts produits dans le jdc pere
-         apres l'include.
-         Si le contexte ne peut pas etre insere, la methode leve une
-         exception sinon elle retourne le contexte inchange
-      """
-      #print "verifContexte"
-      for nom_sd,sd in list(context.items()):
-        if not isinstance(sd,ASSD):continue
-        autre_sd= self.jdc_pere.getSdApresEtapeAvecDetruire(nom_sd,sd,
-                                                       etape=self.etape_include)
-        if autre_sd is None:continue
-        if sd is not autre_sd:
-           # Il existe un concept produit par une etape apres self 
-           # => impossible d'inserer
-           raise Exception("Impossible d'inclure le fichier. Un concept de nom " +
-                           "%s existe deja dans le jeu de commandes." % nom_sd)
-
-      return context
-
-   def getListeCmd(self):
-      """
-          Retourne la liste des commandes du catalogue
-      """
-      if self.jdc_pere is None:
-         return JDC.getListeCmd(self)
-      return self.jdc_pere.getListeCmd()
-
-   def getGroups(self):
-      """
-          Retourne la liste des commandes du catalogue par groupes
-      """
-      if self.jdc_pere is None:
-         return JDC.getGroups(self)
-      return self.jdc_pere.getGroups()
-
-   def initModif(self):
-      """
-         Met l'etat de l'etape a : modifie
-         Propage la modification au parent
-
-         Attention : initModif doit etre appele avant de realiser une modification
-         La validite devra etre recalculee apres cette modification
-         mais par un appel a finModif pour preserver l'etat modified
-         de tous les objets entre temps
-      """
-      #print "jdc_include.initModif",self,self.etape_include
-      self.state = 'modified'
-      if self.etape_include:
-         self.etape_include.initModif()
-
-   def finModif(self):
-      """
-          Methode appelee une fois qu'une modification a ete faite afin de
-          declencher d'eventuels traitements post-modification
-          ex : INCLUDE et POURSUITE
-      """
-      #print "jdc_include.finModif",self,self.etape_include
-      CONNECTOR.Emit(self,"valid")
-      if self.etape_include:
-         self.etape_include.finModif()
-
-   def supprime(self):
-      """
-          On ne supprime rien directement pour un jdc auxiliaire d'include ou de poursuite
-          Utiliser supprime_aux
-      """
-      pass
-
-   def supprime_aux(self):
-      #print "supprime_aux",self
-      JDC.supprime(self)
-      self.jdc_pere=None
-      self.etape_include=None
-   #   self.cata_ordonne_dico={}
-      self.appli=None
-   #   self.context_ini={}
-   #   self.procedure=None
-
-   def getContexteAvant(self,etape):
-      """
-         Retourne le dictionnaire des concepts connus avant etape
-         On tient compte des concepts produits par le jdc pere
-         en reactualisant le contexte initial context_ini
-         On tient compte des commandes qui modifient le contexte
-         comme DETRUIRE ou les macros
-         Si etape == None, on retourne le contexte en fin de JDC
-      """
-      #print "jdc_include.getContexteAvant",etape,etape and etape.nom
-      if self.etape_include:
-         new_context=self.etape_include.parent.getContexteAvant(self.etape_include).copy()
-         self.context_ini=new_context
-      d= JDC.getContexteAvant(self,etape)
-      return d
-
-   def resetContext(self):
-      #print "jdc_include.resetContext",self,self.nom
-      if self.etape_include:
-         self.etape_include.parent.resetContext()
-         new_context=self.etape_include.parent.getContexteAvant(self.etape_include).copy()
-         self.context_ini=new_context
-      JDC.resetContext(self)
-
-   def getSdApresEtape(self,nom_sd,etape,avec='non'):
-      """
-           Cette methode retourne la SD de nom nom_sd qui est eventuellement
-           definie apres etape
-           Si avec vaut 'non' exclut etape de la recherche
-      """
-      if self.etape_include:
-         sd=self.etape_include.parent.getSdApresEtape(nom_sd,self.etape_include,'non')
-         if sd:return sd
-      return JDC.getSdApresEtape(self,nom_sd,etape,avec)
-
-   def getSdApresEtapeAvecDetruire(self,nom_sd,sd,etape,avec='non'):
-      """
-           On veut savoir ce que devient le concept sd de nom nom_sd apres etape.
-           Il peut etre detruit, remplace ou conserve
-           Cette methode retourne la SD sd de nom nom_sd qui est eventuellement
-           definie apres etape en tenant compte des concepts detruits
-           Si avec vaut 'non' exclut etape de la recherche
-      """
-      #print "jdc_include.getSdApresEtapeAvecDetruire",nom_sd,sd,id(sd)
-      autre_sd=JDC.getSdApresEtapeAvecDetruire(self,nom_sd,sd,etape,avec)
-      # si autre_sd vaut None le concept sd a ete detruit. On peut terminer
-      # la recherche en retournant None
-      # Si autre_sd ne vaut pas sd, le concept a ete redefini. On peut terminer
-      # la recherche en retournant le concept nouvellement defini
-      # Sinon, on poursuit la recherche dans les etapes du niveau superieur.
-      if autre_sd is None or autre_sd is not sd :return autre_sd
-      return self.etape_include.parent.getSdApresEtapeAvecDetruire(nom_sd,sd,self.etape_include,'non')
-
-   def deleteConcept(self,sd):
-      """
-          Fonction : Mettre a jour les etapes du JDC suite a la disparition du
-          concept sd
-          Seuls les mots cles simples MCSIMP font un traitement autre
-          que de transmettre aux fils
-      """
-      # Nettoyage des etapes de l'include
-      JDC.deleteConcept(self,sd)
-      # Nettoyage des etapes du parent
-      if self.etape_include:
-         self.etape_include.parent.deleteConceptAfterEtape(self.etape_include,sd)
-
-   def deleteConceptAfterEtape(self,etape,sd):
-      """
-          Fonction : Mettre a jour les etapes du JDC qui sont apres etape suite a
-          la disparition du concept sd
-      """
-      # Nettoyage des etapes de l'include
-      JDC.deleteConceptAfterEtape(self,etape,sd)
-      # Nettoyage des etapes du parent
-      if self.etape_include:
-         self.etape_include.parent.deleteConceptAfterEtape(self.etape_include,sd)
-
-   def updateConceptAfterEtape(self,etape,sd):
-      """
-          Fonction : mettre a jour les etapes du JDC suite a une modification
-          du concept sd (principalement renommage)
-      """
-      JDC.updateConceptAfterEtape(self,etape,sd)
-      if self.etape_include:
-         self.etape_include.parent.updateConceptAfterEtape(self.etape_include,sd)
-
-   def replaceConceptAfterEtape(self,etape,old_sd,sd):
-      """
-          Fonction : Mettre a jour les etapes du JDC qui sont apres etape suite au
-          remplacement du concept old_sd par sd
-      """
-      # Nettoyage des etapes de l'include
-      JDC.replaceConceptAfterEtape(self,etape,old_sd,sd)
-      # Nettoyage des etapes du parent
-      if self.etape_include:
-         self.etape_include.parent.replaceConceptAfterEtape(self.etape_include,old_sd,sd)
-
-   def changeFichier(self,fichier):
-      if self.etape_include:
-         self.etape_include.fichier_ini=fichier
-      self.finModif()
-
-   def controlContextApres(self,etape):
-      """
-         Cette methode verifie que les etapes apres l'etape etape
-         ont bien des concepts produits acceptables (pas de conflit de
-         nom principalement)
-         Si des concepts produits ne sont pas acceptables ils sont supprimes.
-         Effectue les verifications sur les etapes du jdc mais aussi sur les
-         jdc parents s'ils existent.
-      """
-      #print "jdc_include.controlContextApres",self,etape
-      #Regularise les etapes du jdc apres l'etape etape
-      self.controlJdcContextApres(etape)
-      if self.etape_include:
-         #print "CONTROL_INCLUDE:",self.etape_include,self.etape_include.nom
-         # il existe un jdc pere. On propage la regularisation
-         self.etape_include.parent.controlContextApres(self.etape_include)
+    def __init__(self,definition=None,procedure=None,cata=None,
+                      cata_ord_dico=None,parent=None,
+                      nom='SansNom',appli=None,context_ini=None,
+                      jdc_pere=None,etape_include=None,prefix_include=None,
+                      recorded_units=None,old_recorded_units=None,**args):
+
+        JDC.__init__(self, definition=definition,
+                           procedure=procedure,
+                           cata=cata,
+                           cata_ord_dico=cata_ord_dico,
+                           parent=parent,
+                           nom=nom,
+                           appli=appli,
+                           context_ini=context_ini,
+                           **args
+                           )
+        self.jdc_pere=jdc_pere
+        self.etape_include=etape_include
+        self.prefix_include=prefix_include
+        if recorded_units is not None:self.recorded_units=recorded_units
+        if old_recorded_units is not None:self.old_recorded_units=old_recorded_units
+
+    def o_register(self,sd):
+        return self.jdc_pere.o_register(sd)
+
+    def nommerSDProd(self,sd,sdnom,restrict='non'):
+        """
+            Nomme la SD apres avoir verifie que le nommage est possible : nom
+            non utilise
+            Ajoute un prefixe s'il est specifie (INCLUDE_MATERIAU)
+            Si le nom est deja utilise, leve une exception
+            Met le concept cree dans le contexe global g_context
+        """
+        #print "nommerSDProd",sd,sdnom,restrict
+        if self.prefix_include:
+            if sdnom != self.prefix_include:sdnom=self.prefix_include+sdnom
+
+        if sdnom != '' and sdnom[0] == '_':
+            # Si le nom du concept commence par le caractere _ on lui attribue
+            # un identificateur automatique comme dans JEVEUX (voir gcncon)
+            #
+            # nom commencant par __ : il s'agit de concepts qui seront detruits
+            # nom commencant par _ : il s'agit de concepts intermediaires qui seront gardes
+            # ATTENTION : il faut traiter differemment les concepts dont le nom
+            # commence par _ mais qui sont des concepts nommes automatiquement par
+            # une eventuelle sous macro.
+            if sdnom[1] in string.digits:
+            # Ce concept provient probablement d'une sous macro (cas improbable)
+            #pas de renommage
+                pass
+            elif sdnom[1] == '_':
+                #cas d'un concept a ne pas conserver apres execution de la commande
+                sdnom=sd.id[2:]
+                pass
+            else:
+                sdnom=sd.id[2:]
+                pass
+
+        o=self.sdsDict.get(sdnom,None)
+        if isinstance(o,ASSD):
+            raise AsException(tr("Nom de concept deja defini : %s" ,sdnom))
+
+        # On pourrait verifier que le jdc_pere apres l'etape etape_include
+        # ne contient pas deja un concept de ce nom
+        #if self.jdc_pere.getSdApresEtapeAvecDetruire(sdnom,etape=self.etape_include):
+            # Il existe un concept apres self => impossible d'inserer
+        #   raise AsException("Nom de concept deja defini : %s" % sdnom)
+        # On a choisi de ne pas faire ce test ici mais de le faire en bloc
+        # si necessaire apres en appelant la methode verifContexte
+
+        # ATTENTION : Il ne faut pas ajouter sd dans sds car il s y trouve deja.
+        # Ajoute a la creation (appel de regSD).
+        self.sdsDict[sdnom]=sd
+        sd.nom=sdnom
+
+        # En plus si restrict vaut 'non', on insere le concept dans le contexte du JDC
+        if restrict == 'non':
+            self.g_context[sdnom]=sd
+
+    def getVerifContexte(self):
+        #print "getVerifContexte"
+        j_context=self.getContexteAvant(None)
+        self.verifContexte(j_context)
+        return j_context
+
+    def forceContexte(self,contexte):
+        for nom_sd,sd in list(contexte.items()):
+            if not isinstance(sd,ASSD):continue
+            autre_sd= self.jdc_pere.getSdApresEtapeAvecDetruire(nom_sd,sd,
+                                                           etape=self.etape_include)
+            if autre_sd is None:continue
+            if sd is not autre_sd:
+                # Il existe un autre concept de meme nom produit par une etape apres self
+                # on detruit ce concept pour pouvoir inserer les etapes du jdc_include
+                if sd.etape:
+                    sd.etape.supprimeSdprod(sd)
+
+        return contexte
+
+    def verifContexte(self,context):
+        """
+           Cette methode verifie si le contexte passe en argument (context)
+           peut etre insere dans le jdc pere de l'include.
+           Elle verifie que les concepts contenus dans ce contexte n'entrent
+           pas en conflit avec les concepts produits dans le jdc pere
+           apres l'include.
+           Si le contexte ne peut pas etre insere, la methode leve une
+           exception sinon elle retourne le contexte inchange
+        """
+        #print "verifContexte"
+        for nom_sd,sd in list(context.items()):
+            if not isinstance(sd,ASSD):continue
+            autre_sd= self.jdc_pere.getSdApresEtapeAvecDetruire(nom_sd,sd,
+                                                           etape=self.etape_include)
+            if autre_sd is None:continue
+            if sd is not autre_sd:
+                # Il existe un concept produit par une etape apres self
+                # => impossible d'inserer
+                raise Exception("Impossible d'inclure le fichier. Un concept de nom " +
+                                "%s existe deja dans le jeu de commandes." % nom_sd)
+
+        return context
+
+    def getListeCmd(self):
+        """
+            Retourne la liste des commandes du catalogue
+        """
+        if self.jdc_pere is None:
+            return JDC.getListeCmd(self)
+        return self.jdc_pere.getListeCmd()
+
+    def getGroups(self):
+        """
+            Retourne la liste des commandes du catalogue par groupes
+        """
+        if self.jdc_pere is None:
+            return JDC.getGroups(self)
+        return self.jdc_pere.getGroups()
+
+    def initModif(self):
+        """
+           Met l'etat de l'etape a : modifie
+           Propage la modification au parent
+
+           Attention : initModif doit etre appele avant de realiser une modification
+           La validite devra etre recalculee apres cette modification
+           mais par un appel a finModif pour preserver l'etat modified
+           de tous les objets entre temps
+        """
+        #print "jdc_include.initModif",self,self.etape_include
+        self.state = 'modified'
+        if self.etape_include:
+            self.etape_include.initModif()
+
+    def finModif(self):
+        """
+            Methode appelee une fois qu'une modification a ete faite afin de
+            declencher d'eventuels traitements post-modification
+            ex : INCLUDE et POURSUITE
+        """
+        #print "jdc_include.finModif",self,self.etape_include
+        CONNECTOR.Emit(self,"valid")
+        if self.etape_include:
+            self.etape_include.finModif()
+
+    def supprime(self):
+        """
+            On ne supprime rien directement pour un jdc auxiliaire d'include ou de poursuite
+            Utiliser supprime_aux
+        """
+        pass
+
+    def supprime_aux(self):
+        #print "supprime_aux",self
+        JDC.supprime(self)
+        self.jdc_pere=None
+        self.etape_include=None
+    #   self.cata_ordonne_dico={}
+        self.appli=None
+    #   self.context_ini={}
+    #   self.procedure=None
+
+    def getContexteAvant(self,etape):
+        """
+           Retourne le dictionnaire des concepts connus avant etape
+           On tient compte des concepts produits par le jdc pere
+           en reactualisant le contexte initial context_ini
+           On tient compte des commandes qui modifient le contexte
+           comme DETRUIRE ou les macros
+           Si etape == None, on retourne le contexte en fin de JDC
+        """
+        #print "jdc_include.getContexteAvant",etape,etape and etape.nom
+        if self.etape_include:
+            new_context=self.etape_include.parent.getContexteAvant(self.etape_include).copy()
+            self.context_ini=new_context
+        d= JDC.getContexteAvant(self,etape)
+        return d
+
+    def resetContext(self):
+        #print "jdc_include.resetContext",self,self.nom
+        if self.etape_include:
+            self.etape_include.parent.resetContext()
+            new_context=self.etape_include.parent.getContexteAvant(self.etape_include).copy()
+            self.context_ini=new_context
+        JDC.resetContext(self)
+
+    def getSdApresEtape(self,nom_sd,etape,avec='non'):
+        """
+             Cette methode retourne la SD de nom nom_sd qui est eventuellement
+             definie apres etape
+             Si avec vaut 'non' exclut etape de la recherche
+        """
+        if self.etape_include:
+            sd=self.etape_include.parent.getSdApresEtape(nom_sd,self.etape_include,'non')
+            if sd:return sd
+        return JDC.getSdApresEtape(self,nom_sd,etape,avec)
+
+    def getSdApresEtapeAvecDetruire(self,nom_sd,sd,etape,avec='non'):
+        """
+             On veut savoir ce que devient le concept sd de nom nom_sd apres etape.
+             Il peut etre detruit, remplace ou conserve
+             Cette methode retourne la SD sd de nom nom_sd qui est eventuellement
+             definie apres etape en tenant compte des concepts detruits
+             Si avec vaut 'non' exclut etape de la recherche
+        """
+        #print "jdc_include.getSdApresEtapeAvecDetruire",nom_sd,sd,id(sd)
+        autre_sd=JDC.getSdApresEtapeAvecDetruire(self,nom_sd,sd,etape,avec)
+        # si autre_sd vaut None le concept sd a ete detruit. On peut terminer
+        # la recherche en retournant None
+        # Si autre_sd ne vaut pas sd, le concept a ete redefini. On peut terminer
+        # la recherche en retournant le concept nouvellement defini
+        # Sinon, on poursuit la recherche dans les etapes du niveau superieur.
+        if autre_sd is None or autre_sd is not sd :return autre_sd
+        return self.etape_include.parent.getSdApresEtapeAvecDetruire(nom_sd,sd,self.etape_include,'non')
+
+    def deleteConcept(self,sd):
+        """
+            Fonction : Mettre a jour les etapes du JDC suite a la disparition du
+            concept sd
+            Seuls les mots cles simples MCSIMP font un traitement autre
+            que de transmettre aux fils
+        """
+        # Nettoyage des etapes de l'include
+        JDC.deleteConcept(self,sd)
+        # Nettoyage des etapes du parent
+        if self.etape_include:
+            self.etape_include.parent.deleteConceptAfterEtape(self.etape_include,sd)
+
+    def deleteConceptAfterEtape(self,etape,sd):
+        """
+            Fonction : Mettre a jour les etapes du JDC qui sont apres etape suite a
+            la disparition du concept sd
+        """
+        # Nettoyage des etapes de l'include
+        JDC.deleteConceptAfterEtape(self,etape,sd)
+        # Nettoyage des etapes du parent
+        if self.etape_include:
+            self.etape_include.parent.deleteConceptAfterEtape(self.etape_include,sd)
+
+    def updateConceptAfterEtape(self,etape,sd):
+        """
+            Fonction : mettre a jour les etapes du JDC suite a une modification
+            du concept sd (principalement renommage)
+        """
+        JDC.updateConceptAfterEtape(self,etape,sd)
+        if self.etape_include:
+            self.etape_include.parent.updateConceptAfterEtape(self.etape_include,sd)
+
+    def replaceConceptAfterEtape(self,etape,old_sd,sd):
+        """
+            Fonction : Mettre a jour les etapes du JDC qui sont apres etape suite au
+            remplacement du concept old_sd par sd
+        """
+        # Nettoyage des etapes de l'include
+        JDC.replaceConceptAfterEtape(self,etape,old_sd,sd)
+        # Nettoyage des etapes du parent
+        if self.etape_include:
+            self.etape_include.parent.replaceConceptAfterEtape(self.etape_include,old_sd,sd)
+
+    def changeFichier(self,fichier):
+        if self.etape_include:
+            self.etape_include.fichier_ini=fichier
+        self.finModif()
+
+    def controlContextApres(self,etape):
+        """
+           Cette methode verifie que les etapes apres l'etape etape
+           ont bien des concepts produits acceptables (pas de conflit de
+           nom principalement)
+           Si des concepts produits ne sont pas acceptables ils sont supprimes.
+           Effectue les verifications sur les etapes du jdc mais aussi sur les
+           jdc parents s'ils existent.
+        """
+        #print "jdc_include.controlContextApres",self,etape
+        #Regularise les etapes du jdc apres l'etape etape
+        self.controlJdcContextApres(etape)
+        if self.etape_include:
+            #print "CONTROL_INCLUDE:",self.etape_include,self.etape_include.nom
+            # il existe un jdc pere. On propage la regularisation
+            self.etape_include.parent.controlContextApres(self.etape_include)
 
 class JDC_INCLUDE(JDC_POURSUITE):
-   def getListeCmd(self):
-      """
-          Retourne la liste des commandes du catalogue
-      """
-      if self.jdc_pere is None:
-         return JDC.getListeCmd(self)
-      return [e for e in self.jdc_pere.getListeCmd() if e not in ("DEBUT","POURSUITE","FIN") ]
-
-   def activeEtapes(self):
-      for e in self.etapes:
-         e.active()
+    def getListeCmd(self):
+        """
+            Retourne la liste des commandes du catalogue
+        """
+        if self.jdc_pere is None:
+            return JDC.getListeCmd(self)
+        return [e for e in self.jdc_pere.getListeCmd() if e not in ("DEBUT","POURSUITE","FIN") ]
+
+    def activeEtapes(self):
+        for e in self.etapes:
+            e.active()
 
 class JDC_CATA_INCLUDE(JDC_CATA):
-   class_instance=JDC_INCLUDE
+    class_instance=JDC_INCLUDE
 
 class JDC_CATA_POURSUITE(JDC_CATA):
-   class_instance=JDC_POURSUITE
+    class_instance=JDC_POURSUITE
 
 from Accas import AU_MOINS_UN,A_CLASSER
 
@@ -364,5 +364,3 @@ JdC_poursuite=JDC_CATA_POURSUITE(code='ASTER', execmodul=None,
                                            A_CLASSER(('DEBUT','POURSUITE'),'FIN')
                                           )
                                )
-
-
index 24757be53fb3cfa9812aff1aa20400914e5ccec0..993864dea7f3d43a13649e45104b52ad521c1326 100644 (file)
@@ -22,14 +22,23 @@ from __future__ import absolute_import
 from __future__ import print_function
 import os
 
-from PyQt5.QtCore import QTranslator
+try :
+    from PyQt5.QtCore import QTranslator
+    code_translator = QTranslator()
+    eficas_translator = QTranslator()
+except :
+    code_translator = None
+    eficas_translator = None
+    print ('pas d import de qt, pas de traduction')
+
 
-code_translator = QTranslator()
-eficas_translator = QTranslator()
 
 def localise(application, locale=None,file=None,translatorFichier=None, debug=False ):
     """
     """
+    if code_translator == None :
+        print ('qt not avalaible, no translation')
+        return
     from PyQt5.QtCore import QLibraryInfo
     from PyQt5.QtCore import QLocale
     from PyQt5.QtWidgets import QApplication
@@ -38,29 +47,27 @@ def localise(application, locale=None,file=None,translatorFichier=None, debug=Fa
     sys_locale = QLocale.system().name()
 
     if locale is None: locale="fr"
-
     if locale=="ang" : locale="en"
 
     if file != None and debug :
-       print ('chargement de ', file,monPath)
-       print (eficas_translator.load(file,monPath))
-       print (QApplication.installTranslator(eficas_translator))
+        print ('chargement de ', file,monPath)
+        print (eficas_translator.load(file,monPath))
+        print (QApplication.installTranslator(eficas_translator))
     elif eficas_translator.load("eficas_" + locale, monPath):
-       QApplication.installTranslator(eficas_translator)
+        QApplication.installTranslator(eficas_translator)
     elif debug:
-       print ("Unable to load Eficas translator!")
+        print ("Unable to load Eficas translator!")
 
-    global code_translator
     if debug : print  ('translatorFichier :' ,translatorFichier)
     if translatorFichier != None :
-       if (code_translator.load(translatorFichier)) and debug:
-           print (translatorFichier, ' loaded')
-       elif (code_translator.load(translatorFichier+'_'+locale) and debug):
-           print(translatorFichier+'_'+locale+ ' loaded')
-       elif debug :
-           print ("Unable to load Code translator! No file or No translation" + translatorFichier)
-       if debug : print (QApplication.installTranslator(code_translator))
-       else : QApplication.installTranslator(code_translator)
+        if (code_translator.load(translatorFichier)) and debug:
+            print (translatorFichier, ' loaded')
+        elif (code_translator.load(translatorFichier+'_'+locale) and debug):
+            print(translatorFichier+'_'+locale+ ' loaded')
+        elif debug :
+            print ("Unable to load Code translator! No file or No translation" + translatorFichier)
+        if debug : print (QApplication.installTranslator(code_translator))
+        else : QApplication.installTranslator(code_translator)
 
 
 if __name__ == "__main__":
index ee042392b0793c42acf94f9c7b77833f7abe58ca..e190b4a425772eba33ad6d19f127edd494db9689 100644 (file)
@@ -21,8 +21,8 @@
 """
 # Modules Python
 from __future__ import absolute_import
-try : 
-   from builtins import str
+try :
+    from builtins import str
 except : pass
 
 
@@ -32,189 +32,184 @@ from Validation import V_MCCOMPO
 from Extensions.i18n import tr
 
 class MCNUPLET(V_MCCOMPO.MCCOMPO,N_MCCOMPO.MCCOMPO):
-   """
-   """
-   nature = "MCNUPLET"
-   txt_nat="Nuplet : "
-
-   def __init__(self,val,definition,nom,parent):
-      # val contient la valeur initial du nuplet
-      self.val = val
-      if val == None: self.val=()
-      self.definition=definition
-      self.nom=nom
-      self.parent = parent
-      # GETVAL affecte la valeur par defaut si necessaire
-      self.valeur=self.GETVAL(self.val)
-      if parent :
-         self.jdc = self.parent.jdc
-         self.niveau = self.parent.niveau
-         self.etape = self.parent.etape
-      else:
-         # Le mot cle a ete cree sans parent
-         self.jdc = None
-         self.niveau = None
-         self.etape = None
-      self.state = 'undetermined'
-      self.actif=1
-      self.mcListe=self.buildMc()
-
-   def buildMc(self):
-      """ 
-          Construit la liste des sous-entites de MCNUPLET
-          a partir de la liste des arguments (valeur)
-      """
-      args = self.valeur
-      if args ==None : args =()
-      mcListe=[]
-
-      # on cree les sous entites du NUPLET a partir des valeurs initiales
-      k=0
-      for v in self.definition.entites:
-        if k < len(args):
-          val=args[k]
+    """
+    """
+    nature = "MCNUPLET"
+    txt_nat="Nuplet : "
+
+    def __init__(self,val,definition,nom,parent):
+        # val contient la valeur initial du nuplet
+        self.val = val
+        if val == None: self.val=()
+        self.definition=definition
+        self.nom=nom
+        self.parent = parent
+        # getValeurEffective affecte la valeur par defaut si necessaire
+        self.valeur=self.getValeurEffective(self.val)
+        if parent :
+            self.jdc = self.parent.jdc
+            self.niveau = self.parent.niveau
+            self.etape = self.parent.etape
         else:
-          val=None
-        objet=v(val=val,nom=repr(k),parent=self)
-        if hasattr(objet.definition,'position'):
-          if objet.definition.position == 'global' :
-            self.append_mc_global(objet)
-          #XXX et global_jdc ??
-        mcListe.append(objet)
-        k=k+1
-      # Un nuplet n'a pas de mots inconnus
-      self.reste_val={}
-      return mcListe
-
-   def isValid(self,cr='non'):
-      """
-          Indique si self (MCNUPLET) est un objet valide ou non : retourne 1 si oui, 0 sinon
-      """
-      if self.state == 'unchanged' :
-        return self.valid
-      else:
-        valid = 1
-        if hasattr(self,'valid'):
-          old_valid = self.valid
+            # Le mot cle a ete cree sans parent
+            self.jdc = None
+            self.niveau = None
+            self.etape = None
+        self.state = 'undetermined'
+        self.actif=1
+        self.mcListe=self.buildMc()
+
+    def buildMc(self):
+        """
+            Construit la liste des sous-entites de MCNUPLET
+            a partir de la liste des arguments (valeur)
+        """
+        args = self.valeur
+        if args ==None : args =()
+        mcListe=[]
+
+        # on cree les sous entites du NUPLET a partir des valeurs initiales
+        k=0
+        for v in self.definition.entites:
+            if k < len(args):
+                val=args[k]
+            else:
+                val=None
+            objet=v(val=val,nom=repr(k),parent=self)
+            if hasattr(objet.definition,'position'):
+                if objet.definition.position == 'global' :
+                    self.append_mc_global(objet)
+                #XXX et global_jdc ??
+            mcListe.append(objet)
+            k=k+1
+        # Un nuplet n'a pas de mots inconnus
+        self.reste_val={}
+        return mcListe
+
+    def isValid(self,cr='non'):
+        """
+            Indique si self (MCNUPLET) est un objet valide ou non : retourne 1 si oui, 0 sinon
+        """
+        if self.state == 'unchanged' :
+            return self.valid
         else:
-          old_valid = None
-        for child in self.mcListe :
-          if not child.isValid():
-            valid = 0
-            break
-        if len(self.mcListe) != len(self.definition.entites):
-          valid=0
-          if cr == 'oui' :
-            self.cr.fatal(''.join(("Nuplet : ",self.nom,tr("Longueur incorrecte"))))
-        self.valid = valid
-        self.state = 'unchanged'
-        if old_valid:
-          if old_valid != self.valid : self.initModifUp()
-        return self.valid
-
-   def __getitem__(self,key):
-      """
-          Retourne le key eme element du nuplet
-      """
-      # Un nuplet est toujours une liste de mots cles simples
-      # On retourne donc la valeur
-      return self.mcListe[key].valeur
-
-   def __str__(self):
-      """
-           Retourne une representation du nuplet sous forme de chaine
-           de caracteres
-      """
-      s='('
-      for e in self.mcListe:
-        s=s + str(e.valeur) + ','
-      return s + ')'
-
-   def __repr__(self):
-      """
-           Retourne une representation du nuplet sous forme de chaine
-           de caracteres
-      """
-      s='('
-      for e in self.mcListe:
-        s=s + str(e.valeur) + ','
-      return s + ')'
-
-   def getRegles(self):
-      """
-         Retourne la liste des regles attachees au nuplet
-      """
-      return []
-
-   def verifConditionBloc(self):
-      """
-          Verifie s'il y a des blocs sous le nuplet et retourne 
-          les blocs en question
-      """
-      # Il n y a pas de BLOCs sous un NUPLET
-      return [],[]
-
-   def isRepetable(self):
-      """ 
-          Indique si le NUPLET peut etre repete.
-          Retourne 1 si c'est le cas.
-          Retourne 0 dans le cas contraire.
-          L'information est donnee par le catalogue, cad la definition de self
-      """
-      if self.definition.min != self.definition.max :
-        return 1
-      else :
-        return 0
-
-   def makeobjet(self):
-      return self.definition(val = None, nom = self.nom,parent = self.parent)
-
-   def getValeur(self):
-      """
-          Cette methode doit retourner la valeur de l'objet. Elle est utilisee par 
-          creeDictValeurs pour construire un dictionnaire contenant les mots cles 
-          d'une etape.
-          Dans le cas d'un nuplet, on retournera comme valeur une liste des valeurs
-          des mots cle simples contenus.
-      """
-      l=[]
-      for v in self.mcListe:
-         l.append(v.valeur)
-      return l
-
-   def getVal(self):
-      """
-          Une autre methode qui retourne une "autre" valeur du mot cle facteur.
-          Elle est utilisee par la methode getMocle
-      """
-      l=[]
-      for v in self.mcListe:
-         l.append(v.valeur)
-      return l
-
-   def isOblig(self):
-      return self.definition.statut=='o'
-
-   def getFr(self):
-     """
-        Retourne le texte d'aide dans la langue choisie
-     """
-     try :
-        return getattr(self.definition,self.jdc.lang)
-     except:
-        return ''
-
-   def creeDictValeurs(self,liste=[],condition=0):
-     dico={}
-     return dico
-
-   def updateConditionBloc(self):
-     """
-       Realise l'update des blocs conditionnels fils de self
-       et propage au parent (rien a faire pour nuplet)
-     """
-
-
-
-
-
+            valid = 1
+            if hasattr(self,'valid'):
+                old_valid = self.valid
+            else:
+                old_valid = None
+            for child in self.mcListe :
+                if not child.isValid():
+                    valid = 0
+                    break
+            if len(self.mcListe) != len(self.definition.entites):
+                valid=0
+                if cr == 'oui' :
+                    self.cr.fatal(''.join(("Nuplet : ",self.nom,tr("Longueur incorrecte"))))
+            self.valid = valid
+            self.state = 'unchanged'
+            if old_valid:
+                if old_valid != self.valid : self.initModifUp()
+            return self.valid
+
+    def __getitem__(self,key):
+        """
+            Retourne le key eme element du nuplet
+        """
+        # Un nuplet est toujours une liste de mots cles simples
+        # On retourne donc la valeur
+        return self.mcListe[key].valeur
+
+    def __str__(self):
+        """
+             Retourne une representation du nuplet sous forme de chaine
+             de caracteres
+        """
+        s='('
+        for e in self.mcListe:
+            s=s + str(e.valeur) + ','
+        return s + ')'
+
+    def __repr__(self):
+        """
+             Retourne une representation du nuplet sous forme de chaine
+             de caracteres
+        """
+        s='('
+        for e in self.mcListe:
+            s=s + str(e.valeur) + ','
+        return s + ')'
+
+    def getRegles(self):
+        """
+           Retourne la liste des regles attachees au nuplet
+        """
+        return []
+
+    def verifConditionBloc(self):
+        """
+            Verifie s'il y a des blocs sous le nuplet et retourne
+            les blocs en question
+        """
+        # Il n y a pas de BLOCs sous un NUPLET
+        return [],[]
+
+    def isRepetable(self):
+        """
+            Indique si le NUPLET peut etre repete.
+            Retourne 1 si c'est le cas.
+            Retourne 0 dans le cas contraire.
+            L'information est donnee par le catalogue, cad la definition de self
+        """
+        if self.definition.min != self.definition.max :
+            return 1
+        else :
+            return 0
+
+    def makeobjet(self):
+        return self.definition(val = None, nom = self.nom,parent = self.parent)
+
+    def getValeur(self):
+        """
+            Cette methode doit retourner la valeur de l'objet. Elle est utilisee par
+            creeDictValeurs pour construire un dictionnaire contenant les mots cles
+            d'une etape.
+            Dans le cas d'un nuplet, on retournera comme valeur une liste des valeurs
+            des mots cle simples contenus.
+        """
+        l=[]
+        for v in self.mcListe:
+            l.append(v.valeur)
+        return l
+
+    def getVal(self):
+        """
+            Une autre methode qui retourne une "autre" valeur du mot cle facteur.
+            Elle est utilisee par la methode getMocle
+        """
+        l=[]
+        for v in self.mcListe:
+            l.append(v.valeur)
+        return l
+
+    def isOblig(self):
+        return self.definition.statut=='o'
+
+    def getFr(self):
+        """
+           Retourne le texte d'aide dans la langue choisie
+        """
+        try :
+            return getattr(self.definition,self.jdc.lang)
+        except:
+            return ''
+
+    def creeDictValeurs(self,liste=[],condition=0):
+        dico={}
+        return dico
+
+    def updateConditionBloc(self):
+        """
+          Realise l'update des blocs conditionnels fils de self
+          et propage au parent (rien a faire pour nuplet)
+        """
index 504a8881dce809fb193099f1c169a8ba53cd622e..efc2ba7669e2812bcea8c1dfcb7e7751479b04d1 100644 (file)
     des groupes de commandes dans le catalogue
 """
 
-try : 
-   from builtins import object
+try :
+    from builtins import object
 except : pass
 
 class NIVEAU(object):
-  def __init__(self,nom='',label='',niveaux=(),valide_vide=1,actif=1):
-    self.nom = nom
-    self.label = label
-    self.statut='o'
-    self.min = 1
-    self.max = 1
-    self.entites = []
-    self.l_noms_entites=[]
-    self.valide_vide = valide_vide
-    self.actif = actif
-    self.d_niveaux = {}
-    self.l_niveaux = niveaux
-    for niveau in niveaux:
-      self.d_niveaux[niveau.nom]=niveau
-      self.d_niveaux.update(niveau.d_niveaux)
+    def __init__(self,nom='',label='',niveaux=(),valide_vide=1,actif=1):
+        self.nom = nom
+        self.label = label
+        self.statut='o'
+        self.min = 1
+        self.max = 1
+        self.entites = []
+        self.l_noms_entites=[]
+        self.valide_vide = valide_vide
+        self.actif = actif
+        self.d_niveaux = {}
+        self.l_niveaux = niveaux
+        for niveau in niveaux:
+            self.d_niveaux[niveau.nom]=niveau
+            self.d_niveaux.update(niveau.d_niveaux)
 
-  def enregistre(self,commande):
-    self.entites.append(commande)
-    self.l_noms_entites.append(commande.nom)
-
-  def getListeCmd(self):
-    self.l_noms_entites.sort()
-    return self.l_noms_entites
+    def enregistre(self,commande):
+        self.entites.append(commande)
+        self.l_noms_entites.append(commande.nom)
 
+    def getListeCmd(self):
+        self.l_noms_entites.sort()
+        return self.l_noms_entites
index 5aaeb6ea5dff92ad63eb7e0f2f6267c0fc9d0af8..21c9fc619787b2ca1a6232574b191eaa18448492 100644 (file)
@@ -22,8 +22,8 @@
 """
 # Modules Python
 from __future__ import absolute_import
-try : 
-   from builtins import str
+try :
+    from builtins import str
 except : pass
 
 import types
@@ -35,94 +35,93 @@ from Extensions.i18n import tr
 from . import mcnuplet
 
 class NUPL(N_ENTITE.ENTITE,I_ENTITE.ENTITE):
-   """
-   """
-   class_instance = mcnuplet.MCNUPLET
-   list_instance = N_MCLIST.MCList
-   label='NUPLET'
-   CR=N_CR.CR
+    """
+    """
+    class_instance = mcnuplet.MCNUPLET
+    list_instance = N_MCLIST.MCList
+    label='NUPLET'
+    CR=N_CR.CR
 
-   def __init__(self,fr="",ang="",docu="",statut='f',defaut=None,min=0,max=1,
-                    elements=None):
-      N_ENTITE.ENTITE.__init__(self)
-      I_ENTITE.ENTITE.__init__(self)
-      self.fr=fr
-      self.ang=ang
-      self.docu=docu
-      self.statut=statut
-      self.defaut=defaut
-      self.min=min
-      self.max=max
-      if self.max =='**' : self.max=float('inf')
-      if self.min =='**' : self.min=float('-inf')
-      self.entites=elements
-      self.regles=()
-      # on force le statut des sous entites a obligatoire
-      for e in elements:e.statut='o'
-      self.idracine="NUPLET"
-      self.affecter_parente()
+    def __init__(self,fr="",ang="",docu="",statut='f',defaut=None,min=0,max=1,
+                     elements=None):
+        N_ENTITE.ENTITE.__init__(self)
+        I_ENTITE.ENTITE.__init__(self)
+        self.fr=fr
+        self.ang=ang
+        self.docu=docu
+        self.statut=statut
+        self.defaut=defaut
+        self.min=min
+        self.max=max
+        if self.max =='**' : self.max=float('inf')
+        if self.min =='**' : self.min=float('-inf')
+        self.entites=elements
+        self.regles=()
+        # on force le statut des sous entites a obligatoire
+        for e in elements:e.statut='o'
+        self.idracine="NUPLET"
+        self.affecter_parente()
 
-   def verifCata(self):
-      """
-          Cette methode sert a valider les attributs de l'objet de definition
-          de la classe NUPL
-      """
-      if type(self.min) != int :
-        if self.min != '**' and self.min != float('-inf'):
-          self.cr.fatal(tr("L'attribut 'min' doit etre un entier : ")+str(self.min))
-      if type(self.max) != int :
-        if self.max != '**'  and self.max != float('inf'):
-          self.cr.fatal(tr("L'attribut 'max' doit etre un entier : ")+str(self.max))
-      if self.min > self.max :
-         self.cr.fatal(tr("Nombres d'occurrence min et max invalides :") +str(self.min)+","+str(self.max))
-      if type(self.fr) != bytes and type(self.fr) != str :
-        self.cr.fatal(tr("L'attribut 'fr' doit etre une chaine de caracteres"))
-      if self.statut not in ['o','f','c','d']:
-        self.cr.fatal(tr("L'attribut 'statut' doit valoir 'o','f','c' ou 'd'"))
-      if type(self.docu) != bytes and type(self.docu) != str  :
-        self.cr.fatal(tr("L'attribut 'docu' doit etre une chaine de caracteres"))
-      self.verifCataRegles()
+    def verifCata(self):
+        """
+            Cette methode sert a valider les attributs de l'objet de definition
+            de la classe NUPL
+        """
+        if type(self.min) != int :
+            if self.min != '**' and self.min != float('-inf'):
+                self.cr.fatal(tr("L'attribut 'min' doit etre un entier : ")+str(self.min))
+        if type(self.max) != int :
+            if self.max != '**'  and self.max != float('inf'):
+                self.cr.fatal(tr("L'attribut 'max' doit etre un entier : ")+str(self.max))
+        if self.min > self.max :
+            self.cr.fatal(tr("Nombres d'occurrence min et max invalides :") +str(self.min)+","+str(self.max))
+        if type(self.fr) != bytes and type(self.fr) != str  :
+            self.cr.fatal(tr("L'attribut 'fr' doit etre une chaine de caracteres"))
+        if self.statut not in ['o','f','c','d']:
+            self.cr.fatal(tr("L'attribut 'statut' doit valoir 'o','f','c' ou 'd'"))
+        if type(self.docu) != bytes and type(self.docu) != str   :
+            self.cr.fatal(tr("L'attribut 'docu' doit etre une chaine de caracteres"))
+        self.verifCataRegles()
 
-   def __call__(self,val,nom,parent):
-      """
-         Construit la structure de donnees pour un NUPLET a partir de sa definition (self)
-         de sa valeur (val), de son nom (nom) et de son parent dans l arboresence (parent)
-      """
-      if (type(val) == tuple or type(val) == list) and type(val[0]) == tuple:
-        # On est en presence d une liste de nuplets
-        l=self.list_instance()
-        l.init(nom=nom,parent=parent)
-        for v in val:
-          objet=self.class_instance(nom=nom,definition=self,val=v,parent=parent)
-          l.append(objet)
-        return l
-      else:
-        # on est en presence d un seul nuplet
-        return self.class_instance(nom=nom,definition=self,val=val,parent=parent)
+    def __call__(self,val,nom,parent):
+        """
+           Construit la structure de donnees pour un NUPLET a partir de sa definition (self)
+           de sa valeur (val), de son nom (nom) et de son parent dans l arboresence (parent)
+        """
+        if (type(val) == tuple or type(val) == list) and type(val[0]) == tuple:
+            # On est en presence d une liste de nuplets
+            l=self.list_instance()
+            l.init(nom=nom,parent=parent)
+            for v in val:
+                objet=self.class_instance(nom=nom,definition=self,val=v,parent=parent)
+                l.append(objet)
+            return l
+        else:
+            # on est en presence d un seul nuplet
+            return self.class_instance(nom=nom,definition=self,val=val,parent=parent)
 
-   def report(self):
-      """ 
-           Methode qui cree le rapport de verification du catalogue du nuplet 
-      """
-      self.cr = self.CR()
-      self.verifCata()
-      for v in self.entites :
-        cr = v.report()
-        cr.debut =tr("Debut ")+v.__class__.__name__+ ' : '
-        cr.fin =tr("Fin ")+v.__class__.__name__+ ' : '
-        self.cr.add(cr)
-      return self.cr
-
-   def affecter_parente(self):
-      """
-          Cette methode a pour fonction de donner un nom et un pere aux
-          sous entites qui n'ont aucun moyen pour atteindre leur parent 
-          directement
-          Il s'agit principalement des mots cles
-      """
-      k=0
-      for v in self.entites:
-        v.pere = self
-        v.nom = str(k)
-        k=k+1
+    def report(self):
+        """
+             Methode qui cree le rapport de verification du catalogue du nuplet
+        """
+        self.cr = self.CR()
+        self.verifCata()
+        for v in self.entites :
+            cr = v.report()
+            cr.debut =tr("Debut ")+v.__class__.__name__+ ' : '
+            cr.fin =tr("Fin ")+v.__class__.__name__+ ' : '
+            self.cr.add(cr)
+        return self.cr
 
+    def affecter_parente(self):
+        """
+            Cette methode a pour fonction de donner un nom et un pere aux
+            sous entites qui n'ont aucun moyen pour atteindre leur parent
+            directement
+            Il s'agit principalement des mots cles
+        """
+        k=0
+        for v in self.entites:
+            v.pere = self
+            v.nom = str(k)
+            k=k+1
index 7a4ce4f62b5535ace5df27e540749df683f85c78..f99b9fb2c54397a3bf4cc015ade01fd0285d130a 100644 (file)
 from __future__ import division
 from __future__ import absolute_import
 try :
-  from builtins import str
-  from builtins import object
+    from builtins import str
+    from builtins import object
 except : pass
 import math
 import types
+# PNPN a resorber
 import six
 
 try:
-  import Numeric
+    import Numeric
 except:
-  try:
-    import numpy
-    Numeric = numpy
-  except ImportError:
-    Numeric = None
+    try:
+        import numpy
+        Numeric = numpy
+    except ImportError:
+        Numeric = None
 
 
 def mkf(value):
@@ -54,9 +55,9 @@ class Formula(object):
         val=self.eval()
         if val is None:return 0
         try:
-           return len(val)
+            return len(val)
         except:
-           return 1
+            return 1
     def __complex__(self): return complex(self.eval())
     def __int__(self): return int(self.eval())
     def __long__(self): return int(self.eval())
@@ -78,7 +79,7 @@ class Formula(object):
     def __rfloordiv__(self, other): return Binop('//', other, self)
     def __pow__(self, other): return Binop('**', self, other)
     def __rpow__(self, other): return Binop('**', other, self)
-    def __getitem__(self,i): 
+    def __getitem__(self,i):
         if i > len(self) : raise StopIteration
         return Binop('[]',self,i)
     def __cmp__( self, other ): return self.eval().__cmp__(other)
@@ -91,13 +92,13 @@ class Formula(object):
     def __hash__(self):return id(self)
 
 def _div(a,b):
-  if isinstance(a,six.integer_types) and isinstance(b,six.integer_types):
-    if a%b:
-      return a/b
+    if isinstance(a,six.integer_types) and isinstance(b,six.integer_types):
+        if a%b:
+            return a/b
+        else:
+            return a//b
     else:
-      return a//b
-  else:
-    return a/b
+        return a/b
 
 
 class Binop(Formula):
@@ -115,19 +116,19 @@ class Binop(Formula):
 
     def __str__(self):
         if self.op == '[]':
-           return "%s[%s]" % (self.values[0], self.values[1])
+            return "%s[%s]" % (self.values[0], self.values[1])
         else:
-           return "(%s %s %s)" % (self.values[0], self.op, self.values[1])
+            return "(%s %s %s)" % (self.values[0], self.op, self.values[1])
     def __repr__(self):
         if self.op == '[]':
-           return "%s[%s]" % (self.values[0], self.values[1])
+            return "%s[%s]" % (self.values[0], self.values[1])
         else:
-           return "(%s %s %s)" % (self.values[0], self.op, self.values[1])
+            return "(%s %s %s)" % (self.values[0], self.op, self.values[1])
     def eval(self):
         result= self.opmap[self.op](self.values[0].eval(),
                                    self.values[1].eval())
         while isinstance(result,Formula):
-              result=result.eval()
+            result=result.eval()
         return result
     def __adapt__(self,validator):
         return validator.adapt(self.eval())
@@ -155,23 +156,23 @@ class Unop2(Unop):
         self._op = op
         self._arg=[]
         for a in arg:
-           self._arg.append(mkf(a))
+            self._arg.append(mkf(a))
     def __str__(self):
         s="%s(" % self._nom
         for a in self._arg:
-           s=s+str(a)+','
+            s=s+str(a)+','
         s=s+")"
         return s
     def __repr__(self):
         s="%s(" % self._nom
         for a in self._arg:
-           s=s+str(a)+','
+            s=s+str(a)+','
         s=s+")"
         return s
     def eval(self):
         l=[]
         for a in self._arg:
-          l.append(a.eval())
+            l.append(a.eval())
         return self._op(*l)
 
 class Constant(Formula):
@@ -202,7 +203,7 @@ def Eval(f):
 
 def cos(f): return Unop('ncos', f)
 def sin(f): return Unop('nsin', f)
-def array(f,*tup,**args): 
+def array(f,*tup,**args):
     """array de Numeric met en defaut la mecanique des parametres
        on la supprime dans ce cas. Il faut que la valeur du parametre soit bien definie
     """
@@ -228,8 +229,8 @@ class  OriginalMath(object):
     def __init__(self):
         if hasattr(self,'pi') :return
         import math
-        try : 
-          self.toSurcharge()
+        try :
+            self.toSurcharge()
         except : pass
 
     def toSurcharge(self):
@@ -285,15 +286,15 @@ class  OriginalMath(object):
     def toOriginal(self):
         import math
         try:
-          import Numeric
+            import Numeric
         except:
-          import numpy
-          Numeric = numpy
+            import numpy
+            Numeric = numpy
 
-        try : 
-          Numeric.cos=originalMath.numeric_ncos
-          Numeric.sin=originalMath.numeric_nsin
-          Numeric.array=originalMath.numeric_narray
+        try :
+            Numeric.cos=originalMath.numeric_ncos
+            Numeric.sin=originalMath.numeric_nsin
+            Numeric.array=originalMath.numeric_narray
         except : pass
         math.sin=originalMath.sin
         math.cos=originalMath.cos
index 5556f5b7ae70efb5860582bc0178920dd4dee10d..ad0ab2e9ec62392e7456489d4ad19d099f84d757 100644 (file)
@@ -29,9 +29,8 @@
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import str
-   from builtins import range
-   from builtins import object
+    from builtins import str
+    from builtins import object
 except : pass
 
 import types
@@ -40,369 +39,387 @@ import traceback
 
 # import de modules Eficas
 from Noyau.N_CR import CR
+from Noyau.N_UserASSD import UserASSD
+from Noyau.N_UserASSDMultiple import UserASSDMultiple
 from Noyau import N_OBJECT
 from Ihm import I_OBJECT
 from .param2 import *
 from Ihm import CONNECTOR
 from Extensions.i18n import tr
-from six.moves import range
+
 
 class PARAMETRE(N_OBJECT.OBJECT,I_OBJECT.OBJECT,Formula) :
-  """
-     Cette classe permet de creer des objets de type PARAMETRE
-     cad des affectations directes dans le jeu de commandes (ex: a=10.)
-     qui sont interpretees par le parseur de fichiers Python.
-     Les objets ainsi crees constituent des parametres pour le jdc
-  """
-
-  nature = 'PARAMETRE'
-  idracine = 'param'
-
-  def __init__(self,nom,valeur=None):
-    self.nom = nom
-    # La classe PARAMETRE n'a pas de definition : on utilise self pour
-    # completude
-    self.definition=self
-    # parent ne peut etre qu'un objet de type JDC
-    self.jdc = self.parent = CONTEXT.getCurrentStep()
-    self.niveau=self.parent.niveau
-    self.actif=1
-    self.state='undetermined'
-    self.register()
-    self.dict_valeur=[]
-    #self.valeur = self.interpreteValeur(valeur)
-    #self.val=valeur
-    self.valeur = valeur
-    self.val=repr(valeur)
-    self.fenetreIhm=None
-
-  def interpreteValeur(self,val):
-    """
-    Essaie d'interpreter val (chaine de caracteres)comme :
-    - un entier
-    - un reel
-    - une chaine de caracteres
-    - une liste d'items d'un type qui precede
-    Retourne la valeur interpretee
     """
-    #if not val : return None
-    valeur = None
-
-    if type(val) == list:
-    # Un premier traitement a ete fait lors de la saisie
-    # permet de tester les parametres qui sont des listes
-       l_new_val = []
-       for v in val :
-           try :
-               valeur=eval(str(v))
-               l_new_val.append(v)
-           except :
-               return None
-       return l_new_val
-
-    if type(val) == bytes or  type(val) == str:
-       # on tente l'evaluation dans un contexte fourni par le parent s'il existe
-       if self.parent:
-          valeur=self.parent.evalInContext(val,self)
-       else:
-          try :
-              valeur = eval(val)
-          except:
-              #traceback.print_exc()
-              pass
-    #PN je n ose pas modifier je rajoute
-    # refus des listes heterogenes : ne dvrait pas etre la
-    if valeur != None :
-        if type(valeur) == tuple:
+       Cette classe permet de creer des objets de type PARAMETRE
+       cad des affectations directes dans le jeu de commandes (ex: a=10.)
+       qui sont interpretees par le parseur de fichiers Python.
+       Les objets ainsi crees constituent des parametres pour le jdc
+    """
+
+    nature = 'PARAMETRE'
+    idracine = 'param'
+
+    def __new__(cls,nom,valeur=None):
+      # on est en relecture du .comm: l objet a ete detecte comme parametre par le parsing
+      # mais il  s agit d une reference, une UserASDD
+        if (issubclass(valeur.__class__, UserASSDMultiple)):
+            valeur.initialiseNom(nom)
+            return valeur
+        if (issubclass(valeur.__class__, UserASSD)):
+            valeur.initialiseNom(nom)
+            return valeur
+        try :
+            return super(PARAMETRE, cls).__new__(cls,*args,**kwargs)
+        except :
+            return super(PARAMETRE, cls).__new__(cls)
+
+
+    def __init__(self,nom,valeur=None):
+      #print ('__init__ de parametre pour', nom,valeur)
+        self.nom = nom
+        # La classe PARAMETRE n'a pas de definition : on utilise self pour
+        # completude
+        self.definition=self
+        # parent ne peut etre qu'un objet de type JDC
+        self.jdc = self.parent = CONTEXT.getCurrentStep()
+        self.niveau=self.parent.niveau
+        self.actif=1
+        self.state='undetermined'
+        self.register()
+        self.dict_valeur=[]
+        #self.valeur = self.interpreteValeur(valeur)
+        #self.val=valeur
+        self.valeur = valeur
+        self.val=repr(valeur)
+        self.fenetreIhm=None
+
+    def interpreteValeur(self,val):
+        """
+        Essaie d'interpreter val (chaine de caracteres)comme :
+        - un entier
+        - un reel
+        - une chaine de caracteres
+        - une liste d'items d'un type qui precede
+        Retourne la valeur interpretee
+        """
+        #if not val : return None
+        valeur = None
+
+        if type(val) == list:
+        # Un premier traitement a ete fait lors de la saisie
+        # permet de tester les parametres qui sont des listes
             l_new_val = []
-            typ = None
-            for v in valeur :
-                if not typ:
-                    typ = type(v)
-                else:
-                    if type(v) != typ :
-                        # la liste est heterogene --> on refuse d'interpreter
-                        #  self comme une liste
-                        # on retourne la string initiale
-                        print(('liste heterogene ',val))
-                        return val
-                l_new_val.append(v)
-            return tuple(l_new_val)
-
-    if valeur != None :
-       if type(valeur).__name__ == 'list':
-          self.dict_valeur=[]
-          for i in range(len(valeur)):
-             self.dict_valeur.append(valeur[i])
-       return valeur
-    # on retourne val comme une string car on n'a pas su l'interpreter
-    return val
-
-  def getValeurs(self):
-    valeurretour=[]
-    if self.dict_valeur != []:
-       for val in self.dict_valeur:
-           valeurretour.append(val)
-    else:
-        valeurretour.append(self.valeur)
-    return valeurretour
-
-  def setValeur(self,new_valeur):
-    """
-    Remplace la valeur de self par new_valeur interpretee
-    """
-    self.valeur = self.interpreteValeur(new_valeur)
-    self.val=repr(self.valeur)
-    self.parent.updateConceptAfterEtape(self,self)
-    self.initModif()
-
-  def setNom(self,new_nom):
-    """
-    Change le nom du parametre
-    """
-    self.initModif()
-    self.nom=new_nom
-    self.finModif()
-
-  def initModif(self):
-    """
-    Methode qui declare l'objet courant comme modifie et propage
-    cet etat modifie a ses ascendants
-    """
-    self.state = 'modified'
-    if self.parent:
-      self.parent.initModif()
-
-  def getJdcRoot(self):
-    if self.parent:
-      return self.parent.getJdcRoot()
-    else:
-      return self
-
-  def register(self):
-    """
-    Enregistre le parametre dans la liste des etapes de son parent (JDC)
-    """
-    self.parent.registerParametre(self)
-    self.parent.register(self)
-
-  def isValid(self,cr='non'):
-    """
-    Retourne 1 si self est valide, 0 sinon
-    Un parametre est considere comme valide si :
-      - il a un nom
-      - il a une valeur
-    """
-    if self.nom == '' :
-        if cr == 'oui':
-           self.cr.fatal(tr("Pas de nom donne au parametre "))
-        return 0
-    else:
-        if self.valeur == None :
-            if cr == 'oui' : 
-               self.cr.fatal(tr("Le parametre %s ne peut valoir None" , self.nom))
+            for v in val :
+                try :
+                    valeur=eval(str(v))
+                    l_new_val.append(v)
+                except :
+                    return None
+            return l_new_val
+
+        if type(val) == bytes or  type(val) == str:
+            # on tente l'evaluation dans un contexte fourni par le parent s'il existe
+            if self.parent:
+                valeur=self.parent.evalInContext(val,self)
+            else:
+                try :
+                    valeur = eval(val)
+                except:
+                    #traceback.print_exc()
+                    pass
+        #PN je n ose pas modifier je rajoute
+        # refus des listes heterogenes : ne dvrait pas etre la
+        if valeur != None :
+            if type(valeur) == tuple:
+                l_new_val = []
+                typ = None
+                for v in valeur :
+                    if not typ:
+                        typ = type(v)
+                    else:
+                        if type(v) != typ :
+                            # la liste est heterogene --> on refuse d'interpreter
+                            #  self comme une liste
+                            # on retourne la string initiale
+                            print(('liste heterogene ',val))
+                            return val
+                    l_new_val.append(v)
+                return tuple(l_new_val)
+
+        if valeur != None :
+            if type(valeur).__name__ == 'list':
+                self.dict_valeur=[]
+                for i in range(len(valeur)):
+                    self.dict_valeur.append(valeur[i])
+            return valeur
+        # on retourne val comme une string car on n'a pas su l'interpreter
+        return val
+
+    def getValeurs(self):
+        valeurretour=[]
+        if self.dict_valeur != []:
+            for val in self.dict_valeur:
+                valeurretour.append(val)
+        else:
+            valeurretour.append(self.valeur)
+        return valeurretour
+
+    def setValeur(self,new_valeur):
+        """
+        Remplace la valeur de self par new_valeur interpretee
+        """
+        self.valeur = self.interpreteValeur(new_valeur)
+        self.val=repr(self.valeur)
+        self.parent.updateConceptAfterEtape(self,self)
+        self.initModif()
+
+    def setNom(self,new_nom):
+        """
+        Change le nom du parametre
+        """
+        self.initModif()
+        self.nom=new_nom
+        self.finModif()
+
+    def initModif(self):
+        """
+        Methode qui declare l'objet courant comme modifie et propage
+        cet etat modifie a ses ascendants
+        """
+        self.state = 'modified'
+        if self.parent:
+            self.parent.initModif()
+
+    def getJdcRoot(self):
+        if self.parent:
+            return self.parent.getJdcRoot()
+        else:
+            return self
+
+    def register(self):
+        """
+        Enregistre le parametre dans la liste des etapes de son parent (JDC)
+        """
+        self.parent.registerParametre(self)
+        self.parent.register(self)
+
+    def isValid(self,cr='non'):
+        """
+        Retourne 1 si self est valide, 0 sinon
+        Un parametre est considere comme valide si :
+          - il a un nom
+          - il a une valeur
+        """
+        if self.nom == '' :
+            if cr == 'oui':
+                self.cr.fatal(tr("Pas de nom donne au parametre "))
             return 0
-    return 1
-
-  def isOblig(self):
-    """
-    Indique si self est obligatoire ou non : retourne toujours 0
-    """
-    return 0
-
-  def isRepetable(self):
-    """
-    Indique si self est repetable ou non : retourne toujours 1
-    """
-    return 1
-
-  def listeMcPresents(self):
-    return []
-
-  def supprime(self):
-    """
-    Methode qui supprime toutes les boucles de references afin que 
-    l'objet puisse etre correctement detruit par le garbage collector
-    """
-    self.parent = None
-    self.jdc = None
-    self.definition=None
-    self.niveau=None
+        else:
+            if self.valeur == None :
+                if cr == 'oui' :
+                    self.cr.fatal(tr("Le parametre %s ne peut valoir None" , self.nom))
+                return 0
+        return 1
+
+    def isOblig(self):
+        """
+        Indique si self est obligatoire ou non : retourne toujours 0
+        """
+        return 0
 
-  def active(self):
-    """
-    Rend l'etape courante active.
-    Il faut ajouter le parametre au contexte global du JDC
-    """
-    self.actif = 1
-    try:
-        self.jdc.appendParam(self)
-    except:
+    def isRepetable(self):
+        """
+        Indique si self est repetable ou non : retourne toujours 1
+        """
+        return 1
+
+    def listeMcPresents(self):
+        return []
+
+    def supprime(self):
+        """
+        Methode qui supprime toutes les boucles de references afin que
+        l'objet puisse etre correctement detruit par le garbage collector
+        """
+        self.parent = None
+        self.jdc = None
+        self.definition=None
+        self.niveau=None
+
+    def active(self):
+        """
+        Rend l'etape courante active.
+        Il faut ajouter le parametre au contexte global du JDC
+        """
+        self.actif = 1
+        try:
+            self.jdc.appendParam(self)
+        except:
+            pass
+        CONNECTOR.Emit(self,"add",None)
+        CONNECTOR.Emit(self,"valid")
+
+    def inactive(self):
+        """
+        Rend l'etape courante inactive
+        Il faut supprimer le parametre du contexte global du JDC
+        """
+        self.actif = 0
+        self.jdc.delParam(self)
+        self.jdc.deleteConceptAfterEtape(self,self)
+        CONNECTOR.Emit(self,"supp",None)
+        CONNECTOR.Emit(self,"valid")
+
+    def isActif(self):
+        """
+        Booleenne qui retourne 1 si self est actif, 0 sinon
+        """
+        return self.actif
+
+    def setAttribut(self,nom_attr,new_valeur):
+        """
+        Remplace la valeur de self.nom_attr par new_valeur)
+        """
+        if hasattr(self,nom_attr):
+            setattr(self,nom_attr,new_valeur)
+            self.initModif()
+
+    def supprimeSdProds(self):
+        """
+        Il faut supprimer le parametre qui a ete entre dans la liste des
+        parametres du JDC
+        """
+        self.jdc.deleteParam(self)
+        self.parent.deleteConcept(self)
+
+    def updateContext(self,d):
+        """
+        Update le dictionnaire d avec le parametre que produit self
+        """
+        d[self.nom]=self
+
+    def __repr__(self):
+        """
+            Donne un echo de self sous la forme nom = valeur
+        """
+        if type(self.valeur) == bytes or  type(self.valeur) == str :
+            if self.valeur.find('\n') == -1:
+                # pas de retour chariot, on utilise repr
+                return self.nom+' = '+ repr(self.valeur)
+            elif self.valeur.find('"""') == -1:
+                # retour chariot mais pas de triple ", on formatte
+                return self.nom+' = """'+self.valeur+'"""'
+            else:
+                return self.nom+' = '+ repr(self.valeur)
+        else:
+            if type(self.valeur) == list :
+                aRetourner=self.nom+' = ['
+                for l in self.valeur :
+                    aRetourner=aRetourner+str(l) +","
+                aRetourner=aRetourner[0:-1]+']'
+                return aRetourner
+            return self.nom+' = '+ str(self.valeur)
+
+    def __str__(self):
+        """
+            Retourne le nom du parametre comme representation de self
+        """
+        return self.nom
+
+    def getSdprods(self,nom_sd):
+        """
+            Retourne les concepts produits par la commande
+        """
+        return None
+
+    def report(self):
+        """ Genere l'objet rapport (classe CR) """
+        self.cr=CR()
+        self.isValid(cr='oui')
+        return self.cr
+
+    def ident(self):
+        """
+        Retourne le nom interne associe a self
+        Ce nom n'est jamais vu par l'utilisateur dans EFICAS
+        """
+        return self.nom
+
+    def deleteConcept(self,sd):
         pass
-    CONNECTOR.Emit(self,"add",None)
-    CONNECTOR.Emit(self,"valid")
-
-  def inactive(self):
-    """
-    Rend l'etape courante inactive
-    Il faut supprimer le parametre du contexte global du JDC
-    """
-    self.actif = 0
-    self.jdc.delParam(self)
-    self.jdc.deleteConceptAfterEtape(self,self)
-    CONNECTOR.Emit(self,"supp",None)
-    CONNECTOR.Emit(self,"valid")
 
-  def isActif(self):
-    """
-    Booleenne qui retourne 1 si self est actif, 0 sinon
-    """
-    return self.actif
-
-  def setAttribut(self,nom_attr,new_valeur):
-    """
-    Remplace la valeur de self.nom_attr par new_valeur)
-    """
-    if hasattr(self,nom_attr):
-      setattr(self,nom_attr,new_valeur)
-      self.initModif()
-
-  def supprimeSdProds(self):
-    """
-    Il faut supprimer le parametre qui a ete entre dans la liste des
-    parametres du JDC
-    """
-    self.jdc.deleteParam(self)
-    self.parent.deleteConcept(self)
-
-  def updateContext(self,d):
-    """
-    Update le dictionnaire d avec le parametre que produit self
-    """
-    d[self.nom]=self
-
-  def __repr__(self):
-    """
-        Donne un echo de self sous la forme nom = valeur
-    """
-    if type(self.valeur) == bytes or  type(self.valeur) == str :
-         if self.valeur.find('\n') == -1:
-            # pas de retour chariot, on utilise repr
-            return self.nom+' = '+ repr(self.valeur)
-         elif self.valeur.find('"""') == -1:
-            # retour chariot mais pas de triple ", on formatte
-            return self.nom+' = """'+self.valeur+'"""'
-         else:
-            return self.nom+' = '+ repr(self.valeur)
-    else:
-       if type(self.valeur) == list :
-          aRetourner=self.nom+' = ['
-          for l in self.valeur :
-            aRetourner=aRetourner+str(l) +","
-          aRetourner=aRetourner[0:-1]+']'
-          return aRetourner
-       return self.nom+' = '+ str(self.valeur)
-
-  def __str__(self):
-    """
-        Retourne le nom du parametre comme representation de self
-    """
-    return self.nom
-
-  def getSdprods(self,nom_sd):
-     """
-         Retourne les concepts produits par la commande
-     """
-     return None
-
-  def report(self):
-    """ Genere l'objet rapport (classe CR) """
-    self.cr=CR()
-    self.isValid(cr='oui')
-    return self.cr
-
-  def ident(self):
-    """
-    Retourne le nom interne associe a self
-    Ce nom n'est jamais vu par l'utilisateur dans EFICAS
-    """
-    return self.nom
-
-  def deleteConcept(self,sd):
-    pass
-
-  def replaceConcept(self,old_sd,sd):
-    pass
-
-  def verifConditionBloc(self):
-    """
-        Evalue les conditions de tous les blocs fils possibles
-        (en fonction du catalogue donc de la definition) de self et
-        retourne deux listes :
-          - la premiere contient les noms des blocs a rajouter
-          - la seconde contient les noms des blocs a supprimer
-    """
-    return [],[]
-
-  def verifConditionRegles(self,liste_presents):
-    """
-        Retourne la liste des mots-cles a rajouter pour satisfaire les regles
-        en fonction de la liste des mots-cles presents
-    """
-    return []
+    def replaceConcept(self,old_sd,sd):
+        pass
 
-  def verifExistenceSd(self):
-     pass
+    def verifConditionBloc(self):
+        """
+            Evalue les conditions de tous les blocs fils possibles
+            (en fonction du catalogue donc de la definition) de self et
+            retourne deux listes :
+              - la premiere contient les noms des blocs a rajouter
+              - la seconde contient les noms des blocs a supprimer
+        """
+        return [],[]
+
+    def verifConditionRegles(self,liste_presents):
+        """
+            Retourne la liste des mots-cles a rajouter pour satisfaire les regles
+            en fonction de la liste des mots-cles presents
+        """
+        return []
+
+    def verifExistenceSd(self):
+        pass
 
-  def controlSdprods(self,d):
-      """sans objet """
-      pass
+    def controlSdprods(self,d):
+        """sans objet """
+        pass
 
-  def close(self):
-      pass
+    def close(self):
+        pass
 
-  def resetContext(self):
-      pass
+    def resetContext(self):
+        pass
 
-  def eval(self):
-      if isinstance(self.valeur,Formula):
-         return self.valeur.eval()
-      else:
-         return self.valeur
+    def eval(self):
+        if isinstance(self.valeur,Formula):
+            return self.valeur.eval()
+        else:
+            return self.valeur
 
-  def __adapt__(self,validator):
-      return validator.adapt(self.eval())
+    def __adapt__(self,validator):
+        return validator.adapt(self.eval())
 
 class COMBI_PARAMETRE(object) :
-  def __init__(self,chainevaleur,valeur):
-      self.chainevaleur=chainevaleur
-      self.valeur=valeur
+    def __init__(self,chainevaleur,valeur):
+        self.chainevaleur=chainevaleur
+        self.valeur=valeur
 
-  def __repr__(self):
-      return self.chainevaleur
+    def __repr__(self):
+        return self.chainevaleur
 
-  def isValid(self):
-      if self.valeur and self.chainevaleur:
-         return 1
+    def isValid(self):
+        if self.valeur and self.chainevaleur:
+            return 1
 
 class ITEM_PARAMETRE(object) :
-  def __init__(self,param_pere,item=None):
-      self.param_pere = param_pere
-      self.item = item
-      
-
-  def __repr__(self):
-    return self.param_pere.nom+'['+str(self.item)+']'
-
-
-  def isValid(self):
-      isValid = 1
-      if self.item < 0:
-         isValid =  0
-      try:
-         longueur= len(self.param_pere.dict_valeur) - 1
-      except:
-         longueur=0
-      if self.item > longueur :
-         isValid= 0
-      return isValid
+    def __init__(self,param_pere,item=None):
+        self.param_pere = param_pere
+        self.item = item
+
+
+    def __repr__(self):
+        return self.param_pere.nom+'['+str(self.item)+']'
+
+
+    def isValid(self):
+        isValid = 1
+        if self.item < 0:
+            isValid =  0
+        try:
+            longueur= len(self.param_pere.dict_valeur) - 1
+        except:
+            longueur=0
+        if self.item > longueur :
+            isValid= 0
+        return isValid
index 7118e1b14774c5f800b68f16a03a885367a22f0b..19566a380433e74332d54acdc09bf25a77d185a5 100644 (file)
@@ -39,198 +39,196 @@ from . import parametre
 pattern_eval       = re.compile(r'^(EVAL)([ \t\r\f\v]*)\(([\w\W]*)')
 
 class PARAMETRE_EVAL(parametre.PARAMETRE) :
-  """
-  Cette classe permet de creer des objets de type PARAMETRE_EVAL
-  cad des affectations directes evaluees dans le jeu de commandes (ex: a=EVAL('''10.*SQRT(25)'''))
-  qui sont interpretees par le parseur de fichiers Python.
-  Les objets ainsi crees constituent des parametres evalues pour le jdc
-  """
-  nature = 'PARAMETRE_EVAL'
-  idracine='param_eval'
-
-  def __init__(self,nom,valeur=None):
-    # parent ne peut etre qu'un objet de type JDC
-    import Accas
-    self.Accas_EVAL=Accas.EVAL
-    self.valeur = self.interpreteValeur(valeur)
-    self.val    = valeur
-    self.nom = nom
-    self.jdc = self.parent = CONTEXT.getCurrentStep()
-    self.definition=self
-    self.niveau = self.parent.niveau
-    self.actif=1
-    self.state='undetermined'
-    # Ceci est-il indispensable ???
-    #self.appel = N_utils.calleeWhere(niveau=2)
-    self.register()
-
-  def __repr__(self):
     """
-        Donne un echo de self sous la forme nom = valeur
-    """
-    return self.nom+' = '+ repr(self.valeur) 
-
-  def __str__(self):
-    """
-        Retourne le nom du parametre evalue comme representation de self
-    """
-    return self.nom
-
-  def interpreteValeur(self,val):
-    """
-    Essaie d'interpreter val (chaine de caracteres ou None) comme :
-    une instance de Accas.EVAL
-    Retourne la valeur interpretee
-    """
-    if not val : return None
-    d={}
-    val = val.strip()
-    if val[-1] == ';' : val = val[0:-1]
-    d['EVAL'] = self.Accas_EVAL
-    try:
-        valeur = eval(val,{},d)
-        return valeur
-    except:
-        traceback.print_exc()
-        print(("Le texte %s n'est pas celui d'un parametre evalue" %val))
-        return None
-
-  def setValeur(self,new_valeur):
-    """
-    Remplace la valeur de self par new_valeur interpretee.
-    """
-    self.valeur = self.interpreteValeur(new_valeur)
-    self.val = new_valeur
-    self.initModif()
-
-  def getNom(self) :
-    """
-    Retourne le nom du parametre
-    """
-    return self.nom
-
-  def getValeur(self):
-    """
-    Retourne la valeur de self, cad le texte de l'objet class_eval.EVAL
-    """
-    if self.valeur :
-        return self.valeur.valeur
-    else:
-        return ''
-
-  def verifEval(self,exp_eval=None,cr='non'):
-    """
-    Cette methode a pour but de verifier si l'expression EVAL
-    est syntaxiquement correcte.
-    Retourne :
-        - un booleen, qui vaut 1 si licite, 0 sinon
-        - un message d'erreurs ('' si illicite)
-    """
-    if not exp_eval:
+    Cette classe permet de creer des objets de type PARAMETRE_EVAL
+    cad des affectations directes evaluees dans le jeu de commandes (ex: a=EVAL('''10.*SQRT(25)'''))
+    qui sont interpretees par le parseur de fichiers Python.
+    Les objets ainsi crees constituent des parametres evalues pour le jdc
+    """
+    nature = 'PARAMETRE_EVAL'
+    idracine='param_eval'
+
+    def __init__(self,nom,valeur=None):
+        # parent ne peut etre qu'un objet de type JDC
+        import Accas
+        self.Accas_EVAL=Accas.EVAL
+        self.valeur = self.interpreteValeur(valeur)
+        self.val    = valeur
+        self.nom = nom
+        self.jdc = self.parent = CONTEXT.getCurrentStep()
+        self.definition=self
+        self.niveau = self.parent.niveau
+        self.actif=1
+        self.state='undetermined'
+        # Ceci est-il indispensable ???
+        #self.appel = N_utils.calleeWhere(niveau=2)
+        self.register()
+
+    def __repr__(self):
+        """
+            Donne un echo de self sous la forme nom = valeur
+        """
+        return self.nom+' = '+ repr(self.valeur)
+
+    def __str__(self):
+        """
+            Retourne le nom du parametre evalue comme representation de self
+        """
+        return self.nom
+
+    def interpreteValeur(self,val):
+        """
+        Essaie d'interpreter val (chaine de caracteres ou None) comme :
+        une instance de Accas.EVAL
+        Retourne la valeur interpretee
+        """
+        if not val : return None
+        d={}
+        val = val.strip()
+        if val[-1] == ';' : val = val[0:-1]
+        d['EVAL'] = self.Accas_EVAL
+        try:
+            valeur = eval(val,{},d)
+            return valeur
+        except:
+            traceback.print_exc()
+            print(("Le texte %s n'est pas celui d'un parametre evalue" %val))
+            return None
+
+    def setValeur(self,new_valeur):
+        """
+        Remplace la valeur de self par new_valeur interpretee.
+        """
+        self.valeur = self.interpreteValeur(new_valeur)
+        self.val = new_valeur
+        self.initModif()
+
+    def getNom(self) :
+        """
+        Retourne le nom du parametre
+        """
+        return self.nom
+
+    def getValeur(self):
+        """
+        Retourne la valeur de self, cad le texte de l'objet class_eval.EVAL
+        """
         if self.valeur :
-            exp_eval = self.valeur.valeur[3:-3] # on enleve les triples guillemets
+            return self.valeur.valeur
         else:
-            exp_eval = None
-    if exp_eval :
-        # on construit un interpreteur de formule
-        formule=(self.nom,'',None,exp_eval)
-        # on recupere la liste des constantes et des autres fonctions predefinies
-        # et qui peuvent etre utilisees dans le corps de la formule courante
-        l_ctes,l_form = self.jdc.getParametresFonctionsAvantEtape(self)
-        # on cree un objet verificateur
-        verificateur = interpreteur_formule.Interpreteur_Formule(formule=formule,
-                                                                 constantes = l_ctes,
-                                                                 fonctions = l_form)
-        if cr == 'oui' :
-          if not verificateur.cr.estvide():
-            self.cr.fatal(verificateur.cr.getMessFatal())
-        return verificateur.isValid(),''.join(verificateur.cr.crfatal)
-    else:
-        # pas d'expression EVAL --> self non valide
-        if cr == 'oui' : 
-           self.cr.fatal(tr("Le parametre EVAL %s ne peut valoir None") , self.nom)
-        return 0,tr("Le parametre EVAL ne peut valoir None")
-
-  def verifNom(self,nom=None,cr='non'):
-    """
-    Verifie si le nom passe en argument (si aucun prend le nom courant)
-    est un nom valide pour un parametre EVAL
-    Retourne :
-        - un booleen, qui vaut 1 si nom licite, 0 sinon
-        - un message d'erreurs ('' si illicite)
-    """
-    if not nom :
-        nom = self.nom
-    if nom == "" :
-        if cr == 'oui' : self.cr.fatal(tr("Pas de nom donne au parametre EVAL"))
-        return 0,"Pas de nom donne au parametre EVAL"
-    if len(nom) > 8 :
-        if cr == 'oui' : self.cr.fatal(tr("Un nom de parametre ne peut depasser 8 caracteres"))
-        return 0,"Un nom de parametre ne peut depasser 8 caracteres"
-    sd = self.parent.getSdAutourEtape(nom,self)
-    if sd :
-        if cr == 'oui' : self.cr.fatal(tr("Un concept de nom %s existe deja !"), nom)
-        return 0,"Un concept de nom %s existe deja !" %nom
-    return 1,''
-
-  def verifParametreEval(self,param=None,cr='non'):
-    """
-    Verifie la validite du parametre EVAL passe en argument.
-    Ce nouveau parametre est passe sous la forme d'un tuple : (nom,valeur)
-    Si aucun tuple passe, prend les valeurs courantes de l'objet
-    Retourne :
-            - un booleen, qui vaut 1 si EVAL licite, 0 sinon
+            return ''
+
+    def verifEval(self,exp_eval=None,cr='non'):
+        """
+        Cette methode a pour but de verifier si l'expression EVAL
+        est syntaxiquement correcte.
+        Retourne :
+            - un booleen, qui vaut 1 si licite, 0 sinon
             - un message d'erreurs ('' si illicite)
-    """
-    if not param :
-        if self.valeur :
-            param = (self.nom,self.valeur.valeur)
+        """
+        if not exp_eval:
+            if self.valeur :
+                exp_eval = self.valeur.valeur[3:-3] # on enleve les triples guillemets
+            else:
+                exp_eval = None
+        if exp_eval :
+            # on construit un interpreteur de formule
+            formule=(self.nom,'',None,exp_eval)
+            # on recupere la liste des constantes et des autres fonctions predefinies
+            # et qui peuvent etre utilisees dans le corps de la formule courante
+            l_ctes,l_form = self.jdc.getParametresFonctionsAvantEtape(self)
+            # on cree un objet verificateur
+            verificateur = interpreteur_formule.Interpreteur_Formule(formule=formule,
+                                                                     constantes = l_ctes,
+                                                                     fonctions = l_form)
+            if cr == 'oui' :
+                if not verificateur.cr.estvide():
+                    self.cr.fatal(verificateur.cr.getMessFatal())
+            return verificateur.isValid(),''.join(verificateur.cr.crfatal)
         else:
-            param = (self.nom,None)
-    test_nom,erreur_nom   = self.verifNom(param[0],cr=cr)
-    test_eval,erreur_eval = self.verifEval(param[1],cr=cr)
-    # test global = produit des tests partiels
-    test = test_nom*test_eval
-    # message d'erreurs global = concatenation des messages partiels
-    erreur = ''
-    if not test :
-        for mess in (erreur_nom,erreur_eval):
-            erreur = erreur+(len(mess) > 0)*'\n'+mess
-    return test,erreur
-
-  def update(self,param):
-    """
-    Methode externe.
-    Met a jour les champs nom, valeur de self
-    par les nouvelles valeurs passees dans le tuple formule.
-    On stocke les valeurs SANS verifications.
-    """
-    self.initModif()
-    self.setNom(param[0])
-    self.setValeur('EVAL("""'+param[1]+'""")')
-
-  def isValid(self,cr='non'):
-    """
-    Retourne 1 si self est valide, 0 sinon
-    Un parametre evalue est considere comme valide si :
-      - il a un nom
-      - il a une valeur qui est interpretable par l'interpreteur de FORMULEs
-    """
-    resu,erreur= self.verifParametreEval(cr=cr)
-    return resu
-
-  def report(self):
-    """
-        Genere l'objet rapport (classe CR)
-    """
-    self.cr = CR()
-    self.isValid(cr='oui')
-    return self.cr
-
-  def setNom(self,new_nom):
-    """
-    Remplace le nom de self par new_nom
-    """
-    self.nom = new_nom
-
-
+            # pas d'expression EVAL --> self non valide
+            if cr == 'oui' :
+                self.cr.fatal(tr("Le parametre EVAL %s ne peut valoir None") , self.nom)
+            return 0,tr("Le parametre EVAL ne peut valoir None")
+
+    def verifNom(self,nom=None,cr='non'):
+        """
+        Verifie si le nom passe en argument (si aucun prend le nom courant)
+        est un nom valide pour un parametre EVAL
+        Retourne :
+            - un booleen, qui vaut 1 si nom licite, 0 sinon
+            - un message d'erreurs ('' si illicite)
+        """
+        if not nom :
+            nom = self.nom
+        if nom == "" :
+            if cr == 'oui' : self.cr.fatal(tr("Pas de nom donne au parametre EVAL"))
+            return 0,"Pas de nom donne au parametre EVAL"
+        if len(nom) > 8 :
+            if cr == 'oui' : self.cr.fatal(tr("Un nom de parametre ne peut depasser 8 caracteres"))
+            return 0,"Un nom de parametre ne peut depasser 8 caracteres"
+        sd = self.parent.getSdAutourEtape(nom,self)
+        if sd :
+            if cr == 'oui' : self.cr.fatal(tr("Un concept de nom %s existe deja !"), nom)
+            return 0,"Un concept de nom %s existe deja !" %nom
+        return 1,''
+
+    def verifParametreEval(self,param=None,cr='non'):
+        """
+        Verifie la validite du parametre EVAL passe en argument.
+        Ce nouveau parametre est passe sous la forme d'un tuple : (nom,valeur)
+        Si aucun tuple passe, prend les valeurs courantes de l'objet
+        Retourne :
+                - un booleen, qui vaut 1 si EVAL licite, 0 sinon
+                - un message d'erreurs ('' si illicite)
+        """
+        if not param :
+            if self.valeur :
+                param = (self.nom,self.valeur.valeur)
+            else:
+                param = (self.nom,None)
+        test_nom,erreur_nom   = self.verifNom(param[0],cr=cr)
+        test_eval,erreur_eval = self.verifEval(param[1],cr=cr)
+        # test global = produit des tests partiels
+        test = test_nom*test_eval
+        # message d'erreurs global = concatenation des messages partiels
+        erreur = ''
+        if not test :
+            for mess in (erreur_nom,erreur_eval):
+                erreur = erreur+(len(mess) > 0)*'\n'+mess
+        return test,erreur
+
+    def update(self,param):
+        """
+        Methode externe.
+        Met a jour les champs nom, valeur de self
+        par les nouvelles valeurs passees dans le tuple formule.
+        On stocke les valeurs SANS verifications.
+        """
+        self.initModif()
+        self.setNom(param[0])
+        self.setValeur('EVAL("""'+param[1]+'""")')
+
+    def isValid(self,cr='non'):
+        """
+        Retourne 1 si self est valide, 0 sinon
+        Un parametre evalue est considere comme valide si :
+          - il a un nom
+          - il a une valeur qui est interpretable par l'interpreteur de FORMULEs
+        """
+        resu,erreur= self.verifParametreEval(cr=cr)
+        return resu
+
+    def report(self):
+        """
+            Genere l'objet rapport (classe CR)
+        """
+        self.cr = CR()
+        self.isValid(cr='oui')
+        return self.cr
+
+    def setNom(self,new_nom):
+        """
+        Remplace le nom de self par new_nom
+        """
+        self.nom = new_nom
index 009af7ef100aff62bcac49dd860f3b47531324be..6dbd8342e2f2d1f0523eb0807c8e9b038c3556de 100644 (file)
 from __future__ import absolute_import
 import glob,os,sys,traceback
 try:
-   from UserDict import UserDict
+    from UserDict import UserDict
 except ImportError:
-   from collections import UserDict
+    from collections import UserDict
 
 
 class PluginLoader(UserDict):
-   def __init__(self,module):
-      UserDict.__init__(self)
-      self.plugin_dir=module.__path__[0]
-      self.plugin_setName=module.__name__
-      _module_list = glob.glob( os.path.join( self.plugin_dir,
-                              '%s*py' % self.plugin_setName,
-                                           )
-                              )
-      _module_list.sort()
+    def __init__(self,module):
+        UserDict.__init__(self)
+        self.plugin_dir=module.__path__[0]
+        self.plugin_setName=module.__name__
+        _module_list = glob.glob( os.path.join( self.plugin_dir,
+                                '%s*py' % self.plugin_setName,
+                                             )
+                                )
+        _module_list.sort()
 
-      for _module_name in _module_list:
+        for _module_name in _module_list:
 
-        _module_name = os.path.basename(_module_name)[:-3]
-        _import_name = '%s.%s' % ( self.plugin_setName,
-                                   _module_name )
+            _module_name = os.path.basename(_module_name)[:-3]
+            _import_name = '%s.%s' % ( self.plugin_setName,
+                                       _module_name )
 
-        try:
-          _module = __import__( _import_name )
-        except:
-          sys.stderr.write('\n--- Plugin Module Error ---\n')
-          traceback.print_exc()
-          sys.stderr.write('---------------------------\n\n')
-          continue
-        try:
-          _module = getattr(_module, _module_name)
-        except AttributeError:
-          sys.stderr.write('ERROR: Could not retrieve %s\n' % _import_name)
+            try:
+                _module = __import__( _import_name )
+            except:
+                sys.stderr.write('\n--- Plugin Module Error ---\n')
+                traceback.print_exc()
+                sys.stderr.write('---------------------------\n\n')
+                continue
+            try:
+                _module = getattr(_module, _module_name)
+            except AttributeError:
+                sys.stderr.write('ERROR: Could not retrieve %s\n' % _import_name)
 
-        try:
-          info = _module.entryPoint()
-        except AttributeError:
-          pass
-        else:
-          self.addEntryPoint(info)
+            try:
+                info = _module.entryPoint()
+            except AttributeError:
+                pass
+            else:
+                self.addEntryPoint(info)
 
 
-   def addEntryPoint(self,infoDict):
-      name=infoDict['name']
-      factory=infoDict['factory']
-      self[name]=factory
-
+    def addEntryPoint(self,infoDict):
+        name=infoDict['name']
+        factory=infoDict['factory']
+        self[name]=factory
index e8116f5f4ed2707f2abef6fbeb6f8896626d53b8..1745cd1a6cc363872694003d8f08802b2a47f9bd 100644 (file)
@@ -20,23 +20,23 @@ mechanism, in the ``Eficas`` application of EDF. Handles unformatted and
 formatted strings, according to all formatting schemes: via dictionaries,
 tuples, or atoms.
 
-``PyQt4`` is currently supported.
 """
 from __future__ import absolute_import
-try : 
-  from builtins import zip
-  from builtins import map
-  from builtins import range
-except : 
-  pass
+try :
+    from builtins import zip
+    from builtins import map
+    from builtins import range
+except :
+    pass
 from .eficas_exception import EficasException
-#from Extensions.eficas_exception import EficasException
+
 import re
-from six.moves import map
+regex=re.compile(r"% *[0-9]+")
+
 import six
+from six.moves import map
 from six.moves import range
 from six.moves import zip
-regex=re.compile(r"% *[0-9]+")
 
 
 
@@ -137,7 +137,7 @@ def _reformat_qstring_from_atom(qstring, params):
 
     Module-internal method.
     Returns a formatted string from an unformatted string
-    and an integer or a float specifying the parameter of 
+    and an integer or a float specifying the parameter of
     the string.
     """
     from PyQt5.QtCore import QRegExp
@@ -186,7 +186,7 @@ def _reformat_qstring_from_list(qstring, params):
 
     Module-internal method.
     Returns a formatted string from an unformatted string
-    and a list whose concatenation specifies the parameter 
+    and a list whose concatenation specifies the parameter
     of the string.
     """
     # XXX to add further functionality, e.g. list processing
@@ -208,9 +208,9 @@ def _reformat_qstring_from_list(qstring, params):
 def _preprocess_atom(string):
     """
     _preprocess_atom(string-or-number-or-unicode) -> unicode
-    Test if input is a Unicode object or a number; if so, then return it; 
-    otherwise, test if the input is a string; if so, then try to create 
-    a Unicode object out of it. To this end, assume the string is encoded 
+    Test if input is a Unicode object or a number; if so, then return it;
+    otherwise, test if the input is a string; if so, then try to create
+    a Unicode object out of it. To this end, assume the string is encoded
     in utf-8; if this fails, then assume the string is encoded in Latin-9.
     """
     if isinstance(string, (six.text_type, int, float, complex)):
@@ -224,8 +224,8 @@ def _preprocess_atom(string):
 def _str_toUnicode(string):
     """
     _str_toUnicode(string) -> unicode
-    Tries to create a Unicode object out of the input string; assumes 
-    the string is UTF-8 encoded; if not, then assume the string is 
+    Tries to create a Unicode object out of the input string; assumes
+    the string is UTF-8 encoded; if not, then assume the string is
     Latin-9 encoded.
     """
     try:
@@ -241,12 +241,16 @@ def _str_toUnicode(string):
 def tr(string, *args):
     """tr(string-or-unicode, iterable-or-float-or-int) -> unicode
        tr(string-or-unicode) -> unicode
-       
-       Returns a formatted Unicode object from an unformatted 
-       string or Unicode object with formatting specifications, and, 
+
+       Returns a formatted Unicode object from an unformatted
+       string or Unicode object with formatting specifications, and,
        optionally, an iterable or an int or float.
        Lets Python do the string formatting."""
-    from PyQt5.QtWidgets import QApplication
+    try :
+        from PyQt5.QtWidgets import QApplication
+    except :
+        return string
+
     string = _preprocess_atom(string)
     if len(args) == 0:
         r = six.text_type(QApplication.translate("@default", string))
@@ -289,9 +293,9 @@ def tr(string, *args):
 def tr_qt(string, *args):
     """tr_qt(string, iterable-or-float-or-int) -> unicode
        t_qtr(string) -> unicode
-       
-       Returns a formatted string from an unformatted 
-       Unicode string with formatting specifications, and, 
+
+       Returns a formatted string from an unformatted
+       Unicode string with formatting specifications, and,
        optionally, an iterable or an int or float.
        Lets PyQt4 do the string formatting. To this end,
        a conversion from Python to Qt string formatting
@@ -308,7 +312,7 @@ def tr_qt(string, *args):
                     r = _reformat_qstring_from_dict(r, args[0])
                 elif isinstance(args[0], tuple):
                     r = _reformat_qstring_from_tuple(r, args[0])
-            # XXX Pay attention to this: distinguish between tuple, 
+            # XXX Pay attention to this: distinguish between tuple,
             # dict and dict with key given in string.
             elif r.count("%") in range(2) and r.count("%(") == 0:
                 r = _reformat_qstring_from_atom(r, _preproces_atom(repr(args[0])))
index f0e3f0efe5cd89f5391876188ef70bb1d7ef4825..31efdd4c7b4f94bf9602f7e54e4b65e8654cdccf 100644 (file)
@@ -21,8 +21,8 @@
   La classe CONNECTOR sert a enregistrer les observateurs d'objets et a delivrer
   les messages emis a ces objets.
 
-  Le principe general est le suivant : un objet (subscriber) s'enregistre aupres du 
-  connecteur global (theconnector) pour observer un objet emetteur de messages (publisher) 
+  Le principe general est le suivant : un objet (subscriber) s'enregistre aupres du
+  connecteur global (theconnector) pour observer un objet emetteur de messages (publisher)
   sur un canal donne (channel). Il demande a etre notifie par appel d'une fonction (listener).
   La sequence est donc :
 
@@ -46,147 +46,145 @@ class ConnectorError(Exception):
 
 class CONNECTOR:
 
-  def __init__(self):
-    self.connections={}
-
-  def Connect(self, object, channel, function, args):
-    #print ("Connect",object, channel, function, args)
-    idx = id(object)
-    #if self.connections.has_key(idx):
-    if idx in self.connections :
-       channels = self.connections[idx]
-    else:
-       channels = self.connections[idx] = {}
-
-    #if channels.has_key(channel):
-    if channel in channels :
-       receivers = channels[channel]
-    else:
-       receivers = channels[channel] = []
-
-    for funct,fargs in receivers[:]:
-        if funct() is None:
-           receivers.remove((funct,fargs))
-        elif (function,args) == (funct(),fargs):
-           receivers.remove((funct,fargs))
-
-    receivers.append((ref(function),args))
-    
-
-  def Disconnect(self, object, channel, function, args):
-    try:
-       receivers = self.connections[id(object)][channel]
-    except KeyError:
-       raise ConnectorError (
-            'no receivers for channel %s of %s' % (channel, object))
-
-    for funct,fargs in receivers[:]:
-        if funct() is None:
-           receivers.remove((funct,fargs))
-
-    for funct,fargs in receivers:
-        if (function,args) == (funct(),fargs):
-           receivers.remove((funct,fargs))
-           if not receivers:
-              # the list of receivers is empty now, remove the channel
-              channels = self.connections[id(object)]
-              del channels[channel]
-              if not channels:
-                 # the object has no more channels
-                 del self.connections[id(object)]
-           return
-
-    raise ConnectorError(
-          'receiver %s%s is not connected to channel %s of %s' \
-          % (function, args, channel, object))
-
-
-
-  def Emit(self, object, channel, *args):
-    #print "Emit",object, channel, args
-    try:
-       receivers = self.connections[id(object)][channel]
-    except KeyError:
-       return
-    #print "Emit",object, channel, receivers
-    # Attention : copie pour eviter les pbs lies aux deconnexion reconnexion
-    # pendant l'execution des emit
-    for rfunc, fargs in copy(receivers):
-       try:
-          func=rfunc()
-          if func:
-             #print (func,args,fargs)
-             #rint args + fargs
-             #apply(func, args + fargs)
-             if args + fargs == () : func()
-             else : func ( args + fargs)
-          else:
-             # Le receveur a disparu
-             if (rfunc,fargs) in receivers:receivers.remove((rfunc,fargs))
-       except:
-          traceback.print_exc()
+    def __init__(self):
+        self.connections={}
+
+    def Connect(self, object, channel, function, args):
+        #print ("Connect",object, channel, function, args)
+        idx = id(object)
+        #if self.connections.has_key(idx):
+        if idx in self.connections :
+            channels = self.connections[idx]
+        else:
+            channels = self.connections[idx] = {}
+
+        #if channels.has_key(channel):
+        if channel in channels :
+            receivers = channels[channel]
+        else:
+            receivers = channels[channel] = []
+
+        for funct,fargs in receivers[:]:
+            if funct() is None:
+                receivers.remove((funct,fargs))
+            elif (function,args) == (funct(),fargs):
+                receivers.remove((funct,fargs))
+
+        receivers.append((ref(function),args))
+
+
+    def Disconnect(self, object, channel, function, args):
+        try:
+            receivers = self.connections[id(object)][channel]
+        except KeyError:
+            raise ConnectorError (
+                 'no receivers for channel %s of %s' % (channel, object))
+
+        for funct,fargs in receivers[:]:
+            if funct() is None:
+                receivers.remove((funct,fargs))
+
+        for funct,fargs in receivers:
+            if (function,args) == (funct(),fargs):
+                receivers.remove((funct,fargs))
+                if not receivers:
+                    # the list of receivers is empty now, remove the channel
+                    channels = self.connections[id(object)]
+                    del channels[channel]
+                    if not channels:
+                        # the object has no more channels
+                        del self.connections[id(object)]
+                return
+
+        raise ConnectorError(
+              'receiver %s%s is not connected to channel %s of %s' \
+              % (function, args, channel, object))
+
+
+
+    def Emit(self, object, channel, *args):
+        #print "Emit",object, channel, args
+        try:
+            receivers = self.connections[id(object)][channel]
+        except KeyError:
+            return
+        #print "Emit",object, channel, receivers
+        # Attention : copie pour eviter les pbs lies aux deconnexion reconnexion
+        # pendant l'execution des emit
+        for rfunc, fargs in copy(receivers):
+            try:
+                func=rfunc()
+                if func:
+                    #print (func,args,fargs)
+                    #rint args + fargs
+                    #apply(func, args + fargs)
+                    if args + fargs == () : func()
+                    else : func ( args + fargs)
+                else:
+                    # Le receveur a disparu
+                    if (rfunc,fargs) in receivers:receivers.remove((rfunc,fargs))
+            except:
+                traceback.print_exc()
 
 def ref(target,callback=None):
-   #if hasattr(target,"im_self"):
-   #   return BoundMethodWeakref(target)
-   if hasattr(target,"__self__"):
-      return BoundMethodWeakref(target)
-   else:
-      return weakref.ref(target,callback)
+    #if hasattr(target,"im_self"):
+    #   return BoundMethodWeakref(target)
+    if hasattr(target,"__self__"):
+        return BoundMethodWeakref(target)
+    else:
+        return weakref.ref(target,callback)
 
 class BoundMethodWeakref(object):
-   def __init__(self,callable):
-       #self.Self=weakref.ref(callable.im_self)
-       #self.Func=weakref.ref(callable.im_func)
-       self.Self=weakref.ref(callable.__self__)
-       self.Func=weakref.ref(callable.__func__)
-
-   def __call__(self):
-       target=self.Self()
-       if not target:return None
-       func=self.Func()
-       if func:
-          return func.__get__(self.Self())
+    def __init__(self,callable):
+            #self.Self=weakref.ref(callable.im_self)
+            #self.Func=weakref.ref(callable.im_func)
+        self.Self=weakref.ref(callable.__self__)
+        self.Func=weakref.ref(callable.__func__)
+
+    def __call__(self):
+        target=self.Self()
+        if not target:return None
+        func=self.Func()
+        if func:
+            return func.__get__(self.Self())
 
 _the_connector =CONNECTOR()
 Connect = _the_connector.Connect
-Emit = _the_connector.Emit 
+Emit = _the_connector.Emit
 Disconnect = _the_connector.Disconnect
 
 if __name__ == "__main__":
-   class A:
-     pass
-
-   class B:
-     def add(self,a):
-       print(("--------------------------------add ", self , a))
-
-     def __del__(self):
-       print(("__del__", self))
+    class A:
+        pass
 
-   def f(a):
-     print((f, a))
+    class B:
+        def add(self,a):
+            print(("--------------------------------add ", self , a))
 
-   a=A()
-   b=B()
-   c=B()
+        def __del__(self):
+            print(("__del__", self))
 
-   Connect(a,"add",b.add,())
-   Connect(a,"add",b.add,())
-   Connect(a,"add",c.add,())
-   Connect(a,"add",f,())
+    def f(a):
+        print((f, a))
 
-   Emit(a,"add",1)
+    a=A()
+    b=B()
+    c=B()
 
-   print ("del b")
-   del b
+    Connect(a,"add",b.add,())
+    Connect(a,"add",b.add,())
+    Connect(a,"add",c.add,())
+    Connect(a,"add",f,())
 
-   Emit(a,"add",1)
-   print ("del f")
-   del f
+    Emit(a,"add",1)
 
-   Emit(a,"add",1)
-   Disconnect(a,"add",c.add,())
-   Emit(a,"add",1)
+    print ("del b")
+    del b
 
+    Emit(a,"add",1)
+    print ("del f")
+    del f
 
+    Emit(a,"add",1)
+    Disconnect(a,"add",c.add,())
+    Emit(a,"add",1)
index 680d8f1cfd921a2f562d17ee4b6adce2d6687693..ae8caeb19b0f6c9b8c3e4f9144ec43fc77aaf359 100644 (file)
@@ -26,37 +26,32 @@ from Extensions.eficas_exception import EficasException
 from Noyau.N_VALIDATOR import ValError
 
 class ASSD:
-   def __repr__(self):
-      return tr("concept %(inst_name)s de type %(class_name)s", \
-                       {'inst_name': self.getName(), \
-                        'class_name': self.__class__.__name__})
+    def __repr__(self):
+        return "concept " + self.getName() + " type " + self.__class__.__name__
 
-   def __str__(self):
-      return self.getName() or "<None>"
+    def __str__(self):
+        return self.getName() or "<None>"
 
-   #def __del__(self):
-   #   print "__del__",self
 
 class assd(ASSD):
-   def __convert__(cls,valeur):
-      return valeur
-   __convert__=classmethod(__convert__)
+    def __convert__(cls,valeur):
+        return valeur
+    __convert__=classmethod(__convert__)
 
 class GEOM(ASSD):
-   def __convert__(cls,valeur):
-      return valeur
-   __convert__=classmethod(__convert__)
+    def __convert__(cls,valeur):
+        return valeur
+    __convert__= classmethod(__convert__)
 
 class geom(GEOM):
-   pass
+    pass
 
 class CO(ASSD):
-   def __convert__(cls,valeur):
-      if hasattr(valeur,'_etape') :
-         # valeur est un concept CO qui a ete transforme par typeSDProd
-         if valeur.etape == valeur._etape:
-             # le concept est bien produit par l'etape
-             return valeur
-      raise ValError(u"Pas un concept CO")
-   __convert__=classmethod(__convert__)
-
+    def __convert__(cls,valeur):
+        if hasattr(valeur,'_etape') :
+            # valeur est un concept CO qui a ete transforme par typeSDProd
+            if valeur.etape == valeur._etape:
+                # le concept est bien produit par l'etape
+                return valeur
+        raise ValError(u"Pas un concept CO")
+    __convert__=classmethod(__convert__)
index 84fa108d1bc61d4fbc19bdc0ff73eebd93411f2c..068823dae1ff3bd9144afbe5285a8c84a7f70762 100644 (file)
@@ -24,55 +24,54 @@ import types
 
 
 class I_AVANT:
-   """
-      La regle I_AVANT verifie que l'on trouve l ordre  des mots-cles
-      de la regle parmi les arguments d'un JDC.
+    """
+       La regle I_AVANT verifie que l'on trouve l ordre  des mots-cles
+       de la regle parmi les arguments d'un JDC.
 
-      Ces arguments sont transmis a la regle pour validation sous la forme 
-      d'une liste de noms de mots-cles ou d'un dictionnaire dont 
-      les cles sont des noms de mots-cles.
-   """
+       Ces arguments sont transmis a la regle pour validation sous la forme
+       d'une liste de noms de mots-cles ou d'un dictionnaire dont
+       les cles sont des noms de mots-cles.
+    """
 
-   def __init__(self,*args):
-      if len(args) > 2 :
-        print(("Erreur a la creation de la regle A_CLASSER(",args,")"))
-        return
-      if type(args[0]) == tuple:
-        self.listeAvant=args[0]
-      else :
-        self.listeAvant=(args[0],)
-      if type(args[1]) == tuple:
-        self.listeApres=args[1]
-      else :
-        self.listeApres=(args[1],)
+    def __init__(self,*args):
+        if len(args) > 2 :
+            print(("Erreur a la creation de la regle A_CLASSER(",args,")"))
+            return
+        if type(args[0]) == tuple:
+            self.listeAvant=args[0]
+        else :
+            self.listeAvant=(args[0],)
+        if type(args[1]) == tuple:
+            self.listeApres=args[1]
+        else :
+            self.listeApres=(args[1],)
 
-   def verif(self,args):
-      """
-          args peut etre un dictionnaire ou une liste. Les elements de args
-          sont soit les elements de la liste soit les cles du dictionnaire.
-      """
-      #  on compte le nombre de mots cles presents
-      text =''
-      boolListeAvant=0
-      boolListeApres=0
-      boolOK=1
-      for nom in args:
-          if nom in self.listeAvant :
-             boolListeAvant=1
-             if boolListeApres == 1 :
-                boolOK = 0
-          if nom in self.listeApres :
-             boolListeApres=1
-      if boolListeAvant == 0 and boolListeApres == 1 : boolOK = 0
-      return text,boolOK
+    def verif(self,args):
+        """
+            args peut etre un dictionnaire ou une liste. Les elements de args
+            sont soit les elements de la liste soit les cles du dictionnaire.
+        """
+        #  on compte le nombre de mots cles presents
+        text =''
+        boolListeAvant=0
+        boolListeApres=0
+        boolOK=1
+        for nom in args:
+            if nom in self.listeAvant :
+                boolListeAvant=1
+                if boolListeApres == 1 :
+                    boolOK = 0
+            if nom in self.listeApres :
+                boolListeApres=1
+        if boolListeAvant == 0 and boolListeApres == 1 : boolOK = 0
+        return text,boolOK
 
 
-   def getText(self):
-       text = "Regle de classement "' :\n'
-       for mc in self.listeAvant : 
-           text = text + mc + ', '
-       text = text  + " \nAvant : \n" 
-       for mc in self.listeApres : 
-           text = text + mc + ','
-       return text
-
+    def getText(self):
+        text = "Regle de classement "' :\n'
+        for mc in self.listeAvant :
+            text = text + mc + ', '
+        text = text  + " \nAvant : \n"
+        for mc in self.listeApres :
+            text = text + mc + ','
+        return text
index e43db75ba4053ed738acd4a7f8fad775834db52c..fee92f3aae017b427d01ab762a9dd5b04314269c 100644 (file)
 from __future__ import absolute_import
 
 from . import I_REGLE
-import six
 
 class A_CLASSER(I_REGLE.REGLE):
-  def getText(self):
-    text = 'Regle ' + self.__class__.__name__+ ' :\n'
-    t="  D'abord :\n"+' '*8
-    for arg in self.args0:
-      t=t+arg.strip()+' ou '
-    text = text + t[0:-4] +'\n'
-    t = "  Ensuite :\n"+' '*8
-    for arg in self.args1:
-      t=t+arg.strip()+' ou '
-    text = text + t[0:-4] +'\n'
-    return six.text_type(text)
-
+    def getText(self):
+        text = 'Regle ' + self.__class__.__name__+ ' :\n'
+        t="  D'abord :\n"+' '*8
+        for arg in self.args0:
+            t=t+arg.strip()+' ou '
+        text = text + t[0:-4] +'\n'
+        t = "  Ensuite :\n"+' '*8
+        for arg in self.args1:
+            t=t+arg.strip()+' ou '
+        text = text + t[0:-4] +'\n'
+        return text
index 2b3d282c84f2a15d54b0bca1611ac06b36d5ee39..97ca3ce1f64ab6bef8d8e6d7a91af5ab762be6bd 100644 (file)
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 from __future__ import absolute_import
-import six
 _no=0
 
 import Accas
 def numberEntite(entite):
-   """
-      Fonction qui attribue un numero unique a tous les objets du catalogue
-      Ce numero permet de conserver l'ordre des objets
-   """
-   global _no
-   _no=_no+1
-   entite._no=_no
+    """
+       Fonction qui attribue un numero unique a tous les objets du catalogue
+       Ce numero permet de conserver l'ordre des objets
+    """
+    global _no
+    _no=_no+1
+    entite._no=_no
 
 class ENTITE:
-  def __init__(self):
-     numberEntite(self)
-    
-  def getDocu(self):
-    if hasattr(self,'docu') :
-      if self.docu != "" : return self.docu
-      else:
-        if hasattr(self,'pere'):
-          return self.pere.getDocu()
+    def __init__(self):
+        numberEntite(self)
+
+    def getDocu(self):
+        if hasattr(self,'docu') :
+            if self.docu != "" : return self.docu
+            else:
+                if hasattr(self,'pere'):
+                    return self.pere.getDocu()
+                else:
+                    return None
         else:
-          return None
-    else:
-      return None
+            return None
+
+    def getSug(self):
+        if hasattr(self,'sug') :
+            if self.sug != "" : return self.sug
+        return None
+
+    def checkDefinition(self, parent):
+        """Verifie la definition d'un objet composite (commande, fact, bloc)."""
+        args = self.entites.copy()
+        mcs = set()
+        for nom, val in args.items():
+            if val.label == 'SIMP':
+                mcs.add(nom)
+                #if val.max != 1 and val.type == 'TXM':
+                    #print "#CMD", parent, nom
+            elif val.label == 'FACT':
+                val.checkDefinition(parent)
+            else:
+                continue
+            del args[nom]
+        # seuls les blocs peuvent entrer en conflit avec les mcs du plus haut niveau
+        for nom, val in args.items():
+            if val.label == 'BLOC':
+                mcbloc = val.checkDefinition(parent)
+                #print "#BLOC", parent, re.sub('\s+', ' ', val.condition)
+                #assert mcs.isdisjoint(mcbloc), "Commande %s : Mot(s)-clef(s) vu(s) plusieurs fois : %s" \
+                #   % (parent, tuple(mcs.intersection(mcbloc)))
+        return mcs
 
-  def getSug(self):
-    if hasattr(self,'sug') :
-      if self.sug != "" : return self.sug
-    return None
-
-  def checkDefinition(self, parent):
-      """Verifie la definition d'un objet composite (commande, fact, bloc)."""
-      args = self.entites.copy()
-      mcs = set()
-      for nom, val in args.items():
-         if val.label == 'SIMP':
-            mcs.add(nom)
-            #XXX
-            #if val.max != 1 and val.type == 'TXM':
-                #print "#CMD", parent, nom
-         elif val.label == 'FACT':
-            val.checkDefinition(parent)
-            #PNPNPN surcharge
-            # CALC_SPEC !
-            #assert self.label != 'FACT', \
-            #   'Commande %s : Mot-clef facteur present sous un mot-clef facteur : interdit !' \
-            #   % parent
-         else:
-            continue
-         del args[nom]
-      # seuls les blocs peuvent entrer en conflit avec les mcs du plus haut niveau
-      for nom, val in args.items():
-         if val.label == 'BLOC':
-            mcbloc = val.checkDefinition(parent)
-            #XXX
-            #print "#BLOC", parent, re.sub('\s+', ' ', val.condition)
-            #assert mcs.isdisjoint(mcbloc), "Commande %s : Mot(s)-clef(s) vu(s) plusieurs fois : %s" \
-            #   % (parent, tuple(mcs.intersection(mcbloc)))
-      return mcs
-
-  def enregistreXML(self,root,catalogueXml):
-      import xml.etree.ElementTree as ET
-      import types
-      moi=ET.SubElement(root,str(self.__class__))
-      nom=ET.SubElement(moi,'nom')
-      nom.text=self.nom
-
-      if hasattr(self,'validators') and (self.validators != () and self.validators != None):
-         valid=ET.SubElement(moi,'validators')
-         valid.text= str(self.validators.__class__)
-         catalogueXml.validatorsUtilises.append(self.validators)
-
-      if hasattr(self,'regles') and (self.regles !=() and self.regles != None):
-         for regle in self.regles:
-             regle.enregistreXML(moi,catalogueXml)
-         catalogueXml.reglesUtilisees.append(self.regles)
-
-      if ((self.getDocu() !="" and self.getDocu() !=None) or  \
-          (self.fr != "" and self.fr != None) or \
-          (self.ang != "" and self.ang != None) ):
-                dico={}
-                if self.getDocu() !=None : dico["docu"]=self.getDocu()
-                if self.fr != None        : dico["fr"]=six.text_type(self.fr,"iso-8859-1")
-                if self.ang != None       : dico["ang"]=self.ang
-                doc=ET.SubElement(moi,'doc')
-                doc.attrib=dico
-
-      if ((self.getSug() !=None) or  \
-          (hasattr(self,'defaut') and (self.defaut != None) and (self.defaut != 'None'))) :
-                # il faut ajouter des sug dans le catalogue
-                # les attributs sont  toujours du texte 
-                dico={}
-                if (self.defaut != None) and (self.defaut != 'None') :
-                    if isinstance(self.defaut,str ) : dico["defaut"]=six.text_type(self.defaut,"iso-8859-1")
-                    else :dico["defaut"]=str(self.defaut)
-                if self.getSug() !=None:
-                    if isinstance(self.getSug(),str ) : dico["sug"]=six.text_type(self.getSug(),"iso-8859-1")
-                    else :dico["sug"]=str(self.getSug())
-                
-                doc=ET.SubElement(moi,'ValeurDef')
-                doc.attrib=dico
-
-      dico={}
-      if hasattr(self,'into') and self.into!=None: dico['into']=str(self.into)
-      if hasattr(self,'val_max') and self.val_max != "**" : dico['max']=str(self.val_max)
-      if hasattr(self,'val_min') and self.val_min != "**" : dico['min']=str(self.val_min)
-      if dico != {} :
-           PV=ET.SubElement(moi,'PlageValeur')
-           PV.attrib=dico
-
-      dico={}
-      if hasattr(self,'max')  and self.max != 1 : dico['max']=str(self.max)
-      if hasattr(self,'min')  and self.min != 1 : dico['max']=str(self.min)
-      if dico != {} :
-           Card=ET.SubElement(moi,'Cardinalite')
-           Card.attrib=dico
-
-      dico={}
-      if hasattr(self,'reentrant') and self.reentrant not in ('f','n') : dico['reentrant']=str(self.reentrant)
-      if hasattr(self,'position') and self.position != "local": dico['position']=str(self.position)
-      if hasattr(self,'homo') and self.homo != 1 : dico['homogene']=str(self.homo)
-      if hasattr(self,'statut') : dico['statut']=str(self.statut)
-      if hasattr(self,'repetable') : dico['repetable']=str(self.repetable)
-      if dico != {} :
-           pos=ET.SubElement(moi,'situation')
-           pos.attrib=dico
-
-      if hasattr(self,'type') and self.type != ():
-         typeAttendu=ET.SubElement(moi,'typeAttendu')
-         l=[]
-         for t in self.type:
-             if type(t) == type : l.append(t.__name__)
-             else : l.append(t)
-         typeAttendu.text=str(l)
-
-      if hasattr(self,'sd_prod') and self.sd_prod != () and self.sd_prod !=None:
-         typeCree=ET.SubElement(moi,'typeCree')
-         typeCree.text=str(self.sd_prod.__name__) 
-      if hasattr(self,'op') and self.op !=None  : 
-         subRoutine=ET.SubElement(moi,'subRoutine')
-         subRoutine.text=str(self.op)
-
-      if hasattr(self,'proc') and self.proc != None : 
-         construction=ET.SubElement(moi,'Construction')
-         construction.text=self.proc.uri
-
-      for nomFils, fils in self.entites.items() :
-          fils.enregistreXML(moi,catalogueXml)
-      
-  def enregistreXMLStructure(self,root,catalogueXml):
-      import xml.etree.ElementTree as ET
-      import types
-      moi=ET.SubElement(root,str(self.__class__))
-
-      if hasattr(self,'into') and self.into!=None: 
-          INTO=ET.SubElement(moi,'into')
-          INTO.text='into'
-
-      dico={}
-      if hasattr(self,'val_max') and self.val_max != "**" : dico['max']=str(self.val_max)
-      if hasattr(self,'val_min') and self.val_min != "**" : dico['min']=str(self.val_min)
-      if dico != {} :
-           PV=ET.SubElement(moi,'maxOrMin')
-           PV.text='maxOrMin'
-
-      dico={}
-      if hasattr(self,'max')  and self.max != 1 : dico['max']=str(self.max)
-      if hasattr(self,'min')  and self.min != 1 : dico['max']=str(self.min)
-      if dico != {} :
-           Card=ET.SubElement(moi,'liste')
-           Card.text="liste"
-
-      dico={}
-      if hasattr(self,'statut') and self.statut=="f" :
-         statut=ET.SubElement(moi,'facultatif')
-         statut.text='facultatif'
-      if hasattr(self,'statut') and self.statut !="f" :
-         statut=ET.SubElement(moi,'obligatoire')
-         statut.text='obligatoire'
-
-      if hasattr(self,'type') and self.type != ():
-        try :
-           if 'Fichier' in self.type : ty=ET.SubElement(moi,'Fichier')
-           ty.text='type'
-        except :
-           try :
-             if 'Repertoire' in self.type : ty=ET.SubElement(moi,'Repertoire')
-             ty.text='type'
-           except :
-              for t in self.type:
-                if t == "I" : ty=ET.SubElement(moi,'typeEntier')
-                elif t == "R" : ty=ET.SubElement(moi,'typeReel')
-                elif t == "TXM" : ty=ET.SubElement(moi,'typeTXM')
-                else :
-                  try :
-                    ty=ET.SubElement(moi,t.__name__) 
-                  except :
-                    ty=ET.SubElement(moi,'autre') 
-                ty.text='type'
-
-      if hasattr(self,'sd_prod') and self.sd_prod != () and self.sd_prod !=None:
-         typeCree=ET.SubElement(moi,'typeCree')
-         typeCree.text='sd_prod'
-      if hasattr(self,'op') and self.op !=None  : 
-         subRoutine=ET.SubElement(moi,'subRoutine')
-         subRoutine.text='op'
-
-      if hasattr(self,'proc') and self.proc != None : 
-         construction=ET.SubElement(moi,'Construction')
-         construction.text='proc'
-
-      for nomFils, fils in self.entites.items() :
-          fils.enregistreXMLStructure(moi,catalogueXml)
-      
+#
+    def UQPossible(self):
+        return True
index 2629cc619963b58403186a65a6bdeced6245ea91..31172dd21759a51f4fe426c9414efe8cf7b861eb 100644 (file)
@@ -30,7 +30,7 @@ from Extensions.i18n import tr
 from Extensions.eficas_exception import EficasException
 
 # Objet re pour controler les identificateurs Python
-concept_re=re.compile(r'[a-zA-Z_]\w*$')
+conceptRE=re.compile(r'[a-zA-Z_]\w*$')
 
 # import rajoute suite a l'ajout de buildSd --> a resorber
 import traceback
@@ -47,450 +47,461 @@ from Extensions import commande_comm
 
 class ETAPE(I_MCCOMPO.MCCOMPO):
 
-   def ident(self):
-      return self.nom
-
-   def getSdname(self):
-      #print "SDNAME ",self.reuse,self.sd,self.sd.getName()
-      if CONTEXT.debug : 
-          print(("SDNAME ",  self.reuse,  self.sd,  self.sd.getName()))
-      sdname=''
-      if self.reuse != None:
-        sdname= self.reuse.getName()
-      else:
-        if self.sd:sdname=self.sd.getName()
-      if sdname.find('sansnom') != -1 or sdname.find('SD_') != -1:
-        # dans le cas ou la SD est 'sansnom' ou 'SD_' on retourne la chaine vide
-        return ''
-      return sdname
-
-   def isReentrant(self):
-      """ 
-          Indique si la commande est reentrante
-      """
-      return self.definition.reentrant == 'o' 
-
-   def initModif(self):
-      """
-         Met l'etat de l'etape a : modifie
-         Propage la modification au parent
-      """
-      # initModif doit etre appele avant de realiser une modification
-      # La validite devra etre recalculee apres cette modification
-      # mais dans l'appel a finModif pour preserver l'etat modified
-      # de tous les objets entre temps
-      #print "initModif",self,self.parent
-      self.state = 'modified'
-      if self.parent:
-        self.parent.initModif()
-
-   def finModif(self):
-      """
-          Methode appelee une fois qu'une modification a ete faite afin de 
-          declencher d'eventuels traitements post-modification
-          ex : INCLUDE et POURSUITE
-          Ne pas mettre de traitement qui risque d'induire des recursions (soit a peu pres rien)
-      """
-      CONNECTOR.Emit(self,"valid")
-      if self.parent:
-        self.parent.finModif()
-
-   def nommeSd(self,nom) :
-      """
-          Cette methode a pour fonction de donner un nom (nom) au concept 
-          produit par l'etape (self).
-            - si le concept n'existe pas, on essaye de le creer a condition que l'etape soit valide ET non reentrante)
-            - si il existe dea, on le renomme et on repercute les changements dans les autres etapes    
-          Les valeurs de retour sont :
-            - 0 si le nommage n'a pas pu etre menea son terme,
-            - 1 dans le cas contraire
-      """
-      # Le nom d'un concept doit etre un identificateur Python (toujours vrai ?)
-      if not concept_re.match(nom):
-         return 0, tr("Un nom de concept doit etre un identificateur Python")
-
-      # pour eviter que le nom du concept soit le nom de la classe --> souci pour utiliser le concept
-      if (nom == self.definition.nom) : return  (0, tr("un concept de type ")+ nom + tr(" ne peut pas se nommer ") +  nom)
-      if ( nom in dir(self.jdc.cata)) : return (0, nom + tr("est un not reserve"))
-      #if (not isinstance(nom,str)) : return (0, tr("Le nom ") + nom + tr(" est un mot reserve"))
-      #if len(nom) > 8 and self.jdc.definition.code == 'ASTER':
-      #  return 0, tr("Nom de concept trop long (maxi 8 caracteres)")
-
-      self.initModif()
-      #
-      # On verifie d'abord si les mots cles sont valides
-      #
-      if not self.isValid(sd='non') : return 0,"Nommage du concept refuse : l'operateur n'est pas valide"
-      #
-      # Cas particulier des operateurs obligatoirement reentrants
-      #
-      if self.definition.reentrant == 'o':
-        self.sd = self.reuse = self.jdc.getSdAvantEtape(nom,self)
-        if self.sd != None :
-          self.sdnom=self.sd.nom
-          self.finModif()
-          return 1, tr("Concept existant")
+    def ident(self):
+        return self.nom
+
+    def getSdname(self):
+        #print "SDNAME ",self.reuse,self.sd,self.sd.getName()
+        if CONTEXT.debug :
+            print(("SDNAME ",  self.reuse,  self.sd,  self.sd.getName()))
+        sdname=''
+        if self.reuse != None:
+            sdname= self.reuse.getName()
         else:
-          return 0, tr("Operateur reentrant mais concept non existant")
-      #
-      # Cas particulier des operateurs facultativement reentrants
-      #
-      old_reuse=None
-      if self.definition.reentrant == 'f' :
-        sd = self.jdc.getSdAvantEtape(nom,self)
-        if sd != None :
-          if isinstance(sd,self.getType_produit()) :
-             self.sd = self.reuse = sd
-             self.sdnom = sd.nom
-             self.finModif()
-             return 1, tr("Operateur reentrant et concept existant trouve")
-          else:
-             return 0, tr("Concept deja existant et de mauvais type")
-        else :
-          # il faut enlever le lien vers une SD existante car si on passe ici
-          # cela signifie que l'operateur n'est pas utilise en mode reentrant.
-          # Si on ne fait pas cela, on risque de modifier une SD produite par un autre operateur
-          if self.reuse :
-             old_reuse=self.reuse
-             self.sd = self.reuse = self.sdnom = None
-      #
-      # On est dans le cas ou l'operateur n'est pas reentrant ou est facultativement reentrant
-      # mais est utilise en mode non reentrant
-      #
-      if self.sd == None :
-          #Pas de concept produit preexistant
-          if self.parent.getSdAutourEtape(nom,self):
-            # Un concept de ce nom existe dans le voisinage de l'etape courante
-            # On retablit l'ancien concept reentrant s'il existait
-            if old_reuse:
-               self.sd=self.reuse=old_reuse
-               self.sdnom=old_reuse.nom
-            return 0, tr("Nommage du concept refuse : un concept de meme nom existe deja")
-          else:
-            # Il n'existe pas de concept de ce nom dans le voisinage de l'etape courante
-            # On peut donc creer le concept retourne
-            # Il est cree sans nom mais enregistre dans la liste des concepts existants
-            try:
-               self.getSdProd()
-               # Renommage du concept : Il suffit de changer son attribut nom pour le nommer
-               self.sd.nom = nom
-               self.sdnom=nom
-               self.parent.updateConceptAfterEtape(self,self.sd)
-               self.finModif()
-               return 1, tr("Nommage du concept effectue")
-            except:
-               return 0, tr("Nommage impossible %s", str(sys.exc_info()[1]))
-      else :
-          #Un concept produit preexiste
-          old_nom=self.sd.nom
-          if old_nom.find('sansnom') :
-            # Dans le cas ou old_nom == sansnom, isValid retourne 0 alors que ...
-            # par contre si le concept existe et qu'il s'appelle sansnom c'est que l'etape est valide
-            # on peut donc le nommer sans test prealable
-            if self.parent.getSdAutourEtape(nom,self):
-              return 0, tr("Nommage du concept refuse : un concept de meme nom existe deja")
+            if self.sd:sdname=self.sd.getName()
+        if sdname.find('sansnom') != -1 or sdname.find('SD_') != -1:
+            # dans le cas ou la SD est 'sansnom' ou 'SD_' on retourne la chaine vide
+            return ''
+        return sdname
+
+    def isReentrant(self):
+        """
+            Indique si la commande est reentrante
+        """
+        return self.definition.reentrant == 'o'
+
+    def initModif(self):
+        """
+           Met l'etat de l'etape a : modifie
+           Propage la modification au parent
+        """
+        # initModif doit etre appele avant de realiser une modification
+        # La validite devra etre recalculee apres cette modification
+        # mais dans l'appel a finModif pour preserver l'etat modified
+        # de tous les objets entre temps
+        #print "initModif",self,self.parent
+        self.state = 'modified'
+        if self.parent:
+            self.parent.initModif()
+
+    def finModif(self):
+        """
+            Methode appelee une fois qu'une modification a ete faite afin de
+            declencher d'eventuels traitements post-modification
+            ex : INCLUDE et POURSUITE
+            Ne pas mettre de traitement qui risque d'induire des recursions (soit a peu pres rien)
+        """
+        CONNECTOR.Emit(self,"valid")
+        if self.parent:
+            self.parent.finModif()
+
+    def nommeSd(self,nom) :
+        """
+            Cette methode a pour fonction de donner un nom (nom) au concept
+            produit par l'etape (self).
+              - si le concept n'existe pas, on essaye de le creer a condition que l'etape soit valide ET non reentrante)
+              - si il existe dea, on le renomme et on repercute les changements dans les autres etapes
+            Les valeurs de retour sont :
+              - 0 si le nommage n'a pas pu etre menea son terme,
+              - 1 dans le cas contraire
+        """
+        # Le nom d'un concept doit etre un identificateur Python (toujours vrai ou insuffisant?)
+        if not conceptRE.match(nom):
+            return 0, tr("Un nom de concept doit etre un identificateur Python")
+
+        # pour eviter que le nom du concept soit le nom de la classe --> souci pour utiliser le concept
+        if (nom == self.definition.nom) : return  (0, tr("un concept de type ")+ nom + tr(" ne peut pas se nommer ") +  nom)
+        if ( nom in dir(self.jdc.cata)) : return (0, nom + tr("est un not reserve"))
+        #if (not isinstance(nom,str)) : return (0, tr("Le nom ") + nom + tr(" est un mot reserve"))
+        #if len(nom) > 8 and self.jdc.definition.code == 'ASTER':
+        #  return 0, tr("Nom de concept trop long (maxi 8 caracteres)")
+
+        self.initModif()
+        #
+        # On verifie d'abord si les mots cles sont valides
+        #
+        if not self.isValid(sd='non') : return 0,"Nommage du concept refuse : l'operateur n'est pas valide"
+        #
+        # Cas particulier des operateurs obligatoirement reentrants
+        # plus de concept reentrant (pour Aster)
+        #
+        if self.definition.reentrant == 'o':
+            self.sd = self.reuse = self.jdc.getSdAvantEtape(nom,self)
+            if self.sd != None :
+                self.sdnom=self.sd.nom
+                self.finModif()
+                return 1, tr("Concept existant")
             else:
-              # Renommage du concept : Il suffit de changer son attribut nom pour le nommer
-              self.sd.nom=nom
-              self.sdnom=nom
-              self.parent.updateConceptAfterEtape(self,self.sd)
-              self.finModif()
-              return 1, tr("Nommage du concept effectue")
-          if self.isValid() :
-            # Normalement l appel de isValid a mis a jour le concept produit (son type)
-            # Il suffit de specifier l attribut nom de sd pour le nommer si le nom n est pas
-            # deja attribue
+                return 0, tr("Operateur reentrant mais concept non existant")
+        #
+        # Cas particulier des operateurs facultativement reentrants
+        #
+        old_reuse=None
+        if self.definition.reentrant == 'f' :
+            sd = self.jdc.getSdAvantEtape(nom,self)
+            if sd != None :
+                if isinstance(sd,self.getType_produit()) :
+                    self.sd = self.reuse = sd
+                    self.sdnom = sd.nom
+                    self.finModif()
+                    return 1, tr("Operateur reentrant et concept existant trouve")
+                else:
+                    return 0, tr("Concept deja existant et de mauvais type")
+            else :
+                # il faut enlever le lien vers une SD existante car si on passe ici
+                # cela signifie que l'operateur n'est pas utilise en mode reentrant.
+                # Si on ne fait pas cela, on risque de modifier une SD produite par un autre operateur
+                if self.reuse :
+                    old_reuse=self.reuse
+                    self.sd = self.reuse = self.sdnom = None
+        #
+        # On est dans le cas ou l'operateur n'est pas reentrant ou est facultativement reentrant
+        # mais est utilise en mode non reentrant
+        #
+        if self.sd == None :
+                #Pas de concept produit preexistant
             if self.parent.getSdAutourEtape(nom,self):
-              return 0, tr("Nommage du concept refuse : un concept de meme nom existe deja")
+                # Un concept de ce nom existe dans le voisinage de l'etape courante
+                # On retablit l'ancien concept reentrant s'il existait
+                if old_reuse:
+                    self.sd=self.reuse=old_reuse
+                    self.sdnom=old_reuse.nom
+                return 0, tr("Nommage du concept refuse : un concept de meme nom existe deja")
             else:
-              # Renommage du concept : Il suffit de changer son attribut nom pour le nommer
-              self.sd.nom=nom
-              self.sdnom=nom
-              self.parent.updateConceptAfterEtape(self,self.sd)
-              self.finModif()
-              return 1, tr("Nommage du concept effectue")
-          else:
-            # Normalement on ne devrait pas passer ici
-            return 0, 'Normalement on ne devrait pas passer ici'
-
-   def getSdprods(self,nom_sd):
-      """ 
-         Fonction : retourne le concept produit par l etape de nom nom_sd
-         s il existe sinon None
-      """
-      if self.sd:
-        if self.sd.nom == nom_sd:return self.sd
-
-   def active(self):
-      """
-          Rend l'etape courante active.
-          Il faut ajouter la sd si elle existe au contexte global du JDC
-          et a la liste des sd
-      """
-      if self.actif:return
-      self.actif = 1
-      self.initModif()
-      if self.sd :
-        try:
-          self.jdc.appendSdProd(self.sd)
-        except:
-          pass
-      CONNECTOR.Emit(self,"add",None)
-      CONNECTOR.Emit(self,"valid")
-
-   def inactive(self):
-      """
-          Rend l'etape courante inactive
-          Il faut supprimer la sd du contexte global du JDC
-          et de la liste des sd
-      """
-      self.actif = 0
-      self.initModif()
-      if self.sd :
-         self.jdc.delSdprod(self.sd)
-         self.jdc.deleteConceptAfterEtape(self,self.sd)
-      CONNECTOR.Emit(self,"supp",None)
-      CONNECTOR.Emit(self,"valid")
-
-   def controlSdprods(self,d):
-      """
-          Cette methode doit verifier que ses concepts produits ne sont pas
-          deja definis dans le contexte
-          Si c'est le cas, les concepts produits doivent etre supprimes
-      """
-      #print "controlSdprods",d.keys(),self.sd and self.sd.nom,self.nom
-      if self.sd:
-        if self.sd.nom in d :
-           # Le concept est deja defini
-           if self.reuse and self.reuse is d[self.sd.nom]:
-              # Le concept est reutilise : situation normale
-              pass
-           else:
-              # Redefinition du concept, on l'annule
-              #XXX on pourrait simplement annuler son nom pour conserver les objets
-              # l'utilisateur n'aurait alors qu'a renommer le concept (faisable??)
-              self.initModif()
-              sd=self.sd
-              self.sd=self.reuse=self.sdnom=None
-              #supprime les references a sd dans les etapes suivantes
-              self.parent.deleteConceptAfterEtape(self,sd)
-              self.finModif()
-
-   def supprimeSdprod(self,sd):
-      """
-         Supprime le concept produit sd s'il est produit par l'etape
-      """
-      if sd is not self.sd:return
-      if self.sd != None :
-         self.initModif()
-         self.parent.delSdprod(sd)
-         self.sd=None
-         self.finModif()
-         self.parent.deleteConcept(sd)
-
-   def supprimeSdProds(self):
-      """ 
-            Fonction:
-            Lors d'une destruction d'etape, detruit tous les concepts produits
-            Un operateur n a qu un concept produit 
-            Une procedure n'en a aucun
-            Une macro en a en general plus d'un
-      """
-      #print "supprimeSdProds",self
-      if self.reuse is self.sd :return
-      # l'etape n'est pas reentrante
-      # le concept retourne par l'etape est a supprimer car il etait 
-      # cree par l'etape
-      if self.sd != None :
-         self.parent.delSdprod(self.sd)
-         self.parent.deleteConcept(self.sd)
-
-   def close(self):
-      return
-
-   def updateConcept(self,sd):
-      for child in self.mcListe :
-          child.updateConcept(sd)
-
-   def deleteConcept(self,sd):
-      """ 
-          Inputs :
-             - sd=concept detruit
-          Fonction :
-          Mettre a jour les mots cles de l etape et eventuellement 
-          le concept produit si reuse
-          suite a la disparition du concept sd
-          Seuls les mots cles simples MCSIMP font un traitement autre 
-          que de transmettre aux fils
-      """
-      if self.reuse and self.reuse == sd:
-        self.sd=self.reuse=None
+                # Il n'existe pas de concept de ce nom dans le voisinage de l'etape courante
+                # On peut donc creer le concept retourne
+                # Il est cree sans nom mais enregistre dans la liste des concepts existants
+                try:
+                    self.getSdProd()
+                    # Renommage du concept : Il suffit de changer son attribut nom pour le nommer
+                    self.sd.nom = nom
+                    self.sdnom=nom
+                    self.parent.sdsDict[nom]=self.sd
+                    self.parent.updateConceptAfterEtape(self,self.sd)
+                    self.finModif()
+                    return 1, tr("Nommage du concept effectue")
+                except:
+                    return 0, tr("Nommage impossible %s", str(sys.exc_info()[1]))
+        else :
+            #Un concept produit preexiste
+            old_nom=self.sd.nom
+            if old_nom.find('sansnom') :
+                # Dans le cas ou old_nom == sansnom, isValid retourne 0 alors que ...
+                # par contre si le concept existe et qu'il s'appelle sansnom c'est que l'etape est valide
+                # on peut donc le nommer sans test prealable
+                if self.parent.getSdAutourEtape(nom,self):
+                    return 0, tr("Nommage du concept refuse : un concept de meme nom existe deja")
+                else:
+                    # Renommage du concept : Il suffit de changer son attribut nom pour le nommer
+                    self.sd.nom=nom
+                    self.sdnom=nom
+                    self.parent.updateConceptAfterEtape(self,self.sd)
+                    self.finModif()
+                    return 1, tr("Nommage du concept effectue")
+            if self.isValid() :
+                # Normalement l appel de isValid a mis a jour le concept produit (son type)
+                # Il suffit de specifier l attribut nom de sd pour le nommer si le nom n est pas
+                # deja attribue
+                if self.parent.getSdAutourEtape(nom,self):
+                    return 0, tr("Nommage du concept refuse : un concept de meme nom existe deja")
+                else:
+                    # Renommage du concept : Il suffit de changer son attribut nom pour le nommer
+                    self.sd.nom=nom
+                    self.sdnom=nom
+                    self.parent.updateConceptAfterEtape(self,self.sd)
+                    self.finModif()
+                    return 1, tr("Nommage du concept effectue")
+            else:
+                # Normalement on ne devrait pas passer ici
+                return 0, 'Normalement on ne devrait pas passer ici'
+
+    def getSdprods(self,nom_sd):
+        """
+           Fonction : retourne le concept produit par l etape de nom nom_sd
+           s il existe sinon None
+        """
+        if self.sd:
+            if self.sd.nom == nom_sd:return self.sd
+
+    def active(self):
+        """
+            Rend l'etape courante active.
+            Il faut ajouter la sd si elle existe au contexte global du JDC
+            et a la liste des sd
+        """
+        if self.actif:return
+        self.actif = 1
         self.initModif()
-      for child in self.mcListe :
-        child.deleteConcept(sd)
-
-   def replaceConcept(self,old_sd,sd):
-      """
-          Inputs :
-             - old_sd=concept remplace
-             - sd = nouveau concept 
-          Fonction :
-          Mettre a jour les mots cles de l etape et eventuellement
-          le concept produit si reuse
-          suite au remplacement  du concept old_sd
-      """
-      if self.reuse and self.reuse == old_sd:
-        self.sd=self.reuse=sd
+        if self.sd :
+            try:
+                self.jdc.appendSdProd(self.sd)
+            except:
+                pass
+        CONNECTOR.Emit(self,"add",None)
+        CONNECTOR.Emit(self,"valid")
+
+    def inactive(self):
+        """
+            Rend l'etape courante inactive
+            Il faut supprimer la sd du contexte global du JDC
+            et de la liste des sd
+        """
+        self.actif = 0
         self.initModif()
-      for child in self.mcListe :
-        child.replaceConcept(old_sd,sd)
-
-   def resetContext(self):
-      pass
-
-   def getNomsSdOperReentrant(self):
-      """ 
-          Retourne la liste des noms de concepts utilisesa l'interieur de la commande
-          qui sont du type que peut retourner cette commande 
-      """
-      liste_sd = self.getSd_utilisees()
-      l_noms = []
-      if type(self.definition.sd_prod) == types.FunctionType:
-        d=self.creeDictValeurs(self.mcListe)
-        try:
-          classe_sd_prod = self.definition.sd_prod(*(), **d)
-        except:
-          return []
-      else:
-        classe_sd_prod = self.definition.sd_prod
-      for sd in liste_sd :
-        if sd.__class__ is classe_sd_prod : l_noms.append(sd.nom)
-      l_noms.sort()
-      return l_noms
-
-   def getGenealogiePrecise(self):
-      return [self.nom]
-
-   def getGenealogie(self):
-      """ 
-          Retourne la liste des noms des ascendants de l'objet self
-          en s'arretant a la premiere ETAPE rencontree
-      """
-      return [self.nom]
-
-   def verifExistenceSd(self):
-     """
-        Verifie que les structures de donnees utilisees dans self existent bien dans le contexte
-        avant etape, sinon enleve la referea ces concepts
-     """
-     #print "verifExistenceSd",self.sd
-     for motcle in self.mcListe :
-         motcle.verifExistenceSd()
-
-   def updateMcGlobal(self):
-     """
-        Met a jour les mots cles globaux enregistres dans l'etape
-        et dans le jdc parent.
-        Une etape ne peut pas etre globale. Elle se contente de passer
-        la requete a ses fils apres avoir reinitialise le dictionnaire 
-        des mots cles globaux.
-     """
-     self.mc_globaux={}
-     I_MCCOMPO.MCCOMPO.updateMcGlobal(self)
-
-   def updateConditionBloc(self):
-     """
-        Realise l'update des blocs conditionnels fils de self
-     """
-     self._updateConditionBloc()
-
-   def getObjetCommentarise(self,format):
-      """
-          Cette methode retourne un objet commande commentarisee
-          representant la commande self
-      """
-      import generator
-      g=generator.plugins[format]()
-      texte_commande = g.gener(self,format='beautifie')
-      # Il faut enlever la premiere ligne vide de texte_commande que
-      # rajoute le generator
-      # on construit l'objet COMMANDE_COMM repesentatif de self mais non
-      # enregistre dans le jdc (pas ajoute dans jdc.etapes)
-      parent=self.parent
-      pos=self.parent.etapes.index(self)
-      # on ajoute une fin à la commande pour pouvoir en commenter 2
-      texte_commande+='\nFin Commentaire'
-      commande_comment = commande_comm.COMMANDE_COMM(texte=texte_commande,
-                                                     reg='non',
-                                                     parent=parent)
-      self.parent.suppEntite(self)
-      parent.addEntite(commande_comment,pos)
-
-      return commande_comment
-
-   def modified(self):
-      """Le contenu de l'etape (mots cles, ...) a ete modifie"""
-      if self.nom=="DETRUIRE":
-        self.parent.controlContextApres(self)
-
-
-     
+        if self.sd :
+            self.jdc.delSdprod(self.sd)
+            self.jdc.deleteConceptAfterEtape(self,self.sd)
+        CONNECTOR.Emit(self,"supp",None)
+        CONNECTOR.Emit(self,"valid")
+
+    def controlSdprods(self,d):
+        """
+            Cette methode doit verifier que ses concepts produits ne sont pas
+            deja definis dans le contexte
+            Si c'est le cas, les concepts produits doivent etre supprimes
+        """
+        #print ("controlSdprods etape",d.keys(),self.sd and self.sd.nom,self.nom)
+        if self.sd:
+            if self.sd.nom in d :
+                # Le concept est deja defini
+                if self.reuse and self.reuse is d[self.sd.nom]:
+                    # Le concept est reutilise : situation normale
+                    pass
+                else:
+                    # Redefinition du concept, on l'annule
+                    #XXX on pourrait simplement annuler son nom pour conserver les objets
+                    # l'utilisateur n'aurait alors qu'a renommer le concept (faisable??)
+                    self.initModif()
+                    sd=self.sd
+                    self.sd=self.reuse=self.sdnom=None
+                    #supprime les references a sd dans les etapes suivantes
+                    self.parent.deleteConceptAfterEtape(self,sd)
+                    self.finModif()
+
+    def supprimeSdprod(self,sd):
+        """
+           Supprime le concept produit sd s'il est produit par l'etape
+        """
+        if sd is not self.sd:return
+        if self.sd != None :
+            self.initModif()
+            self.parent.delSdprod(sd)
+            self.sd=None
+            self.finModif()
+            self.parent.deleteConcept(sd)
+
+    def supprimeSdProds(self):
+        """
+              Fonction:
+              Lors d'une destruction d'etape, detruit tous les concepts produits
+              Un operateur n a qu un concept produit
+              Une procedure n'en a aucun
+              Une macro en a en general plus d'un
+        """
+        self.deleteRef()
+        #print "supprimeSdProds",self
+        if self.reuse is self.sd :return
+        # l'etape n'est pas reentrante
+        # le concept retourne par l'etape est a supprimer car il etait
+        # cree par l'etape
+        if self.sd != None :
+            self.parent.delSdprod(self.sd)
+            self.parent.deleteConcept(self.sd)
+
+    def close(self):
+        return
+
+    def updateConcept(self,sd):
+        for child in self.mcListe :
+            child.updateConcept(sd)
+
+    def deleteConcept(self,sd):
+        """
+            Inputs :
+               - sd=concept detruit
+            Fonction :
+            Mettre a jour les mots cles de l etape et eventuellement
+            le concept produit si reuse
+            suite a la disparition du concept sd
+            Seuls les mots cles simples MCSIMP font un traitement autre
+            que de transmettre aux fils
+        """
+        if self.reuse and self.reuse == sd:
+            self.sd=self.reuse=None
+            self.initModif()
+        for child in self.mcListe :
+            child.deleteConcept(sd)
+
+    def replaceConcept(self,old_sd,sd):
+        """
+            Inputs :
+               - old_sd=concept remplace
+               - sd = nouveau concept
+            Fonction :
+            Mettre a jour les mots cles de l etape et eventuellement
+            le concept produit si reuse
+            suite au remplacement  du concept old_sd
+        """
+        if self.reuse and self.reuse == old_sd:
+            self.sd=self.reuse=sd
+            self.initModif()
+        for child in self.mcListe :
+            child.replaceConcept(old_sd,sd)
+
+    def resetContext(self):
+        pass
+
+    def getNomsSdOperReentrant(self):
+        """
+            Retourne la liste des noms de concepts utilisesa l'interieur de la commande
+            qui sont du type que peut retourner cette commande
+        """
+        liste_sd = self.getSd_utilisees()
+        l_noms = []
+        if type(self.definition.sd_prod) == types.FunctionType:
+            d=self.creeDictValeurs(self.mcListe)
+            try:
+                classe_sd_prod = self.definition.sd_prod(*(), **d)
+            except:
+                return []
+        else:
+            classe_sd_prod = self.definition.sd_prod
+        for sd in liste_sd :
+            if sd.__class__ is classe_sd_prod : l_noms.append(sd.nom)
+        l_noms.sort()
+        return l_noms
+
+    def getGenealogiePrecise(self):
+        return [self.nom]
+
+    def getNomDsXML(self):
+        # en xml on a un choice
+        index=0
+        for e in self.parent.etapes :
+            if e == self : break
+            if e.nom == self.nom : index+=1
+        nomDsXML = self.nom + "[" + str(index) + "]"
+        return nomDsXML
+
+
+    def getGenealogie(self):
+        """
+            Retourne la liste des noms des ascendants de l'objet self
+            en s'arretant a la premiere ETAPE rencontree
+        """
+        return [self.nom]
+
+    def verifExistenceSd(self):
+        """
+           Verifie que les structures de donnees utilisees dans self existent bien dans le contexte
+           avant etape, sinon enleve la referea ces concepts
+        """
+        #print "verifExistenceSd",self.sd
+        for motcle in self.mcListe :
+            motcle.verifExistenceSd()
+
+    def updateMcGlobal(self):
+        """
+           Met a jour les mots cles globaux enregistres dans l'etape
+           et dans le jdc parent.
+           Une etape ne peut pas etre globale. Elle se contente de passer
+           la requete a ses fils apres avoir reinitialise le dictionnaire
+           des mots cles globaux.
+        """
+        self.mc_globaux={}
+        I_MCCOMPO.MCCOMPO.updateMcGlobal(self)
+
+    def updateConditionBloc(self):
+        """
+           Realise l'update des blocs conditionnels fils de self
+        """
+        self._updateConditionBloc()
+
+    def getObjetCommentarise(self,format):
+        """
+            Cette methode retourne un objet commande commentarisee
+            representant la commande self
+        """
+        import generator
+        g=generator.plugins[format]()
+        texte_commande = g.gener(self,format='beautifie')
+        # Il faut enlever la premiere ligne vide de texte_commande que
+        # rajoute le generator
+        # on construit l'objet COMMANDE_COMM repesentatif de self mais non
+        # enregistre dans le jdc (pas ajoute dans jdc.etapes)
+        parent=self.parent
+        pos=self.parent.etapes.index(self)
+        # on ajoute une fin à la commande pour pouvoir en commenter 2
+        texte_commande+='\nFin Commentaire'
+        commande_comment = commande_comm.COMMANDE_COMM(texte=texte_commande,
+                                                       reg='non',
+                                                       parent=parent)
+        self.parent.suppEntite(self)
+        parent.addEntite(commande_comment,pos)
+
+        return commande_comment
+
+    def modified(self):
+        """Le contenu de l'etape (mots cles, ...) a ete modifie"""
+        if self.nom=="DETRUIRE":
+            self.parent.controlContextApres(self)
+
+
+
 #ATTENTION SURCHARGE: a garder en synchro ou a reintegrer dans le Noyau
-   def buildSd(self,nom):
-      """
-           Methode de Noyau surchargee pour poursuivre malgre tout
-           si une erreur se produit pendant la creation du concept produit
-      """
-      try:
-         sd=Noyau.N_ETAPE.ETAPE.buildSd(self,nom)
-      except AsException as e :
-         # Une erreur s'est produite lors de la construction du concept
-         # Comme on est dans EFICAS, on essaie de poursuivre quand meme
-         # Si on poursuit, on a le choix entre deux possibilites :
-         # 1. on annule la sd associee a self
-         # 2. on la conserve mais il faut la retourner
-         # En plus il faut rendre coherents sdnom et sd.nom
-         self.sd=None
-         self.sdnom=None
-         self.state="unchanged"
-         self.valid=0
-
-      return self.sd
+    def buildSd(self,nom):
+        """
+             Methode de Noyau surchargee pour poursuivre malgre tout
+             si une erreur se produit pendant la creation du concept produit
+        """
+        try:
+            sd=Noyau.N_ETAPE.ETAPE.buildSd(self,nom)
+        except AsException as e :
+            # Une erreur s'est produite lors de la construction du concept
+            # Comme on est dans EFICAS, on essaie de poursuivre quand meme
+            # Si on poursuit, on a le choix entre deux possibilites :
+            # 1. on annule la sd associee a self
+            # 2. on la conserve mais il faut la retourner
+            # En plus il faut rendre coherents sdnom et sd.nom
+            self.sd=None
+            self.sdnom=None
+            self.state="unchanged"
+            self.valid=0
+
+        return self.sd
 
 #ATTENTION SURCHARGE: cette methode doit etre gardee en synchronisation avec Noyau
-   def makeRegister(self):
-      """
-         Initialise les attributs jdc, id, niveau et realise les
-         enregistrements necessaires
-         Pour EFICAS, on tient compte des niveaux
-         Surcharge la methode makeRegister du package Noyau
-      """
-      if self.parent :
-         self.jdc = self.parent.getJdcRoot()
-         self.id=   self.parent.register(self)
-         self.UserError=self.jdc.UserError
-         if self.definition.niveau :
-            # La definition est dans un niveau. En plus on
-            # l'enregistre dans le niveau
-            self.nom_niveau_definition = self.definition.niveau.nom
-            self.niveau = self.parent.dict_niveaux[self.nom_niveau_definition]
-            self.niveau.register(self)
-         else:
-            # La definition est au niveau global
-            self.nom_niveau_definition = 'JDC'
-            self.niveau=self.parent
-      else:
-         self.jdc = self.parent =None
-         self.id=None
-         self.niveau=None
-         self.UserError="UserError"
-
-   def report(self):
-     cr= Validation.V_ETAPE.ETAPE.report(self)
-     #rafraichisst de la validite de l'etape (probleme avec l'ordre dans les macros : etape puis mots cles)
-     self.isValid()
-     if not self.isValid() and self.nom == "INCLUDE" :
-        self.cr.fatal(('Etape : %s ligne : %r  %s'),
-        self.nom, self.appel[0],  tr("\n   Include Invalide. \n  ne sera pas pris en compte"))
-     return cr
-
+    def makeRegister(self):
+        """
+           Initialise les attributs jdc, id, niveau et realise les
+           enregistrements necessaires
+           Pour EFICAS, on tient compte des niveaux
+           Surcharge la methode makeRegister du package Noyau
+        """
+        if self.parent :
+            self.jdc = self.parent.getJdcRoot()
+            self.id=   self.parent.register(self)
+            self.UserError=self.jdc.UserError
+            if self.definition.niveau :
+                # La definition est dans un niveau. En plus on
+                # l'enregistre dans le niveau
+                self.nom_niveau_definition = self.definition.niveau.nom
+                self.niveau = self.parent.dict_niveaux[self.nom_niveau_definition]
+                self.niveau.register(self)
+            else:
+                # La definition est au niveau global
+                self.nom_niveau_definition = 'JDC'
+                self.niveau=self.parent
+        else:
+            self.jdc = self.parent =None
+            self.id=None
+            self.niveau=None
+            self.UserError="UserError"
+
+    def report(self):
+        cr= Validation.V_ETAPE.ETAPE.report(self)
+        #rafraichisst de la validite de l'etape (probleme avec l'ordre dans les macros : etape puis mots cles)
+        self.isValid()
+        if not self.isValid() and self.nom == "INCLUDE" :
+            self.cr.fatal('Etape : {} ligne : {}  {}'.format(self.nom, self.appel[0],  tr("\n   Include Invalide. \n  ne sera pas pris en compte")))
+        return cr
index d99c9d9f1b24f8eeeda97f341895c1dd9312ae4f..358cf6061be51d93be01be0f252d5b968cc8e1c3 100644 (file)
 """
 
 class EVAL :
-   """
-   """
-   def __init__(self,str):
-      """
-         L'objet EVAL est initialise avec une chaine de caracteres (str)
-      """
-      self.valeur = str
-      self.val=None
+    """
+    """
+    def __init__(self,str):
+        """
+           L'objet EVAL est initialise avec une chaine de caracteres (str)
+        """
+        self.valeur = str
+        self.val=None
 
-   def __repr__(self):
-      return 'EVAL("""'+self.valeur+'""")'
-
-   def accept(self,visitor):
-      """
-         Cette methode permet de parcourir l'arborescence des objets
-         en utilisant le pattern VISITEUR
-      """
-      visitor.visitEVAL(self)
+    def __repr__(self):
+        return 'EVAL("""'+self.valeur+'""")'
 
+    def accept(self,visitor):
+        """
+           Cette methode permet de parcourir l'arborescence des objets
+           en utilisant le pattern VISITEUR
+        """
+        visitor.visitEVAL(self)
index 81d00322fc462a051233c3e1373a6f6e1aa2910e..8a5f443b4539bf9da12ad1872f0399167e342afa 100644 (file)
@@ -24,17 +24,16 @@ from __future__ import absolute_import
 from . import I_REGLE
 
 class EXCLUS(I_REGLE.REGLE):
-  def purgeListe(self,liste_a_purger,listeMcPresents):
-     regle_active=0
-     for mc_present in listeMcPresents:
-        if mc_present in self.mcs:
-           regle_active=1
-           break
-     if not regle_active : return liste_a_purger
-
-     for mc in self.mcs:
-        # Il ne faut pas purger un mot cle present. Sa cardinalite est verifiee par ailleurs
-        if mc in liste_a_purger and mc not in listeMcPresents:
-           liste_a_purger.remove(mc)
-     return liste_a_purger
+    def purgeListe(self,liste_a_purger,listeMcPresents):
+        regle_active=0
+        for mc_present in listeMcPresents:
+            if mc_present in self.mcs:
+                regle_active=1
+                break
+        if not regle_active : return liste_a_purger
 
+        for mc in self.mcs:
+            # Il ne faut pas purger un mot cle present. Sa cardinalite est verifiee par ailleurs
+            if mc in liste_a_purger and mc not in listeMcPresents:
+                liste_a_purger.remove(mc)
+        return liste_a_purger
index c5fd663449f2615ac57c2821fee02cd46d305a39..44754ae105e5d2eddc0868e39e402b2dd7b1954a 100644 (file)
@@ -22,22 +22,20 @@ import types
 
 class Fichier:
 
-   def __init__(self,filtre='All Files (*)',existence='NonExistant',repertoire=None):
-       self.filtre=filtre
-       self.existence=existence
-       self.repertoire=repertoire
+    def __init__(self,filtre='All Files (*)',existence='NonExistant',repertoire=None):
+        self.filtre=filtre
+        self.existence=existence
+        self.repertoire=repertoire
 
-   def __convert__(self,valeur):
-    # Attention ne verifie pas grand chose
-    # cela vaut-il la peine de refaire ce que Qt fait tres bien 
-    if type(valeur) != bytes  and type(valeur) != str:
-      return None
-    return valeur
+    def __convert__(self,valeur):
+        # Attention ne verifie pas grand chose
+        if type(valeur) != bytes  and type(valeur) != str:
+            return None
+        return valeur
 
 
-   def info(self):
-      return "Fichier de Type %s et %s" % (self.filtre,self.existence)
-
-      __repr__=info
-      __str__=info
+    def info(self):
+        return "Fichier de Type %s et %s" % (self.filtre,self.existence)
 
+        __repr__=info
+        __str__=info
index 2cd1596e255afe032977d06ea58cd9b50660514c..be2a3c3f0e850910eb077662c8d5f0d49578c440 100644 (file)
@@ -24,21 +24,21 @@ from Extensions.i18n import tr
 from Extensions.eficas_exception import EficasException
 
 class FONCTION(ASSD):
-  def __init__(self,etape=None,sd=None,reg='oui'):
-    if reg=='oui':
-      self.jdc.registerFonction(self)
+    def __init__(self,etape=None,sd=None,reg='oui'):
+        if reg=='oui':
+            self.jdc.registerFonction(self)
 
-  def getFormule(self):
-    """
-    Retourne une formule decrivant self sous la forme d'un tuple :
-    (nom,type_retourne,arguments,corps)
-    """
-    if hasattr(self.etape,'getFormule'):
-      # on est dans le cas d'une formule Aster
-      return self.etape.getFormule()
-    else:
-      # on est dans le cas d'une fonction
-      return (self.nom,'REEL','(REEL:x)','''bidon''')
+    def getFormule(self):
+        """
+        Retourne une formule decrivant self sous la forme d'un tuple :
+        (nom,type_retourne,arguments,corps)
+        """
+        if hasattr(self.etape,'getFormule'):
+            # on est dans le cas d'une formule Aster
+            return self.etape.getFormule()
+        else:
+            # on est dans le cas d'une fonction
+            return (self.nom,'REEL','(REEL:x)','''bidon''')
 
 # On ajoute la classe formule pour etre coherent avec la
 # modification de C Durand sur la gestion des formules dans le superviseur
@@ -46,27 +46,25 @@ class FONCTION(ASSD):
 class fonction(FONCTION) : pass
 
 from Extensions import param2
-class formule(FONCTION) : 
-   def __call__(self,*val):
-      if len(val) != len(self.nompar):
-         raise TypeError(" %s() takes exactly %d argument (%d given)" % (self.nom,len(self.nompar),len(val)))
-      return param2.Unop2(self.nom,self.realCall,val)
-
-   def realCall(self,*val):
-      if hasattr(self.parent,'contexte_fichier_init'):
-                        context=self.parent.contexte_fichier_init
-      else            : context={}
-      i=0
-      for param in self.nompar :
-         context[param]=val[i]
-         i=i+1
-      try :
-       res=eval(self.expression,self.jdc.const_context, context)
-      except :
-       print (75 * '!')
-       print ('! ' + "Erreur evaluation formule %s" % self.nom + 20*'!')
-       print (75 * '!')
-       raise EficasException
-      return res
-
+class formule(FONCTION) :
+    def __call__(self,*val):
+        if len(val) != len(self.nompar):
+            raise TypeError(" %s() takes exactly %d argument (%d given)" % (self.nom,len(self.nompar),len(val)))
+        return param2.Unop2(self.nom,self.realCall,val)
 
+    def realCall(self,*val):
+        if hasattr(self.parent,'contexte_fichier_init'):
+            context=self.parent.contexte_fichier_init
+        else            : context={}
+        i=0
+        for param in self.nompar :
+            context[param]=val[i]
+            i=i+1
+        try :
+            res=eval(self.expression,self.jdc.const_context, context)
+        except :
+            print (75 * '!')
+            print ('! ' + "Erreur evaluation formule %s" % self.nom + 20*'!')
+            print (75 * '!')
+            raise EficasException
+        return res
index bf52caa32c7522d3e56b989a7a2656e0dbfa251a..41ca29ac7a7e293fdbc71b23322004a726308026 100644 (file)
@@ -59,15 +59,15 @@ class FORM_ETAPE(MACRO_ETAPE):
             return None,None,None
         type_retourne="REEL"
         if len(self.mcListe) > 0:
-           child = self.mcListe[0] # child est un MCSIMP 
-           corps = child.getVal()
+            child = self.mcListe[0] # child est un MCSIMP
+            corps = child.getVal()
         else:
-           corps = None
+            corps = None
         if len(self.mcListe) > 1:
-           child = self.mcListe[1]
-           l_args= child.getVal()
+            child = self.mcListe[1]
+            l_args= child.getVal()
         else :
-           l_args=None
+            l_args=None
         return type_retourne,l_args,corps
 
     def getNom(self):
@@ -258,8 +258,8 @@ class FORM_ETAPE(MACRO_ETAPE):
         if sd:
             sd.nom = formule[0]
 
-    # bidouille PN 
-    # Il faut que formule soit constituee de 
+    # bidouille PN
+    # Il faut que formule soit constituee de
     # nom de la formule
     # type retourne
     # parametres
@@ -269,19 +269,19 @@ class FORM_ETAPE(MACRO_ETAPE):
         self.buildMc()
         self.mcListe=[]
         if len(formule) < 4 :
-           return 0
+            return 0
         arguments=formule[3]
         if arguments[0] == '(' :
-           arguments=arguments[1:]
+            arguments=arguments[1:]
         if arguments[-1] == ')' :
-           arguments=arguments[:-1]
+            arguments=arguments[:-1]
         self.arguments=tuple(arguments.split(','))
 
         mocles={"NOM_PARA":self.arguments}
         if formule[1] == "REEL":
-          mocles["VALE"]=formule[2]
+            mocles["VALE"]=formule[2]
         if formule[1] == "COMPLEXE":
-          mocles["VALE_C"]=formule[2]
+            mocles["VALE_C"]=formule[2]
 
         for k,v in self.definition.entites.items():
             if not k in  mocles : continue
@@ -289,7 +289,7 @@ class FORM_ETAPE(MACRO_ETAPE):
             child.valeur=mocles[k]
             child.state = 'modified'
             self.mcListe.append(child)
-           
+
         self.corps = formule[2]
         self.type_retourne = formule[1]
         sd = self.getSdProd()
@@ -326,18 +326,18 @@ class FORM_ETAPE(MACRO_ETAPE):
         return
 
     def deleteConcept(self,sd):
-        """ 
+        """
          Inputs :
            - sd=concept detruit
          Fonction :
          Mettre a jour les mots cles de l etape et eventuellement le concept produit si reuse
          suite a la disparition du concept sd
          Seuls les mots cles simples MCSIMP font un traitement autre que de transmettre aux fils,
-         sauf les objets FORM_ETAPE qui doivent verifier que le concept detruit n'est pas 
+         sauf les objets FORM_ETAPE qui doivent verifier que le concept detruit n'est pas
          utilise dans le corps de la fonction
         """
         self.initModif()
-         
+
     def replaceConcept(self,old_sd,sd):
         """
          Inputs :
@@ -348,4 +348,3 @@ class FORM_ETAPE(MACRO_ETAPE):
          utilise dans le corps de la fonction
         """
         self.initModif()
-
index b76404939da2f0c6ceeea8854327480682836ed0..e308f4d6a86a516ff923d41e26ed1177a5ac83ad 100644 (file)
@@ -45,952 +45,962 @@ except NameError:
     basestring = str
 
 class LASSD:
-   pass
+    pass
 
 class JDC(I_OBJECT.OBJECT):
-   """
-   """
-   def __init__(self):
-      self.editmode=0
-      self.etapes_niveaux=[]
-      self.niveau=self
-      self.params=[]
-      self.fonctions=[]
-      self._etape_context=None
-      self.recorded_units={}
-      self.old_recorded_units={}
-
-   def getIndex(self,objet):
-      """
-        Retourne la position d'objet dans la liste self
-      """
-      return self.etapes.index(objet)
-
-   def getSdAvantDuBonType(self,etape,types_permis):
-      """
-          Retourne la liste des concepts avant etape d'un type acceptable
-      """
-      d=self.getContexteAvant(etape)
-      
-      
-      l=[]
-      for k,v in d.items():
-        #if type(v) != types.InstanceType and not isinstance(v,object): continue
-        if  not isinstance(v,object): continue
-        # On considere que seul assd indique un type quelconque pas CO
-        elif self.assd in types_permis :
-           if v.etape.sdnom != "sansnom" : l.append(k)
-        elif self.estPermis(v,types_permis):
-           if v.etape.sdnom != "sansnom" : l.append(k)
-      l.sort()
-      return l
-
-   def getVariables(self,etape):
-      etapeStop=etape
-      l=[]
-      for etapeTraitee in self.etapes :
-          if etapeTraitee==etapeStop:
-             break
-          if etapeTraitee.nom == 'VARIABLE' :
-             variable=etapeTraitee.getMocle('ModelVariable')
-             if variable != None :
-                l.append(variable.nom)
-      return l
-
-   def getDistributions(self,etape):
-      etapeStop=etape
-      l=[]
-      for etapeTraitee in self.etapes :
-          if etapeTraitee==etapeStop: break
-          if etapeTraitee.nom == 'DISTRIBUTION' and etapeTraitee.sd !=None : l.append(etapeTraitee.sd.nom)
-      return l
-
-
-   #def set_Copules_recalcule_etat(self):
-   #   for etapeTraitee in self.etapes :
-   #       if etapeTraitee.nom == 'CORRELATION' :
-             #Matrix=etapeTraitee.getChild('Matrix')
-             #if Matrix !=None :
-   #             Correlation=etapeTraitee.getChild('CorrelationMatrix')
-   #             if Correlation !=None : Correlation.state='arecalculer'
-             #   Matrix.state='arecalculer'
-     
-   #def recalculeEtatCorrelation(self):
-   #   for etapeTraitee in self.etapes :
-   #       if etapeTraitee.nom == 'CORRELATION' :
-             #Matrix=etapeTraitee.getChild('Matrix')
-             #if Matrix !=None :
-   #             Matrix.state='arecalculer'
-   #             Correlation=Matrix.getChild('CorrelationMatrix')
-   #             if Correlation !=None : Correlation.state='arecalculer'
-   #                Correlation.isValid()
-   #             Matrix.isValid()
-   #             etapeTraitee.state='arecalculer'
-   #          if etapeTraitee.state=='arecalculer': etapeTraitee.isValid()
-                
-   def recalculeEtatCorrelation(self):
-      for etapeTraitee in self.etapes :
-          if etapeTraitee.nom == 'CORRELATION' :
-             Correlation=etapeTraitee.getChild('CorrelationMatrix')
-             if Correlation !=None : 
-                  Correlation.state='arecalculer'
-                  Correlation.isValid()
-             etapeTraitee.isValid()
-
-   def recalculeValiditeApresChangementGlobalJdc(self):
-        #print "je passe dans recalculeValiditeApresChangementGlobalJdc"
+    """
+    """
+    def __init__(self):
+        self.editmode=0
+        self.etapes_niveaux=[]
+        self.niveau=self
+        self.params=[]
+        self.fonctions=[]
+        self._etape_context=None
+        self.recorded_units={}
+        self.old_recorded_units={}
+
+
+    def getIndex(self,objet):
+        """
+          Retourne la position d'objet dans la liste self
+        """
+        return self.etapes.index(objet)
+
+    def getSdAvantDuBonType(self,etape,types_permis):
+        """
+            Retourne la liste des concepts avant etape d'un type acceptable
+        """
+        #print ('getSdAvantDuBonType   ', types_permis)
+        d=self.getContexteAvant(etape)
+
+        l=[]
+        for k,v in d.items():
+            #if type(v) != types.InstanceType and not isinstance(v,object): continue
+            if  not isinstance(v,object): continue
+            # On considere que seul assd indique un type quelconque pas CO
+            elif self.assd in types_permis :
+                if v.etape.sdnom != "sansnom" : l.append(k)
+            elif self.estPermis(v,types_permis):
+                if v.etape.sdnom != "sansnom" : l.append(k)
+        l.sort()
+        return l
+
+    def getSdCreeParObjet(self,classeAChercher):
+        l=[]
+        for v in list(self.sdsDict.keys()):
+            if (isinstance(self.sdsDict[v], classeAChercher)) :
+                l.append(self.sdsDict[v])
+        return l
+
+
+    def getVariables(self,etape):
+        etapeStop=etape
+        l=[]
+        for etapeTraitee in self.etapes :
+            if etapeTraitee==etapeStop:
+                break
+            if etapeTraitee.nom == 'VARIABLE' :
+                variable=etapeTraitee.getMocle('ModelVariable')
+                if variable != None :
+                    l.append(variable.nom)
+        return l
+
+    def getDistributions(self,etape):
+        etapeStop=etape
+        l=[]
+        for etapeTraitee in self.etapes :
+            if etapeTraitee==etapeStop: break
+            if etapeTraitee.nom == 'DISTRIBUTION' and etapeTraitee.sd !=None : l.append(etapeTraitee.sd.nom)
+        return l
+
+
+    #def set_Copules_recalcule_etat(self):
+    #   for etapeTraitee in self.etapes :
+    #       if etapeTraitee.nom == 'CORRELATION' :
+                #Matrix=etapeTraitee.getChild('Matrix')
+                #if Matrix !=None :
+    #             Correlation=etapeTraitee.getChild('CorrelationMatrix')
+    #             if Correlation !=None : Correlation.state='arecalculer'
+                #   Matrix.state='arecalculer'
+
+    #def recalculeEtatCorrelation(self):
+    #   for etapeTraitee in self.etapes :
+    #       if etapeTraitee.nom == 'CORRELATION' :
+                #Matrix=etapeTraitee.getChild('Matrix')
+                #if Matrix !=None :
+    #             Matrix.state='arecalculer'
+    #             Correlation=Matrix.getChild('CorrelationMatrix')
+    #             if Correlation !=None : Correlation.state='arecalculer'
+    #                Correlation.isValid()
+    #             Matrix.isValid()
+    #             etapeTraitee.state='arecalculer'
+    #          if etapeTraitee.state=='arecalculer': etapeTraitee.isValid()
+
+    def recalculeEtatCorrelation(self):
+        for etapeTraitee in self.etapes :
+            if etapeTraitee.nom == 'CORRELATION' :
+                Correlation=etapeTraitee.getChild('CorrelationMatrix')
+                if Correlation !=None :
+                    Correlation.state='arecalculer'
+                    Correlation.isValid()
+                etapeTraitee.isValid()
+
+    def recalculeValiditeApresChangementGlobalJdc(self, motClef):
+            #print ("je passe dans recalculeValiditeApresChangementGlobalJdc")
         try :
-          liste=self.getJdcRoot().cata.liste_condition
+            liste=self.getJdcRoot().cata.dict_condition[motClef.nom]
         except :
-          liste=()
+            liste=()
         for etapeTraitee in self.etapes :
-           if etapeTraitee.nom not in liste: continue
-           self.forceRecalculBloc(etapeTraitee)
-           etapeTraitee.state='arecalculer'
-           etapeTraitee.isValid()
-
-        
-   def forceRecalculBloc(self,objet):
-       # Attention : certains objets deviennent None quand on recalcule 
-       # les conditions d existence des blocs
-       if objet != None:  objet.state='arecalculer'
-       if hasattr(objet,'listeMcPresents'):
-          for childNom in objet.listeMcPresents():
-              child=objet.getChild(childNom)
-              if hasattr(objet,'_updateConditionBloc'):objet._updateConditionBloc()
-              self.forceRecalculBloc(child)
-       
-   
-   def getSdAvantDuBonTypePourTypeDeBase(self,etape,type):
-      """
-          Retourne la liste des concepts avant etape d'1 type de base acceptable
-          Attention different de la routine precedente : 1 seul type passe en parametre
-          Teste sur issubclass et par sur le type permis
-      """
-      d=self.getContexteAvant(etape)
-      l=[]
-      try :
-         typeverif=self.cata.__dict__[type]
-      except :
-         return l
-      for k,v in d.items():
-        if issubclass(v.__class__,typeverif): 
-           l.append(k)
-      l.sort()
-      return l
-
-   def chercheListAvant(self,etape,valeur):
-       d=self.getContexteAvant(etape)
-       for k,v in d.items():
-          if issubclass(v.__class__,LASSD):
-             if k == valeur :
-                return k
-        # Attention pour enlever les . a la fin des pretendus reels
-             if k == valeur[0:-1] :
-                return v
-       return None
-
-   def estPermis(self,v,types_permis):
-      for type_ok in types_permis:
-          if type_ok in ('R','I','C','TXM') and v in self.params : 
-             return 1
-          elif type_ok == 'R' and v.__class__.__name__ == 'reel' : 
-             return 1
-          elif type_ok == 'I' and v.__class__.__name__ == 'entier' : 
-             return 1
-          elif type_ok == 'C' and v.__class__.__name__ == 'complexe' : 
-             return 1
-          elif type_ok == 'TXM' and v.__class__.__name__ == 'chaine' : 
-             return 1
-          elif type(type_ok) != type and not isinstance(type_ok,type): 
-             continue
-          elif v.__class__ == type_ok or issubclass(v.__class__,type_ok):
-             return 1
-      return 0
-
-   def addEntite(self,name,pos):
-      """
-          Ajoute une entite :
-          Si name est le nom d une commande ou un commentaire ajoute 
-          une etape au JDC
-          Sinon remonte une erreur
-      """
-      self.initModif()
-      self.editmode=1
-      if name == "COMMENTAIRE" :
-        from Extensions import commentaire
-        # ajout d'un commentaire
-        self.setCurrentStep()
-        ind = 1
-        for child in self.etapes :
-          if isinstance(child,commentaire.COMMENTAIRE):
-            ind = ind+1
-        objet = commentaire.COMMENTAIRE('',parent=self)
-        objet.nom = "_comm_"+repr(ind)
-        if pos == None : pos = 0
-        self.etapes.insert(pos,objet)
-        self.resetContext()
-        self.editmode=0
-        self.activeEtapes()
-        CONNECTOR.Emit(self,"add",objet)
-        self.finModif()
-        return objet
-      elif name == "PARAMETRE":
-        # ajout d'un parametre
-        self.setCurrentStep()
-        nom_param = '_param_'+str(len(self.params)+1)
-        objet = parametre.PARAMETRE(nom=nom_param)
-        if pos == None : pos = 0
-        self.etapes.insert(pos,objet)
+            if etapeTraitee.nom not in liste: continue
+            #self.forceRecalculBloc(etapeTraitee)
+            etapeTraitee.state='arecalculer'
+            etapeTraitee.deepUpdateConditionBloc()
+            etapeTraitee.isValid()
+            #print (etapeTraitee.nom ,etapeTraitee.isValid())
+
+    def activeBlocsGlobaux(self):
+        for nomMotClef in self.mc_globaux :
+            motClef=self.mc_globaux[nomMotClef]
+            if nomMotClef in list(self.cata.dict_condition.keys()):
+                liste=self.cata.dict_condition[nomMotClef]
+            else : liste=()
+            for etapeTraitee in self.etapes :
+                if etapeTraitee.nom not in liste: continue
+                etapeTraitee.state='arecalculer'
+                etapeTraitee.deepUpdateConditionBlocApresCreation()
+                etapeTraitee.isValid()
+
+
+
+    #def forceRecalculBloc(self,objet):
+        # Attention : certains objets deviennent None quand on recalcule
+        # les conditions d existence des blocs
+    #    if objet != None:  objet.state='arecalculer'
+    #    if hasattr(objet,'listeMcPresents'):
+    #       for childNom in objet.listeMcPresents():
+    #           child=objet.getChild(childNom)
+    #           if hasattr(objet,'_updateConditionBloc'):objet._updateConditionBloc()
+    #           self.forceRecalculBloc(child)
+
+
+    def getSdAvantDuBonTypePourTypeDeBase(self,etape,type):
+        """
+            Retourne la liste des concepts avant etape d'1 type de base acceptable
+            Attention different de la routine precedente : 1 seul type passe en parametre
+            Teste sur issubclass et par sur le type permis
+        """
+        d=self.getContexteAvant(etape)
+        l=[]
+        try :
+            typeverif=self.cata.__dict__[type]
+        except :
+            return l
+        for k,v in d.items():
+            if issubclass(v.__class__,typeverif):
+                l.append(k)
+        l.sort()
+        return l
+
+    def chercheListAvant(self,etape,valeur):
+        d=self.getContexteAvant(etape)
+        for k,v in d.items():
+            if issubclass(v.__class__,LASSD):
+                if k == valeur :
+                    return k
+            # Attention pour enlever les . a la fin des pretendus reels
+                if k == valeur[0:-1] :
+                    return v
+        return None
+
+    def estPermis(self,v,types_permis):
+        for type_ok in types_permis:
+            if type_ok in ('R','I','C','TXM') and v in self.params :
+                return 1
+            elif type_ok == 'R' and v.__class__.__name__ == 'reel' :
+                return 1
+            elif type_ok == 'I' and v.__class__.__name__ == 'entier' :
+                return 1
+            elif type_ok == 'C' and v.__class__.__name__ == 'complexe' :
+                return 1
+            elif type_ok == 'TXM' and v.__class__.__name__ == 'chaine' :
+                return 1
+            elif type(type_ok) != type and not isinstance(type_ok,type):
+                continue
+            elif v.__class__ == type_ok or issubclass(v.__class__,type_ok):
+                return 1
+        return 0
+
+    def addEntite(self,name,pos):
+        """
+            Ajoute une entite :
+            Si name est le nom d une commande ou un commentaire ajoute
+            une etape au JDC
+            Sinon remonte une erreur
+        """
+        self.initModif()
+        self.editmode=1
+        if name == "COMMENTAIRE" :
+            from Extensions import commentaire
+            # ajout d'un commentaire
+            self.setCurrentStep()
+            ind = 1
+            for child in self.etapes :
+                if isinstance(child,commentaire.COMMENTAIRE):
+                    ind = ind+1
+            objet = commentaire.COMMENTAIRE('',parent=self)
+            objet.nom = "_comm_"+repr(ind)
+            if pos == None : pos = 0
+            self.etapes.insert(pos,objet)
+            self.resetContext()
+            self.editmode=0
+            self.activeEtapes()
+            CONNECTOR.Emit(self,"add",objet)
+            self.finModif()
+            return objet
+        elif name == "PARAMETRE":
+            # ajout d'un parametre
+            self.setCurrentStep()
+            nom_param = '_param_'+str(len(self.params)+1)
+            objet = parametre.PARAMETRE(nom=nom_param)
+            if pos == None : pos = 0
+            self.etapes.insert(pos,objet)
+            self.resetContext()
+            self.editmode=0
+            self.activeEtapes()
+            CONNECTOR.Emit(self,"add",objet)
+            self.finModif()
+            return objet
+        elif name == "PARAMETRE_EVAL":
+            # ajout d'un parametre EVAL
+            self.setCurrentStep()
+            nom_param = '_param_'+str(len(self.params)+1)
+            objet = parametre_eval.PARAMETRE_EVAL(nom=nom_param)
+            if pos == None : pos = 0
+            self.etapes.insert(pos,objet)
+            self.resetContext()
+            self.editmode=0
+            self.activeEtapes()
+            CONNECTOR.Emit(self,"add",objet)
+            self.finModif()
+            return objet
+        elif not( isinstance(name, basestring)):
+        #elif type(name)==types.InstanceType:
+        #elif isinstance(name,object):
+            # on est dans le cas ou on veut ajouter une commande deja
+            # existante (par copie donc)
+            # on est donc necessairement en mode editeur ...
+            objet = name
+            # Il ne faut pas oublier de reaffecter le parent d'obj (si copie)
+            from Extensions import commentaire
+            if not( isinstance (objet,commentaire.COMMENTAIRE)):
+                objet.reparent(self)
+            self.setCurrentStep()
+            if isinstance(objet,ETAPE):
+                if objet.nom_niveau_definition == 'JDC':
+                    # l'objet depend directement du JDC
+                    objet.niveau = self
+                else:
+                    # l'etape depend d'un niveau et non directement du JDC :
+                    # il faut l'enregistrer dans le niveau de parent
+                    objet.parent.dict_niveaux[objet.nom_niveau_definition].register(objet)
+                    objet.niveau = objet.parent.dict_niveaux[objet.nom_niveau_definition]
+            self.etapes.insert(pos,objet)
+            self.resetContext()
+            # il faut verifier que les concepts utilises par objet existent bien
+            # a ce niveau d'arborescence
+            objet.verifExistenceSd()
+            objet.updateMcGlobal()
+            self.editmode=0
+            self.activeEtapes()
+            CONNECTOR.Emit(self,"add",objet)
+            self.finModif()
+            return objet
+        else :
+            # On veut ajouter une nouvelle commande
+            try:
+                self.setCurrentStep()
+                cmd=self.getCmd(name)
+                # L'appel a make_objet n'a pas pour effet d'enregistrer l'etape
+                # aupres du step courant car editmode vaut 1
+                # Par contre elle a le bon parent grace a setCurrentStep
+                e=cmd.make_objet()
+                if pos == None : pos = 0
+                self.etapes.insert(pos,e)
+                self.resetCurrentStep()
+                self.resetContext()
+                self.editmode=0
+                self.activeEtapes()
+                self.enregistreEtapePyxb(e,pos)
+                # PN fait ds self.activeEtapes
+                CONNECTOR.Emit(self,"add",e)
+                self.finModif()
+                return e
+            except AsException as e:
+                traceback.print_exc()
+                self.resetCurrentStep()
+                self.editmode=0
+                raise AsException(tr("Impossible d'ajouter la commande")+name + '\n')
+            except:
+            #else :
+                traceback.print_exc()
+                self.resetCurrentStep()
+                self.editmode=0
+                raise AsException(tr("Impossible d ajouter la commande")+name)
+
+    def close(self):
+        #print "JDC.close",self
+        for etape in self.etapes:
+            if hasattr(etape,"close"):etape.close()
+        CONNECTOR.Emit(self,"close")
+
+    def setCurrentStep(self):
+        CONTEXT.unsetCurrentStep()
+        CONTEXT.setCurrentStep(self)
+
+    def resetCurrentStep(self):
+        CONTEXT.unsetCurrentStep()
+
+    def listeMcPresents(self):
+        return []
+
+    def getSdAvantEtape(self,nom_sd,etape):
+        return self.getContexteAvant(etape).get(nom_sd,None)
+
+    def getSdApresEtapeAvecDetruire(self,nom_sd,sd,etape,avec='non'):
+        """
+             Cette methode retourne la SD sd de nom nom_sd qui est eventuellement
+             definie apres etape en tenant compte des concepts detruits
+             Si avec vaut 'non' exclut etape de la recherche
+        """
+        #print "JDC.getSdApresEtapeAvecDetruire",nom_sd,sd
+        ietap=self.etapes.index(etape)
+        if avec == 'non':ietap=ietap+1
+        d={nom_sd:sd}
+        for e in self.etapes[ietap:]:
+            if e.isActif():
+                e.updateContext(d)
+                autre_sd=d.get(nom_sd,None)
+                if autre_sd is None:
+                # Le concept a ete detruit. On interrompt la recherche car il n'y a
+                # pas eu de redefinition du concept (il n'y a pas de conflit potentiel).
+                    return None
+                if autre_sd is not sd :
+                    # L'etape produit un concept different de meme nom. La situation n'est
+                    # pas saine (sauf peut etre si reuse ???)
+                    if hasattr(e,'reuse') and e.reuse == autre_sd:
+                        # Le concept etant reutilise, on interrompt la recherche.
+                        # On considere qu'il n'y a pas de nouveau concept defini
+                        # meme si dans les etapes suivantes le concept est detruit
+                        # et un concept de meme nom cree.
+                        # AVERIFIER : avec reuse le concept devrait etre le meme
+                        # le passage par ici est tres improbable
+                        return None
+                    else:
+                        # Le concept est produit par l'etape (Il y a conflit potentiel).
+                        # Le concept est redefini par une etape posterieure.
+                        return autre_sd
+        # Pas de destruction du concept ni de redefinition. On retourne le
+        # concept initial
+        return sd
+
+    def getSdApresEtape(self,nom_sd,etape,avec='non'):
+        """
+             Cette methode retourne la SD de nom nom_sd qui est eventuellement
+             definie apres etape
+             Si avec vaut 'non' exclut etape de la recherche
+        """
+        ietap=self.etapes.index(etape)
+        if avec == 'non':ietap=ietap+1
+        for e in self.etapes[ietap:]:
+            sd=e.getSdprods(nom_sd)
+            if sd:
+                if hasattr(e,'reuse'):
+                    if e.reuse != sd:
+                        return sd
+        return None
+
+    def getSdAutourEtape(self,nom_sd,etape,avec='non'):
+        """
+             Fonction: retourne la SD de nom nom_sd qui est eventuellement
+             definie avant ou apres etape
+             Permet de verifier si un concept de meme nom existe dans le perimetre
+             d'une etape
+             Si avec vaut 'non' exclut etape de la recherche
+        """
+        sd=self.getSdAvantEtape(nom_sd,etape)
+        if sd:return sd
+        sd=self.getSdApresEtape(nom_sd,etape,avec)
+        if sd:return sd
+        # Pour tenir compte des UserASSD # et des UserASSDMultiple a affiner
+        if nom_sd in self.sdsDict.keys() :
+            sd=self.sdsDict[nom_sd]
+            return sd
+
+    def getContexte_apres(self,etape):
+        """
+           Retourne le dictionnaire des concepts connus apres etape
+           On tient compte des commandes qui modifient le contexte
+           comme DETRUIRE ou les macros
+           Si etape == None, on retourne le contexte en fin de JDC
+        """
+        if not etape: return self.getContexteAvant(etape)
+
+        d=self.getContexteAvant(etape)
+        if etape.isActif():etape.updateContext(d)
+        self.index_etape_courante=self.index_etape_courante+1
+        return d
+
+    def activeEtapes(self):
+        """
+        """
+        for etape in self.etapes:
+            etape.active()
+
+    def deplaceEntite(self,indexNoeudACopier,indexNoeudOuColler,pos):
+        """
+            Pour le cut
+        """
+        if indexNoeudACopier==indexNoeudOuColler:return
+        etapeACopier=self.etapes[indexNoeudACopier]
+        try :
+            sd=self.etapes[indexNoeudACopier].sd
+        except :
+            sd=None
+        if pos=='before' and indexNoeudOuColler==0 :
+            self.etapes2=[etapeACopier,]+self.etapes[0:indexNoeudACopier]+self.etapes[indexNoeudACopier+1:]
+        elif indexNoeudACopier < indexNoeudOuColler :
+            self.etapes2=self.etapes[0:indexNoeudACopier]+self.etapes[indexNoeudACopier+1:indexNoeudOuColler+1]+[etapeACopier,]+self.etapes[indexNoeudOuColler+1:]
+        else:
+            self.etapes2=self.etapes[0:indexNoeudOuColler+1]+[etapeACopier,]+self.etapes[indexNoeudOuColler+1:indexNoeudACopier]+self.etapes[indexNoeudACopier+1:]
+        self.etapes=self.etapes2
+        if indexNoeudACopier < indexNoeudOuColler :
+            self.deleteConceptEntreEtapes(indexNoeudACopier,indexNoeudOuColler,sd)
         self.resetContext()
-        self.editmode=0
+        for e in self.etapes :
+            e.state = 'modified'
+        self.controlContextApres(None)
+        return 1
+
+
+    def suppEntite(self,etape) :
+        """
+            Cette methode a pour fonction de supprimer une etape dans
+            un jeu de commandes
+            Retourne 1 si la suppression a pu etre effectuee,
+            Retourne 0 dans le cas contraire
+        """
+        #PN correction de bugs
+        #print ('suppEntite', etape.nom)
+        if etape not in self.etapes: return 0
+
+        self.initModif()
+        index_etape=self.etapes.index(etape)
+
+        #etape.delObjPyxb()
+        self.etapes.remove(etape)
+
+        if etape.niveau is not self:
+            # Dans ce cas l'etape est enregistree dans un niveau
+            # Il faut la desenregistrer
+            etape.niveau.unregister(etape)
+
+        etape.supprimeSdProds()
+        etape.supprimeUserAssd()
+        etape.close()
+        etape.supprime()
         self.activeEtapes()
-        CONNECTOR.Emit(self,"add",objet)
-        self.finModif()
-        return objet
-      elif name == "PARAMETRE_EVAL":
-        # ajout d'un parametre EVAL
-        self.setCurrentStep()
-        nom_param = '_param_'+str(len(self.params)+1)
-        objet = parametre_eval.PARAMETRE_EVAL(nom=nom_param)
-        if pos == None : pos = 0
-        self.etapes.insert(pos,objet)
+
+        # Apres suppression de l'etape il faut controler que les etapes
+        # suivantes ne produisent pas des concepts DETRUITS dans op_init de etape
+        if index_etape > 0:
+            index_etape=index_etape-1
+            etape=self.etapes[index_etape]
+        else:
+            etape=None
+        self.controlContextApres(etape)
+
         self.resetContext()
-        self.editmode=0
-        self.activeEtapes()
-        CONNECTOR.Emit(self,"add",objet)
+        CONNECTOR.Emit(self,"supp",etape)
         self.finModif()
-        return objet
-      elif not( isinstance(name, basestring)):
-      #elif type(name)==types.InstanceType:
-      #elif isinstance(name,object):
-        # on est dans le cas ou on veut ajouter une commande deja 
-        # existante (par copie donc)
-        # on est donc necessairement en mode editeur ...
-        objet = name
-        # Il ne faut pas oublier de reaffecter le parent d'obj (si copie)
-        from Extensions import commentaire
-        if not( isinstance (objet,commentaire.COMMENTAIRE)):
-           objet.reparent(self)
-        self.setCurrentStep()
-        if isinstance(objet,ETAPE):
-          if objet.nom_niveau_definition == 'JDC':
-            # l'objet depend directement du JDC
-            objet.niveau = self
-          else:
-            # l'etape depend d'un niveau et non directement du JDC :
-            # il faut l'enregistrer dans le niveau de parent
-            objet.parent.dict_niveaux[objet.nom_niveau_definition].register(objet)
-            objet.niveau = objet.parent.dict_niveaux[objet.nom_niveau_definition]
-        self.etapes.insert(pos,objet)
-        self.resetContext()
-        # il faut verifier que les concepts utilises par objet existent bien
-        # a ce niveau d'arborescence
-        objet.verifExistenceSd()
-        objet.updateMcGlobal()
-        self.editmode=0
+        return 1
+
+    def controlContextApres(self,etape):
+        """
+           Cette methode verifie que les etapes apres l'etape etape
+           ont bien des concepts produits acceptables (pas de conflit de
+           nom principalement)
+           Si des concepts produits ne sont pas acceptables ils sont supprimes.
+           Effectue les verifications sur les etapes du jdc mais aussi sur les
+           jdc parents s'ils existent.
+        """
+        #print ("controlContextApres",self,etape)
+        #Regularise les etapes du jdc apres l'etape etape
+        self.controlJdcContextApres(etape)
+
+    def controlJdcContextApres(self,etape):
+        """
+            Methode semblable a controlContextApres mais ne travaille
+            que sur les etapes et sous etapes du jdc
+        """
+        #print ("controlJdcContextApres",self,etape)
+        if etape is None:
+            # on demarre de la premiere etape
+            index_etape=0
+        else:
+            index_etape=self.etapes.index(etape)+1
+
+        try:
+            etape=self.etapes[index_etape]
+        except:
+            #derniere etape du jdc : rien a faire
+            return
+
+        context=self.getContexteAvant(etape)
+        for e in self.etapes[index_etape:]:
+            e.controlSdprods(context)
+            e.updateContext(context)
+
+    def analyse(self):
+        self.compile()
+        self.execCompile()
+        if not self.cr.estvide():return
         self.activeEtapes()
-        CONNECTOR.Emit(self,"add",objet)
+        if self.mc_globaux != {} : self.activeBlocsGlobaux()
+
+    def analyseXML(self):
+        #print ('analyseXML')
+        #print (self.procedure)
+        self.setCurrentContext()
+        self.analyseFromXML()
+
+    def registerParametre(self,param):
+        """
+            Cette methode sert a ajouter un parametre dans la liste des parametres
+        """
+        self.params.append(param)
+
+    def registerFonction(self,fonction):
+        """
+            Cette methode sert a ajouter une fonction dans la liste des fonctions
+        """
+        self.fonctions.append(fonction)
+
+    def deleteParam(self,param):
+        """
+            Supprime le parametre param de la liste des parametres
+            et du contexte gobal
+        """
+        if param in self.params : self.params.remove(param)
+        if param.nom in self.g_context : del self.g_context[param.nom]
+
+    def getParametresFonctionsAvantEtape(self,etape):
+        """
+            Retourne deux elements :
+            - une liste contenant les noms des parametres (constantes ou EVAL)
+              definis avant etape
+            - une liste contenant les formules definies avant etape
+        """
+        l_constantes = []
+        l_fonctions = []
+        # on recupere le contexte avant etape
+        # on ne peut mettre dans les deux listes que des elements de ce contexte
+        d=self.getContexteAvant(etape)
+        # construction de l_constantes
+        for param in self.params:
+            nom = param.nom
+            if not nom : continue
+            if nom in d: l_constantes.append(nom)
+        # construction de l_fonctions
+        for form in self.fonctions:
+            nom = form.nom
+            if not nom : continue
+            if nom in d: l_fonctions.append(form.getFormule())
+
+        # on ajoute les concepts produits par DEFI_VALEUR
+        # XXX On pourrait peut etre faire plutot le test sur le type
+        # de concept : entier, reel, complexe, etc.
+        for k,v in d.items():
+            if hasattr(v,'etape') and v.etape.nom in ('DEFI_VALEUR',):
+                l_constantes.append(k)
+
+        # on retourne les deux listes
+        return l_constantes,l_fonctions
+
+    def getNbEtapesAvant(self,niveau):
+        """
+            Retourne le nombre d etapes avant le debut de niveau
+        """
+        nb=0
+        for niv in self.etapes_niveaux:
+            if niv == niveau:break
+            nb=nb+len(niv.etapes)
+        return nb
+
+    def initModif(self):
+        """
+        Methode appelee au moment ou une modification va etre faite afin de
+        declencher d'eventuels traitements pre-modification
+        """
+        #print "initModif",self
+        self.state = 'modified'
+
+    def finModif(self):
+        #print "finModif",self
+        CONNECTOR.Emit(self,"valid")
+        self.isValid()
+        pass
+
+    def deepUpdateConditionBloc(self,motClef=None):
+        # pour le moment, on ne fait rien
+        self.getJdcRoot().recalculeValiditeApresChangementGlobalJdc(motClef)
+        #raise EficasException(tr("Pas implemente"))
+
+    def updateConditionBloc(self):
+        # pour le moment, on ne fait rien
+        raise EficasException(tr("Pas implemente"))
+
+    def getListeMcInconnus(self):
+        """
+        Retourne une liste contenant les mots-cles inconnus a la relecture du JDC
+        """
+        # cette liste a le format suivant : [etape,(bloc,mcfact,...),nom_mc,valeur_mc]
+        l_mc = []
+        for etape in self.etapes :
+            if etape.isActif() :
+                if not etape.isValid() :
+                    l = etape.getListeMcInconnus()
+                    if l : l_mc.extend(l)
+        return l_mc
+
+    def getGenealogiePrecise(self):
+        return []
+
+    def getGenealogie(self):
+        """
+            Retourne la liste des noms des ascendants de l'objet self
+            jusqu'a la premiere ETAPE parent.
+        """
+        return []
+
+    def getListeCmd(self):
+        """
+            Retourne la liste des commandes du catalogue
+        """
+        return self.niveau.definition.getListeCmd()
+
+    def getGroups(self):
+        """
+            Retourne la liste des groupes
+        """
+        return self.niveau.definition.liste_groupes,self.niveau.definition.dict_groupes
+
+    def setEtapeContext(self,etape):
+        """
+            Positionne l'etape qui sera utilisee dans NommerSdProd pour
+            decider si le concept passe pourra etre  nomme
+        """
+        self._etape_context=etape
+
+    def resetContext(self):
+        """
+            Cette methode reinitialise le contexte glissant pour pouvoir
+            tenir compte des modifications de l'utilisateur : craation
+            de commandes, nommage de concepts, etc.
+        """
+        #print "resetContext",self,self.nom
+        self.currentContext={}
+        self.index_etape_courante=0
+        ind={}
+        for i,etape in enumerate(self.etapes):
+            ind[etape]=i
+        self.index_etapes=ind
+
+    #   for etape in self.etapes:
+    #       etape.resetContext()
+
+    def delSdprod(self,sd):
+        """
+            Supprime la SD sd de la liste des sd et des dictionnaires de contexte
+        """
+        #print "delSdprod",self,sd
+        #print "delSdprod",self.sds
+        #print "delSdprod",self.g_context
+        #print "delSdprod",self.sdsDict
+        #if sd in self.sds : self.sds.remove(sd)
+        if sd.nom in self.g_context : del self.g_context[sd.nom]
+        if sd.nom in self.sdsDict : del self.sdsDict[sd.nom]
+
+    def delParam(self,param):
+        """
+            Supprime le parametre param de la liste des paramatres
+            et du contexte gobal
+        """
+        if param in self.params : self.params.remove(param)
+        if param.nom in self.g_context : del self.g_context[param.nom]
+
+    def delFonction(self,fonction):
+        """
+            Supprime la fonction fonction de la liste des fonctions
+            et du contexte gobal
+        """
+        if fonction in self.fonctions : self.fonctions.remove(fonction)
+        if fonction.nom in self.g_context: del self.g_context[fonction.nom]
+
+    def appendSdProd(self,sd):
+        """
+            Ajoute la SD sd a la liste des sd en verifiant au prealable qu'une SD de
+            meme nom n'existe pas deja
+        """
+        if sd == None or sd.nom == None:return
+        o=self.sdsDict.get(sd.nom,None)
+        if isinstance(o,ASSD):
+            raise AsException(tr("Nom de concept deja defini "+ sd.nom))
+        self.sdsDict[sd.nom]=sd
+        self.g_context[sd.nom] = sd
+        #if sd not in self.sds : self.sds.append(sd)
+
+    def appendParam(self,param):
+        """
+            Ajoute le parametre param a la liste des params
+            et au contexte global
+        """
+        # il faudrait verifier qu'un parametre de meme nom n'existe pas deja !!!
+        if param not in self.params : self.params.append(param)
+        self.g_context[param.nom]=param
+
+    def appendFonction(self,fonction):
+        """
+            Ajoute la fonction fonction a la liste des fonctions
+            et au contexte global
+        """
+        # il faudrait verifier qu'une fonction de meme nom n'existe pas deja !!!
+        if fonction not in self.fonctions : self.fonctions.append(fonction)
+        self.g_context[fonction.nom]=fonction
+
+    def deleteConcept(self,sd):
+        """
+            Inputs :
+               - sd=concept detruit
+            Fonction :
+            Mettre a jour les etapes du JDC suite a la disparition du
+            concept sd
+            Seuls les mots cles simples MCSIMP font un traitement autre
+            que de transmettre aux fils
+        """
+        for etape in self.etapes :
+            etape.deleteConcept(sd)
+            #PN PN PN pour les matrices ????
+            #self.getVariables_avant(etape)
+
+    def replaceConceptAfterEtape(self,etape,old_sd,sd):
+        """
+            Met a jour les etapes du JDC qui sont apres etape en fonction
+            du remplacement du concept sd
+        """
+        index = self.etapes.index(etape)+1
+        if index == len(self.etapes) :
+            return # etape est la derniere etape du jdc ...on ne fait rien !
+        for child in self.etapes[index:]:
+            child.replaceConcept(old_sd,sd)
+
+    def updateConceptAfterEtape(self,etape,sd):
+        """
+            Met a jour les etapes du JDC qui sont apres etape en fonction
+            de la modification (principalement nommage) du concept sd
+        """
+        if etape is None:
+            #On traite toutes les etapes
+            index=0
+        else:
+            index = self.etapes.index(etape)+1
+        if index == len(self.etapes) :
+            return # etape est la derniere etape du jdc ...on ne fait rien !
+        for child in self.etapes[index:]:
+            child.updateConcept(sd)
+
+    def dumpState(self):
+        #print(("JDC.state: ",self.state))
+        for etape in self.etapes :
+            print((etape.nom+".state: ",etape.state))
+
+    def changeUnit(self,unit,etape,old_unit):
+        #print "changeUnit",unit,etape,old_unit
+        #print id(self.recorded_units),self.recorded_units
+        #if self.recorded_units.has_key(old_unit):del self.recorded_units[old_unit]
+        self.recordUnit(unit,etape)
+
+    def recordUnit(self,unit,etape):
+        """Enregistre les unites logiques incluses et les infos relatives a l'etape"""
+        #print "recordUnit",unit,etape
+        if unit is None:
+            # Cas de POURSUITE
+            self.recorded_units[None]=(etape.fichier_ini ,etape.fichier_text,etape.recorded_units)
+        else:
+            self.recorded_units[unit]=(etape.fichier_ini ,etape.fichier_text,etape.recorded_units)
+        #print id(self.recorded_units),self.recorded_units
+        #print self.recorded_units.get(None,(None,"",{}))[2]
+        #print self.recorded_units.get(None,(None,"",{}))[2].get(None,(None,"",{}))
+
+    def changeFichier(self,fichier):
         self.finModif()
-        return objet
-      else :
-        # On veut ajouter une nouvelle commande
-        try:
-          self.setCurrentStep()
-          cmd=self.getCmd(name)
-          # L'appel a make_objet n'a pas pour effet d'enregistrer l'etape
-          # aupres du step courant car editmode vaut 1
-          # Par contre elle a le bon parent grace a setCurrentStep
-          e=cmd.make_objet()
-          if pos == None : pos = 0
-          self.etapes.insert(pos,e)
-          self.resetCurrentStep()
-          self.resetContext()
-          self.editmode=0
-          self.activeEtapes()
-          CONNECTOR.Emit(self,"add",e)
-          self.finModif()
-          return e
-        except AsException as e:
-          traceback.print_exc()
-          self.resetCurrentStep()
-          self.editmode=0
-          raise AsException(tr("Impossible d'ajouter la commande")+name + '\n')
+
+    def evalInContext(self,valeur,etape):
+        """ Tente d'evaluer valeur dans le contexte courant de etape
+            Retourne le parametre valeur inchange si l'evaluation est impossible
+        """
+        #contexte initial du jdc
+        context=self.condition_context.copy()
+        #contexte courant des concepts. Il contient les parametres
+        context.update(self.getContexteAvant(etape))
+        try :
+            objet = eval(valeur,context)
+            return objet
         except:
-        #else :
-          traceback.print_exc()
-          self.resetCurrentStep()
-          self.editmode=0
-          raise AsException(tr("Impossible d ajouter la commande")+name)
-
-   def close(self):
-      #print "JDC.close",self
-      for etape in self.etapes:
-          if hasattr(etape,"close"):etape.close()
-      CONNECTOR.Emit(self,"close")
-
-   def setCurrentStep(self):
-      CONTEXT.unsetCurrentStep()
-      CONTEXT.setCurrentStep(self)
-
-   def resetCurrentStep(self):
-      CONTEXT.unsetCurrentStep()
-
-   def listeMcPresents(self):
-      return []
-
-   def getSdAvantEtape(self,nom_sd,etape):
-      return self.getContexteAvant(etape).get(nom_sd,None)
-
-   def getSdApresEtapeAvecDetruire(self,nom_sd,sd,etape,avec='non'):
-      """ 
-           Cette methode retourne la SD sd de nom nom_sd qui est eventuellement
-           definie apres etape en tenant compte des concepts detruits
-           Si avec vaut 'non' exclut etape de la recherche
-      """
-      #print "JDC.getSdApresEtapeAvecDetruire",nom_sd,sd
-      ietap=self.etapes.index(etape)
-      if avec == 'non':ietap=ietap+1
-      d={nom_sd:sd}
-      for e in self.etapes[ietap:]:
-         if e.isActif():
-            e.updateContext(d)
-            autre_sd=d.get(nom_sd,None)
-            if autre_sd is None:
-              # Le concept a ete detruit. On interrompt la recherche car il n'y a
-              # pas eu de redefinition du concept (il n'y a pas de conflit potentiel).
-              return None
-            if autre_sd is not sd :
-              # L'etape produit un concept different de meme nom. La situation n'est
-              # pas saine (sauf peut etre si reuse ???)
-              if hasattr(e,'reuse') and e.reuse == autre_sd:
-                 # Le concept etant reutilise, on interrompt la recherche. 
-                 # On considere qu'il n'y a pas de nouveau concept defini
-                 # meme si dans les etapes suivantes le concept est detruit
-                 # et un concept de meme nom cree.
-                 # AVERIFIER : avec reuse le concept devrait etre le meme
-                 # le passage par ici est tres improbable
-                 return None
-              else:
-                 # Le concept est produit par l'etape (Il y a conflit potentiel).
-                 # Le concept est redefini par une etape posterieure.
-                 return autre_sd
-      # Pas de destruction du concept ni de redefinition. On retourne le
-      # concept initial
-      return sd
-
-   def getSdApresEtape(self,nom_sd,etape,avec='non'):
-      """ 
-           Cette methode retourne la SD de nom nom_sd qui est eventuellement
-           definie apres etape 
-           Si avec vaut 'non' exclut etape de la recherche
-      """
-      ietap=self.etapes.index(etape)
-      if avec == 'non':ietap=ietap+1
-      for e in self.etapes[ietap:]:
-        sd=e.getSdprods(nom_sd)
-        if sd:
-          if hasattr(e,'reuse'):
-            if e.reuse != sd:
-              return sd
-      return None
-
-   def getSdAutourEtape(self,nom_sd,etape,avec='non'):
-      """
-           Fonction: retourne la SD de nom nom_sd qui est eventuellement
-           definie avant ou apres etape
-           Permet de verifier si un concept de meme nom existe dans le perimetre 
-           d'une etape
-           Si avec vaut 'non' exclut etape de la recherche
-      """
-      sd=self.getSdAvantEtape(nom_sd,etape)
-      if sd:return sd
-      return self.getSdApresEtape(nom_sd,etape,avec)
-
-   def getContexte_apres(self,etape):
-      """
-         Retourne le dictionnaire des concepts connus apres etape
-         On tient compte des commandes qui modifient le contexte
-         comme DETRUIRE ou les macros
-         Si etape == None, on retourne le contexte en fin de JDC
-      """
-      if not etape: return self.getContexteAvant(etape)
-
-      d=self.getContexteAvant(etape)
-      if etape.isActif():etape.updateContext(d)
-      self.index_etape_courante=self.index_etape_courante+1
-      return d
-
-   def activeEtapes(self):
-      """
-          Cette methode a pour fonction de desactiver les etapes qui doivent
-          l'etre cad, dans le cas d'ASTER, les etapes qui ne sont pas 
-          comprises entre le premier DEBUT/POURSUITE et le premier FIN 
-          et rendre actives les autres
-      """
-      #if self.definition.code == 'ASTER' :
-         # Seulement pour ASTER :
-         # Avant DEBUT actif vaut 0
-         # Apres DEBUT et avant le 1er FIN actif vaut 1
-         # Apres le 1er FIN actif vaut -1
-      #   actif=0
-      #actif=1
-      for etape in self.etapes:
-        #if actif == 0 and etape.nom in ['DEBUT','POURSUITE']:actif=1
-        #if actif == 1:
-           etape.active()
-           #self.enregistreEtapePyxb(etape)
-        #else:
-        #   etape.inactive()
-        #if etape.nom == 'FIN':actif=-1
-
-   def deplaceEntite(self,indexNoeudACopier,indexNoeudOuColler,pos):
-      """
-          Pour le cut
-      """
-      if indexNoeudACopier==indexNoeudOuColler:return
-      etapeACopier=self.etapes[indexNoeudACopier]
-      try :
-        sd=self.etapes[indexNoeudACopier].sd
-      except :
-        sd=None
-      if pos=='before' and indexNoeudOuColler==0 : 
-         self.etapes2=[etapeACopier,]+self.etapes[0:indexNoeudACopier]+self.etapes[indexNoeudACopier+1:]
-      elif indexNoeudACopier < indexNoeudOuColler :
-         self.etapes2=self.etapes[0:indexNoeudACopier]+self.etapes[indexNoeudACopier+1:indexNoeudOuColler+1]+[etapeACopier,]+self.etapes[indexNoeudOuColler+1:]
-      else:
-         self.etapes2=self.etapes[0:indexNoeudOuColler+1]+[etapeACopier,]+self.etapes[indexNoeudOuColler+1:indexNoeudACopier]+self.etapes[indexNoeudACopier+1:]
-      self.etapes=self.etapes2
-      if indexNoeudACopier < indexNoeudOuColler :
-        self.deleteConceptEntreEtapes(indexNoeudACopier,indexNoeudOuColler,sd)
-      self.resetContext()
-      for e in self.etapes :
-         e.state = 'modified'
-      self.controlContextApres(None)
-      return 1
-
-
-   def suppEntite(self,etape) :
-      """  
-          Cette methode a pour fonction de supprimer une etape dans 
-          un jeu de commandes
-          Retourne 1 si la suppression a pu etre effectuee,
-          Retourne 0 dans le cas contraire
-      """
-      #PN correction de bugs 
-      if etape not in self.etapes: return 0
-
-      self.initModif()
-      index_etape=self.etapes.index(etape)
-
-      #etape.deletePyxbObject()
-      self.etapes.remove(etape)
-
-      if etape.niveau is not self:
-        # Dans ce cas l'etape est enregistree dans un niveau
-        # Il faut la desenregistrer
-        etape.niveau.unregister(etape)
-
-      etape.supprimeSdProds()
-      etape.close()
-      etape.supprime()
-      self.activeEtapes()
-
-      # Apres suppression de l'etape il faut controler que les etapes
-      # suivantes ne produisent pas des concepts DETRUITS dans op_init de etape
-      if index_etape > 0: 
-         index_etape=index_etape-1
-         etape=self.etapes[index_etape]
-      else:
-         etape=None
-      self.controlContextApres(etape)
-     
-      self.resetContext()
-      CONNECTOR.Emit(self,"supp",etape)
-      self.finModif()
-      return 1
-
-   def controlContextApres(self,etape):
-      """
-         Cette methode verifie que les etapes apres l'etape etape
-         ont bien des concepts produits acceptables (pas de conflit de 
-         nom principalement)
-         Si des concepts produits ne sont pas acceptables ils sont supprimes.
-         Effectue les verifications sur les etapes du jdc mais aussi sur les
-         jdc parents s'ils existent.
-      """
-      #print "controlContextApres",self,etape
-      #Regularise les etapes du jdc apres l'etape etape
-      self.controlJdcContextApres(etape)
-
-   def controlJdcContextApres(self,etape):
-      """
-          Methode semblable a controlContextApres mais ne travaille
-          que sur les etapes et sous etapes du jdc
-      """
-      #print "controlJdcContextApres",self,etape
-      if etape is None:
-         # on demarre de la premiere etape
-         index_etape=0
-      else:
-         index_etape=self.etapes.index(etape)+1
-
-      try:
-         etape=self.etapes[index_etape]
-      except:
-         #derniere etape du jdc : rien a faire
-         return
-
-      context=self.getContexteAvant(etape)
-
-      for e in self.etapes[index_etape:]:
-          e.controlSdprods(context)
-          e.updateContext(context)
-
-   def analyse(self):
-      try :
-       if self.editor.format == 'xml' :
-         # il ne faut pas le faire quand le jeu de donnees est vide
-         self.setCurrentContext()
-         self.analyseFromXML()
-         #print ('stop demande'); exit()
-         #self.execCompileFromXML()
-       else :    
-         self.compile()
-         self.execCompile()
-         if not self.cr.estvide():return
-         self.activeEtapes()
-      except:
-         self.compile()
-         self.execCompile()
-         if not self.cr.estvide():return
-         self.activeEtapes()
-
-   def registerParametre(self,param):
-      """
-          Cette methode sert a ajouter un parametre dans la liste des parametres
-      """
-      self.params.append(param)
-
-   def registerFonction(self,fonction):
-      """
-          Cette methode sert a ajouter une fonction dans la liste des fonctions
-      """
-      self.fonctions.append(fonction)
-
-   def deleteParam(self,param):
-      """
-          Supprime le parametre param de la liste des parametres
-          et du contexte gobal
-      """
-      if param in self.params : self.params.remove(param)
-      if param.nom in self.g_context : del self.g_context[param.nom]
-
-   def getParametresFonctionsAvantEtape(self,etape):
-      """
-          Retourne deux elements :
-          - une liste contenant les noms des parametres (constantes ou EVAL) 
-            definis avant etape
-          - une liste contenant les formules definies avant etape
-      """
-      l_constantes = []
-      l_fonctions = []
-      # on recupere le contexte avant etape
-      # on ne peut mettre dans les deux listes que des elements de ce contexte
-      d=self.getContexteAvant(etape)
-      # construction de l_constantes
-      for param in self.params:
-        nom = param.nom
-        if not nom : continue
-        if nom in d: l_constantes.append(nom)
-      # construction de l_fonctions
-      for form in self.fonctions:
-        nom = form.nom
-        if not nom : continue
-        if nom in d: l_fonctions.append(form.getFormule())
-
-      # on ajoute les concepts produits par DEFI_VALEUR
-      # XXX On pourrait peut etre faire plutot le test sur le type
-      # de concept : entier, reel, complexe, etc.
-      for k,v in d.items():
-         if hasattr(v,'etape') and v.etape.nom in ('DEFI_VALEUR',):
-            l_constantes.append(k)
-
-      # on retourne les deux listes
-      return l_constantes,l_fonctions
-
-   def getNbEtapesAvant(self,niveau):
-      """ 
-          Retourne le nombre d etapes avant le debut de niveau
-      """
-      nb=0
-      for niv in self.etapes_niveaux:
-        if niv == niveau:break
-        nb=nb+len(niv.etapes)
-      return nb
-
-   def initModif(self):
-      """
-      Methode appelee au moment ou une modification va etre faite afin de 
-      declencher d'eventuels traitements pre-modification
-      """
-      #print "initModif",self
-      self.state = 'modified'
-
-   def finModif(self):
-      #print "finModif",self
-      CONNECTOR.Emit(self,"valid")
-      self.isValid()
-      pass
-
-   def deepUpdateConditionBloc(self):
-      # pour le moment, on ne fait rien
-      self.getJdcRoot().recalculeValiditeApresChangementGlobalJdc()
-      #raise EficasException(tr("Pas implemente"))
-
-   def updateConditionBloc(self):
-      # pour le moment, on ne fait rien
-      raise EficasException(tr("Pas implemente"))
-
-   def getListeMcInconnus(self):
-     """
-     Retourne une liste contenant les mots-cles inconnus a la relecture du JDC
-     """
-     # cette liste a le format suivant : [etape,(bloc,mcfact,...),nom_mc,valeur_mc]
-     l_mc = []
-     for etape in self.etapes :
-         if etape.isActif() :
-            if not etape.isValid() :
-               l = etape.getListeMcInconnus()
-               if l : l_mc.extend(l)
-     return l_mc    
-
-   def getGenealogiePrecise(self):
-      return []
-
-   def getGenealogie(self):
-      """
-          Retourne la liste des noms des ascendants de l'objet self
-          jusqu'a la premiere ETAPE parent.
-      """
-      return []
-
-   def getListeCmd(self):
-      """
-          Retourne la liste des commandes du catalogue
-      """
-      return self.niveau.definition.getListeCmd()
-
-   def getGroups(self):
-      """
-          Retourne la liste des groupes
-      """
-      return self.niveau.definition.liste_groupes,self.niveau.definition.dict_groupes
-
-   def setEtapeContext(self,etape):
-      """
-          Positionne l'etape qui sera utilisee dans NommerSdProd pour
-          decider si le concept passe pourra etre  nomme
-      """
-      self._etape_context=etape
-
-   def resetContext(self):
-      """ 
-          Cette methode reinitialise le contexte glissant pour pouvoir
-          tenir compte des modifications de l'utilisateur : craation
-          de commandes, nommage de concepts, etc.
-      """
-      #print "resetContext",self,self.nom
-      self.current_context={}
-      self.index_etape_courante=0
-      ind={}
-      for i,etape in enumerate(self.etapes):
-        ind[etape]=i
-      self.index_etapes=ind
-
-   #   for etape in self.etapes:
-   #       etape.resetContext()
-
-   def delSdprod(self,sd):
-      """
-          Supprime la SD sd de la liste des sd et des dictionnaires de contexte
-      """
-      #print "delSdprod",self,sd
-      #print "delSdprod",self.sds
-      #print "delSdprod",self.g_context
-      #print "delSdprod",self.sds_dict
-      #if sd in self.sds : self.sds.remove(sd)
-      if sd.nom in self.g_context : del self.g_context[sd.nom]
-      if sd.nom in self.sds_dict : del self.sds_dict[sd.nom]
-
-   def delParam(self,param):
-      """
-          Supprime le parametre param de la liste des paramatres
-          et du contexte gobal
-      """
-      if param in self.params : self.params.remove(param)
-      if param.nom in self.g_context : del self.g_context[param.nom]
-
-   def delFonction(self,fonction):
-      """
-          Supprime la fonction fonction de la liste des fonctions
-          et du contexte gobal
-      """
-      if fonction in self.fonctions : self.fonctions.remove(fonction)
-      if fonction.nom in self.g_context: del self.g_context[fonction.nom]
-
-   def appendSdProd(self,sd):
-      """
-          Ajoute la SD sd a la liste des sd en verifiant au prealable qu'une SD de
-          meme nom n'existe pas deja
-      """
-      if sd == None or sd.nom == None:return
-
-      o=self.sds_dict.get(sd.nom,None)
-      if isinstance(o,ASSD):
-         raise AsException(tr("Nom de concept deja defini "+ sd.nom))
-      self.sds_dict[sd.nom]=sd
-      self.g_context[sd.nom] = sd
-      #if sd not in self.sds : self.sds.append(sd)
-
-   def appendParam(self,param):
-      """
-          Ajoute le parametre param a la liste des params
-          et au contexte global
-      """
-      # il faudrait verifier qu'un parametre de meme nom n'existe pas deja !!!
-      if param not in self.params : self.params.append(param)
-      self.g_context[param.nom]=param
-
-   def appendFonction(self,fonction):
-      """
-          Ajoute la fonction fonction a la liste des fonctions
-          et au contexte global
-      """
-      # il faudrait verifier qu'une fonction de meme nom n'existe pas deja !!!
-      if fonction not in self.fonctions : self.fonctions.append(fonction)
-      self.g_context[fonction.nom]=fonction
-
-   def deleteConcept(self,sd):
-      """
-          Inputs :
-             - sd=concept detruit
-          Fonction :
-          Mettre a jour les etapes du JDC suite a la disparition du
-          concept sd
-          Seuls les mots cles simples MCSIMP font un traitement autre
-          que de transmettre aux fils
-      """
-      for etape in self.etapes :
-        etape.deleteConcept(sd)
-        #PN PN PN pour les matrices ????
-        #self.getVariables_avant(etape)
-
-   def replaceConceptAfterEtape(self,etape,old_sd,sd):
-      """
-          Met a jour les etapes du JDC qui sont apres etape en fonction
-          du remplacement du concept sd
-      """
-      index = self.etapes.index(etape)+1
-      if index == len(self.etapes) :
-         return # etape est la derniere etape du jdc ...on ne fait rien !
-      for child in self.etapes[index:]:
-        child.replaceConcept(old_sd,sd)
-
-   def updateConceptAfterEtape(self,etape,sd):
-      """
-          Met a jour les etapes du JDC qui sont apres etape en fonction
-          de la modification (principalement nommage) du concept sd
-      """
-      if etape is None:
-         #On traite toutes les etapes
-         index=0
-      else:
-         index = self.etapes.index(etape)+1
-      if index == len(self.etapes) :
-         return # etape est la derniere etape du jdc ...on ne fait rien !
-      for child in self.etapes[index:]:
-        child.updateConcept(sd)
-
-   def dumpState(self):
-      print(("JDC.state: ",self.state))
-      for etape in self.etapes :
-         print((etape.nom+".state: ",etape.state))
-      
-   def changeUnit(self,unit,etape,old_unit):
-      #print "changeUnit",unit,etape,old_unit
-      #print id(self.recorded_units),self.recorded_units
-      #if self.recorded_units.has_key(old_unit):del self.recorded_units[old_unit]
-      self.recordUnit(unit,etape)
-
-   def recordUnit(self,unit,etape):
-      """Enregistre les unites logiques incluses et les infos relatives a l'etape"""
-      #print "recordUnit",unit,etape
-      if unit is None:
-         # Cas de POURSUITE
-         self.recorded_units[None]=(etape.fichier_ini ,etape.fichier_text,etape.recorded_units)
-      else:
-         self.recorded_units[unit]=(etape.fichier_ini ,etape.fichier_text,etape.recorded_units)
-      #print id(self.recorded_units),self.recorded_units
-      #print self.recorded_units.get(None,(None,"",{}))[2]
-      #print self.recorded_units.get(None,(None,"",{}))[2].get(None,(None,"",{}))
-
-   def changeFichier(self,fichier):
-       self.finModif()
-
-   def evalInContext(self,valeur,etape):
-      """ Tente d'evaluer valeur dans le contexte courant de etape
-          Retourne le parametre valeur inchange si l'evaluation est impossible
-      """
-      #contexte initial du jdc
-      context=self.condition_context.copy()
-      #contexte courant des concepts. Il contient les parametres
-      context.update(self.getContexteAvant(etape))
-      try :
-         objet = eval(valeur,context)
-         return objet
-      except:
-         #traceback.print_exc()
-         pass
-      return valeur
+            #traceback.print_exc()
+            pass
+        return valeur
 
 #ATTENTION SURCHARGE : cette methode doit etre gardee en synchronisation avec celle de Noyau
-   def supprime(self):
-      Noyau.N_JDC.JDC.supprime(self)
-      for etape in self.etapes:
-         etape.supprime()
-      self.appli=None
-      self.g_context={}
-      self.const_context={}
-      self.sds_dict={}
-      self.mc_globaux={}
-      self.current_context={}
-      self.condition_context={}
-      self.etapes_niveaux=[]
-      self.niveau=None
-      self.params=[]
-      self.fonctions=[]
-      self._etape_context=None
-      self.etapes=[]
-       
+    def supprime(self):
+        Noyau.N_JDC.JDC.supprime(self)
+        for etape in self.etapes:
+            etape.supprime()
+        self.appliEficas=None
+        self.g_context={}
+        self.const_context={}
+        self.sdsDict={}
+        self.mc_globaux={}
+        self.currentContext={}
+        self.condition_context={}
+        self.etapes_niveaux=[]
+        self.niveau=None
+        self.params=[]
+        self.fonctions=[]
+        self._etape_context=None
+        self.etapes=[]
+
 #ATTENTION SURCHARGE : cette methode doit etre gardee en synchronisation avec celle de Noyau
-   def register(self,etape):
-      """
-           Cette methode ajoute  etape dans la liste
-           des etapes self.etapes et retourne l identificateur d'etape
-           fourni par l appel a gRegister
-
-           A quoi sert editmode ?
-              - Si editmode vaut 1, on est en mode edition de JDC. On cherche
-                a enregistrer une etape que l'on a creee avec eficas (en passant
-                par addEntite) auquel cas on ne veut recuperer que son numero
-                d'enregistrement et c'est addEntite qui l'enregistre dans
-                self.etapes a la bonne place...
-              - Si editmode vaut 0, on est en mode relecture d'un fichier de
-                commandes et on doit enregistrer l'etape a la fin de self.etapes
-                (dans ce cas l'ordre des etapes est bien l'ordre chronologique
-                de leur creation   )
-      """
-      if not self.editmode:
-         self.etapes.append(etape)
-         self.index_etapes[etape] = len(self.etapes) - 1
-      else:
-         pass
-      return self.gRegister(etape)
+    def register(self,etape):
+        """
+             Cette methode ajoute  etape dans la liste
+             des etapes self.etapes et retourne l identificateur d'etape
+             fourni par l appel a gRegister
+
+             A quoi sert editmode ?
+                - Si editmode vaut 1, on est en mode edition de JDC. On cherche
+                  a enregistrer une etape que l'on a creee avec eficas (en passant
+                  par addEntite) auquel cas on ne veut recuperer que son numero
+                  d'enregistrement et c'est addEntite qui l'enregistre dans
+                  self.etapes a la bonne place...
+                - Si editmode vaut 0, on est en mode relecture d'un fichier de
+                  commandes et on doit enregistrer l'etape a la fin de self.etapes
+                  (dans ce cas l'ordre des etapes est bien l'ordre chronologique
+                  de leur creation   )
+        """
+        #import traceback
+        #traceback.print_stack()
+        if not self.editmode:
+            self.etapes.append(etape)
+            self.index_etapes[etape] = len(self.etapes) - 1
+        else:
+            pass
+        return self.gRegister(etape)
 
 #ATTENTION SURCHARGE : cette methode doit etre gardee en synchronisation avec celle de Noyau
-   def NommerSdprod(self,sd,sdnom,restrict='non'):
-      """
-          Nomme la SD apres avoir verifie que le nommage est possible :
-          nom non utilise
-          Si le nom est deja utilise, leve une exception
-          Met le concept cree dans le concept global g_context
-      """
-      # XXX En mode editeur dans EFICAS, le nommage doit etre gere differemment
-      # Le dictionnaire g_context ne represente pas le contexte
-      # effectif avant une etape.
-      # Il faut utiliser getContexteAvant avec indication de l'etape
-      # traitee.
-      # Cette etape est indiquee par l'attribut _etape_context qui a ete
-      # positionne prealablement par un appel a setEtapeContext
-
-      if CONTEXT.debug : print(("JDC.NommerSdprod ",sd,sdnom))
-
-      if self._etape_context:
-         o=self.getContexteAvant(self._etape_context).get(sdnom,None)
-      else:
-         o=self.sds_dict.get(sdnom,None)
-
-      if isinstance(o,ASSD):
-         raise AsException(tr(" Nom de concept deja  defini : "+ sdnom))
-
-      # ATTENTION : Il ne faut pas ajouter sd dans sds car il s y trouve deja.
-      # Ajoute a la creation (appel de regSD).
-      self.sds_dict[sdnom]=sd
-      sd.nom=sdnom
-
-      # En plus si restrict vaut 'non', on insere le concept dans le contexte du JDC
-      if restrict == 'non':
-         self.g_context[sdnom]=sd
-
-   def deleteConceptEntreEtapes(self,index1,index2,sd):
-      if index2 <= index1 :return
-      for child in self.etapes[index1:index2]:
-        child.deleteConcept(sd)
-
-   def deleteConceptAfterEtape(self,etape,sd):
-      """
-          Met a jour les etapes du JDC qui sont apres etape en fonction
-          de la disparition du concept sd
-      """
-      index = self.etapes.index(etape)+1
-      if index == len(self.etapes) :
-         return # etape est la derniere etape du jdc ...on ne fait rien !
-      for child in self.etapes[index:]:
-        child.deleteConcept(sd)
+    def nommerSDProd(self,sd,sdnom,restrict='non'):
+        """
+            Nomme la SD apres avoir verifie que le nommage est possible :
+            nom non utilise
+            Si le nom est deja utilise, leve une exception
+            Met le concept cree dans le concept global g_context
+        """
+        # XXX En mode editeur dans EFICAS, le nommage doit etre gere differemment
+        # Le dictionnaire g_context ne represente pas le contexte
+        # effectif avant une etape.
+        # Il faut utiliser getContexteAvant avec indication de l'etape
+        # traitee.
+        # Cette etape est indiquee par l'attribut _etape_context qui a ete
+        # positionne prealablement par un appel a setEtapeContext
+
+        if CONTEXT.debug : print(("JDC.nommerSDProd ",sd,sdnom))
+
+        if self._etape_context:
+            o=self.getContexteAvant(self._etape_context).get(sdnom,None)
+        else:
+            o=self.sdsDict.get(sdnom,None)
+
+        if isinstance(o,ASSD):
+            raise AsException(tr(" Nom de concept deja defini : "+ sdnom))
+
+        # ATTENTION : Il ne faut pas ajouter sd dans sds car il s y trouve deja.
+        # Ajoute a la creation (appel de regSD).
+        #print (' je pass ici, pour ', sdnom, self.sdsDict)
+        self.sdsDict[sdnom]=sd
+        sd.nom=sdnom
+
+        # En plus si restrict vaut 'non', on insere le concept dans le contexte du JDC
+        if restrict == 'non':
+            self.g_context[sdnom]=sd
+
+    def deleteConceptEntreEtapes(self,index1,index2,sd):
+        if index2 <= index1 :return
+        for child in self.etapes[index1:index2]:
+            child.deleteConcept(sd)
+
+    def deleteConceptAfterEtape(self,etape,sd):
+        """
+            Met a jour les etapes du JDC qui sont apres etape en fonction
+            de la disparition du concept sd
+        """
+        index = self.etapes.index(etape)+1
+        if index == len(self.etapes) :
+            return # etape est la derniere etape du jdc ...on ne fait rien !
+        for child in self.etapes[index:]:
+            child.deleteConcept(sd)
 
 #ATTENTION SURCHARGE : les methodes ci-dessus surchargent des methodes de Noyau et Validation : a reintegrer
 
-   def getFile(self,unite=None,fic_origine=''):
-      """
-          Retourne le nom du fichier correspondant a un numero d'unite
-          logique (entier) ainsi que le source contenu dans le fichier
-      """
-      if self.appli is not None:
-         # Si le JDC est relie a une application maitre, on delegue la recherche
-         file,text= self.appli.getFile(unite,fic_origine)
-      else:
-         file = None
-         if unite != None:
-            if os.path.exists(u"fort."+str(unite)):
-               file= "fort."+str(unite)
-         if file == None :
-            raise AsException(tr("Impossible de trouver le fichier correspondant a l'unite "+str( unite)))
-         if not os.path.exists(file):
-            raise AsException(str(unite)+ tr(" n'est pas un fichier existant"))
-         fproc=open(file,'r')
-         text=fproc.read()
-         fproc.close()
-      #if file == None : return None,None
-      text=text.replace('\r\n','\n')
-      if file:
-         linecache.cache[file]=0,0,text.split('\n'),file
-      return file,text
-
-   def isValid(self,cr='non'):
-     if hasattr(self,'valid'): old_valid=self.valid
-     else:old_valid=0
-     valid=Validation.V_JDC.JDC.isValid(self,cr)
-     if valid != old_valid:
-       CONNECTOR.Emit(self,"valid")
-     return valid
-
-   def getLNomsEtapes(self):
-      """ 
-          Retourne la liste des noms des etapes de self 
-      """
-      l=[]
-      for etape in self.etapes:
-        l.append(etape.nom)
-      return l
+    def getFile(self,unite=None,fic_origine=''):
+        """
+            Retourne le nom du fichier correspondant a un numero d'unite
+            logique (entier) ainsi que le source contenu dans le fichier
+        """
+        if self.appliEficas is not None:
+            # Si le JDC est relie a une appliEficascation maitre, on delegue la recherche
+            file,text= self.appliEficas.getFile(unite,fic_origine)
+        else:
+            file = None
+            if unite != None:
+                if os.path.exists(u"fort."+str(unite)):
+                    file= "fort."+str(unite)
+            if file == None :
+                raise AsException(tr("Impossible de trouver le fichier correspondant a l'unite "+str( unite)))
+            if not os.path.exists(file):
+                raise AsException(str(unite)+ tr(" n'est pas un fichier existant"))
+            fproc=open(file,'r')
+            text=fproc.read()
+            fproc.close()
+        #if file == None : return None,None
+        text=text.replace('\r\n','\n')
+        if file:
+            linecache.cache[file]=0,0,text.split('\n'),file
+        return file,text
+
+    def isValid(self,cr='non'):
+        if hasattr(self,'valid'): old_valid=self.valid
+        else:old_valid=0
+        valid=Validation.V_JDC.JDC.isValid(self,cr)
+        if valid != old_valid:
+            CONNECTOR.Emit(self,"valid")
+        return valid
+
+    def getLNomsEtapes(self):
+        """
+            Retourne la liste des noms des etapes de self
+        """
+        l=[]
+        for etape in self.etapes:
+            l.append(etape.nom)
+        return l
index 014e7a74937737c6046c68393e1f29ceda6f6cb9..46ada13e19c488713dbb43c9d0437cdce3bc97f5 100644 (file)
@@ -21,22 +21,22 @@ from __future__ import absolute_import
 from Noyau import N_JDC_CATA
 
 class JDC_CATA:
-  def __init__(self):
-    self.l_noms_entites=[]
+    def __init__(self):
+        self.l_noms_entites=[]
 
-  def getListeCmd(self):
-    self.l_noms_entites.sort()
-    return self.l_noms_entites
+    def getListeCmd(self):
+        self.l_noms_entites.sort()
+        return self.l_noms_entites
 
-  def getDocu(self):
-    return
+    def getDocu(self):
+        return
 
 
 #ATTENTION SURCHARGE: cette methode doit etre synchronisee avec celle du Noyau
-  def enregistre(self,commande):
-    """ 
-        Cette methode surcharge la methode de la classe du Noyau
-        Marche avec Noyau 
-    """
-    N_JDC_CATA.JDC_CATA.enregistre(self,commande)
-    self.l_noms_entites.append(commande.nom)
+    def enregistre(self,commande):
+        """
+            Cette methode surcharge la methode de la classe du Noyau
+            Marche avec Noyau
+        """
+        N_JDC_CATA.JDC_CATA.enregistre(self,commande)
+        self.l_noms_entites.append(commande.nom)
index b4346754a192565888a035222386edc4e034d352..975e3b6452038570551813a512fbaef4b71f1d45 100644 (file)
@@ -19,5 +19,5 @@
 #
 
 class LASSD:
-   def __repr__(self):
-       return self.getName()
+    def __repr__(self):
+        return self.getName()
index 1fa425dc02e5f5acbf897df689b45f6a2651877a..5384ede503f7b965c29dc29585869a8a5abf06da 100644 (file)
@@ -42,754 +42,753 @@ import Noyau, Validation.V_MACRO_ETAPE
 from Noyau import N_Exception
 from Noyau.N_Exception import AsException
 import Accas # attention aux imports circulaires
-import six
-from six.moves import range
 # fin import a resorber
 
 class MACRO_ETAPE(I_ETAPE.ETAPE):
 
-  def __init__(self):
-      self.typret=None
-      #indique si le jeu de commande inclus a pu etre analyse par convert
-      #pour etre editable (0=NON, 1=OUI)
-      self.text_converted=1
-      self.text_error=""
-      self.recorded_units={}
-
-  def getSdprods(self,nom_sd):
-    """ 
-         Fonction : retourne le concept produit par l etape de nom nom_sd
-         s il existe sinon None
-    """
-    if self.sd and self.sd.nom == nom_sd :return self.sd
-    for co in self.sdprods:
-      if co.nom == nom_sd:return co
-    if type(self.definition.op_init) == types.FunctionType:
-      d={}
-      self.definition.op_init(*(self,d))
-      return d.get(nom_sd,None)
-    return None
-
-  def getContexteJdc(self,fichier,text,doitEtreValide=1):
-    """ 
-         Interprete text comme un texte de jdc et retourne le contexte final.
-
-         Le contexte final est le dictionnaire des sd disponibles a la derniere etape.
-         Si text n'est pas un texte de jdc valide, retourne None
-         ou leve une exception
-         --> utilisee par ops.POURSUITE et INCLUDE
-    """
-    #print ("getContexteJdc",self,self.nom, text)
-    # On recupere l'etape courante
-    step=CONTEXT.getCurrentStep()
-    self.text_included_converted=0
-    #try:
-    if 1 :
-       # on essaie de creer un objet JDC auxiliaire avec un contexte initial
-       # Attention getContexteAvant retourne un dictionnaire qui contient
-       # le contexte courant. Ce dictionnaire est reactualise regulierement.
-       # Si on veut garder l'etat du contexte fige, il faut en faire une copie.
-       context_ini = self.parent.getContexteAvant(self).copy()
-
-       # Indispensable avant de creer un nouveau JDC
-       CONTEXT.unsetCurrentStep()
-       args=self.jdc.args
-       prefix_include=None
-       if hasattr(self,'prefix'):
-          prefix_include=self.prefix
-       # ATTENTION : le dictionnaire recorded_units sert a memoriser les unites des 
-       # fichiers inclus. Il est preferable de garder le meme dictionnaire pendant
-       # tout le traitement et de ne pas le reinitialiser brutalement (utiliser 
-       # clear plutot) si on ne veut pas perdre la memoire des unites.
-       # En principe si la memorisation est faite au bon moment il n'est pas necessaire
-       # de prendre cette precaution mais ce n'est pas vrai partout.
-       old_recorded_units=self.recorded_units.copy()
-
-       # on supprime l'ancien jdc_aux s'il existe
-       if hasattr(self,'jdc_aux') and self.jdc_aux:
-          self.jdc_aux.supprime_aux()
-
-       if fichier is None:fichier="SansNom"
-
-       # Il faut convertir le texte inclus en fonction du format
-       # sauf les INCLUDE_MATERIAU
-       self.text_converted=0
-       self.text_error=""
-       if self.nom != "INCLUDE_MATERIAU":
-          format=self.parent.appli.appliEficas.format_fichier
-          #on force a python pour Carmel
-          if format=="CARMEL3D" : format="python"
-          import convert
-          if format in convert.plugins :
-              # Le convertisseur existe on l'utilise
-              p=convert.plugins[format]()
-              p.text=text
-              text=p.convert('exec',self.jdc.appli)
-              #Si le fichier ne peut pas etre converti, le cr n'est pas vide
-              #et le texte est retourne tel que
-              if not p.cr.estvide(): 
-                  self.text_converted=0
-                  self.text_error=str(p.cr)
-              else:
-                  self.text_converted=1
-
-
-       if hasattr(self,'sd') and self.sd != None : context_ini[self.sd.nom]=self.sd
-       j=self.JdC_aux( procedure=text, nom=fichier,
-                                appli=self.jdc.appli,
-                                cata=self.jdc.cata,
-                                cata_ord_dico=self.jdc.cata_ordonne_dico,
-                                context_ini = context_ini,
-                                jdc_pere=self.jdc,etape_include=self,
-                                prefix_include=prefix_include,
-                                recorded_units=self.recorded_units,
-                                old_recorded_units=old_recorded_units)
-                                #old_recorded_units=old_recorded_units,**args)
-
-       j.analyse()
-       if not j.cr.estvide(): self.text_included_converted=0
-       else : self.text_included_converted=1
-       self.text_included_error=str(j.cr)
-       # On recupere les etapes internes (pour validation)
-       self.etapes=j.etapes
-       self.jdc_aux=j
-       self.jdc.jdcDict=self.jdc_aux
-
-    #except:
-    else :
-       traceback.print_exc()
-       # On retablit l'etape courante step
-       CONTEXT.unsetCurrentStep()
-       CONTEXT.setCurrentStep(step)
-       return None
-
-     
-    if not j.cr.estvide() and doitEtreValide:
-       # Erreurs dans l'INCLUDE. On garde la memoire du fichier 
-       # mais on n'insere pas les concepts
-       # On retablit l'etape courante step
-       #print (j.cr)
-       #print ("valid ",j.isValid())
-       CONTEXT.unsetCurrentStep()
-       CONTEXT.setCurrentStep(step)
-       raise EficasException(tr("Impossible de relire le fichier %s \n ")+ six.text_type(j.cr))
-
-
-    if not j.isValid() and doitEtreValide:
-       # L'INCLUDE n'est pas valide.
-       # on produit un rapport d'erreurs
-       cr=j.report()
-       #print ('cr', cr)
-       # On retablit l'etape courante step
-       CONTEXT.unsetCurrentStep()
-       CONTEXT.setCurrentStep(step)
-       self.jdc.cr.fatal("Le fichier include contient des erreurs ")
-       raise EficasException(tr("Le fichier include contient des erreurs "))
-
-
-    # Si aucune erreur rencontree
-    # ou qu on accepte un jdc incomplet
-    # On recupere le contexte de l'include verifie
-    try:
-       j_context=j.getVerifContexte()
-       #print j_context.keys()
-       #print j.g_context.keys()
-    except:
-       # On retablit l'etape courante step
-       CONTEXT.unsetCurrentStep()
-       CONTEXT.setCurrentStep(step)
-       raise EficasException(" ")
-
-    # Si on est arrive ici, le texte du fichier inclus (INCLUDE, POURSUITE, ...)
-    # est valide et inserable dans le JDC
-
-    # On remplit le dictionnaire des concepts produits inclus
-    # en retirant les concepts presents dans le  contexte initial
-    # On ajoute egalement le concept produit dans le sds_dict du parent
-    # sans verification car on est sur (verification integree) que 
-    # le nommage est possible
-    self.g_context.clear()
-    for k,v in j_context.items():
-       if (not k in context_ini) or (context_ini[k] != v):
-           self.g_context[k]=v
-           self.parent.sds_dict[k]=v
-
-    #Ce traitement n'est realise que dans les cas suivants:
-    #     - si convert n'a pas pu convertir le jeu de commandes
-    #     - et ce n'est pas un INCLUDE_MATERIAU
-    #On collecte les variables Python qui ne sont pas dans le contexte initial
-    #et dans le contexte valide et on en fait un pseudo-parametre (Variable)
-    if self.text_converted == 0 and self.nom != "INCLUDE_MATERIAU":
-        for k,v in j.g_context.items():
-            if k in context_ini:continue
-            if k in j_context:continue
-            if isinstance(v,ASSD):continue
-            if isinstance(v,I_ENTITE.ENTITE):continue
-            if isinstance(v,I_OBJECT.OBJECT):continue
-            if callable(v):continue
-            self.g_context[k]=param2.Variable(k,v)
-
-    # On recupere le contexte courant
-    self.current_context=j.current_context
-    self.index_etape_courante=j.index_etape_courante
-    self.jdc_aux=j
-
-    # On retablit l'etape courante step
-    CONTEXT.unsetCurrentStep()
-    CONTEXT.setCurrentStep(step)
-
-    return j_context
-
-  def reevalueSdJdc(self):
-     """
-         Avec la liste des SD qui ont ete supprimees, propage la 
-         disparition de ces SD dans toutes les etapes et descendants
-     """
-     #print "reevalueSdJdc"
-     l_sd_supp,l_sd_repl = self.diffContextes()
-     for sd in l_sd_supp:
-        self.parent.deleteConceptAfterEtape(self,sd)
-     for old_sd,sd in l_sd_repl:
-        self.parent.replaceConceptAfterEtape(self,old_sd,sd)
-
-  def diffContextes(self):
-     """ 
-         Realise la difference entre les 2 contextes 
-         old_contexte_fichier_init et contexte_fichier_init
-         cad retourne la liste des sd qui ont disparu ou ne derivent pas 
-         de la meme classe et des sd qui ont ete remplacees
-     """
-     if not hasattr(self,'old_contexte_fichier_init'):return [],[]
-     l_sd_suppressed = []
-     l_sd_replaced = []
-     for old_key in self.old_contexte_fichier_init:
-       if not old_key in self.contexte_fichier_init:
-         if isinstance(self.old_contexte_fichier_init[old_key],ASSD):
-           l_sd_suppressed.append(self.old_contexte_fichier_init[old_key])
-       else:
-         if isinstance(self.old_contexte_fichier_init[old_key],ASSD):
-            # Un concept de meme nom existe
-            old_class=self.old_contexte_fichier_init[old_key].__class__
-            if not isinstance(self.contexte_fichier_init[old_key],old_class):
-               # S'il n'est pas d'une classe derivee, on le supprime
-               l_sd_suppressed.append(self.old_contexte_fichier_init[old_key])
+    def __init__(self):
+        self.typret=None
+        #indique si le jeu de commande inclus a pu etre analyse par convert
+        #pour etre editable (0=NON, 1=OUI)
+        self.text_converted=1
+        self.text_error=""
+        self.recorded_units={}
+
+    def getSdprods(self,nom_sd):
+        """
+             Fonction : retourne le concept produit par l etape de nom nom_sd
+             s il existe sinon None
+        """
+        if self.sd and self.sd.nom == nom_sd :return self.sd
+        for co in self.sdprods:
+            if co.nom == nom_sd:return co
+        if type(self.definition.op_init) == types.FunctionType:
+            d={}
+            self.definition.op_init(*(self,d))
+            return d.get(nom_sd,None)
+        return None
+
+    def getContexteJdc(self,fichier,text,doitEtreValide=1):
+        """
+             Interprete text comme un texte de jdc et retourne le contexte final.
+
+             Le contexte final est le dictionnaire des sd disponibles a la derniere etape.
+             Si text n'est pas un texte de jdc valide, retourne None
+             ou leve une exception
+             --> utilisee par ops.POURSUITE et INCLUDE
+        """
+        #print ("getContexteJdc",self,self.nom, text)
+        # On recupere l'etape courante
+        step=CONTEXT.getCurrentStep()
+        self.text_included_converted=0
+        try:
+        #if 1 :
+            # on essaie de creer un objet JDC auxiliaire avec un contexte initial
+            # Attention getContexteAvant retourne un dictionnaire qui contient
+            # le contexte courant. Ce dictionnaire est reactualise regulierement.
+            # Si on veut garder l'etat du contexte fige, il faut en faire une copie.
+            context_ini = self.parent.getContexteAvant(self).copy()
+
+            # Indispensable avant de creer un nouveau JDC
+            CONTEXT.unsetCurrentStep()
+            args=self.jdc.args
+            prefix_include=None
+            if hasattr(self,'prefix'):
+                prefix_include=self.prefix
+            # ATTENTION : le dictionnaire recorded_units sert a memoriser les unites des
+            # fichiers inclus. Il est preferable de garder le meme dictionnaire pendant
+            # tout le traitement et de ne pas le reinitialiser brutalement (utiliser
+            # clear plutot) si on ne veut pas perdre la memoire des unites.
+            # En principe si la memorisation est faite au bon moment il n'est pas necessaire
+            # de prendre cette precaution mais ce n'est pas vrai partout.
+            old_recorded_units=self.recorded_units.copy()
+
+            # on supprime l'ancien jdc_aux s'il existe
+            if hasattr(self,'jdc_aux') and self.jdc_aux:
+                self.jdc_aux.supprime_aux()
+
+            if fichier is None:fichier="SansNom"
+
+            # Il faut convertir le texte inclus en fonction du format
+            # sauf les INCLUDE_MATERIAU
+            self.text_converted=0
+            self.text_error=""
+            if self.nom != "INCLUDE_MATERIAU":
+                format=self.jdc.appliEficas.format_fichier
+                #on force a python pour Carmel
+                if format=="CARMEL3D" : format="python"
+                import convert
+                if format in convert.plugins :
+                    # Le convertisseur existe on l'utilise
+                    p=convert.plugins[format]()
+                    p.text=text
+                    text=p.convert('exec',self.jdc.appliEficas)
+                    #Si le fichier ne peut pas etre converti, le cr n'est pas vide
+                    #et le texte est retourne tel que
+                    if not p.cr.estvide():
+                        self.text_converted=0
+                        self.text_error=str(p.cr)
+                    else:
+                        self.text_converted=1
+
+
+            if hasattr(self,'sd') and self.sd != None : context_ini[self.sd.nom]=self.sd
+            j=self.JdC_aux( procedure=text, nom=fichier,
+                                     appliEficas=self.jdc.appliEficas,
+                                     cata=self.jdc.cata,
+                                     cata_ord_dico=self.jdc.cata_ordonne_dico,
+                                     context_ini = context_ini,
+                                     jdc_pere=self.jdc,etape_include=self,
+                                     prefix_include=prefix_include,
+                                     recorded_units=self.recorded_units,
+                                     old_recorded_units=old_recorded_units,**args)
+
+            j.analyse()
+            if not j.cr.estvide(): self.text_included_converted=0
+            else : self.text_included_converted=1
+            self.text_included_error=str(j.cr)
+            # On recupere les etapes internes (pour validation)
+            self.etapes=j.etapes
+            self.jdc_aux=j
+            self.jdc.jdcDict=self.jdc_aux
+
+        except:
+        #else :
+            traceback.print_exc()
+            # On retablit l'etape courante step
+            CONTEXT.unsetCurrentStep()
+            CONTEXT.setCurrentStep(step)
+            return None
+
+
+        if not j.cr.estvide() and doitEtreValide:
+            # Erreurs dans l'INCLUDE. On garde la memoire du fichier
+            # mais on n'insere pas les concepts
+            # On retablit l'etape courante step
+            #print (j.cr)
+            #print ("valid ",j.isValid())
+            CONTEXT.unsetCurrentStep()
+            CONTEXT.setCurrentStep(step)
+            raise EficasException(tr("Impossible de relire le fichier %s \n ")+ str(j.cr))
+
+
+        if not j.isValid() and doitEtreValide:
+            # L'INCLUDE n'est pas valide.
+            # on produit un rapport d'erreurs
+            cr=j.report()
+            #print ('cr', cr)
+            # On retablit l'etape courante step
+            CONTEXT.unsetCurrentStep()
+            CONTEXT.setCurrentStep(step)
+            self.jdc.cr.fatal("Le fichier include contient des erreurs ")
+            raise EficasException(tr("Le fichier include contient des erreurs "))
+
+
+        # Si aucune erreur rencontree
+        # ou qu on accepte un jdc incomplet
+        # On recupere le contexte de l'include verifie
+        try:
+            j_context=j.getVerifContexte()
+            #print j_context.keys()
+            #print j.g_context.keys()
+        except:
+            # On retablit l'etape courante step
+            CONTEXT.unsetCurrentStep()
+            CONTEXT.setCurrentStep(step)
+            raise EficasException(" ")
+
+        # Si on est arrive ici, le texte du fichier inclus (INCLUDE, POURSUITE, ...)
+        # est valide et inserable dans le JDC
+
+        # On remplit le dictionnaire des concepts produits inclus
+        # en retirant les concepts presents dans le  contexte initial
+        # On ajoute egalement le concept produit dans le sdsDict du parent
+        # sans verification car on est sur (verification integree) que
+        # le nommage est possible
+        self.g_context.clear()
+        for k,v in j_context.items():
+            if (not k in context_ini) or (context_ini[k] != v):
+                self.g_context[k]=v
+                self.parent.sdsDict[k]=v
+
+        #Ce traitement n'est realise que dans les cas suivants:
+        #     - si convert n'a pas pu convertir le jeu de commandes
+        #     - et ce n'est pas un INCLUDE_MATERIAU
+        #On collecte les variables Python qui ne sont pas dans le contexte initial
+        #et dans le contexte valide et on en fait un pseudo-parametre (Variable)
+        if self.text_converted == 0 and self.nom != "INCLUDE_MATERIAU":
+            for k,v in j.g_context.items():
+                if k in context_ini:continue
+                if k in j_context:continue
+                if isinstance(v,ASSD):continue
+                if isinstance(v,I_ENTITE.ENTITE):continue
+                if isinstance(v,I_OBJECT.OBJECT):continue
+                if callable(v):continue
+                self.g_context[k]=param2.Variable(k,v)
+
+        # On recupere le contexte courant
+        self.currentContext=j.currentContext
+        self.index_etape_courante=j.index_etape_courante
+        self.jdc_aux=j
+
+        # On retablit l'etape courante step
+        CONTEXT.unsetCurrentStep()
+        CONTEXT.setCurrentStep(step)
+
+        return j_context
+
+    def reevalueSdJdc(self):
+        """
+            Avec la liste des SD qui ont ete supprimees, propage la
+            disparition de ces SD dans toutes les etapes et descendants
+        """
+        #print "reevalueSdJdc"
+        l_sd_supp,l_sd_repl = self.diffContextes()
+        for sd in l_sd_supp:
+            self.parent.deleteConceptAfterEtape(self,sd)
+        for old_sd,sd in l_sd_repl:
+            self.parent.replaceConceptAfterEtape(self,old_sd,sd)
+
+    def diffContextes(self):
+        """
+            Realise la difference entre les 2 contextes
+            old_contexte_fichier_init et contexte_fichier_init
+            cad retourne la liste des sd qui ont disparu ou ne derivent pas
+            de la meme classe et des sd qui ont ete remplacees
+        """
+        if not hasattr(self,'old_contexte_fichier_init'):return [],[]
+        l_sd_suppressed = []
+        l_sd_replaced = []
+        for old_key in self.old_contexte_fichier_init:
+            if not old_key in self.contexte_fichier_init:
+                if isinstance(self.old_contexte_fichier_init[old_key],ASSD):
+                    l_sd_suppressed.append(self.old_contexte_fichier_init[old_key])
             else:
-               l_sd_replaced.append((self.old_contexte_fichier_init[old_key],self.contexte_fichier_init[old_key]))
-     return l_sd_suppressed,l_sd_replaced
-      
-  def controlSdprods(self,d):
-      """
-          Cette methode doit verifier que les concepts produits par la 
-          commande ne sont pas incompatibles avec le contexte fourni (d).
-          Si c'est le cas, le concept produit doit etre supprime
-          Si la macro a elle meme des etapes, elle doit propager
-          le traitement (voir methode controlJdcContextApres de I_JDC)
-      """
-      #print ("I_MACRO_ETAPE.controlSdprods",d.keys(),self,self.nom,self.sd and self.sd.nom)
-      if self.sd:
-        if self.sd.nom in d:
-           # Le concept est deja defini
-           if self.reuse and self.reuse is d[self.sd.nom]:
-              # Le concept est reutilise : situation normale
-              pass
-           else:
-              # Redefinition du concept, on l'annule
-              #XXX on pourrait simplement annuler son nom pour conserver les objets
-              # l'utilisateur n'aurait alors qu'a renommer le concept (faisable??)
-              self.initModif()
-              sd=self.sd
-              self.sd=self.reuse=self.sdnom=None
-              self.parent.deleteConceptAfterEtape(self,sd)
-              self.finModif()
-
-      # On verifie les concepts a droite du signe =
-      self.initModif()
-      sdprods=self.sdprods[:]
-      self.sdprods=[]
-      for co in sdprods:
-        if co.nom in d and co is not d[co.nom] :
-           #nettoie les mots cles de l'etape qui ont comme valeur co
-           self.deleteConcept(co)
-           #supprime les references a co dans les etapes suivantes
-           self.parent.deleteConceptAfterEtape(self,co)
-        else:
-           self.sdprods.append(co)
-      self.finModif()
-       
-      for e in self.etapes:
-          e.controlSdprods(d)
-          e.updateContext(d)
-
-  def supprimeSdprod(self,sd):
-      """
-         Supprime le concept produit sd s'il est produit par l'etape
-      """
-      if sd in self.sdprods:
-         self.initModif()
-         self.parent.delSdprod(sd)
-         self.sdprods.remove(sd)
-         self.finModif()
-         self.parent.deleteConcept(sd)
-         return
-
-      if sd is not self.sd :return
-      if self.sd is not None :
-         self.initModif()
-         self.parent.delSdprod(sd)
-         self.sd=None
-         self.finModif()
-         self.parent.deleteConcept(sd)
-
-  def supprimeSdProds(self):
-      """
-          Fonction: Lors de la destruction de la macro-etape, detruit tous les concepts produits
-          Un operateur n a qu un concept produit
-          Une procedure n'en a aucun
-          Une macro en a en general plus d'un
-      """
-      #print "supprimeSdProds"
-      if self.reuse is not self.sd :
-         # l'etape n'est pas reentrante
-         # le concept retourne par l'etape est a supprimer car il etait
-         # cree par l'etape
-         if self.sd != None :
-            self.parent.delSdprod(self.sd)
-            self.parent.deleteConcept(self.sd)
-      # On detruit les concepts a droite du signe =
-      for co in self.sdprods:
-         self.parent.delSdprod(co)
-         self.parent.deleteConcept(co)
-      # Si la macro a des etapes et des concepts inclus, on les detruit
-      for nom_sd,co in self.g_context.items():
-         if not isinstance(co,ASSD):continue
-         self.parent.delSdprod(co)
-         self.parent.deleteConcept(co)
-      # On met g_context a blanc
-      self.g_context={}
-
-  def close(self):
-      #print "close",self
-      if hasattr(self,"jdc_aux") and self.jdc_aux:
-         # La macro a un jdc auxiliaire inclus. On demande sa fermeture
-         self.jdc_aux.close()
-
-  def resetContext(self):
-      if hasattr(self,"jdc_aux") and self.jdc_aux:
-         # La macro a un jdc auxiliaire inclus. On demande la reinitialisation du contexte
-         self.jdc_aux.resetContext()
-
-  def updateConcept(self,sd):
-      I_ETAPE.ETAPE.updateConcept(self,sd)
-      for etape in self.etapes:
-          etape.updateConcept(sd)
-
-  def deleteConcept(self,sd):
-      """
-          Fonction : Mettre a jour les mots cles de l etape et eventuellement
-          le concept produit si reuse suite a la disparition du concept sd
-          Seuls les mots cles simples MCSIMP font un traitement autre
-          que de transmettre aux fils
-      """
-      #print "deleteConcept",sd
-      I_ETAPE.ETAPE.deleteConcept(self,sd)
-      for etape in self.etapes:
-         etape.deleteConcept(sd)
-
-  def replaceConcept(self,old_sd,sd):
-      """
-          Fonction : Mettre a jour les mots cles de l etape et le concept produit si reuse 
-          suite au remplacement  du concept old_sd par sd
-      """
-      #print "replaceConcept",old_sd,sd
-      I_ETAPE.ETAPE.replaceConcept(self,old_sd,sd)
-      for etape in self.etapes:
-         etape.replaceConcept(old_sd,sd)
-         
-  def changeFichierInit(self,new_fic,text):
-    """
-       Tente de changer le fichier include. Le precedent include est conserve
-       dans old_xxx
-    """
-    if not hasattr(self,'fichier_ini'):
-       self.fichier_ini=None
-       self.fichier_text=None
-       self.fichier_err="Le fichier n'est pas defini"
-       self.contexte_fichier_init={}
-       self.recorded_units={}
-       self.jdc_aux=None
-       self.fichier_unite="PasDefini"
-       import Extensions.jdc_include
-       self.JdC_aux=Extensions.jdc_include.JdC_include
-
-    self.old_fic = self.fichier_ini
-    self.old_text = self.fichier_text
-    self.old_err = self.fichier_err
-    self.old_context=self.contexte_fichier_init
-    self.old_units=self.recorded_units
-    self.old_etapes=self.etapes
-    self.old_jdc_aux=self.jdc_aux
-
-    self.fichier_ini = new_fic
-    self.fichier_text=text
-
-    try:
-       self.makeContexteInclude(new_fic,text)
-    except:
-       l=traceback.format_exception_only(tr("Fichier invalide %s", sys.exc_info()[1]))
-       self.fichier_err=''.join(l)
-       raise EficasException(self.fichier_err)
-
-    # L'evaluation de text dans un JDC auxiliaire s'est bien passe
-    # on peut poursuivre le traitement
-    self.initModif()
-    self.state="undetermined"
-    self.fichier_err=None
-    # On enregistre la modification de fichier
-    self.recordUnite()
-    # Le contexte du parent doit etre reinitialise car les concepts produits ont change
-    self.parent.resetContext()
-
-    # Si des concepts ont disparu lors du changement de fichier, on demande leur suppression
-    self.old_contexte_fichier_init=self.old_context
-    self.reevalueSdJdc()
-
-    self.finModif()
-    if self.old_jdc_aux:
-       self.old_jdc_aux.close()
-
-  def restoreFichierInit(self):
-    """
-       Restaure le fichier init enregistre dans old_xxx
-    """
-    self.fichier_ini=self.old_fic
-    self.fichier_text=self.old_text
-    self.fichier_err=self.old_err
-    self.contexte_fichier_init=self.old_context
-    self.recorded_units=self.old_units
-    self.etapes=self.old_etapes
-    self.jdc_aux=self.old_jdc_aux
-
-  def forceFichierInit(self):
-    """
-       Force le remplacement du fichier init meme si le remplacant est en erreur
-    """
-    # Reinitialisation complete du compte-rendu d'erreurs
-    self.jdc_aux.cr=self.jdc_aux.CR()
-    # On remplit le dictionnaire des concepts produits inclus
-    # en retirant les concepts presents dans le  contexte initial
-    # On ajoute egalement le concept produit dans le sds_dict du parent
-    # sans verification car on est sur (verification integree) que
-    # le nommage est possible
-    j_context=self.jdc_aux.getContexteAvant(None)
-    self.g_context.clear()
-    context_ini=self.jdc_aux.context_ini
-    for k,v in j_context.items():
-       if not k in context_ini or context_ini[k] != v:
-           self.g_context[k]=v
-           self.parent.sds_dict[k]=v
-    # On recupere le contexte courant
-    self.current_context=self.jdc_aux.current_context
-    self.index_etape_courante=self.jdc_aux.index_etape_courante
-    self.contexte_fichier_init = j_context
-    self.fichier_err = None
-
-    # On enregistre la modification de fichier
-    self.initModif()
-    self.state="undetermined"
-    self.recordUnite()
-    # Le contexte du parent doit etre reinitialise car les concepts produits ont change
-    self.parent.resetContext()
-
-    # On remplace les anciens concepts par les nouveaux (y compris ajouts 
-    # et suppression) et on propage les modifications aux etapes precedentes et suivantes
-    # reevalueSdJdc construit la liste des differences entre les contextes contexte_fichier_init
-    # et old_contexte_fichier_init et effectue les destructions et remplacements de concept
-    # necessaires
-    self.old_contexte_fichier_init=self.old_context
-    self.reevalueSdJdc()
-    self.finModif()
-    if self.old_jdc_aux:
-       self.old_jdc_aux.close()
-
-    self.jdc_aux.forceContexte(self.g_context)
-
-  def buildInclude(self,fichier,text):
-    import Extensions.jdc_include
-    self.JdC_aux=Extensions.jdc_include.JdC_include
-    # un include partage la table des unites avec son parent (jdc)
-    self.recorded_units=self.parent.recorded_units
-    self.buildJdcaux(fichier,text)
-
-  def buildPoursuite(self,fichier,text):
-    import Extensions.jdc_include
-    self.JdC_aux=Extensions.jdc_include.JdC_poursuite
-    # une poursuite a sa propre table d'unites
-    self.recorded_units={}
-    self.buildJdcaux(fichier,text)
-       
-
-  def buildIncludeInclude(self,text):
-    import Extensions.jdc_include
-    self.JdC_aux=Extensions.jdc_include.JdC_include
-    # un include partage la table des unites avec son parent (jdc)
-
-
-  def buildIncludeEtape(self,text,doitEtreValide = 0):
-    import Extensions.jdc_include
-    self.JdC_aux=Extensions.jdc_include.JdC_include
-    # un include partage la table des unites avec son parent (jdc)
-    #self.buildJdcauxInclude(text)
-    # Attention fonctionne pour import_Zone de MT
-    # a adapter eventuellement
-    try :
-    #if 1 :
-       contexte = self.getContexteJdc(None,text,doitEtreValide)
-    except EficasException: 
-       return 0
-     
-    for e in self.etapes: 
-        e.niveau=self.niveau
-        e.parent=self.parent
-        e.state='change'
-
-    index=self.jdc.etapes.index(self)
-    self.jdc.etapes=self.jdc.etapes[:index+1]+self.etapes+self.jdc.etapes[index+1:]
-
-    self.g_context={}
-    self.etapes=[]
-    self.jdc.resetContext()
-    self.jdc_aux=None
-    CONTEXT.unsetCurrentStep()
-    return 1
-
-
-  def buildJdcauxInclude(self,text):
-       
-       try :
-         contexte = self.getContexteJdc(None,text)
-       except EficasException:
-         pass
-       index=self.jdc.etapes.index(self)
-       for e in self.etapes:
-           e.niveau=self.niveau
-       self.jdc.etapes=self.jdc.etapes[:index+1]+self.etapes+self.jdc.etapes[index+1:]
-       self.g_context={}
-       self.etapes=[]
-       self.jdc_aux=None
-       CONTEXT.unsetCurrentStep()
-
-  def buildJdcaux(self,fichier,text):
-    """
-         Cree un jdc auxiliaire initialise avec text. 
-         Initialise le nom du fichier associe avec fichier
-         N'enregistre pas d'association unite <-> fichier
-    """
-    self.fichier_ini = fichier
-    self.fichier_text= text
-    self.fichier_unite=None
-    self.fichier_err = None
-    try:
-       contexte = self.getContexteJdc(fichier,text)
-       if contexte is None :
-          # Impossible de construire le jdc auxiliaire (sortie par None)
-          # On simule une sortie par exception
-          raise EficasException(tr("Impossible de construire le jeu de commandes correspondant au fichier"))
-       else:
-          # La construction du jdc auxiliaire est allee au bout
-          self.contexte_fichier_init = contexte
-       self.initModif()
-       self.finModif()
-    except:
-       # Impossible de construire le jdc auxiliaire (sortie par exception)
-       l=traceback.format_exception_only("Fichier invalide",sys.exc_info()[1])
-       if self.jdc.appli is not None:
-          self.jdc.appli.afficheAlerte(tr("Erreur lors de l'evaluation du fichier inclus"),
-                                       message= tr("Ce fichier ne sera pas pris en compte\n %s",''.join(l)))
-
-       self.g_context={}
-       self.etapes=[]
-       self.jdc_aux=None
-       self.fichier_err = ''.join(l)
-       self.contexte_fichier_init={}
-       self.initModif()
-       self.finModif()
-       raise EficasException(" ")
-
-  def makeContexteInclude(self,fichier,text):
-    """
-        Cette methode sert a craer un contexte en interpratant un texte source Python.
-    """
-    #print ("makeContexteInclude",fichier)
-    # on recupere le contexte d'un nouveau jdc dans lequel on interprete text
-    contexte = self.getContexteJdc(fichier,text)
-    if contexte == None :
-      raise EficasException("Impossible de construire le jeu de commandes correspondant au fichier")
-    else:
-      # Pour les macros de type include : INCLUDE, INCLUDE_MATERIAU et POURSUITE
-      # l'attribut g_context est un dictionnaire qui contient les concepts produits par inclusion
-      # l'attribut contexte_fichier_init est un dictionnaire qui contient les concepts produits
-      # en sortie de macro. g_context est obtenu en retirant de contexte_fichier_init les concepts
-      # existants en debut de macro contenus dans context_ini (dans getContexteJdc)
-      # g_context est utilise pour avoir les concepts produits par la macro
-      # contexte_fichier_init est utilise pour avoir les concepts supprimes par la macro
-      self.contexte_fichier_init = contexte
-    #print ("fin makeContexteInclude",fichier)
-
-  def reevalueFichierInitObsolete(self):
-      """Recalcule les concepts produits par le fichier enregistre"""
-      #print "reevalue_fichier_init"
-      old_context=self.contexte_fichier_init
-      try:
-         self.makeContexteInclude(self.fichier_ini ,self.fichier_text)
-      except:
-         l=traceback.format_exception_only("Fichier invalide",sys.exc_info()[1])
-         self.fichier_err = ''.join(l)
-         self.g_context={}
-         self.etapes=[]
-         self.jdc_aux=None
-         self.old_contexte_fichier_init=old_context
-         self.contexte_fichier_init={}
-         self.reevalueSdJdc()
-         return
-
-      # L'evaluation s'est bien passee
-      self.fichier_err = None
-      self.old_contexte_fichier_init=old_context
-      self.reevalueSdJdc()
-
-  def updateFichierInit(self,unite):
-      """Reevalue le fichier init sans demander (dans la mesure du possible) a l'utilisateur 
-         les noms des fichiers
-         Ceci suppose que les relations entre unites et noms ont ete memorisees prealablement
-         L'include a ete initialise precedemment. Le jdc auxiliaire existe.
-      """
-      #print "updateFichierInit",unite,self.fichier_unite 
-      self.old_contexte_fichier_init=self.contexte_fichier_init
-      old_fichier_ini=self.fichier_ini
-      if not hasattr(self,"jdc_aux"):self.jdc_aux=None
-      old_jdc_aux=self.jdc_aux
-
-      #print "updateFichierInit",self,self.parent,self.parent.recorded_units
-
-      if self.fichier_unite is None:
-         # L'unite n'etait pas definie precedemment. On ne change que l'unite
-         #print "updateFichierInit","pas de changement dans include"
-         self.fichier_unite=unite
-         return
-      elif unite == self.fichier_unite :
-         # L'unite n'a pas change
-         #print "updateFichierInit","pas de changement dans include 3"
-         return
-      elif unite != self.fichier_unite :
-         # L'unite etait definie precedemment. On remplace l'include 
-         #
-         f,text=self.getFileMemo(unite=unite,fic_origine=self.parent.nom)
-         if f is None:
-            # Le fichier associe n'a pas pu etre defini
-            # on change l'unite associee mais pas l'include
-            #print "updateFichierInit","pas de changement dans include 2"
-            self.fichier_unite=unite
+                if isinstance(self.old_contexte_fichier_init[old_key],ASSD):
+                # Un concept de meme nom existe
+                    old_class=self.old_contexte_fichier_init[old_key].__class__
+                    if not isinstance(self.contexte_fichier_init[old_key],old_class):
+                        # S'il n'est pas d'une classe derivee, on le supprime
+                        l_sd_suppressed.append(self.old_contexte_fichier_init[old_key])
+                    else:
+                        l_sd_replaced.append((self.old_contexte_fichier_init[old_key],self.contexte_fichier_init[old_key]))
+        return l_sd_suppressed,l_sd_replaced
+
+    def controlSdprods(self,d):
+        """
+            Cette methode doit verifier que les concepts produits par la
+            commande ne sont pas incompatibles avec le contexte fourni (d).
+            Si c'est le cas, le concept produit doit etre supprime
+            Si la macro a elle meme des etapes, elle doit propager
+            le traitement (voir methode controlJdcContextApres de I_JDC)
+        """
+        #print ("I_MACRO_ETAPE.controlSdprods",d.keys(),self,self.nom,self.sd and self.sd.nom)
+        if self.sd:
+            if self.sd.nom in d:
+                    # Le concept est deja defini
+                if self.reuse and self.reuse is d[self.sd.nom]:
+                    # Le concept est reutilise : situation normale
+                    pass
+                else:
+                    # Redefinition du concept, on l'annule
+                    #XXX on pourrait simplement annuler son nom pour conserver les objets
+                    # l'utilisateur n'aurait alors qu'a renommer le concept (faisable??)
+                    self.initModif()
+                    sd=self.sd
+                    self.sd=self.reuse=self.sdnom=None
+                    self.parent.deleteConceptAfterEtape(self,sd)
+                    self.finModif()
+
+        # On verifie les concepts a droite du signe =
+        self.initModif()
+        sdprods=self.sdprods[:]
+        self.sdprods=[]
+        for co in sdprods:
+            if co.nom in d and co is not d[co.nom] :
+                #nettoie les mots cles de l'etape qui ont comme valeur co
+                self.deleteConcept(co)
+                #supprime les references a co dans les etapes suivantes
+                self.parent.deleteConceptAfterEtape(self,co)
+            else:
+                self.sdprods.append(co)
+        self.finModif()
+
+        for e in self.etapes:
+            e.controlSdprods(d)
+            e.updateContext(d)
+
+    def supprimeSdprod(self,sd):
+        """
+           Supprime le concept produit sd s'il est produit par l'etape
+        """
+        #print ('supprimeSdprod de MACRO_ETAPE')
+        if sd in self.sdprods:
+            self.initModif()
+            self.parent.delSdprod(sd)
+            self.sdprods.remove(sd)
+            self.finModif()
+            self.parent.deleteConcept(sd)
             return
-         else:
-            self.fichier_ini = f
-            self.fichier_text=text
-            self.fichier_unite=unite
-         #print "updateFichierInit",self.recorded_units
-
-      #print "updateFichierInit",self.fichier_ini,self.fichier_text,self.fichier_unite
 
-      if old_fichier_ini == self.fichier_ini:
-         # Le fichier inclus n'a pas change. On ne recree pas le contexte
-         # mais on enregistre le changement d'association unite <-> fichier
-         #print "updateFichierInit.fichier inchange",self.jdc_aux.context_ini
-         self.parent.recordUnit(unite,self)
-         return
+        if sd is not self.sd :return
+        if self.sd is not None :
+            self.initModif()
+            self.parent.delSdprod(sd)
+            self.sd=None
+            self.finModif()
+            self.parent.deleteConcept(sd)
+
+    def supprimeSdProds(self):
+        """
+            Fonction: Lors de la destruction de la macro-etape, detruit tous les concepts produits
+            Un operateur n a qu un concept produit
+            Une procedure n'en a aucun
+            Une macro en a en general plus d'un
+        """
+        #print "supprimeSdProds"
+        if self.reuse is not self.sd :
+            # l'etape n'est pas reentrante
+            # le concept retourne par l'etape est a supprimer car il etait
+            # cree par l'etape
+            if self.sd != None :
+                self.parent.delSdprod(self.sd)
+                self.parent.deleteConcept(self.sd)
+        # On detruit les concepts a droite du signe =
+        for co in self.sdprods:
+            self.parent.delSdprod(co)
+            self.parent.deleteConcept(co)
+        # Si la macro a des etapes et des concepts inclus, on les detruit
+        for nom_sd,co in self.g_context.items():
+            if not isinstance(co,ASSD):continue
+            self.parent.delSdprod(co)
+            self.parent.deleteConcept(co)
+        # On met g_context a blanc
+        self.g_context={}
 
-      try:
+    def close(self):
+        #print "close",self
+        if hasattr(self,"jdc_aux") and self.jdc_aux:
+            # La macro a un jdc auxiliaire inclus. On demande sa fermeture
+            self.jdc_aux.close()
+
+    def resetContext(self):
+        if hasattr(self,"jdc_aux") and self.jdc_aux:
+            # La macro a un jdc auxiliaire inclus. On demande la reinitialisation du contexte
+            self.jdc_aux.resetContext()
+
+    def updateConcept(self,sd):
+        I_ETAPE.ETAPE.updateConcept(self,sd)
+        for etape in self.etapes:
+            etape.updateConcept(sd)
+
+    def deleteConcept(self,sd):
+        """
+            Fonction : Mettre a jour les mots cles de l etape et eventuellement
+            le concept produit si reuse suite a la disparition du concept sd
+            Seuls les mots cles simples MCSIMP font un traitement autre
+            que de transmettre aux fils
+        """
+        #print "deleteConcept",sd
+        I_ETAPE.ETAPE.deleteConcept(self,sd)
+        for etape in self.etapes:
+            etape.deleteConcept(sd)
+
+    def replaceConcept(self,old_sd,sd):
+        """
+            Fonction : Mettre a jour les mots cles de l etape et le concept produit si reuse
+            suite au remplacement  du concept old_sd par sd
+        """
+        #print "replaceConcept",old_sd,sd
+        I_ETAPE.ETAPE.replaceConcept(self,old_sd,sd)
+        for etape in self.etapes:
+            etape.replaceConcept(old_sd,sd)
+
+    def changeFichierInit(self,new_fic,text):
+        """
+           Tente de changer le fichier include. Le precedent include est conserve
+           dans old_xxx
+        """
+        if not hasattr(self,'fichier_ini'):
+            self.fichier_ini=None
+            self.fichier_text=None
+            self.fichier_err="Le fichier n'est pas defini"
+            self.contexte_fichier_init={}
+            self.recorded_units={}
+            self.jdc_aux=None
+            self.fichier_unite="PasDefini"
+            import Extensions.jdc_include
+            self.JdC_aux=Extensions.jdc_include.JdC_include
+
+        self.old_fic = self.fichier_ini
+        self.old_text = self.fichier_text
+        self.old_err = self.fichier_err
+        self.old_context=self.contexte_fichier_init
+        self.old_units=self.recorded_units
+        self.old_etapes=self.etapes
+        self.old_jdc_aux=self.jdc_aux
+
+        self.fichier_ini = new_fic
+        self.fichier_text=text
+
+        try:
+            self.makeContexteInclude(new_fic,text)
+        except:
+            l=traceback.format_exception_only(tr("Fichier invalide %s", sys.exc_info()[1]))
+            self.fichier_err=''.join(l)
+            raise EficasException(self.fichier_err)
+
+        # L'evaluation de text dans un JDC auxiliaire s'est bien passe
+        # on peut poursuivre le traitement
+        self.initModif()
+        self.state="undetermined"
         self.fichier_err=None
-        self.makeContexteInclude(self.fichier_ini,self.fichier_text)
-        # Les 3 attributs fichier_ini fichier_text recorded_units doivent etre corrects
-        # avant d'appeler changeUnit
-      except:
-        # Erreurs lors de l'evaluation de text dans un JDC auxiliaire
-        l=traceback.format_exception_only("Fichier invalide",sys.exc_info()[1])
-        # On conserve la memoire du nouveau fichier
-        # mais on n'utilise pas les concepts crees par ce fichier
-        # on met l'etape en erreur : fichier_err=''.join(l)
-        self.fichier_err=''.join(l)
+        # On enregistre la modification de fichier
+        self.recordUnite()
+        # Le contexte du parent doit etre reinitialise car les concepts produits ont change
+        self.parent.resetContext()
+
+        # Si des concepts ont disparu lors du changement de fichier, on demande leur suppression
+        self.old_contexte_fichier_init=self.old_context
+        self.reevalueSdJdc()
+
+        self.finModif()
+        if self.old_jdc_aux:
+            self.old_jdc_aux.close()
+
+    def restoreFichierInit(self):
+        """
+           Restaure le fichier init enregistre dans old_xxx
+        """
+        self.fichier_ini=self.old_fic
+        self.fichier_text=self.old_text
+        self.fichier_err=self.old_err
+        self.contexte_fichier_init=self.old_context
+        self.recorded_units=self.old_units
+        self.etapes=self.old_etapes
+        self.jdc_aux=self.old_jdc_aux
+
+    def forceFichierInit(self):
+        """
+           Force le remplacement du fichier init meme si le remplacant est en erreur
+        """
+        # Reinitialisation complete du compte-rendu d'erreurs
+        self.jdc_aux.cr=self.jdc_aux.CR()
+        # On remplit le dictionnaire des concepts produits inclus
+        # en retirant les concepts presents dans le  contexte initial
+        # On ajoute egalement le concept produit dans le sdsDict du parent
+        # sans verification car on est sur (verification integree) que
+        # le nommage est possible
+        j_context=self.jdc_aux.getContexteAvant(None)
+        self.g_context.clear()
+        context_ini=self.jdc_aux.context_ini
+        for k,v in j_context.items():
+            if not k in context_ini or context_ini[k] != v:
+                self.g_context[k]=v
+                self.parent.sdsDict[k]=v
+        # On recupere le contexte courant
+        self.currentContext=self.jdc_aux.currentContext
+        self.index_etape_courante=self.jdc_aux.index_etape_courante
+        self.contexte_fichier_init = j_context
+        self.fichier_err = None
+
+        # On enregistre la modification de fichier
+        self.initModif()
+        self.state="undetermined"
+        self.recordUnite()
+        # Le contexte du parent doit etre reinitialise car les concepts produits ont change
+        self.parent.resetContext()
+
+        # On remplace les anciens concepts par les nouveaux (y compris ajouts
+        # et suppression) et on propage les modifications aux etapes precedentes et suivantes
+        # reevalueSdJdc construit la liste des differences entre les contextes contexte_fichier_init
+        # et old_contexte_fichier_init et effectue les destructions et remplacements de concept
+        # necessaires
+        self.old_contexte_fichier_init=self.old_context
+        self.reevalueSdJdc()
+        self.finModif()
+        if self.old_jdc_aux:
+            self.old_jdc_aux.close()
+
+        self.jdc_aux.forceContexte(self.g_context)
+
+    def buildInclude(self,fichier,text):
+        import Extensions.jdc_include
+        self.JdC_aux=Extensions.jdc_include.JdC_include
+        # un include partage la table des unites avec son parent (jdc)
+        self.recorded_units=self.parent.recorded_units
+        self.buildJdcaux(fichier,text)
+
+    def buildPoursuite(self,fichier,text):
+        import Extensions.jdc_include
+        self.JdC_aux=Extensions.jdc_include.JdC_poursuite
+        # une poursuite a sa propre table d'unites
+        self.recorded_units={}
+        self.buildJdcaux(fichier,text)
+
+
+    def buildIncludeInclude(self,text):
+        import Extensions.jdc_include
+        self.JdC_aux=Extensions.jdc_include.JdC_include
+        # un include partage la table des unites avec son parent (jdc)
+
+
+    def buildIncludeEtape(self,text,doitEtreValide = 0):
+        import Extensions.jdc_include
+        self.JdC_aux=Extensions.jdc_include.JdC_include
+        # un include partage la table des unites avec son parent (jdc)
+        #self.buildJdcauxInclude(text)
+        # Attention fonctionne pour import_Zone de MT
+        # a adapter eventuellement
+        try :
+        #if 1 :
+            contexte = self.getContexteJdc(None,text,doitEtreValide)
+        except EficasException:
+            return 0
+
+        for e in self.etapes:
+            e.niveau=self.niveau
+            e.parent=self.parent
+            e.state='change'
+
+        index=self.jdc.etapes.index(self)
+        self.jdc.etapes=self.jdc.etapes[:index+1]+self.etapes+self.jdc.etapes[index+1:]
+
         self.g_context={}
         self.etapes=[]
+        self.jdc.resetContext()
         self.jdc_aux=None
-        self.contexte_fichier_init={}
+        CONTEXT.unsetCurrentStep()
+        return 1
+
+
+    def buildJdcauxInclude(self,text):
+
+        try :
+            contexte = self.getContexteJdc(None,text)
+        except EficasException:
+            pass
+        index=self.jdc.etapes.index(self)
+        for e in self.etapes:
+            e.niveau=self.niveau
+        self.jdc.etapes=self.jdc.etapes[:index+1]+self.etapes+self.jdc.etapes[index+1:]
+        self.g_context={}
+        self.etapes=[]
+        self.jdc_aux=None
+        CONTEXT.unsetCurrentStep()
+
+    def buildJdcaux(self,fichier,text):
+        """
+             Cree un jdc auxiliaire initialise avec text.
+             Initialise le nom du fichier associe avec fichier
+             N'enregistre pas d'association unite <-> fichier
+        """
+        self.fichier_ini = fichier
+        self.fichier_text= text
+        self.fichier_unite=None
+        self.fichier_err = None
+        try:
+            contexte = self.getContexteJdc(fichier,text)
+            if contexte is None :
+            # Impossible de construire le jdc auxiliaire (sortie par None)
+            # On simule une sortie par exception
+                raise EficasException(tr("Impossible de construire le jeu de commandes correspondant au fichier"))
+            else:
+                # La construction du jdc auxiliaire est allee au bout
+                self.contexte_fichier_init = contexte
+            self.initModif()
+            self.finModif()
+        except:
+            # Impossible de construire le jdc auxiliaire (sortie par exception)
+            l=traceback.format_exception_only("Fichier invalide",sys.exc_info()[1])
+            if self.jdc.editor is not None:
+                self.jdc.editor.afficheAlerte(tr("Erreur lors de l'evaluation du fichier inclus"),
+                                             message= tr("Ce fichier ne sera pas pris en compte\n %s",''.join(l)))
+
+            self.g_context={}
+            self.etapes=[]
+            self.jdc_aux=None
+            self.fichier_err = ''.join(l)
+            self.contexte_fichier_init={}
+            self.initModif()
+            self.finModif()
+            raise EficasException(" ")
+
+    def makeContexteInclude(self,fichier,text):
+        """
+            Cette methode sert a craer un contexte en interpratant un texte source Python.
+        """
+        #print ("makeContexteInclude",fichier)
+        # on recupere le contexte d'un nouveau jdc dans lequel on interprete text
+        contexte = self.getContexteJdc(fichier,text)
+        #print (contexte)
+        if contexte == None :
+            raise EficasException("Impossible de construire le jeu de commandes correspondant au fichier")
+        else:
+            # Pour les macros de type include : INCLUDE, INCLUDE_MATERIAU et POURSUITE
+            # l'attribut g_context est un dictionnaire qui contient les concepts produits par inclusion
+            # l'attribut contexte_fichier_init est un dictionnaire qui contient les concepts produits
+            # en sortie de macro. g_context est obtenu en retirant de contexte_fichier_init les concepts
+            # existants en debut de macro contenus dans context_ini (dans getContexteJdc)
+            # g_context est utilise pour avoir les concepts produits par la macro
+            # contexte_fichier_init est utilise pour avoir les concepts supprimes par la macro
+            self.contexte_fichier_init = contexte
+        #print ("fin makeContexteInclude",fichier)
+
+    def reevalueFichierInitObsolete(self):
+        """Recalcule les concepts produits par le fichier enregistre"""
+        #print "reevalue_fichier_init"
+        old_context=self.contexte_fichier_init
+        try:
+            self.makeContexteInclude(self.fichier_ini ,self.fichier_text)
+        except:
+            l=traceback.format_exception_only("Fichier invalide",sys.exc_info()[1])
+            self.fichier_err = ''.join(l)
+            self.g_context={}
+            self.etapes=[]
+            self.jdc_aux=None
+            self.old_contexte_fichier_init=old_context
+            self.contexte_fichier_init={}
+            self.reevalueSdJdc()
+            return
+
+        # L'evaluation s'est bien passee
+        self.fichier_err = None
+        self.old_contexte_fichier_init=old_context
+        self.reevalueSdJdc()
+
+    def updateFichierInit(self,unite):
+        """Reevalue le fichier init sans demander (dans la mesure du possible) a l'utilisateur
+           les noms des fichiers
+           Ceci suppose que les relations entre unites et noms ont ete memorisees prealablement
+           L'include a ete initialise precedemment. Le jdc auxiliaire existe.
+        """
+        #print "updateFichierInit",unite,self.fichier_unite
+        self.old_contexte_fichier_init=self.contexte_fichier_init
+        old_fichier_ini=self.fichier_ini
+        if not hasattr(self,"jdc_aux"):self.jdc_aux=None
+        old_jdc_aux=self.jdc_aux
+
+        #print "updateFichierInit",self,self.parent,self.parent.recorded_units
+
+        if self.fichier_unite is None:
+            # L'unite n'etait pas definie precedemment. On ne change que l'unite
+            #print "updateFichierInit","pas de changement dans include"
+            self.fichier_unite=unite
+            return
+        elif unite == self.fichier_unite :
+            # L'unite n'a pas change
+            #print "updateFichierInit","pas de changement dans include 3"
+            return
+        elif unite != self.fichier_unite :
+            # L'unite etait definie precedemment. On remplace l'include
+            #
+            f,text=self.getFileMemo(unite=unite,fic_origine=self.parent.nom)
+            if f is None:
+                # Le fichier associe n'a pas pu etre defini
+                # on change l'unite associee mais pas l'include
+                #print "updateFichierInit","pas de changement dans include 2"
+                self.fichier_unite=unite
+                return
+            else:
+                self.fichier_ini = f
+                self.fichier_text=text
+                self.fichier_unite=unite
+            #print "updateFichierInit",self.recorded_units
+
+        #print "updateFichierInit",self.fichier_ini,self.fichier_text,self.fichier_unite
+
+        if old_fichier_ini == self.fichier_ini:
+            # Le fichier inclus n'a pas change. On ne recree pas le contexte
+            # mais on enregistre le changement d'association unite <-> fichier
+            #print "updateFichierInit.fichier inchange",self.jdc_aux.context_ini
+            self.parent.recordUnit(unite,self)
+            return
 
-      if old_jdc_aux:
-         old_jdc_aux.close()
-      self.parent.recordUnit(unite,self)
-      # Le contexte du parent doit etre reinitialise car les concepts 
-      # produits ont change
-      self.parent.resetContext()
-      # Si des concepts ont disparu lors du changement de fichier, on 
-      # demande leur suppression
-      self.reevalueSdJdc()
-      #print "updateFichierInit",self.jdc_aux.context_ini.keys()
-
-  def recordUnite(self):
-      #print "recordUnite",self.nom
-      if self.nom == "POURSUITE":
-         self.parent.recordUnit(None,self)
-      else:
-         if hasattr(self,'fichier_unite') : 
-            self.parent.recordUnit(self.fichier_unite,self)
-
-  def getFileMemo(self, unite=None, fname=None, fic_origine=''):
-      """Retourne le nom du fichier et le source correspondant a l'unite unite
-         Initialise en plus recorded_units
-      """
-      #print "getFileMemo",unite,fic_origine,self,self.parent
-      #print self.parent.recorded_units
-      if unite is None:
-         # On est dans le cas d'une poursuite. On ne reutilise aucune unite de parent
-         units={}
-      else:
-         # On est dans le cas d'un include. On reutilise toutes les unites de parent
-         units=self.parent.recorded_units
-
-      if unite in self.parent.recorded_units:
-         f,text,units=self.parent.recorded_units[unite]
-      elif self.jdc :
-         if fname:
-             if not osp.exists(fname):
-                raise AsException(fname + tr(" n'est pas un fichier existant"))
-             f = fname
-             text = open(fname, 'r').read()
-         else:
-             f,text=self.jdc.getFile(unite=unite, fic_origine=fic_origine)
-      else:
-         f,text=None,None
-
-      self.recorded_units=units
-      if f is None and self.jdc.appli:
-         self.jdc.appli.afficheAlerte(tr("Erreur lors de l'evaluation du fichier inclus"),
-               message= tr("Ce fichier ne sera pas pris en compte\nLe fichier associe n'est pas defini"))
-      return f,text
-
-  def updateContext(self,d):
-      """
-         Met a jour le contexte contenu dans le dictionnaire d
-         Une MACRO_ETAPE peut ajouter plusieurs concepts dans le contexte
-         Une fonction enregistree dans op_init peut egalement modifier le contexte
-      """
-      #print ("updateContext",self,self.nom,d.keys())
-      if hasattr(self,"jdc_aux") and self.jdc_aux:
-            #ATTENTION: updateContext NE DOIT PAS appeler resetContext
-            # car il appelle directement ou indirectement updateContext
-            # equivalent a resetContext. Evite les recursions
+        try:
+            self.fichier_err=None
+            self.makeContexteInclude(self.fichier_ini,self.fichier_text)
+            # Les 3 attributs fichier_ini fichier_text recorded_units doivent etre corrects
+            # avant d'appeler changeUnit
+        except:
+            # Erreurs lors de l'evaluation de text dans un JDC auxiliaire
+            l=traceback.format_exception_only("Fichier invalide",sys.exc_info()[1])
+            # On conserve la memoire du nouveau fichier
+            # mais on n'utilise pas les concepts crees par ce fichier
+            # on met l'etape en erreur : fichier_err=''.join(l)
+            self.fichier_err=''.join(l)
+            self.g_context={}
+            self.etapes=[]
+            self.jdc_aux=None
+            self.contexte_fichier_init={}
+
+        if old_jdc_aux:
+            old_jdc_aux.close()
+        self.parent.recordUnit(unite,self)
+        # Le contexte du parent doit etre reinitialise car les concepts
+        # produits ont change
+        self.parent.resetContext()
+        # Si des concepts ont disparu lors du changement de fichier, on
+        # demande leur suppression
+        self.reevalueSdJdc()
+        #print "updateFichierInit",self.jdc_aux.context_ini.keys()
+
+    def recordUnite(self):
+        #print "recordUnite",self.nom
+        if self.nom == "POURSUITE":
+            self.parent.recordUnit(None,self)
+        else:
+            if hasattr(self,'fichier_unite') :
+                self.parent.recordUnit(self.fichier_unite,self)
+
+    def getFileMemo(self, unite=None, fname=None, fic_origine=''):
+        """Retourne le nom du fichier et le source correspondant a l'unite unite
+           Initialise en plus recorded_units
+        """
+        #print "getFileMemo",unite,fic_origine,self,self.parent
+        #print self.parent.recorded_units
+        if unite is None:
+            # On est dans le cas d'une poursuite. On ne reutilise aucune unite de parent
+            units={}
+        else:
+            # On est dans le cas d'un include. On reutilise toutes les unites de parent
+            units=self.parent.recorded_units
+
+        if unite in self.parent.recorded_units:
+            f,text,units=self.parent.recorded_units[unite]
+        elif self.jdc :
+            if fname:
+                if not osp.exists(fname):
+                    raise AsException(fname + tr(" n'est pas un fichier existant"))
+                f = fname
+                text = open(fname, 'r').read()
+            else:
+                f,text=self.jdc.getFile(unite=unite, fic_origine=fic_origine)
+        else:
+            f,text=None,None
+
+        self.recorded_units=units
+        if f is None and self.jdc.editor:
+            self.jdc.editor.afficheAlerte(tr("Erreur lors de l'evaluation du fichier inclus"),
+                  message= tr("Ce fichier ne sera pas pris en compte\nLe fichier associe n'est pas defini"))
+        return f,text
+
+    def updateContext(self,d):
+        """
+           Met a jour le contexte contenu dans le dictionnaire d
+           Une MACRO_ETAPE peut ajouter plusieurs concepts dans le contexte
+           Une fonction enregistree dans op_init peut egalement modifier le contexte
+        """
+        #print ("updateContext",self,self.nom,d.keys())
+        if hasattr(self,"jdc_aux") and self.jdc_aux:
+                #ATTENTION: updateContext NE DOIT PAS appeler resetContext
+                # car il appelle directement ou indirectement updateContext
+                # equivalent a resetContext. Evite les recursions
             self.jdc_aux.context_ini=d.copy()
-            self.jdc_aux.current_context={}
+            self.jdc_aux.currentContext={}
             self.jdc_aux.index_etape_courante=0
             #ATTENTION: il ne faut pas utiliser self.jdc_aux.getContexteAvant
             #car cet appel conduit a des remontees multiples incoherentes dans le
-            # ou les parents. 
+            # ou les parents.
             #get_context_avant appelle updateContext qui NE DOIT PAS appeler getContexteAvant
             #On n'a besoin que d'un update local connaissant
             # le contexte amont : d qui sert a reinitialiser self.context_ini
@@ -797,449 +796,452 @@ class MACRO_ETAPE(I_ETAPE.ETAPE):
                 e.updateContext(d)
             return
 
-      if type(self.definition.op_init) == types.FunctionType:
-        self.definition.op_init(*(self,d))
-      if self.sd != None :d[self.sd.nom]=self.sd
-      for co in self.sdprods:
-        d[co.nom]=co
-      #print "updateContext.fin",d.keys()
+        if type(self.definition.op_init) == types.FunctionType:
+            self.definition.op_init(*(self,d))
+        if self.sd != None :d[self.sd.nom]=self.sd
+        for co in self.sdprods:
+            d[co.nom]=co
+        #print "updateContext.fin",d.keys()
 
 #ATTENTION SURCHARGE : cette methode surcharge celle de Noyau (a garder en synchro)
-  def copy(self):
-      etape=Noyau.N_MACRO_ETAPE.MACRO_ETAPE.copy(self)
-      if hasattr(etape,"etapes") :etape.etapes=[]
-      if hasattr(etape,"jdc_aux") : 
-         etape.jdc_aux=None
-         del etape.fichier_ini
-      return etape
-
-  def supprime(self):
-      #print "supprime",self
-      if hasattr(self,"jdc_aux") and self.jdc_aux:
-         self.jdc_aux.supprime_aux()
-         self.jdc_aux=None
-      Noyau.N_MACRO_ETAPE.MACRO_ETAPE.supprime(self)
+    def copy(self):
+        etape=Noyau.N_MACRO_ETAPE.MACRO_ETAPE.copy(self)
+        if hasattr(etape,"etapes") :etape.etapes=[]
+        if hasattr(etape,"jdc_aux") :
+            etape.jdc_aux=None
+            del etape.fichier_ini
+        return etape
+
+    def supprime(self):
+        #print "supprime",self
+        if hasattr(self,"jdc_aux") and self.jdc_aux:
+            self.jdc_aux.supprime_aux()
+            self.jdc_aux=None
+        Noyau.N_MACRO_ETAPE.MACRO_ETAPE.supprime(self)
 
 #ATTENTION SURCHARGE : cette methode surcharge celle de Noyau (a garder en synchro)
-  def getFile(self,unite=None,fic_origine=''):
-      """Retourne le nom du fichier et le source correspondant a l'unite unite
-      """
-      if self.jdc :
-         f,text=self.jdc.getFile(unite=unite,fic_origine=fic_origine)
-      else:
-         f,text=None,None
-      return f,text
-
-
-  def makeInclude3(self,fichier=None):
-      self.makeIncludeCarmel(fichier)
-
-
-  def makeIncludeCND(self,fichier=None):
-      unite=999
-      if fichier==None : return
-      if hasattr(self,'fichier_ini') : print((self.fichier_ini))
-      if hasattr(self,'fichier_ini') : return
-      self.fichier_ini=fichier
-      from acquiertGroupes import getGroupes
-      erreur,listeGroupes=getGroupes(fichier)
-      if erreur != "" : print ("a traiter")
-      texteSources=""
-      texteCond=""
-      texteNoCond=""
-      texteVcut=""
-      for groupe in listeGroupes :
-          if groupe[0:8]=='CURRENT_': texteSources +=groupe[8:]+"=SOURCE();\n"
-          if groupe[0:5]=='COND_':    texteCond    +=groupe[5:]+"=CONDUCTEUR();\n"
-          if groupe[0:7]=='NOCOND_':  texteNoCond  +=groupe[7:]+"=NOCOND();\n"
-          #if groupe[0:5]=='VCUT_':    texteVcut    +=groupe[5:]+"=VCUT();\n"
-          if groupe[0:5]=='VCUT_':    texteVcut    +='V_'+groupe[5:]+"=VCUT();\n"
-      texte=texteSources+texteCond+texteNoCond+texteVcut
-      #print (texte)
-      self.buildIncludeInclude(texte)
-      if CONTEXT.getCurrentStep()==None : CONTEXT.setCurrentStep(self)
-      reevalue=0
-
-  def makeIncludeCarmel(self,fichier=None):
-  # Pour Carmel
-      #print "je suis dans makeIncludeCarmel"
-      unite=999
-      if hasattr(self,'fichier_ini') : return
-      reevalue=0
-      if hasattr(self,'old_context_fichier_init' ):
-         reevalue=1
-         for concept in self.old_context_fichier_init.values():
-             self.jdc.deleteConcept(concept)
-      if fichier == None :
-         fichier=str(self.jdc.appli.getFile_dictDonnees())
-         if fichier  == str("") : 
-           self.fichier_ini="badfile"
-           self.fichier_text=""
-           self.fichier_err=tr("Le fichier n est pas defini")
-           self.parent.recordUnit(999,self)
-           try :
-              MCFils=self.getChild('FileName')
-              MCFils.setValeur(None)
-           except :
-              pass
-           raise EficasException(self.fichier_err)
-      self.fichier_ini  = fichier
-      f=open(self.fichier_ini,'r')
-      self.fichier_text=f.read()
-      f.close()
-
-      self.contexte_fichier_init={}
-      self.fichier_unite=999
-      self.fichier_err=None
-
-      try:
-      #if 1 :
-         import Extensions.jdc_include
-         self.JdC_aux=Extensions.jdc_include.JdC_include
-      except:
-      #else:
-         traceback.print_exc()
-         self.makeIncl2Except()
-         raise EficasException(" ")
-
-      try:
-      #if 1 :
-         self.makeContexteInclude(self.fichier_ini ,self.fichier_text)
-         self.old_context_fichier_init=self.contexte_fichier_init
-         self.parent.recordUnit(unite,self)
-         try :
-            MCFils=self.getChild('FileName')
-            #MCFils.setValeur(fichier)
-            #on appelle pas setValeur qui modifie le contexte ce qui fout le bazar
-            #pas de modification de bloc
-            MCFils.valeur=fichier
-            MCFils.val=fichier
-         except :
-            pass
-      except:
-      #else:
-         self.makeIncl2Except()
-      # Cette P*** de ligne suivante ne fonctionne que pour Aster
-      # si quelqu un a une idee merci de m en parler
-      #CONTEXT.setCurrentStep(self)
-
-  def makeInclude2(self,fichier=None):
-  # Pour OT
-      # gestion de l unicite SVP
-      unite=999
-
-      if hasattr(self,'fichier_ini') : return
-      reevalue=0
-      if hasattr(self,'old_context_fichier_init' ):
-         reevalue=1
-         for concept in self.old_context_fichier_init.values():
-             self.jdc.deleteConcept(concept)
-
-      if fichier == None :
-         fichier=str(self.jdc.appli.getFileVariable())
-         if fichier  == str("") : 
-           self.fichier_ini="badfile"
-           self.fichier_text=""
-           self.fichier_err=tr("Le fichier n est pas defini")
-           self.parent.recordUnit(999,self)
-           try :
-              MCFils=self.getChild('FileName')
-              MCFils.setValeur(None)
-           except :
-              pass
-           raise EficasException(self.fichier_err)
-
-      self.fichier_ini  = fichier
-      self.fichier_text = ""
-      self.contexte_fichier_init={}
-      self.fichier_unite=999
-      self.fichier_err=None
-      nbVariableOut=0
-      try :
-         from openturns import WrapperFile
-         monWrapper=WrapperFile(fichier)
-         data=monWrapper.getWrapperData()
-         maVariableListe=data.getVariableList()
-         nbVariables=maVariableListe.getSize()
-         for i in range(nbVariables) :
-             nom=maVariableListe[i].id_
-             type=maVariableListe[i].type_
-             if type :
-               #ligneTexte="%s=DETERMINISTICVARIABLE(N='%s',T='out',R=%d);\n" % (nom, nom, i)
-               ligneTexte=""
-               nbVariableOut=nbVariableOut+1
-             else :
-               ligneTexte="%s=DETERMINISTICVARIABLE(N='%s',T='in',R=%d);\n" % (nom, nom, i)
-             self.fichier_text = self.fichier_text + ligneTexte
-      except:
-         self.makeIncl2Except()
-         raise EficasException(" ")
-
-      if nbVariableOut != 1 :
-         print((nbVariableOut ,"nbVariableOut"))
-         self.makeIncl2Except(mess=tr("le fichier doit contenir une unique variable de sortie"))
-         raise EficasException(" ")
-
-      try:
-         import Extensions.jdc_include
-         self.JdC_aux=Extensions.jdc_include.JdC_include
-      except:
-         traceback.print_exc()
-         self.makeIncl2Except()
-         raise EficasException(" ")
-      
-      try:
-         print((self.fichier_ini ,self.fichier_text))
-         self.makeContexteInclude(self.fichier_ini ,self.fichier_text)
-         self.old_context_fichier_init=self.contexte_fichier_init
-         self.parent.recordUnit(unite,self)
-         try :
-            MCFils=self.getChild('FileName')
-            MCFils.setValeur(fichier)
-         except :
-            pass
-      except:
-         self.makeIncl2Except()
-
-      # recalcul validite pour la matrice eventuelle
-      if reevalue :
-         for e in self.jdc.etapes:
-           if e.nom == "VARIABLE" :
-              e.state="modified"
-              try :
-                 mc=e.getChild('ModelVariable') 
-                 mc.state="modified"
-              except :
-                 pass
-           if e.nom == "CORRELATION" :
-              e.state="modified"
-              try :
-                 mc=e.getChild('Matrix') 
-                 mc.state="modified"
-                 mcFeuille=mc.getChild('CorrelationMatrix')
-                 mcFeuille.state="modified"
-              except :
-                 pass
-              e.isValid()
-
-  def makeIncl2Except(self,mess=None):
-         l=traceback.format_exception_only(tr("Fichier invalide"),sys.exc_info()[1])
-         if self.jdc.appli is not None:
-             if mess == None :
-                     self.jdc.appli.afficheAlerte(tr("Erreur lors de l'evaluation du fichier inclus"),
-                     message= tr("Le contenu de ce fichier ne sera pas pris en compte\n %s",\
-                                                                   ''.join(l)))
-
-             else :
-                     self.jdc.appli.afficheAlerte(tr("Erreur lors de l'evaluation du fichier inclus"),
-                                            message=tr(mess))
-         #self.parent.recordUnit(unite,self)
-         self.g_context={}
-         self.etapes=[]
-         self.jdc_aux=None
-         self.fichier_err = ''.join(l)
-         self.contexte_fichier_init={}
-         try :
+    def getFile(self,unite=None,fic_origine=''):
+        """Retourne le nom du fichier et le source correspondant a l'unite unite
+        """
+        if self.jdc :
+            f,text=self.jdc.getFile(unite=unite,fic_origine=fic_origine)
+        else:
+            f,text=None,None
+        return f,text
+
+
+    def makeInclude3(self,fichier=None):
+        self.makeIncludeCarmel(fichier)
+
+
+    def makeIncludeCND(self,fichier=None):
+        unite=999
+        if fichier==None : return
+        if hasattr(self,'fichier_ini') : print((self.fichier_ini))
+        if hasattr(self,'fichier_ini') : return
+        self.fichier_ini=fichier
+        from acquiertGroupes import getGroupes
+        erreur,listeGroupes=getGroupes(fichier)
+        if erreur != "" : print ("a traiter")
+        texteSources=""
+        texteCond=""
+        texteNoCond=""
+        texteVcut=""
+        for groupe in listeGroupes :
+            if groupe[0:8]=='CURRENT_': texteSources +=groupe[8:]+"=SOURCE();\n"
+            if groupe[0:5]=='COND_':    texteCond    +=groupe[5:]+"=CONDUCTEUR();\n"
+            if groupe[0:7]=='NOCOND_':  texteNoCond  +=groupe[7:]+"=NOCOND();\n"
+            #if groupe[0:5]=='VCUT_':    texteVcut    +=groupe[5:]+"=VCUT();\n"
+            if groupe[0:5]=='VCUT_':    texteVcut    +='V_'+groupe[5:]+"=VCUT();\n"
+        texte=texteSources+texteCond+texteNoCond+texteVcut
+        #print (texte)
+        self.buildIncludeInclude(texte)
+        if CONTEXT.getCurrentStep()==None : CONTEXT.setCurrentStep(self)
+        reevalue=0
+
+    def makeIncludeCarmel(self,fichier=None):
+    # Pour Carmel
+        #print "je suis dans makeIncludeCarmel"
+        unite=999
+        if hasattr(self,'fichier_ini') : return
+        reevalue=0
+        if hasattr(self,'old_context_fichier_init' ):
+            reevalue=1
+            for concept in self.old_context_fichier_init.values():
+                self.jdc.deleteConcept(concept)
+        if fichier == None :
+            fichier=str(self.jdc.appliEficas.getFile_dictDonnees())
+            if fichier  == str("") :
+                self.fichier_ini="badfile"
+                self.fichier_text=""
+                self.fichier_err=tr("Le fichier n est pas defini")
+                self.parent.recordUnit(999,self)
+                try :
+                    MCFils=self.getChild('FileName')
+                    MCFils.setValeur(None)
+                except :
+                    pass
+                raise EficasException(self.fichier_err)
+        self.fichier_ini  = fichier
+        f=open(self.fichier_ini,'r')
+        self.fichier_text=f.read()
+        f.close()
+
+        self.contexte_fichier_init={}
+        self.fichier_unite=999
+        self.fichier_err=None
+
+        try:
+        #if 1 :
+            import Extensions.jdc_include
+            self.JdC_aux=Extensions.jdc_include.JdC_include
+        except:
+        #else:
+            traceback.print_exc()
+            self.makeIncl2Except()
+            raise EficasException(" ")
+
+        try:
+        #if 1 :
+            self.makeContexteInclude(self.fichier_ini ,self.fichier_text)
+            self.old_context_fichier_init=self.contexte_fichier_init
+            self.parent.recordUnit(unite,self)
+            try :
+                MCFils=self.getChild('FileName')
+                #MCFils.setValeur(fichier)
+                #on appelle pas setValeur qui modifie le contexte ce qui fout le bazar
+                #pas de modification de bloc
+                MCFils.valeur=fichier
+                MCFils.val=fichier
+            except :
+                pass
+        except:
+        #else:
+            self.makeIncl2Except()
+        # Cette P*** de ligne suivante ne fonctionne que pour Aster
+        # si quelqu un a une idee merci de m en parler
+        #CONTEXT.setCurrentStep(self)
+
+    def makeInclude2(self,fichier=None):
+    # Pour OT
+        # gestion de l unicite SVP
+        unite=999
+
+        if hasattr(self,'fichier_ini') : return
+        reevalue=0
+        if hasattr(self,'old_context_fichier_init' ):
+            reevalue=1
+            for concept in self.old_context_fichier_init.values():
+                self.jdc.deleteConcept(concept)
+
+        if fichier == None :
+            fichier=str(self.jdc.appliEficas.getFileVariable())
+            if fichier  == str("") :
+                self.fichier_ini="badfile"
+                self.fichier_text=""
+                self.fichier_err=tr("Le fichier n est pas defini")
+                self.parent.recordUnit(999,self)
+                try :
+                    MCFils=self.getChild('FileName')
+                    MCFils.setValeur(None)
+                except :
+                    pass
+                raise EficasException(self.fichier_err)
+
+        self.fichier_ini  = fichier
+        self.fichier_text = ""
+        self.contexte_fichier_init={}
+        self.fichier_unite=999
+        self.fichier_err=None
+        nbVariableOut=0
+        try :
+            from openturns import WrapperFile
+            monWrapper=WrapperFile(fichier)
+            data=monWrapper.getWrapperData()
+            maVariableListe=data.getVariableList()
+            nbVariables=maVariableListe.getSize()
+            for i in range(nbVariables) :
+                nom=maVariableListe[i].id_
+                type=maVariableListe[i].type_
+                if type :
+                        #ligneTexte="%s=DETERMINISTICVARIABLE(N='%s',T='out',R=%d);\n" % (nom, nom, i)
+                    ligneTexte=""
+                    nbVariableOut=nbVariableOut+1
+                else :
+                    ligneTexte="%s=DETERMINISTICVARIABLE(N='%s',T='in',R=%d);\n" % (nom, nom, i)
+                self.fichier_text = self.fichier_text + ligneTexte
+        except:
+            self.makeIncl2Except()
+            raise EficasException(" ")
+
+        if nbVariableOut != 1 :
+            self.makeIncl2Except(mess=tr("le fichier doit contenir une unique variable de sortie"))
+            raise EficasException(" ")
+
+        try:
+            import Extensions.jdc_include
+            self.JdC_aux=Extensions.jdc_include.JdC_include
+        except:
+            traceback.print_exc()
+            self.makeIncl2Except()
+            raise EficasException(" ")
+
+        try:
+            self.makeContexteInclude(self.fichier_ini ,self.fichier_text)
+            self.old_context_fichier_init=self.contexte_fichier_init
+            self.parent.recordUnit(unite,self)
+            try :
+                MCFils=self.getChild('FileName')
+                MCFils.setValeur(fichier)
+            except :
+                pass
+        except:
+            self.makeIncl2Except()
+
+        # recalcul validite pour la matrice eventuelle
+        if reevalue :
+            for e in self.jdc.etapes:
+                if e.nom == "VARIABLE" :
+                    e.state="modified"
+                    try :
+                        mc=e.getChild('ModelVariable')
+                        mc.state="modified"
+                    except :
+                        pass
+                if e.nom == "CORRELATION" :
+                    e.state="modified"
+                    try :
+                        mc=e.getChild('Matrix')
+                        mc.state="modified"
+                        mcFeuille=mc.getChild('CorrelationMatrix')
+                        mcFeuille.state="modified"
+                    except :
+                        pass
+                    e.isValid()
+
+    def makeIncl2Except(self,mess=None):
+        l=traceback.format_exception_only(tr("Fichier invalide"),sys.exc_info()[1])
+        if self.jdc.editor is not None:
+            if mess == None :
+                self.jdc.editor.afficheAlerte(tr("Erreur lors de l'evaluation du fichier inclus"),
+                message= tr("Le contenu de ce fichier ne sera pas pris en compte\n %s",\
+                                                              ''.join(l)))
+
+            else :
+                self.jdc.editor.afficheAlerte(tr("Erreur lors de l'evaluation du fichier inclus"),
+                                       message=tr(mess))
+        #self.parent.recordUnit(unite,self)
+        self.g_context={}
+        self.etapes=[]
+        self.jdc_aux=None
+        self.fichier_err = ''.join(l)
+        self.contexte_fichier_init={}
+        try :
             MCFils=self.getChild('FileName')
             MCFils.setValeur(None)
-         except :
+        except :
             pass
 
 
 #ATTENTION SURCHARGE : cette methode surcharge celle de Noyau (a garder en synchro)
-  def makeInclude(self, unite=None, fname=None):
-      """
-          Inclut un fichier dont l'unite logique est unite
-          Cette methode est appelee par la fonction sd_prod de la macro INCLUDE
-          Si l'INCLUDE est invalide, la methode doit produire une exception 
-          Sinon on retourne None. Les concepts produits par l'INCLUDE sont
-          pris en compte par le JDC parent lors du calcul du contexte (appel de ???)
-      """
-      #print "makeInclude",unite
-      # On supprime l'attribut unite qui bloque l'evaluation du source de l'INCLUDE
-      # car on ne s'appuie pas sur lui dans EFICAS mais sur l'attribut fichier_ini
-      # Si unite n'a pas de valeur, l'etape est forcement invalide. On peut retourner None
-      if not unite and not fname:
-          return
-
-      if not hasattr(self,'fichier_ini') : 
-         # Si le fichier n'est pas defini on le demande
-         f,text=self.getFileMemo(unite=unite, fname=fname, fic_origine=self.parent.nom)
-         # On memorise le fichier retourne
-         self.fichier_ini  = f
-         self.fichier_text = text
-         self.contexte_fichier_init={}
-         self.fichier_unite=unite
-         self.fichier_err=None
-         try:
-           import Extensions.jdc_include
-         except:
-           traceback.print_exc()
-           raise EficasException("pb import Extensions")
-         self.JdC_aux=Extensions.jdc_include.JdC_include
-
-         #print "makeInclude",self.fichier_ini,self.fichier_text 
-         if f is None and not text:
-             self.fichier_err=tr("Le fichier INCLUDE n est pas defini")
-             self.parent.recordUnit(unite,self)
-             raise EficasException(self.fichier_err)
-
-         try:
-           self.makeContexteInclude(self.fichier_ini ,self.fichier_text)
-           self.parent.recordUnit(unite,self)
-         except:
-           l=traceback.format_exception_only(tr("Fichier invalide %s",sys.exc_info()[1]))
-           if self.jdc.appli:
-              self.jdc.appli.afficheAlerte(tr("Erreur lors de l'evaluation du fichier inclus"),
-                                            message=tr("Le contenu de ce fichier ne sera pas pris en compte\n"+''.join(l)))
-           self.parent.recordUnit(unite,self)
-           self.g_context={}
-           self.etapes=[]
-           self.jdc_aux=None
-           self.fichier_err = ''.join(l)
-           self.contexte_fichier_init={}
-           raise EficasException(" ")
-
-      else:
-         # Si le fichier est deja defini on ne reevalue pas le fichier
-         # et on leve une exception si une erreur a ete enregistree
-         self.updateFichierInit(unite)
-         self.fichier_unite=unite
-         if self.fichier_err is not None: raise EficasException(self.fichier_err)
-        
+    #def makeInclude(self, unite=None, fname=None):
+    def makeInclude(self, unite=None, fname=None):
+        """
+            Inclut un fichier dont l'unite logique est unite
+            Cette methode est appelee par la fonction sd_prod de la macro INCLUDE
+            Si l'INCLUDE est invalide, la methode doit produire une exception
+            Sinon on retourne None. Les concepts produits par l'INCLUDE sont
+            pris en compte par le JDC parent lors du calcul du contexte (appel de ???)
+        """
+        # On supprime l'attribut unite qui bloque l'evaluation du source de l'INCLUDE
+        # car on ne s'appuie pas sur lui dans EFICAS mais sur l'attribut fichier_ini
+        # Si unite n'a pas de valeur, l'etape est forcement invalide. On peut retourner None
+        #if not unite and not fname:
+        #    return
+        # 2020 on supprime unite
+        #      attention cependant c est utilise pour poursuite
+        #      PNPN a revoir
+        if not fname : return
+
+        if not hasattr(self,'fichier_ini') :
+        # Si le fichier n'est pas defini on le demande
+            f,text=self.getFileMemo(unite=unite, fname=fname, fic_origine=self.parent.nom)
+            # On memorise le fichier retourne
+            self.fichier_ini  = f
+            self.fichier_text = text
+            self.contexte_fichier_init={}
+            self.fichier_unite=unite
+            self.fichier_err=None
+            try:
+                import Extensions.jdc_include
+            except:
+                traceback.print_exc()
+                raise EficasException("pb import Extensions")
+            self.JdC_aux=Extensions.jdc_include.JdC_include
+
+            #print "makeInclude",self.fichier_ini,self.fichier_text
+            if f is None and not text:
+                self.fichier_err=tr("Le fichier INCLUDE n est pas defini")
+                self.parent.recordUnit(unite,self)
+                raise EficasException(self.fichier_err)
+
+            try:
+                self.makeContexteInclude(self.fichier_ini ,self.fichier_text)
+                self.parent.recordUnit(unite,self)
+            except:
+                l=traceback.format_exception_only(tr("Fichier invalide %s",sys.exc_info()[1]))
+                if self.jdc.editor:
+                    self.jdc.editor.afficheAlerte(tr("Erreur lors de l'evaluation du fichier inclus"),
+                                                  message=tr("Le contenu de ce fichier ne sera pas pris en compte\n"+''.join(l)))
+                self.parent.recordUnit(unite,self)
+                self.g_context={}
+                self.etapes=[]
+                self.jdc_aux=None
+                self.fichier_err = ''.join(l)
+                self.contexte_fichier_init={}
+                raise EficasException(" ")
+
+        else:
+            # Si le fichier est deja defini on ne reevalue pas le fichier
+            # et on leve une exception si une erreur a ete enregistree
+            self.updateFichierInit(unite)
+            self.fichier_unite=unite
+            if self.fichier_err is not None: raise EficasException(self.fichier_err)
+        #print ('self.g_context', self.g_context)
+
 
 #ATTENTION SURCHARGE : cette methode surcharge celle de Noyau (a garder en synchro)
-  def makeContexte(self,fichier,text):
-    """
-        Cette methode sert a creer un contexte pour INCLUDE_MATERIAU
-        en interpretant un texte source Python
-        Elle est appelee par la fonction sd_prod d'INCLUDE_MATERIAU
-    """
-    #print "makeContexte",fichier
-    # On supprime l'attribut mat qui bloque l'evaluation du source de l'INCLUDE_MATERIAU
-    # car on ne s'appuie pas sur lui dans EFICAS mais sur l'attribut fichier_ini
-    if hasattr(self,'mat'):del self.mat
-    if not hasattr(self,'fichier_ini') or self.fichier_ini != fichier or self.fichier_mater != self.nom_mater: 
-       # le fichier est nouveau ou change
-       self.fichier_ini =fichier
-       self.fichier_unite =fichier
-       self.fichier_mater=self.nom_mater
-       self.fichier_text=text
-       self.fichier_err=None 
-       self.contexte_fichier_init={}
-       # On specifie la classe a utiliser pour le JDC auxiliaire
-       try:
-         import Extensions.jdc_include
-         self.JdC_aux=Extensions.jdc_include.JdC_include
-       except:
-         raise EficasException(" ")
-       try:
-          self.makeContexteInclude(self.fichier_ini ,self.fichier_text)
-          if not self.nom_mater in self.g_context :
-             #Pour permettre de lire un jeu de commandes avec des INCLUDE_MATERIAU errones
-             self.g_context[self.nom_mater]=None
-             if self.parent: self.parent.g_context[self.nom_mater]=None
-       except:
-          l=traceback.format_exception_only(tr("Fichier invalide %s",sys.exc_info()[1]))
-          self.fichier_err = ''.join(l)
-          self.g_context={}
-          #Pour permettre de lire un jeu de commandes avec des INCLUDE_MATERIAU errones
-          if self.parent:
-              self.parent.g_context[self.nom_mater]=None
-          self.g_context[self.nom_mater]=None
-          #-------------
-          self.etapes=[]
-          self.jdc_aux=None
-          self.contexte_fichier_init={}
-          raise EficasException(" ")
-    else:
-       # le fichier est le meme on ne le reevalue pas
-       # et on leve une exception si une erreur a ete enregistree
-       if self.fichier_err is not None: raise EficasException(self.fichier_err)
+    def makeContexte(self,fichier,text):
+        """
+            Cette methode sert a creer un contexte pour INCLUDE_MATERIAU
+            en interpretant un texte source Python
+            Elle est appelee par la fonction sd_prod d'INCLUDE_MATERIAU
+        """
+        #print "makeContexte",fichier
+        # On supprime l'attribut mat qui bloque l'evaluation du source de l'INCLUDE_MATERIAU
+        # car on ne s'appuie pas sur lui dans EFICAS mais sur l'attribut fichier_ini
+        if hasattr(self,'mat'):del self.mat
+        if not hasattr(self,'fichier_ini') or self.fichier_ini != fichier or self.fichier_mater != self.nom_mater:
+            # le fichier est nouveau ou change
+            self.fichier_ini =fichier
+            self.fichier_unite =fichier
+            self.fichier_mater=self.nom_mater
+            self.fichier_text=text
+            self.fichier_err=None
+            self.contexte_fichier_init={}
+            # On specifie la classe a utiliser pour le JDC auxiliaire
+            try:
+                import Extensions.jdc_include
+                self.JdC_aux=Extensions.jdc_include.JdC_include
+            except:
+                raise EficasException(" ")
+            try:
+                self.makeContexteInclude(self.fichier_ini ,self.fichier_text)
+                if not self.nom_mater in self.g_context :
+                #Pour permettre de lire un jeu de commandes avec des INCLUDE_MATERIAU errones
+                    self.g_context[self.nom_mater]=None
+                    if self.parent: self.parent.g_context[self.nom_mater]=None
+            except:
+                l=traceback.format_exception_only(tr("Fichier invalide %s",sys.exc_info()[1]))
+                self.fichier_err = ''.join(l)
+                self.g_context={}
+                #Pour permettre de lire un jeu de commandes avec des INCLUDE_MATERIAU errones
+                if self.parent:
+                    self.parent.g_context[self.nom_mater]=None
+                self.g_context[self.nom_mater]=None
+                #-------------
+                self.etapes=[]
+                self.jdc_aux=None
+                self.contexte_fichier_init={}
+                raise EficasException(" ")
+        else:
+            # le fichier est le meme on ne le reevalue pas
+            # et on leve une exception si une erreur a ete enregistree
+            if self.fichier_err is not None: raise EficasException(self.fichier_err)
 
 #ATTENTION SURCHARGE : cette methode surcharge celle de Noyau (a garder en synchro)
-  def updateSdprod(self,cr='non'):
-     # Cette methode peut etre appelee dans EFICAS avec des mots cles de 
-     # la commande modifies. Ceci peut conduire a la construction ou
-     # a la reconstruction d'etapes dans le cas d'INCLUDE ou d'INCLUDE_MATERIAU
-     # Il faut donc positionner le current_step avant l'appel
-     CONTEXT.unsetCurrentStep()
-     CONTEXT.setCurrentStep(self)
-     valid=Validation.V_MACRO_ETAPE.MACRO_ETAPE.updateSdprod(self,cr=cr)
-     CONTEXT.unsetCurrentStep()
-     return valid
-
-#ATTENTION SURCHARGE: cette methode surcharge celle de Noyau a garder en synchro 
-  def buildSd(self,nom):
-      """
-           Methode de Noyau surchargee pour poursuivre malgre tout
-           si une erreur se produit pendant la creation du concept produit
-      """
-      try:
-         sd=Noyau.N_MACRO_ETAPE.MACRO_ETAPE.buildSd(self,nom)
-      except :
-      #   return None
-      #except AsException,e:
-         # Une erreur s'est produite lors de la construction du concept
-         # Comme on est dans EFICAS, on essaie de poursuivre quand meme
-         # Si on poursuit, on a le choix entre deux possibilites :
-         # 1. on annule la sd associee a self
-         # 2. on la conserve mais il faut la retourner
-         # On choisit de l'annuler
-         # En plus il faut rendre coherents sdnom et sd.nom
-         self.sd=None
-         self.sdnom=None
-         self.state="unchanged"
-         self.valid=0
-
-      return self.sd
-
-#ATTENTION SURCHARGE: cette methode surcharge celle de Noyau a garder en synchro 
-  def makePoursuite(self):
-      """ Cette methode est appelee par la fonction sd_prod de la macro POURSUITE
-      """
-      #print "makePoursuite"
-      if not hasattr(self,'fichier_ini') :
-         # Si le fichier n'est pas defini on le demande
-         f,text=self.getFileMemo(fic_origine=self.parent.nom)
-         # On memorise le fichier retourne
-         self.fichier_ini = f
-         self.fichier_unite = None
-         self.fichier_text = text
-         self.fichier_err=None
-         try:
-           import Extensions.jdc_include
-         except:
-           traceback.print_exc()
-           raise EficasException(" ")
-         self.JdC_aux=Extensions.jdc_include.JdC_poursuite
-         self.contexte_fichier_init={}
-         #print "makePoursuite",self.fichier_ini,self.fichier_text
-
-         if f is None:
-             self.fichier_err="Le fichier POURSUITE n'est pas defini"
-             self.jdc_aux=None
-             self.parent.recordUnit(None,self)
-             raise EficasException(self.fichier_err)
-
-         try:
-           self.makeContexteInclude(self.fichier_ini,self.fichier_text)
-           self.parent.recordUnit(None,self)
-         except:
-           l=traceback.format_exception_only("Fichier invalide",sys.exc_info()[1])
-           if self.jdc.appli:
-              self.jdc.appli.afficheAlerte(tr("Erreur lors de l'evaluation du fichier poursuite"),
-                                            message=tr("Ce fichier ne sera pas pris en compte\n %s",''.join(l)))
-           self.parent.recordUnit(None,self)
-           self.g_context={}
-           self.etapes=[]
-           self.jdc_aux=None
-           self.fichier_err = ''.join(l)
-           self.contexte_fichier_init={}
-           raise EficasException(" ")
-
-      else:
-         # Si le fichier est deja defini on ne reevalue pas le fichier
-         # et on leve une exception si une erreur a ete enregistree
-         self.updateFichierInit(None)
-         if self.fichier_err is not None: raise EficasException(self.fichier_err)
+    def updateSdprod(self,cr='non'):
+        # Cette methode peut etre appelee dans EFICAS avec des mots cles de
+        # la commande modifies. Ceci peut conduire a la construction ou
+        # a la reconstruction d'etapes dans le cas d'INCLUDE ou d'INCLUDE_MATERIAU
+        # Il faut donc positionner le current_step avant l'appel
+        CONTEXT.unsetCurrentStep()
+        CONTEXT.setCurrentStep(self)
+        valid=Validation.V_MACRO_ETAPE.MACRO_ETAPE.updateSdprod(self,cr=cr)
+        CONTEXT.unsetCurrentStep()
+        return valid
+
+#ATTENTION SURCHARGE: cette methode surcharge celle de Noyau a garder en synchro
+    def buildSd(self,nom):
+        """
+             Methode de Noyau surchargee pour poursuivre malgre tout
+             si une erreur se produit pendant la creation du concept produit
+        """
+        try:
+            sd=Noyau.N_MACRO_ETAPE.MACRO_ETAPE.buildSd(self,nom)
+        except :
+        #   return None
+        #except AsException,e:
+            # Une erreur s'est produite lors de la construction du concept
+            # Comme on est dans EFICAS, on essaie de poursuivre quand meme
+            # Si on poursuit, on a le choix entre deux possibilites :
+            # 1. on annule la sd associee a self
+            # 2. on la conserve mais il faut la retourner
+            # On choisit de l'annuler
+            # En plus il faut rendre coherents sdnom et sd.nom
+            self.sd=None
+            self.sdnom=None
+            self.state="unchanged"
+            self.valid=0
+
+        return self.sd
+
+#ATTENTION SURCHARGE: cette methode surcharge celle de Noyau a garder en synchro
+    def makePoursuite(self):
+        """ Cette methode est appelee par la fonction sd_prod de la macro POURSUITE
+        """
+        #print "makePoursuite"
+        if not hasattr(self,'fichier_ini') :
+            # Si le fichier n'est pas defini on le demande
+            f,text=self.getFileMemo(fic_origine=self.parent.nom)
+            # On memorise le fichier retourne
+            self.fichier_ini = f
+            self.fichier_unite = None
+            self.fichier_text = text
+            self.fichier_err=None
+            try:
+                import Extensions.jdc_include
+            except:
+                traceback.print_exc()
+                raise EficasException(" ")
+            self.JdC_aux=Extensions.jdc_include.JdC_poursuite
+            self.contexte_fichier_init={}
+            #print "makePoursuite",self.fichier_ini,self.fichier_text
+
+            if f is None:
+                self.fichier_err="Le fichier POURSUITE n'est pas defini"
+                self.jdc_aux=None
+                self.parent.recordUnit(None,self)
+                raise EficasException(self.fichier_err)
+
+            try:
+                self.makeContexteInclude(self.fichier_ini,self.fichier_text)
+                self.parent.recordUnit(None,self)
+            except:
+                l=traceback.format_exception_only("Fichier invalide",sys.exc_info()[1])
+                if self.jdc.editor:
+                    self.jdc.editor.afficheAlerte(tr("Erreur lors de l'evaluation du fichier poursuite"),
+                                                  message=tr("Ce fichier ne sera pas pris en compte\n %s",''.join(l)))
+                self.parent.recordUnit(None,self)
+                self.g_context={}
+                self.etapes=[]
+                self.jdc_aux=None
+                self.fichier_err = ''.join(l)
+                self.contexte_fichier_init={}
+                raise EficasException(" ")
+
+        else:
+            # Si le fichier est deja defini on ne reevalue pas le fichier
+            # et on leve une exception si une erreur a ete enregistree
+            self.updateFichierInit(None)
+            if self.fichier_err is not None: raise EficasException(self.fichier_err)
index 81f13e86c0c1503eb5c741d76ab9af594cabe736..c96a9f80f6e43934cc80d70863dca98fd28b3187 100644 (file)
@@ -19,5 +19,7 @@
 #
 from __future__ import absolute_import
 from . import I_MCCOMPO
-class MCBLOC(I_MCCOMPO.MCCOMPO):pass
+class MCBLOC(I_MCCOMPO.MCCOMPO):
 
+    def getNomDsXML(self):
+        return self.parent.getNomDsXML()
index ffaf4827a83d4f3a9c7425266995e067e8e25302..c7cf0d25a102d7cc03e387e8d13b4a28303492c4 100644 (file)
@@ -36,410 +36,482 @@ from . import I_OBJECT
 from . import CONNECTOR
 
 class MCCOMPO(I_OBJECT.OBJECT):
-  def getLabelText(self):
-    """ 
-       Retourne le label de self 
-       utilise pour l'affichage dans l'arbre
-    """
-    return tr(self.nom)
-
-  def getListeMcOrdonnee(self,liste,dico):
-    """
-       Retourne la liste ordonnee (suivant le catalogue) des mots-cles
-       d'une entite composee dont le chemin complet est donne sous forme
-       d'une liste du type :ETAPE + MCFACT ou MCBLOC + ...
-       il faut encore rearranger cette liste (certains mots-cles deja
-       presents ne doivent plus etre proposes, regles ...)
-    """
-    return self.filtreListeMc(self.getListeMcOrdonneeBrute(liste,dico))
-
-  def getListeMcOrdonneeBrute(self,liste,dico):
-    """
-       Retourne la liste ordonnee (suivant le catalogue) BRUTE des mots-cles
-       d'une entite composee dont le chemin complet est donne sous forme
-       d'une liste du type :ETAPE + MCFACT ou MCBLOC + ...
-    """
-    for arg in liste:
-        objet_cata = dico[arg]
-        dico=objet_cata.entites
-        l=[]
-        specifique=0
-        for obj in list(dico.keys()) :
-            if not(hasattr(dico[obj],'cache')) or dico[obj].cache==0 :
-               l.append(obj)
+    def getLabelText(self):
+        """
+           Retourne le label de self
+           utilise pour l'affichage dans l'arbre
+        """
+        return tr(self.nom)
+
+    def getListeMcOrdonnee(self,liste,dico):
+        """
+           Retourne la liste ordonnee (suivant le catalogue) des mots-cles
+           d'une entite composee dont le chemin complet est donne sous forme
+           d'une liste du type :ETAPE + MCFACT ou MCBLOC + ...
+           il faut encore rearranger cette liste (certains mots-cles deja
+           presents ne doivent plus etre proposes, regles ...)
+        """
+        return self.filtreListeMc(self.getListeMcOrdonneeBrute(liste,dico))
+
+    def getListeMcOrdonneeBrute(self,liste,dico):
+        """
+           Retourne la liste ordonnee (suivant le catalogue) BRUTE des mots-cles
+           d'une entite composee dont le chemin complet est donne sous forme
+           d'une liste du type :ETAPE + MCFACT ou MCBLOC + ...
+        """
+        for arg in liste:
+            objet_cata = dico[arg]
+            dico=objet_cata.entites
+            l=[]
+            specifique=0
+            for obj in list(dico.keys()) :
+                if not(hasattr(dico[obj],'cache')) or dico[obj].cache==0 :
+                    l.append(obj)
+                else :
+                    specifique=1
+            if specifique == 1 : return l
+        return objet_cata.ordre_mc
+
+    def filtreListeMc(self,liste_brute):
+        """
+           Cette methode est appelee par EFICAS afin de presenter a
+           l'utilisateur la liste des enfants possibles de self actualisee
+           en fonction du contexte de self. En clair, sont supprimes de la
+           liste des possibles (fournie par la definition), les mots-cles
+           exclus par les regles de self et les mots-cles ne pouvant plus
+           etre repetes
+        """
+        liste = copy(liste_brute)
+        listeMcPresents = self.listeMcPresents()
+        # on enleve les mots-cles non permis par les regles
+        for regle in self.definition.regles:
+            # la methode purgeListe est a developper pour chaque regle qui
+            # influe sur la liste de choix a proposer a l'utilisateur
+            # --> EXCLUS,UN_PARMI,PRESENT_ABSENT
+            liste = regle.purgeListe(liste,listeMcPresents)
+        # on enleve les mots-cles dont l'occurrence est deja atteinte
+        liste_copy = copy(liste)
+        for k in liste_copy:
+            objet = self.getChild(k,restreint = 'oui')
+            if objet != None :
+            # l'objet est deja present : il faut distinguer plusieurs cas
+                if isinstance(objet,MCSIMP):
+                    # un mot-cle simple ne peut pas etre repete
+                    liste.remove(k)
+                elif isinstance(objet,MCBLOC):
+                    # un bloc conditionnel ne doit pas apparaitre dans la liste de choix
+                    liste.remove(k)
+                elif isinstance(objet,MCFACT):
+                    # un mot-cle facteur ne peut pas etre repete plus de self.max fois
+                    if objet.definition.max == 1:
+                        liste.remove(k)
+                elif isinstance(objet,MCList):
+                    try :
+                        nb_occur_maxi = objet[0].definition.max
+                        if len(objet) >= nb_occur_maxi:
+                            liste.remove(k)
+                    except:
+                        pass
+                else :
+                    #XXX CCAR : les MCNUPLET ne sont pas traites
+                    if CONTEXT.debug : print('   ',k,' est un objet de type inconnu :',type(objet))
             else :
-               specifique=1
-        if specifique == 1 : return l    
-    return objet_cata.ordre_mc
-
-  def filtreListeMc(self,liste_brute):
-    """ 
-       Cette methode est appelee par EFICAS afin de presenter a 
-       l'utilisateur la liste des enfants possibles de self actualisee 
-       en fonction du contexte de self. En clair, sont supprimes de la
-       liste des possibles (fournie par la definition), les mots-cles
-       exclus par les regles de self et les mots-cles ne pouvant plus 
-       etre repetes
-    """
-    liste = copy(liste_brute)
-    listeMcPresents = self.listeMcPresents()
-    # on enleve les mots-cles non permis par les regles
-    for regle in self.definition.regles:
-       # la methode purgeListe est a developper pour chaque regle qui
-       # influe sur la liste de choix a proposer a l'utilisateur
-       # --> EXCLUS,UN_PARMI,PRESENT_ABSENT
-       liste = regle.purgeListe(liste,listeMcPresents)
-    # on enleve les mots-cles dont l'occurrence est deja atteinte
-    liste_copy = copy(liste)
-    for k in liste_copy:
-      objet = self.getChild(k,restreint = 'oui')
-      if objet != None :
-        # l'objet est deja present : il faut distinguer plusieurs cas
-        if isinstance(objet,MCSIMP):
-          # un mot-cle simple ne peut pas etre repete
-          liste.remove(k)
-        elif isinstance(objet,MCBLOC):
-          # un bloc conditionnel ne doit pas apparaitre dans la liste de choix
-          liste.remove(k)
-        elif isinstance(objet,MCFACT):
-          # un mot-cle facteur ne peut pas etre repete plus de self.max fois
-          if objet.definition.max == 1:
-            liste.remove(k)
-        elif isinstance(objet,MCList):
-          try :
-            nb_occur_maxi = objet[0].definition.max
-            if len(objet) >= nb_occur_maxi:
-              liste.remove(k)
-          except:
-            pass
-        else :
-          #XXX CCAR : les MCNUPLET ne sont pas traites
-          if CONTEXT.debug : print('   ',k,' est un objet de type inconnu :',type(objet))
-      else :
-        # l'objet est absent : on enleve de la liste les blocs
-        if self.definition.entites[k].statut=='c' :
-          liste.remove(k)
-        if self.definition.entites[k].label=='BLOC':
-          liste.remove(k)
-    # Pour corriger les exces qui pourraient etre commis dans la methode purgeListe
-    # des regles, on essaie de compenser comme suit :
-    # on ajoute les mots cles facteurs presents dont l'occurence n'est pas atteinte
-    for k in listeMcPresents:
-      if k in liste:continue
-      objet = self.getChild(k,restreint = 'oui')
-      if isinstance(objet,MCFACT):
-          # un mot-cle facteur ne peut pas etre repete plus de self.max fois
-          if objet.definition.max > 1:
-             liste.append(k)
-      elif isinstance(objet,MCList):
-          nb_occur_maxi = objet[0].definition.max
-          if len(objet) < nb_occur_maxi:
-              liste.append(k)
-    return liste
-
-  def listeMcPresents(self):
-    """ 
-       Retourne la liste des noms des mots-cles fils de self presents construite
-       a partir de self.mcListe 
-    """
-    l=[]
-    for v in self.mcListe:
-      k=v.nom
-      l.append(k)
-    return l
-
-  def getIndexChild(self,nom_fils):
-      """
-        Retourne l'index dans la liste des fils de self du nouveau fils de nom nom_fils
-        Permet de savoir a quelle position il faut ajouter un nouveau mot-cle
-      """
-      cata_ordonne = self.jdc.cata_ordonne_dico
-      liste_noms_mc_ordonnee = self.getListeMcOrdonneeBrute(self.getGenealogie(),cata_ordonne)
-      liste_noms_mc_presents = self.listeMcPresents()
-      index=0
-      for nom in liste_noms_mc_ordonnee:
-          if nom == nom_fils:break
-          if nom not in liste_noms_mc_presents :continue
-          index=index+1
-      return index
-          
-  def findRangObjetDsArbre(self,objet) :
-  # uniquement pour Pyxb
-  # parcourt les Blocs
-      leRang=0
-      pos=self.mcListe.index(objet)
-      i=0
-      while (i+1) < pos :
-        leRang= leRang + self.mcListe[i].longueurDsArbre()
-        i=i+1
-      return leRang
-
-  def ordonneListeMc(self,listeMc_a_ordonner,liste_noms_mc_ordonnee):
-    """
-        Retourne listeMc_a_ordonner ordonnee suivant l'ordre 
-        donne par liste_noms_mc_ordonnee
-    """
-    liste = []
-    # on transforme liste_a_ordonner en un dictionnaire (plus facile a consulter)
-    d_mc = {}
-    for mc in listeMc_a_ordonner:
-      d_mc[mc.nom]=mc
-    # on construit la liste des objets ordonnes
-    for nom_mc in liste_noms_mc_ordonnee:
-      if nom_mc in d_mc:
-        liste.append(d_mc.get(nom_mc))
-    # on la retourne
-    return liste
-
-  def suppEntite(self,objet) :
-    """ 
-        Supprime le fils 'objet' de self : 
-        Retourne 1 si la suppression a pu etre effectuee,
-        Retourne 0 dans le cas contraire
-    """
-    if not objet in self.mcListe:
-       # Impossible de supprimer objet. Il n'est pas dans mcListe
-       return 0
-
-    self.initModif()
-    #objet.deletePyxbObject()
-    self.mcListe.remove(objet)
-    CONNECTOR.Emit(self,"supp",objet)
-    objet.deleteMcGlobal()
-    objet.updateConditionBloc()
-    objet.supprime()
-    self.etape.modified()
-    self.finModif()
-    return 1
-
-  def isOblig(self):
-      return 0
-
-  def addEntite(self,name,pos=None):
-      """ 
-          Ajoute le mot-cle name a la liste des mots-cles de
-          l'objet MCCOMPOSE
-      """
-      self.initModif()
-      if type(name)==bytes or type(name) == str :
-        # on est en mode creation d'un motcle 
-        if self.ispermis(name) == 0 : return 0
-        objet=self.definition.entites[name](val=None,nom=name,parent=self)
-      else :
-        # dans ce cas on est en mode copie d'un motcle
-        # Appel de la methode qui fait le menage dans les references
-        # sur les concepts produits (verification que les concepts existent
-        # dans le contexte de la commande courante).
-        objet = name
-        objet.verifExistenceSd()
-
-      # On verifie que l'ajout d'objet est autorise
-      if self.ispermis(objet) == 0:
-        self.jdc.appli.afficheAlerte(tr("Erreur"),
-                                      tr("L'objet %(v_1)s ne peut  etre un fils de %(v_2)s",\
-                                      {'v_1': objet.nom, 'v_2': self.nom}))
+                # l'objet est absent : on enleve de la liste les blocs
+                if self.definition.entites[k].statut=='c' :
+                    liste.remove(k)
+                if self.definition.entites[k].label=='BLOC':
+                    liste.remove(k)
+        # Pour corriger les exces qui pourraient etre commis dans la methode purgeListe
+        # des regles, on essaie de compenser comme suit :
+        # on ajoute les mots cles facteurs presents dont l'occurence n'est pas atteinte
+        for k in listeMcPresents:
+            if k in liste:continue
+            objet = self.getChild(k,restreint = 'oui')
+            if isinstance(objet,MCFACT):
+                    # un mot-cle facteur ne peut pas etre repete plus de self.max fois
+                if objet.definition.max > 1:
+                    liste.append(k)
+            elif isinstance(objet,MCList):
+                nb_occur_maxi = objet[0].definition.max
+                if len(objet) < nb_occur_maxi:
+                    liste.append(k)
+        return liste
+
+    def listeMcPresents(self):
+        """
+           Retourne la liste des noms des mots-cles fils de self presents construite
+           a partir de self.mcListe
+        """
+        l=[]
+        for v in self.mcListe:
+            k=v.nom
+            l.append(k)
+        return l
+
+    def getIndexChild(self,nom_fils):
+        """
+          Retourne l'index dans la liste des fils de self du nouveau fils de nom nom_fils
+          Permet de savoir a quelle position il faut ajouter un nouveau mot-cle
+        """
+        cata_ordonne = self.jdc.cata_ordonne_dico
+        liste_noms_mc_ordonnee = self.getListeMcOrdonneeBrute(self.getGenealogie(),cata_ordonne)
+        liste_noms_mc_presents = self.listeMcPresents()
+        index=0
+        for nom in liste_noms_mc_ordonnee:
+            if nom == nom_fils:break
+            if nom not in liste_noms_mc_presents :continue
+            index=index+1
+        return index
+
+    def chercheIndiceDsLeContenu(self,objet) :
+    # uniquement pour Pyxb
+    # ajoute la taille des les Blocs
+    # faut -il chercher plus loin ds les petits-enfants ?
+        if objet.nature == 'MCList' : objet=objet[0]
+        leRang=0
+        positionDsLaListe=0
+        try :
+            positionDsLaListe=self.mcListe.index(objet)
+            positionDsLaListeDeFactSiFact =0
+        except :
+            for mc in self.mcListe:
+                if mc.nature == 'MCList':
+                    try :
+                        positionDsLaListeDeFactSiFact=mc.index(objet)
+                        break
+                    except :
+                        positionDsLaListe=positionDsLaListe+1
+                else : positionDsLaListe=positionDsLaListe+1
+        i=0
+        while i < positionDsLaListe :
+            leRang= leRang + self.mcListe[i].longueurDsArbre()
+            i=i+1
+        leRang=leRang+positionDsLaListeDeFactSiFact
+        return leRang
+
+
+    def ordonneListeMc(self,listeMc_a_ordonner,liste_noms_mc_ordonnee):
+        """
+            Retourne listeMc_a_ordonner ordonnee suivant l'ordre
+            donne par liste_noms_mc_ordonnee
+        """
+        liste = []
+        # on transforme liste_a_ordonner en un dictionnaire (plus facile a consulter)
+        d_mc = {}
+        for mc in listeMc_a_ordonner:
+            d_mc[mc.nom]=mc
+        # on construit la liste des objets ordonnes
+        for nom_mc in liste_noms_mc_ordonnee:
+            if nom_mc in d_mc:
+                liste.append(d_mc.get(nom_mc))
+        # on la retourne
+        return liste
+
+    def suppEntite(self,objet) :
+        """
+            Supprime le fils 'objet' de self :
+            Retourne 1 si la suppression a pu etre effectuee,
+            Retourne 0 dans le cas contraire
+        """
+        #print ('suppEntite', self.nom,objet.nom)
+        if not objet in self.mcListe:
+            # Impossible de supprimer objet. Il n'est pas dans mcListe
+            return 0
+
+        self.initModif()
+        objet.delObjPyxb()
+        objet.deleteRef()
+        self.mcListe.remove(objet)
+        CONNECTOR.Emit(self,"supp",objet)
+        objet.deleteMcGlobal()
+        objet.updateConditionBloc()
+        objet.supprime()
+        while self.etape.doitEtreRecalculee == True :
+            #print (' je suis dans le while')
+            self.etape.doitEtreRecalculee = False
+            self.etape.deepUpdateConditionBlocApresSuppression()
+        self.etape.modified()
         self.finModif()
+        return 1
+
+    def isOblig(self):
         return 0
 
-      # On cherche s'il existe deja un mot cle de meme nom
-      old_obj = self.getChild(objet.nom,restreint = 'oui')
-      if not old_obj :
-         # on normalize l'objet
-         objet=objet.normalize()
-         # Le mot cle n'existe pas encore. On l'ajoute a la position
-         # demandee (pos)
-         if pos == None :
-           self.mcListe.append(objet)
-         else :
-           self.mcListe.insert(pos,objet)
-         # Il ne faut pas oublier de reaffecter le parent d'obj (si copie)
-         objet.reparent(self)
-         #objet.addPyxbObject(self.findRangObjetDsArbre(objet))
-         CONNECTOR.Emit(self,"add",objet)
-         objet.updateMcGlobal()
-         objet.updateConditionBloc()
-         self.finModif()
-         return objet
-      else:
-         # Le mot cle existe deja. Si le mot cle est repetable,
-         # on cree une liste d'objets. Dans le cas contraire,
-         # on emet un message d'erreur.
-         if not old_obj.isRepetable():
-            self.jdc.appli.afficheAlerte(tr("Erreur"),tr("L'objet %s ne peut pas etre repete", objet.nom))
+    def addEntite(self,name,pos=None):
+        """
+            Ajoute le mot-cle name a la liste des mots-cles de
+            l'objet MCCOMPOSE
+        """
+        #print ('addEntite', name, pos)
+        self.initModif()
+        if type(name)==bytes or type(name) == str :
+                # on est en mode creation d'un motcle
+            if self.ispermis(name) == 0 : return 0
+            objet=self.definition.entites[name](val=None,nom=name,parent=self)
+        else :
+            # dans ce cas on est en mode copie d'un motcle
+            objet = name
+            # Appel de la methode qui fait le menage dans les references
+            # sur les concepts produits (verification que les concepts existent
+            # dans le contexte de la commande courante).
+            objet.verifExistenceSd()
+
+        # On verifie que l'ajout d'objet est autorise
+        if self.ispermis(objet) == 0:
+            self.jdc.editor.afficheAlerte(tr("Erreur"),
+                                          tr("L'objet %(v_1)s ne peut  etre un fils de %(v_2)s",\
+                                          {'v_1': objet.nom, 'v_2': self.nom}))
             self.finModif()
             return 0
-         else:
-            # une liste d'objets de meme type existe deja
-            old_obj.addEntite(objet)
+
+        # On cherche s'il existe deja un mot cle de meme nom
+        old_obj = self.getChild(objet.nom,restreint = 'oui')
+        if not old_obj :
+            # on normalize l'objet
+            objet=objet.normalize()
+            # Le mot cle n'existe pas encore. On l'ajoute a la position
+            # demandee (pos)
+            if pos == None :
+                self.mcListe.append(objet)
+            else :
+                self.mcListe.insert(pos,objet)
+            # Il ne faut pas oublier de reaffecter le parent d'obj (si copie)
+            objet.reparent(self)
+            if  self.cata.modeleMetier :
+                if isinstance(objet,MCList): objet[0].addObjPyxb(self.chercheIndiceDsLeContenu(objet))
+                else : objet.addObjPyxb(self.chercheIndiceDsLeContenu(objet))
+            CONNECTOR.Emit(self,"add",objet)
+            objet.updateMcGlobal()
+            objet.updateConditionBloc()
             self.finModif()
-            return old_obj
-
-  def ispermis(self,fils):
-    """ 
-        Retourne 1 si l'objet de nom nom_fils 
-        est bien permis, cad peut bien etre un fils de self, 
-        Retourne 0 sinon 
-    """
-    if type(fils) == bytes or type(fils) == str :
-      # on veut juste savoir si self peut avoir un fils de nom 'fils'
-      if fils in self.definition.entites:
-        return 1
-      else :
-        return 0
-    #elif type(fils) == types.InstanceType:
-    elif isinstance(fils,object):
-      # fils est un objet (commande,mcf,mclist)
-      # on est dans le cas d'une tentative de copie de l'objet
-      # on veut savoir si l'objet peut bien etre un fils de self :
-      # la verification du nom de suffit pas (plusieurs commandes
-      # ont le meme mot-cle facteur AFFE ... et c'est l'utilisateur
-      # qui choisit le pere d'ou un risque d'erreur)
-      if not fils.nom in self.definition.entites:
-        return 0
-      else:
-        if fils.parent.nom != self.nom : return 0
-      return 1
-
-  def updateConcept(self,sd):
-    for child in self.mcListe :
-        child.updateConcept(sd)
-
-  def deleteConcept(self,sd):
-    """ 
-        Inputs :
-           - sd=concept detruit
-        Fonction :
-        Mettre a jour les fils de l objet suite a la disparition du
-        concept sd
-        Seuls les mots cles simples MCSIMP font un traitement autre que 
-        de transmettre aux fils
-    """
-    for child in self.mcListe :
-      child.deleteConcept(sd)
-
-  def replaceConcept(self,old_sd,sd):
-    """
-        Inputs :
-           - old_sd=concept remplace
-           - sd = nouveau concept
-        Fonction :
-        Mettre a jour les fils de l objet suite au remplacement  du
-        concept old_sd
-    """
-    for child in self.mcListe :
-      child.replaceConcept(old_sd,sd)
-
-  def getListeMcInconnus(self):
-     """
-     Retourne la liste des mots-cles inconnus dans self
-     """
-     l_mc = []
-     if self.reste_val != {}:
-        for k,v in self.reste_val.items() :
-            l_mc.append([self,k,v])
-     for child in self.mcListe :
-        if child.isValid() : continue
-        l_child = child.getListeMcInconnus()
-        for mc in l_child:
-           l = [self]
-           l.extend(mc)
-           l_mc.append(l)
-     return l_mc
-
-  def deepUpdateConditionBloc(self):
-     """
-        Parcourt l'arborescence des mcobject et realise l'update 
-        des blocs conditionnels par appel de la methode updateConditionBloc
-     """
-     self._updateConditionBloc()
-     for mcobj in self.mcListe:
-        if hasattr(mcobj,"deepUpdateConditionBloc"):
-           mcobj.deepUpdateConditionBloc()
-
-  def updateConditionBloc(self):
-     """
-        Realise l'update des blocs conditionnels fils de self
-        et propage au parent
-     """
-     self._updateConditionBloc()
-     if self.parent:self.parent.updateConditionBloc()
-
-  def _updateConditionBloc(self):
-     """
-        Realise l'update des blocs conditionnels fils de self
-     """
-     dict = self.creeDictCondition(self.mcListe,condition=1)
-     for k,v in self.definition.entites.items():
-        if v.label != 'BLOC' :continue
-        globs= self.jdc and self.jdc.condition_context or {}
-        bloc=self.getChild(k,restreint = 'oui')
-        presence=v.verifPresence(dict,globs)
-        if presence and not bloc:
-           # le bloc doit etre present
-           # mais le bloc n'est pas present et il doit etre cree
-           #print "AJOUT BLOC",k
-           pos=self.getIndexChild(k)
-           self.addEntite(k,pos)
-        if not presence and bloc:
-           # le bloc devrait etre absent
-           # le bloc est present : il faut l'enlever
-           #print "SUPPRESSION BLOC",k,bloc
-           self.suppEntite(bloc)
-
-  def verifConditionBloc(self):
-    """ 
-        Evalue les conditions de tous les blocs fils possibles 
-        (en fonction du catalogue donc de la definition) de self
-        et retourne deux listes :
-          - la premiere contient les noms des blocs a rajouter
-          - la seconde contient les noms des blocs a supprimer
-    """
-    liste_ajouts = []
-    liste_retraits = []
-    dict = self.creeDictCondition(self.mcListe,condition=1)
-    for k,v in self.definition.entites.items():
-      if v.label=='BLOC' :
-        globs= self.jdc and self.jdc.condition_context or {}
-        if v.verifPresence(dict,globs):
-          # le bloc doit etre present
-          if not self.getChild(k,restreint = 'oui'):
-            # le bloc n'est pas present et il doit etre cree
-            liste_ajouts.append(k)
-        else :
-          # le bloc doit etre absent
-          if self.getChild(k,restreint = 'oui'):
-            # le bloc est present : il faut l'enlever
-            liste_retraits.append(k)
-    return liste_ajouts,liste_retraits
-
-  def verifExistenceSd(self):
-     """
-        Verifie que les structures de donnees utilisees dans self existent bien dans le contexte
-        avant etape, sinon enleve la reference a ces concepts
-     """
-     for motcle in self.mcListe :
-         motcle.verifExistenceSd()
-
-  def updateMcGlobal(self):
-     """
-        Met a jour les mots cles globaux enregistres dans l'etape parente 
-        et dans le jdc parent.
-        Un mot cle compose ne peut pas etre global. Il se contente de passer
-        la requete a ses fils.
-     """
-     for motcle in self.mcListe :
-         motcle.updateMcGlobal()
-
-  def deleteMcGlobal(self):
-     for motcle in self.mcListe :
-         motcle.deleteMcGlobal()
-     try :
-         motcle.updateMcGlobal()
-     except :
-         pass
-
-  def initModifUp(self):
-    Validation.V_MCCOMPO.MCCOMPO.initModifUp(self)
-    CONNECTOR.Emit(self,"valid")
+            return objet
+        else:
+            # Le mot cle existe deja. Si le mot cle est repetable,
+            # on cree une liste d'objets. Dans le cas contraire,
+            # on emet un message d'erreur.
+            if not old_obj.isRepetable():
+                self.jdc.editor.afficheAlerte(tr("Erreur"),tr("L'objet %s ne peut pas etre repete", objet.nom))
+                self.finModif()
+                return 0
+            else:
+                # une liste d'objets de meme type existe deja
+                old_obj.addEntite(objet)
+                if  self.cata.modeleMetier :
+                    if isinstance(objet,MCList): objet[0].addObjPyxb(self.chercheIndiceDsLeContenu(objet))
+                    else : objet.addObjPyxb(self.chercheIndiceDsLeContenu(objet))
+                self.finModif()
+                return old_obj
+
+    def ispermis(self,fils):
+        """
+            Retourne 1 si l'objet de nom nom_fils
+            est bien permis, cad peut bien etre un fils de self,
+            Retourne 0 sinon
+        """
+        if type(fils) == bytes or type(fils) == str  :
+        # on veut juste savoir si self peut avoir un fils de nom 'fils'
+            if fils in self.definition.entites:
+                return 1
+            else :
+                return 0
+        #elif type(fils) == types.InstanceType:
+        elif isinstance(fils,object):
+            # fils est un objet (commande,mcf,mclist)
+            # on est dans le cas d'une tentative de copie de l'objet
+            # on veut savoir si l'objet peut bien etre un fils de self :
+            # la verification du nom de suffit pas (plusieurs commandes
+            # ont le meme mot-cle facteur AFFE ... et c'est l'utilisateur
+            # qui choisit le pere d'ou un risque d'erreur)
+            if not fils.nom in self.definition.entites:
+                return 0
+            else:
+                if fils.parent.nom != self.nom : return 0
+            return 1
+
+    def updateConcept(self,sd):
+        for child in self.mcListe :
+            child.updateConcept(sd)
+
+    def deleteConcept(self,sd):
+        """
+            Inputs :
+               - sd=concept detruit
+            Fonction :
+            Mettre a jour les fils de l objet suite a la disparition du
+            concept sd
+            Seuls les mots cles simples MCSIMP font un traitement autre que
+            de transmettre aux fils
+        """
+        for child in self.mcListe :
+            child.deleteConcept(sd)
+
+    def replaceConcept(self,old_sd,sd):
+        """
+            Inputs :
+               - old_sd=concept remplace
+               - sd = nouveau concept
+            Fonction :
+            Mettre a jour les fils de l objet suite au remplacement  du
+            concept old_sd
+        """
+        for child in self.mcListe :
+            child.replaceConcept(old_sd,sd)
+
+    def getListeMcInconnus(self):
+        """
+        Retourne la liste des mots-cles inconnus dans self
+        """
+        l_mc = []
+        if self.reste_val != {}:
+            for k,v in self.reste_val.items() :
+                l_mc.append([self,k,v])
+        for child in self.mcListe :
+            if child.isValid() : continue
+            l_child = child.getListeMcInconnus()
+            for mc in l_child:
+                l = [self]
+                l.extend(mc)
+                l_mc.append(l)
+        return l_mc
+
+    def deepUpdateConditionBlocApresSuppression(self):
+        self._updateConditionBloc()
+        for mcobj in self.mcListe:
+            if mcobj.nature=="MCList" :
+                for obj in mcobj :
+                    obj.deepUpdateConditionBlocApresSuppression()
+                    obj.state='modified'
+            elif hasattr(mcobj,"deepUpdateConditionBlocApresSuppression"):
+                mcobj.deepUpdateConditionBlocApresSuppression()
+
+
+    def deepUpdateConditionBlocApresCreation(self):
+        # idem deepUpdateConditionBloc sauf qu on cherche les MC qui
+        # avait ete laisse de cote par la construction
+        # Comme on est en construction, on ne devrait pas avoir a detruire de bloc
+        # si on vient d un xml invalide, il faudra probablement traiter les blocs deja crees
+        # reste_val est au niveau du MCCompo, il faut donc tout parcourir
+        #print ('dans deepUpdateConditionBlocApresCreation pour', self.nom)
+        if self.reste_val != {} : self.buildMcApresGlobalEnCreation()
+        for mcobj in self.mcListe:
+            if mcobj.nature=="MCList" :
+                for obj in mcobj :
+                    obj.deepUpdateConditionBlocApresCreation()
+                    obj.state='modified'
+            elif hasattr(mcobj,"deepUpdateConditionBlocApresCreation"):
+                mcobj.deepUpdateConditionBlocApresCreation()
+            mcobj.state='modified'
+        self.state='modified'
+
+    def deepUpdateConditionBloc(self):
+        """
+           Parcourt l'arborescence des mcobject et realise l'update
+           des blocs conditionnels par appel de la methode updateConditionBloc
+        """
+        self._updateConditionBloc()
+        for mcobj in self.mcListe:
+            if hasattr(mcobj,"deepUpdateConditionBloc"):
+                mcobj.deepUpdateConditionBloc()
+            mcobj.state='modified'
+        if self.nature == 'PROCEDURE' :
+            if self.doitEtreRecalculee :
+                self.doitEtreRecalculee = False
+                self.deepUpdateConditionBloc()
+
+    def updateConditionBloc(self):
+        """
+           Realise l'update des blocs conditionnels fils de self
+           et propage au parent
+        """
+        self._updateConditionBloc()
+        if self.parent:self.parent.updateConditionBloc()
+
+    def _updateConditionBloc(self):
+        """
+           Realise l'update des blocs conditionnels fils de self
+        """
+        dict = self.creeDictCondition(self.mcListe,condition=1)
+        doitEtreReecrit=False
+        for k,v in self.definition.entites.items():
+            if v.label != 'BLOC' :continue
+            globs= self.jdc and self.jdc.condition_context or {}
+            bloc=self.getChild(k,restreint = 'oui')
+            presence=v.verifPresence(dict,globs)
+            if presence and not bloc:
+                # le bloc doit etre present
+                # mais le bloc n'est pas present et il doit etre cree
+                pos=self.getIndexChild(k)
+                self.addEntite(k,pos)
+                #print ("AJOUT",k,pos)
+            if not presence and bloc:
+                # le bloc devrait etre absent
+                # le bloc est present : il faut l'enlever
+                #print ("SUPPRESSION BLOC",k,bloc)
+                self.suppEntite(bloc)
+                doitEtreReecrit=True
+
+    def verifConditionBloc(self):
+        """
+        2021 : obsolete ?
+            Evalue les conditions de tous les blocs fils possibles
+            (en fonction du catalogue donc de la definition) de self
+            et retourne deux listes :
+              - la premiere contient les noms des blocs a rajouter
+              - la seconde contient les noms des blocs a supprimer
+        """
+        liste_ajouts = []
+        liste_retraits = []
+        dict = self.creeDictCondition(self.mcListe,condition=1)
+        for k,v in self.definition.entites.items():
+            if v.label=='BLOC' :
+                globs= self.jdc and self.jdc.condition_context or {}
+                if v.verifPresence(dict,globs):
+            # le bloc doit etre present
+                    if not self.getChild(k,restreint = 'oui'):
+                # le bloc n'est pas present et il doit etre cree
+                        liste_ajouts.append(k)
+                else :
+                    # le bloc doit etre absent
+                    if self.getChild(k,restreint = 'oui'):
+                        # le bloc est present : il faut l'enlever
+                        liste_retraits.append(k)
+        return liste_ajouts,liste_retraits
+
+    def verifExistenceSd(self):
+        """
+           Verifie que les structures de donnees utilisees dans self existent bien dans le contexte
+           avant etape, sinon enleve la reference a ces concepts
+        """
+        for motcle in self.mcListe :
+            motcle.verifExistenceSd()
+
+    def updateMcGlobal(self):
+        """
+           Met a jour les mots cles globaux enregistres dans l'etape parente
+           et dans le jdc parent.
+           Un mot cle compose ne peut pas etre global. Il se contente de passer
+           la requete a ses fils.
+        """
+        for motcle in self.mcListe :
+            motcle.updateMcGlobal()
+
+    def deleteMcGlobal(self):
+        for motcle in self.mcListe :
+            motcle.deleteMcGlobal()
+        # PN : je ne comprends pas les 4 lignes suivantes
+        # du coup je les vire
+        # surtout en dehors dans le for ?
+        # 20201217
+        #try :
+        #    print (motcle)
+        #    motcle.updateMcGlobal()
+        #except :
+        #    pass
+
+    def supprimeUserAssd(self):
+        for objUserAssd in self.userASSDCrees:
+            objUserAssd.supprime(self)
 
+    def initModifUp(self):
+        Validation.V_MCCOMPO.MCCOMPO.initModifUp(self)
+        CONNECTOR.Emit(self,"valid")
index 8e2d96b31b6feab4b83277b648b049adfe3d8575..b42c028c8a0156139e278dfacc5bb8436df7d71d 100644 (file)
@@ -24,94 +24,107 @@ from . import I_MCCOMPO
 import Noyau
 
 class MCFACT(I_MCCOMPO.MCCOMPO):
-  def isRepetable(self):
-     """ 
-         Indique si l'objet est repetable.
-         Retourne 1 si le mot-cle facteur self peut etre repete
-         Retourne 0 dans le cas contraire
-     """
-     if self.definition.max > 1:
-       # marche avec '**'
-       return 1
-     else :
-       return 0
+    def isRepetable(self):
+        """
+            Indique si l'objet est repetable.
+            Retourne 1 si le mot-cle facteur self peut etre repete
+            Retourne 0 dans le cas contraire
+        """
+        if self.definition.max > 1:
+            # marche avec '**'
+            return 1
+        else :
+            return 0
 
-  def isOblig(self):
-    if self.definition.statut != 'o' : return 0
-    objet = self.parent.getChild(self.nom)
-    if len(objet) > 1 : return 0
-    else : return 1
+    def isOblig(self):
+        if self.definition.statut != 'o' : return 0
+        objet = self.parent.getChild(self.nom)
+        if len(objet) > 1 : return 0
+        else : return 1
 
-  def getMinMax(self):
-     """
-     Retourne les valeurs min et max admissibles pour la valeur de self
-     """
-     return self.definition.min,self.definition.max
+    def getMinMax(self):
+        """
+        Retourne les valeurs min et max admissibles pour la valeur de self
+        """
+        return self.definition.min,self.definition.max
 
+    def getNomDsXML(self):
+        # en xml on a une sequence si max est superieur a 1
+        # sinon non
+        objet = self.parent.getChild(self.nom, restreint='oui')
+        if len(objet) > 1 :
+            index = objet.getIndex(self)
+            nom = self.nom + "[" + str(index) + "]"
+        else :
+            if self.definition.max == 1 : nom = self.nom
+            else :  nom = self.nom+"[0]"
+        nomDsXML=self.parent.getNomDsXML()+"."+nom
+        return nomDsXML
 
-  def getLabelText(self):
-    """
-       Retourne le label de self suivant qu'il s'agit d'un MCFACT
-       isole ou d'un MCFACT appartenant a une MCList :
-       utilisee pour l'affichage dans l'arbre
-    """
-    objet = self.parent.getChild(self.nom, restreint='oui')
-    # objet peut-etre self ou une MCList qui contient self ...
-    if objet is None or objet is self:
-     return tr("Erreur - mclist inexistante : %s", self.nom)
 
-    try:
-      if len(objet) > 1 :
-        index = objet.getIndex(self)+1 # + 1 a cause de la numerotation qui commence a 0
-        return tr(self.nom) +'_'+repr(index)+':'
-      else:
-        return tr(self.nom)
-    except:
-      return tr("Erreur - mot cle facteur de nom : %s", self.nom)
+    def getLabelText(self):
+        """
+           Retourne le label de self suivant qu'il s'agit d'un MCFACT
+           isole ou d'un MCFACT appartenant a une MCList :
+           utilisee pour l'affichage dans l'arbre
+        """
+        objet = self.parent.getChild(self.nom, restreint='oui')
+        # objet peut-etre self ou une MCList qui contient self ...
+        if objet is None or objet is self:
+            return tr("Erreur - mclist inexistante : %s", self.nom)
 
-  def getGenealogiePrecise(self):
-    nom=self.getLabelText() 
-    if nom[-1]==':' : nom=nom[0:-1]
-    if self.parent:
-       l=self.parent.getGenealogiePrecise()
-       l.append(nom.strip())
-       return l
-    else:
-       return [nom.strip()]
+        try:
+            if len(objet) > 1 :
+                index = objet.getIndex(self)+1 # + 1 a cause de la numerotation qui commence a 0
+                return tr(self.nom) +'_'+repr(index)+':'
+            else:
+                return tr(self.nom)
+        except:
+            return tr("Erreur - mot cle facteur de nom : %s", self.nom)
 
+    def getGenealogiePrecise(self):
+        nom=self.getLabelText()
+        if nom[-1]==':' : nom=nom[0:-1]
+        if self.parent:
+            l=self.parent.getGenealogiePrecise()
+            l.append(nom.strip())
+            return l
+        else:
+            return [nom.strip()]
 
-  def initModif(self):
-    """
-       Met l'etat de l'objet a modified et propage au parent
-       qui vaut None s'il n'existe pas
-    """
-    self.state = 'modified'
-    parent= hasattr(self,"alt_parent") and self.alt_parent or self.parent
-    if parent:
-       parent.initModif()
 
-  def finModif(self):
-    """
-      Methode appelee apres qu'une modification a ete faite afin de declencher
-      d'eventuels traitements post-modification
-    """
-    #print "finModif",self
-    # pour les objets autres que les commandes, aucun traitement specifique
-    # on remonte l'info de fin de modif au parent
-    CONNECTOR.Emit(self,"valid")
-    parent= hasattr(self,"alt_parent") and self.alt_parent or self.parent
-    if parent:
-       parent.finModif()
+    def initModif(self):
+        """
+           Met l'etat de l'objet a modified et propage au parent
+           qui vaut None s'il n'existe pas
+        """
+        self.state = 'modified'
+        parent= hasattr(self,"alt_parent") and self.alt_parent or self.parent
+        if parent:
+            parent.initModif()
 
-  def normalize(self):
-    """ Retourne le MCFACT normalise. Pour un MCFACT isole, l'objet normalise
-        est une MCLIST de longueur 1 qui contient ce MCFACT
-    """
-    new_obj = self.definition.list_instance()
-    new_obj.init(nom=self.nom,parent=None)
-    new_obj.append(self)
-    return new_obj
+    def finModif(self):
+        """
+          Methode appelee apres qu'une modification a ete faite afin de declencher
+          d'eventuels traitements post-modification
+        """
+        #print "finModif",self
+        # pour les objets autres que les commandes, aucun traitement specifique
+        # on remonte l'info de fin de modif au parent
+        CONNECTOR.Emit(self,"valid")
+        parent= hasattr(self,"alt_parent") and self.alt_parent or self.parent
+        if parent:
+            parent.finModif()
 
-  def supprime(self):
-    self.alt_parent=None
-    Noyau.N_MCFACT.MCFACT.supprime(self)
+    def normalize(self):
+        """ Retourne le MCFACT normalise. Pour un MCFACT isole, l'objet normalise
+            est une MCLIST de longueur 1 qui contient ce MCFACT
+        """
+        new_obj = self.definition.list_instance()
+        new_obj.init(nom=self.nom,parent=None)
+        new_obj.append(self)
+        return new_obj
+
+    def supprime(self):
+        self.alt_parent=None
+        Noyau.N_MCFACT.MCFACT.supprime(self)
index 85196d994f50364bef42c807175aa28daba282cb..e52a5b5cf27b81794f18f4fa9671c097c95649b6 100644 (file)
@@ -25,267 +25,272 @@ from copy import copy
 from . import CONNECTOR
 
 class MCList:
-  def isMCList(self):
-    """ 
-       Retourne 1 si self est une MCList (liste de mots-cles), 0 sinon (defaut) 
-    """
-    return 1
-
-  def getIndex(self,objet):
-    """
-        Retourne la position d'objet dans la liste self
-    """
-    return self.data.index(objet)
-
-  def ajoutPossible(self):
-    """ 
-        Methode booleenne qui retourne 1 si on peut encore ajouter une occurrence
-        de l'element que contient self, 0 sinon 
-    """
-    max = self.data[0].definition.max
-    if max == '**' or max == float('inf'):
-      return 1
-    else:
-      if len(self) < max :
+    def isMCList(self):
+        """
+           Retourne 1 si self est une MCList (liste de mots-cles), 0 sinon (defaut)
+        """
         return 1
-      else:
-        return 0
-
-  def isRepetable(self):
-    """
-       Indique si l'objet est repetable.
-       Retourne 1 si le mot-cle facteur self peut etre repete
-       Retourne 0 dans le cas contraire
-    """
-    if self.data[0].definition.max > 1:
-       # marche avec '**'
-       return 1
-    else :
-       return 0
-
-  def isOblig(self):
-     """
-     Une MCList n'est jamais obligatoire (meme si le MCFACT qu'elle represente l'est
-     """
-     return self.data[0].definition.statut=='o'
-  
-  def suppEntite(self,obj):
-      """
-        Supprime le mot cle facteur obj de la MCLIST
-      """
-      if obj not in self:
-         return 0
-
-      self.initModif()
-      self.remove(obj)
-      CONNECTOR.Emit(self,"supp",obj)
-      self.updateConditionBloc()
-      #obj.deletePyxbObject()
-      obj.supprime()
-      self.etape.modified()
-      self.finModif()
-      return 1
-
-  def addEntite(self,obj,pos=None):
-      """
-        Ajoute le mot cle facteur obj a la MCLIST a la position pos
-        Retourne None si l'ajout est impossible
-      """
-      if type(obj)==bytes or type(obj) == str :
-         # on est en mode creation d'un motcle
-                  raise EficasException(tr("traitement non-prevu"))
-
-      if not self.ajoutPossible():
-         self.jdc.appli.afficheAlerte(tr("Erreur"),
-                                       tr("L'objet %s ne peut pas etre ajoute", obj.nom))
-         return None
-
-      if self.nom != obj.nom:
-         return None
-
-      if obj.isMCList():
-         obj=obj.data[0]
-
-      # traitement du copier coller seulement 
-      # Les autres cas d'ajout sont traites dans MCFACT
-      self.initModif()
-      obj.verifExistenceSd()
-      obj.reparent(self.parent)
-      if pos is None:
-         self.append(obj)
-      else:
-         self.insert(pos,obj)
-      CONNECTOR.Emit(self,"add",obj)
-      self.finModif()
-      self.updateConditionBloc()
-      return obj
-
-  def listeMcPresents(self):
-    return []
-
-  def updateConcept(self,sd):
-    for child in self.data :
-        child.updateConcept(sd)
-
-  def deleteConcept(self,sd):
-    """ 
-        Inputs :
-           - sd=concept detruit
-        Fonction : Mettre a jour les fils de l objet suite a la disparition 
-        du concept sd
-        Seuls les mots cles simples MCSIMP font un traitement autre 
-        que de transmettre aux fils
-    """
-    for child in self.data :
-      child.deleteConcept(sd)
-
-  def replaceConcept(self,old_sd,sd):
-    """
-        Inputs :
-           - old_sd=concept remplace
-           - sd=nouveau concept
-        Fonction : Mettre a jour les fils de l objet suite au remplacement 
-        du concept old_sd
-    """
-    for child in self.data :
-      child.replaceConcept(old_sd,sd)
-
-  def getDocu(self):
-    return self.data[0].definition.getDocu()
-
-  def getListeMcInconnus(self):
-     """
-     Retourne la liste des mots-cles inconnus dans self
-     """
-     l_mc = []
-     for mcfact in self.data :
-        if mcfact.isValid() : continue
-        l_child = mcfact.getListeMcInconnus()
-        for mc in l_child:
-           l = [self]
-           l.extend(mc)
-           l_mc.append(l)
-     return l_mc
-
-  def verifConditionRegles(self,liste_presents):
-    """
-        Retourne la liste des mots-cles a rajouter pour satisfaire les regles
-        en fonction de la liste des mots-cles presents
-    """
-    # Sans objet pour une liste de mots cles facteurs
-    return []
-
-  def deepUpdateConditionBloc(self):
-     """
-        Parcourt l'arborescence des mcobject et realise l'update
-        des blocs conditionnels par appel de la methode updateConditionBloc
-     """
-     #print "deepUpdateConditionBloc",self
-     for mcfact in self.data :
-         mcfact.deepUpdateConditionBloc()
-
-  def updateConditionBloc(self):
-     """
-        Propage la mise a jour des conditions au parent.
-        Une liste ne fait pas de traitement sur les conditions
-     """
-     if self.parent: self.parent.updateConditionBloc()
-
-  def verifConditionBloc(self):
-    """ 
-        Evalue les conditions de tous les blocs fils possibles 
-        (en fonction du catalogue donc de la definition) de self et 
-        retourne deux listes :
-           - la premiere contient les noms des blocs a rajouter
-           - la seconde contient les noms des blocs a supprimer
-    """
-    # Sans objet pour une liste de mots cles facteurs (a voir !!!)
-    return [],[]
-
-  def initModif(self):
-    """
-       Met l'etat de l'objet a modified et propage au parent
-       qui vaut None s'il n'existe pas
-    """
-    self.state = 'modified'
-    if self.parent:
-      self.parent.initModif()
-
-  def finModif(self):
-    """
-      Methode appelee apres qu'une modification a ete faite afin de declencher
-      d'eventuels traitements post-modification
-    """
-    #print "finModif",self
-    CONNECTOR.Emit(self,"valid")
-    if self.parent:
-      self.parent.finModif()
-
-  def getGenealogiePrecise(self):
-     if self.parent: 
-        return self.parent.getGenealogiePrecise()
-     else:
+
+    def getIndex(self,objet):
+        """
+            Retourne la position d'objet dans la liste self
+        """
+        return self.data.index(objet)
+
+    def ajoutPossible(self):
+        """
+            Methode booleenne qui retourne 1 si on peut encore ajouter une occurrence
+            de l'element que contient self, 0 sinon
+        """
+        max = self.data[0].definition.max
+        if max == '**' or max == float('inf'):
+            return 1
+        else:
+            if len(self) < max :
+                return 1
+            else:
+                return 0
+
+    def isRepetable(self):
+        """
+           Indique si l'objet est repetable.
+           Retourne 1 si le mot-cle facteur self peut etre repete
+           Retourne 0 dans le cas contraire
+        """
+        if self.data[0].definition.max > 1:
+            # marche avec '**'
+            return 1
+        else :
+            return 0
+
+    def isOblig(self):
+        """
+        Une MCList n'est jamais obligatoire (meme si le MCFACT qu'elle represente l'est
+        """
+        return self.data[0].definition.statut=='o'
+
+    def suppEntite(self,obj):
+        """
+          Supprime le mot cle facteur obj de la MCLIST
+        """
+        if obj not in self:
+            return 0
+
+        self.initModif()
+        self.remove(obj)
+        CONNECTOR.Emit(self,"supp",obj)
+        self.updateConditionBloc()
+        obj.delObjPyxb()
+        obj.supprime()
+        self.etape.modified()
+        self.finModif()
+        return 1
+
+    def addEntite(self,obj,pos=None):
+        """
+          Ajoute le mot cle facteur obj a la MCLIST a la position pos
+          Retourne None si l'ajout est impossible
+        """
+        if type(obj)==bytes or type(obj) == str  :
+            # on est en mode creation d'un motcle
+            raise EficasException(tr("traitement non-prevu"))
+
+        if not self.ajoutPossible():
+            self.jdc.editor.afficheAlerte(tr("Erreur"),
+                                          tr("L'objet %s ne peut pas etre ajoute", obj.nom))
+            return None
+
+        if self.nom != obj.nom:
+            return None
+
+        if obj.isMCList():
+            obj=obj.data[0]
+
+        # traitement du copier coller seulement
+        # Les autres cas d'ajout sont traites dans MCFACT
+        self.initModif()
+        obj.verifExistenceSd()
+        obj.reparent(self.parent)
+        if pos is None:
+            self.append(obj)
+        else:
+            self.insert(pos,obj)
+        CONNECTOR.Emit(self,"add",obj)
+        self.finModif()
+        self.updateConditionBloc()
+        return obj
+
+    def listeMcPresents(self):
         return []
 
-  def getGenealogie(self):
-     """
-         Retourne la liste des noms des ascendants.
-         Un objet MCList n'est pas enregistre dans la genealogie.
-         XXX Meme si le MCFACT fils ne l'est pas lui non plus ????
-     """
-     if self.parent: 
-        return self.parent.getGenealogie()
-     else:
+    def updateConcept(self,sd):
+        for child in self.data :
+            child.updateConcept(sd)
+
+    def deleteRef(self):
+        for child in self.data :
+            child.deleteRef()
+
+    def deleteConcept(self,sd):
+        """
+            Inputs :
+               - sd=concept detruit
+            Fonction : Mettre a jour les fils de l objet suite a la disparition
+            du concept sd
+            Seuls les mots cles simples MCSIMP font un traitement autre
+            que de transmettre aux fils
+        """
+        for child in self.data :
+            child.deleteConcept(sd)
+
+    def replaceConcept(self,old_sd,sd):
+        """
+            Inputs :
+               - old_sd=concept remplace
+               - sd=nouveau concept
+            Fonction : Mettre a jour les fils de l objet suite au remplacement
+            du concept old_sd
+        """
+        for child in self.data :
+            child.replaceConcept(old_sd,sd)
+
+    def getDocu(self):
+        return self.data[0].definition.getDocu()
+
+    def getListeMcInconnus(self):
+        """
+        Retourne la liste des mots-cles inconnus dans self
+        """
+        l_mc = []
+        for mcfact in self.data :
+            if mcfact.isValid() : continue
+            l_child = mcfact.getListeMcInconnus()
+            for mc in l_child:
+                l = [self]
+                l.extend(mc)
+                l_mc.append(l)
+        return l_mc
+
+    def verifConditionRegles(self,liste_presents):
+        """
+            Retourne la liste des mots-cles a rajouter pour satisfaire les regles
+            en fonction de la liste des mots-cles presents
+        """
+        # Sans objet pour une liste de mots cles facteurs
         return []
 
-  def getListeMcOrdonneeBrute(self,liste,dico):
-     """
-         Retourne la liste ordonnee (suivant le catalogue) BRUTE des mots-cles
-         d'une entite composee dont le chemin complet est donne sous forme
-         d'une liste du type :ETAPE + MCFACT ou MCBLOC + ...
-     """
-     for arg in liste:
-        objet_cata = dico[arg]
-        dico=objet_cata.entites
-     return objet_cata.ordre_mc
-
-  def verifExistenceSd(self):
-     """
-        Verifie que les structures de donnees utilisees dans self existent bien dans le contexte
-        avant etape, sinon enleve la reference a ces concepts
-     """
-     for motcle in self.data :
-         motcle.verifExistenceSd()
-
-  def getFr(self):
-     """
-         Retourne la chaine d'aide contenue dans le catalogue
-         en tenant compte de la langue
-     """
-     try :
-        return self.data[0].getFr()
-     except:
-        return ''
-
-  def normalize(self):
-     """
-        Retourne l'objet normalise. Une liste est deja normalisee
-     """
-     return self
-
-  def updateMcGlobal(self):
-     """
-        Met a jour les mots cles globaux enregistres dans l'etape parente
-        et dans le jdc parent.
-        Une liste ne peut pas etre globale. Elle se contente de passer
-        la requete a ses fils.
-     """
-     for motcle in self.data :
-         motcle.updateMcGlobal()
-
-  def deleteMcGlobal(self):
-     for motcle in self.data :
-         motcle.deleteMcGlobal()
-
-  #def __del__(self):
-  #   print "__del__",self
+    def deepUpdateConditionBloc(self):
+        """
+           Parcourt l'arborescence des mcobject et realise l'update
+           des blocs conditionnels par appel de la methode updateConditionBloc
+        """
+        #print "deepUpdateConditionBloc",self
+        for mcfact in self.data :
+            mcfact.deepUpdateConditionBloc()
+
+    def updateConditionBloc(self):
+        """
+           Propage la mise a jour des conditions au parent.
+           Une liste ne fait pas de traitement sur les conditions
+        """
+        if self.parent: self.parent.updateConditionBloc()
+
+    def verifConditionBloc(self):
+        """
+            Evalue les conditions de tous les blocs fils possibles
+            (en fonction du catalogue donc de la definition) de self et
+            retourne deux listes :
+               - la premiere contient les noms des blocs a rajouter
+               - la seconde contient les noms des blocs a supprimer
+        """
+        # Sans objet pour une liste de mots cles facteurs (a voir !!!)
+        return [],[]
+
+    def initModif(self):
+        """
+           Met l'etat de l'objet a modified et propage au parent
+           qui vaut None s'il n'existe pas
+        """
+        self.state = 'modified'
+        if self.parent:
+            self.parent.initModif()
+
+    def finModif(self):
+        """
+          Methode appelee apres qu'une modification a ete faite afin de declencher
+          d'eventuels traitements post-modification
+        """
+        #print "finModif",self
+        CONNECTOR.Emit(self,"valid")
+        if self.parent:
+            self.parent.finModif()
+
+    def getGenealogiePrecise(self):
+        if self.parent:
+            return self.parent.getGenealogiePrecise()
+        else:
+            return []
+
+    def getGenealogie(self):
+        """
+            Retourne la liste des noms des ascendants.
+            Un objet MCList n'est pas enregistre dans la genealogie.
+            XXX Meme si le MCFACT fils ne l'est pas lui non plus ????
+        """
+        if self.parent:
+            return self.parent.getGenealogie()
+        else:
+            return []
+
+    def getListeMcOrdonneeBrute(self,liste,dico):
+        """
+            Retourne la liste ordonnee (suivant le catalogue) BRUTE des mots-cles
+            d'une entite composee dont le chemin complet est donne sous forme
+            d'une liste du type :ETAPE + MCFACT ou MCBLOC + ...
+        """
+        for arg in liste:
+            objet_cata = dico[arg]
+            dico=objet_cata.entites
+        return objet_cata.ordre_mc
+
+    def verifExistenceSd(self):
+        """
+           Verifie que les structures de donnees utilisees dans self existent bien dans le contexte
+           avant etape, sinon enleve la reference a ces concepts
+        """
+        for motcle in self.data :
+            motcle.verifExistenceSd()
+
+    def getFr(self):
+        """
+            Retourne la chaine d'aide contenue dans le catalogue
+            en tenant compte de la langue
+        """
+        try :
+            return self.data[0].getFr()
+        except:
+            return ''
+
+    def normalize(self):
+        """
+           Retourne l'objet normalise. Une liste est deja normalisee
+        """
+        return self
+
+    def updateMcGlobal(self):
+        """
+           Met a jour les mots cles globaux enregistres dans l'etape parente
+           et dans le jdc parent.
+           Une liste ne peut pas etre globale. Elle se contente de passer
+           la requete a ses fils.
+        """
+        for motcle in self.data :
+            motcle.updateMcGlobal()
+
+    def deleteMcGlobal(self):
+        for motcle in self.data :
+            motcle.deleteMcGlobal()
+
+
+    #def __del__(self):
+    #   print "__del__",self
index a45f90cd8b8c21dfff74340e6f5417350328fbda..159c8f67f3042421fc28d3dd4886b4d9890d9ab1 100644 (file)
@@ -21,13 +21,8 @@ from __future__ import absolute_import
 import types
 import traceback
 from copy import copy
-from six.moves.reprlib import Repr
 from Extensions.i18n import tr
 from Extensions.eficas_exception import EficasException
-from six.moves import range
-myrepr = Repr()
-myrepr.maxstring = 100
-myrepr.maxother = 100
 
 from Noyau.N_utils import repr_float
 import Validation
@@ -45,6 +40,8 @@ from . import CONNECTOR
 from Noyau.N_ASSD import ASSD,assd
 from Noyau.N_GEOM import GEOM,geom
 from Noyau.N_CO import CO
+from Accas.A_ASSD import UserASSD
+from Accas.A_ASSD import UserASSDMultiple
 import Accas
 # fin attention
 
@@ -57,656 +54,832 @@ from .I_VALIDATOR import ValError,listProto
 class MCSIMP(I_OBJECT.OBJECT):
 
 
-  def isValid(self,cr='non'):
-      if self.state == 'unchanged':
-        return self.valid
-      for type_permis in self.definition.type:
-          if hasattr(type_permis, "__class__") and type_permis.__class__.__name__ == 'Matrice':
-             self.monType=type_permis
-             return self.valideMatrice(cr=cr)
-      validite=Validation.V_MCSIMP.MCSIMP.isValid(self,cr=cr)
-      if self.definition.siValide != None and validite:
+    def isValid(self,cr='non'):
+        if self.state == 'unchanged':
+            return self.valid
+        for type_permis in self.definition.type:
+            #if hasattr(type_permis, "__class__") and type_permis.__class__.__name__ == 'Matrice':
+            if hasattr(type_permis, "typElt") :
+                self.monType=type_permis
+                return self.valideMatrice(cr=cr)
+        validite=Validation.V_MCSIMP.MCSIMP.isValid(self,cr=cr)
+
+        if self.definition.siValide != None and validite:
             self.definition.siValide(self)
-      return validite 
-
-  def getNomConcept(self):
-      p=self
-      while p.parent :
-         try :
-            nomconcept=p.getSdname()
-            return nomconcept
-         except:
+        return validite
+
+
+    def getNomConcept(self):
+        p=self
+        while p.parent :
             try :
-               nomconcept= p.object.getSdname()
-               return nomconcept
-            except :
-               pass
-         p=p.parent
-      return ""
-
-  def getText(self):
-    """
-        Retourne le texte a afficher dans l'arbre representant la valeur de l'objet
-        pointe par self
-    """
-
-    if self.valeur == None : 
-      return None
-    elif type(self.valeur) == float : 
-      # traitement d'un flottant isole
-      txt = str(self.valeur)
-      clefobj=self.getNomConcept()
-      if clefobj in self.jdc.appli.appliEficas.dict_reels :
-        if self.valeur in self.jdc.appli.appliEficas.dict_reels[clefobj]:
-           txt=self.jdc.appli.appliEficas.dict_reels[clefobj][self.valeur]
-    elif type(self.valeur) in (list,tuple) :
-      if self.valeur==[] or self.valeur == (): return str(self.valeur)
-      # traitement des listes
-      txt='('
-      sep=''
-      for val in self.valeur:
-        if type(val) == float : 
-           clefobj=self.getNomConcept()
-           if clefobj in self.jdc.appli.appliEficas.dict_reels:
-              if val in self.jdc.appli.appliEficas.dict_reels[clefobj]:
-                 txt=txt + sep +self.jdc.appli.appliEficas.dict_reels[clefobj][val]
-              else :
-                 txt=txt + sep + str(val)
-           else :
-              txt=txt + sep + str(val)
-        else: 
-           if isinstance(val,tuple):
-              texteVal='('
-              for i in val :
-                  if isinstance(i, bytes) or isinstance(i,str) : texteVal = texteVal +"'"+str(i)+"'," 
-                  else : texteVal = texteVal + str(i)+','
-              texteVal=texteVal[:-1]+')'
-           else : 
-              if isinstance(val,bytes) or isinstance(val, str): texteVal="'"+str(val)+"'"
-              else :texteVal=str(val)
-           txt = txt + sep+ texteVal 
+                nomconcept=p.getSdname()
+                return nomconcept
+            except:
+                try :
+                    nomconcept= p.object.getSdname()
+                    return nomconcept
+                except :
+                    pass
+            p=p.parent
+        return ""
+
+    def getText(self):
+        """
+            Retourne le texte a afficher dans l'arbre representant la valeur de l'objet
+            pointe par self
+        """
+
+        if self.valeur == None :
+            return None
+        elif type(self.valeur) == float :
+            # traitement d'un flottant isole
+            txt = str(self.valeur)
+            clefobj=self.getNomConcept()
+            if clefobj in self.jdc.appliEficas.dict_reels :
+                if self.valeur in self.jdc.appliEficas.dict_reels[clefobj]:
+                    txt=self.jdc.appliEficas.dict_reels[clefobj][self.valeur]
+        elif type(self.valeur) in (list,tuple) :
+            if self.valeur==[] or self.valeur == (): return str(self.valeur)
+            # traitement des listes
+            txt='('
+            sep=''
+            for val in self.valeur:
+                if type(val) == float :
+                    clefobj=self.getNomConcept()
+                    if clefobj in self.jdc.appliEficas.dict_reels:
+                        if val in self.jdc.appliEficas.dict_reels[clefobj]:
+                            txt=txt + sep +self.jdc.appliEficas.dict_reels[clefobj][val]
+                        else :
+                            txt=txt + sep + str(val)
+                    else :
+                        txt=txt + sep + str(val)
+                else:
+                    if isinstance(val,tuple):
+                        texteVal='('
+                        for i in val :
+                            if isinstance(i, bytes) or isinstance(i,str) : texteVal = texteVal +"'"+str(i)+"',"
+                            else : texteVal = texteVal + str(i)+','
+                        texteVal=texteVal[:-1]+')'
+                    else :
+                        if isinstance(val,bytes) or isinstance(val,str): texteVal="'"+str(val)+"'"
+                        else :texteVal=str(val)
+                    txt = txt + sep+ texteVal
 
 ##        if len(txt) > 200:
 ##            #ligne trop longue, on tronque
 ##            txt=txt+" ..."
 ##            break
-        sep=','
-      # cas des listes de tuples de longueur 1
-      if isinstance(val,tuple) and len(self.valeur) == 1 : txt=txt+','
-      txt=txt+')'
-    else:
-      # traitement des autres cas
-      txt = str(self.valeur)
-
-    # txt peut etre une longue chaine sur plusieurs lignes.
-    # Il est possible de tronquer cette chaine au premier \n et 
-    # de limiter la longueur de la chaine a 30 caracteres. Cependant
-    # ceci provoque une perte d'information pour l'utilisateur
-    # Pour le moment on retourne la chaine telle que
-    return txt
-
-  def getVal(self):
-    """ 
-       Retourne une chaine de caractere representant la valeur de self 
-    """
-    val=self.valeur
-    if type(val) == float : 
-      clefobj=self.getNomConcept()
-      if clefobj in self.jdc.appli.appliEficas.dict_reels :
-        if val in self.jdc.appli.appliEficas.appliEficas.dict_reels[clefobj] :
-           return self.jdc.appli.appliEficas.dict_reels[clefobj][val]
-    if type(val) != tuple :
-      try:
-        return val.getName()
-      except:
-        return val
-    else :
-      if val ==() or val == [] : return val
-      s='( '
-      for item in val :
-        try :
-          s=s+item.getName()+','
-        except:
-          s=s+repr(item)+','
-      s=s+' )'
-      return s
-
-  def waitBool(self):
-      for typ in self.definition.type:
+                sep=','
+            # cas des listes de tuples de longueur 1
+            if isinstance(val,tuple) and len(self.valeur) == 1 : txt=txt+','
+            txt=txt+')'
+        else:
+            # traitement des autres cas
+            txt = str(self.valeur)
+
+        # txt peut etre une longue chaine sur plusieurs lignes.
+        # Il est possible de tronquer cette chaine au premier \n et
+        # de limiter la longueur de la chaine a 30 caracteres. Cependant
+        # ceci provoque une perte d'information pour l'utilisateur
+        # Pour le moment on retourne la chaine telle que
+        return txt
+
+    def getVal(self):
+        """
+           Retourne une chaine de caractere representant la valeur de self
+        """
+        val=self.valeur
+        if type(val) == float :
+            clefobj=self.getNomConcept()
+            if clefobj in self.jdc.appliEficas.dict_reels :
+                if val in self.jdc.appliEficas.appliEficas.dict_reels[clefobj] :
+                    return self.jdc.appliEficas.dict_reels[clefobj][val]
+        if type(val) != tuple :
+            try:
+                return val.getName()
+            except:
+                return val
+        else :
+            if val ==() or val == [] : return val
+            s='( '
+            for item in val :
+                try :
+                    s=s+item.getName()+','
+                except:
+                    s=s+repr(item)+','
+            s=s+' )'
+            return s
+
+    def waitBool(self):
+        for typ in self.definition.type:
+            try :
+                if typ == bool: return True
+            except :
+                pass
+        return False
+
+    def waitCo(self):
+        """
+            Methode booleenne qui retourne 1 si l'objet attend un objet ASSD
+            qui n'existe pas encore (type CO()), 0 sinon
+        """
+        for typ in self.definition.type:
+            if type(typ) == type or isinstance(typ,type):
+                if issubclass(typ,CO) :
+                    return 1
+        return 0
+
+    def waitAssd(self):
+        """
+            Methode booleenne qui retourne 1 si le MCS attend un objet de type ASSD ou UserASSD
+            ou derive, 0 sinon
+        """
+        for typ in self.definition.type:
+            if type(typ) == type or isinstance(typ,type):
+                if issubclass(typ,ASSD) and not issubclass(typ,GEOM) :
+                    return 1
+        return 0
+
+    def waitUserAssd(self):
+        """
+            Methode booleenne qui retourne 1 si le MCS attend un objet de type ASSD
+            ou derive, 0 sinon
+        """
+        for typ in self.definition.type:
+            if type(typ) == type or isinstance(typ,type):
+                if issubclass(typ,UserASSD) :
+                    return 1
+        return 0
+
+    def waitUserAssdMultiple(self):
+        for typ in self.definition.type:
+            if type(typ) == type or isinstance(typ,type):
+                if issubclass(typ,UserASSDMultiple) :
+                    return 1
+        return 0
+
+    def waitUserAssdOrAssdMultipleEnCreation(self):
+        for typ in self.definition.type:
+            if typ == 'createObject' :
+                return 1
+        return 0
+
+
+    def waitAssdOrGeom(self):
+        """
+             Retourne 1 si le mot-cle simple attend un objet de type
+             assd, ASSD, geom ou GEOM
+             Retourne 0 dans le cas contraire
+        """
+        for typ in self.definition.type:
+            if type(typ) == type or isinstance(typ,type):
+                if typ.__name__ in ("GEOM","ASSD","geom","assd") or issubclass(typ,GEOM) :
+                    return 1
+        return 0
+
+    def waitGeom(self):
+        """
+             Retourne 1 si le mot-cle simple attend un objet de type GEOM
+             Retourne 0 dans le cas contraire
+        """
+        for typ in self.definition.type:
+            if type(typ) == type or isinstance(typ,type):
+                if issubclass(typ,GEOM) : return 1
+        return 0
+
+
+    def waitTxm(self):
+        """
+             Retourne 1 si le mot-cle simple attend un objet de type TXM
+             Retourne 0 dans le cas contraire
+        """
+        for typ in self.definition.type:
+            if typ == 'TXM' :return 1
+        return 0
+
+    def waitTuple(self):
+        for ss_type in self.definition.type:
+            if repr(ss_type).find('Tuple') != -1 :
+                return 1
+        return 0
+
+    def waitChaineAvecBlancs(self):
+        if self.definition.avecBlancs : return 1
+        return 0
+
+    def combienEltDsTuple(self):
+        for ss_type in self.definition.type:
+            if hasattr(ss_type,'ntuple'):
+               return ss_type.ntuple
+        return O 
+
+    def waitMatrice(self):
+        if hasattr(self, 'isAMatrice') : return self.isAMatrice
+        for typ in self.definition.type:
           try :
-            if typ == bool: return True
-          except :
-            pass
-      return False
-
-  def waitCo(self):
-    """
-        Methode booleenne qui retourne 1 si l'objet attend un objet ASSD 
-        qui n'existe pas encore (type CO()), 0 sinon
-    """
-    for typ in self.definition.type:
-      if type(typ) == type or isinstance(typ,type):
-        if issubclass(typ,CO) :
-           return 1
-    return 0
-
-  def waitAssd(self):
-    """ 
-        Methode booleenne qui retourne 1 si le MCS attend un objet de type ASSD 
-        ou derive, 0 sinon
-    """
-    for typ in self.definition.type:
-      if type(typ) == type or isinstance(typ,type):
-        if issubclass(typ,ASSD) and not issubclass(typ,GEOM):
-          return 1
-    return 0
-
-  def waitAssdOrGeom(self):
-    """ 
-         Retourne 1 si le mot-cle simple attend un objet de type
-         assd, ASSD, geom ou GEOM
-         Retourne 0 dans le cas contraire
-    """
-    for typ in self.definition.type:
-      if type(typ) == type or isinstance(typ,type):
-        if typ.__name__ in ("GEOM","ASSD","geom","assd") or issubclass(typ,GEOM) :
-          return 1
-    return 0
-
-  def waitGeom(self):
-    """ 
-         Retourne 1 si le mot-cle simple attend un objet de type GEOM
-         Retourne 0 dans le cas contraire
-    """
-    for typ in self.definition.type:
-      if type(typ) == type or isinstance(typ,type):
-        if issubclass(typ,GEOM) : return 1
-    return 0
-
-
-  def waitTxm(self):
-    """ 
-         Retourne 1 si le mot-cle simple attend un objet de type TXM
-         Retourne 0 dans le cas contraire
-    """
-    for typ in self.definition.type:
-      if typ == 'TXM' :return 1
-    return 0
-
-  def waitTuple(self):
-    for ss_type in self.definition.type:
-        if repr(ss_type).find('Tuple') != -1 :
-          return 1
-    return 0
-
-
-  def getListeValeurs(self):
-    """
-    """
-    if self.valeur == None:
-      return []
-    elif type(self.valeur) == tuple:
-      return list(self.valeur)
-    elif type(self.valeur) == list:
-      return self.valeur
-    else:
-      return [self.valeur]
-
-  def isOblig(self):
-    return self.definition.statut=='o'
-
-  def isImmuable(self):
-    return self.definition.homo=='constant'
-
-  def isInformation(self):
-    return self.definition.homo=='information'
-
-
-
-  def validVal(self,valeur):
-      """
-        Verifie que la valeur passee en argument (valeur) est valide
-        sans modifier la valeur courante 
-      """
-      lval=listProto.adapt(valeur)
-      if lval is None:
-         valid=0
-         mess=tr("None n'est pas une valeur autorisee")
-      else:
-         try:
-            for val in lval:
+            if hasattr(typ, 'typElt') : self.isAMatrice=1; return 1
+          except : pass
+        self.isAMatrice=0
+        return 0
+
+    def getListeValeurs(self):
+        """
+        """
+        if self.valeur == None:
+            return []
+        elif type(self.valeur) == tuple:
+            return list(self.valeur)
+        elif type(self.valeur) == list:
+            return self.valeur
+        else:
+            return [self.valeur]
+
+    def isOblig(self):
+        return self.definition.statut=='o'
+
+    def isImmuable(self):
+        return self.definition.homo=='constant'
+
+    def isInformation(self):
+        return self.definition.homo=='information'
+
+
+    def validVal(self,valeur):
+        """
+          Verifie que la valeur passee en argument (valeur) est valide
+          sans modifier la valeur courante
+        """
+        lval=listProto.adapt(valeur)
+        if lval is None:
+            valid=0
+            mess=tr("None n'est pas une valeur autorisee")
+        else:
+            try:
+                for val in lval:
+                    self.typeProto.adapt(val)
+                    self.intoProto.adapt(val)
+                self.cardProto.adapt(lval)
+                if self.definition.validators:
+                    self.definition.validators.convert(lval)
+                valid,mess=1,""
+            except ValError as e:
+                mess=str(e)
+                valid=0
+        return valid,mess
+
+    def validValeur(self,new_valeur):
+        """
+          Verifie que la valeur passee en argument (new_valeur) est valide
+          sans modifier la valeur courante (evite d'utiliser setValeur et est plus performant)
+        """
+        validite,mess=self.validVal(new_valeur)
+        return validite
+
+    def validValeurPartielle(self,new_valeur):
+        """
+          Verifie que la valeur passee en argument (new_valeur) est une liste partiellement valide
+          sans modifier la valeur courante du mot cle
+        """
+        validite=1
+        try:
+            for val in new_valeur:
                 self.typeProto.adapt(val)
                 self.intoProto.adapt(val)
-            self.cardProto.adapt(lval)
-            if self.definition.validators:
-                self.definition.validators.convert(lval)
-            valid,mess=1,""
-         except ValError as e:
-            mess=str(e)
-            valid=0
-      return valid,mess
-
-  def validValeur(self,new_valeur):
-      """
-        Verifie que la valeur passee en argument (new_valeur) est valide
-        sans modifier la valeur courante (evite d'utiliser setValeur et est plus performant)
-      """
-      validite,mess=self.validVal(new_valeur)
-      return validite
-
-  def validValeurPartielle(self,new_valeur):
-      """
-        Verifie que la valeur passee en argument (new_valeur) est une liste partiellement valide
-        sans modifier la valeur courante du mot cle
-      """
-      validite=1
-      try:
-          for val in new_valeur:
-              self.typeProto.adapt(val)
-              self.intoProto.adapt(val)
-              #on ne verifie pas la cardinalite
-              if self.definition.validators:
-                  validite=self.definition.validators.valideListePartielle(new_valeur)
-      except ValError as e:
-          validite=0
-
-      return validite
-
-  def updateConditionBloc(self):
-      """ Met a jour les blocs conditionnels dependant du mot cle simple self
-      """
-      if self.definition.position == 'global' : 
-         self.etape.deepUpdateConditionBloc()
-      elif self.definition.position == 'global_jdc' :
-         self.jdc.deepUpdateConditionBloc()
-      else:
-         self.parent.updateConditionBloc()
-
-  def setValeur(self,new_valeur,evaluation='oui'):
-        #print ("setValeur Ihm/IMCSIMP ",new_valeur)
+                #on ne verifie pas la cardinalite
+                if self.definition.validators:
+                    validite=self.definition.validators.valideListePartielle(new_valeur)
+        except ValError as e:
+            validite=0
+
+        return validite
+
+    def updateConditionBloc(self):
+        """ Met a jour les blocs conditionnels dependant du mot cle simple self
+        """
+        if self.definition.position == 'global' :
+            self.etape.deepUpdateConditionBloc()
+        elif self.definition.position == 'reCalculeEtape' :
+            print ('je passe par la pour ', self.nom)
+            self.etape.deepUpdateConditionBloc()
+            self.etape.demandeRedessine()
+        elif self.definition.position == 'global_jdc' :
+            self.jdc.deepUpdateConditionBloc(self)
+            self.etape.demandeRedessine()
+        elif self.definition.position == 'inGetAttribut' :
+            self.jdc.deepUpdateConditionBloc(self)
+        else:
+            self.parent.updateConditionBloc()
+
+    def setValeur(self,new_valeur,evaluation='oui'):
         self.initModif()
         self.valeur = new_valeur
         self.val = new_valeur
-        #self.setValeurObjPyxb(new_valeur)
+        if self.valeur and self.waitUserAssd() and not(self.waitUserAssdOrAssdMultipleEnCreation()) :
+            if type(self.valeur)  in (list,tuple):
+                for v in self.valeur : v.ajoutUtilisePar(self)
+            else : self.valeur.ajoutUtilisePar(self)
+        if  self.isValid() and hasattr(self, 'objPyxb') and self.objPyxb : self.setValeurObjPyxb(new_valeur)
         self.updateConditionBloc()
+        if self.definition.metAJour != None : self.updateAutresMotsClefs()
         self.etape.modified()
         self.finModif()
         return 1
 
-  def evalValeur(self,new_valeur):
-    """
-        Essaie d'evaluer new_valeur comme une SD, une declaration Python 
-        ou un EVAL: Retourne la valeur evaluee (ou None) et le test de reussite (1 ou 0)
-    """
-    sd = self.jdc.getSdAvantEtape(new_valeur,self.etape)
-    #sd = self.jdc.getContexteAvant(self.etape).get(new_valeur,None)
-    #print sd
-    if sd is not None:
-      return sd,1
-    lsd = self.jdc.chercheListAvant(self.etape,new_valeur) 
-    if lsd :
-      return lsd,1
-    else:
-      d={}
-      # On veut EVAL avec tous ses comportements. On utilise Accas. Perfs ??
-      d['EVAL']=Accas.EVAL
-      try :
-        objet = eval(new_valeur,d)
-        return objet,1
-      except Exception:
-        itparam=self.chercheItemParametre(new_valeur)
-        if itparam:
-             return itparam,1
-        try :
-             object=eval(new_valeur.valeur,d)
-        except :
-             pass
-        if CONTEXT.debug : traceback.print_exc()
-        return None,0
-
-  def evalVal(self,new_valeur):
-    """
-       Tente d'evaluer new_valeur comme un objet du jdc (par appel a evalValItem)
-       ou comme une liste de ces memes objets
-       Si new_valeur contient au moins un separateur (,), tente l'evaluation sur
-       la chaine splittee
-    """
-    if new_valeur in ('True','False') and 'TXM' in self.definition.type  :
-       valeur=self.evalValItem(str(new_valeur))
-       return new_valeur
-    if type(new_valeur) in (list,tuple):
-       valeurretour=[]
-       for item in new_valeur :
-          valeurretour.append(self.evalValItem(item))
-       return valeurretour
-    else:
-       valeur=self.evalValItem(new_valeur)
-       return valeur
-
-  def evalValItem(self,new_valeur):
-    """
-       Tente d'evaluer new_valeur comme un concept, un parametre, un objet Python
-       Si c'est impossible retourne new_valeur inchange
-       argument new_valeur : string (nom de concept, de parametre, expression ou simple chaine)
-    """
-    if self.etape and self.etape.parent:
-       valeur=self.etape.parent.evalInContext(new_valeur,self.etape)
-       return valeur
-    else:
-       try :
-           valeur = eval(val)
-           return valeur
-       except:
-           #traceback.print_exc()
-           return new_valeur
-           pass
-
-  def chercheItemParametre (self,new_valeur):
+    def evalValeur(self,new_valeur):
+        """
+            Essaie d'evaluer new_valeur comme une SD, une declaration Python
+            ou un EVAL: Retourne la valeur evaluee (ou None) et le test de reussite (1 ou 0)
+        """
+        sd = self.jdc.getSdAvantEtape(new_valeur,self.etape)
+        #sd = self.jdc.getContexteAvant(self.etape).get(new_valeur,None)
+        if sd is not None:
+            return sd,1
+        lsd = self.jdc.chercheListAvant(self.etape,new_valeur)
+        if lsd :
+            return lsd,1
+        else:
+            d={}
+            # On veut EVAL avec tous ses comportements. On utilise Accas. Perfs ??
+            d['EVAL']=Accas.EVAL
+            try :
+                objet = eval(new_valeur,d)
+                return objet,1
+            except Exception:
+                itparam=self.chercheItemParametre(new_valeur)
+                if itparam:
+                    return itparam,1
+                try :
+                    object=eval(new_valeur.valeur,d)
+                except :
+                    pass
+                if CONTEXT.debug : traceback.print_exc()
+                return None,0
+
+    def evalVal(self,new_valeur):
+        """
+           Tente d'evaluer new_valeur comme un objet du jdc (par appel a evalValItem)
+           ou comme une liste de ces memes objets
+           Si new_valeur contient au moins un separateur (,), tente l'evaluation sur
+           la chaine splittee
+        """
+        if new_valeur in ('True','False') and 'TXM' in self.definition.type  :
+            valeur=self.evalValItem(str(new_valeur))
+            return new_valeur
+        if type(new_valeur) in (list,tuple):
+            valeurretour=[]
+            for item in new_valeur :
+                valeurretour.append(self.evalValItem(item))
+            return valeurretour
+        else:
+            valeur=self.evalValItem(new_valeur)
+            return valeur
+
+    def evalValItem(self,new_valeur):
+        """
+           Tente d'evaluer new_valeur comme un concept, un parametre, un objet Python ou un UserASSD
+           Si c'est impossible retourne new_valeur inchange
+           argument new_valeur : string (nom de concept, de parametre, expression ou simple chaine)
+        """
+        if new_valeur in list(self.jdc.sdsDict.keys()) and self.waitUserAssd():
+            valeur=self.jdc.sdsDict[new_valeur]
+            return valeur
+        elif self.etape and self.etape.parent:
+            valeur=self.etape.parent.evalInContext(new_valeur,self.etape)
+            return valeur
+        else:
+            try :
+                valeur = eval(val)
+                return valeur
+            except:
+                #traceback.print_exc()
+                return new_valeur
+                pass
+
+    def chercheItemParametre (self,new_valeur):
         try:
-          nomparam=new_valeur[0:new_valeur.find("[")]
-          indice=new_valeur[new_valeur.find(u"[")+1:new_valeur.find(u"]")]
-          for p in self.jdc.params:
-             if p.nom == nomparam :
-                if int(indice) < len(p.getValeurs()):
-                   itparam=parametre.ITEM_PARAMETRE(p,int(indice))
-                   return itparam
-          return None
+            nomparam=new_valeur[0:new_valeur.find("[")]
+            indice=new_valeur[new_valeur.find(u"[")+1:new_valeur.find(u"]")]
+            for p in self.jdc.params:
+                if p.nom == nomparam :
+                    if int(indice) < len(p.getValeurs()):
+                        itparam=parametre.ITEM_PARAMETRE(p,int(indice))
+                        return itparam
+            return None
         except:
-          return None
-
-  def updateConcept(self,sd):
-    if type(self.valeur) in (list,tuple) :
-       if sd in self.valeur:
-         self.initModif()
-         self.finModif()
-    else:
-       if sd == self.valeur:
-         self.initModif()
-         self.finModif()
-
-  def deleteConcept(self,sd):
-    """ 
-        Inputs :
-           - sd=concept detruit
-        Fonction :
-        Met a jour la valeur du mot cle simple suite a la disparition 
-        du concept sd
-        Attention aux matrices
-    """
-    if type(self.valeur) == tuple :
-      if sd in self.valeur:
-        self.initModif()
-        self.valeur=list(self.valeur)
-        self.valeur.remove(sd)
-        self.finModif()
-    elif type(self.valeur) == list:
-      if sd in self.valeur:
-        self.initModif()
-        self.valeur.remove(sd)
-        self.finModif()
-    else:
-      if self.valeur == sd:
-        self.initModif()
-        self.valeur=None
-        self.val=None
-        self.finModif()
-    # Glut Horrible pour les matrices ???
-    if sd.__class__.__name__== "variable":
-       for type_permis in self.definition.type:
-            #if type(type_permis) == types.InstanceType:
-            # a voir en python 3
-               if type_permis.__class__.__name__ == 'Matrice' :
-                   self.state="changed"
-                   self.isValid()
-                  
-
-  def replaceConcept(self,old_sd,sd):
-    """
-        Inputs :
-           - old_sd=concept remplace
-           - sd=nouveau concept
-        Fonction :
-        Met a jour la valeur du mot cle simple suite au remplacement 
-        du concept old_sd
-    """
-    #print "replaceConcept",old_sd,sd
-    if type(self.valeur) == tuple :
-      if old_sd in self.valeur:
-        self.initModif()
-        self.valeur=list(self.valeur)
-        i=self.valeur.index(old_sd)
-        self.valeur[i]=sd
-        self.finModif()
-    elif type(self.valeur) == list:
-      if old_sd in self.valeur:
-        self.initModif()
-        i=self.valeur.index(old_sd)
-        self.valeur[i]=sd
-        self.finModif()
-    else:
-      if self.valeur == old_sd:
+            return None
+
+    def updateConcept(self,sd):
+        if not self.waitAssd() : return
+        if type(self.valeur) in (list,tuple) :
+            if sd in self.valeur:
+                newVal=[]
+                for v in self.valeur : newVal.append(v.nom)
+                self.initModif()
+                if hasattr(self, 'objPyxb') and self.objPyxb : self.setValeurObjPyxb(newVal)
+                self.finModif()
+        else:
+            if sd == self.valeur:
+                self.initModif()
+                if hasattr(self, 'objPyxb') and self.objPyxb : self.setValeurObjPyxb(sd.nom)
+                self.finModif()
+
+    def deleteConcept(self,sd):
+        """
+            Inputs :
+               - sd=concept detruit
+            Fonction :
+            Met a jour la valeur du mot cle simple suite a la disparition
+            du concept sd
+            Attention aux matrices
+        """
+##PNPNPN a tester
+        if type(self.valeur) == tuple :
+            if sd in self.valeur:
+                self.initModif()
+                self.valeur=list(self.valeur)
+                while sd in self.valeur : self.valeur.remove(sd)
+                if hasattr(self, 'objPyxb') and self.objPyxb :
+                    newVal=[]
+                    for v in self.valeur : newVal.append(v.nom)
+                    if newVal == [] : self.delObjPyxb()
+                    else : self.setValeurObjPyxb(sd.nom)
+                self.finModif()
+        elif type(self.valeur) == list:
+            if sd in self.valeur:
+                self.initModif()
+                while sd in self.valeur : self.valeur.remove(sd)
+                self.finModif()
+        else:
+            if self.valeur == sd:
+                self.initModif()
+                self.valeur=None
+                self.val=None
+                if hasattr(self, 'objPyxb') and self.objPyxb : self.setValeurObjPyxb()
+                self.finModif()
+        # Glut Horrible pour les matrices OT ???
+        #if sd.__class__.__name__== "variable":
+        #   for type_permis in self.definition.type:
+                #if type(type_permis) == types.InstanceType:
+                # a voir en python 3
+        #           if type_permis.__class__.__name__ == 'Matrice' :
+        #               self.state="changed"
+        #               self.isValid()
+
+
+    def replaceConcept(self,old_sd,sd):
+        """
+            Inputs :
+               - old_sd=concept remplace
+               - sd=nouveau concept
+            Fonction :
+            Met a jour la valeur du mot cle simple suite au remplacement
+            du concept old_sd
+        """
+        #print ("replaceConcept",old_sd,sd)
+        if type(self.valeur) == tuple :
+            if old_sd in self.valeur:
+                self.initModif()
+                self.valeur=list(self.valeur)
+                i=self.valeur.index(old_sd)
+                self.valeur[i]=sd
+                self.finModif()
+        elif type(self.valeur) == list:
+            if old_sd in self.valeur:
+                self.initModif()
+                i=self.valeur.index(old_sd)
+                self.valeur[i]=sd
+                self.finModif()
+        else:
+            if self.valeur == old_sd:
+                self.initModif()
+                self.valeur=sd
+                self.val=sd
+                self.finModif()
+
+    def setValeurCo(self,nomCO):
+        """
+            Affecte a self l'objet de type CO et de nom nomCO
+        """
+        step=self.etape.parent
+        if nomCO == None or nomCO == '':
+            new_objet=None
+        else:
+            # Avant de creer un concept il faut s'assurer du contexte : step
+            # courant
+            sd= step.getSdAutourEtape(nomCO,self.etape,avec='oui')
+            if sd:
+                # Si un concept du meme nom existe deja dans la portee de l'etape
+                # on ne cree pas le concept
+                return 0,tr("un concept de meme nom existe deja")
+            # Il n'existe pas de concept de meme nom. On peut donc le creer
+            # Il faut neanmoins que la methode NommerSdProd de step gere les
+            # contextes en mode editeur
+            # Normalement la methode  du Noyau doit etre surchargee
+            # On declare l'etape du mot cle comme etape courante pour nommerSDProd
+            cs= CONTEXT.getCurrentStep()
+            CONTEXT.unsetCurrentStep()
+            CONTEXT.setCurrentStep(step)
+            step.setEtapeContext(self.etape)
+            new_objet = Accas.CO(nomCO)
+            CONTEXT.unsetCurrentStep()
+            CONTEXT.setCurrentStep(cs)
         self.initModif()
-        self.valeur=sd
-        self.val=sd
+        self.valeur = new_objet
+        self.val = new_objet
+        # On force l'enregistrement de new_objet en tant que concept produit
+        # de la macro en appelant getType_produit avec force=1
+        self.etape.getType_produit(force=1)
         self.finModif()
+        step.resetContext()
+        #print "setValeurCo",new_objet
+        return 1,tr("Concept cree")
+
+    def verifExistenceSd(self):
+        """
+           Verifie que les structures de donnees utilisees dans self existent bien dans le contexte
+           avant etape, sinon enleve la referea ces concepts
+        """
+        #print "verifExistenceSd"
+        # Attention : possible probleme avec include
+        # A priori il n'y a pas de raison de retirer les concepts non existants
+        # avant etape. En fait il s'agit uniquement eventuellement de ceux crees par une macro
+        l_sd_avant_etape = list(self.jdc.getContexteAvant(self.etape).values())
+        if type(self.valeur) in (tuple,list) :
+            l=[]
+            for sd in self.valeur:
+                if isinstance(sd,ASSD) :
+                    if sd in l_sd_avant_etape or self.etape.getSdprods(sd.nom) is sd:
+                        l.append(sd)
+                else:
+                    l.append(sd)
+            if len(l) < len(self.valeur):
+                self.initModif()
+                self.valeur=tuple(l)
+                self.finModif()
+        else:
+            if isinstance(self.valeur,ASSD) :
+                if self.valeur not in l_sd_avant_etape and self.etape.getSdprods(self.valeur.nom) is None:
+                    self.initModif()
+                    self.valeur = None
+                    self.finModif()
+
+    def renommeSdCree(self,nouveauNom):
+        #print ( 'dans renommeSdCree', self.jdc.sdsDict, self.valeur)
+        if nouveauNom in self.jdc.sdsDict : return (0, 'concept deja existant')
+        if self.valeur == None : return (0, 'pb sur la valeur')
+        else :   self.valeur.renomme(nouveauNom)
+        return (1, 'concept renomme')
+
+    def renommeSdCreeDsListe(self,objASSD, nouveauNom):
+        #print ( 'dans renommeSdCree', self.jdc.sdsDict, self.valeur, nouveauNom)
+        if nouveauNom in self.jdc.sdsDict : return (0, 'concept deja existant')
+        objASSD.renomme(nouveauNom)
+        return (1, 'concept renomme')
+
+
+
+    def getMinMax(self):
+        """
+        Retourne les valeurs min et max admissibles pour la valeur de self
+        """
+        return self.definition.min,self.definition.max
+
+
+    def getType(self):
+        """
+        Retourne le type attendu par le mot-cle simple
+        """
+        return self.definition.type
+
+    def deleteMcGlobal(self):
+        """ Retire self des declarations globales
+        """
+   # on est oblige de verifier si le nom est dans etape
+   # car parfois l ordre des creations/destruction n est pas clair
+   # quand on a des blocs freres qui contiennent le meme mc global
+   # cas de NumericalMethod dans VIMMP
+        if self.definition.position == 'global' :
+            etape = self.getEtape()
+            if etape and self.nom in etape.mc_globaux:
+                if etape.mc_globaux[self.nom] == self :
+                    del etape.mc_globaux[self.nom]
+        elif self.definition.position == 'reCalculeEtape' :
+            etape = self.getEtape()
+            if etape  :
+                if self.nom in etape.mc_globaux:
+                    if etape.mc_globaux[self.nom] == self :
+                        del etape.mc_globaux[self.nom]
+                        self.etape.doitEtreRecalculee = True
+                    #print ('deleteMcGlobal je mets doitEtreRecalculee = True avec', self.nom ,' pour ', etape.nom)
+        elif self.definition.position == 'global_jdc' :
+            if self.nom in self.jdc.mc_globaux:
+                try : del self.jdc.mc_globaux[self.nom]
+                except : print ('!!!!!!!! Souci delete mc_globaux')
+
+    def updateMcGlobal(self):
+        """
+           Met a jour les mots cles globaux enregistres dans l'etape parente
+           et dans le jdc parent.
+           Un mot cle simple peut etre global.
+        """
+        if self.definition.position == 'global' :
+            etape = self.getEtape()
+            if etape :
+                etape.mc_globaux[self.nom]=self
+        elif self.definition.position == 'reCalculeEtape' :
+            etape = self.getEtape()
+            if etape :
+                etape.mc_globaux[self.nom]=self
+                etape.doitEtreRecalculee=True
+                print ('je mets doitEtreRecalculee = True avec', self.nom ,' pour ', etape.nom)
+                print ('j ajoute au mc_globaux')
+        elif self.definition.position == 'global_jdc' :
+            if self.jdc:
+                self.jdc.mc_globaux[self.nom]=self
+
+    def nbrColonnes(self):
+        genea = self.getGenealogie()
+        if "VALE_C" in genea and "DEFI_FONCTION" in genea : return 3
+        if "VALE" in genea and "DEFI_FONCTION" in genea : return 2
+        return 0
+
+    def valideItem(self,item):
+        """Valide un item isole. Cet item est candidata l'ajout a la liste existante"""
+        valid=1
+        try:
+                #on verifie le type
+            self.typeProto.adapt(item)
+            #on verifie les choix possibles
+            self.intoProto.adapt(item)
+            #on ne verifie pas la cardinalite
+            if self.definition.validators:
+                valid=self.definition.validators.verifItem(item)
+        except ValError as e:
+            #traceback.print_exc()
+            valid=0
+        return valid
+
+    def verifType(self,item):
+        """Verifie le type d'un item de liste"""
+        try:
+            #on verifie le type
+            self.typeProto.adapt(item)
+            #on verifie les choix possibles
+            self.intoProto.adapt(item)
+            #on ne verifie pas la cardinalite mais on verifie les validateurs
+            if self.definition.validators:
+                valid=self.definition.validators.verifItem(item)
+            comment=""
+            valid=1
+        except ValError as e:
+            #traceback.print_exc()
+            comment=tr(e.__str__())
+            valid=0
+        return valid,comment
+
+    def valideMatrice(self,cr):
+        ok=1
+        commentaire =''
+        if self.valeur == None :
+            self.setValid(0)
+            return 0
+
+        if self.monType.methodeCalculTaille != None :
+            MCSIMP.__dict__[self.monType.methodeCalculTaille](*(self,))
+
+        if len(self.valeur) == self.monType.nbLigs :
+            for i in range(len(self.valeur)):
+                if len(self.valeur[i]) != self.monType.nbCols: ok=0
+        else : ok=0
+
+        if not ok :
+            self.setValid(0)
+            if cr == 'oui' :
+                self.cr.fatal(tr("La matrice n'est pas une matrice %(n_lign)d sur %(n_col)d", \
+                {'n_lign': self.monType.nbLigs, 'n_col': self.monType.nbCols}))
+            return 0
+
+        for i in range(self.monType.nbLigs):
+            for j in range(self.monType.nbCols):
+                val=self.valeur[i][j]
+                ok, commentaire = self.monType.verifItem(str(val),self.parent)
+                if self.monType.typElt not in ('TXM','I','R') and type(val) != self.monType.typElt : 
+                   ok=0; commentaire = 'mauvais type'; self.valeur=None
+                if not ok :
+                    self.setValid(0)
+                    if cr == 'oui' :
+                       self.cr.fatal(tr(commentaire))
+                    return 0
+        self.setValid(1)
+        return 1
+
 
-  def setValeurCo(self,nom_co):
-      """
-          Affecte a self l'objet de type CO et de nom nom_co
-      """
-      #print "setValeurCo",nom_co
-      step=self.etape.parent
-      if nom_co == None or nom_co == '':
-         new_objet=None
-      else:
-         # Avant de creer un concept il faut s'assurer du contexte : step 
-         # courant
-         sd= step.getSdAutourEtape(nom_co,self.etape,avec='oui')
-         if sd:
-            # Si un concept du meme nom existe deja dans la portee de l'etape
-            # on ne cree pas le concept
-            return 0,tr("un concept de meme nom existe deja")
-         # Il n'existe pas de concept de meme nom. On peut donc le creer 
-         # Il faut neanmoins que la methode NommerSdProd de step gere les 
-         # contextes en mode editeur
-         # Normalement la methode  du Noyau doit etre surchargee
-         # On declare l'etape du mot cle comme etape courante pour NommerSdprod
-         cs= CONTEXT.getCurrentStep()
-         CONTEXT.unsetCurrentStep()
-         CONTEXT.setCurrentStep(step)
-         step.setEtapeContext(self.etape)
-         new_objet = Accas.CO(nom_co)
-         CONTEXT.unsetCurrentStep()
-         CONTEXT.setCurrentStep(cs)
-      self.initModif()
-      self.valeur = new_objet
-      self.val = new_objet
-      # On force l'enregistrement de new_objet en tant que concept produit 
-      # de la macro en appelant getType_produit avec force=1
-      self.etape.getType_produit(force=1)
-      self.finModif()
-      step.resetContext()
-      #print "setValeurCo",new_objet
-      return 1,tr("Concept cree")
-        
-  def verifExistenceSd(self):
-     """
-        Verifie que les structures de donnees utilisees dans self existent bien dans le contexte
-        avant etape, sinon enleve la referea ces concepts
-     """
-     #print "verifExistenceSd"
-     # Attention : possible probleme avec include
-     # A priori il n'y a pas de raison de retirer les concepts non existants
-     # avant etape. En fait il s'agit uniquement eventuellement de ceux crees par une macro
-     l_sd_avant_etape = list(self.jdc.getContexteAvant(self.etape).values())  
-     if type(self.valeur) in (tuple,list) :
-       l=[]
-       for sd in self.valeur:
-         if isinstance(sd,ASSD) :
-            if sd in l_sd_avant_etape or self.etape.getSdprods(sd.nom) is sd:
-               l.append(sd)
-         else:
-            l.append(sd)
-       if len(l) < len(self.valeur):
-          self.initModif()
-          self.valeur=tuple(l)
-          self.finModif()
-     else:
-       if isinstance(self.valeur,ASSD) :
-          if self.valeur not in l_sd_avant_etape and self.etape.getSdprods(self.valeur.nom) is None:
-             self.initModif()
-             self.valeur = None
-             self.finModif()
-  def getMinMax(self):
-     """
-     Retourne les valeurs min et max admissibles pour la valeur de self
-     """
-     return self.definition.min,self.definition.max
-
-
-  def getType(self):
-     """
-     Retourne le type attendu par le mot-cle simple
-     """
-     return self.definition.type
-
-  def deleteMcGlobal(self):
-      """ Retire self des declarations globales
-      """
-      if self.definition.position == 'global' : 
-         etape = self.getEtape()
-         if etape :
-            del etape.mc_globaux[self.nom]
-      elif self.definition.position == 'global_jdc' :
-         del self.jdc.mc_globaux[self.nom]
-
-  def updateMcGlobal(self):
-     """
-        Met a jour les mots cles globaux enregistres dans l'etape parente
-        et dans le jdc parent.
-        Un mot cle simple peut etre global. 
-     """
-     if self.definition.position == 'global' :
-        etape = self.getEtape()
-        if etape :
-           etape.mc_globaux[self.nom]=self
-     elif self.definition.position == 'global_jdc' :
-        if self.jdc:
-           self.jdc.mc_globaux[self.nom]=self
-
-  def nbrColonnes(self):
-     genea = self.getGenealogie()
-     if "VALE_C" in genea and "DEFI_FONCTION" in genea : return 3
-     if "VALE" in genea and "DEFI_FONCTION" in genea : return 2
-     return 0
-
-  def valideItem(self,item):
-      """Valide un item isole. Cet item est candidata l'ajout a la liste existante"""
-      valid=1
-      try:
-          #on verifie le type
-          self.typeProto.adapt(item)
-          #on verifie les choix possibles
-          self.intoProto.adapt(item)
-          #on ne verifie pas la cardinalite
-          if self.definition.validators:
-              valid=self.definition.validators.verifItem(item)
-      except ValError as e:
-          #traceback.print_exc()
-          valid=0
-      return valid
-
-  def verifType(self,item):
-      """Verifie le type d'un item de liste"""
-      try:
-          #on verifie le type
-          self.typeProto.adapt(item)
-          #on verifie les choix possibles
-          self.intoProto.adapt(item)
-          #on ne verifie pas la cardinalite mais on verifie les validateurs
-          if self.definition.validators:
-              valid=self.definition.validators.verifItem(item)
-          comment=""
-          valid=1
-      except ValError as e:
-          #traceback.print_exc()
-          comment=tr(e.__str__())
-          valid=0
-      return valid,comment
-
-  def valideMatrice(self,cr):
-       #Attention, la matrice contient comme dernier tuple l ordre des variables
-       if self.valideEnteteMatrice()==False :
-           self.setValid(0)
-           if cr == "oui" : self.cr.fatal(tr("La matrice n'a pas le bon entete"))
-           return 0
-       if self.monType.methodeCalculTaille != None :
-           MCSIMP.__dict__[self.monType.methodeCalculTaille](*(self,))
-       try :
-       #if 1 :
-           ok=0
-           if len(self.valeur) == self.monType.nbLigs +1:
-              ok=1
-              for i in range(len(self.valeur) -1):
-                  if len(self.valeur[i])!= self.monType.nbCols:
-                     ok=0
-           if ok: 
-              self.setValid(1)
-              return 1 
-       except :
-       #else :
+
+    def valideMatriceOT(self,cr):
+            #Attention, la matrice contient comme dernier tuple l ordre des variables
+        if self.valideEnteteMatrice()==False :
+            self.setValid(0)
+            if cr == "oui" : self.cr.fatal(tr("La matrice n'a pas le bon entete"))
+            return 0
+        if self.monType.methodeCalculTaille != None :
+            MCSIMP.__dict__[self.monType.methodeCalculTaille](*(self,))
+        try :
+        #if 1 :
+            ok=0
+            if len(self.valeur) == self.monType.nbLigs +1:
+                ok=1
+                for i in range(len(self.valeur) -1):
+                    if len(self.valeur[i])!= self.monType.nbCols:
+                        ok=0
+            if ok:
+                self.setValid(1)
+                return 1
+        except :
+        #else :
             pass
-       if cr == 'oui' :
-             self.cr.fatal(tr("La matrice n'est pas une matrice %(n_lign)d sur %(n_col)d", \
-             {'n_lign': self.monType.nbLigs, 'n_col': self.monType.nbCols}))
-       self.setValid(0)
-       return 0
-
-
-  def nbDeVariables(self):
-       listeVariables=self.jdc.getVariables(self.etape)
-       self.monType.nbLigs=len(listeVariables)
-       self.monType.nbCols=len(listeVariables)
-      
-  def valideEnteteMatrice(self):
-      if self.jdc.getDistributions(self.etape) == () or self.valeur == None : return 0
-      if self.jdc.getDistributions(self.etape) != self.valeur[0] : return 0
-      return 1
-     
-  def changeEnteteMatrice(self):
-      a=[self.jdc.getDistributions(self.etape),]
-      for t in self.valeur[1:]:
-         a.append(t)
-      self.valeur=a
-
-
-  def nNbDeDistributions(self):
-       listeVariables=self.jdc.getDistributions(self.etape)
-       self.monType.nbLigs=len(listeVariables)
-       self.monType.nbCols=len(listeVariables)
-      
-#--------------------------------------------------------------------------------
-#ATTENTION SURCHARGE : toutes les methodes ci apres sont des surcharges du Noyau et de Validation
-# Elles doivent etre reintegrees des que possible
-
-
-  def verifTypeIhm(self,val,cr='non'):
-      try :
-         val.eval()
-         return 1
-      except :
-         traceback.print_exc()
-         pass
-      return self.verifType(val,cr)
-
-  def verifTypeliste(self,val,cr='non') :
-      verif=0
-      for v in val :
-        verif=verif+self.verifTypeIhm(v,cr)
-      return verif
-
-  def initModifUp(self):
-    Validation.V_MCSIMP.MCSIMP.initModifUp(self)
-    CONNECTOR.Emit(self,"valid")
+        if cr == 'oui' :
+            self.cr.fatal(tr("La matrice n'est pas une matrice %(n_lign)d sur %(n_col)d", \
+            {'n_lign': self.monType.nbLigs, 'n_col': self.monType.nbCols}))
+        self.setValid(0)
+        return 0
+
+
+    def nbDeVariables(self):
+        listeVariables=self.jdc.getVariables(self.etape)
+        self.monType.nbLigs=len(listeVariables)
+        self.monType.nbCols=len(listeVariables)
+
+    def valideEnteteMatrice(self):
+        if self.jdc.getDistributions(self.etape) == () or self.valeur == None : return 0
+        if self.jdc.getDistributions(self.etape) != self.valeur[0] : return 0
+        return 1
+
+    def changeEnteteMatrice(self):
+        a=[self.jdc.getDistributions(self.etape),]
+        for t in self.valeur[1:]:
+            a.append(t)
+        self.valeur=a
+
+
+    def nbDeDistributions(self):
+        listeVariables=self.jdc.getDistributions(self.etape)
+        self.monType.nbLigs=len(listeVariables)
+        self.monType.nbCols=len(listeVariables)
+
+    def getNomDsXML(self):
+        nomDsXML=self.parent.getNomDsXML()+"."+self.nom
+        return nomDsXML
+
+
+    def verifTypeIhm(self,val,cr='non'):
+        try :
+            val.eval()
+            return 1
+        except :
+            traceback.print_exc()
+            pass
+        return self.verifType(val,cr)
+
+    def verifTypeliste(self,val,cr='non') :
+        verif=0
+        for v in val :
+            verif=verif+self.verifTypeIhm(v,cr)
+        return verif
+
+    def initModifUp(self):
+        Validation.V_MCSIMP.MCSIMP.initModifUp(self)
+        CONNECTOR.Emit(self,"valid")
+
+    def deleteRef(self):
+        if self.valeur == None or self.valeur == [] : return
+        if not type(self.valeur) in (list, tuple): lesValeurs=(self.valeur,)
+        else : lesValeurs=self.valeur
+        for val in lesValeurs:
+            if self.definition.creeDesObjets :
+                val.deleteReference(self)
+            else :
+                if (hasattr (val, 'enleveUtilisePar')) : val.enleveUtilisePar(self)
+
+    def updateAutresMotsClefs(self):
+        print ('updateAutresMotsClefs')
+        for (nomMC, Xpath) in self.definition.metAJour :
+            exp=Xpath+'.getChild("'+nomMC+'")'
+            try :
+                lesMotsClefs = eval(exp)
+            except :
+                lesMotsClefs = []
+            if not type(lesMotsClefs) in (list, tuple): lesMotsClefs=(lesMotsClefs,)
+            if isinstance (lesMotsClefs, MCSIMP): lesMotsClefs=(lesMotsClefs,)
+            listeEtapesDejaRedessinees=[]
+            listeMotsClefsAppel=[]
+            for leMotCle in lesMotsClefs:
+                leMotCle.state='changed'
+                if not leMotCle.isValid() : leMotCle.val=None
+                if leMotCle.etape not in listeEtapesDejaRedessinees :
+                    listeEtapesDejaRedessinees.append(leMotCle.etape)
+                    listeMotsClefsAppel.append(leMotCle)
+            for leMotCle in listeMotsClefsAppel:
+                leMotCle.demandeRedessine()
+
+        print ('fin updateAutresMotsClefs')
index e62de529fd2412e3a664b80bc978ed5a72e0f193..5a2c27018a9ca0f868250f466ee80bec7aea1e3e 100644 (file)
@@ -23,145 +23,178 @@ from __future__ import absolute_import
 import Noyau
 
 from . import CONNECTOR
+import re
+conceptRE=re.compile(r'[a-zA-Z_]\w*$')
 
 class OBJECT:
-  from Noyau.N_CO import CO
-  from Noyau.N_ASSD import assd
-
-  def isMCList(self):
-    """ 
-        Retourne 1 si self est une MCList (liste de mots-cles), 0 sinon (defaut) 
-    """
-    return 0
-
-  def getRegles(self):
-    """ 
-       Retourne les regles de self 
-    """
-    if hasattr(self,'definition'):
-      return self.definition.regles
-    elif hasattr(self,'regles'):
-      return self.regles
-    else :
-      return []
-
-  def initModif(self):
-    """
-       Met l'etat de l'objet a modified et propage au parent
-       qui vaut None s'il n'existe pas
-    """
-    self.state = 'modified'
-    if self.parent:
-      self.parent.initModif()
-
-  def finModif(self):
-      """
-      Methode appelee apres qu'une modification a ete faite afin de declencher
-      d'eventuels traitements post-modification
-      """
-      #print "finModif",self
-      # pour les objets autres que les commandes, aucun traitement specifique 
-      # on remonte l'info de fin de modif au parent
-      CONNECTOR.Emit(self,"valid")
-      if self.parent:
-        self.parent.finModif()
-
-  def isRepetable(self):
-    """
-         Indique si l'objet est repetable
-    """
-    return 0
-
-  def listeMcPresents(self):
-    """
-         Retourne la liste des noms des mots cles presents
-    """
-    return []
-
-  def getDocu(self):
-    return self.definition.getDocu()
-
-  def getListeMcInconnus(self):
-     """
-     Retourne la liste des mots-cles inconnus dans self
-     """
-     return []
-
-  def verifConditionRegles(self,liste_presents):
-    """ 
-        Retourne la liste des mots-cles a rajouter pour satisfaire les regles
-        en fonction de la liste des mots-cles presents 
-    """
-    liste=[]
-    for regle in self.definition.regles:
-        liste=regle.verifConditionRegle(liste,liste_presents)
-    return liste
-
-  def verifConditionBloc(self):
-    """ 
-        Evalue les conditions de tous les blocs fils possibles 
-        (en fonction du catalogue donc de la definition) de self et
-        retourne deux listes :
-          - la premiere contient les noms des blocs a rajouter
-          - la seconde contient les noms des blocs a supprimer
-    """
-    return [],[]
-
-  def getGenealogiePrecise(self):
-    if self.parent:
-       l=self.parent.getGenealogiePrecise()
-       l.append(self.nom.strip())
-       return l
-    else:
-       return [self.nom.strip()]
-
-  def getGenealogie(self):
-    """ 
-        Retourne la liste des noms des ascendants (noms de MCSIMP,MCFACT,MCBLOC
-        ou ETAPE) de self jusqu'au premier objet etape rencontre
-    """
-    if self.parent:
-       l=self.parent.getGenealogie()
-       l.append(self.nom.strip())
-       return l
-    else:
-       return [self.nom.strip()]
-
-  def getFr(self):
-     """
-         Retourne la chaine d'aide contenue dans le catalogue
-         en tenant compte de la langue
-     """
-     try:
-     #if 1 :
-        c=getattr(self.definition,self.jdc.lang)
-        return c
-     except:
-     #else:
-        try :
-            c=getattr(self.definition,"fr")
+    from Noyau.N_CO import CO
+    from Noyau.N_ASSD import assd
+
+    def isMCList(self):
+        """
+            Retourne 1 si self est une MCList (liste de mots-cles), 0 sinon (defaut)
+        """
+        return 0
+
+    def getRegles(self):
+        """
+           Retourne les regles de self
+        """
+        if hasattr(self,'definition'):
+            return self.definition.regles
+        elif hasattr(self,'regles'):
+            return self.regles
+        else :
+            return []
+
+    def initModif(self):
+        """
+           Met l'etat de l'objet a modified et propage au parent
+           qui vaut None s'il n'existe pas
+        """
+        self.state = 'modified'
+        if self.parent:
+            self.parent.initModif()
+
+    def finModif(self):
+        """
+        Methode appelee apres qu'une modification a ete faite afin de declencher
+        d'eventuels traitements post-modification
+        """
+        #print "finModif",self
+        # pour les objets autres que les commandes, aucun traitement specifique
+        # on remonte l'info de fin de modif au parent
+        CONNECTOR.Emit(self,"valid")
+        if self.parent:
+            self.parent.finModif()
+
+    def isRepetable(self):
+        """
+             Indique si l'objet est repetable
+        """
+        return 0
+
+    def listeMcPresents(self):
+        """
+             Retourne la liste des noms des mots cles presents
+        """
+        return []
+
+    def getDocu(self):
+        return self.definition.getDocu()
+
+    def getListeMcInconnus(self):
+        """
+        Retourne la liste des mots-cles inconnus dans self
+        """
+        return []
+
+    def verifConditionRegles(self,liste_presents):
+        """
+            Retourne la liste des mots-cles a rajouter pour satisfaire les regles
+            en fonction de la liste des mots-cles presents
+        """
+        liste=[]
+        for regle in self.definition.regles:
+            liste=regle.verifConditionRegle(liste,liste_presents)
+        return liste
+
+    def verifConditionBloc(self):
+        """
+            Evalue les conditions de tous les blocs fils possibles
+            (en fonction du catalogue donc de la definition) de self et
+            retourne deux listes :
+              - la premiere contient les noms des blocs a rajouter
+              - la seconde contient les noms des blocs a supprimer
+        """
+        return [],[]
+
+    def getGenealogiePrecise(self):
+        if self.parent:
+            l=self.parent.getGenealogiePrecise()
+            l.append(self.nom.strip())
+            return l
+        else:
+            return [self.nom.strip()]
+
+
+    def getGenealogie(self):
+        """
+            Retourne la liste des noms des ascendants (noms de MCSIMP,MCFACT,MCBLOC
+            ou ETAPE) de self jusqu'au premier objet etape rencontre
+        """
+        if self.parent:
+            l=self.parent.getGenealogie()
+            l.append(self.nom.strip())
+            return l
+        else:
+            return [self.nom.strip()]
+
+    def getFr(self):
+        """
+            Retourne la chaine d'aide contenue dans le catalogue
+            en tenant compte de la langue
+        """
+        try:
+        #if 1 :
+            c=getattr(self.definition,self.jdc.lang)
             return c
-        except :
-            return ''
+        except:
+        #else:
+            try :
+                c=getattr(self.definition,"fr")
+                return c
+            except :
+                return ''
+
+    def updateConcept(self,sd):
+        pass
+
+    def normalize(self):
+        """ Retourne l'objet normalise. En general self sauf si
+            pour etre insere dans l'objet pere il doit etre
+            wrappe dans un autre objet (voir mot cle facteur).
+        """
+        return self
+
+    def deleteMcGlobal(self):
+        return
+
+    def updateMcGlobal(self):
+        return
+
+    #def __del__(self):
+    #   print "__del__",self
+
+    def nommeSd(self):
+    # surcharge dans I_ETAPE.py
+        if ( nom in dir(self.jdc.cata)) : return (0, nom + tr("mot reserve"))
+        if not conceptRE.match(nom):
+            return 0, tr("Un nom de concept doit etre un identificateur Python")
+        self.initModif()
+        #self.getSdProd()
+        #self.sd.nom = nom
+        #self.sdnom=nom
+        #self.parent.updateConceptAfterEtape(self,self.sd)
+        #self.finModif()
+        #return 1, tr("Nommage du concept effectue")
+
+    def deleteRef(self):
+    # est surcharge dans  MC_SIMP et dans MC_List
+        #print ('je suis dans deleteRef pour', self.nom)
+        for obj in (self.mcListe):
+            obj.deleteRef()
+
+    def supprimeUserAssd(self):
+        pass
+
+    def demandeRedessine(self):
+        #print ('demandeRedessine pour', self.nom, self, tout)
+        CONNECTOR.Emit(self,"redessine")
+
+    def isUQActivate(self):
+        # valide uniquement pour les MCSIMP
+        return True
 
-  def updateConcept(self,sd):
-     pass
-
-  def normalize(self):
-     """ Retourne l'objet normalise. En general self sauf si
-         pour etre insere dans l'objet pere il doit etre 
-         wrappe dans un autre objet (voir mot cle facteur).
-     """
-     return self
-
-  def deleteMcGlobal(self):
-     return
-
-  def updateMcGlobal(self):
-     return
-
-  #def __del__(self):
-  #   print "__del__",self
 
 class ErrorObj(OBJECT):pass
-
index d2bb5b38398fcbc68e9639b02e729cd5ca9347dd..e4daed959ff987660364129e915400802bd3ae4f 100644 (file)
@@ -24,14 +24,13 @@ from __future__ import absolute_import
 from . import I_REGLE
 
 class PRESENT_ABSENT(I_REGLE.REGLE):
-  def purgeListe(self,liste_a_purger,listeMcPresents):
-     regle_active=0
-     if self.mcs[0] in listeMcPresents:regle_active=1
-     if not regle_active : return liste_a_purger
-
-     # Il ne faut pas purger le mot cle present
-     for mc in self.mcs[1:]:
-        if mc in liste_a_purger :
-           liste_a_purger.remove(mc)
-     return liste_a_purger
+    def purgeListe(self,liste_a_purger,listeMcPresents):
+        regle_active=0
+        if self.mcs[0] in listeMcPresents:regle_active=1
+        if not regle_active : return liste_a_purger
 
+        # Il ne faut pas purger le mot cle present
+        for mc in self.mcs[1:]:
+            if mc in liste_a_purger :
+                liste_a_purger.remove(mc)
+        return liste_a_purger
index f86d86b47013f00f617ec320bdbca59df84f5c3d..e99cf8b604b288e4b68cd37ed18ee4d3464b52b4 100644 (file)
@@ -24,14 +24,12 @@ from __future__ import absolute_import
 from . import I_REGLE
 
 class PRESENT_PRESENT(I_REGLE.REGLE):
-  def verifConditionRegle(self,liste,l_mc_presents):
-    mc0=self.mcs[0]
-    for mc_present in l_mc_presents:
-      if mc_present == mc0 :
-        for mc in self.mcs[1:]:
-          nb = l_mc_presents.count(mc)
-          if nb == 0 : liste.append(mc)
+    def verifConditionRegle(self,liste,l_mc_presents):
+        mc0=self.mcs[0]
+        for mc_present in l_mc_presents:
+            if mc_present == mc0 :
+                for mc in self.mcs[1:]:
+                    nb = l_mc_presents.count(mc)
+                    if nb == 0 : liste.append(mc)
+                return liste
         return liste
-    return liste
-
-
index 823e6c6c9fbdc309681898bd40c6dcee42de4b2e..e4c19768f19ba2ae71f9287ddb50fce323095595 100644 (file)
@@ -30,66 +30,65 @@ from Noyau.N_Exception import AsException
 from Extensions.eficas_exception import EficasException
 
 class PROC_ETAPE(I_ETAPE.ETAPE):
-   def getSdname(self):
-      return ""
+    def getSdname(self):
+        return ""
 
-   def getSdprods(self,nom_sd):
-      """ 
-         Fonction : retourne le concept produit par l etape de nom nom_sd
-         s il existe sinon None
-         Une PROC ne produit aucun concept
-      """
-      return None
+    def getSdprods(self,nom_sd):
+        """
+           Fonction : retourne le concept produit par l etape de nom nom_sd
+           s il existe sinon None
+           Une PROC ne produit aucun concept
+        """
+        return None
 
-   def supprimeSdProds(self):
-      """
-         Fonction: Lors d'une destruction d'etape, detruit tous les concepts produits
-         Une procedure n'en a aucun
-      """
-      return
+    def supprimeSdProds(self):
+        """
+           Fonction: Lors d'une destruction d'etape, detruit tous les concepts produits
+           Une procedure n'en a aucun
+        """
+        return
 
-   def deleteConcept(self,sd):
-      """
-          Fonction : Mettre a jour les mots cles de l etape 
-          suite a la disparition du concept sd
-          Seuls les mots cles simples MCSIMP font un traitement autre
-          que de transmettre aux fils
+    def deleteConcept(self,sd):
+        """
+            Fonction : Mettre a jour les mots cles de l etape
+            suite a la disparition du concept sd
+            Seuls les mots cles simples MCSIMP font un traitement autre
+            que de transmettre aux fils
 
-          Inputs :
-             - sd=concept detruit
-      """
-      for child in self.mcListe :
-        child.deleteConcept(sd)
+            Inputs :
+               - sd=concept detruit
+        """
+        for child in self.mcListe :
+            child.deleteConcept(sd)
 
-   def replaceConcept(self,old_sd,sd):
-      """
-          Fonction : Mettre a jour les mots cles de l etape
-          suite au remplacement du concept old_sd
+    def replaceConcept(self,old_sd,sd):
+        """
+            Fonction : Mettre a jour les mots cles de l etape
+            suite au remplacement du concept old_sd
 
-          Inputs :
-             - old_sd=concept remplace
-             - sd=nouveau concept
-      """
-      for child in self.mcListe :
-        child.replaceConcept(old_sd,sd)
+            Inputs :
+               - old_sd=concept remplace
+               - sd=nouveau concept
+        """
+        for child in self.mcListe :
+            child.replaceConcept(old_sd,sd)
 
 #ATTENTION SURCHARGE: a garder en synchro ou a reintegrer dans le Noyau
-   def buildSd(self):
-      """
-           Methode de Noyau surchargee pour poursuivre malgre tout
-           si une erreur se produit pendant la creation du concept produit
-      """
-      try:
-         sd=Noyau.N_PROC_ETAPE.PROC_ETAPE.buildSd(self)
-      except AsException  :
-         # Une erreur s'est produite lors de la construction du concept
-         # Comme on est dans EFICAS, on essaie de poursuivre quand meme
-         # Si on poursuit, on a le choix entre deux possibilites :
-         # 1. on annule la sd associee a self
-         # 2. on la conserve mais il faut la retourner
-         # En plus il faut rendre coherents sdnom et sd.nom
-         self.sd=None
-         self.sdnom=None
-         self.state="unchanged"
-         self.valid=0
-
+    def buildSd(self):
+        """
+             Methode de Noyau surchargee pour poursuivre malgre tout
+             si une erreur se produit pendant la creation du concept produit
+        """
+        try:
+            sd=Noyau.N_PROC_ETAPE.PROC_ETAPE.buildSd(self)
+        except AsException  :
+            # Une erreur s'est produite lors de la construction du concept
+            # Comme on est dans EFICAS, on essaie de poursuivre quand meme
+            # Si on poursuit, on a le choix entre deux possibilites :
+            # 1. on annule la sd associee a self
+            # 2. on la conserve mais il faut la retourner
+            # En plus il faut rendre coherents sdnom et sd.nom
+            self.sd=None
+            self.sdnom=None
+            self.state="unchanged"
+            self.valid=0
index a008aa6d45fe9f2414b7bc17c2449e0c64297837..ed43ffb9fe017100b0209fdf3cc4d45c5e130ab5 100644 (file)
@@ -23,36 +23,35 @@ from __future__ import absolute_import
 
 class REGLE:
 
-  def getText(self):
-    text = self.__class__.__name__+ ' :\n'
-    for mc in self.mcs :
-      text = text + '\t' + mc.strip() + '\n'
-    return text
-
-  def purgeListe(self,liste_a_purger,listeMcPresents):
-    """
-         Cette methode doit retirer de la liste liste_a_purger
-         les elements qui ne doivent plus apparaitre en fonction du contexte
-    """
-    # Dans le cas general on ne touche pas a la liste
-    return liste_a_purger
-
-  def hasOperande(self,nom):
-    # On peut faire aussi try:self.mcs.index(nom);return 1;except:return 0
-    for mc in self.mcs:
-      if mc==nom : return 1
-    return 0
-
-  def verifConditionRegle(self,liste,l_mc_presents):
-    return []
-
-
-  def enregistreXML(self,root,catalogueXml):
-      import xml.etree.ElementTree as ET
-      regleXml=ET.SubElement(root,'regles')
-      txt=""
-      for mot in self.getText().split('\n'):
-          mot.replace(' ','') 
-          txt=txt + mot + " "
-      regleXml.text= txt
-
+    def getText(self):
+        text = self.__class__.__name__+ ' :\n'
+        for mc in self.mcs :
+            text = text + '\t' + mc.strip() + '\n'
+        return text
+
+    def purgeListe(self,liste_a_purger,listeMcPresents):
+        """
+             Cette methode doit retirer de la liste liste_a_purger
+             les elements qui ne doivent plus apparaitre en fonction du contexte
+        """
+        # Dans le cas general on ne touche pas a la liste
+        return liste_a_purger
+
+    def hasOperande(self,nom):
+        # On peut faire aussi try:self.mcs.index(nom);return 1;except:return 0
+        for mc in self.mcs:
+            if mc==nom : return 1
+        return 0
+
+    def verifConditionRegle(self,liste,l_mc_presents):
+        return []
+
+
+#  def enregistreXML(self,root,catalogueXml):
+#      import xml.etree.ElementTree as ET
+#      regleXml=ET.SubElement(root,'regles')
+#      txt=""
+#      for mot in self.getText().split('\n'):
+#          mot.replace(' ','')
+#          txt=txt + mot + " "
+#      regleXml.text= txt
diff --git a/Ihm/I_TUPLE.py b/Ihm/I_TUPLE.py
new file mode 100644 (file)
index 0000000..519ba37
--- /dev/null
@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2021   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+class I_Matrice:
+    def activeCouleur(self):
+        self.dictCouleurs={}
+        self.indiceCouleur=1
+        self.listeCouleurs=((10, 186, 181),(204, 204, 255),(121, 248, 248),(254, 231, 240),(250, 234, 115), (254, 191, 210),(248, 142, 85),(133, 193, 126),(210, 202, 236),(225, 206, 154), (187, 174, 152),(240, 195, 0),(242, 255, 255),(239, 239, 239),(149, 165, 149), (150, 131, 236),(201, 160, 220),(103, 159, 90),(176, 242, 182),(233, 201, 177))
+
index c5bbf8a18c0105bd82cbefd97885c3948d86cc6d..c44c8529f67dd364dde6b562a8f0af406ee83b4e 100644 (file)
@@ -25,18 +25,17 @@ from . import I_REGLE
 
 class UN_PARMI(I_REGLE.REGLE):
 
-  def purgeListe(self,liste_a_purger,listeMcPresents):
-     regle_active=0
-     for mc_present in listeMcPresents:
-        if mc_present in self.mcs:
-           regle_active=1
-           break
-     if not regle_active : return liste_a_purger
-
-     # Si un des mots cles est present, on les enleve tous
-     # sauf celui ci
-     for mc in self.mcs:
-        if mc in liste_a_purger and mc not in listeMcPresents:
-           liste_a_purger.remove(mc)
-     return liste_a_purger
+    def purgeListe(self,liste_a_purger,listeMcPresents):
+        regle_active=0
+        for mc_present in listeMcPresents:
+            if mc_present in self.mcs:
+                regle_active=1
+                break
+        if not regle_active : return liste_a_purger
 
+        # Si un des mots cles est present, on les enleve tous
+        # sauf celui ci
+        for mc in self.mcs:
+            if mc in liste_a_purger and mc not in listeMcPresents:
+                liste_a_purger.remove(mc)
+        return liste_a_purger
index 3bcd79ac8b60bb5f466c40f3c3701606b038f160..a1e3006c760fee188d9dd1bc5cbb583094dc135d 100644 (file)
@@ -22,20 +22,19 @@ from __future__ import absolute_import
 from Noyau.N_VALIDATOR import *
 
 class Compulsory(Compulsory):
-      def hasInto(self):
-          return 0
-      def valideListePartielle(self,liste_courante=None):
-          return 1
+    def hasInto(self):
+        return 0
+    def valideListePartielle(self,liste_courante=None):
+        return 1
 
 class OrdList(OrdList):
-      def valideListePartielle(self,liste_courante=None):
-          """
-           Methode de validation de liste partielle pour le validateur OrdList
-          """
-          try:
-             self.convert(liste_courante)
-             valid=1
-          except :
-             valid=0
-          return valid
-
+    def valideListePartielle(self,liste_courante=None):
+        """
+         Methode de validation de liste partielle pour le validateur OrdList
+        """
+        try:
+            self.convert(liste_courante)
+            valid=1
+        except :
+            valid=0
+        return valid
diff --git a/InterfaceQT4/aiemonWidgetPlusieursBase.py b/InterfaceQT4/aiemonWidgetPlusieursBase.py
deleted file mode 100644 (file)
index c11d1dc..0000000
+++ /dev/null
@@ -1,300 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2021   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-# Modules Python
-from __future__ import absolute_import
-try :
-   from builtins import str
-   from builtins import range
-   from builtins import object
-except : pass
-
-import types,os,sys
-
-from six.moves import range
-from PyQt5.QtGui     import QIcon 
-from PyQt5.QtWidgets import QApplication, QMessageBox
-from PyQt5.QtCore    import QTimer, QSize, Qt
-
-# Modules Eficas
-from Extensions.i18n import tr
-
-from InterfaceQT4.feuille                import Feuille
-from UiQT5.desWidgetPlusieursBase        import Ui_WidgetPlusieursBase 
-from InterfaceQT4.politiquesValidation   import PolitiquePlusieurs
-from InterfaceQT4.qtSaisie               import SaisieValeur
-from InterfaceQT4.gereListe              import GereListe
-from InterfaceQT4.gereListe              import GerePlie
-from InterfaceQT4.gereListe              import LECustom
-
-dicoLongueur={2:95,3:125,4:154,5:183,6:210,float('inf'):210}
-hauteurMax=253
-
-class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe,GerePlie):
-
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
-        #print "MonWidgetPlusieursBase", nom
-        self.inFocusOutEvent=False
-        self.nomLine="lineEditVal"
-        self.inInit=True
-        self.indexDernierLabel=0
-        self.numLineEditEnCours=0
-        self.listeAffichageWidget=[]
-        Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-        GereListe.__init__(self)
-        self.gereIconePlier()
-        self.BSelectFichier.clicked.connect(self.selectInFile)
-
-        if sys.platform[0:5]!="linux":
-          repIcon=self.node.editor.appliEficas.repIcon
-          fichier=os.path.join(repIcon, 'arrow_up.png')
-          icon = QIcon(fichier)
-          self.RBHaut.setIcon(icon)
-          self.RBHaut.setIconSize(QSize(32, 32))
-          fichier2=os.path.join(repIcon, 'arrow_down.png')
-          icon2 = QIcon(fichier2)
-          self.RBBas.setIcon(icon2)
-          fichier3=os.path.join(repIcon, 'file-explorer.png')
-          icon3 = QIcon(fichier2)
-          self.BSelectFichier.setIcon(icon3)
-          self.BSelectFichier.setIconSize(QSize(32, 32))
-        icon=QIcon(self.repIcon+"/MoinsBleu.png")
-        self.RBMoins.setIcon(icon)
-        icon=QIcon(self.repIcon+"/PlusBleu.png")
-        self.RBPlus.setIcon(icon)
-        icon=QIcon(self.repIcon+"/verre-loupe-icone-6087-64.png")
-        self.RBVoisListe.setIcon(icon)
-
-
-        self.listeValeursCourantes=self.node.item.getListeValeurs()
-        if self.monSimpDef.max != "**"  and self.monSimpDef.max < 7: 
-           hauteurMax=dicoLongueur[self.monSimpDef.max]
-        else :
-           hauteurMax=220
-        #   if self.monSimpDef.max == self.monSimpDef.min : self.setMaximumHeight(hauteur)
-        self.resize(self.width(),hauteurMax)
-        self.setMinimumHeight(hauteurMax)
-        self.finCommentaireListe()
-        self.parentQt.commandesLayout.insertWidget(-1,self)
-        self.maCommande.listeAffichageWidget.append(self.lineEditVal1)
-        self.AAfficher=self.lineEditVal1
-        self.inInit=False
-        # PNPN a completer __ si tuple le type des tuples sinon le tuple
-        self.monCommentaireLabel.setText(self.finCommentaireListe())
-
-
-  def setValeurs(self):
-       self.vScrollBar = self.scrollArea.verticalScrollBar()
-       self.politique=PolitiquePlusieurs(self.node,self.editor)
-       # construction du min de valeur a entrer
-       if self.monSimpDef.max == "**"  : aConstruire=7
-       elif self.monSimpDef.max == float('inf'): aConstruire=7
-       else                            : aConstruire=self.monSimpDef.max
-
-       for i in range(1,aConstruire):
-           self.ajoutLineEdit()
-       QApplication.processEvents()
-       self.scrollArea.ensureWidgetVisible(self.lineEditVal1)
-       self.listeValeursCourantes=self.node.item.getListeValeurs()
-       index=1
-       for valeur in self.listeValeursCourantes :
-           val=self.politique.getValeurTexte(valeur)
-           nomLineEdit="lineEditVal"+str(index)
-           if hasattr(self,nomLineEdit) : 
-              courant=getattr(self,nomLineEdit)
-              if 'R' in self.objSimp.definition.type and str(val) != repr(val) :  courant.setText(repr(val))
-              else                     :  courant.setText(str(val))
-           else :
-              self.ajoutLineEdit(val)
-           index=index+1
-       # ajout d'une ligne vide ou affichage commentaire
-       if self.indexDernierLabel < self.monSimpDef.max  : self.ajoutLineEdit()
-       else : self.scrollArea.setToolTip('nb max de valeurs atteint')
-       #self.adjustSize()
-       #self.vScrollBar.triggerAction(QScrollBar.SliderToMinimum)
-       
-
-  def ajoutLineEdit(self,valeur=None,):
-      self.indexDernierLabel=self.indexDernierLabel+1
-      nomLineEdit="lineEditVal"+str(self.indexDernierLabel)
-      if hasattr(self,nomLineEdit) : 
-         self.indexDernierLabel=self.indexDernierLabel-1
-         return
-      nouveauLE = LECustom(self.scrollArea,self,self.indexDernierLabel)
-      self.verticalLayoutLE.insertWidget(self.indexDernierLabel-1,nouveauLE)
-      nouveauLE.setText("")
-      if self.indexDernierLabel % 2 == 1 : nouveauLE.setStyleSheet("background:rgb(210,210,210)")
-      else :                              nouveauLE.setStyleSheet("background:rgb(235,235,235)")
-      nouveauLE.setFrame(False)
-      nouveauLE.returnPressed.connect(self.changeValeur)
-
-      setattr(self,nomLineEdit,nouveauLE)
-      self.listeAffichageWidget.append(nouveauLE)
-      self.etablitOrdre()
-      if valeur != None : nouveauLE.setText(str(valeur))
-      # deux lignes pour que le ensureVisible fonctionne
-      self.estVisible=nouveauLE
-      if self.inInit==False :QTimer.singleShot(1, self.rendVisibleLigne)
-
-  def etablitOrdre(self):
-      i=0
-      while(i +1 < len(self.listeAffichageWidget)):
-         self.listeAffichageWidget[i].setFocusPolicy(Qt.StrongFocus)
-         self.setTabOrder(self.listeAffichageWidget[i],self.listeAffichageWidget[i+1])
-         i=i+1
-      # si on boucle on perd l'ordre
-
-
-  def rendVisibleLigne(self):
-      QApplication.processEvents()
-      self.estVisible.setFocus()
-      self.scrollArea.ensureWidgetVisible(self.estVisible,0,0)
-      
-
-  def finCommentaire(self):
-      return self.finCommentaireListe()
-
-  def ajout1Valeur(self,valeur=None):
-        if valeur == None : return
-        liste,validite=SaisieValeur.TraiteLEValeur(self,str(valeur))
-        if validite == 0 : return
-        if liste ==[]    : return
-        listeVal=[]
-        for valeur in self.listeValeursCourantes : listeVal.append(valeur)
-        validite,comm,comm2,listeRetour=self.politique.ajoutValeurs(liste,-1,listeVal)
-        if (comm2 != "" and comm != None) : return comm2
-        if validite : 
-           self.listeValeursCourantes=self.listeValeursCourantes+listeRetour
-           if len(self.listeValeursCourantes) > self.monSimpDef.min :
-              self.node.item.setValeur(self.listeValeursCourantes)
-              self.reaffiche()
-           return None
-        else :
-           return(comm2+" "+comm)
-        
-  def reaffiche(self):
-      # A priori, on ne fait rien
-      pass
-
-                
-  def ajoutNValeur(self,liste):
-  #----------------------------
-  # attention quand on charge par un fichier, on ne peut pas se contenter d ajouter N fois 1 valeur
-  # car alors le temps de verification devient prohibitif  reconstructu=ion et verification a 
-  # chaque valeur. d ou l ajout de ajoutNTuple a politique plusieurs
-
-           
-        listeFormatee=list(liste)
-
-        min,max=self.node.item.getMinMax()
-        if self.objSimp.valeur == None : listeComplete=listeFormatee
-        else : listeComplete =self.objSimp.valeur + listeFormatee
-
-        if len(listeComplete) > max : 
-           texte=tr("Nombre maximum de valeurs ")+str(max)+tr(" atteint")
-           self.editor.afficheInfos(texte,Qt.red)
-           return
-
-        validite,comm,comm2,listeRetour= self.politique.ajoutNTuple(listeComplete)
-        if not validite : 
-           self.editor.affiche_infos(texte,Qt.red)
-           return
-
-        # on calcule le dernier lineedit rempli avant de changer la valeur
-        if self.objSimp.valeur != None : indexDernierRempli=len(self.objSimp.valeur)
-        else : indexDernierRempli=0
-
-        self.politique.recordValeur(listeComplete)
-
-        indexDernierRempli=0
-        while ( indexDernierRempli < len(liste) ) :
-         texte=liste[indexDernierRempli]
-         if indexDernierRempli < self.indexDernierLabel:
-            nomLineEdit="lineEditVal"+str(indexDernierRempli+1)
-            courant=getattr(self,nomLineEdit)
-            courant.setText(str(texte))
-         else : 
-            self.ajoutLineEdit(texte)
-         indexDernierRempli = indexDernierRempli + 1
-        
-
-  def changeValeur(self,changeDePlace=True,oblige=False):
-      donneFocus=None
-      derniereValeur=None
-      self.listeValeursCourantes = []
-      fin=self.indexDernierLabel
-      for i in range (1, fin):
-          nomLineEdit="lineEditVal"+str(i)
-          courant=getattr(self,nomLineEdit)
-          valeur=courant.text()
-          lval=valeur.split(',')
-          if len (lval) > 1 : 
-             msgBox=QMessageBox()
-             msgBox.setText("separator ',' ")
-             msgBox.setInformativeText("Do you want to enter " + str (lval) + "?")
-             msgBox.setStandardButtons( QMessageBox.Ok | QMessageBox.Cancel)
-             msgBox.setDefaultButton(QMessageBox.Ok)
-             ret = msgBox.exec_()
-             if ret != 1024 : 
-                courant.setText("") 
-                return
-             courant.setText(lval[0])
-             self.ajoutNValeur(lval[1:])
-             self.listeValeursCourantes = []
-
-      for i in range (1, self.indexDernierLabel+1):
-          nomLineEdit="lineEditVal"+str(i)
-          courant=getattr(self,nomLineEdit)
-          valeur=courant.text()
-          if valeur != None and valeur != "" : 
-             commentaire=self.ajout1Valeur(valeur)
-             if (commentaire != None ):
-                 self.editor.afficheInfos(commentaire,Qt.red)
-                 courant.setText("")
-                 donneFocus=courant
-                 self.reaffiche()
-                 return
-             else :
-                 self.editor.afficheInfos("")
-          elif donneFocus==None : donneFocus=courant
-
-      nomDernierLineEdit="lineEditVal"+str(self.indexDernierLabel)
-      dernier=getattr(self,nomDernierLineEdit)
-      derniereValeur=dernier.text()
-      if changeDePlace:
-         if donneFocus != None : 
-           donneFocus.setFocus()
-           self.scrollArea.ensureWidgetVisible(donneFocus)
-         elif self.indexDernierLabel < self.monSimpDef.max  : 
-           self.ajoutLineEdit()
-      if self.listeValeursCourantes == [] : return
-      min,max = self.node.item.getMinMax()
-      if len(self.listeValeursCourantes) < self.monSimpDef.min  :
-        self.editor.afficheInfos(tr('nb min de valeurs : ')+str( self.monSimpDef.min))
-      if len(self.listeValeursCourantes) < min and oblige==True: return
-      if len(self.listeValeursCourantes) > max : return
-      self.node.item.setValeur(self.listeValeursCourantes)
-      if len(self.listeValeursCourantes) == self.monSimpDef.max  :
-        self.editor.afficheInfos(tr('nb max de valeurs atteint'))
-      self.setValide()
-      self.reaffiche()
-
-          
-
-# Avertissement quand on quitte le widget
diff --git a/InterfaceQT4/bizarreEditorDu5aout.py b/InterfaceQT4/bizarreEditorDu5aout.py
deleted file mode 100644 (file)
index 9ec84ab..0000000
+++ /dev/null
@@ -1,982 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2021   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-
-from __future__ import absolute_import
-from __future__ import print_function
-try :
-   from builtins import str
-   from builtins import range
-except : pass
-
-import re
-import types,sys,os
-import traceback
-from . import typeNode
-
-import six
-from six.moves import range
-
-from PyQt5.QtWidgets import QTreeWidget , QTreeWidgetItem, QApplication, QMessageBox
-from PyQt5.QtGui import QIcon
-from PyQt5.QtCore  import Qt
-from Extensions.i18n import tr
-from .gereRegles import GereRegles
-from .monChoixCommande import MonChoixCommande
-
-#------------------------------------------
-class JDCTree( QTreeWidget,GereRegles ):
-#------------------------------------------
-
-    def __init__( self, jdc_item, QWParent):        
-        #if hasattr(QWParent,'widgetTree') : 
-        self.editor       = QWParent
-        self.plie=False
-        if self.editor.widgetTree !=None  :
-           QTreeWidget.__init__(self, self.editor.widgetTree ) 
-           self.editor.verticalLayout_2.addWidget(self)
-           if self.editor.enteteQTree=='complet':
-                 self.headerItem().setText(0,  "Commande   ")
-                 self.headerItem().setText(1, "Concept/Valeur")
-           else :
-                 self.headerItem().setText(0,  "Commande   ")
-           self.setColumnWidth(0,200)
-           self.setExpandsOnDoubleClick(False)
-           self.setSelectionMode(3)
-        else :
-           QTreeWidget.__init__(self, None ) 
-        self.item          = jdc_item
-        self.tree          = self        
-        self.appliEficas   = self.editor.appliEficas
-        self.childrenComplete=[]
-        self.racine=self.item.itemNode(self,self.item)
-        self.itemCourant=None
-
-        self.itemClicked.connect(self.handleOnItem)
-        self.itemCollapsed.connect(self.handleCollapsedItem)
-        self.itemExpanded.connect(self.handleExpandedItem)
-
-        #PNPNPN verifier dans quel cas on se trouve : affiche l arbre ou la commande
-        self.node_selected=self.racine
-        self.inhibeExpand=True
-        self.expandItem(self.racine)
-        self.inhibeExpand=False
-        #print ("self.editor.maConfiguration.afficheCommandesPliees", self.editor.maConfiguration.afficheCommandesPliees)
-        if self.racine.children !=[] :  
-           #self.editor.initSplitterSizes(3)
-           if self.editor.maConfiguration.afficheCommandesPliees : self.racine.children[0].plieToutEtReaffiche()
-           else : self.racine.children[0].deplieToutEtReaffiche()
-           self.racine.children[0].fenetre.donnePremier()
-        else : 
-          #self.editor.initSplitterSizes(2)
-          self.racine.affichePanneau()
-          #print self.editor.splitter.sizes()
-        #PNPNPN
-        #pdb.set_trace()
-
-    def contextMenuEvent(self,event) :
-        #print "contextMenuEvent"
-        coord=event.globalPos()
-        item= self.currentItem()
-        self.handleContextMenu(item,coord)
-
-    def handleContextMenu(self,item,coord):
-        """
-        Private slot to show the context menu of the listview.
-        
-        @param itm the selected listview item (QListWidgetItem)
-        @param coord the position of the mouse pointer (QPoint)
-        Attention : existeMenu permet de savoir si un menu est associe a cet item
-        """
-        #print "handleContextMenu"
-        if item == None : return
-        self.itemCourant=item
-        if item.existeMenu == 0 : return
-        if item.menu == None:
-           item.createPopUpMenu()
-        if item.menu != None:
-           if item.item.getNom() == "DISTRIBUTION" and item.item.isValid() :
-              item.Graphe.setEnabled(1)
-           item.menu.exec_(coord)            
-            
-
-    def handleCollapsedItem(self,item):
-        #print "dans CollapsedItem", self.inhibeExpand  
-        if self.inhibeExpand == True : return
-        self.itemCourant=item
-        # On traite le cas de l item non selectionne
-        itemParent=item
-        while not (hasattr (itemParent,'getPanel')) : 
-           itemParent=itemParent.treeParent 
-        if self.tree.node_selected != itemParent : 
-             item.setExpanded(False)
-             return
-
-        itemParent=item
-        item.setPlie()
-        item.plieToutEtReaffiche()
-        item.select()
-
-    def handleExpandedItem(self,item):
-        #print ("handleExpandedItem pour ", item.item.nom, self.inhibeExpand)
-        #import traceback
-        #traceback.print_stack()
-        if self.inhibeExpand == True : return
-        self.itemCourant=item
-        self.inhibeExpand = True 
-        itemParent=item
-        while not (hasattr (itemParent,'getPanel')) : 
-           if itemParent.plie==True : itemParent.setDeplie()
-           itemParent=itemParent.treeParent 
-        if self.tree.node_selected != itemParent : 
-             item.setExpanded(True)
-             self.inhibeExpand = False 
-             return
-        item.deplieToutEtReaffiche()
-        self.inhibeExpand = False 
-
-
-    def handleOnItem(self,item,int):
-        #print ("je passe dans handleOnItem pour ",self, item.item.nom, item, item.item, item.item.getLabelText())
-        
-        from InterfaceQT4 import composimp
-        self.inhibeExpand = True 
-        self.itemCourant=item
-        itemParent=item
-
-        while not (hasattr (itemParent,'getPanel')) : 
-           if itemParent.plie==True : itemParent.setDeplie()
-           itemParent=itemParent.treeParent 
-
-        if itemParent.fenetre != self.editor.fenetreCentraleAffichee : 
-            estUneFeuille=(isinstance(item,composimp.Node))
-             # il faut afficher le parent
-            if estUneFeuille                        : itemParent.affichePanneau()
-            elif self.editor.maConfiguration.afficheCommandesPliees : itemParent.plieToutEtReafficheSaufItem(item)
-            else                                    : itemParent.affichePanneau()
-
-
-        elif (isinstance(item,composimp.Node)) and item.fenetre : item.fenetre.rendVisible()
-        elif itemParent!=item:
-             self.tree.handleExpandedItem(item)
-             #item.fenetre.donnePremier()
-             #item.fenetre.rendActif()
-             #print 'il faut afficher le 1er'
-
-        try :
-           fr = item.item.getFr()
-           chaineDecoupee= fr.split('\n')
-           if len(chaineDecoupee) > 3 :
-              txt='\n'.join(chaineDecoupee[0:2])+'...\nfull help : double clicked on validity chip of '+ str(item.item.nom)+ ' in central widget'
-           else : txt=fr
-
-           if self.editor: 
-              self.editor.afficheCommentaire(six.text_type(txt))
-        except:
-            pass
-        item.select()
-        self.inhibeExpand = False 
-        #print "je mets inhibeExpand a false handleOnItem"
-
-
-    def choisitPremier(self,name):
-        self.editor.layoutJDCCHOIX.removeWidget(self.racine.fenetre)
-        self.racine.fenetre.close()
-        new_node=self.racine.appendBrother(name,'after')
-# type de noeud
-COMMENT     = "COMMENTAIRE"
-PARAMETERS  = "PARAMETRE"
-#------------------------------------------
-class JDCNode(QTreeWidgetItem,GereRegles):
-#------------------------------------------
-    def __init__( self, treeParent, item, itemExpand=False, ancien=False ):
-        #print ("creation d'un noeud : ", item, " ",item.nom,"", treeParent, self)
-        #self.a=0
-
-
-        self.item        = item
-        self.vraiParent  = treeParent
-        self.treeParent  = treeParent
-        self.tree        = self.treeParent.tree
-        self.editor     = self.treeParent.editor
-        self.appliEficas = treeParent.appliEficas
-        self.JESUISOFF=0
-        self.childrenComplete=[]
-
-                        
-        from InterfaceQT4 import compocomm
-        from InterfaceQT4 import compoparam
-        from InterfaceQT4 import composimp
-        if   (isinstance(self.item,compocomm.COMMTreeItem)) : name=tr("Commentaire")
-        elif (isinstance(self.item,compoparam.PARAMTreeItem)) : name=tr(str(item.getLabelText()[0]))
-        #else:   name  = tr(str(tr(item.getLabelText()[0]))+" :")
-        else:   name  = tr(item.getLabelText()[0])
-        if item.nom != tr(item.nom) : name = str(tr(item.nom)+" :")
-        value = tr(str( item.getText() ) )
-       
-        # si specialisation de la fenetre
-        if self.item.object.definition == None : self.fenetreIhm = None
-           # Cas des listes de mots_clefs 
-        else : self.fenetreIhm = self.item.object.definition.fenetreIhm
-        if self.editor.enteteQTree=='complet':mesColonnes=(name,value)
-        else : mesColonnes=(name,)
-
-        if self.treeParent.plie==True :
-            self.plie        = True
-            self.appartientAUnNoeudPlie=True
-            if self.treeParent.item.isMCList() : self.appartientAUnNoeudPlie =  self.treeParent.appartientAUnNoeudPlie
-        else :
-            self.plie        = False
-            self.appartientAUnNoeudPlie = False
-
-        #if item.nom == "POUTRE" :print "creation d'un noeud : ", item, " ",item.nom,"", self.treeParent, self.appartientAUnNoeudPlie , self.plie
-
-        if ancien and itemExpand     : self.plie = False
-        if ancien and not itemExpand : self.plie = True 
-        if (isinstance(self.item,composimp.SIMPTreeItem)) : self.plie=False
-
-        from InterfaceQT4 import compobloc
-        from InterfaceQT4 import compomclist
-
-        ajoutAuParentduNoeud=0
-        self.treeParent=treeParent
-        while (isinstance(self.treeParent,compobloc.Node) or ( isinstance(self.treeParent,compomclist.Node) and self.treeParent.item.isMCList())) : 
-              self.treeParent.childrenComplete.append(self)
-              self.treeParent=self.treeParent.vraiParent
-        self.treeParent.childrenComplete.append(self)
-
-
-        if (isinstance(self,compobloc.Node) or (isinstance(self,compomclist.Node) and self.item.isMCList()) or ( hasattr(self.item.parent,'inhibeValidator') and isinstance(self,compomclist.Node) and self.item.parent.inhibeValidator)) : 
-        # Le dernier or ne sert que lorsqu'on est en train de creer une liste par les validator
-           QTreeWidgetItem.__init__(self,None,mesColonnes)
-        else :
-           QTreeWidgetItem.__init__(self,self.treeParent,mesColonnes)
-
-        self.setToolTip(0,self.item.getFr())
-        self.setToolTip(1,self.item.getFr())
-        repIcon=self.appliEficas.repIcon
-
-        couleur=self.item.getIconName()
-        monIcone = QIcon(repIcon+"/" + couleur + ".png")
-
-        self.setIcon(0,monIcone)
-
-        self.children = []
-        self.buildChildren()
-        self.menu=None
-        self.existeMenu=1
-
-        self.item.connect("valid",self.onValid,())
-        self.item.connect("supp" ,self.onSupp,())
-        self.item.connect("add"  ,self.onAdd,())
-
-        self.state=""
-        self.fenetre=None
-        try :
-          if self.item.getObject().isBLOC() : 
-                self.setExpanded(True) 
-                self.plie=False
-        except :
-          pass
-
-
-    def buildChildren(self,posInsertion=10000):
-        """ Construit la liste des enfants de self """
-        """ Se charge de remettre les noeuds Expanded dans le meme etat """
-        #print ("*********** buildChildren ",self,self.item, self.item.nom)
-        #print (poum)
-        
-        self.listeItemExpanded=[]
-        self.listeItemPlie=[]
-
-        for enfant in self.childrenComplete :
-            if enfant.plie : self.listeItemPlie.append(enfant.item)
-            else : self.listeItemExpanded.append(enfant.item)
-
-        for enfant in self.childrenComplete :
-            parent=enfant.treeParent
-            parent.removeChild(enfant)
-            enfant.JESUISOFF=1
-         
-        
-        self.children = []
-        self.childrenComplete = []
-        sublist = self.item._getSubList()
-        ind=0
-        
-        for item in sublist :
-            itemExpand=False
-            ancien=False
-            if item in self.listeItemExpanded : itemExpand=True;  ancien=True
-            if item in self.listeItemPlie     : itemExpand=False; ancien=True
-            nouvelItem=item.itemNode(self,item,itemExpand,ancien)
-            self.children.append(nouvelItem)
-
-        #print ("fin *********** buildChildren ",self,self.item, self.item.nom, self.children)
-
-        
-    def chercheNoeudCorrespondant(self,objSimp):
-        sublist = self.item._getSubList()
-        for node in self.childrenComplete:
-            if node.item.object==objSimp : return node
-        return None
-
-
-    def afficheCeNiveau(self):
-        #print ('afficheCeNiveau pour ', self.item.nom, self.item.getLabelText())
-        for indiceWidget in range(self.editor.widgetCentraleLayout.count()):
-            widget=self.editor.widgetCentraleLayout.itemAt(indiceWidget)
-            self.editor.widgetCentraleLayout.removeItem(widget)
-        if self.editor.fenetreCentraleAffichee != None :
-            self.editor.widgetCentraleLayout.removeWidget(self.editor.fenetreCentraleAffichee)
-            self.editor.fenetreCentraleAffichee.setParent(None)
-            self.editor.fenetreCentraleAffichee.close()
-            self.editor.fenetreCentraleAffichee.deleteLater()
-
-        from monWidgetNiveauFact import MonWidgetNiveauFact, MonWidgetNiveauFactTableau
-        maDefinition=self.item.get_definition()
-        monObjet=self.item.object
-        if maDefinition.fenetreIhm=='Tableau' : self.maFenetreCadre=MonWidgetNiveauFactTableau(self,self.editor,maDefinition,monObjet)
-        else : self.maFenetreCadre=MonWidgetNiveauFact(self,self.editor,maDefinition,monObjet)
-        self.fenetre=self.maFenetreCadre
-        self.editor.widgetCentraleLayout.addWidget(self.maFenetreCadre)
-        self.editor.fenetreCentraleAffichee=self.maFenetreCadre
-        self.select()
-        #print ('fin afficheCeNiveau pour ', self.item.nom)
-        
-   
-    def getPanelModifie(self):
-       
-        if self.fenetreIhm == None : return None
-        if self.fenetreIhm=='deplie1Niveau':
-           from InterfaceQT4.monWidgetCommandeDeplie1Niveau import MonWidgetCommandeDeplie1Niveau
-           return MonWidgetCommandeDeplie1Niveau (self,self.editor ,self.item.object)
-        return None
-        
-
-    def affichePanneau(self) :
-        #if self.editor.code == 'ASTER' and not(self.item.isActif()) : 
-        # posera des pb si un code decide d appeler FIN un mot clef
-        # on resoudera a ce moment la
-        # pour l pas de poussiere sous le tapis
-        #print ('_________________ds affichePanneau pour', self.item.nom)
-        if  not(self.item.isActif()) : 
-            from .monWidgetInactif import MonWidgetInactif
-            self.fenetre = MonWidgetInactif(self,self.editor)
-        else:
-           itemParent=self
-           while not (hasattr (itemParent,'getPanel')) : itemParent=itemParent.treeParent 
-           if itemParent!=self : 
-              #print ('j appelle affichePanneau pour ', itemParent.item.nom , 'par', self.item.nom)
-              itemParent.affichePanneau()
-              #print ('fin _________________ds affichePanneau pour', self.item.nom)
-              return
-           self.fenetre=self.getPanelModifie()
-           if self.fenetre == None : self.fenetre=self.getPanel()
-           self.editor.restoreSplitterSizes()
-         
-        for indiceWidget in range(self.editor.widgetCentraleLayout.count()):
-            widget=self.editor.widgetCentraleLayout.itemAt(indiceWidget)
-            self.editor.widgetCentraleLayout.removeItem(widget)
-        # ceinture et bretelle
-        #print 'old fenetre = ',self.editor.fenetreCentraleAffichee
-        if self.editor.fenetreCentraleAffichee != None : 
-            self.editor.widgetCentraleLayout.removeWidget(self.editor.fenetreCentraleAffichee)
-            self.editor.fenetreCentraleAffichee.setParent(None)
-            self.editor.fenetreCentraleAffichee.close()
-            self.editor.fenetreCentraleAffichee.deleteLater()
-
-        self.editor.widgetCentraleLayout.addWidget(self.fenetre)
-        #print ("j ajoute ", self.fenetre, self.fenetre.node.item.nom)
-        self.editor.fenetreCentraleAffichee=self.fenetre
-        self.tree.node_selected= self
-
-        if self.editor.first :
-           if not(isinstance(self.fenetre,MonChoixCommande)): self.editor.first=False
-        self.tree.inhibeExpand=True
-        self.tree.expandItem(self)
-        self.tree.inhibeExpand=False
-        #print( '_________________fin affichePanneau pour', self.item.nom)
-          
-
-    def createPopUpMenu(self):
-        #implemente dans les noeuds derives si necessaire
-        self.existeMenu = 0
-
-    def commentIt(self):
-        """
-        Cette methode a pour but de commentariser la commande pointee par self
-        """
-        # On traite par une exception le cas ou l'utilisateur final cherche a desactiver
-        # (commentariser) un commentaire.
-        try :
-            pos=self.treeParent.children.index(self)
-            commande_comment = self.item.getObjetCommentarise()
-            # On signale a l editeur du panel (le JDCDisplay) une modification
-            self.editor.initModif()
-            self.treeParent.buildChildren()
-            self.treeParent.children[pos].select()
-            self.treeParent.children[pos].affichePanneau()
-        except Exception as e:
-            traceback.print_exc()
-            QMessageBox.critical( self.editor, "TOO BAD",str(e))
-        
-    def unCommentIt(self):
-        """
-        Realise la decommentarisation de self
-        """
-        try :
-            pos=self.treeParent.children.index(self)
-            commande,nom = self.item.unComment()
-            self.editor.initModif()
-            self.treeParent.buildChildren()
-            self.treeParent.children[pos].select()
-            self.treeParent.children[pos].affichePanneau()
-        except Exception as e:
-            QMessageBox.critical( self.editor, "Erreur !",str(e))
-        
-    def addComment( self, after=True ):
-        """
-        Ajoute un commentaire a l'interieur du JDC :
-        """
-        self.editor.initModif()
-        if after:
-            pos = 'after'
-        else:
-            pos = 'before'
-        return self.appendBrother( COMMENT, pos )
-                
-    def addParameters( self, after=True ):
-        """
-        Ajoute un parametre a l'interieur du JDC :
-        """
-        self.editor.initModif()
-        if after: pos = 'after'
-        else: pos = 'before'
-        child=self.appendBrother( PARAMETERS, pos )
-        return  child
-    
-    
-    def select( self ):
-        """
-        Rend le noeud courant (self) selectionne et deselectionne
-        tous les autres
-        """        
-        #print "select pour", self.item.nom
-        for item in self.tree.selectedItems() :
-            item.setSelected(0)
-        self.tree.setCurrentItem( self )    
-                               
-    #------------------------------------------------------------------
-    # Methodes de creation et destruction de noeuds
-    # Certaines de ces methodes peuvent etre appelees depuis l'externe
-    #------------------------------------------------------------------
-    def appendBrother(self,name,pos='after',plier=False):
-        """
-        Permet d'ajouter un objet frere a l'objet associe au noeud self
-        par defaut on l'ajoute immediatement apres 
-        Methode externe
-        """
-        self.editor.initModif()
-
-        from InterfaceQT4 import compojdc
-        if (isinstance(self.treeParent, compojdc.Node)) and not self.verifiePosition(name,pos)  : return 0
-        
-        if self.treeParent != self.vraiParent :
-          index = self.vraiParent.children.index(self)
-          if   pos == 'before': index = index
-          elif pos == 'after': index = index +1
-          return self.vraiParent.appendChild(name,pos=index,plier=plier)
-        else :
-          index = self.treeParent.children.index(self)
-          if   pos == 'before': index = index
-          elif pos == 'after': index = index +1
-          else:
-              print(six.text_type(pos), tr("  n'est pas un index valide pour appendBrother"))
-              return 0
-          return self.treeParent.appendChild(name,pos=index,plier=plier)
-
-    def verifiePosition(self,name,pos,aLaRacine=False):
-        if name not in self.editor.readercata.Classement_Commandes_Ds_Arbre : return True
-        indexName=self.editor.readercata.Classement_Commandes_Ds_Arbre.index(name)
-
-        etapes=self.item.getJdc().etapes
-        if etapes == [] : return True
-
-        if aLaRacine == False :indexOu=etapes.index(self.item.object)
-        else : indexOu=0
-
-        if pos=="after" : indexOu = indexOu+1
-        for e in etapes[:indexOu] :
-            nom=e.nom
-            if nom not in self.editor.readercata.Classement_Commandes_Ds_Arbre : continue
-            indexEtape=self.editor.readercata.Classement_Commandes_Ds_Arbre.index(nom)
-            if indexEtape > indexName :
-               comment=tr('le mot clef ')+name+tr(' doit etre insere avant ')+nom
-               QMessageBox.information( None,tr('insertion impossible'),comment, )
-               return False
-        for e in etapes[indexOu:] :
-            nom=e.nom
-            if nom not in self.editor.readercata.Classement_Commandes_Ds_Arbre : continue
-            indexEtape=self.editor.readercata.Classement_Commandes_Ds_Arbre.index(nom)
-            if indexEtape < indexName :
-               comment=tr('le mot clef ')+name+tr(' doit etre insere apres ')+nom
-               QMessageBox.information( None,tr('insertion impossible'),comment, )
-               return False
-        return True
-
-    def appendChild(self,name,pos=None,plier=False):
-        """
-           Methode pour ajouter un objet fils a l'objet associe au noeud self.
-           On peut l'ajouter en debut de liste (pos='first'), en fin (pos='last')
-           ou en position intermediaire.
-           Si pos vaut None, on le place a la position du catalogue.
-        """
-        #print ("************** appendChild ",self.item.getLabelText(), pos, plier)
-        #import traceback
-        #traceback.print_stack()
-
-         
-        self.editor.initModif()
-        if pos == 'first':
-            index = 0
-        elif pos == 'last':
-            index = len(self.children)
-        elif type(pos) == int :
-            # position fixee
-            index = pos
-        elif type(pos) == types.InstanceType:
-            # pos est un item. Il faut inserer name apres pos
-            index = self.item.getIndex(pos) +1
-        elif type(name) == types.InstanceType:
-            index = self.item.getIndexChild(name.nom)
-        else:
-            index = self.item.getIndexChild(name)
-
-        # si on essaye d inserer a la racine
-        if (isinstance(self.treeParent,JDCTree) and index==0) :
-           verifiePosition=self.verifiePosition(name,'first',aLaRacine=True)
-           if not verifiePosition : return 0
-
-        self.tree.inhibeExpand=True
-        obj=self.item.addItem(name,index) # emet le signal 'add'
-        if obj is None:obj=0
-        if obj == 0:return 0
-        try :
-        #if 1 :
-           child=self.children[index]
-           if plier == True : child.setPlie()
-           else             : child.setDeplie() 
-        except :
-           child=self.children[index]
-        try : 
-           if len(obj) > 1 : self.buildChildren()
-        except : pass
-        self.tree.inhibeExpand=False
-        #print (" fin append child")
-        return child
-
-    def deplace(self):
-        self.editor.initModif()
-        index = self.treeParent.children.index(self) - 1 
-        if index < 0 : index =0
-        ret=self.treeParent.item.deplaceEntite(self.item.getObject())
-
-    def delete(self):
-        """ 
-            Methode externe pour la destruction de l'objet associe au noeud
-        """
-        self.editor.initModif()
-        index = self.vraiParent.children.index(self) - 1 
-        if index < 0 : index =0
-        recalcule=0
-        if self.item.nom == "VARIABLE" :
-           recalcule=1
-           jdc=self.item.jdc
-        ret,commentaire=self.vraiParent.item.suppItem(self.item)
-        if ret==0 :
-          self.editor.afficheInfos(commentaire,Qt.red)
-        else :
-          self.editor.afficheInfos(commentaire)
-        self.treeParent.buildChildren()
-        if self.treeParent.childrenComplete : toselect=self.treeParent.childrenComplete[index]
-        else: toselect=self.treeParent
-        if recalcule : jdc.recalculeEtatCorrelation()
-        if ret==0 :
-            if self.treeParent.childrenComplete :
-                notdeleted=self.treeParent.childrenComplete[index+1]
-                notdeleted.select()
-        else :
-            toselect.select()
-        from InterfaceQT4 import compojdc
-        # cas ou on detruit dans l arbre sans affichage
-        if isinstance(self.treeParent,compojdc.Node) : 
-           toselect.affichePanneau()
-        else :
-           if self.treeParent.fenetre== None : return
-           #print "J appelle reaffiche de browser apres delete"
-           self.treeParent.fenetre.reaffiche(toselect)
-
-    def deleteMultiple(self,liste=()):
-        """ 
-            Methode externe pour la destruction d une liste de noeud
-        """
-        from InterfaceQT4 import compojdc 
-        self.editor.initModif()
-        index=9999
-        recalcule=0
-        jdc=self.treeParent
-        parentPosition=jdc
-        while not(isinstance(jdc,compojdc.Node)):
-              jdc=jdc.treeParent
-        for noeud in liste :
-            if not( isinstance(noeud.treeParent, compojdc.Node)): continue
-            if noeud.item.nom == "VARIABLE" : recalcule=1
-            if noeud.treeParent.children.index(noeud) < index : index=noeud.treeParent.children.index(noeud)
-        if index < 0 : index =0
-
-        # Cas ou on detruit dans une ETape
-        if index == 9999 : 
-              parentPosition=self.treeParent
-              while not(isinstance(parentPosition, compojdc.Node)):
-                 index=parentPosition.treeParent.children.index(parentPosition)
-                 parentPosition=parentPosition.treeParent
-
-        for noeud in liste:
-            noeud.treeParent.item.suppItem(noeud.item)
-
-        jdc.buildChildren()
-        if recalcule : jdc.recalculeEtatCorrelation()
-        try    : toselect=parentPosition.children[index]
-        except : toselect=jdc
-        toselect.select()
-        toselect.affichePanneau()
-#        
-#    #------------------------------------------------------------------
-    def onValid(self):        
-
-        #print ("onValid pour ", self.item.nom)
-        if self.JESUISOFF==1 : return
-        if hasattr(self,'fenetre') and self.fenetre: 
-           try :
-             self.fenetre.setValide()
-           except :
-            # print "onValid pour ", self.item.nom, self,'pb'
-            pass
-
-        if (self.item.nom == "VARIABLE" or self.item.nom == "DISTRIBUTION") and self.item.isValid():
-           self.item.jdc.recalculeEtatCorrelation()
-        if hasattr(self.item,'forceRecalcul'):
-           self.forceRecalculChildren(self.item.forceRecalcul)
-        self.editor.initModif()
-        
-        self.updateNodeValid()
-        self.updateNodeLabel()
-        self.updateNodeTexte()
-
-    def onAdd(self,object):
-        if self.JESUISOFF==1 : return
-        #print "onAdd pour ", self.item.nom, object.nom
-        self.editor.initModif()
-        self.updateNodes()
-        # PN -- non necessaire si item=jdc
-        if hasattr(self.item,'jdc'): self.item.jdc.aReafficher=True
-    def onSupp(self,object):
-        if self.JESUISOFF==1 : return
-        #print "onSup pour ", self.item.nom, object.nom
-        self.editor.initModif()
-        self.updateNodes()
-        # PN -- non necessaire si item=jdc
-        if hasattr(self.item,'jdc'): self.item.jdc.aReafficher=True
-         
-
-
-    def updateNodeValid(self):
-        """Cette methode remet a jour la validite du noeud (icone)
-           Elle appelle isValid
-        """
-        repIcon=self.appliEficas.repIcon
-        couleur=self.item.getIconName()
-        monIcone = QIcon(repIcon+"/" + couleur + ".png")
-        self.setIcon(0,monIcone)
-
-
-
-    def updateNodeLabel(self):
-        """ Met a jour le label du noeud """
-        #print "NODE updateNodeLabel", self.item.getLabelText()
-        labeltext,fonte,couleur = self.item.getLabelText()
-        # PNPN a reflechir
-        self.setText(0, labeltext)        
-    
-    def updateNodeLabelInBlack(self):
-        if hasattr(self.appliEficas,'noeudColore'): 
-            self.appliEficas.noeudColore.setForeground(0,Qt.black)
-            self.appliEficas.noeudColore.updateNodeLabel
-    
-    def updateNodeLabelInBlue(self):
-        if hasattr(self.appliEficas,'noeudColore'): self.appliEficas.noeudColore.setForeground(0,Qt.black)
-        self.setForeground(0,Qt.blue)
-        labeltext,fonte,couleur = self.item.getLabelText()
-        self.setText(0, labeltext)        
-        self.appliEficas.noeudColore=self
-
-    def updatePlusieursNodeLabelInBlue(self,liste):
-        if hasattr(self.appliEficas,'listeNoeudsColores'):
-           for noeud in self.appliEficas.listeNoeudsColores:
-               noeud.setTextColor( 0,Qt.black)
-               noeud.updateNodeLabel()
-        self.appliEficas.listeNoeudsColores=[]
-        for noeud in liste :
-            noeud.setTextColor( 0,Qt.blue )
-            labeltext,fonte,couleur = noeud.item.getLabelText()
-            noeud.setText(0, labeltext)        
-            self.appliEficas.listeNoeudsColores.append(noeud)
-
-    def updateNodeTexteInBlack(self):
-        """ Met a jour les noms des SD et valeurs des mots-cles """
-        self.setTextColor( 1,Qt.black )
-        value = self.item.getText()
-        self.setText(1, value)
-
-    def updateNodeTexte(self):
-        """ Met a jour les noms des SD et valeurs des mots-cles """
-        value = self.item.getText()
-        self.setText(1, value)
-        
-
-    def updateNodeTexteInBlue(self):
-        self.setTextColor( 1,Qt.blue )
-        value = self.item.getText()
-        self.setText(1, value)
-
-    def updateNodes(self):
-        #print 'NODE updateNodes', self.item.getLabelText()
-        self.buildChildren()
-
-    def updateValid(self) :
-        """Cette methode a pour but de mettre a jour la validite du noeud
-           et de propager la demande de mise a jour a son parent
-        """
-        #print "NODE updateValid", self.item.getLabelText()
-        self.updateNodeValid()
-        try :
-          self.treeParent.updateValid()
-        except:
-          pass
-            
-    def updateTexte(self):
-        """ Met a jour les noms des SD et valeurs des mots-cles """
-        #print "NODE updateTexte", self.item.getLabelText()
-        self.updateNodeVexte()
-        if self.isExpanded() :
-            for child in self.children:
-                if child.isHidden() == false : child.updateTexte()
-
-
-    def forceRecalculChildren(self,niveau):
-        if self.state=='recalcule' : 
-           self.state=""
-           return
-        self.state='recalcule'
-        if hasattr(self.item,'object'):
-           self.item.object.state="modified"
-        for child in self.children:
-           if niveau > 0 : child.forceRecalculChildren(niveau - 1)
-              
-        
-
-    def doPaste(self,node_selected,pos='after'):
-        """
-            Declenche la copie de l'objet item avec pour cible
-            l'objet passe en argument : node_selected
-        """
-        objet_a_copier = self.item.getCopieObjet()
-        child=node_selected.doPasteCommande(objet_a_copier,pos)
-        if self.editor.fenetreCentraleAffichee : self.editor.fenetreCentraleAffichee.node.affichePanneau()
-        self.updateNodeLabelInBlack()
-        return child
-
-    def doPasteCommande(self,objet_a_copier,pos='after'):
-        """
-          Realise la copie de l'objet passe en argument qui est necessairement
-          un onjet
-        """
-        child=None
-        try :
-        #if 1 :
-          child = self.appendBrother(objet_a_copier,pos)
-        except :
-           pass
-        return child
-
-    def doPastePremier(self,objet_a_copier):
-        """
-           Realise la copie de l'objet passe en argument (objet_a_copier)
-        """
-        objet = objet_a_copier.item.getCopieObjet()
-        child = self.appendChild(objet,pos='first')
-        return child
-
-    def plieToutEtReafficheSaufItem(self, itemADeplier):
-        self.inhibeExpand=True
-        from InterfaceQT4 import compojdc
-        if (isinstance(self, compojdc.Node)) :
-            self.affichePanneau()
-            self.inhibeExpand=False
-            return 
-        self.editor.deplier = False
-        for item in self.children :
-            # il ne faut pas plier les blocs 
-            from InterfaceQT4 import compobloc
-            if (isinstance(item,compobloc.Node)) : continue
-            item.setPlie()
-            if item==itemADeplier : 
-                  itemADeplier.setDeplie()
-        self.affichePanneau()
-        self.inhibeExpand=False
-
-    def plieToutEtReaffiche(self):
-        #print ('plieToutEtReaffiche', self.item.getNom())
-        from InterfaceQT4 import compojdc
-        if (isinstance(self, compojdc.Node)) : self.affichePanneau(); return 
-        self.inhibeExpand=True
-        self.editor.deplier = False
-        for item in self.children :
-            # il ne faut pas plier les blocs 
-            from InterfaceQT4 import compobloc
-            if (isinstance(item,compobloc.Node)) : continue
-            item.setPlie()
-        self.affichePanneau()
-        #print ("fin plieToutEtReaffiche", self.item.getNom())
-
-    def deplieToutEtReaffiche(self):
-        self.editor.deplier = True
-        for item in self.children :
-            item.setDeplie()
-        self.affichePanneau()
-
-    def setPlie(self):
-        #print "je mets inhibeExpand a true dans setPlie"
-        #print ("je suis dans plieTout", self.item.getNom())
-        from . import compojdc
-        if self.fenetre == self.editor.fenetreCentraleAffichee  and isinstance(self.treeParent,compojdc.Node): 
-           return
-        self.tree.inhibeExpand=True
-        self.tree.collapseItem(self)
-        self.setPlieChildren()
-        self.tree.inhibeExpand=False
-        #print "je mets inhibeExpand a false dans setPlie"
-
-
-        # on ne plie pas au niveau 1
-        #   self.plie=False
-        #   for item in self.children :
-        #       item.appartientAUnNoeudPlie=False
-
-    def setPlieChildren(self):
-        self.plie=True
-        from InterfaceQT4 import composimp
-        if isinstance(self,composimp.Node) : return
-        for c in self.children :
-            c.setPlieChildren()
-            #print "dans setPlieChildren appartientAUnNoeudPlie=True ", c, c.item.getLabelText()[0]
-            c.appartientAUnNoeudPlie=True
-            c.plie=True
-            #print "dans setPlieChildren plie", c.item.nom
-            #  01/2018 PNPN : boucle sur MT __ La ligne suivante ne me semble pas necessaire
-            #if not (isinstance(c,composimp.Node)) :c.setExpanded(False)
-
-        # Pour les blocs et les motcles list
-        # on affiche un niveau de plus
-        from InterfaceQT4 import compobloc
-        from InterfaceQT4 import compomclist
-        if (isinstance(self,compobloc.Node) or ( isinstance(self,compomclist.Node) and self.item.isMCList())) : 
-            niveauPere=self.treeParent
-            while (isinstance(niveauPere,compobloc.Node) or (isinstance(niveauPere,compomclist.Node) and niveauPere.item.isMCList())) : 
-               niveauPere=niveauPere.treeParent
-            for c in self.children :
-                c.appartientAUnNoeudPlie=niveauPere.appartientAUnNoeudPlie
-                #print ("dans setPlieChildren appartientAUnNoeudPlie=True ", c, c.item.getLabelText()[0], "mis a la valeur ", niveauPere.appartientAUnNoeudPlie)
-                c.setExpanded(False)
-
-
-    def setDeplie(self):
-        #print "dans setPlieChildren pour", self.item.nom
-        #print "je mets inhibeExpand a true dans setDeplie"
-        self.tree.inhibeExpand=True
-        self.plie=False
-        self.tree.expandItem(self)
-        self.setDeplieChildren()
-        self.tree.inhibeExpand=False
-        #print "je mets inhibeExpand a false dans setDePlie"
-
-    def setDeplieChildren(self):
-        #print "dans setDeplieChildren appartientAUnNoeudPlie=False ", self.item.getLabelText()
-        for c in self.children :
-            c.setDeplieChildren()
-            #print "dans setDeplieChildren ", c.item.nom
-            c.appartientAUnNoeudPlie=False
-            c.setExpanded(True)
-            c.plie=False
-       
-    def selectAvant(self):
-        i=self.item.jdc.etapes.index(self.item.object)
-        try :
-           cherche=self.item.jdc.etapes[i-1]
-        except :
-           cherche=self.item.jdc.etapes[-1]
-        node=None
-        for i in self.tree.racine.children :
-            if i.item.object== cherche  : 
-               node=i
-               break
-        if node : 
-          node.affichePanneau()
-          node.select()
-
-    def selectApres(self):
-        i=self.item.jdc.etapes.index(self.item.object)
-        try :
-           cherche=self.item.jdc.etapes[i+1]
-        except :
-           cherche=self.item.jdc.etapes[0]
-        node=None
-        for i in self.tree.racine.children :
-            if i.item.object== cherche  : 
-               node=i
-               break
-        if node : 
-           node.affichePanneau()
-           node.select()
-
-    def ouvreLesNoeudsDsLArbre(self):
-        return
-        self.inhibeExpand = True 
-        for i in range(self.childCount()):
-            self.child(i).inhibeExpand=True
-            self.child(i).setExpanded(True)
-            self.child(i).ouvreLesNoeudsDsLArbre()
-            self.child(i).inhibeExpand=False
-        self.inhibeExpand = False 
index 73f2b18c84c1a4d70def599ebbcd63348a058753..8a9721e75c358ffa467366f8062b182c1de4bf19 100644 (file)
@@ -21,8 +21,8 @@
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import str
-   from builtins import range
+    from builtins import str
+    from builtins import range
 except : pass
 
 import re
@@ -30,190 +30,188 @@ import types,sys,os
 import traceback
 from . import typeNode
 
-import six
-from six.moves import range
 
 from PyQt5.QtWidgets import QTreeWidget , QTreeWidgetItem, QApplication, QMessageBox
-from PyQt5.QtGui import QIcon
-from PyQt5.QtCore  import Qt
-from Extensions.i18n import tr
-from .gereRegles import GereRegles
+from PyQt5.QtGui     import QIcon
+from PyQt5.QtCore    import Qt
+
+from  Extensions.i18n  import tr
+from .gereRegles       import GereRegles
 from .monChoixCommande import MonChoixCommande
 
 #------------------------------------------
 class JDCTree( QTreeWidget,GereRegles ):
 #------------------------------------------
 
-    def __init__( self, jdc_item, QWParent):        
-        #if hasattr(QWParent,'widgetTree') : 
-        self.editor       = QWParent
+    def __init__( self, jdc_item, QWParent):
+    #----------------------------------------
+        self.editor      = QWParent
         self.plie=False
         if self.editor.widgetTree !=None  :
-           QTreeWidget.__init__(self, self.editor.widgetTree ) 
-           self.editor.verticalLayout_2.addWidget(self)
-           if self.editor.enteteQTree=='complet':
-                 self.headerItem().setText(0,  "Commande   ")
-                 self.headerItem().setText(1, "Concept/Valeur")
-           else :
-                 self.headerItem().setText(0,  "Commande   ")
-           self.setColumnWidth(0,200)
-           self.setExpandsOnDoubleClick(False)
-           self.setSelectionMode(3)
+            QTreeWidget.__init__(self, self.editor.widgetTree )
+            self.editor.verticalLayout_2.addWidget(self)
+            if self.editor.enteteQTree=='complet':
+                self.headerItem().setText(0, "Commande   ")
+                self.headerItem().setText(1, "Concept/Valeur")
+            else :
+                self.headerItem().setText(0, "Commande   ")
+            self.setColumnWidth(0,200)
+            self.setExpandsOnDoubleClick(False)
+            self.setSelectionMode(3)
         else :
-           QTreeWidget.__init__(self, None ) 
+            QTreeWidget.__init__(self, None )
         self.item          = jdc_item
-        self.tree          = self        
+        self.tree          = self
         self.appliEficas   = self.editor.appliEficas
         self.childrenComplete=[]
         self.racine=self.item.itemNode(self,self.item)
+
         self.itemCourant=None
 
         self.itemClicked.connect(self.handleOnItem)
         self.itemCollapsed.connect(self.handleCollapsedItem)
         self.itemExpanded.connect(self.handleExpandedItem)
 
-        #PNPNPN verifier dans quel cas on se trouve : affiche l arbre ou la commande
-        self.node_selected=self.racine
-        self.inhibeExpand=True
+        self.node_selected = self.racine
+        self.inhibeExpand  =  True
         self.expandItem(self.racine)
-        self.inhibeExpand=False
-        #print ("self.editor.maConfiguration.afficheCommandesPliees", self.editor.maConfiguration.afficheCommandesPliees)
-        if self.racine.children !=[] :  
-           #self.editor.initSplitterSizes(3)
-           if self.editor.maConfiguration.afficheCommandesPliees : self.racine.children[0].plieToutEtReaffiche()
-           else : self.racine.children[0].deplieToutEtReaffiche()
-           self.racine.children[0].fenetre.donnePremier()
-        else : 
-          #self.editor.initSplitterSizes(2)
-          self.racine.affichePanneau()
-          #print self.editor.splitter.sizes()
-        #PNPNPN
-        #pdb.set_trace()
+        self.inhibeExpand = False
+        if self.racine.children !=[] :
+            if self.editor.maConfiguration.afficheCommandesPliees : self.racine.children[0].plieToutEtReaffiche()
+            else                                                  : self.racine.children[0].deplieToutEtReaffiche()
+            self.racine.children[0].fenetre.donnePremier()
+        else :
+            self.racine.affichePanneau()
 
     def contextMenuEvent(self,event) :
-        #print "contextMenuEvent"
-        coord=event.globalPos()
-        item= self.currentItem()
+    #---------------------------------
+        coord = event.globalPos()
+        item  = self.currentItem()
         self.handleContextMenu(item,coord)
 
     def handleContextMenu(self,item,coord):
+    #-------------------------------------
         """
         Private slot to show the context menu of the listview.
-        
+
         @param itm the selected listview item (QListWidgetItem)
         @param coord the position of the mouse pointer (QPoint)
         Attention : existeMenu permet de savoir si un menu est associe a cet item
         """
-        #print "handleContextMenu"
+        print ("handleContextMenu")
         if item == None : return
-        self.itemCourant=item
+        self.itemCourant = item
         if item.existeMenu == 0 : return
+
         if item.menu == None:
-           item.createPopUpMenu()
+            item.createPopUpMenu()
         if item.menu != None:
-           if item.item.getNom() == "DISTRIBUTION" and item.item.isValid() :
-              item.Graphe.setEnabled(1)
-           item.menu.exec_(coord)            
-            
+        # PNPN reflechir a qqchose de generique pour remplacer cette fonctionnalite
+        #   if item.item.getNom() == "DISTRIBUTION" and item.item.isValid() :
+        #      item.Graphe.setEnabled(1)
+           item.menu.exec_(coord)
+
 
     def handleCollapsedItem(self,item):
-        #print "dans CollapsedItem", self.inhibeExpand  
+    #----------------------------------
+        #print ("dans CollapsedItem", self.inhibeExpand  )
         if self.inhibeExpand == True : return
-        self.itemCourant=item
+
         # On traite le cas de l item non selectionne
-        itemParent=item
-        while not (hasattr (itemParent,'getPanel')) : 
-           itemParent=itemParent.treeParent 
-        if self.tree.node_selected != itemParent : 
-             item.setExpanded(False)
-             return
-
-        itemParent=item
+        self.itemCourant = item
+        itemParent = item
+        while not (hasattr (itemParent,'getPanel')) : itemParent=itemParent.treeParent
+        if self.tree.node_selected != itemParent :
+            item.setExpanded(False)
+            return
+
         item.setPlie()
         item.plieToutEtReaffiche()
         item.select()
 
     def handleExpandedItem(self,item):
+    #----------------------------------
         #print ("handleExpandedItem pour ", item.item.nom, self.inhibeExpand)
         #import traceback
         #traceback.print_stack()
         if self.inhibeExpand == True : return
-        self.itemCourant=item
-        self.inhibeExpand = True 
-        itemParent=item
-        while not (hasattr (itemParent,'getPanel')) : 
-           if itemParent.plie==True : itemParent.setDeplie()
-           itemParent=itemParent.treeParent 
-        if self.tree.node_selected != itemParent : 
-             item.setExpanded(True)
-             self.inhibeExpand = False 
-             return
+
+        self.itemCourant  = item
+        self.inhibeExpand = True
+        itemParent = item
+        while not (hasattr (itemParent,'getPanel')) :
+            if itemParent.plie==True : itemParent.setDeplie()
+            itemParent=itemParent.treeParent
+        if self.tree.node_selected != itemParent :
+            item.setExpanded(True)
+            self.inhibeExpand = False
+            return
         item.deplieToutEtReaffiche()
-        self.inhibeExpand = False 
+        self.inhibeExpand = False
 
 
     def handleOnItem(self,item,int):
+    #----------------------------------
         #print ("je passe dans handleOnItem pour ",self, item.item.nom, item, item.item, item.item.getLabelText())
-        
+
         from InterfaceQT4 import composimp
-        self.inhibeExpand = True 
-        self.itemCourant=item
-        itemParent=item
-        itemAvant=item
-
-        while not (hasattr (itemParent,'getPanel')) : 
-           if itemParent.plie==True : itemParent.setDeplie()
-           itemAvant=itemParent
-           itemParent=itemParent.treeParent 
-
-    
-        if itemParent.fenetre != self.editor.fenetreCentraleAffichee : 
+        self.inhibeExpand = True
+        self.itemCourant  = item
+        itemParent        = item
+        itemAvant         = item
+
+        # PN : 22 juil 2021 --> bizarre ce itemAvant Verifier le while
+        while not (hasattr (itemParent,'getPanel')) :
+            if itemParent.plie==True : itemParent.setDeplie()
+            itemAvant=itemParent
+            itemParent=itemParent.treeParent
+
+        if itemParent.fenetre != self.editor.fenetreCentraleAffichee :
             estUneFeuille=(isinstance(item,composimp.Node))
-            if itemParent.fenetreIhm == 'deplie1Niveau' :
-               if item == itemParent : itemParent.affichePanneau()
-               else                  : itemAvant.afficheCeNiveau()
-            elif estUneFeuille       : itemParent.affichePanneau()
+            # il faut afficher le parent
+            # Attention - Specification particuliere pour MT qui permet de nn afficher qu 1 niveau
+            # le catalogue contient cette indication dans fenetreIhm
+            if estUneFeuille and itemParent.fenetreIhm=='deplie1Niveau' :
+                if item == itemParent : itemParent.affichePanneau()
+                else                  : itemAvant.afficheCeNiveau()
+            elif estUneFeuille        : itemParent.affichePanneau()
             elif self.editor.maConfiguration.afficheCommandesPliees : itemParent.plieToutEtReafficheSaufItem(item)
-            else                      itemParent.affichePanneau()
+            else                      : itemParent.affichePanneau()
 
 
         elif (isinstance(item,composimp.Node)) and item.fenetre : item.fenetre.rendVisible()
-        elif itemParent!=item:
-             self.tree.handleExpandedItem(item)
-             #item.fenetre.donnePremier()
-             #item.fenetre.rendActif()
-             #print 'il faut afficher le 1er'
+        elif itemParent!=item: self.tree.handleExpandedItem(item)
 
+        # aide
         try :
-           fr = item.item.getFr()
-           chaineDecoupee= fr.split('\n')
-           if len(chaineDecoupee) > 3 :
-              txt='\n'.join(chaineDecoupee[0:2])+'...\nfull help : double clicked on validity chip of '+ str(item.item.nom)+ ' in central widget'
-           else : txt=fr
-
-           if self.editor: 
-              self.editor.afficheCommentaire(six.text_type(txt))
+            fr = item.item.getFr()
+            chaineDecoupee= fr.split('\n')
+            if len(chaineDecoupee) > 3 :
+                txt='\n'.join(chaineDecoupee[0:2])+'...\nfull help : double clicked on validity chip of '+ str(item.item.nom)+ ' in central widget'
+            else : txt=fr
+            if self.editor: self.editor.afficheCommentaire(str(txt))
         except:
             pass
+
         item.select()
-        self.inhibeExpand = False 
-        #print "je mets inhibeExpand a false handleOnItem"
+        self.inhibeExpand = False
 
 
     def choisitPremier(self,name):
+    #----------------------------
         self.editor.layoutJDCCHOIX.removeWidget(self.racine.fenetre)
         self.racine.fenetre.close()
         new_node=self.racine.appendBrother(name,'after')
+
 # type de noeud
 COMMENT     = "COMMENTAIRE"
 PARAMETERS  = "PARAMETRE"
+
 #------------------------------------------
 class JDCNode(QTreeWidgetItem,GereRegles):
 #------------------------------------------
     def __init__( self, treeParent, item, itemExpand=False, ancien=False ):
+    #----------------------------------------------------------------------
         #print ("creation d'un noeud : ", item, " ",item.nom,"", treeParent, self)
         #self.a=0
 
@@ -222,42 +220,42 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         self.vraiParent  = treeParent
         self.treeParent  = treeParent
         self.tree        = self.treeParent.tree
-        self.editor     = self.treeParent.editor
+        self.editor      = self.treeParent.editor
         self.appliEficas = treeParent.appliEficas
-        self.JESUISOFF=0
+        self.JESUISOFF   = 0
+        self.firstAffiche = True
         self.childrenComplete=[]
 
-                        
+
         from InterfaceQT4 import compocomm
         from InterfaceQT4 import compoparam
         from InterfaceQT4 import composimp
-        if   (isinstance(self.item,compocomm.COMMTreeItem)) : name=tr("Commentaire")
-        elif (isinstance(self.item,compoparam.PARAMTreeItem)) : name=tr(str(item.getLabelText()[0]))
-        #else:   name  = tr(str(tr(item.getLabelText()[0]))+" :")
-        else:   name  = tr(item.getLabelText()[0])
-        if item.nom != tr(item.nom) : name = str(tr(item.nom)+" :")
-        value = tr(str( item.getText() ) )
-       
+        if   (isinstance(self.item,compocomm.COMMTreeItem))   : name = tr("Commentaire")
+        elif (isinstance(self.item,compoparam.PARAMTreeItem)) : name = tr(str(item.getLabelText()[0]))
+        else                                                  : name = tr(item.getLabelText()[0])
+        if item.nom != tr(item.nom)                           : name = str(tr(item.nom)+" :")
+        value = tr(str(item.getText() ) )
+
         # si specialisation de la fenetre
         if self.item.object.definition == None : self.fenetreIhm = None
-           # Cas des listes de mots_clefs 
+            # Cas des listes de mots_clefs
         else : self.fenetreIhm = self.item.object.definition.fenetreIhm
+
         if self.editor.enteteQTree=='complet':mesColonnes=(name,value)
         else : mesColonnes=(name,)
 
         if self.treeParent.plie==True :
-            self.plie        = True
-            self.appartientAUnNoeudPlie=True
+            self.plie                   = True
+            self.appartientAUnNoeudPlie = True
             if self.treeParent.item.isMCList() : self.appartientAUnNoeudPlie =  self.treeParent.appartientAUnNoeudPlie
         else :
-            self.plie        = False
+            self.plie                   = False
             self.appartientAUnNoeudPlie = False
 
         #if item.nom == "POUTRE" :print "creation d'un noeud : ", item, " ",item.nom,"", self.treeParent, self.appartientAUnNoeudPlie , self.plie
 
         if ancien and itemExpand     : self.plie = False
-        if ancien and not itemExpand : self.plie = True 
+        if ancien and not itemExpand : self.plie = True
         if (isinstance(self.item,composimp.SIMPTreeItem)) : self.plie=False
 
         from InterfaceQT4 import compobloc
@@ -265,17 +263,17 @@ class JDCNode(QTreeWidgetItem,GereRegles):
 
         ajoutAuParentduNoeud=0
         self.treeParent=treeParent
-        while (isinstance(self.treeParent,compobloc.Node) or ( isinstance(self.treeParent,compomclist.Node) and self.treeParent.item.isMCList())) : 
-              self.treeParent.childrenComplete.append(self)
-              self.treeParent=self.treeParent.vraiParent
+        while (isinstance(self.treeParent,compobloc.Node) or ( isinstance(self.treeParent,compomclist.Node) and self.treeParent.item.isMCList())) :
+            self.treeParent.childrenComplete.append(self)
+            self.treeParent=self.treeParent.vraiParent
         self.treeParent.childrenComplete.append(self)
 
 
-        if (isinstance(self,compobloc.Node) or (isinstance(self,compomclist.Node) and self.item.isMCList()) or ( hasattr(self.item.parent,'inhibeValidator') and isinstance(self,compomclist.Node) and self.item.parent.inhibeValidator)) : 
+        if (isinstance(self,compobloc.Node) or (isinstance(self,compomclist.Node) and self.item.isMCList()) or ( hasattr(self.item.parent,'inhibeValidator') and isinstance(self,compomclist.Node) and self.item.parent.inhibeValidator)) :
         # Le dernier or ne sert que lorsqu'on est en train de creer une liste par les validator
-           QTreeWidgetItem.__init__(self,None,mesColonnes)
+            QTreeWidgetItem.__init__(self,None,mesColonnes)
         else :
-           QTreeWidgetItem.__init__(self,self.treeParent,mesColonnes)
+            QTreeWidgetItem.__init__(self,self.treeParent,mesColonnes)
 
         self.setToolTip(0,self.item.getFr())
         self.setToolTip(1,self.item.getFr())
@@ -294,23 +292,25 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         self.item.connect("valid",self.onValid,())
         self.item.connect("supp" ,self.onSupp,())
         self.item.connect("add"  ,self.onAdd,())
+        self.item.connect("redessine"  ,self.onRedessine,())
 
         self.state=""
         self.fenetre=None
         try :
-          if self.item.getObject().isBLOC() : 
-                self.setExpanded(True) 
+            if self.item.getObject().isBLOC() :
+                self.setExpanded(True)
                 self.plie=False
         except :
-          pass
+            pass
 
 
     def buildChildren(self,posInsertion=10000):
+    #------------------------------------------
         """ Construit la liste des enfants de self """
         """ Se charge de remettre les noeuds Expanded dans le meme etat """
         #print ("*********** buildChildren ",self,self.item, self.item.nom)
         #print (poum)
-        
+
         self.listeItemExpanded=[]
         self.listeItemPlie=[]
 
@@ -319,16 +319,16 @@ class JDCNode(QTreeWidgetItem,GereRegles):
             else : self.listeItemExpanded.append(enfant.item)
 
         for enfant in self.childrenComplete :
-            parent=enfant.treeParent
+            parent = enfant.treeParent
             parent.removeChild(enfant)
             enfant.JESUISOFF=1
-         
-        
+
+
         self.children = []
         self.childrenComplete = []
         sublist = self.item._getSubList()
         ind=0
-        
+
         for item in sublist :
             itemExpand=False
             ancien=False
@@ -339,8 +339,9 @@ class JDCNode(QTreeWidgetItem,GereRegles):
 
         #print ("fin *********** buildChildren ",self,self.item, self.item.nom, self.children)
 
-        
+
     def chercheNoeudCorrespondant(self,objSimp):
+    #-------------------------------------------
         sublist = self.item._getSubList()
         for node in self.childrenComplete:
             if node.item.object==objSimp : return node
@@ -348,6 +349,7 @@ class JDCNode(QTreeWidgetItem,GereRegles):
 
 
     def afficheCeNiveau(self):
+    #-------------------------
         #print ('afficheCeNiveau pour ', self.item.nom, self.item.getLabelText())
         for indiceWidget in range(self.editor.widgetCentraleLayout.count()):
             widget=self.editor.widgetCentraleLayout.itemAt(indiceWidget)
@@ -359,58 +361,62 @@ class JDCNode(QTreeWidgetItem,GereRegles):
             self.editor.fenetreCentraleAffichee.deleteLater()
 
         from monWidgetNiveauFact import MonWidgetNiveauFact, MonWidgetNiveauFactTableau
-        maDefinition=self.item.get_definition()
-        monObjet=self.item.object
+        maDefinition = self.item.get_definition()
+        monObjet     = self.item.object
         if maDefinition.fenetreIhm=='Tableau' : self.maFenetreCadre=MonWidgetNiveauFactTableau(self,self.editor,maDefinition,monObjet)
         else : self.maFenetreCadre=MonWidgetNiveauFact(self,self.editor,maDefinition,monObjet)
-        
-        self.fenetre=self.maFenetreCadre
+
+        self.fenetre = self.maFenetreCadre
         self.editor.widgetCentraleLayout.addWidget(self.maFenetreCadre)
         self.editor.fenetreCentraleAffichee=self.maFenetreCadre
         self.select()
         #print ('fin afficheCeNiveau pour ', self.item.nom)
-        
-   
+
+
     def getPanelModifie(self):
-       
+    #-------------------------
+
         if self.fenetreIhm == None : return None
-        if self.fenetreIhm=='deplie1Niveau':
-           from InterfaceQT4.monWidgetCommandeDeplie1Niveau import MonWidgetCommandeDeplie1Niveau
-           return MonWidgetCommandeDeplie1Niveau (self,self.editor ,self.item.object)
+        if self.fenetreIhm =='deplie1Niveau':
+            from InterfaceQT4.monWidgetCommandeDeplie1Niveau import MonWidgetCommandeDeplie1Niveau
+            return MonWidgetCommandeDeplie1Niveau (self,self.editor ,self.item.object)
         return None
-        
+
 
     def affichePanneau(self) :
-        #if self.editor.code == 'ASTER' and not(self.item.isActif()) : 
-        # posera des pb si un code decide d appeler FIN un mot clef
-        # on resoudera a ce moment la
-        # pour l pas de poussiere sous le tapis
+    #-------------------------
         #print ('_________________ds affichePanneau pour', self.item.nom)
-        if  not(self.item.isActif()) : 
+        # pour l instant pas d inactif
+        if  not(self.item.isActif()) :
             from .monWidgetInactif import MonWidgetInactif
             self.fenetre = MonWidgetInactif(self,self.editor)
         else:
-           itemParent=self
-           while not (hasattr (itemParent,'getPanel')) : itemParent=itemParent.treeParent 
-           if itemParent!=self : 
-              #print ('j appelle affichePanneau pour ', itemParent.item.nom , 'par', self.item.nom)
-              itemParent.affichePanneau()
-              #print ('fin _________________ds affichePanneau pour', self.item.nom)
-              return
-           self.fenetre=self.getPanelModifie()
-           if self.fenetre == None : self.fenetre=self.getPanel()
-           self.editor.restoreSplitterSizes()
-         
+            itemParent=self
+            while not (hasattr (itemParent,'getPanel')) : itemParent=itemParent.treeParent
+            if itemParent != self :
+            #print ('j appelle affichePanneau pour ', itemParent.item.nom , 'par', self.item.nom)
+                itemParent.affichePanneau()
+                #print ('fin _________________ds affichePanneau pour', self.item.nom)
+                return
+
+            self.fenetre = self.getPanelModifie()
+            if self.fenetre == None : self.fenetre=self.getPanel()
+            self.editor.restoreSplitterSizes()
+
         for indiceWidget in range(self.editor.widgetCentraleLayout.count()):
-            widget=self.editor.widgetCentraleLayout.itemAt(indiceWidget)
+            widget = self.editor.widgetCentraleLayout.itemAt(indiceWidget)
             self.editor.widgetCentraleLayout.removeItem(widget)
+
         # ceinture et bretelle
         #print 'old fenetre = ',self.editor.fenetreCentraleAffichee
-        if self.editor.fenetreCentraleAffichee != None : 
-            self.editor.widgetCentraleLayout.removeWidget(self.editor.fenetreCentraleAffichee)
-            self.editor.fenetreCentraleAffichee.setParent(None)
-            self.editor.fenetreCentraleAffichee.close()
-            self.editor.fenetreCentraleAffichee.deleteLater()
+        if self.editor.fenetreCentraleAffichee != None :
+            try :
+                self.editor.widgetCentraleLayout.removeWidget(self.editor.fenetreCentraleAffichee)
+                self.editor.fenetreCentraleAffichee.setParent(None)
+                self.editor.fenetreCentraleAffichee.close()
+                self.editor.fenetreCentraleAffichee.deleteLater()
+            except :
+                pass
 
         self.editor.widgetCentraleLayout.addWidget(self.fenetre)
         #print ("j ajoute ", self.fenetre, self.fenetre.node.item.nom)
@@ -418,18 +424,20 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         self.tree.node_selected= self
 
         if self.editor.first :
-           if not(isinstance(self.fenetre,MonChoixCommande)): self.editor.first=False
+            if not(isinstance(self.fenetre,MonChoixCommande)): self.editor.first=False
         self.tree.inhibeExpand=True
         self.tree.expandItem(self)
         self.tree.inhibeExpand=False
         #print( '_________________fin affichePanneau pour', self.item.nom)
-          
+
 
     def createPopUpMenu(self):
+    #-------------------------
         #implemente dans les noeuds derives si necessaire
         self.existeMenu = 0
 
     def commentIt(self):
+    #-------------------------
         """
         Cette methode a pour but de commentariser la commande pointee par self
         """
@@ -446,8 +454,9 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         except Exception as e:
             traceback.print_exc()
             QMessageBox.critical( self.editor, "TOO BAD",str(e))
-        
+
     def unCommentIt(self):
+    #-------------------------
         """
         Realise la decommentarisation de self
         """
@@ -460,8 +469,9 @@ class JDCNode(QTreeWidgetItem,GereRegles):
             self.treeParent.children[pos].affichePanneau()
         except Exception as e:
             QMessageBox.critical( self.editor, "Erreur !",str(e))
-        
+
     def addComment( self, after=True ):
+    #-----------------------------------
         """
         Ajoute un commentaire a l'interieur du JDC :
         """
@@ -471,8 +481,9 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         else:
             pos = 'before'
         return self.appendBrother( COMMENT, pos )
-                
+
     def addParameters( self, after=True ):
+    #-------------------------------------
         """
         Ajoute un parametre a l'interieur du JDC :
         """
@@ -481,48 +492,51 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         else: pos = 'before'
         child=self.appendBrother( PARAMETERS, pos )
         return  child
-    
-    
+
+
     def select( self ):
+    #------------------
         """
         Rend le noeud courant (self) selectionne et deselectionne
         tous les autres
-        """        
+        """
         #print "select pour", self.item.nom
         for item in self.tree.selectedItems() :
             item.setSelected(0)
-        self.tree.setCurrentItem( self )    
-                               
+        self.tree.setCurrentItem( self )
+
     #------------------------------------------------------------------
     # Methodes de creation et destruction de noeuds
-    # Certaines de ces methodes peuvent etre appelees depuis l'externe
     #------------------------------------------------------------------
+
     def appendBrother(self,name,pos='after',plier=False):
+    #----------------------------------------------------
         """
         Permet d'ajouter un objet frere a l'objet associe au noeud self
-        par defaut on l'ajoute immediatement apres 
+        par defaut on l'ajoute immediatement apres
         Methode externe
         """
         self.editor.initModif()
 
         from InterfaceQT4 import compojdc
         if (isinstance(self.treeParent, compojdc.Node)) and not self.verifiePosition(name,pos)  : return 0
-        
+
         if self.treeParent != self.vraiParent :
-          index = self.vraiParent.children.index(self)
-          if   pos == 'before': index = index
-          elif pos == 'after': index = index +1
-          return self.vraiParent.appendChild(name,pos=index,plier=plier)
+            index = self.vraiParent.children.index(self)
+            if   pos == 'before' : index = index
+            elif pos == 'after'  : index = index +1
+            return self.vraiParent.appendChild(name,pos=index,plier=plier)
         else :
-          index = self.treeParent.children.index(self)
-          if   pos == 'before': index = index
-          elif pos == 'after': index = index +1
-          else:
-              print(six.text_type(pos), tr("  n'est pas un index valide pour appendBrother"))
-              return 0
-          return self.treeParent.appendChild(name,pos=index,plier=plier)
+            index = self.treeParent.children.index(self)
+            if   pos == 'before': index = index
+            elif pos == 'after' : index = index +1
+            else:
+                print(pos, tr("  n'est pas un index valide pour appendBrother"))
+                return 0
+            return self.treeParent.appendChild(name,pos=index,plier=plier)
 
     def verifiePosition(self,name,pos,aLaRacine=False):
+    #----------------------------------------------------
         if name not in self.editor.readercata.Classement_Commandes_Ds_Arbre : return True
         indexName=self.editor.readercata.Classement_Commandes_Ds_Arbre.index(name)
 
@@ -538,20 +552,21 @@ class JDCNode(QTreeWidgetItem,GereRegles):
             if nom not in self.editor.readercata.Classement_Commandes_Ds_Arbre : continue
             indexEtape=self.editor.readercata.Classement_Commandes_Ds_Arbre.index(nom)
             if indexEtape > indexName :
-               comment=tr('le mot clef ')+name+tr(' doit etre insere avant ')+nom
-               QMessageBox.information( None,tr('insertion impossible'),comment, )
-               return False
+                comment=tr('le mot clef ')+name+tr(' doit etre insere avant ')+nom
+                QMessageBox.information( None,tr('insertion impossible'),comment, )
+                return False
         for e in etapes[indexOu:] :
             nom=e.nom
             if nom not in self.editor.readercata.Classement_Commandes_Ds_Arbre : continue
             indexEtape=self.editor.readercata.Classement_Commandes_Ds_Arbre.index(nom)
             if indexEtape < indexName :
-               comment=tr('le mot clef ')+name+tr(' doit etre insere apres ')+nom
-               QMessageBox.information( None,tr('insertion impossible'),comment, )
-               return False
+                comment=tr('le mot clef ')+name+tr(' doit etre insere apres ')+nom
+                QMessageBox.information( None,tr('insertion impossible'),comment, )
+                return False
         return True
 
     def appendChild(self,name,pos=None,plier=False):
+    #------------------------------------------------
         """
            Methode pour ajouter un objet fils a l'objet associe au noeud self.
            On peut l'ajouter en debut de liste (pos='first'), en fin (pos='last')
@@ -562,73 +577,69 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         #import traceback
         #traceback.print_stack()
 
-         
+
         self.editor.initModif()
-        if pos == 'first':
-            index = 0
-        elif pos == 'last':
-            index = len(self.children)
-        elif type(pos) == int :
-            # position fixee
-            index = pos
-        elif type(pos) == object:
-        #elif type(pos) == types.InstanceType:
-            # pos est un item. Il faut inserer name apres pos
-            index = self.item.getIndex(pos) +1
-        #elif type(name) == types.InstanceType:
-        elif type(name) == object:
-            index = self.item.getIndexChild(name.nom)
-        else:
-            index = self.item.getIndexChild(name)
+        if   pos == 'first'       : index = 0
+        elif pos == 'last'        : index = len(self.children)
+        elif type(pos)   == int   : index = pos  # position fixee
+        elif type(pos)  == object : index = self.item.getIndex(pos) +1 # pos est un item. Il faut inserer name apres pos
+        elif type(name) == object : index = self.item.getIndexChild(name.nom)
+        else                      : index = self.item.getIndexChild(name)
 
         # si on essaye d inserer a la racine
         if (isinstance(self.treeParent,JDCTree) and index==0) :
-           verifiePosition=self.verifiePosition(name,'first',aLaRacine=True)
-           if not verifiePosition : return 0
+            verifiePosition=self.verifiePosition(name,'first',aLaRacine=True)
+            if not verifiePosition : return 0
+
+        self.tree.inhibeExpand = True
+        obj = self.item.addItem(name,index) # emet le signal 'add'
+        if obj is None : obj=0
+        if obj == 0    :return 0
 
-        self.tree.inhibeExpand=True
-        obj=self.item.addItem(name,index) # emet le signal 'add'
-        if obj is None:obj=0
-        if obj == 0:return 0
         try :
         #if 1 :
-           child=self.children[index]
-           if plier == True : child.setPlie()
-           else             : child.setDeplie() 
+            child = self.children[index]
+            if plier == True : child.setPlie()
+            else             : child.setDeplie()
         except :
-           child=self.children[index]
-        try : 
-           if len(obj) > 1 : self.buildChildren()
+            child=self.children[index]
+
+        try :
+            if len(obj) > 1 : self.buildChildren()
         except : pass
+
         self.tree.inhibeExpand=False
         #print (" fin append child")
         return child
 
     def deplace(self):
+    #-----------------
         self.editor.initModif()
-        index = self.treeParent.children.index(self) - 1 
+        index = self.treeParent.children.index(self) - 1
         if index < 0 : index =0
         ret=self.treeParent.item.deplaceEntite(self.item.getObject())
 
     def delete(self):
-        """ 
+    #----------------
+        """
             Methode externe pour la destruction de l'objet associe au noeud
         """
         self.editor.initModif()
-        index = self.vraiParent.children.index(self) - 1 
+        index = self.vraiParent.children.index(self) - 1
         if index < 0 : index =0
+
         recalcule=0
         if self.item.nom == "VARIABLE" :
-           recalcule=1
-           jdc=self.item.jdc
+            recalcule=1
+            jdc=self.item.jdc
+
         ret,commentaire=self.vraiParent.item.suppItem(self.item)
-        if ret==0 :
-          self.editor.afficheInfos(commentaire,Qt.red)
-        else :
-          self.editor.afficheInfos(commentaire)
+        if ret==0 : self.editor.afficheInfos(commentaire,Qt.red)
+        else      : self.editor.afficheInfos(commentaire)
         self.treeParent.buildChildren()
         if self.treeParent.childrenComplete : toselect=self.treeParent.childrenComplete[index]
-        else: toselect=self.treeParent
+        else                                : toselect=self.treeParent
+
         if recalcule : jdc.recalculeEtatCorrelation()
         if ret==0 :
             if self.treeParent.childrenComplete :
@@ -636,27 +647,29 @@ class JDCNode(QTreeWidgetItem,GereRegles):
                 notdeleted.select()
         else :
             toselect.select()
+
         from InterfaceQT4 import compojdc
         # cas ou on detruit dans l arbre sans affichage
-        if isinstance(self.treeParent,compojdc.Node) : 
-           toselect.affichePanneau()
+        if isinstance(self.treeParent,compojdc.Node) :
+            toselect.affichePanneau()
         else :
-           if self.treeParent.fenetre== None : return
-           #print "J appelle reaffiche de browser apres delete"
-           self.treeParent.fenetre.reaffiche(toselect)
+            if self.treeParent.fenetre== None : return
+            #print "J appelle reaffiche de browser apres delete"
+            self.treeParent.fenetre.reaffiche(toselect)
 
     def deleteMultiple(self,liste=()):
-        """ 
+    #--------------------------------
+        """
             Methode externe pour la destruction d une liste de noeud
         """
-        from InterfaceQT4 import compojdc 
+        from InterfaceQT4 import compojdc
         self.editor.initModif()
         index=9999
         recalcule=0
         jdc=self.treeParent
         parentPosition=jdc
         while not(isinstance(jdc,compojdc.Node)):
-              jdc=jdc.treeParent
+            jdc=jdc.treeParent
         for noeud in liste :
             if not( isinstance(noeud.treeParent, compojdc.Node)): continue
             if noeud.item.nom == "VARIABLE" : recalcule=1
@@ -664,11 +677,11 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         if index < 0 : index =0
 
         # Cas ou on detruit dans une ETape
-        if index == 9999 : 
-              parentPosition=self.treeParent
-              while not(isinstance(parentPosition, compojdc.Node)):
-                 index=parentPosition.treeParent.children.index(parentPosition)
-                 parentPosition=parentPosition.treeParent
+        if index == 9999 :
+            parentPosition=self.treeParent
+            while not(isinstance(parentPosition, compojdc.Node)):
+                index=parentPosition.treeParent.children.index(parentPosition)
+                parentPosition=parentPosition.treeParent
 
         for noeud in liste:
             noeud.treeParent.item.suppItem(noeud.item)
@@ -679,146 +692,162 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         except : toselect=jdc
         toselect.select()
         toselect.affichePanneau()
-#        
-#    #------------------------------------------------------------------
-    def onValid(self):        
+#
+#    ------------------------------------------------------------------
 
+    def onValid(self):
+    #-----------------
         #print ("onValid pour ", self.item.nom)
         if self.JESUISOFF==1 : return
-        if hasattr(self,'fenetre') and self.fenetre: 
-           try :
-             self.fenetre.setValide()
-           except :
-            # print "onValid pour ", self.item.nom, self,'pb'
-            pass
 
+        if hasattr(self,'fenetre') and self.fenetre:
+            try : self.fenetre.setValide()
+            except : pass
+
+        # PNPN  lignes suivantes a repenser
         if (self.item.nom == "VARIABLE" or self.item.nom == "DISTRIBUTION") and self.item.isValid():
-           self.item.jdc.recalculeEtatCorrelation()
-        if hasattr(self.item,'forceRecalcul'):
-           self.forceRecalculChildren(self.item.forceRecalcul)
+            self.item.jdc.recalculeEtatCorrelation()
+        if hasattr(self.item,'forceRecalcul') : self.forceRecalculChildren(self.item.forceRecalcul)
         self.editor.initModif()
-        
+
         self.updateNodeValid()
         self.updateNodeLabel()
         self.updateNodeTexte()
 
+
     def onAdd(self,object):
-        if self.JESUISOFF==1 : return
+    #----------------------
         #print ("onAdd pour ", self.item.nom, object)
+        if self.JESUISOFF == 1 : return
         self.editor.initModif()
         self.updateNodes()
-        # PN -- non necessaire si item=jdc
         if hasattr(self.item,'jdc'): self.item.jdc.aReafficher=True
+
     def onSupp(self,object):
+    #-----------------------
+        #print ("onSup pour ", self.item.nom, object)
+        #import traceback
+        #traceback.print_stack()
         if self.JESUISOFF==1 : return
-        #print "onSup pour ", self.item.nom, object
         self.editor.initModif()
         self.updateNodes()
-        # PN -- non necessaire si item=jdc
         if hasattr(self.item,'jdc'): self.item.jdc.aReafficher=True
-         
 
+    def onRedessine(self):
+    #---------------------
+        #print ('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!je passe dans onRedessine pour', self.item.nom)
+        self.affichePanneau()
 
     def updateNodeValid(self):
+    #-----------------------
         """Cette methode remet a jour la validite du noeud (icone)
            Elle appelle isValid
         """
-        repIcon=self.appliEficas.repIcon
-        couleur=self.item.getIconName()
+        repIcon  = self.appliEficas.repIcon
+        couleur  = self.item.getIconName()
         monIcone = QIcon(repIcon+"/" + couleur + ".png")
         self.setIcon(0,monIcone)
 
 
 
     def updateNodeLabel(self):
+    #-------------------------
         """ Met a jour le label du noeud """
-        #print "NODE updateNodeLabel", self.item.getLabelText()
+        #print ("NODE updateNodeLabel", self.item.getLabelText())
         labeltext,fonte,couleur = self.item.getLabelText()
         # PNPN a reflechir
         if self.item.nom != tr(self.item.nom) : labeltext = str(tr(self.item.nom)+" :")
         self.setText(0, tr(labeltext))
-    
+
     def updateNodeLabelInBlack(self):
-        if hasattr(self.appliEficas,'noeudColore'): 
+    #-------------------------------
+        if hasattr(self.appliEficas,'noeudColore'):
             self.appliEficas.noeudColore.setForeground(0,Qt.black)
             self.appliEficas.noeudColore.updateNodeLabel
-    
+
     def updateNodeLabelInBlue(self):
+    #-------------------------------
         if hasattr(self.appliEficas,'noeudColore'): self.appliEficas.noeudColore.setForeground(0,Qt.black)
         self.setForeground(0,Qt.blue)
         labeltext,fonte,couleur = self.item.getLabelText()
         if self.item.nom != tr(self.item.nom) : labeltext = str(tr(self.item.nom)+" :")
-        self.setText(0, labeltext)        
+        self.setText(0, labeltext)
         self.appliEficas.noeudColore=self
 
     def updatePlusieursNodeLabelInBlue(self,liste):
+    #----------------------------------------------
         if hasattr(self.appliEficas,'listeNoeudsColores'):
-           for noeud in self.appliEficas.listeNoeudsColores:
-               noeud.setTextColor( 0,Qt.black)
-               noeud.updateNodeLabel()
+            for noeud in self.appliEficas.listeNoeudsColores:
+                noeud.setTextColor( 0,Qt.black)
+                noeud.updateNodeLabel()
         self.appliEficas.listeNoeudsColores=[]
         for noeud in liste :
             noeud.setTextColor( 0,Qt.blue )
             labeltext,fonte,couleur = noeud.item.getLabelText()
             if item.nom != tr(item.nom) : labeltext = str(tr(item.nom)+" :")
-            noeud.setText(0, labeltext)        
+            noeud.setText(0, labeltext)
             self.appliEficas.listeNoeudsColores.append(noeud)
 
     def updateNodeTexteInBlack(self):
+    #--------------------------------
         """ Met a jour les noms des SD et valeurs des mots-cles """
         self.setTextColor( 1,Qt.black )
         value = self.item.getText()
         self.setText(1, value)
 
     def updateNodeTexte(self):
+    #----------------------------
         """ Met a jour les noms des SD et valeurs des mots-cles """
         value = self.item.getText()
         self.setText(1, value)
-        
+
 
     def updateNodeTexteInBlue(self):
+    #--------------------------------
         self.setTextColor( 1,Qt.blue )
         value = self.item.getText()
         self.setText(1, value)
 
     def updateNodes(self):
+    #--------------------------------
         #print 'NODE updateNodes', self.item.getLabelText()
         self.buildChildren()
 
     def updateValid(self) :
+    #----------------------
         """Cette methode a pour but de mettre a jour la validite du noeud
            et de propager la demande de mise a jour a son parent
         """
         #print "NODE updateValid", self.item.getLabelText()
         self.updateNodeValid()
-        try :
-          self.treeParent.updateValid()
-        except:
-          pass
-            
+        try   : self.treeParent.updateValid()
+        except: pass
+
     def updateTexte(self):
+    #----------------------
         """ Met a jour les noms des SD et valeurs des mots-cles """
         #print "NODE updateTexte", self.item.getLabelText()
-        self.updateNodeVexte()
+        self.updateNodeTexte()
         if self.isExpanded() :
             for child in self.children:
                 if child.isHidden() == false : child.updateTexte()
 
 
     def forceRecalculChildren(self,niveau):
-        if self.state=='recalcule' : 
-           self.state=""
-           return
+    #--------------------------------------
+        if self.state == 'recalcule' :
+            self.state = ""
+            return
         self.state='recalcule'
         if hasattr(self.item,'object'):
-           self.item.object.state="modified"
+            self.item.object.state="modified"
         for child in self.children:
-           if niveau > 0 : child.forceRecalculChildren(niveau - 1)
-              
-        
+            if niveau > 0 : child.forceRecalculChildren(niveau - 1)
+
+
 
     def doPaste(self,node_selected,pos='after'):
+    #--------------------------------------------
         """
             Declenche la copie de l'objet item avec pour cible
             l'objet passe en argument : node_selected
@@ -830,6 +859,7 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         return child
 
     def doPasteCommande(self,objet_a_copier,pos='after'):
+    #-----------------------------------------------------
         """
           Realise la copie de l'objet passe en argument qui est necessairement
           un onjet
@@ -837,12 +867,13 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         child=None
         try :
         #if 1 :
-          child = self.appendBrother(objet_a_copier,pos)
+            child = self.appendBrother(objet_a_copier,pos)
         except :
-           pass
+            pass
         return child
 
     def doPastePremier(self,objet_a_copier):
+    #---------------------------------------
         """
            Realise la copie de l'objet passe en argument (objet_a_copier)
         """
@@ -851,31 +882,33 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         return child
 
     def plieToutEtReafficheSaufItem(self, itemADeplier):
+    #---------------------------------------------------
         self.inhibeExpand=True
         from InterfaceQT4 import compojdc
         if (isinstance(self, compojdc.Node)) :
             self.affichePanneau()
             self.inhibeExpand=False
-            return 
+            return
         self.editor.deplier = False
         for item in self.children :
-            # il ne faut pas plier les blocs 
+            # il ne faut pas plier les blocs
             from InterfaceQT4 import compobloc
             if (isinstance(item,compobloc.Node)) : continue
             item.setPlie()
-            if item==itemADeplier : 
-                  itemADeplier.setDeplie()
+            if item==itemADeplier :
+                itemADeplier.setDeplie()
         self.affichePanneau()
         self.inhibeExpand=False
 
     def plieToutEtReaffiche(self):
+    #-----------------------------
         #print ('plieToutEtReaffiche', self.item.getNom())
         from InterfaceQT4 import compojdc
-        if (isinstance(self, compojdc.Node)) : self.affichePanneau(); return 
+        if (isinstance(self, compojdc.Node)) : self.affichePanneau(); return
         self.inhibeExpand=True
         self.editor.deplier = False
         for item in self.children :
-            # il ne faut pas plier les blocs 
+            # il ne faut pas plier les blocs
             from InterfaceQT4 import compobloc
             if (isinstance(item,compobloc.Node)) : continue
             item.setPlie()
@@ -883,17 +916,19 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         #print ("fin plieToutEtReaffiche", self.item.getNom())
 
     def deplieToutEtReaffiche(self):
+    #-----------------------------
         self.editor.deplier = True
         for item in self.children :
             item.setDeplie()
         self.affichePanneau()
 
     def setPlie(self):
+    #-----------------
         #print "je mets inhibeExpand a true dans setPlie"
         #print ("je suis dans plieTout", self.item.getNom())
         from . import compojdc
-        if self.fenetre == self.editor.fenetreCentraleAffichee  and isinstance(self.treeParent,compojdc.Node): 
-           return
+        if self.fenetre == self.editor.fenetreCentraleAffichee  and isinstance(self.treeParent,compojdc.Node):
+            return
         self.tree.inhibeExpand=True
         self.tree.collapseItem(self)
         self.setPlieChildren()
@@ -907,6 +942,7 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         #       item.appartientAUnNoeudPlie=False
 
     def setPlieChildren(self):
+    #-----------------------------
         self.plie=True
         from InterfaceQT4 import composimp
         if isinstance(self,composimp.Node) : return
@@ -923,10 +959,10 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         # on affiche un niveau de plus
         from InterfaceQT4 import compobloc
         from InterfaceQT4 import compomclist
-        if (isinstance(self,compobloc.Node) or ( isinstance(self,compomclist.Node) and self.item.isMCList())) : 
+        if (isinstance(self,compobloc.Node) or ( isinstance(self,compomclist.Node) and self.item.isMCList())) :
             niveauPere=self.treeParent
-            while (isinstance(niveauPere,compobloc.Node) or (isinstance(niveauPere,compomclist.Node) and niveauPere.item.isMCList())) : 
-               niveauPere=niveauPere.treeParent
+            while (isinstance(niveauPere,compobloc.Node) or (isinstance(niveauPere,compomclist.Node) and niveauPere.item.isMCList())) :
+                niveauPere=niveauPere.treeParent
             for c in self.children :
                 c.appartientAUnNoeudPlie=niveauPere.appartientAUnNoeudPlie
                 #print ("dans setPlieChildren appartientAUnNoeudPlie=True ", c, c.item.getLabelText()[0], "mis a la valeur ", niveauPere.appartientAUnNoeudPlie)
@@ -934,6 +970,9 @@ class JDCNode(QTreeWidgetItem,GereRegles):
 
 
     def setDeplie(self):
+    #-----------------------------
+        #print "dans setPlieChildren pour", self.item.nom
+        #print "je mets inhibeExpand a true dans setDeplie"
         self.tree.inhibeExpand=True
         self.plie=False
         self.tree.expandItem(self)
@@ -942,6 +981,7 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         #print "je mets inhibeExpand a false dans setDePlie"
 
     def setDeplieChildren(self):
+    #-----------------------------
         #print "dans setDeplieChildren appartientAUnNoeudPlie=False ", self.item.getLabelText()
         for c in self.children :
             c.setDeplieChildren()
@@ -949,43 +989,31 @@ class JDCNode(QTreeWidgetItem,GereRegles):
             c.appartientAUnNoeudPlie=False
             c.setExpanded(True)
             c.plie=False
-       
+
     def selectAvant(self):
+    #-----------------------------
         i=self.item.jdc.etapes.index(self.item.object)
-        try :
-           cherche=self.item.jdc.etapes[i-1]
-        except :
-           cherche=self.item.jdc.etapes[-1]
+        try    : cherche=self.item.jdc.etapes[i-1]
+        except : cherche=self.item.jdc.etapes[-1]
         node=None
         for i in self.tree.racine.children :
-            if i.item.object== cherche  : 
-               node=i
-               break
-        if node : 
-          node.affichePanneau()
-          node.select()
+            if i.item.object== cherche  :
+                node=i
+                break
+        if node :
+            node.affichePanneau()
+            node.select()
 
     def selectApres(self):
+    #---------------------
         i=self.item.jdc.etapes.index(self.item.object)
-        try :
-           cherche=self.item.jdc.etapes[i+1]
-        except :
-           cherche=self.item.jdc.etapes[0]
+        try    : cherche=self.item.jdc.etapes[i+1]
+        except : cherche=self.item.jdc.etapes[0]
         node=None
         for i in self.tree.racine.children :
-            if i.item.object== cherche  : 
-               node=i
-               break
-        if node : 
-           node.affichePanneau()
-           node.select()
-
-    def ouvreLesNoeudsDsLArbre(self):
-        return
-        self.inhibeExpand = True 
-        for i in range(self.childCount()):
-            self.child(i).inhibeExpand=True
-            self.child(i).setExpanded(True)
-            self.child(i).ouvreLesNoeudsDsLArbre()
-            self.child(i).inhibeExpand=False
-        self.inhibeExpand = False 
+            if i.item.object== cherche  :
+                node=i
+                break
+        if node :
+            node.affichePanneau()
+            node.select()
index 2e3c0e921b119032d0ac6e8755cc8ab98a46a8a4..d0235243110ac4e20495521f08d304df70e09545 100644 (file)
@@ -28,7 +28,7 @@ from . import typeNode
 
 
 class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal):
-        
+
 
     def createPopUpMenu(self):
         typeNode.PopUpMenuNodeMinimal.createPopUpMenu(self)
@@ -46,17 +46,12 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal):
 
 
 class BLOCTreeItem(compofact.FACTTreeItem):
-  itemNode=Node
+    itemNode=Node
 
-  #def get_objet(self,name) :
-  #    for v in self.object.mcListe:
-  #        if v.nom == name : return v
-  #    return None
-    
-  def isCopiable(self):
-    return 0
+    def isCopiable(self):
+        return 0
 
 
 import Accas
 treeitem = BLOCTreeItem
-objet = Accas.MCBLOC   
+objet = Accas.MCBLOC
index d977483103868ddb471545a522eef237c899e745..f5a0c6552cc37acd71cbb1f9681f1f774c5cf657 100644 (file)
@@ -20,7 +20,6 @@
 
 from __future__ import absolute_import
 
-from PyQt5.QtWidgets import QAction
 
 from Editeur     import Objecttreeitem
 from . import browser
@@ -38,12 +37,13 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodePartiel):
 
     def createPopUpMenu(self):
         typeNode.PopUpMenuNodePartiel.createPopUpMenu(self)
+        from PyQt5.QtWidgets import QAction
         self.Decommente = QAction(tr("decommenter"),self.tree)
         self.Decommente.triggered.connect(self.decommenter)
         self.Decommente.setStatusTip(tr("Decommente la commande "))
 
         if hasattr(self.item,'unComment'):
-           self.menu.addAction(self.Decommente)
+            self.menu.addAction(self.Decommente)
 
     def decommenter(self) :
         item= self.tree.currentItem()
@@ -56,20 +56,19 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodePartiel):
         self.setText(1,tr(debComm))
 
 
-    
 class COMMTreeItem(Objecttreeitem.ObjectTreeItem):
-    itemNode=Node    
+    itemNode=Node
 
     def init(self):
-      self.setFunction = self.setValeur
+        self.setFunction = self.setValeur
 
     def getIconName(self):
-      """
-      Retourne le nom de l'icone associee au noeud qui porte self,
-      dependant de la validite de l'objet
-      NB : un commentaire est toujours valide ...
-      """
-      return "ast-white-percent"
+        """
+        Retourne le nom de l'icone associee au noeud qui porte self,
+        dependant de la validite de l'objet
+        NB : un commentaire est toujours valide ...
+        """
+        return "ast-white-percent"
 
     def getLabelText(self):
         """ Retourne 3 valeurs :
@@ -80,11 +79,11 @@ class COMMTreeItem(Objecttreeitem.ObjectTreeItem):
         return tr('Commentaire'),None,None
 
     def getValeur(self):
-      """
-      Retourne la valeur de l'objet Commentaire cad son texte
-      """
-      return self.object.getValeur() or ''
-    
+        """
+        Retourne la valeur de l'objet Commentaire cad son texte
+        """
+        return self.object.getValeur() or ''
+
     def getText(self):
         texte = self.object.valeur
         texte = texte.split('\n')[0]
@@ -94,26 +93,26 @@ class COMMTreeItem(Objecttreeitem.ObjectTreeItem):
             return texte[0:24]
 
     def setValeur(self,valeur):
-      """
-      Affecte valeur a l'objet COMMENTAIRE
-      """
-      self.object.setValeur(valeur)
-      
+        """
+        Affecte valeur a l'objet COMMENTAIRE
+        """
+        self.object.setValeur(valeur)
+
     def getSubList(self):
-      """
-      Retourne la liste des fils de self
-      """
-      return []
+        """
+        Retourne la liste des fils de self
+        """
+        return []
 
 
     def getObjetCommentarise(self):
-       """
-           La methode getObjetCommentarise() de la classe compocomm.COMMTreeItem
-           surcharge la methode getObjetCommentarise de la classe Objecttreeitem.ObjectTreeItem
-           elle a pour but d'empecher l'utilisateur final de commentariser un commentaire.
-       """
-       raise EficasException( 'Impossible de commentariser un commentaire' )
-  
+        """
+            La methode getObjetCommentarise() de la classe compocomm.COMMTreeItem
+            surcharge la methode getObjetCommentarise de la classe Objecttreeitem.ObjectTreeItem
+            elle a pour but d'empecher l'utilisateur final de commentariser un commentaire.
+        """
+        raise EficasException( 'Impossible de commentariser un commentaire' )
+
 import Extensions
 treeitem =COMMTreeItem
-objet = Extensions.commentaire.COMMENTAIRE    
+objet = Extensions.commentaire.COMMENTAIRE
index 068f6a818d9a631476de2b0feef3c311e476aaa1..a6ac1686e83e0312d5330ab02fd79476c18aec17 100644 (file)
@@ -28,18 +28,18 @@ class COMMANDE_COMMTreeItem(Objecttreeitem.ObjectTreeItem):
     itemNode=compocomm.Node
 
     def init(self):
-      self.setFunction = self.setValeur
+        self.setFunction = self.setValeur
 
     def getIconName(self):
-      """
-      Retourne le nom de l'icone associee au noeud qui porte self,
-      dependant de la validite de l'objet
-      NB : une commande commentarisee est toujours valide ...
-      """
-      if self.isValid():
-          return "ast-green-percent"
-      else:
-          return "ast-red-percent"
+        """
+        Retourne le nom de l'icone associee au noeud qui porte self,
+        dependant de la validite de l'objet
+        NB : une commande commentarisee est toujours valide ...
+        """
+        if self.isValid():
+            return "ast-green-percent"
+        else:
+            return "ast-red-percent"
 
     def getLabelText(self):
         """ Retourne 3 valeurs :
@@ -50,11 +50,11 @@ class COMMANDE_COMMTreeItem(Objecttreeitem.ObjectTreeItem):
         return 'commentaire'
 
     def getValeur(self):
-      """
-      Retourne la valeur de la commande commentarisee cad son texte
-      """
-      return self.object.getValeur() or ''
-    
+        """
+        Retourne la valeur de la commande commentarisee cad son texte
+        """
+        return self.object.getValeur() or ''
+
     def getText(self):
         texte = self.object.valeur
         texte = texte.split('\n')[0]
@@ -64,31 +64,31 @@ class COMMANDE_COMMTreeItem(Objecttreeitem.ObjectTreeItem):
             return texte[0:24]
 
     def setValeur(self,valeur):
-      """
-      Afefcte valeur a l'objet commande commentarisee
-      """
-      self.object.setValeur(valeur)
-      
+        """
+        Afefcte valeur a l'objet commande commentarisee
+        """
+        self.object.setValeur(valeur)
+
     def getSubList(self):
-      """
-      Retourne la liste des fils de self
-      """
-      return []
+        """
+        Retourne la liste des fils de self
+        """
+        return []
 
     def unComment(self):
-      """
-      Demande a l'objet commande commentarisee de se decommentariser.
-      Si l'operation s'effectue correctement, retourne l'objet commande
-      et eventuellement le nom de la sd produite, sinon leve une exception
-      """
-      try:
-        commande,nom = self.object.unComment()
-        #self.parent.children[pos].select()
-      except Exception as e:
-        traceback.print_exc()
-        raise EficasException(e)
-      return commande,nom
-  
+        """
+        Demande a l'objet commande commentarisee de se decommentariser.
+        Si l'operation s'effectue correctement, retourne l'objet commande
+        et eventuellement le nom de la sd produite, sinon leve une exception
+        """
+        try:
+            commande,nom = self.object.unComment()
+            #self.parent.children[pos].select()
+        except Exception as e:
+            traceback.print_exc()
+            raise EficasException(e)
+        return commande,nom
+
 import Accas
 treeitem =COMMANDE_COMMTreeItem
-objet = Accas.COMMANDE_COMM    
+objet = Accas.COMMANDE_COMM
index db1c66b5845c1705f3cc1e1e5ede33d21ea92118..0f5c93ed28913ac7cb0679439fde8bcc35154f99 100644 (file)
@@ -25,123 +25,128 @@ from Extensions.i18n import tr
 
 
 from Editeur import Objecttreeitem
-import six
 import traceback
 
 
 class Node(browser.JDCNode,typeNode.PopUpMenuNodePartiel):
 
-    def getPanelGroupe(self,parentQt,commande,insertIn=-1):
+    def getPanelGroupe(self,parentQt,commande):
+    # ----------------------------------------
         maDefinition=self.item.get_definition()
         monObjet=self.item.object
         monNom=self.item.nom
         maCommande=commande
         if hasattr(parentQt,'niveau'): self.niveau=parentQt.niveau+1
         else : self.niveau=1
-        #if  hasattr(self,'plie') :print self.item.nom, self.plie
-        #if maDefinition.fenetreIhm == 'Tableau':
-        #   from InterfaceQt4.monWidgetFact import MonWidgetFactTableau
-        #   widget=MonWidgetFactTableau(self,self.editor,parentQt,maDefinition,monObjet,self.niveau,maCommande)
-        #elif  hasattr(self,'plie') and self.plie==True : 
-        if  hasattr(self,'plie') and self.plie==True : 
-           from InterfaceQT4.monWidgetFactPlie import MonWidgetFactPlie
-           widget=MonWidgetFactPlie(self,self.editor,parentQt,maDefinition,monObjet,self.niveau,maCommande,insertIn)
+        if  hasattr(self,'plie') and self.plie==True :
+            from InterfaceQT4.monWidgetFactPlie import MonWidgetFactPlie
+            widget=MonWidgetFactPlie(self,self.editor,parentQt,maDefinition,monObjet,self.niveau,maCommande)
+        elif self.editor.maConfiguration.afficheFirstPlies and self.firstAffiche:
+            self.firstAffiche = False
+            self.setPlie()
+            from InterfaceQT4.monWidgetFactPlie import MonWidgetFactPlie
+            widget=MonWidgetFactPlie(self,self.editor,parentQt,maDefinition,monObjet,self.niveau,maCommande)
         else:
-           from InterfaceQT4.monWidgetFact import MonWidgetFact
-           widget=MonWidgetFact(self,self.editor,parentQt,maDefinition,monObjet,self.niveau,maCommande,insertIn)
+            from InterfaceQT4.monWidgetFact import MonWidgetFact
+            widget=MonWidgetFact(self,self.editor,parentQt,maDefinition,monObjet,self.niveau,maCommande)
         return widget
 
 
     def createPopUpMenu(self):
+    # ------------------------
         typeNode.PopUpMenuNodeMinimal.createPopUpMenu(self)
 
 
 class FACTTreeItem(Objecttreeitem.ObjectTreeItem):
-  itemNode=Node
-  
-  def isExpandable(self):
-    return 1
-
-  def getText(self):
-      return  ''
-
-  def getLabelText(self):
-      """ Retourne 3 valeurs :
-        - le texte à afficher dans le noeud representant l'item
-        - la fonte dans laquelle afficher ce texte
-        - la couleur du texte
-      """
-      # None --> fonte et couleur par defaut
-      if not(hasattr(self.object,'getLabelText')): return self.object.nom,None,None
-      return self.object.getLabelText(),None,None
-
-  def isValid(self):
-    return self.object.isValid()
-
-  def isCopiable(self):
-    return 1
-
-  def getIconName(self):
-    if self.object.isValid():
-      return "ast-green-los"
-    elif self.object.isOblig():
-      return "ast-red-los"
-    else:
-      return "ast-yel-los"
-
-  #PNPN ????
-  #def keys(self):
-  #  keys=self.object.mc_dict
-  #  return keys
-
-  def getSubList(self):
-      """
-         Reactualise la liste des items fils stockes dans self.sublist
-      """
-      liste=self.object.mcListe
-      sublist=[None]*len(liste)
-      # suppression des items lies aux objets disparus
-      for item in self.sublist:
-         old_obj=item.getObject()
-         if old_obj in liste:
-            pos=liste.index(old_obj)
-            sublist[pos]=item
-         else:
-            pass # objets supprimes ignores
-      # ajout des items lies aux nouveaux objets
-      pos=0
-      for obj in liste:
-         if sublist[pos] is None:
-            # nouvel objet : on cree un nouvel item
-            def setFunction(value, object=obj):
-                object.setval(value)
-            item = self.makeObjecttreeitem(self.appli, obj.nom + " : ", obj, setFunction)
-            sublist[pos]=item
-         pos=pos+1
-
-      self.sublist=sublist
-      return self.sublist
-
-  def addItem(self,name,pos):
-    objet = self.object.addEntite(name,pos)
-    return objet
-
-  def suppItem(self,item) :
-      """ 
-         Cette methode a pour fonction de supprimer l'item passee en argument
-         des fils de l'item FACT qui est son pere
-           - item = item du MOCLE a supprimer du MOCLE pere
-           - item.getObject() = MCSIMP ou MCBLOC 
-      """
-      itemobject=item.getObject()
-      if itemobject.isOblig() :
-         return (0, tr('Impossible de supprimer un mot-cle obligatoire '))
-
-      if self.object.suppEntite(itemobject):
-         message = tr("Mot-cle %s supprime")+ six.text_type(itemobject.nom)
-         return (1, message)
-      else:
-         return (0,tr('Pb interne : impossible de supprimer ce mot-cle'))
+    itemNode=Node
+
+    def isExpandable(self):
+    # ----------------------
+        return 1
+
+    def getText(self):
+    # ----------------
+        return  ''
+
+    def getLabelText(self):
+    # ----------------------
+        """ Retourne 3 valeurs :
+          - le texte à afficher dans le noeud representant l'item
+          - la fonte dans laquelle afficher ce texte
+          - la couleur du texte
+        """
+        # None --> fonte et couleur par defaut
+        if not(hasattr(self.object,'getLabelText')): return self.object.nom,None,None
+        return self.object.getLabelText(),None,None
+
+    def isValid(self):
+    # ----------------
+        return self.object.isValid()
+
+    def isCopiable(self):
+    # ----------------
+        return 1
+
+    def getIconName(self):
+    # ----------------
+        if self.object.isValid()  : return "ast-green-los"
+        elif self.object.isOblig(): return "ast-red-los"
+        else                      : return "ast-yel-los"
+
+    #PNPN ????
+    #def keys(self):
+    #  keys=self.object.mc_dict
+    #  return keys
+
+    def getSubList(self):
+    # ----------------
+        """
+           Reactualise la liste des items fils stockes dans self.sublist
+        """
+        liste=self.object.mcListe
+        sublist=[None]*len(liste)
+        # suppression des items lies aux objets disparus
+        for item in self.sublist:
+            old_obj=item.getObject()
+            if old_obj in liste:
+                pos=liste.index(old_obj)
+                sublist[pos]=item
+            else:
+                pass # objets supprimes ignores
+        # ajout des items lies aux nouveaux objets
+        pos=0
+        for obj in liste:
+            if sublist[pos] is None:
+                # nouvel objet : on cree un nouvel item
+                def setFunction(value, object=obj):
+                    object.setval(value)
+                item = self.makeObjecttreeitem(self.appliEficas, obj.nom + " : ", obj, setFunction)
+                sublist[pos]=item
+            pos=pos+1
+
+        self.sublist=sublist
+        return self.sublist
+
+    def addItem(self,name,pos):
+        objet = self.object.addEntite(name,pos)
+        return objet
+
+    def suppItem(self,item) :
+        """
+           Cette methode a pour fonction de supprimer l'item passee en argument
+           des fils de l'item FACT qui est son pere
+             - item = item du MOCLE a supprimer du MOCLE pere
+             - item.getObject() = MCSIMP ou MCBLOC
+        """
+        itemobject=item.getObject()
+        if itemobject.isOblig() :
+            return (0, tr('Impossible de supprimer un mot-cle obligatoire '))
+
+        if self.object.suppEntite(itemobject):
+            message = tr("Mot-cle %s supprime")+ itemobject.nom
+            return (1, message)
+        else:
+            return (0,tr('Pb interne : impossible de supprimer ce mot-cle'))
 
 import Accas
 objet = Accas.MCFACT
index c0b72040dcbdc6c4a3c95ea26814e9bbaada75c9..ebd4871419acca06852c02bd049ec203a885ea08 100644 (file)
@@ -31,14 +31,14 @@ from . import typeNode
 
 
 class FormuleNode(browser.JDCNode,typeNode.PopUpMenuNode):
-        
+
     def getPanel(self):
-      from .monWidgetFormule import MonWidgetFormule
-      return MonWidgetFormule(self,self.editor,self.item.object)
+        from .monWidgetFormule import MonWidgetFormule
+        return MonWidgetFormule(self,self.editor,self.item.object)
+
 
-   
     def createPopUpMenu(self):
-      typeNode.PopUpMenuNode.createPopUpMenu(self)
+        typeNode.PopUpMenuNode.createPopUpMenu(self)
 
 
 class FORMULETreeItem(compooper.EtapeTreeItem):
@@ -49,118 +49,118 @@ class FORMULETreeItem(compooper.EtapeTreeItem):
     itemNode=FormuleNode
 
     def init(self):
-      self.setFunction = self.setValeur
+        self.setFunction = self.setValeur
 
 # ---------------------------------------------------------------------------
-#                   API de FORMULE pour l'arbre 
+#                   API de FORMULE pour l'arbre
 # ---------------------------------------------------------------------------
     def getSubList(self):
-      """
-      Retourne la liste des fils de self
-      On considere que FORMULE n'a pas de fils
-      --> modification par rapport a MACRO classique
-      """
-      # dans EFICAS on ne souhaite pas afficher les mots-cles fils de FORMULE
-      # de facon traditionnelle
-      return []
+        """
+        Retourne la liste des fils de self
+        On considere que FORMULE n'a pas de fils
+        --> modification par rapport a MACRO classique
+        """
+        # dans EFICAS on ne souhaite pas afficher les mots-cles fils de FORMULE
+        # de facon traditionnelle
+        return []
 
     def getIconName(self):
-      """
-      Retourne le nom de l'icone a afficher dans l'arbre
-      Ce nom depend de la validite de l'objet
-      """
-      if self.object.isActif():
-        if self.object.isValid():
-          return "ast-green-square"
+        """
+        Retourne le nom de l'icone a afficher dans l'arbre
+        Ce nom depend de la validite de l'objet
+        """
+        if self.object.isActif():
+            if self.object.isValid():
+                return "ast-green-square"
+            else:
+                return "ast-red-square"
         else:
-          return "ast-red-square"
-      else:
-        return "ast-white-text"
+            return "ast-white-text"
 
     def getLabelText(self):
-      """ Retourne 3 valeurs :
-      - le texte a afficher dans le noeud representant l'item
-      - la fonte dans laquelle afficher ce texte
-      - la couleur du texte
-      """
-      return self.labeltext,None,None
-      #if self.object.isActif():
-        # None --> fonte et couleur par defaut
-      #  return tr(self.labeltext),None,None
-      #else:
-      #   return tr(self.labeltext),None,None
-      #return self.labeltext,fontes.standard_italique,None
-    
+        """ Retourne 3 valeurs :
+        - le texte a afficher dans le noeud representant l'item
+        - la fonte dans laquelle afficher ce texte
+        - la couleur du texte
+        """
+        return self.labeltext,None,None
+        #if self.object.isActif():
+            # None --> fonte et couleur par defaut
+        #  return tr(self.labeltext),None,None
+        #else:
+        #   return tr(self.labeltext),None,None
+        #return self.labeltext,fontes.standard_italique,None
+
 # ---------------------------------------------------------------------------
 #       Methodes permettant la modification et la lecture des attributs
 #       du parametre = API graphique de la FORMULE pour Panel et EFICAS
 # ---------------------------------------------------------------------------
 
     def getNom(self):
-      """
-      Retourne le nom de la FORMULE
-      """
-      return self.object.getNom()
+        """
+        Retourne le nom de la FORMULE
+        """
+        return self.object.getNom()
 
     def getType(self):
-      """
-      Retourne le type de la valeur retournee par la FORMULE
-      """
-      return self.object.type_retourne
+        """
+        Retourne le type de la valeur retournee par la FORMULE
+        """
+        return self.object.type_retourne
 
     def getArgs(self):
-      """
-      Retourne les arguments de la FORMULE
-      """
-      args=""
-      for mot in self.object.mcListe:
-          if mot.nom == 'NOM_PARA':
-             args=mot.valeur
-             break
-      if args :
-          if args[0] == "(" and args[-1] ==")":
-             args=args[1:-1]
-          # transforme en tuple si ce n est pas deja le casa
-          try :
-             args=args.split(',')
-          except :
-             pass
-      return args
+        """
+        Retourne les arguments de la FORMULE
+        """
+        args=""
+        for mot in self.object.mcListe:
+            if mot.nom == 'NOM_PARA':
+                args=mot.valeur
+                break
+        if args :
+            if args[0] == "(" and args[-1] ==")":
+                args=args[1:-1]
+            # transforme en tuple si ce n est pas deja le casa
+            try :
+                args=args.split(',')
+            except :
+                pass
+        return args
 
     def getCorps(self):
-      """
-      Retourne le corps de la FORMULE
-      """
-      corps=""
-      for mot in self.object.mcListe:
-          if mot.nom == 'VALE':
-             corps=mot.valeur
-             break
-      return corps
+        """
+        Retourne le corps de la FORMULE
+        """
+        corps=""
+        for mot in self.object.mcListe:
+            if mot.nom == 'VALE':
+                corps=mot.valeur
+                break
+        return corps
 
 
     def getListeTypesAutorises(self):
-      """
-         Retourne la liste des types autorises pour les valeurs de sortie 
-         d'une FORMULE
-      """
-      return self.object.l_types_autorises
+        """
+           Retourne la liste des types autorises pour les valeurs de sortie
+           d'une FORMULE
+        """
+        return self.object.l_types_autorises
 
     def saveFormule(self,new_nom,new_typ,new_arg,new_exp):
-      """
-      Verifie si (new_nom,new_typ,new_arg,new_exp) definit bien une FORMULE 
-      licite :
-          - si oui, stocke ces parametres comme nouveaux parametres de la 
-            FORMULE courante et retourne 1
-          - si non, laisse les parametres anciens de la FORMULE inchanges et 
-            retourne 0
-      """
-      test,erreur = self.object.verifFormule_python(formule=(new_nom,new_typ,new_arg,
-                                                       new_exp))
-      if test :
-          # la formule est bien correcte : on sauve les nouveaux parametres
-          test=self.object.updateFormulePython(formule=(new_nom,new_typ,new_exp,new_arg))
-      return test,erreur
+        """
+        Verifie si (new_nom,new_typ,new_arg,new_exp) definit bien une FORMULE
+        licite :
+            - si oui, stocke ces parametres comme nouveaux parametres de la
+              FORMULE courante et retourne 1
+            - si non, laisse les parametres anciens de la FORMULE inchanges et
+              retourne 0
+        """
+        test,erreur = self.object.verifFormule_python(formule=(new_nom,new_typ,new_arg,
+                                                         new_exp))
+        if test :
+            # la formule est bien correcte : on sauve les nouveaux parametres
+            test=self.object.updateFormulePython(formule=(new_nom,new_typ,new_exp,new_arg))
+        return test,erreur
 
 # ---------------------------------------------------------------------------
 #          Acces aux methodes de verification de l'objet FORM_ETAPE
index 373a5a5801eb74502aa776897602895a7250be29..3c9e5a390451963e6ebffd8904acc5053f24793a 100644 (file)
@@ -30,7 +30,7 @@ class Node(browser.JDCNode,typeNode.PopUpMenuRacine):
     def getPanel(self):
         from .monChoixCommande import MonChoixCommande
         return MonChoixCommande(self,self.item, self.editor)
-        
+
 
     def createPopUpMenu(self):
         typeNode.PopUpMenuRacine.createPopUpMenu(self)
@@ -38,98 +38,98 @@ class Node(browser.JDCNode,typeNode.PopUpMenuRacine):
     def addParameters(self,apres):
         param=self.appendChild("PARAMETRE",pos=0)
         return param
-       
+
 
 
 class JDCTreeItem(Objecttreeitem.ObjectTreeItem):
-  itemNode=Node
-  
-  def isExpandable(self):
-    return 1
-
-  def getText(self):
-      return  "    "
-
-  def getLabelText(self):
-      # None --> fonte et couleur par defaut
-      return tr(self.object.nom),None,None
-
-  def getJdc(self):
-    """
-    Retourne l'objet pointe par self
-    """
-    return self.object
-  
-  def getIconName(self):
-    if self.object.isValid():
-      return "ast-green-square"
-    else:
-      return "ast-red-square"
-
-  #def keys(self):
-  #    if self.object.etapes_niveaux != []:
-  #        return range(len(self.object.etapes_niveaux))
-  #    else:
-  #        return range(len(self.object.etapes))
-
-  def addItem(self,name,pos):
-      cmd = self._object.addEntite(name,pos)
-      return cmd
-
-  def suppItem(self,item) :
-    # item             = item de l'ETAPE a supprimer du JDC
-    # item.getObject() = ETAPE ou COMMENTAIRE
-    # self.object      = JDC
-
-    itemobject=item.getObject()
-    if self.object.suppEntite(itemobject):
-       if itemobject.nature == "COMMENTAIRE" :
-          message = tr("Commentaire supprime")
-       else :
-          message = tr("Commande %s supprimee",itemobject.nom)
-       return 1,message
-    else:
-       message=tr("Pb interne : impossible de supprimer cet objet")
-       return 0,message
-
-  def getSubList(self):
-    """
-       Retourne la liste des items fils de l'item jdc.
-       Cette liste est conservee et mise a jour a chaque appel
-    """
-    if self.object.etapes_niveaux != []:
-        liste = self.object.etapes_niveaux
-    else:
-        liste = self.object.etapes
-    sublist=[None]*len(liste)
-    # suppression des items lies aux objets disparus
-    for item in self.sublist:
-       old_obj=item.getObject()
-       if old_obj in liste:
-          pos=liste.index(old_obj)
-          sublist[pos]=item
-       else:
-          pass # objets supprimes ignores
-    # ajout des items lies aux nouveaux objets
-    pos=0
-    for obj in liste:
-       if sublist[pos] is None:
-          # nouvel objet : on cree un nouvel item
-          item = self.makeObjecttreeitem(self.appli, obj.nom + " : ", obj)
-          sublist[pos]=item
-       pos=pos+1
-
-    self.sublist=sublist
-    return self.sublist
-
-  def getLNomsEtapes(self):
-      """ Retourne la liste des noms des etapes de self.object"""
-      return self.object.getLNomsEtapes()
-
-  def getListeCmd(self):
-      listeCmd = self.object.niveau.definition.getListeCmd()
-      return listeCmd
+    itemNode=Node
+
+    def isExpandable(self):
+        return 1
+
+    def getText(self):
+        return  "    "
+
+    def getLabelText(self):
+        # None --> fonte et couleur par defaut
+        return tr(self.object.nom),None,None
+
+    def getJdc(self):
+        """
+        Retourne l'objet pointe par self
+        """
+        return self.object
+
+    def getIconName(self):
+        if self.object.isValid():
+            return "ast-green-square"
+        else:
+            return "ast-red-square"
+
+    #def keys(self):
+    #    if self.object.etapes_niveaux != []:
+    #        return range(len(self.object.etapes_niveaux))
+    #    else:
+    #        return range(len(self.object.etapes))
+
+    def addItem(self,name,pos):
+        cmd = self._object.addEntite(name,pos)
+        return cmd
+
+    def suppItem(self,item) :
+        # item             = item de l'ETAPE a supprimer du JDC
+        # item.getObject() = ETAPE ou COMMENTAIRE
+        # self.object      = JDC
+
+        itemobject=item.getObject()
+        if self.object.suppEntite(itemobject):
+            if itemobject.nature == "COMMENTAIRE" :
+                message = tr("Commentaire supprime")
+            else :
+                message = tr("Commande %s supprimee",itemobject.nom)
+            return 1,message
+        else:
+            message=tr("Pb interne : impossible de supprimer cet objet")
+            return 0,message
+
+    def getSubList(self):
+        """
+           Retourne la liste des items fils de l'item jdc.
+           Cette liste est conservee et mise a jour a chaque appel
+        """
+        if self.object.etapes_niveaux != []:
+            liste = self.object.etapes_niveaux
+        else:
+            liste = self.object.etapes
+        sublist=[None]*len(liste)
+        # suppression des items lies aux objets disparus
+        for item in self.sublist:
+            old_obj=item.getObject()
+            if old_obj in liste:
+                pos=liste.index(old_obj)
+                sublist[pos]=item
+            else:
+                pass # objets supprimes ignores
+        # ajout des items lies aux nouveaux objets
+        pos=0
+        for obj in liste:
+            if sublist[pos] is None:
+                # nouvel objet : on cree un nouvel item
+                item = self.makeObjecttreeitem(self.appliEficas, obj.nom + " : ", obj)
+                sublist[pos]=item
+            pos=pos+1
+
+        self.sublist=sublist
+        return self.sublist
+
+    def getLNomsEtapes(self):
+        """ Retourne la liste des noms des etapes de self.object"""
+        return self.object.getLNomsEtapes()
+
+    def getListeCmd(self):
+        listeCmd = self.object.niveau.definition.getListeCmd()
+        return listeCmd
 
 import Accas
 treeitem =JDCTreeItem
-objet = Accas.JDC    
+objet = Accas.JDC
index e43d9b5e21150e94a5d5841231b3b494a2c8ddd0..330f828335b21e475806a2c9b3b89f0689b81fec 100644 (file)
@@ -30,37 +30,25 @@ from Extensions.i18n import tr
 from InterfaceQT4 import compooper
 from InterfaceQT4 import browser
 from InterfaceQT4 import typeNode
-from PyQt5.QtWidgets import QAction
-from PyQt5.QtCore import Qt
 
 
+class MACRONode(browser.JDCNode,typeNode.PopUpMenuNode):
 
-class MACRONode(browser.JDCNode,typeNode.PopUpMenuNode):         
-    
     def getPanel(self):
-      from   .monWidgetCommande import MonWidgetCommande
-      return MonWidgetCommande (self,self.editor ,self.item.object)
+        from   .monWidgetCommande import MonWidgetCommande
+        return MonWidgetCommande (self,self.editor ,self.item.object)
 
 
     def createPopUpMenu(self):
-      typeNode.PopUpMenuNode.createPopUpMenu(self)
-      if ("AFFE_CARA_ELEM" in self.item.getGenealogie()) and self.editor.salome:
-           self.ViewElt = QAction(tr('View3D'),self.tree)
-           self.ViewElt.triggered.connect(self.view3D)
-           self.ViewElt.setStatusTip(tr("affiche dans Geom les elements de structure"))
-           self.menu.addAction(self.ViewElt)
-           if self.item.isValid() :
-              self.ViewElt.setEnabled(1)
-           else:
-              self.ViewElt.setEnabled(0)
-
-    def view3D(self) :
-        from Editeur import TroisDPal
-        troisD=TroisDPal.TroisDPilote(self.item,self.editor.appliEficas)
-        troisD.envoievisu()
-
-        
-    
+        typeNode.PopUpMenuNode.createPopUpMenu(self)
+
+#    def view3D(self) :
+#        from Editeur import TroisDPal
+#        troisD=TroisDPal.TroisDPilote(self.item,self.editor.appliEficas)
+#        troisD.envoievisu()
+
+
+
 class MACROTreeItem(compooper.EtapeTreeItem):
 #  """ Cette classe herite d'une grande partie des comportements
 #      de la classe compooper.EtapeTreeItem
@@ -73,97 +61,97 @@ class MACROTreeItem(compooper.EtapeTreeItem):
 
 class INCLUDETreeItemBase(MACROTreeItem):
 
-    def __init__(self,appli, labeltext, object, setFunction):    
-       MACROTreeItem.__init__(self,appli, labeltext, object, setFunction)
+    def __init__(self,appliEficas, labeltext, object, setFunction):
+        MACROTreeItem.__init__(self,appliEficas, labeltext, object, setFunction)
 
     def isCopiable(self):
-       return 0
+        return 0
 
 
-class INCLUDENode(browser.JDCNode,typeNode.PopUpMenuNode):    
+class INCLUDENode(browser.JDCNode,typeNode.PopUpMenuNode):
 
     def getPanel(self):
-      from   .monWidgetCommande import MonWidgetCommande
-      return MonWidgetCommande (self,self.editor ,self.item.object)
+        from   .monWidgetCommande import MonWidgetCommande
+        return MonWidgetCommande (self,self.editor ,self.item.object)
 
     def createPopUpMenu(self):
-      typeNode.PopUpMenuNode.createPopUpMenu(self)
-      
-    def makeEdit(self):    #,appli,node
+        typeNode.PopUpMenuNode.createPopUpMenu(self)
+
+    def makeEdit(self):    #,appliEficas,node
         if self.item.object.text_converted == 0:
-                # Le texte du fichier inclus n'a pas pu etre converti par le module convert
-                msg=tr("Le fichier de commande n'a pas pu etre converti pour etre editable par Eficas\n\n")
-                msg=msg+self.item.object.text_error
-                return
-    
+            # Le texte du fichier inclus n'a pas pu etre converti par le module convert
+            msg=tr("Le fichier de commande n'a pas pu etre converti pour etre editable par Eficas\n\n")
+            msg=msg+self.item.object.text_error
+            return
+
         if not hasattr(self.item.object,"jdc_aux") or self.item.object.jdc_aux is None:
-               #L'include n'est pas initialise
-               self.item.object.buildInclude(None,"")
-    
+            #L'include n'est pas initialise
+            self.item.object.buildInclude(None,"")
+
         # On cree un nouvel onglet dans le bureau
         self.editor.vm.displayJDC( self.item.object.jdc_aux , self.item.object.jdc_aux.nom )
-     
+
 
 class INCLUDETreeItem(INCLUDETreeItemBase):
     itemNode=INCLUDENode
-    
+
 
 # ------------------------------------
 #  Classes necessaires a POURSUITE
 # ------------------------------------
-    
-class POURSUITENode(browser.JDCNode, typeNode.PopUpMenuNode):    
+
+class POURSUITENode(browser.JDCNode, typeNode.PopUpMenuNode):
 
     def getPanel(self):
-      from   .monWidgetCommande import MonWidgetCommande
-      return MonWidgetCommande (self,self.editor ,self.item.object)
+        from   .monWidgetCommande import MonWidgetCommande
+        return MonWidgetCommande (self,self.editor ,self.item.object)
 
     def createPopUpMenu(self):
-      typeNode.PopUpMenuNode.createPopUpMenu(self)
+        typeNode.PopUpMenuNode.createPopUpMenu(self)
 
-    def makeEdit(self):    #,appli,node
+    def makeEdit(self):    #,appliEficas,node
         if self.item.object.text_converted == 0:
-                msg=tr("Le fichier de commande n'a pas pu etre converti pour etre editable par Eficas\n\n")
-                msg=msg+self.item.object.text_error
-                return
-    
+            msg=tr("Le fichier de commande n'a pas pu etre converti pour etre editable par Eficas\n\n")
+            msg=msg+self.item.object.text_error
+            return
+
         if not hasattr(self.item.object,"jdc_aux") or self.item.object.jdc_aux is None:
             text="""DEBUT()
                     FIN()"""
             self.object.buildPoursuite(None,text)
-    
+
         # On cree un nouvel onglet dans le bureau
         self.editor.vm.displayJDC( self.item.object.jdc_aux , self.item.object.jdc_aux.nom)
-    
+
 class POURSUITETreeItem(INCLUDETreeItemBase):
-  itemNode=POURSUITENode
+    itemNode=POURSUITENode
 
 
 # ----------------------------------------
 #  Classes necessaires a INCLUDE MATERIAU
 # ----------------------------------------
-    
+
 
 class MATERIAUNode(MACRONode):
 
     def getPanel(self):
-      from   .monWidgetCommande import MonWidgetCommande
-      return MonWidgetCommande (self,self.editor ,self.item.object)
+        from   .monWidgetCommande import MonWidgetCommande
+        return MonWidgetCommande (self,self.editor ,self.item.object)
 
     def createPopUpMenu(self):
-      typeNode.PopUpMenuNode.createPopUpMenu(self)
+        typeNode.PopUpMenuNode.createPopUpMenu(self)
 
     def makeView(self) :
-      if hasattr(self.item.object,'fichier_ini') and self.item.object.fichier_ini==None:
-         QMessageBox.information( self,tr("Include vide"),tr("L'include doit etre correctement initialise pour etre visualise"))
-         return
-      f = open(self.item.object.fichier_ini, "rb")
-      texte = f.read()
-      f.close()
-      from desVisu import DVisu
-      monVisuDialg=DVisu(parent=self.editor.appliEficas,fl=0)
-      monVisuDialg.TB.setText(texte)
-      monVisuDialg.show()
+        if hasattr(self.item.object,'fichier_ini') and self.item.object.fichier_ini==None:
+            QMessageBox.information( self,tr("Include vide"),tr("L'include doit etre correctement initialise pour etre visualise"))
+            return
+        f = open(self.item.object.fichier_ini, "rb")
+        texte = f.read()
+        f.close()
+        from desVisu import DVisu
+        monVisuDialg=DVisu(parent=self.editor.appliEficas,fl=0)
+        monVisuDialg.TB.setText(texte)
+        monVisuDialg.show()
 
 
 class INCLUDE_MATERIAUTreeItem(INCLUDETreeItemBase):
@@ -172,22 +160,20 @@ class INCLUDE_MATERIAUTreeItem(INCLUDETreeItemBase):
 # ------------------------------------
 # TreeItem
 # ------------------------------------
-    
-
-def treeitem(appli, labeltext, object, setFunction=None):
-   """ Factory qui retourne l'item adapte au type de macro : 
-       INCLUDE, POURSUITE, MACRO
-   """
-   if object.nom == "INCLUDE_MATERIAU":
-      return INCLUDE_MATERIAUTreeItem(appli, labeltext, object, setFunction)
-   elif object.nom == "INCLUDE" or object.nom== "DICTDATA":
-      return INCLUDETreeItem(appli, labeltext, object, setFunction)
-   elif object.nom == "POURSUITE":
-      return POURSUITETreeItem(appli, labeltext, object, setFunction)
-   else:
-      return MACROTreeItem(appli, labeltext, object, setFunction)
+
+
+def treeitem(appliEficas, labeltext, object, setFunction=None):
+    """ Factory qui retourne l'item adapte au type de macro :
+        INCLUDE, POURSUITE, MACRO
+    """
+    if object.nom == "INCLUDE_MATERIAU":
+        return INCLUDE_MATERIAUTreeItem(appliEficas, labeltext, object, setFunction)
+    elif object.nom == "INCLUDE" or object.nom== "DICTDATA":
+        return INCLUDETreeItem(appliEficas, labeltext, object, setFunction)
+    elif object.nom == "POURSUITE":
+        return POURSUITETreeItem(appliEficas, labeltext, object, setFunction)
+    else:
+        return MACROTreeItem(appliEficas, labeltext, object, setFunction)
 
 import Accas
 objet=Accas.MACRO_ETAPE
-    
-
index 2b2440545c8daa4085d5300f0c08e11cdd6b80d3..15e2a11f161d18a306976c1568a8469cfa928c7e 100644 (file)
@@ -36,7 +36,7 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal):
     def createPopUpMenu(self):
         typeNode.PopUpMenuNodeMinimal.createPopUpMenu(self)
 
-    def getPanelGroupe(self,parentQt,commande,insertIn=-1):
+    def getPanelGroupe(self,parentQt,commande):
         maDefinition=self.item.get_definition()
         monObjet=self.item.object
         monNom=self.item.nom
@@ -45,15 +45,20 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal):
         else : self.niveau=1
         # attention si l objet est une mclist on utilise bloc
         if not (monObjet.isMCList()) :
-           if  hasattr(self,'plie') and self.plie==True : 
-               from InterfaceQT4.monWidgetFactPlie import MonWidgetFactPlie
-               widget=MonWidgetFactPlie(self,self.editor,parentQt,maDefinition,monObjet,self.niveau,maCommande,insertIn)
-           else:
-               from InterfaceQT4.monWidgetFact import MonWidgetFact
-               widget=MonWidgetFact(self,self.editor,parentQt,maDefinition,monObjet,self.niveau,maCommande,insertIn)
+            if  hasattr(self,'plie') and self.plie==True :
+                from InterfaceQT4.monWidgetFactPlie import MonWidgetFactPlie
+                widget=MonWidgetFactPlie(self,self.editor,parentQt,maDefinition,monObjet,self.niveau,maCommande)
+            elif self.editor.maConfiguration.afficheFirstPlies and self.firstAffiche:
+                self.firstAffiche = False
+                self.setPlie()
+                from InterfaceQT4.monWidgetFactPlie import MonWidgetFactPlie
+                widget=MonWidgetFactPlie(self,self.editor,parentQt,maDefinition,monObjet,self.niveau,maCommande)
+            else:
+                from InterfaceQT4.monWidgetFact import MonWidgetFact
+                widget=MonWidgetFact(self,self.editor,parentQt,maDefinition,monObjet,self.niveau,maCommande)
         else :
-           from InterfaceQT4.monWidgetBloc import MonWidgetBloc
-           widget=MonWidgetBloc(self,self.editor,parentQt,maDefinition,monObjet,self.niveau,maCommande)
+            from InterfaceQT4.monWidgetBloc import MonWidgetBloc
+            widget=MonWidgetBloc(self,self.editor,parentQt,maDefinition,monObjet,self.niveau,maCommande)
         return widget
 
 
@@ -75,7 +80,7 @@ class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem):
         Elle adapte ces objets pour leur permettre d'etre integres en tant que
         noeuds dans un arbre graphique (voir treewidget.py et ObjectTreeItem.py).
         Cette classe delegue les appels de methode et les acces
-        aux attributs a l'objet du noyau soit manuellement soit 
+        aux attributs a l'objet du noyau soit manuellement soit
         automatiquement (voir classe Delegate et attribut object).
     """
     itemNode=Node
@@ -87,9 +92,9 @@ class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem):
 
     def updateDelegate(self):
         if len(self._object) > 1:
-           self.setDelegate(self._object)
+            self.setDelegate(self._object)
         else:
-           self.setDelegate(self._object.data[0])
+            self.setDelegate(self._object.data[0])
 
     def panel(self,jdcdisplay,pane,node):
         """ Retourne une instance de l'objet panneau associe a l'item (self)
@@ -98,49 +103,49 @@ class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem):
             Si la liste est plus longue on utilise le panneau MCLISTPanel.
         """
         if len(self._object) > 1:
-           return MCLISTPanel(jdcdisplay,pane,node)
+            return MCLISTPanel(jdcdisplay,pane,node)
         elif isinstance(self._object.data[0],ErrorObj):
-           return compoerror.ERRORPanel(jdcdisplay,pane,node)
+            return compoerror.ERRORPanel(jdcdisplay,pane,node)
         else:
-           return compofact.FACTPanel(jdcdisplay,pane,node)
+            return compofact.FACTPanel(jdcdisplay,pane,node)
 
     def isExpandable(self):
         if len(self._object) > 1:
-           return Objecttreeitem.SequenceTreeItem.isExpandable(self)
+            return Objecttreeitem.SequenceTreeItem.isExpandable(self)
         else:
-           return compofact.FACTTreeItem.isExpandable(self)
+            return compofact.FACTTreeItem.isExpandable(self)
 
     def getSubList(self):
         self.updateDelegate()
         if len(self._object) <= 1:
-           self._object.data[0].alt_parent=self._object
-           return compofact.FACTTreeItem.getSubList(self)
+            self._object.data[0].alt_parent=self._object
+            return compofact.FACTTreeItem.getSubList(self)
 
         liste=self._object.data
         sublist=[None]*len(liste)
         # suppression des items lies aux objets disparus
         for item in self.sublist:
-           old_obj=item.getObject()
-           if old_obj in liste:
-              pos=liste.index(old_obj)
-              sublist[pos]=item
-           else:
-              pass # objets supprimes ignores
+            old_obj=item.getObject()
+            if old_obj in liste:
+                pos=liste.index(old_obj)
+                sublist[pos]=item
+            else:
+                pass # objets supprimes ignores
         # ajout des items lies aux nouveaux objets
         pos=0
         for obj in liste:
-           if sublist[pos] is None:
-              # nouvel objet : on cree un nouvel item
-              def setFunction(value, object=obj):
-                  object=value
-              item = self.makeObjecttreeitem(self.appli, obj.nom + " : ", obj, setFunction)
-              sublist[pos]=item
-              #Attention : on ajoute une information supplementaire pour l'actualisation de 
-              # la validite. L'attribut parent d'un MCFACT pointe sur le parent de la MCLISTE
-              # et pas sur la MCLISTE elle meme ce qui rompt la chaine de remontee des
-              # informations de validite. alt_parent permet de remedier a ce defaut.
-              obj.alt_parent=self._object
-           pos=pos+1
+            if sublist[pos] is None:
+                # nouvel objet : on cree un nouvel item
+                def setFunction(value, object=obj):
+                    object=value
+                item = self.makeObjecttreeitem(self.appliEficas, obj.nom + " : ", obj, setFunction)
+                sublist[pos]=item
+                #Attention : on ajoute une information supplementaire pour l'actualisation de
+                # la validite. L'attribut parent d'un MCFACT pointe sur le parent de la MCLISTE
+                # et pas sur la MCLISTE elle meme ce qui rompt la chaine de remontee des
+                # informations de validite. alt_parent permet de remedier a ce defaut.
+                obj.alt_parent=self._object
+            pos=pos+1
 
         self.sublist=sublist
         return self.sublist
@@ -155,13 +160,13 @@ class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem):
 
     def getDocu(self):
         """ Retourne la clef de doc de l'objet pointe par self """
-        return self.object.getDocu()    
+        return self.object.getDocu()
 
     def isCopiable(self):
         if len(self._object) > 1:
-           return Objecttreeitem.SequenceTreeItem.isCopiable(self)
+            return Objecttreeitem.SequenceTreeItem.isCopiable(self)
         else:
-           return compofact.FACTTreeItem.isCopiable(self)
+            return compofact.FACTTreeItem.isCopiable(self)
 
     def isMCFact(self):
         """
@@ -174,40 +179,40 @@ class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem):
         Retourne 1 si l'objet pointe par self est une MCList, 0 sinon
         """
         return len(self._object) > 1
-        
+
     def getCopieObjet(self):
         return self._object.data[0].copy()
 
     def addItem(self,obj,pos):
         #print "compomclist.addItem",obj,pos
         if len(self._object) <= 1:
-           return compofact.FACTTreeItem.addItem(self,obj,pos)
+            return compofact.FACTTreeItem.addItem(self,obj,pos)
 
         o= self.object.addEntite(obj,pos)
         return o
 
     def suppItem(self,item):
         """
-        Retire un objet MCFACT de la MCList (self.object) 
+        Retire un objet MCFACT de la MCList (self.object)
         """
         #print "compomclist.suppItem",item
         obj=item.getObject()
         if len(self._object) <= 1:
-           return compofact.FACTTreeItem.suppItem(self,item)
+            return compofact.FACTTreeItem.suppItem(self,item)
 
         if self.object.suppEntite(obj):
-           if len(self._object) == 1: self.updateDelegate()     
-           message = "Mot-clef " + obj.nom + " supprime"
-           return (1,message)
+            if len(self._object) == 1: self.updateDelegate()
+            message = "Mot-clef " + obj.nom + " supprime"
+            return (1,message)
         else:
-           return (0,tr('Impossible de supprimer ce mot-clef'))
+            return (0,tr('Impossible de supprimer ce mot-clef'))
+
 
-            
 import Accas
-objet = Accas.MCList    
+objet = Accas.MCList
 
-def treeitem(appli,labeltext,object,setFunction):
-  """ Factory qui produit un objet treeitem adapte a un objet 
-      Accas.MCList (attribut objet de ce module)
-  """
-  return MCListTreeItem(appli,labeltext,object,setFunction)
+def treeitem(appliEficas,labeltext,object,setFunction):
+    """ Factory qui produit un objet treeitem adapte a un objet
+        Accas.MCList (attribut objet de ce module)
+    """
+    return MCListTreeItem(appliEficas,labeltext,object,setFunction)
index 6898b8feb26062d3ea581ec8efcf561e549887e9..fd59ff45b988769e7a8e5efd790d0b3ea239e2de 100644 (file)
 #
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import os
 import tempfile
-from PyQt5.QtWidgets import QMessageBox, QAction, QApplication
-from PyQt5.QtGui  import QCursor
-from PyQt5.QtCore import Qt
 
 from Extensions.i18n import tr
 from Extensions.eficas_exception import EficasException
@@ -51,16 +48,16 @@ class Node(browser.JDCNode, typeNode.PopUpMenuNode):
         self.editor.initModif()
         test,mess = self.item.nommeSd(nom)
         if (test== 0):
-           self.editor.afficheInfos(mess,Qt.red)
-           old=self.item.getText()
-           self.monWidgetNom.setText(old)
+            self.editor.afficheInfos(mess,'red')
+            old=self.item.getText()
+            self.monWidgetNom.setText(old)
         else :
-           self.editor.afficheCommentaire(tr("Nommage du concept effectue"))
-           self.onValid()
-           try :
-             self.fenetre.LENom.setText(nom)
-           except :
-             pass
+            self.editor.afficheCommentaire(tr("Nommage du concept effectue"))
+            self.onValid()
+            try :
+                self.fenetre.LENom.setText(nom)
+            except :
+                pass
 
 
     def getPanel(self):
@@ -69,264 +66,215 @@ class Node(browser.JDCNode, typeNode.PopUpMenuNode):
 
     def createPopUpMenu(self):
         typeNode.PopUpMenuNode.createPopUpMenu(self)
-        if ("AFFE_CARA_ELEM" in self.item.getGenealogie()) and self.editor.salome: 
-           self.ViewElt = QAction(tr('View3D'),self.tree)
-           self.tree.connect(self.ViewElt,SIGNAL("triggered()"),self.view3D)
-           self.ViewElt.setStatusTip(tr("affiche dans Geom les elements de structure"))
-           self.menu.addAction(self.ViewElt)
-           if self.item.isValid() :
-              self.ViewElt.setEnabled(1)
-           else:
-              self.ViewElt.setEnabled(0)
-        if  self.item.getNom() == "DISTRIBUTION" :
-           self.Graphe = QAction(tr('Graphique'),self.tree)
-           self.Graphe.triggered.connect(self.viewPng)
-           self.Graphe.setStatusTip(tr("affiche la distribution "))
-           self.menu.addAction(self.Graphe)
-           if self.item.isValid() :
-              self.Graphe.setEnabled(1)
-           else:
-              self.Graphe.setEnabled(0)
-
-    def view3D(self) :
-        from Editeur import TroisDPal
-        troisD=TroisDPal.TroisDPilote(self.item,self.editor.appliEficas)
-        troisD.envoievisu()
-
-    def viewPng(self) :
-        from monPixmap import MonLabelPixmap
-        import generator
-        try:
-            QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
-            g = generator.plugins[self.appliEficas.format_fichier]()
-            g.gener(self.item.object, format='beautifie')
-            stdGener = g.getGenerateur()
-            loi = list(g.dictMCLois.keys())[0]
-            nomLoi = loi.getName()
-            (fd, fichier) = tempfile.mkstemp(prefix = "openturns_graph_", suffix = ".png")
-            os.close(fd)
-            chemin = os.path.dirname(fichier)
-            base = os.path.splitext(os.path.basename(fichier))[0]
-            script = stdGener.GraphiquePDF(loi, chemin, base)
-            #print script
-            d = {}
-            exec(script, d)
-            widgetPng=MonLabelPixmap(self.appliEficas,fichier,nomLoi)
-            os.remove(fichier)
-            QApplication.restoreOverrideCursor()
-            widgetPng.show()
-        except:
-            QApplication.restoreOverrideCursor()
-            QMessageBox.warning(
-                self.appliEficas,
-                tr("Erreur interne"),
-                tr("La PDF de la loi ne peut pas etre affichee."),
-                tr("&Annuler"))
+
+#    def view3D(self) :
+#        from Editeur import TroisDPal
+#        troisD=TroisDPal.TroisDPilote(self.item,self.editor.appliEficas)
+#        troisD.envoievisu()
+
 
 class EtapeTreeItem(Objecttreeitem.ObjectTreeItem):
-  """ La classe EtapeTreeItem est un adaptateur des objets ETAPE du noyau
-      Accas. Elle leur permet d'etre affichés comme des noeuds
-      d'un arbre graphique.
-      Cette classe a entre autres deux attributs importants :
-        - _object qui est un pointeur vers l'objet du noyau
-        - object qui pointe vers l'objet auquel sont délégués les
-          appels de méthode et les acces aux attributs
-      Dans le cas d'une ETAPE, _object et object pointent vers le 
-      meme objet.
-  """
-  itemNode=Node
-  
-  def isExpandable(self):
-      return 1
-
-  def getIconName(self):
-      """
-      Retourne le nom de l'icone a afficher dans l'arbre
-      Ce nom depend de la validite de l'objet
-      """
-      if not self.object.isActif():
-         return "ast-white-square"
-      elif self.object.isValid():
-         return "ast-green-square"
-      else:
-         valid=self.validChild()
-         valid=valid * self.validRegles("non")
-         if self.reste_val != {}:
-            valid=0
-         if valid==0  :
-            return "ast-red-square"
-         else :
-            try :
-            # on traite ici le cas d include materiau
-            #  print self.object.definition.nom 
-              if  self.object.fichier_ini != self.object.nom_mater :
-                  return "ast-red-square"
-            except :
-              pass
-            return "ast-yellow-square"
-
-  def getLabelText(self):
-      """ Retourne 3 valeurs :
-      - le texte a afficher dans le noeud représentant l'item
-      - la fonte dans laquelle afficher ce texte
-      - la couleur du texte
-      """
-      return self.labeltext,None,None
-      #if self.object.isActif():
+    """ La classe EtapeTreeItem est un adaptateur des objets ETAPE du noyau
+        Accas. Elle leur permet d'etre affichés comme des noeuds
+        d'un arbre graphique.
+        Cette classe a entre autres deux attributs importants :
+          - _object qui est un pointeur vers l'objet du noyau
+          - object qui pointe vers l'objet auquel sont délégués les
+            appels de méthode et les acces aux attributs
+        Dans le cas d'une ETAPE, _object et object pointent vers le
+        meme objet.
+    """
+    itemNode=Node
+
+    def isExpandable(self):
+        return 1
+
+    def getIconName(self):
+        """
+        Retourne le nom de l'icone a afficher dans l'arbre
+        Ce nom depend de la validite de l'objet
+        """
+        if not self.object.isActif():
+            return "ast-white-square"
+        elif self.object.isValid():
+            return "ast-green-square"
+        else:
+            valid=self.validChild()
+            valid= valid * self.validRegles("non")
+            if self.reste_val != {} : valid=0
+            if valid==0  :
+                return "ast-red-square"
+            else :
+                try :
+                # on traite ici le cas d include materiau
+                #  print self.object.definition.nom
+                    if  self.object.fichier_ini != self.object.nom_mater :
+                        return "ast-red-square"
+                except :
+                    pass
+                return "ast-yellow-square"
+
+    def getLabelText(self):
+        """ Retourne 3 valeurs :
+        - le texte a afficher dans le noeud représentant l'item
+        - la fonte dans laquelle afficher ce texte
+        - la couleur du texte
+        """
+        return self.labeltext,None,None
+        #if self.object.isActif():
         # None --> fonte et couleur par défaut
-      #  return self.labeltext,None,None
-      #else:
-      #  return self.labeltext, None, None #CS_pbruno todo
-      
-  #def get_objet(self,name) :
-  #    for v in self.object.mcListe:
-  #        if v.nom == name : return v
-  #    return None
-      
- # def getType_sd_prod(self):
- #     """
- #        Retourne le nom du type du concept résultat de l'étape
- #     """
- #     sd_prod=self.object.getType_produit()
- #     if sd_prod:
- #        return sd_prod.__name__
- #     else:
- #        return ""
-
-  def addItem(self,name,pos):      
-      mcent = self._object.addEntite(name,pos)
-      return mcent
-      
-
-  def suppItem(self,item) :
-      # item : item du MOCLE de l'ETAPE a supprimer
-      # item.getObject() = MCSIMP, MCFACT, MCBLOC ou MCList 
-      itemobject=item.getObject()
-      if itemobject.isOblig() :
-          return (0,tr('Impossible de supprimer un mot-clef obligatoire '))
-      if self.object.suppEntite(itemobject):
-          message = tr("Mot-clef %s supprime " , itemobject.nom)
-          return (1,message)
-      else :
-          return (0,tr('Pb interne : impossible de supprimer ce mot-clef'))
-
-  def getText(self):
-      try:
-          return self.object.getSdname()
-      except:
-          return ''
-
-  # PNPN ????
-  #def keys(self):
-  #    keys=self.object.mc_dict
-  #    return keys
-
-  def getSubList(self):
-      """
-         Reactualise la liste des items fils stockes dans self.sublist
-      """
-      if self.isActif():
-         liste=self.object.mcListe
-      else:
-         liste=[]
-
-      sublist=[None]*len(liste)
-      # suppression des items lies aux objets disparus
-      for item in self.sublist:
-         old_obj=item.getObject()
-         if old_obj in liste:
-            pos=liste.index(old_obj)
-            sublist[pos]=item
-         else:
-            pass # objets supprimes ignores
-
-      # ajout des items lies aux nouveaux objets
-      pos=0
-      for obj in liste:
-         if sublist[pos] is None:
-            # nouvel objet : on cree un nouvel item
-            def setFunction(value, object=obj):
-                object.setval(value)
-            item = self.makeObjecttreeitem(self.appli, obj.nom + " : ", obj, setFunction)
-            sublist[pos]=item
-         pos=pos+1
-
-      self.sublist=sublist
-      return self.sublist
-
-  def isValid(self):
-      return self.object.isValid()
-
-  def isCopiable(self):
-      """
-      Retourne 1 si l'objet est copiable, 0 sinon
-      """
-      return 1
-
-  def updateDeplace(self,item):
-      if item.sd and item.sd.nom:
-         self.object.sd=item.sd
-         self.object.sd.nom=item.sd.nom
-
-  def update(self,item):
-      if item.sd and item.sd.nom:
-         self.nommeSd(item.sd.nom)
-
-  def nommeSd(self,nom):
-      """ Lance la méthode de nommage de la SD """
-      oldnom=""
-      if self.object.sd != None :
-         oldnom=self.object.sd.nom
-      test,mess= self.object.nommeSd(nom)
-      if test:self.object.parent.resetContext()
-      if (test and oldnom in self.appli.dict_reels ):
-              self.appli.dict_reels[nom]=self.appli.dict_reels[oldnom]
-      return test,mess
-
-  def isReentrant(self):
-      return self.object.isReentrant()
-    
-  def getNomsSdOperReentrant(self):
-      return self.object.getNomsSdOperReentrant()
-
-  def getObjetCommentarise(self):
-      """
-          Cette méthode retourne un objet commentarisé
-          représentatif de self.object
-      """
-      # Format de fichier utilisé
-      format=self.appli.appliEficas.format_fichier
-      return self.object.getObjetCommentarise(format)
-
-  def getObjetCommentarise_BAK(self):
-      """
-          Cette méthode retourne un objet commentarisé
-          représentatif de self.object
-      """
-      import generator,Accas
-      # Format de fichier utilisé
-      format=self.appli.appliEficas.format_fichier
-      g=generator.plugins[format]()
-      texte_commande = g.gener(self.object,format='beautifie')
-      # Il faut enlever la premiere ligne vide de texte_commande que 
-      # rajoute le generator
-      rebut,texte_commande = texte_commande.split('\n',1)
-      # on construit l'objet COMMANDE_COMM repésentatif de self mais non 
-      # enregistré dans le jdc
-      commande_comment = Accas.COMMANDE_COMM(texte=texte_commande,reg='non',
-                                             parent=self.object.parent)
-      commande_comment.niveau = self.object.niveau
-      commande_comment.jdc = commande_comment.parent = self.object.jdc
-
-      pos=self.object.parent.etapes.index(self.object)
-      parent=self.object.parent
-      self.object.parent.suppEntite(self.object)
-      parent.addEntite(commande_comment,pos)
-
-      return commande_comment
+        #  return self.labeltext,None,None
+        #else:
+        #  return self.labeltext, None, None #CS_pbruno todo
+
+    #def get_objet(self,name) :
+    #    for v in self.object.mcListe:
+    #        if v.nom == name : return v
+    #    return None
+
  # def getType_sd_prod(self):
  #     """
  #        Retourne le nom du type du concept résultat de l'étape
  #     """
  #     sd_prod=self.object.getType_produit()
  #     if sd_prod:
  #        return sd_prod.__name__
  #     else:
  #        return ""
+
+    def addItem(self,name,pos):
+        mcent = self._object.addEntite(name,pos)
+        return mcent
+
+
+    def suppItem(self,item) :
+        # item : item du MOCLE de l'ETAPE a supprimer
+        # item.getObject() = MCSIMP, MCFACT, MCBLOC ou MCList
+        itemobject=item.getObject()
+        if itemobject.isOblig() :
+            return (0,tr('Impossible de supprimer un mot-clef obligatoire '))
+        if self.object.suppEntite(itemobject):
+            message = tr("Mot-clef %s supprime " , itemobject.nom)
+            return (1,message)
+        else :
+            return (0,tr('Pb interne : impossible de supprimer ce mot-clef'))
+
+    def getText(self):
+        try:
+            return self.object.getSdname()
+        except:
+            return ''
+
+    # PNPN ????
+    #def keys(self):
+    #    keys=self.object.mc_dict
+    #    return keys
+
+    def getSubList(self):
+        """
+           Reactualise la liste des items fils stockes dans self.sublist
+        """
+        if self.isActif():
+            liste=self.object.mcListe
+        else:
+            liste=[]
+
+        sublist=[None]*len(liste)
+        # suppression des items lies aux objets disparus
+        for item in self.sublist:
+            old_obj=item.getObject()
+            if old_obj in liste:
+                pos=liste.index(old_obj)
+                sublist[pos]=item
+            else:
+                pass # objets supprimes ignores
+
+        # ajout des items lies aux nouveaux objets
+        pos=0
+        for obj in liste:
+            if sublist[pos] is None:
+                # nouvel objet : on cree un nouvel item
+                def setFunction(value, object=obj):
+                    object.setval(value)
+                item = self.makeObjecttreeitem(self.appliEficas, obj.nom + " : ", obj, setFunction)
+                sublist[pos]=item
+            pos=pos+1
+
+        self.sublist=sublist
+        return self.sublist
+
+    def isValid(self):
+        return self.object.isValid()
+
+    def isCopiable(self):
+        """
+        Retourne 1 si l'objet est copiable, 0 sinon
+        """
+        return 1
+
+    def updateDeplace(self,item):
+        if item.sd and item.sd.nom:
+            self.object.sd=item.sd
+            self.object.sd.nom=item.sd.nom
+
+    def update(self,item):
+        if item.sd and item.sd.nom:
+            self.nommeSd(item.sd.nom)
+
+    def nommeSd(self,nom):
+        """ Lance la méthode de nommage de la SD """
+        oldnom=""
+        if self.object.sd != None :
+            oldnom=self.object.sd.nom
+        test,mess= self.object.nommeSd(nom)
+        if test:self.object.parent.resetContext()
+        if (test and oldnom in self.appliEficas.dict_reels ):
+            self.appliEficas.dict_reels[nom]=self.appliEficas.dict_reels[oldnom]
+        return test,mess
+
+    def isReentrant(self):
+        return self.object.isReentrant()
+
+    def getNomsSdOperReentrant(self):
+        return self.object.getNomsSdOperReentrant()
+
+    def getObjetCommentarise(self):
+        """
+            Cette méthode retourne un objet commentarisé
+            représentatif de self.object
+        """
+        # Format de fichier utilisé
+        format=self.appliEficas.formatFichierIn
+        return self.object.getObjetCommentarise(format)
+
+    def getObjetCommentarise_BAK(self):
+        """
+            Cette méthode retourne un objet commentarisé
+            représentatif de self.object
+        """
+        import generator,Accas
+        # Format de fichier utilisé
+        format=self.appliEficas.format_fichier
+        g=generator.plugins[format]()
+        texte_commande = g.gener(self.object,format='beautifie')
+        # Il faut enlever la premiere ligne vide de texte_commande que
+        # rajoute le generator
+        rebut,texte_commande = texte_commande.split('\n',1)
+        # on construit l'objet COMMANDE_COMM repésentatif de self mais non
+        # enregistré dans le jdc
+        commande_comment = Accas.COMMANDE_COMM(texte=texte_commande,reg='non',
+                                               parent=self.object.parent)
+        commande_comment.niveau = self.object.niveau
+        commande_comment.jdc = commande_comment.parent = self.object.jdc
+
+        pos=self.object.parent.etapes.index(self.object)
+        parent=self.object.parent
+        self.object.parent.suppEntite(self.object)
+        parent.addEntite(commande_comment,pos)
+
+        return commande_comment
 
 
 import Accas
 treeitem = EtapeTreeItem
-objet = Accas.ETAPE    
-
+objet = Accas.ETAPE
index b9eddf9996376ec922e1b4d0699b88104b91a47c..ca9b1c02cf744245fcfd7d20031ecc643df5d081 100644 (file)
@@ -24,7 +24,7 @@
 """
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 
@@ -38,10 +38,10 @@ from . import browser
 from . import typeNode
 
 
-class Node(browser.JDCNode,typeNode.PopUpMenuNodePartiel): 
+class Node(browser.JDCNode,typeNode.PopUpMenuNodePartiel):
     def getPanel(self):
-        """        
-        """    
+        """
+        """
         from .monWidgetParam  import MonWidgetParam
         return MonWidgetParam(self, self.editor,self.item.object)
 
@@ -61,26 +61,26 @@ class PARAMTreeItem(Objecttreeitem.ObjectTreeItem):
     """
     itemNode=Node
 
-    def init(self):      
-      self.setFunction = self.setValeur
+    def init(self):
+        self.setFunction = self.setValeur
 
 # ---------------------------------------------------------------------------
-#                   API du PARAMETRE pour l'arbre 
+#                   API du PARAMETRE pour l'arbre
 # ---------------------------------------------------------------------------
 
     def getIconName(self):
-      """
-      Retourne le nom de l'icone associee au noeud qui porte self,
-      dependant de la validite de l'objet
-      NB : un PARAMETRE est toujours valide ...
-      """
-      if self.isActif():
-          if self.isValid():
-              return "ast-green-square"
-          else:
-              return "ast-red-square"
-      else:
-          return "ast-white-square"
+        """
+        Retourne le nom de l'icone associee au noeud qui porte self,
+        dependant de la validite de l'objet
+        NB : un PARAMETRE est toujours valide ...
+        """
+        if self.isActif():
+            if self.isValid():
+                return "ast-green-square"
+            else:
+                return "ast-red-square"
+        else:
+            return "ast-white-square"
 
     def getLabelText(self):
         """ Retourne 3 valeurs :
@@ -88,68 +88,68 @@ class PARAMTreeItem(Objecttreeitem.ObjectTreeItem):
         - la fonte dans laquelle afficher ce texte
         - la couleur du texte
         """
-        return tr('PARAMETRE'),None,None 
+        return tr('PARAMETRE'),None,None
 
     def getText(self):
-      """
-      Retourne le texte a afficher apres le nom de la commande (ici apres 'parametre')
-      Ce texte est tronque a 25 caracteres
-      """
-      texte=self.object.nom+"="+str(self.object.valeur)
-      if type(self.object.valeur) == list :
-          texte=self.nom+' = ['
-          for l in self.object.valeur :
-            texte=texte+str(l) +","
-          texte=texte[0:-1]+']'
-      texte = texte.split('\n')[0]
-      if len(texte) < 25 :
-          return texte
-      else :
-          return texte[0:24]+'...'
+        """
+        Retourne le texte a afficher apres le nom de la commande (ici apres 'parametre')
+        Ce texte est tronque a 25 caracteres
+        """
+        texte=self.object.nom+"="+str(self.object.valeur)
+        if type(self.object.valeur) == list :
+            texte=self.nom+' = ['
+            for l in self.object.valeur :
+                texte=texte+str(l) +","
+            texte=texte[0:-1]+']'
+        texte = texte.split('\n')[0]
+        if len(texte) < 25 :
+            return texte
+        else :
+            return texte[0:24]+'...'
 
     def getSubList(self):
-      """
-      Retourne la liste des fils de self
-      """
-      return []
-    
+        """
+        Retourne la liste des fils de self
+        """
+        return []
+
 # ---------------------------------------------------------------------------
 #       Methodes permettant la modification et la lecture des attributs
 #       du parametre = API graphique du PARAMETRE pour Panel et EFICAS
 # ---------------------------------------------------------------------------
 
     def getValeur(self):
-      """
-      Retourne la valeur de l'objet PARAMETRE cad son texte
-      """
-      if self.object.valeur is None: return ''
-      else: return self.object.valeur 
+        """
+        Retourne la valeur de l'objet PARAMETRE cad son texte
+        """
+        if self.object.valeur is None: return ''
+        else: return self.object.valeur
 
     def getNom(self):
-      """
-      Retourne le nom du parametre
-      """
-      return self.object.nom
+        """
+        Retourne le nom du parametre
+        """
+        return self.object.nom
 
     def setValeur(self,new_valeur):
-      """
-      Affecte valeur a l'objet PARAMETRE
-      """
-      self.object.setValeur(new_valeur)
+        """
+        Affecte valeur a l'objet PARAMETRE
+        """
+        self.object.setValeur(new_valeur)
 
     def setNom(self,new_nom):
-      """
-      Renomme le parametre
-      """
-      self.object.setNom(new_nom)
-      #self.object.setAttribut('nom',new_nom)
+        """
+        Renomme le parametre
+        """
+        self.object.setNom(new_nom)
+        #self.object.setAttribut('nom',new_nom)
 
     def getFr(self):
-      """
-      Retourne le fr associe au parametre, cad la bulle d'aide pour EFICAS
-      """
-      return tr("Definition d'un parametre")
-    
+        """
+        Retourne le fr associe au parametre, cad la bulle d'aide pour EFICAS
+        """
+        return tr("Definition d'un parametre")
+
 import Extensions.parametre
 treeitem =PARAMTreeItem
 objet = Extensions.parametre.PARAMETRE
index 35a75c8d7de6277aa1930e625e202028294967f3..f4088abc22364098a29803c7b083e1e894f5e60a 100644 (file)
@@ -37,8 +37,7 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNode):
 
 class ProcEtapeTreeItem(compooper.EtapeTreeItem):
     itemNode=Node
-  
+
 import Accas
 treeitem = ProcEtapeTreeItem
-objet = Accas.PROC_ETAPE    
-
+objet = Accas.PROC_ETAPE
index 5dde81690f3b3005ae0f1b6e454c32429bbc57c2..e58363c3a85d7a214b491e2540e5debfcc39e1bb 100644 (file)
@@ -21,7 +21,7 @@
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import types,os
@@ -35,772 +35,796 @@ from Editeur      import Objecttreeitem
 from InterfaceQT4 import browser
 from Noyau.N_CR   import justifyText
 from Accas        import SalomeEntry
-    
-class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal):    
+from Accas        import ASSD
+from Accas        import UserASSD
+from Accas        import UserASSDMultiple
+
+class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal):
 
     def createPopUpMenu(self):
         typeNode.PopUpMenuNodeMinimal.createPopUpMenu(self)
 
 
     def getPanelGroupe(self,parentQt,maCommande):
+        #print (self,self.item.nom, )
         maDefinition=self.item.get_definition()
         monObjet=self.item.object
         monNom=self.item.nom
 
-        # label informatif 
+        # label informatif
         if monObjet.isInformation():
-          from InterfaceQT4.monWidgetInfo import MonWidgetInfo
-          widget=MonWidgetInfo(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-          self.widget=widget
-          return widget
+            from InterfaceQT4.monWidgetInfo import MonWidgetInfo
+            widget=MonWidgetInfo(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+            self.widget=widget
+            return widget
 
 
-      # Attention l ordre des if est important
-      # Attention il faut gerer les blocs et les facteurs 
-      # a gerer comme dans composimp
-      # Gestion des matrices
+        # Attention l ordre des if est important
+        # Attention il faut gerer les blocs et les facteurs
+        # a gerer comme dans composimp
+        # Gestion des matrices
         if self.item.waitMatrice ():
-          from InterfaceQT4.monWidgetMatrice import MonWidgetMatrice
-          widget=MonWidgetMatrice(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-          self.widget=widget
-          return widget
+            from InterfaceQT4.monWidgetMatrice import MonWidgetMatrice
+            widget=MonWidgetMatrice(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+            self.widget=widget
+            return widget
 
-        #print "____________________________", monNom, self.item.waitCo() 
-        #print "____________________________", monNom, self.item.waitAssd() 
+        #print "____________________________", monNom, self.item.waitCo()
+        #print "____________________________", monNom, self.item.waitAssd()
         # Gestion d'une seule valeur (eventuellement un tuple ou un complexe)
         if maDefinition.into != [] and maDefinition.into != None:
-            if type(maDefinition.into) ==types.FunctionType : monInto=maDefinition.into() 
+            if type(maDefinition.into) ==types.FunctionType : monInto=maDefinition.into()
             else : monInto = maDefinition.into
 
 
         if maDefinition.max == 1 :
 
         # A verifier
-          if maDefinition.intoSug != [] and maDefinition.intoSug != None:
-            from InterfaceQT4.monWidgetCBIntoSug import MonWidgetCBIntoSug
-            widget=MonWidgetCBIntoSug(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-          elif  maDefinition.into != [] and maDefinition.into != None:
-            if maDefinition.fenetreIhm=='menuDeroulant' :
-              from InterfaceQT4.monWidgetCB import MonWidgetCB
-              widget=MonWidgetCB(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-            elif len(monInto) < 4 :
-              from InterfaceQT4.monWidgetRadioButton import MonWidgetRadioButton
-              widget=MonWidgetRadioButton(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-            elif len(monInto) < 7 :
-              from InterfaceQT4.monWidget4a6RadioButton import MonWidget4a6RadioButton
-              widget=MonWidget4a6RadioButton(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-            else :
-              from InterfaceQT4.monWidgetCB import MonWidgetCB
-              widget=MonWidgetCB(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-
-          elif self.item.waitBool() :
-            from InterfaceQT4.monWidgetSimpBool import MonWidgetSimpBool
-            widget=MonWidgetSimpBool(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-          elif self.item.waitFichier():
-            from InterfaceQT4.monWidgetSimpFichier import MonWidgetSimpFichier
-            widget=MonWidgetSimpFichier(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-
-          # PNPNPN - a faire
-          elif self.item.waitDate():
-            from InterfaceQT4.monWidgetDate import MonWidgetDate
-            widget=MonWidgetDate(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-          elif self.item.waitHeure():
-            from InterfaceQT4.monWidgetHeure import MonWidgetHeure
-            widget=MonWidgetHeure(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-
-          elif self.item.waitTuple() :
-            num=self.item.object.definition.type[0].ntuple
-            nomDeLaClasse = 'MonWidgetSimpTuple'+str(num)
-            nomDuFichier  = 'InterfaceQT4.monWidgetSimpTupleN'
-            try :
-            #if 1 :
-               _temp = __import__(nomDuFichier, globals(), locals(), [nomDeLaClasse], 0)
-               #print (_temp)
-               MonWidgetSimpTuple =  getattr(_temp,nomDeLaClasse)
-            except :
-               print ("Pas de Tuple de longueur : ", num)
-            #   print ("Prevenir la maintenance ")
-            widget=MonWidgetSimpTuple(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-
-          elif self.item.waitComplex():
-            from InterfaceQT4.monWidgetSimpComplexe import MonWidgetSimpComplexe
-            widget=MonWidgetSimpComplexe(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-
-          elif self.item.waitCo():
-            if len(self.item.getSdAvantDuBonType()) == 0 :
-               from InterfaceQT4.monWidgetUniqueSDCO import MonWidgetUniqueSDCO
-               widget=MonWidgetUniqueSDCO(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-            else :      
-               from InterfaceQT4.monWidgetSDCOInto import MonWidgetSDCOInto
-               widget=MonWidgetSDCOInto(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-          elif self.item.waitAssd():
-            if len(self.item.getSdAvantDuBonType()) == 0 :
-               from InterfaceQT4.monWidgetVide import MonWidgetVide
-               widget=MonWidgetVide(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-            elif len(self.item.getSdAvantDuBonType()) < 4 :
-              from InterfaceQT4.monWidgetRadioButton import MonWidgetRadioButtonSD
-              widget=MonWidgetRadioButtonSD(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-            elif len(self.item.getSdAvantDuBonType()) < 7 :
-              from InterfaceQT4.monWidget4a6RadioButton import MonWidget4a6RadioButtonSD
-              widget=MonWidget4a6RadioButtonSD(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+            if maDefinition.intoSug != [] and maDefinition.intoSug != None:
+                from InterfaceQT4.monWidgetCBIntoSug import MonWidgetCBIntoSug
+                widget=MonWidgetCBIntoSug(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+            elif  maDefinition.into != [] and maDefinition.into != None:
+                if maDefinition.fenetreIhm=='menuDeroulant' :
+                    from InterfaceQT4.monWidgetCB import MonWidgetCB
+                    widget=MonWidgetCB(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                elif len(monInto) < 4 :
+                    from InterfaceQT4.monWidgetRadioButton import MonWidgetRadioButton
+                    widget=MonWidgetRadioButton(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                elif len(monInto) < 7 :
+                    from InterfaceQT4.monWidget4a6RadioButton import MonWidget4a6RadioButton
+                    widget=MonWidget4a6RadioButton(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                else :
+                    from InterfaceQT4.monWidgetCB import MonWidgetCB
+                    widget=MonWidgetCB(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+
+            elif self.item.waitBool() :
+                from InterfaceQT4.monWidgetSimpBool import MonWidgetSimpBool
+                widget=MonWidgetSimpBool(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+            elif self.item.waitFichier():
+                from InterfaceQT4.monWidgetSimpFichier import MonWidgetSimpFichier
+                widget=MonWidgetSimpFichier(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+
+            # PNPNPN - a faire
+            elif self.item.waitDate():
+                from InterfaceQT4.monWidgetDate import MonWidgetDate
+                widget=MonWidgetDate(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+            elif self.item.waitHeure():
+                from InterfaceQT4.monWidgetHeure import MonWidgetHeure
+                widget=MonWidgetHeure(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+
+            elif self.item.waitTuple() :
+                num=self.item.object.definition.type[0].ntuple
+                nomDeLaClasse = 'MonWidgetSimpTuple'+str(num)
+                nomDuFichier  = 'InterfaceQT4.monWidgetSimpTupleN'
+                try :
+                #if 1 :
+                    _temp = __import__(nomDuFichier, globals(), locals(), [nomDeLaClasse], 0)
+                    #print (_temp)
+                    MonWidgetSimpTuple =  getattr(_temp,nomDeLaClasse)
+                    #print (MonWidgetSimpTuple)
+                except :
+                    print ("Pas de Tuple de longueur : ", num)
+                #   print ("Prevenir la maintenance ")
+                widget=MonWidgetSimpTuple(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+
+            elif self.item.waitComplex():
+                from InterfaceQT4.monWidgetSimpComplexe import MonWidgetSimpComplexe
+                widget=MonWidgetSimpComplexe(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+
+            elif self.item.waitCo():
+                if len(self.item.getSdAvantDuBonType()) == 0 :
+                    from InterfaceQT4.monWidgetUniqueSDCO import MonWidgetUniqueSDCO
+                    widget=MonWidgetUniqueSDCO(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                else :
+                    from InterfaceQT4.monWidgetSDCOInto import MonWidgetSDCOInto
+                    widget=MonWidgetSDCOInto(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+            elif self.item.waitAssd():
+
+                # PN - pour ne pas appeller trop souvent self.item.getSdAvantDuBonType()
+                if not (self.item.waitUserAssdOrAssdMultipleEnCreation()) : maListe=self.item.getSdAvantDuBonType()
+                if self.item.waitUserAssdOrAssdMultipleEnCreation() :
+                    from InterfaceQT4.monWidgetCreeUserAssd import MonWidgetCreeUserAssd
+                    widget=MonWidgetCreeUserAssd(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                #elif len(self.item.getSdAvantDuBonType()) == 0 :
+                elif len(maListe) == 0 :
+                    from InterfaceQT4.monWidgetVide import MonWidgetVide
+                    widget=MonWidgetVide(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                #elif len(self.item.getSdAvantDuBonType()) < 4 :
+                elif len(maListe) < 4 :
+                    from InterfaceQT4.monWidgetRadioButton import MonWidgetRadioButtonSD
+                    widget=MonWidgetRadioButtonSD(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                #elif len(self.item.getSdAvantDuBonType()) < 7 :
+                elif len(maListe) < 7 :
+                    from InterfaceQT4.monWidget4a6RadioButton import MonWidget4a6RadioButtonSD
+                    widget=MonWidget4a6RadioButtonSD(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                else :
+                    from InterfaceQT4.monWidgetCB import MonWidgetCBSD
+                    widget=MonWidgetCBSD(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+
+            elif  self.item.waitSalome() and self.editor.salome:
+                from InterfaceQT4.monWidgetSimpSalome import MonWidgetSimpSalome
+                widget=MonWidgetSimpSalome(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+
+            elif self.item.waitTxm():
+                from InterfaceQT4.monWidgetSimpTxt import MonWidgetSimpTxt
+                widget=MonWidgetSimpTxt(self,maDefinition,monNom,monObjet,parentQt,maCommande)
             else :
-              from InterfaceQT4.monWidgetCB import MonWidgetCBSD
-              widget=MonWidgetCBSD(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-          
-          elif  self.item.waitSalome() and self.editor.salome:
-            from InterfaceQT4.monWidgetSimpSalome import MonWidgetSimpSalome
-            widget=MonWidgetSimpSalome(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-
-          elif self.item.waitTxm():
-            from InterfaceQT4.monWidgetSimpTxt import MonWidgetSimpTxt
-            widget=MonWidgetSimpTxt(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-          else :
-            from InterfaceQT4.monWidgetSimpBase import MonWidgetSimpBase
-            widget=MonWidgetSimpBase(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                from InterfaceQT4.monWidgetSimpBase import MonWidgetSimpBase
+                widget=MonWidgetSimpBase(self,maDefinition,monNom,monObjet,parentQt,maCommande)
 
         # Gestion des listes
         else :
-          if maDefinition.intoSug != [] and maDefinition.intoSug != None:
-               if self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees) : 
-                 from InterfaceQT4.monWidgetIntoSug import MonWidgetIntoSug
-                 widget=MonWidgetIntoSug(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-               else :
-                  from InterfaceQT4.monWidgetPlusieursPlie import MonWidgetPlusieursPlie
-                  widget=MonWidgetPlusieursPlie(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-          #if maDefinition.into != [] and maDefinition.into != None:
-          # Attention pas fini --> on attend une liste de ASSD avec ordre
-          elif self.item.waitAssd() and self.item.isListSansOrdreNiDoublon():
-               listeAAfficher = self.item.getSdAvantDuBonType()
-               if len(listeAAfficher) == 0:
-                 from InterfaceQT4.monWidgetVide import MonWidgetVide
-                 widget = MonWidgetVide(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-               else :
-                 from InterfaceQT4.monWidgetPlusieursInto import MonWidgetPlusieursInto
-                 widget=MonWidgetPlusieursInto(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-          elif self.item.waitAssd() :
-               listeAAfficher = self.item.getSdAvantDuBonType()
-               mctype=maDefinition.type[0]
-               enable_salome_selection = self.editor.salome and \
-                      (('grma' in repr(mctype)) or ('grno' in repr(mctype)) or ('SalomeEntry' in repr(mctype)) or \
-                      (hasattr(mctype, "enable_salome_selection") and mctype.enable_salome_selection))
-               if enable_salome_selection:
-                  from InterfaceQT4.monWidgetPlusieursBase import MonWidgetPlusieursBase
-                  widget=MonWidgetPlusieursBase(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-               elif len(listeAAfficher) == 0:
-                 from InterfaceQT4.monWidgetVide import MonWidgetVide
-                 widget = MonWidgetVide(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-               elif self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees) : 
-                 from InterfaceQT4.monWidgetPlusieursASSDIntoOrdonne import MonWidgetPlusieursASSDIntoOrdonne
-                 widget=MonWidgetPlusieursASSDIntoOrdonne(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-               else :
-                  from InterfaceQT4.monWidgetPlusieursPlie import MonWidgetPlusieursPlieASSD
-                  widget=MonWidgetPlusieursPlieASSD(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-          elif self.item.waitTuple() :
-            if self.item.object.definition.fenetreIhm == 'Tableau' :
-               from InterfaceQT4.monWidgetTableau import MonWidgetTableau
-               widget=MonWidgetTableau(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-            else  :
-               num=self.item.object.definition.type[0].ntuple
-               nomDeLaClasse = 'MonWidgetPlusieursTuple'+str(num)
-               nomDuFichier  = 'InterfaceQT4.monWidgetPlusieursTupleN'
-               #try:
-               if 1 :
-                  _temp = __import__(nomDuFichier, globals(), locals(), [nomDeLaClasse], 0)
-                  MonWidgetPlusieursTuple =  getattr(_temp,nomDeLaClasse)
-               #except :
-               #   print ("Pas de Tuple de longueur : ", num)
-               #   print ("Prevenir la maintenance ")
-               widget=MonWidgetPlusieursTuple(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-
-          elif self.item.hasInto():
-            if self.item.isListSansOrdreNiDoublon():
-               
-               if self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees) : 
-                  from InterfaceQT4.monWidgetPlusieursInto import MonWidgetPlusieursInto
-                  widget=MonWidgetPlusieursInto(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-               else :
-                  from InterfaceQT4.monWidgetPlusieursPlie import MonWidgetPlusieursPlie
-                  widget=MonWidgetPlusieursPlie(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-            else :
-               if self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees) : 
-                  from InterfaceQT4.monWidgetPlusieursIntoOrdonne import MonWidgetPlusieursIntoOrdonne
-                  widget=MonWidgetPlusieursIntoOrdonne(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-               else :
-                  from InterfaceQT4.monWidgetPlusieursPlie import MonWidgetPlusieursPlie
-                  widget=MonWidgetPlusieursPlie(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-          else :
-            if self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees)  : 
-               from InterfaceQT4.monWidgetPlusieursBase import MonWidgetPlusieursBase
-               widget=MonWidgetPlusieursBase(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+            if maDefinition.intoSug != [] and maDefinition.intoSug != None:
+                if self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees) :
+                    from InterfaceQT4.monWidgetIntoSug import MonWidgetIntoSug
+                    widget=MonWidgetIntoSug(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                else :
+                    from InterfaceQT4.monWidgetPlusieursPlie import MonWidgetPlusieursPlie
+                    widget=MonWidgetPlusieursPlie(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+            #if maDefinition.into != [] and maDefinition.into != None:
+            # Attention pas fini --> on attend une liste de ASSD avec ordre
+            elif self.item.waitAssd() and self.item.isListSansOrdreNiDoublon():
+                listeAAfficher = self.item.getSdAvantDuBonType()
+                if len(listeAAfficher) == 0:
+                    from InterfaceQT4.monWidgetVide import MonWidgetVide
+                    widget = MonWidgetVide(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                else :
+                    from InterfaceQT4.monWidgetPlusieursInto import MonWidgetPlusieursInto
+                    widget=MonWidgetPlusieursInto(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+            elif self.item.waitAssd()  and not self.item.waitUserAssdOrAssdMultipleEnCreation() :
+                listeAAfficher = self.item.getSdAvantDuBonType()
+                # a changer selon UserASSD ou UserASSDMultiple
+                mctype=maDefinition.type[0]
+                enable_salome_selection = self.editor.salome and \
+                       (('grma' in repr(mctype)) or ('grno' in repr(mctype)) or ('SalomeEntry' in repr(mctype)) or \
+                       (hasattr(mctype, "enable_salome_selection") and mctype.enable_salome_selection))
+                if enable_salome_selection:
+                    from InterfaceQT4.monWidgetPlusieursBase import MonWidgetPlusieursBase
+                    widget=MonWidgetPlusieursBase(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                elif len(listeAAfficher) == 0:
+                    from InterfaceQT4.monWidgetVide import MonWidgetVide
+                    widget = MonWidgetVide(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                elif self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees) :
+                    from InterfaceQT4.monWidgetPlusieursASSDIntoOrdonne import MonWidgetPlusieursASSDIntoOrdonne
+                    widget=MonWidgetPlusieursASSDIntoOrdonne(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                else :
+                    from InterfaceQT4.monWidgetPlusieursPlie import MonWidgetPlusieursPlieASSD
+                    widget=MonWidgetPlusieursPlieASSD(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+            elif self.item.waitTuple() :
+                if self.item.object.definition.fenetreIhm == 'Tableau' :
+                    from InterfaceQT4.monWidgetTableau import MonWidgetTableau
+                    widget=MonWidgetTableau(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                else  :
+                    num=self.item.object.definition.type[0].ntuple
+                    nomDeLaClasse = 'MonWidgetPlusieursTuple'+str(num)
+                    nomDuFichier  = 'InterfaceQT4.monWidgetPlusieursTupleN'
+                    try:
+                        _temp = __import__(nomDuFichier, globals(), locals(), [nomDeLaClasse], 0)
+                        MonWidgetPlusieursTuple =  getattr(_temp,nomDeLaClasse)
+                    except :
+                        print ("Pas de Tuple de longueur : ", num)
+                        print ("Prevenir la maintenance ")
+                    widget=MonWidgetPlusieursTuple(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+
+            elif self.item.hasInto():
+                if self.item.isListSansOrdreNiDoublon():
+
+                    if self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees) :
+                        from InterfaceQT4.monWidgetPlusieursInto import MonWidgetPlusieursInto
+                        widget=MonWidgetPlusieursInto(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                    else :
+                        from InterfaceQT4.monWidgetPlusieursPlie import MonWidgetPlusieursPlie
+                        widget=MonWidgetPlusieursPlie(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                else :
+                    if self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees) :
+                        from InterfaceQT4.monWidgetPlusieursIntoOrdonne import MonWidgetPlusieursIntoOrdonne
+                        widget=MonWidgetPlusieursIntoOrdonne(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                    else :
+                        from InterfaceQT4.monWidgetPlusieursPlie import MonWidgetPlusieursPlie
+                        widget=MonWidgetPlusieursPlie(self,maDefinition,monNom,monObjet,parentQt,maCommande)
             else :
-               from InterfaceQT4.monWidgetPlusieursPlie import MonWidgetPlusieursPlie
-               widget=MonWidgetPlusieursPlie(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                if self.item.waitUserAssdOrAssdMultipleEnCreation() :
+                    from InterfaceQT4.monWidgetPlusieursCreeUserAssd import MonWidgetPlusieursCreeUserAssd
+                    widget=MonWidgetPlusieursCreeUserAssd(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                elif self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees)  :
+                    from InterfaceQT4.monWidgetPlusieursBase import MonWidgetPlusieursBase
+                    widget=MonWidgetPlusieursBase(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+                else :
+                    from InterfaceQT4.monWidgetPlusieursPlie import MonWidgetPlusieursPlie
+                    widget=MonWidgetPlusieursPlie(self,maDefinition,monNom,monObjet,parentQt,maCommande)
 
         self.widget=widget
         return widget
-         
-    
+
+
 class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
-  itemNode=Node
-
-  def init(self) :
-      self.expandable = 0
-  
-
-  #-----------------------------------------------
-  #
-  # Methodes liees aux informations sur le Panel
-  # ou au mot-clef simple
-  #
-  #-----------------------------------------------
-  # isList
-  # hasInto
-  # getMinMax
-  # getMultiplicite
-  # getIntervalle
-  # getListeValeurs
-  # getListePossible
-
-  def isList(self):
-      """
-          Cette methode indique si le mot cle simple attend une liste (valeur de retour 1)
-          ou s'il n'en attend pas (valeur de retour 0)
-
-          Deux cas principaux peuvent se presenter : avec validateurs ou bien sans.
-          Dans le cas sans validateur, l'information est donnee par l'attribut max
-          de la definition du mot cle.
-          Dans le cas avec validateur, il faut combiner l'information precedente avec
-          celle issue de l'appel de la methode isList sur le validateur.On utilisera
-          l'operateur ET pour effectuer cette combinaison (AndVal).
-      """
-      is_a_list=0
-      min,max = self.getMinMax()
-      assert (min <= max)
-      if max > 1 :
-                is_a_list=1
-      # Dans le cas avec validateurs, pour que le mot cle soit considere
-      # comme acceptant une liste, il faut que max soit superieur a 1
-      # ET que la methode isList du validateur retourne 1. Dans les autres cas
-      # on retournera 0 (n'attend pas de liste)
-      if self.definition.validators :
-         is_a_list= self.definition.validators.isList() * is_a_list
-      return is_a_list 
-
-  def isListSansOrdreNiDoublon(self):
-      if self.definition.homo=="SansOrdreNiDoublon" : return 1
-      return 0 
-
-
-  def hasInto(self):
-      """
-          Cette methode indique si le mot cle simple propose un choix (valeur de retour 1)
-          ou s'il n'en propose pas (valeur de retour 0)
-
-          Deux cas principaux peuvent se presenter : avec validateurs ou bien sans.
-          Dans le cas sans validateur, l'information est donnee par l'attribut into
-          de la definition du mot cle.
-          Dans le cas avec validateurs, pour que le mot cle soit considere
-          comme proposant un choix, il faut que into soit present OU
-          que la methode hasInto du validateur retourne 1. Dans les autres cas
-          on retournera 0 (ne propose pas de choix)
-      """
-      has_an_into=0
-      if self.definition.into:
-               has_an_into=1
-      elif self.definition.validators :
-         has_an_into= self.definition.validators.hasInto()
-      return has_an_into
-
-  def hasIntoSug(self):
-      if self.definition.intoSug: return 1
-      return 0
-
-
-  def getMinMax(self):
-      """ Retourne les valeurs min et max de la definition de object """
-      return self.object.getMinMax()
-
-  def getMultiplicite(self):
-      """ A preciser.
-          Retourne la multiplicite des valeurs affectees a l'objet
-          represente par l'item. Pour le moment retourne invariablement 1.
-      """
-      return 1
-
-  def getIntervalle(self):
-      """ 
-           Retourne le domaine de valeur attendu par l'objet represente 
-           par l'item.
-      """
-      return self.object.getintervalle()
-
-  def getListeValeurs(self) :
-      """ Retourne la liste des valeurs de object """
-      valeurs=self.object.getListeValeurs()
-      try :
-        if "R" in self.object.definition.type:
-           clef=self.object.getNomConcept()
-           if clef in self.appli.dict_reels:
-              if type(valeurs) == tuple:
-                 valeurs_reelles=[]
-                 for val in valeurs :
-                    if val in self.appli.dict_reels[clef]:
-                       valeurs_reelles.append(self.appli.dict_reels[clef][val])
+    itemNode=Node
+
+    def init(self) :
+        self.expandable = 0
+
+
+    #-----------------------------------------------
+    #
+    # Methodes liees aux informations sur le Panel
+    # ou au mot-clef simple
+    #
+    #-----------------------------------------------
+    # isList
+    # hasInto
+    # getMinMax
+    # getMultiplicite
+    # getIntervalle
+    # getListeValeurs
+    # getListePossible
+
+    def isList(self):
+        """
+            Cette methode indique si le mot cle simple attend une liste (valeur de retour 1)
+            ou s'il n'en attend pas (valeur de retour 0)
+
+            Deux cas principaux peuvent se presenter : avec validateurs ou bien sans.
+            Dans le cas sans validateur, l'information est donnee par l'attribut max
+            de la definition du mot cle.
+            Dans le cas avec validateur, il faut combiner l'information precedente avec
+            celle issue de l'appel de la methode isList sur le validateur.On utilisera
+            l'operateur ET pour effectuer cette combinaison (AndVal).
+        """
+        is_a_list=0
+        min,max = self.getMinMax()
+        assert (min <= max)
+        if max > 1 :
+            is_a_list=1
+        # Dans le cas avec validateurs, pour que le mot cle soit considere
+        # comme acceptant une liste, il faut que max soit superieur a 1
+        # ET que la methode isList du validateur retourne 1. Dans les autres cas
+        # on retournera 0 (n'attend pas de liste)
+        if self.definition.validators :
+            is_a_list= self.definition.validators.isList() * is_a_list
+        return is_a_list
+
+    def isListSansOrdreNiDoublon(self):
+        if self.definition.homo=="SansOrdreNiDoublon" : return 1
+        return 0
+
+
+    def hasInto(self):
+        """
+            Cette methode indique si le mot cle simple propose un choix (valeur de retour 1)
+            ou s'il n'en propose pas (valeur de retour 0)
+
+            Deux cas principaux peuvent se presenter : avec validateurs ou bien sans.
+            Dans le cas sans validateur, l'information est donnee par l'attribut into
+            de la definition du mot cle.
+            Dans le cas avec validateurs, pour que le mot cle soit considere
+            comme proposant un choix, il faut que into soit present OU
+            que la methode hasInto du validateur retourne 1. Dans les autres cas
+            on retournera 0 (ne propose pas de choix)
+        """
+        has_an_into=0
+        if self.definition.into:
+            has_an_into=1
+        elif self.definition.validators :
+            has_an_into= self.definition.validators.hasInto()
+        return has_an_into
+
+    def hasIntoSug(self):
+        if self.definition.intoSug: return 1
+        return 0
+
+
+    def getMinMax(self):
+        """ Retourne les valeurs min et max de la definition de object """
+        return self.object.getMinMax()
+
+    def getMultiplicite(self):
+        """ A preciser.
+            Retourne la multiplicite des valeurs affectees a l'objet
+            represente par l'item. Pour le moment retourne invariablement 1.
+        """
+        return 1
+
+    def getIntervalle(self):
+        """
+             Retourne le domaine de valeur attendu par l'objet represente
+             par l'item.
+        """
+        return self.object.getintervalle()
+
+    def getListeValeurs(self) :
+        """ Retourne la liste des valeurs de object """
+        valeurs=self.object.getListeValeurs()
+        try :
+            if "R" in self.object.definition.type:
+                clef=self.object.getNomConcept()
+                if clef in self.appliEficas.dict_reels:
+                    if type(valeurs) == tuple:
+                        valeurs_reelles=[]
+                        for val in valeurs :
+                            if val in self.appliEficas.dict_reels[clef]:
+                                valeurs_reelles.append(self.appliEficas.dict_reels[clef][val])
+                            else :
+                                valeurs_reelles.append(val)
                     else :
-                       valeurs_reelles.append(val)
-              else :
-                 if valeurs in self.appli.dict_reels[clef]:
-                    valeurs_reelles=self.appli.dict_reels[clef][valeurs]
-              valeurs=valeurs_reelles
-      except :
-        pass
-      return valeurs
-    
-  def getListePossible(self,listeActuelle=[]):
-      if hasattr(self.definition.validators,'into'):
-         valeurspossibles = self.definition.validators.into 
-      else:
-         valeurspossibles = self.get_definition().into
-
-      if listeActuelle==[] : return valeurspossibles
-
-      #On ne garde que les items valides
-      listevalideitem=[]
-      if type(valeurspossibles) in (list,tuple) :
-         pass
-      else :
-         valeurspossibles=(valeurspossibles,)
-      for item in valeurspossibles:
-          encorevalide=self.valideItem(item)
-          if encorevalide :
-             listevalideitem.append(item)
-
-      #on ne garde que les choix possibles qui passent le test de valideListePartielle
-      listevalideliste=[]
-      for item in listevalideitem:
-          encorevalide=self.valideListePartielle(item,listeActuelle)
-          if encorevalide :
-              listevalideliste.append(item)
-      #print listevalideliste
-      return listevalideliste
-
-  def getListePossibleAvecSug(self,listeActuelle=[]):
-      if hasattr(self.definition,'intoSug'):
-         valeurspossibles = self.definition.intoSug 
-      else:
-         return listeActuelle
-
-      if listeActuelle==[] :  return valeurspossibles
-      valeurspossibles = valeurspossibles+listeActuelle
-
-      #On ne garde que les items valides
-      listevalideitem=[]
-      if type(valeurspossibles) in (list,tuple) :
-         pass
-      else :
-         valeurspossibles=(valeurspossibles,)
-      for item in valeurspossibles:
-          encorevalide=self.valideItem(item)
-          if encorevalide :
-             listevalideitem.append(item)
-
-      #on ne garde que les choix possibles qui passent le test de valideListePartielle
-      listevalideliste=[]
-      for item in listevalideitem:
-          encorevalide=self.valideListePartielle(item,listeActuelle)
-          if encorevalide :
-              listevalideliste.append(item)
-      return listevalideliste
-
-  def getListeParamPossible(self):
-      liste_param=[]
-      l1,l2=self.jdc.getParametresFonctionsAvantEtape(self.getEtape())
-      for param in self.object.jdc.params:
-          if param.nom not in l1 : continue
-          encorevalide=self.valideItem(param.valeur)
-          if encorevalide:
-             type_param=param.valeur.__class__.__name__
-             for typ in self.definition.type:
-                 if typ=='R':
-                     liste_param.append(param)
-                 if typ=='I' and type_param=='int':
-                     liste_param.append(param)
-                 if typ=='TXM' and type_param=='str':
-                     liste_param.append(repr(param))
-                 if ('grma' in repr(typ)) and type_param=='str':
-                     liste_param.append(param.nom)
-      return liste_param
-
-  #--------------------------------------------------
-  #
-  # Methodes liees a la validite des valeurs saisies
-  #
-  #---------------------------------------------------
-  # valideItem
-  # valideListePartielle
-  # valideListeComplete
-  # infoErreurItem
-  # infoErreurListe
-  # isInIntervalle
-  # isValid
-
-  def valideItem(self,item):
-      """
-        La validation est realisee directement par l'objet
-      """
-      return self.object.valideItem(item)
-     
-  def valideListePartielle(self,item,listecourante):
-      #On protege la liste en entree en la copiant
-      valeur=list(listecourante)
-      if item : valeur.append(item)
-      return self.object.validValeurPartielle(valeur)
-
-  def valideListeComplete (self,valeur):
-      return self.object.validValeur(valeur)
-
-  def infoErreurItem(self) :
-      commentaire=""
-      if self.definition.validators :
-         commentaire=self.definition.validators.infoErreurItem()
-      return commentaire
-      
-  def aide(self) :
-      commentaire=""
-      if self.definition.validators :
-         commentaire=self.definition.validators.aide()
-      return commentaire
-
-  def infoErreurListe(self) :
-      commentaire=""
-      if self.definition.validators :
-         commentaire=self.definition.validators.infoErreurListe()
-      return commentaire
-
-  def isInIntervalle(self,valeur):
-      """ 
-          Retourne 1 si la valeur est dans l'intervalle permis par
-          l'objet represente par l'item.
-      """
-      return self.valideItem(valeur)
-
-  def isValid(self):
-    valide=self.object.isValid()
-    return valide
-
-  #--------------------------------------------------
-  #
-  # Autres ...
-  #
-  #---------------------------------------------------
-  # getIconName
-  # getText
-  # setValeurCo
-  # getSdAvantDuBonType
-
-
-  def getIconName(self):
-    if self.appli.maConfiguration.differencieSiDefaut and self.isValid():
-      if self.object.definition.defaut != None :
-         if self.object.valeur == self.object.definition.defaut : return "ast-green-dark-ball"
-         if self.object.definition.max > 1 and list(self.object.valeur) == list(self.object.definition.defaut) : return "ast-green-dark-ball"
-      return "ast-green-ball"
-    elif self.isValid():
-      return "ast-green-ball"
-    elif self.object.isOblig():
-      return "ast-red-ball"
-    else:
-      return "ast-yel-ball"
-
-  def getText(self):
-    """
-    Classe SIMPTreeItem
-    Retourne le texte a afficher dans l'arbre representant la valeur de l'objet
-    pointe par self 
-    """
-    text= self.object.getText()
-    if text == None : text=""
-    return text
-    
-
-  def setValeurCo(self,nom_co):
-      """
-      Affecte au MCS pointé par self l'objet de type CO et de nom nom_co
-      """
-      ret = self.object.setValeurCo(nom_co)
-      #print "setValeurCo",ret
-      return ret
-      
-  def getSdAvantDuBonType(self):
-      """
-      Retourne la liste des noms des SD présentes avant l'étape qui contient
-      le MCS pointé par self et du type requis par ce MCS
-      """
-      a=self.object.etape.parent.getSdAvantDuBonType(self.object.etape,self.object.definition.type)
-      return a
-
-  def getSdAvantDuBonTypePourTypeDeBase(self):
-      a=self.object.jdc.getSdAvantDuBonTypePourTypeDe_Base(self.object.etape,"LASSD")
-      return a
-
-
-
-  def deleteValeurCo(self,valeur=None):
-      """
-           Supprime la valeur du mot cle (de type CO)
-           il faut propager la destruction aux autres etapes
-      """
-      if not valeur : valeur=self.object.valeur
-      # XXX faut il vraiment appeler delSdprod ???
-      #self.object.etape.parent.delSdprod(valeur)
-      self.object.etape.parent.deleteConcept(valeur)
-
-  #-----------------------------------------------
-  #
-  # Methodes liees au type de l objet attendu
-  #
-  #-----------------------------------------------
-  # waitCo 
-  # waitGeom
-  # waitComplex
-  # waitReel
-  # waitAssd
-  # getType
-
-  def waitCo(self):
-      """
-      Méthode booléenne qui retourne 1 si l'objet pointé par self
-      attend un objet de type ASSD qui n'existe pas encore (type CO()),
-      0 sinon
-      """
-      return self.object.waitCo()
-
-  def waitFichier(self):
-      maDefinition=self.object.definition
-      try : 
-        if ('Repertoire' in maDefinition.type[0]) or ('Fichier' in maDefinition.type[0]) :
-           return 1
-      except :
-           return 0
-
-  def waitGeom(self):
-      """
-      Méthode booléenne qui retourne 1 si l'objet pointé par self
-      attend un objet GEOM, 0 sinon
-      """
-      return self.object.waitGeom()
-
-  def waitTxm(self):
-     return self.object.waitTxm()
-
-    
-  def waitComplex(self):
-      """ Méthode booléenne qui retourne 1 si l'objet pointé par self
-      attend un complexe, 0 sinon """
-      if 'C' in self.object.definition.type:
-          return 1
-      else:
-          return 0
-
-  def waitReel(self):
-      """ Méthode booléenne qui retourne 1 si l'objet pointé par self
-      attend un réel, 0 sinon """
-      if 'R' in self.object.definition.type:
-          return 1
-      else:
-          return 0
-
-  def waitTuple(self) :
-      return  self.object.waitTuple()
-
-  def waitDate(self):
-      """ Méthode booléenne qui retourne 1 si l'objet pointé par self
-      attend un réel, 0 sinon """
-      if 'DateHHMMAAAA' in self.object.definition.type:
-          return 1
-      else:
-          return 0
-        
-  def waitHeure(self):
-      """ Méthode booléenne qui retourne 1 si l'objet pointé par self
-      attend un réel, 0 sinon """
-      if 'HeureHHMMSS' in self.object.definition.type:
-          return 1
-      else:
-          return 0
-        
-        
-        
-  def waitTuple(self):
-      """ Méthode booléenne qui retourne 1 si l'objet pointé par self
-      attend un Tuple, 0 sinon """
-      for ss_type in self.object.definition.type:
-          if repr(ss_type).find('Tuple') != -1 :
-             return 1
-      return 0
-
-  def waitMatrice(self):
-      """ Méthode booléenne qui retourne 1 si l'objet pointé par self
-      attend un Tuple, 0 sinon """
-      for ss_type in self.object.definition.type:
-          if repr(ss_type).find('Matrice') != -1 :
-             return 1
-      return 0
-
-  def waitAssd(self):
-      """Méthode booléenne qui retourne 1 si l'objet pointé par self
-      attend un objet de type ASSD ou dérivé, 0 sinon """
-      return self.object.waitAssd()
-    
-  def waitAssdOrTypeBase(self) :
-      boo=0
-      if len(self.object.definition.type) > 1 :
-         if self.waitReel() :
-            boo = 1
-         if 'I' in self.object.definition.type :
-            boo = 1
-      return boo
-
-  def waitSalome(self):
-      monType = self.object.definition.type[0]
-      if 'grma' in repr(monType) : return True
-      if 'grno' in repr(monType) : return True
-      try :
-         if issubclass(monType, SalomeEntry) : return True
-      except :
-         pass
-      return False
-   
-  def getType(self):
-      """ 
-          Retourne le type de valeur attendu par l'objet représenté par l'item.
-      """
-      return self.object.getType()
-
-  #-----------------------------------------------------
-  #
-  # Methodes liees  a l evaluation de la valeur saisie
-  #
-  #-----------------------------------------------------
-  # evalValeur
-  # evalValeurItem
-  # isCO
-  # traiteReel
-
-  def evalValeur(self,valeur):
-      """ Lance l'interpretation de 'valeur' (chaine de caracteres) comme valeur de self :
-             - retourne l'objet associe si on a pu interpreter (entier, reel, ASSD,...)
-             - retourne 'valeur' (chaine de caracteres) sinon
-      """
-      newvaleur=self.evalVal(valeur)
-      return newvaleur,1
-
-
-  def evalValeurItem(self,valeur):
-      """ Lance l'interprétation de 'valeur' qui doit ne pas etre un tuple 
-          - va retourner la valeur de retour et la validite
-            selon le type de l objet attendu
-          - traite les reels et les parametres 
-      """ 
-      #print "evalValeurItem",valeur
-      if valeur==None or valeur == "" :
-         return None,0
-      validite=1
-      if self.waitReel():
-             valeurinter = self.traiteReel(valeur)
-             if valeurinter != None :
+                        if valeurs in self.appliEficas.dict_reels[clef]:
+                            valeurs_reelles=self.appliEficas.dict_reels[clef][valeurs]
+                    valeurs=valeurs_reelles
+        except :
+            pass
+        return valeurs
+
+    def getListePossible(self,listeActuelle=[]):
+        if hasattr(self.definition.validators,'into'):
+            valeurspossibles = self.definition.validators.into
+        else:
+            valeurspossibles = self.get_definition().into
+
+        if listeActuelle==[] : return valeurspossibles
+
+        #On ne garde que les items valides
+        listevalideitem=[]
+        if type(valeurspossibles) in (list,tuple) :
+            pass
+        else :
+            valeurspossibles=(valeurspossibles,)
+        for item in valeurspossibles:
+            encorevalide=self.valideItem(item)
+            if encorevalide :
+                listevalideitem.append(item)
+
+        #on ne garde que les choix possibles qui passent le test de valideListePartielle
+        listevalideliste=[]
+        for item in listevalideitem:
+            encorevalide=self.valideListePartielle(item,listeActuelle)
+            if encorevalide :
+                listevalideliste.append(item)
+        #print listevalideliste
+        return listevalideliste
+
+    def getListePossibleAvecSug(self,listeActuelle=[]):
+        if hasattr(self.definition,'intoSug'):
+            valeurspossibles = self.definition.intoSug
+        else:
+            return listeActuelle
+
+        if listeActuelle==[] :  return valeurspossibles
+        valeurspossibles = valeurspossibles+listeActuelle
+
+        #On ne garde que les items valides
+        listevalideitem=[]
+        if type(valeurspossibles) in (list,tuple) :
+            pass
+        else :
+            valeurspossibles=(valeurspossibles,)
+        for item in valeurspossibles:
+            encorevalide=self.valideItem(item)
+            if encorevalide :
+                listevalideitem.append(item)
+
+        #on ne garde que les choix possibles qui passent le test de valideListePartielle
+        listevalideliste=[]
+        for item in listevalideitem:
+            encorevalide=self.valideListePartielle(item,listeActuelle)
+            if encorevalide :
+                listevalideliste.append(item)
+        return listevalideliste
+
+    def getListeParamPossible(self):
+        liste_param=[]
+        l1,l2=self.jdc.getParametresFonctionsAvantEtape(self.getEtape())
+        for param in self.object.jdc.params:
+            if param.nom not in l1 : continue
+            encorevalide=self.valideItem(param.valeur)
+            if encorevalide:
+                type_param=param.valeur.__class__.__name__
+                for typ in self.definition.type:
+                    if typ=='R':
+                        liste_param.append(param)
+                    if typ=='I' and type_param=='int':
+                        liste_param.append(param)
+                    if typ=='TXM' and type_param=='str':
+                        liste_param.append(repr(param))
+                    if ('grma' in repr(typ)) and type_param=='str':
+                        liste_param.append(param.nom)
+        return liste_param
+
+    #--------------------------------------------------
+    #
+    # Methodes liees a la validite des valeurs saisies
+    #
+    #---------------------------------------------------
+    # valideItem
+    # valideListePartielle
+    # valideListeComplete
+    # infoErreurItem
+    # infoErreurListe
+    # isInIntervalle
+    # isValid
+
+    def valideItem(self,item):
+        """
+          La validation est realisee directement par l'objet
+        """
+        return self.object.valideItem(item)
+
+    def valideListePartielle(self,item,listecourante):
+        #On protege la liste en entree en la copiant
+        valeur=list(listecourante)
+        if item : valeur.append(item)
+        return self.object.validValeurPartielle(valeur)
+
+    def valideListeComplete (self,valeur):
+        return self.object.validValeur(valeur)
+
+    def infoErreurItem(self) :
+        commentaire=""
+        if self.definition.validators :
+            commentaire=self.definition.validators.infoErreurItem()
+        return commentaire
+
+    def aide(self) :
+        commentaire=""
+        if self.definition.validators :
+            commentaire=self.definition.validators.aide()
+        return commentaire
+
+    def infoErreurListe(self) :
+        commentaire=""
+        if self.definition.validators :
+            commentaire=self.definition.validators.infoErreurListe()
+        return commentaire
+
+    def isInIntervalle(self,valeur):
+        """
+            Retourne 1 si la valeur est dans l'intervalle permis par
+            l'objet represente par l'item.
+        """
+        return self.valideItem(valeur)
+
+    def isValid(self):
+        valide=self.object.isValid()
+        return valide
+
+    #--------------------------------------------------
+    #
+    # Autres ...
+    #
+    #---------------------------------------------------
+    # getIconName
+    # getText
+    # setValeurCo
+    # getSdAvantDuBonType
+
+
+    def getIconName(self):
+        if self.appliEficas.maConfiguration.differencieSiDefaut and self.isValid():
+            if self.object.definition.defaut != None :
+                if self.object.valeur == self.object.definition.defaut : return "ast-green-dark-ball"
+                if self.object.definition.max > 1 and list(self.object.valeur) == list(self.object.definition.defaut) : return "ast-green-dark-ball"
+            return "ast-green-ball"
+        elif self.isValid():
+            return "ast-green-ball"
+        elif self.object.isOblig():
+            return "ast-red-ball"
+        else:
+            return "ast-yel-ball"
+
+    def getText(self):
+        """
+        Classe SIMPTreeItem
+        Retourne le texte a afficher dans l'arbre representant la valeur de l'objet
+        pointe par self
+        """
+        if  self.waitUserAssdMultiple() or self.object.waitUserAssd() or self.object.waitAssd(): return self.object.nom
+        text = self.object.getText()
+        if text == None : text=""
+        return text
+
+
+    def setValeurCo(self,nomCo):
+        """
+        Affecte au MCS pointe par self l'objet de type CO et de nom nom_co
+        """
+        ret = self.object.setValeurCo(nomCo)
+        #print "setValeurCo",ret
+        return ret
+
+    def getSdAvantDuBonType(self):
+        """
+        Retourne la liste des noms des SD presentes avant l'etape qui contient
+        le MCS pointe par self et du type requis par ce MCS
+        """
+        # A changer pour tenir compte des UserASSDMultiple
+        # ici on passe par parent pour avoir le bon type
+        #if  self.waitUserAssdMultiple() :
+        #    l=self.object.parent.getSdCreeParObjetAvecFiltre(self.object)
+        #    return l
+        if  self.waitUserAssdMultiple() :
+            l=self.object.getUserAssdPossible()
+            return l
+        a=self.object.etape.parent.getSdAvantDuBonType(self.object.etape,self.object.definition.type)
+        if self.waitUserAssd() : l=self.jdc.getSdCreeParObjet(self.object.definition.type)
+        else :l=[]
+        return a+l
+
+    def getSdAvantDuBonTypePourTypeDeBase(self):
+        a=self.object.jdc.getSdAvantDuBonTypePourTypeDe_Base(self.object.etape,"LASSD")
+        return a
+
+    def deleteValeurCo(self,valeur=None):
+        """
+             Supprime la valeur du mot cle (de type CO)
+             il faut propager la destruction aux autres etapes
+        """
+        if not valeur : valeur=self.object.valeur
+        # XXX faut il vraiment appeler delSdprod ???
+        #self.object.etape.parent.delSdprod(valeur)
+        self.object.etape.parent.deleteConcept(valeur)
+
+    #-----------------------------------------------
+    #
+    # Methodes liees au type de l objet attendu
+    #
+    #-----------------------------------------------
+    # waitCo
+    # waitGeom
+    # waitComplex
+    # waitReel
+    # waitAssd
+    # getType
+
+    def waitCo(self):
+        """
+        Methode booleenne qui retourne 1 si l'objet pointe par self
+        attend un objet de type ASSD qui n'existe pas encore (type CO()),
+        0 sinon
+        """
+        return self.object.waitCo()
+
+    def waitFichier(self):
+        maDefinition=self.object.definition
+        try :
+            if ('Repertoire' in maDefinition.type[0]) or ('Fichier' in maDefinition.type[0]) :
+                return 1
+        except :
+            return 0
+
+    def waitGeom(self):
+        """
+        Methode booleenne qui retourne 1 si l'objet pointe par self
+        attend un objet GEOM, 0 sinon
+        """
+        return self.object.waitGeom()
+
+    def waitTxm(self):
+        return self.object.waitTxm()
+
+
+    def waitComplex(self):
+        """ Methode booleenne qui retourne 1 si l'objet pointe par self
+        attend un complexe, 0 sinon """
+        if 'C' in self.object.definition.type:
+            return 1
+        else:
+            return 0
+
+    def waitReel(self):
+        """ Methode booleenne qui retourne 1 si l'objet pointe par self
+        attend un reel, 0 sinon """
+        if 'R' in self.object.definition.type:
+            return 1
+        else:
+            return 0
+
+    def waitTuple(self) :
+        return  self.object.waitTuple()
+
+    def waitDate(self):
+        """ Methode booleenne qui retourne 1 si l'objet pointe par self
+        attend un reel, 0 sinon """
+        if 'DateHHMMAAAA' in self.object.definition.type:
+            return 1
+        else:
+            return 0
+
+    def waitHeure(self):
+        """ Methode booleenne qui retourne 1 si l'objet pointe par self
+        attend un reel, 0 sinon """
+        if 'HeureHHMMSS' in self.object.definition.type:
+            return 1
+        else:
+            return 0
+
+
+
+    def waitTuple(self):
+        """ Methode booleenne qui retourne 1 si l'objet pointe par self
+        attend un Tuple, 0 sinon """
+        for ss_type in self.object.definition.type:
+            if repr(ss_type).find('Tuple') != -1 :
+                return 1
+        return 0
+
+    def waitMatrice(self):
+        """ Methode booleenne qui retourne 1 si l'objet pointe par self
+        attend un Tuple, 0 sinon """
+        for ss_type in self.object.definition.type:
+            if repr(ss_type).find('Matrice') != -1 :
+                return 1
+        return 0
+
+    def waitAssd(self):
+        """Methode booleenne qui retourne 1 si l'objet pointe par self
+        attend un objet de type ASSD ou derive, 0 sinon """
+        return self.object.waitAssd()
+
+    def waitAssdOrTypeBase(self) :
+        boo=0
+        if len(self.object.definition.type) > 1 :
+            if self.waitReel() :
+                boo = 1
+            if 'I' in self.object.definition.type :
+                boo = 1
+        return boo
+
+    def waitSalome(self):
+        monType = self.object.definition.type[0]
+        if 'grma' in repr(monType) : return True
+        if 'grno' in repr(monType) : return True
+        try :
+            if issubclass(monType, SalomeEntry) : return True
+        except :
+            pass
+        return False
+
+    def getType(self):
+        """
+            Retourne le type de valeur attendu par l'objet represente par l'item.
+        """
+        return self.object.getType()
+
+    #-----------------------------------------------------
+    #
+    # Methodes liees  a l evaluation de la valeur saisie
+    #
+    #-----------------------------------------------------
+    # evalValeur
+    # evalValeurItem
+    # isCO
+    # traiteReel
+
+    def evalValeur(self,valeur):
+        """ Lance l'interpretation de 'valeur' (chaine de caracteres) comme valeur de self :
+               - retourne l'objet associe si on a pu interpreter (entier, reel, ASSD,...)
+               - retourne 'valeur' (chaine de caracteres) sinon
+        """
+        newvaleur=self.evalVal(valeur)
+        return newvaleur,1
+
+
+    def evalValeurItem(self,valeur):
+        """ Lance l'interpretation de 'valeur' qui doit ne pas etre un tuple
+            - va retourner la valeur de retour et la validite
+              selon le type de l objet attendu
+            - traite les reels et les parametres
+        """
+        #print "evalValeurItem",valeur
+        if valeur==None or valeur == "" :
+            return None,0
+        validite=1
+        if self.waitReel():
+            valeurinter = self.traiteReel(valeur)
+            if valeurinter != None :
                 valeurretour,validite= self.object.evalValeur(valeurinter)
-             else:
+            else:
                 valeurretour,validite= self.object.evalValeur(valeur)
-      elif self.waitGeom():
-             valeurretour,validite = valeur,1
-      else :
-             valeurretour,validite= self.object.evalValeur(valeur)
-      #print "evalValeurItem",valeurretour,validite
-
-      if validite == 0:
-         if (type(valeur) == bytes  or type(valeur) == str )and self.object.waitTxm():
-            essai_valeur="'" + valeur + "'"
-            valeurretour,validite= self.object.evalValeur(essai_valeur)
-
-      if hasattr(valeurretour,'__class__'):
-         #if valeurretour.__class__.__name__ in ('PARAMETRE','PARAMETRE_EVAL'):
-         if valeurretour.__class__.__name__ in ('PARAMETRE',):
-            validite=1
-
-      #if self.waitCo():
-         # CCAR : il ne faut pas essayer de creer un concept
-         # il faut simplement en chercher un existant ce qui a du etre fait par self.object.evalValeur(valeur)
-         #try:
-            #valeurretour=Accas.CO(valeur)
-         #except:
-            #valeurretour=None
-            #validite=0
-      # on est dans le cas ou on a évalué et ou on n'aurait pas du
-      if self.object.waitTxm() :
-          if type(valeurretour) != bytes:
-             valeurretour=str(valeur)
-             validite=1
-      return valeurretour,validite
-      
-  def isCO(self,valeur=None):
-      """
-         Indique si valeur est un concept produit de la macro
-         Cette méthode n'a de sens que pour un MCSIMP d'une MACRO
-         Si valeur vaut None on teste la valeur du mot cle
-      """
-      # Pour savoir si un concept est un nouveau concept de macro
-      # on regarde s'il est présent dans l'attribut sdprods de l'étape
-      # ou si son nom de classe est CO.
-      # Il faut faire les 2 tests car une macro non valide peut etre
-      # dans un etat pas tres catholique avec des CO pas encore types
-      # et donc pas dans sdprods (resultat d'une exception dans typeSDProd)
-      if not valeur:valeur=self.object.valeur
-      if valeur in self.object.etape.sdprods:return 1
-      #if type(valeur) is not types.InstanceType:return 0
-      if type(valeur) is not object:return 0
-      if valeur.__class__.__name__ == 'CO':return 1
-      return 0
-
-  def isParam(self,valeur) :
-      for param in self.jdc.params:
-          if (repr(param) == valeur):
-             return 1
-      return 0
-
-  def traiteReel(self,valeur):
-      """
-      Cette fonction a pour but de rajouter le '.' en fin de chaine pour un réel
-      ou de détecter si on fait référence a un concept produit par DEFI_VALEUR
-      ou un EVAL ...
-      """
-      valeur = valeur.strip()
-      liste_reels = self.getSdAvantDuBonType()
-      if valeur in liste_reels:
-          return valeur
-      if len(valeur) >= 3 :
-          if valeur[0:4] == 'EVAL' :
-              # on a trouvé un EVAL --> on retourne directement la valeur
-              return valeur
-      if valeur.find('.') == -1 :
-          # aucun '.' n'a été trouvé dans valeur --> on en rajoute un a la fin
-          if (self.isParam(valeur)):
-              return valeur
-          else:
-              if valeur.find('e') != -1:
-                 # Notation scientifique ?
-                 try :
-                    r=eval(valeur)
-                    return valeur
-                 except :
-                    return None
-              else :
-                 return valeur+'.'
-      else:
-          return valeur
-        
+        elif self.waitGeom():
+            valeurretour,validite = valeur,1
+        else :
+            valeurretour,validite= self.object.evalValeur(valeur)
+
+        if validite == 0:
+            if (type(valeur) == bytes  or type(valeur) == str )and self.object.waitTxm():
+                essai_valeur="'" + valeur + "'"
+                valeurretour,validite= self.object.evalValeur(essai_valeur)
+
+        if hasattr(valeurretour,'__class__'):
+            #if valeurretour.__class__.__name__ in ('PARAMETRE','PARAMETRE_EVAL'):
+            if valeurretour.__class__.__name__ in ('PARAMETRE',):
+                validite=1
+
+        #if self.waitCo():
+            # CCAR : il ne faut pas essayer de creer un concept
+            # il faut simplement en chercher un existant ce qui a du etre fait par self.object.evalValeur(valeur)
+            #try:
+                #valeurretour=Accas.CO(valeur)
+            #except:
+                #valeurretour=None
+                #validite=0
+        # on est dans le cas ou on a evalue et ou on n'aurait pas du
+        if self.object.waitTxm() :
+            if type(valeurretour) != bytes:
+                valeurretour=str(valeur)
+                validite=1
+        return valeurretour,validite
+
+    def isCO(self,valeur=None):
+        """
+           Indique si valeur est un concept produit de la macro
+           Cette methode n'a de sens que pour un MCSIMP d'une MACRO
+           Si valeur vaut None on teste la valeur du mot cle
+        """
+        # Pour savoir si un concept est un nouveau concept de macro
+        # on regarde s'il est present dans l'attribut sdprods de l'etape
+        # ou si son nom de classe est CO.
+        # Il faut faire les 2 tests car une macro non valide peut etre
+        # dans un etat pas tres catholique avec des CO pas encore types
+        # et donc pas dans sdprods (resultat d'une exception dans typeSDProd)
+        if not valeur:valeur=self.object.valeur
+        if valeur in self.object.etape.sdprods:return 1
+        #if type(valeur) is not types.InstanceType:return 0
+        if type(valeur) is not object:return 0
+        if valeur.__class__.__name__ == 'CO':return 1
+        return 0
+
+    def isParam(self,valeur) :
+        for param in self.jdc.params:
+            if (repr(param) == valeur):
+                return 1
+        return 0
+
+    def traiteReel(self,valeur):
+        """
+        Cette fonction a pour but de rajouter le '.' en fin de chaine pour un reel
+        ou de detecter si on fait reference a un concept produit par DEFI_VALEUR
+        ou un EVAL ...
+        """
+        valeur = valeur.strip()
+        liste_reels = self.getSdAvantDuBonType()
+        if valeur in liste_reels:
+            return valeur
+        if len(valeur) >= 3 :
+            if valeur[0:4] == 'EVAL' :
+                # on a trouve un EVAL --> on retourne directement la valeur
+                return valeur
+        if valeur.find('.') == -1 :
+            # aucun '.' n'a ete trouve dans valeur --> on en rajoute un a la fin
+            if (self.isParam(valeur)):
+                return valeur
+            else:
+                if valeur.find('e') != -1:
+                    # Notation scientifique ?
+                    try :
+                        r=eval(valeur)
+                        return valeur
+                    except :
+                        return None
+                else :
+                    return valeur+'.'
+        else:
+            return valeur
+
 
 import Accas
 treeitem = SIMPTreeItem
 objet = Accas.MCSIMP
-
index 14568fb54db610b4f84e0c7a156b91937c64abcf..4c55cd7f0f22e9a57ff12bce2e4c6925fa8eb508 100644 (file)
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
-   from builtins import range
-   from builtins import object
+    from builtins import str
+    from builtins import range
+    from builtins import object
 except : pass
 
 import os, sys,  types, re
 import traceback
-from PyQt5.QtWidgets import QMessageBox
 from  Editeur.Eficas_utils import read_file
 from Extensions.i18n import tr
 
 
 class configBase(object):
 
-  #-------------------------------
-  def __init__(self,appli,repIni):
-  #-------------------------------
-
-  # Classe de base permettant de lire, afficher
-  # et sauvegarder les fichiers utilisateurs 
-  # On a deux directories : la directory generale (Repertoire d install + Nom du code
-  #                       Par exemple : ~/Install_Eficas/EficasV1_14/Openturns_Wrapper
-  # et la directorie de l utilisateur 
-  #                      HOME/.Eficas_Openturns
-  # Le fichier prefs.py va etre lu dans la directory generale 
-  #         puis surcharge eventuellement par celui contenu dans ${PREFS_CATA_$CODE} 
-  #         par celui de l utilisateur
-  # le fichier de catalogue va etre lu dans la directory de l utilisateur s il exite
-  # dans le fichier general sinon
-
-      self.appli   = appli  
-      self.code    = appli.code
-      self.salome  = appli.salome
-      if self.salome : self.name="editeur_salome.ini"
-      else           : self.name="editeur.ini"
-      self.rep_mat = None
-      self.repIni  = repIni
-     
-      if self.code == None : self.code=''
-      self.rep_user   = os.path.join(os.path.expanduser("~"),'.config/Eficas',self.code)
-      #if sys.platform[0:5]=="linux" :
-              #self.rep_user   = os.path.join(os.environ['HOME'],'.config/Eficas',self.code)
-      #else :
-      #        self.rep_user   = os.path.join('C:/','.config/Eficas',self.code)
-
-
-      self.setValeursParDefaut()
-      
-      if self.code != '' :
-         self.lectureFichierIniStandard()
-         self.lectureFichierIniIntegrateur()
-         self.lectureFichierIniUtilisateur()
-
-      if self.boutonDsMenuBar:
-         self.closeAutreCommande = True
-         self.closeFrameRechercheCommande = True
-
-      #Particularite des schemas MAP
-      if hasattr(self,'make_ssCode'): self.make_ssCode(self.ssCode)
-
-      #if self.appli: self.parent=appli.top
-      #else:        self.parent=None
-
-      if not os.path.isdir(self.savedir) :
-        self.savedir=os.path.expanduser("~")
+    #-------------------------------
+    def __init__(self,appliEficas,repIni):
+    #-------------------------------
+
+    # Classe de base permettant de lire, afficher
+    # et sauvegarder les fichiers utilisateurs
+    # On a deux directories : la directory generale (Repertoire d install + Nom du code
+    #                       Par exemple : ~/Install_Eficas/EficasV1_14/Openturns_Wrapper
+    # et la directorie de l utilisateur
+    #                       HOME/.Eficas_Openturns
+    # Le fichier prefs.py va etre lu dans la directory generale
+    #         puis surcharge eventuellement par celui contenu dans ${PREFS_CATA_$CODE}
+    #         par celui de l utilisateur
+    # le fichier de catalogue va etre lu dans la directory de l utilisateur s il exite
+    # dans le fichier general sinon
+
+        self.appliEficas   = appliEficas
+        self.code    = appliEficas.code
+        self.salome  = appliEficas.salome
+        if self.salome : self.name="editeur_salome.ini"
+        else           : self.name="editeur.ini"
+        self.rep_mat = None
+        self.repIni  = repIni
+
+        if self.code == None : self.code=''
+        self.rep_user   = os.path.join(os.path.expanduser("~"),'.config/Eficas',self.code)
+        #else :
+        #        self.rep_user   = os.path.join('C:/','.config/Eficas',self.code)
+
+
+        self.setValeursParDefaut()
+
+        if self.code != '' :
+            self.lectureFichierIniStandard()
+            self.lectureFichierIniIntegrateur()
+            self.lectureFichierIniUtilisateur()
+
+        if self.boutonDsMenuBar:
+            self.closeAutreCommande = True
+            self.closeFrameRechercheCommande = True
+
+        #Particularite des schemas MAP
+        if hasattr(self,'make_ssCode'): self.make_ssCode(self.ssCode)
+
+        if not os.path.isdir(self.savedir) :
+           self.savedir=os.path.join(os.path.expanduser("~"),'.config/Eficas',self.code)
+
+
+
+    def setValeursParDefaut(self):
+    #-----------------------------
+
+        # Valeurs par defaut
+        if not os.path.isdir(self.rep_user) : os.makedirs(self.rep_user)
+        self.path_doc     = os.path.abspath(os.path.join(self.repIni,'..','Doc'))
+        self.exec_acrobat = 'acroread'
+        nomDir="Eficas_"+self.code
+        self.savedir   = os.path.abspath(os.path.join(os.path.expanduser("~"),nomDir))
         #if sys.platform[0:5]=="linux" :
-          #self.savedir=os.environ['HOME']
+            #self.savedir   = os.path.abspath(os.path.join(os.environ['HOME'],nomDir))
         #else:
-        #  self.savedir='C:/'
-      
-
-
-  def setValeursParDefaut(self):
-  #-----------------------------
-  
-      # Valeurs par defaut
-      if not os.path.isdir(self.rep_user) : os.makedirs(self.rep_user)
-      self.path_doc     = os.path.abspath(os.path.join(self.repIni,'..','Doc'))
-      self.exec_acrobat = 'acroread'
-      nomDir="Eficas_"+self.code
-      self.savedir   = os.path.abspath(os.path.join(os.path.expanduser("~"),nomDir))
-      #if sys.platform[0:5]=="linux" :
-        #self.savedir   = os.path.abspath(os.path.join(os.environ['HOME'],nomDir))
-      #else:
-      #  self.savedir = os.path.abspath('C:/')
-      self.modeNouvCommande='initial'
-      self.affiche="alpha"
-      self.closeAutreCommande = False
-      self.closeFrameRechercheCommande = False
-      self.closeEntete = False
-      self.closeArbre = False
-      self.force_langue=False
-      self.suiteTelemac=False
-      self.nombreDeBoutonParLigne=0
-      self.translatorFichier=None
-      self.dicoImages= {}
-      self.dicoIcones= {}
-      self.afficheCommandesPliees = True
-      self.simpleClic= False
-      self.afficheOptionnelVide=False
-      self.afficheListesPliees=True
-      self.boutonDsMenuBar=False
-      self.ficIcones=None
-      self.repIcones=None
-      self.differencieSiDefaut=False
-      self.typeDeCata='Python'
-      self.dumpXSD=False
-      self.withXSD=False
-      self.afficheIhm=True
-      self.closeParenthese=False
-      self.enleverActionStructures=False
-      self.enleverParametres=False
-      self.enleverSupprimer=False
-      self.ajoutExecution=False
-      self.utilParExtensions=False
-      self.rendVisiblesLesCaches=False
-
-
-
-  #--------------------------------------
-  def lectureFichierIniStandard(self):
-  #--------------------------------------
-
-      name='prefs_'+self.appli.code
-      prefsCode=__import__(name)
-      for k in dir(prefsCode):
-          if (k[0:1] != "__" and k[-1:-2] !='__'):
-             valeur=getattr(prefsCode,k)
-             setattr(self,k,valeur)
-       
-
-
-  #--------------------------------------
-  def lectureFichierIniIntegrateur(self):
-  #--------------------------------------
-  # Verifie l'existence du fichier "standard"
-  # appelle la lecture de ce fichier
-      clef="PREFS_CATA_"+self.code
-      try :
-        repIntegrateur=os.path.abspath(os.environ[clef])
-      except :
-        return
-      
-      fic_ini_integrateur=os.path.join(repIntegrateur,self.name)
-      if not os.path.isfile(fic_ini_integrateur): return
-      txt = read_file(fic_ini_integrateur)
-      d=locals()
-      try:
-         exec(txt, d)
-      except :
-         QMessageBox.critical( None, tr("Import du fichier de Configuration"), 
-                       tr("Erreur a la lecture du fichier de configuration %s " , str(fic_ini_integrateur)))
-         return
-      self.labels_eficas.append('rep_aide')
-      for k in self.labels_eficas :
-         try :
-            setattr(self,k,d[k])
-         except :
-            pass
-      #Glut pour les repertoires materiaux
-      #et pour la doc
-      for k in d :
-          if (k[0:8]=="rep_mat_") or (k[0:8]=="rep_doc_"):
-             setattr(self,k,d[k])
-
-
-  #--------------------------------------
-  def lectureFichierIniUtilisateur(self):
-  #--------------------------------------
-  # Surcharge les parametres standards par les parametres utilisateur s'ils existent
-      self.fic_ini_utilisateur = os.path.join(self.rep_user,self.name)
-      if not os.path.isfile(self.fic_ini_utilisateur): return
-
-      txt = read_file(self.fic_ini_utilisateur)
-      d=locals()
-      try:
-         exec(txt, d)
-      except :
-         l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])
-         QMessageBox.critical( None, tr("Import du fichier de Configuration"), 
-                       tr("Erreur a la lecture du fichier de configuration %s " , str(fic_ini_integrateur)))
-      for k in self.labels_user :
-         try :
-            setattr(self,k,d[k])
-         except :
-            pass
-      for k in d :
-          if (k[0:8]=="rep_mat_") or (k[0:8]=="rep_doc_"):
-             setattr(self,k,d[k])
-
-  #--------------------------------------
-  def saveParams(self):
-  #--------------------------------------
-  # sauvegarde
-  # les nouveaux parametres dans le fichier de configuration utilisateur
-  #
-      texte=""
-      for clef in self.labels_user :
-          if hasattr(self,clef):
-             valeur=getattr(self,clef)
-             texte= texte + clef+"     = " + repr(valeur) +"\n"
-      #Glut pour les repertoires materiaux
-      #et pour la doc
-      for k in dir(self):
-          if (k[0:8]=="rep_mat_") or (k[0:8]=="rep_doc_"):
-             valeur=getattr(self,k)
-             texte= texte + k+"        = " + repr(valeur) +"\n"
-
-      f=open(self.fic_ini_utilisateur,'w+')
-      f.write(texte) 
-      f.close()
+        #  self.savedir = os.path.abspath('C:/')
+        self.modeNouvCommande='initial'
+        self.affiche="alpha"
+        self.closeAutreCommande = False
+        self.closeFrameRechercheCommande = False
+        self.closeFrameRechercheCommandeSurPageDesCommandes = False
+        self.closeEntete = False
+        self.closeArbre = False
+        self.demandeLangue=False
+        self.suiteTelemac=False
+        self.nombreDeBoutonParLigne=0
+        self.translatorFichier=None
+        self.dicoImages= {}
+        self.dicoIcones= {}
+        self.afficheCommandesPliees = True
+        self.afficheFirstPlies =  False
+        self.simpleClic = False
+        self.afficheOptionnelVide=False
+        self.afficheListesPliees=True
+        self.boutonDsMenuBar=False
+        self.ficIcones=None
+        self.repIcones=None
+        self.differencieSiDefaut=False
+        self.typeDeCata='Python'
+        self.closeParenthese=False
+        self.closeOptionnel=False
+        self.afficheFactOptionnel=False
+        self.enleverActionStructures=False
+        self.enleverPoubellePourCommande=False
+        self.enleverParametres=False
+        self.enleverSupprimer=False
+        self.ajoutExecution=False
+        self.utilParExtensions=[]
+        self.rendVisiblesLesCaches=False
+        self.pasDeMCOptionnels=False
+
+        self.dumpXSD=False
+        self.withXSD=False
+        self.afficheIhm=True
+
+
+
+
+    #--------------------------------------
+    def lectureFichierIniStandard(self):
+    #--------------------------------------
+
+        name='prefs_'+self.appliEficas.code
+        try :
+            prefsCode=__import__(name)
+        except :
+            self.catalogues=[]
+            print ('pas de fichier de prefs')
+            return
+        for k in dir(prefsCode):
+            if (k[0:1] != "__" and k[-1:-2] !='__'):
+                valeur=getattr(prefsCode,k)
+                setattr(self,k,valeur)
+
+
+
+    #--------------------------------------
+    def lectureFichierIniIntegrateur(self):
+    #--------------------------------------
+    # Verifie l'existence du fichier "standard"
+    # appelle la lecture de ce fichier
+        clef="PREFS_CATA_"+self.code
+        try :
+            repIntegrateur=os.path.abspath(os.environ[clef])
+        except :
+            return
+
+        fic_ini_integrateur=os.path.join(repIntegrateur,self.name)
+        if not os.path.isfile(fic_ini_integrateur): return
+        txt = read_file(fic_ini_integrateur)
+        d=locals()
+        try:
+            exec(txt, d)
+        except :
+            try :
+                from PyQt5.QtWidgets import QMessageBox
+                QMessageBox.critical( None, tr("Import du fichier de Configuration"),
+                             tr("Erreur a la lecture du fichier de configuration %s " , str(fic_ini_integrateur)))
+            except :
+                print("Erreur a la lecture du fichier de configuration %s " , str(fic_ini_integrateur))
+            return
+        self.labels_eficas.append('rep_aide')
+        for k in self.labels_eficas :
+            try :
+                setattr(self,k,d[k])
+            except :
+                pass
+        #Glut pour les repertoires materiaux
+        #et pour la doc
+        for k in d :
+            if (k[0:8]=="rep_mat_") or (k[0:8]=="rep_doc_"):
+                setattr(self,k,d[k])
+
+
+    #--------------------------------------
+    def lectureFichierIniUtilisateur(self):
+    #--------------------------------------
+    # Surcharge les parametres standards par les parametres utilisateur s'ils existent
+        self.fic_ini_utilisateur = os.path.join(self.rep_user,self.name)
+        if not os.path.isfile(self.fic_ini_utilisateur): return
+
+        txt = read_file(self.fic_ini_utilisateur)
+        d=locals()
+        try:
+            exec(txt, d)
+        except :
+            l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])
+            try :
+                from PyQt5.QtWidgets import QMessageBox
+                QMessageBox.critical( None, tr("Import du fichier de Configuration"),
+                             tr("Erreur a la lecture du fichier de configuration %s " , str(fic_ini_integrateur)))
+            except :
+                print ("Erreur a la lecture du fichier de configuration %s " , str(fic_ini_integrateur))
+        for k in self.labels_user :
+            try :
+                setattr(self,k,d[k])
+            except :
+                pass
+        for k in d :
+            if (k[0:8]=="rep_mat_") or (k[0:8]=="rep_doc_"):
+                setattr(self,k,d[k])
+
+    #--------------------------------------
+    def saveParams(self):
+    #--------------------------------------
+    # sauvegarde
+    # les nouveaux parametres dans le fichier de configuration utilisateur
+    #
+        texte=""
+        for clef in self.labels_user :
+            if hasattr(self,clef):
+                valeur=getattr(self,clef)
+                texte= texte + clef+"      = " + repr(valeur) +"\n"
+        #Glut pour les repertoires materiaux
+        #et pour la doc
+        for k in dir(self):
+            if (k[0:8]=="rep_mat_") or (k[0:8]=="rep_doc_"):
+                valeur=getattr(self,k)
+                texte= texte + k+" = " + repr(valeur) +"\n"
+
+        f=open(self.fic_ini_utilisateur,'w+')
+        f.write(texte)
+        f.close()
 #
 
 
+def makeConfig(appliEficas,rep):
+    return configBase(appliEficas,rep)
diff --git a/InterfaceQT4/editor.pourCIST b/InterfaceQT4/editor.pourCIST
deleted file mode 100644 (file)
index 7051af0..0000000
+++ /dev/null
@@ -1,1967 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-from __future__ import absolute_import
-from __future__ import print_function
-try :
-   from builtins import str
-   from builtins import range
-except : pass
-
-import types,sys,os, re
-import  subprocess
-import traceback
-
-import six
-from six.moves import range
-from PyQt5.QtWidgets import QWidget, QMessageBox, QFileDialog, QApplication, QSplitter
-from PyQt5.QtGui import QPalette
-from PyQt5.QtCore import QProcess, QFileInfo, QTimer, Qt, QDir, QSize
-import time
-import pdb
-from datetime import date
-from Extensions.i18n import tr
-
-import traceback
-
-# Modules Eficas
-
-import convert, generator
-from Editeur        import session
-from Editeur        import comploader
-from Editeur        import Objecttreeitem
-from desBaseWidget  import Ui_baseWidget
-from InterfaceQT4.monViewTexte   import ViewText
-from monWidgetCreeParam import MonWidgetCreeParam 
-from . import browser
-from . import readercata
-
-DictExtensions= {"MAP" : ".map", "TELEMAC" : '.cas'}
-
-    
-
-
-class JDCEditor(Ui_baseWidget,QWidget):
-# ----------------------------------------- #
-    """
-       Editeur de jdc
-    """
-
-    def __init__ (self,appli,fichier = None, jdc = None, QWParent=None, units = None, include=0 , vm=None):
-    #----------------------------------------------------------------------------------------------------------#
-
-        QWidget.__init__(self,None)
-        self.i=0
-        self.setupUi(self)
-        self.inhibeSplitter=0
-        self.widgetOptionnel=None
-        self.fenetreCentraleAffichee=None
-        self.dejaDansPlieTout=False
-        self.afficheCommandesPliees = True
-        self.listeDesListesOuvertes=set()
-        self.appliEficas = appli
-        self.appli       = appli  #---- attendu par IHM
-        self.vm          = vm
-        self.fichier     = fichier
-        self.jdc         = jdc
-        self.first      = True
-        self.QWParent    = QWParent
-        self.couleur     = Qt.black
-        self.nodeEnCours=None
-         
-        if appli != None :
-           self.salome =  self.appliEficas.salome
-        else :
-           self.salome=0
-           print ("dans JDC pas d appli ????????")
-
-        # ces attributs sont mis a jour par definitCode appelee par newEditor
-        self.code   = self.appliEficas.CONFIGURATION.code
-        self.initSplitterSizes()
-
-        #self.afficheListesPliees=False
-        self.afficheListesPliees=True
-        if self.code == "ASTER" or self.code == "monCode" : self.afficheListesPliees =True
-        if self.code == 'PSEN_N1' : self.afficheListesPliees = False
-
-        self.mode_nouv_commande=self.appliEficas.CONFIGURATION.mode_nouv_commande
-        self.closeAutreCommande=self.appliEficas.CONFIGURATION.closeAutreCommande
-        self.closeFrameRechercheCommande=self.appliEficas.CONFIGURATION.closeFrameRechercheCommande
-        self.closeArbre=self.appliEficas.CONFIGURATION.closeArbre
-        self.affiche=self.appliEficas.CONFIGURATION.affiche
-        self.afficheOptionnelVide=self.appliEficas.CONFIGURATION.afficheOptionnelVide
-        self.nombreDeBoutonParLigne = self.appliEficas.CONFIGURATION.nombreDeBoutonParLigne
-        self.dicoImages = self.appliEficas.CONFIGURATION.dicoImages
-        self.simpleClic = self.appliEficas.CONFIGURATION.simpleClic
-        #self.taille = self.appliEficas.taille
-
-        #if self.code in ['MAP','CARMELCND','PSEN'] : self.afficheCommandesPliees=False
-        if self.code in ['MAP','CARMELCND'] : self.afficheCommandesPliees=False
-        if self.code in ['MAP',]:
-           self.widgetTree.close()
-           self.widgetTree=None
-        if self.closeArbre: self.fermeArbre()
-
-        self.version_code = session.d_env.cata
-
-
-        if not hasattr ( self.appliEficas, 'readercata') or  self.appliEficas.multi==True:
-           self.readercata  = readercata.READERCATA( self, self.appliEficas )
-           self.appliEficas.readercata=self.readercata
-           self.appliEficas.code=self.code
-        else :
-           self.readercata=self.appliEficas.readercata
-        if self.readercata.fic_cata == None : return    #Sortie Salome
-        self.titre=self.readercata.titre
-        self.Ordre_Des_Commandes=self.readercata.Ordre_Des_Commandes
-        self.Classement_Commandes_Ds_Arbre=self.readercata.Classement_Commandes_Ds_Arbre
-
-        self.format =  self.appliEficas.format_fichier
-
-        self.dict_reels={}
-        self.liste_simp_reel=[]
-        self.ihm="QT"
-        self.dicoNouveauxMC={}
-        self.dicoNouveauxFact={}
-
-        nameConf='configuration_'+self.code
-        configuration=__import__(nameConf)
-        self.CONFIGURATION = self.appliEficas.CONFIGURATION
-        self.CONFIGStyle =   self.appliEficas.CONFIGStyle
-
-        try:
-          self.CONFIGURATION.generator_module
-          _module = __import__(self.CONFIGURATION.generator_module)
-          info = _module.entryPoint()
-          generator.plugins.addEntryPoint(info)
-        except:
-          pass
-
-        try:
-          self.CONFIGURATION.convert_module
-          #print self.CONFIGURATION.convert_module
-          _module = __import__(self.CONFIGURATION.convert_module)
-          info = _module.entryPoint()
-          convert.plugins.addEntryPoint(info)
-        except :
-          pass
-
-        self.sb = None
-        if hasattr(self.appliEficas,"statusBar"):
-           self.sb = self.appliEficas.statusBar()
-
-        self.fileInfo       = None
-        self.lastModified   = 0
-
-        self.modified   = False
-        self.isReadOnly = False
-        self.node_selected = []
-        self.deplier = True
-        self.message=''
-        if self.code in ['Adao','ADAO','MAP'] : self.afficheApresInsert=True
-        else :  self.afficheApresInsert=False
-        if self.code in ['TELEMAC',] : self.enteteQTree='premier'
-        else : self.enteteQTree='complet'
-        if self.code in ['Adao','ADAO','TELEMAC'] : self.affichePlie=True
-        else : self.affichePlie=False
-
-        self.Commandes_Ordre_Catalogue =self.readercata.Commandes_Ordre_Catalogue
-
-        #------- construction du jdc --------------
-
-        jdc_item = None
-
-        self.nouveau=0
-        if self.fichier is not None:        #  fichier jdc fourni
-            self.fileInfo = QFileInfo(self.fichier)
-            self.fileInfo.setCaching(0)
-            if jdc==None :
-               try :
-                   self.jdc = self.readFile(self.fichier)
-                   if self.salome : self.appliEficas.addJdcInSalome( self.fichier)
-               except :
-                   print ("mauvaise lecture")
-            else :
-               self.jdc=jdc
-            if self.jdc is not None and units is not None:
-               self.jdc.recorded_units=units
-               self.jdc.old_recorded_units=units
-        else:
-            if not self.jdc:                   #  nouveau jdc
-                if not include :
-                   self.jdc = self._newJDC(units=units)
-                else :
-                   self.jdc = self._newJDCInclude(units=units)
-                self.nouveau=1
-
-        if self.jdc:
-            self.jdc.appli = self # a resorber
-            self.jdc.editor = self 
-            self.jdc.lang    = self.appli.langue
-            self.jdc.aReafficher=False
-            txt_exception  = None
-            if not jdc:
-                self.jdc.analyse()
-                txt_exception = self.jdc.cr.get_mess_exception()
-            if txt_exception:
-                self.jdc = None
-                QApplication.restoreOverrideCursor()
-                self.affiche_infos(tr("Erreur fatale au chargement de %s",str(fichier)),Qt.red)
-                if (self.appliEficas.ssIhm == False) : QMessageBox.critical( self, tr("Erreur fatale au chargement d'un fichier"), txt_exception)
-            else:
-                comploader.charger_composants("QT")
-                jdc_item=Objecttreeitem.make_objecttreeitem( self, "nom", self.jdc )
-                if (not self.jdc.isvalid()) and (not self.nouveau) and (self.appliEficas.ssIhm == False):
-                    self.viewJdcRapport()
-
-
-        if jdc_item and self.appliEficas.ssIhm==False:
-            self.tree = browser.JDCTree( jdc_item,  self )
-        self.appliEficas.construitMenu()
-
-        
-        #############
-        self.adjustSize()
-
-
-    #-------------------#  Pour execution avec output et error dans le bash
-    def runPSEN(self):
-    # #-------------------#
-    #   #if self.modified or self.fichier==None  : self.saveFile()
-    #   self.saveFile()
-    #
-    #   #lancement avec le .bat
-    #   path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','PSEN_Eficas','PSEN'))
-    #   WrapperFilePath = os.path.join(path1, 'PSSEWrapper.py')
-    #   import subprocess
-    #   p = subprocess.Popen(['python',WrapperFilePath])
-    #   (out,err)=p.communicate()
-    #   print out
-    #   print err
-
-
-        self.saveFile()
-
-        # lancement avec le .bat
-        path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../', '../', 'PSEN_Eficas', 'PSEN'))
-        filer = open('temp.txt', 'r')
-        _path = []
-        for line in filer:
-            _path.append(line)
-        filer.close()
-
-
-        if 'PF_PARAMETERS' in self.Ordre_Des_Commandes:
-            Python3_path = _path[2].replace('\n', '')
-        import subprocess
-
-        # execfile
-        # 'PF_PARAMETERS' in self.readercata.Ordre_Des_Commandes
-        if 'PF_PARAMETERS' in self.Ordre_Des_Commandes:
-            WrapperFilePath = os.path.join(path1, 'PFWrapper.py')
-            p = subprocess.Popen([Python3_path + '/python.exe', WrapperFilePath])
-        else:
-            WrapperFilePath = os.path.join(path1, 'PSSEWrapper.py')
-            p = subprocess.Popen(['python', WrapperFilePath])
-        (out, err) = p.communicate()
-        print( out)
-        print( err)
-
-    #-------------------#  Pour execution avec output et error dans le bash
-    def runPSEN_N1(self):
-    #-------------------#
-    
-      self.saveFile()
-      #cmd = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','PSEN_N1','run.py'))
-      #cmd = "from run import runPSEN_N1; dico="+str(dico)
-      
-      #textePython=("python "+ cmd + " "+ str(dico))
-      #self._viewTextExecute( textePython,"psen_run",".sh")
-
-      path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','ProcessOutputs_Eficas','TreatOutputs'))
-      sys.path.append(path1)      
-      
-      if not(self.jdc.isvalid()):
-         QMessageBox.information( self, tr( "Unvalid JDC"),tr("incorrect keywords will be ignored"))
-      if generator.plugins.has_key('dicoImbrique'):
-         self.generator=generator.plugins['dicoImbrique']()
-         jdc_formate=self.generator.gener(self.jdc)
-         dico=self.generator.Dico 
-         
-         ##to delete
-         fileDico =  os.path.join(path1, 'dicoN1.py') #r'C:\Logiciels DER\PSEN_V16\Code\ProcessOutputs_Eficas\TreatOutputs\dicoN1.py'
-         f = open( str(fileDico), 'wb')
-         f.write("Dico =" + str(dico) )
-         f.close()
-
-      if 'PSSE_path' in dico['CASE_SELECTION']:
-        from Run import run
-        #self.appliEficas.close()
-        run(dico)
-      elif 'PF_path' in dico['CASE_SELECTION']:
-            import subprocess
-            RunPFfile = os.path.join(path1, 'RunPF.py')
-            Python3_path=dico['CASE_SELECTION']['Python3_path']
-            p = subprocess.Popen([Python3_path + '/python.exe', RunPFfile])
-            p.wait()
-
-
-      #res,txt_exception=run(dico)
-      #if res : QMessageBox.information( self, tr("fin de script run"), txt_exception)
-      #else  : QMessageBox.critical( self, tr("Erreur fatale script run"), txt_exception)
-       
-
-    #-------------------#  Pour execution avec output et error dans le bash
-    def process_N1(self):
-    #-------------------#
-    
-      path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','ProcessOutputs_Eficas','TreatOutputs'))
-      sys.path.append(path1)     
-    
-   
-      if generator.plugins.has_key('dicoImbrique'):
-         self.generator=generator.plugins['dicoImbrique']()
-         jdc_formate=self.generator.gener(self.jdc)
-         dico=self.get_Dico() #generator.Dico
-         
-    
-         for k in dico['CONTINGENCY_PROCESSING'].keys():
-          
-             if k[0:19] == 'Component_List_For_' or k[0:21] =='Contingency_List_For_' : 
-                newK=k.replace('___',' ')
-                l="'"+str(newK)+"'"
-                dico['CONTINGENCY_PROCESSING'][l]=dico['CONTINGENCY_PROCESSING'][k]
-                del dico['CONTINGENCY_PROCESSING'][k]
-
-         ###to delete
-         fileDico =  os.path.join(path1, 'dicoN1_process.py')
-         f = open( str(fileDico), 'wb')
-         f.write("Dico =" + str(dico) )
-         f.close()
-         ###
-         return dico    
-    
-        #return self.get_Dico()
-
-    #-------------------#  Pour execution avec output et error dans le bash
-    def process_VP(self):
-    #-------------------#
-      if 'dicoImbrique' in generator.plugins:
-         self.generator=generator.plugins['dicoImbrique']()
-         jdc_formate=self.generator.gener(self.jdc)
-         dico=self.get_Dico() #generator.Dico
-         return dico
-
-   
-    #--------------------------------#
-    def ajoutCommentaire(self):
-    #--------------------------------#
-        if self.tree.selectedItems()==[] :
-          QMessageBox.warning( self, tr("Pas de noeud selectionne"),tr("Selectionnez un Noeud \nLe commentaire sera place apres le noeud selectionne"))
-          return 
-        noeudAvantCommentaire=self.tree.selectedItems()[0]
-        if noeudAvantCommentaire ==self.tree.racine : 
-            self.tree.racine.append_child("COMMENTAIRE",pos=0)
-            return
-        noeudAvantCommentaire.addComment(True)
-        
-
-
-    #--------------------------------#
-    def _newJDC( self ,units = None):
-    #--------------------------------#
-        """
-        Initialise un nouveau JDC vierge
-        """
-        self.modified=1
-        CONTEXT.unset_current_step()
-
-        texte=""
-        if self.code == "CARMELCND" : texte=self._newJDCCND()
-        if self.code == "ZCRACKS" : texte=self._newZCRACKS()
-        if self.code == "TELEMAC" : texte=self._newTELEMAC()
-        if self.code == "PSEN"    : texte = self._newPSEN()
-        if self.code == "PSEN_N1" : texte = self._newPSEN_N1()
-
-        if hasattr(self.readercata.cata[0],'TEXTE_NEW_JDC') : texte=self.readercata.cata[0].TEXTE_NEW_JDC
-
-        #if self.code == "CF" : texte = self._new_CF()
-        #   texte=self.newTexteCND
-       
-        jdc=self.readercata.cata[0].JdC( procedure =texte,
-                                         appli=self,
-                                         cata=self.readercata.cata,
-                                         cata_ord_dico=self.readercata.cata_ordonne_dico,
-                                         rep_mat=self.CONFIGURATION.rep_mat
-                                        )
-        jdc.lang    = self.appli.langue
-        if units is not None:
-           jdc.recorded_units=units
-           jdc.old_recorded_units=units
-        ## PNPN est ce que la ligne suivante est bien utile ?
-        if texte == "" :jdc.analyse()
-        return jdc
-
-    #--------------------------------#
-    def _newJDCInclude( self ,units = None):
-    #--------------------------------#
-        """
-        Initialise un nouveau JDC vierge
-        """
-        import Extensions.jdc_include
-        JdC_aux=Extensions.jdc_include.JdC_include
-        CONTEXT.unset_current_step()
-
-        jaux=self.readercata.cata[0].JdC( procedure="",
-                               appli=self,
-                               cata=self.readercata.cata,
-                               cata_ord_dico=self.readercata.cata_ordonne_dico,
-                               rep_mat=self.CONFIGURATION.rep_mat,
-                              )
-        jaux.analyse()
-
-        J=JdC_aux( procedure="",
-                   appli=self,
-                   cata=self.readercata.cata,
-                   cata_ord_dico=self.readercata.cata_ordonne_dico,
-                   jdc_pere=jaux,
-                   rep_mat=self.CONFIGURATION.rep_mat,
-                   )
-        J.analyse()
-        if units is not None:
-           J.recorded_units=units
-           J.old_recorded_units=units
-        return J
-
-
-    #-------------------------------#
-    def readFile(self, fn):
-    #--------------------------------#
-        """
-        Public slot to read the text from a file.
-        @param fn filename to read from (string or QString)
-        """
-        fn = six.text_type(fn)
-
-        # ------------------------------------------------------------------------------------
-        #                         charge le JDC
-        # ------------------------------------------------------------------------------------
-
-        jdcName=os.path.basename(fn)
-        # Il faut convertir le contenu du fichier en fonction du format
-        if self.appliEficas.format_fichier_in in convert.plugins:
-             # Le convertisseur existe on l'utilise
-             #appli = self
-             p=convert.plugins[self.appliEficas.format_fichier_in]()
-             p.readfile(fn)
-             if p.text=="" : self.nouveau=1
-             pareil,texteNew=self.verifieCHECKSUM(p.text)
-             #if texteNew == ""
-             if pareil == False and (self.appliEficas.ssIhm == False) :
-                QMessageBox.warning( self, tr("fichier modifie"),tr("Attention! fichier change hors EFICAS"))
-             p.text=texteNew
-             memeVersion,texteNew=self.verifieVersionCataDuJDC(p.text)
-             if memeVersion == 0 : texteNew=self.traduitCatalogue(texteNew)
-             p.text=texteNew
-             text=p.convert('exec',self.appliEficas)
-             if not p.cr.estvide():
-                self.affiche_infos("Erreur a la conversion",Qt.red)
-        else :
-            self.affiche_infos("Type de fichier non reconnu",Qt.red)
-            if self.appliEficas.ssIhm == False:
-                    QMessageBox.critical( self, tr("Type de fichier non reconnu"),
-                    tr("EFICAS ne sait pas ouvrir le type de fichier %s" ,self.appliEficas.format_fichier_in))
-            return None
-
-        CONTEXT.unset_current_step()
-        jdc=self.readercata.cata[0].JdC(procedure=text,
-                                    appli=self,
-                                    cata=self.readercata.cata,
-                                    cata_ord_dico=self.readercata.cata_ordonne_dico,
-                                    nom=jdcName,
-                                    rep_mat=self.CONFIGURATION.rep_mat
-                                   )
-        # ----------------------------------------------------
-        #      charge le JDC fin
-        # ----------------------------------------------------
-        self.modified = False
-
-#        qApp.restoreOverrideCursor()
-        if self.fileInfo!= None :
-           self.lastModified = self.fileInfo.lastModified()
-        else :
-           self.lastModified = 1
-        nouveauTitre=self.titre+"              "+os.path.basename(self.fichier)
-        self.appliEficas.setWindowTitle(nouveauTitre)
-        return jdc
-
-
-    #-----------------------#
-    def get_source(self,file):
-    #-----------------------#
-
-        # Il faut convertir le contenu du fichier en fonction du format
-        if self.format in convert.plugins :
-            # Le convertisseur existe on l'utilise
-            p=convert.plugins[self.format]()
-            p.readfile(file)
-            text=p.convert('execnoparseur')
-            if not p.cr.estvide():
-                self.affiche_infos("Erreur a la conversion",Qt.red)
-            return text
-        else:
-            # Il n'existe pas c'est une erreur
-            self.affiche_infos("Type de fichier non reconnu",Qt.red)
-            QMessageBox.critical( self, tr("Type de fichier non reconnu"),tr("EFICAS ne sait pas ouvrir ce type de fichier"))
-            return None
-
-    #-----------------------------------------------------------------------#
-    def _viewText(self, txt, caption = "FILE_VIEWER",largeur=1200,hauteur=600):
-    #--------------------------------------------------------------------#
-        w = ViewText( self.QWParent,self ,caption,txt,largeur,hauteur)
-        w.show()
-    #
-
-    #----------------------------------------------#
-    def __generateTempFilename(self, prefix, suffix):
-    #----------------------------------------------#
-        import tempfile
-        (fd, filename) = tempfile.mkstemp(prefix=prefix, suffix=suffix)
-        os.close(fd)
-        return filename
-    #
-
-
-    #----------------------------------------------#
-    def _viewTextExecute(self, txt, prefix, suffix):
-    #----------------------------------------------#
-        self.w = ViewText( self.QWParent )
-        self.w.setWindowTitle( "execution" )
-        self.monExe=QProcess(self.w)
-        pid=self.monExe.pid()
-        nomFichier = self.__generateTempFilename(prefix, suffix = ".sh")
-        f=open(nomFichier,'w')
-        f.write(txt)
-        f.close()
-        self.monExe.readyReadStandardOutput.connect( self.readFromStdOut)
-        self.monExe.readyReadStandardError.connect( self.readFromStdErr)
-        exe='sh ' + nomFichier
-        self.monExe.start(exe)
-        self.monExe.closeWriteChannel()
-        self.w.exec_()
-        try:
-          commande="rm  "+ nomFichier
-          os.system(commande)
-        except :
-          pass
-
-    def readFromStdErr(self):
-        a=self.monExe.readAllStandardError()
-        self.w.view.append(str(a.data()))
-
-    def readFromStdOut(self) :
-        a=self.monExe.readAllStandardOutput()
-        self.w.view.append(str(a.data()))
-
-    def readFromStdErrQT4(self):
-        a=self.monExe.readAllStandardError()
-        self.w.view.append(QString.fromUtf8(a.data(),len(a))) ;
-
-    def readFromStdOutQT4(self) :
-        a=self.monExe.readAllStandardOutput()
-        self.w.view.append(QString.fromUtf8(a.data(),len(a))) ;
-        
-    #-----------------------#
-    def generDico(self):
-    #-----------------------#
-       if 'dico' in generator.plugins:
-         self.generator=generator.plugins['dico']()
-         jdc_formate=self.generator.gener(self.jdc)
-         dico=self.generator.Dico
-         return dico
-
-    #-----------------------#
-    def gestionParam(self):
-    #-----------------------#
-        w = MonWidgetCreeParam( self)
-        w.show()
-
-    #-----------------------#
-    def viewJdcSource(self):
-    #-----------------------#
-        if self.fichier == None : return
-        f=open(self.fichier,'r')
-        texteSource=f.read()
-        f.close()
-        self._viewText(texteSource, "JDC_SOURCE")
-
-    #-----------------------#
-    def viewJdcPy(self):
-    #-----------------------#
-        strSource = str( self.get_text_JDC(self.format) )
-        self._viewText(strSource, "JDC_RESULTAT")
-
-    #-----------------------#
-    def viewJdcRapport(self):
-    #-----------------------#
-        strRapport = six.text_type( self.jdc.report() )
-        # on ajoute les regles
-        
-        self._viewText(strRapport, "JDC_RAPPORT")
-
-    #-----------------------#
-    def viewJdcRegles(self):
-    #-----------------------#
-        if self.tree :self.tree.AppelleBuildLBRegles()
-
-
-    #----------------#
-    def closeIt(self):
-    #----------------#
-        """
-        Public method called by the viewmanager to finally get rid of us.
-        """
-        if self.jdc:
-            self.jdc.supprime()
-        self.close()
-
-    #----------------------------------------------#
-    def affiche_infos(self,message,couleur=Qt.black):
-    #----------------------------------------------#
-        if self.sb:
-           mapalette=self.sb.palette()
-           mapalette.setColor( QPalette.WindowText, couleur )
-           self.sb.setPalette( mapalette );
-           self.sb.showMessage(message,4000)
-           self.couleur=couleur
-
-    #------------------------------#
-    def affiche_alerte(self,titre,message):
-    #------------------------------#
-    # appele par I_MACRO_ETAPE
-        QMessageBox.information( self, titre, message)
-
-    #-----------------------------------#
-    def affiche_commentaire(self,message):
-    #-----------------------------------#
-        self.labelCommentaire.setText(message)
-        QTimer.singleShot(6000, self.rendInvisible)
-
-    #----------------------#
-    def rendInvisible(self):
-    #----------------------#
-        self.labelCommentaire.setText("")
-
-    #-------------------#
-    def init_modif(self):
-    #-------------------#
-      """
-          Met l'attribut modified a 'o' : utilise par Eficas pour savoir
-          si un JDC doit etre sauvegarde avant destruction ou non
-      """
-      self.modified = True
-
-    #---------------------------------------#
-    def chercheNoeudSelectionne(self,copie=1):
-    #---------------------------------------#
-      """
-        appele par Cut et Copy pour positionner self.node_selected
-      """
-      self.node_selected=[]
-      if len(self.tree.selectedItems()) == 0 : return
-      self.node_selected=self.tree.selectedItems()
-
-
-    #---------------------#
-    def handleSupprimer(self):
-    #---------------------#
-      self.chercheNoeudSelectionne()
-      if len(self.node_selected) == 0 : return
-      self.QWParent.noeud_a_editer = []
-      if self.node_selected[0]==self.tree.racine: return
-      if len(self.node_selected) == 1 : self.node_selected[0].delete()
-      else : self.node_selected[0].deleteMultiple(self.node_selected)
-
-    #---------------------#
-    def handleRechercher(self):
-    #---------------------#
-      from .monRecherche import DRecherche
-      monRechercheDialg=DRecherche(parent=self,fl=0)
-      monRechercheDialg.show()
-
-
-    #--------------------------------#
-    def handleRechercherDsCatalogue(self):
-    #-----------------------------#
-      from .monRechercheCatalogue import DRechercheCatalogue
-      monRechercheDialg=DRechercheCatalogue(self.QWParent,self)
-      monRechercheDialg.show()
-
-    #---------------------#
-    def handleDeplier(self):
-    #---------------------#
-       if self.tree == None : return
-       #self.tree.collapseAll()
-       if self.deplier :
-          #print "je plie"
-          self.tree.expandItem(self.tree.topLevelItem(0))
-          self.deplier = False
-          if self.fenetreCentraleAffichee != None  :
-             if hasattr(self.fenetreCentraleAffichee.node,'plieToutEtReaffiche'):
-                 self.fenetreCentraleAffichee.node.plieToutEtReaffiche()
-       else:
-          #print "je deplie"
-          self.tree.expandItem(self.tree.topLevelItem(0))
-          self.deplier = True
-          if self.fenetreCentraleAffichee != None  :
-             if hasattr(self.fenetreCentraleAffichee.node,'deplieToutEtReaffiche'):
-                 self.fenetreCentraleAffichee.node.deplieToutEtReaffiche()
-
-    #---------------------#
-    def handleEditCut(self):
-    #---------------------#
-      """
-      Stocke dans Eficas.noeud_a_editer le noeud a couper
-      """
-      #print "handleEditCut"
-      self.chercheNoeudSelectionne()
-      self.QWParent.edit="couper"
-      self.QWParent.noeud_a_editer = self.node_selected
-
-    #-----------------------#
-    def handleEditCopy(self):
-    #-----------------------#
-      """
-      Stocke dans Eficas.noeud_a_editer le noeud a copier
-      """
-      self.chercheNoeudSelectionne()
-      if len(self.node_selected) == 0 : return
-      if len(self.node_selected) == 1 : self.node_selected[0].update_node_label_in_blue()
-      else :  self.node_selected[0].update_plusieurs_node_label_in_blue(self.node_selected)
-      self.QWParent.edit="copier"
-      self.QWParent.noeud_a_editer = self.node_selected
-
-    #------------------------#
-    def handleEditPaste(self):
-    #------------------------#
-      """
-      Lance la copie de l'objet place dans self.QWParent.noeud_a_editer
-      Ne permet que la copie d'objets de type Commande ou MCF
-      """
-      self.chercheNoeudSelectionne()
-      if (not(hasattr(self.QWParent,'noeud_a_editer'))) or len(self.QWParent.noeud_a_editer)==0:
-          QMessageBox.information( self,
-                      tr("Copie impossible"),
-                      tr("Veuillez selectionner un objet a copier"))
-          return
-      if len(self.node_selected) != 1 :
-          QMessageBox.information( self,
-                      tr("Copie impossible"),
-                      tr("Veuillez selectionner un seul objet : la copie se fera apres le noeud selectionne"))
-          return
-      noeudOuColler=self.node_selected[0]
-
-      if len(self.QWParent.noeud_a_editer)!=1:
-         #self.handleEditPasteMultiple()
-         QMessageBox.information( self, tr("Copie impossible"), tr("Aucun Objet n a ete copie ou coupe"))
-         return
-
-      noeudACopier=self.QWParent.noeud_a_editer[0]
-
-      if (self.QWParent.edit != "couper"):
-        #print   (noeudOuColler.item.parent.get_child(noeudOuColler.item.nom)) 
-        try:
-           if noeudOuColler == self.tree.racine :
-               child=noeudOuColler.doPastePremier(noeudACopier)
-           else :
-               child=noeudACopier.doPaste(noeudOuColler,'after')
-
-           if child==None or child==0:
-               QMessageBox.critical( self,tr( "Copie refusee"),tr('Eficas n a pas reussi a copier l objet'))
-               self.message = ''
-               self.affiche_infos("Copie refusee",Qt.red)
-           if noeudACopier.treeParent.editor != noeudOuColler.treeParent.editor:
-               try :
-                 nom=noeudACopier.item.sd.nom
-                 child.item.nomme_sd(nom)
-               except :
-                 pass
-           return
-           self.init_modif()
-           child.select()
-        except  :
-           traceback.print_exc()
-           QMessageBox.critical( self,tr( "Copie refusee"),tr('Copie refusee pour ce type d objet'))
-           self.message = ''
-           self.affiche_infos("Copie refusee",Qt.red)
-           return
-
-      # il faut declarer le JDCDisplay_courant modifie
-      # suppression eventuelle du noeud selectionne
-      # si possible on renomme l objet comme le noeud couper
-
-      if (self.QWParent.edit == "couper"):
-         print ('je pass la')
-         if noeudACopier.treeParent.editor != noeudOuColler.treeParent.editor:
-           QMessageBox.critical( self, tr("Deplacement refuse"),tr('Deplacement refuse entre 2 fichiers. Seule la copie est autorisee '))
-
-         #if 1:
-         try :
-           # indexNoeudACopier=noeudACopier.treeParent.children.index(noeudACopier)
-            indexNoeudACopier=self.getTreeIndex(noeudACopier)
-            noeudACopier.treeParent.item.deplaceEntite(indexNoeudACopier,indexNoeudOuColler,pos)
-            noeudACopier.treeParent.build_children()
-
-         #else:
-         except:
-            pass
-         self.QWParent.noeud_a_editer=[]
-
-      # on rend la copie a nouveau possible en liberant le flag edit
-      self.QWParent.edit="copier"
-      noeudACopier.select()
-
-    #----------------------------------#
-    def handleDeplaceMultiple(self):
-    #----------------------------------#
-       pass
-
-    #----------------------------------#
-    def handleEditPasteMultiple(self):
-    #----------------------------------#
-
-    # On ne garde que les niveaux "Etape"
-    # On insere dans l'ordre du JDC
-     listeNoeudsACouper=[]
-     listeIndex=[]
-     listeChild=[]
-     listeItem=[]
-     from InterfaceQT4 import compojdc
-     noeudOuColler=self.node_selected[0]
-     if not (isinstance(noeudOuColler.treeParent, compojdc.Node)):
-        QMessageBox.information( self,
-                  tr("Copie impossible a cet endroit",),
-                  tr("Veuillez selectionner une commande, un parametre, un commentaire ou une macro"))
-        return
-     indexNoeudOuColler=noeudOuColler.treeParent.children.index(noeudOuColler)
-
-     for noeud in self.QWParent.noeud_a_editer :
-        if not (isinstance(noeud.treeParent, compojdc.Node)): continue
-        indexInTree=noeud.treeParent.children.index(noeud)
-        indice = 0
-        for index in listeIndex:
-            if index < indexInTree : indice = indice +1
-        listeIndex.insert(indice, indexInTree)
-        listeNoeudsACouper.insert(indice, noeud)
-
-     noeudJdc=noeudOuColler.treeParent
-     dejaCrees=0
-     # on les cree a l'envers parcequ'on ajoute a NoeudOuColler
-     listeIndex.reverse()
-     for index in listeIndex:
-         indexTravail=index
-         if indexNoeudOuColler < index:
-            indexTravail=indexTravail+dejaCrees
-         noeudOuColler=noeudJdc.children[indexNoeudOuColler]
-         noeud=noeudJdc.children[indexTravail]
-         child=noeud.doPaste(noeudOuColler)
-         listeChild.append(child)
-         dejaCrees=dejaCrees+1
-
-     self.QWParent.noeud_a_editer = []
-     for i in range(len(listeIndex)):
-        noeud=noeudJdc.children[indexNoeudOuColler+1+i]
-        self.QWParent.noeud_a_editer.append(noeud)
-
-     listeASupprimer=[]
-     if self.QWParent.edit !="couper" : return
-
-     for index in listeIndex:
-         indexTravail=index
-         if indexNoeudOuColler < index:
-            indexTravail=indexTravail+(len(listeIndex))
-         noeud=noeudJdc.children[indexTravail]
-
-         listeItem.append(noeud.item)
-         listeASupprimer.append(noeud)
-
-     for i in range(len(listeChild)):
-         self.tree.item.suppitem(listeItem[i])
-         listeChild[i].item.update(listeItem[i])
-
-     self.QWParent.noeud_a_editer = []
-
-
-    #---------------------#
-    def getFileName(self):
-    #---------------------#
-      return self.fichier
-
-    #---------------------------#
-    def get_file_variable(self) :
-    #---------------------------#
-     titre = tr("Choix d'un fichier XML")
-     texte = tr("Le fichier contient une commande MODEL\n")
-     texte = texte+tr('Donnez le nom du fichier XML qui contient la description des variables')
-     QMessageBox.information( self, titre,tr(texte))
-
-     fichier = QFileDialog.getOpenFileName(self.appliEficas,
-                   tr('Ouvrir Fichier'),
-                   self.appliEficas.CONFIGURATION.savedir,
-                   tr('Wrapper Files (*.xml);;''All Files (*)'))
-     return  fichier
-
-    #--------------------------------------------------#
-    def writeFile(self, fn, txt = None,formatLigne="beautifie"):
-    #--------------------------------------------------#
-        """
-        Public slot to write the text to a file.
-
-        @param fn filename to write to string
-        @return flag indicating success
-        """
-
-        fn = six.text_type(fn)
-       
-        if txt == None :
-            txt = self.get_text_JDC(self.format,formatLigne=formatLigne)
-            eol = '\n'
-            if len(txt) >= len(eol):
-               if txt[-len(eol):] != eol:
-                  txt += eol
-            else:
-                txt += eol
-            txt=self.ajoutVersionCataDsJDC(txt)
-            checksum=self.get_checksum(txt)
-            txt=txt+checksum
-        if self.code=="TELEMAC" : return 1
-        try:
-            f = open(fn, 'w')
-            f.write(txt)
-            f.close()
-            return 1
-        except IOError as why:
-            if (self.appliEficas.ssIhm == False):
-                QMessageBox.critical(self, tr('Sauvegarde du Fichier'),
-                tr('Le fichier')+str(fn) + tr('n a pas pu etre sauvegarde : ') + str(why))
-            else :
-                print (why)
-            return 0
-
-    #-----------------------------------------------------------#
-    def get_text_JDC(self,format,pourRun=0,formatLigne="beautifie"):
-    #-----------------------------------------------------------#
-      if self.code == "MAP" and not(format in generator.plugins): format = "MAP"
-      if format in generator.plugins:
-         
-         # Le generateur existe on l'utilise
-         self.generator=generator.plugins[format]()
-         try :
-            jdc_formate=self.generator.gener(self.jdc,format=formatLigne,config=self.appliEficas.CONFIGURATION,appli=self.appliEficas)
-            if pourRun : jdc_formate=self.generator.textePourRun
-            if self.code == 'TELEMAC' : jdc_formate=self.generator.texteDico
-         except ValueError as e:
-            QMessageBox.critical(self, tr("Erreur a la generation"),str(e))
-            return
-
-         if not self.generator.cr.estvide():
-            self.affiche_infos(tr("Erreur a la generation"),Qt.red)
-            QMessageBox.critical( self, tr("Erreur a la generation"),tr("EFICAS ne sait pas convertir ce JDC"))
-            return ""
-         else:
-            return jdc_formate
-      else:
-         # Il n'existe pas c'est une erreur
-         self.affiche_infos(tr("Format %s non reconnu" , self.format),Qt.red)
-         QMessageBox.critical( self, "Format  non reconnu" ,tr("EFICAS ne sait pas convertir le JDC selon le format "+ self.format))
-         return ""
-
-    #----------------------#
-    def get_Dico(self):
-    #---------------------#
-      if 'dicoImbrique' in generator.plugins:
-         self.generator=generator.plugins['dicoImbrique']()
-         jdc_formate=self.generator.gener(self.jdc)
-         dico=self.generator.Dico 
-         return dico
-      else : 
-         self.affiche_infos(tr("Format %s non reconnu" , self.format),Qt.red)
-         QMessageBox.critical( self, "Format  non reconnu" ,tr("EFICAS ne sait pas convertir le JDC selon le format "+ self.format))
-         return ""
-
-
-    #------------#
-    def run(self):
-    #------------#
-      fonction="run"+self.code
-      #print fonction
-      if fonction in JDCEditor.__dict__: JDCEditor.__dict__[fonction](self,)
-
-    #------------#
-    def saveRun(self):
-    #------------#
-      fonction="saveRun"+self.code
-      if fonction in JDCEditor.__dict__: JDCEditor.__dict__[fonction](self,)
-
-    #---------------#
-    def runMAP(self):
-    #---------------#
-
-      if not(self.jdc.isvalid()):
-         QMessageBox.critical( self, tr( "Execution impossible "),tr("le JDC doit etre valide pour une execution MAP"))
-         return
-      if len(self.jdc.etapes) != 1 :
-         QMessageBox.critical( self, tr("Execution impossible "),tr("le JDC doit contenir un et un seul composant"))
-         return
-      if self.modified or self.fichier==None  :
-         self.fichierMapInput = self.__generateTempFilename(prefix = "map_run", suffix = ".map")
-         texte=self.get_text_JDC("MAP")
-         self.writeFile( self.fichierMapInput, txt = texte)
-      else :
-         self.fichierMapInput=self.fichier
-      composant=self.jdc.etapes[0].nom.lower()[0:-5]
-
-
-      # :TRICKY: to determine if a component requires SALOME, loads the component from Eficas catalog
-      # then instantiate corresponding class and call getUseSalome() method
-      try:
-          from mapengine.spec import factory
-          mapComponent = factory.new(composant)[0]
-
-          command = "map"
-          if mapComponent.getUseSalome():
-              command += " -r sappli"
-          textePython=(command + " run -n "+composant +" -i "+self.fichierMapInput)
-
-          #textePython="ls -l"
-          self._viewTextExecute( textePython,"map_run",".sh")
-          #try:
-          #  commande="rm  "+self.fichierMapInput
-          #   os.system(commande)
-          #except :
-          #   pass
-      except Exception as e:
-          print((traceback.print_exc()))
-
-    #-------------------#
-    def runZCRACKS(self):
-    #-------------------#
-      if not(self.jdc.isvalid()):
-         QMessageBox.critical( self, tr( "Execution impossible "),tr("le JDC doit etre valide pour une execution "))
-         return
-      if self.modified or self.fichier==None  :
-      #if 1:
-         self.fichierZcracksInput = self.__generateTempFilename(prefix = "zcracks_run", suffix = ".z7p")
-         texte=self.get_text_JDC("ZCRACKS",pourRun=1)
-         self.writeFile( self.fichierZcracksInput, txt = texte)
-      else :
-         self.fichierZcracksInput=self.fichier
-      try :
-          #commande ="Zrun -zp "
-          commande="more "
-          textePython=(commande + self.fichierZcracksInput)
-          self._viewTextExecute( textePython,"run_zcracks",".sh")
-      except Exception as e:
-          print((traceback.print_exc()))
-
-    #-------------------#
-    def runCARMELCND(self):
-    #-------------------#
-      #if not(self.jdc.isvalid()):
-      #   QMessageBox.critical( self, tr( "Execution impossible "),tr("le JDC doit etre valide pour une execution "))
-      #   return
-      if self.modified or self.fichier==None  :
-         QMessageBox.critical( self, tr( "Execution impossible "),tr("Sauvegarder SVP avant l'execution "))
-         return
-      if not hasattr(self,'generator'): texte=self.get_text_JDC(self.format)
-      from PrepareRunCarmel import prepareRunCarmel
-      fichierGenerique=os.path.basename(self.fichier).split(".")[0]
-      repMed=os.path.dirname(self.fichier)
-      repExeCarmel=self.generator.get_repExeCarmel()
-      textePython=prepareRunCarmel(repExeCarmel,repMed,fichierGenerique)
-      nomFichier = self.__generateTempFilename("carmel_run", suffix = ".sh")
-      f=open(nomFichier,'w')
-      f.write(textePython)
-      f.close()
-      commande="xterm -e sh "+nomFichier +"\n"
-      os.system(commande)
-
-    #-------------------#
-    def runCarmelCS(self):
-    #-------------------#
-      try :
-          commande="runSession pilotyacsCS.py"
-          os.system(commande)
-      except Exception as e:
-          print((traceback.print_exc()))
-
-    #-----------------------------------------------------#
-    def determineNomFichier(self,path,extension):
-    #-----------------------------------------------------#
-      if self.appli.code in DictExtensions:
-         chaine1=DictExtensions[self.appli.code]+" (*."+DictExtensions[self.appli.code]+");;"
-         extensions= tr(chaine1+ "All Files (*)")
-      else :
-         extensions= tr("JDC (*.comm);;" "All Files (*)")
-
-      if self.appli.code == "MAP" :
-         extensions = extensions + ";; Run (*.input);;"
-
-      fn = QFileDialog.getSaveFileName( self,
-             tr("sauvegarde"), path,
-             extensions,None,
-             QFileDialog.DontConfirmOverwrite)
-      if fn == None : return (0, None)
-      fn=fn[0]
-      if fn=='': return (0, None)
-
-      ext = QFileInfo(fn).suffix()
-      if ext == '': fn+=extension
-
-      if QFileInfo(fn).exists():
-           msgBox = QMessageBox(self)
-           msgBox.setWindowTitle(tr("Sauvegarde du Fichier"))
-           msgBox.setText(tr("Le fichier <b>%s</b> existe deja.", six.text_type(fn)))
-           msgBox.addButton(tr("&Ecraser"),0)
-           msgBox.addButton(tr("&Abandonner"),1)
-           abort=msgBox.exec_()
-           if abort == 1 :  return (0, "")
-      return (1,fn)
-
-    #-----------------#
-    def saveRunMAP(self):
-    #-----------------#
-        extension=".input"
-        if not(self.jdc.isvalid()):
-           QMessageBox.critical( self, tr( "Sauvegarde de l'input impossible "),
-                                tr("Un JdC valide est necessaire pour creer un .input")
-                                 )
-           return
-        try :
-          composant=self.jdc.etapes[0].nom.lower()[0:-5]
-        except :
-           QMessageBox.critical( self, tr( "Sauvegarde de l'input impossible "),
-                                tr("Choix du composant obligatoire")
-                                 )
-           return
-        if hasattr(self.CONFIGURATION, "savedir"): path=self.CONFIGURATION.savedir
-        else : path='C:/'
-
-        monNomFichier=""
-        if self.fichier is not None and self.fichier != "" :
-             maBase=str(QFileInfo(self.fichier).baseName())+".input"
-             monPath=str(QFileInfo(self.fichier).absolutePath())
-             monNomFichier=os.path.join(monPath,maBase)
-        elif hasattr(self,'monNomFichierInput'):
-            monNomFichier=self.monNomFichierInput
-
-
-        monDialog=QFileDialog(self.appliEficas)
-        monDialog.setDirectory (path)
-        monDialog.setWindowTitle ("Save")
-
-        for c in monDialog.children():
-            if isinstance(c,QDialogButtonBox):
-               for b in c.children():
-                  if isinstance(b,QPushButton):
-                     avant=b.text()
-                     if avant=="&Open": b.setText("Save")
-        mesFiltres= "input Map (*.input);;All Files (*)"
-        monDialog.setNameFilters(mesFiltres)
-        if monNomFichier!="" : monDialog.selectFile(monNomFichier)
-        BOk=monDialog.exec_()
-        if BOk==0: return
-        fn=str(monDialog.selectedFiles()[0])
-        if fn == "" or fn == None : return
-        if not fn.endswith(".input"):
-            fn += ".input"
-        self.monNomFichierInput=fn
-
-        if not hasattr(self, 'fichierMapInput') or not self.fichierMapInput or not os.path.exists(self.fichierMapInput):
-            self.fichierMapInput = self.__generateTempFilename(prefix = "map_run", suffix = ".map")
-            texte=self.get_text_JDC("MAP")
-            self.writeFile( self.fichierMapInput, txt = texte)
-
-        cmd = ("map gen -t dat -n " + composant + " -i " + self.fichierMapInput + " -o " + fn)
-        p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
-        (output, err) = p.communicate()
-
-
-    #-----------------#
-    def saveRunPSEN(self):
-    #-----------------#
-        print( "saveRunPSEN")
-        self.saveFile()
-        return
-
-
-    #-----------------------------------------#
-    def cherche_Groupes(self):
-    #-----------------------------------------#
-        listeMA,listeNO=self.get_text_JDC("GroupMA")
-        return listeMA,listeNO
-
-    #-----------------------------------------#
-    def cherche_Dico(self):
-    #-----------------------------------------#
-        dicoCourant={}
-        format =  self.appliEficas.format_fichier
-        if format in generator.plugins:
-           # Le generateur existe on l'utilise
-           self.generator=generator.plugins[format]()
-           jdc_formate=self.generator.gener(self.jdc,format='beautifie',config=self.appliEficas.CONFIGURATION)
-           dicoCourant=self.generator.dico
-        return dicoCourant
-
-         
-
-    #-----------------------------------------#
-    def handleAjoutGroup(self,listeGroup):
-    #-----------------------------------------#
-        try :
-        #if 1:
-           from ajoutGroupe import handleAjoutGroupFiltre
-           #print listeGroup
-           handleAjoutGroupFiltre(self,listeGroup)
-           #print "apres handleAjoutGroupFiltre"
-        except :
-        #else :
-           pass
-
-    #-----------------------------------------------------------------#
-    def saveFileLegerAs(self, fileName = None) :
-    #-----------------------------------------------------------------#
-        if fileName != None :
-           self.fichier = fileName
-           return self.saveFileLeger()
-        return self.saveFileLeger()
-
-    #-----------------------------------------------------------------#
-    def saveFileLeger(self, path = None, saveas= 0,formatLigne="beautifie"):
-    #-----------------------------------------------------------------#
-        extension='.casR'
-        fn = self.fichier
-        #saveas=True # Pour forcer le nom
-        self.generator=generator.plugins[self.format]()
-        if self.fichier is None or saveas:
-          if path is None: path=self.CONFIGURATION.savedir
-          bOK, fn=self.determineNomFichier(path,extension)
-          if bOK == 0 : return (0, None)
-          if fn == None : return (0, None)
-          if fn== '' : return (0, None)
-
-          ulfile = os.path.abspath(six.text_type(fn))
-          self.appliEficas.CONFIGURATION.savedir=os.path.split(ulfile)[0]
-          fn = six.text_type(QDir.toNativeSeparators(fn))
-
-        self.fichier = os.path.splitext(fn)[0]+extension
-
-        if hasattr(self.generator, "writeLeger"):
-            self.generator.writeLeger(self.fichier,self.jdc,config=self.appliEficas.CONFIGURATION,appli=self.appliEficas)
-
-        if self.salome : self.appliEficas.addJdcInSalome( self.fichier)
-
-        self.modified = 0
-        nouveauTitre=self.titre+"              "+str(os.path.basename(self.fichier))
-        self.appliEficas.setWindowTitle(nouveauTitre)
-        return (1, self.fichier)
-
-    #-----------------------------------------------------------------#
-    def saveFile(self, path = None, saveas= 0,formatLigne="beautifie"):
-    #-----------------------------------------------------------------#
-        """
-        Public slot to save the text to a file.
-
-        @param path directory to save the file in (string or QString)
-        @return tuple of two values (boolean, string) giving a success indicator and
-            the name of the saved file
-        """
-
-        self.modified=1
-        if not self.modified and not saveas:
-            return (0, None)      # do nothing if text wasn't changed
-
-        if self.appli.code in DictExtensions :
-           extension=DictExtensions[self.appli.code]
-        else :
-           extension='.comm'
-
-        newName = None
-        fn = self.fichier
-        if self.fichier is None or saveas:
-          if path is None: path=self.CONFIGURATION.savedir
-          bOK, fn=self.determineNomFichier(path,extension)
-          if bOK == 0 : return (0, None)
-          if fn == None : return (0, None)
-          if fn== '' : return (0, None)
-
-          ulfile = os.path.abspath(six.text_type(fn))
-          self.appliEficas.CONFIGURATION.savedir=os.path.split(ulfile)[0]
-          fn = six.text_type(QDir.toNativeSeparators(fn))
-          newName = fn
-
-
-        if not (self.writeFile(fn,formatLigne=formatLigne)): return (0, None)
-        self.fichier = fn
-        self.modified  = False
-        if self.fileInfo is None or saveas:
-           self.fileInfo = QFileInfo(self.fichier)
-           self.fileInfo.setCaching(0)
-        self.lastModified = self.fileInfo.lastModified()
-        if newName is not None:
-           self.appliEficas.addToRecentList(newName)
-           self.tree.racine.item.getObject().nom=os.path.basename(newName)
-           self.tree.racine.update_node_label()
-
-        if self.jdc.isvalid() != 0 and hasattr(self.generator, "writeDefault"):
-            self.generator.writeDefault(fn)
-        elif self.code=="TELEMAC" and hasattr(self.generator, "writeDefault"):
-            self.generator.writeDefault(fn)
-
-        if self.salome :
-               self.appliEficas.addJdcInSalome( self.fichier)
-        self.modified = 0
-        nouveauTitre=self.titre+"              "+str(os.path.basename(self.fichier))
-        self.appliEficas.setWindowTitle(nouveauTitre)
-
-        return (1, self.fichier)
-#
-
-    #----------------------------------------------#
-    def sauveLigneFile(self):
-    #----------------------------------------------#
-        self.modified=1
-        return self.saveFile(formatLigne="Ligne")
-
-
-    #----------------------------------------------#
-    def saveFileAs(self, path = None,fileName=None):
-    #----------------------------------------------#
-        """
-        Public slot to save a file with a new name.
-
-        @param path directory to save the file in (string or QString)
-        @return tuple of two values (boolean, string) giving a success indicator and
-            the name of the saved file
-        """
-        if fileName != None :
-           self.fichier = fileName
-           return self.saveFile()
-        return self.saveFile(path,1,"beautifie")
-
-
-
-    #---------------------------------------------#
-    def get_file(self,unite=None,fic_origine = ''):
-    #---------------------------------------------#
-    # appele par I_JDC
-        ulfile  = None
-        jdcText = ""
-
-        titre  = ""
-
-        if unite :
-            titre = tr("Choix unite %d ", unite)
-            texte = tr("Le fichier %s contient une commande INCLUDE \n",  str(fic_origine)) +"\n"
-            texte = texte+ tr("Donnez le nom du fichier correspondant a l unite logique ") + repr(unite)
-            labeltexte = tr('Fichier pour unite ') + repr( unite)
-        else:
-            titre = tr("Choix d'un fichier de poursuite")
-            texte = tr("Le fichier %s contient une commande POURSUITE\n", fic_origine)
-            texte = texte+tr('Donnez le nom du fichier dont vous \n voulez faire une poursuite')
-
-        QMessageBox.information( self, titre,texte)
-        fn = QFileDialog.getOpenFileName(self.appliEficas,
-                   titre,
-                   self.appliEficas.CONFIGURATION.savedir)
-
-        # ce retour est impose par le get_file d'I_JDC
-        if fn== '' : return None," "
-        if not fn : return (0, " ")
-        fn=fn[0]
-
-        ulfile = os.path.abspath(six.text_type(fn))
-        self.appliEficas.CONFIGURATION.savedir=os.path.split(ulfile)[0]
-
-        # On utilise le convertisseur defini par format_fichier
-        source=self.get_source(ulfile)
-        if source:
-            # On a reussia convertir le fichier self.ulfile
-            jdcText = source
-        else:
-            # Une erreur a ete rencontree
-            jdcText = ''
-        return ulfile, jdcText
-
-    #-----------------------------------#
-    def updateJdc(self, itemApres,texte):
-    #------------------------------------#
-    # ajoute une etape  de JdC a partir d un texte
-        monItem=itemApres
-        etape=monItem.item.object
-        CONTEXT.set_current_step(etape)
-        etape.build_includeInclude(texte)
-        self.tree.racine.build_children()
-
-    #-----------------------------------#
-    def updateJdcEtape(self, itemApres,texte):
-    #------------------------------------#
-    # ajoute une etape  de JdC a partir d un texte
-        monItem=itemApres
-        etape=monItem.item.object
-        CONTEXT.set_current_step(etape)
-        try :
-          ok=etape.build_includeEtape(texte)
-        except :
-          ok=0
-        if not ok :
-           QMessageBox.information( self,
-                      tr("Import texte"),
-                      tr("Impossible d importer le texte"))
-        self.tree.racine.build_children()
-        return ok
-
-
-
-
-
-
-    #----------------------------------------------#
-    def ajoutMCFact(self,etape,MCFils,listeAvant=()):
-    #----------------------------------------------#
-    # dans le JDC
-        print ('ajoutMCFact')
-        ouChercher=etape
-        print (ouChercher)
-        for mot in listeAvant :
-              ouChercher=ouChercher.get_child(mot,restreint="oui")
-              print (mot)
-              print (ouChercher)
-        monMC=etape.get_child(ouChercher,restreint="oui")
-        if monMC== None : monMC= ouChercher.addentite(MCFils)
-        monMC.isvalid()
-
-    #-------------------------------------#
-    def getValeur(self,nomEtape,MCFils,listeAvant=()):
-    #-------------------------------------#
-    # dans le JDC
-
-        ouChercher=None
-        for e in self.jdc.etapes:
-            if e.nom == nomEtape : ouChercher=e; break
-        if ouChercher==None : return None
-        for mot in listeAvant :
-              ouChercher=ouChercher.get_child(mot,restreint="oui")
-              #print (mot, ouChercher)
-              if ouChercher==None : return None
-        monMC=ouChercher.get_child(MCFils,restreint="oui")
-        if monMC== None : return None
-        return monMC.valeur
-
-    #-----------------------------------------------------------#
-    def setValeur(self,nomEtape,MCFils,valeur,listeAvant=()):
-    #--------------------------------------------------------#
-    # dans le JDC
-
-        ouChercher=None
-        for e in self.jdc.etapes:
-            if e.nom == nomEtape : ouChercher=e; break
-        if ouChercher==None : return None
-        for mot in listeAvant :
-              ouChercher=ouChercher.get_child(mot,restreint="oui")
-              #print (mot, ouChercher)
-              if ouChercher==None : return None
-        monMC=ouChercher.get_child(MCFils,restreint="oui")
-        monMC.set_valeur(valeur)
-        monMC.isvalid()
-
-    #-------------------------------------#
-    def deleteEtape(self,etape):
-    #-------------------------------------#
-        self.jdc.suppentite(etape)
-
-    #-------------------------------------#
-    def deleteMC(self,etape,MCFils,listeAvant=()):
-    #-------------------------------------#
-        ouChercher=etape
-        for mot in listeAvant :
-              ouChercher=ouChercher.get_child(mot,restreint="oui")
-        monMC=ouChercher.get_child(MCFils,restreint="oui")
-        if monMC != None :  ouChercher.suppentite(monMC)
-        ouChercher.state='changed'
-        ouChercher.isvalid()
-        
-    #-------------------------------------#
-    def ajoutMC(self,etape,MCFils,valeurs,listeAvant=()):
-    #-------------------------------------#
-        print('debut ajoutMC')
-        ouChercher=etape
-        for mot in listeAvant :
-              ouChercher=ouChercher.get_child(mot,restreint="oui")
-        monMC=etape.get_child(ouChercher,restreint="oui")
-        print( monMC)
-        if monMC== None : monMC= ouChercher.addentite(MCFils)
-        monMC.valeur=valeurs
-        monMC.val=valeurs
-        monMC.state='changed'
-        monMC.isvalid()
-        print(monMC)
-        
-        
-    #-----------------------------------------------------------#
-    def changeIntoMC(self,etape,MCFils,valeurs, listeAvant=()):
-    #-----------------------------------------------------------#
-        ouChercher=etape
-        for mot in listeAvant :
-              ouChercher=ouChercher.get_child(mot,restreint="oui")
-        if ouChercher ==None : print( 'SOUCI'); return
-        monMC=ouChercher.get_child(MCFils,restreint="oui")
-        if monMC== None : monMC= ouChercher.addentite(MCFils)
-        monMC.definition.into=valeurs
-        monMC.state='changed'
-        monMC.isvalid()
-
-    #-------------------------------------#
-    def changeIntoDefMC(self,etape,listeMC,valeurs):
-    #-------------------------------------#
-        definitionEtape=getattr(self.jdc.cata[0],etape)
-        ouChercher=definitionEtape
-        if len(listeMC) > 1 :
-           for mc in listeMC[0:-1]:
-             mcfact=ouChercher.entites[mc]
-             ouChercher=mcfact
-           
-        mcAccas=ouChercher.entites[listeMC[-1]]
-        mcAccas.into=valeurs
-
-    #-------------------------------------------------------------#
-    def deleteDefinitionMC(self,etape,listeAvant,nomDuMC):
-    #-------------------------------------------------------------#
-        #print 'in deleteDefinitionMC', etape,listeAvant,nomDuMC
-        definitionEtape=getattr(self.jdc.cata[0],etape)
-        ouChercher=definitionEtape
-        for k in listeAvant : 
-            ouChercher=ouChercher.entites[k]
-        MCADetruire=ouChercher.entites[nomDuMC]
-        ouChercher.ordre_mc.remove(nomDuMC)
-        del ouChercher.entites[nomDuMC]
-        del self.dicoNouveauxMC[nomDuMC]
-
-
-    #-------------------------------------------------------------#
-    def ajoutDefinitionMC(self,etape,listeAvant,nomDuMC,typ,**args):
-    #-------------------------------------------------------------#
-        print('debut ajoutDefinitionMC')
-        definitionEtape=getattr(self.jdc.cata[0],etape)
-        ouChercher=definitionEtape
-        for k in listeAvant : 
-            ouChercher=ouChercher.entites[k]
-        from Accas import A_SIMP
-        Nouveau=A_SIMP.SIMP(typ,**args)
-        Nouveau.pere=ouChercher
-        Nouveau.nom=nomDuMC
-        Nouveau.ordre_mc=[]
-        ouChercher.entites[nomDuMC]=Nouveau
-        ouChercher.ordre_mc.append(nomDuMC)
-        self.dicoNouveauxMC[nomDuMC]=('ajoutDefinitionMC',etape,listeAvant,nomDuMC,typ,args)
-        print( self.dicoNouveauxMC)
-        print('fin ajoutDefinitionMC')
-
-    #----------------------------------------------------#
-    def changeIntoMCandSet(self,etape,MCFils,into,valeurs):
-    #----------------------------------------------------#
-        monMC=etape.get_child(MCFils,restreint="oui")
-        if monMC== None : monMC= etape.addentite(MCFils)
-        monMC.definition.into=into
-        monMC.valeur=valeurs
-        monMC.val=valeurs
-        monMC.state='changed'
-        monMC.isvalid() 
-        
-        
-        
-        
-    #-------------------------------------------------------------------#
-    def reCalculeValiditeMCApresChgtInto(self,nomEtape,MCFils,listeAvant=()):
-    #-------------------------------------------------------------------#
-    # dans le JDC
-        for e in self.jdc.etapes:
-            if e.nom == nomEtape : ouChercher=e; break
-        
-        for mot in listeAvant :
-            try :
-              ouChercher=ouChercher.get_child(mot,restreint="oui")
-            # Le mot clef n est pas la
-            except : return 0
-        try :
-           monMC=ouChercher.get_child(MCFils,restreint="oui")
-        # Le mot clef n est pas la
-        except : return 0
-        if monMC == None : return 0
-
-        if hasattr(monMC.definition,'into') :
-           if type(monMC.definition.into) ==types.FunctionType : maListeDeValeur=monMC.definition.into()
-           else : maListeDeValeur=monMC.definition.into
-        else :
-           return 0
-        
-        monMC.state='changed'
-        return 1
-
-    #-------------------------------------#
-    def changeDefautDefMC(self,nomEtape,listeMC,valeurs):
-    #-------------------------------------#
-    # dans le MDD
-
-        #if isinstance (etape, str):
-        #  for e in self.jdc.etapes:
-        #    if e.nom == etape : etape=e; break
-        #if etape == None : return
-        definitionEtape=getattr(self.jdc.cata[0],nomEtape)
-        ouChercher=definitionEtape
-        if len(listeMC) > 1 :
-
-           for mc in listeMC[0:-1]:
-             mcfact=ouChercher.entites[mc]
-             ouChercher=mcfact
-           
-        mcAccas=ouChercher.entites[listeMC[-1]]
-        mcAccas.defaut=valeurs
-        return 1
-        
-        
-
-
-    #---------------------------------------------------------------------#
-    def ajoutDefinitionMCFact(self,nomEtape,listeAvant,nomDuMC,listeMC,**args):
-    #---------------------------------------------------------------------#
-    # dans le MDD
-        print ('ajoutDefinitionMCFact', nomDuMC)
-        definitionEtape=getattr(self.jdc.cata[0],nomEtape)
-        ouChercher=definitionEtape
-        for k in listeAvant : 
-            ouChercher=ouChercher.entites[k]
-        from Accas import A_SIMP
-        for mc in listeMC :
-            nomMC=mc[0]
-            typMC=mc[1]
-            argsMC=mc[2]
-            nouveauMC=A_SIMP.SIMP(typMC,**argsMC)
-            nouveauMC.nom=nomMC
-            args[nomMC]=nouveauMC
-        from Accas import A_FACT
-        nouveauFact=A_FACT.FACT(**args)
-        nouveauFact.pere=ouChercher
-        nouveauFact.nom=nomDuMC
-        from Editeur.autre_analyse_cata import traite_entite
-        traite_entite(nouveauFact,[])
-        ouChercher.entites[nomDuMC]=nouveauFact
-        ouChercher.ordre_mc.append(nomDuMC)
-        self.dicoNouveauxFact[nomDuMC]=('ajoutDefinitionMC',nomEtape,listeAvant,nomDuMC,listeMC,args)
-        #print self.dicoNouveauxMC
-
-
-
-    #-------------------------------------#
-    def ajoutVersionCataDsJDC(self,txt):
-    #-------------------------------------#
-        if not hasattr(self.readercata.cata[0],'VERSION_CATALOGUE'): return txt
-        ligneVersion="#VERSION_CATALOGUE:"+self.readercata.cata[0].VERSION_CATALOGUE+":FIN VERSION_CATALOGUE\n"
-        texte=txt+ligneVersion
-        return texte
-
-    #-------------------------------------#
-    def verifieVersionCataDuJDC(self,text):
-    #-------------------------------------#
-        memeVersion=False
-        indexDeb=text.find("#VERSION_CATALOGUE:")
-        indexFin=text.find(":FIN VERSION_CATALOGUE")
-        if indexDeb < 0 :
-           self.versionCataDuJDC="sans"
-           textJDC=text
-        else :
-           self.versionCataDuJDC=text[indexDeb+19:indexFin]
-           textJDC=text[0:indexDeb]+text[indexFin+23:-1]
-
-        self.versionCata="sans"
-        if hasattr(self.readercata.cata[0],'VERSION_CATALOGUE'): self.versionCata=self.readercata.cata[0].VERSION_CATALOGUE
-
-        if self.versionCata==self.versionCataDuJDC : memeVersion=True
-        return memeVersion,textJDC
-
-    #-------------------------------#
-    def traduitCatalogue(self,texte):
-    #-------------------------------#
-        nomTraducteur="traduit"+self.readercata.code+self.versionCataDuJDC+"To"+self.versionCata
-        sys.path.append(os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)),"../Traducteur")))
-        try :
-            traducteur=__import__(nomTraducteur)
-            monTraducteur=traducteur.MonTraducteur(texte)
-            nouveauTexte=monTraducteur.traduit()
-            return nouveauTexte
-        except :
-            return texte
-
-
-    #------------------------------#
-    def verifieCHECKSUM(self,text):
-    #------------------------------#
-        indexDeb=text.find("#CHECKSUM:")
-        if indexDeb < 0 :
-           return 1, text
-        indexFin=text.find(":FIN CHECKSUM")
-        checkAvant=text[indexDeb:indexFin+13]
-        textJDC=text[0:indexDeb]+text[indexFin+13:-1]
-        checksum=self.get_checksum(textJDC)
-        pareil=(checkAvant==checksum)
-        return pareil, textJDC
-
-    #---------------------------#
-    def get_checksum(self,texte):
-    #---------------------------#
-        newtexte=texte.replace('"','\\"')
-        commande='echo "'+newtexte+'"|md5sum'
-        a=os.popen(commande)
-        checksum=a.read()
-        a.close()
-        ligne="#CHECKSUM:"+checksum[0:-1]+":FIN CHECKSUM"
-        return ligne
-
-
-    #---------------------------#
-    def _new_CF(self):
-    #---------------------------#
-        texte="CONDUITE_FORCEE();"
-        return texte
-
-
-    #---------------------------#
-    def _newTELEMAC(self):
-    #---------------------------#
-        #texte="INITIALIZATION();BOUNDARY_CONDITIONS();GENERAL_PARAMETERS();PHYSICAL_PARAMETERS();NUMERICAL_PARAMETERS();"
-        texte="COMPUTATION_ENVIRONMENT();HYDRO();GENERAL_PARAMETERS();NUMERICAL_PARAMETERS()"
-        #texte="TRACERS();"
-        return texte
-
-    #---------------------------#
-    def _newPSEN(self):
-    #---------------------------#
-        if 'PF_PARAMETERS' in self.Ordre_Des_Commandes:
-            texte = "DIRECTORY() ;PF_PARAMETERS() ; SIMULATION() ; sansnom=DISTRIBUTION() ; sansnom=DISTRIBUTION() ; CORRELATION() ;"
-        else:
-            texte = "DIRECTORY() ; PSSE_PARAMETERS() ; SIMULATION() ; sansnom=DISTRIBUTION() ; sansnom=DISTRIBUTION() ; CORRELATION() ;"
-            # texte=""
-        return texte
-
-    #---------------------------#
-    def _newPSEN_N1(self):
-    #---------------------------#
-        texte="CASE_SELECTION();N_PROCESSING_OPTIONS();CONTINGENCY_OPTIONS();CONTINGENCY_SELECTION();\nCONTINGENCY_PROCESSING(); "
-        #texte="CONTINGENCY_SELECTION();\nCONTINGENCY_PROCESSING(); "
-        return texte
-
-    #---------------------------#
-
-    #---------------------------#
-    def _newZCRACKS(self):
-    #---------------------------#
-        texte="MAILLAGES();REMESHING();"
-        return texte
-
-    #---------------------------#
-    def _newJDCCND(self):
-    #---------------------------#
-      extensions=tr('Fichiers Med (*.med);;''Tous les Fichiers (*)')
-      
-      #if self.salome == 0 :
-      QMessageBox.information( self,
-                      tr("Fichier Med"),
-                      tr("Veuillez selectionner un fichier Med"))
-      QSfichier = QFileDialog.getOpenFileName(self.appliEficas,
-                        caption='Fichier Med',
-                        filter=extensions)
-      QSfichier=QSfichier[0]
-      self.fichierMED=QSfichier
-      from acquiertGroupes import getGroupes
-      erreur,self.listeGroupes,self.nomMaillage,self.dicoCoord=getGroupes(self.fichierMED)
-      if erreur != "" : print ("a traiter")
-      texteComm="COMMENTAIRE(u'Cree - fichier : "+self.fichierMED +" - Nom Maillage : "+self.nomMaillage+"');\nPARAMETRES()\n"
-      texteSources=""
-      texteCond=""
-      texteNoCond=""
-      texteVcut=""
-      texteZs=""
-      for groupe in self.listeGroupes :
-          if groupe[0:8]=='CURRENT_': 
-             texteSources +=groupe[8:]+"=SOURCE("
-             texteSources +="VecteurDirecteur=(1.0,2.0,3.0,),);\n"
-          if groupe[0:5]=='COND_':    texteCond    +=groupe[5:]+"=CONDUCTEUR();\n"
-          if groupe[0:7]=='NOCOND_':  texteNoCond  +=groupe[7:]+"=NOCOND();\n"
-          if groupe[0:5]=='VCUT_':    texteVcut    +='V_'+groupe[5:]+"=VCUT();\n"
-          if groupe[0:3]=='ZS_':      texteZs      +=groupe[3:]+"=ZS();\n"
-      texte=texteComm+texteSources+texteCond+texteNoCond+texteVcut+texteZs
-      self.newTexteCND=texte
-      self.modified=1
-      return texte
-
-
-    #---------------------------#
-    def  BoutonFileSelected(self):
-    #---------------------------#
-
-      QSfichier=self.openfile.selectedFiles()[0]
-      self.fichierMED=str(QSfichier)
-      from acquiertGroupes import getGroupes
-      erreur,self.listeGroupes,self.nomMaillage=getGroupes(self.fichierMED)
-      if erreur != "" : print ("a traiter")
-
-    #-----------------------------
-    def BoutonSalomePressed(self):
-    #----------------------------
-      Msg,self.listeGroupes=self.appliEficas.ChercheGrpMailleInSalome()
-      self.fichierMED="A_partir_de_SMESH"
-      self.nomMaillage="A_partir_de_SMESH"
-      self.openfile.close()
-
-
-    #-----------------------------------------
-    def initSplitterSizes(self, nbWidget=3):
-    #-----------------------------------------
-       #print ("je passe ds initSplitterSizes", nbWidget)
-
-       if   self.code in [ 'Adao', 'ADAO', ] : self.splitterSizes3=[1,1550,150]
-       elif self.code in [ 'MAP']            : self.splitterSizes3=[700,300]
-       else                                  : self.splitterSizes3=[150,1000,300]
-
-       if   self.code in [ 'Adao', 'ADAO', ] : self.splitterSizes2=[5,1500]
-       else                                  : self.splitterSizes2=[300,1000]
-
-
-
-    #-----------------------------------------
-    def restoreSplitterSizes(self,nbWidget=3):
-    #----------------------------------------
-      
-      #traceback.print_stack()
-      #print ("je passe ds restoreSplitterSizes")
-      if not(hasattr(self,'splitter')) : return
-      if nbWidget==2  : newSizes=self.splitterSizes2
-      if nbWidget==3  : newSizes=self.splitterSizes3
-      #self.inhibeSplitter = 1
-      self.splitter.setSizes(newSizes)
-      #self.inhibeSplitter = 0
-      QApplication.processEvents()
-      # seule la fentetre du milieu est necessaire
-      self.splitter.widget(1).resizeEvent=self.saveSplitterSizes
-   
-    #-----------------------------------------
-    def saveSplitterSizes(self,event):
-    #-----------------------------------------
-      #print ("je passe ds saveSplitterSizes")
-      if self.inhibeSplitter : return
-      if self.widgetOptionnel == None  : self.splitterSizes2 = self.splitter.sizes()[0:2]
-      else                             : self.splitterSizes3 = self.splitter.sizes()[0:3]
-
-    #------------------------
-    def fermeOptionnel(self):
-    #------------------------
-      if self.widgetOptionnel == None : return
-
-      self.inhibeSplitter=1
-      self.widgetOptionnel.setParent(None)
-      self.widgetOptionnel.close()
-      self.widgetOptionnel.deleteLater()
-      self.widgetOptionnel=None
-      self.inhibeSplitter=0
-      self.restoreSplitterSizes(2)
-
-    #------------------------
-    def ajoutOptionnel(self):
-    #------------------------
-      #if len(self.splitterSizes) == 2 : self.splitterSizes.append(self.oldSizeWidgetOptionnel)
-      #else : self.splitterSizes[2] = self.oldSizeWidgetOptionnel # ceinture pour les close bizarres
-      #self.splitterSizes[1] = self.splitterSizes[1] - self.splitterSizes[2]
-      
-      self.restoreSplitterSizes(3)
-
-
-    #------------------------
-    def fermeArbre(self):
-    #------------------------
-       #print (self.widgetTree)
-       self.oldWidgetTree=self.widgetTree
-       self.widgetTree.hide()
-       #self.widgetTree=None
-
-    #------------------------
-    def ouvreArbre(self):
-    #------------------------
-       #print ('je passe la')
-       #print (self.widgetTree)
-       #self.widgetTree=self.oldWidgetTree
-       self.widgetTree.show()
-       #self.restoreSplitterSizes(3)
-
-    #-----------------------------
-    def getTreeIndex(self,noeud):
-    #----------------------------
-      indexNoeud=-1
-      if noeud in noeud.treeParent.children :
-          indexNoeud=noeud.treeParent.children.index(noeud)
-      else :
-          if hasattr(noeud,'vraiParent') :
-              noeudVrai = noeud
-              noeudVraiParent = noeud.vraiParent
-              while noeudVraiParent != noeud.treeParent and hasattr(noeudVraiParent,'vraiParent') :
-                  noeudVrai = noeudVraiParent
-                  noeudVraiParent = noeudVraiParent.vraiParent
-                  pass
-              if noeudVraiParent == noeud.treeParent :
-                  indexNoeud=noeud.treeParent.children.index(noeudVrai)
-                  pass
-              pass
-          pass
-      return indexNoeud
-
-if __name__ == "__main__":
-    self.code='ASTER'
-    name='prefs_'+prefs.code
-    prefsCode=__import__(name)
-
-
-    if hasattr(prefsCode,'encoding'):
-       # Hack pour changer le codage par defaut des strings
-       import sys
-       reload(sys)
-       sys.setdefaultencoding(prefs.encoding)
-       del sys.setdefaultencoding
-       # Fin hack
-
-#    code=options.code
-#
-    app = QApplication(sys.argv)
-    mw = JDCEditor(None,'azAster.comm')
-    app.setMainWidget(mw)
-    app.connect(app, SIGNAL("lastWindowClosed()"), app, SLOT("quit()"))
-    mw.show()
-
-    res = app.exec_loop()
-    sys.exit(res)
index 17b8b19c04bf15570a4c2b1877fa8e7be70cb548..4769c91583b7b33b5fbabd8675650f0988ad353f 100755 (executable)
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import str
-   from builtins import range
+    from builtins import str
+    from builtins import range
 except : pass
 
 import types,sys,os, re
 import  subprocess
 import traceback
-import six
 
 
 from PyQt5.QtWidgets import QWidget, QMessageBox, QFileDialog, QApplication, QSplitter, QLabel
@@ -46,12 +45,12 @@ from InterfaceQT4   import browser
 
 from desBaseWidget    import Ui_baseWidget
 from InterfaceQT4.monViewTexte   import ViewText
-from monWidgetCreeParam import MonWidgetCreeParam 
+from monWidgetCreeParam import MonWidgetCreeParam
 
 DictExtensions= {"MAP" : ".map", "TELEMAC" : '.cas'}
 debug = False
 
-    
+
 from InterfaceQT4.editorSsIhm    import JDCEditorSsIhm
 
 
@@ -65,8 +64,8 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
 # Methodes faisant appel a ssIhm
 # ----------------------------------------
 
-    def __init__ (self,appli,fichier = None, jdc=None, QWParent=None, units = None, include=0):
-    #------------------------------------------------------------------------------------------
+    def __init__ (self,appliEficas,fichier = None, jdc=None, QWParent=None, units = None, include=0):
+    #------------------------------------------------------------------------------------------------
 
 
         QWidget.__init__(self,None)
@@ -77,32 +76,35 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
         self.fenetreCentraleAffichee=None
         self.dejaDansPlieTout=False
         self.listeDesListesOuvertes=set()
-        self.afficheListesPliees=True
-        if appli!=None and hasattr(appli,"statusBar"): self.sb = appli.statusBar()
+        if appliEficas!=None and hasattr(appliEficas,"statusBar"): self.sb = appliEficas.statusBar()
         else : self.sb = None
         self.QWParent=QWParent
 
-        JDCEditorSsIhm. __init__ (self,appli,fichier, jdc,units,include)
+        JDCEditorSsIhm. __init__ (self,appliEficas,fichier, jdc,units,include)
+        if self.jdc:
+            comploader.chargerComposants()
+            self.jdc_item=Objecttreeitem.makeObjecttreeitem( self, "nom", self.jdc )
+
 
         # Particularites IHM : met la fenetre a jour
 
         self.initSplitterSizes()
-        if self.code == "ASTER" or self.code == "monCode" : self.afficheListesPliees =True
-        if self.code == 'PSEN_N1' : self.afficheListesPliees = False
 
         #self.affiche=self.appliEficas.maConfiguration.affiche
 
+        self.afficheListesPliees=self.maConfiguration.afficheListesPliees
         if self.code in ['MAP','CARMELCND','PSEN'] : self.maConfiguration.afficheCommandesPliees=False
         if self.code in ['MAP',]: self.fermeArbre()
         #   self.widgetTree.close()
         #   self.widgetTree=None
 
-        if self.maConfiguration.closeArbre: self.fermeArbre()
+        if self.maConfiguration.closeArbre      : self.fermeArbre()
+        if self.maConfiguration.closeOptionnel  : self.fermeOptionnel()
         if self.maConfiguration.boutonDsMenuBar : self.appliEficas.remplitIconesCommandes()
 
-        self.version_code = session.d_env.cata
-     
-        self.format =  self.appliEficas.format_fichier
+
+        self.formatFichierOut =  self.appliEficas.formatFichierOut
+        self.formatFichierIn  =  self.appliEficas.formatFichierIn
 
         self.node_selected = []
         self.deplier = True
@@ -118,11 +120,11 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
         self.Commandes_Ordre_Catalogue =self.readercata.Commandes_Ordre_Catalogue
 
         if self.appliEficas.readercata.demandeCatalogue==True  :
-           nomFichierTranslation='translatorFichier'+'_'+str(self.appliEficas.readercata.versionCode)
-           if hasattr(self.appliEficas.maConfiguration,nomFichierTranslation) :
-              translatorFichier=getattr(self.appliEficas.maConfiguration,nomFichierTranslation)
-              from Extensions import localisation
-              localisation.localise(None,self.appliEficas.langue,translatorFichier=translatorFichier)
+            nomFichierTranslation='translatorFichier'+'_'+str(self.appliEficas.readercata.labelCode)
+            if hasattr(self.appliEficas.maConfiguration,nomFichierTranslation) :
+                translatorFichier=getattr(self.appliEficas.maConfiguration,nomFichierTranslation)
+                from Extensions import localisation
+                localisation.localise(None,self.appliEficas.langue,translatorFichier=translatorFichier)
 
 
         if self.jdc_item and self.appliEficas.ssIhm==False :
@@ -173,7 +175,7 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
 #   saveFileLegerAs
 
 # ---------------------------------------------
-# Methodes Surchargees 
+# Methodes Surchargees
 # ---------------------------------------------
 
     #-----------------------------------------------------------------------#
@@ -185,20 +187,20 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
     #--------------------------------#
     def informe(self,titre,txt,critique=True):
     #--------------------------------#
-       if  critique :
-           self.afficheInfos(tr(txt),Qt.red)
-           QMessageBox.critical( self, tr(titre), tr(txt))
-       else :
-           QMessageBox.warning( self, tr(titre),tr(txt))
+        if  critique :
+            self.afficheInfos(tr(txt),Qt.red)
+            QMessageBox.critical( self, tr(titre), tr(txt))
+        else :
+            QMessageBox.warning( self, tr(titre),tr(txt))
 
     #--------------------------------#
     def ajoutCommentaire(self):
     #--------------------------------#
         if self.tree.selectedItems()==[] :
-          QMessageBox.warning( self, tr("Pas de noeud selectionne"),tr("Selectionnez un Noeud \nLe commentaire sera place apres le noeud selectionne"))
-          return 
+            QMessageBox.warning( self, tr("Pas de noeud selectionne"),tr("Selectionnez un Noeud \nLe commentaire sera place apres le noeud selectionne"))
+            return
         noeudAvantCommentaire=self.tree.selectedItems()[0]
-        if noeudAvantCommentaire ==self.tree.racine : 
+        if noeudAvantCommentaire ==self.tree.racine :
             self.tree.racine.appendChild("COMMENTAIRE",pos=0)
             return
         noeudAvantCommentaire.addComment(True)
@@ -222,10 +224,10 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
         self.monExe.closeWriteChannel()
         self.w.exec_()
         try:
-          commande="rm  "+ nomFichier
-          os.system(commande)
+            commande="rm  "+ nomFichier
+            os.system(commande)
         except :
-          pass
+            pass
 
     def readFromStdErr(self):
         a=self.monExe.readAllStandardError()
@@ -235,7 +237,7 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
         a=self.monExe.readAllStandardOutput()
         self.w.view.append(str(a.data()))
 
-        
+
     #-----------------------#
     def gestionParam(self):
     #-----------------------#
@@ -257,11 +259,11 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
     #----------------------------------------------#
         if couleur=='red' : couleur = Qt.red
         if self.sb:
-           mapalette=self.sb.palette()
-           mapalette.setColor( QPalette.WindowText, couleur )
-           self.sb.setPalette( mapalette );
-           self.sb.showMessage(message,4000)
-           self.couleur=couleur
+            mapalette=self.sb.palette()
+            mapalette.setColor( QPalette.WindowText, couleur )
+            self.sb.setPalette( mapalette );
+            self.sb.showMessage(message,4000)
+            self.couleur=couleur
 
     #------------------------------#
     def afficheAlerte(self,titre,message):
@@ -283,166 +285,166 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
     #---------------------------------------#
     def chercheNoeudSelectionne(self,copie=1):
     #---------------------------------------#
-      """
-        appele par Cut et Copy pour positionner self.node_selected
-      """
-      self.node_selected=[]
-      if len(self.tree.selectedItems()) == 0 : return
-      self.node_selected=self.tree.selectedItems()
+        """
+          appele par Cut et Copy pour positionner self.node_selected
+        """
+        self.node_selected=[]
+        if len(self.tree.selectedItems()) == 0 : return
+        self.node_selected=self.tree.selectedItems()
 
 
     #---------------------#
     def handleSupprimer(self):
     #---------------------#
-      self.chercheNoeudSelectionne()
-      if len(self.node_selected) == 0 : return
-      self.QWParent.noeud_a_editer = []
-      if self.node_selected[0]==self.tree.racine: return
-      if len(self.node_selected) == 1 : self.node_selected[0].delete()
-      else : self.node_selected[0].deleteMultiple(self.node_selected)
+        self.chercheNoeudSelectionne()
+        if len(self.node_selected) == 0 : return
+        self.QWParent.noeud_a_editer = []
+        if self.node_selected[0]==self.tree.racine: return
+        if len(self.node_selected) == 1 : self.node_selected[0].delete()
+        else : self.node_selected[0].deleteMultiple(self.node_selected)
 
     #---------------------#
     def handleRechercher(self):
     #---------------------#
-      from .monRecherche import DRecherche
-      monRechercheDialg=DRecherche(parent=self,fl=0)
-      monRechercheDialg.show()
+        from .monRecherche import DRecherche
+        monRechercheDialg=DRecherche(parent=self,fl=0)
+        monRechercheDialg.show()
 
 
     #--------------------------------#
     def handleRechercherDsCatalogue(self):
     #-----------------------------#
-      from .monRechercheCatalogue import DRechercheCatalogue
-      monRechercheDialg=DRechercheCatalogue(self.QWParent,self)
-      monRechercheDialg.show()
+        from .monRechercheCatalogue import DRechercheCatalogue
+        monRechercheDialg=DRechercheCatalogue(self.QWParent,self)
+        monRechercheDialg.show()
 
     #---------------------#
     def handleDeplier(self):
     #---------------------#
-       if self.tree == None : return
-       #self.tree.collapseAll()
-       if self.deplier :
-          #print "je plie"
-          self.tree.expandItem(self.tree.topLevelItem(0))
-          self.deplier = False
-          if self.fenetreCentraleAffichee != None  :
-             if hasattr(self.fenetreCentraleAffichee.node,'plieToutEtReaffiche'):
-                 self.fenetreCentraleAffichee.node.plieToutEtReaffiche()
-       else:
-          #print "je deplie"
-          self.tree.expandItem(self.tree.topLevelItem(0))
-          self.deplier = True
-          if self.fenetreCentraleAffichee != None  :
-             if hasattr(self.fenetreCentraleAffichee.node,'deplieToutEtReaffiche'):
-                 self.fenetreCentraleAffichee.node.deplieToutEtReaffiche()
+        if self.tree == None : return
+        #self.tree.collapseAll()
+        if self.deplier :
+            #print "je plie"
+            self.tree.expandItem(self.tree.topLevelItem(0))
+            self.deplier = False
+            if self.fenetreCentraleAffichee != None  :
+                if hasattr(self.fenetreCentraleAffichee.node,'plieToutEtReaffiche'):
+                    self.fenetreCentraleAffichee.node.plieToutEtReaffiche()
+        else:
+            #print "je deplie"
+            self.tree.expandItem(self.tree.topLevelItem(0))
+            self.deplier = True
+            if self.fenetreCentraleAffichee != None  :
+                if hasattr(self.fenetreCentraleAffichee.node,'deplieToutEtReaffiche'):
+                    self.fenetreCentraleAffichee.node.deplieToutEtReaffiche()
 
     #---------------------#
     def handleEditCut(self):
     #---------------------#
-      """
-      Stocke dans Eficas.noeud_a_editer le noeud a couper
-      """
-      #print "handleEditCut"
-      self.chercheNoeudSelectionne()
-      self.QWParent.edit="couper"
-      self.QWParent.noeud_a_editer = self.node_selected
+        """
+        Stocke dans Eficas.noeud_a_editer le noeud a couper
+        """
+        #print "handleEditCut"
+        self.chercheNoeudSelectionne()
+        self.QWParent.edit="couper"
+        self.QWParent.noeud_a_editer = self.node_selected
 
     #-----------------------#
     def handleEditCopy(self):
     #-----------------------#
-      """
-      Stocke dans Eficas.noeud_a_editer le noeud a copier
-      """
-      self.chercheNoeudSelectionne()
-      if len(self.node_selected) == 0 : return
-      if len(self.node_selected) == 1 : self.node_selected[0].updateNodeLabelInBlue()
-      else :  self.node_selected[0].updatePlusieursNodeLabelInBlue(self.node_selected)
-      self.QWParent.edit="copier"
-      self.QWParent.noeud_a_editer = self.node_selected
+        """
+        Stocke dans Eficas.noeud_a_editer le noeud a copier
+        """
+        self.chercheNoeudSelectionne()
+        if len(self.node_selected) == 0 : return
+        if len(self.node_selected) == 1 : self.node_selected[0].updateNodeLabelInBlue()
+        else :  self.node_selected[0].updatePlusieursNodeLabelInBlue(self.node_selected)
+        self.QWParent.edit="copier"
+        self.QWParent.noeud_a_editer = self.node_selected
 
     #------------------------#
     def handleEditPaste(self):
     #------------------------#
-      """
-      Lance la copie de l'objet place dans self.QWParent.noeud_a_editer
-      Ne permet que la copie d'objets de type Commande ou MCF
-      """
-      self.chercheNoeudSelectionne()
-      if (not(hasattr(self.QWParent,'noeud_a_editer'))) or len(self.QWParent.noeud_a_editer)==0:
-          QMessageBox.information( self,
-                      tr("Copie impossible"),
-                      tr("Veuillez selectionner un objet a copier"))
-          return
-      if len(self.node_selected) != 1 :
-          QMessageBox.information( self,
-                      tr("Copie impossible"),
-                      tr("Veuillez selectionner un seul objet : la copie se fera apres le noeud selectionne"))
-          return
-      noeudOuColler=self.node_selected[0]
-
-      if len(self.QWParent.noeud_a_editer)!=1:
-         #self.handleEditPasteMultiple()
-         QMessageBox.information( self, tr("Copie impossible"), tr("Aucun Objet n a ete copie ou coupe"))
-         return
-
-      noeudACopier=self.QWParent.noeud_a_editer[0]
-
-      if (self.QWParent.edit != "couper"):
-        #print   (noeudOuColler.item.parent.getChild(noeudOuColler.item.nom)) 
-        try:
-           if noeudOuColler == self.tree.racine :
-               child=noeudOuColler.doPastePremier(noeudACopier)
-           else :
-               child=noeudACopier.doPaste(noeudOuColler,'after')
-
-           if child==None or child==0:
-               QMessageBox.critical( self,tr( "Copie refusee"),tr('Eficas n a pas reussi a copier l objet'))
-               self.message = ''
-               self.afficheInfos("Copie refusee",Qt.red)
-           if noeudACopier.treeParent.editor != noeudOuColler.treeParent.editor:
-               try :
-                 nom=noeudACopier.item.sd.nom
-                 child.item.nommeSd(nom)
-               except :
-                 pass
-           return
-           self.initModif()
-           child.select()
-        except  :
-           traceback.print_exc()
-           QMessageBox.critical( self,tr( "Copie refusee"),tr('Copie refusee pour ce type d objet'))
-           self.message = ''
-           self.afficheInfos("Copie refusee",Qt.red)
-           return
-
-      # il faut declarer le JDCDisplay_courant modifie
-      # suppression eventuelle du noeud selectionne
-      # si possible on renomme l objet comme le noeud couper
-
-      if (self.QWParent.edit == "couper"):
-         if noeudACopier.treeParent.editor != noeudOuColler.treeParent.editor:
-           QMessageBox.critical( self, tr("Deplacement refuse"),tr('Deplacement refuse entre 2 fichiers. Seule la copie est autorisee '))
-
-         #if 1:
-         try :
-           # indexNoeudACopier=noeudACopier.treeParent.children.index(noeudACopier)
-            indexNoeudACopier=self.getTreeIndex(noeudACopier)
-            noeudACopier.treeParent.item.deplaceEntite(indexNoeudACopier,indexNoeudOuColler,pos)
-            noeudACopier.treeParent.buildChildren()
-
-         #else:
-         except:
-            pass
-         self.QWParent.noeud_a_editer=[]
+        """
+        Lance la copie de l'objet place dans self.QWParent.noeud_a_editer
+        Ne permet que la copie d'objets de type Commande ou MCF
+        """
+        self.chercheNoeudSelectionne()
+        if (not(hasattr(self.QWParent,'noeud_a_editer'))) or len(self.QWParent.noeud_a_editer)==0:
+            QMessageBox.information( self,
+                        tr("Copie impossible"),
+                        tr("Veuillez selectionner un objet a copier"))
+            return
+        if len(self.node_selected) != 1 :
+            QMessageBox.information( self,
+                        tr("Copie impossible"),
+                        tr("Veuillez selectionner un seul objet : la copie se fera apres le noeud selectionne"))
+            return
+        noeudOuColler=self.node_selected[0]
 
-      # on rend la copie a nouveau possible en liberant le flag edit
-      self.QWParent.edit="copier"
-      noeudACopier.select()
+        if len(self.QWParent.noeud_a_editer)!=1:
+            #self.handleEditPasteMultiple()
+            QMessageBox.information( self, tr("Copie impossible"), tr("Aucun Objet n a ete copie ou coupe"))
+            return
+
+        noeudACopier=self.QWParent.noeud_a_editer[0]
+
+        if (self.QWParent.edit != "couper"):
+        #print   (noeudOuColler.item.parent.getChild(noeudOuColler.item.nom))
+            try:
+                if noeudOuColler == self.tree.racine :
+                    child=noeudOuColler.doPastePremier(noeudACopier)
+                else :
+                    child=noeudACopier.doPaste(noeudOuColler,'after')
+
+                if child==None or child==0:
+                    QMessageBox.critical( self,tr( "Copie refusee"),tr('Eficas n a pas reussi a copier l objet'))
+                    self.message = ''
+                    self.afficheInfos("Copie refusee",Qt.red)
+                if noeudACopier.treeParent.editor != noeudOuColler.treeParent.editor:
+                    try :
+                        nom=noeudACopier.item.sd.nom
+                        child.item.nommeSd(nom)
+                    except :
+                        pass
+                return
+                self.initModif()
+                child.select()
+            except  :
+                traceback.print_exc()
+                QMessageBox.critical( self,tr( "Copie refusee"),tr('Copie refusee pour ce type d objet'))
+                self.message = ''
+                self.afficheInfos("Copie refusee",Qt.red)
+                return
+
+        # il faut declarer le JDCDisplay_courant modifie
+        # suppression eventuelle du noeud selectionne
+        # si possible on renomme l objet comme le noeud couper
+
+        if (self.QWParent.edit == "couper"):
+            if noeudACopier.treeParent.editor != noeudOuColler.treeParent.editor:
+                QMessageBox.critical( self, tr("Deplacement refuse"),tr('Deplacement refuse entre 2 fichiers. Seule la copie est autorisee '))
+
+            #if 1:
+            try :
+                # indexNoeudACopier=noeudACopier.treeParent.children.index(noeudACopier)
+                indexNoeudACopier=self.getTreeIndex(noeudACopier)
+                noeudACopier.treeParent.item.deplaceEntite(indexNoeudACopier,indexNoeudOuColler,pos)
+                noeudACopier.treeParent.buildChildren()
+
+            #else:
+            except:
+                pass
+            self.QWParent.noeud_a_editer=[]
+
+        # on rend la copie a nouveau possible en liberant le flag edit
+        self.QWParent.edit="copier"
+        noeudACopier.select()
 
     #----------------------------------#
     def handleDeplaceMultiple(self):
     #----------------------------------#
-       pass
+        pass
 
     #----------------------------------#
     def handleEditPasteMultiple(self):
@@ -450,266 +452,270 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
 
     # On ne garde que les niveaux "Etape"
     # On insere dans l'ordre du JDC
-     listeNoeudsACouper=[]
-     listeIndex=[]
-     listeChild=[]
-     listeItem=[]
-     from InterfaceQT4 import compojdc
-     noeudOuColler=self.node_selected[0]
-     if not (isinstance(noeudOuColler.treeParent, compojdc.Node)):
-        QMessageBox.information( self,
-                  tr("Copie impossible a cet endroit",),
-                  tr("Veuillez selectionner une commande, un parametre, un commentaire ou une macro"))
-        return
-     indexNoeudOuColler=noeudOuColler.treeParent.children.index(noeudOuColler)
-
-     for noeud in self.QWParent.noeud_a_editer :
-        if not (isinstance(noeud.treeParent, compojdc.Node)): continue
-        indexInTree=noeud.treeParent.children.index(noeud)
-        indice = 0
+        listeNoeudsACouper=[]
+        listeIndex=[]
+        listeChild=[]
+        listeItem=[]
+        from InterfaceQT4 import compojdc
+        noeudOuColler=self.node_selected[0]
+        if not (isinstance(noeudOuColler.treeParent, compojdc.Node)):
+            QMessageBox.information( self,
+                      tr("Copie impossible a cet endroit",),
+                      tr("Veuillez selectionner une commande, un parametre, un commentaire ou une macro"))
+            return
+        indexNoeudOuColler=noeudOuColler.treeParent.children.index(noeudOuColler)
+
+        for noeud in self.QWParent.noeud_a_editer :
+            if not (isinstance(noeud.treeParent, compojdc.Node)): continue
+            indexInTree=noeud.treeParent.children.index(noeud)
+            indice = 0
+            for index in listeIndex:
+                if index < indexInTree : indice = indice +1
+            listeIndex.insert(indice, indexInTree)
+            listeNoeudsACouper.insert(indice, noeud)
+
+        noeudJdc=noeudOuColler.treeParent
+        dejaCrees=0
+        # on les cree a l'envers parcequ'on ajoute a NoeudOuColler
+        listeIndex.reverse()
+        for index in listeIndex:
+            indexTravail=index
+            if indexNoeudOuColler < index:
+                indexTravail=indexTravail+dejaCrees
+            noeudOuColler=noeudJdc.children[indexNoeudOuColler]
+            noeud=noeudJdc.children[indexTravail]
+            child=noeud.doPaste(noeudOuColler)
+            listeChild.append(child)
+            dejaCrees=dejaCrees+1
+
+        self.QWParent.noeud_a_editer = []
+        for i in range(len(listeIndex)):
+            noeud=noeudJdc.children[indexNoeudOuColler+1+i]
+            self.QWParent.noeud_a_editer.append(noeud)
+
+        listeASupprimer=[]
+        if self.QWParent.edit !="couper" : return
+
         for index in listeIndex:
-            if index < indexInTree : indice = indice +1
-        listeIndex.insert(indice, indexInTree)
-        listeNoeudsACouper.insert(indice, noeud)
-
-     noeudJdc=noeudOuColler.treeParent
-     dejaCrees=0
-     # on les cree a l'envers parcequ'on ajoute a NoeudOuColler
-     listeIndex.reverse()
-     for index in listeIndex:
-         indexTravail=index
-         if indexNoeudOuColler < index:
-            indexTravail=indexTravail+dejaCrees
-         noeudOuColler=noeudJdc.children[indexNoeudOuColler]
-         noeud=noeudJdc.children[indexTravail]
-         child=noeud.doPaste(noeudOuColler)
-         listeChild.append(child)
-         dejaCrees=dejaCrees+1
-
-     self.QWParent.noeud_a_editer = []
-     for i in range(len(listeIndex)):
-        noeud=noeudJdc.children[indexNoeudOuColler+1+i]
-        self.QWParent.noeud_a_editer.append(noeud)
-
-     listeASupprimer=[]
-     if self.QWParent.edit !="couper" : return
-
-     for index in listeIndex:
-         indexTravail=index
-         if indexNoeudOuColler < index:
-            indexTravail=indexTravail+(len(listeIndex))
-         noeud=noeudJdc.children[indexTravail]
-
-         listeItem.append(noeud.item)
-         listeASupprimer.append(noeud)
-
-     for i in range(len(listeChild)):
-         self.tree.item.suppItem(listeItem[i])
-         listeChild[i].item.update(listeItem[i])
-
-     self.QWParent.noeud_a_editer = []
+            indexTravail=index
+            if indexNoeudOuColler < index:
+                indexTravail=indexTravail+(len(listeIndex))
+            noeud=noeudJdc.children[indexTravail]
+
+            listeItem.append(noeud.item)
+            listeASupprimer.append(noeud)
+
+        for i in range(len(listeChild)):
+            self.tree.item.suppItem(listeItem[i])
+            listeChild[i].item.update(listeItem[i])
+
+        self.QWParent.noeud_a_editer = []
 
     #----------------------------------#
     def handleAjoutEtape(self,nomEtape):
     #----------------------------------#
-      self.chercheNoeudSelectionne()
-      if len(self.node_selected) == 0 or self.node_selected[0] == self.tree.racine : 
-         nodeOuAjouter=self.tree.racine
-         nouveau=nodeOuAjouter.appendChild(nomEtape,pos='first')
-      else :               
-         nodeOuAjouter=self.node_selected[0]
-         if nodeOuAjouter != self.tree.racine :
-            while  nodeOuAjouter.treeParent != self.tree.racine:
-                   nodeOuAjouter=nodeOuAjouter.treeParent
-         nouveau=nodeOuAjouter.appendBrother(nomEtape)
-      try : 
-        self.node_selected[0].setSelected(False)
-      except : pass
-      nouveau.setSelected(True)
-      nouveau.affichePanneau()
+        self.chercheNoeudSelectionne()
+        if len(self.node_selected) == 0 or self.node_selected[0] == self.tree.racine :
+            nodeOuAjouter=self.tree.racine
+            nouveau=nodeOuAjouter.appendChild(nomEtape,pos='first')
+        else :
+            nodeOuAjouter=self.node_selected[0]
+            if nodeOuAjouter != self.tree.racine :
+                while  nodeOuAjouter.treeParent != self.tree.racine:
+                    nodeOuAjouter=nodeOuAjouter.treeParent
+            nouveau=nodeOuAjouter.appendBrother(nomEtape)
+        try :
+            self.node_selected[0].setSelected(False)
+        except : pass
+        nouveau.setSelected(True)
+        nouveau.affichePanneau()
 
 
     #---------------------------#
     def getFileVariable(self) :
     #---------------------------#
-     titre = tr("Choix d'un fichier XML")
-     texte = tr("Le fichier contient une commande MODEL\n")
-     texte = texte+tr('Donnez le nom du fichier XML qui contient la description des variables')
-     QMessageBox.information( self, titre,tr(texte))
+        titre = tr("Choix d'un fichier XML")
+        texte = tr("Le fichier contient une commande MODEL\n")
+        texte = texte+tr('Donnez le nom du fichier XML qui contient la description des variables')
+        QMessageBox.information( self, titre,tr(texte))
 
-     fichier = QFileDialog.getOpenFileName(self.appliEficas,
-                   tr('Ouvrir Fichier'),
-                   self.appliEficas.maConfiguration.savedir,
-                   tr('Wrapper Files (*.xml);;''All Files (*)'))
-     return  fichier
+        fichier = QFileDialog.getOpenFileName(self.appliEficas,
+                      tr('Ouvrir Fichier'),
+                      self.appliEficas.maConfiguration.savedir,
+                      tr('Wrapper Files (*.xml);;''All Files (*)'))
+        return  fichier
 
     #------------#
     def run(self):
     #------------#
-      fonction="run"+self.code
-      #print fonction
-      if fonction in JDCEditor.__dict__: JDCEditor.__dict__[fonction](self,)
+        fonction="run"+self.code
+        if fonction in JDCEditor.__dict__: JDCEditor.__dict__[fonction](self,)
 
     #------------#
     def saveRun(self):
     #------------#
-      fonction="saveRun"+self.code
-      if fonction in JDCEditor.__dict__: JDCEditor.__dict__[fonction](self,)
+        fonction="saveRun"+self.code
+        if fonction in JDCEditor.__dict__: JDCEditor.__dict__[fonction](self,)
 
 
 # ---------------------------------------------
-# Methodes Non Crees dans ssIHM 
+# Methodes Non Crees dans ssIHM
 # ---------------------------------------------
+    #---------------#
+    def runVP(self):
+    #---------------#
+        texte=self.getTextJDC("MAPVp",pourRun=1)
+        print (texte)
 
     #---------------#
     def runMAP(self):
     #---------------#
 
-      if not(self.jdc.isValid()):
-         QMessageBox.critical( self, tr( "Execution impossible "),tr("le JDC doit etre valide pour une execution MAP"))
-         return
-      if len(self.jdc.etapes) != 1 :
-         QMessageBox.critical( self, tr("Execution impossible "),tr("le JDC doit contenir un et un seul composant"))
-         return
-      if self.modified or self.fichier==None  :
-         self.fichierMapInput = self.__generateTempFilename(prefix = "map_run", suffix = ".map")
-         texte=self.getTextJDC("MAP")
-         self.writeFile( self.fichierMapInput, txt = texte)
-      else :
-         self.fichierMapInput=self.fichier
-      composant=self.jdc.etapes[0].nom.lower()[0:-5]
-
-
-      # :TRICKY: to determine if a component requires SALOME, loads the component from Eficas catalog
-      # then instantiate corresponding class and call getUseSalome() method
-      try:
-          from mapengine.spec import factory
-          mapComponent = factory.new(composant)[0]
-
-          command = "map"
-          if mapComponent.getUseSalome():
-              command += " -r sappli"
-          textePython=(command + " run -n "+composant +" -i "+self.fichierMapInput)
-
-          #textePython="ls -l"
-          self._viewTextExecute( textePython,"map_run",".sh")
-          #try:
-          #  commande="rm  "+self.fichierMapInput
-          #   os.system(commande)
-          #except :
-          #   pass
-      except Exception as e:
-          print((traceback.print_exc()))
+        if not(self.jdc.isValid()):
+            QMessageBox.critical( self, tr( "Execution impossible "),tr("le JDC doit etre valide pour une execution MAP"))
+            return
+        if len(self.jdc.etapes) != 1 :
+            QMessageBox.critical( self, tr("Execution impossible "),tr("le JDC doit contenir un et un seul composant"))
+            return
+        if self.modified or self.fichier==None  :
+            self.fichierMapInput = self.__generateTempFilename(prefix = "map_run", suffix = ".map")
+            texte=self.getTextJDC("MAP")
+            self.writeFile( self.fichierMapInput, txt = texte)
+        else :
+            self.fichierMapInput=self.fichier
+        composant=self.jdc.etapes[0].nom.lower()[0:-5]
+
+
+        # :TRICKY: to determine if a component requires SALOME, loads the component from Eficas catalog
+        # then instantiate corresponding class and call getUseSalome() method
+        try:
+            from mapengine.spec import factory
+            mapComponent = factory.new(composant)[0]
+
+            command = "map"
+            if mapComponent.getUseSalome():
+                command += " -r sappli"
+            textePython=(command + " run -n "+composant +" -i "+self.fichierMapInput)
+
+            #textePython="ls -l"
+            self._viewTextExecute( textePython,"map_run",".sh")
+            #try:
+            #  commande="rm  "+self.fichierMapInput
+            #   os.system(commande)
+            #except :
+            #   pass
+        except Exception as e:
+            print((traceback.print_exc()))
 
     #-------------------#
     def runZCRACKS(self):
     #-------------------#
-      if not(self.jdc.isValid()):
-         QMessageBox.critical( self, tr( "Execution impossible "),tr("le JDC doit etre valide pour une execution "))
-         return
-      if self.modified or self.fichier==None  :
-      #if 1:
-         self.fichierZcracksInput = self.__generateTempFilename(prefix = "zcracks_run", suffix = ".z7p")
-         texte=self.getTextJDC("ZCRACKS",pourRun=1)
-         self.writeFile( self.fichierZcracksInput, txt = texte)
-      else :
-         self.fichierZcracksInput=self.fichier
-      try :
-          #commande ="Zrun -zp "
-          commande="more "
-          textePython=(commande + self.fichierZcracksInput)
-          self._viewTextExecute( textePython,"run_zcracks",".sh")
-      except Exception as e:
-          print((traceback.print_exc()))
+        if not(self.jdc.isValid()):
+            QMessageBox.critical( self, tr( "Execution impossible "),tr("le JDC doit etre valide pour une execution "))
+            return
+        if self.modified or self.fichier==None  :
+        #if 1:
+            self.fichierZcracksInput = self.__generateTempFilename(prefix = "zcracks_run", suffix = ".z7p")
+            texte=self.getTextJDC("ZCRACKS",pourRun=1)
+            self.writeFile( self.fichierZcracksInput, txt = texte)
+        else :
+            self.fichierZcracksInput=self.fichier
+        try :
+            #commande ="Zrun -zp "
+            commande="more "
+            textePython=(commande + self.fichierZcracksInput)
+            self._viewTextExecute( textePython,"run_zcracks",".sh")
+        except Exception as e:
+            print((traceback.print_exc()))
 
     #-------------------#
     def runCARMELCND(self):
     #-------------------#
-      #if not(self.jdc.isValid()):
-      #   QMessageBox.critical( self, tr( "Execution impossible "),tr("le JDC doit etre valide pour une execution "))
-      #   return
-      if self.modified or self.fichier==None  :
-         QMessageBox.critical( self, tr( "Execution impossible "),tr("Sauvegarder SVP avant l'execution "))
-         return
-      if not hasattr(self,'generator'): texte=self.getTextJDC(self.format)
-      from PrepareRunCarmel import prepareRunCarmel
-      fichierGenerique=os.path.basename(self.fichier).split(".")[0]
-      repMed=os.path.dirname(self.fichier)
-      repExeCarmel=self.generator.get_repExeCarmel()
-      textePython=prepareRunCarmel(repExeCarmel,repMed,fichierGenerique)
-      nomFichier = self.__generateTempFilename("carmel_run", suffix = ".sh")
-      f=open(nomFichier,'w')
-      f.write(textePython)
-      f.close()
-      commande="xterm -e sh "+nomFichier +"\n"
-      os.system(commande)
+        #if not(self.jdc.isValid()):
+        #   QMessageBox.critical( self, tr( "Execution impossible "),tr("le JDC doit etre valide pour une execution "))
+        #   return
+        if self.modified or self.fichier==None  :
+            QMessageBox.critical( self, tr( "Execution impossible "),tr("Sauvegarder SVP avant l'execution "))
+            return
+        if not hasattr(self,'generator'): texte=self.getTextJDC(self.formatFichierOut)
+        from PrepareRunCarmel import prepareRunCarmel
+        fichierGenerique=os.path.basename(self.fichier).split(".")[0]
+        repMed=os.path.dirname(self.fichier)
+        repExeCarmel=self.generator.get_repExeCarmel()
+        textePython=prepareRunCarmel(repExeCarmel,repMed,fichierGenerique)
+        nomFichier = self.__generateTempFilename("carmel_run", suffix = ".sh")
+        f=open(nomFichier,'w')
+        f.write(textePython)
+        f.close()
+        commande="xterm -e sh "+nomFichier +"\n"
+        os.system(commande)
 
     #-------------------#
     def runCarmelCS(self):
     #-------------------#
-      try :
-          commande="runSession pilotyacsCS.py"
-          os.system(commande)
-      except Exception as e:
-          print((traceback.print_exc()))
+        try :
+            commande="runSession pilotyacsCS.py"
+            os.system(commande)
+        except Exception as e:
+            print((traceback.print_exc()))
 
     #-----------------------------------------------------#
     def determineNomFichier(self,path,extension):
     #-----------------------------------------------------#
-      if self.appli.code in DictExtensions:
-         chaine1=DictExtensions[self.appli.code]+" (*."+DictExtensions[self.appli.code]+");;"
-         extensions= tr(chaine1+ "All Files (*)")
-      else :
-         extensions= tr("JDC (*.comm);;" "All Files (*)")
-
-      if self.appli.code == "MAP" :
-         extensions = extensions + ";; Run (*.input);;"
-
-      fn = QFileDialog.getSaveFileName( self,
-             tr("sauvegarde"), path,
-             extensions,None,
-             QFileDialog.DontConfirmOverwrite)
-      if fn == None : return (0, None)
-      fn=fn[0]
-      if fn=='': return (0, None)
-
-      ext = QFileInfo(fn).suffix()
-      if ext == '': fn+=extension
-
-      if QFileInfo(fn).exists():
-           msgBox = QMessageBox(self)
-           msgBox.setWindowTitle(tr("Sauvegarde du Fichier"))
-           msgBox.setText(tr("Le fichier <b>%s</b> existe deja.", six.text_type(fn)))
-           msgBox.addButton(tr("&Ecraser"),0)
-           msgBox.addButton(tr("&Abandonner"),1)
-           abort=msgBox.exec_()
-           if abort == 1 :  return (0, "")
-      return (1,fn)
+        if self.appliEficas.code in DictExtensions:
+            chaine1=DictExtensions[self.appliEficas.code]+" (*."+DictExtensions[self.appliEficas.code]+");;"
+            extensions= tr(chaine1+ "All Files (*)")
+        else :
+            extensions= tr("JDC (*.comm);;" "All Files (*)")
+
+        if self.appliEficas.code == "MAP" :
+            extensions = extensions + ";; Run (*.input);;"
+
+        fn = QFileDialog.getSaveFileName( self,
+               tr("sauvegarde"), path,
+               extensions,None,
+               QFileDialog.DontConfirmOverwrite)
+        if fn == None : return (0, None)
+        fn=fn[0]
+        if fn=='': return (0, None)
+
+        ext = QFileInfo(fn).suffix()
+        if ext == '': fn+=extension
+
+        if QFileInfo(fn).exists():
+            msgBox = QMessageBox(self)
+            msgBox.setWindowTitle(tr("Sauvegarde du Fichier"))
+            msgBox.setText(tr("Le fichier")+ "  "+str(fn)+ "  " +tr("existe deja"))
+            msgBox.addButton(tr("&Ecraser"),0)
+            msgBox.addButton(tr("&Abandonner"),1)
+            abort=msgBox.exec_()
+            if abort == 1 :  return (0, "")
+        return (1,fn)
 
     #-----------------#
     def saveRunMAP(self):
     #-----------------#
         extension=".input"
         if not(self.jdc.isValid()):
-           QMessageBox.critical( self, tr( "Sauvegarde de l'input impossible "),
-                                tr("Un JdC valide est necessaire pour creer un .input")
-                                 )
-           return
+            QMessageBox.critical( self, tr( "Sauvegarde de l'input impossible "),
+                                 tr("Un JdC valide est necessaire pour creer un .input")
+                                  )
+            return
         try :
-          composant=self.jdc.etapes[0].nom.lower()[0:-5]
+            composant=self.jdc.etapes[0].nom.lower()[0:-5]
         except :
-           QMessageBox.critical( self, tr( "Sauvegarde de l'input impossible "),
-                                tr("Choix du composant obligatoire")
-                                 )
-           return
+            QMessageBox.critical( self, tr( "Sauvegarde de l'input impossible "),
+                                 tr("Choix du composant obligatoire")
+                                  )
+            return
         if hasattr(self.maConfiguration, "savedir"): path=self.maConfiguration.savedir
         else : path='C:/'
 
         monNomFichier=""
         if self.fichier is not None and self.fichier != "" :
-             maBase=str(QFileInfo(self.fichier).baseName())+".input"
-             monPath=str(QFileInfo(self.fichier).absolutePath())
-             monNomFichier=os.path.join(monPath,maBase)
+            maBase=str(QFileInfo(self.fichier).baseName())+".input"
+            monPath=str(QFileInfo(self.fichier).absolutePath())
+            monNomFichier=os.path.join(monPath,maBase)
         elif hasattr(self,'monNomFichierInput'):
             monNomFichier=self.monNomFichierInput
 
@@ -720,10 +726,10 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
 
         for c in monDialog.children():
             if isinstance(c,QDialogButtonBox):
-               for b in c.children():
-                  if isinstance(b,QPushButton):
-                     avant=b.text()
-                     if avant=="&Open": b.setText("Save")
+                for b in c.children():
+                    if isinstance(b,QPushButton):
+                        avant=b.text()
+                        if avant=="&Open": b.setText("Save")
         mesFiltres= "input Map (*.input);;All Files (*)"
         monDialog.setNameFilters(mesFiltres)
         if monNomFichier!="" : monDialog.selectFile(monNomFichier)
@@ -758,13 +764,13 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
     #-----------------------------------------#
         try :
         #if 1:
-           from ajoutGroupe import handleAjoutGroupFiltre
-           #print listeGroup
-           handleAjoutGroupFiltre(self,listeGroup)
-           #print "apres handleAjoutGroupFiltre"
+            from ajoutGroupe import handleAjoutGroupFiltre
+            #print listeGroup
+            handleAjoutGroupFiltre(self,listeGroup)
+            #print "apres handleAjoutGroupFiltre"
         except :
         #else :
-           pass
+            pass
 
 
     #-----------------------------------------------------------------#
@@ -773,22 +779,22 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
         extension='.casR'
         fn = self.fichierComplet
         #saveas=True # Pour forcer le nom
-        self.generator=self.maConfiguration.mesGenerators.plugins[self.format]()
+        self.generator=self.maConfiguration.mesGenerators.plugins[self.formatFichierOut]()
         if self.fichierComplet is None or saveas:
-          if path is None: path=self.maConfiguration.savedir
-          bOK, fn=self.determineNomFichier(path,extension)
-          if bOK == 0 : return (0, None)
-          if fn == None : return (0, None)
-          if fn== '' : return (0, None)
+            if path is None: path=self.maConfiguration.savedir
+            bOK, fn=self.determineNomFichier(path,extension)
+            if bOK == 0 : return (0, None)
+            if fn == None : return (0, None)
+            if fn== '' : return (0, None)
 
-          ulfile = os.path.abspath(six.text_type(fn))
-          self.appliEficas.maConfiguration.savedir=os.path.split(ulfile)[0]
-          fn = six.text_type(QDir.toNativeSeparators(fn))
+            ulfile = os.path.abspath(fn)
+            self.appliEficas.maConfiguration.savedir=os.path.split(ulfile)[0]
+            fn = QDir.toNativeSeparators(fn)
 
         self.fichierComplet = os.path.splitext(fn)[0]+extension
 
         if hasattr(self.generator, "writeComplet"):
-            self.generator.writeComplet(self.fichierComplet,self.jdc,config=self.appliEficas.maConfiguration,appli=self.appliEficas)
+            self.generator.writeComplet(self.fichierComplet,self.jdc,config=self.appliEficas.maConfiguration,appliEficas=self.appliEficas)
 
         if self.salome : self.appliEficas.addJdcInSalome( self.fichierComplet)
 
@@ -812,40 +818,44 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
         if not self.modified and not saveas:
             return (0, None)      # do nothing if text wasn't changed
 
-        if self.appli.code in DictExtensions :
-           extension=DictExtensions[self.appli.code]
+        if self.appliEficas.code in DictExtensions :
+            extension=DictExtensions[self.appliEficas.code]
         else :
-           extension='.comm'
+            extension='.comm'
 
         newName = None
         fn = self.fichier
         if self.fichier is None or saveas:
-          if path is None: path=self.maConfiguration.savedir
-          bOK, fn=self.determineNomFichier(path,extension)
-          if bOK == 0 : return (0, None)
-          if fn == None : return (0, None)
-          if fn== '' : return (0, None)
+            if path is None: path=self.maConfiguration.savedir
+            bOK, fn=self.determineNomFichier(path,extension)
+            if bOK == 0 : return (0, None)
+            if fn == None : return (0, None)
+            if fn== '' : return (0, None)
 
-          ulfile = os.path.abspath(six.text_type(fn))
-          self.appliEficas.maConfiguration.savedir=os.path.split(ulfile)[0]
-          fn = six.text_type(QDir.toNativeSeparators(fn))
-          newName = fn
+            ulfile = os.path.abspath(fn)
+            self.appliEficas.maConfiguration.savedir=os.path.split(ulfile)[0]
+            fn = QDir.toNativeSeparators(fn)
+            newName = fn
 
 
         if not (self.writeFile(fn,formatLigne=formatLigne)): return (0, None)
         self.fichier = fn
         self.modified  = False
         if self.fileInfo is None or saveas:
-           self.fileInfo = QFileInfo(self.fichier)
-           self.fileInfo.setCaching(0)
+            self.fileInfo = QFileInfo(self.fichier)
+            self.fileInfo.setCaching(0)
         self.lastModified = self.fileInfo.lastModified()
         if newName is not None:
-           self.appliEficas.addToRecentList(newName)
-           self.tree.racine.item.getObject().nom=os.path.basename(newName)
-           self.tree.racine.updateNodeLabel()
+            self.appliEficas.addToRecentList(newName)
+            self.tree.racine.item.getObject().nom=os.path.basename(newName)
+            self.tree.racine.updateNodeLabel()
 
-        #print ('sortie du XML')
-        #self.jdc.toXml()
+
+        if  self.jdc.cata.modeleMetier:self.jdc.toXml(self.fichier)
+        if  self.jdc.cata.modeleMetier and self.jdc.isValid():
+            if self.generator != self.XMLgenerator :
+                self.XMLgenerator.gener(self.jdc)
+                self.XMLgenerator.writeDefault(fn)
 
         if self.jdc.isValid() != 0 and hasattr(self.generator, "writeDefault"):
         #if hasattr(self.generator, "writeDefault"):
@@ -859,14 +869,14 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
             msgBox.addButton(tr("&Annuler"),2)
             res=msgBox.exec_()
             if res == 0 :
-               self.generator.writeDefault(fn)
-               return (1, self.fichier)
+                self.generator.writeDefault(fn)
+                return (1, self.fichier)
             if res == 2 : return (0, None)
             if self.appliEficas.salome : self.appliEficas.close()
             else : sys.exit(1)
 
         if self.salome :
-               self.appliEficas.addJdcInSalome( self.fichier)
+            self.appliEficas.addJdcInSalome( self.fichier)
         self.modified = 0
         nouveauTitre=self.titre+"              "+str(os.path.basename(self.fichier))
         self.appliEficas.setWindowTitle(nouveauTitre)
@@ -892,8 +902,8 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
             the name of the saved file
         """
         if fileName != None :
-           self.fichier = fileName
-           return self.saveFile()
+            self.fichier = fileName
+            return self.saveFile()
         return self.saveFile(path,1,"beautifie")
 
 
@@ -927,10 +937,10 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
         if not fn : return (0, " ")
         fn=fn[0]
 
-        ulfile = os.path.abspath(six.text_type(fn))
+        ulfile = os.path.abspath(fn)
         self.appliEficas.maConfiguration.savedir=os.path.split(ulfile)[0]
 
-        # On utilise le convertisseur defini par format_fichier
+        # On utilise le convertisseur defini par formatFichierIn
         source=self.getSource(ulfile)
         if source:
             # On a reussia convertir le fichier self.ulfile
@@ -947,10 +957,10 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
         CONTEXT.setCurrentStep(etape)
         etape.buildIncludeEtape(texte)
         if not (etape.text_included_converted) :
-           QMessageBox.information( self,
-                      tr("Impossible d importer le texte"),
-                      etape.text_included_error)
-               
+            QMessageBox.information( self,
+                       tr("Impossible d importer le texte"),
+                       etape.text_included_error)
+
         self.tree.racine.buildChildren()
 
     #-----------------------------------#
@@ -959,16 +969,16 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
     # ajoute une etape  de JdC a partir d un texte
         monItem=itemApres
         etape=monItem.item.object
-         
+
         CONTEXT.setCurrentStep(etape)
         try :
-          ok=etape.buildIncludeEtape(texte)
+            ok=etape.buildIncludeEtape(texte)
         except :
-          ok=0
+            ok=0
         if not ok :
-           QMessageBox.information( self,
-                      tr("Import texte"),
-                      tr("Impossible d importer le texte"))
+            QMessageBox.information( self,
+                       tr("Import texte"),
+                       tr("Impossible d importer le texte"))
         self.tree.racine.buildChildren()
         return ok
 
@@ -978,13 +988,13 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
     # ajoute une etape  de JdC a partir d un texte
         CONTEXT.setCurrentStep(etape)
         try :
-          ok=etape.buildIncludeEtape(texte,doitEtreValide=0)
+            ok=etape.buildIncludeEtape(texte,doitEtreValide=0)
         except :
-          ok=0
+            ok=0
         if not ok :
-           QMessageBox.information( self,
-                      tr("Import texte"),
-                      tr("Impossible d importer le texte"))
+            QMessageBox.information( self,
+                       tr("Import texte"),
+                       tr("Impossible d importer le texte"))
         self.tree.racine.buildChildren()
         return ok
 
@@ -999,196 +1009,197 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
     #-----------------------------------------
     def initSplitterSizes(self, nbWidget=3):
     #-----------------------------------------
-       #print ("je passe ds initSplitterSizes", nbWidget)
+        #print ("je passe ds initSplitterSizes", nbWidget)
 
-       if   self.code in [ 'Adao', 'ADAO','MAP' ] : self.splitterSizes3=[1,1550,300]
-       #elif self.code in [ 'MAP']            : self.splitterSizes3=[700,300]
-       else                                  : self.splitterSizes3=[150,1000,300]
+        if   self.code in [ 'Adao', 'ADAO','MAP' ] : self.splitterSizes3=[1,1550,300]
+        #elif self.code in [ 'MAP']            : self.splitterSizes3=[700,300]
+        else                                  : self.splitterSizes3=[150,1000,300]
 
-       if   self.code in [ 'Adao', 'ADAO','MAP' ] : self.splitterSizes2=[5,1500]
-       else                                  : self.splitterSizes2=[300,1000]
+        if   self.code in [ 'Adao', 'ADAO','MAP' ] : self.splitterSizes2=[5,1500]
+        else                                  : self.splitterSizes2=[300,1000]
 
 
     #-----------------------------------------
     def restoreSplitterSizes(self,nbWidget=3):
     #----------------------------------------
-      
-      #traceback.print_stack()
-      #print ("je passe ds restoreSplitterSizes")
-      if not(hasattr(self,'splitter')) : return
-      if nbWidget==2  : newSizes=self.splitterSizes2
-      if nbWidget==3  : newSizes=self.splitterSizes3
-      #self.inhibeSplitter = 1
-      self.splitter.setSizes(newSizes)
-      #self.inhibeSplitter = 0
-      QApplication.processEvents()
-      # seule la fentetre du milieu est necessaire
-      self.splitter.widget(1).resizeEvent=self.saveSplitterSizes
-   
+
+        #traceback.print_stack()
+        #print ("je passe ds restoreSplitterSizes")
+        if not(hasattr(self,'splitter')) : return
+        if nbWidget==2  : newSizes=self.splitterSizes2
+        if nbWidget==3  : newSizes=self.splitterSizes3
+        #self.inhibeSplitter = 1
+        #print (newSizes)
+        self.splitter.setSizes(newSizes)
+        #self.inhibeSplitter = 0
+        QApplication.processEvents()
+        # seule la fentetre du milieu est necessaire
+        self.splitter.widget(1).resizeEvent=self.saveSplitterSizes
+
     #-----------------------------------------
     def saveSplitterSizes(self,event):
     #-----------------------------------------
-      #print ("je passe ds saveSplitterSizes")
-      if self.inhibeSplitter : return
-      if self.widgetOptionnel == None  : self.splitterSizes2 = self.splitter.sizes()[0:2]
-      else                             : self.splitterSizes3 = self.splitter.sizes()[0:3]
+        #print ("je passe ds saveSplitterSizes")
+        if self.inhibeSplitter : return
+        if self.widgetOptionnel == None  : self.splitterSizes2 = self.splitter.sizes()[0:2]
+        else                             : self.splitterSizes3 = self.splitter.sizes()[0:3]
 
     #------------------------
     def fermeOptionnel(self):
     #------------------------
-      if self.widgetOptionnel == None : return
+        if self.widgetOptionnel == None : return
 
-      self.inhibeSplitter=1
-      self.widgetOptionnel.setParent(None)
-      self.widgetOptionnel.close()
-      self.widgetOptionnel.deleteLater()
-      self.widgetOptionnel=None
-      self.inhibeSplitter=0
-      self.restoreSplitterSizes(2)
+        self.inhibeSplitter=1
+        self.widgetOptionnel.setParent(None)
+        self.widgetOptionnel.close()
+        self.widgetOptionnel.deleteLater()
+        self.widgetOptionnel=None
+        self.inhibeSplitter=0
+        self.restoreSplitterSizes(2)
 
     #------------------------
     def ajoutOptionnel(self):
     #------------------------
-      #if len(self.splitterSizes) == 2 : self.splitterSizes.append(self.oldSizeWidgetOptionnel)
-      #else : self.splitterSizes[2] = self.oldSizeWidgetOptionnel # ceinture pour les close bizarres
-      #self.splitterSizes[1] = self.splitterSizes[1] - self.splitterSizes[2]
-      
-      self.restoreSplitterSizes(3)
+        #if len(self.splitterSizes) == 2 : self.splitterSizes.append(self.oldSizeWidgetOptionnel)
+        #else : self.splitterSizes[2] = self.oldSizeWidgetOptionnel # ceinture pour les close bizarres
+        #self.splitterSizes[1] = self.splitterSizes[1] - self.splitterSizes[2]
+
+        self.restoreSplitterSizes(3)
 
 
     #------------------------
     def fermeArbre(self):
     #------------------------
-       #print (self.widgetTree)
-       self.oldWidgetTree=self.widgetTree
-       self.widgetTree.hide()
-       #self.widgetTree=None
+        #print (self.widgetTree)
+        self.oldWidgetTree=self.widgetTree
+        self.widgetTree.hide()
+        #self.widgetTree=None
 
     #------------------------
     def ouvreArbre(self):
     #------------------------
-       #print ('je passe la')
-       #print (self.widgetTree)
-       #self.widgetTree=self.oldWidgetTree
-       self.widgetTree.show()
-       #self.restoreSplitterSizes(3)
+        #print ('je passe la')
+        #print (self.widgetTree)
+        #self.widgetTree=self.oldWidgetTree
+        self.widgetTree.show()
+        #self.restoreSplitterSizes(3)
 
     #-----------------------
     def getEtapeCourante(self) :
     #-----------------------
-      if len(self.tree.selectedItems()) != 1 : return None
-      etape=self.tree.selectedItems()[0].item.object.getEtape()
-      return etape
+        if len(self.tree.selectedItems()) != 1 : return None
+        etape=self.tree.selectedItems()[0].item.object.getEtape()
+        return etape
     #-----------------------------
     def getTreeIndex(self,noeud):
     #----------------------------
-      indexNoeud=-1
-      if noeud in noeud.treeParent.children :
-          indexNoeud=noeud.treeParent.children.index(noeud)
-      else :
-          if hasattr(noeud,'vraiParent') :
-              noeudVrai = noeud
-              noeudVraiParent = noeud.vraiParent
-              while noeudVraiParent != noeud.treeParent and hasattr(noeudVraiParent,'vraiParent') :
-                  noeudVrai = noeudVraiParent
-                  noeudVraiParent = noeudVraiParent.vraiParent
-                  pass
-              if noeudVraiParent == noeud.treeParent :
-                  indexNoeud=noeud.treeParent.children.index(noeudVrai)
-                  pass
-              pass
-          pass
-      return indexNoeud
+        indexNoeud=-1
+        if noeud in noeud.treeParent.children :
+            indexNoeud=noeud.treeParent.children.index(noeud)
+        else :
+            if hasattr(noeud,'vraiParent') :
+                noeudVrai = noeud
+                noeudVraiParent = noeud.vraiParent
+                while noeudVraiParent != noeud.treeParent and hasattr(noeudVraiParent,'vraiParent') :
+                    noeudVrai = noeudVraiParent
+                    noeudVraiParent = noeudVraiParent.vraiParent
+                    pass
+                if noeudVraiParent == noeud.treeParent :
+                    indexNoeud=noeud.treeParent.children.index(noeudVrai)
+                    pass
+                pass
+            pass
+        return indexNoeud
 
     #-------------------#  Pour execution avec output et error dans le bash
     def runPSEN(self):
     #-------------------#
-    
-      #if self.modified or self.fichier==None  : self.saveFile()
-      self.saveFile()
-        
-      #lancement avec le .bat
-      path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','PSEN_Eficas','PSEN'))
-      WrapperFilePath = os.path.join(path1, 'PSSEWrapper.py') 
-      import subprocess
-      p = subprocess.Popen(['python',WrapperFilePath])
-      (out,err)=p.communicate()        
-      print (out)
-      print (err)
+
+        #if self.modified or self.fichier==None  : self.saveFile()
+        self.saveFile()
+
+        #lancement avec le .bat
+        path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','PSEN_Eficas','PSEN'))
+        WrapperFilePath = os.path.join(path1, 'PSSEWrapper.py')
+        import subprocess
+        p = subprocess.Popen(['python',WrapperFilePath])
+        (out,err)=p.communicate()
+        print (out)
+        print (err)
 
     #-------------------#  Pour execution avec output et error dans le bash
     def runPSEN_N1(self):
     #-------------------#
-      
-
-      self.saveFile()
-      path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','ProcessOutputs_Eficas','TreatOutputs'))
-      sys.path.append(path1)
-
-      if not(self.jdc.isValid()):
-         QMessageBox.information( self, tr( "Unvalid JDC"),tr("incorrect keywords will be ignored"))
-      if 'dicoImbrique' in generator.plugins:
-         self.generator=generator.plugins['dicoImbrique']()
-         jdc_formate=self.generator.gener(self.jdc)
-         dico=self.generator.Dico 
-         
-         ###to delete
-         #fileDico =  r'C:\Logiciels DER\PSEN_V16\Code\ProcessOutputs_Eficas\TreatOutputs\dicoN1.py'
-         fileDico =  os.path.join(path1, 'dicoN1.py') #r'C:\Logiciels DER\PSEN_V16\Code\ProcessOutputs_Eficas\TreatOutputs\dicoN1.py'
-         f = open( str(fileDico), 'w')
-         f.write("Dico =" + str(dico) )
-         f.close()
-         ###
-         
-      
-      print ('in runPSEN_N1', dico)
-      print (dico)
-      from Run import run 
-      run(dico)
-      #res,txt_exception=run(dico)
-      #if res : QMessageBox.information( self, tr("fin de script run"), txt_exception)
-      #else  : QMessageBox.critical( self, tr("Erreur fatale script run"), txt_exception)
-       
+
+
+        self.saveFile()
+        path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','ProcessOutputs_Eficas','TreatOutputs'))
+        sys.path.append(path1)
+
+        if not(self.jdc.isValid()):
+            QMessageBox.information( self, tr( "Unvalid JDC"),tr("incorrect keywords will be ignored"))
+        if 'dicoImbrique' in generator.plugins:
+            self.generator=generator.plugins['dicoImbrique']()
+            jdc_formate=self.generator.gener(self.jdc)
+            dico=self.generator.Dico
+
+            ###to delete
+            #fileDico =  r'C:\Logiciels DER\PSEN_V16\Code\ProcessOutputs_Eficas\TreatOutputs\dicoN1.py'
+            fileDico =  os.path.join(path1, 'dicoN1.py') #r'C:\Logiciels DER\PSEN_V16\Code\ProcessOutputs_Eficas\TreatOutputs\dicoN1.py'
+            f = open( str(fileDico), 'w')
+            f.write("Dico =" + str(dico) )
+            f.close()
+            ###
+
+
+        print ('in runPSEN_N1', dico)
+        print (dico)
+        from Run import run
+        run(dico)
+        #res,txt_exception=run(dico)
+        #if res : QMessageBox.information( self, tr("fin de script run"), txt_exception)
+        #else  : QMessageBox.critical( self, tr("Erreur fatale script run"), txt_exception)
+
     #-------------------#  Pour execution avec output et error dans le bash
     def process_N1(self):
     #-------------------#
 
-      path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','ProcessOutputs_Eficas','TreatOutputs'))
-      sys.path.append(path1)
+        path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','ProcessOutputs_Eficas','TreatOutputs'))
+        sys.path.append(path1)
 
 
-      if 'dicoImbrique' in generator.plugins:
-         self.generator=generator.plugins['dicoImbrique']()
-         jdc_formate=self.generator.gener(self.jdc)
-         dico=self.getDico() #generator.Dico
+        if 'dicoImbrique' in generator.plugins:
+            self.generator=generator.plugins['dicoImbrique']()
+            jdc_formate=self.generator.gener(self.jdc)
+            dico=self.getDico() #generator.Dico
 
 
-         for k in dico['CONTINGENCY_PROCESSING']:
-             #print (k)
-             if k[0:19] == 'Component_List_For_' or k[0:21] =='Contingency_List_For_' :
-                newK=k.replace('__',' ')
-                l="'"+str(newK)+"'"
-                dico['CONTINGENCY_PROCESSING'][l]=dico['CONTINGENCY_PROCESSING'][k]
-                del dico['CONTINGENCY_PROCESSING'][k]
+            for k in dico['CONTINGENCY_PROCESSING']:
+            #print (k)
+                if k[0:19] == 'Component_List_For_' or k[0:21] =='Contingency_List_For_' :
+                    newK=k.replace('__',' ')
+                    l="'"+str(newK)+"'"
+                    dico['CONTINGENCY_PROCESSING'][l]=dico['CONTINGENCY_PROCESSING'][k]
+                    del dico['CONTINGENCY_PROCESSING'][k]
 
-         ###to delete
-         fileDico =  os.path.join(path1, 'dicoN1_process.py')
-         f = open( str(fileDico), 'w')
-         f.write("Dico =" + str(dico) )
-         f.close()
-         ###
-         return dico
+            ###to delete
+            fileDico =  os.path.join(path1, 'dicoN1_process.py')
+            f = open( str(fileDico), 'w')
+            f.write("Dico =" + str(dico) )
+            f.close()
+            ###
+            return dico
 
         #return self.getDico()
 
     #-------------------#  Pour execution avec output et error dans le bash
     def process_VP(self):
     #-------------------#
-      if 'dicoImbrique' in generator.plugins:
-         self.generator=generator.plugins['dicoImbrique']()
-         jdc_formate=self.generator.gener(self.jdc)
-         dico=self.getDico() #generator.Dico
-         return dico
+        if 'dicoImbrique' in generator.plugins:
+            self.generator=generator.plugins['dicoImbrique']()
+            jdc_formate=self.generator.gener(self.jdc)
+            dico=self.getDico() #generator.Dico
+            return dico
 
 if __name__ == "__main__":
     print ('in main')
diff --git a/InterfaceQT4/editorJuillet.py b/InterfaceQT4/editorJuillet.py
deleted file mode 100755 (executable)
index 49caf8e..0000000
+++ /dev/null
@@ -1,1249 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2021   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-from __future__ import absolute_import
-from __future__ import print_function
-try :
-   from builtins import str
-   from builtins import range
-except : pass
-
-import types,sys,os, re
-import  subprocess
-import traceback
-import six
-
-from monCodeMeteoAppelRun import Profil_Neutre
-
-
-from PyQt5.QtWidgets import QWidget, QMessageBox, QFileDialog, QApplication, QSplitter, QLabel
-from PyQt5.QtGui     import QPalette
-from PyQt5.QtCore    import QProcess, QFileInfo, QTimer, Qt, QDir, QSize
-
-import traceback
-
-# Modules Eficas
-from Extensions.i18n import tr
-
-from Editeur        import session
-from Editeur        import comploader
-from Editeur        import Objecttreeitem
-from InterfaceQT4   import browser
-
-from desBaseWidget    import Ui_baseWidget
-from InterfaceQT4.monViewTexte   import ViewText
-from monWidgetCreeParam import MonWidgetCreeParam 
-
-DictExtensions= {"MAP" : ".map", "TELEMAC" : '.cas'}
-debug = False
-
-    
-from InterfaceQT4.editorSsIhm    import JDCEditorSsIhm
-
-
-class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
-# ----------------------------------------- #
-    """
-       Editeur de jdc
-    """
-
-# ----------------------------------------
-# Methodes faisant appel a ssIhm
-# ----------------------------------------
-
-    def __init__ (self,appli,fichier = None, jdc=None, QWParent=None, units = None, include=0):
-    #------------------------------------------------------------------------------------------
-
-
-        QWidget.__init__(self,None)
-        self.setupUi(self)
-
-        self.inhibeSplitter=0
-        self.widgetOptionnel=None
-        self.fenetreCentraleAffichee=None
-        self.dejaDansPlieTout=False
-        self.listeDesListesOuvertes=set()
-        self.afficheListesPliees=True
-        if appli!=None and hasattr(appli,"statusBar"): self.sb = appli.statusBar()
-        else : self.sb = None
-        self.QWParent=QWParent
-
-        JDCEditorSsIhm. __init__ (self,appli,fichier, jdc,units,include)
-
-        # Particularites IHM : met la fenetre a jour
-
-        self.initSplitterSizes()
-        if self.code == "ASTER" or self.code == "monCode" : self.afficheListesPliees =True
-        if self.code == 'PSEN_N1' : self.afficheListesPliees = False
-
-        #self.affiche=self.appliEficas.maConfiguration.affiche
-
-        if self.code in ['MAP','CARMELCND','PSEN'] : self.maConfiguration.afficheCommandesPliees=False
-        if self.code in ['MAP',]: self.fermeArbre()
-        #   self.widgetTree.close()
-        #   self.widgetTree=None
-
-        if self.maConfiguration.closeArbre: self.fermeArbre()
-        if self.maConfiguration.boutonDsMenuBar : self.appliEficas.remplitIconesCommandes()
-
-        self.version_code = session.d_env.cata
-     
-        self.format =  self.appliEficas.format_fichier
-
-        self.node_selected = []
-        self.deplier = True
-        self.message=''
-        self.afficheApresInsert=False
-        if self.maConfiguration.closeArbre    : self.afficheApresInsert=True
-        if self.code in ['Adao','ADAO','MAP'] : self.afficheApresInsert=True
-        if self.code in ['TELEMAC',]          : self.enteteQTree='premier'
-        else                                  : self.enteteQTree='complet'
-        if self.code in ['Adao','ADAO','TELEMAC'] : self.affichePlie=True
-        else                                      : self.affichePlie=False
-
-        self.Commandes_Ordre_Catalogue =self.readercata.Commandes_Ordre_Catalogue
-
-        if self.appliEficas.readercata.demandeCatalogue==True  :
-           nomFichierTranslation='translatorFichier'+'_'+str(self.appliEficas.readercata.versionCode)
-           if hasattr(self.appliEficas.maConfiguration,nomFichierTranslation) :
-              translatorFichier=getattr(self.appliEficas.maConfiguration,nomFichierTranslation)
-              from Extensions import localisation
-              localisation.localise(None,self.appliEficas.langue,translatorFichier=translatorFichier)
-
-
-        if self.jdc_item and self.appliEficas.ssIhm==False :
-            self.tree = browser.JDCTree( self.jdc_item,  self )
-        self.appliEficas.construitMenu()
-
-        self.adjustSize()
-
-
-    #-------------------------------#
-    def readFile(self, fn):
-    #--------------------------------#
-        """
-        Public slot to read the text from a file.
-        @param fn filename to read from (string or QString)
-        """
-
-        jdc=JDCEditorSsIhm.readFile(self, fn)
-
-        # Particularites IHM : met le titre de la fenetre a jour
-#        qApp.restoreOverrideCursor()
-        if self.fileInfo!= None : self.lastModified = self.fileInfo.lastModified()
-        nouveauTitre=self.titre+"              "+os.path.basename(self.fichier)
-        self.appliEficas.setWindowTitle(nouveauTitre)
-
-        return jdc
-
-# ---------------------------------------------
-# Methodes Inchangees
-# ---------------------------------------------
-#   _newJDC
-#   _newJDCInclude
-#   __generateTempFilename
-#   getSource
-#   generDico
-#   viewJdcSource
-#   viewJdcPy
-#   viewJdcRapport
-#   getFileName
-#   initModif
-#   writeFile
-#   getTextJDC
-#   verifieChecksum
-#   getChecksum
-#   getDico
-#   chercheGroupes
-#   chercheDico
-#   saveFileLegerAs
-
-# ---------------------------------------------
-# Methodes Surchargees 
-# ---------------------------------------------
-
-    #-----------------------------------------------------------------------#
-    def _viewText(self, txt, caption = "FILE_VIEWER",largeur=1200,hauteur=600):
-    #--------------------------------------------------------------------#
-        w = ViewText( self.QWParent,self ,caption,txt,largeur,hauteur)
-        w.show()
-
-    #--------------------------------#
-    def informe(self,titre,txt,critique=True):
-    #--------------------------------#
-       if  critique :
-           self.afficheInfos(tr(txt),Qt.red)
-           QMessageBox.critical( self, tr(titre), tr(txt))
-       else :
-           QMessageBox.warning( self, tr(titre),tr(txt))
-
-    #--------------------------------#
-    def ajoutCommentaire(self):
-    #--------------------------------#
-        if self.tree.selectedItems()==[] :
-          QMessageBox.warning( self, tr("Pas de noeud selectionne"),tr("Selectionnez un Noeud \nLe commentaire sera place apres le noeud selectionne"))
-          return 
-        noeudAvantCommentaire=self.tree.selectedItems()[0]
-        if noeudAvantCommentaire ==self.tree.racine : 
-            self.tree.racine.appendChild("COMMENTAIRE",pos=0)
-            return
-        noeudAvantCommentaire.addComment(True)
-
-
-    #----------------------------------------------#
-    def _viewTextExecute(self, txt, prefix, suffix):
-    #----------------------------------------------#
-        self.w = ViewText( self.QWParent )
-        self.w.setWindowTitle( "execution" )
-        self.monExe=QProcess(self.w)
-        pid=self.monExe.pid()
-        nomFichier = self.__generateTempFilename(prefix, suffix = ".sh")
-        f=open(nomFichier,'w')
-        f.write(txt)
-        f.close()
-        self.monExe.readyReadStandardOutput.connect( self.readFromStdOut)
-        self.monExe.readyReadStandardError.connect( self.readFromStdErr)
-        exe='sh ' + nomFichier
-        self.monExe.start(exe)
-        self.monExe.closeWriteChannel()
-        self.w.exec_()
-        try:
-          commande="rm  "+ nomFichier
-          os.system(commande)
-        except :
-          pass
-
-    def readFromStdErr(self):
-        a=self.monExe.readAllStandardError()
-        self.w.view.append(str(a.data()))
-
-    def readFromStdOut(self) :
-        a=self.monExe.readAllStandardOutput()
-        self.w.view.append(str(a.data()))
-
-        
-    #-----------------------#
-    def gestionParam(self):
-    #-----------------------#
-        w = MonWidgetCreeParam( self)
-        w.show()
-
-
-    #----------------#
-    def closeIt(self):
-    #----------------#
-        """
-        Public method called by the viewmanager to finally get rid of us.
-        """
-        if self.jdc: self.jdc.supprime()
-        self.close()
-
-    #----------------------------------------------#
-    def afficheInfos(self,message,couleur=Qt.black):
-    #----------------------------------------------#
-        if couleur=='red' : couleur = Qt.red
-        if self.sb:
-           mapalette=self.sb.palette()
-           mapalette.setColor( QPalette.WindowText, couleur )
-           self.sb.setPalette( mapalette );
-           self.sb.showMessage(message,4000)
-           self.couleur=couleur
-
-    #------------------------------#
-    def afficheAlerte(self,titre,message):
-    #------------------------------#
-    # appele par I_MACRO_ETAPE
-        QMessageBox.information( self, titre, message)
-
-    #-----------------------------------#
-    def afficheCommentaire(self,message):
-    #-----------------------------------#
-        self.labelCommentaire.setText(message)
-        QTimer.singleShot(6000, self.rendInvisible)
-
-    #----------------------#
-    def rendInvisible(self):
-    #----------------------#
-        self.labelCommentaire.setText("")
-
-    #---------------------------------------#
-    def chercheNoeudSelectionne(self,copie=1):
-    #---------------------------------------#
-      """
-        appele par Cut et Copy pour positionner self.node_selected
-      """
-      self.node_selected=[]
-      if len(self.tree.selectedItems()) == 0 : return
-      self.node_selected=self.tree.selectedItems()
-
-
-    #---------------------#
-    def handleSupprimer(self):
-    #---------------------#
-      self.chercheNoeudSelectionne()
-      if len(self.node_selected) == 0 : return
-      self.QWParent.noeud_a_editer = []
-      if self.node_selected[0]==self.tree.racine: return
-      if len(self.node_selected) == 1 : self.node_selected[0].delete()
-      else : self.node_selected[0].deleteMultiple(self.node_selected)
-
-    #---------------------#
-    def handleRechercher(self):
-    #---------------------#
-      from .monRecherche import DRecherche
-      monRechercheDialg=DRecherche(parent=self,fl=0)
-      monRechercheDialg.show()
-
-
-    #--------------------------------#
-    def handleRechercherDsCatalogue(self):
-    #-----------------------------#
-      from .monRechercheCatalogue import DRechercheCatalogue
-      monRechercheDialg=DRechercheCatalogue(self.QWParent,self)
-      monRechercheDialg.show()
-
-    #---------------------#
-    def handleDeplier(self):
-    #---------------------#
-       if self.tree == None : return
-       #self.tree.collapseAll()
-       if self.deplier :
-          #print "je plie"
-          self.tree.expandItem(self.tree.topLevelItem(0))
-          self.deplier = False
-          if self.fenetreCentraleAffichee != None  :
-             if hasattr(self.fenetreCentraleAffichee.node,'plieToutEtReaffiche'):
-                 self.fenetreCentraleAffichee.node.plieToutEtReaffiche()
-       else:
-          #print "je deplie"
-          self.tree.expandItem(self.tree.topLevelItem(0))
-          self.deplier = True
-          if self.fenetreCentraleAffichee != None  :
-             if hasattr(self.fenetreCentraleAffichee.node,'deplieToutEtReaffiche'):
-                 self.fenetreCentraleAffichee.node.deplieToutEtReaffiche()
-
-    #---------------------#
-    def handleEditCut(self):
-    #---------------------#
-      """
-      Stocke dans Eficas.noeud_a_editer le noeud a couper
-      """
-      #print "handleEditCut"
-      self.chercheNoeudSelectionne()
-      self.QWParent.edit="couper"
-      self.QWParent.noeud_a_editer = self.node_selected
-
-    #-----------------------#
-    def handleEditCopy(self):
-    #-----------------------#
-      """
-      Stocke dans Eficas.noeud_a_editer le noeud a copier
-      """
-      self.chercheNoeudSelectionne()
-      if len(self.node_selected) == 0 : return
-      if len(self.node_selected) == 1 : self.node_selected[0].updateNodeLabelInBlue()
-      else :  self.node_selected[0].updatePlusieursNodeLabelInBlue(self.node_selected)
-      self.QWParent.edit="copier"
-      self.QWParent.noeud_a_editer = self.node_selected
-
-    #------------------------#
-    def handleEditPaste(self):
-    #------------------------#
-      """
-      Lance la copie de l'objet place dans self.QWParent.noeud_a_editer
-      Ne permet que la copie d'objets de type Commande ou MCF
-      """
-      self.chercheNoeudSelectionne()
-      if (not(hasattr(self.QWParent,'noeud_a_editer'))) or len(self.QWParent.noeud_a_editer)==0:
-          QMessageBox.information( self,
-                      tr("Copie impossible"),
-                      tr("Veuillez selectionner un objet a copier"))
-          return
-      if len(self.node_selected) != 1 :
-          QMessageBox.information( self,
-                      tr("Copie impossible"),
-                      tr("Veuillez selectionner un seul objet : la copie se fera apres le noeud selectionne"))
-          return
-      noeudOuColler=self.node_selected[0]
-
-      if len(self.QWParent.noeud_a_editer)!=1:
-         #self.handleEditPasteMultiple()
-         QMessageBox.information( self, tr("Copie impossible"), tr("Aucun Objet n a ete copie ou coupe"))
-         return
-
-      noeudACopier=self.QWParent.noeud_a_editer[0]
-
-      if (self.QWParent.edit != "couper"):
-        #print   (noeudOuColler.item.parent.getChild(noeudOuColler.item.nom)) 
-        try:
-           if noeudOuColler == self.tree.racine :
-               child=noeudOuColler.doPastePremier(noeudACopier)
-           else :
-               child=noeudACopier.doPaste(noeudOuColler,'after')
-
-           if child==None or child==0:
-               QMessageBox.critical( self,tr( "Copie refusee"),tr('Eficas n a pas reussi a copier l objet'))
-               self.message = ''
-               self.afficheInfos("Copie refusee",Qt.red)
-           if noeudACopier.treeParent.editor != noeudOuColler.treeParent.editor:
-               try :
-                 nom=noeudACopier.item.sd.nom
-                 child.item.nommeSd(nom)
-               except :
-                 pass
-           return
-           self.initModif()
-           child.select()
-        except  :
-           traceback.print_exc()
-           QMessageBox.critical( self,tr( "Copie refusee"),tr('Copie refusee pour ce type d objet'))
-           self.message = ''
-           self.afficheInfos("Copie refusee",Qt.red)
-           return
-
-      # il faut declarer le JDCDisplay_courant modifie
-      # suppression eventuelle du noeud selectionne
-      # si possible on renomme l objet comme le noeud couper
-
-      if (self.QWParent.edit == "couper"):
-         print ('je pass la')
-         if noeudACopier.treeParent.editor != noeudOuColler.treeParent.editor:
-           QMessageBox.critical( self, tr("Deplacement refuse"),tr('Deplacement refuse entre 2 fichiers. Seule la copie est autorisee '))
-
-         #if 1:
-         try :
-           # indexNoeudACopier=noeudACopier.treeParent.children.index(noeudACopier)
-            indexNoeudACopier=self.getTreeIndex(noeudACopier)
-            noeudACopier.treeParent.item.deplaceEntite(indexNoeudACopier,indexNoeudOuColler,pos)
-            noeudACopier.treeParent.buildChildren()
-
-         #else:
-         except:
-            pass
-         self.QWParent.noeud_a_editer=[]
-
-      # on rend la copie a nouveau possible en liberant le flag edit
-      self.QWParent.edit="copier"
-      noeudACopier.select()
-
-    #----------------------------------#
-    def handleDeplaceMultiple(self):
-    #----------------------------------#
-       pass
-
-    #----------------------------------#
-    def handleEditPasteMultiple(self):
-    #----------------------------------#
-
-    # On ne garde que les niveaux "Etape"
-    # On insere dans l'ordre du JDC
-     listeNoeudsACouper=[]
-     listeIndex=[]
-     listeChild=[]
-     listeItem=[]
-     from InterfaceQT4 import compojdc
-     noeudOuColler=self.node_selected[0]
-     if not (isinstance(noeudOuColler.treeParent, compojdc.Node)):
-        QMessageBox.information( self,
-                  tr("Copie impossible a cet endroit",),
-                  tr("Veuillez selectionner une commande, un parametre, un commentaire ou une macro"))
-        return
-     indexNoeudOuColler=noeudOuColler.treeParent.children.index(noeudOuColler)
-
-     for noeud in self.QWParent.noeud_a_editer :
-        if not (isinstance(noeud.treeParent, compojdc.Node)): continue
-        indexInTree=noeud.treeParent.children.index(noeud)
-        indice = 0
-        for index in listeIndex:
-            if index < indexInTree : indice = indice +1
-        listeIndex.insert(indice, indexInTree)
-        listeNoeudsACouper.insert(indice, noeud)
-
-     noeudJdc=noeudOuColler.treeParent
-     dejaCrees=0
-     # on les cree a l'envers parcequ'on ajoute a NoeudOuColler
-     listeIndex.reverse()
-     for index in listeIndex:
-         indexTravail=index
-         if indexNoeudOuColler < index:
-            indexTravail=indexTravail+dejaCrees
-         noeudOuColler=noeudJdc.children[indexNoeudOuColler]
-         noeud=noeudJdc.children[indexTravail]
-         child=noeud.doPaste(noeudOuColler)
-         listeChild.append(child)
-         dejaCrees=dejaCrees+1
-
-     self.QWParent.noeud_a_editer = []
-     for i in range(len(listeIndex)):
-        noeud=noeudJdc.children[indexNoeudOuColler+1+i]
-        self.QWParent.noeud_a_editer.append(noeud)
-
-     listeASupprimer=[]
-     if self.QWParent.edit !="couper" : return
-
-     for index in listeIndex:
-         indexTravail=index
-         if indexNoeudOuColler < index:
-            indexTravail=indexTravail+(len(listeIndex))
-         noeud=noeudJdc.children[indexTravail]
-
-         listeItem.append(noeud.item)
-         listeASupprimer.append(noeud)
-
-     for i in range(len(listeChild)):
-         self.tree.item.suppItem(listeItem[i])
-         listeChild[i].item.update(listeItem[i])
-
-     self.QWParent.noeud_a_editer = []
-
-    #----------------------------------#
-    def handleAjoutEtape(self,nomEtape):
-    #----------------------------------#
-      self.chercheNoeudSelectionne()
-      if len(self.node_selected) == 0 or self.node_selected[0] == self.tree.racine : 
-         nodeOuAjouter=self.tree.racine
-         nouveau=nodeOuAjouter.appendChild(nomEtape,pos='first')
-      else :               
-         nodeOuAjouter=self.node_selected[0]
-         if nodeOuAjouter != self.tree.racine :
-            while  nodeOuAjouter.treeParent != self.tree.racine:
-                   print (nodeOuAjouter)
-                   nodeOuAjouter=nodeOuAjouter.treeParent
-                   print (nodeOuAjouter.parent == self.tree.racine)
-         nouveau=nodeOuAjouter.appendBrother(nomEtape)
-      try : 
-        self.node_selected[0].setSelected(False)
-      except : pass
-      nouveau.setSelected(True)
-      nouveau.affichePanneau()
-
-
-    #---------------------------#
-    def getFileVariable(self) :
-    #---------------------------#
-     titre = tr("Choix d'un fichier XML")
-     texte = tr("Le fichier contient une commande MODEL\n")
-     texte = texte+tr('Donnez le nom du fichier XML qui contient la description des variables')
-     QMessageBox.information( self, titre,tr(texte))
-
-     fichier = QFileDialog.getOpenFileName(self.appliEficas,
-                   tr('Ouvrir Fichier'),
-                   self.appliEficas.maConfiguration.savedir,
-                   tr('Wrapper Files (*.xml);;''All Files (*)'))
-     return  fichier
-
-    #------------#
-    def run(self):
-    #------------#
-      fonction="run"+self.code
-      #print fonction
-      if fonction in JDCEditor.__dict__: JDCEditor.__dict__[fonction](self,)
-
-    #------------#
-    def saveRun(self):
-    #------------#
-      fonction="saveRun"+self.code
-      if fonction in JDCEditor.__dict__: JDCEditor.__dict__[fonction](self,)
-
-
-# ---------------------------------------------
-# Methodes Non Crees dans ssIHM 
-# ---------------------------------------------
-
-    #---------------#
-    def runMAP(self):
-    #---------------#
-
-      if not(self.jdc.isValid()):
-         QMessageBox.critical( self, tr( "Execution impossible "),tr("le JDC doit etre valide pour une execution MAP"))
-         return
-      if len(self.jdc.etapes) != 1 :
-         QMessageBox.critical( self, tr("Execution impossible "),tr("le JDC doit contenir un et un seul composant"))
-         return
-      if self.modified or self.fichier==None  :
-         self.fichierMapInput = self.__generateTempFilename(prefix = "map_run", suffix = ".map")
-         texte=self.getTextJDC("MAP")
-         self.writeFile( self.fichierMapInput, txt = texte)
-      else :
-         self.fichierMapInput=self.fichier
-      composant=self.jdc.etapes[0].nom.lower()[0:-5]
-
-
-      # :TRICKY: to determine if a component requires SALOME, loads the component from Eficas catalog
-      # then instantiate corresponding class and call getUseSalome() method
-      try:
-          from mapengine.spec import factory
-          mapComponent = factory.new(composant)[0]
-
-          command = "map"
-          if mapComponent.getUseSalome():
-              command += " -r sappli"
-          textePython=(command + " run -n "+composant +" -i "+self.fichierMapInput)
-
-          #textePython="ls -l"
-          self._viewTextExecute( textePython,"map_run",".sh")
-          #try:
-          #  commande="rm  "+self.fichierMapInput
-          #   os.system(commande)
-          #except :
-          #   pass
-      except Exception as e:
-          print((traceback.print_exc()))
-
-    #-------------------#
-    def runZCRACKS(self):
-    #-------------------#
-      if not(self.jdc.isValid()):
-         QMessageBox.critical( self, tr( "Execution impossible "),tr("le JDC doit etre valide pour une execution "))
-         return
-      if self.modified or self.fichier==None  :
-      #if 1:
-         self.fichierZcracksInput = self.__generateTempFilename(prefix = "zcracks_run", suffix = ".z7p")
-         texte=self.getTextJDC("ZCRACKS",pourRun=1)
-         self.writeFile( self.fichierZcracksInput, txt = texte)
-      else :
-         self.fichierZcracksInput=self.fichier
-      try :
-          #commande ="Zrun -zp "
-          commande="more "
-          textePython=(commande + self.fichierZcracksInput)
-          self._viewTextExecute( textePython,"run_zcracks",".sh")
-      except Exception as e:
-          print((traceback.print_exc()))
-
-    #-------------------#
-    def runCARMELCND(self):
-    #-------------------#
-      #if not(self.jdc.isValid()):
-      #   QMessageBox.critical( self, tr( "Execution impossible "),tr("le JDC doit etre valide pour une execution "))
-      #   return
-      if self.modified or self.fichier==None  :
-         QMessageBox.critical( self, tr( "Execution impossible "),tr("Sauvegarder SVP avant l'execution "))
-         return
-      if not hasattr(self,'generator'): texte=self.getTextJDC(self.format)
-      from PrepareRunCarmel import prepareRunCarmel
-      fichierGenerique=os.path.basename(self.fichier).split(".")[0]
-      repMed=os.path.dirname(self.fichier)
-      repExeCarmel=self.generator.get_repExeCarmel()
-      textePython=prepareRunCarmel(repExeCarmel,repMed,fichierGenerique)
-      nomFichier = self.__generateTempFilename("carmel_run", suffix = ".sh")
-      f=open(nomFichier,'w')
-      f.write(textePython)
-      f.close()
-      commande="xterm -e sh "+nomFichier +"\n"
-      os.system(commande)
-
-    #-------------------#
-    def runCarmelCS(self):
-    #-------------------#
-      try :
-          commande="runSession pilotyacsCS.py"
-          os.system(commande)
-      except Exception as e:
-          print((traceback.print_exc()))
-
-    #-----------------------------------------------------#
-    def determineNomFichier(self,path,extension):
-    #-----------------------------------------------------#
-      if self.appli.code in DictExtensions:
-         chaine1=DictExtensions[self.appli.code]+" (*."+DictExtensions[self.appli.code]+");;"
-         extensions= tr(chaine1+ "All Files (*)")
-      else :
-         extensions= tr("JDC (*.comm);;" "All Files (*)")
-
-      if self.appli.code == "MAP" :
-         extensions = extensions + ";; Run (*.input);;"
-
-      fn = QFileDialog.getSaveFileName( self,
-             tr("sauvegarde"), path,
-             extensions,None,
-             QFileDialog.DontConfirmOverwrite)
-      if fn == None : return (0, None)
-      fn=fn[0]
-      if fn=='': return (0, None)
-
-      ext = QFileInfo(fn).suffix()
-      if ext == '': fn+=extension
-
-      if QFileInfo(fn).exists():
-           msgBox = QMessageBox(self)
-           msgBox.setWindowTitle(tr("Sauvegarde du Fichier"))
-           msgBox.setText(tr("Le fichier <b>%s</b> existe deja.", six.text_type(fn)))
-           msgBox.addButton(tr("&Ecraser"),0)
-           msgBox.addButton(tr("&Abandonner"),1)
-           abort=msgBox.exec_()
-           if abort == 1 :  return (0, "")
-      return (1,fn)
-
-    #-----------------#
-    def saveRunMAP(self):
-    #-----------------#
-        extension=".input"
-        if not(self.jdc.isValid()):
-           QMessageBox.critical( self, tr( "Sauvegarde de l'input impossible "),
-                                tr("Un JdC valide est necessaire pour creer un .input")
-                                 )
-           return
-        try :
-          composant=self.jdc.etapes[0].nom.lower()[0:-5]
-        except :
-           QMessageBox.critical( self, tr( "Sauvegarde de l'input impossible "),
-                                tr("Choix du composant obligatoire")
-                                 )
-           return
-        if hasattr(self.maConfiguration, "savedir"): path=self.maConfiguration.savedir
-        else : path='C:/'
-
-        monNomFichier=""
-        if self.fichier is not None and self.fichier != "" :
-             maBase=str(QFileInfo(self.fichier).baseName())+".input"
-             monPath=str(QFileInfo(self.fichier).absolutePath())
-             monNomFichier=os.path.join(monPath,maBase)
-        elif hasattr(self,'monNomFichierInput'):
-            monNomFichier=self.monNomFichierInput
-
-
-        monDialog=QFileDialog(self.appliEficas)
-        monDialog.setDirectory (path)
-        monDialog.setWindowTitle ("Save")
-
-        for c in monDialog.children():
-            if isinstance(c,QDialogButtonBox):
-               for b in c.children():
-                  if isinstance(b,QPushButton):
-                     avant=b.text()
-                     if avant=="&Open": b.setText("Save")
-        mesFiltres= "input Map (*.input);;All Files (*)"
-        monDialog.setNameFilters(mesFiltres)
-        if monNomFichier!="" : monDialog.selectFile(monNomFichier)
-        BOk=monDialog.exec_()
-        if BOk==0: return
-        fn=str(monDialog.selectedFiles()[0])
-        if fn == "" or fn == None : return
-        if not fn.endswith(".input"):
-            fn += ".input"
-        self.monNomFichierInput=fn
-
-        if not hasattr(self, 'fichierMapInput') or not self.fichierMapInput or not os.path.exists(self.fichierMapInput):
-            self.fichierMapInput = self.__generateTempFilename(prefix = "map_run", suffix = ".map")
-            texte=self.getTextJDC("MAP")
-            self.writeFile( self.fichierMapInput, txt = texte)
-
-        cmd = ("map gen -t dat -n " + composant + " -i " + self.fichierMapInput + " -o " + fn)
-        p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
-        (output, err) = p.communicate()
-
-
-    #-----------------#
-    def saveRunPSEN(self):
-    #-----------------#
-        #print ("saveRunPSEN")
-        self.saveFile()
-
-
-
-    #-----------------------------------------#
-    def handleAjoutGroup(self,listeGroup):
-    #-----------------------------------------#
-        try :
-        #if 1:
-           from ajoutGroupe import handleAjoutGroupFiltre
-           #print listeGroup
-           handleAjoutGroupFiltre(self,listeGroup)
-           #print "apres handleAjoutGroupFiltre"
-        except :
-        #else :
-           pass
-
-
-    #-----------------------------------------------------------------#
-    def saveCompleteFile(self, path = None, saveas= 0,formatLigne="beautifie"):
-    #-----------------------------------------------------------------#
-        extension='.casR'
-        fn = self.fichierComplet
-        #saveas=True # Pour forcer le nom
-        self.generator=self.maConfiguration.mesGenerators.plugins[self.format]()
-        if self.fichierComplet is None or saveas:
-          if path is None: path=self.maConfiguration.savedir
-          bOK, fn=self.determineNomFichier(path,extension)
-          if bOK == 0 : return (0, None)
-          if fn == None : return (0, None)
-          if fn== '' : return (0, None)
-
-          ulfile = os.path.abspath(six.text_type(fn))
-          self.appliEficas.maConfiguration.savedir=os.path.split(ulfile)[0]
-          fn = six.text_type(QDir.toNativeSeparators(fn))
-
-        self.fichierComplet = os.path.splitext(fn)[0]+extension
-
-        if hasattr(self.generator, "writeComplet"):
-            self.generator.writeComplet(self.fichierComplet,self.jdc,config=self.appliEficas.maConfiguration,appli=self.appliEficas)
-
-        if self.salome : self.appliEficas.addJdcInSalome( self.fichierComplet)
-
-        self.modified = 0
-        nouveauTitre=self.titre+"              "+str(os.path.basename(self.fichierComplet))
-        self.appliEficas.setWindowTitle(nouveauTitre)
-        return (1, self.fichierComplet)
-
-    #-----------------------------------------------------------------#
-    def saveFile(self, path = None, saveas= 0,formatLigne="beautifie"):
-    #-----------------------------------------------------------------#
-        """
-        Public slot to save the text to a file.
-
-        @param path directory to save the file in (string or QString)
-        @return tuple of two values (boolean, string) giving a success indicator and
-            the name of the saved file
-        """
-
-        self.modified=1
-        if not self.modified and not saveas:
-            return (0, None)      # do nothing if text wasn't changed
-
-        if self.appli.code in DictExtensions :
-           extension=DictExtensions[self.appli.code]
-        else :
-           extension='.comm'
-
-        newName = None
-        fn = self.fichier
-        if self.fichier is None or saveas:
-          if path is None: path=self.maConfiguration.savedir
-          bOK, fn=self.determineNomFichier(path,extension)
-          if bOK == 0 : return (0, None)
-          if fn == None : return (0, None)
-          if fn== '' : return (0, None)
-
-          ulfile = os.path.abspath(six.text_type(fn))
-          self.appliEficas.maConfiguration.savedir=os.path.split(ulfile)[0]
-          fn = six.text_type(QDir.toNativeSeparators(fn))
-          newName = fn
-
-
-        if not (self.writeFile(fn,formatLigne=formatLigne)): return (0, None)
-        self.fichier = fn
-        self.modified  = False
-        if self.fileInfo is None or saveas:
-           self.fileInfo = QFileInfo(self.fichier)
-           self.fileInfo.setCaching(0)
-        self.lastModified = self.fileInfo.lastModified()
-        if newName is not None:
-           self.appliEficas.addToRecentList(newName)
-           self.tree.racine.item.getObject().nom=os.path.basename(newName)
-           self.tree.racine.updateNodeLabel()
-
-        self.jdc.toXml()
-
-        if self.jdc.isValid() != 0 and hasattr(self.generator, "writeDefault"):
-        #if hasattr(self.generator, "writeDefault"):
-            self.generator.writeDefault(fn)
-        elif self.code=="TELEMAC" and hasattr(self.generator, "writeDefault"):
-            msgBox = QMessageBox(None)
-            msgBox.setWindowTitle(tr("Fichier .cas invalide / incomplet"))
-            msgBox.setText(tr("Le fichier .cas est invalide / incomplet"))
-            msgBox.addButton(tr("&Sauvegarder"),1)
-            msgBox.addButton(tr("&Quitter sans sauvegarder"),0)
-            msgBox.addButton(tr("&Annuler"),2)
-            res=msgBox.exec_()
-            if res == 0 :
-               self.generator.writeDefault(fn)
-               return (1, self.fichier)
-            if res == 2 : return (0, None)
-            if self.appliEficas.salome : self.appliEficas.close()
-            else : sys.exit(1)
-
-        if self.salome :
-               self.appliEficas.addJdcInSalome( self.fichier)
-        self.modified = 0
-        nouveauTitre=self.titre+"              "+str(os.path.basename(self.fichier))
-        self.appliEficas.setWindowTitle(nouveauTitre)
-
-        return (1, self.fichier)
-#
-
-    #----------------------------------------------#
-    def sauveLigneFile(self):
-    #----------------------------------------------#
-        self.modified=1
-        return self.saveFile(formatLigne="Ligne")
-
-
-    #----------------------------------------------#
-    def saveFileAs(self, path = None,fileName=None):
-    #----------------------------------------------#
-        """
-        Public slot to save a file with a new name.
-
-        @param path directory to save the file in (string or QString)
-        @return tuple of two values (boolean, string) giving a success indicator and
-            the name of the saved file
-        """
-        if fileName != None :
-           self.fichier = fileName
-           return self.saveFile()
-        return self.saveFile(path,1,"beautifie")
-
-
-
-    #---------------------------------------------#
-    def getFile(self,unite=None,fic_origine = ''):
-    #---------------------------------------------#
-    # appele par I_JDC
-        ulfile  = None
-        jdcText = ""
-
-        titre  = ""
-
-        if unite :
-            titre = tr("Choix unite %d ", unite)
-            texte = tr("Le fichier %s contient une commande INCLUDE \n",  str(fic_origine)) +"\n"
-            texte = texte+ tr("Donnez le nom du fichier correspondant a l unite logique ") + repr(unite)
-            labeltexte = tr('Fichier pour unite ') + repr( unite)
-        else:
-            titre = tr("Choix d'un fichier de poursuite")
-            texte = tr("Le fichier %s contient une commande POURSUITE\n", fic_origine)
-            texte = texte+tr('Donnez le nom du fichier dont vous \n voulez faire une poursuite')
-
-        QMessageBox.information( self, titre,texte)
-        fn = QFileDialog.getOpenFileName(self.appliEficas,
-                   titre,
-                   self.appliEficas.maConfiguration.savedir)
-
-        # ce retour est impose par le getFile d'I_JDC
-        if fn== '' : return None," "
-        if not fn : return (0, " ")
-        fn=fn[0]
-
-        ulfile = os.path.abspath(six.text_type(fn))
-        self.appliEficas.maConfiguration.savedir=os.path.split(ulfile)[0]
-
-        # On utilise le convertisseur defini par format_fichier
-        source=self.getSource(ulfile)
-        if source:
-            # On a reussia convertir le fichier self.ulfile
-            jdcText = source
-        else:
-            # Une erreur a ete rencontree
-            jdcText = ''
-        return ulfile, jdcText
-
-    #-----------------------------------#
-    def updateJdc(self, etape,texte):
-    #------------------------------------#
-    # ajoute une etape  de JdC a partir d un texte
-        CONTEXT.setCurrentStep(etape)
-        etape.buildIncludeEtape(texte)
-        self.tree.racine.buildChildren()
-
-    #-----------------------------------#
-    def updateJdcEtape(self, itemApres,texte):
-    #------------------------------------#
-    # ajoute une etape  de JdC a partir d un texte
-        monItem=itemApres
-        etape=monItem.item.object
-         
-        CONTEXT.setCurrentStep(etape)
-        try :
-          ok=etape.buildIncludeEtape(texte)
-        except :
-          ok=0
-        if not ok :
-           QMessageBox.information( self,
-                      tr("Import texte"),
-                      tr("Impossible d importer le texte"))
-        self.tree.racine.buildChildren()
-        return ok
-
-    #-------------------------------------------#
-    def updateJdcAfterEtape(self, etape,texte):
-    #--------------------------------------------#
-    # ajoute une etape  de JdC a partir d un texte
-        CONTEXT.setCurrentStep(etape)
-        try :
-          ok=etape.buildIncludeEtape(texte,doitEtreValide=0)
-        except :
-          ok=0
-        if not ok :
-           QMessageBox.information( self,
-                      tr("Import texte"),
-                      tr("Impossible d importer le texte"))
-        self.tree.racine.buildChildren()
-        return ok
-
-
-    #-------------------------------------#
-    def deleteEtape(self,etape):
-    #-------------------------------------#
-    # dans le JDC
-        self.jdc.suppEntite(etape)
-
-    #-------------------------------------#
-    def deleteMC(self,etape,MCFils,listeAvant=()):
-    #-------------------------------------#
-    # dans le JDC
-        ouChercher=etape
-        for mot in listeAvant :
-              ouChercher=ouChercher.getChild(mot,restreint="oui")
-        monMC=ouChercher.getChild(MCFils,restreint="oui")
-        if monMC != None :  ouChercher.suppEntite(monMC)
-        ouChercher.state='changed'
-        ouChercher.isValid()
-
-    #-------------------------------------#
-    def ajoutMC(self,etape,MCFils,valeurs,listeAvant=()):
-    #-------------------------------------#
-    # dans le JDC
-        ouChercher=etape
-        for mot in listeAvant :
-              ouChercher=ouChercher.getChild(mot,restreint="oui")
-        monMC=etape.getChild(ouChercher,restreint="oui")
-        if monMC== None : monMC= ouChercher.addEntite(MCFils)
-        monMC.valeur=valeurs
-        monMC.val=valeurs
-        monMC.state='changed'
-        monMC.isValid()
-
-    #----------------------------------------------#
-    def ajoutMCFact(self,etape,MCFils,listeAvant=()):
-    #----------------------------------------------#
-    # dans le JDC
-        print ('ajoutMCFact')
-        ouChercher=etape
-        print (ouChercher)
-        for mot in listeAvant :
-              ouChercher=ouChercher.getChild(mot,restreint="oui")
-              print (mot)
-              print (ouChercher)
-        monMC=etape.getChild(ouChercher,restreint="oui")
-        if monMC== None : monMC= ouChercher.addEntite(MCFils)
-        monMC.isValid()
-
-
-    #-----------------------------------------
-    def initSplitterSizes(self, nbWidget=3):
-    #-----------------------------------------
-       #print ("je passe ds initSplitterSizes", nbWidget)
-
-       if   self.code in [ 'Adao', 'ADAO','MAP' ] : self.splitterSizes3=[1,1550,150]
-       #elif self.code in [ 'MAP']            : self.splitterSizes3=[700,300]
-       else                                  : self.splitterSizes3=[150,1000,300]
-
-       if   self.code in [ 'Adao', 'ADAO','MAP' ] : self.splitterSizes2=[5,1500]
-       else                                  : self.splitterSizes2=[300,1000]
-
-
-    #-----------------------------------------
-    def restoreSplitterSizes(self,nbWidget=3):
-    #----------------------------------------
-      
-      #traceback.print_stack()
-      #print ("je passe ds restoreSplitterSizes")
-      if not(hasattr(self,'splitter')) : return
-      if nbWidget==2  : newSizes=self.splitterSizes2
-      if nbWidget==3  : newSizes=self.splitterSizes3
-      #self.inhibeSplitter = 1
-      self.splitter.setSizes(newSizes)
-      #self.inhibeSplitter = 0
-      QApplication.processEvents()
-      # seule la fentetre du milieu est necessaire
-      self.splitter.widget(1).resizeEvent=self.saveSplitterSizes
-   
-    #-----------------------------------------
-    def saveSplitterSizes(self,event):
-    #-----------------------------------------
-      #print ("je passe ds saveSplitterSizes")
-      if self.inhibeSplitter : return
-      if self.widgetOptionnel == None  : self.splitterSizes2 = self.splitter.sizes()[0:2]
-      else                             : self.splitterSizes3 = self.splitter.sizes()[0:3]
-
-    #------------------------
-    def fermeOptionnel(self):
-    #------------------------
-      if self.widgetOptionnel == None : return
-
-      self.inhibeSplitter=1
-      self.widgetOptionnel.setParent(None)
-      self.widgetOptionnel.close()
-      self.widgetOptionnel.deleteLater()
-      self.widgetOptionnel=None
-      self.inhibeSplitter=0
-      self.restoreSplitterSizes(2)
-
-    #------------------------
-    def ajoutOptionnel(self):
-    #------------------------
-      #if len(self.splitterSizes) == 2 : self.splitterSizes.append(self.oldSizeWidgetOptionnel)
-      #else : self.splitterSizes[2] = self.oldSizeWidgetOptionnel # ceinture pour les close bizarres
-      #self.splitterSizes[1] = self.splitterSizes[1] - self.splitterSizes[2]
-      
-      self.restoreSplitterSizes(3)
-
-
-    #------------------------
-    def fermeArbre(self):
-    #------------------------
-       #print (self.widgetTree)
-       self.oldWidgetTree=self.widgetTree
-       self.widgetTree.hide()
-       #self.widgetTree=None
-
-    #------------------------
-    def ouvreArbre(self):
-    #------------------------
-       #print ('je passe la')
-       #print (self.widgetTree)
-       #self.widgetTree=self.oldWidgetTree
-       self.widgetTree.show()
-       #self.restoreSplitterSizes(3)
-
-    #-----------------------
-    def getEtapeCourante(self) :
-    #-----------------------
-      print (self.tree.selectedItems())
-      if len(self.tree.selectedItems()) != 1 : return None
-      etape=self.tree.selectedItems()[0].item.object.getEtape()
-      return etape
-    #-----------------------------
-    def getTreeIndex(self,noeud):
-    #----------------------------
-      indexNoeud=-1
-      if noeud in noeud.treeParent.children :
-          indexNoeud=noeud.treeParent.children.index(noeud)
-      else :
-          if hasattr(noeud,'vraiParent') :
-              noeudVrai = noeud
-              noeudVraiParent = noeud.vraiParent
-              while noeudVraiParent != noeud.treeParent and hasattr(noeudVraiParent,'vraiParent') :
-                  noeudVrai = noeudVraiParent
-                  noeudVraiParent = noeudVraiParent.vraiParent
-                  pass
-              if noeudVraiParent == noeud.treeParent :
-                  indexNoeud=noeud.treeParent.children.index(noeudVrai)
-                  pass
-              pass
-          pass
-      return indexNoeud
-
-    #-------------------#
-    def runMeteo(self):
-    #-------------------#
-
-      if not(self.jdc.isValid()):
-         QMessageBox.critical( self, tr( "Execution impossible "),tr("le JDC doit etre valide pour une execution Meteo"))
-         return
-      strSource = str( self.getTextJDC(self.format) )
-      code = compile(strSource, strSource, 'exec')
-      exec(code, globals(), {})
-
-
-
-    #-------------------#  Pour execution avec output et error dans le bash
-    def runPSEN(self):
-    #-------------------#
-    
-      #if self.modified or self.fichier==None  : self.saveFile()
-      self.saveFile()
-        
-      #lancement avec le .bat
-      path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','PSEN_Eficas','PSEN'))
-      WrapperFilePath = os.path.join(path1, 'PSSEWrapper.py') 
-      import subprocess
-      p = subprocess.Popen(['python',WrapperFilePath])
-      (out,err)=p.communicate()        
-      print (out)
-      print (err)
-
-    #-------------------#  Pour execution avec output et error dans le bash
-    def runPSEN_N1(self):
-    #-------------------#
-      
-
-      self.saveFile()
-      path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','ProcessOutputs_Eficas','TreatOutputs'))
-      sys.path.append(path1)
-
-      if not(self.jdc.isValid()):
-         QMessageBox.information( self, tr( "Unvalid JDC"),tr("incorrect keywords will be ignored"))
-      if 'dicoImbrique' in generator.plugins:
-         self.generator=generator.plugins['dicoImbrique']()
-         jdc_formate=self.generator.gener(self.jdc)
-         dico=self.generator.Dico 
-         
-         ###to delete
-         #fileDico =  r'C:\Logiciels DER\PSEN_V16\Code\ProcessOutputs_Eficas\TreatOutputs\dicoN1.py'
-         fileDico =  os.path.join(path1, 'dicoN1.py') #r'C:\Logiciels DER\PSEN_V16\Code\ProcessOutputs_Eficas\TreatOutputs\dicoN1.py'
-         f = open( str(fileDico), 'w')
-         f.write("Dico =" + str(dico) )
-         f.close()
-         ###
-         
-      
-      print ('in runPSEN_N1', dico)
-      print (dico)
-      from Run import run 
-      run(dico)
-      #res,txt_exception=run(dico)
-      #if res : QMessageBox.information( self, tr("fin de script run"), txt_exception)
-      #else  : QMessageBox.critical( self, tr("Erreur fatale script run"), txt_exception)
-       
-    #-------------------#  Pour execution avec output et error dans le bash
-    def process_N1(self):
-    #-------------------#
-
-      path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','ProcessOutputs_Eficas','TreatOutputs'))
-      sys.path.append(path1)
-
-
-      if 'dicoImbrique' in generator.plugins:
-         self.generator=generator.plugins['dicoImbrique']()
-         jdc_formate=self.generator.gener(self.jdc)
-         dico=self.getDico() #generator.Dico
-
-
-         for k in dico['CONTINGENCY_PROCESSING']:
-             #print (k)
-             if k[0:19] == 'Component_List_For_' or k[0:21] =='Contingency_List_For_' :
-                newK=k.replace('__',' ')
-                l="'"+str(newK)+"'"
-                dico['CONTINGENCY_PROCESSING'][l]=dico['CONTINGENCY_PROCESSING'][k]
-                del dico['CONTINGENCY_PROCESSING'][k]
-
-         ###to delete
-         fileDico =  os.path.join(path1, 'dicoN1_process.py')
-         f = open( str(fileDico), 'w')
-         f.write("Dico =" + str(dico) )
-         f.close()
-         ###
-         return dico
-
-        #return self.getDico()
-
-    #-------------------#  Pour execution avec output et error dans le bash
-    def process_VP(self):
-    #-------------------#
-      if 'dicoImbrique' in generator.plugins:
-         self.generator=generator.plugins['dicoImbrique']()
-         jdc_formate=self.generator.gener(self.jdc)
-         dico=self.getDico() #generator.Dico
-         return dico
-
-
-if __name__ == "__main__":
-    print ('in main')
old mode 100644 (file)
new mode 100755 (executable)
index 84ec478..db3f87e
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import str
-   from builtins import range
+    from builtins import str
+    from builtins import range
 except : pass
 
 import types,sys,os, re
 import  subprocess
 import traceback
 
-import six
-from six.moves import range
-
-import traceback
-
 # Modules Eficas
 
 import convert, generator
@@ -55,49 +50,49 @@ class JDCEditorSsIhm :
 # Methodes Communes ou appelees depuis avec Ihm
 # ---------------------------------------------
 
-    def __init__ (self,appli,fichier = None, jdc = None,  units = None, include=0 ):
-    #------------------------------------------------------------------------------#
+    def __init__ (self,appliEficas,fichier = None, jdc = None,  units = None, include=0 ):
+    #-----------------------------------------------------------------------------------#
     # paticularisee avec Ihm
 
         if debug : print ('dans le init de JDCEditorSsIhm')
-        self.appliEficas = appli
-        self.appli       = appli
+        self.appliEficas = appliEficas
         self.fichier     = fichier
-        self.fichierComplet  = fichier
+        self.fichierComplet   = fichier
+        if fichier != None : self.extensionFichier = os.path.splitext(fichier)[1]
+        else : self.extensionFichier = None
         self.jdc         = jdc
-        self.first      = True
+        self.first       = True
         self.jdc_item    = None
         self.dicoNouveauxMC   = {}
         self.dicoNouveauxFact = {}
         self.dict_reels       = {}
         self.liste_simp_reel  = []
 
-        if appli != None : self.salome =  self.appliEficas.salome
+        if self.appliEficas != None : self.salome =  self.appliEficas.salome
         else             : self.salome =  0
 
         # ces attributs sont mis a jour par definitCode appelee par newEditor
         self.code              = self.appliEficas.maConfiguration.code
         self.maConfiguration   = self.appliEficas.maConfiguration
 
-        self.version_code = session.d_env.cata
-
 
         if not hasattr ( self.appliEficas, 'readercata') or self.appliEficas.readercata.demandeCatalogue==True or self.appliEficas.multi==True:
-           if self.maConfiguration.typeDeCata == 'XML' :
-              from InterfaceQT4   import readercataXML as readercata
-           else :
-              from InterfaceQT4   import readercata
-           self.readercata  = readercata.ReaderCata( self, self.appliEficas )
-           self.appliEficas.readercata=self.readercata
-           self.appliEficas.code=self.code
+            if self.maConfiguration.typeDeCata == 'XML' :
+                from InterfaceQT4   import readercataXML as readercata
+            else :
+                from InterfaceQT4   import readercata
+            self.readercata  = readercata.ReaderCata( self, self.appliEficas )
+            self.appliEficas.readercata=self.readercata
+            self.appliEficas.code=self.code
         else :
-           self.readercata=self.appliEficas.readercata
-        if self.readercata.fic_cata == None : return    #Sortie Salome
+            self.readercata=self.appliEficas.readercata
+        if self.readercata.fichierCata == None : return    #Sortie Salome
         self.titre=self.readercata.titre
 
-        self.format =  self.appliEficas.format_fichier
+        self.formatFichierOut =  self.appliEficas.formatFichierOut
+        self.formatFichierIn  =  self.appliEficas.formatFichierIn
 
-        if self.appliEficas.maConfiguration.dumpXSD==True : self.appliEficas.dumpXsd()
+        #if self.appliEficas.maConfiguration.dumpXSD==True : self.appliEficas.dumpXsd()
         self.dict_reels={}
         self.liste_simp_reel=[]
         self.dicoNouveauxMC={}
@@ -105,24 +100,31 @@ class JDCEditorSsIhm :
 
 
         try:
-          self.maConfiguration.generator_module
-          _module = __import__(self.maConfiguration.generator_module)
-          info    = _module.entryPoint()
-          generator.plugins.addEntryPoint(info)
+            self.maConfiguration.generator_module
+            _module = __import__(self.maConfiguration.generator_module)
+            info    = _module.entryPoint()
+            generator.plugins.addEntryPoint(info)
         except:
-          pass
+            pass
 
         try:
-          self.maConfiguration.convert_module
-          #print self.maConfiguration.convert_module
-          _module = __import__(self.maConfiguration.convert_module)
-          info = _module.entryPoint()
-          convert.plugins.addEntryPoint(info)
+            self.maConfiguration.convert_module
+            #print self.maConfiguration.convert_module
+            _module = __import__(self.maConfiguration.convert_module)
+            info = _module.entryPoint()
+            convert.plugins.addEntryPoint(info)
         except :
-          pass
+            pass
 
         self.maConfiguration.mesGenerators     = generator
         self.maConfiguration.mesconvertisseurs = convert
+        try    : self.XMLgenerator=generator.plugins['xml']()
+        except : self.XMLgenerator=None
+
+
+        if self.formatFichierOut in generator.plugins.keys():
+            self.generator = generator.plugins[self.formatFichierOut]()
+
 
         self.fileInfo       = None
         self.lastModified   = 0
@@ -136,47 +138,45 @@ class JDCEditorSsIhm :
         self.nouveau=0
         if self.fichier is not None:        #  fichier jdc fourni
             if jdc==None :
-               #print ('PNPN : chgt try en if')
-               try :
-               #if 1 :
-                   self.jdc = self.readFile(self.fichier)
-               except :
-                   print ("mauvaise lecture du fichier")
-               if self.salome :
-                  try :
-                     self.appliEficas.addJdcInSalome( self.fichier)
-                  except :
-                     print ("mauvais enregistrement dans Salome")
+                #print ('PNPN : chgt try en if')
+                try :
+                #if 1 :
+                    self.jdc = self.readFile(self.fichier)
+                except :
+                    print ("mauvaise lecture du fichier")
+                if self.salome :
+                    try    : self.appliEficas.addJdcInSalome( self.fichier)
+                    except : print ("mauvais enregistrement dans Salome")
             else :
-               self.jdc=jdc
+                self.jdc=jdc
 
             if self.jdc is not None and units is not None:
-               self.jdc.recorded_units=units
-               self.jdc.old_recorded_units=units
+                self.jdc.recorded_units=units
+                self.jdc.old_recorded_units=units
 
         else:
             if not self.jdc:                   #  nouveau jdc
-                if not include :
-                   self.jdc = self._newJDC(units=units)
-                else :
-                   self.jdc = self._newJDCInclude(units=units)
+                if not include : self.jdc = self._newJDC(units=units)
+                else : self.jdc = self._newJDCInclude(units=units)
                 self.nouveau=1
 
         if self.jdc:
-            self.jdc.appli = self # a resorber
             self.jdc.editor = self
-            self.jdc.lang    = self.appli.langue
+            self.jdc.lang    = self.appliEficas.langue
             self.jdc.aReafficher=False
             txt_exception  = None
             if not jdc:
-                self.jdc.analyse()
+                if self.extensionFichier == '.xml' :
+                    if self.appliEficas.maConfiguration.withXSD: self.jdc.analyseXML()
+                    else : print ('run MDM with -x option  (MDM for XML)'); exit()
+                else : self.jdc.analyse()
                 txt_exception = self.jdc.cr.getMessException()
             if txt_exception :
                 self.jdc = None
                 self.informe('pb chargement jdc',txt_exception)
-            else:
-                comploader.chargerComposants()
-                self.jdc_item=Objecttreeitem.makeObjecttreeitem( self, "nom", self.jdc )
+            #else:
+                #comploader.chargerComposants()
+                #self.jdc_item=Objecttreeitem.makeObjecttreeitem( self, "nom", self.jdc )
 
     #-------------------------------#
     def readFile(self, fn):
@@ -189,42 +189,42 @@ class JDCEditorSsIhm :
         # charge un JDC
         # paticularisee avec Ihm
 
-        fn = six.text_type(fn)
+        fn = str(fn)
         jdcName=os.path.basename(fn)
 
         # Il faut convertir le contenu du fichier en fonction du format
-        if self.appliEficas.format_fichier_in in convert.plugins:
-             # Le convertisseur existe on l'utilise
-
-             p=convert.plugins[self.appliEficas.format_fichier_in]()
-             p.readfile(fn)
-
-             if p.text=="" : self.nouveau=1
-             #print ('PNPN --> CIST a faire')
-
-             pareil,texteNew=self.verifieChecksum(p.text)
-             if  not pareil :
-                self.informe(("fichier modifie"),("Attention! fichier change hors EFICAS"),False)
-
-             p.text=texteNew
-             memeVersion,texteNew=self.verifieVersionCataDuJDC(p.text)
-             if memeVersion == 0 : texteNew=self.traduitCatalogue(texteNew)
-             p.text=texteNew
-
-             text=p.convert('exec',self.appliEficas)
-
-             if not p.cr.estvide(): self.afficheInfos("Erreur a la conversion",'red')
+        formatIn=self.appliEficas.formatFichierIn
+        if self.extensionFichier == '.xml' and self.appliEficas.maConfiguration.withXSD: formatIn='xml'
+        if formatIn in convert.plugins:
+            # Le convertisseur existe on l'utilise
+            p=convert.plugins[formatIn]()
+            p.readfile(fn)
+
+            if p.text=="" : self.nouveau=1
+            #print ('PNPN --> CIST a faire')
+
+            if formatIn != 'xml':
+                pareil,texteNew=self.verifieChecksum(p.text)
+                if  not pareil : self.informe(("fichier modifie"),("Attention! fichier change hors EFICAS"),False)
+                p.text=texteNew
+                memeVersion,texteNew=self.verifieVersionCataDuJDC(p.text)
+                if memeVersion == 0 : texteNew=self.traduitCatalogue(texteNew)
+                p.text=texteNew
+                text=p.convert('exec',self.appliEficas)
+                if not p.cr.estvide(): self.afficheInfos("Erreur a la conversion",'red')
+            else:
+                text=p.text
         else :
             self.afficheInfos("Type de fichier non reconnu",'red')
             self.informe( "Type de fichier non reconnu",
-                    "EFICAS ne sait pas ouvrir le type de fichier " + self.appliEficas.format_fichier_in)
+                    "EFICAS ne sait pas ouvrir le type de fichier " + self.appliEficas.formatFichierIn)
             return None
 
         CONTEXT.unsetCurrentStep()
 
         #jdc=self.readercata.cata[0].JdC(procedure=text,
         jdc=self.readercata.cata.JdC(procedure=text,
-                                    appli=self,
+                                    appliEficas=self.appliEficas,
                                     cata=self.readercata.cata,
                                     cata_ord_dico=self.readercata.cata_ordonne_dico,
                                     nom=jdcName,
@@ -249,33 +249,27 @@ class JDCEditorSsIhm :
         if self.code == "PSEN"    : texte = self._newPSEN()
         if self.code == "PSEN_N1" : texte = self._newPSEN_N1()
 
-        #if hasattr(self.readercata.cata[0],'TEXTE_NEW_JDC') : texte=self.readercata.cata[0].TEXTE_NEW_JDC
         if hasattr(self.readercata.cata,'TEXTE_NEW_JDC') : texte=self.readercata.cata.TEXTE_NEW_JDC
 
 
-        #jdc=self.readercata.cata[0].JdC( procedure =texte,
-        #print (self.readercata.cata)
         jdc=self.readercata.cata.JdC( procedure =texte,
-                                         appli=self,
+                                         appliEficas=self.appliEficas,
                                          cata=self.readercata.cata,
                                          cata_ord_dico=self.readercata.cata_ordonne_dico,
                                          rep_mat=self.maConfiguration.rep_mat
                                         )
 
-        jdc.lang    = self.appli.langue
+        jdc.lang    = self.appliEficas.langue
         if units is not None:
-           jdc.recorded_units=units
-           jdc.old_recorded_units=units
-        ## PNPN est ce que la ligne suivante est bien utile ?
-        # elle positionne le contexte
+            jdc.recorded_units=units
+            jdc.old_recorded_units=units
+        # chgt le 15/10/19
+        # Attention positionne  contexte ?
         # est ce qu on ne doit pas changer le format en Accas si on vient d accas ?
-        if self.format == 'xml' : return jdc
-        if texte == "" :
-           jdc.editor=self
-           jdc.analyse()
+        jdc.editor=self
         return jdc
 
-   #--------------------------------#
+    #--------------------------------#
     def _newJDCInclude( self ,units = None):
     #--------------------------------#
         """
@@ -287,24 +281,26 @@ class JDCEditorSsIhm :
 
         #jaux=self.readercata.cata[0].JdC( procedure="",
         jaux=self.readercata.cata.JdC( procedure="",
-                               appli=self,
+                               appliEficas=self.appliEficas,
                                cata=self.readercata.cata,
                                cata_ord_dico=self.readercata.cata_ordonne_dico,
                                rep_mat=self.maConfiguration.rep_mat,
                               )
+        jaux.editor=self
         jaux.analyse()
 
         J=JdC_aux( procedure="",
-                   appli=self,
+                   appliEficas=self.appliEficas,
                    cata=self.readercata.cata,
                    cata_ord_dico=self.readercata.cata_ordonne_dico,
                    jdc_pere=jaux,
                    rep_mat=self.maConfiguration.rep_mat,
                    )
+        J.editor=self
         J.analyse()
         if units is not None:
-           J.recorded_units=units
-           J.old_recorded_units=units
+            J.recorded_units=units
+            J.old_recorded_units=units
         return J
 
 
@@ -314,9 +310,9 @@ class JDCEditorSsIhm :
     #-----------------------#
 
         # Il faut convertir le contenu du fichier en fonction du format
-        if self.format in convert.plugins :
+        if self.formatFichierIn in convert.plugins :
             # Le convertisseur existe on l'utilise
-            p=convert.plugins[self.format]()
+            p=convert.plugins[self.formatFichierIn]()
             p.readfile(file)
             text=p.convert('execnoparseur')
             if not p.cr.estvide():
@@ -326,7 +322,7 @@ class JDCEditorSsIhm :
             # Il n'existe pas c'est une erreur
             self.afficheInfos("Type de fichier non reconnu",'red')
             self.informe( "Type de fichier non reconnu",
-                    "EFICAS ne sait pas ouvrir le type de fichier " + self.appliEficas.format_fichier_in)
+                    "EFICAS ne sait pas ouvrir le type de fichier " + self.appliEficas.formatFichierIn)
             return None
 
     #----------------------------------------------#
@@ -340,64 +336,68 @@ class JDCEditorSsIhm :
     #-----------------------#
     def generDico(self):
     #-----------------------#
-       if 'dico' in generator.plugins:
-         self.generator=generator.plugins['dico']()
-         #print (self.generator)
-         jdc_formate=self.generator.gener(self.jdc)
-         #print (jdc_formate)
-         dico=self.generator.Dico
-         #print (dico)
-         return dico
+        if 'dico' in generator.plugins:
+            self.generator=generator.plugins['dico']()
+            #print (self.generator)
+            jdc_formate=self.generator.gener(self.jdc)
+            #print (jdc_formate)
+            dico=self.generator.Dico
+            #print (dico)
+            return dico
 
     #-----------------------#
     def viewJdcSource(self):
     #-----------------------#
         if self.fichier == None : return
-        f=open(self.fichier,'r')
-        texteSource=f.read()
-        f.close()
-        self._viewText(texteSource, "JDC_SOURCE")
+        if os.path.isfile(self.fichier):
+            f=open(self.fichier,'r')
+            texteSource=f.read()
+            f.close()
+            self._viewText(texteSource, "JDC_SOURCE")
+        else :
+            self._viewText("file doesn't exist", "JDC_SOURCE")
+
 
     #-----------------------#
     def viewJdcPy(self):
     #-----------------------#
-        strSource = str( self.getTextJDC(self.format) )
+        strSource = str( self.getTextJDC(self.formatFichierOut) )
         self._viewText(strSource, "JDC_RESULTAT")
 
     #-----------------------#
     def viewJdcRapport(self):
     #-----------------------#
         # on ajoute les regles
-        strRapport = six.text_type( self.jdc.report() )
+        strRapport = str( self.jdc.report() )
         self._viewText(strRapport, "JDC_RAPPORT")
 
     #-----------------------#
     def viewJdcRegles(self):
     #-----------------------#
         # on ajoute les regles
-        texte_global, test_global =  self.jdc.verifRegles() 
+        texte_global, test_global =  self.jdc.verifRegles()
         self._viewText(texte_global, "JDC_REGLES")
 
     #-----------------------#
     def getJdcRapport(self):
     #-----------------------#
         # on ajoute les regles
-        strRapport = six.text_type( self.jdc.report() )
+        strRapport = str( self.jdc.report() )
         return strRapport
 
     #---------------------#
     def getFileName(self):
     #---------------------#
-      return self.fichier
+        return self.fichier
 
     #-------------------#
     def initModif(self):
     #-------------------#
-      """
-          Met l'attribut modified a 'o' : utilise par Eficas pour savoir
-          si un JDC doit etre sauvegarde avant destruction ou non
-      """
-      self.modified = True
+        """
+            Met l'attribut modified a 'o' : utilise par Eficas pour savoir
+            si un JDC doit etre sauvegarde avant destruction ou non
+        """
+        self.modified = True
 
 
     #--------------------------------------------------#
@@ -410,14 +410,14 @@ class JDCEditorSsIhm :
         @return flag indicating success
         """
 
-        fn = six.text_type(fn)
+        fn = str(fn)
 
         if txt == None :
-            txt = self.getTextJDC(self.format,formatLigne=formatLigne)
+            txt = self.getTextJDC(self.formatFichierOut,formatLigne=formatLigne)
             eol = '\n'
             if len(txt) >= len(eol):
-               if txt[-len(eol):] != eol:
-                  txt += eol
+                if txt[-len(eol):] != eol:
+                    txt += eol
             else:
                 txt += eol
             txt=self.ajoutVersionCataDsJDC(txt)
@@ -431,34 +431,37 @@ class JDCEditorSsIhm :
             f.close()
             return 1
         except IOError as why:
-            self.afficheInfos('Sauvegarde du Fichier', 'Le fichier'+str(fn) + 'n a pas pu etre sauvegarde :'  + str(why))
+            print('Sauvegarde du Fichier', 'Le fichier'+str(fn) + 'n a pas pu etre sauvegarde :'  , str(why))
+            self.afficheInfos('Le fichier'+str(fn) + 'n a pas pu etre sauvegarde '  , 'red')
             return 0
 
+
     #-----------------------------------------------------------#
-    def getTextJDC(self,format,pourRun=0,formatLigne="beautifie"):
+    def getTextJDC(self,format = None,pourRun=0,formatLigne="beautifie"):
     #-----------------------------------------------------------#
-      if self.code == "MAP" and not(format in generator.plugins): format = "MAP"
-      if format in generator.plugins:
-
-         # Le generateur existe on l'utilise
-         self.generator=generator.plugins[format]()
-         try :
-            jdc_formate=self.generator.gener(self.jdc,format=formatLigne,config=self.appliEficas.maConfiguration,appli=self.appliEficas)
-            if pourRun : jdc_formate=self.generator.textePourRun
-            if self.code == 'TELEMAC' : jdc_formate=self.generator.texteDico
-         except ValueError as e:
-            self.informe( "Erreur a la generation",str(e),'red')
-            return
-
-         if not self.generator.cr.estvide():
-            self.informe("Erreur a la generation","EFICAS ne sait pas convertir ce JDC",'red')
+        if self.code == "MAP" and not(format in generator.plugins): format = "MAP"
+        if format == None : format = self.formatFichierOut
+        if format in generator.plugins:
+
+            # Le generateur existe on l'utilise
+            self.generator=generator.plugins[format]()
+            try :
+                jdc_formate=self.generator.gener(self.jdc,format=formatLigne,config=self.appliEficas.maConfiguration,appliEficas=self.appliEficas)
+                if pourRun : jdc_formate=self.generator.textePourRun
+                if self.code == 'TELEMAC' : jdc_formate=self.generator.texteDico
+            except ValueError as e:
+                self.informe( "Erreur a la generation",str(e),'red')
+                return
+
+            if not self.generator.cr.estvide():
+                self.informe("Erreur a la generation","EFICAS ne sait pas convertir ce JDC",'red')
+                return ""
+            else:
+                return jdc_formate
+        else:
+            # Il n'existe pas c'est une erreur
+            self.informe("Format inconnu", self.format +  " non reconnu" )
             return ""
-         else:
-            return jdc_formate
-      else:
-         # Il n'existe pas c'est une erreur
-         self.informe("Format inconnu", self.format +  " non reconnu" )
-         return ""
 
     #------------------------------#
     def verifieChecksum(self,text):
@@ -471,48 +474,48 @@ class JDCEditorSsIhm :
         checkAvant=text[indexDeb:indexFin+13]
         textJDC=text[0:indexDeb]+text[indexFin+13:-1]
         if self.code != 'PSEN'  and self.code != 'PSEN_N1':
-           checksum=self.getChecksum(textJDC)
-           pareil=(checkAvant==checksum)
+            checksum=self.getChecksum(textJDC)
+            pareil=(checkAvant==checksum)
         else :
-           pareil=1
+            pareil=1
         return pareil, textJDC
 
     #---------------------------#
     def getChecksum(self,texte):
     #---------------------------#
         try :
-           import haslib
-           newtexte=texte.replace('"','\\"')
-           hash_checksum = hashlib.md5()
-           hash_checksum.update(newtexte.encode('utf-8'))
-           checksum = hash_checksum.hexdigest()
-           ligne = "#CHECKSUM:"+checksum+":FIN CHECKSUM"
-        except : 
-           try :
-              newtexte=texte.replace('"','\\"')
-              commande='echo "'+newtexte+'"|md5sum'
-              a=os.popen(commande)
-              checksum=a.read()
-              a.close()
-           except :
-              checksum='Fichier trop long \n'
-           ligne="#CHECKSUM:"+checksum[0:-1]+":FIN CHECKSUM"
-           return ligne
+            import hashlib
+            newtexte=texte.replace('"','\\"')
+            hash_checksum = hashlib.md5()
+            hash_checksum.update(newtexte.encode('utf-8'))
+            checksum = hash_checksum.hexdigest()
+            ligne = "#CHECKSUM:"+checksum+":FIN CHECKSUM"
+        except :
+            try :
+                newtexte=texte.replace('"','\\"')
+                commande='echo "'+newtexte+'"|md5sum'
+                a=os.popen(commande)
+                checksum=a.read()
+                a.close()
+            except :
+                checksum='Fichier trop long \n'
+            ligne="#CHECKSUM:"+checksum[0:-1]+":FIN CHECKSUM"
+        return ligne
 
     #----------------------#
     def getDico(self):
     #---------------------#
-      if 'dicoImbrique' in generator.plugins:
-         self.generator=generator.plugins['dicoImbrique']()
-         #print (self.generator)
-         jdc_formate=self.generator.gener(self.jdc)
-         dico=self.generator.Dico
-         return dico
-      else :
-         self.afficheInfos(tr("Format %s non reconnu" , self.format),Qt.red)
-         return ""
-
-   #-----------------------------------------#
+        if 'dicoImbrique' in generator.plugins:
+            self.generator=generator.plugins['dicoImbrique']()
+            #print (self.generator)
+            jdc_formate=self.generator.gener(self.jdc)
+            dico=self.generator.Dico
+            return dico
+        else :
+            self.afficheInfos(tr("Format %s non reconnu" , 'Dictionnaire Imbrique' ),'red')
+            return ""
+
+    #-----------------------------------------#
     def chercheGroupes(self):
     #-----------------------------------------#
         listeMA,listeNO=self.getTextJDC("GroupMA")
@@ -522,20 +525,20 @@ class JDCEditorSsIhm :
     def chercheDico(self):
     #-----------------------------------------#
         dicoCourant={}
-        format =  self.appliEficas.format_fichier
+        format =  self.appliEficas.formatFichierOut
         if format in generator.plugins:
-           # Le generateur existe on l'utilise
-           self.generator=generator.plugins[format]()
-           jdc_formate=self.generator.gener(self.jdc,format='beautifie',config=self.appliEficas.maConfiguration)
-           dicoCourant=self.generator.dico
+            # Le generateur existe on l'utilise
+            self.generator=generator.plugins[format]()
+            jdc_formate=self.generator.gener(self.jdc,format='beautifie',config=self.appliEficas.maConfiguration)
+            dicoCourant=self.generator.dico
         return dicoCourant
 
     #-----------------------------------------------------------------#
     def saveFileLegerAs(self, fileName = None) :
     #-----------------------------------------------------------------#
         if fileName != None :
-           self.fichier = fileName
-           return self.saveFileLeger(fileName)
+            self.fichier = fileName
+            return self.saveFileLeger(fileName)
         return self.saveFileLeger()
 
     #-----------------------------------------------------------------#
@@ -545,7 +548,7 @@ class JDCEditorSsIhm :
         self.generator=generator.plugins[self.format]()
         print (self.generator)
         if hasattr(self.generator, "writeComplet"):
-            self.generator.writeComplet(fichier,self.jdc,config=self.appliEficas.maConfiguration,appli=self.appliEficas)
+            self.generator.writeComplet(fichier,self.jdc,config=self.appliEficas.maConfiguration,appliEficas=self.appliEficas)
 
 
 # ---------------------------------------------
@@ -555,24 +558,24 @@ class JDCEditorSsIhm :
     #--------------------------------#
     def ajoutCommentaire(self):
     #--------------------------------#
-      print ('pas programme sans Ihm')
-      print ('prevenir la maintenance du besoin')
+        print ('pas programme sans Ihm')
+        print ('prevenir la maintenance du besoin')
 
 
     #--------------------------------------#
     def informe(self,titre,txt,critique=True):
     #--------------------------------------#
     # methode differenre avec et sans ihm
-      if critique : print ('!!!!!!!!!!!!!!!!!!!!!!!!!!!')
-      print (titre)
-      print (txt)
-      if critique : print ('!!!!!!!!!!!!!!!!!!!!!!!!!!!')
+        if critique : print ('!!!!!!!!!!!!!!!!!!!!!!!!!!!')
+        print (titre)
+        print (txt)
+        if critique : print ('!!!!!!!!!!!!!!!!!!!!!!!!!!!')
 
     #--------------------------------------#
     def afficheInfos(self,txt,couleur=None):
     #--------------------------------------#
     # methode differenre avec et sans ihm
-      print (txt)
+        print (txt)
 
     #-----------------------------------------------------------------------#
     def _viewText(self, txt, caption = "FILE_VIEWER",largeur=1200,hauteur=600):
@@ -594,16 +597,18 @@ class JDCEditorSsIhm :
         """
 
 
-        if not (self.writeFile(fichier,formatLigne=formatLigne)): return (0, None)
         self.fichierOut = fichier
-
-        if self.jdc.isValid() != 0 and hasattr(self.generator, "writeDefault"):
+        if not (self.writeFile(fichier,formatLigne=formatLigne)): return (0, None)
+        if  self.jdc.cata.modeleMetier and self.jdc.isValid():
+            if self.generator != self.XMLgenerator :
+                self.XMLgenerator.gener(self.jdc)
+                self.XMLgenerator.writeDefault(fichier)
+                return(1,self.fichier)
+        if self.jdc.isValid() and hasattr(self.generator, "writeDefault"):
             self.generator.writeDefault(fichier)
         elif self.code=="TELEMAC" and hasattr(self.generator, "writeDefault"):
             self.generator.writeDefault(fichier)
-
         self.modified = 0
-
         return (1, self.fichier)
 #
 
@@ -632,14 +637,13 @@ class JDCEditorSsIhm :
         etape=monItem.item.object
         CONTEXT.set_current_step(etape)
         try :
-          ok=etape.build_includeEtape(texte)
+            ok=etape.build_includeEtape(texte)
         except :
-          ok=0
+            ok=0
         if not ok :
-           self.afficheInfos("Impossible d importer le texte")
-           #QMessageBox.information( self,
-           #           tr("Import texte"),
-           #           tr("Impossible d importer le texte"))
+            QMessageBox.information( self,
+                       tr("Import texte"),
+                       tr("Impossible d importer le texte"))
         self.tree.racine.build_children()
         return ok
 
@@ -657,7 +661,7 @@ class JDCEditorSsIhm :
     # dans le JDC
         ouChercher=etape
         for mot in listeAvant :
-              ouChercher=ouChercher.getChild(mot,restreint="oui")
+            ouChercher=ouChercher.getChild(mot,restreint="oui")
         monMC=ouChercher.getChild(MCFils,restreint="oui")
         if monMC != None :  ouChercher.suppentite(monMC)
         ouChercher.state='changed'
@@ -672,7 +676,7 @@ class JDCEditorSsIhm :
         ouChercher=etape
         if debug : print (ouChercher)
         for mot in listeAvant :
-           ouChercher=ouChercher.getChild(mot,restreint="oui", debug=1)
+            ouChercher=ouChercher.getChild(mot,restreint="oui")
         monMC=ouChercher.getChild(MCFils,restreint="oui")
         if monMC == None : monMC = ouChercher.addEntite(MCFils)
         monMC.valeur=valeurs
@@ -691,7 +695,7 @@ class JDCEditorSsIhm :
         ouChercher=etape
         if debug : print (ouChercher)
         for mot in listeAvant :
-           ouChercher=ouChercher.getChild(mot,restreint="oui", debug=1)
+            ouChercher=ouChercher.getChild(mot,restreint="oui")
         # Attention si +sieursMCFACT
         ouChercher=ouChercher[0]
         if debug : print (ouChercher)
@@ -709,7 +713,7 @@ class JDCEditorSsIhm :
     # dans le JDC
         ouChercher=etape
         for mot in listeAvant :
-              ouChercher=ouChercher.getChild(mot,restreint="oui")
+            ouChercher=ouChercher.getChild(mot,restreint="oui")
         monMC=etape.getChild(ouChercher,restreint="oui")
         if monMC== None : monMC= ouChercher.addEntite(MCFils)
         monMC.isvalid()
@@ -720,14 +724,14 @@ class JDCEditorSsIhm :
     # pour VP
         monObj=etape
         for mot in listeAvant :
-              monObj=monObj.getChild(mot,restreint="oui")
-              if monObj==None : return False
+            monObj=monObj.getChild(mot,restreint="oui")
+            if monObj==None : return False
         if monObj == None : return False
         if monObj.valeur != valeur :
-           # PNPN le setValeur fait des bugs --> pourquoi
-           #monObj.setValeur(valeur)
-           monObj.valeur=valeur
-           monObj.isValid()
+            # PNPN le setValeur fait des bugs --> pourquoi
+            #monObj.setValeur(valeur)
+            monObj.valeur=valeur
+            monObj.isValid()
         return True
 
     #-------------------------------------------------#
@@ -742,9 +746,9 @@ class JDCEditorSsIhm :
         if debug : print ('etape trouvee', ouChercher)
         if ouChercher==None : return None
         for mot in listeAvant :
-              ouChercher=ouChercher.getChild(mot,restreint="oui")
-              if debug : print (mot, ouChercher)
-              if ouChercher==None : return None
+            ouChercher=ouChercher.getChild(mot,restreint="oui")
+            if debug : print (mot, ouChercher)
+            if ouChercher==None : return None
         monMC=ouChercher.getChild(MCFils,restreint="oui")
         if debug : print ('monMC', monMC)
         if monMC== None : return None
@@ -759,9 +763,9 @@ class JDCEditorSsIhm :
         ouChercher=etape
         debug=0
         for mot in listeAvant :
-              ouChercher=ouChercher.getChild(mot,restreint="oui")
-              if debug : print (mot, ouChercher)
-              if ouChercher==None : return None
+            ouChercher=ouChercher.getChild(mot,restreint="oui")
+            if debug : print (mot, ouChercher)
+            if ouChercher==None : return None
         monMC=ouChercher.getChild(MCFils,restreint="oui")
         if debug : print ('monMC', monMC)
         return monMC
@@ -776,9 +780,9 @@ class JDCEditorSsIhm :
             if e.nom == nomEtape : ouChercher=e; break
         if ouChercher==None : return None
         for mot in listeAvant :
-              ouChercher=ouChercher.getChild(mot,restreint="oui")
-              #print (mot, ouChercher)
-              if ouChercher==None : return None
+            ouChercher=ouChercher.getChild(mot,restreint="oui")
+            #print (mot, ouChercher)
+            if ouChercher==None : return None
         monMC=ouChercher.getChild(MCFils,restreint="oui")
         monMC.set_valeur(valeur)
         monMC.isvalid()
@@ -789,14 +793,14 @@ class JDCEditorSsIhm :
     # dans le JDC
         ouChercher=etape
         if isinstance (etape, str):
-           ouChercher=None
-           for e in self.jdc.etapes:
-              if e.nom == etape : ouChercher=e; break
+            ouChercher=None
+            for e in self.jdc.etapes:
+                if e.nom == etape : ouChercher=e; break
         if ouChercher==None : return
 
         for mot in listeAvant :
-              ouChercher=ouChercher.getChild(mot,restreint="oui")
-              if ouChercher==None : return
+            ouChercher=ouChercher.getChild(mot,restreint="oui")
+            if ouChercher==None : return
         monMC=ouChercher.getChild(MCFils,restreint="oui")
         if monMC== None : monMC= ouChercher.addEntite(MCFils)
 
@@ -815,20 +819,20 @@ class JDCEditorSsIhm :
 
         for mot in listeAvant :
             try :
-              ouChercher=ouChercher.getChild(mot,restreint="oui")
+                ouChercher=ouChercher.getChild(mot,restreint="oui")
             # Le mot clef n est pas la
             except : return 0
         try :
-           monMC=ouChercher.getChild(MCFils,restreint="oui")
+            monMC=ouChercher.getChild(MCFils,restreint="oui")
         # Le mot clef n est pas la
         except : return 0
         if monMC == None : return 0
 
         if hasattr(monMC.definition,'into') :
-           if type(monMC.definition.into) ==types.FunctionType : maListeDeValeur=monMC.definition.into()
-           else : maListeDeValeur=monMC.definition.into
+            if type(monMC.definition.into) ==types.FunctionType : maListeDeValeur=monMC.definition.into()
+            else : maListeDeValeur=monMC.definition.into
         else :
-           return 0
+            return 0
 
         monMC.state='changed'
         return 1
@@ -847,9 +851,9 @@ class JDCEditorSsIhm :
         ouChercher=definitionEtape
         if len(listeMC) > 1 :
 
-           for mc in listeMC[0:-1]:
-             mcfact=ouChercher.entites[mc]
-             ouChercher=mcfact
+            for mc in listeMC[0:-1]:
+                mcfact=ouChercher.entites[mc]
+                ouChercher=mcfact
 
         mcAccas=ouChercher.entites[listeMC[-1]]
         mcAccas.defaut=valeurs
@@ -890,8 +894,8 @@ class JDCEditorSsIhm :
     # dans le MDD
         #print 'in deleteDefinitionMC', etape,listeAvant,nomDuMC
         if isinstance (etape, str):
-          for e in self.jdc.etapes:
-            if e.nom == etape : etape=e; break
+            for e in self.jdc.etapes:
+                if e.nom == etape : etape=e; break
         if etape == None : return
         #definitionEtape=getattr(self.jdc.cata[0],etape)
         definitionEtape=getattr(self.jdc.cata,etape)
@@ -967,8 +971,8 @@ class JDCEditorSsIhm :
         self.changeIntoDefMC(etape,listeMC,into)
 
         if isinstance (etape, str):
-          for e in self.jdc.etapes:
-            if e.nom == etape : etape=e; break
+            for e in self.jdc.etapes:
+                if e.nom == etape : etape=e; break
         if etape == None : return
 
         ouChercher = etape
@@ -1001,11 +1005,11 @@ class JDCEditorSsIhm :
         indexDeb=text.find("#VERSION_CATALOGUE:")
         indexFin=text.find(":FIN VERSION_CATALOGUE")
         if indexDeb < 0 :
-           self.versionCataDuJDC="sans"
-           textJDC=text
+            self.versionCataDuJDC="sans"
+            textJDC=text
         else :
-           self.versionCataDuJDC=text[indexDeb+19:indexFin]
-           textJDC=text[0:indexDeb]+text[indexFin+23:-1]
+            self.versionCataDuJDC=text[indexDeb+19:indexFin]
+            textJDC=text[0:indexDeb]+text[indexFin+23:-1]
 
         self.versionCata="sans"
         if hasattr(self.readercata.cata,'VERSION_CATALOGUE'): self.versionCata=self.readercata.cata.VERSION_CATALOGUE
@@ -1062,39 +1066,39 @@ class JDCEditorSsIhm :
     #---------------------------#
     def _newJDCCND(self):
     #---------------------------#
-      extensions=tr('Fichiers Med (*.med);;''Tous les Fichiers (*)')
-
-      #if self.salome == 0 :
-      QMessageBox.information( self,
-                      tr("Fichier Med"),
-                      tr("Veuillez selectionner un fichier Med"))
-      QSfichier = QFileDialog.getOpenFileName(self.appliEficas,
-                        caption='Fichier Med',
-                        filter=extensions)
-      QSfichier=QSfichier[0]
-      self.fichierMED=QSfichier
-      from acquiertGroupes import getGroupes
-      erreur,self.listeGroupes,self.nomMaillage,self.dicoCoord=getGroupes(self.fichierMED)
-      if erreur != "" : print ("a traiter")
-      texteComm="COMMENTAIRE(u'Cree - fichier : "+self.fichierMED +" - Nom Maillage : "+self.nomMaillage+"');\nPARAMETRES()\n"
-      texteSources=""
-      texteCond=""
-      texteNoCond=""
-      texteVcut=""
-      texteZs=""
-      for groupe in self.listeGroupes :
-          if groupe[0:8]=='CURRENT_':
-             texteSources +=groupe[8:]+"=SOURCE("
-             texteSources +="VecteurDirecteur=(1.0,2.0,3.0,),);\n"
-          if groupe[0:5]=='COND_':    texteCond    +=groupe[5:]+"=CONDUCTEUR();\n"
-          if groupe[0:7]=='NOCOND_':  texteNoCond  +=groupe[7:]+"=NOCOND();\n"
-          if groupe[0:5]=='VCUT_':    texteVcut    +='V_'+groupe[5:]+"=VCUT();\n"
-          if groupe[0:3]=='ZS_':      texteZs      +=groupe[3:]+"=ZS();\n"
-      texte=texteComm+texteSources+texteCond+texteNoCond+texteVcut+texteZs
-      self.newTexteCND=texte
-      self.modified=1
-      return texte
+        extensions=tr('Fichiers Med (*.med);;''Tous les Fichiers (*)')
+
+        #if self.salome == 0 :
+        QMessageBox.information( self,
+                        tr("Fichier Med"),
+                        tr("Veuillez selectionner un fichier Med"))
+        QSfichier = QFileDialog.getOpenFileName(self.appliEficas,
+                          caption='Fichier Med',
+                          filter=extensions)
+        QSfichier=QSfichier[0]
+        self.fichierMED=QSfichier
+        from acquiertGroupes import getGroupes
+        erreur,self.listeGroupes,self.nomMaillage,self.dicoCoord=getGroupes(self.fichierMED)
+        if erreur != "" : print ("a traiter")
+        texteComm="COMMENTAIRE(u'Cree - fichier : "+self.fichierMED +" - Nom Maillage : "+self.nomMaillage+"');\nPARAMETRES()\n"
+        texteSources=""
+        texteCond=""
+        texteNoCond=""
+        texteVcut=""
+        texteZs=""
+        for groupe in self.listeGroupes :
+            if groupe[0:8]=='CURRENT_':
+                texteSources +=groupe[8:]+"=SOURCE("
+                texteSources +="VecteurDirecteur=(1.0,2.0,3.0,),);\n"
+            if groupe[0:5]=='COND_':    texteCond    +=groupe[5:]+"=CONDUCTEUR();\n"
+            if groupe[0:7]=='NOCOND_':  texteNoCond  +=groupe[7:]+"=NOCOND();\n"
+            if groupe[0:5]=='VCUT_':    texteVcut    +='V_'+groupe[5:]+"=VCUT();\n"
+            if groupe[0:3]=='ZS_':      texteZs      +=groupe[3:]+"=ZS();\n"
+        texte=texteComm+texteSources+texteCond+texteNoCond+texteVcut+texteZs
+        self.newTexteCND=texte
+        self.modified=1
+        return texte
 
 
 if __name__ == "__main__":
-   print ('a faire')
+    print ('a faire')
index 635168762d6f146677f8b93c4386ac71cea164bb..7ae725e967dbb0b2d0061c4c9ca80006da270d17 100755 (executable)
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import str
+    from builtins import str
 except : pass
-print ('yyyyyyyyyyyyyy')
-print ('yyyyyyyyyyyyyy')
-print ('yyyyyyyyyyyyyy')
-print ('yyyyyyyyyyyyyy')
-
 
 import sys,os
-repIni=os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)),".."))
-ihmQTDir=os.path.join(repIni,"UiQT5")
-editeurDir=os.path.join(repIni,"Editeur")
-ihmDir=os.path.join(repIni,"InterfaceQT4")
-
-if ihmDir not in sys.path : sys.path.append(ihmDir)
-if ihmQTDir not in sys.path : sys.path.append(ihmQTDir)
-if editeurDir not in sys.path :sys.path.append(editeurDir)
+repIni     = os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)),".."))
+ihmQTDir   = os.path.join(repIni,"UiQT5")
+editeurDir = os.path.join(repIni,"Editeur")
+ihmDir     = os.path.join(repIni,"InterfaceQT4")
 
-def getEficasSsIhm(code=None,fichier=None,ssCode=None,multi=False,langue='en',versionCode=None):
-    #print (versionCode)
-    from InterfaceQT4.qtEficasSsIhm import AppliSsIhm
-    Eficas=AppliSsIhm(code=code,salome=0,ssCode=ssCode,multi=multi,langue=langue,versionCode=versionCode)
-    from Editeur  import session
-    options=session.parse(['ssIhm','-k',code,'-v',versionCode])
-    return Eficas
+if ihmDir     not in sys.path : sys.path.append(ihmDir)
+if ihmQTDir   not in sys.path : sys.path.append(ihmQTDir)
+if editeurDir not in sys.path : sys.path.append(editeurDir)
 
+if sys.version_info[0] < 3:
+    print("Must be using Python 3")
+    sys.exit()
 
-def lanceEficas(code=None,fichier=None,ssCode=None,multi=False,langue='en'):
+def lanceEficas(code=None, multi=False, langue='en', labelCode=None):
+#-------------------------------------------------------------------
     """
-        Lance l'appli EFICAS
+        Lance l'appli EFICAS avec Ihm
     """
-    # Analyse des arguments de la ligne de commande
     try :
-      from PyQt5.QtWidgets import QApplication
+        from PyQt5.QtWidgets import QApplication
     except :
-      print('Please, set qt environment')
-      return
+        print('Please, set qt environment')
+        return
 
     from Editeur  import session
-    options=session.parse(sys.argv)
-    if options.code!= None : code=options.code
-    if options.ssCode!= None : ssCode=options.ssCode
+    options = session.parse(sys.argv)
+    if options.code          != None : code=options.code
 
     from InterfaceQT4.qtEficas import Appli
     app = QApplication(sys.argv)
 
-    #import cProfile, pstats, StringIO
-    #pr = cProfile.Profile()
-    #pr.enable()
-
-    Eficas=Appli(code=code,salome=0,ssCode=ssCode,multi=multi,langue=langue)
-    #pr.disable()
-    #s = StringIO.StringIO()
-    #sortby = 'cumulative'
-    #ps = pstats.Stats(pr, stream=s).sort_stats(sortby)
-    #ps.print_stats()
-    #print (s.getValue())
-
+    Eficas=Appli(code=code,salome=0,multi=multi,langue=langue,labelCode=labelCode)
     Eficas.show()
 
     res=app.exec_()
     sys.exit(res)
 
+def getEficasSsIhm(code=None, multi=False, langue='en', ssCode=None, labelCode=None,forceXML=False, genereXSD=False, fichierCata=None):
+#-------------------------------------------------------------------------------------------------------------------------
+    """
+        Lance l'appli EFICAS sans Ihm
+    """
+    from Editeur  import session
+    options = session.parse(sys.argv)
+    if options.code   != None : code=options.code
+    if forceXML : options.withXSD=True
+
+    from InterfaceQT4.qtEficasSsIhm import AppliSsIhm
+    Eficas=AppliSsIhm(code=code, salome=0, multi=multi, langue=langue, ssCode=ssCode, labelCode=labelCode, genereXSD=genereXSD, fichierCata=fichierCata)
+    return Eficas
+
 
+
+def genereXSD(code=None):
+#------------------------
+    from Editeur  import session
+    options = session.parse(sys.argv)
+    if code != None : options.code = code
+    if options.fichierCata == None :
+        print ('Use -c cata_name.py')
+        return
+
+    monEficasSsIhm = getEficasSsIhm(code=options.code,genereXSD=True)
+    monEditor=monEficasSsIhm.getEditor()
+    #texteXSD=monEficasSsIhm.dumpXsd(avecEltAbstrait=options.avecEltAbstrait)
+    texteXSD=monEditor.dumpXsd(avecEltAbstrait=options.avecEltAbstrait)
+
+    fichierCataTrunc=os.path.splitext(os.path.basename(options.fichierCata))[0]
+    #if fichierCataTrunc[0:4] in ('cata','Cata'): fichierCataTrunc=fichierCataTrunc[4:]
+    #if fichierCataTrunc[0] in ('_','-') : fichierCataTrunc=fichierCataTrunc[1:]
+    fileXSD = fichierCataTrunc + '.xsd'
+
+    f = open( str(fileXSD), 'w')
+    f.write(str(texteXSD))
+
+def genereXML(code=None):
+#-----------------------
+    from Editeur  import session
+    options=session.parse(sys.argv)
+    if code != None : options.code = code
+    if options.fichierCata == None :
+        print ('Use -c cata_name.py')
+        return
+    try    : fichier=options.comm[0]
+    except : fichier=None
+    if fichier==None :
+        print ('comm file is needed')
+        return
+
+    monEficasSsIhm = getEficasSsIhm(code=options.code, forceXML=True)
+
+    from .editorSsIhm import JDCEditorSsIhm
+    monEditeur=JDCEditorSsIhm(monEficasSsIhm,fichier)
+    if options.fichierXMLOut == None :
+        fichierXMLOut=fichier[:fichier.rfind(".")]+'.xml'
+    else :
+        fichierXMLOut=options.fichierXMLOut
+    if not(monEditeur.jdc.isValid()):
+        print ('Fichier comm is not valid')
+        return
+    #print ('Fichier comm is not valid')
+    monEditeur.XMLgenerator.gener(monEditeur.jdc)
+    monEditeur.XMLgenerator.writeDefault(fichierXMLOut)
+
+def genereStructure(code=None):
+#------------------------------
+    from Editeur  import session
+    options=session.parse(sys.argv)
+    if code != None : options.code = code
+    if options.fichierCata == None :
+        print ('Use -c cata_name.py')
+        return
+
+    monEficasSsIhm = getEficasSsIhm(code=options.code,genereXSD=True)
+    monEditor=monEficasSsIhm.getEditor()
+    texteStructure=monEditor.dumpStructure()
+
+    fichierCataTrunc=os.path.splitext(os.path.basename(options.fichierCata))[0]
+    fileStructure = fichierCataTrunc + '.txt'
+    f = open( str(fileStructure), 'w')
+    f.write(str(texteStructure))
+    f.close()
+
+
+def validateDataSet(code=None):
+#------------------------------
+    from Editeur  import session
+    options=session.parse(sys.argv)
+    if code != None : options.code = code
+    if options.fichierCata == None :
+        print ('Use -c cata_name.py')
+        return
+    fichier=options.comm[0]
+    if fichier==None :
+        print ('comm file is needed')
+        return
+    from .editorSsIhm import JDCEditorSsIhm
+    monEficasSsIhm = getEficasSsIhm(code=options.code)
+    monEditeur=JDCEditorSsIhm(monEficasSsIhm,fichier)
+    if not (monEditeur.jdc.isValid()) : print (monEditeur.getJdcRapport())
+    else : print ('Jdc is valid')
+    return monEditeur.jdc.isValid()
+
+def validateFonction(laFonction, debug=False):
+#-------------------------------
+    # ici un singleton pour avoir l editor, le catalogue et...
+    monEficasSsIhm = getEficasSsIhm(code='Essai')
+    monEditor=monEficasSsIhm.getEditor()
+    print ('_______ validateFonction', laFonction,  laFonction.__name__)
+    from functools  import wraps
+    from collections  import OrderedDict
+    from inspect  import getargspec
+    @wraps(laFonction)
+    def fonctionValidee(*args, **kwargs):
+        laFonctionName = laFonction.__name__
+        if debug : print('Appel {} avec args={} et kwargs={}'.format( laFonction.__name__, args, kwargs))
+        laDefDeLaFonctionDansAccas = getattr(monEditor.readercata.cata,laFonctionName)
+        objConstruit = laDefDeLaFonctionDansAccas.makeObjetPourVerifSignature(*args,**kwargs)
+        if (objConstruit.isValid()) :
+            ret = laFonction(*args, **kwargs)
+            return ret
+        else :
+            print ('mauvais arguments')
+            print (objConstruit.CR())
+            return None
+    return fonctionValidee
+
+        #maClasseAccas=getattr(self.cata,objEtape.monNomClasseAccas)
+    return fonctionValidee
+
+
+    return laFonction
+
+def createFromDocumentAccas(fichierCata=None,fichier=None,code=None):
+#------------------------------------------------------------
+    if fichier == None : print ('file is needed'); return None
+    if fichierCata == None    : print ('cata file is needed'); return None
+
+    from Noyau.N_OBJECT import activeSurcharge
+    activeSurcharge()
+
+    from .editorSsIhm import JDCEditorSsIhm
+    monEficasSsIhm = getEficasSsIhm(code='Essai', fichierCata=fichierCata)
+    monEditeur=JDCEditorSsIhm(monEficasSsIhm,fichier)
+    return monEditeur.jdc
+    #from Noyau
+
+
+# --------------------------- toutes les fonctions après sont obseletes
 def lanceEficas_ssIhm(code=None,fichier=None,ssCode=None,version=None,debug=False,langue='en'):
     """
-        Lance l'appli EFICAS pour trouver les noms des groupes
+        Lance l'appli EFICAS SsIhm
     """
     # Analyse des arguments de la ligne de commande
+    print ('deprecated')
     from Editeur  import session
     options=session.parse(sys.argv)
-    if version!=None and options.cata==None : options.cata=version
-    if fichier==None : fichier=options.comm[0]
-    if code == None : code=options.code
+    if version!=None and options.version == None : options.version=version
+    if fichier == None : fichier=options.comm[0]
+    if code    == None : code=options.code
 
     from .qtEficas import Appli
     Eficas=Appli(code=code,salome=0,ssCode=ssCode,ssIhm=True,langue=langue)
@@ -106,73 +236,75 @@ def lanceEficas_ssIhm(code=None,fichier=None,ssCode=None,version=None,debug=Fals
 
     from . import readercata
     if not hasattr ( Eficas, 'readercata'):
-           monreadercata  = readercata.ReaderCata( parent, Eficas )
-           Eficas.readercata=monreadercata
+        monreadercata  = readercata.ReaderCata( parent, Eficas )
+        Eficas.readercata=monreadercata
 
     from .editor import JDCEditor
     monEditeur=JDCEditor(Eficas,fichier)
     return monEditeur
 
 def lanceEficas_ssIhm_chercheGroupes(code=None,fichier=None,ssCode=None,version=None):
+    print ('deprecated')
     monEditeur=lanceEficas_ssIhm(code,fichier,ssCode,version)
     print((monEditeur.chercheGroupes()))
 
 def lanceEficas_ssIhm_cherche_cr(code=None,fichier=None,ssCode=None,version=None):
+    print ('deprecated')
     monEditeur=lanceEficas_ssIhm(code,fichier,ssCode,version)
     print((monEditeur.jdc.cr))
 
 def lanceEficas_ssIhm_reecrit(code=None,fichier=None,ssCode=None,version=None,ou=None,cr=False,debug=False,leger=False,langue='ang'):
+    print ('deprecated')
     #print 'lanceEficas_ssIhm_reecrit', fichier
     monEditeur=lanceEficas_ssIhm(code,fichier,ssCode,version,langue=langue)
-    if ou == None : 
-       fileName=fichier.split(".")[0]+"_reecrit.comm"
-       fn=fichier.split(".")[0]+"_cr.txt"
+    if ou == None :
+        fileName=fichier.split(".")[0]+"_reecrit.comm"
+        fn=fichier.split(".")[0]+"_cr.txt"
     else :
-       f=fichier.split(".")[0]+"_reecrit.comm"
-       f1=os.path.basename(f)
-       fn=fichier.split(".")[0]+"_cr.txt"
-       f2=os.path.basename(fn)
-       fileName=os.path.join(ou,f1)
-       fileCr=os.path.join(ou,f2)
+        f=fichier.split(".")[0]+"_reecrit.comm"
+        f1=os.path.basename(f)
+        fn=fichier.split(".")[0]+"_cr.txt"
+        f2=os.path.basename(fn)
+        fileName=os.path.join(ou,f1)
+        fileCr=os.path.join(ou,f2)
     debut=False
     if debug :
-         import cProfile, pstats, StringIO
-         pr = cProfile.Profile()
-         pr.enable()
-         monEditeur.saveFileAs(fileName=fileName)
-         pr.disable()
-         s = StringIO.StringIO()
-         sortby = 'cumulative'
-         ps = pstats.Stats(pr, stream=s).sort_stats(sortby)
-         ps.print_stats()
-         print (s.getValue())
+        import cProfile, pstats, StringIO
+        pr = cProfile.Profile()
+        pr.enable()
+        monEditeur.saveFileAs(fileName=fileName)
+        pr.disable()
+        s = StringIO.StringIO()
+        sortby = 'cumulative'
+        ps = pstats.Stats(pr, stream=s).sort_stats(sortby)
+        ps.print_stats()
+        print (s.getValue())
 
     elif not leger : monEditeur.saveFileAs(fileName=fileName)
     else : monEditeur.saveFileLegerAs(fileName=fileName)
     if cr:
-       f = open(fileCr, 'w')
-       f.write(str(monEditeur.jdc.report()))
-       f.close()
+        f = open(fileCr, 'w')
+        f.write(str(monEditeur.jdc.report()))
+        f.close()
 
 def lanceEficas_param(code='Adao',fichier=None,version='V0',macro='ASSIMILATION_STUDY'):
     """
         Lance l'appli EFICAS pour trouver les noms des groupes
     """
+    print ('deprecated')
     # Analyse des arguments de la ligne de commande
     from Editeur  import session
     options=session.parse(sys.argv)
 
     from .qtEficas import Appli
-    #app = QApplication(sys.argv)
-    #Eficas=Appli(code=code,ssCode=None,salome=0)
 
     from .ssIhm  import QWParentSSIhm
     Eficas=QWParentSSIhm(code,version)
 
     from . import readercata
     if not hasattr ( Eficas, 'readercata'):
-           monreadercata  = readercata.ReaderCata( parent, Eficas )
-           Eficas.readercata=monreadercata
+        monreadercata  = readercata.ReaderCata( parent, Eficas )
+        Eficas.readercata=monreadercata
 
     from .editor import JDCEditor
     monEditeur=JDCEditor(Eficas,fichier)
@@ -180,10 +312,6 @@ def lanceEficas_param(code='Adao',fichier=None,version='V0',macro='ASSIMILATION_
     parameters=getJdcParameters(texte,macro)
     return parameters
 
-#def getEficasSsIhm(code='Adao',versionCode='V0'):
-#    from .qtEficasSsIhm import AppliSsIhm
-#    Eficas=AppliSsIhm(code=code,ssCode=None,salome=0)
-#    return Eficas
 
 def getJdcParameters(jdc,macro):
     """
@@ -191,6 +319,7 @@ def getJdcParameters(jdc,macro):
     specified jdc text to a python dictionnary whose keys are the
     names of the data of the macro.
     """
+    print ('deprecated')
     context = {}
     source = "def args_to_dict(**kwargs): return kwargs \n"
     source+= "%s = _F = args_to_dict          \n"%macro
@@ -206,11 +335,12 @@ def loadJDC(filename):
     This function loads the text from the specified JdC file. A JdC
     file is the persistence file of Eficas (*.comm).
     """
+    print ('deprecated')
     fcomm=open(filename,'r')
     jdc = ""
     for line in fcomm.readlines():
         if not (line[0]=='#'):
-           jdc+="%s"%line
+            jdc+="%s"%line
 
     # Warning, we have to make sure that the jdc comes as a simple
     # string without any extra spaces/newlines
@@ -219,6 +349,4 @@ def loadJDC(filename):
 if __name__ == "__main__":
     import sys
     sys.path.insert(0,os.path.abspath(os.path.join(os.getcwd(),'..')))
-    lanceEficas(code=None,fichier=None,ssCode=None,multi=True)
-    
-
+    lanceEficas(code=None,multi=True)
index 1cc2b4e7a1dc3cec0beb80ce2c546252b516ead7..37d57e064e90de7f6dddaaa3b8b769724ffd8163 100644 (file)
@@ -20,9 +20,9 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-  from builtins import str
+    from builtins import str
 except :
-  pass
+    pass
 import types,os
 import traceback
 
@@ -37,93 +37,111 @@ from .gereIcones import FacultatifOuOptionnel
 from .qtSaisie    import SaisieValeur
 
 nomMax=230
-# empirique les metrics ne fonctionnent pas 
+# empirique les metrics ne fonctionnent pas
 # ---------------------------------------------------------------------- #
 class Feuille(QWidget,ContientIcones,SaisieValeur,FacultatifOuOptionnel):
 # --------------------------------------------------------------------- #
 
 
-   def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
-       #print ("Feuille", monSimpDef,nom,objSimp)
-       QWidget.__init__(self,None)
-       self.node=node
-       self.node.fenetre=self
-
-       # on se positionne pour les icones
-       #os.chdir(os.path.abspath(os.path.join(os.path.dirname(__file__))))
-       self.setupUi(self)
-       self.prendLeFocus=0
-
-       maPolice= QFont("Times", 10)
-       self.setFont(maPolice)
-       self.setFocusPolicy(Qt.StrongFocus)
-
-       self.parentQt=parentQt
-       self.editor=self.node.editor
-       self.appliEficas=self.editor.appliEficas
-       self.repIcon=self.appliEficas.repIcon
-       self.monSimpDef=monSimpDef
-       self.nom=nom
-       self.objSimp=objSimp
-       self.node.fenetre=self
-       self.maCommande=commande
-
-       self.aRedimensionner=0
-       self.setSuggestion()
-       self.setValeurs()
-       self.setNom()
-       self.setValide()
-       self.setIconePoubelle()
-       self.setIconesFichier()
-       self.setIconesSalome()
-       self.setIconesGenerales()
-       self.setCommentaire()
-       self.setZoneInfo()
-     
-
-   def setNom(self):
-       self.debutToolTip=""
-       nomTraduit=tr(self.objSimp.nom)
-       #metrix= QFontMetrics(self.label.font())
-       #maxLongueur = self.label.width() - 2
-       #print ('______________________')
-       #print (nomTraduit)
-       #print (self.label.font().pixelSize())
-       #longueur2 = metrix.boundingRect(nomTraduit).width()
-       longueur=QFontMetrics(self.label.font()).width(nomTraduit)
-       if longueur >= nomMax :
-         nouveauNom=self.formate(nomTraduit)
-         self.label.setText(nouveauNom)
-       else :   
-         self.label.setText(nomTraduit)
-       #clidedText = metrics.elidedText(text, Qt.ElideRight, label.width());
-       #if (clippedText != nomTraduit): self.label.setToolTip(nomTraduit)
-       #self.label.setText(clippedText)
-
-   #def agrandit(self):
-       # inutile pour certains widgets
-   #    if self.height() < 40 :
-   #       self.setMinimumHeight(50)
-   #       self.resize(self.width(),200)
-
-   #def mousePressEvent(self, event):
-     #print 'mousePressEvent'
-     #import inspect
-     #print (inspect.getmro(self.__class__))
-     #self.__class__.mousePressEvent(self, event)
-
-
-                                 
-   def setValeurs(self):
-      # print "passe dans setValeurs pour ", self.objSimp.nom
-      # print "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+        #print ("Feuille", monSimpDef,nom,objSimp)
+        QWidget.__init__(self,None)
+        self.node=node
+        self.node.fenetre=self
+
+        # on se positionne pour les icones
+        #os.chdir(os.path.abspath(os.path.join(os.path.dirname(__file__))))
+        self.setupUi(self)
+        self.prendLeFocus=0
+
+        maPolice= QFont("Times", 10)
+        self.setFont(maPolice)
+        self.setFocusPolicy(Qt.StrongFocus)
+
+        self.parentQt=parentQt
+        self.editor=self.node.editor
+        self.appliEficas=self.editor.appliEficas
+        self.repIcon=self.appliEficas.repIcon
+        self.monSimpDef=monSimpDef
+        self.nom=nom
+        self.objSimp=objSimp
+        self.node.fenetre=self
+        self.maCommande=commande
+
+        self.aRedimensionner=0
+        self.setSuggestion()
+        self.setValeurs()
+        self.setNom()
+        self.setValide()
+        self.setIconePoubelle()
+        self.setIconesFichier()
+        self.setIconesSalome()
+        self.setIconesGenerales()
+        self.setCommentaire()
+        self.setZoneInfo()
+        self.setUnite()
+
+
+    def setUnite(self):
+        if self.monSimpDef.unite == None  :
+            if hasattr( self,'lineEditUnite') : self.lineEditUnite.setText(' ')
+        else :
+            if hasattr( self,'lineEditUnite') : self.lineEditUnite.setText(self.monSimpDef.unite)
+            else : self.editor.informe('Erreur de Catalogue','Champ Unite non prevu pour '+ self.nom + ' correction du catalogue souhaitable, prevenez la maintenance', False)
+
+    def setUQ(self):
+        if not (self.editor.appliEficas.maConfiguration.afficheUQ) and hasattr(self,'checkBoxUQ') :
+             self.checkBoxUQ.close()
+             return
+        if not self.monSimpDef.UQPossible(): 
+             self.checkBoxUQ.close()
+             return
+        if self.objSimp.isUQActivate() and hasattr(self,'checkBoxUQ') :
+             self.checkBoxUQ.setChecked(True)
+
+    def setNom(self):
+        self.debutToolTip=""
+        nomTraduit=tr(self.objSimp.nom)
+        #metrix= QFontMetrics(self.label.font())
+        #maxLongueur = self.label.width() - 2
+        #print ('______________________')
+        #print (nomTraduit)
+        #print (self.label.font().pixelSize())
+        #longueur2 = metrix.boundingRect(nomTraduit).width()
+        longueur=QFontMetrics(self.label.font()).width(nomTraduit)
+        if longueur >= nomMax :
+            nouveauNom=self.formate(nomTraduit)
+            self.label.setText(nouveauNom)
+        else :
+            self.label.setText(nomTraduit)
+        #clidedText = metrics.elidedText(text, Qt.ElideRight, label.width());
+        #if (clippedText != nomTraduit): self.label.setToolTip(nomTraduit)
+        #self.label.setText(clippedText)
+
+    #def agrandit(self):
+        # inutile pour certains widgets
+    #    if self.height() < 40 :
+    #       self.setMinimumHeight(50)
+    #       self.resize(self.width(),200)
+
+    #def mousePressEvent(self, event):
+        #print 'mousePressEvent'
+        #import inspect
+        #print (inspect.getmro(self.__class__))
+        #self.__class__.mousePressEvent(self, event)
+
+
+
+    def setValeurs(self):
+       # print "passe dans setValeurs pour ", self.objSimp.nom
+       # print "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
         pass
 
-   def finCommentaire(self):
-       return ""
+    def finCommentaire(self):
+        return ""
+
 
-   
-   def finCommentaireListe(self):
+    def finCommentaireListe(self):
         commentaire=""
         mc = self.node.item.get_definition()
         d_aides = { 'TXM' : 'chaines de caracteres',
@@ -132,152 +150,153 @@ class Feuille(QWidget,ContientIcones,SaisieValeur,FacultatifOuOptionnel):
                   'C'   : 'complexes'}
         type = mc.type[0]
         if not type in d_aides :
-           if mc.min == mc.max:
-               commentaire=tr("Entrez ")+str(mc.min)+tr(" valeurs ")+'\n'
-           else :
-               if mc.max != "**" :
-                  commentaire=tr("entre ")+str(mc.min)+tr(" et ")+str(mc.max)+tr(" valeurs ")+'\n'
-               else :
-                  commentaire=""
+            if mc.min == mc.max:
+                commentaire=tr("Entrez ")+str(mc.min)+tr(" valeurs ")+'\n'
+            else :
+                if mc.max != "**" :
+                    commentaire=tr("entre ")+str(mc.min)+tr(" et ")+str(mc.max)+tr(" valeurs ")+'\n'
+                else :
+                    commentaire=""
         else :
-           if mc.min == mc.max:
-               commentaire=tr("Entrez ")+str(mc.min)+" "+tr(d_aides[type])+'\n'
-           elif mc.max == float('inf') :
-               commentaire=tr("Entrez une liste de ") + tr(d_aides[type])+'\n'
-           else :
-               commentaire=tr("Entrez entre ")+"\n"+str(mc.min)+(" et  ")+str(mc.max) +" " +tr(d_aides[type])+'\n'
+            if mc.min == mc.max:
+                commentaire=tr("Entrez ")+str(mc.min)+" "+tr(d_aides[type])+'\n'
+            elif mc.max == float('inf') :
+                commentaire=tr("Entrez une liste de ") +" "+tr(d_aides[type])+'\n'
+            else :
+                commentaire=tr("Entrez entre ")+"\n"+str(mc.min)+(" et  ")+str(mc.max) +" " +tr(d_aides[type])+'\n'
         aideval=self.node.item.aide()
-        commentaire=commentaire +  tr(aideval)
+        commentaire=commentaire + tr(aideval)
         return str(commentaire)
 
 
-   def setSuggestion(self):
-      if self.monSimpDef.getSug() != None and self.monSimpDef.getSug() != "":
-         suggere=str('<html><head/><body><p><span style=" font-size:8pt;">suggestion : ')+str(self.monSimpDef.getSug())+"</span></p></body></html>"
-         if hasattr(self,'lineEditVal'): self.lineEditVal.setToolTip(suggere)
-
-   def setCommentaire(self):
-      c  = self.debutToolTip
-      #if self.node.item.definition.validators : c+=self.node.item.definition.validators.aide()
-      self.aide=c
-      if self.objSimp.getFr() != None and self.objSimp.getFr() != "":
-          #c2 = '<html><head/><body><p>'+c+self.objSimp.getFr().decode('latin-1','replace')+"</p></body></html>"
-          c2 = '<html><head/><body><p>'+c+self.objSimp.getFr()
-          #c2 = '<html><head/><body><p>'+c+self.objSimp.getFr()+"</p></body></html>"
-          self.label.setToolTip(c2)
-          #self.aide=self.objSimp.getFr().decode('latin-1','ignore')+" "+c
-          self.aide=self.objSimp.getFr()+" "+c
-      else :
-         c+=self.finCommentaire()
-         if c != "" and c != None :
-            self.aide=c
-            #c=str('<html><head/><body><p><span style=" font-size:8pt; ">')+c+"</span></p></body></html>"
-            c=str('<html><head/><body><p>')+c+"</p></body></html>"
-            self.label.setToolTip(c)
-      if self.editor.maConfiguration.differencieSiDefaut :
+    def setSuggestion(self):
+        if self.monSimpDef.getSug() != None and self.monSimpDef.getSug() != "":
+            suggere=str('<html><head/><body><p><span style=" font-size:8pt;">suggestion : ')+str(self.monSimpDef.getSug())+"</span></p></body></html>"
+            if hasattr(self,'lineEditVal'): self.lineEditVal.setToolTip(suggere)
+
+    def setCommentaire(self):
+        c  = self.debutToolTip
+        #if self.node.item.definition.validators : c+=self.node.item.definition.validators.aide()
+        self.aide=c
+        if self.objSimp.getFr() != None and self.objSimp.getFr() != "":
+            #c2 = '<html><head/><body><p>'+c+self.objSimp.getFr().decode('latin-1','replace')+"</p></body></html>"
+            c2 = '<html><head/><body><p>'+c+self.objSimp.getFr()
+            #c2 = '<html><head/><body><p>'+c+self.objSimp.getFr()+"</p></body></html>"
+            self.label.setToolTip(c2)
+            #self.aide=self.objSimp.getFr().decode('latin-1','ignore')+" "+c
+            self.aide=self.objSimp.getFr()+" "+c
+        else :
+            c+=self.finCommentaire()
+            if c != "" and c != None :
+                self.aide=c
+                #c=str('<html><head/><body><p><span style=" font-size:8pt; ">')+c+"</span></p></body></html>"
+                c=str('<html><head/><body><p>')+c+"</p></body></html>"
+                self.label.setToolTip(c)
+
+        if self.editor.maConfiguration.differencieSiDefaut :
             self.label.setToolTip('defaut : ' + tr(str(self.node.item.object.definition.defaut)))
 
 
 
+    def showEvent(self, event):
+        if self.prendLeFocus==1 :
+            self.activateWindow()
+            "il faut deriver le showEvent pour" , self.nom
+            self.prendLeFocus=0
+        QWidget.showEvent(self,event)
+
+    def aideALaSaisie(self):
+        mc = self.node.item.get_definition()
+        mctype = mc.type[0]
+        d_aides = { 'TXM' : tr(u"chaine de caracteres"),
+                    'R'   : tr("reel"),
+                    'I'   : tr("entier"),
+                    'C'   : tr("complexe"),
+                    'Matrice' : tr(u'Matrice'),
+                    'Fichier' : tr(u'fichier'),
+                    'FichierNoAbs' : tr(u'fichier existant'),
+                    'Repertoire' : tr(u'repertoire')}
+
+        if mc.min == mc.max: commentaire=tr("Entrez ")+" "+str(mc.min)+" "
+        else :               commentaire=tr("Entrez entre ")+str(mc.min)+tr(" et ")+str(mc.max) + " "
+
+        try :
+            if issubclass(mctype,object) : ctype = getattr(mctype, 'help_message', tr("Type de base inconnu"))
+            else : ctype = d_aides.get(mctype, tr("Type de base inconnu"))
+        except:
+            ctype = d_aides.get(mctype, tr("Type de base inconnu"))
+        if ctype == tr("Type de base inconnu") and "Tuple" in str(mctype): ctype=str(mctype)
+        if ctype == tr("Type de base inconnu") and "bool" in str(mctype): ctype='bool'
+
+        if mc.max!=1 : 
+           if ctype == 'chaine de caractere' and mc.max>1 : ctype = 'chaines de caractere' 
+           else : ctype = ctype + 's'
+        commentaire+=ctype
+        if mc.max!=1 : commentaire+="s"
+        return commentaire
+
+    def setZoneInfo(self):
+        # info=str(self.nom)+'  '
+        # if self.monSimpDef.getFr() != None and self.monSimpDef.getFr() != "": info+=self.monSimpDef.getSug() +" "
+        # if self.monSimpDef.getSug() != None and self.monSimpDef.getSug() != "": info+="Valeur suggeree : "self.monSimpDef.getSug()
+        pass
+
+    def reaffiche(self):
+
+        if self.editor.jdc.aReafficher==True :
+            self.parentQt.reaffiche()
+
+            #PN PN PN pas satisfaisant
+            #nodeAVoir=self.parentQt.node.chercheNoeudCorrespondant(self.objSimp)
+            #print nodeAVoir.fenetre
+            #print "nodeAVoir.fenetre.isVisible()", nodeAVoir.fenetre.isVisible()
+            #if nodeAVoir.fenetre.isVisible() : return
+            #self.editor.fenetreCentraleAffichee.rendVisibleNoeud(nodeAVoir)
+            #nodeAVoir.fenetre.setFocus()
+            # return  # on est bien postionne
+
+            if self.objSimp.isValid() and hasattr(self, 'AAfficher'):
+                nodeAVoir=self.parentQt.node.chercheNoeudCorrespondant(self.objSimp)
+                try :
+                    index=self.editor.fenetreCentraleAffichee.listeAffichageWidget.index(nodeAVoir.fenetre.AAfficher)
+                    if (index==len(self.editor.fenetreCentraleAffichee.listeAffichageWidget)-1) :
+                        try :
+                            nodeAVoir.fenetre.setValeursApresBouton()
+                        except :
+                            pass
+                    else :
+                        self.editor.fenetreCentraleAffichee.afficheSuivant(nodeAVoir.fenetre.AAfficher)
+                except :
+                    pass
+        else :
+            if self.objSimp.isValid() and hasattr(self, 'AAfficher'):
+                try :
+                    self.setValeursApresBouton()
+                except :
+                    pass
+                self.editor.fenetreCentraleAffichee.afficheSuivant(self.AAfficher)
+            else :
+                if hasattr(self, 'AAfficher'): self.AAfficher.setFocus(7)
+
+    def reaffichePourDeplier(self):
+        self.parentQt.reaffiche()
+
+    def rendVisible(self):
+        pass
 
-   def showEvent(self, event):
-      if self.prendLeFocus==1 :
-         self.activateWindow()
-         "il faut deriver le showEvent pour" , self.nom
-         self.prendLeFocus=0
-      QWidget.showEvent(self,event)
-
-   def aideALaSaisie(self):
-      mc = self.node.item.get_definition()
-      mctype = mc.type[0]
-      d_aides = { 'TXM' : tr(u"chaine de caracteres"),
-                  'R'   : tr("reel"),
-                  'I'   : tr("entier"),
-                  'C'   : tr("complexe"),
-                  'Matrice' : tr(u'Matrice'),
-                  'Fichier' : tr(u'fichier'),
-                  'FichierNoAbs' : tr(u'fichier existant'),
-                  'Repertoire' : tr(u'repertoire')}
-
-      if mc.min == mc.max: commentaire=tr("Entrez ")+" "+str(mc.min)+" "
-      else :               commentaire=tr("Entrez entre ")+str(mc.min)+tr(" et ")+str(mc.max)
-
-      try :
-         if issubclass(mctype,object) : ctype = getattr(mctype, 'help_message', tr("Type de base inconnu"))
-         else : ctype = d_aides.get(mctype, tr("Type de base inconnu"))
-      except:                        
-         ctype = d_aides.get(mctype, tr("Type de base inconnu"))
-      if ctype == tr("Type de base inconnu") and "Tuple" in str(mctype): ctype=str(mctype)
-
-      commentaire+=ctype
-      if mc.max!=1 : commentaire+="s" 
-      return commentaire
-
-   def setZoneInfo(self):
-      # info=str(self.nom)+'  '
-      # if self.monSimpDef.getFr() != None and self.monSimpDef.getFr() != "": info+=self.monSimpDef.getSug() +" "
-      # if self.monSimpDef.getSug() != None and self.monSimpDef.getSug() != "": info+="Valeur suggeree : "self.monSimpDef.getSug()
-      pass
-
-   def reaffiche(self):
-
-      if self.editor.jdc.aReafficher==True :
-         self.parentQt.reaffiche()
-
-         #PN PN PN pas satisfaisant
-         #nodeAVoir=self.parentQt.node.chercheNoeudCorrespondant(self.objSimp)
-         #print nodeAVoir.fenetre
-         #print "nodeAVoir.fenetre.isVisible()", nodeAVoir.fenetre.isVisible()
-         #if nodeAVoir.fenetre.isVisible() : return
-         #self.editor.fenetreCentraleAffichee.rendVisibleNoeud(nodeAVoir)
-         #nodeAVoir.fenetre.setFocus()
-         # return  # on est bien postionne
-
-         if self.objSimp.isValid() and hasattr(self, 'AAfficher'):
-            nodeAVoir=self.parentQt.node.chercheNoeudCorrespondant(self.objSimp)
-            try :
-               index=self.editor.fenetreCentraleAffichee.listeAffichageWidget.index(nodeAVoir.fenetre.AAfficher)
-               if (index==len(self.editor.fenetreCentraleAffichee.listeAffichageWidget)-1) :
-                  try :
-                     nodeAVoir.fenetre.setValeursApresBouton()
-                  except :
-                     pass
-               else :
-                  self.editor.fenetreCentraleAffichee.afficheSuivant(nodeAVoir.fenetre.AAfficher)
-            except :
-               pass
-      else :
-         if self.objSimp.isValid() and hasattr(self, 'AAfficher'):
-            try :
-               self.setValeursApresBouton()
-            except :
-               pass
-            self.editor.fenetreCentraleAffichee.afficheSuivant(self.AAfficher)
-         else :
-            if hasattr(self, 'AAfficher'): self.AAfficher.setFocus(7)
-
-   def reaffichePourDeplier(self):
-      self.parentQt.reaffiche()
-
-   def rendVisible(self):
-       pass
-
-   #def enterEvent(self,event):
-   #   print "je passe dans enterEvent", self.nom
-   #   QWidget.enterEvent(self,event)
-
-   def traiteClicSurLabel(self,texte):
-       #aide=self.aide.encode('latin-1', 'ignore').decode('latin-1')+"\n"+self.aideALaSaisie().encode('latin-1', 'ignore').decode('latin-1')
-       try :
-          aide=self.aide+"\n"+self.aideALaSaisie()
-       except :
-          aide=self.aideALaSaisie()
-       self.editor.afficheCommentaire(aide)
-
-   def formate(self,t):
-       l=len(t)//2
-       newText=t[0:l]+'-\n'+t[l:]
-       return newText
-      
-
+    #def enterEvent(self,event):
+    #   print "je passe dans enterEvent", self.nom
+    #   QWidget.enterEvent(self,event)
+
+    def traiteClicSurLabel(self,texte):
+        #aide=self.aide.encode('latin-1', 'ignore').decode('latin-1')+"\n"+self.aideALaSaisie().encode('latin-1', 'ignore').decode('latin-1')
+        try :
+            aide=self.aide+"\n"+self.aideALaSaisie()
+        except :
+            aide=self.aideALaSaisie()
+        self.editor.afficheCommentaire(aide)
+
+    def formate(self,t):
+        l=len(t)//2
+        newText=t[0:l]+'-\n'+t[l:]
+        return newText
index 135b983e4b49022a2252e030c1cc43bed682717c..0a17b7423e83b8a9820c5a0650c72a1a81a7378e 100644 (file)
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import str
-   from builtins import object
+    from builtins import str
+    from builtins import object
 except : pass
 
 import types,os,re,sys
 import traceback
-import six
 import inspect
 
 from PyQt5.QtWidgets import QMessageBox, QFileDialog , QMenu, QPushButton, QTreeView ,QListView, QAbstractItemView
@@ -41,327 +40,327 @@ listeSuffixe=('bmp','png','jpg' ,'txt','med')
 
 class FacultatifOuOptionnel(object):
 
-  def setReglesEtAide(self):
-      listeRegles=()
-      try :
-         listeRegles     = self.node.item.getRegles()
-      except :
-         pass
-      if hasattr(self,"RBRegle"):
-        if listeRegles==() : self.RBRegle.close() 
+    def setReglesEtAide(self):
+        listeRegles=()
+        try :
+            listeRegles     = self.node.item.getRegles()
+        except :
+            pass
+        if hasattr(self,"RBRegle"):
+            if listeRegles==() : self.RBRegle.close()
+            else :
+                icon3=QIcon(self.repIcon+"/lettreRblanc30.png")
+                self.RBRegle.setIcon(icon3)
+                self.RBRegle.clicked.connect(self.viewRegles)
+
+        cle_doc=None
+        if not hasattr(self,"RBInfo"):return
+        icon=QIcon(self.repIcon+"/point-interrogation30.png")
+        self.RBInfo.setIcon(icon)
+
+        from .monWidgetCommande import MonWidgetCommande
+        if isinstance(self,MonWidgetCommande) and self.editor.code =="MAP":
+            self.cle_doc = self.chercheDocMAP()
         else :
-           icon3=QIcon(self.repIcon+"/lettreRblanc30.png")
-           self.RBRegle.setIcon(icon3)
-           self.RBRegle.clicked.connect(self.viewRegles)
-
-      cle_doc=None
-      if not hasattr(self,"RBInfo"):return
-      icon=QIcon(self.repIcon+"/point-interrogation30.png")
-      self.RBInfo.setIcon(icon)
-
-      from .monWidgetCommande import MonWidgetCommande
-      if isinstance(self,MonWidgetCommande) and self.editor.code =="MAP":
-         self.cle_doc = self.chercheDocMAP()
-      else :
-         self.cle_doc = self.node.item.getDocu()
-      if self.cle_doc == None  : self.RBInfo.close()
-      else : self.RBInfo.clicked.connect (self.viewDoc)
-
-
-  def chercheDocMAP(self):
-      try :
-        clef=self.editor.maConfiguration.adresse+"/"
-      except :
-        return None
-      for k in self.editor.readercata.cata.JdC.dict_groupes:
-          if self.obj.nom in self.editor.readercata.cata.JdC.dict_groupes[k]:
-             clef+=k
-             break
-      clef+="/"+ self.obj.nom[0:-5].lower()+"/spec_"+self.obj.nom[0:-5].lower()+".html"
-
-      return clef
-  def viewDoc(self):
-      try :
-          if sys.platform[0:5]=="linux" : cmd="xdg-open "+self.cle_doc
-          else                                 : cmd="start "+self.cle_doc
-          os.system(cmd)
-      except:
-          QMessageBox.warning( self,tr( "Aide Indisponible"),tr( "l'aide n est pas installee "))
-
-  def viewRegles(self):
-      self.node.appellebuildLBRegles()
-
-
-  def setIconePoubelle(self):
-      if not(hasattr(self,"RBPoubelle")):return
-
-      if self.node.item.object.isOblig()  and not( hasattr(self.node.item.object,'isDeletable') ): 
-         icon=QIcon(self.repIcon+"/deleteRondVide.png")
-         self.RBPoubelle.setIcon(icon)
-         return
-      icon=QIcon(self.repIcon+"/deleteRond.png")
-      self.RBPoubelle.setIcon(icon)
-      self.RBPoubelle.clicked.connect(self.aDetruire)
-
-  def setIconesSalome(self):
-       if not (hasattr(self,"RBSalome")): return
-       from Accas import SalomeEntry
-       mc = self.node.item.get_definition()
-       mctype = mc.type[0]
-       enable_salome_selection = self.editor.salome and \
-         (('grma' in repr(mctype)) or ('grno' in repr(mctype)) or ('SalomeEntry' in repr(mctype)) or \
-         (hasattr(mctype, "enable_salome_selection") and mctype.enable_salome_selection))
-
-       if enable_salome_selection:
-          icon=QIcon(self.repIcon+"/flecheSalome.png")
-          self.RBSalome.setIcon(icon)
-          self.RBSalome.pressed.connect(self.BSalomePressed)
+            self.cle_doc = self.node.item.getDocu()
+        if self.cle_doc == None  : self.RBInfo.close()
+        else : self.RBInfo.clicked.connect (self.viewDoc)
+
+
+    def chercheDocMAP(self):
+        try :
+            clef=self.editor.maConfiguration.adresse+"/"
+        except :
+            return None
+        for k in self.editor.readercata.cata.JdC.dict_groupes:
+            if self.obj.nom in self.editor.readercata.cata.JdC.dict_groupes[k]:
+                clef+=k
+                break
+        clef+="/"+ self.obj.nom[0:-5].lower()+"/spec_"+self.obj.nom[0:-5].lower()+".html"
+
+        return clef
+
+    def viewDoc(self):
+        try :
+            if sys.platform[0:5]=="linux" : cmd="xdg-open "+self.cle_doc
+            else                          : cmd="start "+self.cle_doc
+            os.system(cmd)
+        except:
+            QMessageBox.warning( self,tr( "Aide Indisponible"),tr( "l'aide n est pas installee "))
+
+    def viewRegles(self):
+        self.node.appellebuildLBRegles()
+
+
+    def setIconePoubelle(self):
+        if not(hasattr(self,"RBPoubelle")):return
+
+        if self.node.item.object.isOblig()  and not( hasattr(self.node.item.object,'isDeletable') ):
+            icon=QIcon(self.repIcon+"/deleteRondVide.png")
+            self.RBPoubelle.setIcon(icon)
+            return
+        icon=QIcon(self.repIcon+"/deleteRond.png")
+        self.RBPoubelle.setIcon(icon)
+        self.RBPoubelle.clicked.connect(self.aDetruire)
+
+    def setIconesSalome(self):
+        if not (hasattr(self,"RBSalome")): return
+        from Accas import SalomeEntry
+        mc = self.node.item.get_definition()
+        mctype = mc.type[0]
+        enable_salome_selection = self.editor.salome and \
+          (('grma' in repr(mctype)) or ('grno' in repr(mctype)) or ('SalomeEntry' in repr(mctype)) or \
+          (hasattr(mctype, "enable_salome_selection") and mctype.enable_salome_selection))
+
+        if enable_salome_selection:
+            icon=QIcon(self.repIcon+"/flecheSalome.png")
+            self.RBSalome.setIcon(icon)
+            self.RBSalome.pressed.connect(self.BSalomePressed)
 
 #PNPN --> Telemac A revoir surement
 # cela ou le catalogue grpma ou salomeEntry
-          if not(('grma' in repr(mctype)) or ('grno' in repr(mctype))) or not(self.editor.salome): 
-             if hasattr(self,"RBSalomeVue") : self.RBSalomeVue.close()
-          else : 
-             icon1=QIcon(self.repIcon+"/eye.png")
-             self.RBSalomeVue.setIcon(icon1)
-             self.RBSalomeVue.clicked.connect(self.BView2DPressed)
-       else:
-          self.RBSalome.close()
-          self.RBSalomeVue.close()
-
-     
-  def setIconesFichier(self):
-       if not ( hasattr(self,"BFichier")): return
-       mc = self.node.item.get_definition()
-       mctype = mc.type[0]
-       if mctype == "FichierOuRepertoire":
-          self.BFichierOuRepertoire=self.BFichier
-          self.BFichierOuRepertoire.clicked.connect(self.BFichierOuRepertoirePressed)
-          self.BVisuFichier.close()
-       elif mctype == "Repertoire":
-          self.BRepertoire=self.BFichier
-          self.BRepertoire.clicked.connect(self.BRepertoirePressed)
-          self.BVisuFichier.close()
-       else :
-          self.BFichier.clicked.connect(self.BFichierPressed)
-          self.BVisuFichier.clicked.connect(self.BFichierVisu)
-
-
-
-  def setIconesGenerales(self):
-      repIcon=self.node.editor.appliEficas.repIcon
-      if hasattr(self,"BVisuListe") :
-         fichier=os.path.join(repIcon, 'plusnode.png')
-         icon = QIcon(fichier)
-         self.BVisuListe.setIcon(icon)
-      if hasattr(self,"RBDeplie") :
-         fichier=os.path.join(repIcon, 'plusnode.png')
-         icon = QIcon(fichier)
-         self.RBDeplie.setIcon(icon)
-      if hasattr(self,"RBPlie") :
-         fichier=os.path.join(repIcon, 'minusnode.png')
-         icon = QIcon(fichier)
-         self.RBPlie.setIcon(icon)
-      if hasattr(self,"BVisuFichier") :
-         fichier=os.path.join(repIcon, 'visuFichier.png')
-         icon = QIcon(fichier)
-         self.BVisuFichier.setIcon(icon)
-
-      
-
-  def setRun(self):
-      if hasattr(self.editor.appliEficas, 'mesScripts') :
-         if self.editor.code in  self.editor.appliEficas.mesScripts :
-            self.dict_commandes_mesScripts=self.appliEficas.mesScripts[self.editor.code].dict_commandes
-            if self.obj.nom in self.dict_commandes_mesScripts :
-               self.ajoutScript()
-               icon=QIcon(self.repIcon+"/roue.png")
-               if hasattr(self,"RBRun"):self.RBRun.setIcon(icon)
-               return
-      if hasattr(self,"RBRun"): self.RBRun.close()
-      if hasattr(self,"CBScripts"): self.CBScripts.close()
-
-
-  def aDetruire(self):
-      self.node.delete()
-
-  def setValide(self):
-      if not(hasattr (self,'RBValide')) : return
-      couleur=self.node.item.getIconName()
-      monIcone = QIcon(self.repIcon+"/" + couleur + ".png")
-      self.RBValide.setIcon(monIcone)
-
-  # il faut chercher la bonne fenetre
-  def rendVisible(self):
-      #print "je passe par rendVisible de FacultatifOuOptionnel"
-      #print self
-      #print self.node.fenetre
-      #print "return pour etre sure"
-      return
-      #PNPN
-      newNode=self.node.treeParent.chercheNoeudCorrespondant(self.node.item.object)
-      #print newNode
-      self.editor.fenetreCentraleAffichee.scrollAreaCommandes.ensureWidgetVisible(newNode.fenetre)
-      #newNode.fenetre.setFocus()
-
-
-  def ajoutScript(self):
+            if not(('grma' in repr(mctype)) or ('grno' in repr(mctype))) or not(self.editor.salome):
+                if hasattr(self,"RBSalomeVue") : self.RBSalomeVue.close()
+            else :
+                icon1=QIcon(self.repIcon+"/eye.png")
+                self.RBSalomeVue.setIcon(icon1)
+                self.RBSalomeVue.clicked.connect(self.BView2DPressed)
+        else:
+            self.RBSalome.close()
+            self.RBSalomeVue.close()
+
+
+    def setIconesFichier(self):
+        if not ( hasattr(self,"BFichier")): return
+        mc = self.node.item.get_definition()
+        mctype = mc.type[0]
+        if mctype == "FichierOuRepertoire":
+            self.BFichierOuRepertoire=self.BFichier
+            self.BFichierOuRepertoire.clicked.connect(self.BFichierOuRepertoirePressed)
+            self.BVisuFichier.close()
+        elif mctype == "Repertoire":
+            self.BRepertoire=self.BFichier
+            self.BRepertoire.clicked.connect(self.BRepertoirePressed)
+            self.BVisuFichier.close()
+        else :
+            self.BFichier.clicked.connect(self.BFichierPressed)
+            self.BVisuFichier.clicked.connect(self.BFichierVisu)
+
+
+
+    def setIconesGenerales(self):
+        repIcon=self.node.editor.appliEficas.repIcon
+        if hasattr(self,"BVisuListe") :
+            fichier=os.path.join(repIcon, 'plusnode.png')
+            icon = QIcon(fichier)
+            self.BVisuListe.setIcon(icon)
+        if hasattr(self,"RBDeplie") :
+            fichier=os.path.join(repIcon, 'plusnode.png')
+            icon = QIcon(fichier)
+            self.RBDeplie.setIcon(icon)
+        if hasattr(self,"RBPlie") :
+            fichier=os.path.join(repIcon, 'minusnode.png')
+            icon = QIcon(fichier)
+            self.RBPlie.setIcon(icon)
+        if hasattr(self,"BVisuFichier") :
+            fichier=os.path.join(repIcon, 'visuFichier.png')
+            icon = QIcon(fichier)
+            self.BVisuFichier.setIcon(icon)
+
+
+
+    def setRun(self):
+        if hasattr(self.editor.appliEficas, 'mesScripts') :
+            if self.editor.code in  self.editor.appliEficas.mesScripts :
+                self.dict_commandes_mesScripts=self.appliEficas.mesScripts[self.editor.code].dict_commandes
+                if self.obj.nom in self.dict_commandes_mesScripts :
+                    self.ajoutScript()
+                    icon=QIcon(self.repIcon+"/roue.png")
+                    if hasattr(self,"RBRun"):self.RBRun.setIcon(icon)
+                    return
+        if hasattr(self,"RBRun"): self.RBRun.close()
+        if hasattr(self,"CBScripts"): self.CBScripts.close()
+
+
+    def aDetruire(self):
+        self.node.delete()
+
+    def setValide(self):
+        if not(hasattr (self,'RBValide')) : return
+        couleur=self.node.item.getIconName()
+        monIcone = QIcon(self.repIcon+"/" + couleur + ".png")
+        self.RBValide.setIcon(monIcone)
+
+    # il faut chercher la bonne fenetre
+    def rendVisible(self):
+        #print "je passe par rendVisible de FacultatifOuOptionnel"
+        #print self
+        #print self.node.fenetre
+        #print "return pour etre sure"
+        return
+        #PNPN
+        newNode=self.node.treeParent.chercheNoeudCorrespondant(self.node.item.object)
+        #print newNode
+        self.editor.fenetreCentraleAffichee.scrollAreaCommandes.ensureWidgetVisible(newNode.fenetre)
+        #newNode.fenetre.setFocus()
+
+
+    def ajoutScript(self):
         if not hasattr(self,'CBScripts') : return # Cas des Widgets Plies
         self.dictCommandes={}
         listeCommandes=self.dict_commandes_mesScripts[self.obj.nom]
         if type(listeCommandes) != tuple: listeCommandes=(listeCommandes,)
         i=0
         for commande in listeCommandes :
-          conditionSalome=commande[3]
-          if (self.appliEficas.salome == 0 and conditionSalome == True): continue
-          self.CBScripts.addItem(commande[1])
-          self.dictCommandes[commande[1]]=i
-          i=i+1
+            conditionSalome=commande[3]
+            if (self.appliEficas.salome == 0 and conditionSalome == True): continue
+            self.CBScripts.addItem(commande[1])
+            self.dictCommandes[commande[1]]=i
+            i=i+1
         self.CBScripts.activated.connect(self.choixSaisi)
 
-  def choixSaisi(self):
-      fction=str(self.CBScripts.currentText())
-      numero= self.dictCommandes[fction]
-      self.node.appelleFonction(numero,nodeTraite=self.node)
-      #self.reaffiche()
+    def choixSaisi(self):
+        fction=str(self.CBScripts.currentText())
+        numero= self.dictCommandes[fction]
+        self.node.appelleFonction(numero,nodeTraite=self.node)
+        #self.reaffiche()
 
 class ContientIcones(object):
 
-  def BFichierVisu(self):
-       fichier=self.lineEditVal.text()
-       if fichier == None or str(fichier)=="" : return
-       from .monViewTexte import ViewText
-       try :
-         if sys.platform[0:5]=="linux" :
-           #cmd="xdg-open "+ str(fichier)
-           #changer pour marcher dans l'EDC
-           #cmd="gedit "+ str(fichier)
-           from os.path import splitext
-           fileName,extension = splitext(fichier)
-           if extension in  self.parentQt.editor.appliEficas.maConfiguration.utilParExtensions:
-              cmd=self.parentQt.editor.appliEficas.maConfiguration.utilParExtensions[extension] + " " + str(fichier)
-           else:  cmd="xdg-open "+ str(fichier)
-           os.system(cmd)
-         else                         :
-           os.startfile(str(fichier)) 
-       except:
-         try :
-            fp=open(fichier)
-            txt=fp.read()
-            nomFichier=QFileInfo(fichier).baseName()
-            maVue=ViewText(self,entete=nomFichier)
-            maVue.setText(txt)
-            maVue.show()
-            fp.close()
-         except:
-            QMessageBox.warning( None,
-                       tr("Visualisation Fichier "),
-                       tr("Impossibilite d'afficher le Fichier"),)
-
-  def BFichierPressed(self):
-      mctype = self.node.item.get_definition().type
-      if len(mctype) > 1:
-          filters = mctype[1]
-      elif hasattr(mctype[0], "filters"):
-          filters = mctype[0].filters
-      else:
-          filters = ""
-      if len(mctype) > 2 and mctype[2] == "Sauvegarde":
-          fichier = QFileDialog.getSaveFileName(self.appliEficas,
-                              tr('Sauvegarder Fichier'),
-                              self.appliEficas.maConfiguration.savedir,
-                              filters)
-      else:
-          #print(filters)
-          fichier = QFileDialog.getOpenFileName(self.appliEficas,
-                              tr('Ouvrir Fichier'),
-                              self.appliEficas.maConfiguration.savedir,
-                              filters)
-
-      fichier=fichier[0]
-      if not(fichier == ""):
-         ulfile = os.path.abspath(six.text_type(fichier))
-         self.appliEficas.maConfiguration.savedir=os.path.split(ulfile)[0]
-         self.lineEditVal.setText(fichier)
-         self.editor.afficheCommentaire(tr("Fichier selectionne"))
-         self.LEvaleurPressed()
-         if (QFileInfo(fichier).suffix() in listeSuffixe ):
-             self.image=fichier
-             if (not hasattr(self,"BSelectInFile")):
-               try :
-                 self.BSelectInFile = QPushButton(self)
-                 self.BSelectInFile.setMinimumSize(QSize(140,40))
-                 self.BSelectInFile.setObjectName("BSelectInFile")
-                 self.gridLayout.addWidget(self.BSelectInFile,1,1,1,1)
-                 self.BSelectInFile.setText(tr("Selection"))
-                 self.BSelectInFile.clicked.connect(self.BSelectInFilePressed)
-               except :
-                pass
-             else :
-               self.BSelectInFile.setVisible(1)
-               
-         elif hasattr(self, "BSelectInFile"):
-             self.BSelectInFile.setVisible(0)
-
-  def BFichierOuRepertoirePressed(self):
-      self.fileName=""
-      self.file_dialog=QFileDialog()
-      self.file_dialog.setFileMode(QFileDialog.Directory);
-      self.file_dialog.setFileMode(QFileDialog.Directory|QFileDialog.ExistingFiles)
-      self.file_dialog.setOption(QFileDialog.DontUseNativeDialog,True);
-      self.file_dialog.setWindowTitle('Choose File or Directory')
-      self.explore(self.file_dialog)
-      self.file_dialog.exec_()
-      if self.fileName == "" : return
-      self.lineEditVal.setText(self.fileName)
-      self.LEvaleurPressed()
-     
-
-  def explore(self,widget):
-      for c in widget.children() :
-          if isinstance(c, QTreeView) :
-             c.clicked.connect (self.changeBoutonOpen)
-             self.monTreeView=c
-          try :
-             if c.text() == "&Open" : self.monBoutonOpen=c
-          except : pass
-          self.explore(c) 
-
-
-  def changeBoutonOpen(self):
-      self.monBoutonOpen.setEnabled(True)
-      self.monBoutonOpen.setText("Choose")
-      self.monBoutonOpen.clicked.connect(self.monBoutonOpenClicked)
-      index = self.monTreeView.currentIndex();
-      self.fileName2 = self.monTreeView.model().data(index)
-
-  def monBoutonOpenClicked(self):
-      try :
-        self.fileName=self.file_dialog.selectedFiles()[0]
-      except :
-         self.fileName=self.file_dialog.directory().absolutePath()
-      self.file_dialog.close()
-      self.file_dialog=None
-
-  def BRepertoirePressed(self):
-      directory = QFileDialog.getExistingDirectory(self.appliEficas,
-            directory = self.appliEficas.maConfiguration.savedir,
-            options = QFileDialog.ShowDirsOnly)
-
-      if not (directory == "") :
-         absdir = os.path.abspath(six.text_type(directory))
-         self.appliEficas.maConfiguration.savedir = os.path.dirname(absdir)
-         self.lineEditVal.setText(directory)
-         self.LEvaleurPressed()
-
-  def BSelectInFilePressed(self):
-      from monSelectImage import MonSelectImage
-      MonSelectImage(file=self.image,parent=self).show()
-
-          
-
-  def BSalomePressed(self):
+    def BFichierVisu(self):
+        fichier=self.lineEditVal.text()
+        if fichier == None or str(fichier)=="" : return
+        from .monViewTexte import ViewText
+        try :
+            if sys.platform[0:5]=="linux" :
+                #cmd="xdg-open "+ str(fichier)
+                #changer pour marcher dans l'EDC
+                #cmd="gedit "+ str(fichier)
+                from os.path import splitext
+                fileName,extension = splitext(fichier)
+                if extension in  self.parentQt.editor.appliEficas.maConfiguration.utilParExtensions:
+                    cmd=self.parentQt.editor.appliEficas.maConfiguration.utilParExtensions[extension] + " " + str(fichier)
+                else:  cmd="xdg-open "+ str(fichier)
+                os.system(cmd)
+            else                          :
+                os.startfile(str(fichier))
+        except:
+            try :
+                fp=open(fichier)
+                txt=fp.read()
+                nomFichier=QFileInfo(fichier).baseName()
+                maVue=ViewText(self,entete=nomFichier)
+                maVue.setText(txt)
+                maVue.show()
+                fp.close()
+            except:
+                QMessageBox.warning( None,
+                           tr("Visualisation Fichier "),
+                           tr("Impossibilite d'afficher le Fichier"),)
+
+    def BFichierPressed(self):
+        mctype = self.node.item.get_definition().type
+        if len(mctype) > 1:
+            filters = mctype[1]
+        elif hasattr(mctype[0], "filters"):
+            filters = mctype[0].filters
+        else:
+            filters = ""
+        if len(mctype) > 2 and mctype[2] == "Sauvegarde":
+            fichier = QFileDialog.getSaveFileName(self.appliEficas,
+                                tr('Use File'),
+                                self.appliEficas.maConfiguration.savedir,
+                                filters)
+        else:
+            #print(filters)
+            fichier = QFileDialog.getOpenFileName(self.appliEficas,
+                                tr('Ouvrir Fichier'),
+                                self.appliEficas.maConfiguration.savedir,
+                                filters)
+
+        fichier=fichier[0]
+        if not(fichier == ""):
+            ulfile = os.path.abspath(fichier)
+            self.appliEficas.maConfiguration.savedir=os.path.split(ulfile)[0]
+            self.lineEditVal.setText(fichier)
+            self.editor.afficheCommentaire(tr("Fichier selectionne"))
+            self.LEvaleurPressed()
+            if (QFileInfo(fichier).suffix() in listeSuffixe ):
+                self.image=fichier
+                if (not hasattr(self,"BSelectInFile")):
+                    try :
+                        self.BSelectInFile = QPushButton(self)
+                        self.BSelectInFile.setMinimumSize(QSize(140,40))
+                        self.BSelectInFile.setObjectName("BSelectInFile")
+                        self.gridLayout.addWidget(self.BSelectInFile,1,1,1,1)
+                        self.BSelectInFile.setText(tr("Selection"))
+                        self.BSelectInFile.clicked.connect(self.BSelectInFilePressed)
+                    except :
+                        pass
+                else :
+                    self.BSelectInFile.setVisible(1)
+
+            elif hasattr(self, "BSelectInFile"):
+                self.BSelectInFile.setVisible(0)
+
+    def BFichierOuRepertoirePressed(self):
+        self.fileName=""
+        self.file_dialog=QFileDialog()
+        self.file_dialog.setFileMode(QFileDialog.Directory);
+        self.file_dialog.setFileMode(QFileDialog.Directory|QFileDialog.ExistingFiles)
+        self.file_dialog.setOption(QFileDialog.DontUseNativeDialog,True);
+        self.file_dialog.setWindowTitle('Choose File or Directory')
+        self.explore(self.file_dialog)
+        self.file_dialog.exec_()
+        if self.fileName == "" : return
+        self.lineEditVal.setText(self.fileName)
+        self.LEvaleurPressed()
+
+
+    def explore(self,widget):
+        for c in widget.children() :
+            if isinstance(c, QTreeView) :
+                c.clicked.connect (self.changeBoutonOpen)
+                self.monTreeView=c
+            try :
+                if c.text() == "&Open" : self.monBoutonOpen=c
+            except : pass
+            self.explore(c)
+
+
+    def changeBoutonOpen(self):
+        self.monBoutonOpen.setEnabled(True)
+        self.monBoutonOpen.setText("Choose")
+        self.monBoutonOpen.clicked.connect(self.monBoutonOpenClicked)
+        index = self.monTreeView.currentIndex();
+        self.fileName2 = self.monTreeView.model().data(index)
+
+    def monBoutonOpenClicked(self):
+        try :
+            self.fileName=self.file_dialog.selectedFiles()[0]
+        except :
+            self.fileName=self.file_dialog.directory().absolutePath()
+        self.file_dialog.close()
+        self.file_dialog=None
+
+    def BRepertoirePressed(self):
+        directory = QFileDialog.getExistingDirectory(self.appliEficas,
+              directory = self.appliEficas.maConfiguration.savedir,
+              options = QFileDialog.ShowDirsOnly)
+
+        if not (directory == "") :
+            absdir = os.path.abspath(directory)
+            self.appliEficas.maConfiguration.savedir = os.path.dirname(absdir)
+            self.lineEditVal.setText(directory)
+            self.LEvaleurPressed()
+
+    def BSelectInFilePressed(self):
+        from monSelectImage import MonSelectImage
+        MonSelectImage(file=self.image,parent=self).show()
+
+
+
+    def BSalomePressed(self):
         self.editor.afficheCommentaire("")
         selection=[]
         commentaire=""
@@ -375,34 +374,34 @@ class ContientIcones(object):
         if 'grma' in repr(kwType): kwType = "GROUP_MA"
 
         if kwType in ("GROUP_NO","GROUP_MA"):
-           selection, commentaire = self.appliEficas.selectGroupFromSalome(kwType,editor=self.editor)
+            selection, commentaire = self.appliEficas.selectGroupFromSalome(kwType,editor=self.editor)
 
         mc = self.node.item.get_definition()
 
         if  (isinstance(mc.type,tuple) and len(mc.type) > 1 and "(*.med)" in mc.type[1] ):
-           selection, commentaire = self.appliEficas.selectMeshFile(editor=self.editor)
-           #print selection, commentaire
-           if commentaire != "" : 
-                  QMessageBox.warning( None,
-                  tr("Export Med vers Fichier "),
-                  tr("Impossibilite d exporter le Fichier"),)
-                  return
-           else :
-                  self.lineEditVal.setText(str(selection))
-                  return
+            selection, commentaire = self.appliEficas.selectMeshFile(editor=self.editor)
+            #print selection, commentaire
+            if commentaire != "" :
+                QMessageBox.warning( None,
+                tr("Export Med vers Fichier "),
+                tr("Impossibilite d exporter le Fichier"),)
+                return
+            else :
+                self.lineEditVal.setText(str(selection))
+                return
 
         from Accas import SalomeEntry
         if inspect.isclass(kwType) and issubclass(kwType, SalomeEntry):
-           selection, commentaire = self.appliEficas.selectEntryFromSalome(kwType,editor=self.editor)
+            selection, commentaire = self.appliEficas.selectEntryFromSalome(kwType,editor=self.editor)
 
         if commentaire !="" :
             self.editor.afficheInfos(tr(str(commentaire)))
         if selection == [] : return
 
         min,max=self.node.item.getMinMax()
-        if max > 1 : 
-           self.ajoutNValeur(selection)
-           return
+        if max > 1 :
+            self.ajoutNValeur(selection)
+            return
 
         monTexte=""
         for geomElt in selection: monTexte=geomElt+","
@@ -410,21 +409,20 @@ class ContientIcones(object):
         self.lineEditVal.setText(str(monTexte))
         self.LEvaleurPressed()
 
-  def BView2DPressed(self):
+    def BView2DPressed(self):
         try :
-          # cas d un Simp de base
-          valeur=self.lineEditVal.text()
+            # cas d un Simp de base
+            valeur=self.lineEditVal.text()
         except :
-          valeur=self.textSelected
+            valeur=self.textSelected
         valeur = str(valeur)
         if valeur == str("") : return
         if valeur :
-           ok, msgError = self.appliEficas.displayShape(valeur)
-           if not ok:
-              self.editor.afficheInfos(msgError,Qt.red)
+            ok, msgError = self.appliEficas.displayShape(valeur)
+            if not ok:
+                self.editor.afficheInfos(msgError,Qt.red)
 
-  def BParametresPressed(self):
+    def BParametresPressed(self):
         liste=self.node.item.getListeParamPossible()
         from monListeParamPanel import MonListeParamPanel
         MonListeParamPanel(liste=liste,parent=self).show()
-
index 52f32d59be929a43a94f30cc0f0b3b33aab09dc0..5cd8e4b4ddc1832f181ce4144c37e06e7190e1c1 100644 (file)
 
 from __future__ import absolute_import
 try :
-   from builtins import str
-   from builtins import range
-   from builtins import object
+    from builtins import str
+    from builtins import object
 except : pass
 
 import types,os
 import traceback
 
 
-from PyQt5.QtWidgets import QLineEdit, QLabel, QFileDialog
+from PyQt5.QtWidgets import QLineEdit, QLabel, QFileDialog, QMessageBox
 from PyQt5.QtCore    import QEvent, Qt, QTimer
 from PyQt5.QtGui     import QIcon, QPalette
 
@@ -41,7 +40,7 @@ from InterfaceQT4.monViewTexte   import ViewText
 # ---------------------- #
 class LECustom(QLineEdit):
 # ---------------------- #
- def __init__(self,parent,parentQt,i):
   def __init__(self,parent,parentQt,i):
         """
         Constructor
         """
@@ -53,285 +52,290 @@ class LECustom(QLineEdit):
         self.numDsLaListe=-1
         self.parentTuple=None
         self.valeur=None
-
- def focusInEvent(self,event):
-     #print ("dans focusInEvent de LECustom")
-     self.parentQt.aEuLeFocus=True
-     self.aEuLeFocus=True
-     self.parentQt.LineEditEnCours=self
-     self.parentQt.numLineEditEnCours=self.num
-     self.parentQt.textSelected=self.text()
-     self.setStyleSheet("border: 2px solid gray")
-     QLineEdit.focusInEvent(self,event)
-
- def focusOutEvent(self,event):
-     #print (self.aEuLeFocus)
-     self.setStyleSheet("border: 0px")
-     if self.dansUnTuple    : self.setStyleSheet("background:rgb(235,235,235); border: 0px;")
-     elif self.num % 2 == 1 : self.setStyleSheet("background:rgb(210,210,210)")
-     else                   : self.setStyleSheet("background:rgb(235,235,235)")
-     if self.aEuLeFocus:
-       self.aEuLeFocus=False
-       self.litValeur()
-       if self.dansUnTuple : self.parentTuple.getValeur()
-     QLineEdit.focusOutEvent(self,event)
-
-
- def litValeur(self):
-     #print ("dans litValeur de LECustom")
-     self.aEuLeFocus=False
-     val=str(self.text())
-     if str(val)=="" or val==None :
-        self.valeur=None
-        return
-     try :
-       valeur=eval(val,{})
-     except :
-       try :
-          d=self.parentQt.parentQt.objSimp.jdc.getContexteAvant(self.parentQt.objSimp. etape)
-          valeur=eval(val,d)
-       except :
-          valeur=val
-     self.valeur=valeur
-     #print ('self.valeur', self.valeur)
-
-
- def clean(self):
-     self.setText("")
-
- def getValeur(self):
-     #return self.text()
-     return self.valeur
-
- def setValeur(self,valeur):
-     self.setText(valeur)
+        self.aEuLeFocus=True
+
+    def focusInEvent(self,event):
+        #print ("dans focusInEvent de LECustom")
+        self.parentQt.aEuLeFocus=True
+        self.aEuLeFocus=True
+        self.parentQt.lineEditEnCours=self
+        self.parentQt.numLineEditEnCours=self.num
+        self.parentQt.textSelected=self.text()
+        self.setStyleSheet("border: 2px solid gray")
+        QLineEdit.focusInEvent(self,event)
+
+    def focusOutEvent(self,event):
+        #print ('focusOutEvent', self.aEuLeFocus)
+        self.setStyleSheet("border: 0px")
+        if self.dansUnTuple    : self.setStyleSheet("background:rgb(235,235,235); border: 0px;")
+        elif self.num % 2 == 1 : self.setStyleSheet("background:rgb(210,210,210)")
+        else                   : self.setStyleSheet("background:rgb(235,235,235)")
+        if self.aEuLeFocus:
+            self.aEuLeFocus=False
+            self.litValeur()
+            if self.dansUnTuple : self.parentTuple.getValeur()
+        QLineEdit.focusOutEvent(self,event)
+
+
+    def litValeur(self):
+        #print ("dans litValeur de LECustom")
+        self.aEuLeFocus=False
+        val=str(self.text())
+        if str(val)=="" or val==None :
+            self.valeur=None
+            return
+        try :
+            valeur=eval(val,{})
+        except :
+            try :
+                d=self.parentQt.parentQt.objSimp.jdc.getContexteAvant(self.parentQt.objSimp. etape)
+                valeur=eval(val,d)
+            except :
+                valeur=val
+        self.valeur=valeur
+        #print ('self.valeur', self.valeur)
+
+
+    def clean(self):
+        self.setText("")
+
+    def getValeur(self):
+        #return self.text()
+        self.litValeur()
+        return self.valeur
+
+    def setValeur(self,valeur):
+        self.setText(valeur)
 
 
 
 # --------------------------- #
 class LECustomTuple(LECustom):
 # --------------------------- #
- def __init__(self,parent):
-   #  index sera mis a jour par TupleCustom
-   parentQt=parent.parent().parent().parent()
-   LECustom. __init__(self,parent,parentQt,0)
-   #print (dir(self))
   def __init__(self,parent):
+    #  index sera mis a jour par TupleCustom
+        parentQt=parent.parent().parent().parent()
+        LECustom. __init__(self,parent,parentQt,0)
+        #print (dir(self))
 
 # ---------------------------- #
 class MonLabelListeClic(QLabel):
 # ---------------------------- #
-     def __init__(self,parent):
+    def __init__(self,parent):
         QLabel.__init__(self,parent)
         self.parent=parent
 
-     def event(self,event) :
-         if event.type() == QEvent.MouseButtonRelease:
+    def event(self,event) :
+        if event.type() == QEvent.MouseButtonRelease:
             self.texte=self.text()
             self.parent.traiteClicSurLabelListe(self.texte)
-         return QLabel.event(self,event)
-
-
-
+        return QLabel.event(self,event)
 
 # ------------- #
 class GereListe(object):
 # ------------- #
-
-   def __init__(self):
-       self.connecterSignaux()
-
-
-   def connecterSignaux(self):
-       if hasattr(self,'RBHaut'):
-          self.RBHaut.clicked.connect(self.hautPushed)
-          self.RBBas.clicked.connect(self.basPushed)
-          self.RBMoins.clicked.connect(self.moinsPushed)
-          self.RBPlus.clicked.connect(self.plusPushed)
-          self.RBVoisListe.clicked.connect(self.voisListePushed)
-       if hasattr(self,'PBAlpha'):
-          self.PBCata.clicked.connect(self.cataPushed)
-          self.PBAlpha.clicked.connect(self.alphaPushed)
-          self.PBFind.clicked.connect(self.findPushed)
-          self.LEFiltre.returnPressed.connect(self.LEFiltreReturnPressed)
-       if hasattr(self, 'PBValideFeuille'):
-          self.PBValideFeuille.clicked.connect(self.changeValeur)
-
-   def filtreListe(self):
-       l=[]
-       if self.filtre != "" :
-          for i in self.listeAAfficher :
-              if i.find(self.filtre) == 0 :l.append(i)
-          self.listeAAfficher=l
-       if self.alpha : self.listeAAfficher.sort()
-
-   def LEFiltreReturnPressed(self):
-       self.filtre= self.LEFiltre.text()
-       self.prepareListeResultatFiltre()
-
-   def findPushed(self):
-       self.filtre= self.LEFiltre.text()
-       self.prepareListeResultatFiltre()
-
-   def alphaPushed(self):
-       #print "alphaPushed" ,self.alpha
-       if self.alpha == 1 : return
-       self.alpha=1
-       self.prepareListeResultat()
-
-   def cataPushed(self):
-       if self.alpha == 0 : return
-       self.alpha=0
-       self.prepareListeResultat()
-
-   def hautPushed(self):
-       if self.numLineEditEnCours == 0 : return
-       if self.numLineEditEnCours == 1 : return
-       else : numEchange=self.numLineEditEnCours-1
-       self.echange(self.numLineEditEnCours,numEchange)
-       self.LineEditEnCours.setFocus(True)
-       self.scrollArea.ensureWidgetVisible(self.LineEditEnCours)
-
-
-   def basPushed(self):
-       if self.numLineEditEnCours == 0 : return
-       if self.numLineEditEnCours == self.indexDernierLabel : return
-       else : numEchange=self.numLineEditEnCours+1
-       self.echange(self.numLineEditEnCours,numEchange)
-       self.LineEditEnCours.setFocus(True)
-       self.scrollArea.ensureWidgetVisible(self.LineEditEnCours)
-
-   def echange(self,num1,num2):
-       # on donne le focus au a celui ou on a bouge
-       # par convention le 2
-       nomLineEdit=self.nomLine+str(num1)
-       #print (nomLineEdit)
-       courant=getattr(self,nomLineEdit)
-       valeurAGarder=courant.text()
-       nomLineEdit2=self.nomLine+str(num2)
-       #print (nomLineEdit2)
-       courant2=getattr(self,nomLineEdit2)
-       courant.setText(courant2.text())
-       courant2.setText(valeurAGarder)
-       self.changeValeur(changeDePlace=False)
-       self.numLineEditEnCours=num2
-       self.LineEditEnCours=courant2
-       self.LineEditEnCours.setFocus(True)
-
-   def moinsPushed(self):
-       # on supprime le dernier
-       if self.numLineEditEnCours == 0 : return
-       if self.indexDernierLabel == 0 : return
-       if self.numLineEditEnCours==self.indexDernierLabel :
-          nomLineEdit=self.nomLine+str(self.indexDernierLabel)
-          courant=getattr(self,nomLineEdit)
-          courant.clean()
-       else :
-         for i in range (self.numLineEditEnCours, self.indexDernierLabel):
-             aRemonter=i+1
-             nomLineEdit=self.nomLine+str(aRemonter)
-             courant=getattr(self,nomLineEdit)
-             valeurARemonter=courant.getValeur()
-             nomLineEdit=self.nomLine+str(i)
-             courant=getattr(self,nomLineEdit)
-             if valeurARemonter != None : courant.setValeur(valeurARemonter)
-             else : courant.clean()
-         nomLineEdit=self.nomLine+str(self.indexDernierLabel)
-         courant=getattr(self,nomLineEdit)
-         courant.clean()
-       self.changeValeur(changeDePlace=False,oblige=True)
-       self.setValide()
-
-   def plusPushed(self):
-       if self.indexDernierLabel == self.monSimpDef.max:
-          if len(self.listeValeursCourantes) < self.monSimpDef.max : self.chercheLigneVide()
-          else : self.editor.afficheInfos('nb max de valeurs : '+str(self.monSimpDef.max)+' atteint',Qt.red)
-          return
-       self.ajoutLineEdit()
-       self.descendLesLignes()
-       self.chercheLigneVide()
-       QTimer.singleShot(1, self.rendVisibleLigne)
-
-   def chercheLigneVide(self):
-       for i in range(self.indexDernierLabel) :
-          nomLineEdit=self.nomLine+str(i+1)
-          courant=getattr(self,nomLineEdit)
-          valeur=courant.getValeur()
-          if valeur=="" or valeur == None :
-             courant.setFocus(True)
-             self.estVisible=courant
-             return
-
-
-   def descendLesLignes(self):
-       if self.numLineEditEnCours==self.indexDernierLabel : return
-       nomLineEdit=self.nomLine+str(self.numLineEditEnCours+1)
-       courant=getattr(self,nomLineEdit)
-       valeurADescendre=courant.getValeur()
-       courant.clean()
-       for i in range (self.numLineEditEnCours+1, self.indexDernierLabel):
-             aDescendre=i+1
-             nomLineEdit=self.nomLine+str(aDescendre)
-             courant=getattr(self,nomLineEdit)
-             valeurAGarder=courant.getValeur()
-             courant.setValeur(valeurADescendre)
-             valeurADescendre=valeurAGarder
-       self.changeValeur(changeDePlace=False)
-       if hasattr (self, 'LineEditEnCours') :self.scrollArea.ensureWidgetVisible(self.LineEditEnCours)
-
-   def voisListePushed(self):
-       texteValeurs=""
-       for v in self.node.item.getListeValeurs():
-          texteValeurs+=str(v)+", "
-       entete="Valeurs pour "+self.nom
-       f=ViewText(self,self.editor,entete,texteValeurs[0:-2])
-       f.show()
-
-
-   def selectInFile(self):
-       init=str( self.editor.maConfiguration.savedir)
-       fn = QFileDialog.getOpenFileName(self.node.appliEficas,
-                                         tr("Fichier de donnees"),
-                                         init,
-                                         tr('Tous les  Fichiers (*)',))
-       fn=fn[0]
-       if fn == None : return
-       if fn == "" : return
-       ulfile = os.path.abspath(fn)
-       self.editor.maConfiguration.savedir=os.path.split(ulfile)[0]
-
-       from .monSelectVal import MonSelectVal
-       MonSelectVal(file=fn,parent=self).show()
-
-   def noircirResultatFiltre(self):
-      filtre=str(self.LEFiltre.text())
-      for cb in self.listeCbRouge:
-          palette = QPalette(Qt.red)
-          palette.setColor(QPalette.WindowText,Qt.black)
-          cb.setPalette(palette)
-          t=cb.text()
-          cb.setText(t)
-      self.LEFiltre.setText("")
-      self.listeCbRouge = []
+    def __init__(self):
+        self.connecterSignaux()
+
+    def connecterSignaux(self):
+        if hasattr(self,'RBHaut'):
+            self.RBHaut.clicked.connect(self.hautPushed)
+            self.RBBas.clicked.connect(self.basPushed)
+            self.RBMoins.clicked.connect(self.moinsPushed)
+            self.RBPlus.clicked.connect(self.plusPushed)
+            self.RBVoisListe.clicked.connect(self.voisListePushed)
+        if hasattr(self,'PBAlpha'):
+            self.PBCata.clicked.connect(self.cataPushed)
+            self.PBAlpha.clicked.connect(self.alphaPushed)
+            self.PBFind.clicked.connect(self.findPushed)
+            self.LEFiltre.returnPressed.connect(self.LEFiltreReturnPressed)
+        if hasattr(self, 'PBValideFeuille'):
+            self.PBValideFeuille.clicked.connect(self.changeValeur)
+
+    def filtreListe(self):
+        l=[]
+        if self.filtre != "" :
+            for i in self.listeAAfficher :
+                if i.find(self.filtre) == 0 :l.append(i)
+            self.listeAAfficher=l
+        if self.alpha : self.listeAAfficher.sort()
+
+    def LEFiltreReturnPressed(self):
+        self.filtre= self.LEFiltre.text()
+        self.prepareListeResultatFiltre()
+
+    def findPushed(self):
+        self.filtre= self.LEFiltre.text()
+        self.prepareListeResultatFiltre()
+
+    def alphaPushed(self):
+        #print "alphaPushed" ,self.alpha
+        if self.alpha == 1 : return
+        self.alpha=1
+        self.prepareListeResultat()
+
+    def cataPushed(self):
+        if self.alpha == 0 : return
+        self.alpha=0
+        self.prepareListeResultat()
+
+    def hautPushed(self):
+        #print ('hautPushed')
+        if self.numLineEditEnCours == 0 : return
+        if self.numLineEditEnCours == 1 : return
+        else : numEchange=self.numLineEditEnCours-1
+        self.echange(self.numLineEditEnCours,numEchange)
+        self.lineEditEnCours.setFocus(True)
+        self.scrollArea.ensureWidgetVisible(self.lineEditEnCours)
+
+
+    def basPushed(self):
+        #print ('hautPushed')
+        if self.numLineEditEnCours == 0 : return
+        if self.numLineEditEnCours == self.indexDernierLabel : return
+        else : numEchange=self.numLineEditEnCours+1
+        self.echange(self.numLineEditEnCours,numEchange)
+        self.lineEditEnCours.setFocus(True)
+        self.scrollArea.ensureWidgetVisible(self.lineEditEnCours)
+
+    def echange(self,num1,num2):
+        # on donne le focus au a celui ou on a bouge
+        # par convention le 2
+        #print ('echange')
+        nomLineEdit=self.nomLine+str(num1)
+        #print (nomLineEdit)
+        courant=getattr(self,nomLineEdit)
+        valeurAGarder=courant.text()
+        nomLineEdit2=self.nomLine+str(num2)
+        #print (nomLineEdit2)
+        courant2=getattr(self,nomLineEdit2)
+        courant.setText(courant2.text())
+        courant2.setText(valeurAGarder)
+        # pour monWidgetCreeUserAssd
+        self.num1=num1
+        self.num2=num2
+        self.changeValeur(changeDePlace=False)
+        self.numLineEditEnCours=num2
+        self.lineEditEnCours=courant2
+        self.lineEditEnCours.setFocus(True)
+
+    def moinsPushed(self):
+        # on supprime le dernier
+        #print ('moinsPushed')
+        if self.numLineEditEnCours == 0 : return
+        if self.indexDernierLabel == 0 : return
+        if self.numLineEditEnCours==self.indexDernierLabel :
+            nomLineEdit=self.nomLine+str(self.indexDernierLabel)
+            courant=getattr(self,nomLineEdit)
+            courant.clean()
+        else :
+            for i in range (self.numLineEditEnCours, self.indexDernierLabel):
+                aRemonter=i+1
+                nomLineEdit=self.nomLine+str(aRemonter)
+                courant=getattr(self,nomLineEdit)
+                valeurARemonter=courant.getValeur()
+                nomLineEdit=self.nomLine+str(i)
+                courant=getattr(self,nomLineEdit)
+                if valeurARemonter != None : courant.setValeur(valeurARemonter)
+                else : courant.clean()
+            nomLineEdit=self.nomLine+str(self.indexDernierLabel)
+            courant=getattr(self,nomLineEdit)
+            courant.clean()
+        self.changeValeur(changeDePlace=False,oblige=True)
+        self.setValide()
+
+    def plusPushed(self):
+        #print ('plusPushed gereliste')
+        if self.indexDernierLabel == self.monSimpDef.max:
+            if len(self.listeValeursCourantes) < self.monSimpDef.max : self.chercheLigneVide()
+            else : self.editor.afficheInfos('nb max de valeurs : '+str(self.monSimpDef.max)+' atteint',Qt.red)
+            return
+        self.ajoutLineEdit()
+        self.descendLesLignes()
+        self.chercheLigneVide()
+        QTimer.singleShot(1, self.rendVisibleLigne)
+
+    def chercheLigneVide(self):
+        #print ('chercheLigneVide')
+        for i in range(self.indexDernierLabel) :
+            nomLineEdit=self.nomLine+str(i+1)
+            courant=getattr(self,nomLineEdit)
+            valeur=courant.getValeur()
+            if valeur=="" or valeur == None :
+                courant.setFocus(True)
+                self.estVisible=courant
+
+    def descendLesLignes(self):
+        #print ('descendLesLignes')
+        if self.numLineEditEnCours==self.indexDernierLabel : return
+        nomLineEdit=self.nomLine+str(self.numLineEditEnCours+1)
+        courant=getattr(self,nomLineEdit)
+        valeurADescendre=courant.getValeur()
+        courant.clean()
+        for i in range (self.numLineEditEnCours+1, self.indexDernierLabel):
+            aDescendre=i+1
+            nomLineEdit=self.nomLine+str(aDescendre)
+            courant=getattr(self,nomLineEdit)
+            valeurAGarder=courant.getValeur()
+            courant.setValeur(valeurADescendre)
+            valeurADescendre=valeurAGarder
+        self.changeValeur(changeDePlace=False)
+        if hasattr (self, 'lineEditEnCours') :self.scrollArea.ensureWidgetVisible(self.lineEditEnCours)
+
+    def voisListePushed(self):
+        texteValeurs=""
+        for v in self.node.item.getListeValeurs():
+            texteValeurs+=str(v)+", "
+        entete="Valeurs pour "+self.nom
+        f=ViewText(self,self.editor,entete,texteValeurs[0:-2])
+        f.show()
+
+
+    def selectInFile(self):
+        init=str( self.editor.maConfiguration.savedir)
+        fn = QFileDialog.getOpenFileName(self.node.appliEficas,
+                                          tr("Fichier de donnees"),
+                                          init,
+                                          tr('Tous les  Fichiers (*)',))
+        fn=fn[0]
+        if fn == None : return
+        if fn == "" : return
+        ulfile = os.path.abspath(fn)
+        self.editor.maConfiguration.savedir=os.path.split(ulfile)[0]
+
+        from .monSelectVal import MonSelectVal
+        MonSelectVal(file=fn,parent=self).show()
+
+    def noircirResultatFiltre(self):
+        filtre=str(self.LEFiltre.text())
+        for cb in self.listeCbRouge:
+            palette = QPalette(Qt.red)
+            palette.setColor(QPalette.WindowText,Qt.black)
+            cb.setPalette(palette)
+            t=cb.text()
+            cb.setText(t)
+        self.LEFiltre.setText("")
+        self.listeCbRouge = []
 
 
 # ----------- #
 class GerePlie(object):
 # ----------- #
 
-   def gereIconePlier(self):
-      if not(hasattr(self,'BFermeListe')) : return
-      self.editor.listeDesListesOuvertes.add(self.node.item)
-      repIcon=self.node.editor.appliEficas.repIcon
-      if not (self.editor.afficheListesPliees):
-         fichier=os.path.join(repIcon, 'empty.png')
-         icon = QIcon(fichier)
-         self.BFermeListe.setIcon(icon)
-         return
-      fichier=os.path.join(repIcon, 'minusnode.png')
-      icon = QIcon(fichier)
-      self.BFermeListe.setIcon(icon)
-      self.BFermeListe.clicked.connect( self.selectWidgetPlie)
-
-   def selectWidgetPlie(self):
-      self.editor.listeDesListesOuvertes.remove(self.node.item)
-      self.reaffichePourDeplier()
+    def gereIconePlier(self):
+        if not(hasattr(self,'BFermeListe')) : return
+        self.editor.listeDesListesOuvertes.add(self.node.item)
+        repIcon=self.node.editor.appliEficas.repIcon
+        if not (self.editor.afficheListesPliees):
+            fichier=os.path.join(repIcon, 'empty.png')
+            icon = QIcon(fichier)
+            self.BFermeListe.setIcon(icon)
+            return
+        fichier=os.path.join(repIcon, 'minusnode.png')
+        icon = QIcon(fichier)
+        self.BFermeListe.setIcon(icon)
+        self.BFermeListe.clicked.connect( self.selectWidgetPlie)
+
+    def selectWidgetPlie(self):
+        self.editor.listeDesListesOuvertes.remove(self.node.item)
+        self.reaffichePourDeplier()
index e86b2dde192f3ddaa9f6ba4992bcc9707897da0f..11b3431baf3a354f273e93e7ed9c9f115c0be88e 100644 (file)
@@ -21,9 +21,9 @@
 
 from __future__ import absolute_import
 try :
-   from builtins import str
-   from builtins import range
-   from builtins import object
+    from builtins import str
+    from builtins import range
+    from builtins import object
 except : pass
 
 import types,os
@@ -43,12 +43,12 @@ from InterfaceQT4.monViewTexte   import ViewText
 # ---------------------- #
 class LECustom(QLineEdit):
 # ---------------------- #
- def __init__(self,parent,parentQt,i):
   def __init__(self,parent,parentQt,i):
         """
         Constructor
         """
         QLineEdit.__init__(self,parent)
-        
+
         self.valeur=None
         self.aEuLeFocus=False
         self.parentQt=parentQt
@@ -58,82 +58,82 @@ class LECustom(QLineEdit):
         self.numDsLaListe=-1
         self.returnPressed.connect(self.litValeur)
 
- def focusInEvent(self,event):
-     #print ("dans focusInEvent de LECustom",self.parentQt)
-     print ("dans focusInEvent de LECustom",self.num,self.numDsLaListe)
-     self.parentQt.aEuLeFocus=True
-     self.aEuLeFocus=True
-     self.parentQt.LineEditEnCours=self
-     self.parentQt.numLineEditEnCours=self.num
-     self.parentQt.textSelected=self.text()
-     self.setStyleSheet("border: 2px solid gray")
-     QLineEdit.focusInEvent(self,event)
-
- def focusOutEvent(self,event):
-     #print ("dans focusOutEvent de LECustom",self.num,self.numDsLaListe, self.aEuLeFocus)
-     self.setStyleSheet("border: 0px")
-     if self.dansUnTuple    : self.setStyleSheet("background:rgb(235,235,235); border: 0px;")
-     elif self.num % 2 == 1 : self.setStyleSheet("background:rgb(210,210,210)")
-     else                   : self.setStyleSheet("background:rgb(235,235,235)")
-     
-     if self.aEuLeFocus:
-       self.aEuLeFocus=False
-       self.litValeur()
-     QLineEdit.focusOutEvent(self,event)
-
- def litValeur(self):
-     self.aEuLeFocus=False
-     val=str(self.text())
-     if str(val)=="" or val==None : 
-        self.valeur=None 
-        return
-     try :
-       valeur=eval(val,{})
-     except :
-       try :
-          d=self.parentQt.parentQt.objSimp.jdc.getContexteAvant(self.parentQt.objSimp. etape)
-          valeur=eval(val,d)
-       except :
-          valeur=val
-
-     self.valeur=valeur
-
- def clean(self):
-     self.setText("")
-
- def getValeur(self):
-     return self.text()
-
- def setValeur(self,valeur):
-     self.setText(valeur)
-     self.valeur=valeur
-
- #def leaveEvent(self,event):
- #   ne sert a rien. quand on modifie la valeur on prend le focus
-
-    
   def focusInEvent(self,event):
+        #print ("dans focusInEvent de LECustom",self.parentQt)
+        print ("dans focusInEvent de LECustom",self.num,self.numDsLaListe)
+        self.parentQt.aEuLeFocus=True
+        self.aEuLeFocus=True
+        self.parentQt.LineEditEnCours=self
+        self.parentQt.numLineEditEnCours=self.num
+        self.parentQt.textSelected=self.text()
+        self.setStyleSheet("border: 2px solid gray")
+        QLineEdit.focusInEvent(self,event)
+
   def focusOutEvent(self,event):
+        #print ("dans focusOutEvent de LECustom",self.num,self.numDsLaListe, self.aEuLeFocus)
+        self.setStyleSheet("border: 0px")
+        if self.dansUnTuple    : self.setStyleSheet("background:rgb(235,235,235); border: 0px;")
+        elif self.num % 2 == 1 : self.setStyleSheet("background:rgb(210,210,210)")
+        else                   : self.setStyleSheet("background:rgb(235,235,235)")
+
+        if self.aEuLeFocus:
+            self.aEuLeFocus=False
+            self.litValeur()
+        QLineEdit.focusOutEvent(self,event)
+
   def litValeur(self):
+        self.aEuLeFocus=False
+        val=str(self.text())
+        if str(val)=="" or val==None :
+            self.valeur=None
+            return
+        try :
+            valeur=eval(val,{})
+        except :
+            try :
+                d=self.parentQt.parentQt.objSimp.jdc.getContexteAvant(self.parentQt.objSimp. etape)
+                valeur=eval(val,d)
+            except :
+                valeur=val
+
+        self.valeur=valeur
+
   def clean(self):
+        self.setText("")
+
   def getValeur(self):
+        return self.text()
+
   def setValeur(self,valeur):
+        self.setText(valeur)
+        self.valeur=valeur
+
   #def leaveEvent(self,event):
   #   ne sert a rien. quand on modifie la valeur on prend le focus
+
+
 
 # --------------------------- #
 class LECustomTuple(LECustom):
 # --------------------------- #
- def __init__(self,parent):
-   #  index sera mis a jour par TupleCustom
-   parentQt=parent.parent().parent().parent()
-   LECustom. __init__(self,parent,parentQt,0)
-   #print (dir(self))
   def __init__(self,parent):
+    #  index sera mis a jour par TupleCustom
+        parentQt=parent.parent().parent().parent()
+        LECustom. __init__(self,parent,parentQt,0)
+        #print (dir(self))
 
 # ---------------------------- #
 class MonLabelListeClic(QLabel):
 # ---------------------------- #
-     def __init__(self,parent):
+    def __init__(self,parent):
         QLabel.__init__(self,parent)
         self.parent=parent
 
-     def event(self,event) :
-         if event.type() == QEvent.MouseButtonRelease:
+    def event(self,event) :
+        if event.type() == QEvent.MouseButtonRelease:
             self.texte=self.text()
             self.parent.traiteClicSurLabelListe(self.texte)
-         return QLabel.event(self,event)
+        return QLabel.event(self,event)
 
 
 
@@ -142,208 +142,205 @@ class MonLabelListeClic(QLabel):
 class GereListe(object):
 # ------------- #
 
-   def __init__(self):
-       self.aEuLeFocus=False
-       self.connecterSignaux()
-
-
-   def leaveEvent(self,event):
-       if self.aEuLeFocus : 
-          print ('appel de changeValeur')
-          self.changeValeur()
-          self.aEuLeFocus=False
-       QWidget.leaveEvent(self,event)
-
-   def connecterSignaux(self):
-       if hasattr(self,'RBHaut'):
-          self.RBHaut.clicked.connect(self.hautPushed)
-          self.RBBas.clicked.connect(self.basPushed)
-          self.RBMoins.clicked.connect(self.moinsPushed)
-          self.RBPlus.clicked.connect(self.plusPushed)
-          self.RBVoisListe.clicked.connect(self.voisListePushed)
-       if hasattr(self,'PBAlpha'):
-          self.PBCata.clicked.connect(self.cataPushed)
-          self.PBAlpha.clicked.connect(self.alphaPushed)
-          self.PBFind.clicked.connect(self.findPushed)
-          self.LEFiltre.returnPressed.connect(self.LEFiltreReturnPressed)
-
-   def filtreListe(self):
-       l=[]
-       if self.filtre != "" :
-          for i in self.listeAAfficher :
-              if i.find(self.filtre) == 0 :l.append(i)
-          self.listeAAfficher=l
-       if self.alpha : self.listeAAfficher.sort()
-      
-   def LEFiltreReturnPressed(self):
-       self.filtre= self.LEFiltre.text()
-       self.prepareListeResultatFiltre()
-
-   def findPushed(self):
-       self.filtre= self.LEFiltre.text()
-       self.prepareListeResultatFiltre()
-
-   def alphaPushed(self):
-       #print "alphaPushed" ,self.alpha
-       if self.alpha == 1 : return
-       self.alpha=1
-       self.prepareListeResultat()
-
-   def cataPushed(self):
-       if self.alpha == 0 : return
-       self.alpha=0
-       self.prepareListeResultat()
-
-   def hautPushed(self):
-       if self.numLineEditEnCours == 1 : return
-       else : numEchange=self.numLineEditEnCours-1
-       self.echange(self.numLineEditEnCours,numEchange)
-       self.LineEditEnCours.setFocus(True)
-       self.scrollArea.ensureWidgetVisible(self.LineEditEnCours)
-
-
-   def basPushed(self):
-       if self.numLineEditEnCours == self.indexDernierLabel : return
-       else : numEchange=self.numLineEditEnCours+1
-       self.echange(self.numLineEditEnCours,numEchange)
-       self.LineEditEnCours.setFocus(True)
-       self.scrollArea.ensureWidgetVisible(self.LineEditEnCours)
-
-   def echange(self,num1,num2):
-       # on donne le focus au a celui ou on a bouge
-       # par convention le 2
-       nomLineEdit=self.nomLine+str(num1)
-       #print nomLineEdit
-       courant=getattr(self,nomLineEdit)
-       valeurAGarder=courant.text()
-       nomLineEdit2=self.nomLine+str(num2)
-       #print nomLineEdit2
-       courant2=getattr(self,nomLineEdit2)
-       courant.setText(courant2.text())
-       courant2.setText(valeurAGarder)
-       self.changeValeur(changeDePlace=False)
-       self.numLineEditEnCours=num2
-       self.LineEditEnCours=courant2
-       self.LineEditEnCours.setFocus(True)
-
-   def moinsPushed(self):
-       # on supprime le dernier
-       if self.numLineEditEnCours == 0 : return
-       if self.indexDernierLabel == 0 : return
-       if self.numLineEditEnCours==self.indexDernierLabel : 
-          nomLineEdit=self.nomLine+str(self.indexDernierLabel)
-          courant=getattr(self,nomLineEdit)
-          courant.clean()
-       else :
-         for i in range (self.numLineEditEnCours, self.indexDernierLabel):
-             aRemonter=i+1
-             nomLineEdit=self.nomLine+str(aRemonter)
-             courant=getattr(self,nomLineEdit)
-             valeurARemonter=courant.getValeur()
-             nomLineEdit=self.nomLine+str(i)
-             courant=getattr(self,nomLineEdit)
-             if valeurARemonter != None : courant.setValeur(valeurARemonter)
-             else : courant.clean()
-         nomLineEdit=self.nomLine+str(self.indexDernierLabel)
-         courant=getattr(self,nomLineEdit)
-         courant.clean()
-       self.changeValeur(changeDePlace=False,oblige=True)
-       self.setValide()
-
-   def plusPushed(self):
-       if self.indexDernierLabel == self.monSimpDef.max:
-          if len(self.listeValeursCourantes) < self.monSimpDef.max : self.chercheLigneVide()
-          else : self.editor.afficheInfos('nb max de valeurs : '+str(self.monSimpDef.max)+' atteint',Qt.red)
-          return
-       self.ajoutLineEdit()
-       self.descendLesLignes()
-       self.chercheLigneVide()
-       QTimer.singleShot(1, self.rendVisibleLigne)
-
-   def chercheLigneVide(self):
-       for i in range(self.indexDernierLabel) :
-          nomLineEdit=self.nomLine+str(i+1)
-          courant=getattr(self,nomLineEdit)
-          valeur=courant.getValeur()
-          if valeur=="" : 
-             courant.setFocus(True)
-             self.estVisible=courant
-             return
-
-
-   def descendLesLignes(self):
-       if self.numLineEditEnCours==self.indexDernierLabel : return
-       nomLineEdit=self.nomLine+str(self.numLineEditEnCours+1)
-       courant=getattr(self,nomLineEdit)
-       valeurADescendre=courant.getValeur()
-       courant.clean()
-       for i in range (self.numLineEditEnCours+1, self.indexDernierLabel):
-             aDescendre=i+1
-             nomLineEdit=self.nomLine+str(aDescendre)
-             courant=getattr(self,nomLineEdit)
-             valeurAGarder=courant.getValeur()
-             courant.setValeur(valeurADescendre)
-             valeurADescendre=valeurAGarder
-       self.changeValeur(changeDePlace=False)
-       if hasattr (self, 'LineEditEnCours') :self.scrollArea.ensureWidgetVisible(self.LineEditEnCours)
-
-   def voisListePushed(self):
-       texteValeurs=""
-       for v in self.node.item.getListeValeurs():
-          texteValeurs+=str(v)+", "
-       entete="Valeurs pour "+self.nom
-       f=ViewText(self,self.editor,entete,texteValeurs[0:-2])
-       f.show()
-
-
-   def selectInFile(self):
-       init=str( self.editor.maConfiguration.savedir)
-       fn = QFileDialog.getOpenFileName(self.node.appliEficas,
-                                         tr("Fichier de donnees"),
-                                         init,
-                                         tr('Tous les  Fichiers (*)',))
-       fn=fn[0]
-       if fn == None : return
-       if fn == "" : return
-       ulfile = os.path.abspath(six.text_type(fn))
-       self.editor.maConfiguration.savedir=os.path.split(ulfile)[0]
-
-       from .monSelectVal import MonSelectVal
-       MonSelectVal(file=fn,parent=self).show()
-
-   def noircirResultatFiltre(self):
-      filtre=str(self.LEFiltre.text())
-      for cb in self.listeCbRouge:
-          palette = QPalette(Qt.red)
-         palette.setColor(QPalette.WindowText,Qt.black)
-         cb.setPalette(palette)
-          t=cb.text()
-          cb.setText(t)
-      self.LEFiltre.setText("")
-      self.listeCbRouge = []
-
-  
+    def __init__(self):
+        self.aEuLeFocus=False
+        self.connecterSignaux()
+
+
+    def leaveEvent(self,event):
+        if self.aEuLeFocus :
+            print ('appel de changeValeur')
+            self.changeValeur()
+            self.aEuLeFocus=False
+        QWidget.leaveEvent(self,event)
+
+    def connecterSignaux(self):
+        if hasattr(self,'RBHaut'):
+            self.RBHaut.clicked.connect(self.hautPushed)
+            self.RBBas.clicked.connect(self.basPushed)
+            self.RBMoins.clicked.connect(self.moinsPushed)
+            self.RBPlus.clicked.connect(self.plusPushed)
+            self.RBVoisListe.clicked.connect(self.voisListePushed)
+        if hasattr(self,'PBAlpha'):
+            self.PBCata.clicked.connect(self.cataPushed)
+            self.PBAlpha.clicked.connect(self.alphaPushed)
+            self.PBFind.clicked.connect(self.findPushed)
+            self.LEFiltre.returnPressed.connect(self.LEFiltreReturnPressed)
+
+    def filtreListe(self):
+        l=[]
+        if self.filtre != "" :
+            for i in self.listeAAfficher :
+                if i.find(self.filtre) == 0 :l.append(i)
+            self.listeAAfficher=l
+        if self.alpha : self.listeAAfficher.sort()
+
+    def LEFiltreReturnPressed(self):
+        self.filtre= self.LEFiltre.text()
+        self.prepareListeResultatFiltre()
+
+    def findPushed(self):
+        self.filtre= self.LEFiltre.text()
+        self.prepareListeResultatFiltre()
+
+    def alphaPushed(self):
+        #print "alphaPushed" ,self.alpha
+        if self.alpha == 1 : return
+        self.alpha=1
+        self.prepareListeResultat()
+
+    def cataPushed(self):
+        if self.alpha == 0 : return
+        self.alpha=0
+        self.prepareListeResultat()
+
+    def hautPushed(self):
+        if self.numLineEditEnCours == 1 : return
+        else : numEchange=self.numLineEditEnCours-1
+        self.echange(self.numLineEditEnCours,numEchange)
+        self.LineEditEnCours.setFocus(True)
+        self.scrollArea.ensureWidgetVisible(self.LineEditEnCours)
+
+
+    def basPushed(self):
+        if self.numLineEditEnCours == self.indexDernierLabel : return
+        else : numEchange=self.numLineEditEnCours+1
+        self.echange(self.numLineEditEnCours,numEchange)
+        self.LineEditEnCours.setFocus(True)
+        self.scrollArea.ensureWidgetVisible(self.LineEditEnCours)
+
+    def echange(self,num1,num2):
+        # on donne le focus au a celui ou on a bouge
+        # par convention le 2
+        nomLineEdit=self.nomLine+str(num1)
+        #print nomLineEdit
+        courant=getattr(self,nomLineEdit)
+        valeurAGarder=courant.text()
+        nomLineEdit2=self.nomLine+str(num2)
+        #print nomLineEdit2
+        courant2=getattr(self,nomLineEdit2)
+        courant.setText(courant2.text())
+        courant2.setText(valeurAGarder)
+        self.changeValeur(changeDePlace=False)
+        self.numLineEditEnCours=num2
+        self.LineEditEnCours=courant2
+        self.LineEditEnCours.setFocus(True)
+
+    def moinsPushed(self):
+        # on supprime le dernier
+        if self.numLineEditEnCours == 0 : return
+        if self.indexDernierLabel == 0 : return
+        if self.numLineEditEnCours==self.indexDernierLabel :
+            nomLineEdit=self.nomLine+str(self.indexDernierLabel)
+            courant=getattr(self,nomLineEdit)
+            courant.clean()
+        else :
+            for i in range (self.numLineEditEnCours, self.indexDernierLabel):
+                aRemonter=i+1
+                nomLineEdit=self.nomLine+str(aRemonter)
+                courant=getattr(self,nomLineEdit)
+                valeurARemonter=courant.getValeur()
+                nomLineEdit=self.nomLine+str(i)
+                courant=getattr(self,nomLineEdit)
+                if valeurARemonter != None : courant.setValeur(valeurARemonter)
+                else : courant.clean()
+            nomLineEdit=self.nomLine+str(self.indexDernierLabel)
+            courant=getattr(self,nomLineEdit)
+            courant.clean()
+        self.changeValeur(changeDePlace=False,oblige=True)
+        self.setValide()
+
+    def plusPushed(self):
+        if self.indexDernierLabel == self.monSimpDef.max:
+            if len(self.listeValeursCourantes) < self.monSimpDef.max : self.chercheLigneVide()
+            else : self.editor.afficheInfos('nb max de valeurs : '+str(self.monSimpDef.max)+' atteint',Qt.red)
+            return
+        self.ajoutLineEdit()
+        self.descendLesLignes()
+        self.chercheLigneVide()
+        QTimer.singleShot(1, self.rendVisibleLigne)
+
+    def chercheLigneVide(self):
+        for i in range(self.indexDernierLabel) :
+            nomLineEdit=self.nomLine+str(i+1)
+            courant=getattr(self,nomLineEdit)
+            valeur=courant.getValeur()
+            if valeur=="" :
+                courant.setFocus(True)
+                self.estVisible=courant
+                return
+
+
+    def descendLesLignes(self):
+        if self.numLineEditEnCours==self.indexDernierLabel : return
+        nomLineEdit=self.nomLine+str(self.numLineEditEnCours+1)
+        courant=getattr(self,nomLineEdit)
+        valeurADescendre=courant.getValeur()
+        courant.clean()
+        for i in range (self.numLineEditEnCours+1, self.indexDernierLabel):
+            aDescendre=i+1
+            nomLineEdit=self.nomLine+str(aDescendre)
+            courant=getattr(self,nomLineEdit)
+            valeurAGarder=courant.getValeur()
+            courant.setValeur(valeurADescendre)
+            valeurADescendre=valeurAGarder
+        self.changeValeur(changeDePlace=False)
+        if hasattr (self, 'LineEditEnCours') :self.scrollArea.ensureWidgetVisible(self.LineEditEnCours)
+
+    def voisListePushed(self):
+        texteValeurs=""
+        for v in self.node.item.getListeValeurs():
+            texteValeurs+=str(v)+", "
+        entete="Valeurs pour "+self.nom
+        f=ViewText(self,self.editor,entete,texteValeurs[0:-2])
+        f.show()
+
+
+    def selectInFile(self):
+        init=str( self.editor.maConfiguration.savedir)
+        fn = QFileDialog.getOpenFileName(self.node.appliEficas,
+                                          tr("Fichier de donnees"),
+                                          init,
+                                          tr('Tous les  Fichiers (*)',))
+        fn=fn[0]
+        if fn == None : return
+        if fn == "" : return
+        ulfile = os.path.abspath(six.text_type(fn))
+        self.editor.maConfiguration.savedir=os.path.split(ulfile)[0]
+
+        from .monSelectVal import MonSelectVal
+        MonSelectVal(file=fn,parent=self).show()
+
+    def noircirResultatFiltre(self):
+        filtre=str(self.LEFiltre.text())
+        for cb in self.listeCbRouge:
+            palette = QPalette(Qt.red)
+            palette.setColor(QPalette.WindowText,Qt.black)
+            cb.setPalette(palette)
+            t=cb.text()
+            cb.setText(t)
+        self.LEFiltre.setText("")
+        self.listeCbRouge = []
+
+
 # ----------- #
 class GerePlie(object):
 # ----------- #
 
-   def gereIconePlier(self):
-      if not(hasattr(self,'BFermeListe')) : return
-      self.editor.listeDesListesOuvertes.add(self.node.item)
-      repIcon=self.node.editor.appliEficas.repIcon
-      if not (self.editor.afficheListesPliees):
-         fichier=os.path.join(repIcon, 'empty.png')
-         icon = QIcon(fichier)
-         self.BFermeListe.setIcon(icon)
-         return
-      fichier=os.path.join(repIcon, 'minusnode.png')
-      icon = QIcon(fichier)
-      self.BFermeListe.setIcon(icon)
-      self.BFermeListe.clicked.connect( self.selectWidgetPlie)
-
-   def selectWidgetPlie(self):
-      self.editor.listeDesListesOuvertes.remove(self.node.item)
-      self.reaffichePourDeplier()
-
-        
-     
+    def gereIconePlier(self):
+        if not(hasattr(self,'BFermeListe')) : return
+        self.editor.listeDesListesOuvertes.add(self.node.item)
+        repIcon=self.node.editor.appliEficas.repIcon
+        if not (self.editor.afficheListesPliees):
+            fichier=os.path.join(repIcon, 'empty.png')
+            icon = QIcon(fichier)
+            self.BFermeListe.setIcon(icon)
+            return
+        fichier=os.path.join(repIcon, 'minusnode.png')
+        icon = QIcon(fichier)
+        self.BFermeListe.setIcon(icon)
+        self.BFermeListe.clicked.connect( self.selectWidgetPlie)
+
+    def selectWidgetPlie(self):
+        self.editor.listeDesListesOuvertes.remove(self.node.item)
+        self.reaffichePourDeplier()
index fb5f802b7a7b806999c9d36dcc5e60df5a70eb3f..49aef48cb56098def4402fb60d66a13c50efcc33 100644 (file)
@@ -20,7 +20,7 @@
 
 from __future__ import absolute_import
 try :
-   from builtins import object
+    from builtins import object
 except : pass
 
 from PyQt5.QtCore import Qt
@@ -29,45 +29,42 @@ from Extensions.i18n import tr
 
 class GereRegles(object) :
 
-   def appellebuildLBRegles(self):
-       from .browser import JDCTree
-       if isinstance(self,JDCTree):
-          self.appellebuildLBReglesForJdC()
-       else :
-          self.appellebuildLBReglesForCommand()
-       self.buildLBRegles(self.listeRegles,self.listeNomsEtapes)
-       self.afficheRegles()
-       
-   def appellebuildLBReglesForCommand(self):
-       self.listeRegles     = self.item.getRegles()
-       self.listeNomsEtapes = self.item.getMcPresents()
+    def appellebuildLBRegles(self):
+        from .browser import JDCTree
+        if isinstance(self,JDCTree):
+            self.appellebuildLBReglesForJdC()
+        else :
+            self.appellebuildLBReglesForCommand()
+        self.buildLBRegles(self.listeRegles,self.listeNomsEtapes)
+        self.afficheRegles()
 
-   def appellebuildLBReglesForJdC(self):
-       self.listeRegles=self.item.getRegles()
-       self.listeNomsEtapes = self.item.getLNomsEtapes()
+    def appellebuildLBReglesForCommand(self):
+        self.listeRegles     = self.item.getRegles()
+        self.listeNomsEtapes = self.item.getMcPresents()
 
+    def appellebuildLBReglesForJdC(self):
+        self.listeRegles=self.item.getRegles()
+        self.listeNomsEtapes = self.item.getLNomsEtapes()
 
-   def buildLBRegles(self,listeRegles,listeNomsEtapes):
-       self.liste=[]
-       if len(listeRegles) > 0:
-          for regle in listeRegles :
-             texteRegle=regle.getText()
-             texteMauvais,test = regle.verif(listeNomsEtapes)
-             for ligne in texteRegle.split("\n") :
-                if ligne == "" : continue
-                if ligne[0]=="\t" :  ligne="     "+ligne[1:]
-                if test :
-                   self.liste.append((ligne,Qt.black))
-                else :
-                   self.liste.append((ligne,Qt.red))
-             self.liste.append(("",Qt.red))
-       if self.liste==[] : self.liste.append(("pas de regle de construction pour ce jeu de commandes",Qt.black))
-               
 
-   def afficheRegles(self):
-      titre="Regles pour "+self.item.nom
-      w = ViewRegles( self.editor,self.liste,titre  )
-      w.exec_()
-       
+    def buildLBRegles(self,listeRegles,listeNomsEtapes):
+        self.liste=[]
+        if len(listeRegles) > 0:
+            for regle in listeRegles :
+                texteRegle=regle.getText()
+                texteMauvais,test = regle.verif(listeNomsEtapes)
+                for ligne in texteRegle.split("\n") :
+                    if ligne == "" : continue
+                    if ligne[0]=="\t" :  ligne="     "+ligne[1:]
+                    if test :
+                        self.liste.append((ligne,Qt.black))
+                    else :
+                        self.liste.append((ligne,Qt.red))
+                self.liste.append(("",Qt.red))
+        if self.liste==[] : self.liste.append(("pas de regle de construction pour ce jeu de commandes",Qt.black))
 
 
+    def afficheRegles(self):
+        titre="Regles pour "+self.item.nom
+        w = ViewRegles( self.editor,self.liste,titre  )
+        w.exec_()
index 0e9673d4dc57f7597a0ea9d72d0c628bec36377d..29aa8b4e84055950a306d4226c351a4c646b8193 100644 (file)
@@ -18,7 +18,7 @@
 #
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 from PyQt5.QtWidgets import  QFileDialog, QApplication
@@ -28,20 +28,20 @@ from Extensions.i18n import tr
 
 
 def traduction(directPath,editor,version):
-    if version == "V9V10" : 
-       from Traducteur import traduitV9V10 
-       suffixe="v10.comm"
+    if version == "V9V10" :
+        from Traducteur import traduitV9V10
+        suffixe="v10.comm"
     if version == "V10V11" :
-       from Traducteur import traduitV10V11
-       suffixe="v11.comm"
+        from Traducteur import traduitV10V11
+        suffixe="v11.comm"
     if version == "V11V12" :
-       from Traducteur import traduitV11V12
-       suffixe="v12.comm"
+        from Traducteur import traduitV11V12
+        suffixe="v12.comm"
 
-    fn = QFileDialog.getOpenFileName( 
-                       editor.appliEficas,
+    fn = QFileDialog.getOpenFileName(
+                        editor.appliEficas,
                         tr('Traduire Fichier'),
-                       directPath ,
+                        directPath ,
                         tr('Fichiers JDC  (*.comm);;''Tous les Fichiers (*)'))
 
 
@@ -70,13 +70,13 @@ def traduction(directPath,editor,version):
         texte= f.read()
         f.close()
     else :
-       texte = Entete  
-       commande="diff "+FichieraTraduire+" "+FichierTraduit+" >/dev/null"
-       try :
-         if os.system(commande) == 0 :
-            texte = texte + tr("Pas de difference entre le fichier origine et le fichier traduit")
-       except :
-         pass
+        texte = Entete
+        commande="diff "+FichieraTraduire+" "+FichierTraduit+" >/dev/null"
+        try :
+            if os.system(commande) == 0 :
+                texte = texte + tr("Pas de difference entre le fichier origine et le fichier traduit")
+        except :
+            pass
 
     from .monVisu import DVisu
     titre = "conversion de "+ FichieraTraduire
@@ -84,4 +84,3 @@ def traduction(directPath,editor,version):
     monVisuDialg.setWindowTitle(titre)
     monVisuDialg.TB.setText(texte)
     monVisuDialg.show()
-
index e20801541aab5da891c41d763a2eda2d2f6a8b70..83322cfb703507c69822d3e132e9424a7d6938a3 100644 (file)
@@ -22,7 +22,7 @@
 
 __version = {
     'major': 9,
-    'minor': 7
+    'minor': 5
     }
 
 def getEficasVersion():
index 79d6adc69aaa3af3dd1e37f31f649f1285e59115..93b2225c9afeca01e2772b8b73f46f13b841fc27 100644 (file)
@@ -27,68 +27,69 @@ from PyQt5.QtCore import Qt
 from Extensions.i18n import tr
 
 from .gereIcones import FacultatifOuOptionnel
-import Accas 
+import Accas
 import traceback
 
-    
+
 # Import des panels
 
 class Groupe(QWidget,FacultatifOuOptionnel):
-  """
-  """
-  def __init__(self,node,editor,parentQt,definition,obj,niveau,commande=None):
-      #print ("groupe : ",self.node.item.nom," ",self.node.fenetre)
-      QWidget.__init__(self,None)
-      self.node=node
-      self.node.fenetre=self
-      self.setupUi(self)
-      self.editor=editor
-      self.obj=obj
-      self.niveau=niveau
-      self.definition=definition
-      self.parentQt=parentQt
-      self.maCommande=commande
-      self.listeFocus=[]
-      self.appliEficas=self.editor.appliEficas
-      self.repIcon=self.appliEficas.repIcon
-      self.jdc=self.node.item.getJdc()
-      self.setIconePoubelle()
-      self.setIconesGenerales()
-      self.setRun()
-      self.setValide()
-      self.setReglesEtAide()
-      self.afficheMots()
-      self.listeMCAAjouter=[]
-      self.dictMCVenantDesBlocs={}
-      if hasattr(self,'RBDeplie')  : self.RBDeplie.clicked.connect(self.setDeplie)
-      if hasattr(self,'RBPlie')    : self.RBPlie.clicked.connect( self.setPlie)
-      self.setAcceptDrops(True)
-      if hasattr (self, 'commandesLayout'): 
-         spacerItem = QSpacerItem(20, 5, QSizePolicy.Minimum, QSizePolicy.Expanding)
-         self.commandesLayout.addItem(spacerItem)
-     
-  def donneFocus(self):
-      for fenetre in self.listeFocus:
-          if fenetre==None : return
-          if fenetre.node.item.isValid() == 0 :
-             fenetre.prendLeFocus=1
-             fenetre.hide()
-             fenetre.show()
-      
-
-  def afficheMots(self):
-      #print ("ds afficheMots ",self.node.item.nom,self.node.plie)
-      for node in self.node.children:
-           # non return mais  continue car il faut tenir compte des blocs
-           if node.appartientAUnNoeudPlie==True : continue
-           #print "je suis apres le if pour ",node.item.nom
-           widget=node.getPanelGroupe(self,self.maCommande)
-           #print ("widget pour ", node.item.nom, widget)
-           self.listeFocus.append(node.fenetre)
-      #print "fin pour " , self.node.item.nom
-
-       
-  def calculOptionnel(self):
+    """
+    """
+    def __init__(self,node,editor,parentQt,definition,obj,niveau,commande=None):
+        #print ("groupe : ",self.node.item.nom," ",self.node.fenetre)
+        QWidget.__init__(self,None)
+        self.node=node
+        self.node.fenetre=self
+        self.setupUi(self)
+        self.editor=editor
+        self.obj=obj
+        self.niveau=niveau
+        self.definition=definition
+        self.parentQt=parentQt
+        self.maCommande=commande
+        self.listeFocus=[]
+        self.appliEficas=self.editor.appliEficas
+        self.repIcon=self.appliEficas.repIcon
+        self.jdc=self.node.item.getJdc()
+        self.setIconePoubelle()
+        self.setIconesGenerales()
+        self.setRun()
+        self.setValide()
+        self.setReglesEtAide()
+        self.afficheMots()
+        self.listeMCAAjouter=[]
+        self.dictMCVenantDesBlocs={}
+        if hasattr(self,'RBDeplie')  : self.RBDeplie.clicked.connect(self.setDeplie)
+        if hasattr(self,'RBPlie')    : self.RBPlie.clicked.connect( self.setPlie)
+
+        self.setAcceptDrops(True)
+        #if hasattr (self, 'commandesLayout'):
+        #   print (' j ajoute un spacer dans ', self.node.item.nom)
+        #   spacerItem = QSpacerItem(20, 5, QSizePolicy.Minimum, QSizePolicy.Expanding)
+        #   self.commandesLayout.addItem(spacerItem)
+
+    def donneFocus(self):
+        for fenetre in self.listeFocus:
+            if fenetre==None : return
+            if fenetre.node.item.isValid() == 0 :
+                fenetre.prendLeFocus=1
+                fenetre.hide()
+                fenetre.show()
+
+
+    def afficheMots(self):
+        #print ("ds afficheMots ",self.node.item.nom,self.node.plie)
+        for node in self.node.children:
+            # non return mais  continue car il faut tenir compte des blocs
+            if node.appartientAUnNoeudPlie==True : continue
+            widget=node.getPanelGroupe(self,self.maCommande)
+            #print ("widget pour ", node.item.nom, widget)
+            self.listeFocus.append(node.fenetre)
+        #print "fin pour " , self.node.item.nom
+
+
+    def calculOptionnel(self):
         self.listeMc=[]
         self.listeMcRegle=[]
         self.dictToolTipMc={}
@@ -97,109 +98,119 @@ class Groupe(QWidget,FacultatifOuOptionnel):
         # n ont pas toutes ces methodes
         try :
         #if 1 :
-           self.listeMc     = self.obj.getListeMcOrdonnee(genea,self.jdc.cata_ordonne_dico)
-           listeNomsPresents=self.obj.dictMcPresents()
-           for regle in self.obj.getRegles():
-               (monToolTip,regleOk)=regle.verif(listeNomsPresents)
-               if regleOk : continue
-               for mc in regle.mcs :
-                   self.listeMcRegle.append(mc)
-                   self.dictToolTipMc[mc]=monToolTip
+            self.listeMc     = self.obj.getListeMcOrdonnee(genea,self.jdc.cata_ordonne_dico)
+            listeNomsPresents=self.obj.dictMcPresents()
+            for regle in self.obj.getRegles():
+                (monToolTip,regleOk)=regle.verif(listeNomsPresents)
+                if regleOk : continue
+                for mc in regle.mcs :
+                    self.listeMcRegle.append(mc)
+                    self.dictToolTipMc[mc]=monToolTip
         except :
-           #print ('in except')
-           #print (self)
-           return
-        
-  def afficheOptionnel(self):
+            #print ('in except')
+            #print (self)
+            return
+
+    def afficheOptionnel(self):
+        if self.editor.maConfiguration.closeOptionnel : return
         liste,liste_rouge=self.ajouteMCOptionnelDesBlocs()
         self.monOptionnel=self.editor.widgetOptionnel
         self.monOptionnel.afficheOptionnel(liste,liste_rouge,self)
-        #self.monOptionnel.affiche(liste)
-           
-
-  def ajouteMCOptionnelDesBlocs(self):
-      self.dictMCVenantDesBlocs={}
-      i=0
-      self.calculOptionnel()
-      liste=self.listeMc
-      liste_rouge=self.listeMcRegle
-      for MC in self.listeMc : self.dictMCVenantDesBlocs[MC]=self
-      # ce cas est le cas machine tournant sr le plie
-      try :
-        while i < self.commandesLayout.count():
-          from .monWidgetBloc import MonWidgetBloc
-          widget=self.commandesLayout.itemAt(i).widget()
-          i=i+1
-          if not(isinstance(widget,MonWidgetBloc)) : continue
-          widget.calculOptionnel()
-          listeW,listeW_rouge=widget.ajouteMCOptionnelDesBlocs() 
-          for MC in widget.dictMCVenantDesBlocs:
-              if MC in self.dictMCVenantDesBlocs: print ("Pb Sur les MC" )
-              else : self.dictMCVenantDesBlocs[MC]=widget.dictMCVenantDesBlocs[MC]
-          liste=liste+listeW
-          liste_rouge=liste_rouge+listeW_rouge
-      except : 
-        pass
-      return (liste,liste_rouge)
-
-
-  def reaffiche(self,nodeAVoir=None):
-      #print "dans reaffiche de groupe.py", nodeAVoir
-      self.parentQt.reaffiche(nodeAVoir)
-
-  def recalculeListeMC(self,listeMC):
-      #print "pas si peu utile"
-      #on ajoute et on enleve
-      listeNode=[]
-      for name in listeMC :
-          nodeAEnlever=self.node.appendChild(name)
-          if nodeAEnlever.item.isMCList(): 
-             nodeAEnlever=nodeAEnlever.children[-1]
-          listeNode.append(nodeAEnlever)
-      self.afficheOptionnel()
-      self.monOptionnel.affiche(self.listeMc)
-      if len(listeNode) == 0 : return
-      if len(listeNode) == 1 : 
-         listeNode[0].delete()
-         self.editor.afficheInfos("")
-         return
-      for noeud in listeNode:
-          noeud.treeParent.item.suppItem(noeud.item)
-      noeud.treeParent.buildChildren()
-      self.editor.afficheInfos("")
-
-  def ajoutMC(self,texteListeNom):
-      listeNom=texteListeNom.split("+")[1:]
-      firstNode=None
-      for nom in listeNom:
-        if nom not in self.dictMCVenantDesBlocs:
-           #print "bizarre, bizarre"
-           self.editor.initModif()
-           nouveau=self.node.appendChild(nom)
-        else :
-           self.editor.initModif()
-           widget=self.dictMCVenantDesBlocs[nom]
-           nouveau=widget.node.appendChild(nom)
-        if firstNode==None : firstNode=nouveau 
-        if nouveau == None or nouveau == 0  : 
-           self.editor.afficheInfos(tr('insertion impossible a cet endroit pour '+nom),Qt.red)
-      try :
-       self.reaffiche(firstNode)
-       if firstNode!=None and firstNode !=0 and firstNode.item!=None : firstNode.select()
-      except :
-       pass
-
-
-  def setPlie(self):
-      self.node.setPlie()
-      self.reaffiche(self.node) 
-
-  def setDeplie(self):
-      #print ('je passe ds setDeplie de groupe')
-      self.node.setDeplie()
-      self.reaffiche(self.node) 
-    
-
-  def traiteClicSurLabel(self,texte):
-      if self.editor.code != "CARMELCND" : self.afficheOptionnel()
 
+
+    def ajouteMCOptionnelDesBlocs(self):
+        self.dictMCVenantDesBlocs={}
+        i=0
+        self.calculOptionnel()
+        liste=self.listeMc
+        liste_rouge=self.listeMcRegle
+        for MC in self.listeMc : self.dictMCVenantDesBlocs[MC]=self
+        # ce cas est le cas machine tournant sr le plie
+        try :
+            while i < self.commandesLayout.count():
+                from .monWidgetBloc import MonWidgetBloc
+                widget=self.commandesLayout.itemAt(i).widget()
+                i=i+1
+                if not(isinstance(widget,MonWidgetBloc)) : continue
+                widget.calculOptionnel()
+                listeW,listeW_rouge=widget.ajouteMCOptionnelDesBlocs()
+                for MC in widget.dictMCVenantDesBlocs:
+                    if MC in self.dictMCVenantDesBlocs: print ("Pb Sur les MC" )
+                    else : self.dictMCVenantDesBlocs[MC]=widget.dictMCVenantDesBlocs[MC]
+                liste=liste+listeW
+                liste_rouge=liste_rouge+listeW_rouge
+        except :
+            pass
+        return (liste,liste_rouge)
+
+
+    def reaffiche(self,nodeAVoir=None):
+        #print "dans reaffiche de groupe.py", nodeAVoir
+        self.parentQt.reaffiche(nodeAVoir)
+
+    def recalculeListeMC(self,listeMC):
+        #print "pas si peu utile"
+        #on ajoute et on enleve
+        listeNode=[]
+        for name in listeMC :
+            nodeAEnlever=self.node.appendChild(name)
+            if nodeAEnlever.item.isMCList():
+                nodeAEnlever=nodeAEnlever.children[-1]
+            listeNode.append(nodeAEnlever)
+        self.afficheOptionnel()
+        self.monOptionnel.affiche(self.listeMc)
+        if len(listeNode) == 0 : return
+        if len(listeNode) == 1 :
+            listeNode[0].delete()
+            self.editor.afficheInfos("")
+            return
+        for noeud in listeNode:
+            noeud.treeParent.item.suppItem(noeud.item)
+        noeud.treeParent.buildChildren()
+        self.editor.afficheInfos("")
+
+    def ajoutMC(self,texteListeNom):
+        listeNom=texteListeNom.split("+")[1:]
+        firstNode=None
+        for nom in listeNom:
+            if nom not in self.dictMCVenantDesBlocs:
+            #print "bizarre, bizarre"
+                self.editor.initModif()
+                nouveau=self.node.appendChild(nom)
+            else :
+                self.editor.initModif()
+                widget=self.dictMCVenantDesBlocs[nom]
+                nouveau=widget.node.appendChild(nom)
+            if firstNode==None : firstNode=nouveau
+            if nouveau == None or nouveau == 0  :
+                self.editor.afficheInfos(tr('insertion impossible a cet endroit pour '+nom),Qt.red)
+        try :
+            self.reaffiche(firstNode)
+            if firstNode!=None and firstNode !=0 and firstNode.item!=None : firstNode.select()
+        except :
+            pass
+
+
+    def setPlie(self):
+        self.node.setPlie()
+        self.reaffiche(self.node)
+
+    def setDeplie(self):
+        #print ('je passe ds setDeplie de groupe', self.obj.nom)
+        self.node.firstDeplie = False
+        self.node.setDeplie()
+        self.reaffiche(self.node)
+
+
+    def traiteClicSurLabel(self,texte):
+        if self.editor.code != "CARMELCND" : self.afficheOptionnel()
+        try :
+            fr = self.node.item.getFr()
+            self.editor.afficheCommentaire(str(fr))
+        except :
+            pass
+
+
+
+    def propageChange(self,leType,donneLefocus):
+        self.parentQt.propageChange(leType,donneLefocus)
index af354d56202d5a5ff3f9c7dfe25c46e4133bc853..12767af9107288088254c64fa8018eac628d44c5 100644 (file)
@@ -21,8 +21,6 @@
 
 from __future__ import absolute_import
 import re
-import six
-
 import os
 
 
@@ -31,46 +29,44 @@ from Extensions.i18n import tr
 
 class MonBoutonValide(QToolButton) :
 
-     def __init__(self,parent):
+    def __init__(self,parent):
         QToolButton.__init__(self,parent)
-        while( not(hasattr(parent,'node'))): 
-          parent= parent.parent()
+        while( not(hasattr(parent,'node'))):
+            parent= parent.parent()
         self.parent=parent
 
-     def mouseDoubleClickEvent(self, event):
+    def mouseDoubleClickEvent(self, event):
         #print "dans mouseDoubleClickEvent"
         strAide=self.parent.node.item.object.getFr()
         if hasattr(self.parent.node.item.object.definition, 'defaut') :
-                strAide+='\ndefaut : \n'+str(self.parent.node.item.object.definition.defaut)
-        strRapport=six.text_type(self.parent.node.item.object.report())
+            strAide+='\ndefaut : \n'+str(self.parent.node.item.object.definition.defaut)
+        strRapport=str(self.parent.node.item.object.report())
         self.parent.editor._viewText(strAide+"\n"+strRapport, "JDC_RAPPORT")
 
-     def mousePressEvent(self, event):
-       #print "dans mousePressEvent"
-       if self.parent.node.item.object.isValid() :
-          myToolTip=tr("objet valide")
-          if self.parent.editor.maConfiguration.differencieSiDefaut :
-            if hasattr(self.parent.node.item.object.definition, 'defaut') :
-              if self.parent.node.item.object.valeur != self.parent.node.item.object.definition.defaut :
-                myToolTip+='\ndefaut : \n'+str(self.parent.node.item.object.definition.defaut)
-
-          QToolTip.showText(event.globalPos(),myToolTip )
-       else :
-          t=""
-          texte=six.text_type(self.parent.node.item.object.report())
-          deb=1
-          for l in texte.split('\n')[2:-2]:
-              if re.match('^[\t !]*$',l) : continue
-              if re.match('^ *Fin Mot-cl',l) : continue
-              if re.match('^ *D?but Mot-cl',l) : continue
-              if re.match('^ *Mot-cl',l) : continue
-              l=l.replace('!','')
-              if deb :
-                 deb=0
-                 t=l
-              else :
-                 t=t+'\n'+l
-          myToolTip=tr(t)
-       QToolTip.showText(event.globalPos(),myToolTip )
-
+    def mousePressEvent(self, event):
+        #print "dans mousePressEvent"
+        if self.parent.node.item.object.isValid() :
+            myToolTip=tr("objet valide")
+            if self.parent.editor.maConfiguration.differencieSiDefaut :
+                if hasattr(self.parent.node.item.object.definition, 'defaut') :
+                    if self.parent.node.item.object.valeur != self.parent.node.item.object.definition.defaut :
+                        myToolTip+='\ndefaut : \n'+str(self.parent.node.item.object.definition.defaut)
 
+            QToolTip.showText(event.globalPos(),myToolTip )
+        else :
+            t=""
+            texte=self.parent.node.item.object.report().report()
+            deb=1
+            for l in texte.split('\n')[2:-2]:
+                if re.match('^[\t !]*$',l) : continue
+                if re.match('^ *Fin Mot-cl',l) : continue
+                if re.match('^ *D?but Mot-cl',l) : continue
+                if re.match('^ *Mot-cl',l) : continue
+                l=l.replace('!','')
+                if deb :
+                    deb=0
+                    t=l
+                else :
+                    t=t+'\n'+l
+            myToolTip=tr(t)
+        QToolTip.showText(event.globalPos(),myToolTip )
index a66db09045137079ccc655343a3aae9de7e96e73..646aab02cb1ee2d83c511d72c4b4b7de720e6203 100644 (file)
@@ -28,23 +28,22 @@ from Extensions.i18n import tr
 # Import des panels
 
 class MonChoixCata(Ui_DChoixCata,QDialog):
-  """
-  """
-  def __init__(self, QWparent, listeCata, title = None):
-      QDialog.__init__(self, QWparent)
-      self.setModal(True)
-      self.setupUi(self)
-      self.CBChoixCata.addItems(listeCata)
-      self.TLNb.setText(tr("%d versions du catalogue sont disponibles", len(listeCata)))
-      if title is not None:
-          self.setWindowTitle(tr(title))
-      self.buttonOk.clicked.connect(self.cataChoisi)
-      self.buttonCancel.clicked.connect(self.sortSansChoix)
+    """
+    """
+    def __init__(self, QWparent, listeCata, title = None):
+        QDialog.__init__(self, QWparent)
+        self.setModal(True)
+        self.setupUi(self)
+        self.CBChoixCata.addItems(listeCata)
+        self.TLNb.setText(tr("%d versions du catalogue sont disponibles", len(listeCata)))
+        if title is not None:
+            self.setWindowTitle(tr(title))
+        self.buttonOk.clicked.connect(self.cataChoisi)
+        self.buttonCancel.clicked.connect(self.sortSansChoix)
 
 
-  def sortSansChoix(self):
-      QDialog.reject(self)
-
-  def cataChoisi(self):
-      QDialog.accept(self)
+    def sortSansChoix(self):
+        QDialog.reject(self)
 
+    def cataChoisi(self):
+        QDialog.accept(self)
index 59fc60989b8901d425890895690d0e1cfaa2cfb6..bae07cf31f863ba7374023503e2e3551434cef75 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -22,7 +22,7 @@
 
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import os,sys,re
@@ -31,83 +31,83 @@ from PyQt5.QtWidgets import QDialog, QRadioButton, QGroupBox, QButtonGroup
 from PyQt5.QtGui import QPalette
 from PyQt5.QtCore import QProcess, QFileInfo, Qt, QSize
 
-    
+
 # Import des panels
 
 class MonChoixCode(Ui_ChoixCode,QDialog):
-  """
-  Classe definissant le panel associe aux mots-cles qui demandent
-  a l'utilisateur de choisir une seule valeur parmi une liste de valeurs
-  discretes
-  """
-  def __init__(self,  parentAppli=None):
-      QDialog.__init__(self,parent=parentAppli,flags=Qt.Window)
-      self.setModal(True)
-      self.setupUi(self)
-      self.parentAppli=parentAppli
-      self.verifieInstall()
-      self.code=None
-      self.buttonBox.accepted.disconnect(self.accept)
-      self.buttonBox.accepted.connect(self.choisitCode)
-     # self.pB_OK.clicked.connect(self.choisitCode)
-      #self.pB_cancel.clicked.connect(self.sortie)
+    """
+    Classe definissant le panel associe aux mots-cles qui demandent
+    a l'utilisateur de choisir une seule valeur parmi une liste de valeurs
+    discretes
+    """
+    def __init__(self,  appliEficas=None):
+        QDialog.__init__(self,parent=appliEficas,flags=Qt.Window)
+        self.setModal(True)
+        self.setupUi(self)
+        self.appliEficas=appliEficas
+        self.verifieInstall()
+        self.code=None
+        self.buttonBox.accepted.disconnect(self.accept)
+        self.buttonBox.accepted.connect(self.choisitCode)
+       # self.pB_OK.clicked.connect(self.choisitCode)
+        #self.pB_cancel.clicked.connect(self.sortie)
 
-  def sortie(self):
-      QDialog.reject(self)
+    def sortie(self):
+        QDialog.reject(self)
 
-  def verifieInstall(self):
-      self.groupCodes=QButtonGroup(self.groupBox)
-      vars=list(os.environ.items())
-      listeCode=('Adao','Carmel3D','CarmelCND','CF','MAP','MT','PSEN','PSEN_N1','Telemac','ZCracks',)
-      for code in listeCode:
-          dirCode=os.path.abspath(os.path.join(os.path.abspath(__file__),'../..',code))
-          try :
-             l=os.listdir(dirCode)
-             bouton=QRadioButton(self.groupBox)
-             bouton.setText(code)
-             self.groupCodes.addButton(bouton)
-             self.vlBouton.addWidget(bouton)
-          except :
-             clef="PREFS_CATA_"+code
-             try :
+    def verifieInstall(self):
+        self.groupCodes=QButtonGroup(self.groupBox)
+        vars=list(os.environ.items())
+        listeCode=('Adao','Carmel3D','CarmelCND','CF','MAP','MT','PSEN','PSEN_N1','Telemac','ZCracks',)
+        for code in listeCode:
+            dirCode=os.path.abspath(os.path.join(os.path.abspath(__file__),'../..',code))
+            try :
+                l=os.listdir(dirCode)
+                bouton=QRadioButton(self.groupBox)
+                bouton.setText(code)
+                self.groupCodes.addButton(bouton)
+                self.vlBouton.addWidget(bouton)
+            except :
+                clef="PREFS_CATA_"+code
+                try :
+                    repIntegrateur=os.path.abspath(os.environ[clef])
+                    l=os.listdir(repIntegrateur)
+                    bouton=QRadioButton(self.groupBox)
+                    bouton.setText(code)
+                    bouton.show()
+                    self.groupCodes.addButton(bouton)
+                except :
+                    pass
+        listeCodesIntegrateur=[]
+        for k,v in vars:
+            if re.search('^PREFS_CATA_',k) != None and k[11:] not in listeCode:
+                listeCodesIntegrateur.append(k[11:])
+        for code in listeCodesIntegrateur:
+            try :
+                clef="PREFS_CATA_"+code
                 repIntegrateur=os.path.abspath(os.environ[clef])
                 l=os.listdir(repIntegrateur)
-                bouton=QRadioButton(self.groupBox)
+                bouton=QRadioButton(self)
                 bouton.setText(code)
                 bouton.show()
                 self.groupCodes.addButton(bouton)
-             except :
+            except :
                 pass
-      listeCodesIntegrateur=[]
-      for k,v in vars:
-          if re.search('^PREFS_CATA_',k) != None and k[11:] not in listeCode:
-             listeCodesIntegrateur.append(k[11:])
-      for code in listeCodesIntegrateur:
-          try :
-              clef="PREFS_CATA_"+code
-              repIntegrateur=os.path.abspath(os.environ[clef])
-              l=os.listdir(repIntegrateur)
-              bouton=QRadioButton(self)
-              bouton.setText(code)
-              bouton.show()
-              self.groupCodes.addButton(bouton)
-          except :
-              pass
-      self.parentAppli.listeCode=self.parentAppli.listeCode+listeCodesIntegrateur
+        self.appliEficas.listeCode=self.appliEficas.listeCode+listeCodesIntegrateur
 
-  def choisitCode(self):
-      bouton=self.groupCodes.checkedButton()
-      if bouton==None : return
-      code=str(bouton.text())
-      codeUpper=code.upper()
-      self.parentAppli.code=codeUpper
-      try :
-          dirCode=os.path.abspath(os.path.join(os.path.abspath(__file__),'../..',code))
-          l=os.listdir(dirCode)
-          sys.path.insert(0,dirCode)
-      except :
-          clef="PREFS_CATA_"+code
-          repIntegrateur=os.path.abspath(os.environ[clef])
-          l=os.listdir(repIntegrateur)
-          sys.path.insert(0,repIntegrateur)
-      self.close()
+    def choisitCode(self):
+        bouton=self.groupCodes.checkedButton()
+        if bouton==None : return
+        code=str(bouton.text())
+        codeUpper=code.upper()
+        self.appliEficas.code=codeUpper
+        try :
+            dirCode=os.path.abspath(os.path.join(os.path.abspath(__file__),'../..',code))
+            l=os.listdir(dirCode)
+            sys.path.insert(0,dirCode)
+        except :
+            clef="PREFS_CATA_"+code
+            repIntegrateur=os.path.abspath(os.environ[clef])
+            l=os.listdir(repIntegrateur)
+            sys.path.insert(0,repIntegrateur)
+        self.close()
index c8036b34cb20a710f18b6c1daa24415322986965..bc0cebdaf5b107539c10c8d2646807ccf59d39f2 100644 (file)
@@ -21,7 +21,7 @@
 
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 from desChoixCommandes import Ui_ChoixCommandes
@@ -32,322 +32,327 @@ from PyQt5.QtCore import QSize, QRect
 from Extensions.i18n import tr
 import os
 
-    
+
 # Import des panels
 
 class MonChoixCommande(Ui_ChoixCommandes,QWidget):
-  """
-  """
-  def __init__(self,node, jdc_item, editor):
-      QWidget.__init__(self,parent=None)
-      self.setupUi(self)
-
-      self.repIcon=os.path.join( os.path.dirname(os.path.abspath(__file__)),'..','Editeur','icons')
-      iconeFile=os.path.join(self.repIcon,'lettreRblanc30.png')
-      icon = QIcon(iconeFile)
-      self.RBRegle.setIcon(icon)
-      self.RBRegle.setIconSize(QSize(21, 31))
-
-      self.item = jdc_item
-      self.node = node
-      self.editor = editor
-      self.simpleClic=self.editor.maConfiguration.simpleClic
-      self.jdc  = self.item.object.getJdcRoot()
-      debutTitre=self.editor.titre
-      self.listeWidget=[]
-      self.dicoCmd={}
-      if self.editor.fichier != None : 
-          nouveauTitre=debutTitre+" "+os.path.basename(self.editor.fichier)
-      else :
-          nouveauTitre=debutTitre
-      self.editor.appliEficas.setWindowTitle(nouveauTitre)
-
-
-      self.RBalpha.clicked.connect(self.afficheAlpha)
-      self.RBGroupe.clicked.connect(self.afficheGroupe)
-      self.RBOrdre.clicked.connect(self.afficheOrdre)
-      self.RBClear.clicked.connect(self.clearFiltre)
-      self.RBCasse.toggled.connect(self.ajouteRadioButtons)
-      self.LEFiltre.returnPressed.connect(self.ajouteRadioButtons)
-      self.LEFiltre.textChanged.connect(self.ajouteRadioButtons)
-
-      if self.node.tree.item.getRegles() == () :
-         self.RBRegle.close()
-         self.labelRegle.close()
-      else : 
-        self.RBRegle.clicked.connect(self.afficheRegle)
-
-      if self.editor.readercata.Ordre_Des_Commandes == None : self.RBOrdre.close()
-
-       
-      #self.editor.labelCommentaire.setText("")
-      if self.editor.widgetOptionnel!= None : 
-         self.editor.fermeOptionnel()
-         self.editor.widgetOptionnel=None
-      self.name=None
-
-      self.boolAlpha=0
-      self.boolGroupe=0
-      self.boolOrdre=0
-      if self.editor.maConfiguration.affiche=="alpha"  : 
-         self.boolAlpha==1;  
-         self.RBalpha.setChecked(True);
-         self.afficheAlpha()
-      elif self.editor.maConfiguration.affiche=="groupe" : 
-         self.boolGroupe==1; 
-         self.RBGroupe.setChecked(True); 
-         self.afficheGroupe()
-      elif self.editor.maConfiguration.affiche=="ordre"  : 
-         self.boolOrdre==1;  
-         self.RBOrdre.setChecked(True);  
-         self.afficheOrdre()
-      if self.editor.maConfiguration.closeFrameRechercheCommande == True : self.frameAffichage.close()
-
-      if self.editor.widgetTree != None : self.editor.restoreSplitterSizes(2) 
-      else: self.editor.restoreSplitterSizes(3)
-
-  def afficheRegle(self):
-      self.node.tree.appellebuildLBRegles()
-
-  def afficheAlpha(self):
-      self.boolAlpha=1
-      self.boolGroupe=0
-      self.boolOrdre=0
-      self.ajouteRadioButtons()
-
-  def afficheGroupe(self):
-      self.boolAlpha=0
-      self.boolGroupe=1
-      self.boolOrdre=0
-      self.ajouteRadioButtons()
-
-  def afficheOrdre(self):
-      self.boolAlpha=0
-      self.boolGroupe=0
-      self.boolOrdre=1
-      self.ajouteRadioButtons()
-
-  def insereNoeudApresClick(self,event):
-      #print self.editor.Classement_Commandes_Ds_Arbre
-      #if self.editor.Classement_Commandes_Ds_Arbre!= () : self.chercheOu()
-      #print ('dans insereNoeudApresClick')
-      nodeCourrant=self.node.tree.currentItem()
-      if nodeCourrant==None: nodeCourrant=self.node.tree.racine
-      if self.name != None :
-         plier=self.editor.maConfiguration.afficheCommandesPliees
-         if nodeCourrant==self.node : nouveau=self.node.appendChild(self.name,'first',plier)
-         else : nouveau=nodeCourrant.appendBrother(self.name,plier=plier)
-      else :
-         nouveau = 0
-      if nouveau == 0 : return # on n a pas insere le noeud
-      nouveau.setDeplie()
-      #if self.editor.afficheApresInsert==True : nouveau.plieToutEtReaffiche()
-      if self.editor.afficheApresInsert == True :
-           #if self.editor.affichePlie==True:  nouveau.plieToutEtReaffiche()
-           if self.editor.maConfiguration.afficheCommandesPliees ==True:  nouveau.plieToutEtReaffiche()
-           else : nouveau.deplieToutEtReaffiche()
-           nouveau.fenetre.donnePremier()
-           #nouveau.deplieToutEtReaffiche()
-      else :
-           self.node.setSelected(False)
-           nouveau.setSelected(True)
-           self.node.tree.setCurrentItem(nouveau)
-      if event != None : event.accept()
-      
-         
-
-  def creeListeCommande(self,filtre):
-      listeGroupes,dictGroupes=self.jdc.getGroups()
-      sensibleALaCasse=self.RBCasse.isChecked()
-      if "CACHE" in dictGroupes: aExclure=list(dictGroupes["CACHE"])
-      else: aExclure=()
-      listeACreer=[]
-      listeEtapesDejaPresentes=[]
-      if self.editor.maConfiguration.rendVisiblesLesCaches :
-         for e in self.jdc.etapes:
-            listeEtapesDejaPresentes.append(e.nom)
-         for c in aExclure :
-             if c not in listeEtapesDejaPresentes : aExclure.remove(c)
-      for l in self.jdc.getListeCmd():
-         if l not in aExclure : 
-            if sensibleALaCasse and (filtre != None and not filtre in l) : continue
-            if (not sensibleALaCasse) and filtre != None and (not filtre in l) and (not filtre.upper() in l) : continue
-            listeACreer.append(l)
-      return listeACreer
-
-  def ajouteRadioButtons(self):
-      if self.editor.maConfiguration.nombreDeBoutonParLigne != 0 :
-         self.ajoutePushButtons()
-         return
-      #print 'ds ajouteRadioButtons'
-      filtre=str(self.LEFiltre.text())
-      if filtre==str("") : filtre=None
-      if hasattr(self,'buttonGroup') :
-         for b in self.buttonGroup.buttons():
-             self.buttonGroup.removeButton(b)
-             b.setParent(None)
-             b.close()
-      else :
-         self.buttonGroup = QButtonGroup()
-      for w in self.listeWidget :
-         w.setParent(None)
-         w.close()
-      self.listeWidget=[]
-      if self.boolAlpha==1 :
-         liste=self.creeListeCommande(filtre)
-         for cmd in liste :
-           self.dicoCmd[tr(cmd)]=cmd
-           rbcmd=(QRadioButton(tr(cmd)))
-           self.buttonGroup.addButton(rbcmd)
-           self.commandesLayout.addWidget(rbcmd)
-           #if self.simpleClic :  rbcmd.mouseReleaseEvent=self.insereNoeudApresClick
-           #else : rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick
-           #self.buttonGroup.buttonClicked.connect(self.rbClique) 
-           if not(self.simpleClic ):  rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick
-         if self.simpleClic :  
-            self.buttonGroup.buttonClicked.connect(self.rbCliqueEtInsere) 
-         else :
-            self.buttonGroup.buttonClicked.connect(self.rbClique) 
-      elif  self.boolGroupe==1 :
-         listeGroupes,dictGroupes=self.jdc.getGroups()
-         for grp in listeGroupes:
-           if grp == "CACHE" : continue
-           label=QLabel(self)
-           text=tr('<html><head/><body><p><span style=\" font-weight:600;\">Groupe : '+tr(grp)+'</span></p></body></html>')
-           label.setText(text)
-           self.listeWidget.append(label)
-           aAjouter=1
-           sensibleALaCasse=self.RBCasse.isChecked()
-           for cmd in  dictGroupes[grp]:
-              if sensibleALaCasse and (filtre != None and not filtre in cmd) : continue
-              if (not sensibleALaCasse) and filtre != None and (not filtre in cmd) and (not filtre.upper() in cmd) : continue
-              if aAjouter == 1 :
-                 self.commandesLayout.addWidget(label)
-                 aAjouter=0
-              self.dicoCmd[tr(cmd)]=cmd
-              rbcmd=(QRadioButton(tr(cmd)))
-              self.buttonGroup.addButton(rbcmd)
-              self.commandesLayout.addWidget(rbcmd)
-              if not(self.simpleClic ):  rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick
-           if self.simpleClic :  
-             self.buttonGroup.buttonClicked.connect(self.rbCliqueEtInsere) 
-           else :
-             self.buttonGroup.buttonClicked.connect(self.rbClique) 
-           label2=QLabel(self)
-           label2.setText(" ")
-           self.listeWidget.append(label2)
-           self.commandesLayout.addWidget(label2)
-      elif  self.boolOrdre==1 :
-         listeFiltre=self.creeListeCommande(filtre)
-         liste=[]
-         if self.editor.readercata.Ordre_Des_Commandes == None : Ordre_Des_Commandes=listeFiltre
-         else : Ordre_Des_Commandes=self.editor.readercata.Ordre_Des_Commandes
-         for cmd in Ordre_Des_Commandes :
-            if cmd in listeFiltre :
-                 liste.append(cmd)
-         for cmd in liste :
-           self.dicoCmd[tr(cmd)]=cmd
-           rbcmd=(QRadioButton(tr(cmd)))
-           self.buttonGroup.addButton(rbcmd)
-           self.commandesLayout.addWidget(rbcmd)
-           if not(self.simpleClic ):  rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick
-         if self.simpleClic :  
-            self.buttonGroup.buttonClicked.connect(self.rbCliqueEtInsere) 
-         else :
-            self.buttonGroup.buttonClicked.connect(self.rbClique) 
-
-     
-
-  def ajoutePushButtons(self):
-      if hasattr(self,'buttonGroup') :
-         for b in self.buttonGroup.buttons():
-             self.buttonGroup.removeButton(b)
-             b.setParent(None)
-             b.close()
-      else :
-         self.buttonGroup = QButtonGroup()
-         self.buttonGroup.buttonClicked.connect(self.rbCliqueEtInsere) 
-      for w in self.listeWidget :
-         w.setParent(None)
-         w.close()
-      self.listeWidget=[]
-
-      if not hasattr(self,'maGrilleBouton') :
-         #self.commandesLayout.close()
-         self.maGrilleBouton=QGridLayout()
-         self.maGrilleBouton.setSpacing(20)
-         self.verticalLayout.addLayout(self.maGrilleBouton)
-      col=-1
-      ligne = 0
-
-      if self.boolAlpha==1 :
-         liste=self.creeListeCommande(None)
-      elif  self.boolOrdre:
-         liste=self.creeListeCommande(None)
-         listeFiltre=self.creeListeCommande(None)
-         liste=[]
-         if self.editor.readercata.Ordre_Des_Commandes == None : Ordre_Des_Commandes=listeFiltre
-         else : Ordre_Des_Commandes=self.editor.readercata.Ordre_Des_Commandes
-         for cmd in Ordre_Des_Commandes :
-            if cmd in listeFiltre :
-                 liste.append(cmd)
-      for cmd in liste :
-           col=col+1
-           if col == self.editor.maConfiguration.nombreDeBoutonParLigne :
-              col=0
-              ligne=ligne+1
-           self.dicoCmd[tr(cmd)]=cmd
-           rbcmd=QPushButton(tr(cmd))
-           rbcmd.setGeometry(QRect(40, 20, 211, 71))
-           rbcmd.setMaximumSize(QSize(250, 81))
-           rbcmd.setStyleSheet("background-color : rgb(66, 165, 238);\n"
+    """
+    """
+    def __init__(self,node, jdc_item, editor):
+        QWidget.__init__(self,parent=None)
+        self.setupUi(self)
+
+        self.repIcon=os.path.join( os.path.dirname(os.path.abspath(__file__)),'..','Editeur','icons')
+        iconeFile=os.path.join(self.repIcon,'lettreRblanc30.png')
+        icon = QIcon(iconeFile)
+        self.RBRegle.setIcon(icon)
+        self.RBRegle.setIconSize(QSize(21, 31))
+
+        self.item = jdc_item
+        self.node = node
+        self.editor = editor
+        self.simpleClic=self.editor.maConfiguration.simpleClic
+        self.jdc  = self.item.object.getJdcRoot()
+        debutTitre=self.editor.titre
+        self.listeWidget=[]
+        self.dicoCmd={}
+        if self.editor.fichier != None :
+            nouveauTitre=debutTitre+" "+os.path.basename(self.editor.fichier)
+        else :
+            nouveauTitre=debutTitre
+        self.editor.appliEficas.setWindowTitle(nouveauTitre)
+
+
+        self.RBalpha.clicked.connect(self.afficheAlpha)
+        self.RBGroupe.clicked.connect(self.afficheGroupe)
+        self.RBOrdre.clicked.connect(self.afficheOrdre)
+        self.RBClear.clicked.connect(self.clearFiltre)
+        self.RBCasse.toggled.connect(self.ajouteRadioButtons)
+        self.LEFiltre.returnPressed.connect(self.ajouteRadioButtons)
+        self.LEFiltre.textChanged.connect(self.ajouteRadioButtons)
+
+        if self.node.tree.item.getRegles() == () :
+            self.RBRegle.close()
+            self.labelRegle.close()
+        else :
+            self.RBRegle.clicked.connect(self.afficheRegle)
+
+        if self.editor.readercata.Ordre_Des_Commandes == None : self.RBOrdre.close()
+
+
+        #self.editor.labelCommentaire.setText("")
+        if self.editor.widgetOptionnel!= None :
+            self.editor.fermeOptionnel()
+            self.editor.widgetOptionnel=None
+        self.name=None
+
+        self.boolAlpha=0
+        self.boolGroupe=0
+        self.boolOrdre=0
+        if self.editor.maConfiguration.affiche=="alpha"  :
+            self.boolAlpha==1;
+            self.RBalpha.setChecked(True);
+            self.afficheAlpha()
+        elif self.editor.maConfiguration.affiche=="groupe" :
+            self.boolGroupe==1;
+            self.RBGroupe.setChecked(True);
+            self.afficheGroupe()
+        elif self.editor.maConfiguration.affiche=="ordre"  :
+            self.boolOrdre==1;
+            self.RBOrdre.setChecked(True);
+            self.afficheOrdre()
+        if self.editor.maConfiguration.closeFrameRechercheCommandeSurPageDesCommandes == True : self.frameAffichage.close()
+
+        if self.editor.widgetTree != None : self.editor.restoreSplitterSizes(2)
+        else: self.editor.restoreSplitterSizes(3)
+
+    def afficheRegle(self):
+        self.node.tree.appellebuildLBRegles()
+
+    def afficheAlpha(self):
+        self.boolAlpha=1
+        self.boolGroupe=0
+        self.boolOrdre=0
+        self.ajouteRadioButtons()
+
+    def afficheGroupe(self):
+        self.boolAlpha=0
+        self.boolGroupe=1
+        self.boolOrdre=0
+        self.ajouteRadioButtons()
+
+    def afficheOrdre(self):
+        self.boolAlpha=0
+        self.boolGroupe=0
+        self.boolOrdre=1
+        self.ajouteRadioButtons()
+
+    def insereNoeudApresClick(self,event):
+        #print self.editor.Classement_Commandes_Ds_Arbre
+        #if self.editor.Classement_Commandes_Ds_Arbre!= () : self.chercheOu()
+        #print ('dans insereNoeudApresClick')
+        nodeCourrant=self.node.tree.currentItem()
+        if nodeCourrant==None: nodeCourrant=self.node.tree.racine
+        if self.name != None :
+            plier=self.editor.maConfiguration.afficheCommandesPliees
+            if nodeCourrant==self.node : nouveau=self.node.appendChild(self.name,'first',plier)
+            else : nouveau=nodeCourrant.appendBrother(self.name,plier=plier)
+        else :
+            nouveau = 0
+        if nouveau == 0 : return # on n a pas insere le noeud
+        nouveau.setDeplie()
+        #if self.editor.afficheApresInsert==True : nouveau.plieToutEtReaffiche()
+        if self.editor.afficheApresInsert == True :
+            #if self.editor.affichePlie==True:  nouveau.plieToutEtReaffiche()
+            if self.editor.maConfiguration.afficheCommandesPliees ==True:  nouveau.plieToutEtReaffiche()
+            else : nouveau.deplieToutEtReaffiche()
+            nouveau.fenetre.donnePremier()
+            #nouveau.deplieToutEtReaffiche()
+        else :
+            self.node.setSelected(False)
+            nouveau.setSelected(True)
+            self.node.tree.setCurrentItem(nouveau)
+        if event != None : event.accept()
+
+
+
+    def creeListeCommande(self,filtre):
+        listeGroupes,dictGroupes=self.jdc.getGroups()
+        sensibleALaCasse=self.RBCasse.isChecked()
+        if "CACHE" in dictGroupes: aExclure=list(dictGroupes["CACHE"])
+        else: aExclure=[]
+        listeACreer=[]
+        listeEtapesDejaPresentes=[]
+        if self.editor.maConfiguration.rendVisiblesLesCaches :
+            for e in self.jdc.etapes:
+                listeEtapesDejaPresentes.append(e.nom)
+            for c in aExclure :
+                if c not in listeEtapesDejaPresentes : aExclure.remove(c)
+        #for e in self.jdc.etapes:
+        #    print (e.nom)
+        #    print (e.definition.repetable)
+        #    if e.definition.repetable == 'n' : aExclure.append(e.nom)
+        #print (aExclure)
+        for l in self.jdc.getListeCmd():
+            if l not in aExclure :
+                if sensibleALaCasse and (filtre != None and not filtre in l) : continue
+                if (not sensibleALaCasse) and filtre != None and (not filtre in l) and (not filtre.upper() in l) : continue
+                listeACreer.append(l)
+        return listeACreer
+
+    def ajouteRadioButtons(self):
+        if self.editor.maConfiguration.nombreDeBoutonParLigne != 0 :
+            self.ajoutePushButtons()
+            return
+        #print 'ds ajouteRadioButtons'
+        filtre=str(self.LEFiltre.text())
+        if filtre==str("") : filtre=None
+        if hasattr(self,'buttonGroup') :
+            for b in self.buttonGroup.buttons():
+                self.buttonGroup.removeButton(b)
+                b.setParent(None)
+                b.close()
+        else :
+            self.buttonGroup = QButtonGroup()
+        for w in self.listeWidget :
+            w.setParent(None)
+            w.close()
+        self.listeWidget=[]
+        if self.boolAlpha==1 :
+            liste=self.creeListeCommande(filtre)
+            for cmd in liste :
+                self.dicoCmd[tr(cmd)]=cmd
+                rbcmd=(QRadioButton(tr(cmd)))
+                self.buttonGroup.addButton(rbcmd)
+                self.commandesLayout.addWidget(rbcmd)
+                #if self.simpleClic :  rbcmd.mouseReleaseEvent=self.insereNoeudApresClick
+                #else : rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick
+                #self.buttonGroup.buttonClicked.connect(self.rbClique)
+                if not(self.simpleClic ):  rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick
+            if self.simpleClic :
+                self.buttonGroup.buttonClicked.connect(self.rbCliqueEtInsere)
+            else :
+                self.buttonGroup.buttonClicked.connect(self.rbClique)
+        elif  self.boolGroupe==1 :
+            listeGroupes,dictGroupes=self.jdc.getGroups()
+            for grp in listeGroupes:
+                if grp == "CACHE" : continue
+                label=QLabel(self)
+                text=tr('<html><head/><body><p><span style=\" font-weight:600;\">Groupe : '+tr(grp)+'</span></p></body></html>')
+                label.setText(text)
+                self.listeWidget.append(label)
+                aAjouter=1
+                sensibleALaCasse=self.RBCasse.isChecked()
+                for cmd in  dictGroupes[grp]:
+                    if sensibleALaCasse and (filtre != None and not filtre in cmd) : continue
+                    if (not sensibleALaCasse) and filtre != None and (not filtre in cmd) and (not filtre.upper() in cmd) : continue
+                    if aAjouter == 1 :
+                        self.commandesLayout.addWidget(label)
+                        aAjouter=0
+                    self.dicoCmd[tr(cmd)]=cmd
+                    rbcmd=(QRadioButton(tr(cmd)))
+                    self.buttonGroup.addButton(rbcmd)
+                    self.commandesLayout.addWidget(rbcmd)
+                    if not(self.simpleClic ):  rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick
+                if self.simpleClic :
+                    self.buttonGroup.buttonClicked.connect(self.rbCliqueEtInsere)
+                else :
+                    self.buttonGroup.buttonClicked.connect(self.rbClique)
+                label2=QLabel(self)
+                label2.setText(" ")
+                self.listeWidget.append(label2)
+                self.commandesLayout.addWidget(label2)
+        elif  self.boolOrdre==1 :
+            listeFiltre=self.creeListeCommande(filtre)
+            liste=[]
+            if self.editor.readercata.Ordre_Des_Commandes == None : Ordre_Des_Commandes=listeFiltre
+            else : Ordre_Des_Commandes=self.editor.readercata.Ordre_Des_Commandes
+            for cmd in Ordre_Des_Commandes :
+                if cmd in listeFiltre :
+                    liste.append(cmd)
+            for cmd in liste :
+                self.dicoCmd[tr(cmd)]=cmd
+                rbcmd=(QRadioButton(tr(cmd)))
+                self.buttonGroup.addButton(rbcmd)
+                self.commandesLayout.addWidget(rbcmd)
+                if not(self.simpleClic ):  rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick
+            if self.simpleClic :
+                self.buttonGroup.buttonClicked.connect(self.rbCliqueEtInsere)
+            else :
+                self.buttonGroup.buttonClicked.connect(self.rbClique)
+
+
+
+    def ajoutePushButtons(self):
+        if hasattr(self,'buttonGroup') :
+            for b in self.buttonGroup.buttons():
+                self.buttonGroup.removeButton(b)
+                b.setParent(None)
+                b.close()
+        else :
+            self.buttonGroup = QButtonGroup()
+            self.buttonGroup.buttonClicked.connect(self.rbCliqueEtInsere)
+        for w in self.listeWidget :
+            w.setParent(None)
+            w.close()
+        self.listeWidget=[]
+
+        if not hasattr(self,'maGrilleBouton') :
+            #self.commandesLayout.close()
+            self.maGrilleBouton=QGridLayout()
+            self.maGrilleBouton.setSpacing(20)
+            self.verticalLayout.addLayout(self.maGrilleBouton)
+        col=-1
+        ligne = 0
+
+        if self.boolAlpha==1 :
+            liste=self.creeListeCommande(None)
+        elif  self.boolOrdre:
+            liste=self.creeListeCommande(None)
+            listeFiltre=self.creeListeCommande(None)
+            liste=[]
+            if self.editor.readercata.Ordre_Des_Commandes == None : Ordre_Des_Commandes=listeFiltre
+            else : Ordre_Des_Commandes=self.editor.readercata.Ordre_Des_Commandes
+            for cmd in Ordre_Des_Commandes :
+                if cmd in listeFiltre :
+                    liste.append(cmd)
+        for cmd in liste :
+            col=col+1
+            if col == self.editor.maConfiguration.nombreDeBoutonParLigne :
+                col=0
+                ligne=ligne+1
+            self.dicoCmd[tr(cmd)]=cmd
+            rbcmd=QPushButton(tr(cmd))
+            rbcmd.setGeometry(QRect(40, 20, 211, 71))
+            rbcmd.setMaximumSize(QSize(250, 81))
+            rbcmd.setStyleSheet("background-color : rgb(66, 165, 238);\n"
 "/*border-style : outset;*/\n"
 "border-radius : 20px;\n"
 "border-width : 30 px;\n"
 "border-color : beige;\n"
 "text-align : center")
-           #print ('self.editor.maConfiguration.dicoImages', self.editor.maConfiguration.dicoImages)
-           if cmd in self.editor.maConfiguration.dicoImages :
-              fichier=self.editor.maConfiguration.dicoImages[cmd]
-              icon = QIcon()
-              icon.addPixmap(QPixmap(fichier), QIcon.Normal, QIcon.Off)
-              rbcmd.setIcon(icon)
-              rbcmd.setIconSize(QSize(48, 48))
-
-           self.buttonGroup.addButton(rbcmd)
-           self.maGrilleBouton.addWidget(rbcmd,ligne,col)
-
-  def clearFiltre(self):
-      self.LEFiltre.setText("")
-      self.ajouteRadioButtons()
-
-  def rbCliqueEtInsere(self,id):
-      self.rbClique(id)
-      self.insereNoeudApresClick(None)
-
-  def rbClique(self,id):
-      try : 
-        self.name=self.dicoCmd[id.text()]
-      except : 
+            #print ('self.editor.maConfiguration.dicoImages', self.editor.maConfiguration.dicoImages)
+            if cmd in self.editor.maConfiguration.dicoImages :
+                fichier=self.editor.maConfiguration.dicoImages[cmd]
+                icon = QIcon()
+                icon.addPixmap(QPixmap(fichier), QIcon.Normal, QIcon.Off)
+                rbcmd.setIcon(icon)
+                rbcmd.setIconSize(QSize(48, 48))
+
+            self.buttonGroup.addButton(rbcmd)
+            self.maGrilleBouton.addWidget(rbcmd,ligne,col)
+
+    def clearFiltre(self):
+        self.LEFiltre.setText("")
+        self.ajouteRadioButtons()
+
+    def rbCliqueEtInsere(self,id):
+        self.rbClique(id)
+        self.insereNoeudApresClick(None)
+
+    def rbClique(self,id):
+
         try :
-          self.name=self.dicoCmd[str(id.text())]
+            self.name=self.dicoCmd[id.text()]
         except :
-          print ('pb d accent : contacter la maintenance')
+            try :
+                self.name=self.dicoCmd[str(id.text())]
+            except :
+                print ('pb d accent : contacter la maintenance')
 
-      definitionEtape=getattr(self.jdc.cata,self.name)
-      #commentaire=getattr(definitionEtape,self.jdc.lang)
-      try :
-        commentaire=getattr(definitionEtape,self.jdc.lang)
-      except :
+        definitionEtape=getattr(self.jdc.cata,self.name)
+        #commentaire=getattr(definitionEtape,self.jdc.lang)
         try :
-           commentaire=getattr(definitionEtape,"ang")
+            commentaire=getattr(definitionEtape,self.jdc.lang)
         except :
-           commentaire=""
-      self.editor.afficheCommentaire(commentaire)
+            try :
+                commentaire=getattr(definitionEtape,"ang")
+            except :
+                commentaire=""
+        self.editor.afficheCommentaire(commentaire)
 
 
 
-  def setValide(self):
-      #PNPN a priori pas d icone mais peut-etre a faire
-      pass
+    def setValide(self):
+        #PNPN a priori pas d icone mais peut-etre a faire
+        pass
index 05e3eac95f60d6a2fbedd729e48e1937fb565541..ae217256b534666fe231172e48144f8ddfdf6a2c 100644 (file)
@@ -28,31 +28,30 @@ from PyQt5.QtWidgets import QDialog, QRadioButton, QGroupBox, QButtonGroup
 from PyQt5.QtGui import QPalette
 from PyQt5.QtCore import QProcess, QFileInfo, Qt, QSize
 
-    
+
 # Import des panels
 
 class MonChoixLangue(Ui_ChoixLangue,QDialog):
-  """
-  Classe definissant le panel associe aux mots-cles qui demandent
-  a l'utilisateur de choisir une seule valeur parmi une liste de valeurs
-  discretes
-  """
-  def __init__(self,  parentAppli=None):
-      QDialog.__init__(self,parentAppli)
-      self.setModal(True)
-      self.setupUi(self)
-      self.parentAppli=parentAppli
-      self.installLangue()
-      self.code=None
-      self.pB_OK.clicked.connect(self.choisitLangue)
-
-
-  def installLangue(self):
-      if self.parentAppli.langue == 'fr' : self.rbFrancais.setChecked(True)
-      else : self.rbEnglish.setChecked(True)
-
-  def choisitLangue(self):
-      if self.rbFrancais.isChecked() : self.parentAppli.langue='fr'
-      else                           : self.parentAppli.langue ='ang'
-      self.close()
-
+    """
+    Classe definissant le panel associe aux mots-cles qui demandent
+    a l'utilisateur de choisir une seule valeur parmi une liste de valeurs
+    discretes
+    """
+    def __init__(self,  appliEficas=None):
+        QDialog.__init__(self,appliEficas)
+        self.setModal(True)
+        self.setupUi(self)
+        self.appliEficas=appliEficas
+        self.installLangue()
+        self.code=None
+        self.pB_OK.clicked.connect(self.choisitLangue)
+
+
+    def installLangue(self):
+        if self.appliEficas.langue == 'fr' : self.rbFrancais.setChecked(True)
+        else : self.rbEnglish.setChecked(True)
+
+    def choisitLangue(self):
+        if self.rbFrancais.isChecked() : self.appliEficas.langue='fr'
+        else                           : self.appliEficas.langue ='ang'
+        self.close()
index 4a73dcbdb0fce25fd9237fe1fccd69b554b768c9..a5e0b371dd4f2f2cb3723d18f141ded77869c446 100644 (file)
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
-   from builtins import range
+    from builtins import str
+    from builtins import range
 except : pass
 
 import types,os
-from six.moves import range
 from PyQt5.QtCore import  Qt
 
 
@@ -41,28 +40,28 @@ class MonFonctionPanel(MonPlusieursBasePanel):
 #  Classe definissant le panel associee aux mots-cles qui demandent
 #  a l'utilisateur de choisir une seule valeur parmi une liste de valeurs
 #  discretes
-  def __init__(self,node, parent = None,name = None,fl = 0):
+    def __init__(self,node, parent = None,name = None,fl = 0):
         #print "MonFonctionPanel"
         self.node=node
         self.setNbValeurs()
         MonPlusieursBasePanel.__init__(self,node,parent,name,fl)
 
-  def setNbValeurs(self):
+    def setNbValeurs(self):
         self.nbValeurs = 1
         if self.node.item.waitTuple()== 1 :
-           for a in self.node.item.definition.type :
-               try :
-                   self.nbValeurs = a.ntuple
-                   break
-               except :
-                   pass
+            for a in self.node.item.definition.type :
+                try :
+                    self.nbValeurs = a.ntuple
+                    break
+                except :
+                    pass
         genea=self.node.item.getGenealogie()
         self.nbValeursASaisir=self.nbValeurs
         if "VALE" in genea: self.nbValeurs=2
         if "VALE_C" in genea: self.nbValeurs=3
 
 
-  def decoupeListeValeurs(self,liste):
+    def decoupeListeValeurs(self,liste):
         #decoupe la liste des valeurs en n ( les x puis les y)
         l_valeurs=[]
         if ((len(liste)% self.nbValeursASaisir != 0 and (len(liste)% self.nbValeurs))):
@@ -71,114 +70,114 @@ class MonFonctionPanel(MonPlusieursBasePanel):
         i=0
         while ( i < len(liste) ) :
             try :
-              t=tuple(liste[i:i+self.nbValeurs])
-              i=i+self.nbValeurs
+                t=tuple(liste[i:i+self.nbValeurs])
+                i=i+self.nbValeurs
             except:
-              t=tuple(liste[i:len(liste)])
+                t=tuple(liste[i:len(liste)])
             l_valeurs.append(t)
         return l_valeurs
 
-  def buildLBValeurs(self,listeValeurs=None):
+    def buildLBValeurs(self,listeValeurs=None):
         self.LBValeurs.clear()
         if listeValeurs== None :
-           listeValeurs=self.node.item.getListeValeurs()
+            listeValeurs=self.node.item.getListeValeurs()
         if self.node.item.waitTuple()== 1 :
-             listeATraiter=listeValeurs
-              for valeur in listeATraiter:
-                  str_valeur=str(valeur)
-                  self.LBValeurs.addItem(str_valeur)
-        else : 
-             for valeur in self.decoupeListeValeurs(listeValeurs):
-                   if type(valeur) == tuple:
-                       TupleEnTexte="("
-                       for val in valeur :
-                           TupleEnTexte = TupleEnTexte + str(self.politique.getValeurTexte(val)) +", "
-                       TupleEnTexte = TupleEnTexte[0:-2] +")"
-                       self.LBValeurs.addItem(TupleEnTexte)
-                   else :
-                       self.LBValeurs.addItem(str(valeur))
-
-
-  def  ajout1Valeur(self,liste=[]):
+            listeATraiter=listeValeurs
+            for valeur in listeATraiter:
+                str_valeur=str(valeur)
+                self.LBValeurs.addItem(str_valeur)
+        else :
+            for valeur in self.decoupeListeValeurs(listeValeurs):
+                if type(valeur) == tuple:
+                    TupleEnTexte="("
+                    for val in valeur :
+                        TupleEnTexte = TupleEnTexte + str(self.politique.getValeurTexte(val)) +", "
+                    TupleEnTexte = TupleEnTexte[0:-2] +")"
+                    self.LBValeurs.addItem(TupleEnTexte)
+                else :
+                    self.LBValeurs.addItem(str(valeur))
+
+
+    def  ajout1Valeur(self,liste=[]):
         # Pour etre appele a partir du Panel Importer (donc plusieurs fois par AjouterNValeur)
         validite=1
         if liste == [] :
-           if self.node.item.waitTuple()== 1 :
-              liste=SaisieValeur.TraiteLEValeurTuple(self)
-              if liste == [''] : return
-           else :
-              liste,validite=SaisieValeur.TraiteLEValeur(self)
-              if validite == 0 : return
+            if self.node.item.waitTuple()== 1 :
+                liste=SaisieValeur.TraiteLEValeurTuple(self)
+                if liste == [''] : return
+            else :
+                liste,validite=SaisieValeur.TraiteLEValeur(self)
+                if validite == 0 : return
         if liste ==[]    : return
 
         if (self.node.item.waitTuple()== 1 and len(liste) != self.nbValeurs):
-            commentaire  = str(liste) 
-            commentaire += tr(" n est pas un tuple de ") 
-            commentaire += str(self.nbValeursASaisir) 
+            commentaire  = str(liste)
+            commentaire += tr(" n est pas un tuple de ")
+            commentaire += str(self.nbValeursASaisir)
             commentaire += tr(" valeurs")
-           self.LEValeur.setText(str(liste))
+            self.LEValeur.setText(str(liste))
             self.editor.afficheInfos(commentaire,Qt.red)
             return
 
         if self.node.item.waitTuple()== 1 :
-              liste2=tuple(liste)
-              liste=liste2
+            liste2=tuple(liste)
+            liste=liste2
 
         index=self.LBValeurs.currentRow()
         if ((self.LBValeurs.isItemSelected(self.LBValeurs.item(index )) == 0) and (index > 0 )):
-           index=0
+            index=0
         else :
-           index=self.LBValeurs.currentRow() + 1
+            index=self.LBValeurs.currentRow() + 1
         indexListe=index*self.nbValeurs
         if index == 0 : indexListe=len(self.listeValeursCourantes)
 
         listeVal=[]
         for valeur in self.listeValeursCourantes :
-                listeVal.append(valeur)
+            listeVal.append(valeur)
         if self.node.item.waitTuple()== 1 :
-             indexListe = index
-             validite,comm,comm2,listeRetour=self.politique.ajoutTuple(liste,index,listeVal)
+            indexListe = index
+            validite,comm,comm2,listeRetour=self.politique.ajoutTuple(liste,index,listeVal)
         else :
-             validite,comm,comm2,listeRetour=self.politique.ajoutValeurs(liste,index,listeVal)
+            validite,comm,comm2,listeRetour=self.politique.ajoutValeurs(liste,index,listeVal)
         self.Commentaire.setText(tr(comm2))
         if not validite :
-                self.editor.afficheInfos(comm,Qt.red)
+            self.editor.afficheInfos(comm,Qt.red)
         else:
-           self.LEValeur.setText("")
-           l1=self.listeValeursCourantes[:indexListe]
-           l3=self.listeValeursCourantes[indexListe:]
-           if self.node.item.waitTuple()== 1 :
-             listeATraiter=listeRetour
-           else : 
-              listeATraiter=self.decoupeListeValeurs(listeRetour)
-           for valeur in  listeATraiter :
-               if type(valeur) == tuple:
-                  TupleEnTexte="("
-                  for val in valeur :
-                      TupleEnTexte = TupleEnTexte + str(self.politique.getValeurTexte(val)) +", "
-                  str_valeur = TupleEnTexte[0:-2] +")"
-               else :
-                  str_valeur=str(valeur)
-               self.LBValeurs.insertItem(index,str_valeur)
-               item=self.LBValeurs.item(index)
-               item.setSelected(1)
-               self.LBValeurs.setCurrentItem(item)
-               index=index+1
-           self.listeValeursCourantes=l1+listeRetour+l3
-           self.buildLBValeurs(self.listeValeursCourantes)
-
-
-  def ajoutNValeur(self,liste) :
+            self.LEValeur.setText("")
+            l1=self.listeValeursCourantes[:indexListe]
+            l3=self.listeValeursCourantes[indexListe:]
+            if self.node.item.waitTuple()== 1 :
+                listeATraiter=listeRetour
+            else :
+                listeATraiter=self.decoupeListeValeurs(listeRetour)
+            for valeur in  listeATraiter :
+                if type(valeur) == tuple:
+                    TupleEnTexte="("
+                    for val in valeur :
+                        TupleEnTexte = TupleEnTexte + str(self.politique.getValeurTexte(val)) +", "
+                    str_valeur = TupleEnTexte[0:-2] +")"
+                else :
+                    str_valeur=str(valeur)
+                self.LBValeurs.insertItem(index,str_valeur)
+                item=self.LBValeurs.item(index)
+                item.setSelected(1)
+                self.LBValeurs.setCurrentItem(item)
+                index=index+1
+            self.listeValeursCourantes=l1+listeRetour+l3
+            self.buildLBValeurs(self.listeValeursCourantes)
+
+
+    def ajoutNValeur(self,liste) :
         if len(liste)%self.nbValeurs != 0 :
-           texte="Nombre de valeur incorrecte"
-           #self.Commentaire.setText(texte)
-           self.editor.afficheInfos(texte,Qt.red)
-           return
+            texte="Nombre de valeur incorrecte"
+            #self.Commentaire.setText(texte)
+            self.editor.afficheInfos(texte,Qt.red)
+            return
         listeDecoupee=self.decoupeListeValeurs(liste)
         for vals in listeDecoupee :
             self.ajout1Valeur(vals)
-           
-  def sup1Valeur(self):
+
+    def sup1Valeur(self):
         index=self.LBValeurs.currentRow()
         if index == None : return
         removed_item = self.LBValeurs.takeItem(index)
@@ -190,14 +189,12 @@ class MonFonctionPanel(MonPlusieursBasePanel):
             indexAOter=index*self.nbValeurs + i
             indexInterdit.append(indexAOter)
         if self.node.item.waitTuple()== 1 :
-           indexInterdit=[index]
+            indexInterdit=[index]
 
         i=0
         for valeur in self.listeValeursCourantes :
-            if not (i in indexInterdit) : 
+            if not (i in indexInterdit) :
                 listeVal.append(valeur)
             i = i+1
         self.listeValeursCourantes=listeVal
         listeValeurs=self.listeValeursCourantes
-
-      
index cd64f1e59610ff26d38d96a40bb080793243f713..bb4b34e0acd0ccf8e485cbfa24738de4893080eb 100644 (file)
@@ -28,161 +28,160 @@ from Extensions.i18n    import tr
 from desGroupeOptionnel import Ui_groupeOptionnel
 from desPBOptionnelMT   import Ui_customPB
 
-    
+
 # Import des panels
 
 class MonRBButtonCustom(QCheckBox):
 
-   def __init__(self,texte,monOptionnel,parent=None,couleur=None):
-      QCheckBox.__init__(self,tr(texte),parent)
-      self.mousePressed=True
-      self.monOptionnel=monOptionnel
-      self.setToolTip(tr("clicker: affichage aide, double-click: ajout"))
-      if couleur != None :
-         mapalette=self.palette()
-         mapalette.setColor( QPalette.WindowText, couleur )
-         mapalette.setColor( QPalette.Base, Qt.green )
-         self.setPalette( mapalette );
-         self.setText(tr(texte))
-         try :
-           monToolTip=monOptionnel.parentMC.dictToolTipMc[texte]
-           self.setToolTip(monToolTip)
-         except :
-           pass
-
-
-   def mouseDoubleClickEvent(self, event):
-      #print "dans mouseDoubleClickEvent", self
-      if self not in self.monOptionnel.dicoCb: 
-         event.accept()
-         return
-      listeCheckedMC="+"+self.monOptionnel.dicoCb[self]
-      self.monOptionnel.parentMC.ajoutMC(listeCheckedMC)
-      event.accept()
-      
-
-   def mousePressEvent(self, event):
-      if not( event.button() != Qt.RightButton)  : 
-         event.accept()
-         return
-      if self.monOptionnel.cbPressed != None :
-         self.monOptionnel.cbPressed.setChecked(False)
-      self.monOptionnel.cbPressed=self
-      if self.mousePressed == False :
-         self.mousePressed=True
-      else :
-         self.mousePressed=False
-         self.ajoutAideMC()
-      QCheckBox.mousePressEvent(self, event)
-      event.accept()
-
-   def ajoutAideMC(self):
-      try :
-        maDefinition = self.monOptionnel.parentMC.definition.entites[self.texte]
-        maLangue =  self.monOptionnel.parentMC.jdc.lang
-        if hasattr(maDefinition,maLangue): 
-          self.monAide = getattr(maDefinition,self.monOptionnel.parentMC.jdc.lang)
-        else : 
-          self.monAide = ""
-      except :
-          self.monAide = ""
-      self.monOptionnel.parentMC.editor.afficheCommentaire(self.monAide)
-  
+    def __init__(self,texte,monOptionnel,parent=None,couleur=None):
+        QCheckBox.__init__(self,tr(texte),parent)
+        self.mousePressed=True
+        self.monOptionnel=monOptionnel
+        self.setToolTip(tr("clicker: affichage aide, double-click: ajout"))
+        if couleur != None :
+            mapalette=self.palette()
+            mapalette.setColor( QPalette.WindowText, couleur )
+            mapalette.setColor( QPalette.Base, Qt.green )
+            self.setPalette( mapalette );
+            self.setText(tr(texte))
+            try :
+                monToolTip=monOptionnel.parentMC.dictToolTipMc[texte]
+                self.setToolTip(monToolTip)
+            except :
+                pass
+
+
+    def mouseDoubleClickEvent(self, event):
+        #print "dans mouseDoubleClickEvent", self
+        if self not in self.monOptionnel.dicoCb:
+            event.accept()
+            return
+        listeCheckedMC="+"+self.monOptionnel.dicoCb[self]
+        self.monOptionnel.parentMC.ajoutMC(listeCheckedMC)
+        event.accept()
+
+
+    def mousePressEvent(self, event):
+        if not( event.button() != Qt.RightButton)  :
+            event.accept()
+            return
+        if self.monOptionnel.cbPressed != None :
+            self.monOptionnel.cbPressed.setChecked(False)
+        self.monOptionnel.cbPressed=self
+        if self.mousePressed == False :
+            self.mousePressed=True
+        else :
+            self.mousePressed=False
+            self.ajoutAideMC()
+        QCheckBox.mousePressEvent(self, event)
+        event.accept()
+
+    def ajoutAideMC(self):
+        try :
+            maDefinition = self.monOptionnel.parentMC.definition.entites[self.texte]
+            maLangue =  self.monOptionnel.parentMC.jdc.lang
+            if hasattr(maDefinition,maLangue):
+                self.monAide = getattr(maDefinition,self.monOptionnel.parentMC.jdc.lang)
+            else :
+                self.monAide = ""
+        except :
+            self.monAide = ""
+        self.monOptionnel.parentMC.editor.afficheCommentaire(self.monAide)
+
 class MonPBButtonCustom(QWidget,Ui_customPB):
 
-   def __init__(self,texte,monOptionnel,parent=None,couleur=None):
-      QWidget.__init__(self)
-      self.setupUi(self)
-      if couleur != None :
-         self.monPb.setText(texte)
-         self.monPb.setStyleSheet('QPushButton {background-color: #A3C1DA; color: red;}')
-         #mapalette=self.monPb.palette()
-         #mapalette.setColor( QPalette.ButtonText, Qt.red )
-         #self.monPb.setPalette( mapalette )
-         self.monPb.update()
-         #self.update()
-         try :
-           monToolTip=monOptionnel.parentMC.dictToolTipMc[texte]
-           self.monPb.setToolTip(monToolTip)
-         except :
-           pass
-      self.monPb.setText(texte)
-      self.monPb.clicked.connect(self.ajoutMC)
-
-      self.texte=texte
-      self.monOptionnel=monOptionnel
-      self.definitAideMC()
-      self.setToolTip(self.monAide)
-
-   def ajoutMC (self) :
-      listeCheckedMC="+"+self.monOptionnel.dicoCb[self]
-      self.monOptionnel.parentMC.ajoutMC(listeCheckedMC)
-
-   def definitAideMC(self):
-      try :
-        maDefinition = self.monOptionnel.parentMC.definition.entites[self.texte]
-        maLangue =  self.monOptionnel.parentMC.jdc.lang
-        if hasattr(maDefinition,maLangue): 
-          self.monAide = getattr(maDefinition,self.monOptionnel.parentMC.jdc.lang)
-      except :
-          self.monAide = ""
-        
-class MonGroupeOptionnel (QWidget,Ui_groupeOptionnel):
-  """
-  """
-  def __init__(self,liste,liste_rouge,parentQt,parentMC):
-     #print ("dans init de monWidgetOptionnel ", parentQt, liste,parentMC)
-     QWidget.__init__(self,None)
-     self.setupUi(self)
-     self.listeChecked=[]
-     self.dicoCb={}
-     self.mousePressed=False
-     self.cbPressed=None
-     self.cb=None
-     self.parentQt=parentQt
-     self.parentMC=parentMC
-     
-
-     if liste != [] : 
-        self.affiche(liste,liste_rouge)
-        self.afficheTitre()
-     elif self.parentQt.parentQt.maConfiguration.afficheOptionnelVide != False : 
-        self.afficheTitre()
-        self.MCOptionnelLayout.insertWidget(0,QLabel(tr('Pas de MC Optionnel')))
-     else :
-        self.frameLabelMC.close()
-     #print "dans fin de monWidgetOptionnel ", parentQt
-
-
-  def afficheTitre(self):
-     labeltext,fonte,couleur = self.parentMC.node.item.getLabelText()
-     #print (labeltext)
-     l=tr(labeltext)
-     li=[]
-     while len(l) > 25:
-         li.append(l[0:24])
-         l=l[24:]
-     li.append(l)
-     texte=""
-     for l in li : texte+=l+"\n"
-     texte=texte[0:-1]
-     self.MCLabel.setText(texte)
-
-  def affiche(self,liste,liste_rouge):
-     #print ("dans Optionnel ____ affiche", liste,liste_rouge)
-     self.dicoCb={}
-     liste.reverse()
-     for mot in liste :
-         #if mot in liste_rouge : print ('je dois afficher en rouge' , mot)
-         couleur=None
-         if mot in liste_rouge : couleur=Qt.red 
-         if self.parentQt.parentQt.maConfiguration.simpleClic == False :
-            cb = MonRBButtonCustom(mot,self,couleur=couleur)
-            cb.clicked.connect(cb.ajoutAideMC)
-         else :
-            cb = MonPBButtonCustom(mot,self,couleur=couleur)
-
-         self.MCOptionnelLayout.insertWidget(0,cb)
-         self.dicoCb[cb]=mot
-     self.scrollAreaCommandesOptionnelles.horizontalScrollBar().setSliderPosition(0)
+    def __init__(self,texte,monOptionnel,parent=None,couleur=None):
+        QWidget.__init__(self)
+        self.setupUi(self)
+        if couleur != None :
+            self.monPb.setText(texte)
+            self.monPb.setStyleSheet('QPushButton {background-color: #A3C1DA; color: red;}')
+            #mapalette=self.monPb.palette()
+            #mapalette.setColor( QPalette.ButtonText, Qt.red )
+            #self.monPb.setPalette( mapalette )
+            self.monPb.update()
+            #self.update()
+            try :
+                monToolTip=monOptionnel.parentMC.dictToolTipMc[texte]
+                self.monPb.setToolTip(monToolTip)
+            except :
+                pass
+        self.monPb.setText(texte)
+        self.monPb.clicked.connect(self.ajoutMC)
+
+        self.texte=texte
+        self.monOptionnel=monOptionnel
+        self.definitAideMC()
+        self.setToolTip(self.monAide)
+
+    def ajoutMC (self) :
+        listeCheckedMC="+"+self.monOptionnel.dicoCb[self]
+        self.monOptionnel.parentMC.ajoutMC(listeCheckedMC)
+
+    def definitAideMC(self):
+        try :
+            maDefinition = self.monOptionnel.parentMC.definition.entites[self.texte]
+            maLangue =  self.monOptionnel.parentMC.jdc.lang
+            if hasattr(maDefinition,maLangue):
+                self.monAide = getattr(maDefinition,self.monOptionnel.parentMC.jdc.lang)
+        except :
+            self.monAide = ""
 
+class MonGroupeOptionnel (QWidget,Ui_groupeOptionnel):
+    """
+    """
+    def __init__(self,liste,liste_rouge,parentQt,parentMC):
+        #print ("dans init de monWidgetOptionnel ", parentQt, liste,parentMC)
+        QWidget.__init__(self,None)
+        self.setupUi(self)
+        self.listeChecked=[]
+        self.dicoCb={}
+        self.mousePressed=False
+        self.cbPressed=None
+        self.cb=None
+        self.parentQt=parentQt
+        self.parentMC=parentMC
+
+
+        if liste != [] :
+            self.affiche(liste,liste_rouge)
+            self.afficheTitre()
+        elif self.parentQt.parentQt.maConfiguration.afficheOptionnelVide != False :
+            self.afficheTitre()
+            self.MCOptionnelLayout.insertWidget(0,QLabel(tr('Pas de MC Optionnel')))
+        else :
+            self.frameLabelMC.close()
+        #print "dans fin de monWidgetOptionnel ", parentQt
+
+
+    def afficheTitre(self):
+        labeltext,fonte,couleur = self.parentMC.node.item.getLabelText()
+        #print (labeltext)
+        l=tr(labeltext)
+        li=[]
+        while len(l) > 25:
+            li.append(l[0:24])
+            l=l[24:]
+        li.append(l)
+        texte=""
+        for l in li : texte+=l+"\n"
+        texte=texte[0:-1]
+        self.MCLabel.setText(texte)
+
+    def affiche(self,liste,liste_rouge):
+        #print ("dans Optionnel ____ affiche", liste,liste_rouge)
+        self.dicoCb={}
+        liste.reverse()
+        for mot in liste :
+            #if mot in liste_rouge : print ('je dois afficher en rouge' , mot)
+            couleur=None
+            if mot in liste_rouge : couleur=Qt.red
+            if self.parentQt.parentQt.maConfiguration.simpleClic == False :
+                cb = MonRBButtonCustom(mot,self,couleur=couleur)
+                cb.clicked.connect(cb.ajoutAideMC)
+            else :
+                cb = MonPBButtonCustom(mot,self,couleur=couleur)
+
+            self.MCOptionnelLayout.insertWidget(0,cb)
+            self.dicoCb[cb]=mot
+        self.scrollAreaCommandesOptionnelles.horizontalScrollBar().setSliderPosition(0)
index 90f30c9eed2c57a46374fea3e3180e21903648da..9e998cb8e36f1a7657760ca9ab5399b45e34ed4a 100644 (file)
@@ -33,20 +33,19 @@ from Extensions.i18n import tr
 
 class MonLabelClic(QLabel) :
 
-     def __init__(self,parent):
+    def __init__(self,parent):
         QLabel.__init__(self,parent)
-        # Pas propre mais impossible de faire fonctionner isinstance sur Groupe, MonWidgetCommande 
+        # Pas propre mais impossible de faire fonctionner isinstance sur Groupe, MonWidgetCommande
         # PNPNPN ? a ameliorer
         if isinstance (parent,QFrame): parent=parent.parent()
         while not( hasattr(parent,'traiteClicSurLabel')) :
-             try : parent=parent.parent()
-             except : print ("pb avec MonLabelClic"); break
+            try : parent=parent.parent()
+            except : print ("pb avec MonLabelClic"); break
         self.parent=parent
 
 
-     def event(self,event) :
-         if event.type() == QEvent.MouseButtonRelease:
+    def event(self,event) :
+        if event.type() == QEvent.MouseButtonRelease:
             self.texte=self.text()
             self.parent.traiteClicSurLabel(self.texte)
-         return QLabel.event(self,event)
-
+        return QLabel.event(self,event)
index 1a9471bdca7c6af35564de6e4fafd3ceda9115ab..441710dbd165e6269d6888c1ccb1f57fc75a63da 100644 (file)
@@ -21,7 +21,7 @@
 
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 from PyQt5.QtWidgets import  QButtonGroup, QToolButton
@@ -34,34 +34,32 @@ class MonLayoutBouton :
 #----------------------
 
 #  -------------------------------
-   def __init__(self,appliEficas):
+    def __init__(self,appliEficas):
 #  -------------------------------
 
-      self.appliEficas = appliEficas
-      self.buttonGroup = QButtonGroup()
-    
-      for etape in self.appliEficas.readercata.cata.JdC.commandes :
-        nomEtape = etape.nom
-        toolButton = QToolButton(self.appliEficas.toolBarCommande)
-        icon = QIcon()
-        if nomEtape in self.appliEficas.maConfiguration.dicoIcones:
-             fichier = self.appliEficas.maConfiguration.dicoIcones[nomEtape]
-             icon.addPixmap(QPixmap(fichier), QIcon.Normal, QIcon.Off)
-             toolButton.setIcon(icon)
-        else :
-             try :    label = nomEtape[0:3]
-             except : label = nomEtape
-             toolButton.setText(label)
+        self.appliEficas = appliEficas
+        self.buttonGroup = QButtonGroup()
 
-        action = self.appliEficas.toolBarCommande.addWidget(toolButton)
-        action.setVisible(True)
-        toolButton.setObjectName(nomEtape)
-        toolButton.setToolTip(tr(nomEtape))
-        self.buttonGroup.addButton(toolButton)
+        for etape in self.appliEficas.readercata.cata.JdC.commandes :
+            nomEtape = etape.nom
+            toolButton = QToolButton(self.appliEficas.toolBarCommande)
+            icon = QIcon()
+            if nomEtape in self.appliEficas.maConfiguration.dicoIcones:
+                fichier = self.appliEficas.maConfiguration.dicoIcones[nomEtape]
+                icon.addPixmap(QPixmap(fichier), QIcon.Normal, QIcon.Off)
+                toolButton.setIcon(icon)
+            else :
+                try :    label = nomEtape[0:3]
+                except : label = nomEtape
+                toolButton.setText(label)
 
-      self.buttonGroup.buttonClicked.connect(self.rbCliqueEtInsere)
-
-   def rbCliqueEtInsere(self,id):
-        self.appliEficas.handleAjoutEtape(id.objectName()) 
+            action = self.appliEficas.toolBarCommande.addWidget(toolButton)
+            action.setVisible(True)
+            toolButton.setObjectName(nomEtape)
+            toolButton.setToolTip(tr(nomEtape))
+            self.buttonGroup.addButton(toolButton)
 
+        self.buttonGroup.buttonClicked.connect(self.rbCliqueEtInsere)
 
+    def rbCliqueEtInsere(self,id):
+        self.appliEficas.handleAjoutEtape(id.objectName())
index dd73054d1228742f2faf1354c2066d2e1646f22c..2baabb1309b58194597be84a02b8eff55d6eae10 100644 (file)
@@ -29,36 +29,35 @@ from PyQt5.QtCore import Qt
 # Import des panels
 
 class DRecherche(Ui_desRecherche ,QDialog):
-  """
-  """
-  def __init__(self,parent = None , name = None,fl = 0):
-      QDialog.__init__(self,parent)
-      self.parentQT=parent
-      self.tree=self.parentQT.tree
-      self.setupUi(self)
-      self.PBSuivant.setDefault(True)
-      self.PBSuivant.setAutoDefault(False)
-      self.PBSuivant.clicked.connect( self.suivantClicked)
-      self.LERecherche.returnPressed.connect(self.recherche)
-      self.surLigne=0
-      self.listeTrouvee=()
-      self.nodeSurligne=None
+    """
+    """
+    def __init__(self,parent = None , name = None,fl = 0):
+        QDialog.__init__(self,parent)
+        self.parentQT=parent
+        self.tree=self.parentQT.tree
+        self.setupUi(self)
+        self.PBSuivant.setDefault(True)
+        self.PBSuivant.setAutoDefault(False)
+        self.PBSuivant.clicked.connect( self.suivantClicked)
+        self.LERecherche.returnPressed.connect(self.recherche)
+        self.surLigne=0
+        self.listeTrouvee=()
+        self.nodeSurligne=None
 
-  def suivantClicked(self):
-      #if self.motAChercher!=self.LERecherche.text(): self.recherche()
-      if self.listeTrouvee=={} : return
-      if self.surLigne > len(self.listeTrouvee) -1 : return
-      if self.nodeSurligne!=None : self.nodeSurligne.updateNodeTexteInBlack()
-      #self.listeTrouvee[self.surLigne].updateNodeTexteInBlue()
-      #self.nodeSurligne=self.listeTrouvee[self.surLigne]
-      self.listeTrouvee[self.surLigne].select()
-      self.listeTrouvee[self.surLigne].affichePanneau()
-      self.surLigne=self.surLigne+1
-      self.PBSuivant.setFocus()
-      if self.surLigne == len(self.listeTrouvee): self.surLigne=0
-
-  def recherche(self):
-      self.motAChercher=self.LERecherche.text()
-      self.listeTrouvee=self.tree.findItems(self.motAChercher,Qt.MatchContains|Qt.MatchRecursive,0)
-      self.surLigne=0
+    def suivantClicked(self):
+        #if self.motAChercher!=self.LERecherche.text(): self.recherche()
+        if self.listeTrouvee=={} : return
+        if self.surLigne > len(self.listeTrouvee) -1 : return
+        if self.nodeSurligne!=None : self.nodeSurligne.updateNodeTexteInBlack()
+        #self.listeTrouvee[self.surLigne].updateNodeTexteInBlue()
+        #self.nodeSurligne=self.listeTrouvee[self.surLigne]
+        self.listeTrouvee[self.surLigne].select()
+        self.listeTrouvee[self.surLigne].affichePanneau()
+        self.surLigne=self.surLigne+1
+        self.PBSuivant.setFocus()
+        if self.surLigne == len(self.listeTrouvee): self.surLigne=0
 
+    def recherche(self):
+        self.motAChercher=self.LERecherche.text()
+        self.listeTrouvee=self.tree.findItems(self.motAChercher,Qt.MatchContains|Qt.MatchRecursive,0)
+        self.surLigne=0
index b8b57cdd5a35c848c569b0976cc62e56abd62709..825db5515599f3f59f124f3ee9b770966946c4f2 100644 (file)
@@ -22,7 +22,7 @@
 
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 from desRechercheCatalogue import Ui_desRechercheCatalogue
@@ -34,54 +34,53 @@ from Extensions.i18n import tr
 # Import des panels
 
 class DRechercheCatalogue (Ui_desRechercheCatalogue ,QDialog):
-  """
-  """
-  def __init__(self,parent,editor ):
-      QDialog.__init__(self,parent)
-      #self.setModal(True)
-      self.setupUi(self)
-      self.editor=editor
-      self.CBRecherche.setEditable(True)
-      self.CBRecherche.lineEdit().returnPressed.connect(self.rechercheCB)
-      self.CBRecherche.currentIndexChanged.connect(self.rechercheCB)
-      self.CBRecherche.currentTextChanged.connect(self.rechercheCB)
+    """
+    """
+    def __init__(self,parent,editor ):
+        QDialog.__init__(self,parent)
+        #self.setModal(True)
+        self.setupUi(self)
+        self.editor=editor
+        self.CBRecherche.setEditable(True)
+        self.CBRecherche.lineEdit().returnPressed.connect(self.rechercheCB)
+        self.CBRecherche.currentIndexChanged.connect(self.rechercheCB)
+        self.CBRecherche.currentTextChanged.connect(self.rechercheCB)
 
-      self.initRecherche()
+        self.initRecherche()
 
-  def initRecherche(self):
-      listeChoix=list(self.editor.readercata.dicoInverse.keys())
-      self.CBRecherche.addItem("")
-      for choix in listeChoix:
-          self.CBRecherche.addItem(choix)
-      monCompleteur=QCompleter(listeChoix,self)
-      monCompleteur.setCompletionMode(QCompleter.PopupCompletion)
-      self.CBRecherche.setCompleter(monCompleteur)
+    def initRecherche(self):
+        listeChoix=list(self.editor.readercata.dicoInverse.keys())
+        self.CBRecherche.addItem("")
+        for choix in listeChoix:
+            self.CBRecherche.addItem(choix)
+        monCompleteur=QCompleter(listeChoix,self)
+        monCompleteur.setCompletionMode(QCompleter.PopupCompletion)
+        self.CBRecherche.setCompleter(monCompleteur)
 
 
-  def rechercheCB(self):
-      motAChercher=self.CBRecherche.lineEdit().text()
-      self.recherche(motAChercher)
+    def rechercheCB(self):
+        motAChercher=self.CBRecherche.lineEdit().text()
+        self.recherche(motAChercher)
 
 
-  def recherche(self,motAChercher):
-      if str(motAChercher)=="" or str(motAChercher) == None : return
-      if str(motAChercher) not in self.editor.readercata.dicoInverse:return
-      try :
-      #if 1  :
-        genea= self.editor.readercata.dicoInverse[str(motAChercher)]
-        listeGenea=[]
-        for t in genea : listeGenea.append(t[0])
-        listeGenea.reverse()
-        texte=''
-        i=0
-        for mc in listeGenea :
-         ligne = i*'   '+str(mc) + ' / '+tr(str(mc))+'\n' 
-         i=i+1
-         texte += ligne
-        self.teGenea.setText(texte)
-        self.teDoc.setText(getattr(genea[0][1],self.editor.appliEficas.langue))
-        
-        
-      except :
-        pass
+    def recherche(self,motAChercher):
+        if str(motAChercher)=="" or str(motAChercher) == None : return
+        if str(motAChercher) not in self.editor.readercata.dicoInverse:return
+        try :
+        #if 1  :
+            genea= self.editor.readercata.dicoInverse[str(motAChercher)]
+            listeGenea=[]
+            for t in genea : listeGenea.append(t[0])
+            listeGenea.reverse()
+            texte=''
+            i=0
+            for mc in listeGenea :
+                ligne = i*'   '+str(mc) + ' / '+tr(str(mc))+'\n'
+                i=i+1
+                texte += ligne
+            self.teGenea.setText(texte)
+            self.teDoc.setText(getattr(genea[0][1],self.editor.appliEficas.langue))
 
+
+        except :
+            pass
index 0683c6794a2be04b45398f7a929c1f898b3e8413..e3cb4a87f14f24dda224c93b138c255d9717337d 100644 (file)
@@ -22,7 +22,7 @@
 
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 from desSelectVal import Ui_DSelVal
@@ -33,17 +33,17 @@ from PyQt5.QtCore import QTimer, Qt
 from PyQt5.QtGui import QPalette
 
 class DSelVal(Ui_DSelVal,QDialog):
-   def __init__(self,parent ,modal ) :
-       QDialog.__init__(self,parent)
-       self.setupUi(self)
+    def __init__(self,parent ,modal ) :
+        QDialog.__init__(self,parent)
+        self.setupUi(self)
 
 class MonSelectVal(DSelVal):
-  """
-  Classe definissant le panel associe aux mots-cles qui demandent
-  a l'utilisateur de choisir une seule valeur parmi une liste de valeurs
-  discretes
-  """
-  def __init__(self,file,parent,name = None,fl = 0):
+    """
+    Classe definissant le panel associe aux mots-cles qui demandent
+    a l'utilisateur de choisir une seule valeur parmi une liste de valeurs
+    discretes
+    """
+    def __init__(self,file,parent,name = None,fl = 0):
         #print "MonSelectVal"
         self.parent=parent
         DSelVal.__init__(self,parent,0)
@@ -55,7 +55,7 @@ class MonSelectVal(DSelVal):
         self.initVal()
         self.connecterSignaux()
 
-  def connecterSignaux(self) :
+    def connecterSignaux(self) :
         self.Bespace.clicked.connect(self.selectEsp)
         self.BpointVirgule.clicked.connect(self.selectPoint)
         self.Bvirgule.clicked.connect(self.selectVir)
@@ -63,7 +63,7 @@ class MonSelectVal(DSelVal):
         self.BImportTout.clicked.connect(self.BImportToutPressed)
         self.parent.editor.sb.messageChanged.connect(self.messageAChanger)
 
-  def connecterSignauxQT4(self) :
+    def connecterSignauxQT4(self) :
         self.connect(self.Bespace,SIGNAL("clicked()"),self.selectEsp)
         self.connect(self.BpointVirgule,SIGNAL("clicked()"),self.selectPoint)
         self.connect(self.Bvirgule,SIGNAL("clicked()"),self.selectVir)
@@ -71,66 +71,65 @@ class MonSelectVal(DSelVal):
         self.connect(self.BImportTout,SIGNAL("clicked()"),self.BImportToutPressed)
         self.connect(self.parent.editor.sb,SIGNAL("messageChanged(QString)"),self.messageAChanger)
 
-  def messageAChanger(self):
-      message=self.parent.editor.sb.currentMessage()
-      mapalette=self.sb.palette()
-      mapalette.setColor( QPalette.Text,Qt.red )
-      self.sb.setPalette( mapalette )
-      self.sb.setText(message)
-      QTimer.singleShot(3000, self.efface)
-      
-  def efface(self):
-      self.sb.setText("")
-
-  def readVal(self):
+    def messageAChanger(self):
+        message=self.parent.editor.sb.currentMessage()
+        mapalette=self.sb.palette()
+        mapalette.setColor( QPalette.Text,Qt.red )
+        self.sb.setPalette( mapalette )
+        self.sb.setText(message)
+        QTimer.singleShot(3000, self.efface)
+
+    def efface(self):
+        self.sb.setText("")
+
+    def readVal(self):
         if self.file == "" : return
         try :
-          f = open(self.file, "r")
-          self.texte = f.read()
-          f.close()
+            f = open(self.file, "r")
+            self.texte = f.read()
+            f.close()
         except :
-          QMessageBox.warning( self,tr( "Fichier Indisponible"),tr( "Lecture impossible"))
-          self.texte=""
-          return
+            QMessageBox.warning( self,tr( "Fichier Indisponible"),tr( "Lecture impossible"))
+            self.texte=""
+            return
 
-  def initVal(self):
+    def initVal(self):
         self.TBtext.clear()
         self.TBtext.setText(self.texte)
 
-  def selectEsp(self):
+    def selectEsp(self):
         self.separateur=" "
-        
-  def selectVir(self):
+
+    def selectVir(self):
         self.separateur=","
-        
-  def selectPoint(self):
+
+    def selectPoint(self):
         self.separateur=";"
-        
-  def BImportSelPressed(self):
+
+    def BImportSelPressed(self):
 
         texte = self.TBtext.textCursor().selectedText()
         textTraite=texte.replace(u'\u2029',"\n")
         self.textTraite=str(textTraite)
         self.traitement()
-        
-  def BImportToutPressed(self):
+
+    def BImportToutPressed(self):
         self.textTraite=self.texte
         self.traitement()
 
-  def traitement(self):
+    def traitement(self):
         if self.textTraite == "" : return
         if self.textTraite[-1]=="\n" : self.textTraite=self.textTraite[0:-1]
         self.textTraite=self.textTraite.replace("\n",self.separateur)
         liste1=self.textTraite.split(self.separateur)
         liste=[]
         for val in liste1 :
-          if val != '' and val != ' ' and val != self.separateur :
-            val=str(val)
-            try :
-            #if 1 :
-               val2=eval(val,{})
-               liste.append(val2)
-            except :
-              pass
-        self.parent.ajoutNValeur(liste) 
-        
+            if val != '' and val != ' ' and val != self.separateur :
+                val=str(val)
+                try :
+                #if 1 :
+                    val2=eval(val,{})
+                    liste.append(val2)
+                except :
+                    pass
+        self.parent.ajoutNValeur(liste)
index a144a682f83dbbfbbcdcc640141559a9e558a5c0..b84d66401541ac2fec8be9795d5198417f5deb2e 100644 (file)
@@ -41,14 +41,11 @@ class ViewRegles(Ui_viewRegles,QDialog):
 
         if entete != None : self.setWindowTitle (entete)
         for ligne in liste :
-          texte=ligne[0]
-          couleur=ligne[1]
-          if couleur==Qt.black :
-             self.LBRegles.addItem(texte)
-          else :
-             monItem=QListWidgetItem(texte)
-             monItem.setForeground(Qt.red)
-             self.LBRegles.addItem(monItem)
-
-
-        
+            texte=ligne[0]
+            couleur=ligne[1]
+            if couleur==Qt.black :
+                self.LBRegles.addItem(texte)
+            else :
+                monItem=QListWidgetItem(texte)
+                monItem.setForeground(Qt.red)
+                self.LBRegles.addItem(monItem)
index d55a8bc93152bd340390e6d1ceeac16b586050c3..d16903b85374a1d1d7f8aa87a005405c8dcf76ad 100644 (file)
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import types,os
 import traceback
 
 from Extensions.i18n import tr
-import six
 
 from PyQt5.QtWidgets import QDialog, QMessageBox, QFileDialog
 from PyQt5.QtCore import QSize
@@ -51,16 +50,16 @@ class ViewText(Ui_dView,QDialog):
         if entete != None : self.setWindowTitle (entete)
         if entete != None : self.setText (texte)
 
-        
-    def setText(self, txt ):    
+
+    def setText(self, txt ):
         self.view.setText(txt)
-        
+
     def saveFile(self):
         #recuperation du nom du fichier
         if self.editor != None :
-           dir=self.editor.appliEficas.maConfiguration.savedir
+            dir=self.editor.appliEficas.maConfiguration.savedir
         else:
-           dir='/tmp'
+            dir='/tmp'
         fn = QFileDialog.getSaveFileName(None,
                 tr("Sauvegarder le fichier"),
                 dir)
@@ -68,17 +67,15 @@ class ViewText(Ui_dView,QDialog):
         if fn == ""  : return
         if fn == None : return (0, None)
 
-        ulfile = os.path.abspath(six.text_type(fn))
+        ulfile = os.path.abspath(fn)
         if self.editor != None :
-           self.editor.appliEficas.maConfiguration.savedir=os.path.split(ulfile)[0]
+            self.editor.appliEficas.maConfiguration.savedir=os.path.split(ulfile)[0]
         try:
-           f = open(fn, 'w')
-           f.write(str(self.view.toPlainText()))
-           f.close()
-           return 1
+            f = open(fn, 'w')
+            f.write(str(self.view.toPlainText()))
+            f.close()
+            return 1
         except IOError as why:
-           QMessageBox.critical(self, tr("Sauvegarder le fichier"),
-                 tr('Le fichier')+str(fn) + tr('n a pas pu etre sauvegarde : ') + str(why))
-           return
-
-
+            QMessageBox.critical(self, tr("Sauvegarder le fichier"),
+                  tr('Le fichier')+str(fn) + tr('n a pas pu etre sauvegarde : ') + str(why))
+            return
index 12c906908608b7d337240ce982d110c63a8737fb..209ebc792b36a00d9a1bdee58696e00788702ebc 100644 (file)
@@ -28,15 +28,15 @@ from PyQt5.QtWidgets import QDialog
 # Import des panels
 
 class DVisu(Ui_DVisu, QDialog):
-  """
-  """
-  def __init__(self,parent = None , name = None,fl = 0):
-      QDialog.__init__(self,parent)
-      self.setModal(True)
-      self.setupUi(self)
+    """
+    """
+    def __init__(self,parent = None , name = None,fl = 0):
+        QDialog.__init__(self,parent)
+        self.setModal(True)
+        self.setupUi(self)
 
-  def on_buttonCancel_clicked(self):
-      QDialog.reject(self)
+    def on_buttonCancel_clicked(self):
+        QDialog.reject(self)
 
-  def on_buttonOk_clicked(self):
-      QDialog.accept(self)
+    def on_buttonOk_clicked(self):
+        QDialog.accept(self)
index 175dc9a0298feaf3035453bb1ee472f2a5f8b467..f189312f0f5388cada8b861591f5104cb1b7dcc1 100644 (file)
@@ -24,29 +24,28 @@ import types,os
 # Modules Eficas
 from Extensions.i18n import tr
 
-from .monWidgetRadioButton  import MonWidgetRadioButtonCommun 
-from desWidget4a6RadioButton  import Ui_Widget4a6RadioButton 
+from .monWidgetRadioButton  import MonWidgetRadioButtonCommun
+from desWidget4a6RadioButton  import Ui_Widget4a6RadioButton
 
 
 class MonWidget4a6RadioButton (Ui_Widget4a6RadioButton,MonWidgetRadioButtonCommun):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         #print "dans le init de MonWidget4a6RadioButton",self
         if type(monSimpDef.into) ==types.FunctionType : self.maListeDeValeur=monSimpDef.into()
         else : self.maListeDeValeur=monSimpDef.into
         MonWidgetRadioButtonCommun.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
 
-  def setMaxI(self):
+    def setMaxI(self):
         self.maxI=6
 
 
 class MonWidget4a6RadioButtonSD (Ui_Widget4a6RadioButton,MonWidgetRadioButtonCommun):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         #print "dans le init de MonWidget4a6RadioButton",self
         self.maListeDeValeur=node.item.getSdAvantDuBonType()
         MonWidgetRadioButtonCommun.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
 
-  def setMaxI(self):
+    def setMaxI(self):
         self.maxI=6
-
index 8f75e5d976a439416bb0bbd147c59d444ef38cff..e98f4d0b03a636db8ea60c035f3125b0048fd8cf 100644 (file)
@@ -24,17 +24,16 @@ import types,os
 # Modules Eficas
 from Extensions.i18n import tr
 
-from .monWidgetRadioButton  import MonWidgetRadioButtonCommun 
-from desWidget4a6RadioButton  import Ui_Widget4a6RadioButton 
+from .monWidgetRadioButton  import MonWidgetRadioButtonCommun
+from desWidget4a6RadioButton  import Ui_Widget4a6RadioButton
 
 
 class MonWidget4a6RadioButtonSD (Ui_Widget4a6RadioButton,MonWidgetRadioButtonCommun):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         #print "dans le init de MonWidget4a6RadioButton",self
         self.maListeDeValeur=node.item.getSdAvantDuBonType()
         MonWidgetRadioButtonCommun.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
 
-  def setMaxI(self):
+    def setMaxI(self):
         self.maxI=6
-
index 4d0108f46cdb5e744578ddff8b780cc59c6325e5..fe19d6fd4b1d6f804f5d040c852927836791597d 100644 (file)
@@ -26,11 +26,14 @@ from Extensions.i18n import tr
 # Import des panels
 
 class MonWidgetBloc(Ui_WidgetBloc,Groupe):
-  """
-  """
-  def __init__(self,node,editor,parentQt,definition, obj, niveau,commande):
-      #print ("bloc : ",node.item.nom)
-      Groupe.__init__(self,node,editor,parentQt, definition,obj,niveau,commande)
-      self.parentQt.commandesLayout.insertWidget(-1,self,1)
+    """
+    """
+    def __init__(self,node,editor,parentQt,definition, obj, niveau,commande):
+        #print ("bloc : ",node.item.nom)
+        Groupe.__init__(self,node,editor,parentQt, definition,obj,niveau,commande)
+        #if self.editor.maConfiguration.afficheCommandesPliees ==True:  self.node.plieToutEtReaffiche()
+        self.parentQt.commandesLayout.insertWidget(-1,self,1)
 
 
+    def afficheOptionnel(self):
+        return
index 7b069b3edee6c892180fc6357dd264595bb0d1ad..410df3a16441784efbdede100ebae10a3665753f 100644 (file)
@@ -20,7 +20,7 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import types,os
@@ -29,68 +29,73 @@ import types,os
 from Extensions.i18n import tr
 
 from InterfaceQT4.feuille               import Feuille
-from desWidgetCB                        import Ui_WidgetCB 
+from desWidgetCB                        import Ui_WidgetCB
 from InterfaceQT4.politiquesValidation  import PolitiqueUnique
 from InterfaceQT4.qtSaisie              import SaisieValeur
 
 from PyQt5.QtWidgets import QComboBox, QCompleter
-from PyQt5.QtCore import Qt
+from PyQt5.QtCore import Qt, QEvent
 
 
 class MonWidgetCBCommun (Feuille):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.politique=PolitiqueUnique(self.node,self.editor)
         self.determineChoix()
         self.setValeursApresBouton()
         self.CBChoix.currentIndexChanged.connect(self.choixSaisi)
-        #self.CBChoix.lineEdit().setText(tr("Select"))
+        self.CBChoix.wheelEvent=self.wheelEvent
         self.parentQt.commandesLayout.insertWidget(-1,self)
         self.maCommande.listeAffichageWidget.append(self.CBChoix)
         self.AAfficher=self.CBChoix
 
 
-  def setValeursApresBouton(self):
-      if self.objSimp.getValeur()==None : 
-         self.CBChoix.setCurrentIndex(-1)
-         #self.CBChoix.lineEdit().setStyleSheet(("QLineEdit {" " background:yellow;\n" "font: italic ;\n" " }\n" " "))
-         self.CBChoix.lineEdit().setText(tr("Select"))
-         return
-      valeur=self.objSimp.getValeur()
-      if not(type(valeur) == str) : valeur=str(valeur)
-      self.CBChoix.setCurrentIndex(self.CBChoix.findText(valeur))
-      
-  def determineChoix(self):
-      listeChoix=[]
-      if self.maListeDeValeur == None : self.maListeDeValeur=[]
-      for choix in self.maListeDeValeur:
-          if not(type(choix) == str) : choix=str(choix)
-          listeChoix.append(choix)
-          self.CBChoix.addItem(choix)
-      self.CBChoix.setEditable(True)
-      monCompleteur=QCompleter(listeChoix,self) 
-      monCompleteur.setCompletionMode(QCompleter.PopupCompletion) 
-      self.CBChoix.setCompleter(monCompleteur)
-
-  def choixSaisi(self):
-      self.CBChoix.lineEdit().setStyleSheet(("\n"
+    def setValeursApresBouton(self):
+        if self.objSimp.getValeur()==None :
+            self.CBChoix.setCurrentIndex(-1)
+            self.CBChoix.lineEdit().setText(tr("Select"))
+            return
+        valeur=self.objSimp.getValeur()
+        if not(type(valeur) == str) : valeur=str(valeur)
+        self.CBChoix.setCurrentIndex(self.CBChoix.findText(valeur))
+
+    def determineChoix(self):
+        listeChoix=[]
+        if self.maListeDeValeur == None : self.maListeDeValeur=[]
+        for choix in self.maListeDeValeur:
+            if not(type(choix) == str) : choix=str(choix)
+            listeChoix.append(choix)
+            self.CBChoix.addItem(choix)
+        self.CBChoix.setEditable(True)
+        monCompleteur=QCompleter(listeChoix,self)
+        monCompleteur.setCompletionMode(QCompleter.PopupCompletion)
+        self.CBChoix.setCompleter(monCompleteur)
+
+    def choixSaisi(self):
+        self.CBChoix.lineEdit().setStyleSheet(("\n"
 "QLineEdit {\n"
 "     font : italic ;\n"
 "     background: rgb(235,235,235);\n"
 " }"))
-      valeur=str(self.CBChoix.currentText())
-      SaisieValeur.LEvaleurPressed(self,valeur)
-      self.reaffiche()
+        valeur=str(self.CBChoix.currentText())
+        SaisieValeur.LEvaleurPressed(self,valeur)
+        self.reaffiche()
+
+    def wheelEvent(self,  event):
+    # Sinon poum sur les fenetres trop longues
+    # lorsque la widget attrape le wheelevent
+        event.ignore()
+
 
 class MonWidgetCB (Ui_WidgetCB, MonWidgetCBCommun):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
-      self.maListeDeValeur=monSimpDef.into
-      MonWidgetCBCommun. __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+        self.maListeDeValeur = monSimpDef.into
+        MonWidgetCBCommun. __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
 
 class MonWidgetCBSD (Ui_WidgetCB,MonWidgetCBCommun):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
-      self.maListeDeValeur=node.item.getSdAvantDuBonType()
-      MonWidgetCBCommun.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+        self.maListeDeValeur = node.item.getSdAvantDuBonType()
+        MonWidgetCBCommun.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
index 7ad925d0d4cff423791584709cf6ff67ea8ce442..6efa0fcf70a8f829dab05e4d572ff72ec4ad21f7 100644 (file)
@@ -20,7 +20,7 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import types,os
@@ -39,21 +39,19 @@ from PyQt5.QtCore import Qt
 from monWidgetCB            import MonWidgetCBCommun
 from monWidgetIntoSug       import GereAjoutDsPossible
 
-      
-class MonWidgetCBIntoSug (MonWidgetCBCommun, Ui_WidgetCBIntoSug,GereAjoutDsPossible):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
-      self.maListeDeValeur=monSimpDef.into
-      if node.item.hasIntoSug() : self.maListeDeValeur=node.item.getListePossibleAvecSug([])
-      if hasattr(node.item,'suggestion') : self.maListeDeValeur+=  node.item.suggestion
-      MonWidgetCBCommun. __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-      self.lineEditVal.returnPressed.connect(self.LEValeurAjouteDsPossible)
-
-  def ajouteValeurPossible(self,valeur):
-      self.CBChoix.addItem(valeur)
-      # on ne sait pas si on a deja ajouté une valeur
-      try : self.node.item.suggestion.append(valeur)
-      except : self.node.item.suggestion=(valeur,)
-      self.lineEditVal.setText('')
-      self.CBChoix.setCurrentIndex(self.CBChoix.findText(valeur));
-      
 
+class MonWidgetCBIntoSug (MonWidgetCBCommun, Ui_WidgetCBIntoSug,GereAjoutDsPossible):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+        self.maListeDeValeur=monSimpDef.into
+        if node.item.hasIntoSug()          : self.maListeDeValeur  = node.item.getListePossibleAvecSug([])
+        if hasattr(node.item,'suggestion') : self.maListeDeValeur +=  node.item.suggestion
+        MonWidgetCBCommun. __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
+        self.lineEditVal.returnPressed.connect(self.LEValeurAjouteDsPossible)
+
+    def ajouteValeurPossible(self,valeur):
+        self.CBChoix.addItem(valeur)
+        # on ne sait pas si on a deja ajouté une valeur
+        try    : self.node.item.suggestion.append(valeur)
+        except : self.node.item.suggestion = (valeur,)
+        self.lineEditVal.setText('')
+        self.CBChoix.setCurrentIndex(self.CBChoix.findText(valeur));
index d914d1bf3aff58a281acb1967b064c545dd39f43..98553fdaf680c3ebb54059c5ed99d050e68a11c5 100644 (file)
@@ -20,7 +20,7 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import types,os
@@ -29,7 +29,7 @@ import types,os
 from Extensions.i18n import tr
 
 from .feuille               import Feuille
-from desWidgetCB           import Ui_WidgetCB 
+from desWidgetCB           import Ui_WidgetCB
 from .politiquesValidation  import PolitiqueUnique
 from .qtSaisie              import SaisieValeur
 
@@ -39,7 +39,7 @@ from PyQt5.QtWidgets import QComboBox, QCompleter
 
 class MonWidgetCB (Ui_WidgetCB,Feuille):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.politique=PolitiqueUnique(self.node,self.editor)
         self.determineChoix()
@@ -51,27 +51,27 @@ class MonWidgetCB (Ui_WidgetCB,Feuille):
         #print self.objSimp.isOblig()
 
 
-  def setValeursApresBouton(self):
-      if self.objSimp.getValeur()==None : 
-         self.CBChoix.setCurrentIndex(-1)
-         return
-      valeur=self.objSimp.getValeur()
-      if not(type(valeur) == str) : valeur=str(valeur)
-      self.CBChoix.setCurrentIndex(self.CBChoix.findText(valeur))
-      
-  def determineChoix(self):
-      self.CBChoix.currentIndexChanged.connect(self.choixSaisi)
+    def setValeursApresBouton(self):
+        if self.objSimp.getValeur()==None :
+            self.CBChoix.setCurrentIndex(-1)
+            return
+        valeur=self.objSimp.getValeur()
+        if not(type(valeur) == str) : valeur=str(valeur)
+        self.CBChoix.setCurrentIndex(self.CBChoix.findText(valeur))
 
-      for choix in self.monSimpDef.into:
-          if not(type(choix) == str) : choix=str(choix)
-          self.CBChoix.currentIndexChanged.connect(self.choixSaisi)
-          self.CBChoix.addItem(choix)
-      self.CBChoix.setEditable(True)
-      monCompleteur=QCompleter(listeChoix,self) 
-      monCompleteur.setCompletionMode(QCompleter.PopupCompletion) 
-      self.CBChoix.setCompleter(monCompleteur)
+    def determineChoix(self):
+        self.CBChoix.currentIndexChanged.connect(self.choixSaisi)
+
+        for choix in self.monSimpDef.into:
+            if not(type(choix) == str) : choix=str(choix)
+            self.CBChoix.currentIndexChanged.connect(self.choixSaisi)
+            self.CBChoix.addItem(choix)
+        self.CBChoix.setEditable(True)
+        monCompleteur=QCompleter(listeChoix,self)
+        monCompleteur.setCompletionMode(QCompleter.PopupCompletion)
+        self.CBChoix.setCompleter(monCompleteur)
 
-  def choixSaisi(self):
-      valeur=str(self.CBChoix.currentText())
-      SaisieValeur.LEvaleurPressed(self,valeur)
-      self.reaffiche()
+    def choixSaisi(self):
+        valeur=str(self.CBChoix.currentText())
+        SaisieValeur.LEvaleurPressed(self,valeur)
+        self.reaffiche()
index b28f6c26d1e3d625003f7636468950ef7b099498..3ad181e4e2930e68666dba34ab4bb3952533c590 100644 (file)
@@ -20,7 +20,7 @@
 # Modules Eficas
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import types
@@ -37,285 +37,272 @@ from PyQt5.QtCore import Qt
 
 
 from Extensions.i18n import tr
-import Accas 
+import Accas
 import os
 
-    
+
 # Import des panels
 
 class MonWidgetCommande(Ui_WidgetCommande,Groupe):
-  """
-  """
-  def __init__(self,node,editor,etape):
-      self.listeAffichageWidget=[]
-      self.inhibe=0
-      self.ensure=0
-      editor.inhibeSplitter=1
-      Groupe.__init__(self,node,editor,None,etape.definition,etape,1,self)
-      editor.inhibeSplitter=0
-
-      resize=0
-      if node.item.getFr() != "" : 
-         self.labelDoc.setText(node.item.getFr())
-         resize=1
-      else : self.labelDoc.close()
-      
-      if not(hasattr(etape.definition,'sd_prod')) or (etape.definition.sd_prod==None): self.LENom.close()
-      elif (hasattr(etape.definition,'sd_prod') and type(etape.definition.sd_prod)== types.FunctionType):self.LENom.close()
-      elif (hasattr(etape, 'sdnom')) and etape.sdnom != "sansnom" and etape.sdnom != None: 
-           self.LENom.setText(etape.sdnom)
-           resize=resize*1
-      else : 
-           self.LENom.setText("")
-           resize=resize*1
-      if resize :
-         nouvelleSize=self.frameAffichage.height()+60
-         self.frameAffichage.setMinimumHeight(nouvelleSize)
-         self.frameAffichage.resize(self.frameAffichage.width(),nouvelleSize)
-      
-
-
-      maPolice= QFont("Times", 10,)
-      self.setFont(maPolice)
-      self.labelNomCommande.setText(tr(self.obj.nom))
-
-
-      if self.editor.maConfiguration.closeAutreCommande == True  : self.closeAutreCommande()
-      else :
+    """
+    """
+    def __init__(self,node,editor,etape):
+
+        self.listeAffichageWidget=[]
+        self.inhibe=0
+        self.ensure=0
+        editor.inhibeSplitter=1
+        Groupe.__init__(self,node,editor,None,etape.definition,etape,1,self)
+        spacerItem = QSpacerItem(21, 500, QSizePolicy.Expanding, QSizePolicy.Expanding)
+        self.verticalLayoutCommande.addItem(spacerItem)
+        editor.inhibeSplitter=0
+
+        # Gestion du nom de L OPER si il est nomme
+        if   not(hasattr(etape.definition,'sd_prod')) or (etape.definition.sd_prod==None): self.LENom.close()
+        elif (hasattr(etape.definition,'sd_prod') and type(etape.definition.sd_prod)== types.FunctionType):self.LENom.close()
+        elif (hasattr(etape, 'sdnom')) and etape.sdnom != "sansnom" and etape.sdnom != None:
+            self.LENom.setText(etape.sdnom)
+        else :
+            self.LENom.setText("")
+        if hasattr(self,'LENom'): self.LENom.returnPressed.connect(self.nomChange)
+        self.racine=self.node.tree.racine
+        if self.node.item.getIconName() == "ast-red-square" : self.LENom.setDisabled(True)
+
+        # Gestion de la doc de l objet
+        if node.item.getFr() != "" :
+            self.labelDoc.setText(node.item.getFr())
+            nouvelleSize=self.frameAffichage.height()+60
+            self.frameAffichage.setMinimumHeight(nouvelleSize)
+            self.frameAffichage.resize(self.frameAffichage.width(),nouvelleSize)
+        else : self.labelDoc.close()
+
+
+        # Gestion du nom de l etape
+        maPolice= QFont("Times", 10,)
+        self.setFont(maPolice)
+        self.labelNomCommande.setText(tr(self.obj.nom))
+
+
+        # Gestion du Frame d affichage des autres commandes
+        if self.editor.maConfiguration.closeAutreCommande == True  : self.closeAutreCommande()
+        else :
+            self.bCatalogue.clicked.connect(self.afficheCatalogue)
+            self.bAvant.clicked.connect(self.afficheAvant)
+            self.bApres.clicked.connect(self.afficheApres)
+
+        if self.editor.maConfiguration.closeFrameRechercheCommande==True  :
+            self.frameAffichage.close()
+            self.closeAutreCommande()
+
+
+        self.setAcceptDrops(True)
+        self.etablitOrdre()
+
+        if self.editor.maConfiguration.enleverPoubellePourCommande  :
+            self.RBPoubelle.close() # JDC Fige
+
+        if self.editor.maConfiguration.pasDeMCOptionnels  :
+            return                  # Pas de MC Optionnels pour Carmel
+
+        from .monWidgetOptionnel import MonWidgetOptionnel
+        if self.editor.widgetOptionnel!= None :
+            self.monOptionnel=self.editor.widgetOptionnel
+        else :
+            self.editor.inhibeSplitter=1
+            self.monOptionnel=MonWidgetOptionnel(self.editor)
+            self.editor.widgetOptionnel=self.monOptionnel
+            self.editor.splitter.addWidget(self.monOptionnel)
+            self.editor.ajoutOptionnel()
+            self.editor.inhibeSplitter=0
+            self.monOptionnel=self.editor.widgetOptionnel
+        self.afficheOptionnel()
+
+        #print "fin init de widget Commande"
+
+
+    def closeAutreCommande(self):
+        self.bCatalogue.close()
+        self.bAvant.close()
+        self.bApres.close()
+
+    def donnePremier(self):
+        #print "dans donnePremier"
+        QApplication.processEvents()
+        if self.listeAffichageWidget != [] :
+            self.listeAffichageWidget[0].setFocus(7)
+        QApplication.processEvents()
+        #print self.focusWidget()
+
+
+    def focusNextPrevChild(self, next):
+        # on s assure que ce n est pas un chgt de fenetre
+        #print "je passe dans focusNextPrevChild"
+        if self.editor.fenetreCentraleAffichee != self : return True
+        f = self.focusWidget()
+        if f not in self.listeAffichageWidget :
+            i=0
+            while not hasattr (f,'AAfficher') :
+                if f==None :i=-1; break
+                f = f.parentWidget()
+            if hasattr(f,'AAfficher') : f=f.AAfficher
+            if i != -1 : i=self.listeAffichageWidget.index(f)
+        else :i=self.listeAffichageWidget.index(f)
+        if (i==len(self.listeAffichageWidget) -1) and next and not self.inhibe:
+            try :
+                self.listeAffichageWidget[1].setFocus(7)
+                w=self.focusWidget()
+                self.inhibe=1
+                w.focusPreviousChild()
+                self.inhibe=0
+                return True
+            except :
+                pass
+                #print self.listeAffichageWidget
+                #print "souci ds focusNextPrevChild"
+        if i==0 and next==False and not self.inhibe:
+            if hasattr(self.editor.fenetreCentraleAffichee,'scrollArea'):
+                self.editor.fenetreCentraleAffichee.scrollArea.ensureWidgetVisible(self.listeAffichageWidget[-1])
+            self.listeAffichageWidget[-2].setFocus(7)
+            self.inhibe=1
+            w=self.focusWidget()
+            w.focusNextChild()
+            self.inhibe=0
+            return True
+        if i==0 and next==True and not self.inhibe:
+            self.listeAffichageWidget[0].setFocus(7)
+            self.inhibe=1
+            w=self.focusWidget()
+            w.focusNextChild()
+            self.inhibe=0
+            return True
+        if i>0 and next==False and not self.inhibe:
+            if isinstance(self.listeAffichageWidget[i-1],QRadioButton):
+                self.listeAffichageWidget[i-1].setFocus(7)
+                return True
+        return QWidget.focusNextPrevChild(self, next)
+
+    def etablitOrdre(self):
+        i=0
+        while(i +1 < len(self.listeAffichageWidget)):
+            self.setTabOrder(self.listeAffichageWidget[i],self.listeAffichageWidget[i+1])
+            i=i+1
+        # si on boucle on perd l'ordre
+
+    def  afficheSuivant(self,f):
+        #print ('ds afficheSuivant')
+        try :
+            i=self.listeAffichageWidget.index(f)
+            next=i+1
+        except :
+            next=1
+        if (next==len(self.listeAffichageWidget) ): next =0
+        #self.f=next
+        #QTimer.singleShot(1, self.rendVisible)
         try :
-           self.bCatalogue.clicked.connect(self.afficheCatalogue)
-           self.bAvant.clicked.connect(self.afficheAvant)
-           self.bApres.clicked.connect(self.afficheApres)
+            self.listeAffichageWidget[next].setFocus(7)
         except :
-           pass
-       
-      if hasattr(self,'LENom'): self.LENom.returnPressed.connect(self.nomChange)
-   
-      if self.editor.code in ['Adao','ADAO'] and self.editor.maConfiguration.closeFrameRechercheCommande==True  : 
-                      self.frameAffichage.close()
-      if self.editor.maConfiguration.closeFrameRechercheCommande==True  : 
-         self.closeAutreCommande()
-
-      if self.editor.code in ['CARMELCND',] : self.closeAutreCommande()
-      self.racine=self.node.tree.racine
-      if self.node.item.getIconName() == "ast-red-square" : self.LENom.setDisabled(True)
-
-      self.setAcceptDrops(True)
-      self.etablitOrdre()
-
-      if self.editor.code == "CARMELCND" : 
-         self.RBPoubelle.close() # JDC Fige
-         return                  # Pas de MC Optionnels pour Carmel
-
-      from .monWidgetOptionnel import MonWidgetOptionnel
-      if self.editor.widgetOptionnel!= None : 
-        self.monOptionnel=self.editor.widgetOptionnel
-      else :
-        self.editor.inhibeSplitter=1
-        self.monOptionnel=MonWidgetOptionnel(self.editor)
-        self.editor.widgetOptionnel=self.monOptionnel
-        self.editor.splitter.addWidget(self.monOptionnel)
-        self.editor.ajoutOptionnel()
-        self.editor.inhibeSplitter=0
-        self.monOptionnel=self.editor.widgetOptionnel
-      self.afficheOptionnel()
-      spacerItem = QSpacerItem(21, 500, QSizePolicy.Expanding, QSizePolicy.Expanding)
-      #spacerItem = QSpacerItem(21, 20, QSizePolicy.Preferred, QSizePolicy.Preferred)
-      #self.commandesLayout.addItem(spacerItem)
-      self.verticalLayoutCommande.addItem(spacerItem)
-
-      #self.editor.restoreSplitterSizes()
-
-      #print "fin init de widget Commande"
-      
-
-  def closeAutreCommande(self):
-      self.bCatalogue.close()
-      self.bAvant.close()
-      self.bApres.close()
-
-  def donnePremier(self):
-      #print "dans donnePremier"
-      QApplication.processEvents()
-      if self.listeAffichageWidget != [] :
-         self.listeAffichageWidget[0].setFocus(7)
-      QApplication.processEvents()
-      #print self.focusWidget()
-
-
-  def focusNextPrevChild(self, next):
-      # on s assure que ce n est pas un chgt de fenetre
-      #print "je passe dans focusNextPrevChild"
-      if self.editor.fenetreCentraleAffichee != self : return True
-      f=self.focusWidget()
-      if f not in self.listeAffichageWidget :
-         i=0
-         while not hasattr (f,'AAfficher') :
-           if f==None :i=-1; break
-           f=f.parentWidget()
-         if hasattr(f,'AAfficher') : f=f.AAfficher
-         if i != -1 : i=self.listeAffichageWidget.index(f)
-      else :i=self.listeAffichageWidget.index(f) 
-      if (i==len(self.listeAffichageWidget) -1) and next and not self.inhibe: 
-         try :
-           self.listeAffichageWidget[1].setFocus(7)
-           w=self.focusWidget()
-           self.inhibe=1
-           w.focusPreviousChild()
-           self.inhibe=0
-           return True
-         except :
-           pass
-           #print self.listeAffichageWidget
-           #print "souci ds focusNextPrevChild"
-      if i==0 and next==False and not self.inhibe: 
-         if hasattr(self.editor.fenetreCentraleAffichee,'scrollArea'):
-            self.editor.fenetreCentraleAffichee.scrollArea.ensureWidgetVisible(self.listeAffichageWidget[-1])
-         self.listeAffichageWidget[-2].setFocus(7)
-         self.inhibe=1
-         w=self.focusWidget()
-         w.focusNextChild()
-         self.inhibe=0
-         return True
-      if i==0 and next==True and not self.inhibe:
-         self.listeAffichageWidget[0].setFocus(7)
-         self.inhibe=1
-         w=self.focusWidget()
-         w.focusNextChild()
-         self.inhibe=0
-         return True
-      if i>0 and next==False and not self.inhibe:
-         if isinstance(self.listeAffichageWidget[i-1],QRadioButton):
-           self.listeAffichageWidget[i-1].setFocus(7)
-           return True
-      return QWidget.focusNextPrevChild(self, next)
-
-  def etablitOrdre(self):
-      i=0
-      while(i +1 < len(self.listeAffichageWidget)):
-         self.setTabOrder(self.listeAffichageWidget[i],self.listeAffichageWidget[i+1])
-         i=i+1
-      # si on boucle on perd l'ordre
-  def  afficheNieme(self,n):
-      #print ('ds afficheNieme')
-      self.listeAffichageWidget[n].setFocus(7)
-
-  def  afficheSuivant(self,f):
-      #print ('ds afficheSuivant')
-      try :
-        i=self.listeAffichageWidget.index(f) 
-        next=i+1
-      except :
-        next=1
-      if (next==len(self.listeAffichageWidget) ): next =0
-      #self.f=next
-      #QTimer.singleShot(1, self.rendVisible)
-      try :
-        self.listeAffichageWidget[next].setFocus(7)
-      except :
-        pass
-
-  def nomChange(self):
-      nom = str(self.LENom.text())
-      nom = nom.strip()
-      if nom == '' : return                  # si pas de nom, on ressort sans rien faire
-      test,mess = self.node.item.nommeSd(nom)
-      self.editor.afficheCommentaire(mess)
-
-      #Notation scientifique
-      if test :
-        from .politiquesValidation import Validation
-        validation=Validation(self.node,self.editor)
-        validation.ajoutDsDictReelEtape()
-
-  def afficheOptionnel(self):
-      # N a pas de parentQt. doit donc etre redefini
-      liste,liste_rouge=self.ajouteMCOptionnelDesBlocs()
-      #print "dans afficheOptionnel", self.monOptionnel
-      # dans le cas ou l insertion n a pas eu leiu (souci d ordre par exemple)
-      #if self.monOptionnel == None : return
-      self.monOptionnel.parentCommande=self
-      self.monOptionnel.titre(self.obj.nom)
-      self.monGroupe=self.monOptionnel.afficheOptionnel(liste,liste_rouge,self)
-      
-
-  def focusInEvent(self,event):
-      #print "je mets a jour dans focusInEvent de monWidget Commande "
-      if self.editor.code == "CARMELCND" : return #Pas de MC Optionnels pour Carmel
-      self.afficheOptionnel()
-
-
-  def reaffiche(self,nodeAVoir=None):
-      # Attention delicat. les appels de fonctions ne semblent pas pouvoir etre supprimes!
-      self.avantH=self.editor.fenetreCentraleAffichee.scrollAreaCommandes.horizontalScrollBar().sliderPosition()
-      self.avantV=self.editor.fenetreCentraleAffichee.scrollAreaCommandes.verticalScrollBar().sliderPosition()
-      self.inhibeExpand=True
-      self.node.affichePanneau()
-      #QTimer.singleShot(1, self.recentre)
-      if nodeAVoir != None and nodeAVoir!=0:
-        self.f=nodeAVoir.fenetre
-        if self.f==None : 
-             newNode=nodeAVoir.treeParent.chercheNoeudCorrespondant(nodeAVoir.item.object)
-             self.f = newNode.fenetre 
-        if self.f != None and self.f.isVisible() : self.inhibeExpand=False; return
-        if self.f != None : self.rendVisible()
+            pass
+
+    def nomChange(self):
+        nom = str(self.LENom.text())
+        nom = nom.strip()
+        if nom == '' : return                  # si pas de nom, on ressort sans rien faire
+        test,mess = self.node.item.nommeSd(nom)
+        self.editor.afficheCommentaire(mess)
+
+        #Notation scientifique
+        if test :
+            from .politiquesValidation import Validation
+            validation=Validation(self.node,self.editor)
+            validation.ajoutDsDictReelEtape()
+
+    def afficheOptionnel(self):
+        # N a pas de parentQt. doit donc etre redefini
+        if self.editor.maConfiguration.closeOptionnel : self.editor.fermeOptionnel()
+        liste,liste_rouge=self.ajouteMCOptionnelDesBlocs()
+        #print "dans afficheOptionnel", self.monOptionnel
+        # dans le cas ou l insertion n a pas eu leiu (souci d ordre par exemple)
+        #if self.monOptionnel == None : return
+        self.monOptionnel.parentCommande=self
+        self.monOptionnel.titre(self.obj.nom)
+        self.monGroupe=self.monOptionnel.afficheOptionnel(liste,liste_rouge,self)
+
+
+    def focusInEvent(self,event):
+        #print "je mets a jour dans focusInEvent de monWidget Commande "
+        self.afficheOptionnel()
+
+
+    def reaffiche(self,nodeAVoir=None):
+        # Attention delicat. les appels de fonctions ne semblent pas pouvoir etre supprimes!
+        self.avantH=self.editor.fenetreCentraleAffichee.scrollAreaCommandes.horizontalScrollBar().sliderPosition()
+        self.avantV=self.editor.fenetreCentraleAffichee.scrollAreaCommandes.verticalScrollBar().sliderPosition()
+        self.inhibeExpand=True
+        self.node.affichePanneau()
+        #QTimer.singleShot(1, self.recentre)
+        if nodeAVoir != None and nodeAVoir!=0:
+            self.f=nodeAVoir.fenetre
+            if self.f==None :
+                newNode=nodeAVoir.treeParent.chercheNoeudCorrespondant(nodeAVoir.item.object)
+                self.f = newNode.fenetre
+            if self.f != None and self.f.isVisible() : self.inhibeExpand=False; return
+            if self.f != None : self.rendVisible()
+            else : self.recentre()
         else : self.recentre()
-      else : self.recentre()
-      self.inhibeExpand=False
-
-  def reafficheSeulement(self,nodeAReafficher,index):
-      #print ('ds reafficheSeulement', nodeAReafficher)
-      parentNodeAReafficher=nodeAReafficher.parentQt
-      index=parentNodeAReafficher.commandesLayout.indexOf(nodeAReafficher)
-      oldFenetre=nodeAReafficher.node.fenetre
-      newWidget=nodeAReafficher.node.getPanelGroupe(parentNodeAReafficher,self,index)
-      nodeAReafficher.node.fenetre=newWidget
-      oldFenetre.setParent(None)
-      oldFenetre.close()
-      oldFenetre.deleteLater()
-      #print ("fin pour " , self.node.item.nom)
-
-
-  def recentre(self):
-      QApplication.processEvents()
-      s=self.editor.fenetreCentraleAffichee.scrollAreaCommandes
-      s.horizontalScrollBar().setSliderPosition(self.avantH)
-      s.verticalScrollBar().setSliderPosition(self.avantV)
-
-  def rendVisibleNoeud(self,node):
-      self.f=node.fenetre
-      #print "dans rendVisibleNoeud",self.f
-      QTimer.singleShot(1, self.rendVisible)
-     
-  def rendVisible(self):
-      #print "dans rendVisible",self.f
-      QApplication.processEvents()
-      self.f.setFocus(7)
-      self.editor.fenetreCentraleAffichee.scrollAreaCommandes.ensureWidgetVisible(self.f)
-
-  def afficheCatalogue(self):
-      if self.editor.widgetOptionnel != None : self.monOptionnel.hide()
-      self.racine.affichePanneau()
-      if self.node : self.node.select()
-      else : self.racine.select()
-
-  def afficheApres(self):
-       self.node.selectApres()
-
-  def afficheAvant(self):
-       self.node.selectAvant()
-
-  def setValide(self):
-      if not(hasattr (self,'RBValide')) : return
-      icon = QIcon()
-      if self.node.item.object.isValid() : icon=QIcon(self.repIcon+"/ast-green-ball.png")
-      else : icon=QIcon(self.repIcon+"/ast-red-ball.png")
-      nomIcone = self.node.item.getIconName()
-      if nomIcone == "ast-yellow-square" : icon=QIcon(self.repIcon+"/ast-yel-ball.png")
-      if nomIcone == "ast-red-square" : self.LENom.setDisabled(True)
-
-      self.LENom.setDisabled(False)
-      self.RBValide.setIcon(icon)
-
-
+        self.inhibeExpand=False
+
+
+
+    def recentre(self):
+        QApplication.processEvents()
+        s=self.editor.fenetreCentraleAffichee.scrollAreaCommandes
+        s.horizontalScrollBar().setSliderPosition(self.avantH)
+        s.verticalScrollBar().setSliderPosition(self.avantV)
+
+    def rendVisible(self):
+        QApplication.processEvents()
+        self.f.setFocus(7)
+        self.editor.fenetreCentraleAffichee.scrollAreaCommandes.ensureWidgetVisible(self.f)
+
+    def afficheCatalogue(self):
+        if self.editor.widgetOptionnel != None : self.monOptionnel.hide()
+        self.racine.affichePanneau()
+        if self.node : self.node.select()
+        else : self.racine.select()
+
+    def afficheApres(self):
+        self.node.selectApres()
+
+    def afficheAvant(self):
+        self.node.selectAvant()
+
+    def setValide(self):
+        if not(hasattr (self,'RBValide')) : return
+        icon = QIcon()
+        if self.node.item.object.isValid() : icon=QIcon(self.repIcon+"/ast-green-ball.png")
+        else :                               icon=QIcon(self.repIcon+"/ast-red-ball.png")
+        nomIcone = self.node.item.getIconName()
+        if nomIcone == "ast-yellow-square" : icon=QIcon(self.repIcon+"/ast-yel-ball.png")
+        if nomIcone == "ast-red-square"    : self.LENom.setDisabled(True)
+
+        self.LENom.setDisabled(False)
+        self.RBValide.setIcon(icon)
+
+
+    def propageChange(self,typeChange,donneLeFocus):
+        aReecrire=self.propageChangeEnfant(self.node.item.object,typeChange)
+        if aReecrire : self.node.affichePanneau()
+        if hasattr(donneLeFocus.node.fenetre, 'selectionneDernier') :
+            QApplication.processEvents()
+            self.editor.fenetreCentraleAffichee.scrollAreaCommandes.ensureWidgetVisible(donneLeFocus.node.fenetre)
+            donneLeFocus.node.fenetre.selectionneDernier()
+
+    def propageChangeEnfant(self,mc, typeChange):
+        for enfant in mc.mcListe:
+            if enfant.nature == 'MCSIMP' :
+                if enfant.waitUserAssd():
+                    if enfant.definition.type[0] == typeChange: return True
+            else :
+                if enfant.nature == 'MCList' : enfant=enfant[0]
+                if self.propageChangeEnfant(enfant, typeChange) : return True
+        return False
index ee7b1b2b66fc006ef862717dbd411f0b28834e8c..006d3b0006f2eea53908a06298253824e32b876a 100644 (file)
@@ -20,7 +20,7 @@
 # Modules Eficas
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 import types, os
 import traceback
@@ -34,117 +34,117 @@ class MonWidgetCommandeDeplie1Niveau(MonWidgetCommande):
 # il faut donc surcharger un certain nb de fonction ici pour eux
 
 
-  def __init__(self,node,editor,etape):
-      #print ("debut de ---------------------- init de MonWidgetCommandeDeplie1Niveau ",node.item.nom)
-      MonWidgetCommande.__init__(self,node,editor,etape)
-      self.node.plieToutEtReaffiche=self.plieToutEtReaffiche
-      spacerItem = QSpacerItem(21, 600, QSizePolicy.Expanding, QSizePolicy.Expanding)
-      self.verticalLayoutCommande.addItem(spacerItem)
-
-  def afficheMots(self):
-      # Attention
-      # Attention --> cette methode surcharge les methodes des Nodes Fils
-      # Attention
-      #print ("debut de ---------------------- ds afficheMots de MonWidgetCommandeDeplie1Niveau ",self.node.item.nom)
-      #traceback.print_stack()
-      repIcon=self.editor.appliEficas.repIcon
-      fichier=os.path.join(repIcon, 'deleteRondVide.png')
-      icon = QIcon(fichier)
-      for node in self.node.children:
-
-           node.plie=True
-           node.setPlieChildren()
-           if node.appartientAUnNoeudPlie==True : continue
-
-           node.plieToutEtReaffiche   = self.plieToutEtReaffiche
-           node.deplieToutEtReaffiche = self.deplieToutEtReaffiche
-           node.affichePanneau        = self.affichePanneau
-           node.getPanel              = self.getPanel
-
-           widget=node.getPanelGroupe(self,self.maCommande)
-           self.listeFocus.append(node.fenetre)
-
-           try :
-            node.fenetre.RBDeplie.setCheckable(False)
-            node.fenetre.RBDeplie.setEnabled(False)
-            node.fenetre.RBDeplie.setIcon(icon)
-           except : pass
-
-           if node.item.object.isMCList() :
-              node.setDeplie              = self.setDepliePourMCList
-
-              for c in node.children :
-                  c.setDeplie           = self.setDepliePourNode
-                  c.plieToutEtReaffiche = self.plieToutEtReaffiche
-                  c.deplieToutEtReaffiche = self.deplieToutEtReaffiche
-                  c.getPanel              = self.getPanel
-                  c.affichePanneau      = self.affichePanneau
-                  try :        
-                    c.fenetre.RBDeplie.setCheckable(False)
-                    c.fenetre.RBDeplie.setEnabled(False)
-                    c.fenetre.RBDeplie.setIcon(icon)
-                  except :
-                    pass
-           else :
-              node.setDeplie=self.setDepliePourNode
-
-      #print ("fin ------------------------ afficheMots de MonWidgetCommandeDeplie1Niveau ",self.node.item.nom)
-
-  def afficheSuivant(self,aAfficher):
-      fenetre=self.node.tree.itemCourant.fenetre
-      fenetre.afficheSuivant(aAfficher)
-
-  def setDepliePourNode(self):
-      noeudCourant=self.node.tree.itemCourant
-      noeudCourant.setDeplieChildren()
-      if self.editor.fenetreCentraleAffichee == noeudCourant.fenetre : return
-      noeudCourant.afficheCeNiveau()
-      pass
+    def __init__(self,node,editor,etape):
+        #print ("debut de ---------------------- init de MonWidgetCommandeDeplie1Niveau ",node.item.nom)
+        MonWidgetCommande.__init__(self,node,editor,etape)
+        self.node.plieToutEtReaffiche=self.plieToutEtReaffiche
+        spacerItem = QSpacerItem(21, 600, QSizePolicy.Expanding, QSizePolicy.Expanding)
+        self.verticalLayoutCommande.addItem(spacerItem)
+
+    def afficheMots(self):
+        # Attention
+        # Attention --> cette methode surcharge les methodes des Nodes Fils
+        # Attention
+        #print ("debut de ---------------------- ds afficheMots de MonWidgetCommandeDeplie1Niveau ",self.node.item.nom)
+        #traceback.print_stack()
+        repIcon=self.editor.appliEficas.repIcon
+        fichier=os.path.join(repIcon, 'deleteRondVide.png')
+        icon = QIcon(fichier)
+        for node in self.node.children:
+
+            node.plie=True
+            node.setPlieChildren()
+            if node.appartientAUnNoeudPlie==True : continue
+
+            node.plieToutEtReaffiche   = self.plieToutEtReaffiche
+            node.deplieToutEtReaffiche = self.deplieToutEtReaffiche
+            node.affichePanneau        = self.affichePanneau
+            node.getPanel              = self.getPanel
+
+            widget=node.getPanelGroupe(self,self.maCommande)
+            self.listeFocus.append(node.fenetre)
+
+            try :
+                node.fenetre.RBDeplie.setCheckable(False)
+                node.fenetre.RBDeplie.setEnabled(False)
+                node.fenetre.RBDeplie.setIcon(icon)
+            except : pass
+
+            if node.item.object.isMCList() :
+                node.setDeplie              = self.setDepliePourMCList
+
+                for c in node.children :
+                    c.setDeplie           = self.setDepliePourNode
+                    c.plieToutEtReaffiche = self.plieToutEtReaffiche
+                    c.deplieToutEtReaffiche = self.deplieToutEtReaffiche
+                    c.getPanel              = self.getPanel
+                    c.affichePanneau      = self.affichePanneau
+                    try :
+                        c.fenetre.RBDeplie.setCheckable(False)
+                        c.fenetre.RBDeplie.setEnabled(False)
+                        c.fenetre.RBDeplie.setIcon(icon)
+                    except :
+                        pass
+            else :
+                node.setDeplie=self.setDepliePourNode
+
+        #print ("fin ------------------------ afficheMots de MonWidgetCommandeDeplie1Niveau ",self.node.item.nom)
+
+    def afficheSuivant(self,aAfficher):
+        fenetre=self.node.tree.itemCourant.fenetre
+        fenetre.afficheSuivant(aAfficher)
+
+    def setDepliePourNode(self):
+        noeudCourant=self.node.tree.itemCourant
+        noeudCourant.setDeplieChildren()
+        if self.editor.fenetreCentraleAffichee == noeudCourant.fenetre : return
+        noeudCourant.afficheCeNiveau()
+        pass
 
 
 # -------------------------------------------- Methodes qui surchargent les noeuds fils
 
-  def setDepliePourMCList(self):
-      #print ('je surcharge setDeplie pour MCList')
-      pass
+    def setDepliePourMCList(self):
+        #print ('je surcharge setDeplie pour MCList')
+        pass
 
-  def setPlieChildren(self):
-      #print ('je surcharge setPlieChildren')
-      pass
+    def setPlieChildren(self):
+        #print ('je surcharge setPlieChildren')
+        pass
 
-  def setDeplieChildren(self):
-      #print ('je surcharge setDeplieChildren')
-      pass
+    def setDeplieChildren(self):
+        #print ('je surcharge setDeplieChildren')
+        pass
 
-  def plieToutEtReaffiche(self):
-      #print ('je surcharge plieToutEtReaffiche', self.node.item.nom)
-      pass
+    def plieToutEtReaffiche(self):
+        #print ('je surcharge plieToutEtReaffiche', self.node.item.nom)
+        pass
 
-  def deplieToutEtReaffiche(self):
-      #print ('je surcharge deplieToutEtReaffiche', self.node.tree.itemCourant.item.getLabelText())
-      pass
+    def deplieToutEtReaffiche(self):
+        #print ('je surcharge deplieToutEtReaffiche', self.node.tree.itemCourant.item.getLabelText())
+        pass
 
-  def plieToutEtReafficheSaufItem(self):
-      #print ('je surcharge plieToutEtReaffiche', self.node.tree.itemCourant.item.getLabelText())
-      pass
+    def plieToutEtReafficheSaufItem(self):
+        #print ('je surcharge plieToutEtReaffiche', self.node.tree.itemCourant.item.getLabelText())
+        pass
 
-  def affichePanneau(self):
-      #print ('je surcharge affichePanneau', self.node.tree.itemCourant.item.getLabelText())
-      node=self.node.tree.itemCourant
-      while ( not (hasattr(node,'fenetreIhm')) or node.treeParent.fenetreIhm != 'deplie1Niveau') : 
+    def affichePanneau(self):
+        #print ('je surcharge affichePanneau', self.node.tree.itemCourant.item.getLabelText())
+        node=self.node.tree.itemCourant
+        while ( not (hasattr(node,'fenetreIhm')) or node.treeParent.fenetreIhm != 'deplie1Niveau') :
             node=node.treeParent
-      self.node.tree.setCurrentItem(node)
-          
-      item=node.item
-      if item.getLabelText()[0] == self.editor.fenetreCentraleAffichee.labelNomCommande.text():
-         return
-      node.setDeplieChildren()
-      node.afficheCeNiveau()
-      self.editor.fenetreCentraleAffichee.labelNomCommande.setText(item.getLabelText()[0])
-      self.editor.fenetreCentraleAffichee.labelDoc.setText(item.getFr())
+        self.node.tree.setCurrentItem(node)
 
+        item=node.item
+        if item.getLabelText()[0] == self.editor.fenetreCentraleAffichee.labelNomCommande.text():
+            return
+        node.setDeplieChildren()
+        node.afficheCeNiveau()
+        self.editor.fenetreCentraleAffichee.labelNomCommande.setText(item.getLabelText()[0])
+        self.editor.fenetreCentraleAffichee.labelDoc.setText(item.getFr())
 
 
-  def getPanel (self):
-      #print ('surcharge ds getPanel')
-      pass
+
+    def getPanel (self):
+        #print ('surcharge ds getPanel')
+        pass
index dd71cc7bb2acdcf0978a88162cdb9437a310b225..31f016b954bd3ab31921e8e687a3db686f57c454 100644 (file)
@@ -21,7 +21,7 @@
 
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 from PyQt5.QtWidgets import QWidget
@@ -30,68 +30,67 @@ from PyQt5.QtCore    import Qt
 from desWidgetCommentaire import Ui_WidgetCommentaire
 from .gereIcones import FacultatifOuOptionnel
 from Extensions.i18n import tr
-import Accas 
+import Accas
 import os
 
-    
+
 # Import des panels
 
 class MonWidgetCommentaire(QWidget,Ui_WidgetCommentaire,FacultatifOuOptionnel):
-  """
-  """
-  def __init__(self,node,editor,commentaire):
-      QWidget.__init__(self,None)
-      self.node=node
-      self.node.fenetre=self
-      self.setupUi(self)
-      self.editor=editor
-      self.appliEficas=self.editor.appliEficas
-      self.repIcon=self.appliEficas.repIcon
-      self.setIconePoubelle()
-      self.remplitTexte()
-      self.monOptionnel=None
-
-      self.commentaireTE.textChanged.connect(self.TexteCommentaireEntre)
-      if self.editor.code in ['MAP','CARMELCND'] : self.bCatalogue.close()
-      else : self.bCatalogue.clicked.connect(self.afficheCatalogue)
-      if self.editor.code in ['Adao','MAP','ADAO'] :
-           self.bAvant.close()
-           self.bApres.close()
-      else :
-           self.bAvant.clicked.connect(self.afficheAvant)
-           self.bApres.clicked.connect(self.afficheApres)
-      self.editor.fermeOptionnel()
-
-
-  def afficheApres(self):
-       self.node.selectApres()
-
-  def afficheAvant(self):
-       self.node.selectAvant()
-
-       
-  def afficheCatalogue(self):
-      self.node.tree.racine.affichePanneau()
-      if self.node : self.node.select()
-      else : self.node.tree.racine.select()
-
-  def remplitTexte(self):
-      texte=self.node.item.getValeur()
-      self.commentaireTE.setText(texte)
-      if self.editor.code == "CARMELCND" and texte[0:16]=="Cree - fichier :" :
-         self.commentaireTE.setReadOnly(True)
-         self.commentaireTE.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
-         self.commentaireTE.setToolTip(tr("Valeur non modifiable"))
-      else :
-         self.commentaireTE.setReadOnly(False)
-
-  def donnePremier(self):
-      self.commentaireTE.setFocus(7)
-
-
-  def TexteCommentaireEntre(self):
-      texte=str(self.commentaireTE.toPlainText())
-      self.editor.initModif()
-      self.node.item.setValeur(texte)
-      self.node.updateNodeTexte()
+    """
+    """
+    def __init__(self,node,editor,commentaire):
+        QWidget.__init__(self,None)
+        self.node=node
+        self.node.fenetre=self
+        self.setupUi(self)
+        self.editor=editor
+        self.appliEficas=self.editor.appliEficas
+        self.repIcon=self.appliEficas.repIcon
+        self.setIconePoubelle()
+        self.remplitTexte()
+        self.monOptionnel=None
+
+        self.commentaireTE.textChanged.connect(self.TexteCommentaireEntre)
+        if self.editor.code in ['MAP','CARMELCND'] : self.bCatalogue.close()
+        else : self.bCatalogue.clicked.connect(self.afficheCatalogue)
+        if self.editor.code in ['Adao','MAP','ADAO'] :
+            self.bAvant.close()
+            self.bApres.close()
+        else :
+            self.bAvant.clicked.connect(self.afficheAvant)
+            self.bApres.clicked.connect(self.afficheApres)
+        self.editor.fermeOptionnel()
+
+
+    def afficheApres(self):
+        self.node.selectApres()
+
+    def afficheAvant(self):
+        self.node.selectAvant()
+
+
+    def afficheCatalogue(self):
+        self.node.tree.racine.affichePanneau()
+        if self.node : self.node.select()
+        else : self.node.tree.racine.select()
+
+    def remplitTexte(self):
+        texte=self.node.item.getValeur()
+        self.commentaireTE.setText(texte)
+        if self.editor.code == "CARMELCND" and texte[0:16]=="Cree - fichier :" :
+            self.commentaireTE.setReadOnly(True)
+            self.commentaireTE.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
+            self.commentaireTE.setToolTip(tr("Valeur non modifiable"))
+        else :
+            self.commentaireTE.setReadOnly(False)
+
+    def donnePremier(self):
+        self.commentaireTE.setFocus(7)
+
 
+    def TexteCommentaireEntre(self):
+        texte=str(self.commentaireTE.toPlainText())
+        self.editor.initModif()
+        self.node.item.setValeur(texte)
+        self.node.updateNodeTexte()
index 9a952f107a65be9c30d36546d7cbb5b2b9881998..a1df6da62f4c98c38455529bbedf2fbba2e08625 100644 (file)
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import object
+    from builtins import object
 except : pass
 
 import types,os,re
-from six.moves import range
 pattern_name       = re.compile(r'^[^\d\W]\w*\Z')
 
 # Modules Eficas
@@ -36,46 +35,46 @@ from desWidgetCreeParam import Ui_desWidgetCreeParam
 
 
 class MonWidgetCreeParam(Ui_desWidgetCreeParam,QDialog):
-  """
-  """
-  def __init__(self,editor, name = None,fl = 0):
-       self.editor=editor
-       self.editor.afficheInfos("")
-       QDialog.__init__(self,editor)
-       self.setupUi(self)
-       self.connecterSignaux()
-       self.dejaExistant=0
-       self.listeTousParam=self.editor.jdc.params
-       self.dictListe={}
-       self.initToutesVal()
-
-  def connecterSignauxQT4(self) :
+    """
+    """
+    def __init__(self,editor, name = None,fl = 0):
+        self.editor=editor
+        self.editor.afficheInfos("")
+        QDialog.__init__(self,editor)
+        self.setupUi(self)
+        self.connecterSignaux()
+        self.dejaExistant=0
+        self.listeTousParam=self.editor.jdc.params
+        self.dictListe={}
+        self.initToutesVal()
+
+    def connecterSignauxQT4(self) :
         self.connect(self.lineEditVal,SIGNAL("returnPressed()"),self.lineEditValReturnPressed)
         self.connect(self.lineEditNom,SIGNAL("returnPressed()"),self.lineEditNomReturnPressed)
 
-  def connecterSignaux(self) :
+    def connecterSignaux(self) :
         self.lineEditVal.returnPressed.connect(self.lineEditValReturnPressed)
         self.lineEditNom.returnPressed.connect(self.lineEditNomReturnPressed)
         self.LBParam.itemDoubleClicked.connect(self.paramClicked)
 
-  def paramClicked(self,item):
-        if self.editor.nodeEnCours == None : 
+    def paramClicked(self,item):
+        if self.editor.nodeEnCours == None :
             QMessageBox.warning( self, tr("Pas de Mot-Clef"),tr("Attention! selectionnez un mot-clef"))
             return
         param= self.dictListe[item.text()]
         self.editor.nodeEnCours.lineEditVal.setText(param)
         self.editor.nodeEnCours.LEvaleurPressed()
-       
 
-  def creeParametre(self):
+
+    def creeParametre(self):
         nom=str(self.lineEditNom.text())
         val=str(self.lineEditVal.text())
         if val == "" or None : return
         if nom == "" or None : return
-        if len(self.editor.tree.selectedItems()) == 0 : 
-           itemAvant=self.editor.tree.racine 
-        else :                                     
-           itemAvant=self.editor.tree.selectedItems()[0]
+        if len(self.editor.tree.selectedItems()) == 0 :
+            itemAvant=self.editor.tree.racine
+        else :
+            itemAvant=self.editor.tree.selectedItems()[0]
         param=itemAvant.addParameters(True)
         param.item.setNom(nom)
         #PN self.val permet d entrer du texte
@@ -90,62 +89,62 @@ class MonWidgetCreeParam(Ui_desWidgetCreeParam,QDialog):
 
 
 
-  def lineEditValReturnPressed(self):
+    def lineEditValReturnPressed(self):
         qtVal=self.lineEditVal.text()
         valString=str(self.lineEditVal.text())
         self.val=""
         contexte={}
         exec("from math import *", contexte)
         jdc=self.editor.jdc
-        if jdc == None : 
-          self.editor.afficheInfos(tr(u"La Creation de parametre n est possible que dans un jeu de donnees"),Qt.red)
-          return
+        if jdc == None :
+            self.editor.afficheInfos(tr(u"La Creation de parametre n est possible que dans un jeu de donnees"),Qt.red)
+            return
 
         for p in jdc.params :
-           try:
-              tp=p.nom+'='+str(repr(p.valeur))
-              exec(tp, contexte)
-           except :
-              pass
+            try:
+                tp=p.nom+'='+str(repr(p.valeur))
+                exec(tp, contexte)
+            except :
+                pass
         monTexte="monParam="+valString
         try :
-          exec(monTexte, contexte)
-          self.val=valString
+            exec(monTexte, contexte)
+            self.val=valString
         except :
-          try :
-            monTexte="monParam='"+valString+"'"
-            self.val="'"+valString+"'"
-          except :
-            self.editor.afficheInfos(tr("Valeur incorrecte"),Qt.red)
+            try :
+                monTexte="monParam='"+valString+"'"
+                self.val="'"+valString+"'"
+            except :
+                self.editor.afficheInfos(tr("Valeur incorrecte"),Qt.red)
         if self.lineEditNom.text()!="" and self.dejaExistant==False : self.creeParametre()
 
 
-  def lineEditNomReturnPressed(self):
+    def lineEditNomReturnPressed(self):
         qtNom=self.lineEditNom.text()
         nom=str(qtNom)
         if not pattern_name.match(nom) :
-           self.lineEditNom.setText("")
-           commentaire=nom + tr(" n est pas un identifiant correct\n ")
-           self.editor.afficheInfos(commentaire,Qt.red)
+            self.lineEditNom.setText("")
+            commentaire=nom + tr(" n est pas un identifiant correct\n ")
+            self.editor.afficheInfos(commentaire,Qt.red)
         for p in self.editor.jdc.params :
-           if p.nom==nom :
-             commentaire=nom + tr(" existe deja\n ")
-             self.editor.afficheInfos(commentaire,Qt.red)
-             return
+            if p.nom==nom :
+                commentaire=nom + tr(" existe deja\n ")
+                self.editor.afficheInfos(commentaire,Qt.red)
+                return
 
         if self.lineEditVal.text()!="" : self.creeParametre()
         self.lineEditVal.setFocus(Qt.OtherFocusReason)
 
 
-  def initToutesVal(self):
+    def initToutesVal(self):
         self.LBParam.clear()
         for param in self.listeTousParam :
             self.LBParam.addItem((repr(param)))
             self.dictListe[repr(param)] = param.nom
-         
-         
-  
-  def valideParam(self):
+
+
+
+    def valideParam(self):
         if self.LBParam.selectedItems()== None : return
         lParam=[]
         for indice in range(len(self.LBParam.selectedItems())):
@@ -154,9 +153,8 @@ class MonWidgetCreeParam(Ui_desWidgetCreeParam,QDialog):
             lParam.append(param)
 
         try :
-          self.panel.ajoutNValeur(lParam)
+            self.panel.ajoutNValeur(lParam)
         except :
-          for p in lParam :
-             self.panel.ajout1Valeur(p)
+            for p in lParam :
+                self.panel.ajout1Valeur(p)
         self.close()
-
diff --git a/InterfaceQT4/monWidgetCreeUserAssd.py b/InterfaceQT4/monWidgetCreeUserAssd.py
new file mode 100644 (file)
index 0000000..0291ef1
--- /dev/null
@@ -0,0 +1,59 @@
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2021   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+# Modules Python
+from __future__ import absolute_import
+import types,os
+
+
+# Modules Eficas
+from Extensions.i18n import tr
+from .monWidgetSimpTxt  import MonWidgetSimpTxt
+from .monWidgetPlusieursBase import MonWidgetPlusieursBase
+from copy import copy,deepcopy
+from PyQt5.QtCore import Qt
+
+
+
+class MonWidgetCreeUserAssd ( MonWidgetSimpTxt):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+        MonWidgetSimpTxt. __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
+        #self.lineEditVal.returnPressed.connect(self.LEValeurAjouteDsPossible)
+
+    def LEvaleurPressed(self):
+        try :
+            if str(self.lineEditVal.text())=="" or str(self.lineEditVal.text())==None : return
+        except : pass
+        valeurEntree = str(self.lineEditVal.text())
+        if valeurEntree == self.oldValeurTexte : return
+        if self.oldValeurTexte == ""  : enCreation = True
+        else                          : enCreation = False
+        if enCreation : validite,commentaire=self.objSimp.creeUserASSDetSetValeur(valeurEntree)
+        else          : validite,commentaire=self.objSimp.renommeSdCree(valeurEntree)
+        if not enCreation : self.node.updateNodeTexte()
+        #PNPNPN -- signal update sur les fils ou ?
+        if commentaire != "" :
+            if validite :
+                self.editor.afficheCommentaire(commentaire)
+                self.oldValeurTexte = self.lineEditVal.text()
+            else  :
+                self.editor.afficheInfos(commentaire,Qt.red)
+                self.lineEditVal.setText("")
+                self.oldValeurTexte=""
+        self.parentQt.propageChange(self.objSimp.definition.type[0],self)
index f6d723f49465ca7c10113bcbbbefbb38544f217a..f2dcdc3b7721f3c5c9d67c4ca22240701b43d867 100644 (file)
@@ -25,27 +25,26 @@ import types,os
 from Extensions.i18n import tr
 
 from .feuille               import Feuille
-from .monWidgetSimpTuple    import MonWidgetSimpTuple 
-from desWidgetDate       import Ui_WidgetDate 
+from .monWidgetSimpTuple    import MonWidgetSimpTuple
+from desWidgetDate       import Ui_WidgetDate
 
 
 class MonWidgetDate (Ui_WidgetDate,MonWidgetSimpTuple):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=3
         MonWidgetSimpTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         if self.objSimp.isImmuable() :
-           self.lineEditVal1.setDisabled(True)
-           self.lineEditVal2.setDisabled(True)
-           self.lineEditVal3.setDisabled(True)
-           self.lineEditVal1.setStyleSheet(QString.fromUtf8("background:rgb(244,244,244);\n" "border:0px;\n"))
-           self.lineEditVal2.setStyleSheet(QString.fromUtf8("background:rgb(244,244,244);\n" "border:0px;\n"))
-           self.lineEditVal3.setStyleSheet(QString.fromUtf8("background:rgb(244,244,244);\n" "border:0px;\n"))
-           self.lineEditVal1.setToolTip(tr("Valeur non modifiable"))
-           self.lineEditVal2.setToolTip(tr("Valeur non modifiable"))
-           self.lineEditVal3.setToolTip(tr("Valeur non modifiable"))
+            self.lineEditVal1.setDisabled(True)
+            self.lineEditVal2.setDisabled(True)
+            self.lineEditVal3.setDisabled(True)
+            self.lineEditVal1.setStyleSheet(QString.fromUtf8("background:rgb(244,244,244);\n" "border:0px;\n"))
+            self.lineEditVal2.setStyleSheet(QString.fromUtf8("background:rgb(244,244,244);\n" "border:0px;\n"))
+            self.lineEditVal3.setStyleSheet(QString.fromUtf8("background:rgb(244,244,244);\n" "border:0px;\n"))
+            self.lineEditVal1.setToolTip(tr("Valeur non modifiable"))
+            self.lineEditVal2.setToolTip(tr("Valeur non modifiable"))
+            self.lineEditVal3.setToolTip(tr("Valeur non modifiable"))
         else :
-           self.maCommande.listeAffichageWidget.append(self.lineEditVal1)
+            self.maCommande.listeAffichageWidget.append(self.lineEditVal1)
         #self.maCommande.listeAffichageWidget.append(self.lineEditVal2)
         #self.maCommande.listeAffichageWidget.append(self.lineEditVal3)
-
index f0596582759cc3912cc4181f625b1492231886ad..8bf1c5dc283ff64be47ecc37106ca3eb72f66197 100644 (file)
@@ -30,52 +30,64 @@ from desWidgetFactTableau import Ui_WidgetFactTableau
 from Extensions.i18n import tr
 # Import des panels
 
+# PN 18 mai 2020 : affiche systematique des optionnels
 class MonWidgetFactCommun(Groupe):
-  """
-  """
-  def __init__(self,node,editor,parentQt,definition, obj, niveau,commande,insertIn=-1):
-      #print "fact : ",node.item.nom
-      Groupe.__init__(self,node,editor,parentQt, definition,obj,niveau,commande)
-      labeltext,fonte,couleur = self.node.item.getLabelText()
-      self.GroupBox.setText(tr(labeltext))
-      self.GroupBox.setTextInteractionFlags(Qt.TextSelectableByMouse)
-      self.parentQt.commandesLayout.insertWidget(insertIn,self)
-      self.doitAfficherOptionnel=False
-      min,max=obj.getMinMax()
-      if max < 2 and  hasattr(self, 'RBPlus') : self.RBPlus.close() 
-      if max > 1 and  hasattr(self, 'RBPlus') : self.RBPlus.clicked.connect(self.ajouteMCParPB)
+    """
+    """
+    def __init__(self,node,editor,parentQt,definition, obj, niveau,commande):
+        #print ("fact : ",node.item.nom)
+        Groupe.__init__(self,node,editor,parentQt, definition,obj,niveau,commande)
+        labeltext,fonte,couleur = self.node.item.getLabelText()
+        self.GroupBox.setText(tr(labeltext))
+        #self.GroupBox.setTextInteractionFlags(Qt.TextSelectableByMouse)
+        self.parentQt.commandesLayout.insertWidget(-1,self)
+        self.doitAfficherOptionnel=True
+        min,max=obj.getMinMax()
+        if max < 2 and  hasattr(self, 'RBPlus') : self.RBPlus.close()
+        if max > 1 and  hasattr(self, 'RBPlus') : self.RBPlus.clicked.connect(self.ajouteMCParPB)
 
-  def enterEvent(self,event):
-      #print "enterEvent ", self.node.item.getLabelText()[0]
-      self.doitAfficherOptionnel=True
-      QWidget.enterEvent(self,event)
-      QTimer.singleShot(500, self.delayAffiche)
+    def enterEvent(self,event):
+        #print "enterEvent ", self.node.item.getLabelText()[0]
+        self.doitAfficherOptionnel=True
+        QWidget.enterEvent(self,event)
+        QTimer.singleShot(500, self.delayAffiche)
 
-  def leaveEvent(self,event):
-      #print "leaveEvent", self.node.item.getLabelText()[0]
-      self.doitAfficherOptionnel=False
-      QWidget.leaveEvent(self,event)
+    def leaveEvent(self,event):
+        #print "leaveEvent", self.node.item.getLabelText()[0]
+        #self.doitAfficherOptionnel=False
+        QWidget.leaveEvent(self,event)
 
-  def delayAffiche(self):
-      #print "delayAffiche, self.doitAfficherOptionnel = ", self.doitAfficherOptionnel
-      if self.doitAfficherOptionnel and self.editor.code != "CARMELCND" :self.afficheOptionnel()
+    def delayAffiche(self):
+        #print "delayAffiche, self.doitAfficherOptionnel = ", self.doitAfficherOptionnel
+        if self.doitAfficherOptionnel and self.editor.code != "CARMELCND" :self.afficheOptionnel()
+
+    def ajouteMCParPB(self):
+        texteListeNom="+"+self.obj.nom
+        parentOuAjouter=self.parentQt
+        from .monWidgetBloc import MonWidgetBloc
+        while (parentOuAjouter and isinstance(parentOuAjouter, MonWidgetBloc)) :
+            parentOuAjouter=parentOuAjouter.parentQt
+        parentOuAjouter.ajoutMC(texteListeNom)
+
+
+#  def reaffiche(self, nodeAVoir=None):
+#      print ('ds reaffiche : ', self.obj.nom, self.node.firstDeplie)
+#      if self.node.editor.maConfiguration.afficheFirstPlies and self.node.firstDeplie:
+#         self.node.firstDeplie =False
+#         self.node.setPlie()
+#      Groupe.reaffiche(self,nodeAVoir)
 
-  def ajouteMCParPB(self):
-      texteListeNom="+"+self.obj.nom
-      parentOuAjouter=self.parentQt
-      from .monWidgetBloc import MonWidgetBloc
-      while (parentOuAjouter and isinstance(parentOuAjouter, MonWidgetBloc)) :
-         parentOuAjouter=parentOuAjouter.parentQt
-      parentOuAjouter.ajoutMC(texteListeNom)
 
 
 class MonWidgetFact(Ui_WidgetFact,MonWidgetFactCommun):
-  def __init__(self,node,editor,parentQt,definition, obj, niveau,commande,insertIn=1):
-      MonWidgetFactCommun.__init__(self,node,editor,parentQt, definition,obj,niveau,commande,insertIn)
+    #def __init__(self,node,editor,parentQt,definition, obj, niveau,commande,insertIn=1):
+    #    MonWidgetFactCommun.__init__(self,node,editor,parentQt, definition,obj,niveau,commande,insertIn)
+    def __init__(self,node,editor,parentQt,definition, obj, niveau,commande):
+        MonWidgetFactCommun.__init__(self,node,editor,parentQt, definition,obj,niveau,commande)
 
-#class MonWidgetFactTableau(Ui_WidgetFactTableau,MonWidgetFactCommun):
 class MonWidgetFactTableau(Ui_WidgetFact,MonWidgetFactCommun):
-  def __init__(self,node,editor,parentQt,definition, obj, niveau,commande,insertIn=1):
-      MonWidgetFactCommun.__init__(self,node,editor,parentQt, definition,obj,niveau,commande,insertIn)
-      #print ('je passe dans FactTableau')
-      MonWidgetFactTableau.__init__(self,node,editor,parentQt, definition,obj,niveau,commande)
+    #def __init__(self,node,editor,parentQt,definition, obj, niveau,commande,insertIn=1):
+    #    MonWidgetFactCommun.__init__(self,node,editor,parentQt, definition,obj,niveau,commande,insertIn)
+    def __init__(self,node,editor,parentQt,definition, obj, niveau,commande):
+        MonWidgetFactCommun.__init__(self,node,editor,parentQt, definition,obj,niveau,commande)
+        MonWidgetFactTableau.__init__(self,node,editor,parentQt, definition,obj,niveau,commande)
index 6b7942af3ce22b9e9be511ae23be64566a45bec9..51066dca3a76734243d22e2b5ff73a69bb168637 100644 (file)
@@ -26,15 +26,15 @@ from Extensions.i18n import tr
 # Import des panels
 
 class MonWidgetFactPlie(Ui_WidgetFactPlie,Groupe):
-  """
-  """
-  def __init__(self,node,editor,parentQt,definition, obj, niveau,commande,insertIn=-1):
-      #print "fact plie : ",node.item.nom
-      node.fenetreAAfficher=self
-      Groupe.__init__(self,node,editor,parentQt, definition,obj,niveau,commande)
-      self.groupBox.setText(self.node.item.getLabelText()[0])
-      self.parentQt.commandesLayout.insertWidget(insertIn,self)
-
-  def traiteClicSurLabel(self,texte):
-      return
+    """
+    """
+    #def __init__(self,node,editor,parentQt,definition, obj, niveau,commande,insertIn=-1):
+    def __init__(self,node,editor,parentQt,definition, obj, niveau,commande):
+        #print "fact plie : ",node.item.nom
+        node.fenetreAAfficher=self
+        Groupe.__init__(self,node,editor,parentQt, definition,obj,niveau,commande)
+        self.groupBox.setText(self.node.item.getLabelText()[0])
+        self.parentQt.commandesLayout.insertWidget(-1,self)
 
+    def traiteClicSurLabel(self,texte):
+        return
index b7aba8bd1952cdc6a23162b0983b91f6ec6c800d..cff3948854dff826ff93d5697fcb1fe83a49f197 100644 (file)
@@ -21,7 +21,7 @@
 
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 from desWidgetFormule import Ui_WidgetFormule
@@ -33,58 +33,58 @@ from PyQt5.QtCore import Qt
 
 
 from Extensions.i18n import tr
-import Accas 
+import Accas
 import os
 
-    
+
 # Import des panels
 
 class MonWidgetFormule(QWidget,Ui_WidgetFormule,FacultatifOuOptionnel):
-  """
-  """
-  def __init__(self,node,editor,etape):
-      #print "MonWidgetFormule ", self
-      QWidget.__init__(self,None)
-      self.node=node
-      self.node.fenetre=self
-      self.editor=editor
-      self.appliEficas=self.editor.appliEficas
-      self.repIcon=self.appliEficas.repIcon
-      self.setupUi(self)
-      
-      self.setIconePoubelle()
-      self.setIconesGenerales()
-      self.setValeurs()
-      self.setValide()
-
-     
-      if self.editor.code in ['MAP','CARMELCND'] : self.bCatalogue.close()
-      else : self.bCatalogue.clicked.connect(self.afficheCatalogue)
-      if self.editor.code in ['Adao','MAP','ADAO'] : 
-          self.bAvant.close()
-          self.bApres.close()
-      else : 
-          self.bAvant.clicked.connect(self.afficheAvant)
-          self.bApres.clicked.connect(self.afficheApres)
-      self.LENom.returnPressed.connect(self.nomChange)
-      self.LENomFormule.returnPressed.connect(self.nomFormuleSaisi)
-      self.LENomsArgs.returnPressed.connect(self.argsSaisis)
-      self.LECorpsFormule.returnPressed.connect(self.FormuleSaisie)
-
-
-   
-      self.racine=self.node.tree.racine
-      self.monOptionnel=None
-      self.editor.fermeOptionnel()
-      #print "fin init de widget Commande"
-      
-
-  def donnePremier(self):
-      self.listeAffichageWidget[0].setFocus(7)
-
-
-  def setValeurs(self):
+    """
+    """
+    def __init__(self,node,editor,etape):
+        #print "MonWidgetFormule ", self
+        QWidget.__init__(self,None)
+        self.node=node
+        self.node.fenetre=self
+        self.editor=editor
+        self.appliEficas=self.editor.appliEficas
+        self.repIcon=self.appliEficas.repIcon
+        self.setupUi(self)
+
+
+        self.setIconePoubelle()
+        self.setIconesGenerales()
+        self.setValeurs()
+        self.setValide()
+
+
+        if self.editor.code in ['MAP','CARMELCND'] : self.bCatalogue.close()
+        else : self.bCatalogue.clicked.connect(self.afficheCatalogue)
+        if self.editor.code in ['Adao','MAP','ADAO'] :
+            self.bAvant.close()
+            self.bApres.close()
+        else :
+            self.bAvant.clicked.connect(self.afficheAvant)
+            self.bApres.clicked.connect(self.afficheApres)
+        self.LENom.returnPressed.connect(self.nomChange)
+        self.LENomFormule.returnPressed.connect(self.nomFormuleSaisi)
+        self.LENomsArgs.returnPressed.connect(self.argsSaisis)
+        self.LECorpsFormule.returnPressed.connect(self.FormuleSaisie)
+
+
+
+        self.racine=self.node.tree.racine
+        self.monOptionnel=None
+        self.editor.fermeOptionnel()
+        #print "fin init de widget Commande"
+
+
+    def donnePremier(self):
+        self.listeAffichageWidget[0].setFocus(7)
+
+
+    def setValeurs(self):
         self.LENomFormule.setText(self.node.item.getNom())
         self.LECorpsFormule.setText(self.node.item.getCorps())
         texte_args=""
@@ -95,110 +95,109 @@ class MonWidgetFormule(QWidget,Ui_WidgetFormule,FacultatifOuOptionnel):
         self.LENomsArgs.setText(texte_args)
 
 
-  def nomChange(self):
-      nom = str(self.LENom.text())
-      self.LENomFormule.setText(nom)
-      self.nomFormuleSaisi()
-
-
-  def afficheCatalogue(self):
-      if self.editor.widgetOptionnel != None : self.monOptionnel.hide()
-      self.racine.affichePanneau()
-      if self.node : self.node.select()
-      else : self.racine.select()
-
-  def afficheApres(self):
-       self.node.selectApres()
-
-  def afficheAvant(self):
-       self.node.selectAvant()
-
-  def setValide(self):
-      if not(hasattr (self,'RBValide')) : return
-      icon = QIcon()
-      if self.node.item.object.isValid() :
-         icon=QIcon(self.repIcon+"/ast-green-ball.png")
-      else :
-         icon=QIcon(self.repIcon+"/ast-red-ball.png")
-      if self.node.item.getIconName() == "ast-yellow-square" :
-         icon=QIcon(self.repIcon+"/ast-yel-ball.png")
-      self.RBValide.setIcon(icon)
-
-
-  def nomFormuleSaisi(self):
-      nomFormule = str(self.LENomFormule.text())
-      if nomFormule == '' : return
-      self.LENom.setText(nomFormule)
-      test,erreur = self.node.item.verifNom(nomFormule)
-      if test :
-         commentaire=nomFormule+tr(" est un nom valide pour une FORMULE")
-         self.editor.afficheInfos(commentaire)
-      else :
-         commentaire=nomFormule+tr(" n'est pas un nom valide pour une FORMULE")
-         self.editor.afficheInfos(commentaire,Qt.red)
-         return
-      if str(self.LENomsArgs.text()) != "" and  str(self.LECorpsFormule.text())!= "" : self.BOkPressedFormule()
-      self.LENomsArgs.setFocus(7)
-
-  def argsSaisis(self):
-      arguments = str(self.LENomsArgs.text())
-      if arguments == '' : return
-      test,erreur = self.node.item.verifArguments(arguments)
-      if test:
-         commentaire=tr("Argument(s) valide(s) pour une FORMULE")
-         self.editor.afficheInfos(commentaire)
-      else:
-         commentaire=tr("Argument(s) invalide(s) pour une FORMULE")
-         self.editor.afficheInfos(commentaire,Qt.red)
-      if str(self.LECorpsFormule.text()) != "" and  str(self.LENomFormule.text())!= "" : self.BOkPressedFormule()
-      self.LECorpsFormule.setFocus(7)
-
-  def FormuleSaisie(self):
-      nomFormule = str(self.LENomFormule.text())
-      arguments  = str(self.LENomsArgs.text())
-      expression = str(self.LECorpsFormule.text())
-      if expression == '' : return
-      test,erreur = self.node.item.verifFormule_python((nomFormule,"REEL",arguments,expression))
-
-      if test:
-         commentaire=tr("Corps de FORMULE valide")
-         self.editor.afficheInfos(commentaire)
-      else:
-         commentaire=tr("Corps de FORMULE invalide")
-         self.editor.afficheInfos(commentaire,Qt.red)
-      if str(self.LENomsArgs.text()) != "" and  str(self.LENomFormule.text())!= "" : self.BOkPressedFormule()
-
-  def BOkPressedFormule(self):
-      #print dir(self)
-      #if self.parent.modified == 'n' : self.parent.initModif()
-
-      nomFormule = str(self.LENomFormule.text())
-      test,erreur = self.node.item.verifNom(nomFormule)
-      if not test :
-         self.editor.afficheInfos(erreur,Qt.red)
-         return
-
-      arguments  = str(self.LENomsArgs.text())
-      test,erreur = self.node.item.verifArguments(arguments)
-      if not test :
-         self.editor.afficheInfos(erreur,Qt.red)
-         return
-
-      expression = str(self.LECorpsFormule.text())
-      test,erreur = self.node.item.verifFormule_python((nomFormule,"REEL",arguments,expression))
-      if not test :
-         self.editor.afficheInfos(erreur,Qt.red)
-         return
-
-      test=self.node.item.object.updateFormulePython(formule=(nomFormule,"REEL",arguments,expression))
-      test,erreur = self.node.item.saveFormule(nomFormule,"REEL",arguments,expression)
-      if test :
-         self.node.onValid()
-         self.node.update_valid()
-         commentaire = "Formule saisie"
-         self.editor.afficheInfos(commentaire)
-      else:
-         commentaire ="Formule incorrecte : " + erreur
-         self.editor.afficheInfos(commentaire,Qt.red)
-      self.editor.initModif()
-
+    def nomChange(self):
+        nom = str(self.LENom.text())
+        self.LENomFormule.setText(nom)
+        self.nomFormuleSaisi()
+
+
+    def afficheCatalogue(self):
+        if self.editor.widgetOptionnel != None : self.monOptionnel.hide()
+        self.racine.affichePanneau()
+        if self.node : self.node.select()
+        else : self.racine.select()
+
+    def afficheApres(self):
+        self.node.selectApres()
+
+    def afficheAvant(self):
+        self.node.selectAvant()
+
+    def setValide(self):
+        if not(hasattr (self,'RBValide')) : return
+        icon = QIcon()
+        if self.node.item.object.isValid() :
+            icon=QIcon(self.repIcon+"/ast-green-ball.png")
+        else :
+            icon=QIcon(self.repIcon+"/ast-red-ball.png")
+        if self.node.item.getIconName() == "ast-yellow-square" :
+            icon=QIcon(self.repIcon+"/ast-yel-ball.png")
+        self.RBValide.setIcon(icon)
+
+
+    def nomFormuleSaisi(self):
+        nomFormule = str(self.LENomFormule.text())
+        if nomFormule == '' : return
+        self.LENom.setText(nomFormule)
+        test,erreur = self.node.item.verifNom(nomFormule)
+        if test :
+            commentaire=nomFormule+tr(" est un nom valide pour une FORMULE")
+            self.editor.afficheInfos(commentaire)
+        else :
+            commentaire=nomFormule+tr(" n'est pas un nom valide pour une FORMULE")
+            self.editor.afficheInfos(commentaire,Qt.red)
+            return
+        if str(self.LENomsArgs.text()) != "" and  str(self.LECorpsFormule.text())!= "" : self.BOkPressedFormule()
+        self.LENomsArgs.setFocus(7)
+
+    def argsSaisis(self):
+        arguments = str(self.LENomsArgs.text())
+        if arguments == '' : return
+        test,erreur = self.node.item.verifArguments(arguments)
+        if test:
+            commentaire=tr("Argument(s) valide(s) pour une FORMULE")
+            self.editor.afficheInfos(commentaire)
+        else:
+            commentaire=tr("Argument(s) invalide(s) pour une FORMULE")
+            self.editor.afficheInfos(commentaire,Qt.red)
+        if str(self.LECorpsFormule.text()) != "" and  str(self.LENomFormule.text())!= "" : self.BOkPressedFormule()
+        self.LECorpsFormule.setFocus(7)
+
+    def FormuleSaisie(self):
+        nomFormule = str(self.LENomFormule.text())
+        arguments  = str(self.LENomsArgs.text())
+        expression = str(self.LECorpsFormule.text())
+        if expression == '' : return
+        test,erreur = self.node.item.verifFormule_python((nomFormule,"REEL",arguments,expression))
+
+        if test:
+            commentaire=tr("Corps de FORMULE valide")
+            self.editor.afficheInfos(commentaire)
+        else:
+            commentaire=tr("Corps de FORMULE invalide")
+            self.editor.afficheInfos(commentaire,Qt.red)
+        if str(self.LENomsArgs.text()) != "" and  str(self.LENomFormule.text())!= "" : self.BOkPressedFormule()
+
+    def BOkPressedFormule(self):
+        #print dir(self)
+        #if self.parent.modified == 'n' : self.parent.initModif()
+
+        nomFormule = str(self.LENomFormule.text())
+        test,erreur = self.node.item.verifNom(nomFormule)
+        if not test :
+            self.editor.afficheInfos(erreur,Qt.red)
+            return
+
+        arguments  = str(self.LENomsArgs.text())
+        test,erreur = self.node.item.verifArguments(arguments)
+        if not test :
+            self.editor.afficheInfos(erreur,Qt.red)
+            return
+
+        expression = str(self.LECorpsFormule.text())
+        test,erreur = self.node.item.verifFormule_python((nomFormule,"REEL",arguments,expression))
+        if not test :
+            self.editor.afficheInfos(erreur,Qt.red)
+            return
+
+        test=self.node.item.object.updateFormulePython(formule=(nomFormule,"REEL",arguments,expression))
+        test,erreur = self.node.item.saveFormule(nomFormule,"REEL",arguments,expression)
+        if test :
+            self.node.onValid()
+            self.node.update_valid()
+            commentaire = "Formule saisie"
+            self.editor.afficheInfos(commentaire)
+        else:
+            commentaire ="Formule incorrecte : " + erreur
+            self.editor.afficheInfos(commentaire,Qt.red)
+        self.editor.initModif()
index d3e1444ccbb9bff084363e338a357d3a5d50e878..b95cf974deb8f20a1d361924f74fbe692ec30329 100644 (file)
@@ -26,10 +26,10 @@ from Extensions.i18n import tr
 
 from .feuille               import Feuille
 from .monWidgetSimpBase     import MonWidgetSimpBase
-from desWidgetHeure       import Ui_WidgetHeure 
+from desWidgetHeure       import Ui_WidgetHeure
 
 
 class MonWidgetHeure (Ui_WidgetHeure,MonWidgetSimpBase):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         MonWidgetSimpBase.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
index 33adbbe5d8b07ab59b9637ad1094720f033adb29..3a920c1a8b4b1257ffde44c4bc837558e2457c23 100644 (file)
@@ -24,63 +24,62 @@ from PyQt5.QtWidgets import QWidget
 
 from Extensions.i18n import tr
 from desWidgetInactif import Ui_WidgetInactif
-import Accas 
+import Accas
 import os
 
-    
+
 # Import des panels
 
 class MonWidgetInactif(QWidget,Ui_WidgetInactif):
-  """
-  """
-  def __init__(self,node,editor):
-       QWidget.__init__(self,None)
-       self.node=node
-       self.editor=editor
-       self.setupUi(self)
-       from .monWidgetOptionnel import MonWidgetOptionnel
-       if self.editor.widgetOptionnel!= None :
-          self.monOptionnel=self.editor.widgetOptionnel
-       else :
-          self.monOptionnel=MonWidgetOptionnel(self)
-          self.editor.widgetOptionnel=self.monOptionnel
-          self.editor.splitter.addWidget(self.monOptionnel)
-          self.editor.restoreSplitterSizes()
-       self.afficheOptionnel()
-       self.bAvant.clicked.connect(self.afficheAvant)
-       self.bApres.clicked.connect(self.afficheApres)
-       self.bCatalogue.clicked.connect(self.afficheCatalogue)
-       self.labelNomCommande.setText(tr(self.node.item.nom))
-       self.labelNomCommande.setEnabled(False)
-
-  def traiteClicSurLabel(self):
-      pass
-  
-  def donnePremier(self):
-      pass
+    """
+    """
+    def __init__(self,node,editor):
+        QWidget.__init__(self,None)
+        self.node=node
+        self.editor=editor
+        self.setupUi(self)
+        from .monWidgetOptionnel import MonWidgetOptionnel
+        if self.editor.widgetOptionnel!= None :
+            self.monOptionnel=self.editor.widgetOptionnel
+        else :
+            self.monOptionnel=MonWidgetOptionnel(self)
+            self.editor.widgetOptionnel=self.monOptionnel
+            self.editor.splitter.addWidget(self.monOptionnel)
+            self.editor.restoreSplitterSizes()
+        self.afficheOptionnel()
+        self.bAvant.clicked.connect(self.afficheAvant)
+        self.bApres.clicked.connect(self.afficheApres)
+        self.bCatalogue.clicked.connect(self.afficheCatalogue)
+        self.labelNomCommande.setText(tr(self.node.item.nom))
+        self.labelNomCommande.setEnabled(False)
 
-  def setValide(self):
-      pass 
+    def traiteClicSurLabel(self):
+        pass
 
-  def afficheOptionnel(self):
-      # N a pas de parentQt. doit donc etre redefini
-      liste=[]
-      #print "dans afficheOptionnel", self.monOptionnel
-      # dans le cas ou l insertion n a pas eu leiu (souci d ordre par exemple)
-      #if self.monOptionnel == None : return
-      self.monOptionnel.parentMC=self
-      self.monOptionnel.afficheOptionnelVide()
+    def donnePremier(self):
+        pass
 
+    def setValide(self):
+        pass
 
-  def afficheCatalogue(self):
-      if self.editor.widgetOptionnel != None : self.monOptionnel.hide()
-      self.node.tree.racine.affichePanneau()
-      self.node.tree.racine.select()
+    def afficheOptionnel(self):
+        # N a pas de parentQt. doit donc etre redefini
+        if self.editor.maConfiguration.closeOptionnel : return
+        liste=[]
+        #print "dans afficheOptionnel", self.monOptionnel
+        # dans le cas ou l insertion n a pas eu leiu (souci d ordre par exemple)
+        #if self.monOptionnel == None : return
+        self.monOptionnel.parentMC=self
+        self.monOptionnel.afficheOptionnelVide()
 
-  def afficheApres(self):
-       self.node.selectApres()
 
-  def afficheAvant(self):
-       self.node.selectAvant()
+    def afficheCatalogue(self):
+        if self.editor.widgetOptionnel != None : self.monOptionnel.hide()
+        self.node.tree.racine.affichePanneau()
+        self.node.tree.racine.select()
 
+    def afficheApres(self):
+        self.node.selectApres()
 
+    def afficheAvant(self):
+        self.node.selectAvant()
index e05d2d03061ec668f51570622e28a5f6ca985bb9..a8f6a028452c959700b8142ab7b66577fedb574b 100644 (file)
@@ -20,7 +20,7 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import types,os
@@ -29,13 +29,13 @@ import types,os
 from PyQt5.QtWidgets import QWidget
 from Extensions.i18n import tr
 
-from desWidgetInformation  import Ui_WidgetInformative 
+from desWidgetInformation  import Ui_WidgetInformative
 
 
 class MonWidgetInfo (Ui_WidgetInformative,QWidget):
 # c est juste la taille des differents widgets de base qui change
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         QWidget.__init__(self,None)
         self.setupUi(self)
         valeur=node.item.getValeur()
index c5750b82c43812d9fa95c586cbcd87e35ddb8c11..e4db00ad85b0f9d129867223fe61812054761b26 100644 (file)
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
-   from builtins import range
+    from builtins import str
+    from builtins import range
 except : pass
 
 import types,os
 
 # Modules Eficas
-from six.moves import range
 from PyQt5.QtWidgets  import QCheckBox, QScrollBar, QFrame, QApplication, QLabel
 from PyQt5.QtWidgets  import QSizePolicy,QSpacerItem
 from PyQt5.QtGui  import QPalette, QFont
@@ -35,39 +34,38 @@ from PyQt5.QtCore import Qt
 
 from Extensions.i18n import tr
 
-from desWidgetIntoSug        import Ui_WidgetIntoSug 
-from monWidgetPlusieursInto  import MonWidgetPlusieursInto 
+from desWidgetIntoSug        import Ui_WidgetIntoSug
+from monWidgetPlusieursInto  import MonWidgetPlusieursInto
 
 class GereAjoutDsPossible:
-  def LEValeurAjouteDsPossible(self):
-       text=str(self.lineEditVal.text())
-       if text == "" : return
-       # il faudrait essauer d en obtenir un reel, un tuple ou ...
-       # si cela est utilise pour autre chose que Telemac
-       # tout devrait etre fait ici
-       if not isinstance(text,str) : 
-          self.lineEditVal.setText("")
-          return
-       if self.node.item.hasIntoSug() : 
-          self.maListeDeValeur=list(self.node.item.getListePossibleAvecSug([]))
-          self.maListeDeValeur.insert(0,text)
-       else :
-         try :
-           self.monSimpDef.intoSug.insert(0,text)
-         except : 
-           self.monSimpDef.intoSug=list(self.monSimpDef.intoSug)
-           self.monSimpDef.intoSug.insert(0,text)
-       # selon si on est une liste ou un combo
-       try : self.ajouteValeurPossible(text)
-       except : self.setValeurs()
+    def LEValeurAjouteDsPossible(self):
+        text=str(self.lineEditVal.text())
+        if text == "" : return
+        # il faudrait essauer d en obtenir un reel, un tuple ou ...
+        # si cela est utilise pour autre chose que Telemac
+        # tout devrait etre fait ici
+        if not isinstance(text,str) :
+            self.lineEditVal.setText("")
+            return
+        if self.node.item.hasIntoSug() :
+            self.maListeDeValeur=list(self.node.item.getListePossibleAvecSug([]))
+            self.maListeDeValeur.insert(0,text)
+        else :
+            try :
+                self.monSimpDef.intoSug.insert(0,text)
+            except :
+                self.monSimpDef.intoSug=list(self.monSimpDef.intoSug)
+                self.monSimpDef.intoSug.insert(0,text)
+        # selon si on est une liste ou un combo
+        try : self.ajouteValeurPossible(text)
+        except : self.setValeurs()
 
 class MonWidgetIntoSug (Ui_WidgetIntoSug, MonWidgetPlusieursInto,GereAjoutDsPossible):
 # Attention Attention
 # cette wdget ne fonctionne actuellement que pour Telemac
-# on attend du texte . on n essaye pas de transformer 
+# on attend du texte . on n essaye pas de transformer
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
 
         MonWidgetPlusieursInto.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.lineEditVal.returnPressed.connect(self.LEValeurAjouteDsPossible)
-
index 8818bd6964eaea0d0ea33a41be3a9e975190d1c5..02fb9311bda7fc5277ad3b57457a31af294b9208 100644 (file)
@@ -21,8 +21,8 @@
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import str
-   from builtins import range
+    from builtins import str
+    from builtins import range
 except : pass
 
 import types,os,sys
@@ -30,198 +30,235 @@ import types,os,sys
 # Modules Eficas
 from Extensions.i18n import tr
 from .feuille         import Feuille
+from Extensions.eficas_exception import EficasException
 
 
-from desWidgetMatrice  import Ui_desWidgetMatrice 
+from desWidgetMatrice  import Ui_desWidgetMatrice
 
-from six.moves import range
 from PyQt5.QtCore import QSize, Qt
-from PyQt5.QtWidgets import QTableWidgetItem
-from PyQt5.QtGui import QIcon
+from PyQt5.QtWidgets import QTableWidgetItem, QTableWidget
+from PyQt5.QtGui import QIcon, QColor
+from PyQt5.QtWidgets import  QMessageBox
 
 
 class MonWidgetMatrice (Ui_desWidgetMatrice,Feuille):
 # c est juste la taille des differents widgets de base qui change
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-        self.monType= self.node.item.object.definition.type[0]
+        self.monType = self.node.item.object.definition.type[0]
         parentQt.commandesLayout.insertWidget(-1,self)
         self.nbLigs=0
         self.nbCols=0
-        self.nomVariables={}
         self.creeColonnes()
         self.connecterSignaux()
+        self.initialValeur()
+
+
+    def connecterSignaux(self) :
+        self.TBMatrice.itemChanged.connect(self.itemChanged)
+        self.PBrefresh.clicked.connect( self.acceptVal)
+        self.TBMatrice.focusOutEvent=self.monFocusOutEvent
+
+
+    def monFocusOutEvent(self,event):
+        self.acceptVal()
+        QTableWidget.focusOutEvent(self.TBMatrice,event)
+
+
+    def itemChanged(self):
+        monItem=self.TBMatrice.currentItem()
+        if monItem==None : return
+        texte=monItem.text()
+        if texte=="" : return
+        boolOk, commentaire = self.monType.verifItem(texte,self.node.item.object)
+        if not boolOk :
+            self.editor.afficheInfos(tr(commentaire),Qt.red)
+            monItem.setText("")
+            return
+        if self.monType.coloree : self.coloreItem(monItem,texte)
+
+
+    def coloreItem(self,monItem,texte):
+        if texte in self.monType.dictCouleurs.keys() :
+            monItem.setBackground(self.monType.dictCouleurs[texte])
+        else :
+            i=self.monType.indiceCouleur%20
+            newCouleur=QColor(*self.monType.listeCouleurs[i])
+            #monItem.setBackground(Qt.red)
+            monItem.setBackground(newCouleur)
+            self.monType.dictCouleurs[texte]=newCouleur
+            self.monType.indiceCouleur+=1
+            
+
+
+    def creeColonnes(self):
+        if self.monType.methodeCalculTaille != None :
+            try:
+                MonWidgetMatrice.__dict__[self.monType.methodeCalculTaille](*(self,))
+            except :
+                QMessageBox.critical( self, tr("Mauvaise execution "),tr( "impossible d executer la methode ") + monType.methodeCalculTaille )
+                return
+        else :
+            self.nbLigs=self.monType.nbLigs
+            self.nbCols=self.monType.nbCols
+        self.TBMatrice.setColumnCount(self.nbCols)
+        self.TBMatrice.setRowCount(self.nbLigs)
+        if self.nbLigs <15 : taille = 50
+        else : taille = 30
+        for i in range(self.nbLigs) :
+            self.TBMatrice.setRowHeight(i,taille)
+        for i in range(self.nbCols) :
+            self.TBMatrice.setColumnWidth(i,taille)
+        if self.monType.listeHeaders != None :
+            self.TBMatrice.setHorizontalHeaderLabels(self.monType.listeHeaders[0])
+            self.TBMatrice.setVerticalHeaderLabels(self.monType.listeHeaders[1])
+        else :
+            self.TBMatrice.verticalHeader().hide()
+            self.TBMatrice.horizontalHeader().hide()
+        #   self.TBMatrice.setFixedSize(self.nbCols*20+10,self.nbLigs*20+10)
+
+
+    def  initialValeur(self):
+        liste=self.node.item.getValeur()
+        if liste == None : return
+        dejaAffiche=0
+        if (len(liste)) != self.nbLigs  :
+            QMessageBox.critical( self,tr( "Mauvaise dimension de matrice"),tr( "le nombre de ligne n est pas egal a ") + str(self.nbLigs))
+        for i in range(self.nbLigs):
+            inter=liste[i]
+            if (len(inter)) != self.nbCols :
+                QMessageBox.critical( self, tr("Mauvaise dimension de matrice"), tr("le nombre de colonne n est pas egal a ") + str(self.nbCols))
+                raise  EficasException('dimension')
+            for j in range(self.nbCols):
+                self.TBMatrice.setItem(i,j,QTableWidgetItem(str(liste[i][j])))
+                if self.monType.coloree : self.coloreItem(self.TBMatrice.item(i,j),str(liste[i][j]))
+
+    def acceptVal(self):
+        liste=[]
+        for i in range(self.nbLigs):
+            listeCol=[]
+            for j in range(self.nbCols):
+                monItem=self.TBMatrice.item(i,j)
+                if monItem : texte=monItem.text()
+                else       : texte = ''
+                if texte != '' : val=self.monType.convertItem(texte)
+                else : val = None
+                listeCol.append(val)
+            liste.append(listeCol)
+        self.node.item.setValeur(liste)
+
+
+class MonWidgetMatriceOT (MonWidgetMatrice):
+
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+        monWidgetMatrice.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
+
+    def connecterSignaux(self) :
+        self.TBMatrice.itemChanged.connect(self.itemChanged)
+        self.PBrefresh.clicked.connect( self.afficheEntete)
+
+
+    def afficheEntete(self):
+        self.objSimp.changeEnteteMatrice()
+        self.TBMatrice.clear()
         if self.node.item.getValeur()== None:  self.initialSsValeur()
         else :
-           try    : self.initialValeur()
-           except : self.initialSsValeur()
-        if sys.platform[0:5]!="linux" : 
-          repIcon=self.node.editor.appliEficas.repIcon
-          fichier=os.path.join(repIcon, 'update.png')
-          icon = QIcon(fichier)
-          self.PBrefresh.setIcon(icon)
-          self.PBrefresh.setIconSize(QSize(32, 32))
-
-
-
-  def connecterSignauxQT4(self) :
-      self.connect(self.TBMatrice,SIGNAL("itemChanged(QTableWidgetItem *)"),self.itemChanged)
-      self.connect(self.PBrefresh,SIGNAL("clicked()"), self.afficheEntete)
-
-  def connecterSignaux(self) :
-      self.TBMatrice.itemChanged.connect(self.itemChanged)
-      self.PBrefresh.clicked.connect( self.afficheEntete)
-
-  def afficheEntete(self):
-      self.objSimp.changeEnteteMatrice()
-      self.TBMatrice.clear()
-      if self.node.item.getValeur()== None:  self.initialSsValeur()
-      else :
-         try    : self.initialValeur()
-         except : self.initialSsValeur()
-      self.node.item.object.state='changed'
-      self.node.item.object.parent.state='changed'
-      self.setValide()
-      self.parentQt.setValide()
-      self.node.item.jdc.isValid()
-
-
-  def itemChanged(self):
-      monItem=self.TBMatrice.currentItem()
-      if monItem==None : return
-      texte=monItem.text()
-      if texte=="" : return
-      #try :
-      if 1 :
-        val=float(str(texte))
-        ok=True
-      #except :
-      else :
-        ok=False
-      if ok == False :
-       self.editor.afficheInfos(tr("Entrer un float SVP"),Qt.red)
-        monItem.setText("")
-        return
-      if self.monType.valSup != None :
-         if val > self.monType.valSup :
-           self.editor.afficheInfos(tr("Entrer un float inferieur a ") + repr(self.monType.valSup),Qt.red)
+            try    : self.initialValeur()
+            except : self.initialSsValeur()
+        self.node.item.object.state='changed'
+        self.node.item.object.parent.state='changed'
+        self.setValide()
+        self.parentQt.setValide()
+        self.node.item.jdc.isValid()
+
+
+    def itemChanged(self):
+        monItem=self.TBMatrice.currentItem()
+        if monItem==None : return
+        texte=monItem.text()
+        if texte=="" : return
+        try :
+            val=float(str(texte))
+            ok=True
+        except :
+            ok=False
+        if ok == False :
+            self.editor.afficheInfos(tr("Entrer un float SVP"),Qt.red)
             monItem.setText("")
             return
-      if self.monType.valMin != None :
-         if val < self.monType.valMin :
-           self.editor.afficheInfos(tr("Entrer un float superieur a ") + repr(self.monType.valMin),Qt.red)
-            monItem.setText("")
+        if self.monType.valSup != None :
+            if val > self.monType.valSup :
+                self.editor.afficheInfos(tr("Entrer un float inferieur a ") + repr(self.monType.valSup),Qt.red)
+                monItem.setText("")
+                return
+        if self.monType.valMin != None :
+            if val < self.monType.valMin :
+                self.editor.afficheInfos(tr("Entrer un float superieur a ") + repr(self.monType.valMin),Qt.red)
+                monItem.setText("")
+                return
+        self.editor.afficheInfos("")
+        if self.monType.structure != None: MonWidgetMatrice.__dict__[self.monType.structure](*(self,))
+        self.acceptVal()
+
+
+
+    def creeColonnes(self):
+        if self.monType.methodeCalculTaille != None :
+            try:
+                MonWidgetMatrice.__dict__[self.monType.methodeCalculTaille](*(self,))
+            except :
+                QMessageBox.critical( self, tr("Mauvaise execution "),tr( "impossible d executer la methode ") + monType.methodeCalculTaille )
+                return
+        else :
+            self.nbLigs=self.monType.nbLigs
+            self.nbCols=self.monType.nbCols
+
+
+    def  nbDeVariables(self):
+    # uniquement pour OT
+        jdc=self.node.item.object.jdc
+        etape=self.node.item.object.etape
+        self.listeVariables=jdc.getVariables(etape)
+        if self.listeVariables == [] :
+            QMessageBox.critical( self, tr("Mauvaise Commande "),tr( "Aucune variable connue"))
             return
-      self.editor.afficheInfos("")
-      if self.monType.structure != None: MonWidgetMatrice.__dict__[self.monType.structure](*(self,))
-      self.acceptVal()
-
-
-  def symetrique(self):
-      monItem=self.TBMatrice.currentItem()
-      texte=monItem.text()
-      if monItem.row() != monItem.column():
-         print(monItem.row(), monItem.column())
-         monItemSym=self.TBMatrice.item(monItem.column(), monItem.row())
-         monItemSym.setText(texte)
-
-  def creeColonnes(self):
-      if self.monType.methodeCalculTaille != None :
-        #try:
-         if 1 :
-           MonWidgetMatrice.__dict__[self.monType.methodeCalculTaille](*(self,))
-         else :
-         #except :
-           QMessageBox.critical( self, tr("Mauvaise execution "),tr( "impossible d executer la methode ") + monType.methodeCalculTaille )
-           return
-      else :
-         self.nbLigs=self.monType.nbLigs
-         self.nbCols=self.monType.nbCols
-
-
-  def  nbDeVariables(self):
-       jdc=self.node.item.object.jdc
-       etape=self.node.item.object.etape
-       self.listeVariables=jdc.getVariables(etape)
-       if self.listeVariables == [] :
-           QMessageBox.critical( self, tr("Mauvaise Commande "),tr( "Aucune variable connue"))
-           return
-       self.TBMatrice.setColumnCount(len(self.listeVariables))
-       self.TBMatrice.setRowCount(len(self.listeVariables))
-       self.nbLigs=len(self.listeVariables)
-       self.nbCols=len(self.listeVariables)
-
-  def  nNbDeDistributions(self):
-       jdc=self.node.item.object.jdc
-       etape=self.node.item.object.etape
-       self.listeVariables=jdc.getDistributions(etape)
-       if self.listeVariables == [] :
-           QMessageBox.critical( self, tr("Mauvaise Commande "),tr( "Aucune variable connue"))
-           return
-       self.TBMatrice.setColumnCount(len(self.listeVariables))
-       self.TBMatrice.setRowCount(len(self.listeVariables))
-       self.nbLigs=len(self.listeVariables)
-       self.nbCols=len(self.listeVariables)
-
-  def  initialSsValeur(self):
-       for row in range(self.nbLigs):
-          for column in range(self.nbCols):
-              if row == column :
-                 initialFloat=1
-               else :
-                 initialFloat=0
-               self.TBMatrice.setItem(row,column,QTableWidgetItem(str(initialFloat)))
-       #header=QStringList()
-       header=[]
-       for var in self.listeVariables :
-#         header << var
-           header.append(var)
-       self.TBMatrice.setVerticalHeaderLabels(header)
-       self.TBMatrice.setHorizontalHeaderLabels(header)
-
-  def  initialValeur(self):
-      liste=self.node.item.getValeur()
-      dejaAffiche=0
-      if (len(liste)) != self.nbLigs +1  :
-         QMessageBox.critical( self,tr( "Mauvaise dimension de matrice"),tr( "le nombre de ligne n est pas egal a ") + str(self.nbLigs))
-         dejaAffiche=1
-         raise  EficasException('dimension')
-      for i in range(self.nbLigs):
-          inter=liste[i+1]
-          if (len(inter)) != self.nbCols and (dejaAffiche == 0 ) :
-             QMessageBox.critical( self, tr("Mauvaise dimension de matrice"), tr("le nombre de colonne n est pas egal a ") + str(self.nbCols))
-             dejaAffiche=1
-             raise  EficasException('dimension')
-          for j in range(self.nbCols):
-              self.TBMatrice.setItem(i,j,QTableWidgetItem(str(liste[i+1][j])))
-      header=QStringList()
-      for var in liste[0]:
-          header << var
-      self.TBMatrice.setVerticalHeaderLabels(header)
-      self.TBMatrice.setHorizontalHeaderLabels(header)
-              
-  def acceptVal(self):
-      liste=[]
-      liste.append(self.listeVariables)
-      if self.TBMatrice.rowCount() != self.nbLigs :
-         QMessageBox.critical( self, tr("Mauvaise dimension de matrice"),tr( "le nombre de ligne n est pas egal a ") + str(self.nbLigs))
-      if self.TBMatrice.columnCount() != self.nbCols :
-         QMessageBox.critical( self, tr("Mauvaise dimension de matrice"), tr("le nombre de colonne n est pas egal a ") + str(self.nbCols))
-      for i in range(self.nbLigs):
-          listeCol=[]
-          for j in range(self.nbCols):
-              monItem=self.TBMatrice.item(i,j)       
-              texte=monItem.text()
-              try :
-                 val=float(str(texte))
-                 ok=True
-              except :
-                 ok=False
-              #val,ok=texte.toDouble() 
-              if ok == False :
-                 QMessageBox.critical( self, tr("Mauvaise Valeur"),tr( "l element ") + str(i) + "," +str(j) +tr("n est pas correct"))
-              listeCol.append(val)
-          liste.append(listeCol)
-      # on ajoute l ordre des variables aux valeurs
-      self.node.item.setValeur(liste)
+        self.TBMatrice.setColumnCount(len(self.listeVariables))
+        self.TBMatrice.setRowCount(len(self.listeVariables))
+        self.nbLigs=len(self.listeVariables)
+        self.nbCols=len(self.listeVariables)
+
+
+    def  initialSsValeur(self):
+    # uniquement pour OT
+        self.listeVariables=[]
+        for row in range(self.nbLigs):
+            for column in range(self.nbCols):
+                if row == column :
+                    initialFloat=1
+                else :
+                    initialFloat=0
+                self.TBMatrice.setItem(row,column,QTableWidgetItem(str(initialFloat)))
+        header =[]
+        for var in liste[0]: header .append(str(var))
+        self.TBMatrice.setVerticalHeaderLabels(header)
+        self.TBMatrice.setHorizontalHeaderLabels(header)
+
+    def  initialValeur(self):
+    # uniquement pour OT
+        liste=self.node.item.getValeur()
+        dejaAffiche=0
+        if (len(liste)) != self.nbLigs +1   :
+            QMessageBox.critical( self,tr( "Mauvaise dimension de matrice"),tr( "le nombre de ligne n est pas egal a ") + str(self.nbLigs))
+            raise  EficasException('dimension')
+        for i in range(self.nbLigs):
+            inter=liste[i+1]
+            if (len(inter)) != self.nbCols :
+                QMessageBox.critical( self, tr("Mauvaise dimension de matrice"), tr("le nombre de colonne n est pas egal a ") + str(self.nbCols))
+                raise  EficasException('dimension')
+            for j in range(self.nbCols):
+                self.TBMatrice.setItem(i,j,QTableWidgetItem(str(liste[i][j])))
+        header =[]
+        for var in liste[0]: header .append(str(var))
+        self.TBMatrice.setVerticalHeaderLabels(header)
+        self.TBMatrice.setHorizontalHeaderLabels(header)
index 7b4149e0224acaba15e44a170f4ea5c9b2d4880d..c12e5bacaf31cc43136a482492a83aae8be62879 100644 (file)
@@ -21,7 +21,7 @@
 
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import types
@@ -35,146 +35,145 @@ from PyQt5.QtGui  import  QIcon
 
 
 from Extensions.i18n import tr
-import Accas 
+import Accas
 import os
 
-    
+
 # Import des panels
 
 class MonWidgetNiveauFact(Ui_WidgetNiveauFact,Groupe):
-  """
-  """
-  def __init__(self,node,editor,definition,obj):
-      self.listeAffichageWidget=[]
-      self.listeBoutonAChanger=[]
-      Groupe.__init__(self,node,editor,None,definition,obj,1,self)
-      from InterfaceQT4 import composimp
-      if isinstance(self.node ,composimp.Node):
-         widget=self.node.getPanelGroupe(self,self.maCommande)
-         self.listeBoutonAChanger.append(widget.RBValide)
-      self.afficheOptionnel()
-      self.inhibe=False
-      self.labelDoc.setText(self.node.item.getFr())
-      self.labelNomCommande.setText(self.node.item.getLabelText()[0])
-
-  def reaffiche(self,nodeAVoir=None):
-      self.node.setDeplieChildren()
-      self.node.afficheCeNiveau()
-      self.editor.fenetreCentraleAffichee.labelDoc.setText(self.node.item.getFr())
-      self.editor.fenetreCentraleAffichee.labelNomCommande.setText(self.node.item.getLabelText()[0])
-
-  def getPanel(self):
-  # necessaire pour handleOnItem de browser.py
-  # non appele
-      pass 
-
-  def donnePremier(self):
-      #print "dans donnePremier"
-      QApplication.processEvents()
-      if self.listeAffichageWidget != [] :
-         self.listeAffichageWidget[0].setFocus(7)
-      QApplication.processEvents()
-      #print self.focusWidget()
-
-
-  def focusNextPrevChild(self, next):
-      # on s assure que ce n est pas un chgt de fenetre
-      #print "je passe dans focusNextPrevChild"
-      if self.editor.fenetreCentraleAffichee != self : return True
-      f=self.focusWidget()
-
-      if f not in self.listeAffichageWidget :
-         i=0
-         while not hasattr (f,'AAfficher') :
-           if f==None :i=-1; break
-           f=f.parentWidget()
-         if hasattr(f,'AAfficher') : f=f.AAfficher
-         if i != -1 : i=self.listeAffichageWidget.index(f)
-      else :i=self.listeAffichageWidget.index(f) 
-      if (i==len(self.listeAffichageWidget) -1) and next and not self.inhibe: 
-         try :
-           self.listeAffichageWidget[1].setFocus(7)
-           w=self.focusWidget()
-           self.inhibe=1
-           w.focusPreviousChild()
-           self.inhibe=0
-           return True
-         except : pass
-
-      if i==0 and next==False and not self.inhibe: 
-         if hasattr(self.editor.fenetreCentraleAffichee,'scrollArea'):
-            self.editor.fenetreCentraleAffichee.scrollArea.ensureWidgetVisible(self.listeAffichageWidget[-1])
-         self.listeAffichageWidget[-2].setFocus(7)
-         self.inhibe=1
-         w=self.focusWidget()
-         w.focusNextChild()
-         self.inhibe=0
-         return True
-
-      if i==0 and next==True and not self.inhibe:
-         self.listeAffichageWidget[0].setFocus(7)
-         self.inhibe=1
-         w=self.focusWidget()
-         w.focusNextChild()
-         self.inhibe=0
-         return True
-
-      if i>0 and next==False and not self.inhibe:
-         if isinstance(self.listeAffichageWidget[i-1],QRadioButton):
-           self.listeAffichageWidget[i-1].setFocus(7)
-           return True
-      return QWidget.focusNextPrevChild(self, next)
-
-  def etablitOrdre(self):
-      # si on boucle on perd l'ordre
-      i=0
-      while(i +1 < len(self.listeAffichageWidget)):
-         self.setTabOrder(self.listeAffichageWidget[i],self.listeAffichageWidget[i+1])
-         i=i+1
-
-  def  afficheSuivant(self,f):
-      #print ('ds afficheSuivant')
-      try :
-        i=self.listeAffichageWidget.index(f) 
-        next=i+1
-      except :
-        next=1
-      if (next==len(self.listeAffichageWidget) ): next =0
-      try :
-        self.listeAffichageWidget[next].setFocus(7)
-      except :
+    """
+    """
+    def __init__(self,node,editor,definition,obj):
+        self.listeAffichageWidget=[]
+        self.listeBoutonAChanger=[]
+        Groupe.__init__(self,node,editor,None,definition,obj,1,self)
+        from InterfaceQT4 import composimp
+        if isinstance(self.node ,composimp.Node):
+            widget=self.node.getPanelGroupe(self,self.maCommande)
+            self.listeBoutonAChanger.append(widget.RBValide)
+        self.afficheOptionnel()
+        self.inhibe=False
+        self.labelDoc.setText(self.node.item.getFr())
+        self.labelNomCommande.setText(self.node.item.getLabelText()[0])
+
+    def reaffiche(self,nodeAVoir=None):
+        self.node.setDeplieChildren()
+        self.node.afficheCeNiveau()
+        self.editor.fenetreCentraleAffichee.labelDoc.setText(self.node.item.getFr())
+        self.editor.fenetreCentraleAffichee.labelNomCommande.setText(self.node.item.getLabelText()[0])
+
+    def getPanel(self):
+    # necessaire pour handleOnItem de browser.py
+    # non appele
         pass
 
-
-  def afficheOptionnel(self):
-      # N a pas de parentQt. doit donc etre redefini
-      #print ('ds afficheOptionnel')
-      if self.editor.widgetOptionnel!= None :
-        self.monOptionnel=self.editor.widgetOptionnel
-      else :
-        self.editor.inhibeSplitter=1
-        self.monOptionnel=MonWidgetOptionnel(self.editor)
-        self.editor.widgetOptionnel=self.monOptionnel
-        self.editor.splitter.addWidget(self.monOptionnel)
-        self.editor.ajoutOptionnel()
-        self.editor.inhibeSplitter=0
-      self.monOptionnel.vireTous()
-
-      
-      liste,liste_rouge=self.ajouteMCOptionnelDesBlocs()
-      self.monOptionnel.parentCommande=self
-      self.monOptionnel.titre(self.obj.nom)
-      self.monGroupe=self.monOptionnel.afficheOptionnel(liste,liste_rouge,self)
-      
-  def setValide(self):
-     Groupe.setValide(self)
-     for bouton in self.listeBoutonAChanger:
-         couleur=self.node.item.getIconName()
-         monIcone = QIcon(self.repIcon+"/" + couleur + ".png")
-         bouton.setIcon(monIcone)
+    def donnePremier(self):
+        #print "dans donnePremier"
+        QApplication.processEvents()
+        if self.listeAffichageWidget != [] :
+            self.listeAffichageWidget[0].setFocus(7)
+        QApplication.processEvents()
+        #print self.focusWidget()
+
+
+    def focusNextPrevChild(self, next):
+        # on s assure que ce n est pas un chgt de fenetre
+        #print "je passe dans focusNextPrevChild"
+        if self.editor.fenetreCentraleAffichee != self : return True
+        f=self.focusWidget()
+
+        if f not in self.listeAffichageWidget :
+            i=0
+            while not hasattr (f,'AAfficher') :
+                if f==None :i=-1; break
+                f=f.parentWidget()
+            if hasattr(f,'AAfficher') : f=f.AAfficher
+            if i != -1 : i=self.listeAffichageWidget.index(f)
+        else :i=self.listeAffichageWidget.index(f)
+        if (i==len(self.listeAffichageWidget) -1) and next and not self.inhibe:
+            try :
+                self.listeAffichageWidget[1].setFocus(7)
+                w=self.focusWidget()
+                self.inhibe=1
+                w.focusPreviousChild()
+                self.inhibe=0
+                return True
+            except : pass
+
+        if i==0 and next==False and not self.inhibe:
+            if hasattr(self.editor.fenetreCentraleAffichee,'scrollArea'):
+                self.editor.fenetreCentraleAffichee.scrollArea.ensureWidgetVisible(self.listeAffichageWidget[-1])
+            self.listeAffichageWidget[-2].setFocus(7)
+            self.inhibe=1
+            w=self.focusWidget()
+            w.focusNextChild()
+            self.inhibe=0
+            return True
+
+        if i==0 and next==True and not self.inhibe:
+            self.listeAffichageWidget[0].setFocus(7)
+            self.inhibe=1
+            w=self.focusWidget()
+            w.focusNextChild()
+            self.inhibe=0
+            return True
+
+        if i>0 and next==False and not self.inhibe:
+            if isinstance(self.listeAffichageWidget[i-1],QRadioButton):
+                self.listeAffichageWidget[i-1].setFocus(7)
+                return True
+        return QWidget.focusNextPrevChild(self, next)
+
+    def etablitOrdre(self):
+        # si on boucle on perd l'ordre
+        i=0
+        while(i +1 < len(self.listeAffichageWidget)):
+            self.setTabOrder(self.listeAffichageWidget[i],self.listeAffichageWidget[i+1])
+            i=i+1
+
+    def  afficheSuivant(self,f):
+        #print ('ds afficheSuivant')
+        try :
+            i=self.listeAffichageWidget.index(f)
+            next=i+1
+        except :
+            next=1
+        if (next==len(self.listeAffichageWidget) ): next =0
+        try :
+            self.listeAffichageWidget[next].setFocus(7)
+        except :
+            pass
+
+
+    def afficheOptionnel(self):
+        # N a pas de parentQt. doit donc etre redefini
+        #print ('ds afficheOptionnel')
+        if self.editor.maConfiguration.closeOptionnel : return
+        if self.editor.widgetOptionnel!= None :
+            self.monOptionnel=self.editor.widgetOptionnel
+        else :
+            self.editor.inhibeSplitter=1
+            self.monOptionnel=MonWidgetOptionnel(self.editor)
+            self.editor.widgetOptionnel=self.monOptionnel
+            self.editor.splitter.addWidget(self.monOptionnel)
+            self.editor.ajoutOptionnel()
+            self.editor.inhibeSplitter=0
+        self.monOptionnel.vireTous()
+
+
+        liste,liste_rouge=self.ajouteMCOptionnelDesBlocs()
+        self.monOptionnel.parentCommande=self
+        self.monOptionnel.titre(self.obj.nom)
+        self.monGroupe=self.monOptionnel.afficheOptionnel(liste,liste_rouge,self)
+
+    def setValide(self):
+        Groupe.setValide(self)
+        for bouton in self.listeBoutonAChanger:
+            couleur=self.node.item.getIconName()
+            monIcone = QIcon(self.repIcon+"/" + couleur + ".png")
+            bouton.setIcon(monIcone)
 
 class MonWidgetNiveauFactTableau(MonWidgetNiveauFact):
-  def __init__(self,node,editor,definition,obj):
-      MonWidgetNiveauFact.__init__(self,node,editor,definition,obj)
-
-
+    def __init__(self,node,editor,definition,obj):
+        MonWidgetNiveauFact.__init__(self,node,editor,definition,obj)
index 8315775d801c5bb3737f1bb69f3eaee882e49edc..cc2360bb2a551ee64c103d95df7367344427d376 100644 (file)
@@ -27,67 +27,67 @@ from Extensions.i18n import tr
 from desWidgetOptionnel import Ui_WidgetOptionnel
 from .monGroupeOptionnel import MonGroupeOptionnel
 
-    
+
 # Import des panels
 class  MonWidgetOptionnel (QWidget,Ui_WidgetOptionnel):
-  def __init__(self,parentQt):
-     #print ("dans init de monWidgetOptionnel ", parentQt )
-     QWidget.__init__(self,None)
-     self.setupUi(self)
-     self.dicoMCWidgetOptionnel={}
-     self.parentQt=parentQt
+    def __init__(self,parentQt):
+        #print ("dans init de monWidgetOptionnel ", parentQt )
+        QWidget.__init__(self,None)
+        self.setupUi(self)
+        self.dicoMCWidgetOptionnel={}
+        self.parentQt=parentQt
+
+    def afficheOptionnel(self,liste,liste_rouge,MC):
+        #print ('afficheOptionnel MonWidgetOptionnel',self, liste,MC.node.item.nom)
+        self.vireLesAutres(MC)
+
+        if MC.node.item.nom in self.dicoMCWidgetOptionnel :
+            #print (MC.node.item.nom)
+            self.dicoMCWidgetOptionnel[MC.node.item.nom].close()
+            self.dicoMCWidgetOptionnel[MC.node.item.nom].setParent(None)
+            self.dicoMCWidgetOptionnel[MC.node.item.nom].deleteLater()
+            del self.dicoMCWidgetOptionnel[MC.node.item.nom]
+        if liste==[] : return
+        groupe = MonGroupeOptionnel(liste,liste_rouge,self,MC)
+        self.groupesOptionnelsLayout.insertWidget(0,groupe)
+        self.dicoMCWidgetOptionnel[MC.node.item.nom]=groupe
+        return groupe
 
-  def afficheOptionnel(self,liste,liste_rouge,MC):
-     #print ('afficheOptionnel MonWidgetOptionnel', self,liste,MC)
-     self.vireLesAutres(MC)
-   
-     if MC.node.item.nom in self.dicoMCWidgetOptionnel :
-        #print (MC.node.item.nom)
-        self.dicoMCWidgetOptionnel[MC.node.item.nom].close()
-        self.dicoMCWidgetOptionnel[MC.node.item.nom].setParent(None)
-        self.dicoMCWidgetOptionnel[MC.node.item.nom].deleteLater()
-        del self.dicoMCWidgetOptionnel[MC.node.item.nom]
-     if liste==[] : return
-     groupe = MonGroupeOptionnel(liste,liste_rouge,self,MC)
-     self.groupesOptionnelsLayout.insertWidget(0,groupe)
-     self.dicoMCWidgetOptionnel[MC.node.item.nom]=groupe
-     return groupe
+    def vireLesAutres(self,MC):
+        #print( "je passe dans vireLesAutres")
+        genea =MC.obj.getGenealogie()
+        #print (genea)
+        for k in list(self.dicoMCWidgetOptionnel.keys()):
+            #print (k)
+            #if k not in genea :  print ( k)
+            if k not in genea :
+                self.dicoMCWidgetOptionnel[k].close()
+                del self.dicoMCWidgetOptionnel[k]
+        #print( "fin vireLesAutres")
 
-  def vireLesAutres(self,MC):
-      #print( "je passe dans vireLesAutres")
-      genea =MC.obj.getGenealogie()
-      #print (genea)
-      for k in list(self.dicoMCWidgetOptionnel.keys()):
-          #print (k)
-          #if k not in genea :  print ( k)
-          if k not in genea :  
-             self.dicoMCWidgetOptionnel[k].close()
-             del self.dicoMCWidgetOptionnel[k]
-      #print( "fin vireLesAutres")
-      
-  def vireTous(self):
-      for k in list(self.dicoMCWidgetOptionnel.keys()):
-          self.dicoMCWidgetOptionnel[k].close()
-          del self.dicoMCWidgetOptionnel[k]
+    def vireTous(self):
+        for k in list(self.dicoMCWidgetOptionnel.keys()):
+            self.dicoMCWidgetOptionnel[k].close()
+            del self.dicoMCWidgetOptionnel[k]
 
-  def afficheOptionnelVide(self):
-      self.GeneaLabel.setText("")
-      for k in list(self.dicoMCWidgetOptionnel.keys()):
+    def afficheOptionnelVide(self):
+        self.GeneaLabel.setText("")
+        for k in list(self.dicoMCWidgetOptionnel.keys()):
             self.dicoMCWidgetOptionnel[k].close()
             del self.dicoMCWidgetOptionnel[k]
 
-  def titre(self,MC):
-     if self.parentCommande.node.editor.code in ['Adao','ADAO'] and self.parentCommande.node.editor.maConfiguration.closeFrameRechercheCommande==True :
-        self.frameLabelCommande.close()
-        return
-     labeltext,fonte,couleur = self.parentCommande.node.item.getLabelText()
-     l=tr(labeltext)
-     li=[]
-     while len(l) > 25:
-         li.append(l[0:24])
-         l=l[24:]
-     li.append(l)
-     texte=""
-     for l in li : texte+=l+"\n"
-     texte=texte[0:-2]
-     self.GeneaLabel.setText(tr("Options pour \n") +texte)
+    def titre(self,MC):
+        if self.parentCommande.node.editor.maConfiguration.closeFrameRechercheCommande==True :
+            self.frameLabelCommande.close()
+            return
+        labeltext,fonte,couleur = self.parentCommande.node.item.getLabelText()
+        l=tr(labeltext)
+        li=[]
+        while len(l) > 25:
+            li.append(l[0:24])
+            l=l[24:]
+        li.append(l)
+        texte=""
+        for l in li : texte+=l+"\n"
+        texte=texte[0:-2]
+        self.GeneaLabel.setText(tr("Options pour \n") +texte)
index 21a93730813b91c95f102432bf318cb8cf0fe133..905bbe34768d4c72c5f9515fd8ea405f01aa7284 100644 (file)
 
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 from desWidgetParam import Ui_WidgetParam
 from InterfaceQT4.gereIcones import FacultatifOuOptionnel
-import six
 from PyQt5.QtWidgets import QWidget, QMessageBox
 from PyQt5.QtGui import QIcon
 
 from Extensions.i18n import tr
 from Extensions.eficas_exception import EficasException
-import Accas 
+import Accas
 import os, re
 import types
 
 pattern_name       = re.compile(r'^[^\d\W]\w*\Z')
 
-    
+
 # Import des panels
 
 class MonWidgetParam(QWidget,Ui_WidgetParam,FacultatifOuOptionnel):
-  """
-  """
-  def __init__(self,node,editor,commentaire):
-      QWidget.__init__(self,None)
-      self.node=node
-      self.node.fenetre=self
-      self.setupUi(self)
-      self.editor=editor
-      self.appliEficas=self.editor.appliEficas
-      self.repIcon=self.appliEficas.repIcon
-
-      self.setIconePoubelle()
-      if not(self.node.item.object.isValid()) :
-         icon=QIcon(self.repIcon+"/ast-red-ball.png")
-         self.RBValide.setIcon(icon)
-
-      self.remplit()
-      #if self.editor.code in ['MAP','CARMELCND','CF'] : self.bCatalogue.close()
-      if self.editor.code in ['MAP','CARMELCND'] : self.bCatalogue.close()
-      else : self.bCatalogue.clicked.connect(self.afficheCatalogue)
-
-      self.lineEditVal.returnPressed.connect(self.LEvaleurPressed)
-      self.lineEditNom.returnPressed.connect(self.LENomPressed)
-      self.bAvant.clicked.connect(self.afficheAvant)
-      self.bApres.clicked.connect(self.afficheApres)
-      self.bVerifie.clicked.connect(self.verifiePressed)
-
-      self.editor.fermeOptionnel()
-
-       
-  def afficheCatalogue(self):
-      self.node.tree.racine.affichePanneau()
-      if self.node : self.node.select()
-      else : self.node.tree.racine.select()
-
-  def remplit(self):
-      nom=self.node.item.getNom()
-      self.lineEditNom.setText(nom)
-
-      valeur=self.node.item.getValeur()
-      if valeur == None : 
-         self.lineEditVal.clear()
-      elif type(valeur) == list :
-         texte="["
-         for l in valeur :
-           texte=texte+str(l) +","
-         texte=texte[0:-1]+"]"
-         self.lineEditVal.setText(texte)
-      else :
-         self.lineEditVal.setText(str(valeur))
-
-
-  def donnePremier(self):
-      self.lineEditVal.setFocus(7)
-
-  def LEvaleurPressed(self):
-      if self.verifiePressed() == False :
-         QMessageBox.warning( self,tr( "Modification Impossible"),tr( "le parametre n'est pas valide"))
-      nom=str(self.lineEditNom.text())
-      val=str(self.lineEditVal.text())
-      self.node.item.setNom(nom)
-      self.node.item.setValeur(val)
-      self.node.updateTexte()
-
-  def LENomPressed(self):
-      self.LEvaleurPressed()
-
-  def verifiePressed(self):
+    """
+    """
+    def __init__(self,node,editor,commentaire):
+        QWidget.__init__(self,None)
+        self.node=node
+        self.node.fenetre=self
+        self.setupUi(self)
+        self.editor=editor
+        self.appliEficas=self.editor.appliEficas
+        self.repIcon=self.appliEficas.repIcon
+
+        self.setIconePoubelle()
+        if not(self.node.item.object.isValid()) :
+            icon=QIcon(self.repIcon+"/ast-red-ball.png")
+            self.RBValide.setIcon(icon)
+
+        self.remplit()
+        #if self.editor.code in ['MAP','CARMELCND','CF'] : self.bCatalogue.close()
+        if self.editor.code in ['MAP','CARMELCND'] : self.bCatalogue.close()
+        else : self.bCatalogue.clicked.connect(self.afficheCatalogue)
+
+        self.lineEditVal.returnPressed.connect(self.LEvaleurPressed)
+        self.lineEditNom.returnPressed.connect(self.LENomPressed)
+        self.bAvant.clicked.connect(self.afficheAvant)
+        self.bApres.clicked.connect(self.afficheApres)
+        self.bVerifie.clicked.connect(self.verifiePressed)
+
+        self.editor.fermeOptionnel()
+
+
+    def afficheCatalogue(self):
+        self.node.tree.racine.affichePanneau()
+        if self.node : self.node.select()
+        else : self.node.tree.racine.select()
+
+    def remplit(self):
+        nom=self.node.item.getNom()
+        self.lineEditNom.setText(nom)
+
+        valeur=self.node.item.getValeur()
+        if valeur == None :
+            self.lineEditVal.clear()
+        elif type(valeur) == list :
+            texte="["
+            for l in valeur :
+                texte=texte+str(l) +","
+            texte=texte[0:-1]+"]"
+            self.lineEditVal.setText(texte)
+        else :
+            self.lineEditVal.setText(str(valeur))
+
+
+    def donnePremier(self):
+        self.lineEditVal.setFocus(7)
+
+    def LEvaleurPressed(self):
+        if self.verifiePressed() == False :
+            QMessageBox.warning( self,tr( "Modification Impossible"),tr( "le parametre n'est pas valide"))
+        nom=str(self.lineEditNom.text())
+        val=str(self.lineEditVal.text())
+        self.node.item.setNom(nom)
+        self.node.item.setValeur(val)
+        self.node.updateTexte()
+
+    def LENomPressed(self):
+        self.LEvaleurPressed()
+
+    def verifiePressed(self):
         nomString=str(self.lineEditNom.text())
-        if not pattern_name.match(nomString) : 
-           self.LECommentaire.setText(nomString + tr(" n est pas un identifiant correct"))
-           return False
+        if not pattern_name.match(nomString) :
+            self.LECommentaire.setText(nomString + tr(" n est pas un identifiant correct"))
+            return False
 
         valString=str(self.lineEditVal.text())
 
@@ -121,29 +120,27 @@ class MonWidgetParam(QWidget,Ui_WidgetParam,FacultatifOuOptionnel):
         exec("from math import *", contexte)
         jdc=self.node.item.getJdc()
         for p in jdc.params :
-           try:
-              tp=p.nom+'='+str(repr(p.valeur))
-              exec(tp, contexte)
-           except exc :
-              pass
+            try:
+                tp=p.nom+'='+str(repr(p.valeur))
+                exec(tp, contexte)
+            except exc :
+                pass
 
         monTexte=nomString+"="+valString
         try :
-          exec(monTexte, contexte)
+            exec(monTexte, contexte)
         except (ValueError,TypeError, NameError,RuntimeError,ZeroDivisionError) as  exc:
-          self.LECommentaire.setText(tr("Valeur incorrecte: ")+six.text_type (exc))
-          return False
+            self.LECommentaire.setText(tr("Valeur incorrecte: ")+str(exc))
+            return False
         except :
-          self.LECommentaire.setText(tr("Valeur incorrecte "))
-          return False
+            self.LECommentaire.setText(tr("Valeur incorrecte "))
+            return False
 
         self.LECommentaire.setText(tr("Valeur correcte "))
         return True
 
-  def afficheApres(self):
-       self.node.selectApres()
-
-  def afficheAvant(self):
-       self.node.selectAvant()
-
+    def afficheApres(self):
+        self.node.selectApres()
 
+    def afficheAvant(self):
+        self.node.selectAvant()
index 22d77bba4d3b1dc07900cdc670d763e31d9cc198..5bb4ab303f9b7394f411ce7d7ac1f465e7df9ae0 100644 (file)
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
-   from builtins import range
+    from builtins import str
 except : pass
 
 import types,os,sys
 
 # Modules Eficas
 from Extensions.i18n import tr
-from .monWidgetPlusieursIntoOrdonne import MonWidgetPlusieursIntoOrdonne 
+from .monWidgetPlusieursIntoOrdonne import MonWidgetPlusieursIntoOrdonne
 from .politiquesValidation          import PolitiquePlusieurs
 
 from six.moves import range
@@ -38,31 +37,29 @@ from PyQt5.QtWidgets  import  QScrollBar
 
 class MonWidgetPlusieursASSDIntoOrdonne (MonWidgetPlusieursIntoOrdonne):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.numLineEditEnCours=0
         MonWidgetPlusieursIntoOrdonne.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-       
 
-       
-  def prepareListeResultat(self):
-       for i in self.listeLE: i.close()
-       self.listeLE=[]
-       self.vScrollBar = self.scrollArea.verticalScrollBar()
-       self.listeAAfficher = self.node.item.getSdAvantDuBonType()
 
-       if len(self.listeAAfficher) == 0 :
-          self.ajoutLE(0)
-          return
-           
-         
-       if len(self.listeAAfficher)*20 > 400 : self.setMinimumHeight(400)
-       else : self.setMinimumHeight(len(self.listeAAfficher)*30)
-       self.politique=PolitiquePlusieurs(self.node,self.editor)
-       for i in range(1,len(self.listeAAfficher)+1): self.ajoutLE(i)
-       for i in range(len(self.listeAAfficher)):
-           nomLE="lineEditVal"+str(i+1)
-           courant=getattr(self,nomLE)
-           courant.setText(str(self.listeAAfficher[i]))
-       self.vScrollBar.triggerAction(QScrollBar.SliderToMinimum)
-       
-      
+
+    def prepareListeResultat(self):
+        for i in self.listeLE: i.close()
+        self.listeLE=[]
+        self.vScrollBar = self.scrollArea.verticalScrollBar()
+        self.listeAAfficher = self.node.item.getSdAvantDuBonType()
+
+        if len(self.listeAAfficher) == 0 :
+            self.ajoutLE(0)
+            return
+
+
+        if len(self.listeAAfficher)*30 > 400 : self.resize(self.width(),200)
+        else : self.resize(self.width(),len(self.listeAAfficher)*30)
+        self.politique=PolitiquePlusieurs(self.node,self.editor)
+        for i in range(1,len(self.listeAAfficher)+1): self.ajoutLE(i)
+        for i in range(len(self.listeAAfficher)):
+            nomLE="lineEditVal"+str(i+1)
+            courant=getattr(self,nomLE)
+            courant.setText(str(self.listeAAfficher[i]))
+        self.vScrollBar.triggerAction(QScrollBar.SliderToMinimum)
index 019f1dd6dc9d7399a5dcb1a5dae998d9e28b6549..ce462480004649115fc43b4261cd1d5a00bacaa5 100644 (file)
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
-   from builtins import range
-   from builtins import object
+    from builtins import str
+    from builtins import object
 except : pass
 
 import types,os,sys
 
 from six.moves import range
-from PyQt5.QtGui     import QIcon 
+from PyQt5.QtGui     import QIcon
 from PyQt5.QtWidgets import QApplication, QMessageBox, QScrollArea
 from PyQt5.QtCore    import QTimer, QSize, Qt
 
@@ -36,7 +35,7 @@ from PyQt5.QtCore    import QTimer, QSize, Qt
 from Extensions.i18n import tr
 
 from InterfaceQT4.feuille                import Feuille
-from desWidgetPlusieursBase              import Ui_WidgetPlusieursBase 
+from desWidgetPlusieursBase              import Ui_WidgetPlusieursBase
 from InterfaceQT4.politiquesValidation   import PolitiquePlusieurs
 from InterfaceQT4.qtSaisie               import SaisieValeur
 from InterfaceQT4.gereListe              import GereListe
@@ -48,7 +47,7 @@ hauteurMax=253
 
 class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe,GerePlie):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         #print "MonWidgetPlusieursBase", nom
         self.inFocusOutEvent=False
         self.nomLine="lineEditVal"
@@ -56,24 +55,24 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe,GerePlie)
         self.indexDernierLabel=0
         self.numLineEditEnCours=0
         self.listeAffichageWidget=[]
+        self.dictLE={}
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         GereListe.__init__(self)
         self.gereIconePlier()
         self.BSelectFichier.clicked.connect(self.selectInFile)
 
-        if sys.platform[0:5]!="linux":
-          repIcon=self.node.editor.appliEficas.repIcon
-          fichier=os.path.join(repIcon, 'arrow_up.png')
-          icon = QIcon(fichier)
-          self.RBHaut.setIcon(icon)
-          self.RBHaut.setIconSize(QSize(32, 32))
-          fichier2=os.path.join(repIcon, 'arrow_down.png')
-          icon2 = QIcon(fichier2)
-          self.RBBas.setIcon(icon2)
-          fichier3=os.path.join(repIcon, 'file-explorer.png')
-          icon3 = QIcon(fichier2)
-          self.BSelectFichier.setIcon(icon3)
-          self.BSelectFichier.setIconSize(QSize(32, 32))
+        repIcon=self.node.editor.appliEficas.repIcon
+        fichier=os.path.join(repIcon, 'arrow_up.png')
+        icon = QIcon(fichier)
+        self.RBHaut.setIcon(icon)
+        self.RBHaut.setIconSize(QSize(32, 32))
+        fichier2=os.path.join(repIcon, 'arrow_down.png')
+        icon2 = QIcon(fichier2)
+        self.RBBas.setIcon(icon2)
+        fichier3=os.path.join(repIcon, 'file-explorer.png')
+        icon3 = QIcon(fichier2)
+        self.BSelectFichier.setIcon(icon3)
+        self.BSelectFichier.setIconSize(QSize(32, 32))
         icon=QIcon(self.repIcon+"/MoinsBleu.png")
         self.RBMoins.setIcon(icon)
         icon=QIcon(self.repIcon+"/PlusBleu.png")
@@ -83,10 +82,10 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe,GerePlie)
 
 
         self.listeValeursCourantes=self.node.item.getListeValeurs()
-        if self.monSimpDef.max != "**"  and self.monSimpDef.max < 7: 
-           hauteurMax=dicoLongueur[self.monSimpDef.max]
+        if self.monSimpDef.max != "**"  and self.monSimpDef.max < 7:
+            hauteurMax=dicoLongueur[self.monSimpDef.max]
         else :
-           hauteurMax=220
+            hauteurMax=220
         #   if self.monSimpDef.max == self.monSimpDef.min : self.setMaximumHeight(hauteur)
         self.resize(self.width(),hauteurMax)
         self.setMinimumHeight(hauteurMax)
@@ -96,82 +95,94 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe,GerePlie)
         self.AAfficher=self.lineEditVal1
         self.inInit=False
         # PNPN a completer __ si tuple le type des tuples sinon le tuple
-        self.monCommentaireLabel.setText(self.finCommentaireListe())
+        # trop moche
+        #self.monCommentaireLabel.setText(self.finCommentaireListe())
+        self.monCommentaireLabel.setText("")
         self.scrollArea.leaveEvent = self.leaveEventScrollArea
+        self.inhibeChangeValeur = False 
+        self.dejaAverti = False
+
+
+    def setValeurs(self):
+        self.vScrollBar = self.scrollArea.verticalScrollBar()
+        self.politique=PolitiquePlusieurs(self.node,self.editor)
+        # construction du min de valeur a entrer
+        if self.monSimpDef.max == "**"  : aConstruire=7
+        elif self.monSimpDef.max == float('inf'): aConstruire=7
+        else                            : aConstruire=self.monSimpDef.max
+
+        for i in range(1,aConstruire):
+            self.ajoutLineEdit()
+        QApplication.processEvents()
+        self.scrollArea.ensureWidgetVisible(self.lineEditVal1)
+        self.listeValeursCourantes=self.node.item.getListeValeurs()
+        index=1
+        for valeur in self.listeValeursCourantes :
+            val=self.politique.getValeurTexte(valeur)
+            nomLineEdit="lineEditVal"+str(index)
+            if hasattr(self,nomLineEdit) :
+                courant=getattr(self,nomLineEdit)
+                if 'R' in self.objSimp.definition.type and str(val) != repr(val) :  courant.setText(repr(val))
+                else                     :  courant.setText(str(val))
+                self.dictLE[index]=val
+            else :
+                self.ajoutLineEdit(val)
+            index=index+1
+        # ajout d'une ligne vide ou affichage commentaire
+        if self.indexDernierLabel < self.monSimpDef.max  : self.ajoutLineEdit()
+        else : self.scrollArea.setToolTip('nb max de valeurs atteint')
+        #self.adjustSize()
+        #self.vScrollBar.triggerAction(QScrollBar.SliderToMinimum)
+
+
+    def ajoutLineEdit(self,valeur=None,):
+        #print ('ajoutLineEdit plusieursBase')
+        #print ('self.indexDernierLabel', self.indexDernierLabel)
+        self.indexDernierLabel=self.indexDernierLabel+1
+        nomLineEdit="lineEditVal"+str(self.indexDernierLabel)
+        if hasattr(self,nomLineEdit) :
+            self.indexDernierLabel=self.indexDernierLabel-1
+            return
+        nouveauLE = LECustom(self.scrollArea,self,self.indexDernierLabel)
+        self.verticalLayoutLE.insertWidget(self.indexDernierLabel-1,nouveauLE)
+        nouveauLE.setText("")
+        if self.indexDernierLabel % 2 == 1 : nouveauLE.setStyleSheet("background:rgb(210,210,210)")
+        else :                               nouveauLE.setStyleSheet("background:rgb(235,235,235)")
+        nouveauLE.setFrame(False)
+        nouveauLE.returnPressed.connect(self.changeValeur)
+
+        setattr(self,nomLineEdit,nouveauLE)
+        self.listeAffichageWidget.append(nouveauLE)
+        self.etablitOrdre()
+        if valeur != None :
+            nouveauLE.setText(str(valeur))
+            self.dictLE[self.indexDernierLabel] = valeur
+        else :
+            self.dictLE[self.indexDernierLabel] = None
+        # deux lignes pour que le ensureVisible fonctionne
+        self.estVisible=nouveauLE
+        if self.inInit==False :QTimer.singleShot(1, self.rendVisibleLigne)
+
+    def etablitOrdre(self):
+        i=0
+        while(i +1 < len(self.listeAffichageWidget)):
+            self.listeAffichageWidget[i].setFocusPolicy(Qt.StrongFocus)
+            self.setTabOrder(self.listeAffichageWidget[i],self.listeAffichageWidget[i+1])
+            i=i+1
+        # si on boucle on perd l'ordre
+
+
+    def rendVisibleLigne(self):
+        QApplication.processEvents()
+        self.estVisible.setFocus()
+        self.scrollArea.ensureWidgetVisible(self.estVisible,0,0)
+
 
+    def finCommentaire(self):
+        return self.finCommentaireListe()
 
-  def setValeurs(self):
-       self.vScrollBar = self.scrollArea.verticalScrollBar()
-       self.politique=PolitiquePlusieurs(self.node,self.editor)
-       # construction du min de valeur a entrer
-       if self.monSimpDef.max == "**"  : aConstruire=7
-       elif self.monSimpDef.max == float('inf'): aConstruire=7
-       else                            : aConstruire=self.monSimpDef.max
-
-       for i in range(1,aConstruire):
-           self.ajoutLineEdit()
-       QApplication.processEvents()
-       self.scrollArea.ensureWidgetVisible(self.lineEditVal1)
-       self.listeValeursCourantes=self.node.item.getListeValeurs()
-       index=1
-       for valeur in self.listeValeursCourantes :
-           val=self.politique.getValeurTexte(valeur)
-           nomLineEdit="lineEditVal"+str(index)
-           if hasattr(self,nomLineEdit) : 
-              courant=getattr(self,nomLineEdit)
-              if 'R' in self.objSimp.definition.type and str(val) != repr(val) :  courant.setText(repr(val))
-              else                     :  courant.setText(str(val))
-           else :
-              self.ajoutLineEdit(val)
-           index=index+1
-       # ajout d'une ligne vide ou affichage commentaire
-       if self.indexDernierLabel < self.monSimpDef.max  : self.ajoutLineEdit()
-       else : self.scrollArea.setToolTip('nb max de valeurs atteint')
-       #self.adjustSize()
-       #self.vScrollBar.triggerAction(QScrollBar.SliderToMinimum)
-       
-
-  def ajoutLineEdit(self,valeur=None,):
-      self.indexDernierLabel=self.indexDernierLabel+1
-      nomLineEdit="lineEditVal"+str(self.indexDernierLabel)
-      if hasattr(self,nomLineEdit) : 
-         self.indexDernierLabel=self.indexDernierLabel-1
-         return
-      nouveauLE = LECustom(self.scrollArea,self,self.indexDernierLabel)
-      self.verticalLayoutLE.insertWidget(self.indexDernierLabel-1,nouveauLE)
-      nouveauLE.setText("")
-      if self.indexDernierLabel % 2 == 1 : nouveauLE.setStyleSheet("background:rgb(210,210,210)")
-      else :                              nouveauLE.setStyleSheet("background:rgb(235,235,235)")
-      nouveauLE.setFrame(False)
-      nouveauLE.returnPressed.connect(self.changeValeur)
-
-      setattr(self,nomLineEdit,nouveauLE)
-      self.listeAffichageWidget.append(nouveauLE)
-      self.etablitOrdre()
-      if valeur != None : nouveauLE.setText(str(valeur))
-      # deux lignes pour que le ensureVisible fonctionne
-      self.estVisible=nouveauLE
-      if self.inInit==False :QTimer.singleShot(1, self.rendVisibleLigne)
-
-  def etablitOrdre(self):
-      i=0
-      while(i +1 < len(self.listeAffichageWidget)):
-         self.listeAffichageWidget[i].setFocusPolicy(Qt.StrongFocus)
-         self.setTabOrder(self.listeAffichageWidget[i],self.listeAffichageWidget[i+1])
-         i=i+1
-      # si on boucle on perd l'ordre
-
-
-  def rendVisibleLigne(self):
-      QApplication.processEvents()
-      self.estVisible.setFocus()
-      self.scrollArea.ensureWidgetVisible(self.estVisible,0,0)
-      
-
-  def finCommentaire(self):
-      return self.finCommentaireListe()
-
-  def ajout1Valeur(self,valeur=None):
+    def ajout1Valeur(self,valeur=None):
+        print ('ajout1Valeur plusieursBase')
         if valeur == None : return
         liste,validite=SaisieValeur.TraiteLEValeur(self,str(valeur))
         if validite == 0 : return
@@ -180,42 +191,43 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe,GerePlie)
         for valeur in self.listeValeursCourantes : listeVal.append(valeur)
         validite,comm,comm2,listeRetour=self.politique.ajoutValeurs(liste,-1,listeVal)
         if (comm2 != "" and comm != None) : return comm2
-        if validite : 
-           self.listeValeursCourantes=self.listeValeursCourantes+listeRetour
-           if len(self.listeValeursCourantes) > self.monSimpDef.min :
-              self.node.item.setValeur(self.listeValeursCourantes)
-              self.reaffiche()
-           return None
+        if validite :
+            self.listeValeursCourantes=self.listeValeursCourantes+listeRetour
+            if len(self.listeValeursCourantes) > self.monSimpDef.min :
+                self.node.item.setValeur(self.listeValeursCourantes)
+                self.reaffiche()
+            return None
         else :
-           return(comm2+" "+comm)
-        
-  def reaffiche(self):
-      # A priori, on ne fait rien
-      pass
-
-                
-  def ajoutNValeur(self,liste):
-  #----------------------------
-  # attention quand on charge par un fichier, on ne peut pas se contenter d ajouter N fois 1 valeur
-  # car alors le temps de verification devient prohibitif  reconstructu=ion et verification a 
-  # chaque valeur. d ou l ajout de ajoutNTuple a politique plusieurs
-
-           
+            return(comm2+" "+comm)
+
+    def reaffiche(self):
+        # A priori, on ne fait rien
+        pass
+
+
+    def ajoutNValeur(self,liste):
+        #print ('ajoutNValeur plusieursBase')
+    #----------------------------
+    # attention quand on charge par un fichier, on ne peut pas se contenter d ajouter N fois 1 valeur
+    # car alors le temps de verification devient prohibitif  reconstructu=ion et verification a
+    # chaque valeur. d ou l ajout de ajoutNTuple a politique plusieurs
+
+
         listeFormatee=list(liste)
 
         min,max=self.node.item.getMinMax()
         if self.objSimp.valeur == None : listeComplete=listeFormatee
         else : listeComplete =self.objSimp.valeur + listeFormatee
 
-        if len(listeComplete) > max : 
-           texte=tr("Nombre maximum de valeurs ")+str(max)+tr(" atteint")
-           self.editor.afficheInfos(texte,Qt.red)
-           return
+        if len(listeComplete) > max :
+            texte=tr("Nombre maximum de valeurs ")+str(max)+tr(" atteint")
+            self.editor.afficheInfos(texte,Qt.red)
+            return
 
         validite,comm,comm2,listeRetour= self.politique.ajoutNTuple(listeComplete)
-        if not validite : 
-           self.editor.affiche_infos(texte,Qt.red)
-           return
+        if not validite :
+            self.editor.affiche_infos(texte,Qt.red)
+            return
 
         # on calcule le dernier lineedit rempli avant de changer la valeur
         if self.objSimp.valeur != None : indexDernierRempli=len(self.objSimp.valeur)
@@ -225,79 +237,92 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe,GerePlie)
 
         indexDernierRempli=0
         while ( indexDernierRempli < len(liste) ) :
-         texte=liste[indexDernierRempli]
-         if indexDernierRempli < self.indexDernierLabel:
-            nomLineEdit="lineEditVal"+str(indexDernierRempli+1)
+            texte=liste[indexDernierRempli]
+            if indexDernierRempli < self.indexDernierLabel:
+                nomLineEdit="lineEditVal"+str(indexDernierRempli+1)
+                courant=getattr(self,nomLineEdit)
+                courant.setText(str(texte))
+            else :
+                self.ajoutLineEdit(texte)
+            indexDernierRempli = indexDernierRempli + 1
+
+
+    def changeValeur(self,changeDePlace=True,oblige=False):
+        #print ('achangeValeur plusieursBase', self)
+        #import traceback
+        #traceback.print_stack()
+        if self.inhibeChangeValeur : return
+        self.inhibeChangeValeur = True 
+        donneFocus=None
+        derniereValeur=None
+        self.listeValeursCourantes = []
+        fin=self.indexDernierLabel
+        if (not('TXM' in self.objSimp.definition.type)) and not (self.dejaAverti):
+            for i in range (1, fin):
+                nomLineEdit="lineEditVal"+str(i)
+                courant=getattr(self,nomLineEdit)
+                valeur=courant.text()
+                lval=valeur.split(',')
+                if len (lval) > 1 :
+                    self.dejaAverti = True
+                    QMessageBox.warning(self,tr('"," used'), 'Perhaps, character "," is used in ' +str( valeur)  + 'intead of "."') 
+                    break
+                    # msgBox = QMessageBox()
+                    # msgBox.setText("separator ',' ")
+                    # msgBox.setInformativeText("Do you want to enter " + str (lval) + "?")
+                    # msgBox.setInformativeText ("  you want to enter " + str (lval) + "?")
+                    # msgBox.setStandardButtons( QMessageBox.Ok | QMessageBox.Cancel)
+                    # msgBox.setDefaultButton(QMessageBox.Ok)
+                    #ret = msgBox.exec()
+                    # tres dicutable 20210401 j enleve la boucle
+                    # if faut remtrre self.inhibeChangeValeur si on la reactive
+                    # if ret == 1024:
+                    #   courant.setText(lval[0])
+                    #   self.ajoutNValeur(lval[1:])
+                    #   self.listeValeursCourantes = []
+
+
+        for i in range (1, self.indexDernierLabel+1):
+            nomLineEdit="lineEditVal"+str(i)
             courant=getattr(self,nomLineEdit)
-            courant.setText(str(texte))
-         else : 
-            self.ajoutLineEdit(texte)
-         indexDernierRempli = indexDernierRempli + 1
-        
-
-  def changeValeur(self,changeDePlace=True,oblige=False):
-      donneFocus=None
-      derniereValeur=None
-      self.listeValeursCourantes = []
-      fin=self.indexDernierLabel
-      for i in range (1, fin):
-          nomLineEdit="lineEditVal"+str(i)
-          courant=getattr(self,nomLineEdit)
-          valeur=courant.text()
-          lval=valeur.split(',')
-          if len (lval) > 1 : 
-             msgBox=QMessageBox()
-             msgBox.setText("separator ',' ")
-             msgBox.setInformativeText("Do you want to enter " + str (lval) + "?")
-             msgBox.setStandardButtons( QMessageBox.Ok | QMessageBox.Cancel)
-             msgBox.setDefaultButton(QMessageBox.Ok)
-             ret = msgBox.exec_()
-             if ret != 1024 : 
-                courant.setText("") 
-                return
-             courant.setText(lval[0])
-             self.ajoutNValeur(lval[1:])
-             self.listeValeursCourantes = []
-
-      for i in range (1, self.indexDernierLabel+1):
-          nomLineEdit="lineEditVal"+str(i)
-          courant=getattr(self,nomLineEdit)
-          valeur=courant.text()
-          if valeur != None and valeur != "" : 
-             commentaire=self.ajout1Valeur(valeur)
-             if (commentaire != None ):
-                 self.editor.afficheInfos(commentaire,Qt.red)
-                 courant.setText("")
-                 donneFocus=courant
-                 self.reaffiche()
-                 return
-             else :
-                 self.editor.afficheInfos("")
-          elif donneFocus==None : donneFocus=courant
-
-      nomDernierLineEdit="lineEditVal"+str(self.indexDernierLabel)
-      dernier=getattr(self,nomDernierLineEdit)
-      derniereValeur=dernier.text()
-      if changeDePlace:
-         if donneFocus != None : 
-           donneFocus.setFocus()
-           self.scrollArea.ensureWidgetVisible(donneFocus)
-         elif self.indexDernierLabel < self.monSimpDef.max  : 
-           self.ajoutLineEdit()
-      if self.listeValeursCourantes == [] : return
-      min,max = self.node.item.getMinMax()
-      if len(self.listeValeursCourantes) < self.monSimpDef.min  :
-        self.editor.afficheInfos(tr('nb min de valeurs : ')+str( self.monSimpDef.min))
-      if len(self.listeValeursCourantes) < min and oblige==True: return
-      if len(self.listeValeursCourantes) > max : return
-      retour=self.node.item.setValeur(self.listeValeursCourantes)
-      if len(self.listeValeursCourantes) == self.monSimpDef.max  :
-        self.editor.afficheInfos(tr('nb max de valeurs atteint'))
-      self.setValide()
-      self.reaffiche()
-
-  def leaveEventScrollArea(self,event):
-       self.changeValeur(changeDePlace=False)
-       QScrollArea.leaveEvent(self.scrollArea,event)
+            valeur=courant.text()
+            if valeur != None and valeur != "" :
+                commentaire=self.ajout1Valeur(valeur)
+                if (commentaire != None ):
+                    self.editor.afficheInfos(commentaire,Qt.red)
+                    courant.setText("")
+                    donneFocus=courant
+                    self.reaffiche()
+                    return
+                else :
+                    self.editor.afficheInfos("")
+            elif donneFocus==None : donneFocus=courant
+
+        nomDernierLineEdit="lineEditVal"+str(self.indexDernierLabel)
+        dernier=getattr(self,nomDernierLineEdit)
+        derniereValeur=dernier.text()
+        if changeDePlace:
+            if donneFocus != None :
+                donneFocus.setFocus()
+                self.scrollArea.ensureWidgetVisible(donneFocus)
+            elif self.indexDernierLabel < self.monSimpDef.max  :
+                self.ajoutLineEdit()
+        if self.listeValeursCourantes == [] : return
+        min,max = self.node.item.getMinMax()
+        if len(self.listeValeursCourantes) < self.monSimpDef.min  :
+            self.editor.afficheInfos(tr('nb min de valeurs : ')+str( self.monSimpDef.min))
+        if len(self.listeValeursCourantes) < min and oblige==True: return
+        if len(self.listeValeursCourantes) > max : return
+        retour=self.node.item.setValeur(self.listeValeursCourantes)
+        if len(self.listeValeursCourantes) == self.monSimpDef.max  :
+            self.editor.afficheInfos(tr('nb max de valeurs atteint'))
+        self.setValide()
+        self.reaffiche()
+        self.inhibeChangeValeur = False 
+
+    def leaveEventScrollArea(self,event):
+        #print ('achangeValeur plusieursBase')
+        self.changeValeur(changeDePlace=False)
+        QScrollArea.leaveEvent(self.scrollArea,event)
 
 # Avertissement quand on quitte le widget
diff --git a/InterfaceQT4/monWidgetPlusieursCreeUserAssd.py b/InterfaceQT4/monWidgetPlusieursCreeUserAssd.py
new file mode 100644 (file)
index 0000000..056cf3e
--- /dev/null
@@ -0,0 +1,184 @@
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2020   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+# Modules Python
+from __future__ import absolute_import
+import types,os
+
+
+# Modules Eficas
+from Extensions.i18n import tr
+from .monWidgetSimpTxt  import MonWidgetSimpTxt
+from .monWidgetPlusieursBase import MonWidgetPlusieursBase
+from copy import copy,deepcopy
+from PyQt5.QtCore import Qt
+
+
+
+class MonWidgetPlusieursCreeUserAssd ( MonWidgetPlusieursBase):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+        MonWidgetPlusieursBase. __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
+        self.etablitOrdre()
+        self.scrollArea.leaveEvent = self.leaveEventScrollArea
+        self.RBHaut.close()
+        self.RBBas.close()
+
+    def ajout1Valeur(self,valeur=None):
+        if not valeur in list(self.dictValeurs.keys()):
+            validite,commentaire=self.objSimp.creeUserASSDetSetValeur(valeur)
+            MonWidgetPlusieursBase.ajout1Valeur(self,valeur)
+
+    def changeValeur(self,changeDePlace=False,oblige=False ):
+        #print ('dans changeValeur du CreeUserAssd', changeDePlace, self.numLineEditEnCours)
+        #import traceback
+        #traceback.print_stack()
+        self.changeUnLineEdit=False
+        valeur = self.lineEditEnCours.text()
+        if self.numLineEditEnCours in list(self.dictLE.keys()) :
+            oldValeurUserAssd = self.dictLE[self.numLineEditEnCours]
+            if oldValeurUserAssd == None or oldValeurUserAssd == "" :
+                enCreation = True
+                oldValeurUserAssd == True
+            else : enCreation = False
+        else                         :
+            enCreation     = True
+            oldValeurUserAssd =  None
+
+        if oldValeurUserAssd  and oldValeurUserAssd.nom == valeur :
+            self.selectionneNext()
+            return
+
+        if valeur != "" :
+            if not enCreation :
+                validite, commentaire=self.node.item.renommeSdCreeDsListe(oldValeurUserAssd,valeur)
+                if commentaire != "" and not validite:
+                    self.editor.afficheInfos(commentaire,Qt.red)
+                    self.lineEditEnCours.setText(oldValeurUserAssd.nom)
+                nomDernierLineEdit="lineEditVal"+str(self.numLineEditEnCours+1)
+                dernier=getattr(self,nomDernierLineEdit)
+                dernier.setFocus()
+                return
+
+            validite, objASSD, commentaire=self.objSimp.creeUserASSD(valeur)
+            if commentaire != "" and not validite:
+                self.editor.afficheInfos(commentaire,Qt.red)
+                self.lineEditEnCours.setText("")
+                if objASSD : objASSD.supprime(self.objSimp)
+                return
+        else:
+            validite = 1
+            objASSD=None
+            commentaire = ""
+
+        # on relit tout pour tenir compte des lignes blanches
+        oldValeur=self.objSimp.valeur
+        liste=[]
+        for i in range (1, self.indexDernierLabel+1):
+            if i == self.numLineEditEnCours  and objASSD : liste.append(objASSD)
+            elif self.dictLE[i] != None and self.dictLE[i] != "" : liste.append(self.dictLE[i])
+        validite=self.node.item.setValeur(liste)
+        if not validite :
+            self.objSimp.valeur=oldValeur
+            self.objSimp.state='changed'
+            self.setValide()
+            if objASSD : objASSD.supprime(self.objSimp)
+            self.lineEditEnCours.setText(oldValeurUserASSD.nom)
+            return
+
+        validite=self.node.item.isValid()
+        if validite :
+            self.dictLE[self.numLineEditEnCours] = objASSD
+            self.node.item.rattacheUserASSD(objASSD)
+            if self.indexDernierLabel < len(liste)  : self.ajoutLineEdit()
+            nomDernierLineEdit="lineEditVal"+str(self.numLineEditEnCours+1)
+            self.listeValeursCourantes=liste
+            dernier=getattr(self,nomDernierLineEdit)
+            dernier.setFocus()
+        else :
+            self.editor.afficheInfos('ajout impossible' ,Qt.red)
+            if objASSD : objASSD.supprime(self.objSimp)
+            self.lineEditEnCours.setText("")
+        self.parentQt.propageChange(self.objSimp.definition.type[0],self)
+
+    def selectionneDernier(self):
+        index=len(self.listeValeursCourantes)
+        self.listeAffichageWidget[index].setFocus()
+
+    def leaveEventScrollArea(self,event):
+        pass
+
+#  def echangeDeuxValeurs(self):
+#    self.changeUnLineEdit=False
+#    obj1=self.dictLE[self.num1]
+#    obj2=self.dictLE[self.num2]
+#    self.dictLE[self.num1]=obj2
+#    self.dictLE[self.num2]=obj1
+#    nomLineEdit=self.nomLine+str(self.num1)
+#    courant=getattr(self,nomLineEdit)
+#    if self.dictLE[self.num1] != None : courant.setText(self.dictLE[self.num1].nom)
+#    else : courant.setText("")
+#    nomLineEdit=self.nomLine+str(self.num2)
+#    courant=getattr(self,nomLineEdit)
+#    if self.dictLE[self.num2] != None : courant.setText(self.dictLE[self.num2].nom)
+#    else : courant.setText("")
+#    liste=[]
+#    for i in list(self.dictLE.keys()):
+#       if self.dictLE[i] != None and self.dictLE[i] != "" : liste.append(self.dictLE[i])
+#    validite=self.node.item.setValeur(liste)
+#    self.listeValeursCourantes=liste
+#    courant.setFocus(True)
+
+    def descendLesLignes(self):
+        self.changeUnLineEdit=False
+        if self.numLineEditEnCours==self.indexDernierLabel : return
+        nouvelleValeur=None
+        for i in range (self.numLineEditEnCours+1, self.indexDernierLabel):
+            valeurAGarder=self.dictLE[i]
+            self.dictLE[i]=nouvelleValeur
+            nomLineEdit=self.nomLine+str(i)
+            courant=getattr(self,nomLineEdit)
+            if nouvelleValeur != None : courant.setText(nouvelleValeur.nom)
+            else : courant.setText("")
+            nouvelleValeur=valeurAGarder
+
+
+    def moinsPushed(self):
+        if self.numLineEditEnCours == 0 : return
+        if self.indexDernierLabel == 0 : return
+        objASSD=self.dictLE[self.numLineEditEnCours]
+        if objASSD : objASSD.supprime(self.objSimp)
+        self.lineEditEnCours.setText("")
+        self.dictLE[self.numLineEditEnCours]=None
+
+        for i in range (self.numLineEditEnCours, self.indexDernierLabel-1):
+            self.dictLE[i]= self.dictLE[i+1]
+            nomLineEdit=self.nomLine+str(i)
+            courant=getattr(self,nomLineEdit)
+            if self.dictLE[i] != None : courant.setText(self.dictLE[i].nom)
+            else : courant.setText("")
+        nomLineEdit=self.nomLine+str(self.indexDernierLabel)
+        courant=getattr(self,nomLineEdit)
+        courant.setText("")
+        self.dictLE[self.indexDernierLabel]=None
+        liste=[]
+        for i in list(self.dictLE.keys()):
+            if self.dictLE[i] != None and self.dictLE[i] != "" : liste.append(self.dictLE[i])
+        print (liste)
+        validite=self.node.item.setValeur(liste)
+        self.listeValeursCourantes=liste
index 6aa25c41c6f081e93f41971f773abf909ff47dfb..cb2be8efab4c6eccb850d709a4408ca466b0a3ef 100644 (file)
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
-   from builtins import range
+    from builtins import str
+    from builtins import range
 except : pass
 
 import types,os
 
 # Modules Eficas
-from six.moves import range
 from PyQt5.QtWidgets  import QCheckBox, QScrollBar, QFrame, QApplication, QLabel
 from PyQt5.QtWidgets  import QSizePolicy,QSpacerItem
 from PyQt5.QtGui  import QPalette, QFont
@@ -44,7 +43,7 @@ from InterfaceQT4.gereListe              import GereListe
 
 class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille,GerePlie,GereListe):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
 
         self.index=1
         self.alpha=0
@@ -77,113 +76,120 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille,GerePlie,GereListe)
 
         if len(self.listeAAfficher) < 30 and hasattr(self,'frameRecherche') : self.frameRecherche.close()
         if len(self.listeAAfficher)  == len(self.listeValeursCourantes) : self.CBCheck.setChecked(True)
+        if len(self.listeAAfficher) < 10 :
+            self.setMinimumHeight(len(self.listeAAfficher)*22+55)
+        else :
+            self.setMinimumHeight(300)
+
         # try except si la liste des possibles est vide
         # prevoir qqchose
         try :
-          self.maCommande.listeAffichageWidget.append(self.lineEditVal1)
+            self.maCommande.listeAffichageWidget.append(self.lineEditVal1)
         except :
-          pass
-
-
-  def changeTout(self,int):
-       #print ('changeTout')
-       if self.inhibe : return
-       self.inhibe=True
-       if not(self.CBCheck.isChecked()) :
-          min,max = self.node.item.getMinMax()
-          if max < len(self.listeAAfficher) :
-             commentaire=tr('impossible de tout selectionner : max =')+str(max)
-             self.editor.afficheInfos(commentaire,Qt.red)
-             self.inhibe=False
-             return
-          for i in range(len(self.listeAAfficher)):
-              nomCB="lineEditVal"+str(i+1)
-              courant=getattr(self,nomCB)
-              courant.setChecked(True)
-          self.CBCheck.setChecked(False)
-       else :
-          for i in range(len(self.listeAAfficher)):
-              nomCB="lineEditVal"+str(i+1)
-              courant=getattr(self,nomCB)
-              courant.setChecked(False)
-          self.CBCheck.setChecked(True)
-       self.inhibe=False
-       self.changeValeur()
-
-  def setValeurs(self):
-       #print ('setValeurs')
-       self.listeValeursCourantes =self.node.item.getValeur()
-       if self.listeValeursCourantes ==  None : self.listeValeursCourantes=[]
-       #print "ds set Valeur", self.listeValeursCourantes, self.node.item.getValeur()
-       self.politique=PolitiquePlusieurs(self.node,self.editor)
-       self.vScrollBar = self.scrollArea.verticalScrollBar()
-
-       if hasattr(self.node.item.definition.validators,'set_MCSimp'):
+            pass
+
+
+    def changeTout(self,int):
+        #print ('changeTout')
+        if self.inhibe : return
+        self.inhibe=True
+        if not(self.CBCheck.isChecked()) :
+            min,max = self.node.item.getMinMax()
+            if max < len(self.listeAAfficher) :
+                commentaire=tr('impossible de tout selectionner : max =')+str(max)
+                self.editor.afficheInfos(commentaire,Qt.red)
+                self.inhibe=False
+                return
+            for i in range(len(self.listeAAfficher)):
+                nomCB="lineEditVal"+str(i+1)
+                courant=getattr(self,nomCB)
+                courant.setChecked(True)
+            self.CBCheck.setChecked(False)
+        else :
+            for i in range(len(self.listeAAfficher)):
+                nomCB="lineEditVal"+str(i+1)
+                courant=getattr(self,nomCB)
+                courant.setChecked(False)
+            self.CBCheck.setChecked(True)
+        self.inhibe=False
+        self.changeValeur()
+
+    def setValeurs(self):
+        #print ('setValeurs')
+        self.listeValeursCourantes =self.node.item.getValeur()
+        if self.listeValeursCourantes ==  None : self.listeValeursCourantes=[]
+        #print ("ds set Valeur", self.listeValeursCourantes, self.node.item.getValeur())
+        self.politique=PolitiquePlusieurs(self.node,self.editor)
+        self.vScrollBar = self.scrollArea.verticalScrollBar()
+
+        if hasattr(self.node.item.definition.validators,'set_MCSimp'):
             obj=self.node.item.getObject()
             self.node.item.definition.validators.set_MCSimp(obj)
             if self.node.item.isValid() == 0 :
-               liste=[]
-               for item in self.listeValeursCourantes:
-                   if self.node.item.definition.validators.verifItem(item)==1:
-                      liste.append(item)
-               self.listeAAfficher=self.node.item.getListePossible(liste)
+                liste=[]
+                for item in self.listeValeursCourantes:
+                    if self.node.item.definition.validators.verifItem(item)==1:
+                        liste.append(item)
+                self.listeAAfficher=self.node.item.getListePossible(liste)
             else:
-               self.listeAAfficher=self.node.item.getListePossible([])
-       else :
-               self.listeAAfficher=self.node.item.getListePossible([])
-
-       if self.node.item.hasIntoSug() : self.listeAAfficher=self.node.item.getListePossibleAvecSug([])
-
-
-       if self.objSimp.waitAssd() :
-          self.listeAAfficher=self.node.item.getSdAvantDuBonType()
-       if self.listeAAfficher== None or self.listeAAfficher==[] : self.listeAAfficher=[]
+                self.listeAAfficher=self.node.item.getListePossible([])
+        else :
+            self.listeAAfficher=self.node.item.getListePossible([])
 
-       #if len(self.listeAAfficher)*20 > 400 : self.setMinimumHeight(400)
-       #else : self.setMinimumHeight(len(self.listeAAfficher)*30)
+        if self.node.item.hasIntoSug() : self.listeAAfficher=self.node.item.getListePossibleAvecSug([])
 
-       self.PourEtreCoche=[]
-       if self.objSimp.waitAssd() :
-          for concept in self.listeValeursCourantes: self.PourEtreCoche.append(concept.nom)
-       else :
-          for val in self.listeValeursCourantes: self.PourEtreCoche.append(val)
 
-       maListe=[]
-       for  i in self.listeAAfficher: maListe.append(i)
-       if self.alpha==1 : maListe.sort()
-       for i in range(1,len(maListe)+1): self.ajoutCB(i)
+        if self.objSimp.waitAssd() :
+            self.listeAAfficher=self.node.item.getSdAvantDuBonType()
+        if self.listeAAfficher== None or self.listeAAfficher==[] : self.listeAAfficher=[]
 
-       self.inhibe=True
-       for i in range(len(maListe)):
-           nomCB="lineEditVal"+str(i+1)
-           courant=getattr(self,nomCB)
-           courant.setText(str(maListe[i]))
-           if maListe[i] in self.PourEtreCoche : courant.setChecked(True)
-           else                                : courant.setChecked(False)
+        #if len(self.listeAAfficher)*20 > 400 : self.setMinimumHeight(400)
+        #else : self.setMinimumHeight(len(self.listeAAfficher)*30)
 
-           courant.toggled.connect(self.changeValeur)
-       self.inhibe=False
+        self.PourEtreCoche=[]
+        if self.objSimp.waitUserAssd() :
+            for concept in self.listeValeursCourantes: self.PourEtreCoche.append(concept)
+        elif self.objSimp.waitAssd() :
+            for concept in self.listeValeursCourantes: self.PourEtreCoche.append(concept.nom)
+        else :
+            for val in self.listeValeursCourantes: self.PourEtreCoche.append(val)
+
+        maListe=[]
+        for  i in self.listeAAfficher: maListe.append(i)
+        if self.alpha==1 : maListe.sort()
+        for i in range(1,len(maListe)+1): self.ajoutCB(i)
+
+        self.inhibe=True
+        for i in range(len(maListe)):
+            nomCB="lineEditVal"+str(i+1)
+            courant=getattr(self,nomCB)
+            courant.setText(str(maListe[i]))
+            if maListe[i] in self.PourEtreCoche : courant.setChecked(True)
+            else                                : courant.setChecked(False)
+
+            courant.toggled.connect(self.changeValeur)
+        self.inhibe=False
 
-       self.vScrollBar.triggerAction(QScrollBar.SliderToMinimum)
+        self.vScrollBar.triggerAction(QScrollBar.SliderToMinimum)
 
 
-  def ajoutCB(self,index,valeur=None):
-      #print ('ajoutCB')
-      nomCB="lineEditVal"+str(index)
-      if hasattr(self,nomCB) : return
-      nouveauCB = QCheckBox(self.scrollArea)
-      self.CBLayout.insertWidget(index-1,nouveauCB)
-      self.listeCB.append(nouveauCB)
-      nouveauCB.setText("")
-      if index % 2 == 1 : nouveauCB.setStyleSheet("background:rgb(210,210,210)")
-      else :                       nouveauCB.setStyleSheet("background:rgb(240,240,240)")
-      self.vScrollBar.triggerAction(QScrollBar.SliderToMaximum)
-      nouveauCB.setFocus()
-      setattr(self,nomCB,nouveauCB)
+    def ajoutCB(self,index,valeur=None):
+        #print ('ajoutCB')
+        nomCB="lineEditVal"+str(index)
+        if hasattr(self,nomCB) : return
+        nouveauCB = QCheckBox(self.scrollArea)
+        self.CBLayout.insertWidget(index-1,nouveauCB)
+        self.listeCB.append(nouveauCB)
+        nouveauCB.setText("")
+        if index % 2 == 1 : nouveauCB.setStyleSheet("background:rgb(210,210,210)")
+        else :                        nouveauCB.setStyleSheet("background:rgb(240,240,240)")
+        self.vScrollBar.triggerAction(QScrollBar.SliderToMaximum)
+        nouveauCB.setFocus()
+        setattr(self,nomCB,nouveauCB)
 
 
 
-  def ajout1Valeur(self,valeur=None):
+    def ajout1Valeur(self,valeur=None):
         #print ('ajout1Valeur')
         if valeur == None : return
         liste,validite=SaisieValeur.TraiteLEValeur(self,str(valeur))
@@ -194,67 +200,66 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille,GerePlie,GereListe)
         validite,comm,comm2,listeRetour=self.politique.ajoutValeurs(liste,-1,listeVal)
         if (comm2 != "" and comm != None) : return comm2
         if validite :
-           self.listeValeursCourantes=self.listeValeursCourantes+listeRetour
-           return None
+            self.listeValeursCourantes=self.listeValeursCourantes+listeRetour
+            return None
         else :
-           return(comm2+" "+comm)
-
-
-
-  def changeValeur(self):
-      #print ('changeValeur')
-      if self.inhibe == True: return
-      if hasattr(self,'LEFiltre') :self.noircirResultatFiltre()
-      self.listeValeursCourantesAvant=self.listeValeursCourantes
-      self.listeValeursCourantes = []
-
-      for i in range (1,len(self.listeAAfficher)+1):
-          nomLineEdit="lineEditVal"+str(i)
-          courant=getattr(self,nomLineEdit)
-          if not (courant.isChecked()):continue
-          valeur=courant.text()
-          if valeur != None and valeur != "" :
-             commentaire=self.ajout1Valeur(valeur)
-             if (commentaire != None ):
-                 self.editor.afficheInfos(commentaire,Qt.red)
-                 self.listeValeursCourantesAvant=self.listeValeursCourantes
-                 self.setValeurs()
-
-      min,max = self.node.item.getMinMax()
-      if len(self.listeValeursCourantes) < min :
-         self.editor.afficheInfos(tr("Nombre minimal de valeurs : ") + str(min),Qt.red)
-      elif len(self.listeValeursCourantes) > max :
-         self.editor.afficheInfos(tr("Nombre maximal de valeurs : ") + str(max),Qt.red)
-
-      if self.listeValeursCourantes== [] :  self.node.item.setValeur([])
-      else : self.node.item.setValeur(self.listeValeursCourantes)
-
-      # Exception pour PSEN
-      if min==0 and self.listeValeursCourantes== []: self.node.item.setValeur([])
-      self.setValide()
-
-
-  def prepareListeResultatFiltre(self):
-      #print ('prepareListeResultatFiltre')
-      filtre=str(self.LEFiltre.text())
-      for cb in self.listeCB:
-          texte=cb.text()
-          if texte.find(filtre) == 0 :
-            palette = QPalette(Qt.red)
-            palette.setColor(QPalette.WindowText,Qt.red)
-            cb.setPalette(palette)
-            t=cb.text()
-            cb.setText(t)
-            self.listeCbRouge.append(cb)
-
-  def prepareListeResultat(self):
-      #print ('prepareListeResultat')
-      self.clearAll()
-      self.setValeurs()
-
-  def clearAll(self):
-      #print ('clearAll')
-      for cb in self.listeCB :
-         cb.setText("")
-
-
+            return(comm2+" "+comm)
+
+
+
+    def changeValeur(self):
+   #def changeValeur(self,changeDePlace=False,oblige=True, numero=None):
+        #print ('changeValeur')
+        if self.inhibe == True: return
+        if hasattr(self,'LEFiltre') :self.noircirResultatFiltre()
+        self.listeValeursCourantesAvant=self.listeValeursCourantes
+        self.listeValeursCourantes = []
+
+        for i in range (1,len(self.listeAAfficher)+1):
+            nomLineEdit="lineEditVal"+str(i)
+            courant=getattr(self,nomLineEdit)
+            if not (courant.isChecked()):continue
+            valeur=courant.text()
+            if valeur != None and valeur != "" :
+                commentaire=self.ajout1Valeur(valeur)
+                if (commentaire != None ):
+                    self.editor.afficheInfos(commentaire,Qt.red)
+                    self.listeValeursCourantesAvant=self.listeValeursCourantes
+                    self.setValeurs()
+
+        min,max = self.node.item.getMinMax()
+        if len(self.listeValeursCourantes) < min :
+            self.editor.afficheInfos(tr("Nombre minimal de valeurs : ") + str(min),Qt.red)
+        elif len(self.listeValeursCourantes) > max :
+            self.editor.afficheInfos(tr("Nombre maximal de valeurs : ") + str(max),Qt.red)
+
+        if self.listeValeursCourantes== [] :  self.node.item.setValeur([])
+        else : self.node.item.setValeur(self.listeValeursCourantes)
+
+        # Exception pour PSEN
+        if min==0 and self.listeValeursCourantes== []: self.node.item.setValeur([])
+        self.setValide()
+
+
+    def prepareListeResultatFiltre(self):
+        #print ('prepareListeResultatFiltre')
+        filtre=str(self.LEFiltre.text())
+        for cb in self.listeCB:
+            texte=cb.text()
+            if texte.find(filtre) == 0 :
+                palette = QPalette(Qt.red)
+                palette.setColor(QPalette.WindowText,Qt.red)
+                cb.setPalette(palette)
+                t=cb.text()
+                cb.setText(t)
+                self.listeCbRouge.append(cb)
+
+    def prepareListeResultat(self):
+        #print ('prepareListeResultat')
+        self.clearAll()
+        self.setValeurs()
+
+    def clearAll(self):
+        #print ('clearAll')
+        for cb in self.listeCB :
+            cb.setText("")
index 32ce2afe119eb820638560ff6247da8e4bb9997d..3fbe5838ac890184d8b7cb26dbfae483cdd50b51 100644 (file)
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
-   from builtins import range
+    from builtins import str
+    from builtins import range
 except : pass
 
 import types,os,sys
 
 # Modules Eficas
 from .feuille                import Feuille
-from desWidgetPlusieursIntoOrdonne import Ui_WidgetPlusieursIntoOrdonne 
+from desWidgetPlusieursIntoOrdonne import Ui_WidgetPlusieursIntoOrdonne
 from .politiquesValidation   import PolitiquePlusieurs
 from .qtSaisie               import SaisieValeur
 from .gereListe              import GereListe
@@ -37,7 +37,6 @@ from .gereListe              import LECustom
 from .gereListe              import MonLabelListeClic
 from Extensions.i18n import tr
 
-from six.moves import range
 from PyQt5.QtWidgets  import   QFrame, QApplication, QScrollBar
 from PyQt5.QtCore import QTimer, QSize, Qt
 from PyQt5.QtGui  import QIcon, QPalette
@@ -45,11 +44,11 @@ from PyQt5.QtGui  import QIcon, QPalette
 
 class MonWidgetPlusieursIntoOrdonne (Ui_WidgetPlusieursIntoOrdonne, Feuille,GereListe,GerePlie):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parent,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parent,commande):
         self.nomLine="LEResultat"
         self.listeLE=[]
         self.ouAjouter=0
-        self.NumLineEditEnCours=0
+        self.numLineEditEnCours=0
         self.alpha=0
         self.filtre=""
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parent,commande)
@@ -58,23 +57,23 @@ class MonWidgetPlusieursIntoOrdonne (Ui_WidgetPlusieursIntoOrdonne, Feuille,Gere
         self.gereIconePlier()
         self.listeValeursCourantes=self.node.item.getListeValeurs()
         try :
-          self.maCommande.listeAffichageWidget.append(self.lineEditVal1)
+            self.maCommande.listeAffichageWidget.append(self.lineEditVal1)
         except :
-          # cas ou on ne peut rien ajouter
-          pass 
+            # cas ou on ne peut rien ajouter
+            pass
         self.prepareListeResultat()
         if len(self.listeAAfficher) < 20 : self.frameRecherche2.close()
         if len(self.listeAAfficher) < 20 : self.frameRecherche.close()
         self.adjustSize()
-        if sys.platform[0:5]!="linux":
-          repIcon=self.node.editor.appliEficas.repIcon
-          fichier=os.path.join(repIcon, 'arrow_up.png')
-          icon = QIcon(fichier)
-          self.RBHaut.setIcon(icon)
-          self.RBHaut.setIconSize(QSize(32, 32))
-          fichier2=os.path.join(repIcon, 'arrow_down.png')
-          icon2 = QIcon(fichier2)
-          self.RBBas.setIcon(icon2)
+        #if sys.platform[0:5]!="linux":
+        repIcon=self.node.editor.appliEficas.repIcon
+        fichier=os.path.join(repIcon, 'arrow_up.png')
+        icon = QIcon(fichier)
+        self.RBHaut.setIcon(icon)
+        self.RBHaut.setIconSize(QSize(32, 32))
+        fichier2=os.path.join(repIcon, 'arrow_down.png')
+        icon2 = QIcon(fichier2)
+        self.RBBas.setIcon(icon2)
         icon=QIcon(self.repIcon+"/MoinsBleu.png")
         self.RBMoins.setIcon(icon)
         icon=QIcon(self.repIcon+"/PlusBleu.png")
@@ -86,143 +85,148 @@ class MonWidgetPlusieursIntoOrdonne (Ui_WidgetPlusieursIntoOrdonne, Feuille,Gere
         self.parentQt.commandesLayout.insertWidget(-1,self)
         self.listeRouge=[]
 
-       
-  def prepareListeResultat(self):
-       for i in self.listeLE: i.close()
-       self.listeLE=[]
-       self.vScrollBar = self.scrollArea.verticalScrollBar()
-       self.listeValeursCourantes=self.node.item.getListeValeurs()
-       if hasattr(self.node.item.definition.validators,'set_MCSimp'):
+
+    def prepareListeResultat(self):
+        for i in self.listeLE: i.close()
+        self.listeLE=[]
+        self.vScrollBar = self.scrollArea.verticalScrollBar()
+        self.listeValeursCourantes=self.node.item.getListeValeurs()
+        if hasattr(self.node.item.definition.validators,'set_MCSimp'):
             obj=self.node.item.getObject()
             self.node.item.definition.validators.set_MCSimp(obj)
             if self.node.item.isValid() == 0 :
-               liste=[]
-               for item in self.listeValeursCourantes:
-                   if self.node.item.definition.validators.verifItem(item)==1: liste.append(item)
-               self.listeAAfficher=self.node.item.getListePossible(liste)
-            else: 
-               self.listeAAfficher=self.node.item.getListePossible([])
-       else :
+                liste=[]
+                for item in self.listeValeursCourantes:
+                    if self.node.item.definition.validators.verifItem(item)==1: liste.append(item)
+                self.listeAAfficher=self.node.item.getListePossible(liste)
+            else:
+                self.listeAAfficher=self.node.item.getListePossible([])
+        else :
             self.listeAAfficher=self.node.item.getListePossible(self.listeValeursCourantes)
 
-       if self.listeAAfficher==[] : 
-          self.ajoutLE(0)
-          return
-       self.filtreListe()
-       if len(self.listeAAfficher)*20 > 400 : self.setMinimumHeight(400)
-       else : self.setMinimumHeight(len(self.listeAAfficher)*30)
+        if self.listeAAfficher==[] :
+            self.ajoutLE(0)
+            return
+        self.filtreListe()
+        if len(self.listeAAfficher)*20 > 400 : self.setMinimumHeight(400)
+        else :
+            if self.monSimpDef.min > len(self.listeAAfficher)    : self.setMinimumHeight(self.monSimpDef.min*30+300)
+            elif  self.monSimpDef.max > len(self.listeAAfficher) : self.setMinimumHeight(400)
+            else  : self.setMinimumHeight(len(self.listeAAfficher)*30+30)
+        self.setMinimumHeight(300)
+        self.adjustSize()
+
+        self.politique=PolitiquePlusieurs(self.node,self.editor)
+        for i in range(1,len(self.listeAAfficher)+1): self.ajoutLE(i)
+        for i in range(len(self.listeAAfficher)):
+            nomLE="lineEditVal"+str(i+1)
+            courant=getattr(self,nomLE)
+            courant.setText(str(self.listeAAfficher[i]))
+        self.vScrollBar.triggerAction(QScrollBar.SliderToMinimum)
+        if len(self.listeAAfficher) < 15 and hasattr(self,'frameRecherche') : self.frameRecherche.close()
+        if len(self.listeAAfficher) < 15 and hasattr(self,'frameRecherche2') : self.frameRecherche2.close()
 
-       self.politique=PolitiquePlusieurs(self.node,self.editor)
-       for i in range(1,len(self.listeAAfficher)+1): self.ajoutLE(i)
-       for i in range(len(self.listeAAfficher)):
-           nomLE="lineEditVal"+str(i+1)
-           courant=getattr(self,nomLE)
-           courant.setText(str(self.listeAAfficher[i]))
-       self.vScrollBar.triggerAction(QScrollBar.SliderToMinimum)
-       if len(self.listeAAfficher) < 15 and hasattr(self,'frameRecherche') : self.frameRecherche.close() 
-       if len(self.listeAAfficher) < 15 and hasattr(self,'frameRecherche2') : self.frameRecherche2.close() 
-       
-      
-  def setValeurs(self,first=True):
-       self.listeValeursCourantes=self.node.item.getListeValeurs()
-       if first : 
-          if self.monSimpDef.max == "**" or self.monSimpDef.max == float('inf') : aConstruire=7
-          else : aConstruire=self.monSimpDef.max
-          if len(self.listeValeursCourantes) > aConstruire : aConstruire=len(self.listeValeursCourantes)
-          self.indexDernierLabel = aConstruire
-          for i in range(1,aConstruire+1): self.ajoutLEResultat(i)
-       index=1
-       for val in self.listeValeursCourantes :
-          nomLE="LEResultat"+str(index)
-          courant=getattr(self,nomLE)
-          courant.setText(str(val))
-          courant.setReadOnly(True)
-          index=index+1
-       while (index < self.indexDernierLabel) :
-          nomLE="LEResultat"+str(index)
-          courant=getattr(self,nomLE)
-          courant.setText("")
-          courant.setReadOnly(True)
-          index=index+1
-       #self.prepareListeResultat()
 
-  def moinsPushed(self):
-      self.ouAjouter=self.ouAjouter-1
-      GereListe.moinsPushed(self)
-      self.setValeurs(first=False)
+    def setValeurs(self,first=True):
+        self.listeValeursCourantes=self.node.item.getListeValeurs()
+        if first :
+            if self.monSimpDef.max == "**" or self.monSimpDef.max == float('inf') : aConstruire=7
+            else : aConstruire=self.monSimpDef.max
+            if len(self.listeValeursCourantes) > aConstruire : aConstruire=len(self.listeValeursCourantes)
+            self.indexDernierLabel = aConstruire
+            for i in range(1,aConstruire+1): self.ajoutLEResultat(i)
+        index=1
+        for val in self.listeValeursCourantes :
+            nomLE="LEResultat"+str(index)
+            courant=getattr(self,nomLE)
+            courant.setText(str(val))
+            courant.setReadOnly(True)
+            index=index+1
+        while (index < self.indexDernierLabel) :
+            nomLE="LEResultat"+str(index)
+            courant=getattr(self,nomLE)
+            courant.setText("")
+            courant.setReadOnly(True)
+            index=index+1
+        #self.prepareListeResultat()
+
+    def moinsPushed(self):
+        self.ouAjouter=self.ouAjouter-1
+        GereListe.moinsPushed(self)
+        self.setValeurs(first=False)
 
-  def prepareListeResultatFiltre(self):
-      for i in self.listeRouge :
-          nomLE="lineEditVal"+str(i+1)
-          courant=getattr(self,nomLE)
-          texte=courant.text()
-          palette = QPalette(Qt.black)
-          palette.setColor(QPalette.WindowText,Qt.black)
-          courant.setPalette(palette)
-          courant.setText(texte)
-      
-      self.listeRouge = []
-      filtre=str(self.LEFiltre.text())
-      if filtre == '' : return
-      for i in range(len(self.listeAAfficher)):
-           nomLE="lineEditVal"+str(i+1)
-           courant=getattr(self,nomLE)
-           texte=courant.text()
-           if texte.find(filtre) == 0 :
-              palette = QPalette(Qt.red)
-              palette.setColor(QPalette.WindowText,Qt.red)
-              courant.setPalette(palette)
-              courant.setText(texte)
-           self.listeRouge.append(i)
+    def prepareListeResultatFiltre(self):
+        for i in self.listeRouge :
+            nomLE="lineEditVal"+str(i+1)
+            courant=getattr(self,nomLE)
+            texte=courant.text()
+            palette = QPalette(Qt.black)
+            palette.setColor(QPalette.WindowText,Qt.black)
+            courant.setPalette(palette)
+            courant.setText(texte)
 
-  def cleanListeResultatFiltre(self):
-      self.LEFiltre.setText('')
-      self.prepareListeResultatFiltre()
+        self.listeRouge = []
+        filtre=str(self.LEFiltre.text())
+        if filtre == '' : return
+        for i in range(len(self.listeAAfficher)):
+            nomLE="lineEditVal"+str(i+1)
+            courant=getattr(self,nomLE)
+            texte=courant.text()
+            if texte.find(filtre) == 0 :
+                palette = QPalette(Qt.red)
+                palette.setColor(QPalette.WindowText,Qt.red)
+                courant.setPalette(palette)
+                courant.setText(texte)
+            self.listeRouge.append(i)
 
-  def ajoutLEResultat (self,index,valeur=None):
-      #print ('ajoutLEResultat', index, valeur)
-      nomLE="LEResultat"+str(index)
-      if not (hasattr(self,nomLE)) : 
-        nouveauLE = LECustom(self.scrollAreaRE,self,index)
-        nouveauLE.setFrame(False)
-        self.CBChoisis.insertWidget(self.ouAjouter,nouveauLE)
-        self.ouAjouter=self.ouAjouter+1
-        nouveauLE.setReadOnly(True)
+    def cleanListeResultatFiltre(self):
+        self.LEFiltre.setText('')
+        self.prepareListeResultatFiltre()
+
+    def ajoutLEResultat (self,index,valeur=None):
+        #print ('ajoutLEResultat', index, valeur)
+        nomLE="LEResultat"+str(index)
+        if not (hasattr(self,nomLE)) :
+            nouveauLE = LECustom(self.scrollAreaRE,self,index)
+            nouveauLE.setFrame(False)
+            self.CBChoisis.insertWidget(self.ouAjouter,nouveauLE)
+            self.ouAjouter=self.ouAjouter+1
+            nouveauLE.setReadOnly(True)
+            if index % 2 == 1 : nouveauLE.setStyleSheet("background:rgb(210,210,210)")
+            else :            nouveauLE.setStyleSheet("background:rgb(240,240,240)")
+            self.vScrollBarRE = self.scrollAreaRE.verticalScrollBar()
+            self.vScrollBarRE.triggerAction(QScrollBar.SliderToMaximum)
+            setattr(self,nomLE,nouveauLE)
+            self.estVisibleRE=nouveauLE
+        else :
+            nouveauLE=getattr(self,nomLE)
+
+        if valeur == None : nouveauLE.setText("")
+        else : nouveauLE.setText(str(valeur))
+
+    def ajoutLE(self,index,valeur=None):
+        #print ('ajoutLE')
+        nomLE="lineEditVal"+str(index)
+        nouveauLE = MonLabelListeClic(self)
+        #self.CBLayout.addWidget(nouveauLE)
+        self.CBLayout.insertWidget(index -1,nouveauLE)
+        self.listeLE.append(nouveauLE)
+        nouveauLE.setFrameShape(QFrame.NoFrame)
+        QApplication.processEvents()
+        nouveauLE.setText("")
         if index % 2 == 1 : nouveauLE.setStyleSheet("background:rgb(210,210,210)")
-        else :           nouveauLE.setStyleSheet("background:rgb(240,240,240)")
-        self.vScrollBarRE = self.scrollAreaRE.verticalScrollBar()
-        self.vScrollBarRE.triggerAction(QScrollBar.SliderToMaximum)
+        else :              nouveauLE.setStyleSheet("background:rgb(240,240,240)")
+        self.vScrollBar.triggerAction(QScrollBar.SliderToMaximum)
+        nouveauLE.setFocus()
         setattr(self,nomLE,nouveauLE)
-        self.estVisibleRE=nouveauLE
-      else :
-         nouveauLE=getattr(self,nomLE)
 
-      if valeur == None : nouveauLE.setText("")
-      else : nouveauLE.setText(str(valeur))
-      
-  def ajoutLE(self,index,valeur=None):
-      #print ('ajoutLE')
-      nomLE="lineEditVal"+str(index)
-      nouveauLE = MonLabelListeClic(self)
-      #self.CBLayout.addWidget(nouveauLE)
-      self.CBLayout.insertWidget(index -1,nouveauLE)
-      self.listeLE.append(nouveauLE)
-      nouveauLE.setFrameShape(QFrame.NoFrame)
-      QApplication.processEvents()
-      nouveauLE.setText("")
-      if index % 2 == 1 : nouveauLE.setStyleSheet("background:rgb(210,210,210)")
-      else :             nouveauLE.setStyleSheet("background:rgb(240,240,240)")
-      self.vScrollBar.triggerAction(QScrollBar.SliderToMaximum)
-      nouveauLE.setFocus()
-      setattr(self,nomLE,nouveauLE)
-      
-  def ajoutLineEdit(self):
-      print ('ajoutLineEdit')
-      self.indexDernierLabel=self.indexDernierLabel+1
-      self.ajoutLEResultat (self.indexDernierLabel)
+    def ajoutLineEdit(self):
+        #print ('ajoutLineEdit')
+        self.indexDernierLabel=self.indexDernierLabel+1
+        self.ajoutLEResultat (self.indexDernierLabel)
 
 
-  def traiteClicSurLabelListe(self,valeur):
+    def traiteClicSurLabelListe(self,valeur):
         if valeur == None : return
         liste,validite=SaisieValeur.TraiteLEValeur(self,str(valeur))
         if validite == 0 : return
@@ -231,69 +235,70 @@ class MonWidgetPlusieursIntoOrdonne (Ui_WidgetPlusieursIntoOrdonne, Feuille,Gere
 
         self.listeValeursCourantes=self.node.item.getListeValeurs()
         min,max = self.node.item.getMinMax()
-        if len(self.listeValeursCourantes) +1 > max : 
-           self.editor.afficheInfos(tr("Nombre maximal de valeurs : ") + str(max),Qt.red)
-           return
+        if len(self.listeValeursCourantes) +1 > max :
+            self.editor.afficheInfos(tr("Nombre maximal de valeurs : ") + str(max),Qt.red)
+            return
         else :
-           self.editor.afficheInfos("")
+            self.editor.afficheInfos("")
 
         affiche=False
         for i in range(1,self.indexDernierLabel+1):
-           nomLE="LEResultat"+str(i)
-           courant=getattr(self,nomLE)
-           if str(courant.text())==str("") : 
-              courant.setText(valeur)
-              courant.setReadOnly(True)
-              affiche=True
-              self.estVisibleRE=courant
-              QTimer.singleShot(1, self.rendVisibleLigneRE)
-              break
-          
+            nomLE="LEResultat"+str(i)
+            courant=getattr(self,nomLE)
+            if str(courant.text())==str("") :
+                courant.setText(valeur)
+                courant.setReadOnly(True)
+                affiche=True
+                self.estVisibleRE=courant
+                QTimer.singleShot(1, self.rendVisibleLigneRE)
+                break
+
         if affiche == False:
-           self.indexDernierLabel = self.indexDernierLabel+1
-           self.ajoutLEResultat (self.indexDernierLabel,str(valeur))
-           self.vScrollBarRE.triggerAction(QScrollBar.SliderToMaximum)
-           QTimer.singleShot(1, self.rendVisibleLigneRE)
+            self.indexDernierLabel = self.indexDernierLabel+1
+            self.ajoutLEResultat (self.indexDernierLabel,str(valeur))
+            self.vScrollBarRE.triggerAction(QScrollBar.SliderToMaximum)
+            QTimer.singleShot(1, self.rendVisibleLigneRE)
         self.changeValeur()
         self.setValeurs(first=False)
 
-  def changeValeur(self,changeDePlace=False,oblige=False):
+    def changeValeur(self,changeDePlace=False,oblige=False):
+#def changeValeur(self,changeDePlace=False,oblige=False, numero=None):
 #PN les 2 arg sont pour que la signature de ma fonction soit identique a monWidgetPlusieursBase
         listeVal=[]
         for i in range(1,self.indexDernierLabel+1):
-           nomLE="LEResultat"+str(i)
-           courant=getattr(self,nomLE)
-           valeur=courant.text()
-           if str(valeur)=="" : continue
-           liste,validite=SaisieValeur.TraiteLEValeur(self,str(valeur))
-           listeVal.append(str(valeur))
+            nomLE="LEResultat"+str(i)
+            courant=getattr(self,nomLE)
+            valeur=courant.text()
+            if str(valeur)=="" : continue
+            liste,validite=SaisieValeur.TraiteLEValeur(self,str(valeur))
+            listeVal.append(str(valeur))
 
         validite,comm,comm2,listeRetour=self.politique.ajoutValeurs(listeVal,-1,[])
-        
+
 
         self.listeValeursCourantes=self.node.item.getListeValeurs()
         min,max = self.node.item.getMinMax()
-        if len(self.listeValeursCourantes) < min : 
-           self.editor.afficheInfos(tr("Nombre minimal de valeurs : ") + str(min),Qt.red)
+        if len(self.listeValeursCourantes) < min :
+            self.editor.afficheInfos(tr("Nombre minimal de valeurs : ") + str(min),Qt.red)
         else :
-           self.editor.afficheInfos("")
-    
+            self.editor.afficheInfos("")
+
         if len(listeRetour) == 0 :
-           self.node.item.setValeur(None)
+            self.node.item.setValeur(None)
         elif validite :
-           self.node.item.setValeur(listeRetour)
+            self.node.item.setValeur(listeRetour)
         else :
-           commentaire=comm+" "+comm2
-           self.editor.afficheInfos(commentaire,Qt.red)
+            commentaire=comm+" "+comm2
+            self.editor.afficheInfos(commentaire,Qt.red)
         self.setValide()
+        self.reaffiche()
+      
 #
-  def rendVisibleLigneRE(self):
-      QApplication.processEvents()
-      self.estVisibleRE.setFocus()
-      self.scrollArea.ensureWidgetVisible(self.estVisibleRE,0,0)
+    def rendVisibleLigneRE(self):
+        QApplication.processEvents()
+        self.estVisibleRE.setFocus()
+        self.scrollArea.ensureWidgetVisible(self.estVisibleRE,0,0)
 #
-  def rendVisibleLigne(self):
-      self.estVisibleRE=self.estVisible
-      #rendVisibleLigneRE()
-
-
+    def rendVisibleLigne(self):
+        self.estVisibleRE=self.estVisible
+        #rendVisibleLigneRE()
index 382d812c3fa428dc48778303233dc73e480e341d..424f5055c020adf43e4da8f26dbc1db6126a5902 100644 (file)
@@ -20,7 +20,7 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import types,os,sys,re
@@ -32,7 +32,7 @@ from PyQt5.QtGui  import QIcon, QBrush, QColor
 from Extensions.i18n import tr
 
 from .feuille                import Feuille
-from desWidgetPlusieursPlie import Ui_WidgetPlusieursPlie 
+from desWidgetPlusieursPlie import Ui_WidgetPlusieursPlie
 
 from .politiquesValidation   import PolitiquePlusieurs
 from .qtSaisie               import SaisieValeur
@@ -42,81 +42,81 @@ pattern_blanc = re.compile(r"^\s*$")
 
 class MonWidgetPlusieursPlie (Ui_WidgetPlusieursPlie,Feuille):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         #print ("MonWidgetPlusieursBase", nom)
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.parentQt.commandesLayout.insertWidget(-1,self)
         self.AAfficher=self.lineEditVal
         self.maCommande.listeAffichageWidget.append(self.lineEditVal)
-        if self.node.item.hasInto() : 
-           self.lineEditVal.setReadOnly(True)
-           self.lineEditVal.setStyleSheet("background:rgb(235,235,235);\n")
-           self.lineEditVal.setToolTip("Ensemble discret de valeurs possibles, pas de Saisie Manuelle")
-           #self.lineEditVal.setPen(QtGui.QColor(0,0,200))
-          #b=QBrush(Qt.DiagCrossPattern)
-           #b.setColor(QColor(255,100,0))
-           #self.lineEditVal.setBrush(b)
+        if self.node.item.hasInto() :
+            self.lineEditVal.setReadOnly(True)
+            self.lineEditVal.setStyleSheet("background:rgb(235,235,235);\n")
+            self.lineEditVal.setToolTip("Ensemble discret de valeurs possibles, pas de Saisie Manuelle")
+            #self.lineEditVal.setPen(QtGui.QColor(0,0,200))
+            #b=QBrush(Qt.DiagCrossPattern)
+            #b.setColor(QColor(255,100,0))
+            #self.lineEditVal.setBrush(b)
         else :
-           self.lineEditVal.returnPressed.connect(self.valeurEntree)
+            self.lineEditVal.returnPressed.connect(self.valeurEntree)
         self.BVisuListe.clicked.connect(self.selectWidgetDeplie)
 
 
-  def setValeurs(self):
-       self.listeValeursCourantes=self.node.item.getListeValeurs()
-       if self.listeValeursCourantes != []  :  self.lineEditVal.setText(str(self.listeValeursCourantes))
-       else : self.lineEditVal.setText("")
-       self.politique=PolitiquePlusieurs(self.node,self.editor)
-       return
-
-  def selectWidgetDeplie(self):
-      self.editor.listeDesListesOuvertes.add(self.node.item)
-      self.reaffichePourDeplier()
-
-  def valeurEntree(self):
-      valeurTexte=self.lineEditVal.text()
-      #print (valeurTexte[0])
-      #print (valeurTexte[-1])
-      if valeurTexte[0] == '[' or valeurTexte[0] == '('   : valeurTexte = valeurTexte[1:]
-      if valeurTexte[-1] == ']' or valeurTexte[-1] == ')' : valeurTexte = valeurTexte[:-1]
-      #print (valeurTexte)
-      listeValeursBrutes=valeurTexte.split(',')
-      if listeValeursBrutes == [] or listeValeursBrutes == None : 
-         self.lineEditVal.setText(str(self.listeValeursCourantes))
-         return
-      listeValeur=[]
-      for v in listeValeursBrutes: 
-          if v == None or pattern_blanc.match(v) : 
-             self.editor.afficheInfos(str(listeValeur)+'   Valeurs saisies incorrectes',Qt.red)
-             return
-          liste,validite=SaisieValeur.TraiteLEValeur(self,str(v))
-          if not validite : 
-             self.editor.afficheInfos(str(listeValeur) +'   Valeurs saisies incorrectes',Qt.red)
-             return
-          listeValeur.append(liste[0])
-      validite,comm,comm2,listeRetour=self.politique.ajoutValeurs(listeValeur,-1,[])
-      if validite : 
-         self.node.item.setValeur(listeValeur)
-         self.node.item.isValid()
-         self.setValeurs()
-      else :
-         self.editor.afficheInfos(str(listeValeur) + '   ' +comm,Qt.red)
-         self.lineEditVal.setText('')
-       
+    def setValeurs(self):
+        self.listeValeursCourantes=self.node.item.getListeValeurs()
+        if self.listeValeursCourantes != []  :  self.lineEditVal.setText(str(self.listeValeursCourantes))
+        else : self.lineEditVal.setText("")
+        self.politique=PolitiquePlusieurs(self.node,self.editor)
+        return
+
+    def selectWidgetDeplie(self):
+        self.editor.listeDesListesOuvertes.add(self.node.item)
+        self.reaffichePourDeplier()
+
+    def valeurEntree(self):
+        valeurTexte=self.lineEditVal.text()
+        #print (valeurTexte[0])
+        #print (valeurTexte[-1])
+        if valeurTexte[0] == '[' or valeurTexte[0] == '('   : valeurTexte = valeurTexte[1:]
+        if valeurTexte[-1] == ']' or valeurTexte[-1] == ')' : valeurTexte = valeurTexte[:-1]
+        #print (valeurTexte)
+        listeValeursBrutes=valeurTexte.split(',')
+        if listeValeursBrutes == [] or listeValeursBrutes == None :
+            self.lineEditVal.setText(str(self.listeValeursCourantes))
+            return
+        listeValeur=[]
+        for v in listeValeursBrutes:
+            if v == None or pattern_blanc.match(v) :
+                self.editor.afficheInfos(str(listeValeur)+'   Valeurs saisies incorrectes',Qt.red)
+                return
+            liste,validite=SaisieValeur.TraiteLEValeur(self,str(v))
+            if not validite :
+                self.editor.afficheInfos(str(listeValeur) +'   Valeurs saisies incorrectes',Qt.red)
+                return
+            listeValeur.append(liste[0])
+        validite,comm,comm2,listeRetour=self.politique.ajoutValeurs(listeValeur,-1,[])
+        if validite :
+            self.node.item.setValeur(listeValeur)
+            self.node.item.isValid()
+            self.setValeurs()
+        else :
+            self.editor.afficheInfos(str(listeValeur) + '   ' +comm,Qt.red)
+            self.lineEditVal.setText('')
+
 class MonWidgetPlusieursPlieASSD (MonWidgetPlusieursPlie):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         MonWidgetPlusieursPlie.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.lineEditVal.setReadOnly(True)
 
-  def setValeurs(self):
-       self.listeValeursCourantes=self.node.item.getListeValeurs()
-       self.politique=PolitiquePlusieurs(self.node,self.editor)
-       if self.listeValeursCourantes == []  :  self.lineEditVal.setText(""); return
-       txt="["
-       for elt in self.listeValeursCourantes :
+    def setValeurs(self):
+        self.listeValeursCourantes=self.node.item.getListeValeurs()
+        self.politique=PolitiquePlusieurs(self.node,self.editor)
+        if self.listeValeursCourantes == []  :  self.lineEditVal.setText(""); return
+        txt="["
+        for elt in self.listeValeursCourantes :
             txt= txt+ (str(elt)) + ","
-       txt= txt + "]"
-       self.lineEditVal.setText(txt)
+        txt= txt + "]"
+        self.lineEditVal.setText(txt)
 
-  def valeurEntree(self):
-      pass
+    def valeurEntree(self):
+        pass
index 7a84e5011a585ebaa4c04c02753683748cac9552..9899faab121f014969de0dbbb1fdd6ef1f4d3cca 100644 (file)
@@ -20,9 +20,9 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
-   from builtins import range
-   from builtins import object
+    from builtins import str
+    from builtins import range
+    from builtins import object
 except : pass
 
 import types,os,sys
@@ -55,193 +55,193 @@ from Tuple10                            import Ui_Tuple10
 class TupleCustom(object) :
 #--------------------------
 
-  def __init__(self,tailleTuple,parent,parentQt,index):
-  #-------------------------------------------------
-      QWidget.__init__(self,parent)
-      self.setupUi(self)
-      self.tailleTuple=tailleTuple
-      self.parent=parent
-      self.parentQt=parentQt
-      self.valeur=[]
-      self.index=index
-      self.inFocusOutEvent=False
-
-
-      for i in range(self.tailleTuple):
-         nomLE="lineEditVal_"+str(i+1)
-         courant=getattr(self,nomLE)
-         courant.num=index
-         courant.dansUnTuple=True
-         courant.returnPressed.connect(self.valueChange)
-         courant.numDsLaListe = i+1
-         courant.tupleCustomParent=self
-         courant.parentTuple = self
-
-
-  def valueChange(self):
-  #----------------------
-
-      listeVal=[]
-      for i in range(self.tailleTuple):
-         nomLE="lineEditVal_"+str(i+1)
-         courant=getattr(self,nomLE)
-         val=str(courant.text())
-        
-         if str(val)=="" or val==None : 
-            if not self.inFocusOutEvent : courant.setFocus()
-            return
+    def __init__(self,tailleTuple,parent,parentQt,index):
+    #-------------------------------------------------
+        QWidget.__init__(self,parent)
+        self.setupUi(self)
+        self.tailleTuple=tailleTuple
+        self.parent=parent
+        self.parentQt=parentQt
+        self.valeur=[]
+        self.index=index
+        self.inFocusOutEvent=False
+
+
+        for i in range(self.tailleTuple):
+            nomLE="lineEditVal"+str(i+1)
+            courant=getattr(self,nomLE)
+            courant.num=index
+            courant.dansUnTuple=True
+            courant.returnPressed.connect(self.valueChange)
+            courant.numDsLaListe = i+1
+            courant.tupleCustomParent=self
+            courant.parentTuple = self
+
+
+    def valueChange(self):
+    #----------------------
+
+        listeVal=[]
+        for i in range(self.tailleTuple):
+            nomLE="lineEditVal"+str(i+1)
+            courant=getattr(self,nomLE)
+            val=str(courant.text())
+
+            if str(val)=="" or val==None :
+                if not self.inFocusOutEvent : courant.setFocus()
+                return
+
+            try :
+                valeur=eval(val,{})
+            except :
+                try :
+                    d=self.parentQt.objSimp.jdc.getContexteAvant(self.parentQt.objSimp. etape)
+                    valeur=eval(val,d)
+                except :
+                    valeur=val
+            listeVal.append(valeur)
+        self.valeur=listeVal
+        self.parentQt.changeValeur()
+
+
+    def setValeur(self,value):
+    #----------------------
+
+        listeVal=[]
+        valeurNulle=True
+        for i in range(self.tailleTuple):
+            nomLE="lineEditVal"+str(i+1)
+            courant=getattr(self,nomLE)
+            try :
+                if str(value[i]) != "" : valeurNulle=False
+            except :
+                pass
 
-         try :
-             valeur=eval(val,{})
-         except :
-           try :
-             d=self.parentQt.objSimp.jdc.getContexteAvant(self.parentQt.objSimp. etape)
-             valeur=eval(val,d)
-           except :
-             valeur=val
-         listeVal.append(valeur)
-      self.valeur=listeVal
-      self.parentQt.changeValeur()
-
-
-  def setValeur(self,value):
-  #----------------------
-
-      listeVal=[]
-      valeurNulle=True
-      for i in range(self.tailleTuple):
-         nomLE="lineEditVal_"+str(i+1)
-         courant=getattr(self,nomLE)
-         try :
-           if str(value[i]) != "" : valeurNulle=False
-         except :
-           pass
-
-         try :
-           courant.setText(str(value[i]))
-         except :
-           courant.setText("")
-         val=str(courant.text())
-         try :
-           valeur=eval(val,{})
-         except :
-           try :
-             d=self.parentQt.objSimp.jdc.getContexteAvant(self.parentQt.objSimp. etape)
-             valeur=eval(val,d)
-           except :
-             valeur=val
-         listeVal.append(valeur)
-      if  valeurNulle == True : self.valeur=None
-      else                    : self.valeur=listeVal
-
-  def getValeurbad(self):
-  #----------------------
-      self.valeur=[]
-      vide=True
-      print (self.tailleTuple)
-      for i in range(self.tailleTuple):
-         nomLE="lineEditVal_"+str(i+1)
-         courant=getattr(self,nomLE)
-         self.valeur.append(courant.valeur)
-         if courant.valeur!= None : vide = False 
-      if vide : self.valeur=[]
-      return self.valeur
-
-  def getValeur(self):
-  #----------------------
-      return self.valeur
-     
-
-  def text(self):
-  #--------------
-      return self.valeur
-
-  def setText(self,value):
-  #-----------------------
-      self.setValeur(value)
-
-  def clean(self):
-  #-------------------
-      self.valeur=None
-      for i in range(self.tailleTuple):
-         nomLE="lineEditVal_"+str(i+1)
-         courant=getattr(self,nomLE)
-         courant.setText("")
-
-  def finCommentaire(self):
-  #-------------------
+            try :
+                courant.setText(str(value[i]))
+            except :
+                courant.setText("")
+            val=str(courant.text())
+            try :
+                valeur=eval(val,{})
+            except :
+                try :
+                    d=self.parentQt.objSimp.jdc.getContexteAvant(self.parentQt.objSimp. etape)
+                    valeur=eval(val,d)
+                except :
+                    valeur=val
+            listeVal.append(valeur)
+        if  valeurNulle == True : self.valeur=None
+        else                    : self.valeur=listeVal
+
+    def getValeurbad(self):
+    #----------------------
+        self.valeur=[]
+        vide=True
+        print (self.tailleTuple)
+        for i in range(self.tailleTuple):
+            nomLE="lineEditVal"+str(i+1)
+            courant=getattr(self,nomLE)
+            self.valeur.append(courant.valeur)
+            if courant.valeur!= None : vide = False
+        if vide : self.valeur=[]
+        return self.valeur
+
+    def getValeur(self):
+    #----------------------
+        return self.valeur
+
+
+    def text(self):
+    #--------------
+        return self.valeur
+
+    def setText(self,value):
+    #-----------------------
+        self.setValeur(value)
+
+    def clean(self):
+    #-------------------
+        self.valeur=None
+        for i in range(self.tailleTuple):
+            nomLE="lineEditVal"+str(i+1)
+            courant=getattr(self,nomLE)
+            courant.setText("")
+
+    def finCommentaire(self):
+    #-------------------
         return self.finCommentaireListe()
 
 
 #-------------------------------------------------
 class TupleCustom2(QWidget,Ui_Tuple2,TupleCustom):
 #-------------------------------------------------
-  def __init__(self,tailleTuple,parent,parentQt,index):
-  #-------------------
-      TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
-      if self.parentQt.editor.maConfiguration.closeParenthese :
-           self.label_5.close()
-           self.label_7.close()
+    def __init__(self,tailleTuple,parent,parentQt,index):
+    #-------------------
+        TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
+        if self.parentQt.editor.maConfiguration.closeParenthese :
+            self.label_5.close()
+            self.label_7.close()
 
 
 #-------------------------------------------------
 class TupleCustom3(QWidget,Ui_Tuple3,TupleCustom):
 #-------------------------------------------------
-  def __init__(self,tailleTuple,parent,parentQt,index):
-  #-------------------
-      TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
+    def __init__(self,tailleTuple,parent,parentQt,index):
+    #-------------------
+        TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
 
 #-------------------------------------------------
 class TupleCustom4(QWidget,Ui_Tuple4,TupleCustom):
 #-------------------------------------------------
-  def __init__(self,tailleTuple,parent,parentQt,index):
-  #-------------------
-      TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
+    def __init__(self,tailleTuple,parent,parentQt,index):
+    #-------------------
+        TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
 
 #-------------------------------------------------
 class TupleCustom5(QWidget,Ui_Tuple5,TupleCustom):
 #-------------------------------------------------
-  def __init__(self,tailleTuple,parent,parentQt,index):
-  #-------------------
-      TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
+    def __init__(self,tailleTuple,parent,parentQt,index):
+    #-------------------
+        TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
 
 #-------------------------------------------------
 class TupleCustom6(QWidget,Ui_Tuple6,TupleCustom):
 #-------------------------------------------------
-  def __init__(self,tailleTuple,parent,parentQt,index):
-  #-------------------
-      TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
+    def __init__(self,tailleTuple,parent,parentQt,index):
+    #-------------------
+        TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
 
 #-------------------------------------------------
 class TupleCustom7(QWidget,Ui_Tuple7,TupleCustom):
 #-------------------------------------------------
-  def __init__(self,tailleTuple,parent,parentQt,index):
-  #-------------------
-      TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
+    def __init__(self,tailleTuple,parent,parentQt,index):
+    #-------------------
+        TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
 
 #-------------------------------------------------
 class TupleCustom8(QWidget,Ui_Tuple8,TupleCustom):
 #-------------------------------------------------
-  def __init__(self,tailleTuple,parent,parentQt,index):
-  #-------------------
-      TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
+    def __init__(self,tailleTuple,parent,parentQt,index):
+    #-------------------
+        TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
 
 #-------------------------------------------------
 class TupleCustom9(QWidget,Ui_Tuple9,TupleCustom):
 #-------------------------------------------------
-  def __init__(self,tailleTuple,parent,parentQt,index):
-  #-------------------
-      TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
+    def __init__(self,tailleTuple,parent,parentQt,index):
+    #-------------------
+        TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
 
 #-------------------------------------------------
 class TupleCustom10(QWidget,Ui_Tuple10,TupleCustom):
 #-------------------------------------------------
-  def __init__(self,tailleTuple,parent,parentQt,index):
-  #-------------------
-      TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
-      if self.parentQt.editor.maConfiguration.closeParenthese :
-           self.label_5.close()
-           self.label_7.close()
+    def __init__(self,tailleTuple,parent,parentQt,index):
+    #-------------------
+        TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
+        if self.parentQt.editor.maConfiguration.closeParenthese :
+            self.label_5.close()
+            self.label_7.close()
 
 
 
@@ -251,8 +251,8 @@ class TupleCustom10(QWidget,Ui_Tuple10,TupleCustom):
 class MonWidgetPlusieursTuple(Feuille,GereListe):
 # -------------------------------------------- #
 
-  def __init__(self, node, monSimpDef, nom, objSimp, parentQt, commande):
-  #-----------------------------------------------------
+    def __init__(self, node, monSimpDef, nom, objSimp, parentQt, commande):
+    #-----------------------------------------------------
 
         self.indexDernierLabel=0
         self.numLineEditEnCours=0
@@ -265,158 +265,158 @@ class MonWidgetPlusieursTuple(Feuille,GereListe):
         self.parentQt.commandesLayout.insertWidget(-1,self)
 
         #if sys.platform[0:5]!="linux":
-        if 1 : 
+        if 1 :
         #Pour MT
-          repIcon=self.node.editor.appliEficas.repIcon
-          fichier=os.path.join(repIcon, 'arrow_up.png')
-          icon = QIcon(fichier)
-          self.RBHaut.setIcon(icon)
-          self.RBHaut.setIconSize(QSize(32, 32))
-          fichier2=os.path.join(repIcon, 'arrow_down.png')
-          icon2 = QIcon(fichier2)
-          self.RBBas.setIcon(icon2)
-          fichier3=os.path.join(repIcon, 'file-explorer.png')
-          icon3 = QIcon(fichier3)
-          self.BSelectFichier.setIcon(icon3)
-          self.BSelectFichier.setIconSize(QSize(32, 32))
+            repIcon=self.node.editor.appliEficas.repIcon
+            fichier=os.path.join(repIcon, 'arrow_up.png')
+            icon = QIcon(fichier)
+            self.RBHaut.setIcon(icon)
+            self.RBHaut.setIconSize(QSize(32, 32))
+            fichier2=os.path.join(repIcon, 'arrow_down.png')
+            icon2 = QIcon(fichier2)
+            self.RBBas.setIcon(icon2)
+            fichier3=os.path.join(repIcon, 'file-explorer.png')
+            icon3 = QIcon(fichier3)
+            self.BSelectFichier.setIcon(icon3)
+            self.BSelectFichier.setIconSize(QSize(32, 32))
         self.BSelectFichier.clicked.connect(self.selectInFile)
-
-
-
-  def ajoutLineEdit(self,valeur=None,inInit=False):
-  #------------------------------------------------
-      self.indexDernierLabel=self.indexDernierLabel+1
-      nomLineEdit=self.nomLine+str(self.indexDernierLabel)
-      if hasattr(self,nomLineEdit) :
-         self.indexDernierLabel=self.indexDernierLabel-1
-         return
-
-      nomCustomTuple='TupleCustom'+str(self.nbValeurs)
-      laClasseDuTuple=globals()[nomCustomTuple]
-      nouveauLE=laClasseDuTuple(self.nbValeurs,self.scrollArea,self,self.indexDernierLabel)
-
-      #if self.nbValeurs == 2 : nouveauLE = TupleCustom2(self.nbValeurs,self.scrollArea,self,self.indexDernierLabel)
-      #else                   : nouveauLE = TupleCustom3(self.nbValeurs,self.scrollArea,self,self.indexDernierLabel)
-                 
-      self.verticalLayoutLE.insertWidget(self.indexDernierLabel-1,nouveauLE)
-      setattr(self,nomLineEdit,nouveauLE)
-      if valeur != None : nouveauLE.setValeur(valeur)
-
-      for i in range(self.nbValeurs) :
-          num=i+1
-          nomLineEdit='lineEditVal_'+str(num)
-          lineEditVal=getattr(nouveauLE,nomLineEdit)
-          self.listeAffichageWidget.append(lineEditVal)
-      #self.listeAffichageWidget.append(nouveauLE.lineEditVal_1)
-      #self.listeAffichageWidget.append(nouveauLE.lineEditVal_2)
-      #if self.nbValeurs == 3 : self.listeAffichageWidget.append(nouveauLE.lineEditVal_3)
-
-      self.etablitOrdre()
-
-      # deux lignes pour que le ensureVisible fonctionne
-      self.estVisible=nouveauLE.lineEditVal_1
-      if inInit==False :QTimer.singleShot(1, self.rendVisibleLigne)
-
-  def etablitOrdre(self):
-  # ---------------------
-      i=0
-      while(i +1 < len(self.listeAffichageWidget)):
-         self.listeAffichageWidget[i].setFocusPolicy(Qt.StrongFocus)
-         self.setTabOrder(self.listeAffichageWidget[i],self.listeAffichageWidget[i+1])
-         i=i+1
-
-
-  def setValeurs(self):
-  # ---------------------
-       if self.editor.code == 'PSEN' : self.RBListePush()
-       valeurs=self.node.item.getValeur()
-       min,max=self.node.item.getMinMax()
-       if max == "**" or max > 8 : aCreer= 8
-       else : aCreer=max 
-
-       if valeurs == () or valeurs == None :
-          for i in range(aCreer): self.ajoutLineEdit(inInit=True)
-          return
-
-       for v in valeurs:
-           self.ajoutLineEdit(v,inInit=True)
-
-       for i in range(len(valeurs),aCreer) : self.ajoutLineEdit(inInit=True)
-
-  def rendVisibleLigne(self):
-  # -------------------------
-      QApplication.processEvents()
-      self.estVisible.setFocus(True)
-      self.scrollArea.ensureWidgetVisible(self.estVisible,0,0)
-
-   
-  def changeValeur(self,changeDePlace=False,oblige=True):
-  # -----------------------------------------------------
-      #Pour compatibilite signature
-      #print ('dschangeValeur', self.indexDernierLabel)
-
-      aLeFocus=self.focusWidget()
-      listeComplete=[]
-      libre=False
-      #print (self.indexDernierLabel)
-      for i in range(self.indexDernierLabel) :
-          nom=self.nomLine+str(i+1)
-          courant=getattr(self,nom)
-          valeurTuple=courant.valeur
-          if valeurTuple == None or valeurTuple== "" or valeurTuple==[]: 
-             libre=True
-             continue
-          validite,comm,comm2,listeRetour= self.politique.ajoutTuple(valeurTuple,listeComplete)
-          if not validite:
-             if comm2 != '' : comm += " " + comm2
-             self.editor.afficheInfos(comm+" "+str(self.objSimp.definition.validators.typeDesTuples),Qt.red)
-             return
-          listeComplete.append(tuple(courant.valeur))
-      #print ('listeComplete', listeComplete)
-      if listeComplete == [] : listeComplete=None
-      self.node.item.setValeur(listeComplete)
-
-      if changeDePlace : return
-      min,max=self.node.item.getMinMax()
-      if self.indexDernierLabel == max  : self.editor.afficheInfos(tr('Nb maximum de valeurs atteint'))
-      if self.indexDernierLabel < max and libre==False :
-          self.ajoutLineEdit()
-          self.listeAffichageWidget[-2].setFocus(True)
-      else :
-         try :
-           QApplication.processEvents()
-           w=self.listeAffichageWidget[self.listeAffichageWidget.index(aLeFocus)+1]
-           w.setFocus(True)
-           self.scrollArea.ensureWidgetVisible(w,0,0)
-         except :
-           pass
-          
-  def echange(self,num1,num2):
-       # on donne le focus au a celui ou on a bouge
-       # par convention le 2
-       nomLineEdit=self.nomLine+str(num1)
-       courant=getattr(self,nomLineEdit)
-       valeurAGarder=courant.getValeur()
-       nomLineEdit2=self.nomLine+str(num2)
-       courant2=getattr(self,nomLineEdit2)
-       courant.setText(courant2.text())
-       courant2.setText(valeurAGarder)
-       self.changeValeur(changeDePlace=True)
-       self.numLineEditEnCours=num2
-       self.LineEditEnCours=courant2
-       courant2.lineEditVal_1.setFocus(True)
-
-  def ajoutNValeur(self,liste):
-  #----------------------------
-  # attention quand on charge par un fichier, on ne peut pas se contenter d ajouter N fois 1 valeur
-  # car alors le temps de verification devient prohibitif  reconstructu=ion et verification a 
-  # chaque valeur. d ou l ajout de ajoutNTuple a politique plusieurs
+
+
+
+
+    def ajoutLineEdit(self,valeur=None,inInit=False):
+    #------------------------------------------------
+        self.indexDernierLabel=self.indexDernierLabel+1
+        nomLineEdit=self.nomLine+str(self.indexDernierLabel)
+        if hasattr(self,nomLineEdit) :
+            self.indexDernierLabel=self.indexDernierLabel-1
+            return
+
+        nomCustomTuple='TupleCustom'+str(self.nbValeurs)
+        laClasseDuTuple=globals()[nomCustomTuple]
+        nouveauLE=laClasseDuTuple(self.nbValeurs,self.scrollArea,self,self.indexDernierLabel)
+
+        #if self.nbValeurs == 2 : nouveauLE = TupleCustom2(self.nbValeurs,self.scrollArea,self,self.indexDernierLabel)
+        #else                   : nouveauLE = TupleCustom3(self.nbValeurs,self.scrollArea,self,self.indexDernierLabel)
+
+        self.verticalLayoutLE.insertWidget(self.indexDernierLabel-1,nouveauLE)
+        setattr(self,nomLineEdit,nouveauLE)
+        if valeur != None : nouveauLE.setValeur(valeur)
+
+        for i in range(self.nbValeurs) :
+            num=i+1
+            nomLineEdit='lineEditVal'+str(num)
+            lineEditVal=getattr(nouveauLE,nomLineEdit)
+            self.listeAffichageWidget.append(lineEditVal)
+        #self.listeAffichageWidget.append(nouveauLE.lineEditVal1)
+        #self.listeAffichageWidget.append(nouveauLE.lineEditVal2)
+        #if self.nbValeurs == 3 : self.listeAffichageWidget.append(nouveauLE.lineEditVal3)
+
+        self.etablitOrdre()
+
+        # deux lignes pour que le ensureVisible fonctionne
+        self.estVisible=nouveauLE.lineEditVal1
+        if inInit==False :QTimer.singleShot(1, self.rendVisibleLigne)
+
+    def etablitOrdre(self):
+    # ---------------------
+        i=0
+        while(i +1 < len(self.listeAffichageWidget)):
+            self.listeAffichageWidget[i].setFocusPolicy(Qt.StrongFocus)
+            self.setTabOrder(self.listeAffichageWidget[i],self.listeAffichageWidget[i+1])
+            i=i+1
+
+
+    def setValeurs(self):
+    # ---------------------
+        if self.editor.code == 'PSEN' : self.RBListePush()
+        valeurs=self.node.item.getValeur()
+        min,max=self.node.item.getMinMax()
+        if max == "**" or max > 8 : aCreer= 8
+        else : aCreer=max
+
+        if valeurs == () or valeurs == None :
+            for i in range(aCreer): self.ajoutLineEdit(inInit=True)
+            return
+
+        for v in valeurs:
+            self.ajoutLineEdit(v,inInit=True)
+
+        for i in range(len(valeurs),aCreer) : self.ajoutLineEdit(inInit=True)
+
+    def rendVisibleLigne(self):
+    # -------------------------
+        QApplication.processEvents()
+        self.estVisible.setFocus(True)
+        self.scrollArea.ensureWidgetVisible(self.estVisible,0,0)
+
+
+    def changeValeur(self,changeDePlace=False,oblige=True):
+    # -----------------------------------------------------
+        #Pour compatibilite signature
+        #print ('dschangeValeur', self.indexDernierLabel)
+
+        aLeFocus=self.focusWidget()
+        listeComplete=[]
+        libre=False
+        #print (self.indexDernierLabel)
+        for i in range(self.indexDernierLabel) :
+            nom=self.nomLine+str(i+1)
+            courant=getattr(self,nom)
+            valeurTuple=courant.valeur
+            if valeurTuple == None or valeurTuple== "" or valeurTuple==[]:
+                libre=True
+                continue
+            validite,comm,comm2,listeRetour= self.politique.ajoutTuple(valeurTuple,listeComplete)
+            if not validite:
+                if comm2 != '' : comm += " " + comm2
+                self.editor.afficheInfos(comm+" "+str(self.objSimp.definition.validators.typeDesTuples),Qt.red)
+                return
+            listeComplete.append(tuple(courant.valeur))
+        #print ('listeComplete', listeComplete)
+        if listeComplete == [] : listeComplete=None
+        self.node.item.setValeur(listeComplete)
+
+        if changeDePlace : return
+        min,max=self.node.item.getMinMax()
+        if self.indexDernierLabel == max  : self.editor.afficheInfos(tr('Nb maximum de valeurs atteint'))
+        if self.indexDernierLabel < max and libre==False :
+            self.ajoutLineEdit()
+            self.listeAffichageWidget[-2].setFocus(True)
+        else :
+            try :
+                QApplication.processEvents()
+                w=self.listeAffichageWidget[self.listeAffichageWidget.index(aLeFocus)+1]
+                w.setFocus(True)
+                self.scrollArea.ensureWidgetVisible(w,0,0)
+            except :
+                pass
+
+    def echange(self,num1,num2):
+        # on donne le focus au a celui ou on a bouge
+        # par convention le 2
+        nomLineEdit=self.nomLine+str(num1)
+        courant=getattr(self,nomLineEdit)
+        valeurAGarder=courant.getValeur()
+        nomLineEdit2=self.nomLine+str(num2)
+        courant2=getattr(self,nomLineEdit2)
+        courant.setText(courant2.text())
+        courant2.setText(valeurAGarder)
+        self.changeValeur(changeDePlace=True)
+        self.numLineEditEnCours=num2
+        self.lineEditEnCours=courant2
+        courant2.lineEditVal1.setFocus(True)
+
+    def ajoutNValeur(self,liste):
+    #----------------------------
+    # attention quand on charge par un fichier, on ne peut pas se contenter d ajouter N fois 1 valeur
+    # car alors le temps de verification devient prohibitif  reconstructu=ion et verification a
+    # chaque valeur. d ou l ajout de ajoutNTuple a politique plusieurs
 
         if len(liste)%self.nbValeurs != 0 :
-           texte="Nombre incorrect de valeurs"
-           self.editor.afficheInfos(tr(texte),Qt.red)
-           return
+            texte="Nombre incorrect de valeurs"
+            self.editor.afficheInfos(tr(texte),Qt.red)
+            return
 
         i=0
         longueur=len(liste)//self.nbValeurs
@@ -428,15 +428,15 @@ class MonWidgetPlusieursTuple(Feuille,GereListe):
         if self.objSimp.valeur == None : listeComplete=listeFormatee
         else : listeComplete =self.objSimp.valeur + listeFormatee
 
-        if len(listeComplete) > max : 
-           texte=tr("Nombre maximum de valeurs ")+str(max)+tr(" atteint")
-           self.editor.afficheInfos(texte,Qt.red)
-           return
+        if len(listeComplete) > max :
+            texte=tr("Nombre maximum de valeurs ")+str(max)+tr(" atteint")
+            self.editor.afficheInfos(texte,Qt.red)
+            return
 
         validite,comm,comm2,listeRetour= self.politique.ajoutNTuple(listeComplete)
-        if not validite : 
-           self.editor.afficheInfos(comm+comm2,Qt.red)
-           return
+        if not validite :
+            self.editor.afficheInfos(comm+comm2,Qt.red)
+            return
 
         # on calcule le dernier lineedit rempli avant de changer la valeur
         if self.objSimp.valeur != None : indexDernierRempli=len(self.objSimp.valeur)
@@ -446,101 +446,100 @@ class MonWidgetPlusieursTuple(Feuille,GereListe):
 
         while ( i < len(liste) ) :
             try :
-              t=tuple(liste[i:i+self.nbValeurs])
+                t=tuple(liste[i:i+self.nbValeurs])
             except:
-              t=tuple(liste[i:len(liste)])
+                t=tuple(liste[i:len(liste)])
             i=i+self.nbValeurs
             if indexDernierRempli < self.indexDernierLabel:
 
-               nomLEARemplir=self.nomLine+str(indexDernierRempli+1)
-               LEARemplir=getattr(self,nomLEARemplir) 
-               for n in range(self.nbValeurs) :
-                  nomLineEdit='lineEditVal_'+str(n+1)
-                  lineEditVal=getattr(LEARemplir,nomLineEdit)
-                  lineEditVal.setText(str(t[n]))
-            else : 
-               # ne pas appeler ajoutLineEdit(t,False ) pb de boucle pb du a etablitOrdre et a listeWidgetAffichage qui bouge
-               self.indexDernierLabel=self.indexDernierLabel+1
-               nomLineEdit=self.nomLine+str(self.indexDernierLabel)
-
-               nomCustomTuple='TupleCustom'+str(self.nbValeurs)
-               laClasseDuTuple=globals()[nomCustomTuple]
-               nouveauLE=laClasseDuTuple(self.nbValeurs,self.scrollArea,self,self.indexDernierLabel)
-                 
-               self.verticalLayoutLE.insertWidget(self.indexDernierLabel-1,nouveauLE)
-               setattr(self,nomLineEdit,nouveauLE)
-               nouveauLE.setValeur(t)
-
-               for n in range(self.nbValeurs) :
-                  nomLineEdit='lineEditVal_'+str(n+1)
-                  lineEditVal=getattr(nouveauLE,nomLineEdit)
-                  self.listeAffichageWidget.append(lineEditVal)
+                nomLEARemplir=self.nomLine+str(indexDernierRempli+1)
+                LEARemplir=getattr(self,nomLEARemplir)
+                for n in range(self.nbValeurs) :
+                    nomLineEdit='lineEditVal'+str(n+1)
+                    lineEditVal=getattr(LEARemplir,nomLineEdit)
+                    lineEditVal.setText(str(t[n]))
+            else :
+                # ne pas appeler ajoutLineEdit(t,False ) pb de boucle pb du a etablitOrdre et a listeWidgetAffichage qui bouge
+                self.indexDernierLabel=self.indexDernierLabel+1
+                nomLineEdit=self.nomLine+str(self.indexDernierLabel)
+
+                nomCustomTuple='TupleCustom'+str(self.nbValeurs)
+                laClasseDuTuple=globals()[nomCustomTuple]
+                nouveauLE=laClasseDuTuple(self.nbValeurs,self.scrollArea,self,self.indexDernierLabel)
+
+                self.verticalLayoutLE.insertWidget(self.indexDernierLabel-1,nouveauLE)
+                setattr(self,nomLineEdit,nouveauLE)
+                nouveauLE.setValeur(t)
+
+                for n in range(self.nbValeurs) :
+                    nomLineEdit='lineEditVal'+str(n+1)
+                    lineEditVal=getattr(nouveauLE,nomLineEdit)
+                    self.listeAffichageWidget.append(lineEditVal)
             indexDernierRempli = indexDernierRempli+1
 
         self.etablitOrdre()
 
-        
-
-  def RBListePush(self):
-  #----------------------
-  # PN a rendre generique avec un truc tel prerempli
-  # pour l instant specifique PSEN
-
-      if self.editor.code == 'VP' : return
-      if self.objSimp.valeur != None and self.objSimp.valeur != [] : return
-      if not hasattr(self.editor.readercata.cata,'sd_ligne') : self.editor.readercata.cata.sd_ligne=None
-      if not hasattr(self.editor.readercata.cata,'sd_generateur') : self.editor.readercata.cata.sd_generateur=None
-      if not hasattr(self.editor.readercata.cata,'sd_transfo') : self.editor.readercata.cata.sd_transfo=None
-      if not hasattr(self.editor.readercata.cata,'sd_charge') : self.editor.readercata.cata.sd_charge=None
-      if not hasattr(self.editor.readercata.cata,'sd_moteur') : self.editor.readercata.cata.sd_moteur=None
-      if self.objSimp.definition.validators.typeDesTuples[0]==self.editor.readercata.cata.sd_ligne :
-         val=[]
-         if  hasattr(self.objSimp.jdc,'LineDico'):
-          for k in self.objSimp.jdc.LineDico :
-              try :
-               valeur=self.objSimp.jdc.getConcept(k)
-               val.append((valeur,0))
-              except :
-               pass
-         self.node.item.setValeur(val)
-      if self.objSimp.definition.validators.typeDesTuples[0]==self.editor.readercata.cata.sd_generateur :
-         val=[]
-         if  hasattr(self.objSimp.jdc,'MachineDico'):
-          for k in self.objSimp.jdc.MachineDico :
-              try :
-               valeur=self.objSimp.jdc.getConcept(k)
-               val.append((valeur,0))
-              except :
-               pass
-         self.node.item.setValeur(val)
-      if self.objSimp.definition.validators.typeDesTuples[0]==self.editor.readercata.cata.sd_transfo :
-         val=[]
-         if  hasattr(self.objSimp.jdc,'TransfoDico'):
-          for k in self.objSimp.jdc.TransfoDico :
-              try :
-               valeur=self.objSimp.jdc.getConcept(k)
-               val.append((valeur,0))
-              except :
-               pass
-         self.node.item.setValeur(val)
-      if self.objSimp.definition.validators.typeDesTuples[0]==self.editor.readercata.cata.sd_charge :
-         val=[]
-         if  hasattr(self.objSimp.jdc,'LoadDico'):
-          for k in self.objSimp.jdc.LoadDico :
-              try :
-               valeur=self.objSimp.jdc.getConcept(k)
-               val.append((valeur,0))
-              except :
-               pass
-         self.node.item.setValeur(val)
-      if self.objSimp.definition.validators.typeDesTuples[0]==self.editor.readercata.cata.sd_moteur :
-         val=[]
-         if  hasattr(self.objSimp.jdc,'MotorDico'):
-          for k in self.objSimp.jdc.MotorDico :
-              try :
-               valeur=self.objSimp.jdc.getConcept(k)
-               val.append((valeur,0))
-              except :
-               pass
-         self.node.item.setValeur(val)
 
+
+    def RBListePush(self):
+    #----------------------
+    # PN a rendre generique avec un truc tel prerempli
+    # pour l instant specifique PSEN
+
+        if self.editor.code == 'VP' : return
+        if self.objSimp.valeur != None and self.objSimp.valeur != [] : return
+        if not hasattr(self.editor.readercata.cata,'sd_ligne') : self.editor.readercata.cata.sd_ligne=None
+        if not hasattr(self.editor.readercata.cata,'sd_generateur') : self.editor.readercata.cata.sd_generateur=None
+        if not hasattr(self.editor.readercata.cata,'sd_transfo') : self.editor.readercata.cata.sd_transfo=None
+        if not hasattr(self.editor.readercata.cata,'sd_charge') : self.editor.readercata.cata.sd_charge=None
+        if not hasattr(self.editor.readercata.cata,'sd_moteur') : self.editor.readercata.cata.sd_moteur=None
+        if self.objSimp.definition.validators.typeDesTuples[0]==self.editor.readercata.cata.sd_ligne :
+            val=[]
+            if  hasattr(self.objSimp.jdc,'LineDico'):
+                for k in self.objSimp.jdc.LineDico :
+                    try :
+                        valeur=self.objSimp.jdc.getConcept(k)
+                        val.append((valeur,0))
+                    except :
+                        pass
+            self.node.item.setValeur(val)
+        if self.objSimp.definition.validators.typeDesTuples[0]==self.editor.readercata.cata.sd_generateur :
+            val=[]
+            if  hasattr(self.objSimp.jdc,'MachineDico'):
+                for k in self.objSimp.jdc.MachineDico :
+                    try :
+                        valeur=self.objSimp.jdc.getConcept(k)
+                        val.append((valeur,0))
+                    except :
+                        pass
+            self.node.item.setValeur(val)
+        if self.objSimp.definition.validators.typeDesTuples[0]==self.editor.readercata.cata.sd_transfo :
+            val=[]
+            if  hasattr(self.objSimp.jdc,'TransfoDico'):
+                for k in self.objSimp.jdc.TransfoDico :
+                    try :
+                        valeur=self.objSimp.jdc.getConcept(k)
+                        val.append((valeur,0))
+                    except :
+                        pass
+            self.node.item.setValeur(val)
+        if self.objSimp.definition.validators.typeDesTuples[0]==self.editor.readercata.cata.sd_charge :
+            val=[]
+            if  hasattr(self.objSimp.jdc,'LoadDico'):
+                for k in self.objSimp.jdc.LoadDico :
+                    try :
+                        valeur=self.objSimp.jdc.getConcept(k)
+                        val.append((valeur,0))
+                    except :
+                        pass
+            self.node.item.setValeur(val)
+        if self.objSimp.definition.validators.typeDesTuples[0]==self.editor.readercata.cata.sd_moteur :
+            val=[]
+            if  hasattr(self.objSimp.jdc,'MotorDico'):
+                for k in self.objSimp.jdc.MotorDico :
+                    try :
+                        valeur=self.objSimp.jdc.getConcept(k)
+                        val.append((valeur,0))
+                    except :
+                        pass
+            self.node.item.setValeur(val)
diff --git a/InterfaceQT4/monWidgetPlusieursTuple2.py b/InterfaceQT4/monWidgetPlusieursTuple2.py
deleted file mode 100644 (file)
index 3c48b18..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2021   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-# Modules Python
-from __future__ import absolute_import
-import types,os
-
-# Modules Eficas
-
-from .feuille                  import Feuille
-from .monWidgetPlusieursTuple  import MonWidgetPlusieursTuple 
-from desWidgetPlusieursTuple  import Ui_WidgetPlusieursTuple
-
-
-class MonWidgetPlusieursTuple2 (Ui_WidgetPlusieursTuple,MonWidgetPlusieursTuple):
-
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
-        self.nbValeurs=2
-        MonWidgetPlusieursTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-      
diff --git a/InterfaceQT4/monWidgetPlusieursTuple3.py b/InterfaceQT4/monWidgetPlusieursTuple3.py
deleted file mode 100644 (file)
index 5c39773..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2021   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-# Modules Python
-from __future__ import absolute_import
-import types,os
-
-# Modules Eficas
-
-from .feuille                  import Feuille
-from .monWidgetPlusieursTuple  import MonWidgetPlusieursTuple 
-from desWidgetPlusieursTuple  import Ui_WidgetPlusieursTuple 
-
-
-class MonWidgetPlusieursTuple3 (Ui_WidgetPlusieursTuple,MonWidgetPlusieursTuple):
-
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
-        self.nbValeurs=3
-        MonWidgetPlusieursTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-      
diff --git a/InterfaceQT4/monWidgetPlusieursTupleAvril11.py b/InterfaceQT4/monWidgetPlusieursTupleAvril11.py
deleted file mode 100644 (file)
index 8398051..0000000
+++ /dev/null
@@ -1,495 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2021   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-# Modules Python
-from __future__ import absolute_import
-try :
-   from builtins import str
-   from builtins import range
-   from builtins import object
-except : pass
-
-import types,os,sys
-
-from six.moves import range
-from PyQt5.QtWidgets  import QFrame,QApplication, QFrame, QWidget
-from PyQt5.QtGui      import QIcon
-from PyQt5.QtCore     import QSize, Qt, QTimer
-
-from Extensions.i18n import tr
-
-
-from InterfaceQT4.feuille               import Feuille
-from InterfaceQT4.politiquesValidation  import PolitiquePlusieurs
-from InterfaceQT4.qtSaisie              import SaisieValeur
-from InterfaceQT4.gereListe             import GereListe
-from InterfaceQT4.gereListe             import LECustom
-from Tuple2                             import Ui_Tuple2
-from Tuple3                             import Ui_Tuple3
-from Tuple4                             import Ui_Tuple4
-from Tuple5                             import Ui_Tuple5
-from Tuple6                             import Ui_Tuple6
-from Tuple7                             import Ui_Tuple7
-from Tuple8                             import Ui_Tuple8
-from Tuple9                             import Ui_Tuple9
-from Tuple10                            import Ui_Tuple10
-
-
-#--------------------------
-class TupleCustom(object) :
-#--------------------------
-
-  def __init__(self,tailleTuple,parent,parentQt,index):
-  #-------------------------------------------------
-      QWidget.__init__(self,parent)
-      self.setupUi(self)
-      self.tailleTuple=tailleTuple
-      self.parent=parent
-      self.parentQt=parentQt
-      self.valeur=None
-      self.index=index
-      self.inFocusOutEvent=False
-
-
-      for i in range(self.tailleTuple):
-         nomLE="lineEditVal_"+str(i+1)
-         courant=getattr(self,nomLE)
-         courant.num=index
-         courant.dansUnTuple=True
-         courant.numDsLaListe = i+1
-         courant.tupleCustomParent=self
-
-
-
-  def setValeur(self,value):
-  #----------------------
-
-      listeVal=[]
-      valeurNulle=True
-      for i in range(self.tailleTuple):
-         nomLE="lineEditVal_"+str(i+1)
-         courant=getattr(self,nomLE)
-         try :
-           if str(value[i]) != "" : valeurNulle=False
-         except :
-           pass
-
-         try :
-           courant.setText(str(value[i]))
-         except :
-           courant.setText("")
-         val=str(courant.text())
-         try :
-           valeur=eval(val,{})
-         except :
-           try :
-             d=self.parentQt.objSimp.jdc.getContexteAvant(self.parentQt.objSimp. etape)
-             valeur=eval(val,d)
-           except :
-             valeur=val
-         listeVal.append(valeur)
-      if  valeurNulle == True : self.valeur=None
-      else                    : self.valeur=listeVal
-
-  def getValeur(self):
-  #----------------------
-      return self.valeur
-
-  def text(self):
-  #--------------
-      return self.valeur
-
-  def setText(self,value):
-  #-----------------------
-      self.setValeur(value)
-
-  def clean(self):
-  #-------------------
-      self.valeur=None
-      for i in range(self.tailleTuple):
-         nomLE="lineEditVal_"+str(i+1)
-         courant=getattr(self,nomLE)
-         courant.setText("")
-
-  def finCommentaire(self):
-  #-------------------
-        return self.finCommentaireListe()
-
-
-#-------------------------------------------------
-class TupleCustom2(QWidget,Ui_Tuple2,TupleCustom):
-#-------------------------------------------------
-  def __init__(self,tailleTuple,parent,parentQt,index):
-  #-------------------
-      TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
-
-#-------------------------------------------------
-class TupleCustom3(QWidget,Ui_Tuple3,TupleCustom):
-#-------------------------------------------------
-  def __init__(self,tailleTuple,parent,parentQt,index):
-  #-----------------------------------------------------
-      TupleCustom. __init__(self,tailleTuple,parent,parentQt,index)
-      
-#-------------------------------------------------
-class TupleCustom3(QWidget,Ui_Tuple3,TupleCustom):
-#-------------------------------------------------
-  def __init__(self,tailleTuple,parent,parentQt,index):
-  #-------------------
-      TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
-
-#-------------------------------------------------
-class TupleCustom4(QWidget,Ui_Tuple4,TupleCustom):
-#-------------------------------------------------
-  def __init__(self,tailleTuple,parent,parentQt,index):
-  #-------------------
-      TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
-
-#-------------------------------------------------
-class TupleCustom5(QWidget,Ui_Tuple5,TupleCustom):
-#-------------------------------------------------
-  def __init__(self,tailleTuple,parent,parentQt,index):
-  #-------------------
-      TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
-
-#-------------------------------------------------
-class TupleCustom6(QWidget,Ui_Tuple6,TupleCustom):
-#-------------------------------------------------
-  def __init__(self,tailleTuple,parent,parentQt,index):
-  #-------------------
-      TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
-
-#-------------------------------------------------
-class TupleCustom7(QWidget,Ui_Tuple7,TupleCustom):
-#-------------------------------------------------
-  def __init__(self,tailleTuple,parent,parentQt,index):
-  #-------------------
-      TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
-
-#-------------------------------------------------
-class TupleCustom8(QWidget,Ui_Tuple8,TupleCustom):
-#-------------------------------------------------
-  def __init__(self,tailleTuple,parent,parentQt,index):
-  #-------------------
-      TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
-
-#-------------------------------------------------
-class TupleCustom9(QWidget,Ui_Tuple9,TupleCustom):
-#-------------------------------------------------
-  def __init__(self,tailleTuple,parent,parentQt,index):
-  #-------------------
-      TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
-
-#-------------------------------------------------
-class TupleCustom10(QWidget,Ui_Tuple10,TupleCustom):
-#-------------------------------------------------
-  def __init__(self,tailleTuple,parent,parentQt,index):
-  #-------------------
-      TupleCustom.__init__(self,tailleTuple,parent,parentQt,index)
-
-
-
-
-
-# -------------------------------------------- #
-class MonWidgetPlusieursTuple(Feuille,GereListe):
-# -------------------------------------------- #
-
-  def __init__(self, node, monSimpDef, nom, objSimp, parentQt, commande):
-  #-----------------------------------------------------
-
-        self.indexDernierLabel=0
-        self.numLineEditEnCours=0
-        self.nomLine="TupleVal"
-        self.listeAffichageWidget=[]
-        Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-        GereListe.__init__(self)
-        self.finCommentaireListe()
-        self.politique=PolitiquePlusieurs(self.node,self.editor)
-        self.parentQt.commandesLayout.insertWidget(-1,self)
-
-        if sys.platform[0:5]!="linux":
-          repIcon=self.node.editor.appliEficas.repIcon
-          fichier=os.path.join(repIcon, 'arrow_up.png')
-          icon = QIcon(fichier)
-          self.RBHaut.setIcon(icon)
-          self.RBHaut.setIconSize(QSize(32, 32))
-          fichier2=os.path.join(repIcon, 'arrow_down.png')
-          icon2 = QIcon(fichier2)
-          self.RBBas.setIcon(icon2)
-          fichier3=os.path.join(repIcon, 'file-explorer.png')
-          icon3 = QIcon(fichier3)
-          self.BSelectFichier.setIcon(icon3)
-          self.BSelectFichier.setIconSize(QSize(32, 32))
-        self.BSelectFichier.clicked.connect(self.selectInFile)
-
-
-
-  def ajoutLineEdit(self,valeur=None,inInit=False):
-  #------------------------------------------------
-      self.indexDernierLabel=self.indexDernierLabel+1
-      nomLineEdit=self.nomLine+str(self.indexDernierLabel)
-      if hasattr(self,nomLineEdit) :
-         self.indexDernierLabel=self.indexDernierLabel-1
-         return
-
-      nomCustomTuple='TupleCustom'+str(self.nbValeurs)
-      laClasseDuTuple=globals()[nomCustomTuple]
-      nouveauLE=laClasseDuTuple(self.nbValeurs,self.scrollArea,self,self.indexDernierLabel)
-
-      #if self.nbValeurs == 2 : nouveauLE = TupleCustom2(self.nbValeurs,self.scrollArea,self,self.indexDernierLabel)
-      #else                   : nouveauLE = TupleCustom3(self.nbValeurs,self.scrollArea,self,self.indexDernierLabel)
-                 
-      self.verticalLayoutLE.insertWidget(self.indexDernierLabel-1,nouveauLE)
-      setattr(self,nomLineEdit,nouveauLE)
-      if valeur != None : nouveauLE.setValeur(valeur)
-
-      for i in range(self.nbValeurs) :
-          num=i+1
-          nomLineEdit='lineEditVal_'+str(num)
-          lineEditVal=getattr(nouveauLE,nomLineEdit)
-          self.listeAffichageWidget.append(lineEditVal)
-      #self.listeAffichageWidget.append(nouveauLE.lineEditVal_1)
-      #self.listeAffichageWidget.append(nouveauLE.lineEditVal_2)
-      #if self.nbValeurs == 3 : self.listeAffichageWidget.append(nouveauLE.lineEditVal_3)
-
-      self.etablitOrdre()
-
-      # deux lignes pour que le ensureVisible fonctionne
-      self.estVisible=nouveauLE.lineEditVal_1
-      if inInit==False :QTimer.singleShot(1, self.rendVisibleLigne)
-
-  def etablitOrdre(self):
-  # ---------------------
-      i=0
-      while(i +1 < len(self.listeAffichageWidget)):
-         self.listeAffichageWidget[i].setFocusPolicy(Qt.StrongFocus)
-         self.setTabOrder(self.listeAffichageWidget[i],self.listeAffichageWidget[i+1])
-         i=i+1
-
-
-  def setValeurs(self):
-  # ---------------------
-       if self.editor.code == 'PSEN' : self.RBListePush()
-       valeurs=self.node.item.getValeur()
-       min,max=self.node.item.getMinMax()
-       if max == "**" or max > 8 : aCreer= 8
-       else : aCreer=max 
-
-       if valeurs == () or valeurs == None :
-          for i in range(aCreer): self.ajoutLineEdit(inInit=True)
-          return
-
-       for v in valeurs:
-           self.ajoutLineEdit(v,inInit=True)
-
-       for i in range(len(valeurs),aCreer) : self.ajoutLineEdit(inInit=True)
-
-  def rendVisibleLigne(self):
-  # -------------------------
-      QApplication.processEvents()
-      self.estVisible.setFocus(True)
-      self.scrollArea.ensureWidgetVisible(self.estVisible,0,0)
-
-   
-  def changeValeur(self,changeDePlace=False,oblige=True):
-  # -----------------------------------------------------
-      #Pour compatibilite signature
-
-      self.aEuLeFocus=False # set pour le leaveEvent voir gereListe
-      aLeFocus=self.focusWidget()
-      listeComplete=[]
-      libre=False
-      #print ('ds changeValeur', self.indexDernierLabel)
-      for i in range(self.indexDernierLabel) :
-          #print (i)
-          nom=self.nomLine+str(i+1)
-          #print (nom)
-          courant=getattr(self,nom)
-          #print (courant)
-          valeurTuple=courant.valeur
-          #print (valeurTuple)
-          if valeurTuple == None or valeurTuple== "": 
-             libre=True
-             continue
-          print (i, valeurTuple)
-          validite,comm,comm2,listeRetour= self.politique.ajoutTuple(valeurTuple,listeComplete)
-          if not validite:
-             print (validite,comm,comm2)
-             if comm2 != '' : comm += " " + comm2
-             print (validite,comm,comm2)
-             self.editor.afficheInfos(comm+" "+str(self.objSimp.definition.validators.typeDesTuples),Qt.red)
-             print (comm+" "+str(self.objSimp.definition.validators.typeDesTuples),Qt.red)
-             return
-          listeComplete.append(tuple(courant.valeur))
-      if listeComplete == [] : listeComplete=None
-      self.node.item.setValeur(listeComplete)
-
-      if changeDePlace : return
-      min,max=self.node.item.getMinMax()
-      if self.indexDernierLabel == max  : self.editor.afficheInfos(tr('Nb maximum de valeurs atteint'))
-      if self.indexDernierLabel < max and libre==False :
-          self.ajoutLineEdit()
-          self.listeAffichageWidget[-2].setFocus(True)
-      else :
-         try :
-           QApplication.processEvents()
-           w=self.listeAffichageWidget[self.listeAffichageWidget.index(aLeFocus)+1]
-           w.setFocus(True)
-           self.scrollArea.ensureWidgetVisible(w,0,0)
-         except :
-           pass
-          
-  def ajoutNValeur(self,liste):
-  #----------------------------
-  # attention quand on charge par un fichier, on ne peut pas se contenter d ajouter N fois 1 valeur
-  # car alors le temps de verification devient prohibitif  reconstructu=ion et verification a 
-  # chaque valeur. d ou l ajout de ajoutNTuple a politique plusieurs
-
-        if len(liste)%self.nbValeurs != 0 :
-           texte="Nombre incorrect de valeurs"
-           self.editor.afficheInfos(tr(texte),Qt.red)
-           return
-
-        i=0
-        longueur=len(liste)//self.nbValeurs
-        increment=self.nbValeurs
-        listeFormatee=[liste[k*increment:(k+1)*increment] for k in range(longueur)]
-        listeFormatee=tuple(listeFormatee)
-
-        min,max=self.node.item.getMinMax()
-        if self.objSimp.valeur == None : listeComplete=listeFormatee
-        else : listeComplete =self.objSimp.valeur + listeFormatee
-
-        if len(listeComplete) > max : 
-           texte=tr("Nombre maximum de valeurs ")+str(max)+tr(" atteint")
-           self.editor.afficheInfos(texte,Qt.red)
-           return
-
-        validite,comm,comm2,listeRetour= self.politique.ajoutNTuple(listeComplete)
-        if not validite : 
-           self.editor.afficheInfos(texte,Qt.red)
-           return
-
-        # on calcule le dernier lineedit rempli avant de changer la valeur
-        if self.objSimp.valeur != None : indexDernierRempli=len(self.objSimp.valeur)
-        else : indexDernierRempli=0
-
-        self.politique.recordValeur(listeComplete)
-
-        while ( i < len(liste) ) :
-            try :
-              t=tuple(liste[i:i+self.nbValeurs])
-            except:
-              t=tuple(liste[i:len(liste)])
-            i=i+self.nbValeurs
-            if indexDernierRempli < self.indexDernierLabel:
-
-               nomLEARemplir=self.nomLine+str(indexDernierRempli+1)
-               LEARemplir=getattr(self,nomLEARemplir) 
-               for n in range(self.nbValeurs) :
-                  nomLineEdit='lineEditVal_'+str(n+1)
-                  lineEditVal=getattr(LEARemplir,nomLineEdit)
-                  lineEditVal.setText(str(t[n]))
-            else : 
-               # ne pas appeler ajoutLineEdit(t,False ) pb de boucle pb du a etablitOrdre et a listeWidgetAffichage qui bouge
-               self.indexDernierLabel=self.indexDernierLabel+1
-               nomLineEdit=self.nomLine+str(self.indexDernierLabel)
-
-               nomCustomTuple='TupleCustom'+str(self.nbValeurs)
-               laClasseDuTuple=globals()[nomCustomTuple]
-               nouveauLE=laClasseDuTuple(self.nbValeurs,self.scrollArea,self,self.indexDernierLabel)
-                 
-               self.verticalLayoutLE.insertWidget(self.indexDernierLabel-1,nouveauLE)
-               setattr(self,nomLineEdit,nouveauLE)
-               nouveauLE.setValeur(t)
-
-               for n in range(self.nbValeurs) :
-                  nomLineEdit='lineEditVal_'+str(n+1)
-                  lineEditVal=getattr(nouveauLE,nomLineEdit)
-                  self.listeAffichageWidget.append(lineEditVal)
-            indexDernierRempli = indexDernierRempli+1
-
-        self.etablitOrdre()
-
-        
-
-  def RBListePush(self):
-  #----------------------
-  # PN a rendre generique avec un truc tel prerempli
-  # pour l instant specifique PSEN
-
-      if self.editor.code == 'VP' : return
-      if self.objSimp.valeur != None and self.objSimp.valeur != [] : return
-      if not hasattr(self.editor.readercata.cata,'sd_ligne') : self.editor.readercata.cata.sd_ligne=None
-      if not hasattr(self.editor.readercata.cata,'sd_generateur') : self.editor.readercata.cata.sd_generateur=None
-      if not hasattr(self.editor.readercata.cata,'sd_transfo') : self.editor.readercata.cata.sd_transfo=None
-      if not hasattr(self.editor.readercata.cata,'sd_charge') : self.editor.readercata.cata.sd_charge=None
-      if not hasattr(self.editor.readercata.cata,'sd_moteur') : self.editor.readercata.cata.sd_moteur=None
-      if self.objSimp.definition.validators.typeDesTuples[0]==self.editor.readercata.cata.sd_ligne :
-         val=[]
-         if  hasattr(self.objSimp.jdc,'LineDico'):
-          for k in self.objSimp.jdc.LineDico :
-              try :
-               valeur=self.objSimp.jdc.getConcept(k)
-               val.append((valeur,0))
-              except :
-               pass
-         self.node.item.setValeur(val)
-      if self.objSimp.definition.validators.typeDesTuples[0]==self.editor.readercata.cata.sd_generateur :
-         val=[]
-         if  hasattr(self.objSimp.jdc,'MachineDico'):
-          for k in self.objSimp.jdc.MachineDico :
-              try :
-               valeur=self.objSimp.jdc.getConcept(k)
-               val.append((valeur,0))
-              except :
-               pass
-         self.node.item.setValeur(val)
-      if self.objSimp.definition.validators.typeDesTuples[0]==self.editor.readercata.cata.sd_transfo :
-         val=[]
-         if  hasattr(self.objSimp.jdc,'TransfoDico'):
-          for k in self.objSimp.jdc.TransfoDico :
-              try :
-               valeur=self.objSimp.jdc.getConcept(k)
-               val.append((valeur,0))
-              except :
-               pass
-         self.node.item.setValeur(val)
-      if self.objSimp.definition.validators.typeDesTuples[0]==self.editor.readercata.cata.sd_charge :
-         val=[]
-         if  hasattr(self.objSimp.jdc,'LoadDico'):
-          for k in self.objSimp.jdc.LoadDico :
-              try :
-               valeur=self.objSimp.jdc.getConcept(k)
-               val.append((valeur,0))
-              except :
-               pass
-         self.node.item.setValeur(val)
-      if self.objSimp.definition.validators.typeDesTuples[0]==self.editor.readercata.cata.sd_moteur :
-         val=[]
-         if  hasattr(self.objSimp.jdc,'MotorDico'):
-          for k in self.objSimp.jdc.MotorDico :
-              try :
-               valeur=self.objSimp.jdc.getConcept(k)
-               val.append((valeur,0))
-              except :
-               pass
-         self.node.item.setValeur(val)
-
index 42551488e8e35ea1f6db6e4e5deeb17a297ff7a3..c68c7c7213b7eb2dd9ac97eb9ef37614fe16b681 100644 (file)
@@ -24,50 +24,51 @@ import types,os
 # Modules Eficas
 
 from .feuille                  import Feuille
-from .monWidgetPlusieursTuple  import MonWidgetPlusieursTuple 
-from desWidgetPlusieursTuple  import Ui_WidgetPlusieursTuple 
+from .monWidgetPlusieursTuple  import MonWidgetPlusieursTuple
+from desWidgetPlusieursTuple  import Ui_WidgetPlusieursTuple
 
 
 class MonWidgetPlusieursTuple2 (Ui_WidgetPlusieursTuple,MonWidgetPlusieursTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=2
         MonWidgetPlusieursTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-      
+
 class MonWidgetPlusieursTuple3 (Ui_WidgetPlusieursTuple,MonWidgetPlusieursTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=3
+        MonWidgetPlusieursTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
 
 class MonWidgetPlusieursTuple4 (Ui_WidgetPlusieursTuple,MonWidgetPlusieursTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=4
+        MonWidgetPlusieursTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
 
 class MonWidgetPlusieursTuple5 (Ui_WidgetPlusieursTuple,MonWidgetPlusieursTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=5
         MonWidgetPlusieursTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-      
+
 class MonWidgetPlusieursTuple6 (Ui_WidgetPlusieursTuple,MonWidgetPlusieursTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=6
         MonWidgetPlusieursTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-      
+
 class MonWidgetPlusieursTuple7 (Ui_WidgetPlusieursTuple,MonWidgetPlusieursTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=7
         MonWidgetPlusieursTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-      
+
 class MonWidgetPlusieursTuple8 (Ui_WidgetPlusieursTuple,MonWidgetPlusieursTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=8
         MonWidgetPlusieursTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-      
+
 class MonWidgetPlusieursTuple9 (Ui_WidgetPlusieursTuple,MonWidgetPlusieursTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=9
         MonWidgetPlusieursTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-      
+
 class MonWidgetPlusieursTuple10 (Ui_WidgetPlusieursTuple,MonWidgetPlusieursTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=10
         MonWidgetPlusieursTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-      
index 1e279f7962df2ddd514d932212edd09b88c1dc18..67fcdf16948732bd8a7c60638964090e367d8f22 100644 (file)
@@ -21,7 +21,7 @@
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import types,os
@@ -34,13 +34,13 @@ from PyQt5.QtWidgets  import  QWidget
 from Extensions.i18n import tr
 
 from .feuille               import Feuille
-from desWidgetRadioButton  import Ui_WidgetRadioButton 
+from desWidgetRadioButton  import Ui_WidgetRadioButton
 from .politiquesValidation  import PolitiqueUnique
 from .qtSaisie              import SaisieValeur
 
 
 class MonWidgetRadioButtonCommun (Feuille):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.setMaxI()
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.politique=PolitiqueUnique(self.node,self.editor)
@@ -52,102 +52,101 @@ class MonWidgetRadioButtonCommun (Feuille):
         self.maCommande.listeAffichageWidget.append(self.radioButton_1)
 
 
-  def setValeursApresBouton(self):
-      if self.objSimp.getValeur()==None : return
-      valeur=self.objSimp.getValeur()
-      if not(isinstance(valeur, str)) : valeur = str(valeur)
-      try :
-        self.dict_bouton[valeur].setChecked(True)
-        self.dict_bouton[valeur].setFocus(True)
-      except :
-        pass
-
-  def determineChoix(self):
-      self.horizontalLayout.setAlignment(Qt.AlignLeft)
-      i=1
-      j=len(self.maListeDeValeur)
-      if j > self.maxI : 
-         print ("poumbadaboum")
-         return
-      while i < j+1 :
-         nomBouton="radioButton_"+str(i)
-         bouton=getattr(self,nomBouton)
-         valeur=self.maListeDeValeur[i-1]
-         if not(isinstance(valeur, str)) : valeur = str(valeur)
-         bouton.setText(tr(valeur))
-         self.dict_bouton[valeur]=bouton
-         bouton.clicked.connect(self.boutonclic)
-         bouton.keyPressEvent=self.keyPressEvent
-         setattr(self,nomBouton,bouton)
-         i=i+1
-      while i < self.maxI +1 :
-         nomBouton="radioButton_"+str(i)
-         bouton=getattr(self,nomBouton)
-         bouton.close()
-         i=i+1
-
-  def boutonclic(self):
-      for valeur in self.dict_bouton:
-          if self.dict_bouton[valeur].isChecked():
-             #print "dans boutonclic is checked", valeur, type(valeur)
-             SaisieValeur.LEvaleurPressed(self,valeur)
-      self.reaffiche()
-
-
-  def keyPressEvent(self, event):
-    if event.key() == Qt.Key_Right : self.selectSuivant(); return
-    if event.key() == Qt.Key_Left  : self.selectPrecedent(); return
-    if event.key() == Qt.Key_Return or event.key() == Qt.Key_Space : self.checkFocused(); return
-    QWidget.keyPressEvent(self,event)
-
-  def selectSuivant(self):
-      aLeFocus=self.focusWidget()
-      nom=aLeFocus.objectName()[12:]
-      i=int(nom)+1
-      if i ==  len(self.maListeDeValeur) +1 : i=1
-      nomBouton="radioButton_"+str(i)
-      courant=getattr(self,nomBouton)
-      courant.setFocus(True)
-
-  def selectPrecedent(self):
-      aLeFocus=self.focusWidget()
-      nom=aLeFocus.objectName()[12:]
-      i=int(nom)-1
-      if i == 0 : i= len(self.maListeDeValeur)  
-      nomBouton="radioButton_"+str(i)
-      courant=getattr(self,nomBouton)
-      courant.setFocus(True)
-
-  def checkFocused(self):
-      aLeFocus=self.focusWidget()
-      nom=aLeFocus.objectName()[12:]
-      i=int(nom)
-      if i > 0 and i <= len(self.maListeDeValeur):
+    def setValeursApresBouton(self):
+        if self.objSimp.getValeur()==None : return
+        valeur=self.objSimp.getValeur()
+        if not(isinstance(valeur, str)) : valeur = str(valeur)
+        try :
+            self.dict_bouton[valeur].setChecked(True)
+            self.dict_bouton[valeur].setFocus(True)
+        except :
+            pass
+
+    def determineChoix(self):
+        self.horizontalLayout.setAlignment(Qt.AlignLeft)
+        i=1
+        j=len(self.maListeDeValeur)
+        if j > self.maxI :
+            print ("poumbadaboum")
+            return
+        while i < j+1 :
+            nomBouton="radioButton_"+str(i)
+            bouton=getattr(self,nomBouton)
+            valeur=self.maListeDeValeur[i-1]
+            if not(isinstance(valeur, str)) : valeur = str(valeur)
+            bouton.setText(tr(valeur))
+            self.dict_bouton[valeur]=bouton
+            bouton.clicked.connect(self.boutonclic)
+            bouton.keyPressEvent=self.keyPressEvent
+            setattr(self,nomBouton,bouton)
+            i=i+1
+        while i < self.maxI +1 :
+            nomBouton="radioButton_"+str(i)
+            bouton=getattr(self,nomBouton)
+            bouton.close()
+            i=i+1
+
+    def boutonclic(self):
+        for valeur in self.dict_bouton:
+            if self.dict_bouton[valeur].isChecked():
+                SaisieValeur.LEvaleurPressed(self,valeur)
+        self.reaffiche()
+
+
+    def keyPressEvent(self, event):
+        if event.key() == Qt.Key_Right : self.selectSuivant(); return
+        if event.key() == Qt.Key_Left  : self.selectPrecedent(); return
+        if event.key() == Qt.Key_Return or event.key() == Qt.Key_Space : self.checkFocused(); return
+        QWidget.keyPressEvent(self,event)
+
+    def selectSuivant(self):
+        aLeFocus=self.focusWidget()
+        nom=aLeFocus.objectName()[12:]
+        i=int(nom)+1
+        if i ==  len(self.maListeDeValeur) +1 : i=1
         nomBouton="radioButton_"+str(i)
         courant=getattr(self,nomBouton)
-        if not courant.isChecked():
-          courant.setChecked(True)
-          self.boutonclic()
+        courant.setFocus(True)
+
+    def selectPrecedent(self):
+        aLeFocus=self.focusWidget()
+        nom=aLeFocus.objectName()[12:]
+        i=int(nom)-1
+        if i == 0 : i= len(self.maListeDeValeur)
+        nomBouton="radioButton_"+str(i)
+        courant=getattr(self,nomBouton)
+        courant.setFocus(True)
+
+    def checkFocused(self):
+        aLeFocus=self.focusWidget()
+        nom=aLeFocus.objectName()[12:]
+        i=int(nom)
+        if i > 0 and i <= len(self.maListeDeValeur):
+            nomBouton="radioButton_"+str(i)
+            courant=getattr(self,nomBouton)
+            if not courant.isChecked():
+                courant.setChecked(True)
+                self.boutonclic()
 
 
 class MonWidgetRadioButton (Ui_WidgetRadioButton,MonWidgetRadioButtonCommun):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
-        #print "MonWidgetRadioButton ", self
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+            #print "MonWidgetRadioButton ", self
         if type(monSimpDef.into) ==types.FunctionType : self.maListeDeValeur=monSimpDef.into()
         else : self.maListeDeValeur=monSimpDef.into
 
         MonWidgetRadioButtonCommun.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-        
-  def setMaxI(self):
+
+    def setMaxI(self):
         self.maxI=3
 
 
 class MonWidgetRadioButtonSD (Ui_WidgetRadioButton,MonWidgetRadioButtonCommun):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         #print "dans le init de MonWidgetRadioButtonSD",self
         self.maListeDeValeur=node.item.getSdAvantDuBonType()
         MonWidgetRadioButtonCommun.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
 
-  def setMaxI(self):
+    def setMaxI(self):
         self.maxI=3
index 691d2713ccd07b643daef7d3903f5fd0bc10daf7..d07252b1d66f42ae9db90032fda587a59bc77247 100644 (file)
@@ -20,7 +20,7 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import types,os
@@ -31,7 +31,7 @@ from PyQt5.QtCore import Qt
 from Extensions.i18n import tr
 
 from .feuille               import Feuille
-from desWidgetSDCOInto     import Ui_WidgetSDCOInto 
+from desWidgetSDCOInto     import Ui_WidgetSDCOInto
 from .qtSaisie              import SaisieSDCO
 from .politiquesValidation  import PolitiqueUnique
 
@@ -39,7 +39,7 @@ from .politiquesValidation  import PolitiqueUnique
 
 class MonWidgetSDCOInto (Ui_WidgetSDCOInto,Feuille,SaisieSDCO):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         #print "MonWidgetSDCOInto init"
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.politique=PolitiqueUnique(self.node,self.editor)
@@ -47,25 +47,25 @@ class MonWidgetSDCOInto (Ui_WidgetSDCOInto,Feuille,SaisieSDCO):
         self.maCommande.listeAffichageWidget.append(self.LESDCO)
         self.AAficher=self.LESDCO
         self.initLBSDCO()
-       
+
         self.LESDCO.returnPressed.connect(self.LESDCOReturnPressed)
         self.LBSDCO.itemDoubleClicked.connect(self.LBSDCODoubleClicked )
 
-  def LESDCOReturnPressed(self) :
+    def LESDCOReturnPressed(self) :
         self.LBSDCO.clearSelection()
         SaisieSDCO.LESDCOReturnPressed(self)
 
 
-  def initLBSDCO(self):
+    def initLBSDCO(self):
         listeNomsSDCO = self.node.item.getSdAvantDuBonType()
         for aSDCO in listeNomsSDCO:
             self.LBSDCO.insertItem( 1,aSDCO)
         valeur = self.node.item.getValeur()
         if valeur  != "" and valeur != None :
-           self.LESDCO.setText(str(valeur.nom))
+            self.LESDCO.setText(str(valeur.nom))
 
 
-  def LBSDCODoubleClicked(self):
+    def LBSDCODoubleClicked(self):
         """
          Teste si la valeur fournie par l'utilisateur est une valeur permise :
           - si oui, l'enregistre
@@ -80,19 +80,17 @@ class MonWidgetSDCOInto (Ui_WidgetSDCOInto,Feuille,SaisieSDCO):
         valeur,validite=self.node.item.evalValeur(nomConcept)
         test = self.node.item.setValeur(valeur)
         if not test :
-          commentaire = tr("impossible d'evaluer : ") +  valeur
+            commentaire = tr("impossible d'evaluer : ") +  valeur
         elif validite:
-          commentaire = tr("Valeur du mot-clef enregistree")
-          if test_CO:
-             # il faut egalement propager la destruction de l'ancien concept
-             self.node.item.deleteValeurCo(valeur=anc_val)
-             self.node.item.object.etape.getType_produit(force=1)
-             self.node.item.object.etape.parent.resetContext()
-             self.LESDCO.setText(nomConcept)
+            commentaire = tr("Valeur du mot-clef enregistree")
+            if test_CO:
+                # il faut egalement propager la destruction de l'ancien concept
+                self.node.item.deleteValeurCo(valeur=anc_val)
+                self.node.item.object.etape.getType_produit(force=1)
+                self.node.item.object.etape.parent.resetContext()
+                self.LESDCO.setText(nomConcept)
         else :
-          commentaire = self.node.item.getCr()
-          self.reset_old_valeur(anc_val,mess=mess)
-          self.editor.afficheInfos(commentaire,Qt.red)
+            commentaire = self.node.item.getCr()
+            self.reset_old_valeur(anc_val,mess=mess)
+            self.editor.afficheInfos(commentaire,Qt.red)
         self.Commentaire.setText(tr(commentaire))
-
-
index bf36def2ce2015e9f05a7b076d8aaffb07ce17f8..fae5cb3f383c63f132898567574bd56e95e2d7fb 100644 (file)
@@ -20,7 +20,7 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import types,os
@@ -31,94 +31,85 @@ from PyQt5.QtCore import  Qt
 from Extensions.i18n import tr
 
 from .feuille               import Feuille
-from desWidgetSimpBase     import Ui_WidgetSimpBase 
+from desWidgetSimpBase     import Ui_WidgetSimpBase
 from .politiquesValidation  import PolitiqueUnique
 from .qtSaisie              import SaisieValeur
 
 
 class MonWidgetSimpBase (Ui_WidgetSimpBase,Feuille):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
+        if 'R' or 'I' in self.monSimpDef.type  : self.lineEditVal.setMinimumWidth(525)
         self.parentQt.commandesLayout.insertWidget(-1,self,1)
         self.setFocusPolicy(Qt.StrongFocus)
-        self.lineEditVal.returnPressed.connect(self.LEvaleurPressed)
+        if monSimpDef.homo == 'constant' : self.lineEditVal.setReadOnly(True)
+        if monSimpDef.homo == 'constant' : self.lineEditVal.setStyleSheet("background:rgb(210,235,235);\n" "border:0px;")
+        else : self.lineEditVal.returnPressed.connect(self.LEvaleurPressed)
         self.AAfficher=self.lineEditVal
         self.maCommande.listeAffichageWidget.append(self.lineEditVal)
         self.lineEditVal.focusInEvent=self.monFocusInEvent
         self.lineEditVal.focusOutEvent=self.monFocusOutEvent
 
 
-  def monFocusInEvent(self,event):
-      self.editor.nodeEnCours = self
-      QLineEdit.focusInEvent(self.lineEditVal,event)
-
-  def monFocusOutEvent(self,event):
-      if self.oldValeurTexte != self.lineEditVal.text():
-         self.oldValeurTexte= self.lineEditVal.text()
-         self.LEvaleurPressed()
-      QLineEdit.focusOutEvent(self.lineEditVal,event)
-
-  #def showEvent(self, event):
-  #    if self.prendLeFocus==1 :
-  #       self.activateWindow()
-  #       self.lineEditVal.setFocus()
-  #       self.prendLeFocus=0
-  #    QWidget.showEvent(self,event)
-
-  def setValeurs(self):
-       #print ("dans setValeurs")
-       self.politique=PolitiqueUnique(self.node,self.editor)
-       valeur=self.node.item.getValeur()
-       valeurTexte=self.politique.getValeurTexte(valeur)
-       chaine=""
-
-       if valeurTexte != None :
-          from decimal import Decimal
-          if isinstance(valeurTexte,Decimal):
-             chaine=str(valeurTexte)
-          elif repr(valeurTexte.__class__).find("PARAMETRE") > 0:
-             chaine = repr(valeur)
-          else :
-             #PN ????
-             #try :
-             #  chaine=QString("").setNum(valeurTexte)
-             #except :
-             chaine=str(valeurTexte)
-       self.oldValeurTexte=chaine
-       self.lineEditVal.setText(chaine)
-
-
-  def finCommentaire(self):
-      mc = self.objSimp.definition
-      d_aides = { 'TXM' : tr(u"Une chaine de caracteres est attendue.  "),
-                  'R'   : tr(u"Un reel est attendu. "),
-                  'I'   : tr(u"Un entier est attendu.  "),
-                  'Matrice' : tr(u'Une Matrice est attendue.  '),
-                  'Fichier' : tr(u'Un fichier est attendu.  '),
-                  'FichierNoAbs' : tr(u'Un fichier est attendu.  '),
-                  'Repertoire' : tr(u'Un repertoire est attendu.  '),
-                  'FichierOuRepertoire' : tr(u'Un repertoire ou un fichier est attendu.  '),
-                  'Heure' : tr(u'Heure sous la forme HH:MM'),
-                  'Date' :  tr(u'Date sous la forme JJ/MM/AA')}
-      if mc.type[0] != type:
-         commentaire = d_aides.get(mc.type[0], tr("Type de base inconnu"))
-      else : commentaire=""
-      return commentaire
-
-
-  def LEvaleurPressed(self):
-      # pour les soucis d encoding
-      try :
-        if str(self.lineEditVal.text())=="" or str(self.lineEditVal.text())==None : return
-      except : pass
-      SaisieValeur.LEvaleurPressed(self)
-      self.parentQt.donneFocus()
-      self.setValeurs()
-      self.reaffiche()
-      
-      #if self.objSimp.parent.nom == "MODEL" :
-      #   if self.objSimp.isValid():
-      #      self.objSimp.parent.change_fichier="1"
-            #self.node.item.parent.buildInclude(None,"")
-
+    def monFocusInEvent(self,event):
+        self.editor.nodeEnCours = self
+        QLineEdit.focusInEvent(self.lineEditVal,event)
+
+    def monFocusOutEvent(self,event):
+        if self.oldValeurTexte != self.lineEditVal.text():
+            self.oldValeurTexte= self.lineEditVal.text()
+            self.LEvaleurPressed()
+        QLineEdit.focusOutEvent(self.lineEditVal,event)
+
+
+    def setValeurs(self):
+        #print ("dans setValeurs")
+        self.politique=PolitiqueUnique(self.node,self.editor)
+        valeur=self.node.item.getValeur()
+        valeurTexte=self.politique.getValeurTexte(valeur)
+        chaine=""
+
+        if valeurTexte != None :
+            from decimal import Decimal
+            if isinstance(valeurTexte,Decimal):
+                chaine=str(valeurTexte)
+            elif repr(valeurTexte.__class__).find("PARAMETRE") > 0:
+                chaine = repr(valeur)
+            else :
+                #PN ????
+                #try :
+                #  chaine=QString("").setNum(valeurTexte)
+                #except :
+                chaine=str(valeurTexte)
+        self.oldValeurTexte=chaine
+        self.lineEditVal.setText(chaine)
+
+
+    def finCommentaire(self):
+        mc = self.objSimp.definition
+        d_aides = { 'TXM' : tr(u"Une chaine de caracteres est attendue.  "),
+                    'R'   : tr(u"Un reel est attendu. "),
+                    'I'   : tr(u"Un entier est attendu.  "),
+                    'Matrice' : tr(u'Une Matrice est attendue.  '),
+                    'Fichier' : tr(u'Un fichier est attendu.  '),
+                    'FichierNoAbs' : tr(u'Un fichier est attendu.  '),
+                    'Repertoire' : tr(u'Un repertoire est attendu.  '),
+                    'FichierOuRepertoire' : tr(u'Un repertoire ou un fichier est attendu.  '),
+                    'Heure' : tr(u'Heure sous la forme HH:MM'),
+                    'Date' :  tr(u'Date sous la forme JJ/MM/AA')}
+        if mc.type[0] != type:
+            commentaire = d_aides.get(mc.type[0], tr("Type de base inconnu"))
+        else : commentaire=""
+        return commentaire
+
+
+    def LEvaleurPressed(self):
+        # pour les soucis d encoding
+        try :
+            if str(self.lineEditVal.text())=="" or str(self.lineEditVal.text())==None : return
+        except : pass
+        SaisieValeur.LEvaleurPressed(self)
+        self.parentQt.donneFocus()
+        self.setValeurs()
+        self.reaffiche()
index 34ab1a9226018b0da2d105ea7fa023752a7c9c3a..7545a315fe839ffcb4d2d56c850d009e4d19e314 100644 (file)
@@ -26,14 +26,14 @@ from PyQt5.QtWidgets import QRadioButton
 from Extensions.i18n import tr
 
 from .feuille               import Feuille
-from desWidgetSimpBool     import Ui_WidgetSimpBool 
+from desWidgetSimpBool     import Ui_WidgetSimpBool
 from .politiquesValidation  import PolitiqueUnique
 from .qtSaisie              import SaisieValeur
 
 
 class MonWidgetSimpBool (Ui_WidgetSimpBool,Feuille):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.politique=PolitiqueUnique(self.node,self.editor)
         self.RBTrue.clicked.connect(self.boutonTrueClic)
@@ -42,18 +42,19 @@ class MonWidgetSimpBool (Ui_WidgetSimpBool,Feuille):
         self.maCommande.listeAffichageWidget.append(self.RBTrue)
         self.AAfficher=self.RBTrue
 
-  def setValeurs(self):
-       valeur=self.node.item.getValeur()
-       if valeur == None  : return
-       if valeur == True  : self.RBTrue.setChecked(True)
-       if valeur == False : self.RBFalse.setChecked(True)
-
-
-  def boutonTrueClic(self):
-      SaisieValeur.LEvaleurPressed(self,True)
-      self.reaffiche()
-
-  def boutonFalseClic(self):
-      SaisieValeur.LEvaleurPressed(self,False)
-      self.reaffiche()
-
+    def setValeurs(self):
+        valeur=self.node.item.getValeur()
+        if valeur == None  : return
+        if valeur == True  : self.RBTrue.setChecked(True)
+        if valeur == False : self.RBFalse.setChecked(True)
+        if self.monSimpDef.homo == 'constant' :
+            if valeur == True  : self.RBFalse.setDisabled(True)
+            else :               self.RBTrue.setDisabled(True)
+
+    def boutonTrueClic(self):
+        SaisieValeur.LEvaleurPressed(self,True)
+        self.reaffiche()
+
+    def boutonFalseClic(self):
+        SaisieValeur.LEvaleurPressed(self,False)
+        self.reaffiche()
index 157cf161041a158571f2396a99f0d47343a87ab8..8ab5d5d34de0b6ca0bb9363e2403c424c00034a9 100644 (file)
@@ -20,7 +20,7 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import types,os, locale
@@ -33,14 +33,14 @@ from PyQt5.QtCore import Qt
 from Extensions.i18n import tr
 
 from .feuille                import Feuille
-from desWidgetSimpComplexe  import Ui_WidgetSimpComplexe 
+from desWidgetSimpComplexe  import Ui_WidgetSimpComplexe
 from .politiquesValidation   import PolitiqueUnique
 from .qtSaisie               import SaisieValeur
 
 
 class MonWidgetSimpComplexe (Ui_WidgetSimpComplexe,Feuille):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.parentQt.commandesLayout.insertWidget(-1,self)
         self.setFocusPolicy(Qt.StrongFocus)
@@ -48,128 +48,121 @@ class MonWidgetSimpComplexe (Ui_WidgetSimpComplexe,Feuille):
         self.LEReel.returnPressed.connect(self.LEReelRPressed)
         self.RBRI.clicked.connect(self.valeurPressed )
         self.RBMP.clicked.connect(self.valeurPressed )
-        self.LEComp.returnPressed.connect(self.LECompRPressed)
-        self.maCommande.listeAffichageWidget.append(self.LEComp)
-        #self.maCommande.listeAffichageWidget.append(self.RBRI)
-        #self.maCommande.listeAffichageWidget.append(self.RBMP)
-        #self.maCommande.listeAffichageWidget.append(self.LEReel)
-        #self.maCommande.listeAffichageWidget.append(self.LEImag)
-
-
-  def setValeurs(self):
-       self.politique=PolitiqueUnique(self.node,self.editor)
-       valeur=self.node.item.getValeur()
-       if valeur == None or valeur == '' : return
-       if type(valeur) not in (list,tuple) :
-           self.LEComp.setText(str(valeur))
-       else :
-           typ_cplx,x1,x2=valeur
-           self.LEReel.setText(str(x1))
-           self.LEImag.setText(str(x2))
-           if typ_cplx == "RI" :
-              self.RBRI.setChecked(1)
-           else :
-              self.RBMP.setChecked(1)
-
-  def LECompRPressed(self) :
-        self.LEReel.clear()
-        self.LEImag.clear()
-        commentaire=tr("expression valide")
-        valeur = str(self.LEComp.text())
-        d={}
-        try :
-          v=eval(valeur,d)
-        except :
-          commentaire=tr("expression invalide")
-          self.editor.afficheInfos(commentaire,Qt.red)
-          return
-        try :
-          i=v.imag
-          self.editor.afficheInfos(commentaire)
-          self.valeurPressed()
-        except :
-          commentaire=tr("l expression n est pas de la forme a+bj")
-          self.editor.afficheInfos(commentaire,Qt.red)
-
-  def LEReelRPressed(self):
-        self.LEComp.clear()
+        self.maCommande.listeAffichageWidget.append(self.RBRI)
+        self.maCommande.listeAffichageWidget.append(self.RBMP)
+        self.maCommande.listeAffichageWidget.append(self.LEReel)
+        self.maCommande.listeAffichageWidget.append(self.LEImag)
+
+
+    def setValeurs(self):
+        self.politique=PolitiqueUnique(self.node,self.editor)
+        valeur=self.node.item.getValeur()
+        if valeur == None or valeur == '' : return
+        if type(valeur) not in (list,tuple) :
+            self.LEComp.setText(str(valeur))
+            commentaire=tr('complexe form deprecated, od value : ', valeur)
+            self.editor.afficheInfos(commentaire,Qt.red)
+        else :
+            typ_cplx,x1,x2=valeur
+            self.LEReel.setText(str(x1))
+            self.LEImag.setText(str(x2))
+            if typ_cplx == "RI" :
+                self.RBRI.setChecked(1)
+            else :
+                self.RBMP.setChecked(1)
+
+    #def LECompRPressed(self) :
+    #    self.LEReel.clear()
+    #    self.LEImag.clear()
+    #    commentaire=tr("expression valide")
+    #    valeur = str(self.LEComp.text())
+    #    d={}
+    #    if 1 :
+    #    try :
+    #        v=eval(valeur,d)
+    #    except :
+    #        commentaire=tr("expression invalide")
+    #        self.editor.afficheInfos(commentaire,Qt.red)
+    #        return
+    #    try :
+    #        i=v.imag
+    #        self.editor.afficheInfos(commentaire)
+    #        self.valeurPressed()
+    #    except :
+    #        commentaire=tr("l expression n est pas de la forme a+bj")
+    #        self.editor.afficheInfos(commentaire,Qt.red)
+
+    def LEReelRPressed(self):
+        #self.LEComp.clear()
         commentaire=tr("expression valide")
         valeur = str(self.LEReel.text())
         try :
-          a=locale.atof(valeur)
-          self.editor.afficheInfos(commentaire)
+            a=locale.atof(valeur)
+            self.editor.afficheInfos(commentaire)
         except :
-          commentaire=tr("expression invalide")
-          self.editor.afficheInfos(commentaire,Qt.red)
+            commentaire=tr("expression invalide")
+            self.editor.afficheInfos(commentaire,Qt.red)
         if self.LEImag.text()!="" : self.valeurPressed()
+        else : self.LEImag.setFocus(True)
 
-  def LEImagRPressed(self):
-        self.LEComp.clear()
+    def LEImagRPressed(self):
         commentaire=tr("expression valide")
         valeur = str(self.LEImag.text())
         try :
-          a=locale.atof(valeur)
-          self.editor.afficheInfos(commentaire)
+            a=locale.atof(valeur)
+            self.editor.afficheInfos(commentaire)
         except :
-          commentaire=tr("expression invalide")
-          self.editor.afficheInfos(commentaire,Qt.red)
+            commentaire=tr("expression invalide")
+            self.editor.afficheInfos(commentaire,Qt.red)
         if self.LEReel.text()!="" : self.valeurPressed()
-
-  def finCommentaire(self):
-      commentaire="valeur de type complexe"
-      return commentaire
-
-  def getValeurComp(self):
-        commentaire=tr("expression valide")
-        valeur = str(self.LEComp.text())
-        d={}
-        try :
-          v=eval(valeur,d)
-        except :
-          commentaire=tr("expression invalide")
-          self.editor.afficheInfos(commentaire,Qt.red)
-          return None
+        else : self.LEReel.setFocus(True)
+
+    def finCommentaire(self):
+        commentaire="valeur de type complexe"
+        return commentaire
+
+    #def getValeurComp(self):
+    #    commentaire=tr("expression valide")
+    #    valeur = str(self.LEComp.text())
+    #    d={}
+    #    try :
+    #        v=eval(valeur,d)
+    #    except :
+    #        commentaire=tr("expression invalide")
+    #        self.editor.afficheInfos(commentaire,Qt.red)
+    #        return None
+    #     try :
+    #        i=v.imag
+    #    except :
+    #        commentaire=tr("expression n est pas de la forme a+bj")
+    #        self.editor.afficheInfos(commentaire,Qt.red)
+    #        return None
+    #    return v
+
+
+    def valeurPressed(self):
+        if (self.LEReel.text()=="" and self.LEImag.text()=="") : self.LEReel.setFocus(True)
+        if (self.LEReel.text()=="" and self.LEImag.text()!="") : self.LEReel.setFocus(True)
+        if (self.LEReel.text()!="" and self.LEImag.text()=="") : self.LEImag.setFocus(True)
+        valeur = self.getValeurRI()
+        self.politique.recordValeur(valeur)
+        self.reaffiche()
+        self.parentQt.donneFocus()
+
+    def getValeurRI(self):
+        """
+        Retourne le complexe saisi par l'utilisateur
+        """
+        l=[]
+        if (self.RBMP.isChecked() == 1 ) : l.append("MP")
+        elif (self.RBRI.isChecked() == 1) : l.append("RI")
+        else :
+            self.editor.afficheInfos(commentaire,Qt.red)
+            self.RBMP.setFocus(True)
+            return None
         try :
-          i=v.imag
+            l.append(locale.atof(str(self.LEReel.text())))
+            l.append(locale.atof(str(self.LEImag.text())))
         except :
-          commentaire=tr("expression n est pas de la forme a+bj")
-          self.editor.afficheInfos(commentaire,Qt.red)
-          return None
-        return v
-
-
-  def valeurPressed(self):
-      if self.LEComp.text()== ""  and (self.LEReel.text()=="" or self.LEImag.text()=="") :
-         return
-      if self.LEComp.text()== "" : valeur = self.getValeurRI()
-      else :
-          if self.LEReel.text() != "" or self.LEImag.text() != "" :
-              commentaire=tr("entrer une seule valeur SVP")
-              self.editor.afficheInfos(commentaire,Qt.red)
-              return
-          valeur=  self.getValeurComp()
-      self.politique.recordValeur(valeur)
-      self.reaffiche()
-      self.parentQt.donneFocus()
-
-  def getValeurRI(self):
-      """
-      Retourne le complexe saisi par l'utilisateur
-      """
-      l=[]
-      if  (self.RBMP.isChecked() == 1 ) :
-         l.append("MP")
-      elif (self.RBRI.isChecked() == 1) :
-         l.append("RI")
-      else :
-         commentaire=tr("saisir le type de complexe")
-         self.editor.afficheInfos(commentaire,Qt.red)
-         return None
-      try :
-         l.append(locale.atof(str(self.LEReel.text())))
-         l.append(locale.atof(str(self.LEImag.text())))
-      except :
-         return None
-      return repr(tuple(l))
-
-      
+            return None
+        return repr(tuple(l))
index 943e1221aada1f801fa0cf6ff7965ecaa14c341e..0b81e44bbac3c0acb361324b307ef7236dbb3607 100644 (file)
@@ -26,19 +26,18 @@ from PyQt5.QtGui  import QIcon
 from PyQt5.QtCore import QSize
 from Extensions.i18n import tr
 
-from desWidgetSimpFichier  import Ui_WidgetSimpFichier 
+from desWidgetSimpFichier  import Ui_WidgetSimpFichier
 from .monWidgetSimpBase     import MonWidgetSimpBase
 
 
 class MonWidgetSimpFichier (Ui_WidgetSimpFichier,MonWidgetSimpBase):
 # c est juste la taille des differents widgets de base qui change
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         MonWidgetSimpBase.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         if sys.platform[0:5]!="linux" :
-          repIcon=self.node.editor.appliEficas.repIcon
-          fichier=os.path.join(repIcon, 'file-explorer.png')
-          icon = QIcon(fichier)
-          self.BFichier.setIcon(icon)
-          self.BFichier.setIconSize(QSize(32, 32))
-
+            repIcon=self.node.editor.appliEficas.repIcon
+            fichier=os.path.join(repIcon, 'file-explorer.png')
+            icon = QIcon(fichier)
+            self.BFichier.setIcon(icon)
+            self.BFichier.setIconSize(QSize(32, 32))
index cca59c0ecd696ce8908f3ee29cff6b3714462908..41e0632f8531fe3a69954709fa36244f2acb27a0 100644 (file)
@@ -20,7 +20,7 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import types,os
@@ -33,14 +33,14 @@ from PyQt5.QtCore import Qt
 from Extensions.i18n import tr
 
 from .feuille               import Feuille
-from desWidgetSimpSalome   import Ui_WidgetSimpSalome 
+from desWidgetSimpSalome   import Ui_WidgetSimpSalome
 from .politiquesValidation  import PolitiqueUnique
 from .qtSaisie              import SaisieValeur
 
 
 class MonWidgetSimpSalome (Ui_WidgetSimpSalome,Feuille):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.parentQt.commandesLayout.insertWidget(-1,self,1)
         self.setFocusPolicy(Qt.StrongFocus)
@@ -50,14 +50,14 @@ class MonWidgetSimpSalome (Ui_WidgetSimpSalome,Feuille):
         self.maCommande.listeAffichageWidget.append(self.lineEditVal)
 
 
-  def LEvaleurPressed(self):
-      if str(self.lineEditVal.text())=="" or str(self.lineEditVal.text())==None : return
-      SaisieValeur.LEvaleurPressed(self)
-      self.parentQt.donneFocus()
-      self.setValeurs()
-      self.reaffiche()
+    def LEvaleurPressed(self):
+        if str(self.lineEditVal.text())=="" or str(self.lineEditVal.text())==None : return
+        SaisieValeur.LEvaleurPressed(self)
+        self.parentQt.donneFocus()
+        self.setValeurs()
+        self.reaffiche()
 
 
-  def setValeurs(self):
-      valeur=self.node.item.getValeur()
-      if valeur != None : self.lineEditVal.setText(str(valeur))
+    def setValeurs(self):
+        valeur=self.node.item.getValeur()
+        if valeur != None : self.lineEditVal.setText(str(valeur))
index f3b0c9b2e5e47099b8ee025f460fe1fa88933528..c5e99ec0f266a25919d1f0006155e8ba5d5d9d58 100644 (file)
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
-   from builtins import range
+    from builtins import str
+    from builtins import range
 except : pass
 
 import types,os
 
-from six.moves import range
 from PyQt5.QtCore import Qt
 
 # Modules Eficas
@@ -39,63 +38,61 @@ from InterfaceQT4.qtSaisie              import SaisieValeur
 
 class MonWidgetSimpTuple(Feuille):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.politique=PolitiqueUnique(self.node,self.editor)
         self.parentQt.commandesLayout.insertWidget(-1,self)
         self.setFocusPolicy(Qt.StrongFocus)
 
-  def setValeurs(self):
-       valeur=self.node.item.getValeur()
-       for i in range(self.nbValeurs) :
-           nomLineEdit="lineEditVal"+str(i+1)
-           courant=getattr(self,nomLineEdit)
-           if valeur !=None: courant.setText(str(valeur[i]))
-           setattr(self,nomLineEdit,courant)
-           courant.returnPressed.connect(self.valeursPressed)
+    def setValeurs(self):
+        valeur=self.node.item.getValeur()
+        for i in range(self.nbValeurs) :
+            nomLineEdit="lineEditVal"+str(i+1)
+            courant=getattr(self,nomLineEdit)
+            if valeur !=None: courant.setText(str(valeur[i]))
+            setattr(self,nomLineEdit,courant)
+            courant.returnPressed.connect(self.valeursPressed)
 
-  def valeursPressed(self):
-      aLeFocus=self.focusWidget()
-      self.editor.afficheInfos("")
-      texteValeur=""
-      for i in range(self.nbValeurs) :
-          nomLineEdit="lineEditVal"+str(i+1)
-          courant=getattr(self,nomLineEdit)
-          if courant.text()=="" or courant.text()==None :
-             courant.setFocus(True)
-             return 
-          s=str(courant.text())
-          if hasattr(self.objSimp.definition.validators, 'typeDesTuples'):
-           if self.objSimp.definition.validators.typeDesTuples[i] == "R" :
-             if (s.find('.')== -1 and s.find('e')== -1 and s.find('E')==-1) : 
-                 s=s+'.0'
-                 courant.setText(s)
-           if self.objSimp.definition.validators.typeDesTuples[i] == "TXM" :
-             if s[0]!='"' and s[0] != "'": 
-                if s[-1]=="'": s="'"+s
-                else :         s='"'+s
-             if s[-1]!='"' and s[-1] != "'": 
-                if s[0]=="'": s=s+"'"
-                else :        s=s+'"'
-             courant.setText(s)
-          texteValeur+=str(courant.text())
-          #print (texteValeur)
-          if i+1 != self.nbValeurs : texteValeur+=','
-      validite,commentaire=self.politique.recordValeur(texteValeur)
-      if not validite:self.editor.afficheInfos(commentaire+" "+str(self.objSimp.definition.validators.typeDesTuples),Qt.red)
+    def valeursPressed(self):
+        aLeFocus=self.focusWidget()
+        self.editor.afficheInfos("")
+        texteValeur=""
+        for i in range(self.nbValeurs) :
+            nomLineEdit="lineEditVal"+str(i+1)
+            courant=getattr(self,nomLineEdit)
+            if courant.text()=="" or courant.text()==None :
+                courant.setFocus(True)
+                return
+            s=str(courant.text())
+            if hasattr(self.objSimp.definition.validators, 'typeDesTuples'):
+                if self.objSimp.definition.validators.typeDesTuples[i] == "R" :
+                    if (s.find('.')== -1 and s.find('e')== -1 and s.find('E')==-1) :
+                        s=s+'.0'
+                        courant.setText(s)
+                if self.objSimp.definition.validators.typeDesTuples[i] == "TXM" :
+                    if s[0]!='"' and s[0] != "'":
+                        if s[-1]=="'": s="'"+s
+                        else :         s='"'+s
+                    if s[-1]!='"' and s[-1] != "'":
+                        if s[0]=="'": s=s+"'"
+                        else :        s=s+'"'
+                    courant.setText(s)
+            texteValeur+=str(courant.text())
+            #print (texteValeur)
+            if i+1 != self.nbValeurs : texteValeur+=','
+        validite,commentaire=self.politique.recordValeur(texteValeur)
+        if not validite:self.editor.afficheInfos(commentaire+" "+str(self.objSimp.definition.validators.typeDesTuples),Qt.red)
 
-      # Passage au champ suivant
-      nom=aLeFocus.objectName()[11:]
-      try :
-        i=int(nom)+1
-      except :
+        # Passage au champ suivant
+        nom=aLeFocus.objectName()[11:]
         try :
-          i=i+1
+            i=int(nom)+1
         except :
-          return
-      if i == self.nbValeurs +1 : i=1
-      nomLineEdit="lineEditVal"+str(i)
-      courant=getattr(self,nomLineEdit)
-      courant.setFocus(True)
-          
-         
+            try :
+                i=i+1
+            except :
+                return
+        if i == self.nbValeurs +1 : i=1
+        nomLineEdit="lineEditVal"+str(i)
+        courant=getattr(self,nomLineEdit)
+        courant.setFocus(True)
diff --git a/InterfaceQT4/monWidgetSimpTuple2.py b/InterfaceQT4/monWidgetSimpTuple2.py
deleted file mode 100644 (file)
index e9cae25..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2021   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-# Modules Python
-from __future__ import absolute_import
-import types,os
-
-# Modules Eficas
-#from PyQt4.QtGui import *
-#from PyQt4.QtCore import *
-from Extensions.i18n import tr
-
-from .feuille               import Feuille
-from .monWidgetSimpTuple    import MonWidgetSimpTuple 
-from desWidgetTuple2       import Ui_WidgetTuple2 
-
-
-class MonWidgetSimpTuple2 (Ui_WidgetTuple2,MonWidgetSimpTuple):
-
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
-        self.nbValeurs=2
-        MonWidgetSimpTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-        #self.maCommande.listeAffichageWidget.append(self.lineEditVal2)
-        if self.objSimp.isImmuable() :
-          self.lineEditVal1.setDisabled(True)
-          self.lineEditVal2.setDisabled(True)
-          self.lineEditVal1.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
-          self.lineEditVal2.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
-          self.lineEditVal1.setToolTip(tr("Valeur non modifiable"))
-          self.lineEditVal2.setToolTip(tr("Valeur non modifiable"))
-        else :
-          self.maCommande.listeAffichageWidget.append(self.lineEditVal1)
-      
diff --git a/InterfaceQT4/monWidgetSimpTuple3.py b/InterfaceQT4/monWidgetSimpTuple3.py
deleted file mode 100644 (file)
index e7fcf97..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2021   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-# Modules Python
-from __future__ import absolute_import
-import types,os
-
-# Modules Eficas
-#from PyQt4.QtGui import *
-#from PyQt4.QtCore import *
-from Extensions.i18n import tr
-
-from .feuille               import Feuille
-from .monWidgetSimpTuple    import MonWidgetSimpTuple 
-from desWidgetTuple3       import Ui_WidgetTuple3 
-
-
-class MonWidgetSimpTuple3 (Ui_WidgetTuple3,MonWidgetSimpTuple):
-
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
-        self.nbValeurs=3
-        MonWidgetSimpTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-        if self.objSimp.isImmuable() :
-           self.lineEditVal1.setDisabled(True)
-           self.lineEditVal2.setDisabled(True)
-           self.lineEditVal3.setDisabled(True)
-           self.lineEditVal1.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
-           self.lineEditVal2.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
-           self.lineEditVal3.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
-           self.lineEditVal1.setToolTip(tr("Valeur non modifiable"))
-           self.lineEditVal2.setToolTip(tr("Valeur non modifiable"))
-           self.lineEditVal3.setToolTip(tr("Valeur non modifiable"))
-        else :
-           self.maCommande.listeAffichageWidget.append(self.lineEditVal1)
-        #self.maCommande.listeAffichageWidget.append(self.lineEditVal2)
-        #self.maCommande.listeAffichageWidget.append(self.lineEditVal3)
-
index 5734105788ad8617a1c9b16c95ab5570e03df3c1..cda89eff460a21036b4aae42804a22e94641139a 100644 (file)
@@ -27,77 +27,81 @@ import types,os
 from Extensions.i18n import tr
 
 from InterfaceQT4.feuille               import Feuille
-from InterfaceQT4.monWidgetSimpTuple    import MonWidgetSimpTuple 
-from desWidgetTuple2  import Ui_WidgetTuple2 
-from desWidgetTuple3  import Ui_WidgetTuple3 
-from desWidgetTuple4  import Ui_WidgetTuple4 
-from desWidgetTuple5  import Ui_WidgetTuple5 
-from desWidgetTuple6  import Ui_WidgetTuple6 
-from desWidgetTuple7  import Ui_WidgetTuple7 
-from desWidgetTuple8  import Ui_WidgetTuple8 
-from desWidgetTuple9  import Ui_WidgetTuple9 
+from InterfaceQT4.monWidgetSimpTuple    import MonWidgetSimpTuple
+from desWidgetTuple2  import Ui_WidgetTuple2
+from desWidgetTuple3  import Ui_WidgetTuple3
+from desWidgetTuple4  import Ui_WidgetTuple4
+from desWidgetTuple5  import Ui_WidgetTuple5
+from desWidgetTuple6  import Ui_WidgetTuple6
+from desWidgetTuple7  import Ui_WidgetTuple7
+from desWidgetTuple8  import Ui_WidgetTuple8
+from desWidgetTuple9  import Ui_WidgetTuple9
 from desWidgetTuple10 import Ui_WidgetTuple10
 
 
 class MonWidgetSimpTuple2 (Ui_WidgetTuple2,MonWidgetSimpTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=2
         MonWidgetSimpTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         if self.objSimp.isImmuable() :
-          self.lineEditVal1.setDisabled(True)
-          self.lineEditVal2.setDisabled(True)
-          self.lineEditVal1.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
-          self.lineEditVal2.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
-          self.lineEditVal1.setToolTip(tr("Valeur non modifiable"))
-          self.lineEditVal2.setToolTip(tr("Valeur non modifiable"))
+            self.lineEditVal1.setDisabled(True)
+            self.lineEditVal2.setDisabled(True)
+            self.lineEditVal1.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
+            self.lineEditVal2.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
+            self.lineEditVal1.setToolTip(tr("Valeur non modifiable"))
+            self.lineEditVal2.setToolTip(tr("Valeur non modifiable"))
         else :
-          self.maCommande.listeAffichageWidget.append(self.lineEditVal1)
-      
+            self.maCommande.listeAffichageWidget.append(self.lineEditVal1)
+
 class MonWidgetSimpTuple3 (Ui_WidgetTuple3,MonWidgetSimpTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=3
         MonWidgetSimpTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         if self.objSimp.isImmuable() :
-          self.lineEditVal1.setDisabled(True)
-          self.lineEditVal2.setDisabled(True)
-          self.lineEditVal1.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
-          self.lineEditVal2.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
-          self.lineEditVal1.setToolTip(tr("Valeur non modifiable"))
-          self.lineEditVal2.setToolTip(tr("Valeur non modifiable"))
+            self.lineEditVal1.setDisabled(True)
+            self.lineEditVal2.setDisabled(True)
+            self.lineEditVal3.setDisabled(True)
+            self.lineEditVal1.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
+            self.lineEditVal2.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
+            self.lineEditVal3.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
+            self.lineEditVal1.setToolTip(tr("Valeur non modifiable"))
+            self.lineEditVal2.setToolTip(tr("Valeur non modifiable"))
+            self.lineEditVal3.setToolTip(tr("Valeur non modifiable"))
         else :
-          self.maCommande.listeAffichageWidget.append(self.lineEditVal1)
-      
+            self.maCommande.listeAffichageWidget.append(self.lineEditVal1)
+
 class MonWidgetSimpTuple4 (Ui_WidgetTuple4,MonWidgetSimpTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+        #print (self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.nbValeurs=4
         MonWidgetSimpTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-      
+
 class MonWidgetSimpTuple5 (Ui_WidgetTuple5,MonWidgetSimpTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=5
         MonWidgetSimpTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-      
+
 class MonWidgetSimpTuple6 (Ui_WidgetTuple6,MonWidgetSimpTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=6
         MonWidgetSimpTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-      
+
 class MonWidgetSimpTuple7 (Ui_WidgetTuple7,MonWidgetSimpTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=7
         MonWidgetSimpTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-      
+
 class MonWidgetSimpTuple8 (Ui_WidgetTuple8,MonWidgetSimpTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=8
         MonWidgetSimpTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-      
+
 class MonWidgetSimpTuple9 (Ui_WidgetTuple9,MonWidgetSimpTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=9
         MonWidgetSimpTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-      
+
 class MonWidgetSimpTuple10 (Ui_WidgetTuple10,MonWidgetSimpTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=10
         MonWidgetSimpTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
index d377322fae95f18992d9b9fdb4d1ac242b926796..b3f45bec29876efc3dbca486d5c426f4b6fce51b 100644 (file)
@@ -24,14 +24,12 @@ import types,os
 # Modules Eficas
 from Extensions.i18n import tr
 
-from desWidgetSimpTxt  import Ui_WidgetSimpTxt 
+from desWidgetSimpTxt  import Ui_WidgetSimpTxt
 from .monWidgetSimpBase     import MonWidgetSimpBase
 
 
 class MonWidgetSimpTxt (Ui_WidgetSimpTxt,MonWidgetSimpBase):
 # c est juste la taille des differents widgets de base qui change
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         MonWidgetSimpBase.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-
-
index 27ce1aa3e6c7946720d7bc30acee6ee8adc009a7..7a535bd4ac15044afb5ef1d719d9827587213c66 100644 (file)
@@ -27,7 +27,7 @@ from PyQt5.QtWidgets import QLabel, QSizePolicy, QSpacerItem
 from PyQt5.QtCore    import QSize
 
 from InterfaceQT4.feuille                  import Feuille
-from InterfaceQT4.monWidgetPlusieursTuple  import MonWidgetPlusieursTuple 
+from InterfaceQT4.monWidgetPlusieursTuple  import MonWidgetPlusieursTuple
 from desWidgetPlusieursTuple               import Ui_WidgetPlusieursTuple
 from desWidgetTableau                      import Ui_WidgetTableau
 
@@ -35,7 +35,7 @@ maxLen=3
 
 
 class MonWidgetTableau (Ui_WidgetTableau,MonWidgetPlusieursTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         self.nbValeurs=len(monSimpDef.homo)
         MonWidgetPlusieursTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
 
@@ -43,7 +43,7 @@ class MonWidgetTableau (Ui_WidgetTableau,MonWidgetPlusieursTuple):
         sizePolicy.setHorizontalStretch(0)
         sizePolicy.setVerticalStretch(0)
 
+
         for i in range(len(monSimpDef.homo)):
             nomCol='LECol'+str(i+1)
             objCol=QLabel(self)
@@ -53,10 +53,8 @@ class MonWidgetTableau (Ui_WidgetTableau,MonWidgetPlusieursTuple):
             setattr(self,nomCol,objCol)
             spacerItem = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
             self.LATitre.addItem(spacerItem)
-            
         self.resize(self.width(),1800)
 
-  def ajoutLineEdit(self,valeur=None,inInit=False):
-      hauteurAvant=(self.frame.height())
-      MonWidgetPlusieursTuple.ajoutLineEdit(self,valeur,inInit)
-
+    def ajoutLineEdit(self,valeur=None,inInit=False):
+        hauteurAvant=(self.frame.height())
+        MonWidgetPlusieursTuple.ajoutLineEdit(self,valeur,inInit)
index 95d6f75ed5c0c25330c2c967e427c894f3f9b04d..4cc423dcf1093e29edb9a5cf3da4d9f24cfc200c 100644 (file)
@@ -27,7 +27,7 @@ from PyQt4.QtCore import *
 from Extensions.i18n import tr
 
 from .feuille               import Feuille
-from desWidgetUniqueSDCO   import Ui_WidgetUniqueSDCO 
+from desWidgetUniqueSDCO   import Ui_WidgetUniqueSDCO
 from .politiquesValidation  import PolitiqueUnique
 from .qtSaisie              import SaisieSDCO
 
@@ -36,7 +36,7 @@ from .qtSaisie              import SaisieSDCO
 
 class MonWidgetUniqueSDCO (Ui_WidgetUniqueSDCO,Feuille,SaisieSDCO):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         #print "dans MonWidgetSDCO"
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.politique=PolitiqueUnique(self.node,self.editor)
@@ -47,4 +47,3 @@ class MonWidgetUniqueSDCO (Ui_WidgetUniqueSDCO,Feuille,SaisieSDCO):
         valeur = self.node.item.getValeur()
         if valeur  != "" and valeur != None : self.LESDCO.setText(valeur.nom)
         self.connect(self.LESDCO,SIGNAL("returnPressed()"),self.LESDCOReturnPressed)
-
index 0225473d7dbaf47cdbdcc5b898d028b5fa581b89..a924bd19384a98a633fb75e2ba6057577f3ea2df 100644 (file)
@@ -25,13 +25,13 @@ import types,os
 from Extensions.i18n import tr
 
 from .feuille                           import Feuille
-from desWidgetVide                      import Ui_WidgetVide 
+from desWidgetVide                      import Ui_WidgetVide
 from InterfaceQT4.politiquesValidation  import PolitiqueUnique
 
 class MonWidgetVide (Ui_WidgetVide,Feuille):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
-        
+    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.politique=PolitiqueUnique(self.node,self.editor)
         t=self.node.item.object.definition.type[0].__name__
index 977a8329dd53958799c2fbf8bc91367be5c02b93..bf20a1dde55a875270b7ce2d201a25d07c9340bd 100644 (file)
@@ -20,7 +20,7 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import range
+    from builtins import range
 except : pass
 
 import types
@@ -31,264 +31,264 @@ from Extensions.i18n import tr
 #------------------
 class Validation(object)  :
 #------------------
-  def __init__(self,node,parent) :
-         self.node=node
-         self.parent=parent
+    def __init__(self,node,parent) :
+        self.node=node
+        self.parent=parent
 
-  def testeUneValeur(self,valeurentree):
-         commentaire = None
-         valeur,validite=self.node.item.evalValeur(valeurentree)
-         if not validite :
-                  commentaire = "impossible d'evaluer : %s " %repr(valeurentree)
-                  return valeur,validite,commentaire
-         if self.node.item.waitTxm() and not( type(valeur) == str) : valeur=str(valeur) 
 
-         testtype,commentaire = self.node.item.object.verifType(valeur)
-         if not testtype :
-                  return valeur,0,commentaire
+    def testeUneValeur(self,valeurentree):
+        commentaire = None
+        #import traceback
+        #traceback.print_stack()
+        valeur,validite=self.node.item.evalValeur(valeurentree)
+        if not validite :
+            commentaire = "impossible d'evaluer : %s " %repr(valeurentree)
+            return valeur,validite,commentaire
+        if self.node.item.waitTxm() and not( type(valeur) == str) : valeur=str(valeur)
 
-         valide=self.node.item.valideItem(valeur)
-         if type(valide) == tuple:
-                 validite,commentaire=valide
-         else :
-                 validite=valide
-                 commentaire=" "
+        testtype,commentaire = self.node.item.object.verifType(valeur)
+        if not testtype :
+            return valeur,0,commentaire
 
-         if not validite and commentaire is None:
-                  commentaire = "impossible d'evaluer : %s " %repr(valeurentree)
-         #print ('ds testeUneValeur', valeur, validite, commentaire)
-         return valeur, validite, commentaire
+        valide=self.node.item.valideItem(valeur)
+        if type(valide) == tuple:
+            validite,commentaire=valide
+        else :
+            validite=valide
+            commentaire=" "
+
+        if not validite and commentaire is None:
+            commentaire = "impossible d'evaluer : %s " %repr(valeurentree)
+        #print ('ds testeUneValeur', valeur, validite, commentaire)
+        return valeur, validite, commentaire
 
 # ----------------------------------------------------------------------------------------
 #   Methodes utilisees pour la manipulation des items en notation scientifique
 #   a mettre au point
 # ----------------------------------------------------------------------------------------
-  def setValeurTexte(self,texteValeur) :
-         try :
-                  if "R" in self.node.item.object.definition.type:
-                     if texteValeur[0] != "'":
-                        clef=eval(texteValeur)
-                        if str(clef) != str(texteValeur) :
-                           self.node.item.object.initModif()
-                           clefobj=self.node.item.object.getNomConcept()
-                           if not clefobj in self.parent.appliEficas.dict_reels:
-                              self.parent.appliEficas.dict_reels[clefobj] = {}
-                           self.parent.appliEficas.dict_reels[clefobj][clef]=texteValeur
-                           self.parent.appliEficas.dict_reels[clefobj]
-                           if clefobj=="" : 
-                              if not self.node.item.object.etape in self.parent.appliEficas.dict_reels :
-                                 self.parent.appliEficas.dict_reels[self.node.item.object.etape] = {}
-                              self.parent.appliEficas.dict_reels[self.node.item.object.etape][clef]=texteValeur
-                           self.node.item.object.finModif()
-         except:
+    def setValeurTexte(self,texteValeur) :
+        try :
+            if "R" in self.node.item.object.definition.type:
+                if texteValeur[0] != "'":
+                    clef=eval(texteValeur)
+                    if str(clef) != str(texteValeur) :
+                        self.node.item.object.initModif()
+                        clefobj=self.node.item.object.getNomConcept()
+                        if not clefobj in self.parent.appliEficas.dict_reels:
+                            self.parent.appliEficas.dict_reels[clefobj] = {}
+                        self.parent.appliEficas.dict_reels[clefobj][clef]=texteValeur
+                        self.parent.appliEficas.dict_reels[clefobj]
+                        if clefobj=="" :
+                            if not self.node.item.object.etape in self.parent.appliEficas.dict_reels :
+                                self.parent.appliEficas.dict_reels[self.node.item.object.etape] = {}
+                            self.parent.appliEficas.dict_reels[self.node.item.object.etape][clef]=texteValeur
+                        self.node.item.object.finModif()
+        except:
             pass
 
-  def getValeurTexte(self,valeur) :
-         valeurTexte=valeur
-         if valeur == None : return valeur
-         from decimal import Decimal
-         if  isinstance(valeur,Decimal) :
-             if self.node.waitTxm() and not self.isParam(valeur) : return "'"+str(valeur)+"'"
-             else : return(valeur)
-         if "R" in self.node.item.object.definition.type:
-                  clefobj=self.node.item.object.getNomConcept()
-                  if clefobj in self.parent.appliEficas.dict_reels:
-                     if valeur in self.parent.appliEficas.dict_reels[clefobj] :
-                        valeurTexte=self.parent.appliEficas.dict_reels[clefobj][valeur]
-                  else :
-                     if str(valeur).find('.') == -1 and str(valeur).find('e') == -1 and str(valeur).find('E'):
-                     # aucun '.' n'a ete trouve dans valeur --> on en rajoute un a la fin
-                        if (self.isParam(valeur)):
-                           return valeur
-                        else:
-                          try :
+    def getValeurTexte(self,valeur) :
+        valeurTexte=valeur
+        if valeur == None : return valeur
+        from decimal import Decimal
+        if  isinstance(valeur,Decimal) :
+            if self.node.waitTxm() and not self.isParam(valeur) : return "'"+str(valeur)+"'"
+            else : return(valeur)
+        if "R" in self.node.item.object.definition.type:
+            clefobj=self.node.item.object.getNomConcept()
+            if clefobj in self.parent.appliEficas.dict_reels:
+                if valeur in self.parent.appliEficas.dict_reels[clefobj] :
+                    valeurTexte=self.parent.appliEficas.dict_reels[clefobj][valeur]
+            else :
+                if str(valeur).find('.') == -1 and str(valeur).find('e') == -1 and str(valeur).find('E'):
+                # aucun '.' n'a ete trouve dans valeur --> on en rajoute un a la fin
+                    if (self.isParam(valeur)):
+                        return valeur
+                    else:
+                        try :
                             val2=eval(str(valeur)+'.')
-                          except :
+                        except :
                             pass
-         return valeurTexte
+        return valeurTexte
 
-  def isParam(self,valeur) :
-      for param in self.node.item.jdc.params:
-          if ((repr(param) == repr(valeur)) or (str(param)==str(valeur))):
-             return 1
-      return 0
+    def isParam(self,valeur) :
+        for param in self.node.item.jdc.params:
+            if ((repr(param) == repr(valeur)) or (str(param)==str(valeur))):
+                return 1
+        return 0
 
-  def ajoutDsDictReel(self,texteValeur):
-         # le try except est necessaire pour saisir les parametres
-         # on enleve l erreur de saisie 00 pour 0
-         if str(texteValeur)== '00' : return
-         try :
+    def ajoutDsDictReel(self,texteValeur):
+        # le try except est necessaire pour saisir les parametres
+        # on enleve l erreur de saisie 00 pour 0
+        if str(texteValeur)== '00' : return
+        try :
             if "R" in self.node.item.object.definition.type:
                 if str(texteValeur)[0] != "'":
-                   clef=eval(texteValeur)
-                   if str(clef) != str(texteValeur) :
-                      clefobj=self.node.item.object.getNomConcept()
-                      if not clefobj in self.parent.appliEficas :
-                          self.parent.appliEficas.dict_reels[clefobj] = {}
-                      self.parent.appliEficas.dict_reels[clefobj][clef]=texteValeur
-                      if clefobj=="" : 
-                         if not self.node.item.object.etape in self.parent.appliEficas.dict_reels :
-                            self.parent.appliEficas.dict_reels[self.node.item.object.etape] = {}
-                         self.parent.appliEficas.dict_reels[self.node.item.object.etape][clef]=texteValeur
-                          
-         except:
-          pass
+                    clef=eval(texteValeur)
+                    if str(clef) != str(texteValeur) :
+                        clefobj=self.node.item.object.getNomConcept()
+                        if not clefobj in self.parent.appliEficas :
+                            self.parent.appliEficas.dict_reels[clefobj] = {}
+                        self.parent.appliEficas.dict_reels[clefobj][clef]=texteValeur
+                        if clefobj=="" :
+                            if not self.node.item.object.etape in self.parent.appliEficas.dict_reels :
+                                self.parent.appliEficas.dict_reels[self.node.item.object.etape] = {}
+                            self.parent.appliEficas.dict_reels[self.node.item.object.etape][clef]=texteValeur
 
-  def ajoutDsDictReelEtape(self):
-      try:
-         if self.node.item.object in self.parent.appliEficas.dict_reels:
-            self.parent.appliEficas.dict_reels[self.node.item.sdnom]=self.parent.appliEficas.dict_reels[self.node.item.object]
-            del self.parent.appliEficas.dict_reels[self.node.item.object]
-      except :
-         pass
+        except:
+            pass
+
+    def ajoutDsDictReelEtape(self):
+        try:
+            if self.node.item.object in self.parent.appliEficas.dict_reels:
+                self.parent.appliEficas.dict_reels[self.node.item.sdnom]=self.parent.appliEficas.dict_reels[self.node.item.object]
+                del self.parent.appliEficas.dict_reels[self.node.item.object]
+        except :
+            pass
 
 
 #------------------------------------
 class PolitiqueUnique(Validation) :
 #------------------------------------
-  """
-  classe servant pour les entrees ne demandant qu un mot clef
-  """
-  def __init__(self,node,parent):
+    """
+    classe servant pour les entrees ne demandant qu un mot clef
+    """
+    def __init__(self,node,parent):
         Validation.__init__(self,node,parent)
 
-  def recordValeur(self,valeurentree):
-         if self.parent.modified == 'n' : self.parent.initModif()
-         ancienneVal = self.node.item.getValeur()
-         valeur,validite,commentaire =self.testeUneValeur(valeurentree)
-         if validite and ('R' in self.node.item.object.definition.type) and not(isinstance(valeur,PARAMETRE)) :
+    def recordValeur(self,valeurentree):
+        if self.parent.modified == 'n' : self.parent.initModif()
+        ancienneVal = self.node.item.getValeur()
+        valeur,validite,commentaire =self.testeUneValeur(valeurentree)
+        if validite and ('R' in self.node.item.object.definition.type) and not(isinstance(valeur,PARAMETRE)) :
             s=valeurentree
             if (s.find('.')== -1 and s.find('e')== -1 and s.find('E')==-1) : s=s+'.'
             valeur,validite,commentaire =self.testeUneValeur(s)
-         if validite :
+        if validite :
             validite=self.node.item.setValeur(valeur)
             if self.node.item.isValid():
-                  commentaire = tr("Valeur du mot-cle enregistree")
-                  #commentaire = "Valeur du mot-cle enregistree"
-                  self.setValeurTexte(str(valeurentree))
+                commentaire = tr("Valeur du mot-cle enregistree")
+                #commentaire = "Valeur du mot-cle enregistree"
+                self.setValeurTexte(str(valeurentree))
             else:
-                  cr = self.node.item.getCr()
-                  commentaire =  tr("Valeur du mot-cle non autorisee ")+cr.getMessFatal()
-                  self.node.item.setValeur(ancienneVal)
-         return validite, commentaire 
+                cr = self.node.item.getCr()
+                commentaire =  tr("Valeur du mot-cle non autorisee ")+cr.getMessFatal()
+                self.node.item.setValeur(ancienneVal)
+        return validite, commentaire
+
 
 #--------------------------------------
 class PolitiquePlusieurs(Validation):
 #--------------------------------------
-  """
-  classe servant pour les entrees ne demandant qu un mot clef
-  """
-  def __init__(self,node,parent) :
-         #print "ds PolitiquePlusieurs"
-         self.node=node
-         self.parent=parent
-         #print self.node
-         #print self.parent
+    """
+    classe servant pour les entrees ne demandant qu un mot clef
+    """
+    def __init__(self,node,parent) :
+        #print "ds PolitiquePlusieurs"
+        self.node=node
+        self.parent=parent
+        #print self.node
+        #print self.parent
 
 
-  def ajoutValeurs(self,listevaleur,index,listecourante):
-         listeRetour=[]
-         commentaire="Nouvelle valeur acceptee"
-         commentaire2=""
-         valide=1
-         if listevaleur==None: return
-         if listevaleur=="": return
-         if not( type(listevaleur)  in (list,tuple)) :
+    def ajoutValeurs(self,listevaleur,index,listecourante):
+        listeRetour=[]
+        commentaire="Nouvelle valeur acceptee"
+        commentaire2=""
+        valide=1
+        if listevaleur==None: return
+        if listevaleur=="": return
+        if not( type(listevaleur)  in (list,tuple)) :
             listevaleur=tuple(listevaleur)
-         # on verifie que la cardinalite max n a pas ete atteinte
-         min,max = self.node.item.getMinMax()
-         if len(listecourante) + len(listevaleur) > max :
+        # on verifie que la cardinalite max n a pas ete atteinte
+        min,max = self.node.item.getMinMax()
+        if len(listecourante) + len(listevaleur) > max :
             commentaire="La liste atteint le nombre maximum d'elements : "+ str(max) +" ,ajout refuse"
             return False,commentaire,commentaire2,listeRetour
 
-         for valeur in listevaleur :
-             # On teste le type de la valeur
-             valeurScientifique=valeur
-             valide=self.node.item.valideItem(valeur)
-             if not valide :
+        for valeur in listevaleur :
+                # On teste le type de la valeur
+            valeurScientifique=valeur
+            valide=self.node.item.valideItem(valeur)
+            if not valide :
                 try :
-                   valeur,valide=self.node.item.evalValeur(valeur)
-                   valide,commentaire2 = self.node.item.object.verifType(valeur)
+                    valeur,valide=self.node.item.evalValeur(valeur)
+                    valide,commentaire2 = self.node.item.object.verifType(valeur)
                 except :
-                   #return testtype,commentaire,"",listeRetour
-                   pass
-             if not valide:
+                    #return testtype,commentaire,"",listeRetour
+                    pass
+            if not valide:
                 if commentaire.find("On attend un chaine") > 1 :
-                   commentaire="Valeur "+str(valeur)+ " incorrecte : ajout a la liste refuse: On attend une chaine de caracteres < 8"
+                    commentaire="Valeur "+str(valeur)+ " incorrecte : ajout a la liste refuse: On attend une chaine de caracteres < 8"
                 else :
-                   commentaire="Valeur "+str(valeur)+ " incorrecte : ajout a la liste refuse"
+                    commentaire="Valeur "+str(valeur)+ " incorrecte : ajout a la liste refuse"
                 if commentaire2== "" :commentaire2=self.node.item.infoErreurItem()
                 return valide,commentaire,commentaire2,listeRetour
 
-             # On valide la liste obtenue
-             encorevalide=self.node.item.valideListePartielle(valeur,listecourante)
-             if not encorevalide :
+            # On valide la liste obtenue
+            encorevalide=self.node.item.valideListePartielle(valeur,listecourante)
+            if not encorevalide :
                 commentaire2=self.node.item.infoErreurListe()
                 # On traite le cas ou la liste n est pas valide pour un pb de cardinalite
                 min,max = self.node.item.getMinMax()
                 if len(listecourante) + 1 >= max :
-                   commentaire="La liste atteint le nombre maximum d'elements : "+ str(max) +" ,ajout refuse"
-                   return valide,commentaire,commentaire2,listeRetour
+                    commentaire="La liste atteint le nombre maximum d'elements : "+ str(max) +" ,ajout refuse"
+                    return valide,commentaire,commentaire2,listeRetour
                 if len(listecourante) + 1 > min :
-                   commentaire=""
-                   return valide,commentaire,commentaire2,listeRetour
-             # On ajoute la valeur testee a la liste courante et a la liste acceptee
-             self.ajoutDsDictReel(valeurScientifique)
-             listecourante.insert(index,valeur)
-             index=index+1
-             listeRetour.append(valeur)
+                    commentaire=""
+                    return valide,commentaire,commentaire2,listeRetour
+            # On ajoute la valeur testee a la liste courante et a la liste acceptee
+            self.ajoutDsDictReel(valeurScientifique)
+            listecourante.insert(index,valeur)
+            index=index+1
+            listeRetour.append(valeur)
 
-         return valide,commentaire,commentaire2,listeRetour
+        return valide,commentaire,commentaire2,listeRetour
 
-  def ajoutTuple(self,valeurTuple,listecourante):
-         listeRetour=[]
-         commentaire="Nouvelle valeur acceptee"
-         commentaire2=""
-         valide=1
-         if valeurTuple==None: return
-         if valeurTuple==['']: return
-         # On teste le type de la valeur
-         valide=self.node.item.valideItem(valeurTuple)
-         if not valide :
+    def ajoutTuple(self,valeurTuple,listecourante):
+        listeRetour=[]
+        commentaire="Nouvelle valeur acceptee"
+        commentaire2=""
+        valide=1
+        if valeurTuple==None: return
+        if valeurTuple==['']: return
+        # On teste le type de la valeur
+        valide=self.node.item.valideItem(valeurTuple)
+        if not valide :
             try :
                 valeur,valide=self.node.item.evalValeur(valeurTuple)
                 valide = self.node.item.valideItem(valeur)
             except :
                 pass
-         if not valide:
+        if not valide:
             commentaire="Valeur "+str(valeurTuple)+ " incorrecte : ajout a la liste refuse"
             commentaire2=self.node.item.infoErreurItem()
             return valide,commentaire,commentaire2,listeRetour
 
-         # On valide la liste obtenue
-         encorevalide=self.node.item.valideListePartielle(valeurTuple,listecourante)
-         if not encorevalide :
+        # On valide la liste obtenue
+        encorevalide=self.node.item.valideListePartielle(valeurTuple,listecourante)
+        if not encorevalide :
             commentaire2=self.node.item.infoErreurListe()
             return valide,commentaire,commentaire2,listeRetour
-         listeRetour.append(valeurTuple)
-         return valide,commentaire,commentaire2,listeRetour
+        listeRetour.append(valeurTuple)
+        return valide,commentaire,commentaire2,listeRetour
 
-  def ajoutNTuple(self,liste):
-         listeRetour=[]
-         commentaire="Nouvelles valeurs acceptee"
-         commentaire2=""
-         print (self.node.item.valideListePartielle)
-         valide=self.node.item.valideListePartielle(None,liste)
-         if not valide :
+    def ajoutNTuple(self,liste):
+        commentaire="Nouvelles valeurs acceptee"
+        commentaire2=""
+        valide=self.node.item.valideListePartielle(None,liste)
+        print ('uuuuuuuuuuu',valide)
+        if not valide :
             commentaire2=self.node.item.infoErreurListe()
-         return valide,commentaire,commentaire2,listeRetour
+        return valide,commentaire,commentaire2
 
-  def recordValeur(self,liste,dejaValide=True):
-         ancienneVal = self.node.item.getValeur()
-         validite=self.node.item.setValeur(liste)
-         if validite : self.node.item.initModif()
-         if self.node.item.isValid():
+    def recordValeur(self,liste,dejaValide=True):
+        ancienneVal = self.node.item.getValeur()
+        validite=self.node.item.setValeur(liste)
+        if validite : self.node.item.initModif()
+        if self.node.item.isValid():
             commentaire = tr("Valeur du mot-cle enregistree")
-         else:
+        else:
             cr = self.node.item.getCr()
             commentaire =  tr("Valeur du mot-cle non autorisee ")+cr.getMessFatal()
             self.node.item.setValeur(ancienneVal)
-         return validite, commentaire 
-
-      
+        return validite, commentaire
index 8007cef24ed3127eb39e258b2360d248639fbb78..6fc23c2236c5dc9583a643b99fbba095cbf3b369 100755 (executable)
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import os, sys
-import six
 
 
 from PyQt5.QtWidgets import QApplication, QMainWindow, QGridLayout, QBoxLayout, QMenu, QAction, QMessageBox
@@ -48,15 +47,15 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
     """
     Class implementing the main user interface.
     """
-    def __init__(self,code=None,salome=1,parent=None,ssCode=None,multi=False,langue='fr',ssIhm=False,versionCode=None):
+    def __init__(self,code=None,salome=1,parent=None, multi=False,langue='en',ssIhm=False, labelCode=None):
         """
         Constructor
         """
-        if ssIhm == True : 
-           print ('mauvaise utilisation de la classe Appli. Utiliser AppliSsIm SVP')
-           exit()
+        if ssIhm == True :
+            print ('mauvaise utilisation de la classe Appli. Utiliser AppliSsIm SVP')
+            exit()
 
-        AppliSsIhm.__init__(self,code,salome,parent,ssCode,multi,langue,ssIhm=True,versionCode=None)
+        AppliSsIhm.__init__(self,code,salome,parent,multi=multi,langue=langue,ssIhm=True, labelCode=labelCode)
         QMainWindow.__init__(self,parent)
         Ui_Eficas.__init__(self)
 
@@ -64,19 +63,23 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
         self.multi=multi
         self.demande=multi # voir PSEN
 
+
         if self.multi == False :
-             self.definitCode(code,ssCode)
-             if code==None: return
+            self.definitCode(code,None)
+            if code==None: return
         else :
-             print ('a programmer')
+            self.definitCode(code,None)
+            if code==None: return
+            print ('il faut trouver le chemin du code')
+            return
 
         self.suiteTelemac=False
         if hasattr (self, 'maConfiguration') :
-           if self.maConfiguration.force_langue :
-              from InterfaceQT4.monChoixLangue import MonChoixLangue
-              widgetLangue = MonChoixLangue(self)
-              ret=widgetLangue.exec_()
-           self.suiteTelemac=self.maConfiguration.suiteTelemac
+            if self.maConfiguration.demandeLangue :
+                from InterfaceQT4.monChoixLangue import MonChoixLangue
+                widgetLangue = MonChoixLangue(self)
+                ret=widgetLangue.exec_()
+            self.suiteTelemac=self.maConfiguration.suiteTelemac
 
 
         if not self.salome and hasattr (self, 'maConfiguration') and hasattr(self.maConfiguration,'lang') : self.langue=self.maConfiguration.lang
@@ -89,24 +92,22 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
         #else              : self.parentCentralWidget = None
 
         if not self.salome :
-           if  hasattr (self, 'maConfiguration') and hasattr(self.maConfiguration,'taille') : self.taille=self.maConfiguration.taille
-           else : self.taille=1700
+            if  hasattr (self, 'maConfiguration') and hasattr(self.maConfiguration,'taille') : self.taille=self.maConfiguration.taille
+            else : self.taille=1700
 
-           #if self.code in ['MAP',] : self.resize(1440,self.height())
-           #else : self.resize(self.taille,self.height())
-           self.resize(self.taille,self.height())
+            self.resize(self.taille,self.height())
 
 
         icon = QIcon(self.repIcon+"/parametres.png")
         self.actionParametres.setIcon(icon)
-        if  hasattr (self, 'maConfiguration') and self.maConfiguration.boutonDsMenuBar  : 
-           self.frameEntete.setMaximumSize(QSize(16777215,100))
-           self.frameEntete.setMinimumSize(QSize(0,100))
-        if  hasattr (self, 'maConfiguration') and self.maConfiguration.enleverActionStructures  : 
+        if  hasattr (self, 'maConfiguration') and self.maConfiguration.boutonDsMenuBar  :
+            self.frameEntete.setMaximumSize(QSize(16777215,100))
+            self.frameEntete.setMinimumSize(QSize(0,100))
+        if  hasattr (self, 'maConfiguration') and self.maConfiguration.enleverActionStructures  :
             self.enleverActionsStructures()
-        if  hasattr (self, 'maConfiguration') and self.maConfiguration.enleverParametres  : 
+        if  hasattr (self, 'maConfiguration') and self.maConfiguration.enleverParametres  :
             self.enleverParametres()
-        if  hasattr (self, 'maConfiguration') and self.maConfiguration.enleverSupprimer : 
+        if  hasattr (self, 'maConfiguration') and self.maConfiguration.enleverSupprimer :
             self.enleverSupprimer()
 
 
@@ -121,15 +122,15 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
         self.blEnteteGlob.insertLayout(0,self.blEntete)
 
 
-        
-        if  hasattr (self, 'maConfiguration') and self.maConfiguration.boutonDsMenuBar  : 
+
+        if  hasattr (self, 'maConfiguration') and self.maConfiguration.boutonDsMenuBar  :
             self.blEnteteCommmande = QBoxLayout(0)
             self.blEnteteCommmande.insertWidget(0,self.toolBarCommande)
             self.toolBarCommande.setIconSize(QSize(96,96))
             self.blEnteteGlob.insertLayout(-1,self.blEnteteCommmande)
         else :
             self.toolBarCommande.close()
-         
+
 
         if hasattr (self, 'maConfiguration') and self.maConfiguration.closeEntete==True and self.salome: self.closeEntete()
 
@@ -145,17 +146,18 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
         self.connecterSignaux()
         self.toolBar.addSeparator()
 
+
         if self.code != None : self.construitMenu()
 
         self.setWindowTitle(self.VERSION_EFICAS)
         try :
         #if 1 :
-         # print ('attention try devient if 1')
-          self.ouvreFichiers()
+         #print ('attention try devient if 1')
+            self.ouvreFichiers()
         except EficasException as exc:
         #except:
-        #  print "je suis dans le except"
-          if self.salome == 0 : exit()
+            print ("je suis dans le except")
+            if self.salome == 0 : exit()
 
         #self.adjustSize()
 
@@ -168,11 +170,11 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
         self.code=code
         self.ssCode=ssCode
         if self.code==None :
-           self.cleanPath()
-           from InterfaceQT4.monChoixCode import MonChoixCode
-           widgetChoix = MonChoixCode(self)
-           ret=widgetChoix.exec_()
-           #widgetChoix.show()
+            self.cleanPath()
+            from InterfaceQT4.monChoixCode import MonChoixCode
+            widgetChoix = MonChoixCode(self)
+            ret=widgetChoix.exec_()
+            #widgetChoix.show()
         if self.code == None:return # pour le cancel de la fenetre choix code
         AppliSsIhm.definitCode(self,self.code,ssCode)
 
@@ -189,20 +191,20 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
         self.initRecents()
         self.initAides()
         for intituleMenu in ("menuTraduction","menuOptions","menuMesh","menuExecution","menuN1"):
-              if hasattr(self,intituleMenu):
-                 menu=getattr(self,intituleMenu)
-                 menu.setAttribute(Qt.WA_DeleteOnClose)
-                 menu.close()
-                 delattr(self,intituleMenu)
+            if hasattr(self,intituleMenu):
+                menu=getattr(self,intituleMenu)
+                menu.setAttribute(Qt.WA_DeleteOnClose)
+                menu.close()
+                delattr(self,intituleMenu)
         for intituleAction in ("actionExecution","actionSaveRun"):
             if hasattr(self,intituleAction):
-              action=getattr(self,intituleAction)
-              self.toolBar.removeAction(action)
+                action=getattr(self,intituleAction)
+                self.toolBar.removeAction(action)
         if self.code.upper() in Appli.__dict__:
-          Appli.__dict__[self.code.upper()](self,)
+            Appli.__dict__[self.code.upper()](self,)
         if self.suiteTelemac : self.lookSuiteTelemac()
         self.metMenuAJourUtilisateurs()
-        if  hasattr (self, 'maConfiguration') and self.maConfiguration.ajoutExecution : 
+        if  hasattr (self, 'maConfiguration') and self.maConfiguration.ajoutExecution :
             self.ajoutExecution()
 
     def initAides(self):
@@ -215,10 +217,10 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
         self.fileDoc=os.path.join(self.docPath,fileName)
         self.actionCode.setText(tr("Aide specifique ")+str(self.code))
         if not os.path.isfile(self.fileDoc) :
-               self.fileDoc=""
-               self.docPath=""
-               self.actionCode.setEnabled(False)
-               return
+            self.fileDoc=""
+            self.docPath=""
+            self.actionCode.setEnabled(False)
+            return
 
         self.actionCode.setEnabled(True)
         self.menuAide.addAction(self.actionCode)
@@ -268,14 +270,14 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
         self.menuExecution = self.menubar.addMenu(tr("&Run"))
         self.actionExecution = QAction(self)
         if sys.platform[0:5]=="linux":
-          icon6 = QIcon(self.repIcon+"/roue.png")
-          self.actionExecution.setIcon(icon6)
+            icon6 = QIcon(self.repIcon+"/roue.png")
+            self.actionExecution.setIcon(icon6)
         else :
-          self.actionExecution.setText(tr("Run"))
+            self.actionExecution.setText(tr("Run"))
         self.actionExecution.setObjectName("actionExecution")
         self.menuExecution.addAction(self.actionExecution)
         if not(self.actionExecution in self.toolBar.actions()):
-           self.toolBar.addAction(self.actionExecution)
+            self.toolBar.addAction(self.actionExecution)
         self.actionExecution.setText(tr("Run"))
         self.actionExecution.triggered.connect(self.run)
 
@@ -286,7 +288,7 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
         self.actionSaveRun.setObjectName("actionSaveRun")
         self.menuExecution.addAction(self.actionSaveRun)
         if not(self.actionSaveRun in self.toolBar.actions()):
-           self.toolBar.addAction(self.actionSaveRun)
+            self.toolBar.addAction(self.actionSaveRun)
         self.actionSaveRun.setText(tr("Save Run"))
         self.actionSaveRun.triggered.connect(self.saveRun)
 
@@ -396,7 +398,6 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
         self.enleverParametres()
 
     def PSEN(self):
-        if self.first:  self.first=0
         try : self.action_Nouveau.triggered.disconnect(self.fileNew)
         except : pass
         try : self.action_Nouveau.triggered.disconnect(self.newPSEN)
@@ -442,9 +443,9 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
     def ChercheGrpMesh(self):
         Msg,listeGroup=self.ChercheGrpMeshInSalome()
         if Msg == None :
-           self.viewmanager.handleAjoutGroup(listeGroup)
+            self.viewmanager.handleAjoutGroup(listeGroup)
         else :
-           print ("il faut gerer les erreurs")
+            print ("il faut gerer les erreurs")
 
     def ChercheGrpMaille(self):
         # Normalement la variable self.salome permet de savoir si on est ou non dans Salome
@@ -454,9 +455,9 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
         except:
             raise ValueError('Salome non ouvert')
         if Msg == None :
-           self.viewmanager.handleAjoutGroup(listeGroup)
+            self.viewmanager.handleAjoutGroup(listeGroup)
         else :
-           print ("il faut gerer les erreurs")
+            print ("il faut gerer les erreurs")
 
 
     def ChercheGrp(self):
@@ -646,57 +647,53 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
     # Mise a jour du menu des fichiers recemment ouverts
         from Editeur import listePatrons
         if not(self.code in listePatrons.sous_menus) :
-           if hasattr(self,"menuPatrons"):
-              self.menuPatrons.setAttribute(Qt.WA_DeleteOnClose)
-              self.menuPatrons.close()
-              delattr(self,"menuPatrons")
-           return
+            if hasattr(self,"menuPatrons"):
+                self.menuPatrons.setAttribute(Qt.WA_DeleteOnClose)
+                self.menuPatrons.close()
+                delattr(self,"menuPatrons")
+            return
         if (not hasattr(self,"menuPatrons")):
-           self.menuPatrons = QMenu(self.menubar)
-           self.menuPatrons.setObjectName("menuPatrons")
-           self.menubar.addAction(self.menuPatrons.menuAction())
-           self.menuPatrons.setTitle(tr("Patrons"))
+            self.menuPatrons = QMenu(self.menubar)
+            self.menuPatrons.setObjectName("menuPatrons")
+            self.menubar.addAction(self.menuPatrons.menuAction())
+            self.menuPatrons.setTitle(tr("Patrons"))
         else :
-           self.menuPatrons.clear()
+            self.menuPatrons.clear()
         self.listePatrons = listePatrons.listePatrons(self.code)
         idx = 0
         for nomSsMenu in self.listePatrons.liste:
             ssmenu=self.menuPatrons.addMenu(nomSsMenu)
             for fichier in self.listePatrons.liste[nomSsMenu]:
-               id = ssmenu.addAction(fichier)
-               self.ficPatrons[id]=fichier
-               self.id.triggered.connect(self.handleOpenPatrons)
+                id = ssmenu.addAction(fichier)
+                self.ficPatrons[id]=fichier
+                self.id.triggered.connect(self.handleOpenPatrons)
             #   self.Patrons.setItemParameter(id,idx)
-               idx=idx+1
+                idx=idx+1
 
     def initRecents(self):
-       self.recent =  []
-       try :
-           rep=os.path.join(os.path.expanduser("~"),'.config/Eficas',self.code)
-           #if sys.platform[0:5]=="linux" :
-              #rep=os.path.join(os.environ['HOME'],'.config/Eficas',self.code)
-           #else :
-           #   rep=os.path.join('C:/','.config/Eficas',self.code)
-           monFichier=rep+"/listefichiers_"+self.code
-           index=0
-           f=open(monFichier)
-           while ( index < 9) :
-              ligne=f.readline()
-              if ligne != "" :
-                 l=(ligne.split("\n"))[0]
-                 self.recent.append(l)
-              index=index+1
-       except :
-           pass
-
-       try    : f.close()
-       except : pass
+        self.recent =  []
+        try :
+            rep=os.path.join(os.path.expanduser("~"),'.config/Eficas',self.code)
+            monFichier=rep+"/listefichiers_"+self.code
+            index=0
+            f=open(monFichier)
+            while ( index < 9) :
+                ligne=f.readline()
+                if ligne != "" :
+                    l=(ligne.split("\n"))[0]
+                    self.recent.append(l)
+                index=index+1
+        except :
+            pass
+
+        try    : f.close()
+        except : pass
 
     def addToRecentList(self, fn):
-      while fn in self.recent: self.recent.remove(fn)
-      self.recent.insert(0,fn)
-      if len(self.recent) > 9:
-         self.recent = self.recent[:9]
+        while fn in self.recent: self.recent.remove(fn)
+        self.recent.insert(0,fn)
+        if len(self.recent) > 9:
+            self.recent = self.recent[:9]
 
 
     def addToRecentListQT4(self, fn):
@@ -713,24 +710,24 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
         self.sauveRecents()
 
     def sauveRecents(self) :
-       try :
-         rep=self.maConfiguration.rep_user
-         monFichier=rep+"/listefichiers_"+self.code
-       except :
-         return
-       try :
+        try :
+            rep=self.maConfiguration.rep_user
+            monFichier=rep+"/listefichiers_"+self.code
+        except :
+            return
+        try :
             f=open(monFichier,'w')
             if len(self.recent) == 0 : return
             index=0
             while ( index <  len(self.recent)):
-              ligne=str(self.recent[index])+"\n"
-              f.write(ligne)
-              index=index+1
-       except :
+                ligne=str(self.recent[index])+"\n"
+                f.write(ligne)
+                index=index+1
+        except :
             pass
-       try :
+        try :
             f.close()
-       except :
+        except :
             pass
 
 
@@ -761,49 +758,49 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
         repAide=os.path.dirname(os.path.abspath(__file__))
         maD=os.path.join( repAide,'..','Doc')
         try :
-          indexAide=os.path.join(maD,'index.html')
-          if sys.platform[0:5]=="linux" : cmd="xdg-open "+indexAide
-          else                          : cmd="start "+indexAide
-          os.system(cmd)
+            indexAide=os.path.join(maD,'index.html')
+            if sys.platform[0:5]=="linux" : cmd="xdg-open "+indexAide
+            else                          : cmd="start "+indexAide
+            os.system(cmd)
         except:
-          QMessageBox.warning( self,tr( "Aide Indisponible"),tr( "l'aide n est pas installee "))
+            QMessageBox.warning( self,tr( "Aide Indisponible"),tr( "l'aide n est pas installee "))
 
     def aidePSEN(self) :
         repAide=os.path.dirname(os.path.abspath(__file__))
         maD=os.path.join( repAide,'..','Doc')
         try :
-          indexAide=os.path.join(maD,'index.html')
-          if sys.platform[0:5]=="linux" : cmd="xdg-open "+indexAide
-          else                          : cmd="start "+indexAide
-          os.system(cmd)
+            indexAide=os.path.join(maD,'index.html')
+            if sys.platform[0:5]=="linux" : cmd="xdg-open "+indexAide
+            else                          : cmd="start "+indexAide
+            os.system(cmd)
         except:
-          QMessageBox.warning( self,tr( "Aide Indisponible"),tr( "l'aide n est pas installee "))
+            QMessageBox.warning( self,tr( "Aide Indisponible"),tr( "l'aide n est pas installee "))
 
     def aideCode(self) :
         if self.code==None : return
         try :
         #if 1 :
-          if sys.platform[0:5]=="linux" : cmd="xdg-open "+self.fileDoc
-          else                          : cmd="start "+self.fileDoc
-          os.system(cmd)
+            if sys.platform[0:5]=="linux" : cmd="xdg-open "+self.fileDoc
+            else                          : cmd="start "+self.fileDoc
+            os.system(cmd)
         except:
         #else:
-          QMessageBox.warning( self,tr( "Aide Indisponible"),tr( "l'aide n est pas installee "))
+            QMessageBox.warning( self,tr( "Aide Indisponible"),tr( "l'aide n est pas installee "))
 
 
     def optionEditeur(self) :
         try :
-           name='monOptions_'+self.code
+            name='monOptions_'+self.code
         except :
-           QMessageBox.critical( self,tr( "Parametrage"),tr( "Veuillez d abord choisir un code"))
-           return
+            QMessageBox.critical( self,tr( "Parametrage"),tr( "Veuillez d abord choisir un code"))
+            return
         try :
         #if 1:
-           optionCode=__import__(name)
+            optionCode=__import__(name)
         except :
         #else :
-           QMessageBox.critical( self, tr("Parametrage"), tr("Pas de possibilite de personnalisation de la configuration "))
-           return
+            QMessageBox.critical( self, tr("Parametrage"), tr("Pas de possibilite de personnalisation de la configuration "))
+            return
         monOption=optionCode.Options(parent=self,modal = 0 ,configuration=self.maConfiguration)
         monOption.show()
 
@@ -850,7 +847,7 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
         try:
             self.viewmanager.newEditor()
         except EficasException as exc:
-            msg = six.text_type(exc)
+            msg = str(exc)
             if msg != "": QMessageBox.warning(self, tr(u"Erreur"), msg)
 
     def openProcess(self):
@@ -871,7 +868,7 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
         try:
             self.viewmanager.handleOpen()
         except EficasException as exc:
-            msg = six.text_type(exc)
+            msg = str(exc)
             if msg != "":
                 QMessageBox.warning(self, tr(u"Erreur"), msg)
 
@@ -946,32 +943,32 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
     def cleanPath(self):
         for pathCode in self.ListePathCode:
             try:
-              aEnlever=os.path.abspath(os.path.join(os.path.dirname(__file__),'..',pathCode))
-              sys.path.remove(aEnlever)
+                aEnlever=os.path.abspath(os.path.join(os.path.dirname(__file__),'..',pathCode))
+                sys.path.remove(aEnlever)
             except :
-              pass
+                pass
         for pathCode in self.listeAEnlever:
             try:
-              sys.path.remove(aEnlever)
+                sys.path.remove(aEnlever)
             except :
-              pass
+                pass
 
 
     def closeEvent(self,event):
-      res=self.fileExit()
-      if res==2 : event.ignore()
+        res=self.fileExit()
+        if res==2 : event.ignore()
+
 
     def remplitIconesCommandes(self):
         if self.maConfiguration.boutonDsMenuBar == False : return
         if not hasattr(self, 'readercata') : return
         from monLayoutBouton import MonLayoutBouton
         if hasattr(self,'monLayoutBoutonRempli') : return
         self.monLayoutBoutonRempli=MonLayoutBouton(self)
-        
+
     def handleAjoutEtape(self,nomEtape):
         self.viewmanager.handleAjoutEtape(nomEtape)
-     
+
     def metMenuAJourUtilisateurs(self):
         self.lesFonctionsUtilisateurs={}
         if self.code not in self.mesScripts : return
@@ -981,14 +978,15 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
             self.menuOptions = self.menubar.addMenu("menuOptions")
             self.menuOptions.setTitle(tr(titre))
             for elt in lesFonctions :
-               laFonctionUtilisateur, label, lesArguments = elt
-               action = QAction(self)
-               action.setText(label)
+                laFonctionUtilisateur, label, lesArguments = elt
+                action = QAction(self)
+                action.setText(label)
             #action.triggered.connect(self.appelleFonctionUtilisateur)
-               self.menuOptions.addAction(action)
-               self.lesFonctionsUtilisateurs[action]=(laFonctionUtilisateur, lesArguments)
+                self.menuOptions.addAction(action)
+                self.lesFonctionsUtilisateurs[action]=(laFonctionUtilisateur, lesArguments)
             self.menuOptions.triggered.connect(self.handleFonctionUtilisateur)
 
+
     def handleFonctionUtilisateur(self,action) :
         (laFonctionUtilisateur, lesArguments)=self.lesFonctionsUtilisateurs[action]
         self.viewmanager.handleFonctionUtilisateur(laFonctionUtilisateur, lesArguments)
@@ -1000,13 +998,6 @@ if __name__=='__main__':
     sys.path.append(rep)
     from Adao import prefs
     from Adao import prefs_Adao
-    #if hasattr(prefsCode,'encoding'):
-       # Hack pour changer le codage par defaut des strings
-       #import sys
-       #reload(sys)
-       #sys.setdefaultencoding(prefsCode.encoding)
-       #del sys.setdefaultencoding
-       # Fin hack
 
     from Editeur import import_code
     from Editeur import session
index 9446eeb73244ba1219a54bf8df53aeffbcd3d33b..56e2ba50d9347da49d1e5866ba9ee612fc13134c 100755 (executable)
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 
+
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import os, sys
-import six
 
 from Extensions.eficas_exception import EficasException
 from Extensions import param2
-
 from InterfaceQT4.getVersion import getEficasVersion
 from InterfaceQT4.viewManagerSsIhm import MyViewManagerSsIhm
-#from editorSsIhm import JDCEditorSsIhm
+from Editeur        import session
 
 
 class AppliSsIhm:
     """
     Class implementing the main user interface.
     """
-    def __init__(self,code=None,salome=1,parent=None,ssCode=None,multi=False,langue='fr',ssIhm=True,versionCode=None):
+    def __init__(self,code=None,salome=1,parent=None,multi=False,langue='fr',ssIhm=True,labelCode=None,genereXSD=False,versionCode=None,ssCode=None,fichierCata=None):
         """
         Constructor
         """
         version=getEficasVersion()
         self.VERSION_EFICAS="Eficas QT5 Salome " + version
-        self.versionCode=versionCode
+        self.labelCode=labelCode
 
         self.salome=salome
         self.ssIhm=True
         self.code=code
+        self.genereXSD=genereXSD
+        self.versionCode=versionCode
+        self.ssCode=ssCode
 
         self.dict_reels={}
         self.fichierIn=None
@@ -63,25 +65,30 @@ class AppliSsIhm:
         self.listeCode=['Adao','ADAO','Carmel3D','Telemac','CF','MAP','ZCracks', 'SEP','SPECA','PSEN_Eficas','PSEN_N1']
         self.repIcon=os.path.join( os.path.dirname(os.path.abspath(__file__)),'..','Editeur','icons')
 
+        if fichierCata== None: self.fichierCata=session.d_env.fichierCata
+        else : self.fichierCata=fichierCata
+        if session.d_env.labelCode : self.labelCode=session.d_env.labelCode
+        self.withXSD=session.d_env.withXSD
+
         if self.salome:
-          import Accas
-          try :
-            import eficasSalome
-            Accas.SalomeEntry = eficasSalome.SalomeEntry
-          except : 
-            print ('eficas hors salome')
+            import Accas
+            try :
+                import eficasSalome
+                Accas.SalomeEntry = eficasSalome.SalomeEntry
+            except :
+                print ('eficas hors salome')
 
         self.multi=multi
-        if self.multi : 
-              print ('pas de multi sans ihm')
+        if self.multi :
+            print ('pas de multi sans ihm')
 
 
         if langue=='fr': self.langue=langue
         else           : self.langue="ang"
 
         if self.multi == False :
-             self.definitCode(code,ssCode)
-             if code==None: return
+            self.definitCode(code,ssCode)
+            if code==None: return
 
         self.suiteTelemac=False
         self.viewmanager=MyViewManagerSsIhm(self)
@@ -92,23 +99,34 @@ class AppliSsIhm:
         self.ssCode=ssCode
         if self.code == None:return # pour le cancel de la fenetre choix code
 
-        name='prefs_'+self.code
-        prefsCode=__import__(name)
+        try :
+            name='prefs_'+self.code
+            prefsCode=__import__(name)
+            self.repIni=prefsCode.repIni
+        except :
+            self.repIni=os.path.dirname(os.path.abspath(__file__))
+
 
-        self.repIni=prefsCode.repIni
         if ssCode != None :
-           self.format_fichier= ssCode  #par defaut
-           prefsCode.NAME_SCHEME=ssCode
+            self.formatFichierOut = ssCode  #par defaut
+            prefsCode.NAME_SCHEME = ssCode
         else :
-           self.format_fichier="python" #par defaut
+            self.formatFichierIn  = "python" #par defaut
+            self.formatFichierOut = "python" #par defaut
 
         nameConf='configuration_'+self.code
-        configuration=__import__(nameConf)
-        self.maConfiguration = configuration.make_config(self,prefsCode.repIni)
+        try :
+            configuration=__import__(nameConf)
+            self.maConfiguration = configuration.make_config(self,self.repIni)
+        except :
+            from InterfaceQT4.configuration import makeConfig
+            #self.maConfiguration = configuration.makeConfig(self,prefsCode.repIni)
+            self.maConfiguration = makeConfig(self,self.repIni)
 
         if hasattr (self,'maConfiguration') and self.maConfiguration.translatorFichier :
-           from Extensions import localisation
-           localisation.localise(None,self.langue,translatorFichier=self.maConfiguration.translatorFichier)
+            from Extensions import localisation
+            localisation.localise(None,self.langue,translatorFichier=self.maConfiguration.translatorFichier)
+        if self.withXSD : self.maConfiguration.withXSD=True
 
 
     def getSource(self,file):
@@ -121,20 +139,29 @@ class AppliSsIhm:
 
 
     def initEditor(self,fichier = None,jdc = None, units = None,include=0):
-        if self.editor != None : 
-           print ('un seul editeur par appli')
-           sys.Exit()
-        self.editor = JDCEditorSsIhm(self,fichier, jdc, self.myQtab,units=units,include=include)
-        
+        if (hasattr(self, 'editor')) and self.editor != None :
+            print ('un seul editeur par application')
+            sys.exit()
+        self.editor = self.viewmanager.getNewEditorNormal()
+
+    def initEditorNormal(self,fichier = None,jdc = None, units = None,include=0):
+        if (hasattr(self, 'editor')) and self.editor != None :
+            print ('un seul editeur par application')
+            sys.Exit()
+        #self.editor = JDCEditorSsIhm(self,fichier, jdc, self.myQtab,units=units,include=include)
+        self.editor = self.viewmanager.getNewEditorNormal()
+
 
     def fileNew(self):
-        self.editor=initEditor(self)
+        self.editor=self.initEditor()
 
     def getEditor(self):
+        if (hasattr(self, 'editor')) and self.editor != None : return self.editor
+        self.initEditor()
         return self.editor
 
     def fileOpen(self,fichier):
-        fichierIn = os.path.abspath(six.text_type(fichier))
+        fichierIn = os.path.abspath(fichier)
         try:
             monEditor=self.viewmanager.handleOpen(fichierIn)
         except EficasException as exc:
@@ -152,10 +179,13 @@ class AppliSsIhm:
         ok = editor.saveFileAs()
         print ('ok ',ok)
 
-    def dumpXsd(self):
-        current_cata    = CONTEXT.getCurrentCata()
-        current_cata.dumpXsd()
-        if self.maConfiguration.afficheIhm==False : exit()
+    def dumpXsd(self, avecEltAbstrait = False):
+        currentCata    = CONTEXT.getCurrentCata()
+        texteXSD = currentCata.dumpXsd( avecEltAbstrait)
+        return texteXSD
+        #if self.maConfiguration.afficheIhm==False : exit()
+        #else : return texteXSD
+
 
 #,self.fileSaveAs
 #,self.fileClose
@@ -164,10 +194,10 @@ class AppliSsIhm:
 #,self.jdcRegles
 #,self.jdcFichierSource
 #,self.visuJdcPy
-       
+
 
 
 if __name__=='__main__':
 
     # Modules Eficas
-    monEficas= AppliSsIhm(code='Adao',salome=0,versionCode='V83')
+    monEficas= AppliSsIhm(code='Adao',salome=0,labelCode='V83')
diff --git a/InterfaceQT4/qtEficas_with_log.py b/InterfaceQT4/qtEficas_with_log.py
deleted file mode 100644 (file)
index f52e7e3..0000000
+++ /dev/null
@@ -1,612 +0,0 @@
-# -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2021   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-
-import os, sys
-
-
-from PyQt4.QtGui  import *
-from PyQt4.QtCore import *
-from myMain import Ui_Eficas
-from viewManager import MyTabview
-from getVersion import getEficasVersion
-
-from Extensions.i18n import tr
-from Extensions.eficas_exception import EficasException
-
-from Editeur import session
-import Accas 
-
-
-class Appli(Ui_Eficas,QMainWindow):
-    """
-    Class implementing the main user interface.
-    """
-    def __init__(self,code=None,salome=0,parent=None,ssCode=None,multi=False,langue='fr'):
-        """
-        Constructor
-        """
-        QMainWindow.__init__(self,parent)
-        Ui_Eficas.__init__(self)
-        self.setupUi(self)
-
-        version=getEficasVersion()
-        self.VERSION_EFICAS="Eficas QT4 "+version
-        self.salome=salome
-        self.ihm="QT"
-        self.top = self    #(pour CONFIGURATION)
-        self.QWParent=None #(Pour lancement sans IHM)
-        self.code=code
-        self.indice=0
-        self.dict_reels={}
-        self.recent =  QStringList()
-        self.ficRecents={}
-        self.listeAEnlever=[]
-        self.ListeCode=['Aster','Carmel3D','Cuve2dg','Openturns_Study','Openturns_Wrapper','MAP']
-        myFilter = MyEventFilter()
-        self.installEventFilter(myFilter)
-
-
-        self.repIcon=os.path.join( os.path.dirname(os.path.abspath(__file__)),'../Editeur/icons')
-        self.multi=multi
-        if langue=='fr': self.langue=langue
-        else           : self.langue="ang"
-        if self.multi == False :
-             self.definitCode(code,ssCode)
-             if code==None: return
-
-        eficas_root_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
-        self.ajoutIcones()
-
-        self.viewmanager = MyTabview(self)
-        self.recentMenu=self.menuFichier.addMenu(tr('&Recents'))
-        self.connecterSignaux()
-        if self.code != None : self.construitMenu()
-
-
-        self.ouvreFichiers()
-        self.setWindowTitle(self.VERSION_EFICAS)
-
-    #def eventFilter(QObject watched, QEvent e) :
-    #def eventFilter(watched, e) :
-    #    print "hhhhhhhhhhhhhhhhhhhhhh"
-    #    return QMainWindow.eventFilter(watched, e)
-
-    def definitCode(self,code,ssCode) :
-        self.code=code
-        self.ssCode=ssCode
-        if self.code==None :
-           self.cleanPath()
-           from monChoixCode import MonChoixCode
-           widgetChoix = MonChoixCode(self)
-           ret=widgetChoix.exec_()
-        import sys
-        if self.code == None:return # pour le cancel de la fenetre choix code
-        name='prefs_'+self.code
-        prefsCode=__import__(name)
-
-        self.repIni=prefsCode.repIni
-        if ssCode != None :
-           self.format_fichier= ssCode  #par defaut
-           prefsCode.NAME_SCHEME=ssCode
-        else :
-           self.format_fichier="python" #par defaut
-
-        nameConf='configuration_'+self.code
-        configuration=__import__(nameConf)
-        self.CONFIGURATION = configuration.make_config(self,prefsCode.repIni)
-        self.CONFIGStyle = None
-        if hasattr(configuration,'make_config_style'):
-           self.CONFIGStyle = configuration.make_config_style(self,prefsCode.repIni)
-        if hasattr(prefsCode,'encoding'):
-           import sys
-           reload(sys)
-           sys.setdefaultencoding(prefsCode.encoding)
-
-    def construitMenu(self):
-        self.initPatrons()
-        self.initRecents()
-        self.initAides()
-        for intituleMenu in ("menuTraduction","menuOptions","menuMesh","menuExecution"):
-              if hasattr(self,intituleMenu):
-                 menu=getattr(self,intituleMenu)
-                 menu.setAttribute(Qt.WA_DeleteOnClose)
-                 menu.close()
-                 delattr(self,intituleMenu)
-        for intituleAction in ("actionExecution","actionSaveRun",):
-            if hasattr(self,intituleAction):
-              action=getattr(self,intituleAction)
-              self.toolBar.removeAction(action)
-        if self.code in Appli.__dict__.keys():
-          listeTexte=apply(Appli.__dict__[self.code],(self,))
-
-    def initAides(self):
-        #print "je passe la"
-        repAide=os.path.dirname(os.path.abspath(__file__))
-        fileName='index.html'
-        self.docPath=repAide+"/../Aide"
-        if hasattr(self,'CONFIGURATION') and hasattr(self.CONFIGURATION,'docPath') : self.docPath=self.CONFIGURATION.docPath
-        if hasattr(self,'CONFIGURATION') and hasattr(self.CONFIGURATION,'fileName'):fileName=self.CONFIGURATION.fileName
-        self.fileDoc=os.path.join(self.docPath,fileName)
-        self.actionCode.setText(tr("Aide specifique ")+str(self.code))
-        if not os.path.isfile(self.fileDoc) :
-               self.fileDoc=""
-               self.docPath=""
-               self.actionCode.setEnabled(False)
-               return
-
-        self.actionCode.setEnabled(True)
-        self.menuAide.addAction(self.actionCode)
-
-    def MAP(self):
-        self.menuExecution = self.menubar.addMenu(QApplication.translate("Eficas", "Execution", None, QApplication.UnicodeUTF8))
-        self.actionExecution = QAction(self)
-        icon6 = QIcon(self.repIcon+"/compute.png")
-        self.actionExecution.setIcon(icon6)
-        self.actionExecution.setObjectName("actionExecution")
-        self.menuExecution.addAction(self.actionExecution)
-        if not(self.actionExecution in self.toolBar.actions()):
-           self.toolBar.addAction(self.actionExecution)
-        self.actionExecution.setText(QApplication.translate("Eficas", "Execution ", None, QApplication.UnicodeUTF8))
-        self.connect(self.actionExecution,SIGNAL("activated()"),self.run)
-
-        self.actionSaveRun = QAction(self)
-        icon7 = QIcon(self.repIcon+"/export_MAP.png")
-        self.actionSaveRun.setIcon(icon7)
-        self.actionSaveRun.setObjectName("actionSaveRun")
-        self.menuExecution.addAction(self.actionSaveRun)
-        if not(self.actionSaveRun in self.toolBar.actions()):
-           self.toolBar.addAction(self.actionSaveRun)
-        self.actionSaveRun.setText(QApplication.translate("Eficas", "Save Run", None, QApplication.UnicodeUTF8))
-        self.connect(self.actionSaveRun,SIGNAL("activated()"),self.saveRun)
-
-        self.menuOptions = self.menubar.addMenu("menuOptions")
-        self.menuOptions.addAction(self.actionParametres_Eficas)
-        self.menuOptions.setTitle(tr("Options"))
-
-
-    def ASTER(self) :
-        self.menuTraduction = self.menubar.addMenu("menuTraduction")
-        self.menuTraduction.addAction(self.actionTraduitV7V8)
-        self.menuTraduction.addAction(self.actionTraduitV8V9)
-        self.menuTraduction.addAction(self.actionTraduitV9V10)
-        self.menuTraduction.setTitle(tr("Traduction"))
-
-        self.menuOptions = self.menubar.addMenu("menuOptions")
-        self.menuOptions.addAction(self.actionParametres_Eficas)
-        self.menuOptions.addAction(self.actionLecteur_Pdf)
-        self.menuOptions.setTitle(tr("Options"))
-
-    def CARMEL3D(self):
-        #if self.salome == 0 : return
-        self.menuMesh = self.menubar.addMenu("menuMesh")
-        self.menuMesh.setObjectName("Mesh")
-        self.menuMesh.addAction(self.actionChercheGrpMaille)
-
-    def ChercheGrpMesh(self):
-        Msg,listeGroup=self.ChercheGrpMeshInSalome()
-        if Msg == None :
-           self.viewmanager.handleAjoutGroup(listeGroup)
-        else :
-           print "il faut gerer les erreurs"
-
-    def ChercheGrpMaille(self):
-        Msg,listeGroup=self.ChercheGrpMailleInSalome()
-        if Msg == None :
-           self.viewmanager.handleAjoutGroup(listeGroup)
-        else :
-           print "il faut gerer les erreurs"
-
-
-    def ajoutIcones(self) :
-        # Pour pallier les soucis de repertoire d icone
-        icon = QIcon(self.repIcon+"/New24.png")
-        self.action_Nouveau.setIcon(icon)
-        icon1 = QIcon(self.repIcon+"/Open24.png")
-        self.action_Ouvrir.setIcon(icon1)
-        icon2 = QIcon(self.repIcon+"/Save24.png")
-        self.actionEnregistrer.setIcon(icon2)
-        icon3 = QIcon(self.repIcon+"/Cut24.png")
-        self.actionCouper.setIcon(icon3)
-        icon4 = QIcon(self.repIcon+"/Copy24.png")
-        self.actionCopier.setIcon(icon4)
-        icon5 = QIcon(self.repIcon+"/Paste24.png")
-        self.actionColler.setIcon(icon5)
-        icon6 = QIcon(self.repIcon+"/Delete24.png")
-        self.actionSupprimer.setIcon(icon6)
-
-
-
-    def connecterSignaux(self) :
-        self.connect(self.recentMenu,SIGNAL('aboutToShow()'),self.handleShowRecentMenu)
-
-        self.connect(self.action_Nouveau,SIGNAL("activated()"),self.fileNew)
-        self.connect(self.actionNouvel_Include,SIGNAL("activated()"),self.NewInclude)
-        self.connect(self.action_Ouvrir,SIGNAL("activated()"),self.fileOpen)
-        self.connect(self.actionEnregistrer,SIGNAL("activated()"),self.fileSave)
-        self.connect(self.actionEnregistrer_sous,SIGNAL("activated()"),self.fileSaveAs)
-        self.connect(self.actionFermer,SIGNAL("activated()"),self.fileClose)
-        self.connect(self.actionFermer_tout,SIGNAL("activated()"),self.fileCloseAll)
-        self.connect(self.actionQuitter,SIGNAL("activated()"),self.fileExit)
-
-        self.connect(self.actionEficas,SIGNAL("activated()"),self.aidePPal)
-        self.connect(self.actionVersion,SIGNAL("activated()"),self.version)
-
-        self.connect(self.actionCouper,SIGNAL("activated()"),self.editCut)
-        self.connect(self.actionCopier,SIGNAL("activated()"),self.editCopy)
-        self.connect(self.actionColler,SIGNAL("activated()"),self.editPaste)
-        self.connect(self.actionSupprimer,SIGNAL("activated()"),self.supprimer)
-        self.connect(self.actionRechercher,SIGNAL("activated()"),self.rechercher)
-        self.connect(self.actionDeplier_replier,SIGNAL("activated()"),self.Deplier)
-
-        self.connect(self.actionRapport_de_Validation,SIGNAL("activated()"),self.jdcRapport)
-        self.connect(self.actionFichier_Source,SIGNAL("activated()"),self.jdcFichierSource)
-        self.connect(self.actionFichier_Resultat,SIGNAL("activated()"),self.visuJdcPy)
-
-
-        #self.connect(self.helpIndexAction,SIGNAL("activated()"),self.helpIndex)
-        #self.connect(self.helpContentsAction,SIGNAL("activated()"),self.helpContents)
-
-        # Pour Aster
-        self.actionTraduitV7V8 = QAction(self)
-        self.actionTraduitV7V8.setObjectName("actionTraduitV7V8")
-        self.actionTraduitV8V9 = QAction(self)
-        self.actionTraduitV8V9.setObjectName("actionTraduitV8V9")
-        self.actionTraduitV9V10 = QAction(self)
-        self.actionTraduitV9V10.setObjectName("actionTraduitV9V10")
-        self.actionTraduitV7V8.setText(tr("TraduitV7V8"))
-        self.actionTraduitV8V9.setText(tr("TraduitV8V9"))
-        self.actionTraduitV9V10.setText(tr("TraduitV9V10"))
-        self.connect(self.actionParametres_Eficas,SIGNAL("activated()"),self.optionEditeur)
-        self.connect(self.actionLecteur_Pdf,SIGNAL("activated()"),self.optionPdf)
-        self.connect(self.actionTraduitV7V8,SIGNAL("activated()"),self.traductionV7V8)
-        self.connect(self.actionTraduitV8V9,SIGNAL("activated()"),self.traductionV8V9)
-        self.connect(self.actionTraduitV9V10,SIGNAL("activated()"),self.traductionV9V10)
-
-        # Pour Carmel
-        self.actionChercheGrpMaille = QAction(self)
-        self.actionChercheGrpMaille.setText(tr("Acquiert Groupe Maille"))
-        self.connect(self.actionChercheGrpMaille,SIGNAL("activated()"),self.ChercheGrpMaille)
-
-        # Pour Aide
-        self.actionCode = QAction(self)
-        self.actionCode.setText(tr("Specificites Maille"))
-        self.connect(self.actionCode,SIGNAL("activated()"),self.aideCode)
-
-    def Deplier(self):
-        self.viewmanager.handleDeplier()
-
-    def ouvreFichiers(self) :
-    # Ouverture des fichiers de commandes donnes sur la ligne de commande
-        cwd=os.getcwd()
-        self.dir=cwd
-        for study in session.d_env.studies:
-            os.chdir(cwd)
-            d=session.get_unit(study,self)
-            self.viewmanager.handleOpen(fichier=study["comm"],units=d)
-
-
-    def  getSource(self,file):
-    # appele par Editeur/session.py
-        import convert
-        p=convert.plugins['python']()
-        p.readfile(file)
-        texte=p.convert('execnoparseur')
-        return texte
-
-    def initPatrons(self) :
-    # Mise a jour du menu des fichiers recemment ouverts
-        from Editeur import listePatrons
-        if not(self.code in listePatrons.sous_menus.keys()) :
-           if hasattr(self,"menuPatrons"):
-              self.menuPatrons.setAttribute(Qt.WA_DeleteOnClose)
-              self.menuPatrons.close()
-              delattr(self,"menuPatrons")
-           return
-        if (not hasattr(self,"menuPatrons")):
-           self.menuPatrons = QMenu(self.menubar)
-           self.menuPatrons.setObjectName("menuPatrons")
-           self.menubar.addAction(self.menuPatrons.menuAction())
-           self.menuPatrons.setTitle(QApplication.translate("Eficas", "Patrons", None, QApplication.UnicodeUTF8))
-        else :
-           self.menuPatrons.clear()
-        self.listePatrons = listePatrons.listePatrons(self.code)
-        idx = 0
-        for nomSsMenu in self.listePatrons.liste.keys():
-            ssmenu=self.menuPatrons.addMenu(nomSsMenu)
-            for fichier in self.listePatrons.liste[nomSsMenu]:
-               id = ssmenu.addAction(fichier)
-               self.ficPatrons[id]=fichier
-               self.connect(id, SIGNAL('triggered()'),self.handleOpenPatrons)
-            #   self.Patrons.setItemParameter(id,idx)
-               idx=idx+1
-
-    def initRecents(self):
-       self.recent =  QStringList()
-       try :
-       #if 1 :
-           rep=os.path.join(os.environ['HOME'],'.config/Eficas',self.code)
-           monFichier=rep+"/listefichiers_"+self.code
-           index=0
-           f=open(monFichier)
-           while ( index < 9) :
-              ligne=f.readline()
-              if ligne != "" :
-                 l=(ligne.split("\n"))[0]
-                 self.recent.append(l)
-              index=index+1
-       except :
-       #else :
-           pass
-
-       try    : f.close()
-       except : pass
-
-    def addToRecentList(self, fn):
-        """
-        Public slot to add a filename to the list of recently opened files.
-
-        @param fn name of the file to be added
-        """
-        self.recent.removeAll(fn)
-        self.recent.prepend(fn)
-        if len(self.recent) > 9:
-            self.recent = self.recent[:9]
-
-    def sauveRecents(self) :
-       try :
-         rep=self.CONFIGURATION.rep_user
-         monFichier=rep+"/listefichiers_"+self.code
-       except :
-         return
-       try :
-            f=open(monFichier,'w')
-            if len(self.recent) == 0 : return
-            index=0
-            while ( index <  len(self.recent)):
-              ligne=str(self.recent[index])+"\n"
-              f.write(ligne)
-              index=index+1
-       except :
-            pass
-       try :
-            f.close()
-       except :
-            pass
-
-
-
-    def traductionV7V8(self):
-        from gereTraduction import traduction
-        traduction(self.CONFIGURATION.repIni,self.viewmanager,"V7V8")
-
-    def traductionV8V9(self):
-        from gereTraduction import traduction
-        traduction(self.CONFIGURATION.repIni,self.viewmanager,"V8V9")
-
-    def traductionV9V10(self):
-        from gereTraduction import traduction
-        traduction(self.CONFIGURATION.repIni,self.viewmanager,"V9V10")
-
-    def version(self) :
-        from monVisu import DVisu
-        titre = tr("version ")
-        monVisuDialg=DVisu(parent=self,fl=0)
-        monVisuDialg.setWindowTitle(titre)
-        monVisuDialg.TB.setText(self.VERSION_EFICAS +tr(" pour ") + self.code)
-        monVisuDialg.adjustSize()
-        monVisuDialg.show()
-
-    def aidePPal(self) :
-        if self.code==None : return
-        repAide=os.path.dirname(os.path.abspath(__file__))
-        maD=repAide+"/../Aide"
-        try :
-          indexAide=maD+"/fichiers_EFICAS/index.html"
-          cmd="xdg-open "+indexAide
-          os.system(cmd)
-        except:
-          QMessageBox.warning( self,tr( "Aide Indisponible"),tr( "l'aide n est pas installee "))
-
-
-    def aideCode(self) :
-        if self.code==None : return
-        try :
-        #if 1 :
-          cmd="xdg-open "+self.fileDoc
-          os.system(cmd)
-        except:
-        #else:
-          QMessageBox.warning( self,tr( "Aide Indisponible"),tr( "l'aide n est pas installee "))
-
-
-    def optionEditeur(self) :
-        try :
-           name='monOptions_'+self.code
-        except :
-           QMessageBox.critical( self,tr( "Parametrage"),tr( "Veuillez d abord choisir un code"))
-           return
-        try :
-        #if 1:
-           optionCode=__import__(name)
-        except :
-        #else :
-           QMessageBox.critical( self, tr("Parametrage"), tr("Pas de possibilite de personnalisation de la configuration "))
-           return
-        monOption=optionCode.Options(parent=self,modal = 0 ,configuration=self.CONFIGURATION)
-        monOption.show()
-
-    def optionPdf(self) :
-        from monOptionsPdf import OptionPdf
-        monOption=OptionPdf(parent=self,modal = 0 ,configuration=self.CONFIGURATION)
-        monOption.show()
-
-    def handleShowRecentMenu(self):
-        """
-        Private method to set up recent files menu.
-        """
-        self.recentMenu.clear()
-
-        for rp in self.recent:
-            id = self.recentMenu.addAction(rp)
-            self.ficRecents[id]=rp
-            self.connect(id, SIGNAL('triggered()'),self.handleOpenRecent)
-        self.recentMenu.addSeparator()
-        self.recentMenu.addAction(tr('&Effacer'), self.handleClearRecent)
-
-    def handleOpenPatrons(self):
-        idx=self.sender()
-        fichier=self.repIni+"/../Editeur/Patrons/"+self.code+"/"+self.ficPatrons[idx]
-        self.viewmanager.handleOpen(fichier=fichier, patron = 1)
-
-    def handleOpenRecent(self):
-        idx=self.sender()
-        fichier=self.ficRecents[idx]
-        self.viewmanager.handleOpen(fichier=fichier, patron =0 )
-
-    def handleClearRecent(self):
-        self.recent = QStringList()
-        self.sauveRecents()
-
-    def fileNew(self):
-        try:
-            self.viewmanager.newEditor()
-        except EficasException, exc:
-            msg = unicode(exc)
-            if msg != "":
-                QMessageBox.warning(self, tr(u"Erreur"), msg)
-
-    def fileOpen(self):
-        try:
-            self.viewmanager.handleOpen()
-        except EficasException, exc:
-            msg = unicode(exc)
-            if msg != "":
-                QMessageBox.warning(self, tr(u"Erreur"), msg)
-
-    def fileSave(self):
-        return self.viewmanager.saveCurrentEditor()
-
-    def fileSaveAs(self):
-        return self.viewmanager.saveAsCurrentEditor()
-
-    def fileClose(self):
-        self.viewmanager.handleClose(texte='&Fermer')
-
-    def fileCloseAll(self):
-        self.viewmanager.handleCloseAll(texte='&Fermer')
-
-    def fileExit(self):
-        # On peut sortir sur Abort
-        res=self.viewmanager.handleCloseAll()
-        if (res != 2) :
-            self.close()
-        return res
-
-    def editCopy(self):
-        self.viewmanager.handleEditCopy()
-
-    def editCut(self):
-        self.viewmanager.handleEditCut()
-
-    def editPaste(self):
-        self.viewmanager.handleEditPaste()
-
-    def rechercher(self):
-        self.viewmanager.handleRechercher()
-
-    def run(self):
-        self.viewmanager.run()
-
-    def saveRun(self):
-        self.viewmanager.saveRun()
-
-    def runYACS(self):
-        self.viewmanager.runYACS()
-
-    def saveYACS(self):
-        self.viewmanager.saveYACS()
-
-    def supprimer(self):
-        self.viewmanager.handleSupprimer()
-
-    def jdcFichierSource(self):
-        self.viewmanager.handleViewJdcFichierSource()
-
-    def jdcRapport(self):
-        self.viewmanager.handleViewJdcRapport()
-
-    def visuJdcPy(self):
-        self.viewmanager.handleViewJdcPy()
-
-
-    def NewInclude(self):
-        self.viewmanager.newIncludeEditor()
-
-    def cleanPath(self):
-        for pathCode in self.ListeCode:
-            try:
-              aEnlever=os.path.abspath(os.path.join(os.path.dirname(__file__),'..',pathCode))
-              sys.path.remove(aEnlever)
-            except :
-              pass
-        for pathCode in self.listeAEnlever:
-            try:
-              sys.path.remove(aEnlever)
-            except :
-              pass
-
-
-    def closeEvent(self,event):
-      res=self.fileExit()
-      if res==2 : event.ignore()
-
-if __name__=='__main__':
-
-    # Modules Eficas
-    rep=os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__),'..','ASTER')))
-    sys.path.append(rep)
-    from Aster import prefsCode
-    if hasattr(prefsCode,'encoding'):
-       # Hack pour changer le codage par defaut des strings
-       import sys
-       reload(sys)
-       sys.setdefaultencoding(prefsCode.encoding)
-       del sys.setdefaultencoding
-       # Fin hack
-
-    from Editeur import import_code
-    from Editeur import session
-
-    # Analyse des arguments de la ligne de commande
-    options=session.parse(sys.argv)
-    code=options.code
-
-
-    app = QApplication(sys.argv)
-    #app.setMainWidget(mw) (qt3)
-    Eficas=Appli()
-    Eficas.show()
-
-    #app.connect(app, SIGNAL("lastWindowClosed()"), app, SLOT("quit()"))
-    #mw.ouvreFichiers()
-    #mw.show()
-
-    res=app.exec_()
-    sys.exit(res)
index ab735d301df3e5687489fd3b0d0957183691b780..0ff274d9bdde717ede9ce8820bb365a8aed0b41f 100644 (file)
@@ -20,8 +20,8 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
-   from builtins import range
+    from builtins import str
+    from builtins import range
 except : pass
 
 import types,os
@@ -33,124 +33,115 @@ from PyQt5.QtCore import Qt
 # Import des panels
 
 class SaisieValeur(object):
-  """
-  Classe contenant les methodes communes aux  panels
-  permettant de choisir des valeurs 
-  """
-  def __init__(self):
-       pass
-
-
-  def LEvaleurPressed(self,valeur=None):
-         if not hasattr(self, 'inSaisieValeur' ) : self.inSaisieValeur=False
-         if self.inSaisieValeur : return
-         self.inSaisieValeur=True
-         if valeur == None :
+    """
+    Classe contenant les methodes communes aux  panels
+    permettant de choisir des valeurs
+    """
+    def __init__(self):
+        pass
+
+
+    def LEvaleurPressed(self,valeur=None):
+        #print('LEvaleurPressed', valeur, type(valeur))
+        if not hasattr(self, 'inSaisieValeur' ) : self.inSaisieValeur=False
+        if self.inSaisieValeur : return
+        self.inSaisieValeur=True
+
+        if valeur == None :
             try :
-              nouvelleValeur=str(self.lineEditVal.text())
+                nouvelleValeur=str(self.lineEditVal.text())
             except UnicodeEncodeError as e :
-               self.editor.afficheInfos("pb d encoding", Qt.red)
-               validite,commentaire=self.politique.recordValeur(None)
-               self.lineEditVal.setText('')
-               self.setValide()
-               self.inSaisieValeur=False
-               return
-         else :
-            #PN PN PN ???? la 1 ligne est tres bizarre.
-            try : 
-              if hasattr(self,"lineEditVal"):self.lineEditVal.setText(tr(valeur.nom))
-            except : 
-              if hasattr(self,"lineEditVal"):self.lineEditVal.setText(valeur)
+                self.editor.afficheInfos("pb d encoding", Qt.red)
+                validite,commentaire=self.politique.recordValeur(None)
+                self.lineEditVal.setText('')
+                self.setValide()
+                self.inSaisieValeur=False
+                return
+        else :
+            try :
+                # la 1 ligne est tres bizarre. remplacee par le 3nd le 01 10 19
+                #if hasattr(self,"lineEditVal"):self.lineEditVal.setText(tr(valeur.nom))
+                if hasattr(self,"lineEditVal") : self.lineEditVal.setText(tr(valeur))
+            except :
+                if hasattr(self,"lineEditVal"):self.lineEditVal.setText(valeur)
             nouvelleValeur=valeur
-         if self.node.item.definition.validators != None :
-          if self.node.item.definition.validators.verifItem(nouvelleValeur) !=1 :
+
+        if self.node.item.definition.validators != None :
+            if self.node.item.definition.validators.verifItem(nouvelleValeur) !=1 :
                 commentaire=self.node.item.definition.validators.infoErreurItem()
                 self.editor.afficheInfos(commentaire,Qt.red)
                 self.inSaisieValeur=False
                 return
-         nouvelleValeurFormat=self.politique.getValeurTexte(nouvelleValeur)
-         validite,commentaire=self.politique.recordValeur(nouvelleValeurFormat)
-         if commentaire != "" :
-            #PNPNPNP Il faut trouver une solution pour les 2 cas 
-            #   self.editor.afficheInfos(commentaire)
-            #self.Commentaire.setText(tr(commentaire))
+
+        nouvelleValeurFormat=self.politique.getValeurTexte(nouvelleValeur)
+        validite,commentaire=self.politique.recordValeur(nouvelleValeurFormat)
+        if commentaire != "" :
             if validite :
                 self.editor.afficheCommentaire(commentaire)
             else :
                 self.editor.afficheInfos(commentaire,Qt.red)
-         self.inSaisieValeur=False
-         self.setValide()
-
-
-  #def TraiteLEValeurTuple(self,valeurBrute=None) :
-  #      listeValeurs=[]
-  #      if valeurBrute== None :valeurBrute=str(self.LEValeur.text())
-  #      listeValeursSplit=valeurBrute.split(',')
-  #      for val in listeValeursSplit :
-  #          try :
-  #             valeur=eval(val,{})        
-  #          except :
-  #             valeur=val
-  #          listeValeurs.append(valeur)
-  #      return listeValeurs
-
-  def TraiteLEValeur(self,valeurTraitee=None) :
+        self.inSaisieValeur=False
+        self.setValide()
+
+
+
+    def TraiteLEValeur(self,valeurTraitee=None) :
         # lit la chaine entree dans le line edit
         # et la tranforme en chaine de valeurs
         # a traiter. renvoie eventuellement des complexes
         listeValeurs=[]
         if valeurTraitee == None :
-           valeurBrute=str(self.LEValeur.text())
+            valeurBrute=str(self.LEValeur.text())
         else :
-           valeurBrute=valeurTraitee
+            valeurBrute=valeurTraitee
         if valeurBrute == str("") : return listeValeurs,1
 
         try :
-            valeur=eval(valeurBrute,{})        
+            valeur=eval(valeurBrute,{})
         except :
             valeur=valeurBrute
 
         # pour traiter 11.0 - 30.0 pour le CIST
         #if (valeurTraitee and (type(valeurTraitee) in types.StringTypes) and (self.node.item.waitTxm())) :
         if (valeurTraitee and  isinstance(valeurTraitee, str)  and (self.node.item.waitTxm())) :
-           valeur=str(valeurTraitee)
+            valeur=str(valeurTraitee)
 
 
         if type(valeur)  in (list,tuple) :
-           if self.node.item.waitComplex() :
-              indice = 0
-              while (indice < len(valeur)):
-                 v=valeur[indice]
-
-                 if (v== 'RI' or v == 'MP'):
-                    try :
-                       t=tuple([v,valeur[indice+1],valeur[indice+2]])
-                       listeValeurs.append(t)
-                       indice=indice+3
-                    except :
-                       commentaire = tr("Veuillez entrer le complexe sous forme aster ou sous forme python")
-                       self.editor.afficheInfos(commentaire)
-                       return listeValeurs,0
-                       
-
-                 else :     # ce n'est pas un tuple a la mode aster
-                    listeValeurs.append(v)
-                    indice = indice + 1
-
-           else:  # on n'attend pas un complexe
-             listeValeurs=valeurBrute.split(',')
+            if self.node.item.waitComplex() :
+                indice = 0
+                while (indice < len(valeur)):
+                    v=valeur[indice]
+
+                    if (v== 'RI' or v == 'MP'):
+                        try :
+                            t=tuple([v,valeur[indice+1],valeur[indice+2]])
+                            listeValeurs.append(t)
+                            indice=indice+3
+                        except :
+                            commentaire = tr("Veuillez entrer le complexe sous forme aster ou sous forme python")
+                            self.editor.afficheInfos(commentaire)
+                            return listeValeurs,0
+
+
+                    else :     # ce n'est pas un tuple a la mode aster
+                        listeValeurs.append(v)
+                        indice = indice + 1
+
+            else:  # on n'attend pas un complexe
+                listeValeurs=valeurBrute.split(',')
 
         elif type(valeur) == bytes:
-             listeValeurs=valeur.split(',')
+            listeValeurs=valeur.split(',')
         else:
-          #listeValeurs.append(valeurBrute)
-          listeValeurs.append(valeur)
+            #listeValeurs.append(valeurBrute)
+            listeValeurs.append(valeur)
 
         return listeValeurs,1
 
 class SaisieSDCO(object) :
 
-  def LESDCOReturnPressed(self):
+    def LESDCOReturnPressed(self):
         """
            Lit le nom donne par l'utilisateur au concept de type CO qui doit être
            la valeur du MCS courant et stocke cette valeur
@@ -158,20 +149,19 @@ class SaisieSDCO(object) :
         self.editor.initModif()
         anc_val = self.node.item.getValeur()
         if anc_val != None:
-          # il faut egalement propager la destruction de l'ancien concept
-          self.node.item.deleteValeurCo(valeur=anc_val)
-          # et on force le recalcul des concepts de sortie de l'etape
-          self.node.item.object.etape.getType_produit(force=1)
-          # et le recalcul du contexte
-          self.node.item.object.etape.parent.resetContext()
+            # il faut egalement propager la destruction de l'ancien concept
+            self.node.item.deleteValeurCo(valeur=anc_val)
+            # et on force le recalcul des concepts de sortie de l'etape
+            self.node.item.object.etape.getType_produit(force=1)
+            # et le recalcul du contexte
+            self.node.item.object.etape.parent.resetContext()
         nomConcept = str(self.LESDCO.text())
         if nomConcept == "" : return
 
         test,commentaire=self.node.item.setValeurCo(nomConcept)
         if test:
-           commentaire=tr("Valeur du mot-clef enregistree")
-           self.node.updateNodeValid()
+            commentaire=tr("Valeur du mot-clef enregistree")
+            self.node.updateNodeValid()
         else :
-           cr = self.node.item.getCr()
-           commentaire = tr("Valeur du mot-clef non autorisee :")+cr.getMessFatal()
-                                                                                         
+            cr = self.node.item.getCr()
+            commentaire = tr("Valeur du mot-clef non autorisee :")+cr.getMessFatal()
index ba8ea4bb4dae1301e8f30bbc37a311bda65cc14c..05d942d9c14b1e75779f87801c56b3a00fff0966 100644 (file)
@@ -1,4 +1,4 @@
-# -*- coding: utf-8 -*-
+# -*-  coding: utf-8 -*-
 # Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import str
-   from builtins import object
+    from builtins import str
+    from builtins import object
 except : pass
-
-import time
-import os,sys,py_compile
-import traceback
-import six.moves.cPickle
-import re
-import types
+import os, sys
 
 # Modules Eficas
 from Noyau.N_CR import CR
@@ -45,280 +39,381 @@ import analyse_catalogue
 import analyse_catalogue_initial
 import autre_analyse_cata
 import uiinfo
-from InterfaceQT4.monChoixCata import MonChoixCata
 from Extensions.i18n import tr
 from Extensions.eficas_exception import EficasException
 
-from PyQt5.QtWidgets import QMessageBox, QApplication, QDialog
 
 #-------------------------------
 class ReaderCataCommun(object):
 #-------------------------------
 
-   def askChoixCatalogue(self, cata_choice_list):
-   # ____________________________________________
-      """
-      Ouvre une fenetre de selection du catalogue dans le cas où plusieurs
-      ont ete definis dans Accas/editeur.ini
-      """
-      code = getattr(self.appliEficas.maConfiguration, "code", None)
-      if code != None :
-          title=tr("Choix d une version du code ")+str(code)
-      else :
-          title=tr("Choix d une version ")
-
-      widgetChoix = MonChoixCata(self.appliEficas, [cata.user_name for cata in cata_choice_list], title)
-      ret=widgetChoix.exec_()
-
-
-      lab=str(self.VERSION_EFICAS)+" "
-      lab+=tr(" pour ")
-      lab+=str(self.code)
-      lab+=tr(" avec le catalogue ")
-      if ret == QDialog.Accepted:
-          cata = cata_choice_list[widgetChoix.CBChoixCata.currentIndex()]
-          self.fic_cata = cata.cata_file_path
-          self.versionCode = cata.identifier
-          self.appliEficas.format_fichier = cata.file_format
-          self.appliEficas.format_fichier_in = cata.file_format_in
-          lab+=self.versionCode
-          self.appliEficas.setWindowTitle(lab)
-          #qApp.mainWidget().setCaption(lab)
-          widgetChoix.close()
-      else:
-          widgetChoix.close()
-          raise EficasException()
-
-   def choisitCata(self):
-   # ____________________
-
-      liste_cata_possibles=[]
-      self.Commandes_Ordre_Catalogue=[]
-
-      all_cata_list = []
-      for catalogue in self.appliEficas.maConfiguration.catalogues:
-          if isinstance(catalogue, CatalogDescription): all_cata_list.append(catalogue)
-          elif isinstance(catalogue, tuple)           : all_cata_list.append(CatalogDescription.create_from_tuple(catalogue))
-          else: print(("Catalog description cannot be interpreted: ", catalogue))
-
-      # This filter is only useful for codes that have subcodes (like MAP).
-      # Otherwise, the "code" attribute of the catalog description can (should) be None.
-      if self.ssCode is None: liste_cata_possibles = all_cata_list
-      else:
-          for catalogue in all_cata_list:
-              if catalogue.code == self.code and catalogue.ssCode == self.ssCode:
-                  liste_cata_possibles.append(catalogue)
-
-      if len(liste_cata_possibles)==0:
-          print("Pas de catalogue defini pour le code " + self.code)
-          #QMessageBox.critical(self.QWParent, tr("Import du catalogue"),
-          #                     tr("Pas de catalogue defini pour le code ") + self.code)
-          #self.appliEficas.close()
-          if self.appliEficas.salome == 0 : sys.exit(1)
-          return
-
-
-      if self.versionCode is not None:
-          # La version a ete fixee
-          for cata in liste_cata_possibles:
-             if self.versionCode == cata.identifier:
-                self.fic_cata = cata.cata_file_path
-                self.appliEficas.format_fichier = cata.file_format
-                self.appliEficas.format_fichier_in = cata.file_format_in
-      else:
-          cata_choice_list = []
-          for cata in liste_cata_possibles:
-              if cata.selectable:
-                  if cata.default : cata_choice_list.insert(0, cata)
-                  else            : cata_choice_list.append(cata)
-
-          if len(cata_choice_list) == 0:
-              print("Aucun catalogue trouve")
-              #QMessageBox.critical(self.QWParent, tr("Import du catalogue"),
-              #                     tr("Aucun catalogue trouve"))
-              #self.appliEficas.close()
-              if self.appliEficas.salome == 0 : sys.exit(1)
-
-          elif len(cata_choice_list) == 1:
-              self.fic_cata = cata_choice_list[0].cata_file_path
-              self.versionCode = cata_choice_list[0].identifier
-              self.appliEficas.format_fichier = cata_choice_list[0].file_format
-              self.appliEficas.format_fichier_in = cata_choice_list[0].file_format_in
-
-          else:
-              # plusieurs catalogues sont disponibles : il faut demander a l'utilisateur
-              # lequel il veut utiliser ...
-              self.askChoixCatalogue(cata_choice_list)
-              self.demandeCatalogue=True
-
-      if self.fic_cata == None :
-          if self.appliEficas.salome == 0 :
-             print(("Pas de catalogue pour code %s, version %s" %(self.code,self.versionCode)))
-             sys.exit(1)
-          else :
-             #self.appliEficas.close()
-             return
+    def askChoixCatalogue(self, cataListeChoix):
+    # ____________________________________________
+        """
+        Ouvre une fenetre de selection du catalogue dans le cas où plusieurs
+        ont ete definis dans Accas/editeur.ini
+        """
+        try :
+            from PyQt5.QtWidgets import QDialog
+        except :
+            print ('Pas de choix interactif sans qt')
+            return
+
+        code = getattr(self.appliEficas.maConfiguration, "code", None)
+        if code != None :
+            title=tr("Choix d une version du code ")+str(code)
+        else :
+            title=tr("Choix d une version ")
+
+        from InterfaceQT4.monChoixCata import MonChoixCata
+        widgetChoix = MonChoixCata(self.appliEficas, [cata.labelCode for cata in cataListeChoix], title)
+        ret=widgetChoix.exec_()
+
+
+        lab=str(self.VERSION_EFICAS)+" "
+        lab+=tr(" pour ")
+        lab+=str(self.code)
+        lab+=tr(" avec le catalogue ")
+        if ret == QDialog.Accepted:
+            cata = cataListeChoix[widgetChoix.CBChoixCata.currentIndex()]
+            self.fichierCata = cata.fichierCata
+            self.labelCode   = cata.labelCode
+            self.appliEficas.formatFichierOut = cata.formatFichierOut
+            self.appliEficas.formatFichierIn  = cata.formatFichierIn
+            lab+=self.labelCode
+            self.appliEficas.setWindowTitle(lab)
+            widgetChoix.close()
+        else:
+            widgetChoix.close()
+            raise EficasException()
+
+    def choisitCata(self):
+    # ____________________
+
+
+        listeCataPossibles=[]
+        self.Commandes_Ordre_Catalogue=[]
+
+
+        listeTousLesCatas = []
+        for catalogue in self.appliEficas.maConfiguration.catalogues:
+            if isinstance(catalogue, CatalogDescription): listeTousLesCatas.append(catalogue)
+            elif isinstance(catalogue, tuple)           : listeTousLesCatas.append(CatalogDescription.createFromTuple(catalogue))
+            else: print(("Catalog description cannot be interpreted: ", catalogue))
+
+        if self.labelCode is  None: listeCataPossibles = listeTousLesCatas
+        else :
+            for catalogue in listeTousLesCatas:
+                if catalogue.code == self.code and catalogue.ssCode == self.ssCode:
+                    listeCataPossibles.append(catalogue)
+
+        if len(listeCataPossibles)==0:
+            try :
+                QMessageBox.critical(self.QWParent, tr("Import du catalogue"),
+                                tr("Pas de catalogue defini pour le code ") + self.code)
+            except :
+                print("Pas de catalogue defini pour le code " + self.code)
+            if self.appliEficas.salome == 0 : sys.exit(1)
+            self.appliEficas.close()
+            return
+
+        if self.labelCode is not None:
+            # La version a ete fixee
+            for cata in listeCataPossibles:
+                if self.labelCode == cata.labelCode:
+                    self.fichierCata = cata.fichierCata
+                    self.labelCode   = cata.labelCode
+                    self.appliEficas.formatFichierOut = cata.formatFichierOut
+                    self.appliEficas.formatFichierIn  = cata.formatFichierIn
+        else:
+            cataChoiceList = []
+            for cata in listeCataPossibles:
+                if cata.selectable:
+                    if cata.default : cataChoiceList.insert(0, cata)
+                    else            : cataChoiceList.append(cata)
+
+        # le catalogue est fixe dans la ligne de commande
+        if self.appliEficas.fichierCata != None :
+            trouve=False
+            for catalogue in listeTousLesCatas:
+                if os.path.abspath(catalogue.fichierCata) ==  (os.path.abspath(self.appliEficas.fichierCata)) :
+                    listeCataPossibles=(catalogue,)
+                    trouve=True
+                    break
+            if not trouve:
+                catalogue=CatalogDescription.createFromTuple((self.code ,self.code,self.appliEficas.fichierCata,'python','python'))
+                listeCataPossibles=(catalogue,)
+
+
+        if len(listeCataPossibles)==0:
+            try :
+                from PyQt5.QtWidgets import QMessageBox, QDialog
+                QMessageBox.critical(self.QWParent, tr("Import du catalogue"),
+                                  tr("Pas de catalogue defini pour le code ") + self.code)
+            except :
+                print ("Pas de catalogue defini pour le code " + self.code)
+            self.appliEficas.close()
+            if self.appliEficas.salome == 0 : sys.exit(1)
+            return
+
+
+        # le label est fixe dans la ligne de commande
+        if self.labelCode is not None:
+            # La version a ete fixee
+            for cata in listeCataPossibles:
+                if self.labelCode == cata.labelCode:
+                    self.fichierCata = cata.fichierCata
+                    self.appliEficas.formatFichierIn  = cata.formatFichierIn
+                    self.appliEficas.formatFichierOut = cata.formatFichierOut
+        else:
+            cataListeChoix = []
+            for cata in listeCataPossibles:
+                if cata.default : cataListeChoix.insert(0, cata)
+                else            : cataListeChoix.append(cata)
+
+            if len(cataListeChoix) == 0:
+                try :
+                    from PyQt5.QtWidgets import QMessageBox
+                    QMessageBox.critical(self.QWParent, tr("Import du catalogue"),
+                                       tr("Aucun catalogue trouve"))
+                except :
+                    print ("Pas de catalogue defini pour le code " + self.code)
+                self.appliEficas.close()
+                if self.appliEficas.salome == 0 : sys.exit(1)
+
+            elif len(cataListeChoix) == 1:
+                self.fichierCata = cataListeChoix[0].fichierCata
+                self.labelCode   = cataListeChoix[0].labelCode
+                self.appliEficas.formatFichierOut = cataListeChoix[0].formatFichierOut
+                self.appliEficas.formatFichierIn  = cataListeChoix[0].formatFichierIn
+
+            else:
+                # plusieurs catalogues sont disponibles : il faut demander a l'utilisateur
+                # lequel il veut utiliser ...
+                if self.appliEficas.ssIhm :
+                    print ('Unable to know which catafile is choosen')
+                    exit()
+                self.askChoixCatalogue(cataListeChoix)
+                self.demandeCatalogue=True
+
+        if self.fichierCata == None :
+            if self.appliEficas.salome == 0 :
+                print(("Pas de catalogue pour code %s, version %s" %(self.code,self.labelCode)))
+                sys.exit(1)
+            else :
+                self.appliEficas.close()
+                return
 
 
 #------------------------------------
 class ReaderCata (ReaderCataCommun):
 #------------------------------------
 
-   def __init__(self,QWParent, appliEficas):
-   # ______________________________________
-
-      self.QWParent=QWParent
-      self.appliEficas=self.QWParent.appliEficas
-      self.VERSION_EFICAS=self.appliEficas.VERSION_EFICAS
-      self.demandeCatalogue=False
-      self.code=self.appliEficas.code
-      self.ssCode=self.appliEficas.ssCode
-      self.appliEficas.format_fichier='python'
-      self.versionCode=self.appliEficas.versionCode
-      self.fic_cata=None
-      self.openCata()
-      self.traiteIcones()
-      self.cataitem=None
-      self.creeDicoInverse()
-      if self.code=="TELEMAC": self.creeDicoCasToCata()
-
-
-
-   def openCata(self):
-      """
-          Ouvre le catalogue standard du code courant, cad le catalogue present
-          dans le repertoire Cata
-      """
-      # import du catalogue
-      self.choisitCata()
-
-      if self.appliEficas.maConfiguration.withXSD :
-         try :
-           #import raw.Telemac2d as modeleMetier
-           #import raw.cata_genere_fact as modeleMetier
-           import raw.cata_map_genere as modeleMetier
-           #import raw.cata_bloc as modeleMetier
-           print ('import Test ad modeleMetier')
-         except :
-           modeleMetier = None
-      else :
-           modeleMetier = None
-
-      self.cata = self.importCata(self.fic_cata)
-      self.cata.modeleMetier = modeleMetier
-      if not self.cata :
-          print("Impossible d'importer le catalogue "+ self.fic_cata)
-          #QMessageBox.critical( self.QWParent, tr("Import du catalogue"),tr("Impossible d'importer le catalogue ")+ self.fic_cata)
-          self.appliEficas.close()
-          if self.appliEficas.salome == 0 :
-             sys.exit(1)
-      #
-      # analyse du catalogue (ordre des mots-cles)
-      #
-      # retrouveOrdreCataStandard fait une analyse textuelle du catalogue
-      # remplace par retrouveOrdreCataStandardAutre qui utilise une numerotation
-      # des mots cles a la creation
-      #print (self.cata)
-      #print (dir(self.cata))
-      self.retrouveOrdreCataStandardAutre()
-      if self.appliEficas.maConfiguration.modeNouvCommande == "initial" : self.retrouveOrdreCataStandard()
-      if hasattr(self.cata, 'Ordre_Des_Commandes') : self.Ordre_Des_Commandes=self.cata.Ordre_Des_Commandes
-      else : self.Ordre_Des_Commandes=None
-
-      if hasattr(self.cata, 'Classement_Commandes_Ds_Arbre') :
-             self.Classement_Commandes_Ds_Arbre=self.cata.Classement_Commandes_Ds_Arbre
-      else : self.Classement_Commandes_Ds_Arbre=()
-      if hasattr(self.cata,'enum'):
-         try :
-           _temp= __import__(self.cata.enum,globals(), locals(), ['DicoEnumCasFrToEnumCasEn', 'TelemacdicoEn'], 0)
-           self.DicoEnumCasFrToEnumCasEn = _temp.DicoEnumCasFrToEnumCasEn
-           self.TelemacdicoEn = _temp.TelemacdicoEn
-         except : pass
-
-      #print self.cata.Ordre_Des_Commandes
-
-      #
-      # analyse des donnees liees l'IHM : UIinfo
-      #
-      uiinfo.traite_UIinfo(self.cata)
-
-      #
-      # traitement des clefs documentaires
-      #
-
-      self.titre=self.VERSION_EFICAS+" "+tr( " avec le catalogue ") + os.path.basename(self.fic_cata)
-      if self.appliEficas.ssIhm == False : self.appliEficas.setWindowTitle(self.titre)
-      self.appliEficas.titre=self.titre
-      self.QWParent.titre=self.titre
-
-
-   def importCata(self,cata):
-      """
-          Realise l'import du catalogue dont le chemin d'acces est donne par cata
-      """
-      nom_cata = os.path.splitext(os.path.basename(cata))[0]
-      rep_cata = os.path.dirname(cata)
-      sys.path[:0] = [rep_cata]
-      self.appliEficas.listeAEnlever.append(rep_cata)
-
-
-      if nom_cata in list(sys.modules.keys()) :
-        del sys.modules[nom_cata]
-      for k in sys.modules:
-        if k[0:len(nom_cata)+1] == nom_cata+'.':
-          del sys.modules[k]
-
-      mesScriptsNomFichier='mesScripts_'+self.code.upper()
-      try :
-          self.appliEficas.mesScripts[self.code]=__import__(mesScriptsNomFichier)
-      except:
-          pass
-
-      #if 1 :
-      try :
-          o=__import__(nom_cata)
-          return o
-      except Exception as e:
-          traceback.print_exc()
-          return 0
-
-
-
-   def retrouveOrdreCataStandardAutre(self):
-      """
-          Construit une structure de donnees dans le catalogue qui permet
-          a EFICAS de retrouver l'ordre des mots-cles dans le texte du catalogue.
-          Pour chaque entite du catlogue on cree une liste de nom ordre_mc qui
-          contient le nom des mots cles dans le bon ordre
-      """
-      self.cata_ordonne_dico, self.appliEficas.liste_simp_reel=autre_analyse_cata.analyseCatalogue(self.cata)
-      #self.appliEficas.liste_simp_reel = ()
-      #self.cata_ordonne_dico = {}
-
-   def retrouveOrdreCataStandard(self):
-      """
-          Retrouve l'ordre des mots-cles dans le catalogue, cad :
-          Attention s appuie sur les commentaires
-      """
-      nom_cata = os.path.splitext(os.path.basename(self.fic_cata))[0]
-      rep_cata = os.path.dirname(self.fic_cata)
-      self.Commandes_Ordre_Catalogue = analyse_catalogue_initial.analyseCatalogue(self.fic_cata)
-      #print self.Commandes_Ordre_Catalogue
-
-   def traiteIcones(self):
-      if self.appliEficas.maConfiguration.ficIcones==None : return
-      try:
-        ficIcones=self.appliEficas.maConfiguration.ficIcones
-        fichierIcones = __import__(ficIcones, globals(), locals(), [], 0)
-        self.appliEficas.maConfiguration.dicoIcones=fichierIcones.dicoDesIcones.dicoIcones
-        self.appliEficas.maConfiguration.dicoImages=fichierIcones.dicoDesIcones.dicoImages
-      except:
-        print ("Pas de fichier associe contenant des liens sur les icones ")
-        self.appliEficas.maConfiguration.dicoIcones={}
-
-
-
-   def creeDicoInverse(self):
+    def __init__(self,QWParent, appliEficas):
+    # _______________________________________
+
+
+        self.QWParent=QWParent
+        self.appliEficas=self.QWParent.appliEficas
+        self.VERSION_EFICAS=self.appliEficas.VERSION_EFICAS
+        self.demandeCatalogue=False
+        self.code=self.appliEficas.code
+        self.ssCode=self.appliEficas.ssCode
+        # on positionne par defaut mais est-ce vraiment necessaire
+        self.appliEficas.formatFichierIn='python'
+        self.appliEficas.formatFichierOut='python'
+        self.labelCode=self.appliEficas.labelCode
+        self.fichierCata=self.appliEficas.fichierCata
+        self.openCata()
+        self.traiteIcones()
+        self.cataitem=None
+        self.creeDicoInverse()
+        if self.code=="TELEMAC": self.creeDicoCasToCata()
+
+
+    def openCata(self):
+        """
+            Ouvre le catalogue standard du code courant, cad le catalogue present
+            dans le repertoire Cata
+        """
+        # import du catalogue
+        if self.fichierCata == None : self.choisitCata()
+
+        self.cata = self.importCata(self.fichierCata)
+        if self.code == 'NonConnu' : self.code = self.cata.JdC.code
+        modeleMetier = None
+        dicoEltDif = {}
+        if not (self.appliEficas.genereXSD) :
+            if (self.appliEficas.maConfiguration.withXSD or self.appliEficas.withXSD)  :
+                try :
+                    import pyxb
+                except :
+                    self.QWParent.informe('environnement', 'please source pyxb environment')
+                    exit()
+                try :
+                    nomCataXsd = os.path.splitext(os.path.basename(self.fichierCata))[0]
+                    fichierCataTrunc=os.path.splitext(os.path.basename(self.fichierCata))[0]
+                    nomCataXsd = fichierCataTrunc+'_driver'
+                    pathCata = os.path.dirname(self.fichierCata)+'/raw/'+nomCataXsd+'.py'
+                    import imp
+                    modeleMetier= imp.load_source(nomCataXsd,pathCata)
+                    #print ('nomCataXsd , pathCata ',nomCataXsd,pathCata)
+                    try :
+                    #if 1 :
+                        #monObjetAnnotation = getattr(modeleMetier,'PNEFdico_'+self.code)
+                        monObjetAnnotation = getattr(modeleMetier,'PNEFdico')
+                        texte=monObjetAnnotation.__doc__
+                    except :
+                        texte=None
+                    if texte != None and texte != "":
+                        l={}
+                        texte='dicoEltDif = '+ texte
+                        exec (texte, globals(),l)
+                        dicoEltDif=l['dicoEltDif']
+                    #print ('dans readerCata _________', dicoEltDif)
+
+                except :
+                    if self.appliEficas.ssIhm == False :print ('______________ poum import cata_genere ')
+                    self.QWParent.informe('XSD driver', 'unable to load xsd driver',critique=False)
+                    modeleMetier = None
+
+        self.cata.DicoNomTypeDifferentNomElt=dicoEltDif
+
+        if hasattr(self.cata, 'implement'): self.cata.JdC.implement = self.cata.implement
+        else : self.cata.JdC.implement = ""
+        if hasattr(self.cata, 'importedBy'): self.cata.JdC.importedBy = self.cata.importedBy
+        else : self.cata.JdC.importedBy = []
+        self.cata.JdC.labelCode = self.labelCode
+        if not(hasattr(self.cata, 'dict_condition')): self.cata.dict_condition = {}
+
+        # pointeur pour le dumpXSD
+        self.cata.JdC.cata=self.cata
+
+        self.cata.modeleMetier = modeleMetier
+        if not self.cata :
+            #try:
+              #from PyQt5.QtWidgets import QMessageBox, QDialog
+              #QMessageBox.critical( self.QWParent, tr("Import du catalogue"),tr("Impossible d'importer le catalogue ")+ self.fichierCata)
+            #except :
+            #  print ("Impossible d'importer le catalogue "+ self.fichierCata)
+            self.QWParent.informe("Catalogue","Impossible d'importer le catalogue "+ self.fichierCata)
+            self.appliEficas.close()
+            if self.appliEficas.salome == 0 :
+                sys.exit(1)
+        #
+        # analyse du catalogue (ordre des mots-cles)
+        #
+        # retrouveOrdreCataStandard fait une analyse textuelle du catalogue
+        # remplace par retrouveOrdreCataStandardAutre qui utilise une numerotation
+        # des mots cles a la creation
+        #print (dir(self.cata))
+        self.retrouveOrdreCataStandardAutre()
+        if self.appliEficas.maConfiguration.modeNouvCommande == "initial" : self.retrouveOrdreCataStandard()
+        if hasattr(self.cata, 'Ordre_Des_Commandes') : self.Ordre_Des_Commandes=self.cata.Ordre_Des_Commandes
+        else : self.Ordre_Des_Commandes=None
+
+        if hasattr(self.cata, 'Classement_Commandes_Ds_Arbre') :
+            self.Classement_Commandes_Ds_Arbre=self.cata.Classement_Commandes_Ds_Arbre
+        else : self.Classement_Commandes_Ds_Arbre=()
+        if hasattr(self.cata,'enum'):
+            try :
+                _temp= __import__(self.cata.enum,globals(), locals(), ['DicoEnumCasFrToEnumCasEn', 'TelemacdicoEn'], 0)
+                self.DicoEnumCasFrToEnumCasEn = _temp.DicoEnumCasFrToEnumCasEn
+                self.TelemacdicoEn = _temp.TelemacdicoEn
+            except : pass
+
+        #print self.cata.Ordre_Des_Commandes
+
+        #
+        # analyse des donnees liees l'IHM : UIinfo
+        #
+        uiinfo.traite_UIinfo(self.cata)
+
+        #
+        # traitement des clefs documentaires
+        #
+
+        self.titre=self.VERSION_EFICAS+" "+tr( " avec le catalogue ") + os.path.basename(self.fichierCata)
+        if self.appliEficas.ssIhm == False : self.appliEficas.setWindowTitle(self.titre)
+        self.appliEficas.titre=self.titre
+        self.QWParent.titre=self.titre
+
+
+    def importCata(self,cata):
+        """
+            Realise l'import du catalogue dont le chemin d'acces est donne par cata
+        """
+        nom_cata = os.path.splitext(os.path.basename(cata))[0]
+        rep_cata = os.path.dirname(cata)
+        sys.path[:0] = [rep_cata]
+        self.appliEficas.listeAEnlever.append(rep_cata)
+
+        # PNPNPN pas propre __ A reflechir
+        if 'cata_Vimmp' in list(sys.modules.keys()) :
+            del sys.modules['cata_Vimmp']
+
+        if nom_cata in list(sys.modules.keys()) :
+            del sys.modules[nom_cata]
+
+        for k in sys.modules:
+            if k[0:len(nom_cata)+1] == nom_cata+'.':
+                del sys.modules[k]
+
+        mesScriptsNomFichier='mesScripts_'+self.code.upper()
+        try :
+            self.appliEficas.mesScripts[self.code]=__import__(mesScriptsNomFichier)
+        except:
+            pass
+
+        #if 1 :
+        try :
+            o=__import__(nom_cata)
+            return o
+        except Exception as e:
+            self.QWParent.informe('catalog', 'unable to load catalog file')
+            import traceback
+            traceback.print_exc()
+            return 0
+
+
+
+    def retrouveOrdreCataStandardAutre(self):
+        """
+            Construit une structure de donnees dans le catalogue qui permet
+            a EFICAS de retrouver l'ordre des mots-cles dans le texte du catalogue.
+            Pour chaque entite du catlogue on cree une liste de nom ordre_mc qui
+            contient le nom des mots cles dans le bon ordre
+        """
+        self.cata_ordonne_dico, self.appliEficas.liste_simp_reel=autre_analyse_cata.analyseCatalogue(self.cata)
+        #print ('_________________________________________', self)
+        #print (self.cata_ordonne_dico)
+        #self.appliEficas.liste_simp_reel = ()
+        #self.cata_ordonne_dico = {}
+
+    def retrouveOrdreCataStandard(self):
+        """
+            Retrouve l'ordre des mots-cles dans le catalogue, cad :
+            Attention s appuie sur les commentaires
+        """
+        nom_cata = os.path.splitext(os.path.basename(self.fichierCata))[0]
+        rep_cata = os.path.dirname(self.fichierCata)
+        self.Commandes_Ordre_Catalogue = analyse_catalogue_initial.analyseCatalogue(self.fichierCata)
+        #print self.Commandes_Ordre_Catalogue
+
+    def traiteIcones(self):
+        if self.appliEficas.maConfiguration.ficIcones==None : return
+        try:
+            ficIcones=self.appliEficas.maConfiguration.ficIcones
+            fichierIcones = __import__(ficIcones, globals(), locals(), [], 0)
+            self.appliEficas.maConfiguration.dicoIcones=fichierIcones.dicoDesIcones.dicoIcones
+            self.appliEficas.maConfiguration.dicoImages=fichierIcones.dicoDesIcones.dicoImages
+        except:
+            print ("Pas de fichier associe contenant des liens sur les icones ")
+            self.appliEficas.maConfiguration.dicoIcones={}
+
+
+
+    def creeDicoInverse(self):
         self.dicoInverse={}
         self.dicoMC={}
         listeEtapes=self.cata.JdC.commandes
@@ -326,48 +421,47 @@ class ReaderCata (ReaderCataCommun):
             self.traiteEntite(e)
 
 
-   def creeDicoCasToCata(self):
-      if hasattr(self.cata,'dicoCasEn'):
-        _temp= __import__(self.cata.dicoCasEn,globals(), locals(), ['DicoCasEnToCata'], 0)
-        if self.appliEficas.langue=="ang" :
-           self.dicoCasToCata=_temp.dicoCasEnToCata
-        else :
-           self.dicoCasToCata=_temp.dicoCasFrToCata
+    def creeDicoCasToCata(self):
+        if hasattr(self.cata,'dicoCasEn'):
+            _temp= __import__(self.cata.dicoCasEn,globals(), locals(), ['DicoCasEnToCata'], 0)
+            if self.appliEficas.langue=="ang" :
+                self.dicoCasToCata=_temp.dicoCasEnToCata
+            else :
+                self.dicoCasToCata=_temp.dicoCasFrToCata
 
 
 
-   def traiteEntite(self,e):
-       boolIn=0
-       for (nomFils, fils) in list(e.entites.items()) :
-          self.dicoMC[nomFils]=fils
-          self.traiteEntite(fils)
-          boolIn=1
-       if boolIn==0 :
-          liste=[]
-          moi=e
-          while hasattr(moi,'pere') :
+    def traiteEntite(self,e):
+        boolIn=0
+        for (nomFils, fils) in list(e.entites.items()) :
+            self.dicoMC[nomFils]=fils
+            self.traiteEntite(fils)
+            boolIn=1
+        if boolIn==0 :
+            liste=[]
+            moi=e
+            while hasattr(moi,'pere') :
                 liste.append((moi.nom,moi))
                 moi=moi.pere
-          liste.append((moi.nom,moi))
-          self.dicoInverse[e.nom]=liste
-          self.dicoInverse[tr(e.nom)]=liste
-
-   def creeRubrique(self,e,dico, niveau):
-       from Accas import A_BLOC
-       decale=niveau*"   "
-       #if niveau != 0 :
-       #    if isinstance(e,A_BLOC.BLOC): print decale, e.condition
-       #    else :                           print decale, e. nom
-       for (nom, fils) in list(e.entites.items()) :
-           if  list(fils.entites.items()) != [] : self.creeRubrique(fils,dico,niveau+1)
-           #else : print (niveau+1)*"   ", nom
-
-
-   def dumpToXsdEficas(self):
-       # Pas sur qu on ait jamais besoin de cela
-       pass
-       #from Efi2Xsd import readerEfficas
-       #newSchema=   xml = open('Cata_MED_FAM.xml').read()
-       #SchemaMed = efficas.CreateFromDocument(xml)
-       #SchemaMed.alimenteCata(self.cata)
-
+            liste.append((moi.nom,moi))
+            self.dicoInverse[e.nom]=liste
+            self.dicoInverse[tr(e.nom)]=liste
+
+    def creeRubrique(self,e,dico, niveau):
+        from Accas import A_BLOC
+        decale=niveau*"   "
+        #if niveau != 0 :
+        #    if isinstance(e,A_BLOC.BLOC): print decale, e.condition
+        #    else :                           print decale, e. nom
+        for (nom, fils) in list(e.entites.items()) :
+            if  list(fils.entites.items()) != [] : self.creeRubrique(fils,dico,niveau+1)
+            #else : print (niveau+1)*"   ", nom
+
+
+    #def dumpToXsdEficas(self):
+        # Pas sur qu on ait jamais besoin de cela
+    #    pass
+        #from Efi2Xsd import readerEfficas
+        #newSchema=   xml = open('Cata_MED_FAM.xml').read()
+        #SchemaMed = efficas.CreateFromDocument(xml)
+        #SchemaMed.alimenteCata(self.cata)
index 5579a82b60aff7ada8f1b16dd5f1a8162cd816e0..c8baede10b052c7755d1bcdb009f39ebe2d58d7e 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -40,44 +40,45 @@ from readercata import ReaderCataCommun
 
 class ReaderCata (ReaderCataCommun):
 
-   def __init__(self,QWParent, appliEficas):
-      self.QWParent=QWParent
-      self.appliEficas=appliEficas
-      self.VERSION_EFICAS=self.appliEficas.VERSION_EFICAS
-      self.code=self.appliEficas.code
-      self.ssCode=self.appliEficas.ssCode
-      self.appliEficas.format_fichier='python'
-      self.appliEficas.format_fichier_in ='xml'
-      self.modeNouvCommande=self.appliEficas.maConfiguration.modeNouvCommande
-      self.versionCode=self.appliEficas.versionCode
-      self.version_cata=None
-      self.fic_cata=None
-      self.OpenCata()
-      self.cataitem=None
-      self.titre='Eficas XML'
-      self.Ordre_Des_Commandes=None
-      self.Classement_Commandes_Ds_Arbre=()
-      self.demandeCatalogue=False
+    def __init__(self,QWParent, appliEficas):
+        self.QWParent=QWParent
+        self.appliEficas=appliEficas
+        self.VERSION_EFICAS=self.appliEficas.VERSION_EFICAS
+        self.code=self.appliEficas.code
+        self.ssCode=self.appliEficas.ssCode
+        # PN ?? bizarre le 22/04/20
+        self.appliEficas.formatfichierOut='python'
+        self.appliEficas.formatfichierIn ='xml'
+        self.modeNouvCommande=self.appliEficas.maConfiguration.modeNouvCommande
+        self.labelCode=self.appliEficas.labelCode
+        self.version_cata=None
+        self.ficCata=None
+        self.OpenCata()
+        self.cataitem=None
+        self.titre='Eficas XML'
+        self.Ordre_Des_Commandes=None
+        self.Classement_Commandes_Ds_Arbre=()
+        self.demandeCatalogue=False
 
-      #self.traiteIcones()
-      #self.creeDicoInverse()
+        #self.traiteIcones()
+        #self.creeDicoInverse()
 
 
-   def OpenCata(self):
+    def OpenCata(self):
 
-      #self.fic_cata = 'Cata_MED_FAM.xml'
-      #xml = open('/home/A96028/QT5GitEficasTravail/eficas/Med/Cata_MED_FAM.xml').read()
-      #xml = open('/home/A96028/QT5GitEficasTravail/eficas/CataTestXSD/cata_test1.xml').read()
-      self.choisitCata()
-      xml=open(self.fic_cata).read()
-      SchemaMed = readerEfiXsd.efficas.CreateFromDocument(xml)
-      SchemaMed.exploreCata() 
-      self.cata=SchemaMed
-      uiinfo.traite_UIinfo(self.cata)
-      self.Commandes_Ordre_Catalogue=[]
-      self.cata_ordonne_dico,self.appliEficas.liste_simp_reel=autre_analyse_cata.analyseCatalogue(self.cata)
-      self.liste_groupes=None
+        #self.ficCata = 'Cata_MED_FAM.xml'
+        #xml = open('/home/A96028/QT5GitEficasTravail/eficas/Med/Cata_MED_FAM.xml').read()
+        #xml = open('/home/A96028/QT5GitEficasTravail/eficas/CataTestXSD/cata_test1.xml').read()
+        self.choisitCata()
+        xml=open(self.ficCata).read()
+        SchemaMed = readerEfiXsd.efficas.CreateFromDocument(xml)
+        SchemaMed.exploreCata()
+        self.cata=SchemaMed
+        uiinfo.traite_UIinfo(self.cata)
+        self.Commandes_Ordre_Catalogue=[]
+        self.cata_ordonne_dico,self.appliEficas.liste_simp_reel=autre_analyse_cata.analyseCatalogue(self.cata)
+        self.liste_groupes=None
 
-   def dumpToXml(self):
-      # pour compatibilite
-       pass
+    def dumpToXml(self):
+        # pour compatibilite
+        pass
index 1d0cbafc6acdb3c0271d8aa134b8db8dd415ed8c..c16c8a296d3015b4928b2f23623f5cda11898b05 100644 (file)
 #
 #    permet de lancer  EFICAS en n affichant rien
 try :
-   from builtins import object
+    from builtins import object
 except : pass
 
 class appliEficasSSIhm(object):
-   def __init__ (self,code):
-       self.VERSION_EFICAS="Sans Ihm"
-       self.code=code
-       self.ssCode=None
-       self.salome=None
-       self.top=None
-       self.indice=0
-       self.dict_reels={}
-       self.listeAEnlever=[]
+    def __init__ (self,code):
+        self.VERSION_EFICAS="Sans Ihm"
+        self.code=code
+        self.ssCode=None
+        self.salome=None
+        self.top=None
+        self.indice=0
+        self.dict_reels={}
+        self.listeAEnlever=[]
+
 
+        name='prefs_'+self.code
+        try :
+            prefsCode=__import__(name)
+        except :
+            name='prefs_'+self.code.upper()
+            self.code=self.code.upper()
+            prefsCode=__import__(name)
 
-       name='prefs_'+self.code
-       try :
-         prefsCode=__import__(name)
-       except :
-         name='prefs_'+self.code.upper()
-         self.code=self.code.upper()
-         prefsCode=__import__(name)
-       
 
-       self.repIni=prefsCode.repIni
-       self.format_fichier="python" #par defaut
+        self.repIni=prefsCode.repIni
+        self.format_fichier="python" #par defaut
+
+        nameConf='configuration_'+self.code
+        configuration=__import__(nameConf)
+        self.CONFIGURATION = configuration.make_config(self,prefsCode.repIni)
 
-       nameConf='configuration_'+self.code
-       configuration=__import__(nameConf)
-       self.CONFIGURATION = configuration.make_config(self,prefsCode.repIni)
-        
 class QWParentSSIhm(object):
-   def __init__(self,code,version_code):
+    def __init__(self,code,version_code):
         self.ihm="QT"
         self.code=code
         self.version_code=version_code
         self.format_fichier="python" #par defaut
-
index 9068a0aa1a7d1bf8ddb0b423034723cf2a3a0c48..2e3e2de37d11ce06f9d8796a24fcd945e0044080 100644 (file)
@@ -19,7 +19,7 @@
 #
 from __future__ import absolute_import
 try :
-   from builtins import object
+    from builtins import object
 except : pass
 
 from PyQt5.QtWidgets import QAction, QMenu, QMessageBox
@@ -61,16 +61,16 @@ class PopUpMenuNodeMinimal(object) :
         self.menu.addAction(self.Supprime)
         if hasattr(self.appliEficas, 'mesScripts'):
             if self.editor.code in  self.editor.appliEficas.mesScripts :
-               self.dict_commandes_mesScripts=self.appliEficas.mesScripts[self.editor.code].dict_commandes
-               if self.tree.currentItem().item.getNom() in self.dict_commandes_mesScripts : 
-                   self.ajoutScript()
-    
+                self.dict_commandes_mesScripts=self.appliEficas.mesScripts[self.editor.code].dict_commandes
+                if self.tree.currentItem().item.getNom() in self.dict_commandes_mesScripts :
+                    self.ajoutScript()
+
     def ajoutScript(self):
     # cochon mais je n arrive pas a faire mieux avec le mecanisme de plugin
     # a revoir avec un menu et un connect sur le triggered sur le menu ?
         if hasattr(self.appliEficas, 'mesScripts'):
             if self.editor.code in  self.editor.appliEficas.mesScripts :
-               self.dict_commandes_mesScripts=self.appliEficas.mesScripts[self.editor.code].dict_commandes
+                self.dict_commandes_mesScripts=self.appliEficas.mesScripts[self.editor.code].dict_commandes
             else : return
 
         from Extensions import jdc_include
@@ -80,18 +80,18 @@ class PopUpMenuNodeMinimal(object) :
         if type(listeCommandes) != tuple: listeCommandes=(listeCommandes,)
         numero=0
         for commande in listeCommandes :
-           conditionSalome=commande[3]
-           if (self.appliEficas.salome == 0 and conditionSalome == True): return
-           label=commande[1]
-           tip=commande[5]
-           self.action=QAction(label,self.tree)
-           self.action.setStatusTip(tip)
-           if numero==4: self.action.triggered.connect(self.appelleFonction4)
-           if numero==3: self.action.triggered.connect(self.appelleFonction3); numero=4
-           if numero==2: self.action.triggered.connect(self.appelleFonction2); numero=3
-           if numero==1: self.action.triggered.connect(self.appelleFonction1); numero=2
-           if numero==0: self.action.triggered.connect(self.appelleFonction0); numero=1
-           self.menu.addAction(self.action)
+            conditionSalome=commande[3]
+            if (self.appliEficas.salome == 0 and conditionSalome == True): return
+            label=commande[1]
+            tip=commande[5]
+            self.action=QAction(label,self.tree)
+            self.action.setStatusTip(tip)
+            if numero==4: self.action.triggered.connect(self.appelleFonction4)
+            if numero==3: self.action.triggered.connect(self.appelleFonction3); numero=4
+            if numero==2: self.action.triggered.connect(self.appelleFonction2); numero=3
+            if numero==1: self.action.triggered.connect(self.appelleFonction1); numero=2
+            if numero==0: self.action.triggered.connect(self.appelleFonction0); numero=1
+            self.menu.addAction(self.action)
 
 
     def appelleFonction0(self):
@@ -114,7 +114,7 @@ class PopUpMenuNodeMinimal(object) :
         nomCmd=nodeTraite.item.getNom()
         if hasattr(self.appliEficas, 'mesScripts'):
             if self.editor.code in  self.editor.appliEficas.mesScripts :
-               self.dict_commandes_mesScripts=self.appliEficas.mesScripts[self.editor.code].dict_commandes
+                self.dict_commandes_mesScripts=self.appliEficas.mesScripts[self.editor.code].dict_commandes
             else : return
         listeCommandes=self.dict_commandes_mesScripts[nomCmd]
         commande=listeCommandes[numero]
@@ -122,28 +122,28 @@ class PopUpMenuNodeMinimal(object) :
 
 
         if (nodeTraite.item.isValid() == 0 and conditionValid == True):
-                 QMessageBox.warning( None, 
-                             tr("item invalide"),
-                             tr("l item doit etre valide"),)
-                 return
+            QMessageBox.warning( None,
+                        tr("item invalide"),
+                        tr("l item doit etre valide"),)
+            return
         fonction=commande[0]
         listenomparam=commande[2]
         listeparam=[]
         for p in listenomparam:
             if hasattr(nodeTraite,p):
-               listeparam.append(getattr(nodeTraite,p))
+                listeparam.append(getattr(nodeTraite,p))
             if p=="self" : listeparam.append(self)
-           
+
         try :
-           res, commentaire= fonction(listeparam)
-           if not res :
-                 QMessageBox.warning( None, 
-                             tr("echec de la fonction"),
-                             tr(commentaire),)
-                 return
+            res, commentaire= fonction(listeparam)
+            if not res :
+                QMessageBox.warning( None,
+                            tr("echec de la fonction"),
+                            tr(commentaire),)
+                return
         except :
-           pass
-        
+            pass
+
 
 
 
@@ -184,25 +184,25 @@ class PopUpMenuNodeMinimal(object) :
         try :
             f=open(commande,"rb")
         except :
-             texte=tr("impossible de trouver la commande  ") + commande
-             QMessageBox.information( self.editor, tr("Lecteur PDF"), texte)
-             return
+            texte=tr("impossible de trouver la commande  ") + commande
+            QMessageBox.information( self.editor, tr("Lecteur PDF"), texte)
+            return
         import os
         if cle_doc.startswith('http:'):
-           fichier = cle_doc
+            fichier = cle_doc
         else :
             fichier = os.path.abspath(os.path.join(self.editor.maConfiguration.path_doc,
                                        cle_doc))
             try :
-               f=open(fichier,"rb")
+                f=open(fichier,"rb")
             except :
-               texte=tr("impossible d'ouvrir ") + fichier
-               QMessageBox.information( self.editor, tr("Documentation Vide"), texte)
-               return
+                texte=tr("impossible d'ouvrir ") + fichier
+                QMessageBox.information( self.editor, tr("Documentation Vide"), texte)
+                return
+
 
-       
         if os.name == 'nt':
-           os.spawnv(os.P_NOWAIT,commande,(commande,fichier,))
+            os.spawnv(os.P_NOWAIT,commande,(commande,fichier,))
         elif os.name == 'posix':
             script ="#!/usr/bin/sh \n%s %s&" %(commande,fichier)
             pid = os.system(script)
@@ -237,7 +237,7 @@ class PopUpMenuNodePartiel (PopUpMenuNodeMinimal):
         self.commentMenu.addAction(self.CommApres)
         self.commentMenu.addAction(self.CommAvant)
         #ss-menu Parameters:
-        self.paramMenu =self.menu.addMenu(tr('Parametre')) 
+        self.paramMenu =self.menu.addMenu(tr('Parametre'))
         self.paramMenu.addAction(self.ParamApres)
         self.paramMenu.addAction(self.ParamAvant)
         self.menu.addAction(self.Documentation)
index f415a757734097194001d306af9c47faffd52472..fffd16d868e12f397e5268056f465a38598a1cb5 100644 (file)
@@ -20,8 +20,8 @@
 
 from __future__ import absolute_import
 try :
-   from builtins import str
-   from builtins import object
+    from builtins import str
+    from builtins import object
 except : pass
 
 import os
@@ -32,263 +32,265 @@ from  PyQt5.QtCore     import QFileInfo
 DictExtensions= {"MAP" : ".map"}
 class MyViewManager(object):
 
-   def __init__(self,appliEficas):
-       self.appliEficas=appliEficas
-       self.tabWidgets = []
-       self.mesIndexes = {}
-       self.appliEficas=appliEficas
-       self.editors = []
-       self.dict_editors={}
-       self.untitledCount = 0
-       self.doubles = {}
-
-       self.myQtab = self.appliEficas.myQtab
-
-       self.myQtab.currentChanged.connect(self.indexChanged)
-       self.myQtab.tabCloseRequested.connect(self.closeTab)
-        
-   def indexChanged(self):
-       index=self.myQtab.currentIndex()
-       if index in self.dict_editors:
-           editor=self.dict_editors[index]
-           self.appliEficas.maConfiguration=editor.maConfiguration
-           self.appliEficas.code=editor.maConfiguration.code
-           self.appliEficas.setWindowTitle(editor.titre)
-           self.appliEficas.construitMenu()
-
-   def handleOpen(self,fichier=None,patron=0,units=None):
-       result = None
-       if fichier is None:
-            if self.appliEficas.demande==True : 
-               self.appliEficas.definitCode(None,None)
-               if self.appliEficas.code == None:return
-            
+    def __init__(self,appliEficas):
+        self.appliEficas=appliEficas
+        self.tabWidgets = []
+        self.mesIndexes = {}
+        self.appliEficas=appliEficas
+        self.editors = []
+        self.dictEditors={}
+        self.untitledCount = 0
+        self.doubles = {}
+
+        self.myQtab = self.appliEficas.myQtab
+
+        self.myQtab.currentChanged.connect(self.indexChanged)
+        self.myQtab.tabCloseRequested.connect(self.closeTab)
+
+    def indexChanged(self):
+        index=self.myQtab.currentIndex()
+        if index in self.dictEditors:
+            editor=self.dictEditors[index]
+            if editor.jdc !=None :
+                CONTEXT.unsetCurrentJdC()
+                CONTEXT.setCurrentJdC(editor.jdc)
+            self.appliEficas.maConfiguration=editor.maConfiguration
+            self.appliEficas.code=editor.maConfiguration.code
+            self.appliEficas.setWindowTitle(editor.titre)
+            self.appliEficas.construitMenu()
+
+    def handleOpen(self,fichier=None,patron=0,units=None):
+        result = None
+        if fichier is None:
+            if self.appliEficas.demande==True :
+                self.appliEficas.definitCode(None,None)
+                if self.appliEficas.code == None:return
+
             if self.appliEficas.code in DictExtensions:
-               chaine="JDC (*"+DictExtensions[self.appliEficas.code]+");;"
-               extensions=tr(chaine+ "All Files (*)")
+                chaine="JDC (*"+DictExtensions[self.appliEficas.code]+");;"
+                extensions=tr(chaine+ "All Files (*)")
             elif self.appliEficas.code== "TELEMAC" : extensions=tr('CAS (*.cas);;All Files (*)')
             else :
-               extensions=tr('Fichiers JDC (*.comm);;''Tous les Fichiers (*)')
+                extensions=tr('Fichiers JDC (*.comm);;''Tous les Fichiers (*)')
 
             fichier = QFileDialog.getOpenFileName(self.appliEficas,
                         tr('Ouvrir Fichier'),
                         self.appliEficas.maConfiguration.savedir,
-                         extensions)
+                        extensions)
             fichier=fichier[0]
-       if len(fichier) == 0: return None
-       fichier = os.path.abspath(fichier)
-       ulfile = os.path.abspath(fichier)
-       self.appliEficas.maConfiguration.savedir=os.path.split(ulfile)[0]
-       self.appliEficas.addToRecentList(fichier)
-       maPage=self.getEditor( fichier,units=units)
-       if maPage: result = maPage
-       if maPage : self.myQtab.setTabText(self.myQtab.indexOf(maPage),os.path.basename(fichier))
-       return result
-
-   def closeTab(self,indexAFermer):
-       self.handleClose(indexAFermer = indexAFermer)
-
-   def handleClose(self,doitSauverRecent = 1,texte=tr('&Quitter'),indexAFermer=None):
-       if doitSauverRecent : self.appliEficas.sauveRecents()
-       if indexAFermer == None :index=self.myQtab.currentIndex()
-       else : index = indexAFermer
-       if index < 0 : return
-       res=self.checkDirty(self.dict_editors[index],texte)
-       if res == 2 : return 2             # l utilisateur a annule
-       idx=index
-       while idx < len(self.dict_editors) -1 :
-             self.dict_editors[idx]=self.dict_editors[idx+1]
-             idx = idx + 1
-       del self.dict_editors[len (self.dict_editors) -1]
-       try :
-           del self.doubles[self.dict_editors[index]]
-       except :
-           pass
-       self.myQtab.removeTab(index)
-       return res
-       
-
-   def run(self):
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       editor=self.dict_editors[index]
-       editor.run()
-
-   def saveRun(self):
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       editor=self.dict_editors[index]
-       editor.saveRun()
-
-   def handleCloseAll(self,texte=tr('Quitter')):
-       res=0
-       self.appliEficas.sauveRecents()
-       while len(self.dict_editors) > 0 :
-             self.myQtab.setCurrentIndex(0)
-             res=self.handleClose(0,texte)
-             if res==2 : return res   # l utilsateur a annule
-       return res
-        
-   def handleRechercher(self):
-       #print "passage dans handleRechercher"
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       editor=self.dict_editors[index]
-       editor.handleRechercher()
-
-   def handleRechercherDsCatalogue(self):
-       #print "passage dans handleRechercher"
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       editor=self.dict_editors[index]
-       editor.handleRechercherDsCatalogue()
-
-   def handleDeplier(self):
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       editor=self.dict_editors[index]
-       editor.handleDeplier()
-   
-   def handleEditCopy(self):
-       #print "passage dans handleEditCopy"
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       editor=self.dict_editors[index]
-       editor.handleEditCopy()
-
-   def handleEditCut(self):
-       #print "passage dans handleEditCut"
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       editor=self.dict_editors[index]
-       editor.handleEditCut()
-
-   def handleEditPaste(self):
-       #print "passage dans handleEditPaste"
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       editor=self.dict_editors[index]
-       editor.handleEditPaste()
-
-   def handleSupprimer(self):
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       editor=self.dict_editors[index]
-       editor.handleSupprimer()
-
-   def handleAjoutEtape(self,nomEtape):
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       editor=self.dict_editors[index]
-       editor.handleAjoutEtape(nomEtape)
-
-
-   def newEditor(self,include=0):
-       if self.appliEficas.demande==True : 
-           self.appliEficas.definitCode(None,None)
-           if self.appliEficas.code == None:return
-       maPage=self.getEditor(include=include)
-
-   def newIncludeEditor(self):
-       self.newEditor(include=1)
-
-   def handleViewJdcFichierSource(self):
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       self.dict_editors[index].viewJdcSource()
-
-   def ouvreArbre(self):
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       self.dict_editors[index].ouvreArbre()
-
-   def fermeArbre(self):
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       self.dict_editors[index].fermeArbre()
-
-   def ajoutCommentaire(self):
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       editor=self.dict_editors[index]
-       editor.ajoutCommentaire()
-
-   def handleViewJdcRegles(self):
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       self.dict_editors[index].viewJdcRegles()
-
-   def handleGestionParam(self):
-       index=self.myQtab.currentIndex()
-       if index < 0 : 
-          QMessageBox.warning( self.appliEficas,tr(u"Creation Parametre indisponible"),tr(u"les parametres sont lies a un jeu de donnees"))
-          return
-       self.dict_editors[index].gestionParam()
-
-   def handleViewJdcRapport(self):
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       self.dict_editors[index].viewJdcRapport()
-
-   def handleViewJdcPy(self):
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       self.dict_editors[index].viewJdcPy()
-
-   def saveCurrentEditor(self):
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       editor=self.dict_editors[index]
-       if editor in self.doubles :
-           QMessageBox.warning(
-                     None,
-                     tr("Fichier Duplique"),
-                     tr("Le fichier ne sera pas sauvegarde."),)
-           return
-       ok, newName = editor.saveFile()
-       if ok :
-           fileName=os.path.basename(newName)
-           self.myQtab.setTabText(index,fileName)
-       return ok
-
-   def saveCompleteCurrentEditor(self):
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       editor=self.dict_editors[index]
-       ok, newName = editor.saveCompleteFile()
-       return ok
-
-   def sauveLigneCurrentEditor(self):
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       editor=self.dict_editors[index]
-       if editor in self.doubles :
-           QMessageBox.warning(
-                     None,
-                     tr("Fichier Duplique"),
-                     tr("Le fichier ne sera pas sauvegarde."),)
-           return
-       ok, newName = editor.sauveLigneFile()
-       if ok :
-           fileName=os.path.basename(newName)
-           self.myQtab.setTabText(index,fileName)
-       return ok
-
-
-   def saveAsCurrentEditor(self):
-       index=self.myQtab.currentIndex()
-       editor=self.dict_editors[index]
-       oldName=editor.fichier
-       ok,newName = editor.saveFileAs()
-       if ok :
-           fileName=os.path.basename(newName)
-           self.myQtab.setTabText(index,fileName)
-       if editor in self.doubles :
-          if oldName != newName :
-             del self.doubles[editor]
-       return ok
-
-   def displayJDC(self,jdc,fn=None):
+        if len(fichier) == 0: return None
+        fichier = os.path.abspath(fichier)
+        ulfile = os.path.abspath(fichier)
+        self.appliEficas.maConfiguration.savedir=os.path.split(ulfile)[0]
+        self.appliEficas.addToRecentList(fichier)
+        maPage = self.getEditor( fichier,units=units)
+        if maPage : result = maPage
+        if maPage : self.myQtab.setTabText(self.myQtab.indexOf(maPage),os.path.basename(fichier))
+        return result
+
+    def closeTab(self,indexAFermer):
+        self.handleClose(indexAFermer = indexAFermer)
+
+    def handleClose(self,doitSauverRecent = 1,texte=tr('&Quitter'),indexAFermer=None):
+        if doitSauverRecent : self.appliEficas.sauveRecents()
+        if indexAFermer == None : index=self.myQtab.currentIndex()
+        else : index = indexAFermer
+        if index < 0 : return
+        res=self.checkDirty(self.dictEditors[index],texte)
+        if res == 2 : return 2             # l utilisateur a annule
+        idx=index
+        while idx < len(self.dictEditors) -1 :
+            self.dictEditors[idx]=self.dictEditors[idx+1]
+            idx = idx + 1
+        del self.dictEditors[len (self.dictEditors) -1]
+        try :
+            del self.doubles[self.dictEditors[index]]
+        except :
+            pass
+        self.myQtab.removeTab(index)
+        return res
+
+
+    def run(self):
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        editor=self.dictEditors[index]
+        editor.run()
+
+    def saveRun(self):
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        editor=self.dictEditors[index]
+        editor.saveRun()
+
+    def handleCloseAll(self,texte=tr('Quitter')):
+        res=0
+        self.appliEficas.sauveRecents()
+        while len(self.dictEditors) > 0 :
+            self.myQtab.setCurrentIndex(0)
+            res=self.handleClose(0,texte)
+            if res==2 : return res   # l utilsateur a annule
+        return res
+
+    def handleRechercher(self):
+        #print "passage dans handleRechercher"
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        editor=self.dictEditors[index]
+        editor.handleRechercher()
+
+    def handleRechercherDsCatalogue(self):
+        #print "passage dans handleRechercher"
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        editor=self.dictEditors[index]
+        editor.handleRechercherDsCatalogue()
+
+    def handleDeplier(self):
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        editor=self.dictEditors[index]
+        editor.handleDeplier()
+
+    def handleEditCopy(self):
+        #print "passage dans handleEditCopy"
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        editor=self.dictEditors[index]
+        editor.handleEditCopy()
+
+    def handleEditCut(self):
+        #print "passage dans handleEditCut"
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        editor=self.dictEditors[index]
+        editor.handleEditCut()
+
+    def handleEditPaste(self):
+        #print "passage dans handleEditPaste"
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        editor=self.dictEditors[index]
+        editor.handleEditPaste()
+
+    def handleSupprimer(self):
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        editor=self.dictEditors[index]
+        editor.handleSupprimer()
+
+    def handleAjoutEtape(self,nomEtape):
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        editor=self.dictEditors[index]
+        editor.handleAjoutEtape(nomEtape)
+
+
+    def newEditor(self,include=0):
+        if self.appliEficas.demande==True :
+            self.appliEficas.definitCode(None,None)
+            if self.appliEficas.code == None:return
+        maPage=self.getEditor(include=include)
+
+    def newIncludeEditor(self):
+        self.newEditor(include=1)
+
+    def handleViewJdcFichierSource(self):
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        self.dictEditors[index].viewJdcSource()
+
+    def ouvreArbre(self):
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        self.dictEditors[index].ouvreArbre()
+
+    def fermeArbre(self):
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        self.dictEditors[index].fermeArbre()
+
+    def ajoutCommentaire(self):
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        editor=self.dictEditors[index]
+        editor.ajoutCommentaire()
+
+    def handleViewJdcRegles(self):
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        self.dictEditors[index].viewJdcRegles()
+
+    def handleGestionParam(self):
+        index=self.myQtab.currentIndex()
+        if index < 0 :
+            QMessageBox.warning( self.appliEficas,tr(u"Creation Parametre indisponible"),tr(u"les parametres sont lies a un jeu de donnees"))
+            return
+        self.dictEditors[index].gestionParam()
+
+    def handleViewJdcRapport(self):
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        self.dictEditors[index].viewJdcRapport()
+
+    def handleViewJdcPy(self):
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        self.dictEditors[index].viewJdcPy()
+
+    def saveCurrentEditor(self):
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        editor=self.dictEditors[index]
+        if editor in self.doubles :
+            QMessageBox.warning(
+                      None,
+                      tr("Fichier Duplique"),
+                      tr("Le fichier ne sera pas sauvegarde."),)
+            return
+        ok, newName = editor.saveFile()
+        if ok :
+            fileName=os.path.basename(newName)
+            self.myQtab.setTabText(index,fileName)
+        return ok
+
+    def saveCompleteCurrentEditor(self):
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        editor=self.dictEditors[index]
+        ok, newName = editor.saveCompleteFile()
+        return ok
+
+    def sauveLigneCurrentEditor(self):
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        editor=self.dictEditors[index]
+        if editor in self.doubles :
+            QMessageBox.warning(
+                      None,
+                      tr("Fichier Duplique"),
+                      tr("Le fichier ne sera pas sauvegarde."),)
+            return
+        ok, newName = editor.sauveLigneFile()
+        if ok :
+            fileName=os.path.basename(newName)
+            self.myQtab.setTabText(index,fileName)
+        return ok
+
+    def saveAsCurrentEditor(self):
+        index=self.myQtab.currentIndex()
+        editor=self.dictEditors[index]
+        oldName=editor.fichier
+        ok,newName = editor.saveFileAs()
+        if ok :
+            fileName=os.path.basename(newName)
+            self.myQtab.setTabText(index,fileName)
+        if editor in self.doubles :
+            if oldName != newName :
+                del self.doubles[editor]
+        return ok
+
+    def displayJDC(self,jdc,fn=None):
         """
         Public slot to display a file in an editor.
         @param fn name of file to be opened
@@ -299,43 +301,43 @@ class MyViewManager(object):
         editor = self.getEditor(fichier= fn, jdc = jdc ,include=1)
         self.appliEficas.addToRecentList(editor.getFileName())
 
-   def getEditor(self,fichier = None,jdc = None, units = None,include=0):
-       newWin = 0
-       double = None
-       indexEditor=0
-       for indexEditor in self.dict_editors :
-           editor=self.dict_editors[indexEditor]
-           if self.samePath(fichier, editor.getFileName()):
-              msgBox = QMessageBox()
-              msgBox.setWindowTitle(tr("Fichier"))
-              msgBox.setText(tr("Le fichier <b>%s</b> est deja ouvert", str(fichier)))
-              msgBox.addButton(tr("&Duplication"),0)
-              msgBox.addButton(tr("&Abandonner"),1)
-              abort=msgBox.exec_()
-              if abort: break
-              double=editor
-       else :
+    def getEditor(self,fichier = None,jdc = None, units = None,include=0):
+        newWin = 0
+        double = None
+        indexEditor=0
+        for indexEditor in self.dictEditors :
+            editor=self.dictEditors[indexEditor]
+            if self.samePath(fichier, editor.getFileName()):
+                msgBox = QMessageBox()
+                msgBox.setWindowTitle(tr("Fichier"))
+                msgBox.setText(tr("Le fichier <b>%s</b> est deja ouvert", str(fichier)))
+                msgBox.addButton(tr("&Duplication"),0)
+                msgBox.addButton(tr("&Abandonner"),1)
+                abort=msgBox.exec_()
+                if abort: break
+                double=editor
+        else :
             from .editor import JDCEditor
             editor = JDCEditor(self.appliEficas,fichier, jdc, self.myQtab,units=units,include=include)
-            if double != None : 
-               self.doubles[editor]=double
+            if double != None :
+                self.doubles[editor]=double
             if editor.jdc: # le fichier est bien un jdc
                 self.editors.append(editor)
                 newWin = 1
             else:
                 editor.closeIt()
 
-       if newWin:
+        if newWin:
             self.addView(editor, fichier)
-       elif editor.jdc:
+        elif editor.jdc:
             self.myQtab.setCurrentIndex(indexEditor)
 
-       index=self.myQtab.currentIndex()
-       if index != -1 :
-          self.dict_editors[index]=editor
-       return editor
+        index=self.myQtab.currentIndex()
+        if index != -1 :
+            self.dictEditors[index]=editor
+        return editor
 
-   def addView(self, win, fichier=None):
+    def addView(self, win, fichier=None):
 #PNPNPNPN --> a affiner
         if fichier is None:
             self.untitledCount += 1
@@ -351,31 +353,31 @@ class MyViewManager(object):
         self.currentEditor=win
         win.setFocus()
 
-   def getOpenStartDir(self) :
-       #PN --> Les Preferences
+    def getOpenStartDir(self) :
+        #PN --> Les Preferences
         try :
             userDir=os.path.expanduser("~/Eficas_install/")
             return userDir
         except :
             return ""
 
-   def samePath(self,f1, f2):
-    """
-    compare two paths.
-    """
-    if f1 is None or f2 is None: return 0
-    if os.path.normcase(os.path.normpath(f1)) == os.path.normcase(os.path.normpath(f2)) : return 1
-    return 0
+    def samePath(self,f1, f2):
+        """
+        compare two paths.
+        """
+        if f1 is None or f2 is None: return 0
+        if os.path.normcase(os.path.normpath(f1)) == os.path.normcase(os.path.normpath(f2)) : return 1
+        return 0
 
 
-   def checkDirty(self, editor,texte):
+    def checkDirty(self, editor,texte):
         """
         Private method to check dirty status and open a message window.
-        
+
         @param editor editor window to check
         @return flag indicating successful reset of the dirty flag (boolean)
-        """        
-        res=1 
+        """
+        res=1
         if (editor.modified) and (editor in self.doubles) :
             msgBox = QMessageBox(None)
             msgBox.setWindowTitle(tr("Fichier Duplique"))
@@ -405,27 +407,26 @@ class MyViewManager(object):
                 return ok
         return res
 
-   def handleAjoutGroup(self,listeGroup):
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       editor=self.dict_editors[index]
-       editor.handleAjoutGroup(listeGroup)
-  
-   def handleFonctionUtilisateur(self,laFonctionUtilisateur, lesArguments):
-       # Peut-etre a blinder un peu plus sur le nb d argument
-       index=self.myQtab.currentIndex()
-       if index < 0 : return
-       editor=self.dict_editors[index]
-       if editor.getEtapeCourante() == None :
-          QMessageBox.information( self.appliEficas,
-                      tr("Selectionner une etape"),
-                      tr("Le texte ne peut pas etre insere dans un fichier vide,\nCreer un materiau vide ou une zone vide et inserer le catalogue apres"))
-          return
-
-       listeParam = [] 
-       for p in lesArguments:
-          if hasattr(editor,p): listeParam.append(getattr(editor,p))
-          if p=="editor"      : listeParam.append(editor)
-          if p=="etapeCourante" : listeParam.append(editor.getEtapeCourante())
-       laFonctionUtilisateur(*listeParam)
-
+    def handleAjoutGroup(self,listeGroup):
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        editor=self.dictEditors[index]
+        editor.handleAjoutGroup(listeGroup)
+
+    def handleFonctionUtilisateur(self,laFonctionUtilisateur, lesArguments):
+        # Peut-etre a blinder un peu plus sur le nb d argument
+        index=self.myQtab.currentIndex()
+        if index < 0 : return
+        editor=self.dictEditors[index]
+        if editor.getEtapeCourante() == None :
+            QMessageBox.information( self.appliEficas,
+                        tr("Selectionner une etape"),
+                        tr("Le texte ne peut pas etre insere dans un fichier vide,\nCreer un materiau vide ou une zone vide et inserer le catalogue apres"))
+            return
+
+        listeParam = []
+        for p in lesArguments:
+            if hasattr(editor,p): listeParam.append(getattr(editor,p))
+            if p=="editor"      : listeParam.append(editor)
+            if p=="etapeCourante" : listeParam.append(editor.getEtapeCourante())
+        laFonctionUtilisateur(*listeParam)
index 916ccdfaf9b766ef0f413c2f461b15ef70f36c99..6a2572019a62e4fa75773d9d9a6e04c71f826ebb 100644 (file)
 
 from __future__ import absolute_import
 try :
-   from builtins import str
-   from builtins import object
+    from builtins import str
+    from builtins import object
 except : pass
 
 import os
 from Extensions.i18n import tr
-import six
-from  PyQt5.QtWidgets  import QFileDialog, QMessageBox
-from  PyQt5.QtCore     import QFileInfo
 
 # --------------------------------
 class JdcSsIhmHandler(object):
 # --------------------------------
 # retourne a l utilisateur
 
-   def __init__(self,viewManager):
+    def __init__(self,viewManager):
 #  --------------------------------------
-       self.viewManagerSsIhm=viewManager
+        self.viewManagerSsIhm=viewManager
 
-   def viewJdcPy(self) :
+    def viewJdcPy(self) :
 #  ---------------------
-       self.viewManagerSsIhm.handleViewJdcPy(self)
+        self.viewManagerSsIhm.handleViewJdcPy(self)
 
-   def viewJdcSource(self) :
+    def viewJdcSource(self) :
 #  ---------------------
-       self.viewManagerSsIhm.handleViewJdcSource(self)
+        self.viewManagerSsIhm.handleViewJdcSource(self)
 
-   def getFileName(self):
+    def getFileName(self):
 #  ---------------------
-       self.viewManagerSsIhm.getFileName(self)
+        self.viewManagerSsIhm.getFileName(self)
 
-   def viewJdcRapport(self) :
+    def viewJdcRapport(self) :
 #  ---------------------
-       self.viewManagerSsIhm.handleViewJdcRapport(self)
+        self.viewManagerSsIhm.handleViewJdcRapport(self)
 
-   def getJdcRapport(self) :
+    def getJdcRapport(self) :
 #  ---------------------
-       return self.viewManagerSsIhm.handleGetJdcRapport(self)
+        return self.viewManagerSsIhm.handleGetJdcRapport(self)
 
-   def getDicoPython(self) :
+    def getDicoPython(self) :
 #  -------------------------
-       return self.viewManagerSsIhm.generDico(self)
+        return self.viewManagerSsIhm.generDico(self)
 
-   def isJdcValid(self) :
+    def isJdcValid(self) :
 #  -------------------------
-       return self.viewManagerSsIhm.isJdcValid(self)
+        return self.viewManagerSsIhm.isJdcValid(self)
 
-   def fileSaveAs(self,fileName):
+    def fileSaveAs(self,fileName):
 #  -------------------------
-       return self.viewManagerSsIhm.fileSaveAs(self,fileName)
+        return self.viewManagerSsIhm.fileSaveAs(self,fileName)
 
-   def fileLegerSaveAs(self,fileName):
+    def fileLegerSaveAs(self,fileName):
 #  -----------------------------------
-       return self.viewManagerSsIhm.fileLegerSaveAs(self,fileName)
+        return self.viewManagerSsIhm.fileLegerSaveAs(self,fileName)
 
 
 
@@ -82,335 +79,161 @@ class MyViewManagerSsIhm(object):
 #--------------------------------
 # Symetrique de ViewManager mais pas d heritage entre les 2
 # dans le viewManager pas de souci pour savoir qui est le jdc sur lequel on travaille
-# ici en revanche.... c est moins sur
+# ici en revanche.... c est moins sur . voir avec le fichier
 
 #  --------------------------------
-   def __init__(self,appliEficas):
+    def __init__(self,appliEficas):
 #  --------------------------------
-       self.appliEficas=appliEficas
-       self.tabWidgets = []
-       self.mesIndexes = {}
-       self.dictEditors={}
-       self.untitledCount = 0
-       self.doubles = {}
+        self.appliEficas=appliEficas
+        self.tabWidgets = []
+        self.mesIndexes = {}
+        self.dictEditors={}
+        self.untitledCount = 0
+        self.doubles = {}
 
 #  ------------------------------------------------------
-   def handleOpen(self,fichier=None, units=None):
+    def handleOpen(self,fichier=None, units=None):
 #  ------------------------------------------------------
-       result = None
-       if fichier is None: 
-             print ('nom de fichier obligatoire')
-             return None
+        result = None
+        if fichier is None:
+            print ('nom de fichier obligatoire')
+            return None
 
-       for handler in self.dictEditors :
-           editor=self.dictEditors[handler]
-           if self.samePath(fichier, editor.getFileName()):
-              print ('fichier deja ouvert . pas de nouvel editor')
-              return handler
+        for handler in self.dictEditors :
+            editor=self.dictEditors[handler]
+            if self.samePath(fichier, editor.getFileName()):
+                print ('fichier deja ouvert . pas de nouvel editor')
+                return handler
 
-       monNewHandler = self.getNewEditor(fichier,units)
-       return monNewHandler
+        monNewHandler = self.getNewEditor(fichier,units)
+        return monNewHandler
 
 #  ----------------------------------------------------------------------
-   def getNewEditor(self,fichier = None,jdc = None, units = None,include=0):
+    def getNewEditor(self,fichier = None,jdc = None, units = None,include=0):
 #  ----------------------------------------------------------------------
-
-       from InterfaceQT4.editorSsIhm import JDCEditorSsIhm
-       editor = JDCEditorSsIhm(self.appliEficas,fichier,jdc, units=units,include=include)
-
-       if editor.jdc: # le fichier est bien un jdc
-          monHandler = JdcSsIhmHandler(self)
-          self.dictEditors[monHandler]=editor
-          return monHandler
-       else:
-          print ('impossible de construire le jdc') 
-          return None
+# il faudrait decider entre e handler ou non
+# le cas d usage n est pas tout a fait identique  :
+# avec handler pour les utilisateurs avance
+# sans pour les utilisateurs encore plus ancvances et les tests
+
+        from InterfaceQT4.editorSsIhm import JDCEditorSsIhm
+        editor = JDCEditorSsIhm(self.appliEficas,fichier,jdc, units=units,include=include)
+
+        if editor.jdc: # le fichier est bien un jdc
+            monHandler = JdcSsIhmHandler(self)
+            self.dictEditors[monHandler]=editor
+            return monHandler
+        else:
+            print ('impossible de construire le jdc')
+            return None
+
+#  --------------------------------------------------------------------------------
+    def getNewEditorNormal(self,fichier = None,jdc = None, units = None,include=0):
+#  --------------------------------------------------------------------------------
+
+        from InterfaceQT4.editorSsIhm import JDCEditorSsIhm
+        editor = JDCEditorSsIhm(self.appliEficas,fichier,jdc, units=units,include=include)
+        self.editor=editor
+        return editor
 
 #  -----------------------------
-   def samePath(self,f1, f2):
+    def samePath(self,f1, f2):
 #  ------------------------------
-    """
-    compare two paths.
-    """
-    if f1 is None or f2 is None: return 0
-    if os.path.normcase(os.path.normpath(f1)) == os.path.normcase(os.path.normpath(f2)) : return 1
-    return 0
+        """
+        compare two paths.
+        """
+        if f1 is None or f2 is None: return 0
+        if os.path.normcase(os.path.normpath(f1)) == os.path.normcase(os.path.normpath(f2)) : return 1
+        return 0
 
 #  ---------------------------------
-   def handleViewJdcPy(self,handler):
+    def handleViewJdcPy(self,handler):
 #  ---------------------------------
         if not (handler in self.dictEditors) :
-           print ('editor non trouve')
-           return
+            print ('editor non trouve')
+            return
         self.dictEditors[handler].viewJdcPy()
 
 #  ---------------------------------
-   def getFileName(self,handler):
+    def getFileName(self,handler):
 #  ---------------------------------
         if not (handler in self.dictEditors) :
-           print ('editor non trouve')
-           return
+            print ('editor non trouve')
+            return
         return self.dictEditors[handler].getFileName()
 
 
 #  ---------------------------------------------
-   def handleViewJdcSource(self,handler):
+    def handleViewJdcSource(self,handler):
 #  ---------------------------------------------
         print (handler)
         if not (handler in self.dictEditors) :
-           print ('editor non trouve')
-           return
+            print ('editor non trouve')
+            return
         self.dictEditors[handler].viewJdcSource()
 
 
 #  ---------------------------------------------
-   def handleViewJdcRapport(self,handler):
+    def handleViewJdcRapport(self,handler):
 #  ---------------------------------------------
         print (handler)
         if not (handler in self.dictEditors) :
-           print ('editor non trouve')
-           return
+            print ('editor non trouve')
+            return
         self.dictEditors[handler].viewJdcRapport()
 
 #  ---------------------------------------------
-   def handleGetJdcRapport(self,handler):
+    def handleGetJdcRapport(self,handler):
 #  ---------------------------------------------
         if not (handler in self.dictEditors) :
-           print ('editor non trouve')
-           return
+            print ('editor non trouve')
+            return
         return self.dictEditors[handler].getJdcRapport()
 
 #  ---------------------------------------------
-   def handleViewJdcRapport(self,handler):
+    def handleViewJdcRapport(self,handler):
 #  ---------------------------------------------
         print (handler)
         if not (handler in self.dictEditors) :
-           print ('editor non trouve')
-           return
+            print ('editor non trouve')
+            return
         self.dictEditors[handler].viewJdcRapport()
 
 
 #  ---------------------------------------------
-   def generDico(self,handler):
+    def generDico(self,handler):
 #  ---------------------------------------------
         print (handler)
         if not (handler in self.dictEditors) :
-           print ('editor non trouve')
-           return
+            print ('editor non trouve')
+            return
         return self.dictEditors[handler].generDico()
 
 
 #  ---------------------------------------------
-   def isJdcValid(self,handler):
+    def isJdcValid(self,handler):
 #  ---------------------------------------------
         print (handler)
         if not (handler in self.dictEditors) :
-           print ('editor non trouve')
-           return
+            print ('editor non trouve')
+            return
         return self.dictEditors[handler].jdc.isValid()
 
 
 #  ---------------------------------------------
-   def fileSaveAs(self,handler,fileName):
+    def fileSaveAs(self,handler,fileName):
 #  ---------------------------------------------
         print (handler)
         if not (handler in self.dictEditors) :
-           print ('editor non trouve')
-           return
+            print ('editor non trouve')
+            return
         return self.dictEditors[handler].saveFile(fileName)
 
 #  ---------------------------------------------
-   def fileLegerSaveAs(self, handler,fileName):
+    def fileLegerSaveAs(self, handler,fileName):
 #  ---------------------------------------------
 #        print (handler)
         if not (handler in self.dictEditors) :
-           print ('editor non trouve')
-           return
+            print ('editor non trouve')
+            return
         self.dictEditors[handler].saveFileLegerAs(fileName)
-
-
-#   def handleClose(self,doitSauverRecent = 1,texte=tr('&Quitter')):
-#       if doitSauverRecent : self.appliEficas.sauveRecents()
-#       index=self.myQtab.currentIndex()
-#       if index < 0 : return
-#       res=self.checkDirty(self.dict_editors[index],texte)
-#       if res == 2 : return 2             # l utilisateur a annule
-#       index=self.myQtab.currentIndex()
-#       idx=index
-#       while idx < len(self.dict_editors) -1 :
-#             self.dict_editors[idx]=self.dict_editors[idx+1]
-#             idx = idx + 1
-#       del self.dict_editors[len (self.dict_editors) -1]
-#       try :
-#           del self.doubles[self.dict_editors[index]]
-#       except :
-#           pass
-#       self.myQtab.removeTab(index)
-#       return res
-#       
-
-#
-#   def handleCloseAll(self,texte=tr('Quitter')):
-#       res=0
-#       self.appliEficas.sauveRecents()
-#       while len(self.dict_editors) > 0 :
-#             self.myQtab.setCurrentIndex(0)
-#             res=self.handleClose(0,texte)
-#             if res==2 : return res   # l utilsateur a annule
-#       return res
-#        
-#
-#
-#   def newEditor(self,include=0):
-#       if self.appliEficas.demande==True : 
-#           self.appliEficas.definitCode(None,None)
-#           if self.appliEficas.code == None:return
-#       maPage=self.getEditor(include=include)
-#
-
-#
-#   def handleViewJdcRegles(self):
-#       index=self.myQtab.currentIndex()
-#       if index < 0 : return
-#       self.dict_editors[index].viewJdcRegles()
-#
-#   def handleGestionParam(self):
-#       index=self.myQtab.currentIndex()
-#       if index < 0 : 
-#          QMessageBox.warning( self.appliEficas,tr(u"Creation Parametre indisponible"),tr(u"les parametres sont lies a un jeu de donnees"))
-#          return
-#       self.dict_editors[index].gestionParam()
-#
-#
-#
-#   def saveCurrentEditor(self):
-#       index=self.myQtab.currentIndex()
-#       if index < 0 : return
-#       editor=self.dict_editors[index]
-#       if editor in self.doubles :
-#           QMessageBox.warning(
-#                     None,
-#                     tr("Fichier Duplique"),
-#                     tr("Le fichier ne sera pas sauvegarde."),)
-#           return
-#       ok, newName = editor.saveFile()
-#       if ok :
-#           fileName=os.path.basename(six.text_type(newName))
-#           self.myQtab.setTabText(index,fileName)
-#       return ok
-#
-#   def saveLegerCurrentEditor(self):
-#       index=self.myQtab.currentIndex()
-#       if index < 0 : return
-#       editor=self.dict_editors[index]
-#       ok, newName = editor.saveFileLeger()
-#       return ok
-#
-#   def sauveLigneCurrentEditor(self):
-#       index=self.myQtab.currentIndex()
-#       if index < 0 : return
-#       editor=self.dict_editors[index]
-#       if editor in self.doubles :
-#           QMessageBox.warning(
-#                     None,
-#                     tr("Fichier Duplique"),
-#                     tr("Le fichier ne sera pas sauvegarde."),)
-#           return
-#       ok, newName = editor.sauveLigneFile()
-#       if ok :
-#           fileName=os.path.basename(six.text_type(newName))
-#           self.myQtab.setTabText(index,fileName)
-#       return ok
-#
-#
-#   def saveAsCurrentEditor(self):
-#       index=self.myQtab.currentIndex()
-#       editor=self.dict_editors[index]
-#       oldName=editor.fichier
-#       ok,newName = editor.saveFileAs()
-#       if ok :
-#           fileName=os.path.basename(six.text_type(newName))
-#           self.myQtab.setTabText(index,fileName)
-#       if editor in self.doubles :
-#          if oldName != newName :
-#             del self.doubles[editor]
-#       return ok
-#
-#   def displayJDC(self,jdc,fn=None):
-#        """
-#        Public slot to display a file in an editor.
-#        @param fn name of file to be opened
-#        # insert filename into list of recently opened files
-#        """
-#        titre=None
-#        if fn != None : titre=fn.split("/")[-1]
-#        editor = self.getEditor(fichier= fn, jdc = jdc ,include=1)
-#        self.appliEficas.addToRecentList(editor.getFileName())
-#
-
-##PNPNPNPN --> a affiner
-#        if fichier is None:
-#            self.untitledCount += 1
-#            self.myQtab.addTab(win, tr("Fichier non encore nomme ", self.untitledCount))
-#            #self.myQtab.addTab(win, str(self.appliEficas.code))
-#        else:
-#            liste=fichier.split('/')
-#            txt =  liste[-1]
-#            if not QFileInfo(fichier).isWritable():
-#                txt = '%s (ro)' % txt
-#            self.myQtab.addTab(win,txt )
-#        self.myQtab.setCurrentWidget(win)
-#        self.currentEditor=win
-#        win.setFocus()
-#
-#   def getOpenStartDir(self) :
-#       #PN --> Les Preferences
-#        try :
-#            userDir=os.path.expanduser("~/Eficas_install/")
-#            return userDir
-#        except :
-#            return ""
-#
-#
-#   def checkDirty(self, editor,texte):
-#        """
-#        Private method to check dirty status and open a message window.
-#        
-#        @param editor editor window to check
-#        @return flag indicating successful reset of the dirty flag (boolean)
-#        """        
-#        res=1 
-#        if (editor.modified) and (editor in self.doubles) :
-#            msgBox = QMessageBox(None)
-#            msgBox.setWindowTitle(tr("Fichier Duplique"))
-#            msgBox.setText(tr("Le fichier ne sera pas sauvegarde."))
-#            msgBox.addButton(texte,0)
-#            msgBox.addButton(tr("&Annuler"),1)
-#            res=msgBox.exec_()
-#            if res == 0 : return 1
-#            return 2
-#        if editor.modified:
-#            fn = editor.getFileName()
-#            if fn is None: fn = tr('Noname')
-#            msgBox = QMessageBox(None)
-#            msgBox.setWindowTitle(tr("Fichier Modifie"))
-#            msgBox.setText(tr("Le fichier ne sera pas sauvegarde."))
-#            msgBox.addButton(tr("&Sauvegarder"),1)
-#            msgBox.addButton(tr("&Quitter sans sauvegarder"),0)
-#            msgBox.addButton(tr("&Annuler"),2)
-#            res=msgBox.exec_()
-#            if res == 2 : return res
-#            if res == 0:
-#                (ok, newName) = editor.saveFile()
-#                if ok:
-#                    fileName=os.path.basename(six.text_type(newName))
-#                    index=self.myQtab.currentIndex()
-#                    self.myQtab.setTabText(index,fileName)
-#                return ok
-#        return res
-#
-#   def handleAjoutGroup(self,listeGroup):
-#       index=self.myQtab.currentIndex()
-#       if index < 0 : return
-#       editor=self.dict_editors[index]
-#       editor.handleAjoutGroup(listeGroup)
index 6c997677551d8422d56ff933201574c96e7eb3d6..7a28aefc7dd162d8738e90a09d100930ebea7d8d 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-\r
-# Copyright (C) 2007-2013   EDF R&D\r
+# Copyright (C) 2007-2021   EDF R&D\r
 #\r
 # This library is free software; you can redistribute it and/or\r
 # modify it under the terms of the GNU Lesser General Public\r
index 549c96961863e122f5fb66a932905c0626e38865..f1df4a02b6540bb14151bbcb6ee4ad2538ac7edc 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index f134bd1dda1f6d1dae1874d7f603653323558851..ef62c20468638b5d4a2c3eed8b7d370f40b6c1e2 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-\r
-# Copyright (C) 2007-2013   EDF R&D\r
+# Copyright (C) 2007-2021   EDF R&D\r
 #\r
 # This library is free software; you can redistribute it and/or\r
 # modify it under the terms of the GNU Lesser General Public\r
index e02b8c740f11d6cd3593df4f798c9bd39b3f86b5..aa4bb0ecda057876971e3674538b896f58038cc3 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index d5961788261bcb2d743cf2e5d7808ca2ae138a93..36b4b2005cb77684c488a0adf5db21a968897c4b 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
diff --git a/MED/CataAZ.py b/MED/CataAZ.py
deleted file mode 100755 (executable)
index b6e6494..0000000
+++ /dev/null
@@ -1,210 +0,0 @@
-# coding: utf-8\r
-import types\r
-from Accas import *\r
-\r
-class grno(GEOM):\r
-    """\r
-    Classe servant à définir le nom d'un groupe de noeuds dans le fichier de commande\r
-    En clair : un chaine de longueur 24.\r
-    """\r
-    def __convert__(cls,valeur):\r
-        """\r
-        Fonction de verification de la longueur de la chaine\r
-        """\r
-        if isinstance(valeur, (str,unicode)) and len(valeur.strip()) <= 24:\r
-            return valeur.strip()\r
-        raise ValueError(_(u'On attend une chaine de caractères (de longueur <= 24).'))\r
-    __convert__ = classmethod(__convert__)\r
-\r
-class grma(GEOM):\r
-    """\r
-    Classe servant à définir le nom d'un groupe de mailles dans le fichier de commande\r
-    En clair : un chaine de longueur 24.\r
-    """\r
-    def __convert__(cls,valeur):\r
-        """\r
-        Fonction de verification de la longueur de la chaine\r
-        """\r
-        if isinstance(valeur, (str,unicode)) and len(valeur.strip()) <= 24:\r
-            return valeur.strip()\r
-        raise ValueError(_(u'On attend une chaine de caractères (de longueur <= 24).'))\r
-    __convert__ = classmethod(__convert__)\r
-\r
-\r
-class Tuple:\r
-  def __init__(self,ntuple):\r
-    self.ntuple=ntuple\r
-\r
-  def __convert__(self,valeur):\r
-    if type(valeur) == types.StringType: return None\r
-    if len(valeur) != self.ntuple: return None\r
-    return valeur\r
-\r
-  def info(self):\r
-    return "Tuple de %s elements" % self.ntuple\r
-\r
-  __repr__=info\r
-  __str__=info\r
-\r
-class ObjetUtilisateur(ASSD): pass\r
-\r
-\r
-JdC = JDC_CATA(code='PATTERNS',\r
-               execmodul=None,\r
-                )\r
-\r
-\r
-EXAMPLE = PROC (nom = 'EXAMPLE',\r
-    op=None,\r
-\r
-    TITRE =  SIMP(statut ='o', typ = 'TXM', defaut = 'Mon Etude',),\r
-    TITRE2 =  SIMP(statut ='f', typ = 'TXM', ),\r
-)\r
-CREEOBJET = OPER (nom="CREEOBJET",\r
-    op=None,\r
-    sd_prod=ObjetUtilisateur,\r
-    UIinfo={"groupes":("Group1",)},\r
-\r
-    TITLE     = SIMP(statut ='o', typ = 'TXM', defaut = '',),\r
-    RB1       = SIMP(statut ='o', typ = 'I', into = [1,2,3],),\r
-    RB2       = SIMP(statut ='o', typ = 'I', into = [1,2,3,4,5,6,],),\r
-    CB        = SIMP(statut ='o', typ = 'I', into = [1,2,3,4,5,6,7,8,9],),\r
-    MBool     = SIMP(statut ='o', typ = bool,),\r
-    MFile     = SIMP(statut ='o', typ = ('Fichier','All Files (*)')),\r
-    MDir      = SIMP(statut ='o', typ = 'Repertoire'),\r
-    Reel1     = SIMP(statut ='o', typ = 'R'),\r
-    Compl     = SIMP(statut ='o', typ = 'C'),\r
-    Tuple2    = SIMP(statut ='o', typ = Tuple(2), validators=VerifTypeTuple(('R','R'))),\r
-    Tuple3    = SIMP(statut ='o', typ = Tuple(3), validators=VerifTypeTuple(('R','R','R'))),\r
-    InSalome  = SIMP(statut ='o', typ = SalomeEntry),\r
-\r
-    LTITLE    = SIMP(statut ='o', typ = 'TXM', max='**', defaut = '',),\r
-    LRB2      = SIMP(statut ='o', typ = 'I', max = '**', into = [1,2,3,4,5,6,],),\r
-    LCB       = SIMP(statut ='o', typ = 'I', max = '**', homo="SansOrdreNiDoublon", into = [1,2,3,4,5,6,7,8,9],),\r
-    LReel1    = SIMP(statut ='o', typ = 'R', max = "**"),\r
-    LCompl    = SIMP(statut ='o', typ = 'C', max = "**"),\r
-    LTuple2   = SIMP(statut ='o', typ = Tuple(2), validators=VerifTypeTuple(('R','R')), max = "**"),\r
-    LTuple3   = SIMP(statut ='o', typ = Tuple(3), validators=VerifTypeTuple(('R','R','R')), max = "**"),\r
-    LInSalome = SIMP(statut ='o', typ = SalomeEntry, max="**"),\r
-\r
-    LREEL    = SIMP(statut ='f', typ = 'R', max='**', defaut = '',),\r
-)\r
-\r
-UTILISEOBJET = PROC (nom="UTILISEOBJET",\r
-    op=None,\r
-    UIinfo={"groupes":("Group1",)},\r
-    Obj   = SIMP (statut ='o', typ = ObjetUtilisateur,)\r
-)\r
-\r
-ESSAI_FACT=OPER(nom="ESSAI_FACT",\r
-   sd_prod=ObjetUtilisateur,\r
-   op=None,\r
-   fr="Affectation de caractéristiques à des éléments de structure",\r
-   regles = (AU_MOINS_UN('Poutre','Barre'),\r
-             EXCLUS('Discret','Discret_2D'),),\r
-   Info   = SIMP(statut='f',typ='I', defaut= 1 ,into=(1,2) ),\r
-   Verif  = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("Maille","Noeud") ),\r
-#\r
-# ==============================================================================\r
-    Poutre  = FACT(statut= 'f',max= '**',\r
-        Section = SIMP(statut= 'o',typ= 'TXM' ,into= ("GENERALE","RECTANGLE","CERCLE") ),\r
-\r
-        b_generale = BLOC(condition = " Section == 'GENERALE'",\r
-            regles = (UN_PARMI('Maille','GroupeMailles'),),\r
-            Maille    = SIMP(statut= 'f',typ= 'TXM'  ,validators= NoRepeat(),max= '**'),\r
-            GroupeMailles  = SIMP(statut= 'f',typ= grma,validators= NoRepeat(),max= '**'),\r
-\r
-            Vari = SIMP(statut= 'f',typ= 'TXM',into= ("CONSTANT","HOMOTHETIQUE"),defaut= "CONSTANT"),\r
-\r
-            b_constant = BLOC(condition = "Vari == 'CONSTANT'",\r
-                regles = (PRESENT_ABSENT('Table','Cara'),\r
-                          PRESENT_PRESENT('Table','Nom'),\r
-                          PRESENT_PRESENT('Cara','Valeur'),),\r
-                Table = SIMP(statut= 'f',typ='TXM'),\r
-                Nom    = SIMP(statut= 'f',typ= 'TXM'),\r
-                Cara       = SIMP(statut= 'o',typ= 'TXM',min= 4 ,max= 5,\r
-                    fr= "A,IY,IZ,JX sont des paramètres obligatoires",\r
-                    validators= [NoRepeat(), Compulsory(['A','IY','IZ','JX'])],\r
-                    into= ("A","IY","IZ","AY","AZ","EY","EZ","JX","RY","RZ","RT","JG","IYR2","IZR2","AI") ),\r
-                Valeur       = SIMP(statut= 'f',typ= 'R',min= 4 ,max= 15),\r
-            ),\r
-        ),\r
-        b_rectangle = BLOC(condition = "Section == 'RECTANGLE'",\r
-            regles = (UN_PARMI('Maille','GroupeMailles'),),\r
-            Maille    = SIMP(statut= 'f',typ= 'TXM'  ,validators= NoRepeat(),max= '**'),\r
-            GroupeMailles  = SIMP(statut= 'f',typ= grma,validators= NoRepeat(),max= '**'),\r
-            Vari = SIMP(statut= 'f',typ= 'TXM',into= ("CONSTANT","HOMOTHETIQUE","AFFINE"),defaut= "CONSTANT"),\r
-            b_constant = BLOC(condition = "Vari == 'CONSTANT'",\r
-                Cara  = SIMP(statut= 'o',typ= 'TXM',min= 1 ,max= 4,\r
-                    validators = [NoRepeat(),\r
-                                  OrVal( [AndVal( [Compulsory(['H']),Absent(['HY','HZ','EPY','EPZ'])] ),\r
-                                          AndVal( [Compulsory(['HY','HZ']),Together(['EPY','EPZ']),Absent(['H','EP'])] )] )],\r
-                    into= ("H","EP", "HY","HZ","EPY","EPZ"),),\r
-                Valeur  = SIMP(statut= 'o',typ= 'R',min= 1 ,max= 4),\r
-            ),\r
-\r
-            Metrique = SIMP(statut= 'f',typ= 'TXM',defaut= "NON",into= ("OUI","NON") ),\r
-            Fcx           = SIMP(statut= 'f',typ= 'R'),\r
-            Tuyau    = SIMP(statut= 'f',typ= 'I',val_max= 10,defaut= 3),\r
-        ),\r
-    ),\r
-#\r
-# ==============================================================================\r
-    Barre = FACT(statut='f',max='**',\r
-        regles = (UN_PARMI('Maille','GroupeMailles'),),\r
-        Maille   = SIMP(statut='f',typ='TXM'  ,validators=NoRepeat(),max='**'),\r
-        GroupeMailles = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),\r
-        Section  = SIMP(statut='o',typ='TXM',into=("GENERALE","RECTANGLE","CERCLE") ),\r
-        b_generale = BLOC(condition = "Section=='GENERALE'",\r
-            regles = (PRESENT_ABSENT('Table','Cara'),\r
-                      PRESENT_PRESENT('Table','Nom'),\r
-                      PRESENT_PRESENT('Cara','Valeur')),\r
-            Table = SIMP(statut='f',typ='TXM'),\r
-            Nom    = SIMP(statut='f',typ='TXM',validators=LongStr(1,24) ),\r
-            Cara       = SIMP(statut='f',typ='TXM',into=("A",) ),\r
-            Valeur       = SIMP(statut='f',typ='R',min=1,max=1 ),\r
-        ),\r
-        b_rectangle = BLOC(condition = "Section=='RECTANGLE'",\r
-            Cara = SIMP(statut='o',typ='TXM', min=1, max=4,\r
-                validators = [NoRepeat(),\r
-                              OrVal( [AndVal( [Compulsory(['H']),Absent(['HY','HZ','EPY','EPZ'])] ),\r
-                                      AndVal( [Compulsory(['HY','HZ']),Together(['EPY','EPZ']),Absent(['H','EP'])] )] )],\r
-                into=("H","EP","HZ","HY","EPY","EPZ"), ),\r
-            Valeur = SIMP(statut='o',typ='R',min=1,max=4 ), ),\r
-        b_cercle = BLOC(condition = "Section=='CERCLE'",\r
-            Cara = SIMP(statut='o',typ='TXM',validators=[NoRepeat(),Compulsory(['R'])],min=1,max=2,into=("R","EP") ),\r
-            Valeur = SIMP(statut='o',typ='R',min=1,max=2 ), ),\r
-    ),\r
-#\r
-# ==============================================================================\r
-    Discret = FACT(statut='f',max='**',\r
-        REPERE    = SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),\r
-        AMOR_HYST = SIMP(statut='f',typ='R' ),\r
-        SYME      = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),),\r
-        b_SYME_OUI = BLOC(condition="SYME=='OUI'",\r
-            fr="SYMETRIQUE: Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds",\r
-            Cara = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,defaut="None",\r
-            into = ("K_T_D_N", "K_T_D_L", "K_TR_D_N", "K_TR_D_L", "K_T_N", "K_T_L", "K_TR_N", "K_TR_L",\r
-                    "M_T_D_N", "M_T_D_L", "M_TR_D_N", "M_TR_D_L", "M_T_N", "M_T_L", "M_TR_N", "M_TR_L",\r
-                    "A_T_D_N", "A_T_D_L", "A_TR_D_N", "A_TR_D_L", "A_T_N", "A_T_L", "A_TR_N", "A_TR_L",),),\r
-            #  Affection des caractéristiques de RIGIDITE/AMORTISSEMENT/MASSE\r
-            b_AK_T_D_N = BLOC(condition = "((Cara=='K_T_D_N')or(Cara=='A_T_D_N'))",\r
-                fr       = "Noeud: 3 valeurs (triangulaire supérieure par colonne)",\r
-                regles   = (UN_PARMI('Maille','GroupeMailles','Noeud','GROUP_NO'),),\r
-                Noeud    = SIMP(statut='f',typ='TXM'  ,validators=NoRepeat(),max='**'),\r
-                GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),\r
-                Maille   = SIMP(statut='f',typ='TXM'  ,validators=NoRepeat(),max='**'),\r
-                GroupeMailles = SIMP(statut='f',typ=grma,validators=NoRepeat(),homo='SansOrdreNiDoublon',max='**'),\r
-                Valeur     = SIMP(statut='o',typ='R',min=3 ,max=3 ),),\r
-        ),\r
-    ),\r
-#\r
-# ==============================================================================\r
-    Discret_2D = FACT(statut='f',max='**',\r
-        REPERE    = SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),\r
-        AMOR_HYST = SIMP(statut='f',typ='R' ),\r
-        SYME      = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),),\r
-        ),\r
-)\r
-\r
-\r
diff --git a/MED/Elementary_Lists_52996_Cata.py b/MED/Elementary_Lists_52996_Cata.py
deleted file mode 100644 (file)
index f3cc11c..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-# coding: utf-8\r
-\r
-from Accas import *\r
-\r
-#class myMesh(ASSD): pass\r
-class myModel(ASSD): pass\r
-\r
-JdC = JDC_CATA(code='PATTERNS',\r
-               execmodul=None,\r
-               regles=(#AU_PLUS_UN('DEBUT', 'POURSUITE'),\r
-                       AU_PLUS_UN('ALL_LISTS'),\r
-                       #AU_PLUS_UN('FIN'),\r
-                       A_CLASSER(('DEBUT', 'POURSUITE'), 'FIN')\r
-                )\r
-)\r
-\r
-class grma():\r
-    def __convert__(cls,valeur):\r
-        if isinstance(valeur, (str,unicode)) and len(valeur.strip()) <= 24 : #and ("item" in (valeur.strip()))\r
-            return valeur.strip()\r
-        raise ValueError("Name length does not contain \"test\" and is longer than allowed, 24")\r
-    __convert__ = classmethod(__convert__)\r
-\r
-def mySeveral(suffix,num):\r
-    out=list()\r
-    for i in range(1,num+1):\r
-        out.append(suffix+str(i).zfill(2))\r
-    return out\r
-\r
-switch_facultatif=True #change 'o' to 'f' of some widgets in the loop\r
-#empty_defauts=True\r
-\r
-def myBloc(num):\r
-    myNum=str(num).zfill(2)\r
-    list_item_body="Item_"+myNum+"_"\r
-    defauts0=["","",True,"'phenomena_"+myNum+"'",mySeveral(list_item_body,2)] #presence of default values\r
-    defauts_mask=[False,False,True,True,True] #switch off defaults of some types\r
-    defauts=list()\r
-    for id0 in range(len(defauts0)):\r
-        if defauts_mask[id0]:\r
-            item=", defaut="+str(defauts0[id0])\r
-        else:\r
-            item=""\r
-        defauts.append(item)\r
-    #print defauts\r
-\r
-    opt=['o','o','o','o','o'] #initial default obligation of items in FACT groups\r
-    #make different widgets optional, one by one:\r
-    myLen=len(opt)\r
-    if switch_facultatif:\r
-        make_f=(num)%myLen\r
-        opt[make_f]='f'\r
-    #print opt\r
-    #if empty_defauts:\r
-    #    clean_defaut=num%myLen\r
-\r
-    myString="BLOC(condition=\"MESH==\'mesh_"+myNum+"'\""+defauts[0]+", AFFE=FACT(statut='"+opt[1]+"'"+defauts[1]+", ALL=SIMP(statut='"+opt[2]+"', typ=bool,ang='ALL "+myNum+" help EN'"+defauts[2]+"),PHENOMENA=SIMP(statut='"+opt[3]+"',typ='TXM',into=mySeveral('phenomena_',"+str(num)+")"+defauts[3]+"), MODELISATION=SIMP(statut='"+opt[4]+"',typ='TXM', min=2,max='**',into=mySeveral('"+list_item_body+"',"+str(num*4)+")"+defauts[4]+", ang='Input "+myNum+" list EN', fr='Input "+myNum+" list FR'),),)"\r
-    print myString\r
-    return eval(myString)\r
-\r
-ALL_LISTS=OPER(nom="ALL_LISTS",op=18,sd_prod=myModel,\r
-    UIinfo={"groupes":("Group1",)},\r
-    ang="Model mesh definition EN",\r
-    reentrant='n',\r
-    #regles=(AU_MOINS_UN('LIST_O_CHECKTEXT','LIST_F_CHECKTEXT','LIST_O_ANY','LIST_F_ANY')),\r
-\r
-       #LIST_O_NOREPEAT_CHECKTEXT=SIMP(statut='o',typ=grma,validators=NoRepeat(),min=3, max='**'),\r
-    #LIST_F_NOREPEAT_CHECKTEXT=SIMP(statut='f',typ=grma,validators=NoRepeat(),min=3, max='**'),\r
-    #LIST_F_REPEAT_CHECKTEXT=SIMP(statut='f',typ=grma,min=3, max='**'),\r
-       #LIST_O_REPEAT_CHECKTEXT=SIMP(statut='o',typ=grma,min=3, max='**'),\r
-\r
-    #LIST_F_NOREPEAT_ANYTEXT=SIMP(statut='f',typ='TXM',validators=NoRepeat(),min=3, max='**'),\r
-       #LIST_O_NOREPEAT_ANYTEXT=SIMP(statut='o',typ='TXM',min=3,validators=NoRepeat(), max='**'),\r
-       #LIST_O_REPEAT_ANYTEXT=SIMP(statut='o',typ='TXM',min=3, max='**'),\r
-       #LIST_F_REPEAT_ANYTEXT=SIMP(statut='f',typ='TXM',min=3, max='**'),\r
-\r
-       #LIST_O_NOREPEAT_CHECKTEXT_ADD=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03",), min=3, max='**'),\r
-       #LIST_F_REPEAT_ANYTEXT_ADD=SIMP(statut='f',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03",), min=3, max='**'),\r
-\r
-       LIST_O_NOREPEAT_CHECKTEXT_ADD_NODEFAUT=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03","item04","text04",), min=3, max='**'),\r
-       #LIST_O_NOREPEAT_CHECKTEXT_ADD_DEFAUT=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03",), defaut=('item01','item02','item03'), min=3, max='**'),\r
-)\r
-\r
-Classement_Commandes_Ds_Arbre=('DEBUT','MESH_TYPES','ALL_LISTS','FIN')\r
-\r
-Ordre_Des_Commandes = ('DEBUT','MESH_TYPES','ALL_LISTS','FIN')\r
diff --git a/MED/Elementary_Lists_53000_Cata.py b/MED/Elementary_Lists_53000_Cata.py
deleted file mode 100644 (file)
index 0dbba47..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-# coding: utf-8\r
-from Accas import *\r
-\r
-#class myMesh(ASSD): pass\r
-class myModel(ASSD): pass\r
-\r
-JdC = JDC_CATA(code='PATTERNS',\r
-               execmodul=None,\r
-               regles=(#AU_PLUS_UN('DEBUT', 'POURSUITE'),\r
-                       AU_PLUS_UN('ALL_LISTS'),\r
-                       #AU_PLUS_UN('FIN'),\r
-                       A_CLASSER(('DEBUT', 'POURSUITE'), 'FIN')\r
-                )\r
-)\r
-\r
-\r
-ALL_LISTS=OPER(nom="ALL_LISTS",op=18,sd_prod=myModel,\r
-    UIinfo={"groupes":("Group1",)},\r
-    ang="Model mesh definition EN",\r
-    reentrant='n',\r
-    LIST_O_NOREPEAT_CHECKTEXT_ADD_DEFAUT=SIMP(statut='o',typ="TXM",validators=NoRepeat(), \r
-          into=("item01","text01","item02","text02","item03","text03","item04","text04","item05","text05",), \r
-          defaut=('item01','item02','item03'),\r
-          homo="SansOrdreNiDoublon",\r
-          min=3, max='**'),\r
-\r
-    #regles=(AU_MOINS_UN('LIST_O_CHECKTEXT','LIST_F_CHECKTEXT','LIST_O_ANY','LIST_F_ANY')),\r
-\r
-       #LIST_O_NOREPEAT_CHECKTEXT=SIMP(statut='o',typ=grma,validators=NoRepeat(),min=3, max='**'),\r
-    #LIST_F_NOREPEAT_CHECKTEXT=SIMP(statut='f',typ=grma,validators=NoRepeat(),min=3, max='**'),\r
-    #LIST_F_REPEAT_CHECKTEXT=SIMP(statut='f',typ=grma,min=3, max='**'),\r
-       #LIST_O_REPEAT_CHECKTEXT=SIMP(statut='o',typ=grma,min=3, max='**'),\r
-\r
-    #LIST_F_NOREPEAT_ANYTEXT=SIMP(statut='f',typ='TXM',validators=NoRepeat(),min=3, max='**'),\r
-       #LIST_O_NOREPEAT_ANYTEXT=SIMP(statut='o',typ='TXM',min=3,validators=NoRepeat(), max='**'),\r
-       #LIST_O_REPEAT_ANYTEXT=SIMP(statut='o',typ='TXM',min=3, max='**'),\r
-       #LIST_F_REPEAT_ANYTEXT=SIMP(statut='f',typ='TXM',min=3, max='**'),\r
-\r
-       #LIST_O_NOREPEAT_CHECKTEXT_ADD=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03",), min=3, max='**'),\r
-       #LIST_F_REPEAT_ANYTEXT_ADD=SIMP(statut='f',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03",), min=3, max='**'),\r
-\r
-       #LIST_O_NOREPEAT_CHECKTEXT_ADD_NODEFAUT=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03","item04","text04",), min=3, max='**'),\r
-\r
-\r
-       #LIST_O_SANSORDRENODOUBLON_CHECKTEXT_DEFAUT=SIMP(statut='o',typ=grma,homo="SansOrdreNiDoublon", into=("item01","text01","item02","text02","item03","text03",), defaut=('item01','item02','item03'), min=3, max='**'),\r
-)\r
-\r
-\r
-\r
-Classement_Commandes_Ds_Arbre=('DEBUT','MESH_TYPES','ALL_LISTS','FIN')\r
-\r
-Ordre_Des_Commandes = ('DEBUT','MESH_TYPES','ALL_LISTS','FIN')\r
diff --git a/MED/Elementary_Lists_53013_Cata.py b/MED/Elementary_Lists_53013_Cata.py
deleted file mode 100644 (file)
index cf371ff..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-# coding: utf-8\r
-from Accas import *\r
-\r
-class myModel(ASSD): pass\r
-\r
-JdC = JDC_CATA(code='PATTERNS',\r
-               execmodul=None,\r
-               regles=(#AU_PLUS_UN('DEBUT', 'POURSUITE'),\r
-                       AU_PLUS_UN('ALL_LISTS'),\r
-                       #AU_PLUS_UN('FIN'),\r
-                       A_CLASSER(('DEBUT', 'POURSUITE'), 'FIN')\r
-                )\r
-)\r
-\r
-class grma():\r
-    def __convert__(cls,valeur):\r
-        if isinstance(valeur, (str,unicode)) and len(valeur.strip()) <= 12 and ("item" in (valeur.strip()).lower()): #\r
-            return valeur.strip()\r
-        raise ValueError("Name length does not contain \"test\" and is longer than allowed, 12")\r
-    __convert__ = classmethod(__convert__)\r
-\r
-def mySeveral(suffix,num):\r
-    out=list()\r
-    for i in range(1,num+1):\r
-        out.append(suffix+str(i).zfill(2))\r
-    return out\r
-\r
-ALL_LISTS=OPER(nom="ALL_LISTS",op=18,sd_prod=myModel,\r
-    UIinfo={"groupes":("Group1",)},\r
-    fr="All lists definition FR",\r
-    ang="All lists definition EN",\r
-    reentrant='n',\r
-    #regles=(AU_MOINS_UN('LIST_O_CHECKTEXT','LIST_F_CHECKTEXT','LIST_O_ANY','LIST_F_ANY')),\r
-\r
-       L1_LIST_O_NOREPEAT_CHECKTEXT=SIMP(statut='o',typ=grma,validators=NoRepeat(),min=3, max='**', ang='Obligatory, No Repetitions, checked text, EN'),\r
-    L2_LIST_F_NOREPEAT_CHECKTEXT=SIMP(statut='f',typ=grma,validators=NoRepeat(),min=3, max='**', ang='Optional, No Repetitions, checked text, EN'),\r
-    L3_LIST_F_REPEAT_CHECKTEXT=SIMP(statut='f',typ=grma,min=3, max='**',ang='Optional, Allowed Repetitions, checked text, EN'),\r
-       L4_LIST_O_REPEAT_CHECKTEXT=SIMP(statut='o',typ=grma,min=3, max='**',ang='Obligatory, Allowed Repetitions, checked text, EN'),\r
-\r
-    L5_LIST_F_NOREPEAT_ANYTEXT=SIMP(statut='f',typ='TXM',validators=NoRepeat(),min=3, max='**',ang='Optional, No Repetitions, any text, EN'),\r
-       L6_LIST_O_NOREPEAT_ANYTEXT=SIMP(statut='o',typ='TXM',min=3,validators=NoRepeat(), max='**',ang='Obligatory, No Repetitions, any text, EN'),\r
-       L7_LIST_O_REPEAT_ANYTEXT=SIMP(statut='o',typ='TXM',min=3, max='**',ang='Obligatory, Allowed Repetitions, any text, EN'),\r
-       L8_LIST_F_REPEAT_ANYTEXT=SIMP(statut='f',typ='TXM',min=3, max='**',ang='Optional, Allowed Repetitions, any text, EN'),\r
-\r
-       L9_LIST_O_NOREPEAT_CHECKTEXT_ADD=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With spare list, Obligatory, No Repetitions, checked text, EN',),\r
-       L10_LIST_F_REPEAT_ANYTEXT_ADD=SIMP(statut='f',typ='TXM', into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With spare list, Optional, Allowed Repetitions, any text, EN'),\r
-       L11_LIST_O_REPEAT_CHECKTEXT_ADD_NODEFAUT=SIMP(statut='o',typ=grma, into=("item01","text01","item02","text02","item03","text03","item04","text04"),ang='With spare list, obligatory, No Repetitions, checked text, no default values, EN', min=3, max='**'),\r
-       L12_LIST_O_NOREPEAT_CHECKTEXT_ADD_DEFAUT=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03","item04","text04","item05","text05",), defaut=('item01','item02','item03'), min=3, max='**',ang='With spare list, Obligatory, No Repetitions, checked text, with default values EN'),\r
-\r
-    L13_LIST_F_SANSORDRENODOUBLON_ANYTEXT_NODEFAUT=SIMP(statut='f',typ='TXM',homo="SansOrdreNiDoublon", into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With check boxes, Optional, any text, no defaults, EN'),\r
-    L14_LIST_O_SANSORDRENODOUBLON_CHECKTEXT_NODEFAUT=SIMP(statut='o',typ=grma,homo="SansOrdreNiDoublon", into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With check boxes, Obligatory, checked text, EN'),\r
-       L15_LIST_O_SANSORDRENODOUBLON_CHECKTEXT_DEFAUT=SIMP(statut='o',typ=grma,homo="SansOrdreNiDoublon", into=("item01","text01","item02","text02","item03","text03","item02","text02","item01","text01",), defaut=('item01','item02','item03'), min=3, max='**', ang='With check boxes, Obligatory, checked text, with default values, EN'),\r
-)\r
-\r
-\r
-\r
-Classement_Commandes_Ds_Arbre=('DEBUT','MESH_TYPES','ALL_LISTS','FIN')\r
-\r
-Ordre_Des_Commandes = ('DEBUT','MESH_TYPES','ALL_LISTS','FIN')\r
diff --git a/MED/Elementary_Lists_53036_Cata.py b/MED/Elementary_Lists_53036_Cata.py
deleted file mode 100644 (file)
index 5cdc0fa..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-# coding: utf-8\r
-from Accas import *\r
-\r
-class myModel(ASSD): pass\r
-\r
-JdC = JDC_CATA(code='PATTERNS',\r
-               execmodul=None,\r
-               regles=(#AU_PLUS_UN('DEBUT', 'POURSUITE'),\r
-                       AU_PLUS_UN('ALL_LISTS'),\r
-                       #AU_PLUS_UN('FIN'),\r
-                       A_CLASSER(('DEBUT', 'POURSUITE'), 'FIN')\r
-                )\r
-)\r
-\r
-class grma():\r
-    def __convert__(cls,valeur):\r
-        if isinstance(valeur, (str,unicode)) and len(valeur.strip()) <= 12 and ("item" in (valeur.strip()).lower()): #\r
-            return valeur.strip()\r
-        raise ValueError("Name length does not contain \"item\" and is longer than allowed, 12")\r
-    __convert__ = classmethod(__convert__)\r
-\r
-def mySeveral(suffix,num):\r
-    out=list()\r
-    for i in range(1,num+1):\r
-        out.append(suffix+str(i).zfill(2))\r
-    return out\r
-\r
-ALL_LISTS=OPER(nom="ALL_LISTS",op=18,sd_prod=myModel,\r
-    UIinfo={"groupes":("Group1",)},\r
-    fr="All lists definition FR",\r
-    ang="All lists definition EN",\r
-    reentrant='n',\r
-    #regles=(AU_MOINS_UN('LIST_O_CHECKTEXT','LIST_F_CHECKTEXT','LIST_O_ANY','LIST_F_ANY')),\r
-\r
-       L1_LIST_O_NOREPEAT_CHECKTEXT=SIMP(statut='o',typ=grma,validators=NoRepeat(),min=3, max='**', ang='Obligatory, No Repetitions, checked text, EN'),\r
-    L2_LIST_F_NOREPEAT_CHECKTEXT=SIMP(statut='f',typ=grma,validators=NoRepeat(),min=3, max='**', ang='Optional, No Repetitions, checked text, EN'),\r
-    L3_LIST_F_REPEAT_CHECKTEXT=SIMP(statut='f',typ=grma,min=3, max='**',ang='Optional, Allowed Repetitions, checked text, EN'),\r
-       L4_LIST_O_REPEAT_CHECKTEXT=SIMP(statut='o',typ=grma,min=3, max='**',ang='Obligatory, Allowed Repetitions, checked text, EN'),\r
-\r
-    L5_LIST_F_NOREPEAT_ANYTEXT=SIMP(statut='f',typ='TXM',validators=NoRepeat(),min=3, max='**',ang='Optional, No Repetitions, any text, EN'),\r
-       L6_LIST_O_NOREPEAT_ANYTEXT=SIMP(statut='o',typ='TXM',min=3,validators=NoRepeat(), max='**',ang='Obligatory, No Repetitions, any text, EN'),\r
-       L7_LIST_O_REPEAT_ANYTEXT=SIMP(statut='o',typ='TXM',min=3, max='**',ang='Obligatory, Allowed Repetitions, any text, EN'),\r
-       L8_LIST_F_REPEAT_ANYTEXT=SIMP(statut='f',typ='TXM',min=3, max='**',ang='Optional, Allowed Repetitions, any text, EN'),\r
-\r
-       L9_LIST_O_NOREPEAT_CHECKTEXT_ADD=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With spare list, Obligatory, No Repetitions, checked text, EN',),\r
-       L10_LIST_F_REPEAT_ANYTEXT_ADD=SIMP(statut='f',typ='TXM', into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With spare list, Optional, Allowed Repetitions, any text, EN'),\r
-       L11_LIST_O_REPEAT_CHECKTEXT_ADD_NODEFAUT=SIMP(statut='o',typ=grma, into=("item01","text01","item02","text02","item03","text03","item04","text04"),ang='With spare list, obligatory, No Repetitions, checked text, no default values, EN', min=3, max='**'),\r
-       L12_LIST_O_NOREPEAT_CHECKTEXT_ADD_DEFAUT=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03","item04","text04","item05","text05",), defaut=('item01','item02','item03'), min=3, max='**',ang='With spare list, Obligatory, No Repetitions, checked text, with default values EN'),\r
-\r
-    L13_LIST_F_SANSORDRENODOUBLON_ANYTEXT_NODEFAUT=SIMP(statut='f',typ='TXM',homo="SansOrdreNiDoublon", into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With check boxes, Optional, any text, no defaults, EN'),\r
-    L14_LIST_O_SANSORDRENODOUBLON_CHECKTEXT_NODEFAUT=SIMP(statut='o',typ=grma,homo="SansOrdreNiDoublon", into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With check boxes, Obligatory, checked text, EN'),\r
-       L15_LIST_O_SANSORDRENODOUBLON_CHECKTEXT_NOREPEAT_DEFAUT=SIMP(statut='o',typ=grma,homo="SansOrdreNiDoublon", into=("item01","text01","item02","text02","item03","text03","item03","text03","item02","text02","item01","text01",), defaut=('item01','item02','item03'),  min=3, max='**', ang='With check boxes, Obligatory, checked text, with default values, EN'), #validators=NoRepeat(),\r
-)\r
-\r
-\r
-\r
-Classement_Commandes_Ds_Arbre=('DEBUT','MESH_TYPES','ALL_LISTS','FIN')\r
-\r
-Ordre_Des_Commandes = ('DEBUT','MESH_TYPES','ALL_LISTS','FIN')\r
diff --git a/MED/Elementary_Lists_Cata.py b/MED/Elementary_Lists_Cata.py
deleted file mode 100755 (executable)
index 92d20b3..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-# coding: utf-8\r
-from Accas import *\r
-\r
-class myModel(ASSD): pass\r
-\r
-JdC = JDC_CATA(code='PATTERNS',\r
-               execmodul=None,\r
-               regles=(#AU_PLUS_UN('DEBUT', 'POURSUITE'),\r
-                       AU_PLUS_UN('ALL_LISTS'),\r
-                       #AU_PLUS_UN('FIN'),\r
-                       A_CLASSER(('DEBUT', 'POURSUITE'), 'FIN')\r
-                )\r
-)\r
-\r
-class grma():\r
-    def __convert__(cls,valeur):\r
-        if isinstance(valeur, (str,unicode)) and len(valeur.strip()) <= 12 and ("item" in (valeur.strip()).lower()): #\r
-            return valeur.strip()\r
-        raise ValueError("Name length does not contain \"test\" and is longer than allowed, 12")\r
-    __convert__ = classmethod(__convert__)\r
-\r
-def mySeveral(suffix,num):\r
-    out=list()\r
-    for i in range(1,num+1):\r
-        out.append(suffix+str(i).zfill(2))\r
-    return out\r
-\r
-ALL_LISTS=OPER(nom="ALL_LISTS",op=18,sd_prod=myModel,\r
-    UIinfo={"groupes":("Group1",)},\r
-    fr="All lists definition FR",\r
-    ang="All lists definition EN",\r
-    reentrant='n',\r
-    #regles=(AU_MOINS_UN('LIST_O_CHECKTEXT','LIST_F_CHECKTEXT','LIST_O_ANY','LIST_F_ANY')),\r
-\r
-       L1_LIST_O_NOREPEAT_CHECKTEXT=SIMP(statut='o',typ=grma,validators=NoRepeat(),min=3, max='**', ang='Obligatory, No Repetitions, checked text, EN'),\r
-    L2_LIST_F_NOREPEAT_CHECKTEXT=SIMP(statut='f',typ=grma,validators=NoRepeat(),min=3, max='**', ang='Optional, No Repetitions, checked text, EN'),\r
-    L3_LIST_F_REPEAT_CHECKTEXT=SIMP(statut='f',typ=grma,min=3, max='**',ang='Optional, Allowed Repetitions, checked text, EN'),\r
-       L4_LIST_O_REPEAT_CHECKTEXT=SIMP(statut='o',typ=grma,min=3, max='**',ang='Obligatory, Allowed Repetitions, checked text, EN'),\r
-\r
-    L5_LIST_F_NOREPEAT_ANYTEXT=SIMP(statut='f',typ='TXM',validators=NoRepeat(),min=3, max='**',ang='Optional, No Repetitions, any text, EN'),\r
-       L6_LIST_O_NOREPEAT_ANYTEXT=SIMP(statut='o',typ='TXM',min=3,validators=NoRepeat(), max='**',ang='Obligatory, No Repetitions, any text, EN'),\r
-       L7_LIST_O_REPEAT_ANYTEXT=SIMP(statut='o',typ='TXM',min=3, max='**',ang='Obligatory, Allowed Repetitions, any text, EN'),\r
-       L8_LIST_F_REPEAT_ANYTEXT=SIMP(statut='f',typ='TXM',min=3, max='**',ang='Optional, Allowed Repetitions, any text, EN'),\r
-\r
-       L9_LIST_O_NOREPEAT_CHECKTEXT_ADD=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With spare list, Obligatory, No Repetitions, checked text, EN',),\r
-       L10_LIST_F_REPEAT_ANYTEXT_ADD=SIMP(statut='f',typ='TXM', into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With spare list, Optional, Allowed Repetitions, any text, EN'),\r
-       L11_LIST_O_REPEAT_CHECKTEXT_ADD_NODEFAUT=SIMP(statut='o',typ=grma, into=("item01","text01","item02","text02","item03","text03","item04","text04"),ang='With spare list, obligatory, No Repetitions, checked text, no default values, EN', min=3, max='**'),\r
-       L12_LIST_O_NOREPEAT_CHECKTEXT_ADD_DEFAUT=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03","item04","text04","item05","text05",), defaut=('item01','item02','item03'), min=3, max='**',ang='With spare list, Obligatory, No Repetitions, checked text, with default values EN'),\r
-\r
-    L13_LIST_F_SANSORDRENODOUBLON_ANYTEXT_NODEFAUT=SIMP(statut='f',typ='TXM',homo="SansOrdreNiDoublon", into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With check boxes, Optional, any text, no defaults, EN'),\r
-    L14_LIST_O_SANSORDRENODOUBLON_CHECKTEXT_NODEFAUT=SIMP(statut='o',typ=grma,homo="SansOrdreNiDoublon", into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With check boxes, Obligatory, checked text, EN'),\r
-       L15_LIST_O_SANSORDRENODOUBLON_CHECKTEXT_DEFAUT=SIMP(statut='o',typ=grma,homo="SansOrdreNiDoublon", into=("item01","text01","item02","text02","item03","text03",), defaut=('item01','item02','item03'), min=3, max='**', ang='With check boxes, Obligatory, checked text, with default values, EN'),\r
-)\r
-\r
-\r
-\r
-Classement_Commandes_Ds_Arbre=('DEBUT','MESH_TYPES','ALL_LISTS','FIN')\r
-\r
-Ordre_Des_Commandes = ('DEBUT','MESH_TYPES','ALL_LISTS','FIN')\r
diff --git a/MED/Global_Condition_Cata.py b/MED/Global_Condition_Cata.py
deleted file mode 100755 (executable)
index 0239634..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-# coding: utf-8
-from Accas import *
-#class myModel(ASSD): pass
-
-JdC = JDC_CATA(code='GLOB_COND',
-               execmodul=None,
-               regles=(AU_PLUS_UN('TYPES',),
-                       AU_PLUS_UN('INITS',),
-                                          AU_PLUS_UN('DATAS',),
-                       #A_CLASSER('TYPES','INITS','DATAS')
-                       )
-);
-
-TYPES=PROC(nom='TYPES',op=None,UIinfo={"groupes":("Global_Workflow",)}, #sd_prod=myModel,
-    MODE=SIMP(
-               typ='TXM',
-               statut='o',
-                position='global_jdc',
-               into=("MANUAL","AUTOMATIC","MIXED"),
-               defaut="AUTOMATIC",
-               ),
-);
-
-liste_condition=('INITS', 'DATAS')  
-
-INITS=PROC(nom='INITS',op=None,UIinfo={"groupes":("INI_param",)},
-       ini_manual=BLOC(condition="MODE == 'MANUAL'",
-               Informer=SIMP(statut='o',typ='TXM', defaut="INITS MANUAL"),
-       ),
-       ini_auto=BLOC(condition="MODE == 'AUTOMATIC'",
-               Informer=SIMP(statut='o', typ='TXM', defaut="INITS AUTOMATIC",),
-       ),
-       ini_mixed=BLOC(condition="MODE == 'MIXED'",
-               Informer=SIMP(statut='o',typ='TXM', defaut="INITS MIXED",),
-       ),
-);
-DATAS=PROC(nom='DATAS',op=None,UIinfo={"groupes":("DATAS",)},
-    data_manual=BLOC(condition="MODE == 'MANUAL'",
-               Informer=SIMP(statut='o',typ='TXM', defaut="DATAS MANUAL",
-                       ),
-       ),
-       data_auto=BLOC(condition="MODE == 'AUTOMATIC'",
-               Informer=SIMP(statut='o', typ='TXM', defaut="DATAS AUTOMATIC",
-                       ),
-       ),
-       data_mixed=BLOC(condition="MODE == 'MIXED'",
-               Informer=SIMP(statut='o',typ='TXM', defaut="DATAS MIXED",
-                       ),
-       ),
-);
-
-Classement_Commandes_Ds_Arbre=('TYPES','INITS','DATAS')
-Ordre_Des_Commandes = ('TYPES','INITS','DATAS')
diff --git a/MED/Many_Concepts_52983_Cata.py b/MED/Many_Concepts_52983_Cata.py
deleted file mode 100644 (file)
index 70f099a..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-# coding: utf-8
-
-from Accas import *
-
-#class myMesh(ASSD): pass
-class myModel(ASSD): pass
-
-JdC = JDC_CATA(code='PATTERNS',
-               execmodul=None,
-               regles=(UN_PARMI('DEBUT', 'POURSUITE'),
-                       AU_MOINS_UN('FIN'),
-                       A_CLASSER(('DEBUT', 'POURSUITE'), 'FIN')))
-
-DEBUT=PROC(nom="DEBUT", op=68, repetable='n', UIinfo={"groupes":("Group1",)}, ang="Debut Eng help",
-        PAR_LOT=SIMP(ang="Debut Par Lot help En",statut='o',typ=bool, defaut=True),
-)
-AFFE_MODELE=OPER(nom="AFFE_MODELE",op=None,sd_prod=myModel,
-         UIinfo={"groupes":("Group1",)},
-         ang="Model mesh definition EN",
-         MESH=SIMP(statut='o',typ='TXM',into=("mesh_01","mesh_02","mesh_03","mesh_04",) , defaut="mesh_01"),
-    #reentrant='n',
-    #regles=(AU_MOINS_UN('AFFE','AFFE_SOUS_STRUC'),UN_PARMI('MAILLAGE','GRILLE')),
-
-
-    block_mesh_01=BLOC(condition="MESH=='mesh_01'",
-        AFFE=FACT(statut='o', 
-            ALL=SIMP(statut='o', typ=bool,ang='ALL 01 help EN', defaut=True),
-            PHENOMENA=SIMP(statut='o',typ='TXM',into=('phenomena_01','phenomena_02',), defaut='phenomena_01'),
-            #MODELISATION=SIMP(statut='o',typ='TXM', min=2,max='**', into=("mesh_01","mesh_02","mesh_03","mesh_04",) ,ang='Input 01 list EN', fr='Input 01 list FR'),
-            MODELISATION=SIMP(statut='o',typ='TXM', min=2,max='**', into=('Item_01_01','Item_01_02',) ,ang='Input 01 list EN', fr='Input 01 list FR'),
-        ),
-    ),
-)
-FIN=PROC(nom="FIN",op=9999,repetable='n',ang="Finish help EN",UIinfo={"groupes":("Group1",)},
-    FORMAT_HDF =SIMP(ang="Save HDF EN",statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), 
-)
-
-Classement_Commandes_Ds_Arbre=('DEBUT','MESH','AFFE_MODELE','FIN')
-Ordre_Des_Commandes = ('DEBUT','MESH','AFFE_MODELE','FIN')
diff --git a/MED/Many_Concepts_52988_Cata.py b/MED/Many_Concepts_52988_Cata.py
deleted file mode 100644 (file)
index 52d4f10..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-# coding: utf-8
-
-from Accas import *
-
-class myMesh(ASSD): pass
-class myModel(ASSD): pass
-
-JdC = JDC_CATA(code='PATTERNS',
-               execmodul=None,
-               regles=(AU_PLUS_UN('DEBUT', 'POURSUITE'),
-                       AU_PLUS_UN('AFFE_MODELE'),
-                       AU_PLUS_UN('FIN'),
-                       A_CLASSER(('DEBUT', 'POURSUITE'), 'FIN')))
-
-def mySeveral(suffix,num):
-    out=list()
-    for i in range(1,num+1):
-        out.append(suffix+str(i).zfill(2))
-    return out
-
-switch_facultatif=True #change 'o' to 'f' of some widgets in the loop
-empty_defauts=True
-
-def myBloc(num):
-    myNum=str(num).zfill(2)
-    list_item_body="Item_"+myNum+"_"
-    defauts0=["","",True,"'phenomena_"+myNum+"'",mySeveral(list_item_body,2)] #presence of default values
-    defauts_mask=[False,False,True,True,True] #switch off defaults of some types
-    defauts=list()
-    for id0 in range(len(defauts0)):
-        if defauts_mask[id0]:
-            item=", defaut="+str(defauts0[id0])
-        else:
-            item=""
-        defauts.append(item)
-    #print defauts
-
-    opt=['o','o','o','o','o'] #initial default obligation of items in FACT groups
-    #make some widgets optional:
-    myLen=len(opt)
-    if switch_facultatif:
-        make_f=(num)%myLen
-        opt[make_f]='f'
-    #print opt
-    if empty_defauts:
-        clean_defaut=num%myLen
-
-    myString="BLOC(condition=\"MESH==\'mesh_"+myNum+"'\""+defauts[0]+", AFFE=FACT(statut='"+opt[1]+"'"+defauts[1]+", ALL=SIMP(statut='"+opt[2]+"', typ=bool,ang='ALL "+myNum+" help EN'"+defauts[2]+"),PHENOMENA=SIMP(statut='"+opt[3]+"',typ='TXM',into=mySeveral('phenomena_',"+str(num)+")"+defauts[3]+"), MODELISATION=SIMP(statut='"+opt[4]+"',typ='TXM', min=2,max='**',into=mySeveral('"+list_item_body+"',"+str(num*4)+")"+defauts[4]+", ang='Input "+myNum+" list EN', fr='Input "+myNum+" list FR'),),)"
-    print myString
-    return eval(myString)
-
-DEBUT=PROC(nom="DEBUT", op=10, repetable='n', UIinfo={"groupes":("Group1",)}, ang="Debut Eng help",
-        PAR_LOT=SIMP(ang="Debut Par Lot help En",statut='o',typ=bool, defaut=True),
-);
-
-AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=myModel,
-    UIinfo={"groupes":("Group1",)},
-    ang="Model mesh definition EN",
-    reentrant='n',
-    regles=(AU_MOINS_UN('APPROVED')),
-    MESH=SIMP(statut='o',typ='TXM',into=mySeveral("mesh_",4) ,defaut="mesh_01"),
-       APPROVED=SIMP(statut="o", typ=bool),
-    block_mesh_01=myBloc(1),
-    block_mesh_02=myBloc(2),
-    block_mesh_03=myBloc(3),
-    block_mesh_04=myBloc(4),
-)
-
-
-FIN=PROC(nom="FIN",op=9999,repetable='n',ang="Finish help EN",UIinfo={"groupes":("Group1",)},
-    FORMAT_HDF =SIMP(ang="Save HDF EN",statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), 
-);
-
-Classement_Commandes_Ds_Arbre=('DEBUT','MESH_TYPES','AFFE_MODELE','FIN')
-
-Ordre_Des_Commandes = ('DEBUT','MESH_TYPES','AFFE_MODELE','FIN')
diff --git a/MED/Many_Concepts_52989_Cata.py b/MED/Many_Concepts_52989_Cata.py
deleted file mode 100644 (file)
index 930d9e8..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-# coding: utf-8
-
-from Accas import *
-
-#class myMesh(ASSD): pass
-class myModel(ASSD): pass
-
-JdC = JDC_CATA(code='PATTERNS',
-               execmodul=None,
-               regles=(AU_PLUS_UN('DEBUT', 'POURSUITE'),
-                       AU_PLUS_UN('AFFE_MODELE'),
-                       AU_PLUS_UN('FIN'),
-                       A_CLASSER(('DEBUT', 'POURSUITE'), 'FIN')))
-
-def mySeveral(suffix,num):
-    out=list()
-    for i in range(1,num+1):
-        out.append(suffix+str(i).zfill(2))
-    return out
-
-switch_facultatif=True #change 'o' to 'f' of some widgets in the loop
-#empty_defauts=True
-
-def myBloc(num):
-    myNum=str(num).zfill(2)
-    list_item_body="Item_"+myNum+"_"
-    defauts0=["","",True,"'phenomena_"+myNum+"'",mySeveral(list_item_body,2)] #presence of default values
-    defauts_mask=[False,False,True,True,True] #switch off defaults of some types
-    defauts=list()
-    for id0 in range(len(defauts0)):
-        if defauts_mask[id0]:
-            item=", defaut="+str(defauts0[id0])
-        else:
-            item=""
-        defauts.append(item)
-    #print defauts
-
-    opt=['o','o','o','o','o'] #initial default obligation of items in FACT groups
-    #make different widgets optional, one by one:
-    myLen=len(opt)
-    if switch_facultatif:
-        make_f=(num)%myLen
-        opt[make_f]='f'
-    #print opt
-    #if empty_defauts:
-    #    clean_defaut=num%myLen
-
-    myString="BLOC(condition=\"MESH==\'mesh_"+myNum+"'\""+defauts[0]+", AFFE=FACT(statut='"+opt[1]+"'"+defauts[1]+", ALL=SIMP(statut='"+opt[2]+"', typ=bool,ang='ALL "+myNum+" help EN'"+defauts[2]+"),PHENOMENA=SIMP(statut='"+opt[3]+"',typ='TXM',into=mySeveral('phenomena_',"+str(num)+")"+defauts[3]+"), MODELISATION=SIMP(statut='"+opt[4]+"',typ='TXM', min=2,max='**',into=mySeveral('"+list_item_body+"',"+str(num*4)+")"+defauts[4]+", ang='Input "+myNum+" list EN', fr='Input "+myNum+" list FR'),),)"
-    print myString
-    return eval(myString)
-
-DEBUT=PROC(nom="DEBUT", op=10, repetable='n', UIinfo={"groupes":("Group1",)}, ang="Debut Eng help",
-        PAR_LOT=SIMP(ang="Debut Par Lot help En",statut='o',typ=bool, defaut=True),
-);
-
-AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=myModel,
-    UIinfo={"groupes":("Group1",)},
-    ang="Model mesh definition EN",
-    reentrant='n',
-    regles=(AU_MOINS_UN('APPROVED')),
-    MESH=SIMP(statut='o',typ='TXM',into=mySeveral("mesh_",4) ,defaut="mesh_01"),
-       APPROVED=SIMP(statut="f", typ=bool), # presence of this item will validate the whole group
-    PAR_LOT=SIMP(ang="Debut Par Lot help En",statut='o',typ='I', defaut=True),
-    block_mesh_01=myBloc(1),
-    block_mesh_02=myBloc(2),
-    block_mesh_03=myBloc(3),
-    block_mesh_04=myBloc(4),
-)
-
-
-FIN=PROC(nom="FIN",op=9999,repetable='n',ang="Finish help EN",UIinfo={"groupes":("Group1",)},
-    FORMAT_HDF =SIMP(ang="Save HDF EN",statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), 
-);
-
-Classement_Commandes_Ds_Arbre=('DEBUT','MESH_TYPES','AFFE_MODELE','FIN')
-
-Ordre_Des_Commandes = ('DEBUT','MESH_TYPES','AFFE_MODELE','FIN')
diff --git a/MED/Many_Concepts_52992_Cata.py b/MED/Many_Concepts_52992_Cata.py
deleted file mode 100644 (file)
index 13145b9..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-# coding: utf-8
-
-from Accas import *
-
-#class myMesh(ASSD): pass
-class myModel(ASSD): pass
-
-JdC = JDC_CATA(code='PATTERNS',
-               execmodul=None,
-               regles=(AU_PLUS_UN('DEBUT', 'POURSUITE'),
-                       AU_PLUS_UN('AFFE_MODELE'),
-                       AU_PLUS_UN('FIN'),
-                       A_CLASSER(('DEBUT', 'POURSUITE'), 'FIN')))
-
-def mySeveral(suffix,num):
-    out=list()
-    for i in range(1,num+1):
-        out.append(suffix+str(i).zfill(2))
-    return out
-
-switch_facultatif=True #change 'o' to 'f' of some widgets in the loop
-#empty_defauts=True
-
-def myBloc(num):
-    myNum=str(num).zfill(2)
-    list_item_body="Item_"+myNum+"_"
-    defauts0=["","",True,"'phenomena_"+myNum+"'",mySeveral(list_item_body,2)] #presence of default values
-    defauts_mask=[False,False,True,True,False] #switch off defaults of some types
-    defauts=list()
-    for id0 in range(len(defauts0)):
-        if defauts_mask[id0]:
-            item=", defaut="+str(defauts0[id0])
-        else:
-            item=""
-        defauts.append(item)
-    #print defauts
-
-    opt=['o','o','o','o','o'] #initial default obligation of items in FACT groups
-    #make different widgets optional, one by one:
-    myLen=len(opt)
-    if switch_facultatif:
-        make_f=(num)%myLen
-        opt[make_f]='f'
-    #print opt
-    #if empty_defauts:
-    #    clean_defaut=num%myLen
-
-    myString="BLOC(condition=\"MESH==\'mesh_"+myNum+"'\""+defauts[0]+", AFFE=FACT(statut='"+opt[1]+"'"+defauts[1]+", ALL=SIMP(statut='"+opt[2]+"', typ=bool,ang='ALL "+myNum+" help EN'"+defauts[2]+"),PHENOMENA=SIMP(statut='"+opt[3]+"',typ='TXM',into=mySeveral('phenomena_',"+str(num)+")"+defauts[3]+"), MODELISATION=SIMP(statut='"+opt[4]+"',typ='TXM', min=4,max='**',into=mySeveral('"+list_item_body+"',"+str(num*4)+")"+defauts[4]+", ang='Input "+myNum+" list EN', fr='Input "+myNum+" list FR'),),)"
-    print myString
-    return eval(myString)
-
-DEBUT=PROC(nom="DEBUT", op=10, repetable='n', UIinfo={"groupes":("Group1",)}, ang="Debut Eng help",
-        PAR_LOT=SIMP(ang="Debut Par Lot help En",statut='o',typ=bool, defaut=True),
-);
-
-AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=myModel,
-    UIinfo={"groupes":("Group1",)},
-    ang="Model mesh definition EN",
-    reentrant='n',
-    regles=(AU_MOINS_UN('APPROVED')),
-    MESH=SIMP(statut='o',typ='TXM',into=mySeveral("mesh_",4) ,defaut="mesh_01"),
-       APPROVED=SIMP(statut="f", typ=bool), # presence of this item will validate the whole group
-    block_mesh_01=myBloc(1),
-    block_mesh_02=myBloc(2),
-    block_mesh_03=myBloc(3),
-    block_mesh_04=myBloc(4),
-)
-
-
-FIN=PROC(nom="FIN",op=9999,repetable='n',ang="Finish help EN",UIinfo={"groupes":("Group1",)},
-    FORMAT_HDF =SIMP(ang="Save HDF EN",statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), 
-);
-
-Classement_Commandes_Ds_Arbre=('DEBUT','MESH_TYPES','AFFE_MODELE','FIN')
-
-Ordre_Des_Commandes = ('DEBUT','MESH_TYPES','AFFE_MODELE','FIN')
diff --git a/MED/Matrix_Cata.py b/MED/Matrix_Cata.py
deleted file mode 100644 (file)
index 268a77b..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-# coding: utf-8
-from Accas import *
-
-class loi      ( ASSD ) : pass
-class variable ( ASSD ) : pass
-
-class Matrice:
-  def __init__(self,nbLigs=None,nbCols=None,methodeCalculTaille=None,formatSortie="ligne",valSup=None,valMin=None,structure=None):
-      self.nbLigs=nbLigs
-      self.nbCols=nbCols
-      self.methodeCalculTaille=methodeCalculTaille
-      self.formatSortie=formatSortie
-      self.valSup=valSup
-      self.valMin=valMin
-      self.structure=structure
-
-  def __convert__(self,valeur):
-    # Attention ne verifie pas grand chose
-    if type(valeur) != types.ListType :
-      return None
-    return valeur
-
-  def info(self):
-      return "Matrice %s x %s" % (self.nbLigs, self.nbCols)
-
-      __repr__=info
-      __str__=info
-
-
-
-class myModel(ASSD): pass
-
-JdC = JDC_CATA(code='PATTERNS',
-               execmodul=None,
-               regles=(AU_MOINS_UN ( 'CORRELATION' ),
-                )
-)
-
-DETERMINISTICVARIABLE = OPER ( nom = "DETERMINISTICVARIABLE",
-                               sd_prod = variable,
-                               op = None,
-                               fr = "Variable deterministe",
-                               ang = "Deterministic variable",
-            
-  N = SIMP ( statut = 'o', typ = "TXM", fr = "Nom", ang = "Name", defaut = "Var1" ),
-  T = SIMP ( statut = 'o', defaut = "in", into = ( "in" , "out", ), typ = "TXM", fr = "Type", ang = "Type" ),
-  R = SIMP ( statut = 'o', defaut = 0, typ = "I", fr = "Rang", ang = "Rank" ),
-)
-
-DISTRIBUTION = OPER ( nom = "DISTRIBUTION",
-                      sd_prod = loi,
-                      op = 68,
-                      fr = "Definitions des lois marginales utilisees par les variables d'entree", 
-                      
-  R = SIMP ( statut = "o", typ = "R", max = 1, val_min = 0., fr = "Parametre R de la loi | R > 0", ang = "R parameter | R > 0", defaut = 0.5 ),
-  # T > R
-  T = SIMP ( statut = "o", typ = "R", max = 1, val_min = 0., fr = "Parametre T de la loi | T > R", ang = "T parameter | T > R", defaut = 0.7 ),
-  A = SIMP ( statut = "o", typ = "R", max = 1, fr = "Borne inferieure du support de la loi", ang = "Support lower bound", defaut = 0.1 ),
-  # B > A
-  B = SIMP ( statut = "o", typ = "R", max = 1, fr = "Borne superieure du support de la loi", ang = "Support upper bound", defaut = 0.3 ),
-)
-
-VARIABLE = PROC ( nom = "VARIABLE",
-                  op = None,
-                  docu = "",
-                  fr = "Variable probabiliste",
-                  ang = "Probabilistic variable",
-
-  ModelVariable = SIMP ( statut = "o", typ = ( variable, ), fr = "Variable d'entrée du modèle", ang = "Input variable of the model" ),
-  Distribution = SIMP ( statut = "o", typ = ( loi, ), fr = "Modélisation probabiliste", ang = "Probabilistic modelisation" ),
-)
-
-CORRELATION = PROC ( nom = 'CORRELATION',
-                     op = None,
-                     docu = "",
-                     fr = "Correlation entre variables",
-                     ang = "Variable correlation",
-
-  CorrelationMatrix = SIMP ( statut = "o", typ = Matrice(nbLigs=None,
-                                                         nbCols=None,
-                                                         methodeCalculTaille='NbDeVariables',
-                                                         valSup=1,
-                                                         valMin=-1,
-                                                         structure="symetrique"),
-                             fr = "Matrice de correlation entre les variables d'entree",
-                             ang = "Correlation matrix for input variables" ),
-)
diff --git a/MED/Nested_Cond_52945_Cata.py b/MED/Nested_Cond_52945_Cata.py
deleted file mode 100644 (file)
index 9d3b119..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-# coding: utf-8
-
-from Accas import *
-
-class loi(): pass
-
-JdC = JDC_CATA (code = 'PATTERNS',
-                execmodul = None,
-                )
-use_and=False #switch off second condition about MAX_ROWS while it does not work for blocks greater than 2
-def cond2(myMax=False):
-    if use_and:
-        if myMax:
-            out= " and MAX_ROWS>="+str(myMax)
-        else:
-            out=""
-    else: 
-        out=""
-    print out
-    return out
-
-PROC_01 = PROC(nom = "PROC_01",op = None, ang="Help for PROC_01 EN",
-    MAX_ROWS=SIMP(statut='o',typ='I',val_min=1,val_max=8, defaut=8),
-    PROCGROUP1=SIMP(statut='o',typ='TXM',into=("1A","2A","add new row",)),
-    wideblock1=BLOC(condition='PROCGROUP1=="add new row"'+cond2(1),
-        PROCGROUP2=SIMP(statut='o',typ='TXM',into=("1A","add new row","3A",)),
-        wideblock2=BLOC(condition='PROCGROUP2=="add new row"'+cond2(2),
-            PROCGROUP3=SIMP(statut='o',typ='TXM',into=("1","2","add new row",)),
-            PROCGROUP689=SIMP(statut='o',typ='TXM',),
-            wideblock3=BLOC(condition='PROCGROUP3=="add new row"'+cond2(3),
-                PROCGROUP4=SIMP(statut='o',typ='TXM',into=("1","add new row","3",)),
-                wideblock4=BLOC(condition='PROCGROUP4=="add new row"'+cond2(4),
-                    PROCGROUP5=SIMP(statut='o',typ='TXM',into=("add new row","2","3",)),
-                    wideblock5=BLOC(condition='PROCGROUP5=="add new row"'+cond2(5), 
-                        PROCGROUP6=SIMP(statut='o',typ='TXM',into=("1","2","add new row",)),
-                        wideblock6=BLOC(condition='PROCGROUP6=="add new row"'+cond2(6), 
-                            PROCGROUP7=SIMP(statut='o',typ='TXM',into=("1","add new row","3",)),
-                            wideblock7=BLOC(condition='PROCGROUP7=="add new row"'+cond2(7), 
-                                PROCGROUP8=SIMP(statut='o',typ='TXM',into=("add new row","2","3",)),
-                                wideblock8=BLOC(condition='PROCGROUP8=="add new row"'+cond2(8),
-                                )
-                            )
-                        )
-                    )
-                )
-            )
-        )
-    )
-)
-
-#LEV1 = OPER( nom = "LEV1",
-#    sd_prod=loi,
-#    op=68,
-#    fr='LEV1 FR',
-#    Boolean01=SIMP( statut = 'o',typ = bool, defaut=True, fr = 'Bool mandatory FR', ang = 'Bool mandatory EN'),
-#    SelectedItem=SIMP(statut = 'o',typ = 'TXM', into=["01_01","01_02","01_03","01_04"], fr="FR"),
-#)
-
-Classement_Commandes_Ds_Arbre=('PROC_01',)
-
-Ordre_Des_Commandes = ('PROC_01',)
diff --git a/MED/Nested_Cond_52946_Cata.py b/MED/Nested_Cond_52946_Cata.py
deleted file mode 100644 (file)
index fef5edf..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-# coding: utf-8
-
-from Accas import *
-
-class loi(): pass
-
-JdC = JDC_CATA (code = 'PATTERNS',
-                execmodul = None,
-                )
-use_and=True #switch off second condition about MAX_ROWS while it does not work for blocks greater than 2
-def cond2(myMax=False):
-    if use_and:
-        if myMax:
-            out= " and MAX_ROWS>="+str(myMax)
-        else:
-            out=""
-    else: 
-        out=""
-    print out
-    return out
-
-PROC_01 = PROC(nom = "PROC_01",op = None, ang="Help for PROC_01 EN",
-    MAX_ROWS=SIMP(statut='o',typ='I',val_min=1,val_max=8, defaut=8),
-    PROCGROUP1=SIMP(statut='o',typ='TXM',into=("1","2","add new row",)),
-    wideblock1=BLOC(condition='PROCGROUP1=="add new row"'+cond2(1),
-        PROCGROUP2=SIMP(statut='o',typ='TXM',into=("1","add new row","3",)),
-        #wideblock2=BLOC(condition='PROCGROUP2=="add new row"',
-        wideblock2=BLOC(condition='MAX_ROWS == 8',
-        #wideblock2=BLOC(condition='PROCGROUP2=="add new row" and (MAX_ROWS > 2)',
-            PROCGROUP3=SIMP(statut='o',typ='TXM',into=("1","2","add new row",)),
-            wideblock3=BLOC(condition='PROCGROUP3=="add new row"'+cond2(3),
-                PROCGROUP4=SIMP(statut='o',typ='TXM',into=("1","add new row","3",)),
-                wideblock4=BLOC(condition='PROCGROUP4=="add new row"'+cond2(4),
-                    PROCGROUP5=SIMP(statut='o',typ='TXM',into=("add new row","2","3",)),
-                    wideblock5=BLOC(condition='PROCGROUP5=="add new row"'+cond2(5), 
-                        PROCGROUP6=SIMP(statut='o',typ='TXM',into=("1","2","add new row",)),
-                        wideblock6=BLOC(condition='PROCGROUP6=="add new row"'+cond2(6), 
-                            PROCGROUP7=SIMP(statut='o',typ='TXM',into=("1","add new row","3",)),
-                            wideblock7=BLOC(condition='PROCGROUP7=="add new row"'+cond2(7), 
-                                PROCGROUP8=SIMP(statut='o',typ='TXM',into=("add new row","2","3",)),
-                                wideblock8=BLOC(condition='PROCGROUP8=="add new row"'+cond2(8),
-                                )
-                            )
-                        )
-                    )
-                )
-            )
-        )
-    )
-)
-
-#LEV1 = OPER( nom = "LEV1",
-#    sd_prod=loi,
-#    op=68,
-#    fr='LEV1 FR',
-#    Boolean01=SIMP( statut = 'o',typ = bool, defaut=True, fr = 'Bool mandatory FR', ang = 'Bool mandatory EN'),
-#    SelectedItem=SIMP(statut = 'o',typ = 'TXM', into=["01_01","01_02","01_03","01_04"], fr="FR"),
-#)
-
-Classement_Commandes_Ds_Arbre=('PROC_01',)
-
-Ordre_Des_Commandes = ('PROC_01',)
diff --git a/MED/Nested_Cond_52947_Cata.py b/MED/Nested_Cond_52947_Cata.py
deleted file mode 100644 (file)
index bf3be39..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-# coding: utf-8
-
-from Accas import *
-
-class loi(): pass
-
-JdC = JDC_CATA (code = 'PATTERNS',
-                execmodul = None,
-                )
-
-PROC_01 = PROC(nom = "PROC_01",op = None, ang="Help for PROC_01 EN",
-    PROCGROUP1=SIMP(statut='o',typ='TXM',into=("a1","a2","a3",)),
-)
-
-Classement_Commandes_Ds_Arbre=('PROC_01',)
-
-Ordre_Des_Commandes = ('PROC_01',)
diff --git a/MED/Nested_Cond_52948_Cata.py b/MED/Nested_Cond_52948_Cata.py
deleted file mode 100644 (file)
index 81f216f..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-# coding: utf-8
-
-from Accas import *
-
-class loi(ASSD): pass
-
-JdC = JDC_CATA (code = 'PATTERNS',
-                execmodul = None,
-                )
-
-PER_01 = OPER( nom = "PER_01",
-    sd_prod=loi,
-    op=68,
-    fr='LEV1 FR',
-    Boolean01=SIMP( statut = 'o',typ = bool, defaut=True, fr = 'Bool mandatory FR', ang = 'Bool mandatory EN'),
-    SelectedItem=SIMP(statut = 'o',typ = 'TXM', into=["01_01","01_02","01_03","01_04"], fr="FR"),
-)
-
-#Classement_Commandes_Ds_Arbre=('OPER_01',)
-
-#Ordre_Des_Commandes = ('OPER_01',)
diff --git a/MED/Nested_Cond_52949_Cata.py b/MED/Nested_Cond_52949_Cata.py
deleted file mode 100644 (file)
index d09011a..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-# coding: utf-8
-
-from Accas import *
-
-JdC = JDC_CATA (code = 'PATTERNS',
-                execmodul = None,
-                )
-
-PROC_01 = PROC(nom = "PROC_01",op = None, ang="Help for PROC_01 EN",
-    MAX_ROWS=SIMP(statut='o',typ='I',val_min=1,val_max=8, defaut=8),
-    PROCGROUP1=SIMP(statut='o',typ='TXM',into=("1","2","add new row",)),
-    wideblock1=BLOC(condition='PROCGROUP1 in "add new row"',
-        PROCGROUP2=SIMP(statut='o',typ='TXM',into=("1","add new row","3",)),
-    )
-)
-
-Classement_Commandes_Ds_Arbre=('PROC_01',)
-
-Ordre_Des_Commandes = ('PROC_01',)
diff --git a/MED/Nested_Cond_52952_Cata.py b/MED/Nested_Cond_52952_Cata.py
deleted file mode 100644 (file)
index 47a8d7c..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-# coding: utf-8
-
-from Accas import *
-
-class loi(): pass
-
-JdC = JDC_CATA (code = 'PATTERNS',
-                execmodul = None,
-                )
-use_and=False #switch off second condition about MAX_ROWS while it does not work for blocks greater than 2
-def cond2(myMax=False):
-    if use_and:
-        if myMax:
-            out= " and MAX_ROWS>="+str(myMax)
-        else:
-            out=""
-    else: 
-        out=""
-    #print out
-    return out
-
-PROC_01 = PROC(nom = "PROC_01",op = None, ang="Help for PROC_01 EN",
-    MAX_ROWS=SIMP(statut='o',typ='I',val_min=1,val_max=8, defaut=8),
-    PROCGROUP1=SIMP(statut='o',typ='TXM',into=("1","2","add new row",)),
-    wideblock1=BLOC(condition='PROCGROUP1=="add new row"'+cond2(1),
-        PROCGROUP2=SIMP(statut='o',typ='TXM',into=("1","add new row","3",)),
-        wideblock2=BLOC(condition='PROCGROUP2=="add new row"'+cond2(2),
-            PROCGROUP3=SIMP(statut='o',typ='TXM',into=("1","2","add new row",)),
-            wideblock3=BLOC(condition='PROCGROUP3=="add new row"'+cond2(3),
-                PROCGROUP4=SIMP(statut='o',typ='TXM',into=("1","add new row","3",)),
-                wideblock4=BLOC(condition='PROCGROUP4=="add new row"'+cond2(4),
-                    PROCGROUP5=SIMP(statut='o',typ='TXM',into=("add new row","2","3",)),
-                    wideblock5=BLOC(condition='PROCGROUP5=="add new row"'+cond2(5), 
-                        PROCGROUP6=SIMP(statut='o',typ='TXM',into=("1","2","add new row",)),
-                        wideblock6=BLOC(condition='PROCGROUP6=="add new row"'+cond2(6), 
-                            PROCGROUP7=SIMP(statut='o',typ='TXM',into=("1","add new row","3",)),
-                            wideblock7=BLOC(condition='PROCGROUP7=="add new row"'+cond2(7), 
-                                PROCGROUP8=SIMP(statut='o',typ='TXM',into=("add new row","2","3",)),
-                                wideblock8=BLOC(condition='PROCGROUP8=="add new row"'+cond2(8),
-                                )
-                            )
-                        )
-                    )
-                )
-            )
-        )
-    )
-)
-
-#LEV1 = OPER( nom = "LEV1",
-#    sd_prod=loi,
-#    op=68,
-#    fr='LEV1 FR',
-#    Boolean01=SIMP( statut = 'o',typ = bool, defaut=True, fr = 'Bool mandatory FR', ang = 'Bool mandatory EN'),
-#    SelectedItem=SIMP(statut = 'o',typ = 'TXM', into=["01_01","01_02","01_03","01_04"], fr="FR"),
-#)
-
-Classement_Commandes_Ds_Arbre=('PROC_01',)
-
-Ordre_Des_Commandes = ('PROC_01',)
diff --git a/MED/Separate_Blocks_52958_Cata.py b/MED/Separate_Blocks_52958_Cata.py
deleted file mode 100644 (file)
index 1327a3f..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-# coding: utf-8
-
-from Accas import *
-
-JdC = JDC_CATA (code = 'PATTERNS',
-                execmodul = None,
-                )
-def several(suffix,num):
-    out=list()
-    for i in range(1,num+1):
-        out.append(suffix+str(i).zfill(2))
-    return out
-
-NUMERICAL_PARAMETERS=PROC(nom = "NUMERICAL_PARAMETERS", op=None, ang="Help for NUMERICAL_PARAMETERS, English version",
-    #Equations=SIMP(statut = 'o',typ = 'TXM',into=("EF","VF","BS"),defaut="EF"),
-    Solver_definition=FACT(statut = 'o',
-        Solver = SIMP(statut = 'o',typ = 'TXM', into=several("Solver_",12), defaut="Solver_06"),
-    )
-)
-PASCALE=PROC(nom = "PASCALE", op=None, ang="Help for NUMERICAL_PARAMETERS, English version",
-    Equations=SIMP(statut = 'o',typ = 'TXM',into=("EF","VF","BS"),defaut="EF"),
-    Solver_definition=FACT(statut = 'o',
-        Solver = SIMP(statut = 'o',typ = 'TXM', into=several("Solver_",12), defaut="Solver_06"),
-    )
-)
-
-Classement_Commandes_Ds_Arbre=('NUMERICAL_PARAMETERS',)
-
-Ordre_Des_Commandes = ('NUMERICAL_PARAMETERS',)
diff --git a/MED/Separate_Blocks_52963_Cata.py b/MED/Separate_Blocks_52963_Cata.py
deleted file mode 100644 (file)
index c115196..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-# coding: utf-8
-
-from Accas import *
-
-JdC = JDC_CATA (code = 'PATTERNS',
-                execmodul = None,
-                )
-def mySeveral(suffix,num):
-    out=list()
-    for i in range(1,num+1):
-        out.append(suffix+str(i).zfill(2))
-    return out
-
-def myFact(num):
-    myNum=str(num).zfill(2)
-    list_item_body="Item_"+myNum+"_"
-    myString="FACT(statut = 'f', List_"+myNum+" = SIMP(statut = 'o',typ = 'TXM', into=mySeveral('"+list_item_body+"',12), defaut='"+list_item_body+myNum+"'),Real_"+myNum+" = SIMP(statut = 'o',typ = 'R', defaut = "+str(num/100.)+", ang='Real "+myNum+" help EN'),Integer_"+myNum+" = SIMP(statut = 'o',typ = 'I', defaut = "+str(100+num)+",ang='Max_Iter "+myNum+" help EN'))"
-    print myString
-    return eval(myString)
-
-
-PROC_01=PROC(nom = "PROC_01", op=None, ang="Help for PROC_01, English version",fr="Help for PROC_01, French version", docu="",
-    Radio_01=SIMP(statut = 'f',typ = 'TXM',into=("EF","VF","BS"),defaut="EF"),
-    FACT_01=myFact(1),
-    FACT_02=myFact(2),
-    FACT_03=myFact(3),
-    FACT_04=myFact(4),
-    FACT_05=myFact(5),
-    FACT_06=myFact(6),
-    FACT_07=myFact(7),
-    FACT_08=myFact(8),
-    FACT_09=myFact(9),
-    FACT_10=myFact(10),
-    FACT_11=myFact(11),
-    FACT_12=myFact(12),
-)
-
-Classement_Commandes_Ds_Arbre=('PROC_01',)
-
-Ordre_Des_Commandes = ('PROC_01',)
diff --git a/MED/Separate_Blocks_52966_Cata.py b/MED/Separate_Blocks_52966_Cata.py
deleted file mode 100644 (file)
index baef1eb..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-# coding: utf-8
-
-from Accas import *
-
-JdC = JDC_CATA (code = 'PATTERNS',
-                execmodul = None,
-                )
-def mySeveral(suffix,num):
-    out=list()
-    for i in range(1,num+1):
-        out.append(suffix+str(i).zfill(2))
-    return out
-
-switch_facultatif=False #change 'o' to 'f' of some widgets in the loop
-
-def myFact(num):
-    opt=['o','f','o','o']
-    if switch_facultatif:
-        myLen=len(opt)
-        make_f=(num-1)%myLen
-        opt[make_f]='f'
-    #print opt
-    myNum=str(num).zfill(2)
-    list_item_body="Item_"+myNum+"_"
-    myString="FACT(statut = '"+opt[0]+"', List_"+myNum+" = SIMP(statut = '"+opt[1]+"',typ = 'TXM', into=mySeveral('"+list_item_body+"',12), defaut='"+list_item_body+myNum+"'),Real_"+myNum+" = SIMP(statut = '"+opt[2]+"',typ = 'R', defaut = "+str(num/100.)+", ang='Real "+myNum+" help EN'),Integer_"+myNum+" = SIMP(statut = '"+opt[3]+"',typ = 'I', defaut = "+str(100+num)+",ang='Max_Iter "+myNum+" help EN'))"
-    print myString
-    return eval(myString)
-
-
-PROC_01=PROC(nom = "PROC_01", op=None, ang="Help for PROC_01, English version",fr="Help for PROC_01, French version", docu="",
-    Radio_01=SIMP(statut = 'o',typ = 'TXM',into=("EF","VF","BS"),defaut="EF"),
-    FACT_01=myFact(1),
-    FACT_02=myFact(2),
-    FACT_03=myFact(3),
-    FACT_04=myFact(4),
-    FACT_05=myFact(5),
-    FACT_06=myFact(6),
-    FACT_07=myFact(7),
-    FACT_08=myFact(8),
-    FACT_09=myFact(9),
-    FACT_10=myFact(10),
-    FACT_11=myFact(11),
-    FACT_12=myFact(12),
-)
-
-Classement_Commandes_Ds_Arbre=('PROC_01',)
-
-Ordre_Des_Commandes = ('PROC_01',)
diff --git a/MED/Separate_Blocks_52972_Cata.py b/MED/Separate_Blocks_52972_Cata.py
deleted file mode 100644 (file)
index 88927e4..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-# coding: utf-8
-
-from Accas import *
-
-JdC = JDC_CATA (code = 'PATTERNS',
-                execmodul = None,
-                )
-def mySeveral(suffix,num):
-    out=list()
-    for i in range(1,num+1):
-        out.append(suffix+str(i).zfill(2))
-    return out
-
-switch_facultatif=True #change 'o' to 'f' of some widgets in the loop
-empty_defauts=True
-
-def myFact(num):
-    myNum=str(num).zfill(2)
-    list_item_body="Item_"+myNum+"_"
-
-    defauts0=["","'"+list_item_body+myNum+"'", str(num/100.), str(100+num), "'Text_"+myNum+"'" ] #presence of default values
-    defauts_mask=[False,True,True,False,True] #switch off defaults of some types
-    defauts=list()
-    for id0 in range(len(defauts0)):
-        if defauts_mask[id0]:
-            item=", defaut="+defauts0[id0]
-        else:
-            item=""
-        defauts.append(item)
-    print defauts
-
-    opt=['o','o','o','o','o'] #initial default obligation of items in FACT groups
-    #make some widgets optional:
-    myLen=len(opt)
-    if switch_facultatif:
-        make_f=(num)%myLen
-        opt[make_f]='f'
-    #print opt
-    if empty_defauts:
-        clean_defaut=num%myLen
-
-
-    myString="FACT(statut = '"+opt[0]+"', List_"+myNum+" = SIMP(statut = '"+opt[1]+"',typ = 'TXM', into=mySeveral('"+list_item_body+"',12)"+defauts[1]+"),Real_"+myNum+" = SIMP(statut = '"+opt[2]+"',typ = 'R'"+defauts[2]+", ang='Real "+myNum+" help EN'),Integer_"+myNum+" = SIMP(statut = '"+opt[3]+"',typ = 'I'"+defauts[3]+",ang='Integer "+myNum+" help EN'),Text_"+myNum+" = SIMP(statut = '"+opt[4]+"',typ = 'TXM'"+defauts[4]+",ang='Text "+myNum+" help EN'))"
-    print myString
-    return eval(myString)
-
-
-PROC_01=PROC(nom = "PROC_01", op=None, ang="Help for PROC_01, English version",fr="Help for PROC_01, French version", docu="",
-    Radio_01=SIMP(statut = 'o',typ = 'TXM',into=("EF","VF","BS"),defaut="EF"),
-    FACT_01=myFact(1),
-    FACT_02=myFact(2),
-    FACT_03=myFact(3),
-    FACT_04=myFact(4),
-    FACT_05=myFact(5),
-    #FACT_06=myFact(6),
-    #FACT_07=myFact(7),
-    #FACT_08=myFact(8),
-    #FACT_09=myFact(9),
-    #FACT_10=myFact(10),
-    #FACT_11=myFact(11),
-    #FACT_12=myFact(12),
-)
-
-Classement_Commandes_Ds_Arbre=('PROC_01',)
-
-Ordre_Des_Commandes = ('PROC_01',)
diff --git a/MED/Separate_Blocks_52975_Cata.py b/MED/Separate_Blocks_52975_Cata.py
deleted file mode 100644 (file)
index 88927e4..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-# coding: utf-8
-
-from Accas import *
-
-JdC = JDC_CATA (code = 'PATTERNS',
-                execmodul = None,
-                )
-def mySeveral(suffix,num):
-    out=list()
-    for i in range(1,num+1):
-        out.append(suffix+str(i).zfill(2))
-    return out
-
-switch_facultatif=True #change 'o' to 'f' of some widgets in the loop
-empty_defauts=True
-
-def myFact(num):
-    myNum=str(num).zfill(2)
-    list_item_body="Item_"+myNum+"_"
-
-    defauts0=["","'"+list_item_body+myNum+"'", str(num/100.), str(100+num), "'Text_"+myNum+"'" ] #presence of default values
-    defauts_mask=[False,True,True,False,True] #switch off defaults of some types
-    defauts=list()
-    for id0 in range(len(defauts0)):
-        if defauts_mask[id0]:
-            item=", defaut="+defauts0[id0]
-        else:
-            item=""
-        defauts.append(item)
-    print defauts
-
-    opt=['o','o','o','o','o'] #initial default obligation of items in FACT groups
-    #make some widgets optional:
-    myLen=len(opt)
-    if switch_facultatif:
-        make_f=(num)%myLen
-        opt[make_f]='f'
-    #print opt
-    if empty_defauts:
-        clean_defaut=num%myLen
-
-
-    myString="FACT(statut = '"+opt[0]+"', List_"+myNum+" = SIMP(statut = '"+opt[1]+"',typ = 'TXM', into=mySeveral('"+list_item_body+"',12)"+defauts[1]+"),Real_"+myNum+" = SIMP(statut = '"+opt[2]+"',typ = 'R'"+defauts[2]+", ang='Real "+myNum+" help EN'),Integer_"+myNum+" = SIMP(statut = '"+opt[3]+"',typ = 'I'"+defauts[3]+",ang='Integer "+myNum+" help EN'),Text_"+myNum+" = SIMP(statut = '"+opt[4]+"',typ = 'TXM'"+defauts[4]+",ang='Text "+myNum+" help EN'))"
-    print myString
-    return eval(myString)
-
-
-PROC_01=PROC(nom = "PROC_01", op=None, ang="Help for PROC_01, English version",fr="Help for PROC_01, French version", docu="",
-    Radio_01=SIMP(statut = 'o',typ = 'TXM',into=("EF","VF","BS"),defaut="EF"),
-    FACT_01=myFact(1),
-    FACT_02=myFact(2),
-    FACT_03=myFact(3),
-    FACT_04=myFact(4),
-    FACT_05=myFact(5),
-    #FACT_06=myFact(6),
-    #FACT_07=myFact(7),
-    #FACT_08=myFact(8),
-    #FACT_09=myFact(9),
-    #FACT_10=myFact(10),
-    #FACT_11=myFact(11),
-    #FACT_12=myFact(12),
-)
-
-Classement_Commandes_Ds_Arbre=('PROC_01',)
-
-Ordre_Des_Commandes = ('PROC_01',)
diff --git a/MED/a b/MED/a
deleted file mode 100644 (file)
index 0018d1d..0000000
--- a/MED/a
+++ /dev/null
@@ -1,110 +0,0 @@
-ESSAI_FACT=OPER(nom="ESSAI_FACT",
-   sd_prod=ObjetUtilisateur,
-   op=None,
-   fr=tr("Affectation de caractéristiques à des éléments de structure"),
-   regles = (AU_MOINS_UN('Poutre','Barre'),
-             EXCLUS('Discret','Discret_2D'),),
-   Info   = SIMP(statut='f',typ='I', defaut= 1 ,into=(1,2) ),
-   Verif  = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("Maille","Noeud") ),
-#
-# ==============================================================================
-    Poutre  = FACT(statut= 'f',max= '**',
-        Section = SIMP(statut= 'o',typ= 'TXM' ,into= ("GENERALE","RECTANGLE","CERCLE") ),
-
-        b_generale = BLOC(condition = " Section == 'GENERALE'",
-            regles = (UN_PARMI('Maille','GroupeMailles'),),
-            Maille    = SIMP(statut= 'f',typ= ma  ,validators= NoRepeat(),max= '**'),
-            GroupeMailles  = SIMP(statut= 'f',typ= grma,validators= NoRepeat(),max= '**'),
-
-            Vari = SIMP(statut= 'f',typ= 'TXM',into= ("CONSTANT","HOMOTHETIQUE"),defaut= "CONSTANT"),
-
-            b_constant = BLOC(condition = "Vari == 'CONSTANT'",
-                regles = (PRESENT_ABSENT('Table','Cara'),
-                          PRESENT_PRESENT('Table','Nom'),
-                          PRESENT_PRESENT('Cara','Valeur'),),
-                Table = SIMP(statut= 'f',typ='TXM'),
-                Nom    = SIMP(statut= 'f',typ= 'TXM'),
-                Cara       = SIMP(statut= 'o',typ= 'TXM',min= 4 ,max= 5,
-                    fr= tr("A,IY,IZ,JX sont des paramètres obligatoires"),
-                    validators= [NoRepeat(), Compulsory(['A','IY','IZ','JX'])],
-                    into= ("A","IY","IZ","AY","AZ","EY","EZ","JX","RY","RZ","RT","JG","IYR2","IZR2","AI") ),
-                Valeur       = SIMP(statut= 'f',typ= 'R',min= 4 ,max= 15),
-            ),
-        ),
-        b_rectangle = BLOC(condition = "Section == 'RECTANGLE'",
-            regles = (UN_PARMI('Maille','GroupeMailles'),),
-            Maille    = SIMP(statut= 'f',typ= ma  ,validators= NoRepeat(),max= '**'),
-            GroupeMailles  = SIMP(statut= 'f',typ= grma,validators= NoRepeat(),max= '**'),
-            Vari = SIMP(statut= 'f',typ= 'TXM',into= ("CONSTANT","HOMOTHETIQUE","AFFINE"),defaut= "CONSTANT"),
-            b_constant = BLOC(condition = "Vari == 'CONSTANT'",
-                Cara  = SIMP(statut= 'o',typ= 'TXM',min= 1 ,max= 4,
-                    validators = [NoRepeat(),
-                                  OrVal( [AndVal( [Compulsory(['H']),Absent(['HY','HZ','EPY','EPZ'])] ),
-                                          AndVal( [Compulsory(['HY','HZ']),Together(['EPY','EPZ']),Absent(['H','EP'])] )] )],
-                    into= ("H","EP", "HY","HZ","EPY","EPZ"),),
-                Valeur  = SIMP(statut= 'o',typ= 'R',min= 1 ,max= 4),
-            ),
-
-            Metrique = SIMP(statut= 'f',typ= 'TXM',defaut= "NON",into= ("OUI","NON") ),
-            Fcx           = SIMP(statut= 'f',typ= 'R'),
-            Tuyau    = SIMP(statut= 'f',typ= 'I',val_max= 10,defaut= 3),
-        ),
-    ),
-#
-# ==============================================================================
-    Barre = FACT(statut='f',max='**',
-        regles = (UN_PARMI('Maille','GroupeMailles'),),
-        Maille   = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-        GroupeMailles = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-        Section  = SIMP(statut='o',typ='TXM',into=("GENERALE","RECTANGLE","CERCLE") ),
-        b_generale = BLOC(condition = "Section=='GENERALE'",
-            regles = (PRESENT_ABSENT('Table','Cara'),
-                      PRESENT_PRESENT('Table','Nom'),
-                      PRESENT_PRESENT('Cara','Valeur')),
-            Table = SIMP(statut='f',typ=table_sdaster),
-            Nom    = SIMP(statut='f',typ='TXM',validators=LongStr(1,24) ),
-            Cara       = SIMP(statut='f',typ='TXM',into=("A",) ),
-            Valeur       = SIMP(statut='f',typ='R',min=1,max=1 ),
-        ),
-        b_rectangle = BLOC(condition = "Section=='RECTANGLE'",
-            Cara = SIMP(statut='o',typ='TXM', min=1, max=4,
-                validators = [NoRepeat(),
-                              OrVal( [AndVal( [Compulsory(['H']),Absent(['HY','HZ','EPY','EPZ'])] ),
-                                      AndVal( [Compulsory(['HY','HZ']),Together(['EPY','EPZ']),Absent(['H','EP'])] )] )],
-                into=("H","EP","HZ","HY","EPY","EPZ"), ),
-            Valeur = SIMP(statut='o',typ='R',min=1,max=4 ), ),
-        b_cercle = BLOC(condition = "Section=='CERCLE'",
-            Cara = SIMP(statut='o',typ='TXM',validators=[NoRepeat(),Compulsory(['R'])],min=1,max=2,into=("R","EP") ),
-            Valeur = SIMP(statut='o',typ='R',min=1,max=2 ), ),
-    ),
-#
-# ==============================================================================
-    Discret = FACT(statut='f',max='**',
-        REPERE    = SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
-        AMOR_HYST = SIMP(statut='f',typ='R' ),
-        SYME      = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),),
-        b_SYME_OUI = BLOC(condition="SYME=='OUI'",
-            fr=tr("SYMETRIQUE: Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds"),
-            Cara = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,defaut="None",
-            into = ("K_T_D_N", "K_T_D_L", "K_TR_D_N", "K_TR_D_L", "K_T_N", "K_T_L", "K_TR_N", "K_TR_L",
-                    "M_T_D_N", "M_T_D_L", "M_TR_D_N", "M_TR_D_L", "M_T_N", "M_T_L", "M_TR_N", "M_TR_L",
-                    "A_T_D_N", "A_T_D_L", "A_TR_D_N", "A_TR_D_L", "A_T_N", "A_T_L", "A_TR_N", "A_TR_L",),),
-            #  Affection des caractéristiques de RIGIDITE/AMORTISSEMENT/MASSE
-            b_AK_T_D_N = BLOC(condition = "((Cara=='K_T_D_N')or(Cara=='A_T_D_N'))",
-                fr       = tr("Noeud: 3 valeurs (triangulaire supérieure par colonne)"),
-                regles   = (UN_PARMI('Maille','GroupeMailles','Noeud','GROUP_NO'),),
-                Noeud    = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-                GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-                Maille   = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-                GroupeMailles = SIMP(statut='f',typ=grma,validators=NoRepeat(),homo='SansOrdreNiDoublon',max='**'),
-                Valeur     = SIMP(statut='o',typ='R',min=3 ,max=3 ),),
-        ),
-    ),
-#
-# ==============================================================================
-    Discret_2D = FACT(statut='f',max='**',
-        REPERE    = SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
-        AMOR_HYST = SIMP(statut='f',typ='R' ),
-        SYME      = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),),
-        ),
-)
diff --git a/MED/cata_diapo.py b/MED/cata_diapo.py
deleted file mode 100644 (file)
index 0c5268e..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-# coding: utf-8
-
-from Accas import *
-class Tuple:
-   def __init__(self,ntuple):
-     self.ntuple=ntuple
-
-   def __convert__(self,valeur):
-     import types
-     if type(valeur) == types.StringType:
-       return None
-     if len(valeur) != self.ntuple:
-       return None
-     return valeur
-
-   def info(self):
-     return "Tuple de %s elements" % self.ntuple
-
-   __repr__=info
-   __str__=info
-
-
-
-class forme ( ASSD ) : pass
-
-JdC = JDC_CATA (code = 'MED',
-                execmodul = None,
-                )
-
-FORME_GEOMETRIQUE=OPER(nom='FORME_GEOMETRIQUE',sd_prod =forme ,op=None,
-           Forme=SIMP(statut="o",typ='TXM',into=[ 'carre', 'cercle', 'triangle' ],defaut='carre'),
-           bloc_pour_Carre =  BLOC (condition = "Forme=='carre'",
-              Cote=SIMP(statut="o",typ='I'), ) , # fin bloc_pour_carre
-           bloc_pour_cercle =  BLOC (condition ="Forme=='cercle'",
-              rayon=SIMP(statut="o",typ='I'), ) , # fin bloc_pour_cercle
-
-           DE_NOMBREUSES_WIDGETS= FACT(statut="o",
-                Stop_Criteria = SIMP(statut = 'o',typ = Tuple(3),validators = VerifTypeTuple(('R','R','R'))),
-                Fichier_Med = SIMP( statut = 'o', typ = ('Fichier', 'Med Files (*.med);;All Files (*)',),),
-                ListeDeChoixPlusGrande=SIMP(statut="o",typ='TXM',into=['a','b,','c','d','e','f','g','h'],
-                homo="SansOrdreNiDoublon",),
-                Un_Parametre_Facultatif=SIMP(statut="f",typ='TXM')
-                
-           ),
-          Couleur=SIMP(statut = 'f',typ='TXM'),
-          Matiere=SIMP(statut = 'f',typ='TXM'),
-);
-
diff --git a/MED/cata_med.py b/MED/cata_med.py
deleted file mode 100644 (file)
index 4640f81..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-# coding: utf-8
-
-from Accas import *
-
-JdC = JDC_CATA (code = 'MED',
-                execmodul = None,
-                )
-FAS=PROC(nom='FAS',op=None,
-    FAMILY_MESH_NAME_REF = FACT(statut='o', max='**',
-
-                NAME=SIMP(statut="o",typ='TXM'),
-                ELEM=FACT(statut="f", max="**",
-                        NUM=SIMP(statut="o",typ='TXM',),
-                        NAME=SIMP(statut="o",typ='TXM',),
-                        ATT=FACT(statut="f",
-                                NBR=SIMP(statut="o", max=1   , typ = 'I'),
-                                DES=SIMP(statut="o", max="**", typ = 'TXM'),
-                                IDE=SIMP(statut="o", max="**", typ = 'I'),
-                                VAL=SIMP(statut="o", max="**", typ = 'I'),
-                                ),
-                        GRO=FACT(statut="f",
-                                NBR=SIMP(statut="o", max=1   , typ = 'I'),
-                                NOM=SIMP(statut="o", max="**", typ='TXM'),
-                                ),
-                ),
-        ),
-);
-
-
diff --git a/MED/configuration_MED.py b/MED/configuration_MED.py
deleted file mode 100644 (file)
index 4ab64b8..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-# -*- coding: utf-8 -*-\r
-#            CONFIGURATION MANAGEMENT OF EDF VERSION\r
-# ======================================================================\r
-# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG\r
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY\r
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY\r
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR\r
-# (AT YOUR OPTION) ANY LATER VERSION.\r
-#\r
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT\r
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF\r
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU\r
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.\r
-#\r
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE\r
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,\r
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.\r
-#\r
-#\r
-# ======================================================================\r
-"""\r
-    Ce module sert pour charger les paramètres de configuration d'EFICAS\r
-"""\r
-# Modules Python\r
-from InterfaceQT4 import configuration\r
-import os\r
-\r
-\r
-class CONFIG(configuration.CONFIG_BASE):\r
-\r
-  #-----------------------------------\r
-  def __init__(self,appli,repIni):\r
-  #-----------------------------------\r
-\r
-      self.labels_user=['catalogues','lang']\r
-      self.labels_eficas=['lang','rep_cata','catalogues']\r
-\r
-      configuration.CONFIG_BASE.__init__(self,appli,'.Eficas_monCode')\r
-\r
-\r
-def make_config(appli,rep):\r
-    return CONFIG(appli,rep)\r
-\r
diff --git a/MED/images/essaiAster.png b/MED/images/essaiAster.png
deleted file mode 100644 (file)
index d01c5de..0000000
Binary files a/MED/images/essaiAster.png and /dev/null differ
diff --git a/MED/items_integer_space.txt b/MED/items_integer_space.txt
deleted file mode 100644 (file)
index 8e17136..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-"4" "3" "2" "1" 
-"4" "5" "6" "7"
\ No newline at end of file
diff --git a/MED/monCode_qtEficas.py b/MED/monCode_qtEficas.py
deleted file mode 100755 (executable)
index b1254f2..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2012   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-"""
-   Ce module sert a lancer EFICAS configure pour Code_Aster
-"""
-# Modules Python
-# Modules Eficas
-
-import sys,os
-sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..'))
-
-from PyQt4.QtCore import *
-import prefs
-from InterfaceQT4 import eficas_go
-eficas_go.lance_eficas(code=prefs.code)
diff --git a/MED/prefs.py b/MED/prefs.py
deleted file mode 100644 (file)
index 2e9d0a2..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright (C) 2007-2012   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-code="MED" 
-import sys, os
-if os.path.dirname(os.path.abspath(__file__)) not in sys.path :
-   sys.path.insert(0,os.path.dirname(os.path.abspath(__file__)))
diff --git a/MED/prefs_MED.py b/MED/prefs_MED.py
deleted file mode 100644 (file)
index 220dc3f..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-# -*- coding: utf-8 -*-
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-#
-#
-# ======================================================================
-
-import os,sys
-# repIni sert a localiser le fichier editeur.ini
-# Obligatoire
-repIni=os.path.dirname(os.path.abspath(__file__))
-INSTALLDIR=os.path.join(repIni,'..')
-sys.path[:0]=[INSTALLDIR]
-
-
-# lang indique la langue utilisee pour les chaines d'aide : fr ou ang
-lang='en'
-
-# Codage des strings qui accepte les accents (en remplacement de 'ascii')
-encoding='iso-8859-1'
-docPath=repIni
-
-#
-catalogues=(
-   #('med','med',os.path.join(repIni,'cata_med.py'),'dico','python'), 
-   ('med','med',os.path.join(repIni,'CataAZ.py'),'python','python'), 
-)
-
-simpleClic=True
-nombreDeBoutonParLigne = 4
-dicoImages={
-'CREEOBJET' : os.path.join(repIni,'images/essaiAster.png')
-}
-                                                                 
diff --git a/MED/prefs_monCode.py b/MED/prefs_monCode.py
deleted file mode 100644 (file)
index b9e513f..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-# -*- coding: utf-8 -*-
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-#
-#
-# ======================================================================
-
-import os,sys
-# repIni sert a localiser le fichier editeur.ini
-# Obligatoire
-repIni=os.path.dirname(os.path.abspath(__file__))
-INSTALLDIR=os.path.join(repIni,'..')
-sys.path[:0]=[INSTALLDIR]
-
-
-# lang indique la langue utilisee pour les chaines d'aide : fr ou ang
-lang='en'
-
-# Codage des strings qui accepte les accents (en remplacement de 'ascii')
-encoding='iso-8859-1'
-docPath=repIni
-
-#
-catalogues=(
-   ('monCode','med',os.path.join(repIni,'CataAZ.py'),'python','python'), 
-#   ('monCode','53036',os.path.join(repIni,'Elementary_Lists_53036_Cata.py'),'dico','python'), 
-#   ('monCode','53033',os.path.join(repIni,'Tuples_Cata.py'),'dico','python'), 
-#   ('monCode','53031',os.path.join(repIni,'Tuples_Cata.py'),'dico','python'), 
-#   ('monCode','53030',os.path.join(repIni,'Tuples_Cata.py'),'dico','python'), 
-#   ('monCode','53020',os.path.join(repIni,'Nested_Cond_52945_Cata.py'),'dico','python'), 
-#   ('monCode','53013',os.path.join(repIni,'Elementary_Lists_53013_Cata.py'),'dico','python'), 
-#   ('monCode','53000',os.path.join(repIni,'Elementary_Lists_53030_Cata.py'),'dico','python'), 
-#   ('monCode','52996',os.path.join(repIni,'Elementary_Lists_52996_Cata.py'),'dico','python'), 
-#   ('monCode','52992',os.path.join(repIni,'Many_Concepts_52992_Cata.py'),'dico','python'), 
-#   ('monCode','52989',os.path.join(repIni,'Many_Concepts_52989_Cata.py'),'dico','python'), 
-#   ('monCode','52988',os.path.join(repIni,'Many_Concepts_52988_Cata.py'),'dico','python'), 
-#   ('monCode','52985',os.path.join(repIni,'fin_52985_Cata.py'),'dico','python'), 
-#   ('monCode','52983',os.path.join(repIni,'Many_Concepts_52983_Cata.py'),'dico','python'), 
-#   ('monCode','52975',os.path.join(repIni,'Separate_Blocks_52975_Cata.py'),'dico','python'), 
-#   ('monCode','52972',os.path.join(repIni,'Separate_Blocks_52972_Cata.py'),'dico','python'), 
-#   ('monCode','52958',os.path.join(repIni,'Separate_Blocks_52958_Cata.py'),'dico','python'), 
-#   ('monCode','52952',os.path.join(repIni,'Nested_Cond_52952_Cata.py'),'dico','python'), 
-#   ('monCode','52949',os.path.join(repIni,'Nested_Cond_52949_Cata.py'),'dico','python'), 
-#   ('monCode','52947',os.path.join(repIni,'Nested_Cond_52947_Cata.py'),'dico','python'), 
-#   ('monCode','52946',os.path.join(repIni,'Nested_Cond_52946_Cata.py'),'dico','python'), 
-#   ('monCode','52945',os.path.join(repIni,'Nested_Cond_52945_Cata.py'),'dico','python'), 
-#   ('monCode','Global',os.path.join(repIni,'Global_Condition_Cata.py'),'dico','python'),
-## resolu ('monCode','52948',os.path.join(repIni,'Nested_Cond_52948_Cata.py'),'dico','python'),
-#  pb d afffichage des optionnels ('monCode','52963',os.path.join(repIni,'Separate_Blocks_52963_Cata.py'),'dico','python'),
-#  pb d afffichage des optionnels ('monCode','52966',os.path.join(repIni,'Separate_Blocks_52966_Cata.py'),'dico','python'),
-
-#   ('monCode','test',os.path.join(repIni,'monCode_Cata1.py'),'dico','python'),
-)
-
diff --git a/MED/properties.py b/MED/properties.py
deleted file mode 100644 (file)
index 1d328a4..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#@ MODIF properties Accas DATE 11/06/2008 AUTEUR aster M.ADMINISTRATEUR
-# RESPONSABLE D6BHHHH J-P.LEFEBVRE
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-#     IDENTIFICATION DU GESTIONNAIRE DE COMMANDE ACCAS A PARTIR
-#     DE LA VERSION DU CODE_ASTER ASSOCIE
-#----------------------------------------------------------------------
-version = "1.2"
-date = "25/05/2010"
-exploit = False
diff --git a/MED/qtEficas_AZ.py b/MED/qtEficas_AZ.py
deleted file mode 100755 (executable)
index f49b9bc..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2012   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-"""
-   Ce module sert a lancer EFICAS configure pour Code_Aster
-"""
-# Modules Python
-# Modules Eficas
-
-import sys,os
-sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..'))
-
-import prefs
-from InterfaceQT4 import eficas_go
-eficas_go.lance_eficas(code=prefs.code)
diff --git a/MED/qtEficas_Med.py b/MED/qtEficas_Med.py
deleted file mode 100755 (executable)
index f49b9bc..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2012   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-"""
-   Ce module sert a lancer EFICAS configure pour Code_Aster
-"""
-# Modules Python
-# Modules Eficas
-
-import sys,os
-sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..'))
-
-import prefs
-from InterfaceQT4 import eficas_go
-eficas_go.lance_eficas(code=prefs.code)
diff --git a/MED/typescript b/MED/typescript
deleted file mode 100644 (file)
index f070be1..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-Le script a débuté sur mar. 29 nov. 2016 15:37:06 CET
-\e]0;A96028@dsp0780471: ~/QT5GitEficasTravail/eficas/monCode\aA96028@dsp0780471:~/QT5GitEficasTravail/eficas/monCode$ ./qtEficas_Med.py /tmp/a.comm\b\b\b\b\b\boo.comm\r
-eficas_en /home/A96028/QT5GitEficasTravail/eficas/monCode/../Extensions/../UiQT4\r
-()\r
-{'typ': 'TXM', 'statut': 'o'}\r
-()\r
-{'typ': 'TXM', 'statut': 'o'}\r
-()\r
-{'typ': 'TXM', 'statut': 'o'}\r
-()\r
-{'max': 1, 'typ': 'I', 'statut': 'o'}\r
-()\r
-{'max': '**', 'typ': 'TXM', 'statut': 'o'}\r
-()\r
-{'max': '**', 'typ': 'I', 'statut': 'o'}\r
-()\r
-{'max': '**', 'typ': 'I', 'statut': 'o'}\r
-()\r
-{'NBR': <Accas.A_SIMP.SIMP instance at 0x7efbe6617b90>, 'IDE': <Accas.A_SIMP.SIMP instance at 0x7efbe6617c20>, 'DES': <Accas.A_SIMP.SIMP instance at 0x7efbe6617bd8>, 'VAL': <Accas.A_SIMP.SIMP instance at 0x7efbe6617c68>, 'statut': 'f'}\r
-()\r
-{'max': 1, 'typ': 'I', 'statut': 'o'}\r
-()\r
-{'max': '**', 'typ': 'TXM', 'statut': 'o'}\r
-()\r
-{'NOM': <Accas.A_SIMP.SIMP instance at 0x7efbe6617e18>, 'NBR': <Accas.A_SIMP.SIMP instance at 0x7efbe6617dd0>, 'statut': 'f'}\r
-()\r
-{'NAME': <Accas.A_SIMP.SIMP instance at 0x7efbe6617b48>, 'statut': 'f', 'max': '**', 'ATT': <Accas.A_FACT.FACT instance at 0x7efbe6617cb0>, 'NUM': <Accas.A_SIMP.SIMP instance at 0x7efbe6617b00>, 'GRO': <Accas.A_FACT.FACT instance at 0x7efbe6617e60>}\r
-()\r
-{'NAME': <Accas.A_SIMP.SIMP instance at 0x7efbe6617ab8>, 'ELEM': <Accas.A_FACT.FACT instance at 0x7efbe6617ea8>, 'statut': 'o'}\r
-()\r
-{'nom': 'FAS', 'FAMILY_MESH_NAME_REF': <Accas.A_FACT.FACT instance at 0x7efbe6617ef0>, 'op': None}\r
-\e]0;A96028@dsp0780471: ~/QT5GitEficasTravail/eficas/monCode\aA96028@dsp0780471:~/QT5GitEficasTravail/eficas/monCode$ exit\r
-
-Script terminé sur mar. 29 nov. 2016 15:37:13 CET
index d2fc159710469498e8b0645479bfd6d063bfdaa7..5f3dea15d49370cb6c328576c80fd66366140169 100644 (file)
@@ -25,7 +25,7 @@
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-  from builtins import object
+    from builtins import object
 except : pass
 
 class ASSD(object):
@@ -33,6 +33,7 @@ class ASSD(object):
     """
        Classe de base pour definir des types de structures de donnees ASTER
        equivalent d un concept ASTER
+       Doit_on garder tout ce qui concerne jeveux ? les concepts ?
     """
     idracine = "SD"
 
@@ -66,7 +67,7 @@ class ASSD(object):
             self.order = self.parent.icmd
         else:
             self.order = 0
-        # attributs pour le Catalogue de Structure de Données Jeveux
+        # attributs pour le Catalogue de Structure de Données
         # "self.cata_sdj" est un attribut de classe
         self.ptr_class_sdj = None
         self.ptr_sdj = None
@@ -102,7 +103,7 @@ class ASSD(object):
         return self.etape[key]
 
     def setName(self, nom):
-        """Positionne le nom de self (et appelle sd_init)
+        """Positionne le nom de self
         """
         self.nom = nom
 
@@ -130,7 +131,8 @@ class ASSD(object):
                 self.nom = self.parent.getName(self) or self.id
             except:
                 self.nom = ""
-        if self.nom.find('sansnom') != -1 or self.nom == '':
+
+        if self.nom=='sansnom' or self.nom == '':
             self.nom = self.id
         return self.nom
 
@@ -214,9 +216,38 @@ class ASSD(object):
             val = self.jdc.parLot
         return val == 'OUI'
 
-    def rebuild_sd(self):
-        """Conserver uniquement pour la compatibilite avec le catalogue v10 dans eficas."""
 
+    def getEficasAttribut(self, attribut):
+        #print ('getEficasAttribut : ', self, attribut)
+        valeur=self.etape.getMocle(attribut)
+        try :
+            valeur=self.etape.getMocle(attribut)
+        except :
+            valeur = None
+        #print (valeur)
+        return valeur
+
+    def getEficasListOfAttributs(self,listeAttributs):
+        from .N_MCLIST import MCList
+        #print ('getEficasListOfAttributs pour', self,listeAttributs)
+        aTraiter=(self.etape,)
+        while len(listeAttributs) > 0 :
+            attribut=listeAttributs.pop(0)
+            nvListe=[]
+            for mc in aTraiter :
+                try :
+                    resultat=mc.getMocle(attribut)
+                    if isinstance(resultat,MCList):
+                        for rmc in resultat : nvListe.append(rmc)
+                    else : nvListe.append(resultat)
+                except : pass
+            aTraiter=nvListe
+        #print ('fin getEficasListOfAttributs ', nvListe)
+        return nvListe
+
+    def ajouteUnPere(self,pere):
+        # ne fait rien mais est appeler pour tous les types de ASSD
+        pass
 
 class assd(ASSD):
 
index 5af245c9611e42e78c5f9ca97c4491cc73b6bda7..aa565492e4476c474a5a520fec7f335d6e4040ec 100644 (file)
@@ -35,6 +35,7 @@ from .N_Exception import AsException
 from .N_types import forceList
 
 
+
 class BLOC(N_ENTITE.ENTITE):
 
     """
@@ -51,7 +52,7 @@ class BLOC(N_ENTITE.ENTITE):
     class_instance = N_MCBLOC.MCBLOC
     label = 'BLOC'
 
-    def __init__(self, fr="", docu="", regles=(), statut='f', condition=None,ang="",
+    def __init__(self, fr="", docu="", regles=(), statut='f', condition=None,ang="", nomXML=None,
                  **args):
         """
             Un bloc est caractérisé par les attributs suivants :
@@ -77,8 +78,10 @@ class BLOC(N_ENTITE.ENTITE):
             self.regles = (regles,)
         self.statut = statut
         self.condition = condition
+        self.nomXML = nomXML
         self.entites = args
         self.affecter_parente()
+        self.txtNomComplet = ''
 
     def __call__(self, val, nom, parent=None, dicoPyxbDeConstruction=None):
         """
@@ -99,14 +102,13 @@ class BLOC(N_ENTITE.ENTITE):
         self.checkCondition()
         self.verifCataRegles()
 
+
     def verifPresence(self, dict, globs):
         """
            Cette méthode vérifie si le dictionnaire passé en argument (dict)
            est susceptible de contenir un bloc de mots-clés conforme à la
            définition qu'il porte.
-
            Si la réponse est oui, la méthode retourne 1
-
            Si la réponse est non, la méthode retourne 0
 
            Le dictionnaire dict a pour clés les noms des mots-clés et pour valeurs
@@ -117,8 +119,11 @@ class BLOC(N_ENTITE.ENTITE):
         dico.update(dict)
         if self.condition != None:
             try:
+            #if 1 :
                 test = eval(self.condition, globs, dico)
                 return test
+            #try:
+            #   1
             except NameError:
                 # erreur 'normale' : un mot-clé n'est pas présent et on veut
                 # l'évaluer dans la condition
@@ -143,12 +148,15 @@ class BLOC(N_ENTITE.ENTITE):
                     '\n', "Erreur dans la condition : ", self.condition, ''.join(l))
         else:
             return 0
-    
+
+
+
+
     def longueurDsArbre(self):
-      longueur=0
-      for mc in self.mcListe : 
-         longueur = longueur + longueurDsArbre(mc)
-      return longueur
+        longueur=0
+        for mc in self.mcListe :
+            longueur = longueur + mc.longueurDsArbre()
+        return longueur
 
 def blocUtils():
     """Définit un ensemble de fonctions utilisables pour écrire les
@@ -165,4 +173,12 @@ def blocUtils():
         """Valide si aucune des valeurs de 'mcsimp' n'est dans 'valeurs'."""
         return not au_moins_un(mcsimp, valeurs)
 
+    def getEficasAttribut( nomUserASSD, nomAttr):
+        if nomUserASSD == None : return None
+        return ( nomUserASSD.getEficasAttribut(nomAttr))
+
+    def getEficasListOfAttributs( nomASSD, listeAttributs):
+        if nomASSD == None : return ()
+        return ( nomASSD.getEficasListOfAttributs(listeAttributs))
+
     return locals()
index 3569f9d204f1f5fa832af6d213390eeff465ad85..4f189595f8ab96273bdb2f762f62e6af8219dcf6 100644 (file)
@@ -38,7 +38,7 @@ class CO(ASSD) :
         #
         if self.parent:
             try:
-                self.parent.NommerSdprod(self, nom)
+                self.parent.nommerSDProd(self, nom)
             except AsException as e:
                 appel = N_utils.calleeWhere(niveau=2)
                 raise AsException(
index 92ebc6239fd98e86a5492ae1dfcc45afadf8482b..426caa461c3db00fbac61fa8dee3d776a62b15a8 100644 (file)
@@ -23,7 +23,7 @@
 
 from __future__ import absolute_import
 try:
-   from builtins import object
+    from builtins import object
 except : pass
 
 from .N_types import isInt, isFloat, isSequence
@@ -40,9 +40,9 @@ class Conversion(object):
     """Conversion de type.
     """
 
-    def __init__(self, name, typ):
+    def __init__(self, name, typeACreer):
         self.name = name
-        self.typ = typ
+        self.typeACreer = typeACreer
 
     def convert(self, obj):
         """Filtre liste
@@ -68,11 +68,11 @@ class Conversion(object):
 
 class TypeConversion(Conversion):
 
-    """Conversion de type
+    """Conversion de typeACreer
     """
 
-    def __init__(self, typ):
-        Conversion.__init__(self, 'type', typ)
+    def __init__(self, typeACreer):
+        Conversion.__init__(self, 'type', typeACreer)
 
 
 class IntConversion(TypeConversion):
@@ -103,14 +103,40 @@ class FloatConversion(TypeConversion):
         return o
 
 
+class UserASSDConversion(TypeConversion):
+    def __init__(self, classUser):
+        TypeConversion.__init__(self, classUser)
+
+    def function(self, o):
+        #print ('je convertis : ', o, 'en ', self.typeACreer )
+        #import traceback
+        #traceback.print_stack()
+        if o == None : return None
+        #print ('je cree UserASSDConversion', o, ' ', self.typeACreer)
+        nouvelObj=self.typeACreer(o)
+        return nouvelObj
+
+class UserASSDMultipleConversion(TypeConversion):
+    def __init__(self, classUser):
+        TypeConversion.__init__(self, classUser)
+
+    def function(self, o):
+        if o == None : return None
+        #print ('je cree dans UserASSDMultipleConversion', o, ' ', self.typeACreer)
+        nouvelObj=self.typeACreer(o)
+        return nouvelObj
+
 _convertI = IntConversion()
 _convertR = FloatConversion()
 
 
 def ConversionFactory(name, typ):
     if name == 'type':
-        if 'I' in typ:
-            return _convertI
-        elif 'R' in typ:
-            return _convertR
+        if 'I' in typ   : return _convertI
+        elif 'R' in typ : return _convertR
+    if name == 'UserASSD':
+        #print(typ)
+        return (UserASSDConversion(typ))
+    if name == 'UserASSDMultiple':
+        return (UserASSDMultipleConversion(typ))
     return None
index 858f29b4ff19b094f1cdf86865ecd293ba01ece2..4ce27e7da2eec9c0f25e6b85e552a748cd8959fa 100644 (file)
 
 from __future__ import absolute_import
 try :
-   from builtins import str
-   from builtins import object
+    from builtins import str
+    from builtins import object
 except :
-   pass
+    pass
 import six
 
 
index 4735edd3fad71c904a78be20972cf19037d1dfcb..bdb2535088102fcf015830ba8a0ba4de7b88e6cf 100644 (file)
@@ -1,6 +1,6 @@
 # coding=utf-8
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2017  EDF R&D                  WWW.CODE-ASTER.ORG
+# COPYRIGHT (C) 2007-2021  EDF R&D                  
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import str
-   from builtins import object
+    from builtins import str
+    from builtins import object
 except :
-   pass
+    pass
 import re
 from . import N_CR
 from . import N_OPS
@@ -67,6 +67,10 @@ class ENTITE(object):
             self.validators = self.factories['validator'](validators)
         else:
             self.validators = validators
+        #self.doitSenregistrerComme = None
+        self.txtNomComplet=''
+        self.redefinit=False
+        self.dejaPrepareDump=False
 
     def affecter_parente(self):
         """
@@ -76,6 +80,7 @@ class ENTITE(object):
             Il s'agit principalement des mots cles
         """
         for k, v in list(self.entites.items()):
+            #print( k,v)
             v.pere = self
             v.nom = k
 
@@ -90,7 +95,7 @@ class ENTITE(object):
         """
             Cette methode doit retourner un objet dérivé de la classe OBJECT
         """
-     
+
         raise NotImplementedError("La méthode __call__ de la classe %s doit être implémentée"
                                   % self.__class__.__name__)
 
@@ -258,21 +263,80 @@ class ENTITE(object):
 
     def checkPosition(self):
         """Vérifie l'attribut position."""
-        if self.position not in ('local', 'global', 'global_jdc'):
-            self.cr.fatal(_(u"L'attribut 'position' doit valoir 'local', 'global' "
+        if self.position not in ('local', 'global', 'global_jdc', 'inGetAttribut', 'reCalculeEtape'):
+            self.cr.fatal(_(u"L'attribut 'position' doit valoir 'local', 'global' ,'global_jdc', 'inGetAttribut', 'reCalculeEtape' "
                             u"ou 'global_jdc' : %r"), self.position)
 
-    def dumpXSD(self):
-        args = self.entites.copy()
-        mcs = set()
-        for nom, val in list(args.items()):
-            if val.label == 'SIMP':
-                mcs.add(nom)
-                # XXX
-                # if val.max != 1 and val.type == 'TXM':
-                    # print "#CMD", parent, nom
-            elif val.label == 'FACT':
-                liste=val.dumpXSD()
-                mcs.update(liste)
-        print (self.nom, mcs) 
-        return mcs
+    def nomComplet(self):
+        if self.txtNomComplet  != '' : return self.txtNomComplet
+        qui=self
+        while hasattr(qui, 'pere' ):
+            self.txtNomComplet+='_'+qui.nom
+            qui=qui.pere
+        self.txtNomComplet+='_'+qui.nom
+        return self.txtNomComplet
+
+    def geneaCompleteSousFormeDeListe(self):
+        geneaCompleteSousFormeDeListe=[]
+        qui=self
+        while hasattr(qui, 'pere' ):
+            geneaCompleteSousFormeDeListe.append(qui)
+            qui=qui.pere
+        geneaCompleteSousFormeDeListe.append(qui)
+        return geneaCompleteSousFormeDeListe
+
+    def addDefinitionMC(self,listeMCAvant,**args):
+        ouChercher=self
+        for mot in listeMCAvant:
+            try :
+                ouChercher=ouChercher.entites[mot]
+            except :
+                print ('impossible de trouver : ',mot,' ',listeMCAvant)
+        (nomMC,defMC)=args.items()[0]
+        defMC.pere = ouChercher
+        defMC.pere.propageRedefinit()
+        defMC.nom = nomMC
+        cata = CONTEXT.getCurrentCata()
+        #print (cata)
+        ouChercher.entites[nomMC]=defMC
+
+    def changeDefinitionMC(self,listeMCAvant,**args):
+        ouChercher=self
+        for mot in listeMCAvant:
+            try :
+                ouChercher=ouChercher.entites[mot]
+            except :
+                print ('impossible de trouver : ',mot,' ',listeMCAvant)
+        monSIMP=ouChercher
+        for (nomAttributDef,valeurAttributDef) in args.items():
+            if hasattr(monSIMP, nomAttributDef) :
+                setattr(monSIMP, nomAttributDef, valeurAttributDef)
+            else :
+                print ('pb avec ', nomAttributdef,valeurAttributMC)
+        monSIMP.propageRedefinit()
+
+    def propageRedefinit(self):
+    # a reflechir
+        self.redefinit=True
+        # PNPN il faut remonter a l etape
+
+
+
+    def makeObjetPourVerifSignature(self,*args,**kwargs):
+        etape = self.class_instance(oper=self, args=kwargs)
+        etape.MCBuild()
+        return etape
+
+
+    def dumpStructure(self,decal=0):
+        if self.label == 'SIMP':
+            texte = decal * '   ' + self.nom + ' \n'
+            return texte
+        texte = decal * '   ' + self.nom
+        if self.label == 'BLOC' : texte+= " " + self.condition
+        if self.label == 'OPER' : texte+ " " + str(self.sd_prod) + "\n"
+        texte+=' \n'
+        for c in self.entites.values():
+            texte+=c.dumpStructure(decal+1)
+        texte += decal * '   ' + 'fin pour   ' + self.nom + ' \n'
+        return texte
index a37709dc04daee48cf65f065d263aa7c0639ef55..1523bd4a4db06ec3ac0fdd391579a42510eecdb4 100644 (file)
@@ -27,9 +27,9 @@
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import str
+    from builtins import str
 except :
-   pass
+    pass
 import types
 import sys
 import os
@@ -71,10 +71,10 @@ class ETAPE(N_MCCOMPO.MCCOMPO):
         # faut il le faire ds MC_Build ?
         # traitement de Pyxb si Pyxb
         self.dicoPyxbDeConstruction = args.get('dicoPyxbDeConstruction', None)
-        if self.dicoPyxbDeConstruction : 
+        if self.dicoPyxbDeConstruction :
             del args['dicoPyxbDeConstruction']
             self.objPyxbDeConstruction=self.dicoPyxbDeConstruction['objEnPyxb']
-        else : 
+        else :
             self.objPyxbDeConstruction=None
         self.definition = oper
         self.reuse = reuse
@@ -86,10 +86,12 @@ class ETAPE(N_MCCOMPO.MCCOMPO):
         self.idracine = oper.label
         self.appel = N_utils.calleeWhere(niveau)
         self.mc_globaux = {}
+        self.doitEtreRecalculee = False
         self.sd = None
         self.actif = 1
         self.makeRegister()
         self.icmd = None
+        self.userASSDCrees=[]
 
     def makeRegister(self):
         """
@@ -97,7 +99,7 @@ class ETAPE(N_MCCOMPO.MCCOMPO):
         enregistrements necessaires
         surcharge dans Ihm
         """
-        print ('makeRegister de  ETAPE')
+        #print ('makeRegister de  ETAPE')
         if self.parent:
             self.jdc = self.parent.getJdcRoot()
             self.id = self.parent.register(self)
@@ -430,7 +432,7 @@ Causes possibles :
             new_sd = self.sd.__class__(etape=new_etape)
             new_etape.sd = new_sd
             if self.reuse == None:
-                new_etape.parent.NommerSdprod(new_sd, self.sd.nom)
+                new_etape.parent.nommerSDProd(new_sd, self.sd.nom)
             else:
                 new_sd.setName(self.sd.nom)
         new_etape.copyIntern(self)
@@ -441,7 +443,7 @@ Causes possibles :
            Reinitialise le nommage du concept de l'etape lors d'un changement de jdc
         """
         if self.sd and self.reuse == None:
-            self.parent.NommerSdprod(self.sd, self.sd.nom)
+            self.parent.nommerSDProd(self.sd, self.sd.nom)
 
     def isInclude(self):
         """Permet savoir si on a affaire a la commande INCLUDE
index 459c5b1732a3595f25e9cfa7228a9a37e56706fb..5ff4b37af6bbed8d0c171ab3821f45630b598d83 100644 (file)
@@ -1,6 +1,6 @@
 # coding=utf-8
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2017  EDF R&D                  WWW.CODE-ASTER.ORG
+# COPYRIGHT (C) 2007-2021  EDF R&D                  
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
index 153fee51050a34f4110badff9e1e27414fae466f..c5737a07940852de3c49eb46c083eb866c74d830 100644 (file)
@@ -54,7 +54,7 @@ class FACT(N_ENTITE.ENTITE):
     list_instance = N_MCLIST.MCList
     label = 'FACT'
 
-    def __init__(self, fr="", docu="", regles=(), statut='f', defaut=None,ang="",fenetreIhm=None, 
+    def __init__(self, fr="", docu="", regles=(), statut='f', defaut=None,ang="",fenetreIhm=None,
                  min=0, max=1, validators=None, **args):
         """
             Un mot-clé facteur est caractérisé par les attributs suivants :
@@ -133,28 +133,37 @@ class FACT(N_ENTITE.ENTITE):
             indice=0
             for v in val:
                 if type(v) == dict or isinstance(v, _F):
-                    objet = self.class_instance(
-                        nom=nom, definition=self, val=v, parent=parent,dicoPyxbDeConstruction=None)
-                        #nom=nom, definition=self, val=v, parent=parent,dicoPyxbDeConstruction=dicoPyxbDeConstruction[indice])
+                    if dicoPyxbDeConstruction :
+                        objet = self.class_instance(
+                           nom=nom, definition=self, val=v, parent=parent,dicoPyxbDeConstruction=dicoPyxbDeConstruction[indice])
+                    else :
+                        objet = self.class_instance(
+                           nom=nom, definition=self, val=v, parent=parent,dicoPyxbDeConstruction=None)
                     indice=indice+1
                     l.append(objet)
                 elif isinstance(v, self.class_instance):
-# if faut gerer ici --> on passe la avec une liste de concept ? 
+# if faut gerer ici --> on passe la avec une liste de concept ?
 # PNPN --> si pyxb
                     l.append(v)
                 else:
                     l.append(N_OBJECT.ErrorObj(self, v, parent, nom))
         elif type(val) == dict or isinstance(val, _F):
-            objet = self.class_instance(
-                nom=nom, definition=self, val=val, parent=parent,dicoPyxbDeConstruction=dicoPyxbDeConstruction)
+            if dicoPyxbDeConstruction :
+                objet = self.class_instance(
+                   nom=nom, definition=self, val=val, parent=parent,dicoPyxbDeConstruction=dicoPyxbDeConstruction)
+            else :
+                objet = self.class_instance(
+                nom=nom, definition=self, val=val, parent=parent,dicoPyxbDeConstruction=None)
             l.append(objet)
         elif isinstance(val, self.class_instance):
-# idem --> quand passe t on la 
+# idem --> quand passe t on la
             l.append(val)
         else:
             l.append(N_OBJECT.ErrorObj(self, val, parent, nom))
-        l.cata=l.jdc.cata
-        #l.buildObjPyxb(l)
+        # pour tenir compte du validateFonction
+        if l.jdc :
+            l.cata=l.jdc.cata
+            l.buildObjPyxb(l)
         return l
 
     def verifCata(self):
index 72fe2969c0dfef3aeabddd5f5b87aa4f5cdfd6cb..537959f54dad49fc825abf8ef5e8c0da1e17def1 100644 (file)
 from __future__ import division
 from __future__ import absolute_import
 try :
-   from builtins import zip
-   from builtins import str
+    from builtins import zip
+    from builtins import str
 except :
-   pass
+    pass
 from math import sin, cos, tan, asin, acos, atan2, atan, sinh, cosh, tanh
 from math import pi, exp, log, log10, sqrt
 
index 65170dad96a338ecd05ed3c41a4a944ba912ce89..5f0cec669c3b1257f887bab699625ca88aa0da90 100644 (file)
@@ -23,7 +23,9 @@
 """
 from __future__ import absolute_import
 from .N_ASSD import ASSD
-import six
+try:basestring
+except NameError: basestring = str
+
 
 
 class GEOM(ASSD):
@@ -58,7 +60,7 @@ class GEOM(ASSD):
         return self.nom
 
     def __convert__(cls, valeur):
-        if isinstance(valeur, (str, six.text_type)) and len(valeur.strip()) <= 8:
+        if isinstance(valeur, basestring) and len(valeur.strip()) <= 8:
             return valeur.strip()
         raise ValueError(
             _(u'On attend une chaine de caractères (de longueur <= 8).'))
index fd8b7d1e2464a596c065312703c633f36b4ac5d6..910c4797ae4064366bf899186be242b1ba0b966c 100644 (file)
@@ -26,8 +26,8 @@
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import str
-   from builtins import range
+    from builtins import str
+    from builtins import range
 except : pass
 import os
 import traceback
@@ -41,7 +41,6 @@ from . import N_CR
 from .N_Exception import AsException, InterruptParsingError
 from .N_ASSD import ASSD
 from .strfunc import getEncoding
-from six.moves import range
 
 
 MemoryErrorMsg = """MemoryError :
@@ -88,17 +87,14 @@ NONE = None
 
     def __init__(self, definition=None, procedure=None, cata=None,
                  cata_ord_dico=None, parent=None,
-                 nom='SansNom', appli=None, context_ini=None, **args):
+                 nom='SansNom', appliEficas=None, context_ini=None, **args):
         self.procedure = procedure
         self.definition = definition
         self.cata = cata
-        # PN pourquoi ?
-        #if type(self.cata) != tuple and cata != None:
-        #    self.cata = (self.cata,)
         self._build_reserved_kw_list()
         self.cata_ordonne_dico = cata_ord_dico
         self.nom = nom
-        self.appli = appli
+        self.appliEficas = appliEficas
         self.parent = parent
         self.context_ini = context_ini
         # On conserve les arguments supplementaires. Il est possible de passer
@@ -128,13 +124,15 @@ NONE = None
         # on met le jdc lui-meme dans le context global pour l'avoir sous
         # l'etiquette "jdc" dans le fichier de commandes
         self.g_context = {'jdc': self}
+        CONTEXT.unsetCurrentJdC()
+        CONTEXT.setCurrentJdC(self)
         # Dictionnaire pour stocker tous les concepts du JDC (acces rapide par
         # le nom)
-        self.sds_dict = {}
+        self.sdsDict = {}
         self.etapes = []
         self.index_etapes = {}
         self.mc_globaux = {}
-        self.current_context = {}
+        self.currentContext = {}
         self.condition_context = {}
         self.index_etape_courante = 0
         self.UserError = "UserError"
@@ -149,9 +147,6 @@ NONE = None
            compte-rendu self.cr
         """
         try:
-            if self.appli != None:
-                self.appli.afficheInfos(
-                    'Compilation du fichier de commandes en cours ...')
             # Python 2.7 compile function does not accept unicode filename, so we encode it
             # with the current locale encoding in order to have a correct
             # traceback
@@ -188,6 +183,7 @@ Causes possibles :
            Cette methode execute le jeu de commandes compile dans le contexte
            self.g_context de l'objet JDC
         """
+
         CONTEXT.setCurrentStep(self)
         # Le module nommage utilise le module linecache pour acceder
         # au source des commandes du jeu de commandes.
@@ -203,10 +199,10 @@ Causes possibles :
                     init2 = "from " + obj_cata.__name__ + " import *"
                     exec(init2, self.g_context)
                 else :
-                   # ici on a un catalogue en grammaire Eficas XML
-                   # il faut ajouter ce qu on a construit au contexte
-                   for (k,v) in obj_cata.contexteXML.items() :
-                       self.g_context[k]=v
+                    # ici on a un catalogue en grammaire Eficas XML
+                    # il faut ajouter ce qu on a construit au contexte
+                    for (k,v) in obj_cata.contexteXML.items() :
+                        self.g_context[k]=v
             # Initialisation du contexte global pour l'evaluation des conditions de BLOC
             # On utilise une copie de l'initialisation du contexte du jdc
             self.condition_context = self.g_context.copy()
@@ -219,11 +215,12 @@ Causes possibles :
                 # Update du dictionnaire des concepts
                 for sdnom, sd in list(self.context_ini.items()):
                     if isinstance(sd, ASSD):
-                        self.sds_dict[sdnom] = sd
+                        self.sdsDict[sdnom] = sd
+
+            #if self.appliEficas != None:
+            #    self.appliEficas.afficheInfos(
+            #        'Interpretation du fichier de commandes en cours ...')
 
-            if self.appli != None:
-                self.appli.afficheInfos(
-                    'Interpretation du fichier de commandes en cours ...')
             # On sauve le contexte pour garder la memoire des constantes
             # En mode edition (EFICAS) ou lors des verifications le contexte
             # est recalcule
@@ -232,8 +229,6 @@ Causes possibles :
             exec(self.proc_compile, self.g_context)
 
             CONTEXT.unsetCurrentStep()
-            if self.appli != None:
-                self.appli.afficheInfos('')
 
         except InterruptParsingError:
             # interrupt the command file parsing used by FIN to ignore the end
@@ -292,6 +287,10 @@ Causes possibles :
                 "erreur non prevue et non traitee prevenir la maintenance " + '\n' + ''.join(l))
             del exc_typ, exc_val, exc_fr
             CONTEXT.unsetCurrentStep()
+        idx=0
+        for e in self.etapes:
+            self.enregistreEtapePyxb(e,idx)
+            idx=idx+1
 
     def afficheFinExec(self):
         """
@@ -368,17 +367,17 @@ Causes possibles :
         if sd != None and (etape.definition.reentrant == 'n' or etape.reuse is None):
             # ATTENTION : On ne nomme la SD que dans le cas de non reutilisation
             # d un concept. Commande non reentrante ou reuse absent.
-            self.NommerSdprod(sd, nomsd)
+            self.nommerSDProd(sd, nomsd)
         return sd
 
-    def NommerSdprod(self, sd, sdnom, restrict='non'):
+    def nommerSDProd(self, sd, sdnom, restrict='non'):
         """
             Nomme la SD apres avoir verifie que le nommage est possible : nom
             non utilise
             Si le nom est deja utilise, leve une exception
             Met le concept cree dans le concept global g_context
         """
-        o = self.sds_dict.get(sdnom, None)
+        o = self.sdsDict.get(sdnom, None)
         if isinstance(o, ASSD):
             raise AsException("Nom de concept deja defini : %s" % sdnom)
         if sdnom in self._reserved_kw:
@@ -386,7 +385,7 @@ Causes possibles :
                 "Nom de concept invalide. '%s' est un mot-cle reserve." % sdnom)
 
         # Ajoute a la creation (appel de regSD).
-        self.sds_dict[sdnom] = sd
+        self.sdsDict[sdnom] = sd
         sd.setName(sdnom)
 
         # En plus si restrict vaut 'non', on insere le concept dans le contexte
@@ -394,6 +393,14 @@ Causes possibles :
         if restrict == 'non':
             self.g_context[sdnom] = sd
 
+    def regUserSD(self,sd):
+    # utilisee pour creer les references
+    # se contente d appeler la methode equivalente sur le jdc
+        id=self.regSD(sd)
+        self.nommerSDProd(sd,sd.nom)
+        return id
+
+
     def regSD(self, sd):
         """
             Methode appelee dans l __init__ d un ASSD lors de sa creation
@@ -435,32 +442,31 @@ Causes possibles :
             Retourne le nom du fichier correspondant a un numero d'unite
             logique (entier) ainsi que le source contenu dans le fichier
         """
-        if self.appli:
-            # Si le JDC est relie a une application maitre, on delègue la
+        #if self.appliEficas:
+            # Si le JDC est relie a une appliEficascation maitre, on delègue la
             # recherche
-            return self.appli.getFile(unite, fic_origine)
-        else:
-            if unite != None:
-                if os.path.exists("fort." + str(unite)):
-                    fname = "fort." + str(unite)
-            if fname == None:
-                raise AsException("Impossible de trouver le fichier correspondant"
-                                  " a l unite %s" % unite)
-            if not os.path.exists(fname):
-                raise AsException("%s n'est pas un fichier existant" % fname)
-            fproc = open(fname, 'r')
-            text = fproc.read()
-            fproc.close()
-            text = text.replace('\r\n', '\n')
-            linecache.cache[fname] = 0, 0, text.split('\n'), fname
-            return fname, text
+        #    return self.appliEficas.getFile(unite, fic_origine)
+        #else:
+        #    if unite != None:
+        #        if os.path.exists("fort." + str(unite)):
+        #            fname = "fort." + str(unite)
+        if fname == None:
+            raise AsException("Impossible de trouver le fichier correspondant")
+        if not os.path.exists(fname):
+            raise AsException(fname + " n'est pas un fichier existant" )
+        fproc = open(fname, 'r')
+        text = fproc.read()
+        fproc.close()
+        text = text.replace('\r\n', '\n')
+        linecache.cache[fname] = 0, 0, text.split('\n'), fname
+        return fname, text
 
     def set_parLot(self, parLot, user_value=False):
         """
         Met le mode de traitement a PAR LOT
         ou a COMMANDE par COMMANDE
         en fonction de la valeur du mot cle PAR_LOT et
-        du contexte : application maitre ou pas
+        du contexte : appliEficascation maitre ou pas
 
         En PAR_LOT='NON', il n'y a pas d'ambiguite.
         d'analyse et juste avant la phase d'execution.
@@ -469,11 +475,11 @@ Causes possibles :
         """
         if user_value:
             self.parLot_user = parLot
-        if self.appli == None:
-            # Pas d application maitre
+        if self.appliEficas == None:
+            # Pas d appliEficascation maitre
             self.parLot = parLot
         else:
-            # Avec application maitre
+            # Avec appliEficascation maitre
             self.parLot = 'OUI'
 
     def accept(self, visitor):
@@ -522,35 +528,35 @@ Causes possibles :
         # courante pendant le processus de construction des etapes.
         # Si on insère des commandes (par ex, dans EFICAS), il faut prealablement
         # remettre ce pointeur a 0
-        # self.current_context.items() if isinstance(v, ASSD)])
-        if self.parLot_user == 'NON':
-            d = self.current_context = self.g_context.copy()
-            if etape is None:
-                return d
+        # self.currentContext.items() if isinstance(v, ASSD)])
+        #if self.parLot_user == 'NON':
+        #    d = self.currentContext = self.g_context.copy()
+        #    if etape is None:
+        #        return d
             # retirer les sd produites par 'etape'
-            sd_names = [sd.nom for sd in etape.getCreated_sd()]
-            for nom in sd_names:
-                try:
-                    del d[nom]
-                except KeyError:
-                    from warnings import warn
-                    warn(
-                        "concept '%s' absent du contexte de %s" % (
-                            nom, self.nom),
-                        RuntimeWarning, stacklevel=2)
-            return d
+        #    sd_names = [sd.nom for sd in etape.getCreated_sd()]
+        #    for nom in sd_names:
+        #        try:
+        #            del d[nom]
+        #        except KeyError:
+        #            from warnings import warn
+        #            warn(
+        #                "concept '%s' absent du contexte de %s" % (
+        #                    nom, self.nom),
+        #                RuntimeWarning, stacklevel=2)
+        #    return d
         if etape:
             index_etape = self.index_etapes[etape]
         else:
             index_etape = len(self.etapes)
         if index_etape >= self.index_etape_courante:
             # On calcule le contexte en partant du contexte existant
-            d = self.current_context
+            d = self.currentContext
             if self.index_etape_courante == 0 and self.context_ini:
                 d.update(self.context_ini)
             liste_etapes = self.etapes[self.index_etape_courante:index_etape]
         else:
-            d = self.current_context = {}
+            d = self.currentContext = {}
             if self.context_ini:
                 d.update(self.context_ini)
             liste_etapes = self.etapes
@@ -603,13 +609,13 @@ Causes possibles :
         co.executed = 1
         return co
 
-    def del_concept(self, nomsd):
+    def delConcept(self, nomsd):
         """
-           Methode pour supprimer la reference d'un concept dans le sds_dict.
+           Methode pour supprimer la reference d'un concept dans le sdsDict.
            Ne detruire pas le concept (different de supprime).
         """
         try:
-            del self.sds_dict[nomsd.strip()]
+            del self.sdsDict[nomsd.strip()]
         except:
             pass
 
@@ -640,6 +646,17 @@ Causes possibles :
             print((' `- JDC sdAccessible : PAR_LOT =', self.parLot))
         return self.parLot == 'NON'
 
+    def getEtapesByName(self,name):
+        listeDEtapes=[]
+        for e in self.etapes :
+            if e.nom  == name : listeDEtapes.append(e) 
+        return listeDEtapes
+
+    def getEtapeByConceptName(self,conceptName):
+        for e in self.etapes :
+            if hasattr(e,'sdnom') and e.sdnom  == conceptName :  return e 
+
+
     def _build_reserved_kw_list(self):
         """Construit la liste des mots-cles reserves (interdits pour le
         nommage des concepts)."""
@@ -647,7 +664,9 @@ Causes possibles :
         #for cat in self.cata:
         cat=self.cata
         self._reserved_kw.update(
-                [kw for kw in dir(cat) if len(kw) <= 8 and kw == kw.upper()])
+                #PN 14  2020 [kw for kw in dir(cat) if len(kw) <= 8 and kw == kw.upper()])
+                [kw for kw in dir(cat) ])
         self._reserved_kw.difference_update(
             ['OPER', 'MACRO', 'BLOC', 'SIMP', 'FACT', 'FORM',
              'GEOM', 'MCSIMP', 'MCFACT'])
+
index 10fafb7528baaf5a86dede7b1ae81f311fcb2ff3..3f6fcafa7e66c5513cbbc354a21fb61d3a2ee7ed 100644 (file)
@@ -48,10 +48,14 @@ class JDC_CATA(N_ENTITE.ENTITE):
     class_instance = N_JDC.JDC
     label = 'JDC'
 
-    def __init__(self, code='', execmodul=None, regles=(), niveaux=(), **args):
+    def __init__(self, code='', execmodul=None, regles=(), niveaux=(),fichierSource=None, fr='', ang ='', **args):
         """
+        on se laisse la possibilite d initier fichierSource avec autre chose que le nom du fichier
+        au cas ou ... pour pouvoir changer le nom du 'sous code' implementer (cf readercata)
         """
         self.code = code
+        self.fr = fr
+        self.ang = ang
         self.execmodul = execmodul
         if type(regles) == tuple:
             self.regles = regles
@@ -63,6 +67,7 @@ class JDC_CATA(N_ENTITE.ENTITE):
         self.d_niveaux = {}
         self.l_niveaux = niveaux
         self.commandes = []
+        self.fichierSource = fichierSource
         for niveau in niveaux:
             self.d_niveaux[niveau.nom] = niveau
         # On change d'objet catalogue. Il faut d'abord mettre le catalogue
@@ -70,8 +75,16 @@ class JDC_CATA(N_ENTITE.ENTITE):
         CONTEXT.unsetCurrentCata()
         CONTEXT.setCurrentCata(self)
         self.fenetreIhm=None
+        self.definitUserASSD = False
+        self.definitUserASSDMultiple = False
         self.dictTypesXSD={}
+        self.dictTypesXSDJumeaux={}
+        self.dictTypesASSDorUserASSDCrees={}
+        self.dictTypesASSDorUserASSDUtilises={}
+        self.listeUserASSDDumpes=set()
+        self.listeTypeTXMAvecBlancs=set()
+
+
     def __call__(self, procedure=None, cata=None, cata_ord_dico=None,
                  nom='SansNom', parent=None, **args):
         """
@@ -134,3 +147,13 @@ class JDC_CATA(N_ENTITE.ENTITE):
              ou None s'il n'existe pas
         """
         return self.d_niveaux.get(nom_niveau, None)
+
+
+    def dumpStructure(self):
+        texte=""
+        for c in self.commandes:
+            if not(c.label != "OPER") and not(c.label != 'PROC')  : continue
+            if c.label == "OPER"  : texte+=c.nom + " "+ str(c.sd_prod) + "\n"
+            if c.label == "PROC"  : texte+=c.nom + " \n"
+            texte+=c.dumpStructure()
+        return texte
index d20d7f4b6b9e8fb2e351de798f55dd98b1942d04..c15a70e615678a54382c03551aa100ad4720c83b 100644 (file)
@@ -87,7 +87,7 @@ class MACRO(N_ENTITE.ENTITE):
     nommage = nommage
 
     def __init__(
-        self, nom, op, sd_prod=None, reentrant='n', repetable='o', fr="",ang="",fenetreIhm=None,
+        self, nom, op=None, sd_prod=None, reentrant='n', repetable='o', fr="",ang="",fenetreIhm=None,
             docu="", regles=(), op_init=None, niveau = None, fichier_ini=0, UIinfo=None, **args):
         """
            Méthode d'initialisation de l'objet MACRO. Les arguments sont utilisés pour initialiser
index 0c4c7a6f332e02732b12977cb8f0c02b68795e13..4da07525abfcdeff913718865481400a71a3a6bf 100644 (file)
@@ -27,8 +27,7 @@
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import str
-   from builtins import range
+    from builtins import str
 except : pass
 import types
 import sys
@@ -43,7 +42,6 @@ from . import N_utils
 from .N_utils import AsType
 from .N_CO import CO
 from .N_ASSD import ASSD
-from six.moves import range
 
 
 class MACRO_ETAPE(N_ETAPE.ETAPE):
@@ -69,7 +67,7 @@ class MACRO_ETAPE(N_ETAPE.ETAPE):
         N_ETAPE.ETAPE.__init__(self, oper, reuse, args, niveau=5)
         self.g_context = {}
         # Contexte courant
-        self.current_context = {}
+        self.currentContext = {}
         self.macro_const_context = {}
         self.index_etape_courante = 0
         self.etapes = []
@@ -249,8 +247,8 @@ Causes possibles :
         """
         # L'etape courante pour laquelle le contexte a ete calcule est
         # memorisee dans self.index_etape_courante
-        # self.current_context.items() if isinstance(v, ASSD)])
-        d = self.current_context = self.g_context.copy()
+        # self.currentContext.items() if isinstance(v, ASSD)])
+        d = self.currentContext = self.g_context.copy()
         if etape is None:
             return d
         # retirer les sd produites par 'etape'
@@ -503,10 +501,10 @@ Le type demande (%s) et le type du concept (%s) devraient etre derives""" % (t,
             # On est dans le cas de la creation d'un nouveau concept
             sd = etape.getSdProd()
             if sd != None:
-                self.NommerSdprod(sd, nomsd)
+                self.nommerSDProd(sd, nomsd)
         return sd
 
-    def NommerSdprod(self, sd, sdnom, restrict='non'):
+    def nommerSDProd(self, sd, sdnom, restrict='non'):
         """
           Cette methode est appelee par les etapes internes de la macro.
           La macro appelle le JDC pour valider le nommage.
@@ -552,14 +550,14 @@ Le type demande (%s) et le type du concept (%s) devraient etre derives""" % (t,
         if restrict == 'non':
             # On demande le nommage au parent mais sans ajout du concept dans le contexte du parent
             # car on va l'ajouter dans le contexte de la macro
-            self.parent.NommerSdprod(sd, sdnom, restrict='oui')
+            self.parent.nommerSDProd(sd, sdnom, restrict='oui')
             # On ajoute dans le contexte de la macro les concepts nommes
             # Ceci est indispensable pour les CO (macro) dans un INCLUDE
             self.g_context[sdnom] = sd
         else:
             # La demande de nommage vient probablement d'une macro qui a mis
             # le concept dans son contexte. On ne traite plus que le nommage (restrict="oui")
-            self.parent.NommerSdprod(sd, sdnom, restrict='oui')
+            self.parent.nommerSDProd(sd, sdnom, restrict='oui')
 
     def deleteConceptAfterEtape(self, etape, sd):
         """
@@ -666,7 +664,7 @@ Le type demande (%s) et le type du concept (%s) devraient etre derives""" % (t,
            l'etape courante.
         """
         ctx = {}
-        # update car par ricochet on modifierait jdc.current_context
+        # update car par ricochet on modifierait jdc.currentContext
         ctx.update(self.parent.getContexteCourant(self))
         # on peut mettre None car toujours en PAR_LOT='NON', donc la dernière
         ctx.update(self.getContexteAvant(None))
@@ -719,7 +717,7 @@ Le type demande (%s) et le type du concept (%s) devraient etre derives""" % (t,
                 if etp.reuse:
                     new_sd.setName(etp.sd.nom)
                 else:
-                    self.NommerSdprod(new_sd, etp.sd.nom)
+                    self.nommerSDProd(new_sd, etp.sd.nom)
             new_etp.copyIntern(etp)
             self.etapes.append(new_etp)
             self.index_etapes[new_etp] = len(self.etapes) - 1
@@ -729,9 +727,9 @@ Le type demande (%s) et le type du concept (%s) devraient etre derives""" % (t,
            Reinitialise l'etape avec un nouveau jdc parent new_jdc
         """
         if self.sd and self.reuse == None:
-            self.parent.NommerSdprod(self.sd, self.sd.nom)
+            self.parent.nommerSDProd(self.sd, self.sd.nom)
         for concept in self.sdprods:
-            self.parent.NommerSdprod(concept, concept.nom)
+            self.parent.nommerSDProd(concept, concept.nom)
 
     def reparent(self, parent):
         """
index 007eac773095ea5f9c83387fed05c994c9434cce..212d7e2611236f37ffda79b7e6acb5cdb18b84b1 100644 (file)
@@ -64,6 +64,7 @@ class MCBLOC(N_MCCOMPO.MCCOMPO):
         self.valeur = val
         self.objPyxbDeConstruction=None
         self.dicoPyxbDeConstruction=dicoPyxbDeConstruction
+        self.estIdentifiePar=None
         if parent:
             self.jdc = self.parent.jdc
             self.niveau = self.parent.niveau
index b9ee58e66ad7694757c1b9349089d10c001b696b..934ba63696a79fb50bb79d7302008fecc2d56c86 100644 (file)
@@ -41,11 +41,10 @@ class MCCOMPO(N_OBJECT.OBJECT):
             Construit la liste des sous-entites du MCCOMPO
             à partir du dictionnaire des arguments (valeur)
         """
-        
+
         #import traceback
         #traceback.print_stack()
         #print(("MCCOMPO.buildMc _____________________________________", self.nom))
-        #print (self.dicoPyxbDeConstruction)
         if CONTEXT.debug:
             print(("MCCOMPO.buildMc ", self.nom))
         # Dans la phase de reconstruction args peut contenir des mots-clés
@@ -54,9 +53,10 @@ class MCCOMPO(N_OBJECT.OBJECT):
         # mais qui sont malgré tout des descendants de l'objet courant
         # (petits-fils, ...)
         args = self.valeur
+        #print ('MCCOMPO___________________', self.valeur)
         if args == None: args = {}
         mcListe = []
-        
+
 
         # On recopie le dictionnaire des arguments pour protéger l'original des
         # delete (del args[k])
@@ -68,8 +68,6 @@ class MCCOMPO(N_OBJECT.OBJECT):
         # 2- les entités non présentes dans les arguments, présentes dans la définition avec un défaut
         # Phase 1.1 : on traite d'abord les SIMP pour enregistrer les mots cles
         # globaux
-        # PN ligne suivante uniquement pour commodite
-        # a detruire quand cela fonctionne recursivement
         if not hasattr(self, 'dicoPyxbDeConstruction') : self.dicoPyxbDeConstruction = {}
         for k, v in list(self.definition.entites.items()):
             if v.label != 'SIMP':
@@ -80,11 +78,12 @@ class MCCOMPO(N_OBJECT.OBJECT):
                 # si une valeur existe dans args ou est obligatoire (generique si toutes les
                 # entites ont l attribut statut )
                 #
-                if self.dicoPyxbDeConstruction and  k in self.dicoPyxbDeConstruction : 
-                   objPyxbDeConstruction=self.dicoPyxbDeConstruction[k]
-                   del self.dicoPyxbDeConstruction[k]
+                if self.dicoPyxbDeConstruction and  k in self.dicoPyxbDeConstruction :
+                    objPyxbDeConstruction=self.dicoPyxbDeConstruction[k]
+                    del self.dicoPyxbDeConstruction[k]
                 else :
-                   objPyxbDeConstruction=None
+                    objPyxbDeConstruction=None
+                #print (args.get(k, None))
                 objet = v(val=args.get(k, None), nom=k, parent=self,objPyxbDeConstruction=objPyxbDeConstruction)
                 mcListe.append(objet)
                 # Si l'objet a une position globale on l'ajoute aux listes
@@ -92,27 +91,30 @@ class MCCOMPO(N_OBJECT.OBJECT):
                 if hasattr(objet.definition, 'position'):
                     if objet.definition.position == 'global':
                         self.append_mc_global(objet)
+                    if objet.definition.position == 'reCalculeEtape':
+                        #print ('-------------------------- rencontre reCalculeEtape: ', objet.nom)
+                        self.append_mc_global_avecRecalcule(objet)
                     elif objet.definition.position == 'global_jdc':
                         self.append_mc_global_jdc(objet)
             if k in args:
                 del args[k]
 
         # Phase 1.2 : on traite les autres entites que SIMP
-        # (FACT en fait car un BLOC ne peut avoir le meme nom qu'un mot-clef)
+        # FACT ou listeDeFAct en fait car un BLOC ne peut etre present dans les args
         for k, v in list(self.definition.entites.items()):
-            if v.label == 'SIMP':
-                continue
+            if v.label == 'SIMP': continue
             if k in args or v.statut == 'o':
+                #print ('construit', k)
                 #
                 # Creation par appel de la methode __call__ de la definition de la sous entite k de self
                 # si une valeur existe dans args ou est obligatoire (generique si toutes les
                 # entites ont l attribut statut )
                 #
-                if self.dicoPyxbDeConstruction and  k in self.dicoPyxbDeConstruction : 
-                   dicoPyxbDeConstruction=self.dicoPyxbDeConstruction[k]
-                   del self.dicoPyxbDeConstruction[k]
+                if self.dicoPyxbDeConstruction and  k in self.dicoPyxbDeConstruction :
+                    dicoPyxbDeConstruction=self.dicoPyxbDeConstruction[k]
+                    del self.dicoPyxbDeConstruction[k]
                 else :
-                   dicoPyxbDeConstruction=None
+                    dicoPyxbDeConstruction=None
                 objet = v(val=args.get(k, None), nom=k, parent=self,dicoPyxbDeConstruction=dicoPyxbDeConstruction)
                 mcListe.append(objet)
             if k in args:
@@ -124,17 +126,14 @@ class MCCOMPO(N_OBJECT.OBJECT):
         # args ne contient plus que des mots-clés qui n'ont pas été attribués car ils sont
         #      à attribuer à des blocs du niveau inférieur ou bien sont des mots-clés erronés
         for k, v in list(self.definition.entites.items()):
-            if v.label != 'BLOC':
-                continue
-            # condition and a or b  : Equivalent de l'expression :  condition ?
-            # a : b du langage C
-
+            if v.label != 'BLOC': continue
             #PNPN on recalcule dico_valeurs dans le for
             # pour les globaux imbriques (exple Telemac Advection)
             # avant le calcul etait avant le for
             dico_valeurs = self.creeDictCondition(mcListe, condition=1)
             globs = self.jdc and self.jdc.condition_context or {}
             if v.verifPresence(dico_valeurs, globs):
+                #print ('appel construit bloc', k, 'avec', args, 'a partir de', self.nom )
                     # Si le bloc existe :
                     #        1- on le construit
                     #        2- on l'ajoute à mcListe
@@ -143,24 +142,78 @@ class MCCOMPO(N_OBJECT.OBJECT):
                 bloc = v(nom=k, val=args, parent=self,dicoPyxbDeConstruction=self.dicoPyxbDeConstruction)
                 mcListe.append(bloc)
                 args = bloc.reste_val
+                #print ('les args deviennent ', args)
                 # On ne recalcule pas le contexte car on ne tient pas compte des blocs
                 # pour évaluer les conditions de présence des blocs
                 # dico_valeurs = self.creeDictValeurs(mcListe)
 
         # On conserve les arguments superflus dans l'attribut reste_val
+        # les reste_val des blocs  vont contenir trop de MC
+        # car ils sont appeles avec tous les MC de leur niveau qui n ont pas ete consommes
+        # et le reste_val n est pas remis a jour
+        # est-ce un pb ? a priori non
         self.reste_val = args
+        #print ('self.reste_val de ', self.nom, self.reste_val)
         # On ordonne la liste ainsi créée suivant l'ordre du catalogue
         # (utile seulement pour IHM graphique)
         mcListe = self.ordonneListe(mcListe)
         # on retourne la liste ainsi construite
         if self.jdc  : self.cata=self.jdc.cata
         else : self.cata = None
-        #self.buildObjPyxb(mcListe)
-        #else : print ('pas de construction pour ', self.nom, self.objPyxbDeConstruction)
-        #print ('buildObjPyxb : ' , self.nom)
-        #print(("MCCOMPO.buildMc fin_____________________________________", self.nom))
+        self.buildObjPyxb(mcListe)
+        #print ('______________________________________ fin ', self.nom)
         return mcListe
 
+    def buildMcApresGlobalEnSuppression(self):
+        blocsDejaLa=[]
+        for mc in self.mcListe :
+            if mc.nature == 'MCBLOC' : blocsDejaLa.append(mc)
+        for mc in  blocsDejaLa :
+            dico_valeurs = self.creeDictCondition(self.mcListe, condition=1)
+            globs = self.jdc and self.jdc.condition_context or {}
+            defBloc = mc.definition
+            if not (defBloc.verifPresence(dico_valeurs, globs)):
+                self.suppEntite(mc)
+
+
+    def reConstruitResteVal(self):
+    # normal que apres buildMcApresGlobalEnCreation les reste_val ne soient pas corrects
+        for mc in self.mcListe :
+            if mc.nom in self.reste_val :
+                del self.reste_val[mc.nom]
+            if mc.nature == 'MCBLOC' :
+                ancetre=mc.parent
+                for mcFDuMc in mc.mcListe :
+                    while ancetre.nature == 'MCBLOC' :
+                        ancetre=ancetre.parent
+                        if mcFDuMc.nom in ancetre.reste_val : del ancetre.reste_val[mcFDuMc.nom]
+            if mc.nature == 'MCSIMP' : continue
+            if mc.nature == 'MCList' :
+                for mcObj in mc.data :
+                    mcObj.reConstruitResteVal()
+            else :
+                mc.reConstruitResteVal()
+
+
+    def buildMcApresGlobalEnCreation(self):
+        nouveau_args = self.reste_val
+        blocsDejaLa=[]
+        for mc in self.mcListe :
+            if mc.nature == 'MCBLOC' : blocsDejaLa.append(mc.nom)
+        for k, v in list(self.definition.entites.items()):
+            if v.label != 'BLOC': continue
+            if k in blocsDejaLa : continue
+            dico_valeurs = self.creeDictCondition(self.mcListe, condition=1)
+            globs = self.jdc and self.jdc.condition_context or {}
+            if v.verifPresence(dico_valeurs, globs):
+                bloc = v(nom=k, val=nouveau_args, parent=self,dicoPyxbDeConstruction=self.dicoPyxbDeConstruction)
+                if bloc :
+                    self.mcListe.append(bloc)
+                    bloc.addObjPyxb(self.chercheIndiceDsLeContenu(bloc))
+                    nouveau_args = self.reste_val
+                    self.reste_val = bloc.reste_val
+
+
     def ordonneListe(self, mcListe):
         """
            Ordonne la liste suivant l'ordre du catalogue.
@@ -289,18 +342,19 @@ class MCCOMPO(N_OBJECT.OBJECT):
             Cette méthode interroge la définition de self et retourne la liste des mots-clés fils
             directs de self de type 'global'.
             position='global' n'est donc possible (et n'a de sens) qu'au plus haut niveau.
+            du coup ici on ajoute les globaux de l etape qui sont dans mc_recalculeEtape
         """
+        #print ('je passe par ici', self.nom)
         dico = {}
         etape = self.getEtape()
         if not etape:
             return {}
         for k, v in list(etape.definition.entites.items()):
-            if v.label != 'SIMP':
-                continue
-            if v.position != 'global':
-                continue
-            if v.statut == 'o':
-                continue
+            if v.label != 'SIMP': continue
+            if v.position == 'local': continue
+            if v.position == 'inGetAttribut': continue
+            if v.position == 'reCalculeEtape': continue
+            if v.statut == 'o': continue
             obj = v(val=None, nom=k, parent=etape)
             dico[k] = obj.getValeur()
         return dico
@@ -385,6 +439,35 @@ class MCCOMPO(N_OBJECT.OBJECT):
 
         return None
 
+    def getChildOrChildInBloc(self, name, restreint='non'):
+    # cherche dans les fils et les fils des blocs
+    # tout est base sur le fait que deux freres ne peuvent pas avoir le meme nom
+    # dans des blocs non exclusifs, sinon le .comm n est pas du python valide
+        for v in self.mcListe:
+            if v.nom == name: return v
+        if restreint == 'non':
+            try:
+                entite = self.definition.entites[name]
+                if entite.label == 'SIMP' or (entite.label == 'FACT' and entite.statut in ('c', 'd')):
+                    return entite(None, name, None)
+            except:
+                pass
+        for v in self.mcListe:
+            if v.nature == 'MCBLOC' :
+                petitFils=v.getChildOrChildInBloc(name, restreint) 
+                if petitFils !=None :  return petitFils
+        return None
+
+    def append_mc_global_avecRecalcule(self, mc):
+        etape = self.getEtape()
+        if etape:
+            nom = mc.nom
+            if not(nom in etape.mc_globaux) :
+                etape.doitEtreRecalculee = True
+            etape.mc_globaux[nom] = mc
+            #print ('ajout de nom', mc.nom, 'ds les mc_globaux de', etape.nom)
+
+
     def append_mc_global(self, mc):
         """
            Ajoute le mot-clé mc à la liste des mots-clés globaux de l'étape
@@ -404,11 +487,9 @@ class MCCOMPO(N_OBJECT.OBJECT):
     def copy(self):
         """ Retourne une copie de self """
         objet = self.makeobjet()
-        # FR : attention !!! avec makeobjet, objet a le meme parent que self
+        # attention !!! avec makeobjet, objet a le meme parent que self
         # ce qui n'est pas du tout bon dans le cas d'une copie !!!!!!!
-        # FR : peut-on passer par là autrement que dans le cas d'une copie ???
-        # FR --> je suppose que non
-        # XXX CCAR : le pb c'est qu'on vérifie ensuite quel parent avait l'objet
+        # le pb c'est qu'on vérifie ensuite quel parent avait l'objet
         # Il me semble preferable de changer le parent a la fin quand la copie
         # est acceptee
         objet.valeur = copy(self.valeur)
@@ -482,6 +563,22 @@ class MCCOMPO(N_OBJECT.OBJECT):
         return l
 
 
+    #def getSdCreeParObjetAvecFiltre(self,objetAssdMultiple):
+    # est-ce que si on est bloc, il faut passer à parent ?
+    # ou prevoir une autre fonction qui tienne compte de cela
+    # ou prevoir un xpath
+    #   classeAChercher = objetAssdMultiple.definition.type
+    #   filtre  = objetAssdMultiple.definition.filtre
+    #   print ('getSdCreeParObjetAvecFiltre', classeAChercher, filtre)
+    #   dicoValeurs = self.creeDictCondition(self.mcListe, condition=1)
+    #   l=[]
+    #   for k,v in self.jdc.sdsDict.items():
+    #      if (isinstance(v, classeAChercher)) :
+    #         if v.executeExpression(filtre,dicoValeurs) : l.append(k)
+    #   return l
+
+
+
 def intersection_vide(dict1, dict2):
     """Verification qu'il n'y a pas de clé commune entre 'dict1' et 'dict2'."""
     sk1 = set(dict1)
index d494267305bd8d2a3c11ba49e9370bd27ee002c9..a1fc0c722b2c66c2384a0a25a9919e7253459b5e 100644 (file)
@@ -42,21 +42,21 @@ class MCFACT(N_MCCOMPO.MCCOMPO):
             - nom
             - parent
         """
-        #print ('MCFACT', self, val, definition, nom, parent, objPyxbDeConstruction)
-        import traceback
+        #print ('MCFACT', self, val, definition, nom, parent, dicoPyxbDeConstruction)
+        #import traceback
         #traceback.print_stack()
-        #if nom == 'experience' : print ('MCFACT', self, parent, dicoPyxbDeConstruction); exit()
         self.dicoPyxbDeConstruction=dicoPyxbDeConstruction
         if self.dicoPyxbDeConstruction :
-           self.objPyxbDeConstruction=self.dicoPyxbDeConstruction['objEnPyxb']
-           del self.dicoPyxbDeConstruction['objEnPyxb']
+            self.objPyxbDeConstruction=self.dicoPyxbDeConstruction['objEnPyxb']
+            del self.dicoPyxbDeConstruction['objEnPyxb']
         else :
-           self.objPyxbDeConstruction=None
+            self.objPyxbDeConstruction=None
         self.definition = definition
         self.nom = nom
         self.val = val
         self.parent = parent
-        self.valeur = self.GETVAL(self.val)
+        self.estIdentifiePar=None
+        self.valeur = self.getValeurEffective(self.val)
         if parent:
             self.jdc = self.parent.jdc
             self.niveau = self.parent.niveau
@@ -68,7 +68,7 @@ class MCFACT(N_MCCOMPO.MCCOMPO):
             self.etape = None
         self.mcListe = self.buildMc()
 
-    def GETVAL(self, val):
+    def getValeurEffective(self, val):
         """
             Retourne la valeur effective du mot-clé en fonction
             de la valeur donnée. Defaut si val == None
index edf97d337468b772da7c1c6fa481aa114600c8c8..45b096df39f90af0bc0ffc6b60edb7e67a026153 100644 (file)
 
 from __future__ import absolute_import
 try :
-   from future import standard_library
-   standard_library.install_aliases()
-except : 
-   pass
+    from future import standard_library
+    standard_library.install_aliases()
+except :
+    pass
 from copy import copy
 import types
 
 try:
-   from UserList import UserList
+    from UserList import UserList
 except ImportError:
-   from collections import UserList
+    from collections import UserList
 
 
 
@@ -117,6 +117,15 @@ class MCList(UserList):
         # print "Erreur : %s ne peut etre un descendant de %s" %(name,self.nom)
         return None
 
+    def getAllChild(self, name):
+    # A utiliser uniquement dans un filtre
+        maListeRetour= MCList()
+        for obj in self.data:
+            for objFils in obj.getChild(name) :
+                maListeRetour.append(objFils)
+        return maListeRetour
+
+
     def isBLOC(self):
         """
              Indique si l'objet est de type BLOC
@@ -242,7 +251,7 @@ class MCList(UserList):
                     del dico[i]
             dresu.append(dico)
         return dresu
-    
+
     def longueurDsArbre(self):
     # pour Pyxb : longueur  dans le orderedcontent de pyxb
         return len(self)
index 25b3d52c6bf430838774980ad01ba420d5e45e0d..b993b668e705505233f303964aef34440d73f2f3 100644 (file)
@@ -28,6 +28,7 @@ from __future__ import absolute_import
 from copy import copy
 
 from Noyau.N_ASSD import ASSD
+from Noyau.N_UserASSDMultiple import UserASSDMultiple
 from Noyau.N_CO import CO
 from . import N_OBJECT
 from .N_CONVERT import ConversionFactory
@@ -45,11 +46,8 @@ class MCSIMP(N_OBJECT.OBJECT):
            Attributs :
 
             - val : valeur du mot clé simple
-
             - definition
-
             - nom
-
             - parent
 
           Autres attributs :
@@ -57,43 +55,146 @@ class MCSIMP(N_OBJECT.OBJECT):
             - valeur : valeur du mot-clé simple en tenant compte de la valeur par défaut
 
         """
-        #print ("MCSIMP, ------------------------")
         #print (self, val, definition, nom, parent)
-        #print ("MCSIMP, ------------------------")
         self.definition = definition
         self.nom = nom
         self.val = val
         self.parent = parent
-        self.convProto = ConversionFactory('type', typ=self.definition.type)
-        self.valeur = self.GETVAL(self.val)
-        self.objPyxbDeConstruction=objPyxbDeConstruction
+        self.objPyxbDeConstruction = objPyxbDeConstruction
         if parent:
-            self.jdc  = self.parent.jdc
+            self.jdc = self.parent.jdc
             if self.jdc : self.cata = self.jdc.cata
-            else : self.cata = None
+            else        : self.cata = None
             self.niveau = self.parent.niveau
-            self.etape = self.parent.etape
-            #self.buildObjPyxb()
+            self.etape  = self.parent.etape
         else:
             # Le mot cle simple a été créé sans parent
             # est-ce possible ?
             print ('je suis dans le else sans parent du build')
-            self.jdc = None
-            self.cata = None
+            self.jdc    = None
+            self.cata   = None
             self.niveau = None
-            self.etape = None
+            self.etape  = None
+        if self.definition.creeDesObjets :
+            if issubclass(self.definition.creeDesObjetsDeType, UserASSDMultiple) :
+                self.convProto = ConversionFactory('UserASSDMultiple', self.definition.creeDesObjetsDeType)
+            else :
+                self.convProto = ConversionFactory('UserASSD', self.definition.creeDesObjetsDeType)
+        else :
+            self.convProto = ConversionFactory('type', typ=self.definition.type)
+        self.valeur = self.getValeurEffective(self.val)
+        if self.definition.utiliseUneReference :
+            if self.valeur != None:
+                if not type(self.valeur) in (list, tuple): self.valeur.ajoutUtilisePar(self)
+                else :
+                    #PNPN --> chgt pour Vimmp
+                    for v in self.valeur :
+                        print (v, type(v))
+                        v.ajoutUtilisePar(self)
+                        #try : v.ajoutUtilisePar(self)
+                        #except : print ('il y a un souci ici', self.nom, self.valeur)
+        self.buildObjPyxb()
+        self.listeNomsObjsCrees = []
 
-    def GETVAL(self, val):
+    def getValeurEffective(self, val):
         """
             Retourne la valeur effective du mot-clé en fonction
             de la valeur donnée. Defaut si val == None
+            Attention aux UserASSD et aux into (exple Wall gp de maille et 'Wall')
         """
-        if (val is None and hasattr(self.definition, 'defaut')):
-            val = self.definition.defaut
+        #print ('getValeurEffective ________________', val)
+        if (val is None and hasattr(self.definition, 'defaut')): val = self.definition.defaut
+        if self.definition.type[0] == 'TXM' and isinstance(val,str) : return val
+        if self.definition.creeDesObjets :
+            # isinstance(val, self.definition.creeDesObjetsDeType) ne fonctionne pas car il y a un avec cata devant et l autre non
+            if val == None : return val
+            if not isinstance(val,(list,tuple)) : valATraiter=[val,]
+            else : valATraiter=val
+            listeRetour=[]
+            for v in valATraiter:
+                #print (v.__class__.__name__, self.definition.creeDesObjetsDeType.__name__)
+                if  (not(v.__class__.__name__ == self.definition.creeDesObjetsDeType.__name__)) :
+                    if self.jdc != None and v in list(self.jdc.sdsDict.keys()): v=self.jdc.sdsDict[v]
+                    else : v=self.convProto.convert(v)
+                    if v.parent== None : v.initialiseParent(self)
+                    if issubclass(self.definition.creeDesObjetsDeType, UserASSDMultiple) :
+                        v.ajouteUnPere(self)
+                else :
+                    if v.nom=='sansNom' :
+                        for leNom,laVariable in self.jdc.g_context.items():
+                            #print (leNom,laVariable)
+                            if id(laVariable) == id(v) and (leNom != 'sansNom'):
+                                v.initialiseNom(leNom)
+                    if v.parent== None : v.initialiseParent(self)
+                    if issubclass(self.definition.creeDesObjetsDeType, UserASSDMultiple) :
+                        v.ajouteUnPere(self)
+                listeRetour.append(v)
+            if isinstance(val,(list,tuple)) :newVal=listeRetour
+            else : newVal=listeRetour[0]
+            return newVal
         if self.convProto:
             val = self.convProto.convert(val)
         return val
 
+    def creeUserASSDetSetValeur(self, val):
+        self.state='changed'
+        nomVal=val
+        if nomVal in self.jdc.sdsDict.keys():
+            if isinstance(self.jdc.sdsDict[nomVal],self.definition.creeDesObjetsDeType):
+                if issubclass(self.definition.creeDesObjetsDeType, UserASSDMultiple) :
+                    p=self.parent
+                    while p in self.parent :
+                        if hasattr(p, 'listeDesReferencesCrees') : p.listeDesReferencesCrees.append(self.jdc.sdsDict[nomVal])
+                        else : p.listeDesReferencesCrees=[self.jdc.sdsDict[nomVal],]
+                        p=p.parent
+                        self.jdc.sdsDict[nomVal].ajouteUnPere(self)
+                        #return (1, 'reference ajoutee')
+                else :
+                    return (0, 'concept non multiple deja reference')
+            else : return (0, 'concept d un autre type existe deja')
+        if self.convProto:
+            objVal = self.convProto.convert(nomVal)
+            objVal.initialiseNom(nomVal)
+            if objVal.parent== None : objVal.initialiseParent(self)
+            objVal.ajouteUnPere(self)
+            p=self.parent
+            while p in self.parent :
+                print ('mise a jour de ',p)
+                if hasattr(p, 'listeDesReferencesCrees') : p.listeDesReferencesCrees.append(objVal)
+                else : p.listeDesReferencesCrees=[objVal,]
+                p=p.parent
+        return (self.setValeur(objVal), 'reference creee')
+
+    def creeUserASSD(self, val):
+        self.state='changed'
+        nomVal=val
+        if nomVal in self.jdc.sdsDict.keys():
+            if isinstance(self.jdc.sdsDict[nomVal],self.definition.creeDesObjetsDeType):
+                if issubclass(self.definition.creeDesObjetsDeType, UserASSDMultiple) :
+                    p=self.parent
+                    while p in self.parent :
+                        if hasattr(p, 'listeDesReferencesCrees') : p.listeDesReferencesCrees.append(self.jdc.sdsDict[nomVal])
+                        else : p.listeDesReferencesCrees=[self.jdc.sdsDict[nomVal],]
+                        p=p.parent
+                        self.jdc.sdsDict[nomVal].ajouteUnPere(self)
+                        return (1,self.jdc.sdsDict[nomVal], 'reference ajoutee')
+                else : return (0, None, 'concept d un autre type existe deja')
+            else : return (0, None, 'concept d un autre type existe deja')
+        if self.convProto:
+            objVal = self.convProto.convert(nomVal)
+            objVal.initialiseNom(nomVal)
+            objVal.ajouteUnPere(self)
+        return (1, objVal, 'reference creee')
+
+    def rattacheUserASSD(self, objASSD):
+        if objASSD.parent== None : objASSD.initialiseParent(self)
+        p=self.parent
+        while p in self.parent :
+            if hasattr(p, 'listeDesReferencesCrees') : p.listeDesReferencesCrees.append(objASSD)
+            else : p.listeDesReferencesCrees=[objASSD,]
+            p=p.parent
+
+
     def getValeur(self):
         """
             Retourne la "valeur" d'un mot-clé simple.
@@ -185,6 +286,7 @@ class MCSIMP(N_OBJECT.OBJECT):
             dico[self.nom] = l
         return dico
 
+
     def getMcsWithCo(self, co):
         """
             Cette methode retourne l'objet MCSIMP self s'il a le concept co
@@ -201,3 +303,66 @@ class MCSIMP(N_OBJECT.OBJECT):
         """
         return [co for co in forceList(self.valeur)
                 if isinstance(co, CO) and co.isTypCO()]
+
+    def supprime(self):
+        if not type(self.valeur) in (list, tuple): lesValeurs=(self.valeur,)
+        else : lesValeurs=self.valeur
+        if self.valeur == None or self.valeur == [] : lesValeurs=[]
+        for val in lesValeurs:
+            if self.definition.creeDesObjets : val.deleteReference(self)
+            else :
+                if (hasattr (val, 'enleveUtilisePar')) : val.enleveUtilisePar(self)
+        N_OBJECT.OBJECT.supprime(self)
+
+    def getUserAssdPossible(self):
+        debug=False
+        if self.nom == 'ApplyOn' : debug = True
+        if debug : print ('____________', self, self.nom)
+        classeAChercher = self.definition.type
+        if debug : print ('____________', classeAChercher)
+        l=[]
+        dicoValeurs={}
+        d={}
+        if debug : print ('____________', self.definition.filtreVariables)
+        if self.definition.filtreVariables != None :
+            for (nomMC, Xpath) in self.definition.filtreVariables :
+                if debug : print (nomMC, Xpath)
+                if Xpath == None : dicoValeurs[nomMC] = getattr(self,nomMC)
+                else :
+                    try: #if 1 :
+                        pereMC=eval(Xpath)
+                        if debug : print ('pereMC :',pereMC)
+                        if pereMC :
+                            exp=Xpath+'.getChild("'+nomMC+'")'
+                            leMotCle=eval(exp)
+                        else : leMotCle=None
+                        if debug : print ('leMotCle', leMotCle)
+                        if leMotCle :
+                            if leMotCle.val : dicoValeurs[nomMC]=leMotCle.val
+                            elif leMotCle.definition.max != 1 : dicoValeurs[nomMC] = []
+                            else : dicoValeurs[nomMC] = None
+                            if debug : print ('dicoValeurs', dicoValeurs)
+                        else :
+                        #PN PN est-ce sur ? sinon quoi None ou []
+                        # je pense que les 2 valeurs doivent être renseignees si le filtre depend de 2 valeurs
+                            return l
+                    except:
+                        return l
+
+
+        for k,v in self.parent.jdc.sdsDict.items():
+            if (isinstance(v, classeAChercher)) :
+                if debug : print ('je traite', v)
+                if self.definition.filtreExpression :
+                    if debug : print ('expression', self.definition.filtreExpression)
+                    if debug : 
+                       print (v.executeExpression(self.definition.filtreExpression ,dicoValeurs) )
+                    try :
+                        if v.executeExpression(self.definition.filtreExpression ,dicoValeurs) : l.append(v)
+                    except :
+                        print ('il faut comprendre except pour', self.nom)
+                        #print (self.nom)
+                        #print (self.parent.nom)
+                        #print (k,v)
+                else : l.append(v)
+        return l
index 592a8c92701909f1ca0f96c684d2a89fa97699d2..80f31056de66ebc88e0247000121d63c3fc3ea66 100644 (file)
@@ -1,4 +1,4 @@
-# coding=utf-8
+## coding=utf-8
 # Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
@@ -24,9 +24,9 @@
 """
 from __future__ import absolute_import
 try :
-   from builtins import object
+    from builtins import object
 except :
-   pass 
+    pass
 from .N_CR import CR
 
 
@@ -64,6 +64,7 @@ class OBJECT(object):
         self.jdc = None
         self.niveau = None
 
+
     def getVal(self):
         """
             Retourne la valeur de l'objet. Cette méthode fournit
@@ -83,7 +84,7 @@ class OBJECT(object):
         else:
             return self
 
-    def GETVAL(self, val):
+    def getValeurEffective(self, val):
         """
             Retourne la valeur effective du mot-clé en fonction
             de la valeur donnée. Defaut si val == None
@@ -108,7 +109,10 @@ class OBJECT(object):
         return 0
 
     def longueurDsArbre(self):
-      return 1
+        if self.nom == "Consigne" : return 0
+        if self.nom == "blocConsigne" : return 0
+        return 1
+
 
 
 class ErrorObj(OBJECT):
@@ -145,3 +149,29 @@ class ErrorObj(OBJECT):
         return self.cr
 
 
+def newGetattr(self,name):
+    try :
+       fils=self.getChildOrChildInBloc(name,restreint='non')
+       if fils : 
+          if fils.nature == 'MCSIMP' : return fils.valeur
+          if fils.nature == 'MCList' : 
+             if fils[0].definition.max == 1 : return fils[0]
+          return fils
+    except :
+       raise AttributeError("%r object has no attribute %r" % (self.__class__.__name__, name))
+    raise AttributeError("%r object has no attribute %r" % (self.__class__.__name__, name))
+
+def newGetattrForEtape(self,name):
+    try :
+       lesFils=self.getEtapesByName(name)
+       if lesFils != [] : return lesFils
+    except :
+       raise AttributeError("%r object has no attribute %r" % (self.__class__.__name__, name))
+    raise AttributeError("%r object has no attribute %r" % (self.__class__.__name__, name))
+
+def activeSurcharge():
+    from .N_MCCOMPO import MCCOMPO
+    MCCOMPO.__getattr__ = newGetattr
+    from .N_JDC import JDC
+    JDC.__getattr__ = newGetattrForEtape
+        
index af9f6863eecbfe3e4398da0545efac2a33409716..0c13833a7b03c65e0f2344ac9306f9c823f736a6 100644 (file)
@@ -119,15 +119,26 @@ class OPER(N_ENTITE.ENTITE):
         self.UIinfo = UIinfo
         self.affecter_parente()
         self.checkDefinition(self.nom)
+        self.txtNomComplet=""
+        self.dejaPrepareDump=False
 
-    def __call__(self, reuse=None, **args):
+    def __call__(self, reuse=None, nomXML=None,**args):
         """
             Construit l'objet ETAPE a partir de sa definition (self),
             puis demande la construction de ses sous-objets et du concept produit.
         """
-        nomsd = self.nommage.getNomConceptResultat(self.nom)
+        if nomXML == None : nomsd = self.nommage.getNomConceptResultat(self.nom)
+        else : nomsd = nomXML
         etape = self.class_instance(oper=self, reuse=reuse, args=args)
         etape.MCBuild()
+        while etape.doitEtreRecalculee == True :
+            etape.doitEtreRecalculee = False
+            etape.deepUpdateConditionBlocApresCreation()
+            etape.reConstruitResteVal()
+            etape.state='modified'
+            #print ('on recalcule la validite depuis N_OPER')
+        #   etape.isValid(cr='oui')
+        etape.metAJourNomASSD(nomsd)
         return etape.buildSd(nomsd)
 
     def make_objet(self, mc_list='oui'):
index 9ff0efdd26c97145a775199c8ab964487afab468..d861fd87a69e432d965969d3478a6eb9dbe03dcc 100644 (file)
@@ -19,9 +19,9 @@
 
 from __future__ import absolute_import
 try :
-   from builtins import object
+    from builtins import object
 except :
-   pass
+    pass
 from .N_utils import importObject
 
 
index 8e6a099385c73c0e1d822d1a1c7be6be03fe2344..f12d13f60483a88ec0fad5ee3b88ea2421698503 100644 (file)
@@ -115,6 +115,8 @@ class PROC(N_ENTITE.ENTITE):
         self.UIinfo = UIinfo
         self.affecter_parente()
         self.checkDefinition(self.nom)
+        self.dejaPrepareDump=False
+        self.txtNomComplet=''
 
     def __call__(self, **args):
         """
@@ -123,6 +125,10 @@ class PROC(N_ENTITE.ENTITE):
         """
         etape = self.class_instance(oper=self, args=args)
         etape.MCBuild()
+        while etape.doitEtreRecalculee == True :
+            etape.doitEtreRecalculee = False
+            etape.deepUpdateConditionBlocApresCreation()
+            etape.reConstruitResteVal()
         return etape.buildSd()
 
     def make_objet(self, mc_list='oui'):
index ff0fd8bec5a8dad6384f3d136140cfef981d7a44..062230c86e4b92473dd4d0bfae7b30d1a8862d54 100644 (file)
 """
 
 from __future__ import absolute_import
-try : 
-   from builtins import object
+try :
+    from builtins import object
 except :
-   pass
+    pass
 import types
 
 
index 8ba50089160e9e5f410fdd79619627e3f4dc7b90..89e9ed6839453106b5ac2c298a942f6cb7bf4e1a 100644 (file)
@@ -29,155 +29,154 @@ from .N_REGLE import REGLE
 
 # -----------------------------------------------------------------------------
 class CONCEPT_SENSIBLE(REGLE):
-   """Règle permettant de renseigner au niveau du catalogue comment sera
-   rempli le concept (valeur nominale ou dérivée(s) ou les deux...).
-   """
-   def __init__(self, mode, mocle='SENSIBILITE'):
-      """Constructeur.
-
-         mode : manière dont la commande rempli le concept
-            - 'ENSEMBLE' : concept nominal ET dérivées en une seule passe
-            - 'SEPARE'   : concept nominal OU dérivée (une ou plusieurs)
-            
-         mocle : mot-clé contenant les paramètres sensibles.
-      """
-      REGLE.__init__(self)
-      self.mocle = mocle
-      self._modes = { 'ENSEMBLE' : 0, 'SEPARE' : 1 }
-      self.mode = self._modes.get(mode, self._modes['ENSEMBLE'])
-
-   def getText(self):
-      """Pour EFICAS
-      """
-      return ''
-
-   def verif(self, args):
-      """Retourne texte + 1 si ok, 0 si nook.
-      On stocke dans sd.sensi l'étape courante, c'est-à-dire celle qui
-      renseigne le concept si cela n'a pas déjà été fait (car verif est
-      appelé à chaque validation).
-      """
-      obj = args["self"]
-      etape = obj.etape
-      id_etape = '%s_%s' % (etape.id, id(etape))
-      if etape.sd == None:
-          return '',1
-      if not hasattr(etape.sd,"sensi"):
-         etape.sd.sensi = {}
-      # si ENSEMBLE, la sd nominale est forcément produite
-      if self.mode == self._modes['ENSEMBLE'] and not 'nominal' in etape.sd.sensi :
-         etape.sd.sensi['nominal'] = id_etape
-      # liste des paramètres sensibles
-      valeur = obj[self.mocle]
-      if valeur == None:
-         # pas de sensibilité, la sd nominale est produite
-         if not 'nominal' in etape.sd.sensi:
+    """Règle permettant de renseigner au niveau du catalogue comment sera
+    rempli le concept (valeur nominale ou dérivée(s) ou les deux...).
+    """
+    def __init__(self, mode, mocle='SENSIBILITE'):
+        """Constructeur.
+
+           mode : manière dont la commande rempli le concept
+              - 'ENSEMBLE' : concept nominal ET dérivées en une seule passe
+              - 'SEPARE'   : concept nominal OU dérivée (une ou plusieurs)
+
+           mocle : mot-clé contenant les paramètres sensibles.
+        """
+        REGLE.__init__(self)
+        self.mocle = mocle
+        self._modes = { 'ENSEMBLE' : 0, 'SEPARE' : 1 }
+        self.mode = self._modes.get(mode, self._modes['ENSEMBLE'])
+
+    def getText(self):
+        """Pour EFICAS
+        """
+        return ''
+
+    def verif(self, args):
+        """Retourne texte + 1 si ok, 0 si nook.
+        On stocke dans sd.sensi l'étape courante, c'est-à-dire celle qui
+        renseigne le concept si cela n'a pas déjà été fait (car verif est
+        appelé à chaque validation).
+        """
+        obj = args["self"]
+        etape = obj.etape
+        id_etape = '%s_%s' % (etape.id, id(etape))
+        if etape.sd == None:
+            return '',1
+        if not hasattr(etape.sd,"sensi"):
+            etape.sd.sensi = {}
+        # si ENSEMBLE, la sd nominale est forcément produite
+        if self.mode == self._modes['ENSEMBLE'] and not 'nominal' in etape.sd.sensi :
             etape.sd.sensi['nominal'] = id_etape
-         return '', 1
-      if not type(valeur) in (list, tuple):
-         valeur = [valeur,]
-      for v in valeur:
-         if not v.getName() in etape.sd.sensi:
-            etape.sd.sensi[v.getName()] = id_etape
-      return '', 1
+        # liste des paramètres sensibles
+        valeur = obj[self.mocle]
+        if valeur == None:
+            # pas de sensibilité, la sd nominale est produite
+            if not 'nominal' in etape.sd.sensi:
+                etape.sd.sensi['nominal'] = id_etape
+            return '', 1
+        if not type(valeur) in (list, tuple):
+            valeur = [valeur,]
+        for v in valeur:
+            if not v.getName() in etape.sd.sensi:
+                etape.sd.sensi[v.getName()] = id_etape
+        return '', 1
 
 
 # -----------------------------------------------------------------------------
 class REUSE_SENSIBLE(REGLE):
-   """Limite le caractère réentrant de la commande.
-   On autorisera reuse seulement si le concept (au sens fortran) n'a pas déjà
-   été calculé (d'après sd.sensi). Ce sera interdit dans les cas suivants :
-      - sd nominale calculée et SENSIBILITE absent
-      - PS1 dans SENSIBILITE et sd dérivée par rapport à PS1 calculée
-   """
-   def __init__(self, mocle='SENSIBILITE'):
-      """Constructeur.
-         mocle : mot-clé SENSIBILITE.
-      """
-      REGLE.__init__(self)
-      self.mocle = mocle
-
-   def getText(self):
-      """Pour EFICAS
-      """
-      return ''
-
-   def verif(self,args):
-      """Retourne texte + 1 si ok, 0 si nook = reuse interdit.
-      Comme CONCEPT_SENSIBLE est appelé avant (et à chaque validation),
-      on regarde si sd.sensi[ps] a été renseigné par une étape précédente.
-      """
-      obj = args["self"]
-      etape = obj.etape
-      id_etape = '%s_%s' % (etape.id, id(etape))
-      sd = etape.sd
-      # si la commande n'est pas réentrante, rien à faire
-      if etape.reuse is not None:
-         valeur = obj[self.mocle]
-         if valeur is None:
-            if not hasattr(sd, 'sensi') or sd.sensi.get('nominal', id_etape) != id_etape:
-               # pas de sensibilite et concept nominal déjà calculé : reuse interdit
-               text = "Commande non réentrante en l'absence de sensibilité."
-               return text, 0
-         else:
-            if not type(valeur) in (list, tuple):
-               valeur = [valeur,]
-            for ps in valeur:
-               if hasattr(sd, 'sensi') and sd.sensi.get(ps.nom, id_etape) != id_etape:
-                  # concept dérivé par rapport à ps déjà calculé : reuse interdit
-                  text = "Commande non réentrante : dérivée par rapport à %s déjà calculée" % ps.nom
-                  return text, 0
-      return '', 1
+    """Limite le caractère réentrant de la commande.
+    On autorisera reuse seulement si le concept (au sens fortran) n'a pas déjà
+    été calculé (d'après sd.sensi). Ce sera interdit dans les cas suivants :
+       - sd nominale calculée et SENSIBILITE absent
+       - PS1 dans SENSIBILITE et sd dérivée par rapport à PS1 calculée
+    """
+    def __init__(self, mocle='SENSIBILITE'):
+        """Constructeur.
+           mocle : mot-clé SENSIBILITE.
+        """
+        REGLE.__init__(self)
+        self.mocle = mocle
+
+    def getText(self):
+        """Pour EFICAS
+        """
+        return ''
+
+    def verif(self,args):
+        """Retourne texte + 1 si ok, 0 si nook = reuse interdit.
+        Comme CONCEPT_SENSIBLE est appelé avant (et à chaque validation),
+        on regarde si sd.sensi[ps] a été renseigné par une étape précédente.
+        """
+        obj = args["self"]
+        etape = obj.etape
+        id_etape = '%s_%s' % (etape.id, id(etape))
+        sd = etape.sd
+        # si la commande n'est pas réentrante, rien à faire
+        if etape.reuse is not None:
+            valeur = obj[self.mocle]
+            if valeur is None:
+                if not hasattr(sd, 'sensi') or sd.sensi.get('nominal', id_etape) != id_etape:
+                    # pas de sensibilite et concept nominal déjà calculé : reuse interdit
+                    text = "Commande non réentrante en l'absence de sensibilité."
+                    return text, 0
+            else:
+                if not type(valeur) in (list, tuple):
+                    valeur = [valeur,]
+                for ps in valeur:
+                    if hasattr(sd, 'sensi') and sd.sensi.get(ps.nom, id_etape) != id_etape:
+                        # concept dérivé par rapport à ps déjà calculé : reuse interdit
+                        text = "Commande non réentrante : dérivée par rapport à %s déjà calculée" % ps.nom
+                        return text, 0
+        return '', 1
 
 
 # -----------------------------------------------------------------------------
 class DERIVABLE(REGLE):
-   """Déclare que le concept fourni derrière un mot-clé est dérivable.
-   Sa présence ne suffit pas à le valider, il faut encore que son attribut
-   '.sensi' soit cohérent avec le contenu du mot-clé SENSIBILITE (ou l'absence
-   de celui-ci).
-   """
-   def __init__(self, mocle):
-      """Constructeur.
-         mocle : mot-clé dérivable.
-      """
-      REGLE.__init__(self)
-      self.mocle = mocle
-
-   def getText(self):
-      """Pour EFICAS
-      """
-      return ''
-
-   def verif(self,args):
-      """
-      """
-      obj = args["self"]
-      try:
-         concept = obj[self.mocle]
-      except IndexError:
-         return '', 1
-      if not type(concept) in (list, tuple):
-         concept = [concept,]
-      l_ps = obj["SENSIBILITE"]
-      for co in concept:
-         if co is None:
-            text = "Concept non défini (None) sous le mot-clé %s" % self.mocle
-            return text, 0
-         if not l_ps:
-            # pas de sensibilité
-            if hasattr(co,"sensi") and not co.sensi.get('nominal'):
-               text = "%s ne contient que des valeurs dérivées, utilisez le mot cle SENSIBILITE" %\
-                     co.nom
-               return text, 0
-         else:
-            # sensibilité spécifiée
-            if not type(l_ps) in (list, tuple):
-               l_ps = [l_ps,]
-            for ps in l_ps:
-               if not hasattr(co,"sensi") or not co.sensi.get(ps.nom):
-                  text = "La dérivée de %s par rapport à %s n'est pas disponible." %\
-                        (co.nom, ps.nom)
-                  return text, 0
-      return '', 1
-
+    """Déclare que le concept fourni derrière un mot-clé est dérivable.
+    Sa présence ne suffit pas à le valider, il faut encore que son attribut
+    '.sensi' soit cohérent avec le contenu du mot-clé SENSIBILITE (ou l'absence
+    de celui-ci).
+    """
+    def __init__(self, mocle):
+        """Constructeur.
+           mocle : mot-clé dérivable.
+        """
+        REGLE.__init__(self)
+        self.mocle = mocle
+
+    def getText(self):
+        """Pour EFICAS
+        """
+        return ''
+
+    def verif(self,args):
+        """
+        """
+        obj = args["self"]
+        try:
+            concept = obj[self.mocle]
+        except IndexError:
+            return '', 1
+        if not type(concept) in (list, tuple):
+            concept = [concept,]
+        l_ps = obj["SENSIBILITE"]
+        for co in concept:
+            if co is None:
+                text = "Concept non défini (None) sous le mot-clé %s" % self.mocle
+                return text, 0
+            if not l_ps:
+                # pas de sensibilité
+                if hasattr(co,"sensi") and not co.sensi.get('nominal'):
+                    text = "%s ne contient que des valeurs dérivées, utilisez le mot cle SENSIBILITE" %\
+                          co.nom
+                    return text, 0
+            else:
+                # sensibilité spécifiée
+                if not type(l_ps) in (list, tuple):
+                    l_ps = [l_ps,]
+                for ps in l_ps:
+                    if not hasattr(co,"sensi") or not co.sensi.get(ps.nom):
+                        text = "La dérivée de %s par rapport à %s n'est pas disponible." %\
+                              (co.nom, ps.nom)
+                        return text, 0
+        return '', 1
index 34dbc4bc32d9e716d8eb796c2deec0c79a5b697b..e8bc122201c6a3d54f4fc3175ef9cf8122a60ec8 100644 (file)
@@ -25,6 +25,7 @@
 from __future__ import absolute_import
 import types
 
+import Accas
 from Noyau import N_ENTITE
 from Noyau import N_MCSIMP
 
@@ -47,9 +48,10 @@ class SIMP(N_ENTITE.ENTITE):
     label = 'SIMP'
 
     def __init__(self, typ,ang="", fr="", statut='f', into=None, intoSug = None,siValide = None, defaut=None,
-                 min=1, max=1, homo=1, position='local',
-                 val_min=float('-inf'), val_max=float('inf'), docu="", validators=None,
-                 sug=None,fenetreIhm=None):
+                 min=1, max=1, homo=1, position='local',filtre=None,
+                 val_min=float('-inf'), val_max=float('inf'), docu="", validators=None, nomXML=None,
+                 sug=None,fenetreIhm=None, attribut=False,  sortie='n', intoXML=None, metAJour=None,
+                 avecBlancs=False, unite=None):
         """
             Un mot-clé simple est caractérisé par les attributs suivants :
             - type : cet attribut est obligatoire et indique le type de valeur attendue
@@ -67,7 +69,11 @@ class SIMP(N_ENTITE.ENTITE):
             - val_max : valeur maximale autorisée
             - docu : clef sur de la documentation utilisateur
             - sug : valeur suggere
-            - fenetreIhm=None 
+            - fenetreIhm : si widget particulier
+            - attribut : si projection XSD sur attribut
+            - creeDesObjetsDeType : type des UserASSD si siValide en cree
+            - nomXML   : se projette en XSD avec un autre nom pour accepter les tirets
+            - sortie : force l ecriture dans le fichier de sortie (utile pour Telemac)
         """
         #print (self)
         #import traceback
@@ -75,31 +81,76 @@ class SIMP(N_ENTITE.ENTITE):
         #print (self)
         N_ENTITE.ENTITE.__init__(self, validators)
         # Initialisation des attributs
+        self.creeDesObjets = False
+        self.utiliseUneReference = False
+        self.creeDesObjetsDeType = None
+        self.utiliseDesObjetsDeType = None
         if type(typ) == tuple:
             self.type = typ
         else:
             self.type = (typ,)
-        self.fr = fr
-        self.statut = statut
-        self.into = into
-        self.intoSug = intoSug
+        for t in (self.type) :
+            try :
+                if issubclass(t,Accas.UserASSDMultiple) :
+                    creeDesObjetsDeType = t
+                    self.utiliseUneReference = True
+                elif issubclass(t,Accas.UserASSD) :
+                    creeDesObjetsDeType = t
+                    self.utiliseUneReference = True
+            except : pass
+            if t == 'createObject' : self.creeDesObjets=True
+        if self.utiliseUneReference :
+            if self.creeDesObjets :
+                self.utiliseUneReference = False
+                self.creeDesObjetsDeType = creeDesObjetsDeType
+            else : self.utiliseDesObjetsDeType = creeDesObjetsDeType
+        self.fr       = fr
+        self.statut   = statut
+        self.into     = into
+        self.intoSug  = intoSug
         self.siValide = siValide
-        self.defaut = defaut
-        self.min = min
-        self.max = max
-        self.homo = homo
+        self.defaut   = defaut
+        self.min      = min
+        self.max      = max
+        self.homo     = homo
         self.position = position
-        self.val_min = val_min
-        self.val_max = val_max
-        self.docu = docu
-        self.sug = sug
-        self.ang=ang
+        self.val_min  = val_min
+        self.val_max  = val_max
+        self.docu     = docu
+        self.sug      = sug
+        self.ang      = ang
         if self.max     == '**' : self.max     = float('inf')
         if self.val_max == '**' : self.val_max = float('inf')
         if self.min     == '**' : self.min     = float('-inf')
         if self.val_min == '**' : self.val_min = float('-inf')
-        self.fenetreIhm=fenetreIhm
-        #self.creeT_SIMP()
+        self.fenetreIhm = fenetreIhm
+        self.attribut   = attribut
+        self.nomXML     = nomXML
+        self.intoXML    = intoXML
+        self.sortie     = sortie
+        self.filtre     = filtre
+        self.avecBlancs = avecBlancs
+        self.unite      = unite
+        if not(self.avecBlancs) and self.max > 1 and 'TXM' in self.type and self.into != None :
+            for val in self.into :
+                if val.find(' ')  > -1: 
+                   self.avecBlancs = True  
+                   break
+        if not(self.avecBlancs) and self.max > 1 and 'TXM' in self.type and self.intoXML != None :
+            for val in self.intoXML :
+                if val.find(' ')  > -1: 
+                   self.avecBlancs = True  
+                   break
+        if self.avecBlancs and not ('TXM' in self.type) : 
+            print ('definition incoherente avecBlanc et non texte pour ', self) 
+            exit()
+        if self.filtre  :
+            self.filtreExpression = self.filtre[0]
+            self.filtreVariables = self.filtre[1]
+        else :
+            self.filtreExpression = []
+            self.filtreVariables = []
+        self.metAJour=metAJour
 
     def verifCata(self):
         """
@@ -114,45 +165,10 @@ class SIMP(N_ENTITE.ENTITE):
         self.checkPosition()
         self.checkValidators()
 
+
     def __call__(self, val, nom, parent=None, objPyxbDeConstruction = None):
         """
             Construit un objet mot cle simple (MCSIMP) a partir de sa definition (self)
             de sa valeur (val), de son nom (nom) et de son parent dans l arboresence (parent)
         """
         return self.class_instance(nom=nom, definition=self, val=val, parent=parent, objPyxbDeConstruction=objPyxbDeConstruction)
-
-#    def creeT_SIMP(self):
-#        from Efi2Xsd.readerEfficas import monSIMP
-#        from Efi2Xsd.mapDesTypes import dictSIMPEficasXML
-#        self.objXML=monSIMP()
-#        for nomEficasArg in dictSIMPEficasXML :
-#           argu=getattr(self,nomEficasArg)
-#           nomXMLarg=dictSIMPEficasXML[nomEficasArg]
-#           if not isinstance(nomXMLarg, (list, tuple)) :
-#              print(nomXMLarg, argu)
-              #if nomEficasArg  in listeParamDeTypeTypeAttendu:
-              #   typeAttendu = self.typ
-#                 
-#              setattr(self.objXML, nomXMLarg, argu)
-           
-
-
-# for nomXMLArg in dir(self) :
-#          if nomXMLArg in self.dictATraiter :
-#              nomEficasArg=self.dictATraiter[nomXMLArg]
-#              argu=getattr(self,nomXMLArg)
-#              if argu==None : continue
-#
-#              if type(nomEficasArg) == types.DictionaryType:
-#                 for nomXML in list(nomEficasArg.keys()):
-#                      arguDecoupe=getattr(argu,nomXML)
-#                      nomEficasDecoupe=nomEficasArg[nomXML]
-#                      if arguDecoupe == None : continue
-#                      self.dictArgsEficas[nomEficasDecoupe]=arguDecoupe
-#              else :
-#                self.dictArgsEficas[nomEficasArg] = argu
-#
-# 
-#        
-#       
-#
diff --git a/Noyau/N_TUPLE.py b/Noyau/N_TUPLE.py
new file mode 100644 (file)
index 0000000..a5b656c
--- /dev/null
@@ -0,0 +1,91 @@
+import types
+import Accas
+import inspect
+class N_Tuple:
+    def __init__(self,ntuple):
+        self.ntuple=ntuple
+
+    def __convert__(self,valeur):
+        try:
+            if isinstance(valeur, basestring) : return None
+        except NameError:
+            if isinstance(valeur, str): return None
+        if len(valeur) != self.ntuple: return None
+        return valeur
+
+    def info(self):
+        return "Tuple de %s elements" % self.ntuple
+
+class N_Matrice:
+    def __init__(self, nbLigs=None, nbCols=None,
+                 methodeCalculTaille=None, formatSortie="ligne",
+                 valSup=None, valMin=None, structure=None, typElt='R',
+                 typEltInto=None, listeHeaders=None, coloree=False,
+                 defaut=None):
+        self.nbLigs = nbLigs
+        self.nbCols = nbCols
+        self.methodeCalculTaille = methodeCalculTaille
+        self.formatSortie = formatSortie
+        self.valSup = valSup
+        self.valMin = valMin
+        self.structure = structure
+        self.typElt = typElt
+        self.listeHeaders = listeHeaders
+        self.typEltInto = typEltInto
+        self.jdc=None
+        self.coloree=coloree
+        self.defaut=defaut
+        if self.coloree : self.activeCouleur()
+
+    def __convert__(self, valeur):
+        # Attention ne verifie pas grand chose
+        if not isinstance(valeur, types.ListType):
+            return None
+        return valeur
+
+    def verifItem(self,texte,mc):
+        val=''
+        if self.typElt == 'R' :
+            try    : val=float(str(texte)); ok=True
+            except : return (False,"Entrer un float SVP")
+        if self.typElt == 'I' :
+            try    : val=int(str(texte)); ok=True
+            except : return (False,"Entrer un float SVP")
+        if self.typElt in ('R', 'I') and self.valSup != None :
+            if val > self.valSup :
+               return (False, "Entrer un nombre inferieur a " + repr(self.valSup))
+        if self.typElt in ('R', 'I') and self.valMin != None :
+            if val < self.valMin :
+               return (False, "Entrer un nombre superieur a " + repr(self.valMin))
+        if val=='' : val = texte
+        if self.typEltInto != None and val not in self.typEltInto :
+                return ( "Entrer une valeur contenue dans " + str(self.typEltInto))
+        try :
+           if issubclass (self.typElt, Accas.ASSD):
+              if not self.jdc : self.jdc = CONTEXT.getCurrentJdC()
+              if not(val in self.jdc.sdsDict.keys()) : return (False, 'Concept inexistant')
+              if not (isinstance(self.jdc.sdsDict[val],self.typElt)) : return (False, 'Concept d un autre type')
+              a=self.jdc.getSdAvantDuBonType(mc.etape,(self.typElt,))
+              if texte not in self.jdc.getSdAvantDuBonType(mc.etape,(self.typElt,)) : 
+                 return (False, 'Le concept doit etre defini avant')
+        except :
+              pass
+        return ( True, "")
+
+    def convertItem(self,texte):
+        if self.typElt == 'R' : val=float(str(texte))
+        if self.typElt == 'I' : val=int(str(texte))
+        try : 
+          if issubclass (self.typElt, Accas.ASSD): return self.jdc.sdsDict[texte]
+        except : 
+          pass
+
+
+    def info(self):
+        return "Matrice %s x %s" % (self.nbLigs, self.nbCols)
+
+    __repr__ = info
+    __str__ = info
+
+class N_Matrice_Correlation(N_Matrice):
+    pass
diff --git a/Noyau/N_UserASSD.py b/Noyau/N_UserASSD.py
new file mode 100644 (file)
index 0000000..7f8a0f2
--- /dev/null
@@ -0,0 +1,169 @@
+# coding=utf-8
+# Copyright (C) 2007-2021   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+
+"""
+
+"""
+
+from __future__ import absolute_import
+from __future__ import print_function
+try :
+    from builtins import object
+except : pass
+import traceback
+import sys
+
+from .N_ASSD import ASSD
+from Ihm import CONNECTOR
+
+class UserASSD(ASSD):
+    """
+       Classe de base pour definir des types de structures de donnees definie par
+       l utilisateur
+       equivalent d un concept ASSD pour un SIMP ou un FACT
+       Attention : le parent est a None au debut  et non le MC createur que l on ne connait pas
+       Lorsqu on ecrit le jdc, n ecrit nom=UserASSD()
+       le parent est le SIMP qui cree l objet
+       a la lecture si la classe commence par un majuscule on fait le boulot dans MCSIMP, sinon dans
+       l init de parametre car le parsing considere qu on a un parametre
+    """
+
+    def __init__(self,nom='sansNom'):
+        #print ('dans init de UserASSD pour ', nom, type(nom))
+        self.nom = nom
+        self.jdc = CONTEXT.getCurrentJdC()
+        self.parent = None
+        self.initialiseValeur()
+        self.utilisePar = set()
+        if self.nom  != 'sansNom' : self.id = self.jdc.regSD(self)
+        if self.nom  != 'sansNom' : self.initialiseNom(nom)
+        else : self.id = None
+        self.ptr_sdj   = None
+
+
+    def initialiseParent(self, parent):
+    # attention parent.parent peut être un bloc
+        #print ('je passe initialiseParent pour : ', self, parent.nom)
+        self.parent = parent
+        self.etape = self.parent.getEtape()
+        self.etape.userASSDCrees.append(self)
+        if self.parent.parent != self.etape :
+            if self.parent.parent.estIdentifiePar != None :
+                print ('il y a un souci dans l initialisation de l identifiant pour', self.parent.parent.nom)
+                print (self.parent.nom)
+                print (self.nom)
+            self.parent.parent.estIdentifiePar = self
+
+    def initialiseNom(self,nom):
+        #print ('je passe initialiseNom pour : ', self, nom, type(nom))
+        for (i,j)  in list(self.jdc.sdsDict.items()) :
+            if j == self :
+                del(self.jdc.sdsDict[i])
+        self.jdc.sdsDict[nom]=self
+        self.nom=nom
+        if self.nom != 'sansNom' and self.id ==None : self.id = self.jdc.regSD(self)
+
+    def initialiseValeur(self,valeur=None):
+        self.valeur=valeur
+
+    def ajoutUtilisePar(self,mc):
+        #print ('je passe ajoutUtilisePar pour : ', self.nom)
+        self.utilisePar.add(mc)
+
+    def enleveUtilisePar(self,mc):
+        try : self.utilisePar.remove(mc)
+        except : pass
+
+    def renomme(self,nouveauNom):
+        print ('je passe dans renomme')
+        self.jdc.delConcept(self.nom)
+        self.jdc.sdsDict[nouveauNom] = self
+        self.setName(nouveauNom)
+        #print ('je suis dans renomme',nouveauNom, self.nom)
+        #print (self.utilisePar)
+        for mc in (self.utilisePar):
+            mc.demandeRedessine()
+
+    def transfere (self,obj):
+    # uniquement utise pour les lectures XML
+        self.utilisePar=obj.utilisePar
+        self.id=obj.id
+        for mc in self.utilisePar: mc.valeur=self
+
+    def deleteReference(self, mcCreateur=None):
+        print ('je passe dans supprime de N_UserASSDMultiple')
+    # meme signature que UserASSDMultiple
+        for MC in self.utilisePar :
+            # le delete est appele en cascade par toute la hierachie
+            # du mcsimp (au cas ou on detruise le fact ou le proc)
+            # du coup pas beau
+            try :
+                if type(MC.valeur) in (list,tuple):
+                    MC.valeur=list(MC.valeur)
+                    while self in MC.valeur: MC.valeur.remove(self)
+                    if MC.valeur == [] : MC.Valeur = None
+                else : MC.valeur=None
+                MC.state='changed'
+                MC.isValid()
+                CONNECTOR.Emit(MC,"valid")
+            except : pass
+            # on peut avoir des listes qui contiennent plusieurs fois la meme valeur
+        self.jdc.delConcept(self.nom)
+
+    def executeExpression(self, condition, dico) :
+        #if self.nom == 'shape1' : print ('je suis dans executeExpression ', self.nom, ' ', condition)
+        dict = locals()
+        dict.update(dico)
+        #if self.nom == 'shape1' or self.nom == 'G1' : print (dict)
+        #if self.nom == 'shape1' :
+        #    print (self.getParentsWithId().getListeUserASSD("systemGeometryId"))
+        #    print (self.getParentsWithId().getListeUserASSD("SystemGeometryId"))
+        #    test = eval(condition, globals(), dict)
+        #    print ('-------------------------------------------------------------------------')
+        try :
+            test = eval(condition, globals(), dict)
+        except :
+            print ('executeExpression ', self.nom, ' ', condition , 'exception')
+            test = 0
+        return test
+
+    def getEficasAttribut(self, attribut):
+        #print ('je suis dans getEficasAttr', attribut)
+        if self.parent == None : return None
+        #print ('apres if')
+        # parent est le SIMP donc c est bien parent.parent
+        try :
+            valeur = self.parent.parent.getMocle(attribut)
+        except :
+            valeur = None
+        #print (valeur)
+        return valeur
+
+
+    def supprime(self, mcCreateur=None):
+    # mcCreateur utile pour N_UserASSDMultiple
+        print ('je passe dans supprime de N_UserASSDMultiple')
+        self.deleteReference(mcCreateur)
+
+    def __repr__(self):
+        return "concept " + self.getName() + " type " + self.__class__.__name__
+
+    def __str__(self):
+        return self.getName() or "<None>"
+
diff --git a/Noyau/N_UserASSDMultiple.py b/Noyau/N_UserASSDMultiple.py
new file mode 100644 (file)
index 0000000..d2dc560
--- /dev/null
@@ -0,0 +1,124 @@
+# coding=utf-8
+# Copyright (C) 2007-2021   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+
+"""
+
+"""
+
+from __future__ import absolute_import
+from __future__ import print_function
+try :
+    from builtins import object
+except : pass
+import traceback
+import sys
+
+from .N_UserASSD import UserASSD
+from .N_ASSD import ASSD
+
+from collections import UserList
+class UserASSDMultiple(UserASSD):
+    """
+       Classe de base pour definir des types de structures de donnees definie par
+       l utilisateur
+       equivalent d un concept ASSD pour un SIMP ou un FACT
+       mais pouvant referencer 2 objets par exemple les groupes de mailles qui peuvent porter
+       le meme nom dans 2 maillages differents
+    """
+    def __init__(self,nom='sansNom'):
+        #print ('dans init de UserASSDMultiple ',nom)
+        UserASSD.__init__(self,nom)
+        self.peres=[]
+
+    def ajouteUnPere(self,pere):
+        #print ('dans ajouteUnPere', self.peres, self.nom, pere)
+        if pere not in self.peres : self.peres.append(pere)
+        etape = pere.getEtape()
+        if self not in etape.userASSDCrees : etape.userASSDCrees.append(self)
+
+    def renomme(self,nouveauNom):
+        print ('je passe dans renomme')
+        #import traceback
+        #traceback.print_stack()
+        self.jdc.delConcept(self.nom)
+        self.jdc.sdsDict[nouveauNom] = self
+        self.setName(nouveauNom)
+        for mc in (self.utilisePar):
+            mc.demandeRedessine()
+
+
+    def initialiseParent(self, pere):
+        # surcharge N_UserASSD  parent ici n a pas de sens
+        pass
+
+    def deleteReference(self,mcCreateur):
+        print ('je passe dans deleteReference', mcCreateur.nom)
+        if not(mcCreateur in self.peres) : return
+        self.peres.pop(self.peres.index(mcCreateur))
+        if len(self.peres)==0 :
+            UserASSD.deleteReference(self)
+
+
+    def getParentsWithId(self):
+        #print ('je suis dans getParentsWithId ')
+        listeRetour= listUserASSD()
+        for pere in self.peres :
+            pereWithId = pere.parent
+            monEtape = pere.getEtape()
+            while (pereWithId) :
+                if pereWithId==monEtape :
+                    listeRetour.append(pereWithId)
+                    break
+                if pereWithId.estIdentifiePar != None :
+                    listeRetour.append(pereWithId)
+                    break
+                pereWithId=pereWithId.parent
+        return listeRetour
+
+    def getEtapes(self):
+        listeRetour= listUserASSD()
+        for pere in self.peres :
+            if pere.etape not in listeRetour : listeRetour.append(pere.etape)
+        return listeRetour
+
+
+class listUserASSD(UserList):
+
+    def getListeMotsCles(self,nomMc):
+        if self.data == None : return []
+        listeRetour=[]
+        for concept in self.data:
+            listeRetour.append(concept.getChild(nomMc).val)
+        return listeRetour
+
+    def getListeNomsUserASSD(self,nomMc):
+        if self.data == None : return []
+        listeRetour=[]
+        for concept in self.data:
+            listeRetour.append(concept.getChild(nomMc).val.nom)
+        return listeRetour
+
+    def getListeUserASSD(self,nomMc):
+        if self.data == None : return []
+        listeRetour=[]
+        for concept in self.data:
+            if concept.getChild(nomMc) :
+                if concept.getChild(nomMc).val :
+                    listeRetour.append(concept.getChild(nomMc).val)
+        return listeRetour
index ac96c1d8a2fab55a4d16f23c8a4dbcc904efd41f..6eb770ea79d721a6d149d19c76f97cec8e8f14b9 100644 (file)
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import str
-   from builtins import range
-   from builtins import object
+    from builtins import str
+    from builtins import object
 except : pass
-   
+
 import types
 import traceback
 import re
 from .N_ASSD import ASSD
 from .N_types import isInt, isFloat_or_int, isComplex, isNumber, isStr, isSequence
+from Accas import A_TUPLE
 from Extensions.i18n import tr
-import six
-from six.moves import range
 
 
 
@@ -64,6 +62,7 @@ class Protocol(object):
         self.args = {}
 
     def register(self, T, A):
+        print ('register Protocol',T,A)
         self.registry[T] = A
 
     def adapt(self, obj):
@@ -146,9 +145,9 @@ class TypeProtocol(PProtocol):
         self.typ = typ
 
     def default(self, obj, typ):
-
         err = ""
         for type_permis in typ:
+            if type_permis == 'createObject': continue
             if type_permis == 'R':
                 if isFloat_or_int(obj):
                     return obj
@@ -159,19 +158,19 @@ class TypeProtocol(PProtocol):
                 if self.isComplexe(obj):
                     return obj
             elif type_permis == 'TXM':
-                if isStr(obj): 
-                   return obj
+                if isStr(obj):
+                    return obj
             elif type_permis == 'shell':
                 if isStr(obj):
                     return obj
             elif type_permis == 'Fichier':
                 import os
                 try :
-                   if (len(typ) > 2 and typ[2] == "Sauvegarde") or os.path.isfile(obj):
-                      return obj
-                   else:
-                    raise ValError( "%s n'est pas un fichier valide" % repr(obj))
-                except : 
+                    if (len(typ) > 2 and typ[2] == "Sauvegarde") or os.path.isfile(obj):
+                        return obj
+                    else:
+                        raise ValError( "%s n'est pas un fichier valide" % repr(obj))
+                except :
                     raise ValError( "%s n'est pas un fichier valide" % repr(obj))
 
             elif type_permis == 'FichierNoAbs':
@@ -183,24 +182,30 @@ class TypeProtocol(PProtocol):
 
             elif type_permis == 'Repertoire':
                 import os
-                try : 
-                  if os.path.isdir(obj): return obj
-                  else: raise ValError( "%s n'est pas un repertoire valide" % repr(obj))
+                try :
+                    if os.path.isdir(obj): return obj
+                    else: raise ValError( "%s n'est pas un repertoire valide" % repr(obj))
                 except :
-                  raise ValError( "%s n'est pas un repertoire valide" % repr(obj))
+                    raise ValError( "%s n'est pas un repertoire valide" % repr(obj))
             elif type_permis == 'FichierOuRepertoire':
                 import os
-                try : 
-                  if os.path.isdir(obj) or os.path.isfile(obj): return obj
-                  else: raise ValError( "%s n'est pas un fichier ou un repertoire valide" % repr(obj))
+                try :
+                    if os.path.isdir(obj) or os.path.isfile(obj): return obj
+                    else: raise ValError( "%s n'est pas un fichier ou un repertoire valide" % repr(obj))
                 except :
-                  raise ValError( "%s n'est pas un fichier ou un repertoire valide" % repr(obj))
+                    raise ValError( "%s n'est pas un fichier ou un repertoire valide" % repr(obj))
             elif type(type_permis) == type or isinstance(type_permis, type):
                 try:
                     if self.isObjectFrom(obj, type_permis):
                         return obj
                 except Exception as err:
                     pass
+            elif  isinstance(type_permis, A_TUPLE.Tuple):
+                try:
+                    if type_permis.__convert__(obj):
+                        return obj
+                except Exception as err:
+                    pass
             elif  isinstance(type_permis, object):
                 try:
                     if type_permis.__convert__(obj):
@@ -210,7 +215,9 @@ class TypeProtocol(PProtocol):
             else:
                 print(("Type non encore gere %s" %type_permis))
         raise ValError(
-            tr("%s (de type %s) n'est pas d'un type autorise: %s %s") % (repr(obj), type(obj), typ, err))
+            tr("%s (de type %s) n'est pas d'un type autorise: %s ") % (repr(obj), type(obj), typ))
+        #import traceback; traceback.print_stack()
+        #print (object, type_permis,)
 
     def isComplexe(self, valeur):
         """ Retourne 1 si valeur est un complexe, 0 sinon """
@@ -279,16 +286,16 @@ class IntoProtocol(PProtocol):
     registry = {}
 
     def __init__(self, name, into=None, val_min=float('-inf'), val_max=float('inf')):
-     
+
         PProtocol.__init__(
             self, name, into=into, val_min=val_min, val_max=val_max)
         self.val_min = val_min
         self.val_max = val_max
 
     def default(self, obj, into, val_min, val_max):
-        if type(into)  ==types.FunctionType : 
-               maListeDeValeur=into()
-               into=maListeDeValeur
+        if type(into)  ==types.FunctionType :
+            maListeDeValeur=into()
+            into=maListeDeValeur
         if into:
             if obj not in into:
                 raise ValError(
@@ -1470,15 +1477,14 @@ class FunctionVal(Valid):
         return valeur
 
 # MC ca ne devrait plus servir !
-CoercableFuncs = {int:     int,
-                  int:    int,
-                  float:   float,
-                  complex: complex,
-                  str: six.text_type}
+# PN : commenter le 22.11.19
+#CoercableFuncs = {int:     int,
+#                  int:    int,
+#                  float:   float,
+#                  complex: complex,
+#                  str: six.text_type}
 
 
-#class FunctionValObjet(FunctionVal):
-#OOOOOOOOOOOOOOo
 
 class TypeVal(ListVal):
 
@@ -1616,7 +1622,7 @@ class VerifTypeTuple(ListVal):
             if type(valeur) == bytes or type(valeur) == str:
                 return 1
         elif isinstance(valeur, type_permis):
-                return 1
+            return 1
         return 0
 
     def verif(self, valeur):
@@ -1741,7 +1747,7 @@ class CreeMotClef(object):
     def __init__(self,MotClef ):
         self.MotClef=MotClef
         self.MCSimp=None
-         
+
     def convert(self, lval):
         try : valeur=lval[0]
         except  : return lval
@@ -1754,20 +1760,20 @@ class CreeMotClef(object):
         else : longueur=len(parent.getChild(self.MotClef))
 
         pos=parent.getIndexChild(self.MCSimp.nom)+1
-        while longueur < valeur : 
-           parent.inhibeValidator=1
-           parent.addEntite(self.MotClef,pos)
-           pos=pos+1
-           parent.inhibeValidator=0
-           longueur=len(parent.getChild(self.MotClef))
-
-        if longueur > valeur : 
-           parent.inhibeValide=1
-           parentObj=parent.getChild(self.MotClef)
-           obj=parent.getChild(self.MotClef)[-1]
-           parentObj.suppEntite(obj)
-           longueur=len(parent.getChild(self.MotClef))
-           parent.inhibeValide=0
+        while longueur < valeur :
+            parent.inhibeValidator=1
+            parent.addEntite(self.MotClef,pos)
+            pos=pos+1
+            parent.inhibeValidator=0
+            longueur=len(parent.getChild(self.MotClef))
+
+        if longueur > valeur :
+            parent.inhibeValide=1
+            parentObj=parent.getChild(self.MotClef)
+            obj=parent.getChild(self.MotClef)[-1]
+            parentObj.suppEntite(obj)
+            longueur=len(parent.getChild(self.MotClef))
+            parent.inhibeValide=0
         return lval
 
     def info(self):
index 122719d274320d5292da49bab076a02f3ee6ee64..07a405d9eb5828031e6424c8c7232cbddf3458f8 100644 (file)
 
 from __future__ import absolute_import
 try :
-   from past.builtins import cmp
+    from past.builtins import cmp
 except :
-   pass
+    pass
 try:
-   from UserDict import UserDict
+    from UserDict import UserDict
 except ImportError:
-   from collections import UserDict
+    from collections import UserDict
 
 
 class _F(UserDict):
index fc7661ae6c5aa6d33986e676a4ac7209feb31516..5e1ba24a9004291cbfb991d1434e77c7d81fbebb 100644 (file)
@@ -27,24 +27,23 @@ from __future__ import absolute_import
 from __future__ import print_function
 from __future__ import division
 try :
-   from builtins import str
-   from builtins import object
+    from builtins import str
+    from builtins import object
 except :
-   pass
+    pass
 import sys
 
 # Modules EFICAS
 from .N_Exception import AsException
 from .N_types import isInt, isFloat, isComplex, isStr, isSequence, isASSD
 from .strfunc import getEncoding
-import six
 
 SEP = '_'
 
 try :
-  cur_frame = sys._getframe
+    cur_frame = sys._getframe
 except :
-  print ('pb avec la version de python pour cur_frame = sys._getframe')
+    print ('pb avec la version de python pour cur_frame = sys._getframe')
 
 def calleeWhere(niveau=4):
     """
@@ -57,6 +56,7 @@ def calleeWhere(niveau=4):
         # Python 2.7 compile function does not accept unicode filename, so we encode it
         # with the current locale encoding in order to have a correct traceback.
         # Here, we convert it back to unicode.
+        import six
         filename = six.text_type(frame.f_code.co_filename, getEncoding())
         return frame.fLineNo, filename, frame.f_code.co_firstlineno, frame.f_locals
     except:
index f2ab7062d05d87654c63fff378a688f4ffcfdea5..fbbfde0df7c81fcdbd5dc5dca8984212e554c543 100644 (file)
@@ -1,6 +1,6 @@
 # coding=utf-8
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2017  EDF R&D                  WWW.CODE-ASTER.ORG
+# COPYRIGHT (C) 2007-2021  EDF R&D                  
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
@@ -35,11 +35,11 @@ from __future__ import absolute_import
 from . import context
 
 try :
-   import __builtin__
-   __builtin__.CONTEXT = context
-except : 
-   import builtins
-   builtins.CONTEXT = context
+    import __builtin__
+    __builtin__.CONTEXT = context
+except :
+    import builtins
+    builtins.CONTEXT = context
 
 
 # Classes de base
index 4e0833e034cde375684a340fca870fe97bf60e22..602800fe2e151d92914ea0a596045a06381651f2 100644 (file)
@@ -1,6 +1,6 @@
 # coding=utf-8
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2017  EDF R&D                  WWW.CODE-ASTER.ORG
+# COPYRIGHT (C) 2007-2021  EDF R&D                  
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
@@ -21,6 +21,7 @@
 from __future__ import absolute_import
 _root = None
 _cata = None
+_jdc  = None
 debug = 0
 
 # Le "current step" est l'etape courante.
@@ -78,3 +79,26 @@ def unsetCurrentCata():
     """
     global _cata
     _cata = None
+
+
+def getCurrentJdC():
+    """
+       Fonction qui retourne l'objet JDC courant
+    """
+    return _jdc
+
+def setCurrentJdC(jdc):
+    """
+       Fonction qui permet de changer l'objet JDC courant
+    """
+    global _jdc
+    if _jdc:
+        raise Exception("Impossible d'affecter _jdc. Il devrait valoir None")
+    _jdc = jdc
+
+def unsetCurrentJdC():
+    """
+       Fonction qui permet de remettre a None le JDC courant
+    """
+    global _jdc
+    _jdc = None
index d86c54ef731068db9cdf61961ebd2ccb6fe2b0ad..93c8db067a7da46f27253022b22f4fdde3baf1d9 100644 (file)
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
-   from builtins import range
+    from builtins import str
 except :
-   pass
+    pass
 import re
 import linecache
 import sys
@@ -48,8 +47,6 @@ from functools import partial
 # Modules EFICAS
 from . import N_utils
 from .strfunc import getEncoding
-import six
-from six.moves import range
 
 regex1 = '=?\s*%s\s*\('
 # commentaire standard precede d'un nombre quelconque de blancs (pas
@@ -79,9 +76,10 @@ def _getNomConceptResultat(ope, level=2):
     # lineno = f_lineno(f)  # Ne marche pas toujours
     co = f.f_code
     if sys.version_info >= (3,0) :
-       filename = co.co_filename
-    else : 
-       filename = six.text_type(co.co_filename, getEncoding())
+        filename = co.co_filename
+    else :
+        import six
+        filename = six.text_type(co.co_filename, getEncoding())
     name = co.co_name
     # pattern pour identifier le debut de la commande
     pattern_oper = re.compile(regex1 % ope)
index b4565567a1936761f1b5c29eb13cfa71e33bd423..4bb51c42eb3856384a99110bd00584c7fd7d7d9b 100644 (file)
@@ -24,7 +24,7 @@ de chaines de caractères
 
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import locale
index 8ed65e16a50bcabaa4a42a6f04eb780bedcc70c4..5b4f0e3bad684df41a50070961e4915c4e341a15 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2012   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 4851738f54253a93f06fe505014d619e639373ca..20e2f5959163e9bfc921d329c268c87855277c0e 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-\r
-# Copyright (C) 2007-2012   EDF R&D\r
+# Copyright (C) 2007-2021   EDF R&D\r
 #\r
 # This library is free software; you can redistribute it and/or\r
 # modify it under the terms of the GNU Lesser General Public\r
index b4663f8f3e3456a1194a37acbd36b4d41ebbd798..8210a6b060be780d23b640598e0c3beada31f78a 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2012   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index f9aa732c4eca239856838e932de0094862f5c13b..8e5c51e422e11f586e6af928d40defda5756b329 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2012   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 3e8be170b3e1bf722c6336f1e4d5fba0268300b9..fe6ffb0d003def481b3495bd25d0de9a0b55443d 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2012   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index f49b9bcbf4b23d821586be3393feae9927345eb5..336afdff016a1c5b82a30d387e67db995f332354 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2012   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 308eda6bfb6507ce87aa500e1cb801f69183d27a..af68952c76ffb4af2a5ff03e1242b20fd4727808 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2012   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 7ee50545f614c61a0c85aa30996978319c32978b..316b4d1f101bb0fd1e3fecd73bc5f17d039443c3 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2012   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
diff --git a/OldCodes/Carmel3D/CMakeLists.txt b/OldCodes/Carmel3D/CMakeLists.txt
new file mode 100644 (file)
index 0000000..2f24146
--- /dev/null
@@ -0,0 +1,33 @@
+# -*- coding: utf-8 -*-
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+
+
+install ( FILES 
+            qtEficas_Carmel3D.py prefs_CARMEL3D.py prefs.py configuration_CARMEL3D.py
+           Carmel3D_Cata_frequentiel_V0.py opsCarmel.py ajoutGroupe.py
+          DESTINATION ${CMAKE_INSTALL_PREFIX}/Carmel3D
+        )
+
+add_subdirectory (materiaux)
+
+### Local Variables:
+### mode: cmake
+### End:
diff --git a/OldCodes/Carmel3D/Carmel3D_Cata_V0.py b/OldCodes/Carmel3D/Carmel3D_Cata_V0.py
new file mode 100644 (file)
index 0000000..4e05a02
--- /dev/null
@@ -0,0 +1,553 @@
+# -*- coding: utf-8 -*-
+# --------------------------------------------------
+# Copyright (C) 2007-2021   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+# --------------------------------------------------
+
+import os
+import sys
+from Accas import *
+import types
+from decimal import Decimal
+# repertoire ou sont stockés le catalogue carmel3d 
+# et les fichiers de donnees des materiaux de reference
+from prefs_CARMEL3D import repIni
+
+#print "catalogue carmel"
+#print "repIni = ", repIni
+
+# Version du catalogue
+VERSION_CATA = "2.3.1 for harmonic problems"
+# --------------------------------------------------
+# definition d une classe pour les materiaux
+# definition d une classe pour les sources
+# definition d une classe pour les groupes de mailles
+# --------------------------------------------------
+class material ( ASSD ) : pass
+class source   ( ASSD ) : pass
+class grmaille ( ASSD ) : pass
+
+#CONTEXT.debug = 1
+# --------------------------------------------------
+# déclaration du jeu de commandes : 1ere instruction du catalogue obligatoire 
+#---------------------------------------------------
+
+JdC = JDC_CATA ( code = 'CARMEL3D',
+#                execmodul = None,
+                 regles =(
+                           AU_MOINS_UN ('MATERIAL','INCLUDE'),
+                           ENSEMBLE ('SOURCE','MESHGROUP'),
+                           ),
+                 ) # Fin JDC_CATA
+##=========================================================
+# création d'une macro pour traiter les INCLUDE
+#
+#----------------------------------------------------------
+
+import opsCarmel
+INCLUDE = MACRO ( nom = "INCLUDE",
+                 op = None,
+                 UIinfo = { "groupes" : ( "Gestion du travail", ) },
+                 sd_prod = opsCarmel.INCLUDE,
+                 op_init = opsCarmel.INCLUDE_context,
+                 fichier_ini = 1,
+   FileName = SIMP ( statut = "o",
+                    typ = ('Fichier', 'comm Files (*.comm);;All Files (*)',),
+                     fr = u"bibliothèque des matériaux",
+                    ang = "material library file",
+                     ),
+  
+ ) # Fin MACRO 
+
+# --------------------------------------------------
+# definition de groupe de mailles
+# il est associe a un  materiau ou a une source
+#---------------------------------------------------
+
+MESHGROUP     = OPER (nom = "MESHGROUP",
+                    op = None,
+                repetable = 'n',
+                    UIinfo= {"groupes":("Definition",)},
+            fr= u"attribution d'un matériau ou d'une source à un groupe du maillage", 
+            ang = "mesh group association to material or source", 
+                    sd_prod= grmaille,
+                    regles =(
+                             EXCLUS ('MATERIAL','SOURCE'),
+                           ),
+
+# ----------------------------------------------------------
+# le mot cle SIMP doit etre facultatif sinon la recuperation 
+# des groupes de mailles sous SALOME ne fonctionne pas car 
+# le concept ne peut pas etre nomme car non valide
+#-----------------------------------------------------------
+              MATERIAL =  SIMP (statut="f",
+                         typ=(material,),
+                                 ang="name of the linked material",
+                         fr =u"nom du matériau associé",
+                                ), 
+              SOURCE =  SIMP (statut="f",
+                         typ=(source,),
+                                 ang="name of the linked source",
+                         fr =u"nom de la source associée",
+                                ), 
+                      )
+
+
+#======================================================================
+# le fichier .PHYS contient 3 blocs et jusqu'a 3 niveaux de sous-blocs
+# 
+#======================================================================
+# 1er bloc : bloc VERSION
+# ce bloc est volontairement cache dans l IHM 
+#===================================================
+
+VERSION = PROC ( nom = "VERSION",
+                        op = None,
+                repetable = 'n',
+                        UIinfo= {"groupes":("CACHE",)},
+                        ang= "version block definition", 
+
+#----------------------
+# Liste des parametres
+#----------------------
+        
+   NUM      = SIMP (statut="o",
+                    typ="I",
+            defaut=1, 
+                    ang="version number of the physical model", 
+                    into=( 1,),
+                   ),
+   FILETYPE = SIMP (statut="o",
+                    typ="TXM",
+            defaut="PHYS", 
+                    ang="file type",
+                    into=( "PHYS",),
+                   ),
+
+) # Fin PROC VERSION
+
+#===================================================================
+# 2eme bloc : bloc MATERIALS
+#===================================================================
+# definition des matériaux utilisateurs 
+# a partir des materiaux de reference ou de materiaux generiques
+#-------------------------------------------------------------------
+#
+MATERIAL = OPER (nom = "MATERIAL",
+                 op = None,
+                 repetable = 'n',
+                 ang= "material block definition", 
+                 fr= u"définition d'un matériau", 
+                 sd_prod= material,
+                 regles=EXCLUS('PERMITTIVITY','CONDUCTIVITY'),
+
+#---------------------------------------------------------------------
+# liste des matériaux de reference fournis par THEMIS et  des
+# materiaux generiques (les materiaux generiques peuvent etre utilises 
+# si aucun materiau de reference  ne convient) 
+#---------------------------------------------------------------------
+# debut commentaire PN pour que le fichier materiaux soit valide
+#                 TYPE = SIMP(statut='o',
+                 MAT_REF = SIMP(statut='f',
+                             typ='TXM',
+                             into=(
+#  matériaux génériques 
+                                 "DIELECTRIC",
+                                 "CONDUCTOR",
+                                 "ZINSULATOR","ZSURFACIC",
+                                 "NILMAT","EM_ISOTROPIC","EM_ANISOTROPIC",
+                             ),
+                             ang = "generic materials list",
+                             fr  = u"liste des matériaux génériques",
+                            ),
+
+##############################################################################
+# Remarque generale a tous les materiaux : 
+# pour conserver l'affichage scientifique le nombre derriere l'exposant doit
+# etre strictement superieur au nombre de decimales 
+#
+
+##----------------------------------------------------------------------------------------------
+# Données de perméabilité, utilisée pour les diélectriques, conducteurs et impédances de surface
+#-----------------------------------------------------------------------------------------------
+  #HAS_PERMEABILITY = BLOC(condition="TYPE in ('DIELECTRIC','CONDUCTOR','ZSURFACIC')",
+
+#------------------------------------------------
+# sous bloc niveau 2 : PERMEABILITY
+#------------------------------------------------
+#
+  PERMEABILITY = FACT ( statut="f", 
+                        ang ="Permeability properties",
+                        fr  =u"propriétés de perméabilité du matériau",
+                        HOMOGENEOUS = SIMP (statut="o",
+                                            typ="TXM",
+                                            defaut="TRUE",
+                                            into = ("TRUE","FALSE"),
+                                            ang = "the material is homogeneous or not",
+                                            fr  = u"le matériau est homogène ou non",
+                                           ),
+                        ISOTROPIC = SIMP (statut="o",
+                                          typ="TXM",
+                                          defaut="TRUE",
+                                          into = ("TRUE","FALSE"),
+                                          ang = "the material is isotropic or not",
+                                          fr  = u"le matériau est isotrope ou non",
+                                         ),
+                   HOMOGENEOUS_ISOTROPIC_PROPERTIES = BLOC (condition="HOMOGENEOUS=='TRUE' and ISOTROPIC=='TRUE'",
+                        TYPE_LAW = SIMP (statut="o",
+                                    typ="TXM",
+                                    defaut="LINEAR_REAL",
+                                    into = ("LINEAR_REAL","NONLINEAR"),
+                                    ang = "harmonic or time-domain linear or nonlinear law only for homogeneous and isotropic materials",
+                                    fr  = u"loi linéaire (fréquentielle ou temporelle) ou non (homogène et isotrope seulement)",
+                                   ), 
+                        VALUE = SIMP (statut="o",
+                                      typ="C", 
+                                      defaut=('RI',1,0),
+                                      ang = "Relative linear permeability value, also used at first nonlinear iteration",
+                                      fr = u"Valeur de la perméabilité relative à l'air utilisée pour une loi linéaire ou pour la première itération non-linéaire",
+                                     ),
+                    NONLINEAR_LAW_PROPERTIES = BLOC (condition="LAW=='NONLINEAR'",
+                        NATURE = SIMP (statut="o",
+                                       typ="TXM",
+                                       defaut="MARROCCO",
+                                       into = ("SPLINE","MARROCCO","MARROCCO+SATURATION"),
+                                       ang = "nature law",
+                                       fr  = u"nature de la loi",
+                                      ),
+                     SPLINE_LAW_PROPERTIES = BLOC (condition="NATURE=='SPLINE'",
+                        FILENAME = SIMP (statut="o", 
+                                         typ=("FichierNoAbs",'All Files (*)',), # l'existence du fichier n'est pas vérifiée
+                                         ang="data file name",
+                                         fr =u"nom du fichier contenant les mesures expérimentales B(H)",
+                                        ),
+                     ), # Fin BLOC SPLINE_PROPERTIES
+                     MARROCCO_LAW_PROPERTIES = BLOC (condition="NATURE in ('MARROCCO','MARROCCO+SATURATION')",
+                        ALPHA = SIMP (statut="o", 
+                                      typ="R",
+                                      defaut=0,
+                                      val_min=0,
+                                      ang="alpha parameter",
+                                      fr =u"paramètre alpha de la loi de Marrocco" ,
+                                     ),
+                        TAU = SIMP (statut="o", 
+                                    typ="R",
+                                    defaut=0,
+                                    val_min=0,
+                                    ang="tau parameter",
+                                    fr =u"paramètre tau de la loi de Marrocco" ,
+                                   ),
+                        C = SIMP (statut="o", 
+                                  typ="R",
+                                  defaut=0,
+                                  val_min=0,
+                                  ang="c parameter",
+                                  fr =u"paramètre c de la loi de Marrocco" ,
+                                 ),
+                        EPSILON = SIMP (statut="o", 
+                                        typ="R",
+                                        defaut=0,
+                                        val_min=0,
+                                        ang="epsilon parameter",
+                                        fr =u"paramètre epsilon de la loi de Marrocco" ,
+                                       ),
+                     ), # Fin BLOC MARROCCO_LAW_PROPERTIES
+                     SATURATION_LAW_PROPERTIES = BLOC (condition="NATURE=='MARROCCO+SATURATION'",
+                        BMAX = SIMP (statut="o", 
+                                     typ="R",
+                                     defaut=0,
+                                     val_min=0,
+                                     ang="intersection B",
+                                     fr = u"valeur de B marquant la fin de la loi de Marrocco et le début du raccord à la loi de saturation",
+                                    ),
+                        HSAT = SIMP (statut="o", 
+                                     typ="R",
+                                     defaut=0,
+                                     val_min=0,
+                                     ang="H value",
+                                     fr = u"valeur de H définissant la loi de saturation",
+                                    ),
+                        BSAT = SIMP (statut="o", 
+                                     typ="R",
+                                     defaut=0,
+                                     val_min=0,
+                                     ang="B value",
+                                     fr = u"valeur de B définissant la loi de saturation",
+                                    ),
+                        JOIN = SIMP (statut="o", 
+                                     typ="TXM",
+                                     defaut="SPLINE",
+                                     into= ("SPLINE","PARABOLIC","LINEAR"),
+                                     ang="type of join between laws",
+                                     fr =u"type de raccord entre la loi choisie et la loi de saturation" ,
+                                    ),
+                     ), # Fin BLOC SATURATION_LAW_PROPERTIES
+                        APPLIEDTO = SIMP (statut="o",    
+                                          typ="TXM",   
+                                          into=("B(H)&H(B)","B(H)","H(B)"),
+                                          defaut="B(H)&H(B)",
+                                          ang="join applied to",
+                                          fr =u"Le raccord tel que défini est appliqué à la courbe B(H) seulement, à la courbe H(B) seulement ou aux deux courbes à la fois. Dans les deux premiers cas, le raccord de la courbe H(B) est inversé numériquement à partir du raccord défini pour la courbe B(H), et vice-versa.",
+                                         ),
+                    ), # Fin BLOC NONLINEAR_LAW_PROPERTIES
+                   ), # Fin BLOC HOMOGENEOUS_ISOTROPIC_PROPERTIES
+             ), # fin FACT PERMEABILITY
+   #), # Fin BLOC HAS_PERMEABILITY
+
+##------------------------------------------------------------------
+# Données de permittivité, utilisée pour les diélectriques seulement
+#-------------------------------------------------------------------
+  #HAS_PERMITTIVITY = BLOC(condition="TYPE == 'DIELECTRIC'",
+
+#------------------------------------------------
+# sous bloc niveau 2 : PERMITTIVITY
+#------------------------------------------------
+  PERMITTIVITY = FACT ( statut="f", 
+                        ang ="Permittivity properties",
+                        fr  = u"propriétés de permittivité du matériau",
+                        HOMOGENEOUS = SIMP (statut="o",
+                                            typ="TXM",
+                                            defaut="TRUE",
+                                            into = ("TRUE","FALSE"),
+                                            ang = "the material is homogeneous or not",
+                                            fr  = u"le matériau est homogène ou non",
+                                           ),
+                        ISOTROPIC = SIMP (statut="o",
+                                          typ="TXM",
+                                          defaut="TRUE",
+                                          into = ("TRUE","FALSE"),
+                                          ang = "the material is isotropic or not",
+                                          fr  = u"le matériau est isotrope ou non",
+                                         ),
+                       HOMOGENEOUS_ISOTROPIC_PROPERTIES = BLOC (condition="HOMOGENEOUS=='TRUE' and ISOTROPIC=='TRUE'",
+                        LAW = SIMP (statut="o",
+                                    typ="TXM",
+                                    defaut="LINEAR",
+                                    into = ("LINEAR",),
+                                    ang = "linear law",
+                                    fr  = u"loi linéaire",
+                                   ),
+                        VALUE = SIMP (statut="o",
+                                      typ="C", 
+                                      defaut=('RI',1,0),
+                                      ang = "enter a complex relative value",
+                                      fr = u"saisir une valeur complexe relative",
+                                     ),
+                       ), # Fin BLOC HOMOGENEOUS_ISOTROPIC_PROPERTIES
+                      ), # fin FACT PERMITTIVITY
+
+   #), # Fin BLOC HAS_PERMITTIVITY
+
+##----------------------------------------------------------------------------------------------
+# Données de conductivité, utilisée pour les conducteurs et impédances de surface
+#-----------------------------------------------------------------------------------------------
+  #HAS_CONDUCTIVITY = BLOC(condition="TYPE in ('CONDUCTOR','ZSURFACIC')",
+#------------------------------------------------
+# sous bloc niveau 2 : CONDUCTIVITY
+#------------------------------------------------
+  CONDUCTIVITY = FACT ( statut="f", 
+                        ang ="Permittivity properties",
+                        fr  = u"propriétés de permittivité du matériau",
+                        HOMOGENEOUS = SIMP (statut="o",
+                                            typ="TXM",
+                                            defaut="TRUE",
+                                            into = ("TRUE","FALSE"),
+                                            ang = "the material is homogeneous or not",
+                                            fr  = u"le matériau est homogène ou non",
+                                           ),
+                        ISOTROPIC = SIMP (statut="o",
+                                          typ="TXM",
+                                          defaut="TRUE",
+                                          into = ("TRUE","FALSE"),
+                                          ang = "the material is isotropic or not",
+                                          fr  = u"le matériau est isotrope ou non",
+                                         ),
+                       HOMOGENEOUS_ISOTROPIC_PROPERTIES = BLOC (condition="HOMOGENEOUS=='TRUE' and ISOTROPIC=='TRUE'",
+                        LAW = SIMP (statut="o",
+                                    typ="TXM",
+                                    defaut="LINEAR",
+                                    into = ("LINEAR",),
+                                    ang = "linear law",
+                                    fr  = u"loi linéaire",
+                                   ),
+                        VALUE = SIMP (statut="o",
+                                      typ="C", 
+                                      defaut=('RI',1,0),
+                                      ang = "enter a complex relative value",
+                                      fr = u"saisir une valeur complexe relative",
+                                     ),
+                       ), # Fin BLOC HOMOGENEOUS_ISOTROPIC_PROPERTIES
+                      ), # fin FACT CONDUCTIVITY
+
+   #), # Fin BLOC HAS_CONDUCTICITY
+
+###################################################################################################
+#---------------------------------------------
+# sous bloc niveau 1  
+#---------------------------------------
+# matériau generique de type ZINSULATOR 
+#---------------------------------------
+  
+# aucun parametre a saisir pour ce materiau
+
+
+###################################################################################################
+#---------------------------------------------
+# sous bloc niveau 1     
+#---------------------------------------------
+# matériau generique de type NILMAT (fictif)  
+#---------------------------------------------
+  
+# aucun parametre a saisir pour ce materiau
+
+
+###################################################################################################
+#----------------------------------------------------------
+# sous bloc niveau 1 : EM_ISOTROPIC_FILES   
+#-------------------------------------------------
+# matériau isotropique non homogene generique
+#-------------------------------------------------
+   EM_ISOTROPIC_properties=BLOC(condition="TYPE=='EM_ISOTROPIC'", 
+               
+           CONDUCTIVITY_File = SIMP (statut="o", 
+                                     typ=("FichierNoAbs",'MED Files (*.med)',),
+                                     ang="CONDUCTIVITY MED data file name",
+                                     fr = u"nom du fichier MED CONDUCTIVITY",
+                                    ),
+           PERMEABILITY_File = SIMP (statut="o", 
+                                     typ=("FichierNoAbs",'MED Files (*.med)',),
+                                     ang="PERMEABILITY MED data file name",
+                                     fr = u"nom du fichier MED PERMEABILITY",
+                                    ),
+   ), # fin bloc EM_ISOTROPIC_properties
+
+    
+#---------------------------------------------------
+# matériau  anisotropique non homogene generique 
+#---------------------------------------------------
+   EM_ANISOTROPIC_properties=BLOC(condition="TYPE=='EM_ANISOTROPIC'",
+                 
+           PERMEABILITY_File = SIMP (statut="o", 
+                                     #typ=("Fichier",'.mater Files (*.mater)'), # le fichier doit exister dans le répertoire d'où on lancer Eficas si le fichier est défini par un nom relatif, ce qui est trop contraignant
+                                     #typ=("Fichier",'.mater Files (*.mater)','Sauvegarde'), # Le fichier peut ne pas exister, mais on propose de le sauvegarder et d'écraser un fichier existant : pas approprié
+                                     typ=("FichierNoAbs",'.mater Files (*.mater)'), # l'existence du fichier n'est pas vérifiée, mais on peut le sélectionner quand même via la navigateur. C'est suffisant et permet une bibliothèque de matériaux.
+                                     ang="PERMEABILITY .mater data file name",
+                                     fr ="nom du fichier .mater PERMEABILITY",
+                                    ),
+           CONDUCTIVITY_File = SIMP (statut="o", 
+                                     typ=("FichierNoAbs",'.mater Files (*.mater)'),
+                                     ang="CONDUCTIVITY .mater data file name",
+                                     fr ="nom du fichier .mater CONDUCTIVITY",
+                                    ),
+   ), # fin bloc EM_ANISOTROPIC_properties
+
+
+) # fin OPER MATERIAL
+    
+#===================================================================
+# 3eme bloc : bloc SOURCES
+#====================================================================
+# definition des differentes sources qui seront dans le bloc SOURCES
+#-------------------------------------------------------------------
+#
+
+SOURCE = OPER ( nom = "SOURCE",
+                op = None,
+                repetable = 'n',
+                ang = "source definition", 
+                fr = u"définition d'une source", 
+                sd_prod = source,
+                regles = (UN_PARMI('STRANDED_INDUCTOR','HPORT','EPORT'), # choix d'un type de source
+                          UN_PARMI('WAVEFORM_CONSTANT','WAVEFORM_SINUS'), # choix d'une forme de source
+                         ),
+
+#----------------------------------------------------------
+# sous bloc niveau 1 : stranded inductor source 
+##---------------------------------------------------------
+                STRANDED_INDUCTOR = FACT(statut='f',
+                                         ang="Stranded inductor source",
+                                         fr=u"source de type inducteur bobiné",
+                                         NTURNS = SIMP (statut="o",
+                                                        typ="I",
+                                                        defaut=1,
+                                                        ang="number of turns in the inductor",
+                                                        fr= u"nombre de tours dans l'inducteur bobiné",
+                                                       ),
+                                         TYPE = SIMP (statut="o",
+                                                      typ="TXM",
+                                                      defaut="CURRENT",
+                                                      into=("CURRENT",),
+                                                      fr= u"source de type courant",
+                                                      ang="current source type",
+                                                     ),
+                ), # FIN de FACT STRANDED_INDUCTOR
+                HPORT = FACT(statut='f',
+                             ang="Magnetic port source",
+                             fr=u"source de type port magnétique",
+                             TYPE = SIMP (statut="o",
+                                          typ="TXM",
+                                          into=("VOLTAGE","CURRENT"),
+                                          fr= u"source de type tension ou courant",
+                                          ang="voltage or current source type",
+                                         ),
+                ), # FIN de FACT HPORT
+                EPORT = FACT(statut='f',
+                             ang="Electric port source",
+                             fr=u"source de type port électrique",
+                             TYPE = SIMP (statut="o",
+                                          typ="TXM",
+                                          into=("VOLTAGE","CURRENT"),
+                                          fr= u"source de type tension ou courant",
+                                          ang="voltage or current source type",
+                                         ),
+                ), # FIN de FACT EPORT
+                WAVEFORM_CONSTANT = FACT(statut='f',
+                                         ang="constant source",
+                                         fr=u"source constante",
+                                         AMPLITUDE = SIMP (statut="o",
+                                                           typ="R", 
+                                                           defaut=1,
+                                                           ang = "enter the source magnitude value, in A or V units",
+                                                           fr = u"saisir la valeur de l'amplitude de la source, en unités A ou V",
+                                                          ),
+                ), # FIN de FACT WAVEFORM_CONSTANT
+                WAVEFORM_SINUS = FACT(statut='f',
+                                      ang="sinus variation source",
+                                      fr=u"source variant avec une forme sinusoïdale, définie par son amplitude, sa fréquence et sa phase",
+                                      AMPLITUDE = SIMP (statut="o",
+                                                        typ="R", 
+                                                        defaut=1,
+                                                        ang = "enter the source magnitude value, in A or V units",
+                                                        fr = u"saisir la valeur de l'amplitude de la source, en unités A ou V",
+                                                       ),
+                                      FREQUENCY = SIMP (statut="o",
+                                                        typ="R", 
+                                                        defaut=50.0,
+                                                        ang = "enter the source frequency value, in Hz units",
+                                                        fr = u"saisir la valeur de la fréquence de la source, en Hz",
+                                                       ),
+                                      PHASE = SIMP (statut="o",
+                                                    typ="R", 
+                                                    defaut=0.0,
+                                                    ang = "enter the source phase value, in degrees units",
+                                                    fr = u"saisir la valeur de la phase de la source, en degrés",
+                                                   ),
+                ), # FIN de FACT WAVEFORM_SINUS
+) # Fin OPER SOURCE
diff --git a/OldCodes/Carmel3D/Carmel3D_Cata_frequentiel_V0.py b/OldCodes/Carmel3D/Carmel3D_Cata_frequentiel_V0.py
new file mode 100755 (executable)
index 0000000..1a3c84c
--- /dev/null
@@ -0,0 +1,552 @@
+# -*- coding: utf-8 -*-\r
+# --------------------------------------------------\r
+# Copyright (C) 2007-2021   EDF R&D\r
+#\r
+# This library is free software; you can redistribute it and/or\r
+# modify it under the terms of the GNU Lesser General Public\r
+# License as published by the Free Software Foundation; either\r
+# version 2.1 of the License.\r
+#\r
+# This library is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+# Lesser General Public License for more details.\r
+#\r
+# You should have received a copy of the GNU Lesser General Public\r
+# License along with this library; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+#\r
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com\r
+#\r
+# --------------------------------------------------\r
+\r
+import os\r
+import sys\r
+from Accas import *\r
+import types\r
+from decimal import Decimal\r
+# repertoire ou sont stockés le catalogue carmel3d \r
+# et les fichiers de donnees des materiaux de reference\r
+from prefs_CARMEL3D import repIni\r
+\r
+#print "catalogue carmel"\r
+#print "repIni = ", repIni\r
+\r
+# Version du catalogue\r
+VERSION_CATA = "2.3.1 for harmonic problems"\r
+# --------------------------------------------------\r
+# definition d une classe pour les materiaux\r
+# definition d une classe pour les sources\r
+# definition d une classe pour les groupes de mailles\r
+# --------------------------------------------------\r
+class material ( ASSD ) : pass\r
+class source   ( ASSD ) : pass\r
+class grmaille ( ASSD ) : pass\r
+\r
+#CONTEXT.debug = 1\r
+# --------------------------------------------------\r
+# déclaration du jeu de commandes : 1ere instruction du catalogue obligatoire \r
+#---------------------------------------------------\r
+\r
+##=========================================================\r
+JdC = JDC_CATA ( code = 'CARMEL3D',\r
+#                execmodul = None,\r
+                 regles =(\r
+                           AU_MOINS_UN ('MATERIAL','INCLUDE'),\r
+                           AU_MOINS_UN ('SOURCE','INCLUDE'),\r
+                           AU_MOINS_UN ('MESHGROUP'),\r
+                           ),\r
+                 ) # Fin JDC_CATA\r
+##=========================================================\r
+# création d'une macro pour traiter les INCLUDE\r
+#\r
+#----------------------------------------------------------\r
+\r
+import opsCarmel\r
+INCLUDE = MACRO ( nom = "INCLUDE",\r
+                 op = None,\r
+                 UIinfo = { "groupes" : ( "Gestion du travail", ) },\r
+                 sd_prod = opsCarmel.INCLUDE,\r
+                 op_init = opsCarmel.INCLUDE_context,\r
+                 fichier_ini = 1,\r
\r
+   FileName = SIMP ( statut = "o",\r
+                    typ = ('Fichier', 'comm Files (*.comm);;All Files (*)',),\r
+                     fr = u"bibliothèque des matériaux",\r
+                    ang = "material library file",\r
+                     ),\r
+  \r
+ ) # Fin MACRO \r
+# --------------------------------------------------\r
+# definition de groupe de mailles\r
+# il est associe a un  materiau ou a une source\r
+#---------------------------------------------------\r
+\r
+MESHGROUP     = OPER (nom = "MESHGROUP",\r
+                    op = None,\r
+                repetable = 'n',\r
+                    UIinfo= {"groupes":("Definition",)},\r
+            fr= u"attribution d'un matériau ou d'une source à un groupe du maillage", \r
+            ang = "mesh group association to material or source", \r
+                    sd_prod= grmaille,\r
+                    regles =(\r
+                             EXCLUS ('MATERIAL','SOURCE'),\r
+                           ),\r
+\r
+# ----------------------------------------------------------\r
+# le mot cle SIMP doit etre facultatif sinon la recuperation \r
+# des groupes de mailles sous SALOME ne fonctionne pas car \r
+# le concept ne peut pas etre nomme car non valide\r
+#-----------------------------------------------------------\r
+              MATERIAL =  SIMP (statut="f",\r
+                         typ=(material,),\r
+                                 ang="name of the linked material",\r
+                         fr =u"nom du matériau associé",\r
+                                ), \r
+              SOURCE =  SIMP (statut="f",\r
+                         typ=(source,),\r
+                                 ang="name of the linked source",\r
+                         fr =u"nom de la source associée",\r
+                                ), \r
+                      )\r
+\r
+\r
+#======================================================================\r
+# le fichier .PHYS contient 3 blocs et jusqu'a 3 niveaux de sous-blocs\r
+# \r
+#======================================================================\r
+# 1er bloc : bloc VERSION\r
+# ce bloc est volontairement cache dans l IHM \r
+#===================================================\r
+\r
+VERSION = PROC ( nom = "VERSION",\r
+                        op = None,\r
+                repetable = 'n',\r
+                        UIinfo= {"groupes":("CACHE",)},\r
+                        ang= "version block definition", \r
+\r
+#----------------------\r
+# Liste des parametres\r
+#----------------------\r
+        \r
+   NUM      = SIMP (statut="o",\r
+                    typ="I",\r
+            defaut=1, \r
+                    ang="version number of the physical model", \r
+                    into=( 1,),\r
+                   ),\r
+   FILETYPE = SIMP (statut="o",\r
+                    typ="TXM",\r
+            defaut="PHYS", \r
+                    ang="file type",\r
+                    into=( "PHYS",),\r
+                   ),\r
+\r
+) # Fin PROC VERSION\r
+\r
+#===================================================================\r
+# 2eme bloc : bloc MATERIALS\r
+#===================================================================\r
+# definition des matériaux utilisateurs \r
+# a partir des materiaux de reference ou de materiaux generiques\r
+#-------------------------------------------------------------------\r
+#\r
+MATERIAL = OPER (nom = "MATERIAL",\r
+                 op = None,\r
+                 repetable = 'n',\r
+                 ang= "material block definition", \r
+                 fr= u"définition d'un matériau", \r
+                 sd_prod= material,\r
+                 regles=EXCLUS('PERMITTIVITY','CONDUCTIVITY'),\r
+\r
+#---------------------------------------------------------------------\r
+# liste des matériaux de reference fournis par THEMIS et  des\r
+# materiaux generiques (les materiaux generiques peuvent etre utilises \r
+# si aucun materiau de reference  ne convient) \r
+#---------------------------------------------------------------------\r
+                 TYPE = SIMP(statut='o',\r
+                             typ='TXM',\r
+                             into=(\r
+#  matériaux génériques \r
+                                 "DIELECTRIC",\r
+                                 "CONDUCTOR",\r
+                                 "ZINSULATOR","ZSURFACIC",\r
+                                 "NILMAT","EM_ISOTROPIC","EM_ANISOTROPIC",\r
+                             ),\r
+                             ang = "generic materials list",\r
+                             fr  = u"liste des matériaux génériques",\r
+                            ),\r
+\r
+##############################################################################\r
+# Remarque generale a tous les materiaux : \r
+# pour conserver l'affichage scientifique le nombre derriere l'exposant doit\r
+# etre strictement superieur au nombre de decimales \r
+#\r
+\r
+##----------------------------------------------------------------------------------------------\r
+# Données de perméabilité, utilisée pour les diélectriques, conducteurs et impédances de surface\r
+#-----------------------------------------------------------------------------------------------\r
+  #HAS_PERMEABILITY = BLOC(condition="TYPE in ('DIELECTRIC','CONDUCTOR','ZSURFACIC')",\r
+\r
+#------------------------------------------------\r
+# sous bloc niveau 2 : PERMEABILITY\r
+#------------------------------------------------\r
+#\r
+  PERMEABILITY = FACT ( statut="f", \r
+                        ang ="Permeability properties",\r
+                        fr  =u"propriétés de perméabilité du matériau",\r
+                        HOMOGENEOUS = SIMP (statut="o",\r
+                                            typ="TXM",\r
+                                            defaut="TRUE",\r
+                                            into = ("TRUE","FALSE"),\r
+                                            ang = "the material is homogeneous or not",\r
+                                            fr  = u"le matériau est homogène ou non",\r
+                                           ),\r
+                        ISOTROPIC = SIMP (statut="o",\r
+                                          typ="TXM",\r
+                                          defaut="TRUE",\r
+                                          into = ("TRUE","FALSE"),\r
+                                          ang = "the material is isotropic or not",\r
+                                          fr  = u"le matériau est isotrope ou non",\r
+                                         ),\r
+                   HOMOGENEOUS_ISOTROPIC_PROPERTIES = BLOC (condition="HOMOGENEOUS=='TRUE' and ISOTROPIC=='TRUE'",\r
+                        LAW = SIMP (statut="o",\r
+                                    typ="TXM",\r
+                                    defaut="LINEAR",\r
+                                    into = ("LINEAR","NONLINEAR"),\r
+                                    ang = "harmonic or time-domain linear or nonlinear law only for homogeneous and isotropic materials",\r
+                                    fr  = u"loi linéaire (fréquentielle ou temporelle) ou non (homogène et isotrope seulement)",\r
+                                   ), \r
+                        VALUE = SIMP (statut="o",\r
+                                      typ="C", \r
+                                      defaut=('RI',1,0),\r
+                                      ang = "Relative linear permeability value, also used at first nonlinear iteration",\r
+                                      fr = u"Valeur de la perméabilité relative à l'air utilisée pour une loi linéaire ou pour la première itération non-linéaire",\r
+                                     ),\r
+                    NONLINEAR_LAW_PROPERTIES = BLOC (condition="LAW=='NONLINEAR'",\r
+                        NATURE = SIMP (statut="o",\r
+                                       typ="TXM",\r
+                                       defaut="MARROCCO",\r
+                                       into = ("SPLINE","MARROCCO","MARROCCO+SATURATION"),\r
+                                       ang = "nature law",\r
+                                       fr  = u"nature de la loi",\r
+                                      ),\r
+                     SPLINE_LAW_PROPERTIES = BLOC (condition="NATURE=='SPLINE'",\r
+                        FILENAME = SIMP (statut="o", \r
+                                         typ=("FichierNoAbs",'All Files (*)',), # l'existence du fichier n'est pas vérifiée\r
+                                         ang="data file name",\r
+                                         fr =u"nom du fichier contenant les mesures expérimentales B(H)",\r
+                                        ),\r
+                     ), # Fin BLOC SPLINE_PROPERTIES\r
+                     MARROCCO_LAW_PROPERTIES = BLOC (condition="NATURE in ('MARROCCO','MARROCCO+SATURATION')",\r
+                        ALPHA = SIMP (statut="o", \r
+                                      typ="R",\r
+                                      defaut=0,\r
+                                      val_min=0,\r
+                                      ang="alpha parameter",\r
+                                      fr =u"paramètre alpha de la loi de Marrocco" ,\r
+                                     ),\r
+                        TAU = SIMP (statut="o", \r
+                                    typ="R",\r
+                                    defaut=0,\r
+                                    val_min=0,\r
+                                    ang="tau parameter",\r
+                                    fr =u"paramètre tau de la loi de Marrocco" ,\r
+                                   ),\r
+                        C = SIMP (statut="o", \r
+                                  typ="R",\r
+                                  defaut=0,\r
+                                  val_min=0,\r
+                                  ang="c parameter",\r
+                                  fr =u"paramètre c de la loi de Marrocco" ,\r
+                                 ),\r
+                        EPSILON = SIMP (statut="o", \r
+                                        typ="R",\r
+                                        defaut=0,\r
+                                        val_min=0,\r
+                                        ang="epsilon parameter",\r
+                                        fr =u"paramètre epsilon de la loi de Marrocco" ,\r
+                                       ),\r
+                     ), # Fin BLOC MARROCCO_LAW_PROPERTIES\r
+                     SATURATION_LAW_PROPERTIES = BLOC (condition="NATURE=='MARROCCO+SATURATION'",\r
+                        BMAX = SIMP (statut="o", \r
+                                     typ="R",\r
+                                     defaut=0,\r
+                                     val_min=0,\r
+                                     ang="intersection B",\r
+                                     fr = u"valeur de B marquant la fin de la loi de Marrocco et le début du raccord à la loi de saturation",\r
+                                    ),\r
+                        HSAT = SIMP (statut="o", \r
+                                     typ="R",\r
+                                     defaut=0,\r
+                                     val_min=0,\r
+                                     ang="H value",\r
+                                     fr = u"valeur de H définissant la loi de saturation",\r
+                                    ),\r
+                        BSAT = SIMP (statut="o", \r
+                                     typ="R",\r
+                                     defaut=0,\r
+                                     val_min=0,\r
+                                     ang="B value",\r
+                                     fr = u"valeur de B définissant la loi de saturation",\r
+                                    ),\r
+                        JOIN = SIMP (statut="o", \r
+                                     typ="TXM",\r
+                                     defaut="SPLINE",\r
+                                     into= ("SPLINE","PARABOLIC","LINEAR"),\r
+                                     ang="type of join between laws",\r
+                                     fr =u"type de raccord entre la loi choisie et la loi de saturation" ,\r
+                                    ),\r
+                     ), # Fin BLOC SATURATION_LAW_PROPERTIES\r
+                        APPLIEDTO = SIMP (statut="o",    \r
+                                          typ="TXM",   \r
+                                          into=("B(H)&H(B)","B(H)","H(B)"),\r
+                                          defaut="B(H)&H(B)",\r
+                                          ang="join applied to",\r
+                                          fr =u"Le raccord tel que défini est appliqué à la courbe B(H) seulement, à la courbe H(B) seulement ou aux deux courbes à la fois. Dans les deux premiers cas, le raccord de la courbe H(B) est inversé numériquement à partir du raccord défini pour la courbe B(H), et vice-versa.",\r
+                                         ),\r
+                    ), # Fin BLOC NONLINEAR_LAW_PROPERTIES\r
+                   ), # Fin BLOC HOMOGENEOUS_ISOTROPIC_PROPERTIES\r
+             ), # fin FACT PERMEABILITY\r
+   #), # Fin BLOC HAS_PERMEABILITY\r
+\r
+##------------------------------------------------------------------\r
+# Données de permittivité, utilisée pour les diélectriques seulement\r
+#-------------------------------------------------------------------\r
+  #HAS_PERMITTIVITY = BLOC(condition="TYPE == 'DIELECTRIC'",\r
+\r
+#------------------------------------------------\r
+# sous bloc niveau 2 : PERMITTIVITY\r
+#------------------------------------------------\r
+  PERMITTIVITY = FACT ( statut="f", \r
+                        ang ="Permittivity properties",\r
+                        fr  = u"propriétés de permittivité du matériau",\r
+                        HOMOGENEOUS = SIMP (statut="o",\r
+                                            typ="TXM",\r
+                                            defaut="TRUE",\r
+                                            into = ("TRUE","FALSE"),\r
+                                            ang = "the material is homogeneous or not",\r
+                                            fr  = u"le matériau est homogène ou non",\r
+                                           ),\r
+                        ISOTROPIC = SIMP (statut="o",\r
+                                          typ="TXM",\r
+                                          defaut="TRUE",\r
+                                          into = ("TRUE","FALSE"),\r
+                                          ang = "the material is isotropic or not",\r
+                                          fr  = u"le matériau est isotrope ou non",\r
+                                         ),\r
+                       HOMOGENEOUS_ISOTROPIC_PROPERTIES = BLOC (condition="HOMOGENEOUS=='TRUE' and ISOTROPIC=='TRUE'",\r
+                        LAW = SIMP (statut="o",\r
+                                    typ="TXM",\r
+                                    defaut="LINEAR",\r
+                                    into = ("LINEAR",),\r
+                                    ang = "linear law",\r
+                                    fr  = u"loi linéaire",\r
+                                   ),\r
+                        VALUE = SIMP (statut="o",\r
+                                      typ="C", \r
+                                      defaut=('RI',1,0),\r
+                                      ang = "enter a complex relative value",\r
+                                      fr = u"saisir une valeur complexe relative",\r
+                                     ),\r
+                       ), # Fin BLOC HOMOGENEOUS_ISOTROPIC_PROPERTIES\r
+                      ), # fin FACT PERMITTIVITY\r
+\r
+   #), # Fin BLOC HAS_PERMITTIVITY\r
+\r
+##----------------------------------------------------------------------------------------------\r
+# Données de conductivité, utilisée pour les conducteurs et impédances de surface\r
+#-----------------------------------------------------------------------------------------------\r
+  #HAS_CONDUCTIVITY = BLOC(condition="TYPE in ('CONDUCTOR','ZSURFACIC')",\r
+#------------------------------------------------\r
+# sous bloc niveau 2 : CONDUCTIVITY\r
+#------------------------------------------------\r
+  CONDUCTIVITY = FACT ( statut="f", \r
+                        ang ="Permittivity properties",\r
+                        fr  = u"propriétés de permittivité du matériau",\r
+                        HOMOGENEOUS = SIMP (statut="o",\r
+                                            typ="TXM",\r
+                                            defaut="TRUE",\r
+                                            into = ("TRUE","FALSE"),\r
+                                            ang = "the material is homogeneous or not",\r
+                                            fr  = u"le matériau est homogène ou non",\r
+                                           ),\r
+                        ISOTROPIC = SIMP (statut="o",\r
+                                          typ="TXM",\r
+                                          defaut="TRUE",\r
+                                          into = ("TRUE","FALSE"),\r
+                                          ang = "the material is isotropic or not",\r
+                                          fr  = u"le matériau est isotrope ou non",\r
+                                         ),\r
+                       HOMOGENEOUS_ISOTROPIC_PROPERTIES = BLOC (condition="HOMOGENEOUS=='TRUE' and ISOTROPIC=='TRUE'",\r
+                        LAW = SIMP (statut="o",\r
+                                    typ="TXM",\r
+                                    defaut="LINEAR",\r
+                                    into = ("LINEAR",),\r
+                                    ang = "linear law",\r
+                                    fr  = u"loi linéaire",\r
+                                   ),\r
+                        VALUE = SIMP (statut="o",\r
+                                      typ="C", \r
+                                      defaut=('RI',1,0),\r
+                                      ang = "enter a complex relative value",\r
+                                      fr = u"saisir une valeur complexe relative",\r
+                                     ),\r
+                       ), # Fin BLOC HOMOGENEOUS_ISOTROPIC_PROPERTIES\r
+                      ), # fin FACT CONDUCTIVITY\r
+\r
+   #), # Fin BLOC HAS_CONDUCTICITY\r
+\r
+###################################################################################################\r
+#---------------------------------------------\r
+# sous bloc niveau 1  \r
+#---------------------------------------\r
+# matériau generique de type ZINSULATOR \r
+#---------------------------------------\r
+  \r
+# aucun parametre a saisir pour ce materiau\r
+\r
+\r
+###################################################################################################\r
+#---------------------------------------------\r
+# sous bloc niveau 1     \r
+#---------------------------------------------\r
+# matériau generique de type NILMAT (fictif)  \r
+#---------------------------------------------\r
+  \r
+# aucun parametre a saisir pour ce materiau\r
+\r
+\r
+###################################################################################################\r
+#----------------------------------------------------------\r
+# sous bloc niveau 1 : EM_ISOTROPIC_FILES   \r
+#-------------------------------------------------\r
+# matériau isotropique non homogene generique\r
+#-------------------------------------------------\r
+   EM_ISOTROPIC_properties=BLOC(condition="TYPE=='EM_ISOTROPIC'", \r
+               \r
+           CONDUCTIVITY_File = SIMP (statut="o", \r
+                                     typ=("FichierNoAbs",'MED Files (*.med)',),\r
+                                     ang="CONDUCTIVITY MED data file name",\r
+                                     fr = u"nom du fichier MED CONDUCTIVITY",\r
+                                    ),\r
+           PERMEABILITY_File = SIMP (statut="o", \r
+                                     typ=("FichierNoAbs",'MED Files (*.med)',),\r
+                                     ang="PERMEABILITY MED data file name",\r
+                                     fr = u"nom du fichier MED PERMEABILITY",\r
+                                    ),\r
+   ), # fin bloc EM_ISOTROPIC_properties\r
+\r
+    \r
+#---------------------------------------------------\r
+# matériau  anisotropique non homogene generique \r
+#---------------------------------------------------\r
+   EM_ANISOTROPIC_properties=BLOC(condition="TYPE=='EM_ANISOTROPIC'",\r
+                 \r
+           PERMEABILITY_File = SIMP (statut="o", \r
+                                     #typ=("Fichier",'.mater Files (*.mater)'), # le fichier doit exister dans le répertoire d'où on lancer Eficas si le fichier est défini par un nom relatif, ce qui est trop contraignant\r
+                                     #typ=("Fichier",'.mater Files (*.mater)','Sauvegarde'), # Le fichier peut ne pas exister, mais on propose de le sauvegarder et d'écraser un fichier existant : pas approprié\r
+                                     typ=("FichierNoAbs",'.mater Files (*.mater)'), # l'existence du fichier n'est pas vérifiée, mais on peut le sélectionner quand même via la navigateur. C'est suffisant et permet une bibliothèque de matériaux.\r
+                                     ang="PERMEABILITY .mater data file name",\r
+                                     fr ="nom du fichier .mater PERMEABILITY",\r
+                                    ),\r
+           CONDUCTIVITY_File = SIMP (statut="o", \r
+                                     typ=("FichierNoAbs",'.mater Files (*.mater)'),\r
+                                     ang="CONDUCTIVITY .mater data file name",\r
+                                     fr ="nom du fichier .mater CONDUCTIVITY",\r
+                                    ),\r
+   ), # fin bloc EM_ANISOTROPIC_properties\r
+\r
+\r
+) # fin OPER MATERIAL\r
+    \r
+#===================================================================\r
+# 3eme bloc : bloc SOURCES\r
+#====================================================================\r
+# definition des differentes sources qui seront dans le bloc SOURCES\r
+#-------------------------------------------------------------------\r
+#\r
+\r
+SOURCE = OPER ( nom = "SOURCE",\r
+                op = None,\r
+                repetable = 'n',\r
+                ang = "source definition", \r
+                fr = u"définition d'une source", \r
+                sd_prod = source,\r
+                regles = (UN_PARMI('STRANDED_INDUCTOR','HPORT','EPORT'), # choix d'un type de source\r
+                          UN_PARMI('WAVEFORM_CONSTANT','WAVEFORM_SINUS'), # choix d'une forme de source\r
+                         ),\r
+\r
+#----------------------------------------------------------\r
+# sous bloc niveau 1 : stranded inductor source \r
+##---------------------------------------------------------\r
+                STRANDED_INDUCTOR = FACT(statut='f',\r
+                                         ang="Stranded inductor source",\r
+                                         fr=u"source de type inducteur bobiné",\r
+                                         NTURNS = SIMP (statut="o",\r
+                                                        typ="I",\r
+                                                        defaut=1,\r
+                                                        ang="number of turns in the inductor",\r
+                                                        fr= u"nombre de tours dans l'inducteur bobiné",\r
+                                                       ),\r
+                                         TYPE = SIMP (statut="o",\r
+                                                      typ="TXM",\r
+                                                      defaut="CURRENT",\r
+                                                      into=("CURRENT",),\r
+                                                      fr= u"source de type courant",\r
+                                                      ang="current source type",\r
+                                                     ),\r
+                ), # FIN de FACT STRANDED_INDUCTOR\r
+                HPORT = FACT(statut='f',\r
+                             ang="Magnetic port source",\r
+                             fr=u"source de type port magnétique",\r
+                             TYPE = SIMP (statut="o",\r
+                                          typ="TXM",\r
+                                          into=("VOLTAGE","CURRENT"),\r
+                                          fr= u"source de type tension ou courant",\r
+                                          ang="voltage or current source type",\r
+                                         ),\r
+                ), # FIN de FACT HPORT\r
+                EPORT = FACT(statut='f',\r
+                             ang="Electric port source",\r
+                             fr=u"source de type port électrique",\r
+                             TYPE = SIMP (statut="o",\r
+                                          typ="TXM",\r
+                                          into=("VOLTAGE","CURRENT"),\r
+                                          fr= u"source de type tension ou courant",\r
+                                          ang="voltage or current source type",\r
+                                         ),\r
+                ), # FIN de FACT EPORT\r
+                WAVEFORM_CONSTANT = FACT(statut='f',\r
+                                         ang="constant source",\r
+                                         fr=u"source constante",\r
+                                         AMPLITUDE = SIMP (statut="o",\r
+                                                           typ="R", \r
+                                                           defaut=1,\r
+                                                           ang = "enter the source magnitude value, in A or V units",\r
+                                                           fr = u"saisir la valeur de l'amplitude de la source, en unités A ou V",\r
+                                                          ),\r
+                ), # FIN de FACT WAVEFORM_CONSTANT\r
+                WAVEFORM_SINUS = FACT(statut='f',\r
+                                      ang="sinus variation source",\r
+                                      fr=u"source variant avec une forme sinusoïdale, définie par son amplitude, sa fréquence et sa phase",\r
+                                      AMPLITUDE = SIMP (statut="o",\r
+                                                        typ="R", \r
+                                                        defaut=1,\r
+                                                        ang = "enter the source magnitude value, in A or V units",\r
+                                                        fr = u"saisir la valeur de l'amplitude de la source, en unités A ou V",\r
+                                                       ),\r
+                                      FREQUENCY = SIMP (statut="o",\r
+                                                        typ="R", \r
+                                                        defaut=50.0,\r
+                                                        ang = "enter the source frequency value, in Hz units",\r
+                                                        fr = u"saisir la valeur de la fréquence de la source, en Hz",\r
+                                                       ),\r
+                                      PHASE = SIMP (statut="o",\r
+                                                    typ="R", \r
+                                                    defaut=0.0,\r
+                                                    ang = "enter the source phase value, in degrees units",\r
+                                                    fr = u"saisir la valeur de la phase de la source, en degrés",\r
+                                                   ),\r
+                ), # FIN de FACT WAVEFORM_SINUS\r
+) # Fin OPER SOURCE\r
diff --git a/OldCodes/Carmel3D/Carmel3D_Cata_frequentiel_V1.py b/OldCodes/Carmel3D/Carmel3D_Cata_frequentiel_V1.py
new file mode 100644 (file)
index 0000000..8edc6a8
--- /dev/null
@@ -0,0 +1,903 @@
+# -*- coding: utf-8 -*-
+# --------------------------------------------------
+# Copyright (C) 2007-2021   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+# --------------------------------------------------
+
+import os
+import sys
+from Accas import *
+import types
+from decimal import Decimal
+# repertoire ou sont stockés le catalogue carmel3d 
+# et les fichiers de donnees des materiaux de reference
+from prefs_CARMEL3D import repIni
+
+class Tuple:
+  def __init__(self,ntuple):
+    self.ntuple=ntuple
+
+  def __convert__(self,valeur):
+    if type(valeur) == types.StringType:
+      return None
+    if len(valeur) != self.ntuple:
+      return None
+    return valeur
+
+  def info(self):
+    return "Tuple de %s elements" % self.ntuple
+
+
+
+#print "catalogue carmel"
+#print "repIni = ", repIni
+
+# Version du catalogue
+VERSION_CATA = "Code_Carmel3D 2.4.0 for harmonic problems"
+# --------------------------------------------------
+# definition d une classe pour les materiaux
+# definition d une classe pour les sources
+# definition d une classe pour les groupes de mailles
+# --------------------------------------------------
+class material ( ASSD ) : pass
+class source   ( ASSD ) : pass
+class grmaille ( ASSD ) : pass
+class stranded_inductor_geometry ( ASSD ) : pass
+class macro_groupe ( ASSD ) : pass 
+
+#CONTEXT.debug = 1
+# --------------------------------------------------
+# déclaration du jeu de commandes : 1ere instruction du catalogue obligatoire 
+#---------------------------------------------------
+
+##=========================================================
+JdC = JDC_CATA ( code = 'CARMEL3D',
+                execmodul = None,
+                 regles =(
+                           AU_MOINS_UN ('PARAMETERS'),
+                           AU_PLUS_UN ('PARAMETERS'),
+                           AU_MOINS_UN ('SOLVEUR'),
+                           AU_PLUS_UN ('SOLVEUR'),
+                           AU_MOINS_UN ('POST_COMMANDS'), 
+                           AU_PLUS_UN ('POST_COMMANDS'), 
+                           AU_MOINS_UN ('MATERIAL','INCLUDE'),
+                           AU_MOINS_UN ('SOURCE','INCLUDE'),
+                           AU_MOINS_UN ('MESHGROUP'),
+                           ),
+                 ) # Fin JDC_CATA
+
+import opsCarmel
+
+#======================================================================
+# 1er bloc : bloc VERSION
+# ce bloc est volontairement cache dans l IHM 
+#===================================================
+
+VERSION = PROC ( nom = "VERSION",
+                        op = None,
+                        repetable = 'n',
+                        UIinfo= {"groupes":("CACHE",)},
+                        ang= "version block definition", 
+
+#----------------------
+# Liste des parametres
+#----------------------
+        
+   NUM      = SIMP (statut="o",
+                    typ="I",
+            defaut=1, 
+                    ang="version number of the physical model", 
+                    into=( 1,),
+                   ),
+   FILETYPE = SIMP (statut="o",
+                    typ="TXM",
+            defaut="PHYS", 
+                    ang="file type",
+                    into=( "PHYS",),
+                   ),
+                   
+) # Fin PROC VERSION
+
+PARAMETERS= PROC ( nom = "PARAMETERS",
+                 op = None,
+                 repetable = 'n',
+                 UIinfo = { "groupes" : ( "1) Parametres", ) },
+                 ang= "General parameters for this study", 
+                 fr= u"Paramètres généraux de l'étude", 
+#----------------------
+# Liste des parametres
+#----------------------                
+    RepCarmel=SIMP(typ='Repertoire', statut='o', 
+                                ang= "Code_Carmel3D executables directory",
+                                fr= u"Répertoire contenant les programmes de Code_Carmel3D",
+                                ),
+    Fichier_maillage = SIMP (statut="o", typ=("FichierNoAbs",'All Files (*)',), # l'existence du fichier n'est pas vérifiée
+                                             ang="Mesh file path (relative, aka file name, or absolute path).",
+                                             fr =u"Emplacement du fichier contenant le maillage (relatif, i.e., nom du fichier, ou absolu, i.e., chemin complet).",
+                                           ),
+    
+    Echelle_du_maillage = SIMP (statut='o',  typ="TXM",  defaut= "Millimetre",  into = ("Metre", "Millimetre"), 
+                                                 ang="Mesh geometry units.",
+                                                 fr =u"Unités géométriques du maillage.",
+                                                ), 
+    
+    Formulation=SIMP(statut='o', typ='TXM', into=("TOMEGA","APHI"), 
+                                                 ang="Problem formulation.",
+                                                 fr =u"Formulation du problème.",
+                                                ), 
+
+    FREQUENCY = SIMP (statut="o",
+                 typ="R",
+                 defaut=50.0, 
+                 ang = "enter the source frequency value, in Hz units",
+                 fr = u"saisir la valeur de la fréquence de la source, en Hz",
+                 val_min=0.0,
+                ),
+    Realiser_topologie_gendof = SIMP (statut='o',  typ="TXM", defaut="TRUE", into=("TRUE", "FALSE"),  
+                                                 ang="Build topology (.car file) using gendof.exe.",
+                                                 fr =u"Construction de la topologie (fichier .car) en éxécutant gendof.exe.",
+                                                ), 
+    Resoudre_probleme = SIMP (statut='o',  typ="TXM", defaut="TRUE", into=("TRUE", "FALSE"),
+                                                 ang="Solve the problem using fcarmel.exe.",
+                                                 fr =u"Résolution du problème en éxécutant fcarmel.exe.",
+                                                ), 
+
+    Realiser_post_traitement_aposteriori = SIMP (statut='o',  typ="TXM", defaut="TRUE", into=("TRUE", "FALSE"),
+                                                 ang="Make post-processing using postprocess.exe.",
+                                                 fr =u"Réalisation du post-traitement en éxécutant postprocess.exe.",
+                                                ), 
+) # Fin PROC PARAMETERS
+
+SOLVEUR = PROC ( nom ="SOLVEUR",
+          op=None,
+          repetable = 'n',
+          UIinfo= {"groupes":("1) Parametres",)},
+          ang= "Solver parameters for this study", 
+          fr= u"Paramètres liés au solveur de l'étude", 
+          
+          Type= SIMP (statut="o",
+                              typ="TXM",
+                              into=("Solveur_lineaire"), 
+                              defaut='Solveur_lineaire', 
+                              ang="Linear solver only for harmonic problems.",
+                              fr =u"Solveur linéaire seulement pour les problèmes fréquentiels.",
+                            ), 
+                                      
+            Solveur_lineaire=BLOC(condition="Type=='Solveur_lineaire'", 
+                                                  ang="This block contains whole linear solver properties.",
+                                                  fr =u"Ce bloc contient toutes les propriétés du solveur linéaire.",
+                    Methode_lineaire=SIMP(statut='o', typ='TXM', into=("Methode iterative BICGCR", "Methode directe MUMPS"), 
+                                                          ang="Algorithm used for this linear solver.",
+                                                          fr =u"Méthode (algorithme) utilisée par ce solveur linéaire.",
+                                                        ), 
+                                   
+                    Parametres_methode_iterative_BICGCR=BLOC(condition="Methode_lineaire=='Methode iterative BICGCR'", 
+                                                                                              ang="This block contains whole BICGCR algorithm properties used for the linear solver.",
+                                                                                              fr =u"Ce bloc contient toutes les propriétés de la méthode BICGCR utilisée par le solveur linéaire.",
+                              Precision=SIMP(statut='o', typ='R', defaut=1e-9,
+                                                      ang="Accuracy on linear computations.",
+                                                      fr =u"Précision du calcul linéaire.",
+                                                      ), 
+                              Nombre_iterations_max=SIMP(statut='o', typ='I',defaut=10000,  
+                                                                              ang="Maximal number of iterations.",
+                                                                              fr =u"Nombre maximal d'itérations.",
+                                                                              ), 
+                              Preconditionneur=SIMP(statut='f', typ='TXM',  into=("Jacobi"), defaut='Jacobi', 
+                                                                  ang="Preconditioner choice. Jacobi only.",
+                                                                  fr =u"Choix du préconditioneur. Jacobi disponible seulement.",
+                                                                    ), 
+                              ), 
+                                
+                    Parametres_methode_directe_MUMPS=BLOC(condition="Methode_lineaire=='Methode directe MUMPS'",
+                                                                                              ang="This block contains whole MUMPS properties used for the linear solver.",
+                                                                                              fr =u"Ce bloc contient toutes les propriétés de la méthode MUMPS utilisée par le solveur linéaire.",
+                              Type_de_matrice=SIMP(statut='o', typ='I', defaut=2,
+                                                                  ang="Matrix type (symetry). 2: symetric. Please refer to MUMPS documentation.",
+                                                                  fr =u"Type de matrice (symétrie). Choisir 2 pour une matrice symétrique. Expliqué dans la documentation MUMPS.",
+                                                                   ), 
+                              ICNTL_Control_Parameters=SIMP(statut='o', typ='I', defaut=7,  
+                                                                  ang="ICNTL control parameter. Please refer to MUMPS documentation.",
+                                                                  fr =u"Paramètre de contrôle ICNTL. Expliqué dans la documentation MUMPS.",
+                                                                   ), 
+                              CNTL_Control_Parameters=SIMP(statut='o', typ='I', defaut=5,  
+                                                                  ang="CNTL control parameter. Please refer to MUMPS documentation.",
+                                                                  fr =u"Paramètre de contrôle CNTL. Expliqué dans la documentation MUMPS.",
+                                                                   ), 
+                              ), 
+                ), 
+    )
+
+POST_COMMANDS = PROC ( nom = "POST_COMMANDS",
+                                                op = None,
+                                                repetable = 'n',
+                                                UIinfo = { "groupes" : ( "1) Parametres", ) },
+                                                ang= "post-processing commands .cmd or .post file", 
+                                                fr= u"fichiers .cmd ou .post de commandes de post-traitement", 
+    # Sous-parties, moins indentées pour améliorer la lisibilité
+    # Grandeurs globales
+    GLOBAL = FACT ( statut="f", 
+                                ang ="Post-processing of global quantities",
+                                fr  =u"Post-traitement des grandeurs globales",
+                                ), 
+    # Carte de tous les champs possibles
+    VISU = FACT ( statut="f", 
+                            ang ="Post-processing of field maps",
+                            fr  =u"Post-traitement des cartes de champ",
+                            VISU_Format=SIMP(statut='o', typ='TXM', into=("MED", "VTK"), defaut="MED"), 
+                            VISU_Type=SIMP(statut='o', typ='TXM', into=("ELEMENT", "NOEUD"), defaut="ELEMENT"), 
+                         ), 
+    # Ligne de coupe
+    CUTLINE = FACT ( statut="f", 
+                            ang = "Post-processing of one cutline",
+                            fr  = u"Post-traitement d'une ligne de coupe",
+                            first_point = SIMP(statut='o', 
+                            typ = Tuple(3),validators = VerifTypeTuple(('R','R','R')),
+                            ang="First point of the cutline (cartesian coordinates).", 
+                            fr=u"Point de départ (premier point) de la ligne de coupe (coordonnées cartésiennes).",
+                                                             ), 
+
+                            last_point = SIMP(statut='o', typ='R', min=3, max=3, 
+                                                              ang="Last point of the cutline (cartesian coordinates).", 
+                                                              fr=u"Point d'arrivée (dernier point) de la ligne de coupe (coordonnées cartésiennes)."
+                                                             ), 
+                            number_of_points = SIMP(statut='o', typ='I', 
+                                                              ang="Number of points of the cutline.", 
+                                                              fr=u"Nombre de points de la ligne de coupe."
+                                                             ), 
+                            name = SIMP(statut='o', typ='TXM', 
+                                                              ang="Name of the cutline, used in the output filename.", 
+                                                              fr=u"Nom de la ligne de coupe, utilisé dans le nom du fichier de sortie."
+                                                             ), 
+                            field = SIMP(statut='o', typ='TXM', into=("H", "B", "J", "E"),  
+                                                              ang="Field on which the cutline is applied.", 
+                                                              fr=u"Champ pour lequel la ligne de coupe est définie."
+                                                             ), 
+                         ), 
+    # Plan de coupe
+    CUTPLANE = FACT ( statut="f", 
+                            ang = "Post-processing of one cutplane",
+                            fr  = u"Post-traitement d'un plan de coupe",
+                            normal_vector = SIMP(statut='o', typ='TXM', into=("Ox", "Oy", "Oz"),  
+                                                              ang="Cutplane normal vector, i.e., perpendicular axis, 3 possible cartesian values: Ox, Oy, Oz.", 
+                                                              fr=u"Vecteur normal au plan de coupe, i.e., son axe perpendiculaire, parmi les 3 valeurs cartésiennes Ox, Oy et Oz."
+                                                             ), 
+                            plane_position = SIMP(statut='o', typ='R', 
+                                                              ang="Cutplane position, i.e., its coordinate along the normal vector axis.", 
+                                                              fr=u"Position du plan de coupe, i.e., coordonnée le long de l'axe de vecteur normal."
+                                                             ), 
+                            number_of_points = SIMP(statut='o', typ='I', min=2, max=2,  
+                                                              ang="Number of points on the cutplane, which define a cartesian grid along its canonical directions, e.g., Ox and Oy if plane normal to Oz.", 
+                                                              fr=u"Nombre de points sur le plan de coupe dans les deux directions (grille cartésienne), e.g., Ox et Oy si le plan est normal à Oz."
+                                                             ), 
+                            name = SIMP(statut='o', typ='TXM', 
+                                                              ang="Name of the cutplane, used in the output filename.", 
+                                                              fr=u"Nom du plan de coupe, utilisé dans le nom du fichier de sortie."
+                                                             ), 
+                            field = SIMP(statut='o', typ='TXM', into=("H", "B", "J", "E"),  
+                                                              ang="Field on which the cutplane is applied.", 
+                                                              fr=u"Champ pour lequel le plan de coupe est défini."
+                                                             ), 
+                         ), 
+            
+) # Fin PROC POST_COMMANDS
+
+
+#======================================================================
+# le fichier .PHYS contient 3 blocs et jusqu'a 3 niveaux de sous-blocs
+# 
+#======================================================================
+
+#===================================================================
+# 2eme bloc : bloc MATERIALS
+#===================================================================
+# definition des matériaux utilisateurs 
+# a partir des materiaux de reference ou de materiaux generiques
+#-------------------------------------------------------------------
+
+MATERIAL = OPER (nom = "MATERIAL",
+                 op = None,
+                 repetable = 'n',
+                 UIinfo = { "groupes" : ( "2) Proprietes", ) },
+                 ang= "real material block definition", 
+                 fr= u"définition d'un matériau réel", 
+                 sd_prod= material,
+ #                regles=EXCLUS('PERMITTIVITY','CONDUCTIVITY'),
+
+#---------------------------------------------------------------------
+# liste des matériaux de reference fournis par THEMIS et  des
+# materiaux generiques (les materiaux generiques peuvent etre utilises 
+# si aucun materiau de reference  ne convient) 
+#---------------------------------------------------------------------
+                 TYPE = SIMP(statut='o',
+                             typ='TXM',
+                             into=(
+#  matériaux génériques 
+                                 "DIELECTRIC",
+                                 "CONDUCTOR",
+                                  "ZINSULATOR","ZSURFACIC",
+                                 "NILMAT","EM_ISOTROPIC","EM_ANISOTROPIC",
+                             ),
+                             ang = "generic materials list",
+                             fr  = u"liste des matériaux génériques",
+                            ),
+
+##############################################################################
+# Remarque generale a tous les materiaux : 
+# pour conserver l'affichage scientifique le nombre derriere l'exposant doit
+# etre strictement superieur au nombre de decimales 
+#
+
+##----------------------------------------------------------------------------------------------
+# Données de perméabilité, utilisée pour les diélectriques, conducteurs et impédances de surface
+#-----------------------------------------------------------------------------------------------
+  #HAS_PERMEABILITY = BLOC(condition="TYPE in ('DIELECTRIC','CONDUCTOR','ZSURFACIC')",
+
+#------------------------------------------------
+# sous bloc niveau 2 : PERMEABILITY
+#------------------------------------------------
+#
+ PERMEABILITY_properties = BLOC (condition="TYPE=='DIELECTRIC' or TYPE=='CONDUCTOR'", 
+  PERMEABILITY = FACT ( statut="o", 
+                        ang ="Permeability properties",
+                        fr  =u"propriétés de perméabilité du matériau",
+                        HOMOGENEOUS = SIMP (statut="o",
+                                            typ="TXM",
+                                            defaut="TRUE",
+                                            into = ("TRUE","FALSE"),
+                                            ang = "the material is homogeneous or not",
+                                            fr  = u"le matériau est homogène ou non",
+                                           ),
+                        ISOTROPIC = SIMP (statut="o",
+                                          typ="TXM",
+                                          defaut="TRUE",
+                                          into = ("TRUE","FALSE"),
+                                          ang = "the material is isotropic or not",
+                                          fr  = u"le matériau est isotrope ou non",
+                                         ),
+                   HOMOGENEOUS_ISOTROPIC_PROPERTIES = BLOC (condition="HOMOGENEOUS=='TRUE' and ISOTROPIC=='TRUE'",
+                        LAW = SIMP (statut="o",
+                                    typ="TXM",
+                                    defaut="LINEAR",
+                                    into = ("LINEAR","NONLINEAR"),
+                                    ang = "harmonic or time-domain linear or nonlinear law only for homogeneous and isotropic materials",
+                                    fr  = u"loi linéaire (fréquentielle ou temporelle) ou non (homogène et isotrope seulement)",
+                                   ), 
+                        VALUE = SIMP (statut="o",
+                                      typ="C", 
+                                      defaut=1,
+                                      ang = "Relative linear permeability value, also used at first nonlinear iteration",
+                                      fr = u"Valeur de la perméabilité relative à l'air utilisée pour une loi linéaire ou pour la première itération non-linéaire",
+                                     ),
+
+                    NONLINEAR_LAW_PROPERTIES = BLOC (condition="LAW=='NONLINEAR'",
+                        NATURE = SIMP (statut="o",
+                                       typ="TXM",
+                                       defaut="MARROCCO",
+                                       into = ("SPLINE","MARROCCO","MARROCCO+SATURATION"),
+                                       ang = "nature law",
+                                       fr  = u"nature de la loi",
+                                      ),
+                     SPLINE_LAW_PROPERTIES = BLOC (condition="NATURE=='SPLINE'",
+                        FILENAME = SIMP (statut="o", 
+                                         typ=("FichierNoAbs",'All Files (*)',), # l'existence du fichier n'est pas vérifiée
+                                         ang="data file name",
+                                         fr =u"nom du fichier contenant les mesures expérimentales B(H)",
+                                        ),
+                     ), # Fin BLOC SPLINE_PROPERTIES
+                     MARROCCO_LAW_PROPERTIES = BLOC (condition="NATURE in ('MARROCCO','MARROCCO+SATURATION')",
+                        ALPHA = SIMP (statut="o", 
+                                      typ="R",
+                                      defaut=0,
+                                      val_min=0,
+                                      ang="alpha parameter",
+                                      fr =u"paramètre alpha de la loi de Marrocco" ,
+                                     ),
+                        TAU = SIMP (statut="o", 
+                                    typ="R",
+                                    defaut=0,
+                                    val_min=0,
+                                    ang="tau parameter",
+                                    fr =u"paramètre tau de la loi de Marrocco" ,
+                                   ),
+                        C = SIMP (statut="o", 
+                                  typ="R",
+                                  defaut=0,
+                                  val_min=0,
+                                  ang="c parameter",
+                                  fr =u"paramètre c de la loi de Marrocco" ,
+                                 ),
+                        EPSILON = SIMP (statut="o", 
+                                        typ="R",
+                                        defaut=0,
+                                        val_min=0,
+                                        ang="epsilon parameter",
+                                        fr =u"paramètre epsilon de la loi de Marrocco" ,
+                                       ),
+                     ), # Fin BLOC MARROCCO_LAW_PROPERTIES
+                     SATURATION_LAW_PROPERTIES = BLOC (condition="NATURE=='MARROCCO+SATURATION'",
+                        BMAX = SIMP (statut="o", 
+                                     typ="R",
+                                     defaut=0,
+                                     val_min=0,
+                                     ang="intersection B",
+                                     fr = u"valeur de B marquant la fin de la loi de Marrocco et le début du raccord à la loi de saturation",
+                                    ),
+                        HSAT = SIMP (statut="o", 
+                                     typ="R",
+                                     defaut=0,
+                                     val_min=0,
+                                     ang="H value",
+                                     fr = u"valeur de H définissant la loi de saturation",
+                                    ),
+                        BSAT = SIMP (statut="o", 
+                                     typ="R",
+                                     defaut=0,
+                                     val_min=0,
+                                     ang="B value",
+                                     fr = u"valeur de B définissant la loi de saturation",
+                                    ),
+                        JOIN = SIMP (statut="o", 
+                                     typ="TXM",
+                                     defaut="SPLINE",
+                                     into= ("SPLINE","PARABOLIC","LINEAR"),
+                                     ang="type of join between laws",
+                                     fr =u"type de raccord entre la loi choisie et la loi de saturation" ,
+                                    ),
+                     ), # Fin BLOC SATURATION_LAW_PROPERTIES
+                        APPLIEDTO = SIMP (statut="o",    
+                                          typ="TXM",   
+                                          into=("B(H)&H(B)","B(H)","H(B)"),
+                                          defaut="B(H)&H(B)",
+                                          ang="join applied to",
+                                          fr =u"Le raccord tel que défini est appliqué à la courbe B(H) seulement, à la courbe H(B) seulement ou aux deux courbes à la fois. Dans les deux premiers cas, le raccord de la courbe H(B) est inversé numériquement à partir du raccord défini pour la courbe B(H), et vice-versa.",
+                                         ),
+                    ), # Fin BLOC NONLINEAR_LAW_PROPERTIES
+                   ), # Fin BLOC HOMOGENEOUS_ISOTROPIC_PROPERTIES
+             ), 
+    ),# fin FACT PERMEABILITY
+
+
+##----------------------------------------------------------------------------------------------
+# Données de conductivité, utilisée pour les conducteurs et impédances de surface
+#-----------------------------------------------------------------------------------------------
+  #HAS_CONDUCTIVITY = BLOC(condition="TYPE in ('CONDUCTOR','ZSURFACIC')",
+#------------------------------------------------
+# sous bloc niveau 2 : CONDUCTIVITY
+#------------------------------------------------
+  
+ CONDUCTIVITY_properties= BLOC (condition="TYPE=='CONDUCTOR'", 
+  CONDUCTIVITY = FACT ( statut="o", 
+                        ang ="Permittivity properties",
+                        fr  = u"propriétés de permittivité du matériau",
+                        HOMOGENEOUS = SIMP (statut="o",
+                                            typ="TXM",
+                                            defaut="TRUE",
+                                            into = ("TRUE","FALSE"),
+                                            ang = "the material is homogeneous or not",
+                                            fr  = u"le matériau est homogène ou non",
+                                           ),
+                        ISOTROPIC = SIMP (statut="o",
+                                          typ="TXM",
+                                          defaut="TRUE",
+                                          into = ("TRUE","FALSE"),
+                                          ang = "the material is isotropic or not",
+                                          fr  = u"le matériau est isotrope ou non",
+                                         ),
+                       HOMOGENEOUS_ISOTROPIC_PROPERTIES = BLOC (condition="HOMOGENEOUS=='TRUE' and ISOTROPIC=='TRUE'",
+                        LAW = SIMP (statut="o",
+                                    typ="TXM",
+                                    defaut="LINEAR",
+                                    into = ("LINEAR",),
+                                    ang = "linear law",
+                                    fr  = u"loi linéaire",
+                                   ),
+                        VALUE = SIMP (statut="o",
+                                      typ="C", 
+                                      defaut=1, 
+                                      ang = "enter a complex relative value",
+                                      fr = u"saisir une valeur complexe relative",
+                                     ),
+                       ), # Fin BLOC HOMOGENEOUS_ISOTROPIC_PROPERTIES
+                      ), 
+
+             ), 
+
+            
+        # fin FACT CONDUCTIVITY
+
+   
+
+###################################################################################################
+#---------------------------------------------
+# sous bloc niveau 1  
+#---------------------------------------
+# matériau generique de type ZINSULATOR 
+#---------------------------------------
+  
+# aucun parametre a saisir pour ce materiau
+
+
+###################################################################################################
+#---------------------------------------------
+# sous bloc niveau 1     
+#---------------------------------------------
+# matériau generique de type NILMAT (fictif)  
+#---------------------------------------------
+  
+# aucun parametre a saisir pour ce materiau
+
+
+###################################################################################################
+#----------------------------------------------------------
+# sous bloc niveau 1 : EM_ISOTROPIC_FILES   
+#-------------------------------------------------
+# matériau isotropique non homogene generique
+#-------------------------------------------------
+    EM_ISOTROPIC_properties=BLOC(condition="TYPE=='EM_ISOTROPIC'", 
+                 regles =(
+                           AU_MOINS_UN ('CONDUCTIVITY_File','PERMEABILITY_File'),
+                           ),
+           CONDUCTIVITY_File = SIMP (statut="f", 
+                                     typ=("FichierNoAbs",'MED Files (*.med)',),
+                                     ang="CONDUCTIVITY MED data file name",
+                                     fr = u"nom du fichier MED CONDUCTIVITY",
+                                    ),
+           PERMEABILITY_File = SIMP (statut="f", 
+                                     typ=("FichierNoAbs",'MED Files (*.med)',),
+                                     ang="PERMEABILITY MED data file name",
+                                     fr = u"nom du fichier MED PERMEABILITY",
+                                    ),
+   ), # fin bloc EM_ISOTROPIC_properties
+
+    
+#---------------------------------------------------
+# matériau  anisotropique non homogene generique 
+#---------------------------------------------------
+   EM_ANISOTROPIC_properties=BLOC(condition="TYPE=='EM_ANISOTROPIC'",
+                 regles =(
+                           AU_MOINS_UN ('CONDUCTIVITY_File','PERMEABILITY_File'),
+                           ),                 
+           PERMEABILITY_File = SIMP (statut="f", 
+                                     #typ=("Fichier",'.mater Files (*.mater)'), # le fichier doit exister dans le répertoire d'où on lancer Eficas si le fichier est défini par un nom relatif, ce qui est trop contraignant
+                                     #typ=("Fichier",'.mater Files (*.mater)','Sauvegarde'), # Le fichier peut ne pas exister, mais on propose de le sauvegarder et d'écraser un fichier existant : pas approprié
+                                     typ=("FichierNoAbs",'.mater Files (*.mater)'), # l'existence du fichier n'est pas vérifiée, mais on peut le sélectionner quand même via la navigateur. C'est suffisant et permet une bibliothèque de matériaux.
+                                     ang="PERMEABILITY .mater data file name",
+                                     fr ="nom du fichier .mater PERMEABILITY",
+                                    ),
+           CONDUCTIVITY_File = SIMP (statut="f", 
+                                     typ=("FichierNoAbs",'.mater Files (*.mater)'),
+                                     ang="CONDUCTIVITY .mater data file name",
+                                     fr ="nom du fichier .mater CONDUCTIVITY",
+                                    ),
+   ), # fin bloc EM_ANISOTROPIC_properties
+
+
+#------------------------------------------------------------------
+# Données de permittivité, utilisée pour les diélectriques seulement
+#-------------------------------------------------------------------
+  #HAS_PERMITTIVITY = BLOC(condition="TYPE == 'DIELECTRIC'",
+
+#------------------------------------------------
+# sous bloc niveau 2 : PERMITTIVITY
+#------------------------------------------------
+
+ Utiliser_la_permittivite = SIMP (statut='o', 
+                                 typ='TXM',
+                                 into = ("OUI","NON"),
+                                 defaut="NON", 
+                                ang ="Optionnaly use permittivity or not (default)",
+                                fr  = u"Utilisation optionnelle de la permittivité du matériau. Pas d'utilisation par défaut.",
+                                ), 
+ PERMITTIVITY_properties = BLOC (condition="Utiliser_la_permittivite=='OUI'", 
+  PERMITTIVITY = FACT ( statut="o", 
+                        ang ="Permittivity properties",
+                        fr  = u"propriétés de permittivité du matériau",
+                        HOMOGENEOUS = SIMP (statut="o",
+                                            typ="TXM",
+                                            defaut="TRUE",
+                                            into = ("TRUE","FALSE"),
+                                            ang = "the material is homogeneous or not",
+                                            fr  = u"le matériau est homogène ou non",
+                                           ),
+                        ISOTROPIC = SIMP (statut="o",
+                                          typ="TXM",
+                                          defaut="TRUE",
+                                          into = ("TRUE","FALSE"),
+                                          ang = "the material is isotropic or not",
+                                          fr  = u"le matériau est isotrope ou non",
+                                         ),
+                       HOMOGENEOUS_ISOTROPIC_PROPERTIES = BLOC (condition="HOMOGENEOUS=='TRUE' and ISOTROPIC=='TRUE'",
+                        LAW = SIMP (statut="o",
+                                    typ="TXM",
+                                    defaut="LINEAR",
+                                    into = ("LINEAR",),
+                                    ang = "linear law",
+                                    fr  = u"loi linéaire",
+                                   ),
+                        VALUE = SIMP (statut="o",
+                                      typ="C", 
+                                      defaut=1,
+                                      ang = "enter a complex relative value",
+                                      fr = u"saisir une valeur complexe relative",
+                                     ),
+                       ), # Fin BLOC HOMOGENEOUS_ISOTROPIC_PROPERTIES
+                    ), 
+                ),# fin FACT PERMITTIVITY
+
+        )  # fin OPER MATERIAL
+    
+    
+
+##############################################################################
+# Remarque generale a tous les materiaux : 
+# pour conserver l'affichage scientifique le nombre derriere l'exposant doit
+# etre strictement superieur au nombre de decimales 
+
+
+#===================================================================
+# 3eme bloc : bloc SOURCES
+#====================================================================
+# definition des differentes sources qui seront dans le bloc SOURCES
+#-------------------------------------------------------------------
+
+
+
+SOURCE = OPER ( nom = "SOURCE",
+                op = None,
+                repetable = 'n',
+                UIinfo = { "groupes" : ( "2) Proprietes", ) },
+                ang = "source definition", 
+                fr = u"définition d'une source", 
+                sd_prod = source,
+#                regles = (UN_PARMI('STRANDED_INDUCTOR','HPORT','EPORT'), # choix d'un type de source
+#                          UN_PARMI('WAVEFORM_CONSTANT','WAVEFORM_SINUS'), # choix d'une forme de source
+                        
+
+#----------------------------------------------------------
+# sous bloc niveau 1 : stranded inductor source 
+##---------------------------------------------------------
+        Type=SIMP(statut='o', 
+                                typ='TXM', 
+                                into=("STRANDED_INDUCTOR", "HPORT", "EPORT"), 
+                                ang = "Source type", 
+                                fr = u"Type de source", 
+                                ), 
+
+            STRANDED_INDUCTOR_properties = BLOC (condition="Type=='STRANDED_INDUCTOR'", 
+                STRANDED_INDUCTOR = FACT(statut='o',
+                                         ang="Stranded inductor source",
+                                         fr=u"source de type inducteur bobiné",
+                                         NTURNS = SIMP (statut="o",
+                                                        typ="I",
+                                                        defaut=1,
+                                                        ang="number of turns in the inductor",
+                                                        fr= u"nombre de tours dans l'inducteur bobiné",
+                                                       ),
+                                         TYPE = SIMP (statut="o",
+                                                      typ="TXM",
+                                                      defaut="CURRENT",
+                                                      into=("CURRENT",),
+                                                      fr= u"source de type courant",
+                                                      ang="current source type",
+                                                     ),
+                                ), 
+            ),# FIN de FACT STRANDED_INDUCTOR
+         HPORT_properties = BLOC (condition="Type=='HPORT'",
+                HPORT = FACT(statut='o',
+                             ang="Magnetic port source",
+                             fr=u"source de type port magnétique",
+                             TYPE = SIMP (statut="o",
+                                          typ="TXM",
+                                          into=("VOLTAGE","CURRENT"),
+                                          fr= u"source de type tension ou courant",
+                                          ang="voltage or current source type",
+                                         ),
+                ), 
+            ),# FIN de FACT HPORT
+         EPORT_properties = BLOC (condition="Type=='EPORT'",
+                EPORT = FACT(statut='o',
+                             ang="Electric port source",
+                             fr=u"source de type port électrique",
+                             TYPE = SIMP (statut="o",
+                                          typ="TXM",
+                                          into=("VOLTAGE","CURRENT"),
+                                          fr= u"source de type tension ou courant",
+                                          ang="voltage or current source type",
+                                         ),
+                ), 
+            ),# FIN de FACT EPORT
+            
+            Signal=SIMP(statut='o', 
+                                typ='TXM', 
+                                into=("WAVEFORM_CONSTANT", "WAVEFORM_SINUS"), 
+                                ang = "Signal type, i.e., source evolution shape", 
+                                fr = u"Type de signal, i.e., forme de la source", 
+                                ), 
+           WAVEFORM_CONSTANT_properties = BLOC (condition="Signal=='WAVEFORM_CONSTANT'", 
+                WAVEFORM_CONSTANT = FACT(statut='o',
+                                         ang="constant source",
+                                         fr=u"source constante",
+                                         AMPLITUDE = SIMP (statut="o",
+                                                           typ="R", 
+                                                           defaut=1,
+                                                           ang = "enter the source magnitude value, in A or V units",
+                                                           fr = u"saisir la valeur de l'amplitude de la source, en unités A ou V",
+                                                          ),
+                ),
+            ),# FIN de FACT WAVEFORM_CONSTANT
+            
+            WAVEFORM_SINUS_properties = BLOC (condition="Signal=='WAVEFORM_SINUS'", 
+                WAVEFORM_SINUS = FACT(statut='o',
+                                      ang="sinus variation source",
+                                      fr=u"source variant avec une forme sinusoïdale, définie par son amplitude, sa fréquence et sa phase",
+                                      AMPLITUDE = SIMP (statut="o",
+                                                        typ="R", 
+                                                        defaut=1,
+                                                        ang = "enter the source magnitude value, in A or V units",
+                                                        fr = u"saisir la valeur de l'amplitude de la source, en unités A ou V",
+                                                       ),
+                                      FREQUENCY = SIMP (statut="o",
+                                                        typ="R", 
+                                                        defaut=0.0,
+                                                        ang = "enter the source frequency value, in Hz units",
+                                                        fr = u"saisir la valeur de la fréquence de la source, en Hz",
+                                                       ),
+                                      PHASE = SIMP (statut="o",
+                                                    typ="R", 
+                                                    defaut=0.0,
+                                                    ang = "enter the source phase value, in degrees units",
+                                                    fr = u"saisir la valeur de la phase de la source, en degrés",
+                                                   ),
+                ), 
+            ),# FIN de FACT WAVEFORM_SINUS
+
+       
+)# Fin OPER SOURCE
+
+
+STRANDED_INDUCTOR_GEOMETRY=OPER(nom="STRANDED_INDUCTOR_GEOMETRY",
+            op=None,
+            repetable = 'n',
+            sd_prod=stranded_inductor_geometry,
+            UIinfo = { "groupes" : ( "2) Proprietes", ) },
+            ang = "Geometry properties (shape, direction, etc.) for this stranded inductor",
+            fr = u"Propriétés géométriques de cet inducteur bobiné, e.g., forme, direction, sens",
+            
+            Forme=SIMP(statut='o', typ="TXM", into=("Droit", "Circulaire"), 
+                                ang = "Stranded inductor shape. Straight or circular.",
+                                fr = u"Forme de l'inducteur bobiné (complet ou morceau) : droit ou circulaire.",
+                                ), 
+            Propriete= BLOC (condition="Forme=='Circulaire'",
+                    Centre=SIMP(statut='o',typ='R',min=3,max=3,
+                                        ang = "Circular stranded inductor rotation center (cartesian coordinates).",
+                                        fr = u"Centre de rotation, en coordonnées cartésiennes, de l'inducteur bobiné (complet ou morceau) circulaire.",
+                                        ),  
+                    ),               
+            Direction=SIMP(statut='o',typ='R',min=3,max=3,
+                                        ang = "Stranded inductor direction (or rotation) axis for the straight (circular) inductor (cartesian coordinates).",
+                                        fr = u"Axe indiquant la direction de l'inducteur bobiné droit, ou l'axe de rotation (support : Centre) de l'inducteur circulaire, en coordonnées cartésiennes.",
+                                        ),  
+            Section=SIMP(statut='o', typ='R',
+                                        ang = "Stranded inductor section (m^2).",
+                                        fr = u"Section de l'inducteur bobiné, en m^2.",
+                                        ),  
+)              
+
+#=========================================================
+# création d'une macro pour traiter les INCLUDE
+#
+#----------------------------------------------------------
+
+INCLUDE = MACRO ( nom = "INCLUDE",
+                 op = None,
+                 UIinfo = { "groupes" : ( "3) Bibliotheque", ) },
+                 sd_prod = opsCarmel.INCLUDE,
+                 op_init = opsCarmel.INCLUDE_context,
+                 fichier_ini = 1,
+                ang = "Used in order to add external material, source, etc. libraries to the study.",
+                fr = u"Permet d'utiliser des bibliothèques de matériaux, sources, etc., dans l'étude.",
+   FileName = SIMP ( statut = "o",
+                    typ = ('Fichier', 'comm Files (*.comm);;All Files (*)',),
+                     fr = u"Emplacement du fichier (chemin absolu ou relatif) contenant la bibliothèque des matériaux, etc.",
+                    ang = "material library file (full or relative path)",
+                     ),
+  
+ ) # Fin MACRO 
+
+MESHGROUP  = OPER (nom = "MESHGROUP",
+                op = None,
+                repetable = 'n',
+                UIinfo= {"groupes":("4) Maillage",)},
+                fr= u"attribution d'un matériau ou d'une source à un groupe du maillage", 
+                ang = "mesh group association to material or source", 
+                sd_prod= grmaille,
+                regles =(
+                         EXCLUS ('MATERIAL','SOURCE'),
+                           ),
+
+# ----------------------------------------------------------
+# le mot cle SIMP doit etre facultatif sinon la recuperation 
+# des groupes de mailles sous SALOME ne fonctionne pas car 
+# le concept ne peut pas etre nomme car non valide
+#-----------------------------------------------------------
+              Domaine = SIMP (statut="f", 
+                        typ=(grmaille, 'TXM'), 
+                        defaut="default", 
+                        ang="Domain used with stranded inductors or topological holes.",
+                        fr =u"Domaine utilisé par les inducteurs bobinés ou les trous topologiques.",
+                        ), 
+
+              MATERIAL =  SIMP (statut="f",
+                        typ=(material),
+                        ang="name of the linked real or imaginary material",
+                        fr =u"nom du matériau réel ou imaginaire associé",
+                                ), 
+              SOURCE =  SIMP (statut="f",
+                        typ=(source,),
+                        ang="name of the linked source",
+                        fr =u"nom de la source associée",
+                                ), 
+               STRANDED_INDUCTOR_GEOMETRY = SIMP ( statut="f", 
+                       typ=(stranded_inductor_geometry), 
+                        ang="name of the linked stranded inductor geometry",
+                        fr =u"nom de la géométrie d'inducteur bobiné associée",
+                                                   )
+                      )
+
+# --------------------------------------------------
+# definition de macro-groupe de mailles
+# il est associe a un  materiau, source ou inducteur bobiné en morceaux
+#---------------------------------------------------
+
+MACRO_GROUPE = OPER (nom="MACRO_GROUPE", 
+                    op=None, 
+                    repetable='n', 
+                    sd_prod=macro_groupe, 
+                    UIinfo = { "groupes" : ( "4) Maillage", ) },  
+                    fr=u"Macro-groupe = liste de groupes de maillage, e.g., inducteur bobiné en morceaux.", 
+                    ang=u"Macro-groupe = liste of mesh groups, e.g., stranded inductor defined as several parts.", 
+                    regles =(
+                             EXCLUS ('MATERIAL','SOURCE'),
+                           ),
+              Domaine = SIMP (statut='f',
+                                            typ=(grmaille, 'TXM'), 
+                                            defaut="default", 
+                                            ang="Domain used with stranded inductors or topological holes.",
+                                            fr =u"Domaine utilisé par les inducteurs bobinés ou les trous topologiques.",
+                                           ),  
+
+              MATERIAL =  SIMP (statut="f",
+                                            typ=(material,),
+                                            ang="name of the linked real or imaginary material",
+                                            fr =u"nom du matériau réel ou imaginaire associé",
+                                    ), 
+              SOURCE =  SIMP (statut="f",
+                                        typ=(source,),
+                                        ang="name of the linked source",
+                                        fr =u"nom de la source associée",
+                                    ), 
+               LISTE_MESHGROUP=SIMP(statut='f',# facultatif pour l'acquisition automatique des groupes du maillage
+                                                        typ=(grmaille,),
+                                                        min=1,max=100,                     
+                                                        ang="Ordered list of associated mesh groups, e.g., stranded inductor parts or topological hole parts.",
+                                                        fr =u"Liste ordonnée de groupes de maillage associés entre eux, e.g., morceaux d'un inducteur bobiné ou d'un trou topologique.",
+                                                        ), 
+) # Fin OPER
diff --git a/OldCodes/Carmel3D/E24 b/OldCodes/Carmel3D/E24
new file mode 100644 (file)
index 0000000..bc906b3
--- /dev/null
@@ -0,0 +1,13 @@
+              0.             0.             
+        1000.000       1.200000             
+        1200.000       1.270000             
+        1600.000       1.350000             
+        3000.000       1.520000             
+        6000.000       1.660000             
+        10000.00       1.750000             
+        20000.00       1.900000             
+        30000.00       2.000000             
+        49944.66       2.101082             
+        80000.00       2.200000             
+        132000.0       2.300000             
+        250000.0       2.400000             
diff --git a/OldCodes/Carmel3D/FEV1000 b/OldCodes/Carmel3D/FEV1000
new file mode 100644 (file)
index 0000000..7324073
--- /dev/null
@@ -0,0 +1,31 @@
+        0.0000000      0.0000000      
+        54.38605      0.5687161      
+        125.0879      0.9107189      
+        217.0004       1.133191      
+        336.4865       1.285649      
+        491.8185       1.394206      
+        693.7501       1.474002      
+        956.2611       1.534492      
+        1297.525       1.581962      
+        1741.169       1.620847      
+        2317.906       1.654481      
+        3067.663       1.685556      
+        4042.348       1.716430      
+        5309.438       1.749361      
+        6956.655       1.786698      
+        9098.037       1.831067      
+        11881.83       1.882414      
+        15500.77       1.931322      
+        20205.39       1.976478      
+        26321.39       2.017967      
+        34272.19       2.056381      
+        44608.23       2.092746      
+        58045.08       2.128448      
+        75512.98       2.165203      
+        98221.27       2.205061      
+        127742.0       2.250466      
+        166119.0       2.304362      
+        216009.1       2.370358      
+        280866.3       2.452947      
+        308952.9       2.488242      
+
diff --git a/OldCodes/Carmel3D/FEV470 b/OldCodes/Carmel3D/FEV470
new file mode 100644 (file)
index 0000000..d3281a2
--- /dev/null
@@ -0,0 +1,31 @@
+               0.             0.             
+        40.28202      0.3233068             
+        80.56404      0.6466137             
+        133.2969      0.8959763             
+        196.5763       1.092960             
+        272.5116       1.235844             
+        363.6339       1.322937             
+        472.9807       1.364753             
+        604.1969       1.403417             
+        761.6563       1.442002             
+        950.6076       1.479882             
+        1177.349       1.516478             
+        1449.439       1.551293             
+        1775.947       1.583937             
+        2167.756       1.614135             
+        2637.928       1.641730             
+        3202.133       1.666674             
+        3879.180       1.689014             
+        4691.636       1.708866             
+        5666.584       1.726406             
+        6836.521       1.741841             
+        8240.445       1.755403             
+        9925.154       1.767332             
+        11946.81       1.777868             
+        14372.79       1.787249             
+        17283.96       1.795704             
+        20777.38       1.803454             
+        24969.48       1.810715             
+        30000.00       1.817699             
+        33000.00       1.821469             
+
diff --git a/OldCodes/Carmel3D/FEV600 b/OldCodes/Carmel3D/FEV600
new file mode 100644 (file)
index 0000000..5281d05
--- /dev/null
@@ -0,0 +1,31 @@
+              0.             0.             
+        40.28202      0.5217850             
+        80.56404       1.043570             
+        133.2969       1.219489             
+        196.5763       1.330541             
+        272.5116       1.406615             
+        363.6339       1.461884             
+        472.9807       1.503975             
+        604.1969       1.537396             
+        761.6563       1.565024             
+        950.6076       1.588824             
+        1177.349       1.610226             
+        1449.439       1.630343             
+        1775.947       1.650098             
+        2167.756       1.670444             
+        2637.928       1.693085             
+        3202.133       1.718405             
+        3879.180       1.746379             
+        4691.636       1.776860             
+        5666.584       1.809549             
+        6836.521       1.843973             
+        8240.445       1.879470             
+        9925.154       1.915191             
+        11946.81       1.950107             
+        14372.79       1.983036             
+        17283.96       2.012676             
+        20777.38       2.037636             
+        24969.48       2.056473             
+        30000.00       2.067699             
+        33000.00       2.071469             
+
diff --git a/OldCodes/Carmel3D/FEV800 b/OldCodes/Carmel3D/FEV800
new file mode 100644 (file)
index 0000000..810c3ab
--- /dev/null
@@ -0,0 +1,30 @@
+              0.             0.             
+        40.28202      0.3324555             
+        80.56404      0.6649110             
+        133.2969      0.9138392             
+        196.5763       1.111536             
+        272.5116       1.260901             
+        363.6339       1.364212             
+        472.9807       1.422949             
+        604.1969       1.451498             
+        761.6563       1.480342             
+        950.6076       1.510200             
+        1177.349       1.540614             
+        1449.439       1.571091             
+        1775.947       1.601134             
+        2167.756       1.630277             
+        2637.928       1.658111             
+        3202.133       1.684309             
+        3879.180       1.708632             
+        4691.636       1.730937             
+        5666.584       1.751169             
+        6836.521       1.769348             
+        8240.445       1.785560             
+        9925.154       1.799934             
+        11946.81       1.812635             
+        14372.79       1.823846             
+        17283.96       1.833761             
+        20777.38       1.842578             
+        24969.48       1.850493             
+        30000.00       1.857699             
+        33000.00       1.861469             
diff --git a/OldCodes/Carmel3D/HA600 b/OldCodes/Carmel3D/HA600
new file mode 100644 (file)
index 0000000..4c4a877
--- /dev/null
@@ -0,0 +1,30 @@
+              0.             0.             
+        40.28202      0.3951843             
+        80.56404      0.7903686             
+        133.2969      0.9716319             
+        196.5763       1.095780             
+        272.5116       1.185383             
+        363.6339       1.252692             
+        472.9807       1.304966             
+        604.1969       1.346809             
+        761.6563       1.381319             
+        950.6076       1.410688             
+        1177.349       1.436551             
+        1449.439       1.460186             
+        1775.947       1.483959             
+        2167.756       1.510788             
+        2637.928       1.540831             
+        3202.133       1.574084             
+        3879.180       1.610407             
+        4691.636       1.649490             
+        5666.584       1.690835             
+        6836.521       1.733738             
+        8240.445       1.777294             
+        9925.154       1.820413             
+        11946.81       1.861850             
+        14372.79       1.900252             
+        17283.96       1.934193             
+        20777.38       1.962221             
+        24969.48       1.982877             
+        30000.00       1.994699             
+        33000.00       1.998469             
diff --git a/OldCodes/Carmel3D/M600_65 b/OldCodes/Carmel3D/M600_65
new file mode 100644 (file)
index 0000000..cfc3f3b
--- /dev/null
@@ -0,0 +1,30 @@
+              0.             0.             
+       0.1676396E-03  0.2082807E-05         
+       0.3352792E-03  0.4165609E-05         
+       0.7823178E-03  0.9719718E-05         
+       0.1676395E-02  0.2082782E-04         
+       0.3464548E-02  0.4304356E-04         
+       0.7040854E-02  0.8747321E-04         
+       0.1419346E-01  0.1763252E-03         
+       0.2849867E-01  0.3540000E-03         
+       0.5710909E-01  0.7092333E-03         
+       0.1143299      0.1419235E-02         
+       0.2287715      0.2837381E-02         
+       0.4576545      0.5666269E-02         
+       0.9154205      0.1129461E-01         
+        1.830952      0.2243500E-01         
+        3.662015      0.4426165E-01         
+        7.324139      0.8618276E-01         
+        14.64838      0.1637067             
+        29.29687      0.2975280             
+        58.59383      0.5032464             
+        117.1877      0.7693985             
+        234.3755       1.046909             
+        468.7509       1.279960             
+        937.5016       1.447085             
+        1875.003       1.563602             
+        3750.004       1.671697             
+        7500.005       1.775926             
+        15000.00       1.854134             
+        30000.00       1.897699             
+        33000.00       1.901469             
diff --git a/OldCodes/Carmel3D/M6X2ISO1 b/OldCodes/Carmel3D/M6X2ISO1
new file mode 100644 (file)
index 0000000..e6facc8
--- /dev/null
@@ -0,0 +1,16 @@
+          0.             0.             
+        477.0000       1.100000             
+        922.9141       1.633186             
+        1337.513       1.756419             
+        4292.604       1.852735             
+        6366.000       1.880000             
+        7958.000       1.900000             
+        15915.00       1.980000             
+        23873.00       2.020000             
+        31830.00       2.045000             
+        47746.00       2.080000             
+        64329.63       2.111715             
+        86767.84       2.145308             
+        148638.1       2.239294             
+        238700.0       2.355000             
+        318300.0       2.420000             
diff --git a/OldCodes/Carmel3D/M6X_epsilon.mater b/OldCodes/Carmel3D/M6X_epsilon.mater
new file mode 100644 (file)
index 0000000..c1c50ef
--- /dev/null
@@ -0,0 +1 @@
+         1.0
diff --git a/OldCodes/Carmel3D/M6X_homog_mu.mater b/OldCodes/Carmel3D/M6X_homog_mu.mater
new file mode 100644 (file)
index 0000000..57d6c24
--- /dev/null
@@ -0,0 +1 @@
+        1.5331206E4-j.1.6906576E4 1.9440262E3-j.2.6880635E1    1.6315E1
diff --git a/OldCodes/Carmel3D/M6X_homog_sigma.mater b/OldCodes/Carmel3D/M6X_homog_sigma.mater
new file mode 100644 (file)
index 0000000..6597c15
--- /dev/null
@@ -0,0 +1 @@
+        0.0
diff --git a/OldCodes/Carmel3D/M6X_lineaire_mu.mater b/OldCodes/Carmel3D/M6X_lineaire_mu.mater
new file mode 100644 (file)
index 0000000..8698c6b
--- /dev/null
@@ -0,0 +1 @@
+        1.60000E4      2.0000E3       3.0000E1
diff --git a/OldCodes/Carmel3D/M6X_lineaire_sigma.mater b/OldCodes/Carmel3D/M6X_lineaire_sigma.mater
new file mode 100644 (file)
index 0000000..a4cfced
--- /dev/null
@@ -0,0 +1 @@
+        1.492537313E6.
diff --git a/OldCodes/Carmel3D/M6X_mu.mater b/OldCodes/Carmel3D/M6X_mu.mater
new file mode 100644 (file)
index 0000000..fa1141c
--- /dev/null
@@ -0,0 +1,22 @@
+         0.             0.             0.             0.
+        625.9739       1.572659       477.0000      0.7020000
+        796.0000       1.665000       796.0000       1.170000
+        1719.099       1.786521       1591.000       1.310000
+        3183.000       1.810000       3183.000       1.430000
+        3979.000       1.830000       3979.000       1.475000
+        4775.000       1.850000       4775.000       1.510000
+        5570.000       1.865000       5570.000       1.540000
+        6366.000       1.880000       6366.000       1.570000
+        7958.000       1.900000       7958.000       1.620000
+        11937.00       1.950000       11937.00       1.695000
+        15915.00       1.980000       15915.00       1.760000
+        19098.00       2.000000       19098.00       1.810000
+        31830.00       2.045000       31830.00       1.930000
+        47746.00       2.080000       47746.00       2.010000
+        63662.00       2.110000       63662.00       2.070000
+        79577.00       2.145000       79577.00       2.120000
+        111041.0       2.200000       111041.0       2.190000
+        143200.0       2.240000       143200.0       2.255000
+        198900.0       2.310000       198900.0       2.325000
+        238700.0       2.355000       238700.0       2.360000
+        318300.0       2.420000       318300.0       2.420000
diff --git a/OldCodes/Carmel3D/__init__.py b/OldCodes/Carmel3D/__init__.py
new file mode 100644 (file)
index 0000000..40a96af
--- /dev/null
@@ -0,0 +1 @@
+# -*- coding: utf-8 -*-
diff --git a/OldCodes/Carmel3D/ajoutGroupe.py b/OldCodes/Carmel3D/ajoutGroupe.py
new file mode 100644 (file)
index 0000000..7179c9e
--- /dev/null
@@ -0,0 +1,203 @@
+# -*- coding: iso-8859-1 -*-
+
+import re # module interne utilisé pour vérifier la validité du nom du maillage
+
+concept_re=re.compile(r'[a-zA-Z_]\w*$') # nom de maillage valide s'il correspond à un identifiant (variable) Python possible. Basé sur Ihm/I_Etape.py:nomme_sd, qui fait foi
+
+def handleAjoutGroupSansFiltre(editor,listeGroup):
+        """code_Carmel temporel : obtention des groupes de maille du maillage selectionne dans Salome
+        Les groupes de mailles ne sont pas filtrés.
+        La creation du MESH_GROUPE n'est donc pas typé.
+        ATTENTION! Le nom devenant un concept, i.e. une variable Python, certains signes sont interdits dans le nom du groupe,
+        e.g. les signes moins (-), plus (+), etc. Une erreur est retournee en ce cas.
+        """
+        # retourne le dernier element du JdC, ou None si le JdC est vide, afin de savoir a quelle place ajouter les MESH_GROUPE (en dernier)
+        debug = True
+        try:
+            dernier=editor.tree.racine.children[-1]
+        except:
+            dernier=None
+        for groupe in listeGroup: # parcours de la liste de tous les groupes de maille trouves (volumiques et les autres), puis ecriture du MESHGROUP systématique sans analyse de nom multiple
+            if debug: print 'groupe=', groupe
+            if not concept_re.match(groupe): # Le nom du groupe de maillage doit etre un identificateur Python
+                raise ValueError, "Ce nom de groupe ("+groupe+") ne peut pas etre utilise car il ne peut pas servir de concept a cause de caracteres interdits, e.g. signes moins (-), plus (+), etc."
+            try: # test de conformite du nom pour un concept, i.e. une variable Python
+                #exec(groupe+'=None') # le test consiste a tenter de creer une variable, initialisee a None, a partir du nom, e.g. toto=None est bon mais toto-foo=None ne fonctionne pas.
+                # creation du groupe MESH_GROUPE
+                if dernier != None:
+                    new_node = dernier.append_brother("MESHGROUP",'after')
+                else:
+                    new_node=editor.tree.racine.append_child("MESHGROUP",pos='first')
+                test,mess = new_node.item.nomme_sd(groupe) # precision du nom (de concept) du groupe
+                if debug: print u"ce nom de groupe ("+groupe+") est utilise..."
+                dernier=new_node # mise a jour du dernier noeud du JdC, afin de rajouter les autres MESH_GROUPE eventuels a sa suite
+            except:
+                raise ValueError,  "Ce nom de groupe ("+groupe+") pose un probleme inconnu"
+
+def handleAjoutGroupAvecFiltre(editor,listeGroup):
+        """CARMEL3D : obtention des groupes de maille du maillage selectionne dans Salome
+        Les groupes de mailles sont filtres en utilisant une liste des  prefixes autorises pour code Code_Carmel3D,
+        i.e. un nom de groupe de mailles est DIEL_toto_foo par exemple, qui deviendra toto_foo.
+        La creation du MESH_GROUPE est type (materiau ou source), d'après le prefixe.
+        ATTENTION! Le nom devenant un concept, i.e. une variable Python, certains signes sont interdits dans le nom du groupe,
+        e.g. les signes moins (-), plus (+), etc. Une erreur est retournee en ce cas.
+        """
+        from string import join
+        debug = False #True
+        listePrefixesMateriaux = ('DIEL', 'NOCOND','COND', 'ZS', 'ZJ', 'NILMAT') # liste des prefixes pour les materiaux
+        listePrefixesSourcesHorsInducteur = ('EPORT', 'HPORT') # liste des prefixes pour les sources
+        listePrefixesInducteurBobine = ('CURRENT', ) # listes des prefixes autorises pour definir la geometrie d'un inducteur bobiné complet ou en morceaux
+        listePrefixesTrous = ('TOPO', ) # listes des prefixes autorises pour definir la geometrie d'un trou complet ou en morceaux
+        listePrefixesBBK = ('BBK', ) # listes des prefixes autorises pour definir le groupe d'éléments servant de boîte englobante dans laquelle est calculée K (inducteur bobiné ou topo).
+        listePrefixes = listePrefixesMateriaux + listePrefixesSourcesHorsInducteur +listePrefixesInducteurBobine + listePrefixesTrous + listePrefixesBBK # liste de tous les prefixes autorises
+        listePrefixesGroupesMultiples = ('CURRENT', 'TOPO' ) # listes des prefixes autorises pour groupes multiples, i.e. plusieurs groupes de mailles associes en une seule caracteistique materiau ou source
+        if debug:
+            print "listePrefixes=", listePrefixes
+            print "listePrefixesGroupesMultiples=", listePrefixesGroupesMultiples
+        sep = '_' # separateur entre le prefixe et le nom reel du groupe (qui peut lui aussi contenir ce separateur)
+        dictGroupesMultiples = {} # dictionnaire contenant les noms reels possibles de groupes multiples et leur occurence dans la liste, i.e. 1 par defaut et > 1 pour une groupe multiple, e.g. pour un inducteur bobine en plusieurs morceaux CURRENT_toto_1, CURRENT_toto_2, ce dictionnaire contiendra 'toto':2 
+        for groupe in listeGroup:
+            partiesGroupe = groupe.split(sep) # parties du nom, separees initialement par le separateur du prefixe, e.g. 'CURRENT_toto_foo' devient ['CURRENT','toto','foo'] et 'toto' devient ['toto']
+            prefix = partiesGroupe[0] # prefixe possible de ce nom, ou nom lui-meme
+            if len(partiesGroupe) >= 3 and prefix in listePrefixesGroupesMultiples: # prefixe existant et autorise
+                nomGroupeMultiple = partiesGroupe[1] # nom possible d'un groupe multiple
+                if dictGroupesMultiples.has_key(nomGroupeMultiple): # comptage du nombre d'occurrences de ce nom de groupe multiple possible
+                    dictGroupesMultiples[nomGroupeMultiple]['nombre'] += 1
+                    dictGroupesMultiples[nomGroupeMultiple]['membres'].append(join(partiesGroupe[1:], sep))
+                else:
+                    dictGroupesMultiples[nomGroupeMultiple] = {'type': prefix,'nombre':1, 'membres':[join(partiesGroupe[1:], sep)]}
+        for groupe in dictGroupesMultiples.keys(): # recherche de tous les groupes multiples. Boucle ignorée si aucun groupe multiple.
+            dictGroupesMultiples[groupe]['membres'].sort() # tri alphabétique des membres du groupe multiple, qui est l'ordre lu par gendof.exe/MED (ordre lexicographique).
+            dictGroupesMultiples[groupe]['membres'] = tuple(dictGroupesMultiples[groupe]['membres']) # transformation en tuple, qui est le format attendu par le catalogue (LISTE_MESHGROUP)
+        if debug:
+            print "dictGroupesMultiples=", dictGroupesMultiples
+        # retourne le dernier element du JdC, ou None si le JdC est vide, afin de savoir a quelle place ajouter les MESH_GROUPE (en dernier)
+        try:
+            dernier=editor.tree.racine.children[-1]
+        except:
+            dernier=None
+        for groupe in listeGroup: # parcours de la liste de tous les groupes de maille trouves (volumiques et les autres), puis ecriture du MESHGROUP systématique sans analyse de nom multiple
+            if debug: print 'groupe=', groupe
+            partiesGroupe = groupe.split(sep) # parties du nom, separees initialement par le separateur du prefixe, e.g. 'CURRENT_toto_foo' devient ['CURRENT','toto','foo'] et 'toto' devient ['toto']
+            if len(partiesGroupe) == 1: # pas de prefixe
+                print u"ERREUR: ce nom de groupe ("+groupe+") ne peut pas etre utilise car il n'a pas de prefixe"
+            elif len(partiesGroupe) >= 2 and partiesGroupe[0] in listePrefixes: # prefixe existant et autorise
+                prefix = partiesGroupe[0] # prefixe possible de ce nom, ou nom lui-meme
+                nom = partiesGroupe[1] # nom du groupe ou du macro-groupe si défini.
+                nomReel = join(partiesGroupe[1:], sep) # reconstruction du nom reel, i.e. sans le prefixe, pour la plupart des groupes
+                if prefix in listePrefixesBBK: nomReel = groupe # pour la boite englobante, il faut le nom avec préfixe
+                if not concept_re.match(nomReel): # Le nom du groupe de maillage doit etre un identificateur Python
+                    raise ValueError, "Ce nom de groupe ("+nomReel+") ne peut pas etre utilise car il ne peut pas servir de concept a cause de caracteres interdits, e.g. signes moins (-), plus (+), etc."
+                try: # test de conformite du nom pour un concept, i.e. une variable Python
+                    #exec(nomReel+'=None') # le test consiste a tenter de creer une variable, initialisee a None, a partir du nom, e.g. toto=None est bon mais toto-foo=None ne fonctionne pas.
+                    # creation du groupe MESH_GROUPE
+                    if dernier != None:
+                        new_node = dernier.append_brother("MESHGROUP",'after')
+                    else:
+                        new_node=editor.tree.racine.append_child("MESHGROUP",pos='first')
+                    test,mess = new_node.item.nomme_sd(nomReel) # precision du nom (de concept) du groupe
+                    if debug: print u"ce nom de groupe ("+nomReel+") est utilise..."
+                    if prefix in listePrefixesMateriaux: # ce groupe est associe a un materiau
+                        new_node.append_child('MATERIAL') # on rajoute la propriete de materiau, qu'il suffit d'associer ensuite a la liste des materiaux presents
+                        if debug: print u" et c'est un materiau."
+                    elif prefix in listePrefixesSourcesHorsInducteur: # ce groupe est associe a une source
+                        new_node.append_child('SOURCE') # on rajoute la propriete de la source, qu'il suffit d'associer ensuite a la liste des sources presentes
+                        if debug: print u" et c'est une source."
+                    elif prefix in listePrefixesInducteurBobine: # ce groupe est associe a une source
+                        new_node.append_child('STRANDED_INDUCTOR_GEOMETRY') # on rajoute la propriete de géométrie de l'inducteur bobiné
+                        if debug: print u" et c'est un inducteur bobine dont on definit la geometrie."
+                        if nom not in dictGroupesMultiples.keys(): # il ne fait pas partie d'un macro-groupe. La source est définie ici, ainsi que le domaine.
+                            new_node.append_child('SOURCE') # on rajoute la propriete de la source, qu'il suffit d'associer ensuite a la liste des sources presentes
+                            new_node.append_child('Domaine') # on rajoute la propriete du domaine (default automatique), qu'il suffit d'associer ensuite a la liste des domaines présents
+                            if debug: print u" et c'est une source en un seul morceau."
+                    else: # ce cas ne devrait pas se produire
+                        pass
+                    dernier=new_node # mise a jour du dernier noeud du JdC, afin de rajouter les autres MESH_GROUPE eventuels a sa suite
+                except:
+                    raise ValueError,  "Ce nom de groupe ("+nomReel+") pose un probleme inconnu"
+                    #print u"ERREUR: ce nom de groupe ("+nomReel+") ne peut pas etre utilise car il ne peut pas servir de concept a cause de caractères interdits, e.g. signes moins (-), plus (+), etc."
+            else: # prefixe existant mais non autorise
+                print u"ERREUR: ce nom de groupe ("+groupe+") ne peut pas etre utilise car son prefixe ("+partiesGroupe[0]+") n'est pas dans la liste autorisee "+str(listePrefixes)
+        if len(dictGroupesMultiples) > 0: # on a des groupes à nom multiples, e.g., inducteur bobiné en morceaux.
+            for groupe, contenu in dictGroupesMultiples.iteritems(): # parcours de la liste de tous les groupes de maille trouves (volumiques et les autres), et sélection des groupes à nom multiple
+                if debug: print 'groupe, contenu=', groupe, contenu
+                nomReel = groupe
+                prefix = contenu['type']
+                try: # test de conformite du nom pour un concept, i.e. une variable Python
+                    exec(nomReel+'=None') # le test consiste a tenter de creer une variable, initialisee a None, a partir du nom, e.g. toto=None est bon mais toto-foo=None ne fonctionne pas.
+                    # creation du groupe MACRO_GROUPE
+                    if dernier != None:
+                        new_node = dernier.append_brother("MACRO_GROUPE",'after')
+                    else:
+                        new_node=editor.tree.racine.append_child("MACRO_GROUPE",pos='first')
+                    test,mess = new_node.item.nomme_sd(nomReel) # precision du nom (de concept) du groupe
+                    if debug: print u"ce nom de groupe ("+nomReel+") est utilise..."
+                    if debug: print u" et on ajoute la liste LISTE_MESHGROUP."
+                    node_list=new_node.append_child('LISTE_MESHGROUP') # Ajout de la liste des membres du groupe multiple
+                    if debug:
+                        print 'Liste possible pour LISTE_MESHGROUP :'
+                        print '_____________________'
+                        print node_list.item.get_liste_possible(())
+                        print '_____________________'
+                        print dir(node_list.item)
+                    listeNom=node_list.item.get_sd_avant_du_bon_type()
+                    listeObjet=[]
+                    for nom in listeNom: 
+                        if nom in dictGroupesMultiples[groupe]['membres']:
+                           #--> transformation du nom en objet
+                           obj,valide=node_list.item.eval_valeur(nom)
+                           listeObjet.append(obj)
+                    node_list.item.set_valeur(listeObjet) 
+                    node_list.affichePanneau()             
+                    if prefix in listePrefixesMateriaux: # ce groupe est associe a un materiau
+                        new_node.append_child('MATERIAL') # on rajoute la propriete de materiau, qu'il suffit d'associer ensuite a la liste des materiaux presents
+                        if debug: print u" et c'est un materiau."
+                    elif prefix in listePrefixesSourcesHorsInducteur: # ce groupe est associe a une source
+                        new_node.append_child('SOURCE') # on rajoute la propriete de la source, qu'il suffit d'associer ensuite a la liste des sources presentes
+                        if debug: print u" et c'est une source hors inducteur."
+                    elif prefix in listePrefixesInducteurBobine: # ce groupe est associe a une source
+                        new_node.append_child('SOURCE') # on rajoute la propriete de la source, qu'il suffit d'associer ensuite a la liste des sources presentes
+                        new_node.append_child('Domaine') # on rajoute la propriete du domaine (default automatique), qu'il suffit d'associer ensuite a la liste des domaines présents
+                        if debug: print u" et c'est une source inducteur."
+                    elif prefix in listePrefixesTrous: # ce groupe est associe a un trou
+                        new_node.append_child('Domaine') # on rajoute la propriete du domaine (default automatique), qu'il suffit d'associer ensuite a la liste des domaines présents
+                        if debug: print u" et c'est un trou."
+                    else: # ce cas ne devrait pas se produire
+                        pass
+                    dernier=new_node # mise a jour du dernier noeud du JdC, afin de rajouter les autres MESH_GROUPE eventuels a sa suite
+                except:
+                    print u"ERREUR: ce nom de groupe ("+nomReel+") ne peut pas etre utilise car il ne peut pas servir de concept a cause de caractères interdits, e.g. signes moins (-), plus (+), etc."
+
+def handleAjoutGroupFiltre(editor,listeGroup):
+        """CARMEL3D : obtention des groupes de maille du maillage selectionne dans Salome
+        Les groupes de mailles sont filtres en utilisant une liste des  prefixes autorises pour code Code_Carmel3D,
+        i.e. un nom de groupe de mailles est DIEL_toto_foo par exemple, qui deviendra toto_foo.
+        La creation du MESH_GROUPE est type (materiau ou source), d'après le prefixe.
+        ATTENTION! Le nom devenant un concept, i.e. une variable Python, certains signes sont interdits dans le nom du groupe,
+        e.g. les signes moins (-), plus (+), etc. Une erreur est retournee en ce cas.
+        """
+        from string import join
+        debug = True
+        #print 'DEBUG listeGroup manuel' # Il faut aussi commenter la ligne Msg,listeGroup=self.ChercheGrpMailleInSalome() dans la routine  ChercheGrpMaille de qtEficas.py
+        #listeGroup = ['DIEL_air', 'COND_plaque', 'CURRENT_bobine'  ] # cas-test plaque Rodger avec DIEL_
+        #listeGroup = ['NOCOND_air', 'COND_plaque', 'CURRENT_bobine'  ] # cas-test plaque Rodger
+        #listeGroup = ['DIEL_air', 'COND_plaque', 'NOCOND_noyau', 'CURRENT_bobine_1', 'CURRENT_bobine_2', 'CURRENT_bobine_3' ]
+        #listeGroup = ['DIEL_air', 'COND_plaque', 'NOCOND_noyau', 'CURRENT_bobine'  ]
+        #listeGroup = ['BBK_bobine', 'DIEL_air', 'COND_plaque', 'NOCOND_noyau', 'CURRENT_bobine'  ] # avec BBK
+        #listeGroup = ['EPORT+_dom', 'EPORT-_dom', 'H', 'COND_cyl', 'EPORT_dom'] # cas-test CSS_Tempimpo
+        #listeGroup= ['BBK_spire', 'CURRENT_spire_4', 'NOCOND_air', 'CURRENT_spire_3', 'CURRENT_spire_1', 'CURRENT_spire_2'] # cas-test spire_dans l'air en 4 morceaux
+        #listeGroup= ['BBK_bobine', 'CURRENT_ind_2', 'DIEL_air', 'CURRENT_ind_8', 'CURRENT_ind_6', 'CURRENT_ind_1', 'CURRENT_ind_3', 'CURRENT_ind_7', 'CURRENT_ind_5', 'CURRENT_ind_4', 'BBK_topo', 'COND_plaque', 'TOPO_trou_1', 'TOPO_trou_3', 'TOPO_trou_2', 'TOPO_trou_8', 'TOPO_trou_4', 'TOPO_trou_7', 'TOPO_trou_5', 'TOPO_trou_6'] # cas-test T.E.A.M. Workshop 7
+        if debug:
+            print "listeGroup=", listeGroup
+        version_catalogue = editor.CONFIGURATION.appli.readercata.version_code # détermination si le catalogue est fréquentiel ou temporel, d'après la deuxième entrée de la liste catalogues dans prefs_CARMEL3D.py
+        if debug:
+            print "Version catalogue=", version_catalogue
+        type_code = version_catalogue.split(' ')[0] # on garde le premier mot de la version du catalogue : 'frequentiel' ou 'temporel'
+        if debug:
+            print "Type de code=", type_code
+        if type_code not in ('frequentiel', 'temporel'): # test de cohérence du type de code
+            raise ValueError("Ce catalogue n'est ni frequentiel ni temporel")
+        if type_code == 'frequentiel':
+            handleAjoutGroupAvecFiltre(editor, listeGroup)
+        if type_code == 'temporel':
+            handleAjoutGroupSansFiltre(editor, listeGroup)
diff --git a/OldCodes/Carmel3D/configuration_CARMEL3D.py b/OldCodes/Carmel3D/configuration_CARMEL3D.py
new file mode 100644 (file)
index 0000000..9077185
--- /dev/null
@@ -0,0 +1,43 @@
+# -*- coding: utf-8 -*-\r
+# Copyright (C) 2007-2021   EDF R&D\r
+#\r
+# This library is free software; you can redistribute it and/or\r
+# modify it under the terms of the GNU Lesser General Public\r
+# License as published by the Free Software Foundation; either\r
+# version 2.1 of the License.\r
+#\r
+# This library is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+# Lesser General Public License for more details.\r
+#\r
+# You should have received a copy of the GNU Lesser General Public\r
+# License along with this library; if not, write to the Free Software\r
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+#\r
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com\r
+#\r
+"""\r
+    Ce module sert pour charger les paramètres de configuration d'EFICAS\r
+"""\r
+# Modules Python\r
+import configuration\r
+import os\r
+\r
+\r
+class CONFIG(configuration.CONFIG_BASE):\r
+\r
+  #-----------------------------------\r
+  def __init__(self,appli,repIni):\r
+  #-----------------------------------\r
+\r
+      self.labels_user=['exec_acrobat', 'catalogues','savedir']\r
+      self.labels_eficas=['path_doc','exec_acrobat','lang','rep_cata','catalogues']\r
+\r
+      self.INSTALLDIR =os.path.dirname(__file__)\r
+      configuration.CONFIG_BASE.__init__(self,appli,repIni)\r
+\r
+\r
+def make_config(appli,rep):\r
+    return CONFIG(appli,rep)\r
+\r
diff --git a/OldCodes/Carmel3D/materiaux/ACIER_TEAM13 b/OldCodes/Carmel3D/materiaux/ACIER_TEAM13
new file mode 100644 (file)
index 0000000..27b9f3b
--- /dev/null
@@ -0,0 +1,28 @@
+# B(H) curve from T.E.A.M. Workshop 13
+# New measures, last table from the notice (COMPEL 1995)
+# Measures from B=0 to 1.8 T, saturation J_s=2.16T
+# Hmod Bmod
+0.0      0.0
+45.0     0.0250   
+75.0     0.0500   
+120.0    0.1000   
+173.0    0.2000   
+201.0    0.3000   
+222.0    0.4000   
+240.0    0.5000   
+250.0    0.6000   
+265.0    0.7000   
+280.0    0.8000   
+300.0    0.9000   
+330.0    1.0000   
+365.0    1.1000   
+415.0    1.2000   
+500.0    1.3000   
+640.0    1.4000   
+890.0    1.5000   
+1150.0   1.5500   
+1940.0   1.6000   
+3100.0   1.6500   
+4370.0   1.7000   
+6347.0   1.7500   
+8655.0   1.8000   
diff --git a/OldCodes/Carmel3D/materiaux/CMakeLists.txt b/OldCodes/Carmel3D/materiaux/CMakeLists.txt
new file mode 100644 (file)
index 0000000..f616359
--- /dev/null
@@ -0,0 +1,35 @@
+# -*- coding: utf-8 -*-
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+
+
+install ( FILES 
+            ACIER_TEAM13 E24 FEV470 FEV600 FEV800 FEV1000 HA600 M600_65 M6X2ISO1
+            M6X_epsilon.mater M6X_mu.mater M6X_sigma.mater
+            M6X_homogene_mu.mater M6X_homogene_sigma.mater 
+            M6X_lineaire_mu.mater M6X_lineaire_sigma.mater
+            materiaux.comm
+          DESTINATION ${CMAKE_INSTALL_PREFIX}/Carmel3D/materiaux
+        )
+
+
+### Local Variables:
+### mode: cmake
+### End:
diff --git a/OldCodes/Carmel3D/materiaux/E24 b/OldCodes/Carmel3D/materiaux/E24
new file mode 100644 (file)
index 0000000..bc906b3
--- /dev/null
@@ -0,0 +1,13 @@
+              0.             0.             
+        1000.000       1.200000             
+        1200.000       1.270000             
+        1600.000       1.350000             
+        3000.000       1.520000             
+        6000.000       1.660000             
+        10000.00       1.750000             
+        20000.00       1.900000             
+        30000.00       2.000000             
+        49944.66       2.101082             
+        80000.00       2.200000             
+        132000.0       2.300000             
+        250000.0       2.400000             
diff --git a/OldCodes/Carmel3D/materiaux/FEV1000 b/OldCodes/Carmel3D/materiaux/FEV1000
new file mode 100644 (file)
index 0000000..7324073
--- /dev/null
@@ -0,0 +1,31 @@
+        0.0000000      0.0000000      
+        54.38605      0.5687161      
+        125.0879      0.9107189      
+        217.0004       1.133191      
+        336.4865       1.285649      
+        491.8185       1.394206      
+        693.7501       1.474002      
+        956.2611       1.534492      
+        1297.525       1.581962      
+        1741.169       1.620847      
+        2317.906       1.654481      
+        3067.663       1.685556      
+        4042.348       1.716430      
+        5309.438       1.749361      
+        6956.655       1.786698      
+        9098.037       1.831067      
+        11881.83       1.882414      
+        15500.77       1.931322      
+        20205.39       1.976478      
+        26321.39       2.017967      
+        34272.19       2.056381      
+        44608.23       2.092746      
+        58045.08       2.128448      
+        75512.98       2.165203      
+        98221.27       2.205061      
+        127742.0       2.250466      
+        166119.0       2.304362      
+        216009.1       2.370358      
+        280866.3       2.452947      
+        308952.9       2.488242      
+
diff --git a/OldCodes/Carmel3D/materiaux/FEV470 b/OldCodes/Carmel3D/materiaux/FEV470
new file mode 100644 (file)
index 0000000..d3281a2
--- /dev/null
@@ -0,0 +1,31 @@
+               0.             0.             
+        40.28202      0.3233068             
+        80.56404      0.6466137             
+        133.2969      0.8959763             
+        196.5763       1.092960             
+        272.5116       1.235844             
+        363.6339       1.322937             
+        472.9807       1.364753             
+        604.1969       1.403417             
+        761.6563       1.442002             
+        950.6076       1.479882             
+        1177.349       1.516478             
+        1449.439       1.551293             
+        1775.947       1.583937             
+        2167.756       1.614135             
+        2637.928       1.641730             
+        3202.133       1.666674             
+        3879.180       1.689014             
+        4691.636       1.708866             
+        5666.584       1.726406             
+        6836.521       1.741841             
+        8240.445       1.755403             
+        9925.154       1.767332             
+        11946.81       1.777868             
+        14372.79       1.787249             
+        17283.96       1.795704             
+        20777.38       1.803454             
+        24969.48       1.810715             
+        30000.00       1.817699             
+        33000.00       1.821469             
+
diff --git a/OldCodes/Carmel3D/materiaux/FEV600 b/OldCodes/Carmel3D/materiaux/FEV600
new file mode 100644 (file)
index 0000000..5281d05
--- /dev/null
@@ -0,0 +1,31 @@
+              0.             0.             
+        40.28202      0.5217850             
+        80.56404       1.043570             
+        133.2969       1.219489             
+        196.5763       1.330541             
+        272.5116       1.406615             
+        363.6339       1.461884             
+        472.9807       1.503975             
+        604.1969       1.537396             
+        761.6563       1.565024             
+        950.6076       1.588824             
+        1177.349       1.610226             
+        1449.439       1.630343             
+        1775.947       1.650098             
+        2167.756       1.670444             
+        2637.928       1.693085             
+        3202.133       1.718405             
+        3879.180       1.746379             
+        4691.636       1.776860             
+        5666.584       1.809549             
+        6836.521       1.843973             
+        8240.445       1.879470             
+        9925.154       1.915191             
+        11946.81       1.950107             
+        14372.79       1.983036             
+        17283.96       2.012676             
+        20777.38       2.037636             
+        24969.48       2.056473             
+        30000.00       2.067699             
+        33000.00       2.071469             
+
diff --git a/OldCodes/Carmel3D/materiaux/FEV800 b/OldCodes/Carmel3D/materiaux/FEV800
new file mode 100644 (file)
index 0000000..810c3ab
--- /dev/null
@@ -0,0 +1,30 @@
+              0.             0.             
+        40.28202      0.3324555             
+        80.56404      0.6649110             
+        133.2969      0.9138392             
+        196.5763       1.111536             
+        272.5116       1.260901             
+        363.6339       1.364212             
+        472.9807       1.422949             
+        604.1969       1.451498             
+        761.6563       1.480342             
+        950.6076       1.510200             
+        1177.349       1.540614             
+        1449.439       1.571091             
+        1775.947       1.601134             
+        2167.756       1.630277             
+        2637.928       1.658111             
+        3202.133       1.684309             
+        3879.180       1.708632             
+        4691.636       1.730937             
+        5666.584       1.751169             
+        6836.521       1.769348             
+        8240.445       1.785560             
+        9925.154       1.799934             
+        11946.81       1.812635             
+        14372.79       1.823846             
+        17283.96       1.833761             
+        20777.38       1.842578             
+        24969.48       1.850493             
+        30000.00       1.857699             
+        33000.00       1.861469             
diff --git a/OldCodes/Carmel3D/materiaux/HA600 b/OldCodes/Carmel3D/materiaux/HA600
new file mode 100644 (file)
index 0000000..4c4a877
--- /dev/null
@@ -0,0 +1,30 @@
+              0.             0.             
+        40.28202      0.3951843             
+        80.56404      0.7903686             
+        133.2969      0.9716319             
+        196.5763       1.095780             
+        272.5116       1.185383             
+        363.6339       1.252692             
+        472.9807       1.304966             
+        604.1969       1.346809             
+        761.6563       1.381319             
+        950.6076       1.410688             
+        1177.349       1.436551             
+        1449.439       1.460186             
+        1775.947       1.483959             
+        2167.756       1.510788             
+        2637.928       1.540831             
+        3202.133       1.574084             
+        3879.180       1.610407             
+        4691.636       1.649490             
+        5666.584       1.690835             
+        6836.521       1.733738             
+        8240.445       1.777294             
+        9925.154       1.820413             
+        11946.81       1.861850             
+        14372.79       1.900252             
+        17283.96       1.934193             
+        20777.38       1.962221             
+        24969.48       1.982877             
+        30000.00       1.994699             
+        33000.00       1.998469             
diff --git a/OldCodes/Carmel3D/materiaux/M600_65 b/OldCodes/Carmel3D/materiaux/M600_65
new file mode 100644 (file)
index 0000000..cfc3f3b
--- /dev/null
@@ -0,0 +1,30 @@
+              0.             0.             
+       0.1676396E-03  0.2082807E-05         
+       0.3352792E-03  0.4165609E-05         
+       0.7823178E-03  0.9719718E-05         
+       0.1676395E-02  0.2082782E-04         
+       0.3464548E-02  0.4304356E-04         
+       0.7040854E-02  0.8747321E-04         
+       0.1419346E-01  0.1763252E-03         
+       0.2849867E-01  0.3540000E-03         
+       0.5710909E-01  0.7092333E-03         
+       0.1143299      0.1419235E-02         
+       0.2287715      0.2837381E-02         
+       0.4576545      0.5666269E-02         
+       0.9154205      0.1129461E-01         
+        1.830952      0.2243500E-01         
+        3.662015      0.4426165E-01         
+        7.324139      0.8618276E-01         
+        14.64838      0.1637067             
+        29.29687      0.2975280             
+        58.59383      0.5032464             
+        117.1877      0.7693985             
+        234.3755       1.046909             
+        468.7509       1.279960             
+        937.5016       1.447085             
+        1875.003       1.563602             
+        3750.004       1.671697             
+        7500.005       1.775926             
+        15000.00       1.854134             
+        30000.00       1.897699             
+        33000.00       1.901469             
diff --git a/OldCodes/Carmel3D/materiaux/M6X2ISO1 b/OldCodes/Carmel3D/materiaux/M6X2ISO1
new file mode 100644 (file)
index 0000000..e6facc8
--- /dev/null
@@ -0,0 +1,16 @@
+          0.             0.             
+        477.0000       1.100000             
+        922.9141       1.633186             
+        1337.513       1.756419             
+        4292.604       1.852735             
+        6366.000       1.880000             
+        7958.000       1.900000             
+        15915.00       1.980000             
+        23873.00       2.020000             
+        31830.00       2.045000             
+        47746.00       2.080000             
+        64329.63       2.111715             
+        86767.84       2.145308             
+        148638.1       2.239294             
+        238700.0       2.355000             
+        318300.0       2.420000             
diff --git a/OldCodes/Carmel3D/materiaux/M6X_epsilon.mater b/OldCodes/Carmel3D/materiaux/M6X_epsilon.mater
new file mode 100644 (file)
index 0000000..c1c50ef
--- /dev/null
@@ -0,0 +1 @@
+         1.0
diff --git a/OldCodes/Carmel3D/materiaux/M6X_homogene_mu.mater b/OldCodes/Carmel3D/materiaux/M6X_homogene_mu.mater
new file mode 100644 (file)
index 0000000..57d6c24
--- /dev/null
@@ -0,0 +1 @@
+        1.5331206E4-j.1.6906576E4 1.9440262E3-j.2.6880635E1    1.6315E1
diff --git a/OldCodes/Carmel3D/materiaux/M6X_homogene_sigma.mater b/OldCodes/Carmel3D/materiaux/M6X_homogene_sigma.mater
new file mode 100644 (file)
index 0000000..6597c15
--- /dev/null
@@ -0,0 +1 @@
+        0.0
diff --git a/OldCodes/Carmel3D/materiaux/M6X_lineaire_mu.mater b/OldCodes/Carmel3D/materiaux/M6X_lineaire_mu.mater
new file mode 100644 (file)
index 0000000..8698c6b
--- /dev/null
@@ -0,0 +1 @@
+        1.60000E4      2.0000E3       3.0000E1
diff --git a/OldCodes/Carmel3D/materiaux/M6X_lineaire_sigma.mater b/OldCodes/Carmel3D/materiaux/M6X_lineaire_sigma.mater
new file mode 100644 (file)
index 0000000..a4cfced
--- /dev/null
@@ -0,0 +1 @@
+        1.492537313E6.
diff --git a/OldCodes/Carmel3D/materiaux/M6X_mu.mater b/OldCodes/Carmel3D/materiaux/M6X_mu.mater
new file mode 100644 (file)
index 0000000..fa1141c
--- /dev/null
@@ -0,0 +1,22 @@
+         0.             0.             0.             0.
+        625.9739       1.572659       477.0000      0.7020000
+        796.0000       1.665000       796.0000       1.170000
+        1719.099       1.786521       1591.000       1.310000
+        3183.000       1.810000       3183.000       1.430000
+        3979.000       1.830000       3979.000       1.475000
+        4775.000       1.850000       4775.000       1.510000
+        5570.000       1.865000       5570.000       1.540000
+        6366.000       1.880000       6366.000       1.570000
+        7958.000       1.900000       7958.000       1.620000
+        11937.00       1.950000       11937.00       1.695000
+        15915.00       1.980000       15915.00       1.760000
+        19098.00       2.000000       19098.00       1.810000
+        31830.00       2.045000       31830.00       1.930000
+        47746.00       2.080000       47746.00       2.010000
+        63662.00       2.110000       63662.00       2.070000
+        79577.00       2.145000       79577.00       2.120000
+        111041.0       2.200000       111041.0       2.190000
+        143200.0       2.240000       143200.0       2.255000
+        198900.0       2.310000       198900.0       2.325000
+        238700.0       2.355000       238700.0       2.360000
+        318300.0       2.420000       318300.0       2.420000
diff --git a/OldCodes/Carmel3D/materiaux/M6X_sigma.mater b/OldCodes/Carmel3D/materiaux/M6X_sigma.mater
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/OldCodes/Carmel3D/materiaux/materiaux.comm b/OldCodes/Carmel3D/materiaux/materiaux.comm
new file mode 100644 (file)
index 0000000..3a5f08f
--- /dev/null
@@ -0,0 +1,270 @@
+\r
+AIR=MATERIAL(TYPE='DIELECTRIC',\r
+             PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
+                             ISOTROPIC='TRUE',\r
+                             LAW='LINEAR',\r
+                             VALUE=1,),\r
+             PERMITTIVITY=_F(HOMOGENEOUS='TRUE',\r
+                             ISOTROPIC='TRUE',\r
+                             LAW='LINEAR',\r
+                             VALUE=1,),);\r
+\r
+ALU=MATERIAL(TYPE='CONDUCTOR',\r
+             PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
+                             ISOTROPIC='TRUE',\r
+                             LAW='LINEAR',\r
+                             VALUE=1,),\r
+             CONDUCTIVITY=_F(HOMOGENEOUS='TRUE',\r
+                             ISOTROPIC='TRUE',\r
+                             LAW='LINEAR',\r
+                             VALUE=Decimal('3.448E+7'),),);\r
+\r
+ACIER_NOIR=MATERIAL(TYPE='CONDUCTOR',\r
+                    PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
+                                    ISOTROPIC='TRUE',\r
+                                    LAW='LINEAR',\r
+                                    VALUE=Decimal('1.0E+2'),),\r
+                    CONDUCTIVITY=_F(HOMOGENEOUS='TRUE',\r
+                                    ISOTROPIC='TRUE',\r
+                                    LAW='LINEAR',\r
+                                    VALUE=Decimal('6.00000E+6'),),);\r
+\r
+ACIER_CIMBLOT=MATERIAL(TYPE='CONDUCTOR',\r
+                       PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
+                                       ISOTROPIC='TRUE',\r
+                                       LAW='LINEAR',\r
+                                       VALUE=Decimal('50.0000'),),\r
+                       CONDUCTIVITY=_F(HOMOGENEOUS='TRUE',\r
+                                       ISOTROPIC='TRUE',\r
+                                       LAW='LINEAR',\r
+                                       VALUE=Decimal('3.00000E+6'),),);\r
+\r
+ACIER_PE=MATERIAL(TYPE='CONDUCTOR',\r
+                  PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
+                                  ISOTROPIC='TRUE',\r
+                                  LAW='LINEAR',\r
+                                  VALUE=Decimal('70'),),\r
+                  CONDUCTIVITY=_F(HOMOGENEOUS='TRUE',\r
+                                  ISOTROPIC='TRUE',\r
+                                  LAW='LINEAR',\r
+                                  VALUE=Decimal('1.75000E+6'),),);\r
+\r
+ACIER_TEAM13_mesures=MATERIAL(TYPE='DIELECTRIC',\r
+                              PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
+                                              ISOTROPIC='TRUE',\r
+                                              LAW='NONLINEAR',\r
+                                              VALUE=2376,\r
+                                              NATURE='SPLINE',\r
+                                              FILENAME='ACIER_TEAM13',\r
+                                              APPLIEDTO='B(H)&H(B)',),\r
+                              PERMITTIVITY=_F(HOMOGENEOUS='TRUE',\r
+                                              ISOTROPIC='TRUE',\r
+                                              LAW='LINEAR',\r
+                                              VALUE=('RI',1,0,),),);\r
+\r
+ACIER_TEAM13_Marrocco=MATERIAL(TYPE='DIELECTRIC',\r
+                               PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
+                                               ISOTROPIC='TRUE',\r
+                                               LAW='NONLINEAR',\r
+                                               VALUE=2376,\r
+                                               NATURE='MARROCCO+SATURATION',\r
+                                               ALPHA=9.98,\r
+                                               TAU=106000.0,\r
+                                               C=0.0119,\r
+                                               EPSILON=0.000467,\r
+                                               BMAX=1.85,\r
+                                               HSAT=47732.7,\r
+                                               BSAT=2.22,\r
+                                               JOIN='PARABOLIC',\r
+                                               APPLIEDTO='B(H)&H(B)',),\r
+                               PERMITTIVITY=_F(HOMOGENEOUS='TRUE',\r
+                                               ISOTROPIC='TRUE',\r
+                                               LAW='LINEAR',\r
+                                               VALUE=('RI',1,0,),),);\r
+\r
+BRONZE=MATERIAL(TYPE='CONDUCTOR',\r
+                PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
+                                ISOTROPIC='TRUE',\r
+                                LAW='LINEAR',\r
+                                VALUE=3.0,),\r
+                CONDUCTIVITY=_F(HOMOGENEOUS='TRUE',\r
+                                ISOTROPIC='TRUE',\r
+                                LAW='LINEAR',\r
+                                VALUE=Decimal('1.00000E+6'),),);\r
+\r
+CUIVRE=MATERIAL(TYPE='CONDUCTOR',\r
+                PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
+                                ISOTROPIC='TRUE',\r
+                                LAW='LINEAR',\r
+                                VALUE=1.0,),\r
+                CONDUCTIVITY=_F(HOMOGENEOUS='TRUE',\r
+                                ISOTROPIC='TRUE',\r
+                                LAW='LINEAR',\r
+                                VALUE=Decimal('5.85E+7'),),);\r
+\r
+E24=MATERIAL(TYPE='DIELECTRIC',\r
+             PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
+                             ISOTROPIC='TRUE',\r
+                             LAW='NONLINEAR',\r
+                             VALUE=Decimal('1.0'),\r
+                             NATURE='SPLINE',\r
+                             FILENAME='E24',\r
+                             APPLIEDTO='B(H)&H(B)',),\r
+             PERMITTIVITY=_F(HOMOGENEOUS='TRUE',\r
+                             ISOTROPIC='TRUE',\r
+                             LAW='LINEAR',\r
+                             VALUE=Decimal('1.0'),),);\r
+\r
+HA600=MATERIAL(TYPE='DIELECTRIC',\r
+               PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
+                               ISOTROPIC='TRUE',\r
+                               LAW='NONLINEAR',\r
+                               VALUE=Decimal('1.0'),\r
+                               NATURE='SPLINE',\r
+                               FILENAME='HA600',\r
+                               APPLIEDTO='B(H)&H(B)',),\r
+               PERMITTIVITY=_F(HOMOGENEOUS='TRUE',\r
+                               ISOTROPIC='TRUE',\r
+                               LAW='LINEAR',\r
+                               VALUE=Decimal('1.0'),),);\r
+\r
+INCONEL600=MATERIAL(TYPE='CONDUCTOR',\r
+                    PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
+                                    ISOTROPIC='TRUE',\r
+                                    LAW='LINEAR',\r
+                                    VALUE=1.01,),\r
+                    CONDUCTIVITY=_F(HOMOGENEOUS='TRUE',\r
+                                    ISOTROPIC='TRUE',\r
+                                    LAW='LINEAR',\r
+                                    VALUE=Decimal('9.7000E+5'),),);\r
+\r
+FERRITEB30=MATERIAL(TYPE='DIELECTRIC',\r
+                    PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
+                                    ISOTROPIC='TRUE',\r
+                                    LAW='LINEAR',\r
+                                    VALUE=Decimal('1.10E+3'),),\r
+                    PERMITTIVITY=_F(HOMOGENEOUS='TRUE',\r
+                                    ISOTROPIC='TRUE',\r
+                                    LAW='LINEAR',\r
+                                    VALUE=1.0,),);\r
+\r
+FERRITE_Ni_Zn=MATERIAL(TYPE='CONDUCTOR',\r
+                       PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
+                                       ISOTROPIC='TRUE',\r
+                                       LAW='LINEAR',\r
+                                       VALUE=Decimal('15.0000'),),\r
+                       CONDUCTIVITY=_F(HOMOGENEOUS='TRUE',\r
+                                       ISOTROPIC='TRUE',\r
+                                       LAW='LINEAR',\r
+                                       VALUE=Decimal('0.0000010000'),),);\r
+\r
+FERRITE_Mn_Zn=MATERIAL(TYPE='CONDUCTOR',\r
+                       PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
+                                       ISOTROPIC='TRUE',\r
+                                       LAW='LINEAR',\r
+                                       VALUE=Decimal('1.25E+3'),),\r
+                       CONDUCTIVITY=_F(HOMOGENEOUS='TRUE',\r
+                                       ISOTROPIC='TRUE',\r
+                                       LAW='LINEAR',\r
+                                       VALUE=Decimal('10'),),);\r
+\r
+FEV470=MATERIAL(TYPE='DIELECTRIC',\r
+                PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
+                                ISOTROPIC='TRUE',\r
+                                LAW='NONLINEAR',\r
+                                VALUE=Decimal('1.0'),\r
+                                NATURE='SPLINE',\r
+                                FILENAME='FEV470',\r
+                                APPLIEDTO='B(H)&H(B)',),\r
+                PERMITTIVITY=_F(HOMOGENEOUS='TRUE',\r
+                                ISOTROPIC='TRUE',\r
+                                LAW='LINEAR',\r
+                                VALUE=Decimal('1.0'),),);\r
+\r
+FEV600=MATERIAL(TYPE='DIELECTRIC',\r
+                PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
+                                ISOTROPIC='TRUE',\r
+                                LAW='NONLINEAR',\r
+                                VALUE=Decimal('1.0'),\r
+                                NATURE='SPLINE',\r
+                                FILENAME='FEV600',\r
+                                APPLIEDTO='B(H)&H(B)',),\r
+                PERMITTIVITY=_F(HOMOGENEOUS='TRUE',\r
+                                ISOTROPIC='TRUE',\r
+                                LAW='LINEAR',\r
+                                VALUE=Decimal('1.0'),),);\r
+\r
+FEV800=MATERIAL(TYPE='DIELECTRIC',\r
+                PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
+                                ISOTROPIC='TRUE',\r
+                                LAW='NONLINEAR',\r
+                                VALUE=Decimal('1.0'),\r
+                                NATURE='SPLINE',\r
+                                FILENAME='FEV800',\r
+                                APPLIEDTO='B(H)&H(B)',),\r
+                PERMITTIVITY=_F(HOMOGENEOUS='TRUE',\r
+                                ISOTROPIC='TRUE',\r
+                                LAW='LINEAR',\r
+                                VALUE=Decimal('1.0'),),);\r
+\r
+FEV1000=MATERIAL(TYPE='DIELECTRIC',\r
+                 PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
+                                 ISOTROPIC='TRUE',\r
+                                 LAW='NONLINEAR',\r
+                                 VALUE=Decimal('1.0'),\r
+                                 NATURE='SPLINE',\r
+                                 FILENAME='FEV1000',\r
+                                 APPLIEDTO='B(H)&H(B)',),\r
+                 PERMITTIVITY=_F(HOMOGENEOUS='TRUE',\r
+                                 ISOTROPIC='TRUE',\r
+                                 LAW='LINEAR',\r
+                                 VALUE=Decimal('1.0'),),);\r
+\r
+M600_65=MATERIAL(TYPE='DIELECTRIC',\r
+                 PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
+                                 ISOTROPIC='TRUE',\r
+                                 LAW='NONLINEAR',\r
+                                 VALUE=Decimal('1.0'),\r
+                                 NATURE='SPLINE',\r
+                                 FILENAME='M600_65',\r
+                                 APPLIEDTO='B(H)&H(B)',),\r
+                 PERMITTIVITY=_F(HOMOGENEOUS='TRUE',\r
+                                 ISOTROPIC='TRUE',\r
+                                 LAW='LINEAR',\r
+                                 VALUE=Decimal('1.0'),),);\r
+\r
+#M6X=MATERIAL(TYPE='EM_ANISOTROPIC',\r
+#             PERMEABILITY_File='M6X_mu.mater',\r
+#             CONDUCTIVITY_File='M6X_sigma.mater',);\r
+\r
+M6X2ISO1=MATERIAL(TYPE='CONDUCTOR',\r
+                  PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
+                                  ISOTROPIC='TRUE',\r
+                                  LAW='NONLINEAR',\r
+                                  VALUE=Decimal('1.0'),\r
+                                  NATURE='SPLINE',\r
+                                  FILENAME='M6X2ISO1',\r
+                                  APPLIEDTO='B(H)&H(B)',),\r
+                  CONDUCTIVITY=_F(HOMOGENEOUS='TRUE',\r
+                                  ISOTROPIC='TRUE',\r
+                                  LAW='LINEAR',\r
+                                  VALUE=Decimal('1.724E+6'),),);\r
+\r
+#M6X_LINEAIRE=MATERIAL(TYPE='EM_ANISOTROPIC',\r
+#                      PERMEABILITY_File='M6X_lineaire_mu.mater',\r
+#                      CONDUCTIVITY_File='M6X_lineaire_sigma.mater',);\r
+\r
+#M6X_HOMOGENE=MATERIAL(TYPE='EM_ANISOTROPIC',\r
+#                      PERMEABILITY_File='M6X_homogene_mu.mater',\r
+#                      CONDUCTIVITY_File='M6X_homogene_sigma.mater',);\r
+\r
+POTASSE=MATERIAL(TYPE='CONDUCTOR',\r
+                 PERMEABILITY=_F(HOMOGENEOUS='TRUE',\r
+                                 ISOTROPIC='TRUE',\r
+                                 LAW='LINEAR',\r
+                                 VALUE=Decimal('1.0'),),\r
+                 CONDUCTIVITY=_F(HOMOGENEOUS='TRUE',\r
+                                 ISOTROPIC='TRUE',\r
+                                 LAW='LINEAR',\r
+                                 VALUE=Decimal('71.43'),),);\r
+#CHECKSUM:614994a51cd56f24959331e5ef1c7a98  -:FIN CHECKSUM\r
diff --git a/OldCodes/Carmel3D/opsCarmel.py b/OldCodes/Carmel3D/opsCarmel.py
new file mode 100644 (file)
index 0000000..82bbf1f
--- /dev/null
@@ -0,0 +1,38 @@
+# -*- coding: iso-8859-1 -*-
+# Copyright (C) 2007-2021   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+def INCLUDE(self,FileName,**args):
+   """ 
+       Fonction sd_prod pour la macro INCLUDE
+   """
+   if hasattr(self,'change_fichier'):
+       delattr(self,'change_fichier')
+       delattr(self,'fichier_ini')
+
+   self.make_includeCarmel(fichier=FileName)
+
+def INCLUDE_context(self,d):
+   """ 
+       Fonction op_init pour macro INCLUDE
+   """
+   for k,v in self.g_context.items():
+      d[k]=v
+
+
diff --git a/OldCodes/Carmel3D/prefs.py b/OldCodes/Carmel3D/prefs.py
new file mode 100644 (file)
index 0000000..720230d
--- /dev/null
@@ -0,0 +1,22 @@
+# Copyright (C) 2007-2021   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+code="CARMEL3D" 
+import sys, os
+if os.path.dirname(os.path.abspath(__file__)) not in sys.path :
+   sys.path.insert(0,os.path.dirname(os.path.abspath(__file__)))
diff --git a/OldCodes/Carmel3D/prefs_CARMEL3D.py b/OldCodes/Carmel3D/prefs_CARMEL3D.py
new file mode 100644 (file)
index 0000000..e61693e
--- /dev/null
@@ -0,0 +1,39 @@
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2021   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+import os
+
+# repIni sert a localiser le fichier editeur.ini  
+repIni=os.path.dirname(os.path.abspath(__file__))
+
+# lang indique la langue utilisee pour les chaines d'aide : fr ou ang
+lang='fr'
+
+# Codage des strings qui accepte les accents (en remplacement de 'ascii')
+encoding='utf-8'
+
+# Choix des catalogues
+# format du Tuple (code,version,catalogue,formatOut, finit par defaut Ăventuellement)
+catalogues = (
+
+# catalogue avec generation Phys et materiaux reels
+ ('CARMEL3D','temporel (dev)',os.path.join(repIni,'Carmel3D_Cata_temporel_V0.py'),'CARMEL3DTV0','defaut'), 
+ ('CARMEL3D','frequentiel',os.path.join(repIni,'Carmel3D_Cata_frequentiel_V1.py'),'CARMEL3DFV0','defaut')
+)
diff --git a/OldCodes/Carmel3D/properties.py b/OldCodes/Carmel3D/properties.py
new file mode 100644 (file)
index 0000000..3db8254
--- /dev/null
@@ -0,0 +1,25 @@
+#@ MODIF properties Accas DATE 02/06/2010 AUTEUR aster M.ADMINISTRATEUR
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# RESPONSABLE D6BHHHH J-P.LEFEBVRE
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
+# (AT YOUR OPTION) ANY LATER VERSION.                                 
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
+# ======================================================================
+#     IDENTIFICATION DU GESTIONNAIRE DE COMMANDE ACCAS A PARTIR
+#     DE LA VERSION DU CODE_ASTER ASSOCIE
+#----------------------------------------------------------------------
+version = "10.1.27"
+date = "02/06/2010"
+exploit = False
diff --git a/OldCodes/Carmel3D/qtEficas_Carmel3D.py b/OldCodes/Carmel3D/qtEficas_Carmel3D.py
new file mode 100755 (executable)
index 0000000..d20a93f
--- /dev/null
@@ -0,0 +1,33 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2021   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+"""
+   Ce module sert à lancer EFICAS configuré pour Carmel
+"""
+# Modules Python
+# Modules Eficas
+
+import sys,os
+sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..'))
+
+import prefs
+from InterfaceQT4 import eficas_go
+eficas_go.lance_eficas(code=prefs.code)
diff --git a/OldCodes/Carmel3D/style.py b/OldCodes/Carmel3D/style.py
new file mode 100644 (file)
index 0000000..d485572
--- /dev/null
@@ -0,0 +1,66 @@
+# -*- coding: utf-8 -*-
+"""
+Pour modifier le style d'EFICAS  il faut ajouter un fichier style.py qui contiendra les
+informations sur le style voulu dans son repertoire Eficas_install.
+
+La methode la plus simple consiste à modifier directement les attributs de l'objet style dans le 
+fichier style.py d'Eficas_install. Exemple::
+
+    style.background='yellow'
+
+pour modifier la couleur du background.
+
+Il existe une autre méthode qui peut être utilisée quand on veut modifier plusieurs propriétés à la fois.
+
+Le fichier style.py doit définir une nouvelle classe qui dérive de la classe de base STYLE avec des attributs
+de classe qui définiront le nouveau style (par exemple, si on veut modifier le background)::
+
+   class STYLE(STYLE):
+       background='yellow'
+
+Il faut ensuite instancier cette classe, dans ce meme fichier, en donnant le nom style à l'objet cree::
+
+   style=STYLE()
+
+Tous les attributs de classe possibles sont visibles dans le module Editeur/basestyle.py::
+
+    background='gray90'
+    foreground='black'
+    entry_background='white'
+    list_background='white'
+    list_select_background='#00008b'
+    list_select_foreground='grey'
+    tooltip_background="yellow"
+
+    standard = ("Helvetica",12)
+    standard_italique = ("Helvetica",12,'italic')
+    standard_gras = ("Helvetica",12,'bold')
+    standard_gras_souligne = ("Helvetica",12,'bold','underline')
+
+    canvas = ('Helvetica',10)
+    canvas_italique = ('Helvetica',10,'italic')
+    canvas_gras = ("Helvetica",10,'bold')
+    canvas_gras_italique = ("Helvetica",12,'bold','italic')
+
+    standard12 = ("Helvetica",14)
+    standard12_gras = ("Helvetica",14,'bold')
+    standard12_gras_italique = ( "Helvetica",14,'bold','italic')
+
+
+Le fichier style.py contenu dans le répertoire Aster permet de spécifier des propriétés globales pour une installation.
+Les modifications de style contenues dans ce fichier et dans le fichier style.py d'Eficas_install
+sont prises en compte dans cet ordre.
+"""
+
+p1=10
+p2=14
+f1="Helvetica"
+
+style.background='gray90'
+style.foreground='black'
+style.standard = (f1,p1)
+style.standard_italique = (f1,p1,'italic')
+style.standard_gras = (f1,p1,'bold')
+style.canvas_italique = (f1,p1,'italic')
+style.canvas_gras = (f1,p1,'bold')
+style.statusfont = (f1,p2)
index cfd8503bd5a6d93d6341e8aa18d814a8c4c73de5..2dbeff037e6af4fef6973750da5b4cabd4ebf4bb 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2012   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index f49b9bcbf4b23d821586be3393feae9927345eb5..336afdff016a1c5b82a30d387e67db995f332354 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2012   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 2692b02877c7d52fa39ebf86d2dd8663cbf91ea3..7b609b2a18e81ae24f696b8dea3c0aaf907d986e 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2012   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index b1254f2ca4feef0d76c3a212464ef324cfd6a169..7f9a6e2c12ec694932c10ac4e58179952281626a 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2012   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
diff --git a/OldCodes/MED/CataAZ.py b/OldCodes/MED/CataAZ.py
new file mode 100755 (executable)
index 0000000..b6e6494
--- /dev/null
@@ -0,0 +1,210 @@
+# coding: utf-8\r
+import types\r
+from Accas import *\r
+\r
+class grno(GEOM):\r
+    """\r
+    Classe servant à définir le nom d'un groupe de noeuds dans le fichier de commande\r
+    En clair : un chaine de longueur 24.\r
+    """\r
+    def __convert__(cls,valeur):\r
+        """\r
+        Fonction de verification de la longueur de la chaine\r
+        """\r
+        if isinstance(valeur, (str,unicode)) and len(valeur.strip()) <= 24:\r
+            return valeur.strip()\r
+        raise ValueError(_(u'On attend une chaine de caractères (de longueur <= 24).'))\r
+    __convert__ = classmethod(__convert__)\r
+\r
+class grma(GEOM):\r
+    """\r
+    Classe servant à définir le nom d'un groupe de mailles dans le fichier de commande\r
+    En clair : un chaine de longueur 24.\r
+    """\r
+    def __convert__(cls,valeur):\r
+        """\r
+        Fonction de verification de la longueur de la chaine\r
+        """\r
+        if isinstance(valeur, (str,unicode)) and len(valeur.strip()) <= 24:\r
+            return valeur.strip()\r
+        raise ValueError(_(u'On attend une chaine de caractères (de longueur <= 24).'))\r
+    __convert__ = classmethod(__convert__)\r
+\r
+\r
+class Tuple:\r
+  def __init__(self,ntuple):\r
+    self.ntuple=ntuple\r
+\r
+  def __convert__(self,valeur):\r
+    if type(valeur) == types.StringType: return None\r
+    if len(valeur) != self.ntuple: return None\r
+    return valeur\r
+\r
+  def info(self):\r
+    return "Tuple de %s elements" % self.ntuple\r
+\r
+  __repr__=info\r
+  __str__=info\r
+\r
+class ObjetUtilisateur(ASSD): pass\r
+\r
+\r
+JdC = JDC_CATA(code='PATTERNS',\r
+               execmodul=None,\r
+                )\r
+\r
+\r
+EXAMPLE = PROC (nom = 'EXAMPLE',\r
+    op=None,\r
+\r
+    TITRE =  SIMP(statut ='o', typ = 'TXM', defaut = 'Mon Etude',),\r
+    TITRE2 =  SIMP(statut ='f', typ = 'TXM', ),\r
+)\r
+CREEOBJET = OPER (nom="CREEOBJET",\r
+    op=None,\r
+    sd_prod=ObjetUtilisateur,\r
+    UIinfo={"groupes":("Group1",)},\r
+\r
+    TITLE     = SIMP(statut ='o', typ = 'TXM', defaut = '',),\r
+    RB1       = SIMP(statut ='o', typ = 'I', into = [1,2,3],),\r
+    RB2       = SIMP(statut ='o', typ = 'I', into = [1,2,3,4,5,6,],),\r
+    CB        = SIMP(statut ='o', typ = 'I', into = [1,2,3,4,5,6,7,8,9],),\r
+    MBool     = SIMP(statut ='o', typ = bool,),\r
+    MFile     = SIMP(statut ='o', typ = ('Fichier','All Files (*)')),\r
+    MDir      = SIMP(statut ='o', typ = 'Repertoire'),\r
+    Reel1     = SIMP(statut ='o', typ = 'R'),\r
+    Compl     = SIMP(statut ='o', typ = 'C'),\r
+    Tuple2    = SIMP(statut ='o', typ = Tuple(2), validators=VerifTypeTuple(('R','R'))),\r
+    Tuple3    = SIMP(statut ='o', typ = Tuple(3), validators=VerifTypeTuple(('R','R','R'))),\r
+    InSalome  = SIMP(statut ='o', typ = SalomeEntry),\r
+\r
+    LTITLE    = SIMP(statut ='o', typ = 'TXM', max='**', defaut = '',),\r
+    LRB2      = SIMP(statut ='o', typ = 'I', max = '**', into = [1,2,3,4,5,6,],),\r
+    LCB       = SIMP(statut ='o', typ = 'I', max = '**', homo="SansOrdreNiDoublon", into = [1,2,3,4,5,6,7,8,9],),\r
+    LReel1    = SIMP(statut ='o', typ = 'R', max = "**"),\r
+    LCompl    = SIMP(statut ='o', typ = 'C', max = "**"),\r
+    LTuple2   = SIMP(statut ='o', typ = Tuple(2), validators=VerifTypeTuple(('R','R')), max = "**"),\r
+    LTuple3   = SIMP(statut ='o', typ = Tuple(3), validators=VerifTypeTuple(('R','R','R')), max = "**"),\r
+    LInSalome = SIMP(statut ='o', typ = SalomeEntry, max="**"),\r
+\r
+    LREEL    = SIMP(statut ='f', typ = 'R', max='**', defaut = '',),\r
+)\r
+\r
+UTILISEOBJET = PROC (nom="UTILISEOBJET",\r
+    op=None,\r
+    UIinfo={"groupes":("Group1",)},\r
+    Obj   = SIMP (statut ='o', typ = ObjetUtilisateur,)\r
+)\r
+\r
+ESSAI_FACT=OPER(nom="ESSAI_FACT",\r
+   sd_prod=ObjetUtilisateur,\r
+   op=None,\r
+   fr="Affectation de caractéristiques à des éléments de structure",\r
+   regles = (AU_MOINS_UN('Poutre','Barre'),\r
+             EXCLUS('Discret','Discret_2D'),),\r
+   Info   = SIMP(statut='f',typ='I', defaut= 1 ,into=(1,2) ),\r
+   Verif  = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("Maille","Noeud") ),\r
+#\r
+# ==============================================================================\r
+    Poutre  = FACT(statut= 'f',max= '**',\r
+        Section = SIMP(statut= 'o',typ= 'TXM' ,into= ("GENERALE","RECTANGLE","CERCLE") ),\r
+\r
+        b_generale = BLOC(condition = " Section == 'GENERALE'",\r
+            regles = (UN_PARMI('Maille','GroupeMailles'),),\r
+            Maille    = SIMP(statut= 'f',typ= 'TXM'  ,validators= NoRepeat(),max= '**'),\r
+            GroupeMailles  = SIMP(statut= 'f',typ= grma,validators= NoRepeat(),max= '**'),\r
+\r
+            Vari = SIMP(statut= 'f',typ= 'TXM',into= ("CONSTANT","HOMOTHETIQUE"),defaut= "CONSTANT"),\r
+\r
+            b_constant = BLOC(condition = "Vari == 'CONSTANT'",\r
+                regles = (PRESENT_ABSENT('Table','Cara'),\r
+                          PRESENT_PRESENT('Table','Nom'),\r
+                          PRESENT_PRESENT('Cara','Valeur'),),\r
+                Table = SIMP(statut= 'f',typ='TXM'),\r
+                Nom    = SIMP(statut= 'f',typ= 'TXM'),\r
+                Cara       = SIMP(statut= 'o',typ= 'TXM',min= 4 ,max= 5,\r
+                    fr= "A,IY,IZ,JX sont des paramètres obligatoires",\r
+                    validators= [NoRepeat(), Compulsory(['A','IY','IZ','JX'])],\r
+                    into= ("A","IY","IZ","AY","AZ","EY","EZ","JX","RY","RZ","RT","JG","IYR2","IZR2","AI") ),\r
+                Valeur       = SIMP(statut= 'f',typ= 'R',min= 4 ,max= 15),\r
+            ),\r
+        ),\r
+        b_rectangle = BLOC(condition = "Section == 'RECTANGLE'",\r
+            regles = (UN_PARMI('Maille','GroupeMailles'),),\r
+            Maille    = SIMP(statut= 'f',typ= 'TXM'  ,validators= NoRepeat(),max= '**'),\r
+            GroupeMailles  = SIMP(statut= 'f',typ= grma,validators= NoRepeat(),max= '**'),\r
+            Vari = SIMP(statut= 'f',typ= 'TXM',into= ("CONSTANT","HOMOTHETIQUE","AFFINE"),defaut= "CONSTANT"),\r
+            b_constant = BLOC(condition = "Vari == 'CONSTANT'",\r
+                Cara  = SIMP(statut= 'o',typ= 'TXM',min= 1 ,max= 4,\r
+                    validators = [NoRepeat(),\r
+                                  OrVal( [AndVal( [Compulsory(['H']),Absent(['HY','HZ','EPY','EPZ'])] ),\r
+                                          AndVal( [Compulsory(['HY','HZ']),Together(['EPY','EPZ']),Absent(['H','EP'])] )] )],\r
+                    into= ("H","EP", "HY","HZ","EPY","EPZ"),),\r
+                Valeur  = SIMP(statut= 'o',typ= 'R',min= 1 ,max= 4),\r
+            ),\r
+\r
+            Metrique = SIMP(statut= 'f',typ= 'TXM',defaut= "NON",into= ("OUI","NON") ),\r
+            Fcx           = SIMP(statut= 'f',typ= 'R'),\r
+            Tuyau    = SIMP(statut= 'f',typ= 'I',val_max= 10,defaut= 3),\r
+        ),\r
+    ),\r
+#\r
+# ==============================================================================\r
+    Barre = FACT(statut='f',max='**',\r
+        regles = (UN_PARMI('Maille','GroupeMailles'),),\r
+        Maille   = SIMP(statut='f',typ='TXM'  ,validators=NoRepeat(),max='**'),\r
+        GroupeMailles = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),\r
+        Section  = SIMP(statut='o',typ='TXM',into=("GENERALE","RECTANGLE","CERCLE") ),\r
+        b_generale = BLOC(condition = "Section=='GENERALE'",\r
+            regles = (PRESENT_ABSENT('Table','Cara'),\r
+                      PRESENT_PRESENT('Table','Nom'),\r
+                      PRESENT_PRESENT('Cara','Valeur')),\r
+            Table = SIMP(statut='f',typ='TXM'),\r
+            Nom    = SIMP(statut='f',typ='TXM',validators=LongStr(1,24) ),\r
+            Cara       = SIMP(statut='f',typ='TXM',into=("A",) ),\r
+            Valeur       = SIMP(statut='f',typ='R',min=1,max=1 ),\r
+        ),\r
+        b_rectangle = BLOC(condition = "Section=='RECTANGLE'",\r
+            Cara = SIMP(statut='o',typ='TXM', min=1, max=4,\r
+                validators = [NoRepeat(),\r
+                              OrVal( [AndVal( [Compulsory(['H']),Absent(['HY','HZ','EPY','EPZ'])] ),\r
+                                      AndVal( [Compulsory(['HY','HZ']),Together(['EPY','EPZ']),Absent(['H','EP'])] )] )],\r
+                into=("H","EP","HZ","HY","EPY","EPZ"), ),\r
+            Valeur = SIMP(statut='o',typ='R',min=1,max=4 ), ),\r
+        b_cercle = BLOC(condition = "Section=='CERCLE'",\r
+            Cara = SIMP(statut='o',typ='TXM',validators=[NoRepeat(),Compulsory(['R'])],min=1,max=2,into=("R","EP") ),\r
+            Valeur = SIMP(statut='o',typ='R',min=1,max=2 ), ),\r
+    ),\r
+#\r
+# ==============================================================================\r
+    Discret = FACT(statut='f',max='**',\r
+        REPERE    = SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),\r
+        AMOR_HYST = SIMP(statut='f',typ='R' ),\r
+        SYME      = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),),\r
+        b_SYME_OUI = BLOC(condition="SYME=='OUI'",\r
+            fr="SYMETRIQUE: Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds",\r
+            Cara = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,defaut="None",\r
+            into = ("K_T_D_N", "K_T_D_L", "K_TR_D_N", "K_TR_D_L", "K_T_N", "K_T_L", "K_TR_N", "K_TR_L",\r
+                    "M_T_D_N", "M_T_D_L", "M_TR_D_N", "M_TR_D_L", "M_T_N", "M_T_L", "M_TR_N", "M_TR_L",\r
+                    "A_T_D_N", "A_T_D_L", "A_TR_D_N", "A_TR_D_L", "A_T_N", "A_T_L", "A_TR_N", "A_TR_L",),),\r
+            #  Affection des caractéristiques de RIGIDITE/AMORTISSEMENT/MASSE\r
+            b_AK_T_D_N = BLOC(condition = "((Cara=='K_T_D_N')or(Cara=='A_T_D_N'))",\r
+                fr       = "Noeud: 3 valeurs (triangulaire supérieure par colonne)",\r
+                regles   = (UN_PARMI('Maille','GroupeMailles','Noeud','GROUP_NO'),),\r
+                Noeud    = SIMP(statut='f',typ='TXM'  ,validators=NoRepeat(),max='**'),\r
+                GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),\r
+                Maille   = SIMP(statut='f',typ='TXM'  ,validators=NoRepeat(),max='**'),\r
+                GroupeMailles = SIMP(statut='f',typ=grma,validators=NoRepeat(),homo='SansOrdreNiDoublon',max='**'),\r
+                Valeur     = SIMP(statut='o',typ='R',min=3 ,max=3 ),),\r
+        ),\r
+    ),\r
+#\r
+# ==============================================================================\r
+    Discret_2D = FACT(statut='f',max='**',\r
+        REPERE    = SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),\r
+        AMOR_HYST = SIMP(statut='f',typ='R' ),\r
+        SYME      = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),),\r
+        ),\r
+)\r
+\r
+\r
diff --git a/OldCodes/MED/Elementary_Lists_52996_Cata.py b/OldCodes/MED/Elementary_Lists_52996_Cata.py
new file mode 100644 (file)
index 0000000..f3cc11c
--- /dev/null
@@ -0,0 +1,86 @@
+# coding: utf-8\r
+\r
+from Accas import *\r
+\r
+#class myMesh(ASSD): pass\r
+class myModel(ASSD): pass\r
+\r
+JdC = JDC_CATA(code='PATTERNS',\r
+               execmodul=None,\r
+               regles=(#AU_PLUS_UN('DEBUT', 'POURSUITE'),\r
+                       AU_PLUS_UN('ALL_LISTS'),\r
+                       #AU_PLUS_UN('FIN'),\r
+                       A_CLASSER(('DEBUT', 'POURSUITE'), 'FIN')\r
+                )\r
+)\r
+\r
+class grma():\r
+    def __convert__(cls,valeur):\r
+        if isinstance(valeur, (str,unicode)) and len(valeur.strip()) <= 24 : #and ("item" in (valeur.strip()))\r
+            return valeur.strip()\r
+        raise ValueError("Name length does not contain \"test\" and is longer than allowed, 24")\r
+    __convert__ = classmethod(__convert__)\r
+\r
+def mySeveral(suffix,num):\r
+    out=list()\r
+    for i in range(1,num+1):\r
+        out.append(suffix+str(i).zfill(2))\r
+    return out\r
+\r
+switch_facultatif=True #change 'o' to 'f' of some widgets in the loop\r
+#empty_defauts=True\r
+\r
+def myBloc(num):\r
+    myNum=str(num).zfill(2)\r
+    list_item_body="Item_"+myNum+"_"\r
+    defauts0=["","",True,"'phenomena_"+myNum+"'",mySeveral(list_item_body,2)] #presence of default values\r
+    defauts_mask=[False,False,True,True,True] #switch off defaults of some types\r
+    defauts=list()\r
+    for id0 in range(len(defauts0)):\r
+        if defauts_mask[id0]:\r
+            item=", defaut="+str(defauts0[id0])\r
+        else:\r
+            item=""\r
+        defauts.append(item)\r
+    #print defauts\r
+\r
+    opt=['o','o','o','o','o'] #initial default obligation of items in FACT groups\r
+    #make different widgets optional, one by one:\r
+    myLen=len(opt)\r
+    if switch_facultatif:\r
+        make_f=(num)%myLen\r
+        opt[make_f]='f'\r
+    #print opt\r
+    #if empty_defauts:\r
+    #    clean_defaut=num%myLen\r
+\r
+    myString="BLOC(condition=\"MESH==\'mesh_"+myNum+"'\""+defauts[0]+", AFFE=FACT(statut='"+opt[1]+"'"+defauts[1]+", ALL=SIMP(statut='"+opt[2]+"', typ=bool,ang='ALL "+myNum+" help EN'"+defauts[2]+"),PHENOMENA=SIMP(statut='"+opt[3]+"',typ='TXM',into=mySeveral('phenomena_',"+str(num)+")"+defauts[3]+"), MODELISATION=SIMP(statut='"+opt[4]+"',typ='TXM', min=2,max='**',into=mySeveral('"+list_item_body+"',"+str(num*4)+")"+defauts[4]+", ang='Input "+myNum+" list EN', fr='Input "+myNum+" list FR'),),)"\r
+    print myString\r
+    return eval(myString)\r
+\r
+ALL_LISTS=OPER(nom="ALL_LISTS",op=18,sd_prod=myModel,\r
+    UIinfo={"groupes":("Group1",)},\r
+    ang="Model mesh definition EN",\r
+    reentrant='n',\r
+    #regles=(AU_MOINS_UN('LIST_O_CHECKTEXT','LIST_F_CHECKTEXT','LIST_O_ANY','LIST_F_ANY')),\r
+\r
+       #LIST_O_NOREPEAT_CHECKTEXT=SIMP(statut='o',typ=grma,validators=NoRepeat(),min=3, max='**'),\r
+    #LIST_F_NOREPEAT_CHECKTEXT=SIMP(statut='f',typ=grma,validators=NoRepeat(),min=3, max='**'),\r
+    #LIST_F_REPEAT_CHECKTEXT=SIMP(statut='f',typ=grma,min=3, max='**'),\r
+       #LIST_O_REPEAT_CHECKTEXT=SIMP(statut='o',typ=grma,min=3, max='**'),\r
+\r
+    #LIST_F_NOREPEAT_ANYTEXT=SIMP(statut='f',typ='TXM',validators=NoRepeat(),min=3, max='**'),\r
+       #LIST_O_NOREPEAT_ANYTEXT=SIMP(statut='o',typ='TXM',min=3,validators=NoRepeat(), max='**'),\r
+       #LIST_O_REPEAT_ANYTEXT=SIMP(statut='o',typ='TXM',min=3, max='**'),\r
+       #LIST_F_REPEAT_ANYTEXT=SIMP(statut='f',typ='TXM',min=3, max='**'),\r
+\r
+       #LIST_O_NOREPEAT_CHECKTEXT_ADD=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03",), min=3, max='**'),\r
+       #LIST_F_REPEAT_ANYTEXT_ADD=SIMP(statut='f',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03",), min=3, max='**'),\r
+\r
+       LIST_O_NOREPEAT_CHECKTEXT_ADD_NODEFAUT=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03","item04","text04",), min=3, max='**'),\r
+       #LIST_O_NOREPEAT_CHECKTEXT_ADD_DEFAUT=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03",), defaut=('item01','item02','item03'), min=3, max='**'),\r
+)\r
+\r
+Classement_Commandes_Ds_Arbre=('DEBUT','MESH_TYPES','ALL_LISTS','FIN')\r
+\r
+Ordre_Des_Commandes = ('DEBUT','MESH_TYPES','ALL_LISTS','FIN')\r
diff --git a/OldCodes/MED/Elementary_Lists_53000_Cata.py b/OldCodes/MED/Elementary_Lists_53000_Cata.py
new file mode 100644 (file)
index 0000000..0dbba47
--- /dev/null
@@ -0,0 +1,52 @@
+# coding: utf-8\r
+from Accas import *\r
+\r
+#class myMesh(ASSD): pass\r
+class myModel(ASSD): pass\r
+\r
+JdC = JDC_CATA(code='PATTERNS',\r
+               execmodul=None,\r
+               regles=(#AU_PLUS_UN('DEBUT', 'POURSUITE'),\r
+                       AU_PLUS_UN('ALL_LISTS'),\r
+                       #AU_PLUS_UN('FIN'),\r
+                       A_CLASSER(('DEBUT', 'POURSUITE'), 'FIN')\r
+                )\r
+)\r
+\r
+\r
+ALL_LISTS=OPER(nom="ALL_LISTS",op=18,sd_prod=myModel,\r
+    UIinfo={"groupes":("Group1",)},\r
+    ang="Model mesh definition EN",\r
+    reentrant='n',\r
+    LIST_O_NOREPEAT_CHECKTEXT_ADD_DEFAUT=SIMP(statut='o',typ="TXM",validators=NoRepeat(), \r
+          into=("item01","text01","item02","text02","item03","text03","item04","text04","item05","text05",), \r
+          defaut=('item01','item02','item03'),\r
+          homo="SansOrdreNiDoublon",\r
+          min=3, max='**'),\r
+\r
+    #regles=(AU_MOINS_UN('LIST_O_CHECKTEXT','LIST_F_CHECKTEXT','LIST_O_ANY','LIST_F_ANY')),\r
+\r
+       #LIST_O_NOREPEAT_CHECKTEXT=SIMP(statut='o',typ=grma,validators=NoRepeat(),min=3, max='**'),\r
+    #LIST_F_NOREPEAT_CHECKTEXT=SIMP(statut='f',typ=grma,validators=NoRepeat(),min=3, max='**'),\r
+    #LIST_F_REPEAT_CHECKTEXT=SIMP(statut='f',typ=grma,min=3, max='**'),\r
+       #LIST_O_REPEAT_CHECKTEXT=SIMP(statut='o',typ=grma,min=3, max='**'),\r
+\r
+    #LIST_F_NOREPEAT_ANYTEXT=SIMP(statut='f',typ='TXM',validators=NoRepeat(),min=3, max='**'),\r
+       #LIST_O_NOREPEAT_ANYTEXT=SIMP(statut='o',typ='TXM',min=3,validators=NoRepeat(), max='**'),\r
+       #LIST_O_REPEAT_ANYTEXT=SIMP(statut='o',typ='TXM',min=3, max='**'),\r
+       #LIST_F_REPEAT_ANYTEXT=SIMP(statut='f',typ='TXM',min=3, max='**'),\r
+\r
+       #LIST_O_NOREPEAT_CHECKTEXT_ADD=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03",), min=3, max='**'),\r
+       #LIST_F_REPEAT_ANYTEXT_ADD=SIMP(statut='f',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03",), min=3, max='**'),\r
+\r
+       #LIST_O_NOREPEAT_CHECKTEXT_ADD_NODEFAUT=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03","item04","text04",), min=3, max='**'),\r
+\r
+\r
+       #LIST_O_SANSORDRENODOUBLON_CHECKTEXT_DEFAUT=SIMP(statut='o',typ=grma,homo="SansOrdreNiDoublon", into=("item01","text01","item02","text02","item03","text03",), defaut=('item01','item02','item03'), min=3, max='**'),\r
+)\r
+\r
+\r
+\r
+Classement_Commandes_Ds_Arbre=('DEBUT','MESH_TYPES','ALL_LISTS','FIN')\r
+\r
+Ordre_Des_Commandes = ('DEBUT','MESH_TYPES','ALL_LISTS','FIN')\r
diff --git a/OldCodes/MED/Elementary_Lists_53013_Cata.py b/OldCodes/MED/Elementary_Lists_53013_Cata.py
new file mode 100644 (file)
index 0000000..cf371ff
--- /dev/null
@@ -0,0 +1,59 @@
+# coding: utf-8\r
+from Accas import *\r
+\r
+class myModel(ASSD): pass\r
+\r
+JdC = JDC_CATA(code='PATTERNS',\r
+               execmodul=None,\r
+               regles=(#AU_PLUS_UN('DEBUT', 'POURSUITE'),\r
+                       AU_PLUS_UN('ALL_LISTS'),\r
+                       #AU_PLUS_UN('FIN'),\r
+                       A_CLASSER(('DEBUT', 'POURSUITE'), 'FIN')\r
+                )\r
+)\r
+\r
+class grma():\r
+    def __convert__(cls,valeur):\r
+        if isinstance(valeur, (str,unicode)) and len(valeur.strip()) <= 12 and ("item" in (valeur.strip()).lower()): #\r
+            return valeur.strip()\r
+        raise ValueError("Name length does not contain \"test\" and is longer than allowed, 12")\r
+    __convert__ = classmethod(__convert__)\r
+\r
+def mySeveral(suffix,num):\r
+    out=list()\r
+    for i in range(1,num+1):\r
+        out.append(suffix+str(i).zfill(2))\r
+    return out\r
+\r
+ALL_LISTS=OPER(nom="ALL_LISTS",op=18,sd_prod=myModel,\r
+    UIinfo={"groupes":("Group1",)},\r
+    fr="All lists definition FR",\r
+    ang="All lists definition EN",\r
+    reentrant='n',\r
+    #regles=(AU_MOINS_UN('LIST_O_CHECKTEXT','LIST_F_CHECKTEXT','LIST_O_ANY','LIST_F_ANY')),\r
+\r
+       L1_LIST_O_NOREPEAT_CHECKTEXT=SIMP(statut='o',typ=grma,validators=NoRepeat(),min=3, max='**', ang='Obligatory, No Repetitions, checked text, EN'),\r
+    L2_LIST_F_NOREPEAT_CHECKTEXT=SIMP(statut='f',typ=grma,validators=NoRepeat(),min=3, max='**', ang='Optional, No Repetitions, checked text, EN'),\r
+    L3_LIST_F_REPEAT_CHECKTEXT=SIMP(statut='f',typ=grma,min=3, max='**',ang='Optional, Allowed Repetitions, checked text, EN'),\r
+       L4_LIST_O_REPEAT_CHECKTEXT=SIMP(statut='o',typ=grma,min=3, max='**',ang='Obligatory, Allowed Repetitions, checked text, EN'),\r
+\r
+    L5_LIST_F_NOREPEAT_ANYTEXT=SIMP(statut='f',typ='TXM',validators=NoRepeat(),min=3, max='**',ang='Optional, No Repetitions, any text, EN'),\r
+       L6_LIST_O_NOREPEAT_ANYTEXT=SIMP(statut='o',typ='TXM',min=3,validators=NoRepeat(), max='**',ang='Obligatory, No Repetitions, any text, EN'),\r
+       L7_LIST_O_REPEAT_ANYTEXT=SIMP(statut='o',typ='TXM',min=3, max='**',ang='Obligatory, Allowed Repetitions, any text, EN'),\r
+       L8_LIST_F_REPEAT_ANYTEXT=SIMP(statut='f',typ='TXM',min=3, max='**',ang='Optional, Allowed Repetitions, any text, EN'),\r
+\r
+       L9_LIST_O_NOREPEAT_CHECKTEXT_ADD=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With spare list, Obligatory, No Repetitions, checked text, EN',),\r
+       L10_LIST_F_REPEAT_ANYTEXT_ADD=SIMP(statut='f',typ='TXM', into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With spare list, Optional, Allowed Repetitions, any text, EN'),\r
+       L11_LIST_O_REPEAT_CHECKTEXT_ADD_NODEFAUT=SIMP(statut='o',typ=grma, into=("item01","text01","item02","text02","item03","text03","item04","text04"),ang='With spare list, obligatory, No Repetitions, checked text, no default values, EN', min=3, max='**'),\r
+       L12_LIST_O_NOREPEAT_CHECKTEXT_ADD_DEFAUT=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03","item04","text04","item05","text05",), defaut=('item01','item02','item03'), min=3, max='**',ang='With spare list, Obligatory, No Repetitions, checked text, with default values EN'),\r
+\r
+    L13_LIST_F_SANSORDRENODOUBLON_ANYTEXT_NODEFAUT=SIMP(statut='f',typ='TXM',homo="SansOrdreNiDoublon", into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With check boxes, Optional, any text, no defaults, EN'),\r
+    L14_LIST_O_SANSORDRENODOUBLON_CHECKTEXT_NODEFAUT=SIMP(statut='o',typ=grma,homo="SansOrdreNiDoublon", into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With check boxes, Obligatory, checked text, EN'),\r
+       L15_LIST_O_SANSORDRENODOUBLON_CHECKTEXT_DEFAUT=SIMP(statut='o',typ=grma,homo="SansOrdreNiDoublon", into=("item01","text01","item02","text02","item03","text03","item02","text02","item01","text01",), defaut=('item01','item02','item03'), min=3, max='**', ang='With check boxes, Obligatory, checked text, with default values, EN'),\r
+)\r
+\r
+\r
+\r
+Classement_Commandes_Ds_Arbre=('DEBUT','MESH_TYPES','ALL_LISTS','FIN')\r
+\r
+Ordre_Des_Commandes = ('DEBUT','MESH_TYPES','ALL_LISTS','FIN')\r
diff --git a/OldCodes/MED/Elementary_Lists_53036_Cata.py b/OldCodes/MED/Elementary_Lists_53036_Cata.py
new file mode 100644 (file)
index 0000000..5cdc0fa
--- /dev/null
@@ -0,0 +1,59 @@
+# coding: utf-8\r
+from Accas import *\r
+\r
+class myModel(ASSD): pass\r
+\r
+JdC = JDC_CATA(code='PATTERNS',\r
+               execmodul=None,\r
+               regles=(#AU_PLUS_UN('DEBUT', 'POURSUITE'),\r
+                       AU_PLUS_UN('ALL_LISTS'),\r
+                       #AU_PLUS_UN('FIN'),\r
+                       A_CLASSER(('DEBUT', 'POURSUITE'), 'FIN')\r
+                )\r
+)\r
+\r
+class grma():\r
+    def __convert__(cls,valeur):\r
+        if isinstance(valeur, (str,unicode)) and len(valeur.strip()) <= 12 and ("item" in (valeur.strip()).lower()): #\r
+            return valeur.strip()\r
+        raise ValueError("Name length does not contain \"item\" and is longer than allowed, 12")\r
+    __convert__ = classmethod(__convert__)\r
+\r
+def mySeveral(suffix,num):\r
+    out=list()\r
+    for i in range(1,num+1):\r
+        out.append(suffix+str(i).zfill(2))\r
+    return out\r
+\r
+ALL_LISTS=OPER(nom="ALL_LISTS",op=18,sd_prod=myModel,\r
+    UIinfo={"groupes":("Group1",)},\r
+    fr="All lists definition FR",\r
+    ang="All lists definition EN",\r
+    reentrant='n',\r
+    #regles=(AU_MOINS_UN('LIST_O_CHECKTEXT','LIST_F_CHECKTEXT','LIST_O_ANY','LIST_F_ANY')),\r
+\r
+       L1_LIST_O_NOREPEAT_CHECKTEXT=SIMP(statut='o',typ=grma,validators=NoRepeat(),min=3, max='**', ang='Obligatory, No Repetitions, checked text, EN'),\r
+    L2_LIST_F_NOREPEAT_CHECKTEXT=SIMP(statut='f',typ=grma,validators=NoRepeat(),min=3, max='**', ang='Optional, No Repetitions, checked text, EN'),\r
+    L3_LIST_F_REPEAT_CHECKTEXT=SIMP(statut='f',typ=grma,min=3, max='**',ang='Optional, Allowed Repetitions, checked text, EN'),\r
+       L4_LIST_O_REPEAT_CHECKTEXT=SIMP(statut='o',typ=grma,min=3, max='**',ang='Obligatory, Allowed Repetitions, checked text, EN'),\r
+\r
+    L5_LIST_F_NOREPEAT_ANYTEXT=SIMP(statut='f',typ='TXM',validators=NoRepeat(),min=3, max='**',ang='Optional, No Repetitions, any text, EN'),\r
+       L6_LIST_O_NOREPEAT_ANYTEXT=SIMP(statut='o',typ='TXM',min=3,validators=NoRepeat(), max='**',ang='Obligatory, No Repetitions, any text, EN'),\r
+       L7_LIST_O_REPEAT_ANYTEXT=SIMP(statut='o',typ='TXM',min=3, max='**',ang='Obligatory, Allowed Repetitions, any text, EN'),\r
+       L8_LIST_F_REPEAT_ANYTEXT=SIMP(statut='f',typ='TXM',min=3, max='**',ang='Optional, Allowed Repetitions, any text, EN'),\r
+\r
+       L9_LIST_O_NOREPEAT_CHECKTEXT_ADD=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With spare list, Obligatory, No Repetitions, checked text, EN',),\r
+       L10_LIST_F_REPEAT_ANYTEXT_ADD=SIMP(statut='f',typ='TXM', into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With spare list, Optional, Allowed Repetitions, any text, EN'),\r
+       L11_LIST_O_REPEAT_CHECKTEXT_ADD_NODEFAUT=SIMP(statut='o',typ=grma, into=("item01","text01","item02","text02","item03","text03","item04","text04"),ang='With spare list, obligatory, No Repetitions, checked text, no default values, EN', min=3, max='**'),\r
+       L12_LIST_O_NOREPEAT_CHECKTEXT_ADD_DEFAUT=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03","item04","text04","item05","text05",), defaut=('item01','item02','item03'), min=3, max='**',ang='With spare list, Obligatory, No Repetitions, checked text, with default values EN'),\r
+\r
+    L13_LIST_F_SANSORDRENODOUBLON_ANYTEXT_NODEFAUT=SIMP(statut='f',typ='TXM',homo="SansOrdreNiDoublon", into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With check boxes, Optional, any text, no defaults, EN'),\r
+    L14_LIST_O_SANSORDRENODOUBLON_CHECKTEXT_NODEFAUT=SIMP(statut='o',typ=grma,homo="SansOrdreNiDoublon", into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With check boxes, Obligatory, checked text, EN'),\r
+       L15_LIST_O_SANSORDRENODOUBLON_CHECKTEXT_NOREPEAT_DEFAUT=SIMP(statut='o',typ=grma,homo="SansOrdreNiDoublon", into=("item01","text01","item02","text02","item03","text03","item03","text03","item02","text02","item01","text01",), defaut=('item01','item02','item03'),  min=3, max='**', ang='With check boxes, Obligatory, checked text, with default values, EN'), #validators=NoRepeat(),\r
+)\r
+\r
+\r
+\r
+Classement_Commandes_Ds_Arbre=('DEBUT','MESH_TYPES','ALL_LISTS','FIN')\r
+\r
+Ordre_Des_Commandes = ('DEBUT','MESH_TYPES','ALL_LISTS','FIN')\r
diff --git a/OldCodes/MED/Elementary_Lists_Cata.py b/OldCodes/MED/Elementary_Lists_Cata.py
new file mode 100755 (executable)
index 0000000..92d20b3
--- /dev/null
@@ -0,0 +1,59 @@
+# coding: utf-8\r
+from Accas import *\r
+\r
+class myModel(ASSD): pass\r
+\r
+JdC = JDC_CATA(code='PATTERNS',\r
+               execmodul=None,\r
+               regles=(#AU_PLUS_UN('DEBUT', 'POURSUITE'),\r
+                       AU_PLUS_UN('ALL_LISTS'),\r
+                       #AU_PLUS_UN('FIN'),\r
+                       A_CLASSER(('DEBUT', 'POURSUITE'), 'FIN')\r
+                )\r
+)\r
+\r
+class grma():\r
+    def __convert__(cls,valeur):\r
+        if isinstance(valeur, (str,unicode)) and len(valeur.strip()) <= 12 and ("item" in (valeur.strip()).lower()): #\r
+            return valeur.strip()\r
+        raise ValueError("Name length does not contain \"test\" and is longer than allowed, 12")\r
+    __convert__ = classmethod(__convert__)\r
+\r
+def mySeveral(suffix,num):\r
+    out=list()\r
+    for i in range(1,num+1):\r
+        out.append(suffix+str(i).zfill(2))\r
+    return out\r
+\r
+ALL_LISTS=OPER(nom="ALL_LISTS",op=18,sd_prod=myModel,\r
+    UIinfo={"groupes":("Group1",)},\r
+    fr="All lists definition FR",\r
+    ang="All lists definition EN",\r
+    reentrant='n',\r
+    #regles=(AU_MOINS_UN('LIST_O_CHECKTEXT','LIST_F_CHECKTEXT','LIST_O_ANY','LIST_F_ANY')),\r
+\r
+       L1_LIST_O_NOREPEAT_CHECKTEXT=SIMP(statut='o',typ=grma,validators=NoRepeat(),min=3, max='**', ang='Obligatory, No Repetitions, checked text, EN'),\r
+    L2_LIST_F_NOREPEAT_CHECKTEXT=SIMP(statut='f',typ=grma,validators=NoRepeat(),min=3, max='**', ang='Optional, No Repetitions, checked text, EN'),\r
+    L3_LIST_F_REPEAT_CHECKTEXT=SIMP(statut='f',typ=grma,min=3, max='**',ang='Optional, Allowed Repetitions, checked text, EN'),\r
+       L4_LIST_O_REPEAT_CHECKTEXT=SIMP(statut='o',typ=grma,min=3, max='**',ang='Obligatory, Allowed Repetitions, checked text, EN'),\r
+\r
+    L5_LIST_F_NOREPEAT_ANYTEXT=SIMP(statut='f',typ='TXM',validators=NoRepeat(),min=3, max='**',ang='Optional, No Repetitions, any text, EN'),\r
+       L6_LIST_O_NOREPEAT_ANYTEXT=SIMP(statut='o',typ='TXM',min=3,validators=NoRepeat(), max='**',ang='Obligatory, No Repetitions, any text, EN'),\r
+       L7_LIST_O_REPEAT_ANYTEXT=SIMP(statut='o',typ='TXM',min=3, max='**',ang='Obligatory, Allowed Repetitions, any text, EN'),\r
+       L8_LIST_F_REPEAT_ANYTEXT=SIMP(statut='f',typ='TXM',min=3, max='**',ang='Optional, Allowed Repetitions, any text, EN'),\r
+\r
+       L9_LIST_O_NOREPEAT_CHECKTEXT_ADD=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With spare list, Obligatory, No Repetitions, checked text, EN',),\r
+       L10_LIST_F_REPEAT_ANYTEXT_ADD=SIMP(statut='f',typ='TXM', into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With spare list, Optional, Allowed Repetitions, any text, EN'),\r
+       L11_LIST_O_REPEAT_CHECKTEXT_ADD_NODEFAUT=SIMP(statut='o',typ=grma, into=("item01","text01","item02","text02","item03","text03","item04","text04"),ang='With spare list, obligatory, No Repetitions, checked text, no default values, EN', min=3, max='**'),\r
+       L12_LIST_O_NOREPEAT_CHECKTEXT_ADD_DEFAUT=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03","item04","text04","item05","text05",), defaut=('item01','item02','item03'), min=3, max='**',ang='With spare list, Obligatory, No Repetitions, checked text, with default values EN'),\r
+\r
+    L13_LIST_F_SANSORDRENODOUBLON_ANYTEXT_NODEFAUT=SIMP(statut='f',typ='TXM',homo="SansOrdreNiDoublon", into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With check boxes, Optional, any text, no defaults, EN'),\r
+    L14_LIST_O_SANSORDRENODOUBLON_CHECKTEXT_NODEFAUT=SIMP(statut='o',typ=grma,homo="SansOrdreNiDoublon", into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With check boxes, Obligatory, checked text, EN'),\r
+       L15_LIST_O_SANSORDRENODOUBLON_CHECKTEXT_DEFAUT=SIMP(statut='o',typ=grma,homo="SansOrdreNiDoublon", into=("item01","text01","item02","text02","item03","text03",), defaut=('item01','item02','item03'), min=3, max='**', ang='With check boxes, Obligatory, checked text, with default values, EN'),\r
+)\r
+\r
+\r
+\r
+Classement_Commandes_Ds_Arbre=('DEBUT','MESH_TYPES','ALL_LISTS','FIN')\r
+\r
+Ordre_Des_Commandes = ('DEBUT','MESH_TYPES','ALL_LISTS','FIN')\r
diff --git a/OldCodes/MED/Global_Condition_Cata.py b/OldCodes/MED/Global_Condition_Cata.py
new file mode 100755 (executable)
index 0000000..0239634
--- /dev/null
@@ -0,0 +1,53 @@
+# coding: utf-8
+from Accas import *
+#class myModel(ASSD): pass
+
+JdC = JDC_CATA(code='GLOB_COND',
+               execmodul=None,
+               regles=(AU_PLUS_UN('TYPES',),
+                       AU_PLUS_UN('INITS',),
+                                          AU_PLUS_UN('DATAS',),
+                       #A_CLASSER('TYPES','INITS','DATAS')
+                       )
+);
+
+TYPES=PROC(nom='TYPES',op=None,UIinfo={"groupes":("Global_Workflow",)}, #sd_prod=myModel,
+    MODE=SIMP(
+               typ='TXM',
+               statut='o',
+                position='global_jdc',
+               into=("MANUAL","AUTOMATIC","MIXED"),
+               defaut="AUTOMATIC",
+               ),
+);
+
+liste_condition=('INITS', 'DATAS')  
+
+INITS=PROC(nom='INITS',op=None,UIinfo={"groupes":("INI_param",)},
+       ini_manual=BLOC(condition="MODE == 'MANUAL'",
+               Informer=SIMP(statut='o',typ='TXM', defaut="INITS MANUAL"),
+       ),
+       ini_auto=BLOC(condition="MODE == 'AUTOMATIC'",
+               Informer=SIMP(statut='o', typ='TXM', defaut="INITS AUTOMATIC",),
+       ),
+       ini_mixed=BLOC(condition="MODE == 'MIXED'",
+               Informer=SIMP(statut='o',typ='TXM', defaut="INITS MIXED",),
+       ),
+);
+DATAS=PROC(nom='DATAS',op=None,UIinfo={"groupes":("DATAS",)},
+    data_manual=BLOC(condition="MODE == 'MANUAL'",
+               Informer=SIMP(statut='o',typ='TXM', defaut="DATAS MANUAL",
+                       ),
+       ),
+       data_auto=BLOC(condition="MODE == 'AUTOMATIC'",
+               Informer=SIMP(statut='o', typ='TXM', defaut="DATAS AUTOMATIC",
+                       ),
+       ),
+       data_mixed=BLOC(condition="MODE == 'MIXED'",
+               Informer=SIMP(statut='o',typ='TXM', defaut="DATAS MIXED",
+                       ),
+       ),
+);
+
+Classement_Commandes_Ds_Arbre=('TYPES','INITS','DATAS')
+Ordre_Des_Commandes = ('TYPES','INITS','DATAS')
diff --git a/OldCodes/MED/Many_Concepts_52983_Cata.py b/OldCodes/MED/Many_Concepts_52983_Cata.py
new file mode 100644 (file)
index 0000000..70f099a
--- /dev/null
@@ -0,0 +1,39 @@
+# coding: utf-8
+
+from Accas import *
+
+#class myMesh(ASSD): pass
+class myModel(ASSD): pass
+
+JdC = JDC_CATA(code='PATTERNS',
+               execmodul=None,
+               regles=(UN_PARMI('DEBUT', 'POURSUITE'),
+                       AU_MOINS_UN('FIN'),
+                       A_CLASSER(('DEBUT', 'POURSUITE'), 'FIN')))
+
+DEBUT=PROC(nom="DEBUT", op=68, repetable='n', UIinfo={"groupes":("Group1",)}, ang="Debut Eng help",
+        PAR_LOT=SIMP(ang="Debut Par Lot help En",statut='o',typ=bool, defaut=True),
+)
+AFFE_MODELE=OPER(nom="AFFE_MODELE",op=None,sd_prod=myModel,
+         UIinfo={"groupes":("Group1",)},
+         ang="Model mesh definition EN",
+         MESH=SIMP(statut='o',typ='TXM',into=("mesh_01","mesh_02","mesh_03","mesh_04",) , defaut="mesh_01"),
+    #reentrant='n',
+    #regles=(AU_MOINS_UN('AFFE','AFFE_SOUS_STRUC'),UN_PARMI('MAILLAGE','GRILLE')),
+
+
+    block_mesh_01=BLOC(condition="MESH=='mesh_01'",
+        AFFE=FACT(statut='o', 
+            ALL=SIMP(statut='o', typ=bool,ang='ALL 01 help EN', defaut=True),
+            PHENOMENA=SIMP(statut='o',typ='TXM',into=('phenomena_01','phenomena_02',), defaut='phenomena_01'),
+            #MODELISATION=SIMP(statut='o',typ='TXM', min=2,max='**', into=("mesh_01","mesh_02","mesh_03","mesh_04",) ,ang='Input 01 list EN', fr='Input 01 list FR'),
+            MODELISATION=SIMP(statut='o',typ='TXM', min=2,max='**', into=('Item_01_01','Item_01_02',) ,ang='Input 01 list EN', fr='Input 01 list FR'),
+        ),
+    ),
+)
+FIN=PROC(nom="FIN",op=9999,repetable='n',ang="Finish help EN",UIinfo={"groupes":("Group1",)},
+    FORMAT_HDF =SIMP(ang="Save HDF EN",statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), 
+)
+
+Classement_Commandes_Ds_Arbre=('DEBUT','MESH','AFFE_MODELE','FIN')
+Ordre_Des_Commandes = ('DEBUT','MESH','AFFE_MODELE','FIN')
diff --git a/OldCodes/MED/Many_Concepts_52988_Cata.py b/OldCodes/MED/Many_Concepts_52988_Cata.py
new file mode 100644 (file)
index 0000000..52d4f10
--- /dev/null
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+from Accas import *
+
+class myMesh(ASSD): pass
+class myModel(ASSD): pass
+
+JdC = JDC_CATA(code='PATTERNS',
+               execmodul=None,
+               regles=(AU_PLUS_UN('DEBUT', 'POURSUITE'),
+                       AU_PLUS_UN('AFFE_MODELE'),
+                       AU_PLUS_UN('FIN'),
+                       A_CLASSER(('DEBUT', 'POURSUITE'), 'FIN')))
+
+def mySeveral(suffix,num):
+    out=list()
+    for i in range(1,num+1):
+        out.append(suffix+str(i).zfill(2))
+    return out
+
+switch_facultatif=True #change 'o' to 'f' of some widgets in the loop
+empty_defauts=True
+
+def myBloc(num):
+    myNum=str(num).zfill(2)
+    list_item_body="Item_"+myNum+"_"
+    defauts0=["","",True,"'phenomena_"+myNum+"'",mySeveral(list_item_body,2)] #presence of default values
+    defauts_mask=[False,False,True,True,True] #switch off defaults of some types
+    defauts=list()
+    for id0 in range(len(defauts0)):
+        if defauts_mask[id0]:
+            item=", defaut="+str(defauts0[id0])
+        else:
+            item=""
+        defauts.append(item)
+    #print defauts
+
+    opt=['o','o','o','o','o'] #initial default obligation of items in FACT groups
+    #make some widgets optional:
+    myLen=len(opt)
+    if switch_facultatif:
+        make_f=(num)%myLen
+        opt[make_f]='f'
+    #print opt
+    if empty_defauts:
+        clean_defaut=num%myLen
+
+    myString="BLOC(condition=\"MESH==\'mesh_"+myNum+"'\""+defauts[0]+", AFFE=FACT(statut='"+opt[1]+"'"+defauts[1]+", ALL=SIMP(statut='"+opt[2]+"', typ=bool,ang='ALL "+myNum+" help EN'"+defauts[2]+"),PHENOMENA=SIMP(statut='"+opt[3]+"',typ='TXM',into=mySeveral('phenomena_',"+str(num)+")"+defauts[3]+"), MODELISATION=SIMP(statut='"+opt[4]+"',typ='TXM', min=2,max='**',into=mySeveral('"+list_item_body+"',"+str(num*4)+")"+defauts[4]+", ang='Input "+myNum+" list EN', fr='Input "+myNum+" list FR'),),)"
+    print myString
+    return eval(myString)
+
+DEBUT=PROC(nom="DEBUT", op=10, repetable='n', UIinfo={"groupes":("Group1",)}, ang="Debut Eng help",
+        PAR_LOT=SIMP(ang="Debut Par Lot help En",statut='o',typ=bool, defaut=True),
+);
+
+AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=myModel,
+    UIinfo={"groupes":("Group1",)},
+    ang="Model mesh definition EN",
+    reentrant='n',
+    regles=(AU_MOINS_UN('APPROVED')),
+    MESH=SIMP(statut='o',typ='TXM',into=mySeveral("mesh_",4) ,defaut="mesh_01"),
+       APPROVED=SIMP(statut="o", typ=bool),
+    block_mesh_01=myBloc(1),
+    block_mesh_02=myBloc(2),
+    block_mesh_03=myBloc(3),
+    block_mesh_04=myBloc(4),
+)
+
+
+FIN=PROC(nom="FIN",op=9999,repetable='n',ang="Finish help EN",UIinfo={"groupes":("Group1",)},
+    FORMAT_HDF =SIMP(ang="Save HDF EN",statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), 
+);
+
+Classement_Commandes_Ds_Arbre=('DEBUT','MESH_TYPES','AFFE_MODELE','FIN')
+
+Ordre_Des_Commandes = ('DEBUT','MESH_TYPES','AFFE_MODELE','FIN')
diff --git a/OldCodes/MED/Many_Concepts_52989_Cata.py b/OldCodes/MED/Many_Concepts_52989_Cata.py
new file mode 100644 (file)
index 0000000..930d9e8
--- /dev/null
@@ -0,0 +1,77 @@
+# coding: utf-8
+
+from Accas import *
+
+#class myMesh(ASSD): pass
+class myModel(ASSD): pass
+
+JdC = JDC_CATA(code='PATTERNS',
+               execmodul=None,
+               regles=(AU_PLUS_UN('DEBUT', 'POURSUITE'),
+                       AU_PLUS_UN('AFFE_MODELE'),
+                       AU_PLUS_UN('FIN'),
+                       A_CLASSER(('DEBUT', 'POURSUITE'), 'FIN')))
+
+def mySeveral(suffix,num):
+    out=list()
+    for i in range(1,num+1):
+        out.append(suffix+str(i).zfill(2))
+    return out
+
+switch_facultatif=True #change 'o' to 'f' of some widgets in the loop
+#empty_defauts=True
+
+def myBloc(num):
+    myNum=str(num).zfill(2)
+    list_item_body="Item_"+myNum+"_"
+    defauts0=["","",True,"'phenomena_"+myNum+"'",mySeveral(list_item_body,2)] #presence of default values
+    defauts_mask=[False,False,True,True,True] #switch off defaults of some types
+    defauts=list()
+    for id0 in range(len(defauts0)):
+        if defauts_mask[id0]:
+            item=", defaut="+str(defauts0[id0])
+        else:
+            item=""
+        defauts.append(item)
+    #print defauts
+
+    opt=['o','o','o','o','o'] #initial default obligation of items in FACT groups
+    #make different widgets optional, one by one:
+    myLen=len(opt)
+    if switch_facultatif:
+        make_f=(num)%myLen
+        opt[make_f]='f'
+    #print opt
+    #if empty_defauts:
+    #    clean_defaut=num%myLen
+
+    myString="BLOC(condition=\"MESH==\'mesh_"+myNum+"'\""+defauts[0]+", AFFE=FACT(statut='"+opt[1]+"'"+defauts[1]+", ALL=SIMP(statut='"+opt[2]+"', typ=bool,ang='ALL "+myNum+" help EN'"+defauts[2]+"),PHENOMENA=SIMP(statut='"+opt[3]+"',typ='TXM',into=mySeveral('phenomena_',"+str(num)+")"+defauts[3]+"), MODELISATION=SIMP(statut='"+opt[4]+"',typ='TXM', min=2,max='**',into=mySeveral('"+list_item_body+"',"+str(num*4)+")"+defauts[4]+", ang='Input "+myNum+" list EN', fr='Input "+myNum+" list FR'),),)"
+    print myString
+    return eval(myString)
+
+DEBUT=PROC(nom="DEBUT", op=10, repetable='n', UIinfo={"groupes":("Group1",)}, ang="Debut Eng help",
+        PAR_LOT=SIMP(ang="Debut Par Lot help En",statut='o',typ=bool, defaut=True),
+);
+
+AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=myModel,
+    UIinfo={"groupes":("Group1",)},
+    ang="Model mesh definition EN",
+    reentrant='n',
+    regles=(AU_MOINS_UN('APPROVED')),
+    MESH=SIMP(statut='o',typ='TXM',into=mySeveral("mesh_",4) ,defaut="mesh_01"),
+       APPROVED=SIMP(statut="f", typ=bool), # presence of this item will validate the whole group
+    PAR_LOT=SIMP(ang="Debut Par Lot help En",statut='o',typ='I', defaut=True),
+    block_mesh_01=myBloc(1),
+    block_mesh_02=myBloc(2),
+    block_mesh_03=myBloc(3),
+    block_mesh_04=myBloc(4),
+)
+
+
+FIN=PROC(nom="FIN",op=9999,repetable='n',ang="Finish help EN",UIinfo={"groupes":("Group1",)},
+    FORMAT_HDF =SIMP(ang="Save HDF EN",statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), 
+);
+
+Classement_Commandes_Ds_Arbre=('DEBUT','MESH_TYPES','AFFE_MODELE','FIN')
+
+Ordre_Des_Commandes = ('DEBUT','MESH_TYPES','AFFE_MODELE','FIN')
diff --git a/OldCodes/MED/Many_Concepts_52992_Cata.py b/OldCodes/MED/Many_Concepts_52992_Cata.py
new file mode 100644 (file)
index 0000000..13145b9
--- /dev/null
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+from Accas import *
+
+#class myMesh(ASSD): pass
+class myModel(ASSD): pass
+
+JdC = JDC_CATA(code='PATTERNS',
+               execmodul=None,
+               regles=(AU_PLUS_UN('DEBUT', 'POURSUITE'),
+                       AU_PLUS_UN('AFFE_MODELE'),
+                       AU_PLUS_UN('FIN'),
+                       A_CLASSER(('DEBUT', 'POURSUITE'), 'FIN')))
+
+def mySeveral(suffix,num):
+    out=list()
+    for i in range(1,num+1):
+        out.append(suffix+str(i).zfill(2))
+    return out
+
+switch_facultatif=True #change 'o' to 'f' of some widgets in the loop
+#empty_defauts=True
+
+def myBloc(num):
+    myNum=str(num).zfill(2)
+    list_item_body="Item_"+myNum+"_"
+    defauts0=["","",True,"'phenomena_"+myNum+"'",mySeveral(list_item_body,2)] #presence of default values
+    defauts_mask=[False,False,True,True,False] #switch off defaults of some types
+    defauts=list()
+    for id0 in range(len(defauts0)):
+        if defauts_mask[id0]:
+            item=", defaut="+str(defauts0[id0])
+        else:
+            item=""
+        defauts.append(item)
+    #print defauts
+
+    opt=['o','o','o','o','o'] #initial default obligation of items in FACT groups
+    #make different widgets optional, one by one:
+    myLen=len(opt)
+    if switch_facultatif:
+        make_f=(num)%myLen
+        opt[make_f]='f'
+    #print opt
+    #if empty_defauts:
+    #    clean_defaut=num%myLen
+
+    myString="BLOC(condition=\"MESH==\'mesh_"+myNum+"'\""+defauts[0]+", AFFE=FACT(statut='"+opt[1]+"'"+defauts[1]+", ALL=SIMP(statut='"+opt[2]+"', typ=bool,ang='ALL "+myNum+" help EN'"+defauts[2]+"),PHENOMENA=SIMP(statut='"+opt[3]+"',typ='TXM',into=mySeveral('phenomena_',"+str(num)+")"+defauts[3]+"), MODELISATION=SIMP(statut='"+opt[4]+"',typ='TXM', min=4,max='**',into=mySeveral('"+list_item_body+"',"+str(num*4)+")"+defauts[4]+", ang='Input "+myNum+" list EN', fr='Input "+myNum+" list FR'),),)"
+    print myString
+    return eval(myString)
+
+DEBUT=PROC(nom="DEBUT", op=10, repetable='n', UIinfo={"groupes":("Group1",)}, ang="Debut Eng help",
+        PAR_LOT=SIMP(ang="Debut Par Lot help En",statut='o',typ=bool, defaut=True),
+);
+
+AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=myModel,
+    UIinfo={"groupes":("Group1",)},
+    ang="Model mesh definition EN",
+    reentrant='n',
+    regles=(AU_MOINS_UN('APPROVED')),
+    MESH=SIMP(statut='o',typ='TXM',into=mySeveral("mesh_",4) ,defaut="mesh_01"),
+       APPROVED=SIMP(statut="f", typ=bool), # presence of this item will validate the whole group
+    block_mesh_01=myBloc(1),
+    block_mesh_02=myBloc(2),
+    block_mesh_03=myBloc(3),
+    block_mesh_04=myBloc(4),
+)
+
+
+FIN=PROC(nom="FIN",op=9999,repetable='n',ang="Finish help EN",UIinfo={"groupes":("Group1",)},
+    FORMAT_HDF =SIMP(ang="Save HDF EN",statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), 
+);
+
+Classement_Commandes_Ds_Arbre=('DEBUT','MESH_TYPES','AFFE_MODELE','FIN')
+
+Ordre_Des_Commandes = ('DEBUT','MESH_TYPES','AFFE_MODELE','FIN')
diff --git a/OldCodes/MED/Matrix_Cata.py b/OldCodes/MED/Matrix_Cata.py
new file mode 100644 (file)
index 0000000..268a77b
--- /dev/null
@@ -0,0 +1,87 @@
+# coding: utf-8
+from Accas import *
+
+class loi      ( ASSD ) : pass
+class variable ( ASSD ) : pass
+
+class Matrice:
+  def __init__(self,nbLigs=None,nbCols=None,methodeCalculTaille=None,formatSortie="ligne",valSup=None,valMin=None,structure=None):
+      self.nbLigs=nbLigs
+      self.nbCols=nbCols
+      self.methodeCalculTaille=methodeCalculTaille
+      self.formatSortie=formatSortie
+      self.valSup=valSup
+      self.valMin=valMin
+      self.structure=structure
+
+  def __convert__(self,valeur):
+    # Attention ne verifie pas grand chose
+    if type(valeur) != types.ListType :
+      return None
+    return valeur
+
+  def info(self):
+      return "Matrice %s x %s" % (self.nbLigs, self.nbCols)
+
+      __repr__=info
+      __str__=info
+
+
+
+class myModel(ASSD): pass
+
+JdC = JDC_CATA(code='PATTERNS',
+               execmodul=None,
+               regles=(AU_MOINS_UN ( 'CORRELATION' ),
+                )
+)
+
+DETERMINISTICVARIABLE = OPER ( nom = "DETERMINISTICVARIABLE",
+                               sd_prod = variable,
+                               op = None,
+                               fr = "Variable deterministe",
+                               ang = "Deterministic variable",
+            
+  N = SIMP ( statut = 'o', typ = "TXM", fr = "Nom", ang = "Name", defaut = "Var1" ),
+  T = SIMP ( statut = 'o', defaut = "in", into = ( "in" , "out", ), typ = "TXM", fr = "Type", ang = "Type" ),
+  R = SIMP ( statut = 'o', defaut = 0, typ = "I", fr = "Rang", ang = "Rank" ),
+)
+
+DISTRIBUTION = OPER ( nom = "DISTRIBUTION",
+                      sd_prod = loi,
+                      op = 68,
+                      fr = "Definitions des lois marginales utilisees par les variables d'entree", 
+                      
+  R = SIMP ( statut = "o", typ = "R", max = 1, val_min = 0., fr = "Parametre R de la loi | R > 0", ang = "R parameter | R > 0", defaut = 0.5 ),
+  # T > R
+  T = SIMP ( statut = "o", typ = "R", max = 1, val_min = 0., fr = "Parametre T de la loi | T > R", ang = "T parameter | T > R", defaut = 0.7 ),
+  A = SIMP ( statut = "o", typ = "R", max = 1, fr = "Borne inferieure du support de la loi", ang = "Support lower bound", defaut = 0.1 ),
+  # B > A
+  B = SIMP ( statut = "o", typ = "R", max = 1, fr = "Borne superieure du support de la loi", ang = "Support upper bound", defaut = 0.3 ),
+)
+
+VARIABLE = PROC ( nom = "VARIABLE",
+                  op = None,
+                  docu = "",
+                  fr = "Variable probabiliste",
+                  ang = "Probabilistic variable",
+
+  ModelVariable = SIMP ( statut = "o", typ = ( variable, ), fr = "Variable d'entrée du modèle", ang = "Input variable of the model" ),
+  Distribution = SIMP ( statut = "o", typ = ( loi, ), fr = "Modélisation probabiliste", ang = "Probabilistic modelisation" ),
+)
+
+CORRELATION = PROC ( nom = 'CORRELATION',
+                     op = None,
+                     docu = "",
+                     fr = "Correlation entre variables",
+                     ang = "Variable correlation",
+
+  CorrelationMatrix = SIMP ( statut = "o", typ = Matrice(nbLigs=None,
+                                                         nbCols=None,
+                                                         methodeCalculTaille='NbDeVariables',
+                                                         valSup=1,
+                                                         valMin=-1,
+                                                         structure="symetrique"),
+                             fr = "Matrice de correlation entre les variables d'entree",
+                             ang = "Correlation matrix for input variables" ),
+)
diff --git a/OldCodes/MED/Nested_Cond_52945_Cata.py b/OldCodes/MED/Nested_Cond_52945_Cata.py
new file mode 100644 (file)
index 0000000..9d3b119
--- /dev/null
@@ -0,0 +1,61 @@
+# coding: utf-8
+
+from Accas import *
+
+class loi(): pass
+
+JdC = JDC_CATA (code = 'PATTERNS',
+                execmodul = None,
+                )
+use_and=False #switch off second condition about MAX_ROWS while it does not work for blocks greater than 2
+def cond2(myMax=False):
+    if use_and:
+        if myMax:
+            out= " and MAX_ROWS>="+str(myMax)
+        else:
+            out=""
+    else: 
+        out=""
+    print out
+    return out
+
+PROC_01 = PROC(nom = "PROC_01",op = None, ang="Help for PROC_01 EN",
+    MAX_ROWS=SIMP(statut='o',typ='I',val_min=1,val_max=8, defaut=8),
+    PROCGROUP1=SIMP(statut='o',typ='TXM',into=("1A","2A","add new row",)),
+    wideblock1=BLOC(condition='PROCGROUP1=="add new row"'+cond2(1),
+        PROCGROUP2=SIMP(statut='o',typ='TXM',into=("1A","add new row","3A",)),
+        wideblock2=BLOC(condition='PROCGROUP2=="add new row"'+cond2(2),
+            PROCGROUP3=SIMP(statut='o',typ='TXM',into=("1","2","add new row",)),
+            PROCGROUP689=SIMP(statut='o',typ='TXM',),
+            wideblock3=BLOC(condition='PROCGROUP3=="add new row"'+cond2(3),
+                PROCGROUP4=SIMP(statut='o',typ='TXM',into=("1","add new row","3",)),
+                wideblock4=BLOC(condition='PROCGROUP4=="add new row"'+cond2(4),
+                    PROCGROUP5=SIMP(statut='o',typ='TXM',into=("add new row","2","3",)),
+                    wideblock5=BLOC(condition='PROCGROUP5=="add new row"'+cond2(5), 
+                        PROCGROUP6=SIMP(statut='o',typ='TXM',into=("1","2","add new row",)),
+                        wideblock6=BLOC(condition='PROCGROUP6=="add new row"'+cond2(6), 
+                            PROCGROUP7=SIMP(statut='o',typ='TXM',into=("1","add new row","3",)),
+                            wideblock7=BLOC(condition='PROCGROUP7=="add new row"'+cond2(7), 
+                                PROCGROUP8=SIMP(statut='o',typ='TXM',into=("add new row","2","3",)),
+                                wideblock8=BLOC(condition='PROCGROUP8=="add new row"'+cond2(8),
+                                )
+                            )
+                        )
+                    )
+                )
+            )
+        )
+    )
+)
+
+#LEV1 = OPER( nom = "LEV1",
+#    sd_prod=loi,
+#    op=68,
+#    fr='LEV1 FR',
+#    Boolean01=SIMP( statut = 'o',typ = bool, defaut=True, fr = 'Bool mandatory FR', ang = 'Bool mandatory EN'),
+#    SelectedItem=SIMP(statut = 'o',typ = 'TXM', into=["01_01","01_02","01_03","01_04"], fr="FR"),
+#)
+
+Classement_Commandes_Ds_Arbre=('PROC_01',)
+
+Ordre_Des_Commandes = ('PROC_01',)
diff --git a/OldCodes/MED/Nested_Cond_52946_Cata.py b/OldCodes/MED/Nested_Cond_52946_Cata.py
new file mode 100644 (file)
index 0000000..fef5edf
--- /dev/null
@@ -0,0 +1,62 @@
+# coding: utf-8
+
+from Accas import *
+
+class loi(): pass
+
+JdC = JDC_CATA (code = 'PATTERNS',
+                execmodul = None,
+                )
+use_and=True #switch off second condition about MAX_ROWS while it does not work for blocks greater than 2
+def cond2(myMax=False):
+    if use_and:
+        if myMax:
+            out= " and MAX_ROWS>="+str(myMax)
+        else:
+            out=""
+    else: 
+        out=""
+    print out
+    return out
+
+PROC_01 = PROC(nom = "PROC_01",op = None, ang="Help for PROC_01 EN",
+    MAX_ROWS=SIMP(statut='o',typ='I',val_min=1,val_max=8, defaut=8),
+    PROCGROUP1=SIMP(statut='o',typ='TXM',into=("1","2","add new row",)),
+    wideblock1=BLOC(condition='PROCGROUP1=="add new row"'+cond2(1),
+        PROCGROUP2=SIMP(statut='o',typ='TXM',into=("1","add new row","3",)),
+        #wideblock2=BLOC(condition='PROCGROUP2=="add new row"',
+        wideblock2=BLOC(condition='MAX_ROWS == 8',
+        #wideblock2=BLOC(condition='PROCGROUP2=="add new row" and (MAX_ROWS > 2)',
+            PROCGROUP3=SIMP(statut='o',typ='TXM',into=("1","2","add new row",)),
+            wideblock3=BLOC(condition='PROCGROUP3=="add new row"'+cond2(3),
+                PROCGROUP4=SIMP(statut='o',typ='TXM',into=("1","add new row","3",)),
+                wideblock4=BLOC(condition='PROCGROUP4=="add new row"'+cond2(4),
+                    PROCGROUP5=SIMP(statut='o',typ='TXM',into=("add new row","2","3",)),
+                    wideblock5=BLOC(condition='PROCGROUP5=="add new row"'+cond2(5), 
+                        PROCGROUP6=SIMP(statut='o',typ='TXM',into=("1","2","add new row",)),
+                        wideblock6=BLOC(condition='PROCGROUP6=="add new row"'+cond2(6), 
+                            PROCGROUP7=SIMP(statut='o',typ='TXM',into=("1","add new row","3",)),
+                            wideblock7=BLOC(condition='PROCGROUP7=="add new row"'+cond2(7), 
+                                PROCGROUP8=SIMP(statut='o',typ='TXM',into=("add new row","2","3",)),
+                                wideblock8=BLOC(condition='PROCGROUP8=="add new row"'+cond2(8),
+                                )
+                            )
+                        )
+                    )
+                )
+            )
+        )
+    )
+)
+
+#LEV1 = OPER( nom = "LEV1",
+#    sd_prod=loi,
+#    op=68,
+#    fr='LEV1 FR',
+#    Boolean01=SIMP( statut = 'o',typ = bool, defaut=True, fr = 'Bool mandatory FR', ang = 'Bool mandatory EN'),
+#    SelectedItem=SIMP(statut = 'o',typ = 'TXM', into=["01_01","01_02","01_03","01_04"], fr="FR"),
+#)
+
+Classement_Commandes_Ds_Arbre=('PROC_01',)
+
+Ordre_Des_Commandes = ('PROC_01',)
diff --git a/OldCodes/MED/Nested_Cond_52947_Cata.py b/OldCodes/MED/Nested_Cond_52947_Cata.py
new file mode 100644 (file)
index 0000000..bf3be39
--- /dev/null
@@ -0,0 +1,17 @@
+# coding: utf-8
+
+from Accas import *
+
+class loi(): pass
+
+JdC = JDC_CATA (code = 'PATTERNS',
+                execmodul = None,
+                )
+
+PROC_01 = PROC(nom = "PROC_01",op = None, ang="Help for PROC_01 EN",
+    PROCGROUP1=SIMP(statut='o',typ='TXM',into=("a1","a2","a3",)),
+)
+
+Classement_Commandes_Ds_Arbre=('PROC_01',)
+
+Ordre_Des_Commandes = ('PROC_01',)
diff --git a/OldCodes/MED/Nested_Cond_52948_Cata.py b/OldCodes/MED/Nested_Cond_52948_Cata.py
new file mode 100644 (file)
index 0000000..81f216f
--- /dev/null
@@ -0,0 +1,21 @@
+# coding: utf-8
+
+from Accas import *
+
+class loi(ASSD): pass
+
+JdC = JDC_CATA (code = 'PATTERNS',
+                execmodul = None,
+                )
+
+PER_01 = OPER( nom = "PER_01",
+    sd_prod=loi,
+    op=68,
+    fr='LEV1 FR',
+    Boolean01=SIMP( statut = 'o',typ = bool, defaut=True, fr = 'Bool mandatory FR', ang = 'Bool mandatory EN'),
+    SelectedItem=SIMP(statut = 'o',typ = 'TXM', into=["01_01","01_02","01_03","01_04"], fr="FR"),
+)
+
+#Classement_Commandes_Ds_Arbre=('OPER_01',)
+
+#Ordre_Des_Commandes = ('OPER_01',)
diff --git a/OldCodes/MED/Nested_Cond_52949_Cata.py b/OldCodes/MED/Nested_Cond_52949_Cata.py
new file mode 100644 (file)
index 0000000..d09011a
--- /dev/null
@@ -0,0 +1,19 @@
+# coding: utf-8
+
+from Accas import *
+
+JdC = JDC_CATA (code = 'PATTERNS',
+                execmodul = None,
+                )
+
+PROC_01 = PROC(nom = "PROC_01",op = None, ang="Help for PROC_01 EN",
+    MAX_ROWS=SIMP(statut='o',typ='I',val_min=1,val_max=8, defaut=8),
+    PROCGROUP1=SIMP(statut='o',typ='TXM',into=("1","2","add new row",)),
+    wideblock1=BLOC(condition='PROCGROUP1 in "add new row"',
+        PROCGROUP2=SIMP(statut='o',typ='TXM',into=("1","add new row","3",)),
+    )
+)
+
+Classement_Commandes_Ds_Arbre=('PROC_01',)
+
+Ordre_Des_Commandes = ('PROC_01',)
diff --git a/OldCodes/MED/Nested_Cond_52952_Cata.py b/OldCodes/MED/Nested_Cond_52952_Cata.py
new file mode 100644 (file)
index 0000000..47a8d7c
--- /dev/null
@@ -0,0 +1,60 @@
+# coding: utf-8
+
+from Accas import *
+
+class loi(): pass
+
+JdC = JDC_CATA (code = 'PATTERNS',
+                execmodul = None,
+                )
+use_and=False #switch off second condition about MAX_ROWS while it does not work for blocks greater than 2
+def cond2(myMax=False):
+    if use_and:
+        if myMax:
+            out= " and MAX_ROWS>="+str(myMax)
+        else:
+            out=""
+    else: 
+        out=""
+    #print out
+    return out
+
+PROC_01 = PROC(nom = "PROC_01",op = None, ang="Help for PROC_01 EN",
+    MAX_ROWS=SIMP(statut='o',typ='I',val_min=1,val_max=8, defaut=8),
+    PROCGROUP1=SIMP(statut='o',typ='TXM',into=("1","2","add new row",)),
+    wideblock1=BLOC(condition='PROCGROUP1=="add new row"'+cond2(1),
+        PROCGROUP2=SIMP(statut='o',typ='TXM',into=("1","add new row","3",)),
+        wideblock2=BLOC(condition='PROCGROUP2=="add new row"'+cond2(2),
+            PROCGROUP3=SIMP(statut='o',typ='TXM',into=("1","2","add new row",)),
+            wideblock3=BLOC(condition='PROCGROUP3=="add new row"'+cond2(3),
+                PROCGROUP4=SIMP(statut='o',typ='TXM',into=("1","add new row","3",)),
+                wideblock4=BLOC(condition='PROCGROUP4=="add new row"'+cond2(4),
+                    PROCGROUP5=SIMP(statut='o',typ='TXM',into=("add new row","2","3",)),
+                    wideblock5=BLOC(condition='PROCGROUP5=="add new row"'+cond2(5), 
+                        PROCGROUP6=SIMP(statut='o',typ='TXM',into=("1","2","add new row",)),
+                        wideblock6=BLOC(condition='PROCGROUP6=="add new row"'+cond2(6), 
+                            PROCGROUP7=SIMP(statut='o',typ='TXM',into=("1","add new row","3",)),
+                            wideblock7=BLOC(condition='PROCGROUP7=="add new row"'+cond2(7), 
+                                PROCGROUP8=SIMP(statut='o',typ='TXM',into=("add new row","2","3",)),
+                                wideblock8=BLOC(condition='PROCGROUP8=="add new row"'+cond2(8),
+                                )
+                            )
+                        )
+                    )
+                )
+            )
+        )
+    )
+)
+
+#LEV1 = OPER( nom = "LEV1",
+#    sd_prod=loi,
+#    op=68,
+#    fr='LEV1 FR',
+#    Boolean01=SIMP( statut = 'o',typ = bool, defaut=True, fr = 'Bool mandatory FR', ang = 'Bool mandatory EN'),
+#    SelectedItem=SIMP(statut = 'o',typ = 'TXM', into=["01_01","01_02","01_03","01_04"], fr="FR"),
+#)
+
+Classement_Commandes_Ds_Arbre=('PROC_01',)
+
+Ordre_Des_Commandes = ('PROC_01',)
diff --git a/OldCodes/MED/Separate_Blocks_52958_Cata.py b/OldCodes/MED/Separate_Blocks_52958_Cata.py
new file mode 100644 (file)
index 0000000..1327a3f
--- /dev/null
@@ -0,0 +1,29 @@
+# coding: utf-8
+
+from Accas import *
+
+JdC = JDC_CATA (code = 'PATTERNS',
+                execmodul = None,
+                )
+def several(suffix,num):
+    out=list()
+    for i in range(1,num+1):
+        out.append(suffix+str(i).zfill(2))
+    return out
+
+NUMERICAL_PARAMETERS=PROC(nom = "NUMERICAL_PARAMETERS", op=None, ang="Help for NUMERICAL_PARAMETERS, English version",
+    #Equations=SIMP(statut = 'o',typ = 'TXM',into=("EF","VF","BS"),defaut="EF"),
+    Solver_definition=FACT(statut = 'o',
+        Solver = SIMP(statut = 'o',typ = 'TXM', into=several("Solver_",12), defaut="Solver_06"),
+    )
+)
+PASCALE=PROC(nom = "PASCALE", op=None, ang="Help for NUMERICAL_PARAMETERS, English version",
+    Equations=SIMP(statut = 'o',typ = 'TXM',into=("EF","VF","BS"),defaut="EF"),
+    Solver_definition=FACT(statut = 'o',
+        Solver = SIMP(statut = 'o',typ = 'TXM', into=several("Solver_",12), defaut="Solver_06"),
+    )
+)
+
+Classement_Commandes_Ds_Arbre=('NUMERICAL_PARAMETERS',)
+
+Ordre_Des_Commandes = ('NUMERICAL_PARAMETERS',)
diff --git a/OldCodes/MED/Separate_Blocks_52963_Cata.py b/OldCodes/MED/Separate_Blocks_52963_Cata.py
new file mode 100644 (file)
index 0000000..c115196
--- /dev/null
@@ -0,0 +1,40 @@
+# coding: utf-8
+
+from Accas import *
+
+JdC = JDC_CATA (code = 'PATTERNS',
+                execmodul = None,
+                )
+def mySeveral(suffix,num):
+    out=list()
+    for i in range(1,num+1):
+        out.append(suffix+str(i).zfill(2))
+    return out
+
+def myFact(num):
+    myNum=str(num).zfill(2)
+    list_item_body="Item_"+myNum+"_"
+    myString="FACT(statut = 'f', List_"+myNum+" = SIMP(statut = 'o',typ = 'TXM', into=mySeveral('"+list_item_body+"',12), defaut='"+list_item_body+myNum+"'),Real_"+myNum+" = SIMP(statut = 'o',typ = 'R', defaut = "+str(num/100.)+", ang='Real "+myNum+" help EN'),Integer_"+myNum+" = SIMP(statut = 'o',typ = 'I', defaut = "+str(100+num)+",ang='Max_Iter "+myNum+" help EN'))"
+    print myString
+    return eval(myString)
+
+
+PROC_01=PROC(nom = "PROC_01", op=None, ang="Help for PROC_01, English version",fr="Help for PROC_01, French version", docu="",
+    Radio_01=SIMP(statut = 'f',typ = 'TXM',into=("EF","VF","BS"),defaut="EF"),
+    FACT_01=myFact(1),
+    FACT_02=myFact(2),
+    FACT_03=myFact(3),
+    FACT_04=myFact(4),
+    FACT_05=myFact(5),
+    FACT_06=myFact(6),
+    FACT_07=myFact(7),
+    FACT_08=myFact(8),
+    FACT_09=myFact(9),
+    FACT_10=myFact(10),
+    FACT_11=myFact(11),
+    FACT_12=myFact(12),
+)
+
+Classement_Commandes_Ds_Arbre=('PROC_01',)
+
+Ordre_Des_Commandes = ('PROC_01',)
diff --git a/OldCodes/MED/Separate_Blocks_52966_Cata.py b/OldCodes/MED/Separate_Blocks_52966_Cata.py
new file mode 100644 (file)
index 0000000..baef1eb
--- /dev/null
@@ -0,0 +1,48 @@
+# coding: utf-8
+
+from Accas import *
+
+JdC = JDC_CATA (code = 'PATTERNS',
+                execmodul = None,
+                )
+def mySeveral(suffix,num):
+    out=list()
+    for i in range(1,num+1):
+        out.append(suffix+str(i).zfill(2))
+    return out
+
+switch_facultatif=False #change 'o' to 'f' of some widgets in the loop
+
+def myFact(num):
+    opt=['o','f','o','o']
+    if switch_facultatif:
+        myLen=len(opt)
+        make_f=(num-1)%myLen
+        opt[make_f]='f'
+    #print opt
+    myNum=str(num).zfill(2)
+    list_item_body="Item_"+myNum+"_"
+    myString="FACT(statut = '"+opt[0]+"', List_"+myNum+" = SIMP(statut = '"+opt[1]+"',typ = 'TXM', into=mySeveral('"+list_item_body+"',12), defaut='"+list_item_body+myNum+"'),Real_"+myNum+" = SIMP(statut = '"+opt[2]+"',typ = 'R', defaut = "+str(num/100.)+", ang='Real "+myNum+" help EN'),Integer_"+myNum+" = SIMP(statut = '"+opt[3]+"',typ = 'I', defaut = "+str(100+num)+",ang='Max_Iter "+myNum+" help EN'))"
+    print myString
+    return eval(myString)
+
+
+PROC_01=PROC(nom = "PROC_01", op=None, ang="Help for PROC_01, English version",fr="Help for PROC_01, French version", docu="",
+    Radio_01=SIMP(statut = 'o',typ = 'TXM',into=("EF","VF","BS"),defaut="EF"),
+    FACT_01=myFact(1),
+    FACT_02=myFact(2),
+    FACT_03=myFact(3),
+    FACT_04=myFact(4),
+    FACT_05=myFact(5),
+    FACT_06=myFact(6),
+    FACT_07=myFact(7),
+    FACT_08=myFact(8),
+    FACT_09=myFact(9),
+    FACT_10=myFact(10),
+    FACT_11=myFact(11),
+    FACT_12=myFact(12),
+)
+
+Classement_Commandes_Ds_Arbre=('PROC_01',)
+
+Ordre_Des_Commandes = ('PROC_01',)
diff --git a/OldCodes/MED/Separate_Blocks_52972_Cata.py b/OldCodes/MED/Separate_Blocks_52972_Cata.py
new file mode 100644 (file)
index 0000000..88927e4
--- /dev/null
@@ -0,0 +1,66 @@
+# coding: utf-8
+
+from Accas import *
+
+JdC = JDC_CATA (code = 'PATTERNS',
+                execmodul = None,
+                )
+def mySeveral(suffix,num):
+    out=list()
+    for i in range(1,num+1):
+        out.append(suffix+str(i).zfill(2))
+    return out
+
+switch_facultatif=True #change 'o' to 'f' of some widgets in the loop
+empty_defauts=True
+
+def myFact(num):
+    myNum=str(num).zfill(2)
+    list_item_body="Item_"+myNum+"_"
+
+    defauts0=["","'"+list_item_body+myNum+"'", str(num/100.), str(100+num), "'Text_"+myNum+"'" ] #presence of default values
+    defauts_mask=[False,True,True,False,True] #switch off defaults of some types
+    defauts=list()
+    for id0 in range(len(defauts0)):
+        if defauts_mask[id0]:
+            item=", defaut="+defauts0[id0]
+        else:
+            item=""
+        defauts.append(item)
+    print defauts
+
+    opt=['o','o','o','o','o'] #initial default obligation of items in FACT groups
+    #make some widgets optional:
+    myLen=len(opt)
+    if switch_facultatif:
+        make_f=(num)%myLen
+        opt[make_f]='f'
+    #print opt
+    if empty_defauts:
+        clean_defaut=num%myLen
+
+
+    myString="FACT(statut = '"+opt[0]+"', List_"+myNum+" = SIMP(statut = '"+opt[1]+"',typ = 'TXM', into=mySeveral('"+list_item_body+"',12)"+defauts[1]+"),Real_"+myNum+" = SIMP(statut = '"+opt[2]+"',typ = 'R'"+defauts[2]+", ang='Real "+myNum+" help EN'),Integer_"+myNum+" = SIMP(statut = '"+opt[3]+"',typ = 'I'"+defauts[3]+",ang='Integer "+myNum+" help EN'),Text_"+myNum+" = SIMP(statut = '"+opt[4]+"',typ = 'TXM'"+defauts[4]+",ang='Text "+myNum+" help EN'))"
+    print myString
+    return eval(myString)
+
+
+PROC_01=PROC(nom = "PROC_01", op=None, ang="Help for PROC_01, English version",fr="Help for PROC_01, French version", docu="",
+    Radio_01=SIMP(statut = 'o',typ = 'TXM',into=("EF","VF","BS"),defaut="EF"),
+    FACT_01=myFact(1),
+    FACT_02=myFact(2),
+    FACT_03=myFact(3),
+    FACT_04=myFact(4),
+    FACT_05=myFact(5),
+    #FACT_06=myFact(6),
+    #FACT_07=myFact(7),
+    #FACT_08=myFact(8),
+    #FACT_09=myFact(9),
+    #FACT_10=myFact(10),
+    #FACT_11=myFact(11),
+    #FACT_12=myFact(12),
+)
+
+Classement_Commandes_Ds_Arbre=('PROC_01',)
+
+Ordre_Des_Commandes = ('PROC_01',)
diff --git a/OldCodes/MED/Separate_Blocks_52975_Cata.py b/OldCodes/MED/Separate_Blocks_52975_Cata.py
new file mode 100644 (file)
index 0000000..88927e4
--- /dev/null
@@ -0,0 +1,66 @@
+# coding: utf-8
+
+from Accas import *
+
+JdC = JDC_CATA (code = 'PATTERNS',
+                execmodul = None,
+                )
+def mySeveral(suffix,num):
+    out=list()
+    for i in range(1,num+1):
+        out.append(suffix+str(i).zfill(2))
+    return out
+
+switch_facultatif=True #change 'o' to 'f' of some widgets in the loop
+empty_defauts=True
+
+def myFact(num):
+    myNum=str(num).zfill(2)
+    list_item_body="Item_"+myNum+"_"
+
+    defauts0=["","'"+list_item_body+myNum+"'", str(num/100.), str(100+num), "'Text_"+myNum+"'" ] #presence of default values
+    defauts_mask=[False,True,True,False,True] #switch off defaults of some types
+    defauts=list()
+    for id0 in range(len(defauts0)):
+        if defauts_mask[id0]:
+            item=", defaut="+defauts0[id0]
+        else:
+            item=""
+        defauts.append(item)
+    print defauts
+
+    opt=['o','o','o','o','o'] #initial default obligation of items in FACT groups
+    #make some widgets optional:
+    myLen=len(opt)
+    if switch_facultatif:
+        make_f=(num)%myLen
+        opt[make_f]='f'
+    #print opt
+    if empty_defauts:
+        clean_defaut=num%myLen
+
+
+    myString="FACT(statut = '"+opt[0]+"', List_"+myNum+" = SIMP(statut = '"+opt[1]+"',typ = 'TXM', into=mySeveral('"+list_item_body+"',12)"+defauts[1]+"),Real_"+myNum+" = SIMP(statut = '"+opt[2]+"',typ = 'R'"+defauts[2]+", ang='Real "+myNum+" help EN'),Integer_"+myNum+" = SIMP(statut = '"+opt[3]+"',typ = 'I'"+defauts[3]+",ang='Integer "+myNum+" help EN'),Text_"+myNum+" = SIMP(statut = '"+opt[4]+"',typ = 'TXM'"+defauts[4]+",ang='Text "+myNum+" help EN'))"
+    print myString
+    return eval(myString)
+
+
+PROC_01=PROC(nom = "PROC_01", op=None, ang="Help for PROC_01, English version",fr="Help for PROC_01, French version", docu="",
+    Radio_01=SIMP(statut = 'o',typ = 'TXM',into=("EF","VF","BS"),defaut="EF"),
+    FACT_01=myFact(1),
+    FACT_02=myFact(2),
+    FACT_03=myFact(3),
+    FACT_04=myFact(4),
+    FACT_05=myFact(5),
+    #FACT_06=myFact(6),
+    #FACT_07=myFact(7),
+    #FACT_08=myFact(8),
+    #FACT_09=myFact(9),
+    #FACT_10=myFact(10),
+    #FACT_11=myFact(11),
+    #FACT_12=myFact(12),
+)
+
+Classement_Commandes_Ds_Arbre=('PROC_01',)
+
+Ordre_Des_Commandes = ('PROC_01',)
diff --git a/OldCodes/MED/a b/OldCodes/MED/a
new file mode 100644 (file)
index 0000000..0018d1d
--- /dev/null
@@ -0,0 +1,110 @@
+ESSAI_FACT=OPER(nom="ESSAI_FACT",
+   sd_prod=ObjetUtilisateur,
+   op=None,
+   fr=tr("Affectation de caractéristiques à des éléments de structure"),
+   regles = (AU_MOINS_UN('Poutre','Barre'),
+             EXCLUS('Discret','Discret_2D'),),
+   Info   = SIMP(statut='f',typ='I', defaut= 1 ,into=(1,2) ),
+   Verif  = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("Maille","Noeud") ),
+#
+# ==============================================================================
+    Poutre  = FACT(statut= 'f',max= '**',
+        Section = SIMP(statut= 'o',typ= 'TXM' ,into= ("GENERALE","RECTANGLE","CERCLE") ),
+
+        b_generale = BLOC(condition = " Section == 'GENERALE'",
+            regles = (UN_PARMI('Maille','GroupeMailles'),),
+            Maille    = SIMP(statut= 'f',typ= ma  ,validators= NoRepeat(),max= '**'),
+            GroupeMailles  = SIMP(statut= 'f',typ= grma,validators= NoRepeat(),max= '**'),
+
+            Vari = SIMP(statut= 'f',typ= 'TXM',into= ("CONSTANT","HOMOTHETIQUE"),defaut= "CONSTANT"),
+
+            b_constant = BLOC(condition = "Vari == 'CONSTANT'",
+                regles = (PRESENT_ABSENT('Table','Cara'),
+                          PRESENT_PRESENT('Table','Nom'),
+                          PRESENT_PRESENT('Cara','Valeur'),),
+                Table = SIMP(statut= 'f',typ='TXM'),
+                Nom    = SIMP(statut= 'f',typ= 'TXM'),
+                Cara       = SIMP(statut= 'o',typ= 'TXM',min= 4 ,max= 5,
+                    fr= tr("A,IY,IZ,JX sont des paramètres obligatoires"),
+                    validators= [NoRepeat(), Compulsory(['A','IY','IZ','JX'])],
+                    into= ("A","IY","IZ","AY","AZ","EY","EZ","JX","RY","RZ","RT","JG","IYR2","IZR2","AI") ),
+                Valeur       = SIMP(statut= 'f',typ= 'R',min= 4 ,max= 15),
+            ),
+        ),
+        b_rectangle = BLOC(condition = "Section == 'RECTANGLE'",
+            regles = (UN_PARMI('Maille','GroupeMailles'),),
+            Maille    = SIMP(statut= 'f',typ= ma  ,validators= NoRepeat(),max= '**'),
+            GroupeMailles  = SIMP(statut= 'f',typ= grma,validators= NoRepeat(),max= '**'),
+            Vari = SIMP(statut= 'f',typ= 'TXM',into= ("CONSTANT","HOMOTHETIQUE","AFFINE"),defaut= "CONSTANT"),
+            b_constant = BLOC(condition = "Vari == 'CONSTANT'",
+                Cara  = SIMP(statut= 'o',typ= 'TXM',min= 1 ,max= 4,
+                    validators = [NoRepeat(),
+                                  OrVal( [AndVal( [Compulsory(['H']),Absent(['HY','HZ','EPY','EPZ'])] ),
+                                          AndVal( [Compulsory(['HY','HZ']),Together(['EPY','EPZ']),Absent(['H','EP'])] )] )],
+                    into= ("H","EP", "HY","HZ","EPY","EPZ"),),
+                Valeur  = SIMP(statut= 'o',typ= 'R',min= 1 ,max= 4),
+            ),
+
+            Metrique = SIMP(statut= 'f',typ= 'TXM',defaut= "NON",into= ("OUI","NON") ),
+            Fcx           = SIMP(statut= 'f',typ= 'R'),
+            Tuyau    = SIMP(statut= 'f',typ= 'I',val_max= 10,defaut= 3),
+        ),
+    ),
+#
+# ==============================================================================
+    Barre = FACT(statut='f',max='**',
+        regles = (UN_PARMI('Maille','GroupeMailles'),),
+        Maille   = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+        GroupeMailles = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+        Section  = SIMP(statut='o',typ='TXM',into=("GENERALE","RECTANGLE","CERCLE") ),
+        b_generale = BLOC(condition = "Section=='GENERALE'",
+            regles = (PRESENT_ABSENT('Table','Cara'),
+                      PRESENT_PRESENT('Table','Nom'),
+                      PRESENT_PRESENT('Cara','Valeur')),
+            Table = SIMP(statut='f',typ=table_sdaster),
+            Nom    = SIMP(statut='f',typ='TXM',validators=LongStr(1,24) ),
+            Cara       = SIMP(statut='f',typ='TXM',into=("A",) ),
+            Valeur       = SIMP(statut='f',typ='R',min=1,max=1 ),
+        ),
+        b_rectangle = BLOC(condition = "Section=='RECTANGLE'",
+            Cara = SIMP(statut='o',typ='TXM', min=1, max=4,
+                validators = [NoRepeat(),
+                              OrVal( [AndVal( [Compulsory(['H']),Absent(['HY','HZ','EPY','EPZ'])] ),
+                                      AndVal( [Compulsory(['HY','HZ']),Together(['EPY','EPZ']),Absent(['H','EP'])] )] )],
+                into=("H","EP","HZ","HY","EPY","EPZ"), ),
+            Valeur = SIMP(statut='o',typ='R',min=1,max=4 ), ),
+        b_cercle = BLOC(condition = "Section=='CERCLE'",
+            Cara = SIMP(statut='o',typ='TXM',validators=[NoRepeat(),Compulsory(['R'])],min=1,max=2,into=("R","EP") ),
+            Valeur = SIMP(statut='o',typ='R',min=1,max=2 ), ),
+    ),
+#
+# ==============================================================================
+    Discret = FACT(statut='f',max='**',
+        REPERE    = SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
+        AMOR_HYST = SIMP(statut='f',typ='R' ),
+        SYME      = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),),
+        b_SYME_OUI = BLOC(condition="SYME=='OUI'",
+            fr=tr("SYMETRIQUE: Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds"),
+            Cara = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,defaut="None",
+            into = ("K_T_D_N", "K_T_D_L", "K_TR_D_N", "K_TR_D_L", "K_T_N", "K_T_L", "K_TR_N", "K_TR_L",
+                    "M_T_D_N", "M_T_D_L", "M_TR_D_N", "M_TR_D_L", "M_T_N", "M_T_L", "M_TR_N", "M_TR_L",
+                    "A_T_D_N", "A_T_D_L", "A_TR_D_N", "A_TR_D_L", "A_T_N", "A_T_L", "A_TR_N", "A_TR_L",),),
+            #  Affection des caractéristiques de RIGIDITE/AMORTISSEMENT/MASSE
+            b_AK_T_D_N = BLOC(condition = "((Cara=='K_T_D_N')or(Cara=='A_T_D_N'))",
+                fr       = tr("Noeud: 3 valeurs (triangulaire supérieure par colonne)"),
+                regles   = (UN_PARMI('Maille','GroupeMailles','Noeud','GROUP_NO'),),
+                Noeud    = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+                GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+                Maille   = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+                GroupeMailles = SIMP(statut='f',typ=grma,validators=NoRepeat(),homo='SansOrdreNiDoublon',max='**'),
+                Valeur     = SIMP(statut='o',typ='R',min=3 ,max=3 ),),
+        ),
+    ),
+#
+# ==============================================================================
+    Discret_2D = FACT(statut='f',max='**',
+        REPERE    = SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
+        AMOR_HYST = SIMP(statut='f',typ='R' ),
+        SYME      = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),),
+        ),
+)
diff --git a/OldCodes/MED/cata_diapo.py b/OldCodes/MED/cata_diapo.py
new file mode 100644 (file)
index 0000000..0c5268e
--- /dev/null
@@ -0,0 +1,48 @@
+# coding: utf-8
+
+from Accas import *
+class Tuple:
+   def __init__(self,ntuple):
+     self.ntuple=ntuple
+
+   def __convert__(self,valeur):
+     import types
+     if type(valeur) == types.StringType:
+       return None
+     if len(valeur) != self.ntuple:
+       return None
+     return valeur
+
+   def info(self):
+     return "Tuple de %s elements" % self.ntuple
+
+   __repr__=info
+   __str__=info
+
+
+
+class forme ( ASSD ) : pass
+
+JdC = JDC_CATA (code = 'MED',
+                execmodul = None,
+                )
+
+FORME_GEOMETRIQUE=OPER(nom='FORME_GEOMETRIQUE',sd_prod =forme ,op=None,
+           Forme=SIMP(statut="o",typ='TXM',into=[ 'carre', 'cercle', 'triangle' ],defaut='carre'),
+           bloc_pour_Carre =  BLOC (condition = "Forme=='carre'",
+              Cote=SIMP(statut="o",typ='I'), ) , # fin bloc_pour_carre
+           bloc_pour_cercle =  BLOC (condition ="Forme=='cercle'",
+              rayon=SIMP(statut="o",typ='I'), ) , # fin bloc_pour_cercle
+
+           DE_NOMBREUSES_WIDGETS= FACT(statut="o",
+                Stop_Criteria = SIMP(statut = 'o',typ = Tuple(3),validators = VerifTypeTuple(('R','R','R'))),
+                Fichier_Med = SIMP( statut = 'o', typ = ('Fichier', 'Med Files (*.med);;All Files (*)',),),
+                ListeDeChoixPlusGrande=SIMP(statut="o",typ='TXM',into=['a','b,','c','d','e','f','g','h'],
+                homo="SansOrdreNiDoublon",),
+                Un_Parametre_Facultatif=SIMP(statut="f",typ='TXM')
+                
+           ),
+          Couleur=SIMP(statut = 'f',typ='TXM'),
+          Matiere=SIMP(statut = 'f',typ='TXM'),
+);
+
diff --git a/OldCodes/MED/cata_med.py b/OldCodes/MED/cata_med.py
new file mode 100644 (file)
index 0000000..4640f81
--- /dev/null
@@ -0,0 +1,29 @@
+# coding: utf-8
+
+from Accas import *
+
+JdC = JDC_CATA (code = 'MED',
+                execmodul = None,
+                )
+FAS=PROC(nom='FAS',op=None,
+    FAMILY_MESH_NAME_REF = FACT(statut='o', max='**',
+
+                NAME=SIMP(statut="o",typ='TXM'),
+                ELEM=FACT(statut="f", max="**",
+                        NUM=SIMP(statut="o",typ='TXM',),
+                        NAME=SIMP(statut="o",typ='TXM',),
+                        ATT=FACT(statut="f",
+                                NBR=SIMP(statut="o", max=1   , typ = 'I'),
+                                DES=SIMP(statut="o", max="**", typ = 'TXM'),
+                                IDE=SIMP(statut="o", max="**", typ = 'I'),
+                                VAL=SIMP(statut="o", max="**", typ = 'I'),
+                                ),
+                        GRO=FACT(statut="f",
+                                NBR=SIMP(statut="o", max=1   , typ = 'I'),
+                                NOM=SIMP(statut="o", max="**", typ='TXM'),
+                                ),
+                ),
+        ),
+);
+
+
diff --git a/OldCodes/MED/configuration_MED.py b/OldCodes/MED/configuration_MED.py
new file mode 100644 (file)
index 0000000..4ab64b8
--- /dev/null
@@ -0,0 +1,43 @@
+# -*- coding: utf-8 -*-\r
+#            CONFIGURATION MANAGEMENT OF EDF VERSION\r
+# ======================================================================\r
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG\r
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY\r
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY\r
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR\r
+# (AT YOUR OPTION) ANY LATER VERSION.\r
+#\r
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT\r
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF\r
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU\r
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.\r
+#\r
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE\r
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,\r
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.\r
+#\r
+#\r
+# ======================================================================\r
+"""\r
+    Ce module sert pour charger les paramètres de configuration d'EFICAS\r
+"""\r
+# Modules Python\r
+from InterfaceQT4 import configuration\r
+import os\r
+\r
+\r
+class CONFIG(configuration.CONFIG_BASE):\r
+\r
+  #-----------------------------------\r
+  def __init__(self,appli,repIni):\r
+  #-----------------------------------\r
+\r
+      self.labels_user=['catalogues','lang']\r
+      self.labels_eficas=['lang','rep_cata','catalogues']\r
+\r
+      configuration.CONFIG_BASE.__init__(self,appli,'.Eficas_monCode')\r
+\r
+\r
+def make_config(appli,rep):\r
+    return CONFIG(appli,rep)\r
+\r
diff --git a/OldCodes/MED/images/essaiAster.png b/OldCodes/MED/images/essaiAster.png
new file mode 100644 (file)
index 0000000..d01c5de
Binary files /dev/null and b/OldCodes/MED/images/essaiAster.png differ
diff --git a/OldCodes/MED/items_integer_space.txt b/OldCodes/MED/items_integer_space.txt
new file mode 100644 (file)
index 0000000..8e17136
--- /dev/null
@@ -0,0 +1,2 @@
+"4" "3" "2" "1" 
+"4" "5" "6" "7"
\ No newline at end of file
diff --git a/OldCodes/MED/monCode_qtEficas.py b/OldCodes/MED/monCode_qtEficas.py
new file mode 100755 (executable)
index 0000000..b1254f2
--- /dev/null
@@ -0,0 +1,33 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2012   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+"""
+   Ce module sert a lancer EFICAS configure pour Code_Aster
+"""
+# Modules Python
+# Modules Eficas
+
+import sys,os
+sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..'))
+
+from PyQt4.QtCore import *
+import prefs
+from InterfaceQT4 import eficas_go
+eficas_go.lance_eficas(code=prefs.code)
diff --git a/OldCodes/MED/prefs.py b/OldCodes/MED/prefs.py
new file mode 100644 (file)
index 0000000..2e9d0a2
--- /dev/null
@@ -0,0 +1,22 @@
+# Copyright (C) 2007-2012   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+code="MED" 
+import sys, os
+if os.path.dirname(os.path.abspath(__file__)) not in sys.path :
+   sys.path.insert(0,os.path.dirname(os.path.abspath(__file__)))
diff --git a/OldCodes/MED/prefs_MED.py b/OldCodes/MED/prefs_MED.py
new file mode 100644 (file)
index 0000000..220dc3f
--- /dev/null
@@ -0,0 +1,48 @@
+# -*- coding: utf-8 -*-
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+
+import os,sys
+# repIni sert a localiser le fichier editeur.ini
+# Obligatoire
+repIni=os.path.dirname(os.path.abspath(__file__))
+INSTALLDIR=os.path.join(repIni,'..')
+sys.path[:0]=[INSTALLDIR]
+
+
+# lang indique la langue utilisee pour les chaines d'aide : fr ou ang
+lang='en'
+
+# Codage des strings qui accepte les accents (en remplacement de 'ascii')
+encoding='iso-8859-1'
+docPath=repIni
+
+#
+catalogues=(
+   #('med','med',os.path.join(repIni,'cata_med.py'),'dico','python'), 
+   ('med','med',os.path.join(repIni,'CataAZ.py'),'python','python'), 
+)
+
+simpleClic=True
+nombreDeBoutonParLigne = 4
+dicoImages={
+'CREEOBJET' : os.path.join(repIni,'images/essaiAster.png')
+}
+                                                                 
diff --git a/OldCodes/MED/prefs_monCode.py b/OldCodes/MED/prefs_monCode.py
new file mode 100644 (file)
index 0000000..b9e513f
--- /dev/null
@@ -0,0 +1,68 @@
+# -*- coding: utf-8 -*-
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+
+import os,sys
+# repIni sert a localiser le fichier editeur.ini
+# Obligatoire
+repIni=os.path.dirname(os.path.abspath(__file__))
+INSTALLDIR=os.path.join(repIni,'..')
+sys.path[:0]=[INSTALLDIR]
+
+
+# lang indique la langue utilisee pour les chaines d'aide : fr ou ang
+lang='en'
+
+# Codage des strings qui accepte les accents (en remplacement de 'ascii')
+encoding='iso-8859-1'
+docPath=repIni
+
+#
+catalogues=(
+   ('monCode','med',os.path.join(repIni,'CataAZ.py'),'python','python'), 
+#   ('monCode','53036',os.path.join(repIni,'Elementary_Lists_53036_Cata.py'),'dico','python'), 
+#   ('monCode','53033',os.path.join(repIni,'Tuples_Cata.py'),'dico','python'), 
+#   ('monCode','53031',os.path.join(repIni,'Tuples_Cata.py'),'dico','python'), 
+#   ('monCode','53030',os.path.join(repIni,'Tuples_Cata.py'),'dico','python'), 
+#   ('monCode','53020',os.path.join(repIni,'Nested_Cond_52945_Cata.py'),'dico','python'), 
+#   ('monCode','53013',os.path.join(repIni,'Elementary_Lists_53013_Cata.py'),'dico','python'), 
+#   ('monCode','53000',os.path.join(repIni,'Elementary_Lists_53030_Cata.py'),'dico','python'), 
+#   ('monCode','52996',os.path.join(repIni,'Elementary_Lists_52996_Cata.py'),'dico','python'), 
+#   ('monCode','52992',os.path.join(repIni,'Many_Concepts_52992_Cata.py'),'dico','python'), 
+#   ('monCode','52989',os.path.join(repIni,'Many_Concepts_52989_Cata.py'),'dico','python'), 
+#   ('monCode','52988',os.path.join(repIni,'Many_Concepts_52988_Cata.py'),'dico','python'), 
+#   ('monCode','52985',os.path.join(repIni,'fin_52985_Cata.py'),'dico','python'), 
+#   ('monCode','52983',os.path.join(repIni,'Many_Concepts_52983_Cata.py'),'dico','python'), 
+#   ('monCode','52975',os.path.join(repIni,'Separate_Blocks_52975_Cata.py'),'dico','python'), 
+#   ('monCode','52972',os.path.join(repIni,'Separate_Blocks_52972_Cata.py'),'dico','python'), 
+#   ('monCode','52958',os.path.join(repIni,'Separate_Blocks_52958_Cata.py'),'dico','python'), 
+#   ('monCode','52952',os.path.join(repIni,'Nested_Cond_52952_Cata.py'),'dico','python'), 
+#   ('monCode','52949',os.path.join(repIni,'Nested_Cond_52949_Cata.py'),'dico','python'), 
+#   ('monCode','52947',os.path.join(repIni,'Nested_Cond_52947_Cata.py'),'dico','python'), 
+#   ('monCode','52946',os.path.join(repIni,'Nested_Cond_52946_Cata.py'),'dico','python'), 
+#   ('monCode','52945',os.path.join(repIni,'Nested_Cond_52945_Cata.py'),'dico','python'), 
+#   ('monCode','Global',os.path.join(repIni,'Global_Condition_Cata.py'),'dico','python'),
+## resolu ('monCode','52948',os.path.join(repIni,'Nested_Cond_52948_Cata.py'),'dico','python'),
+#  pb d afffichage des optionnels ('monCode','52963',os.path.join(repIni,'Separate_Blocks_52963_Cata.py'),'dico','python'),
+#  pb d afffichage des optionnels ('monCode','52966',os.path.join(repIni,'Separate_Blocks_52966_Cata.py'),'dico','python'),
+
+#   ('monCode','test',os.path.join(repIni,'monCode_Cata1.py'),'dico','python'),
+)
+
diff --git a/OldCodes/MED/properties.py b/OldCodes/MED/properties.py
new file mode 100644 (file)
index 0000000..1d328a4
--- /dev/null
@@ -0,0 +1,24 @@
+#@ MODIF properties Accas DATE 11/06/2008 AUTEUR aster M.ADMINISTRATEUR
+# RESPONSABLE D6BHHHH J-P.LEFEBVRE
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
+# (AT YOUR OPTION) ANY LATER VERSION.                                 
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
+# ======================================================================
+#     IDENTIFICATION DU GESTIONNAIRE DE COMMANDE ACCAS A PARTIR
+#     DE LA VERSION DU CODE_ASTER ASSOCIE
+#----------------------------------------------------------------------
+version = "1.2"
+date = "25/05/2010"
+exploit = False
diff --git a/OldCodes/MED/qtEficas_AZ.py b/OldCodes/MED/qtEficas_AZ.py
new file mode 100755 (executable)
index 0000000..f49b9bc
--- /dev/null
@@ -0,0 +1,32 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2012   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+"""
+   Ce module sert a lancer EFICAS configure pour Code_Aster
+"""
+# Modules Python
+# Modules Eficas
+
+import sys,os
+sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..'))
+
+import prefs
+from InterfaceQT4 import eficas_go
+eficas_go.lance_eficas(code=prefs.code)
diff --git a/OldCodes/MED/qtEficas_Med.py b/OldCodes/MED/qtEficas_Med.py
new file mode 100755 (executable)
index 0000000..f49b9bc
--- /dev/null
@@ -0,0 +1,32 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2012   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+"""
+   Ce module sert a lancer EFICAS configure pour Code_Aster
+"""
+# Modules Python
+# Modules Eficas
+
+import sys,os
+sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..'))
+
+import prefs
+from InterfaceQT4 import eficas_go
+eficas_go.lance_eficas(code=prefs.code)
diff --git a/OldCodes/MED/typescript b/OldCodes/MED/typescript
new file mode 100644 (file)
index 0000000..f070be1
--- /dev/null
@@ -0,0 +1,34 @@
+Le script a débuté sur mar. 29 nov. 2016 15:37:06 CET
+\e]0;A96028@dsp0780471: ~/QT5GitEficasTravail/eficas/monCode\aA96028@dsp0780471:~/QT5GitEficasTravail/eficas/monCode$ ./qtEficas_Med.py /tmp/a.comm\b\b\b\b\b\boo.comm\r
+eficas_en /home/A96028/QT5GitEficasTravail/eficas/monCode/../Extensions/../UiQT4\r
+()\r
+{'typ': 'TXM', 'statut': 'o'}\r
+()\r
+{'typ': 'TXM', 'statut': 'o'}\r
+()\r
+{'typ': 'TXM', 'statut': 'o'}\r
+()\r
+{'max': 1, 'typ': 'I', 'statut': 'o'}\r
+()\r
+{'max': '**', 'typ': 'TXM', 'statut': 'o'}\r
+()\r
+{'max': '**', 'typ': 'I', 'statut': 'o'}\r
+()\r
+{'max': '**', 'typ': 'I', 'statut': 'o'}\r
+()\r
+{'NBR': <Accas.A_SIMP.SIMP instance at 0x7efbe6617b90>, 'IDE': <Accas.A_SIMP.SIMP instance at 0x7efbe6617c20>, 'DES': <Accas.A_SIMP.SIMP instance at 0x7efbe6617bd8>, 'VAL': <Accas.A_SIMP.SIMP instance at 0x7efbe6617c68>, 'statut': 'f'}\r
+()\r
+{'max': 1, 'typ': 'I', 'statut': 'o'}\r
+()\r
+{'max': '**', 'typ': 'TXM', 'statut': 'o'}\r
+()\r
+{'NOM': <Accas.A_SIMP.SIMP instance at 0x7efbe6617e18>, 'NBR': <Accas.A_SIMP.SIMP instance at 0x7efbe6617dd0>, 'statut': 'f'}\r
+()\r
+{'NAME': <Accas.A_SIMP.SIMP instance at 0x7efbe6617b48>, 'statut': 'f', 'max': '**', 'ATT': <Accas.A_FACT.FACT instance at 0x7efbe6617cb0>, 'NUM': <Accas.A_SIMP.SIMP instance at 0x7efbe6617b00>, 'GRO': <Accas.A_FACT.FACT instance at 0x7efbe6617e60>}\r
+()\r
+{'NAME': <Accas.A_SIMP.SIMP instance at 0x7efbe6617ab8>, 'ELEM': <Accas.A_FACT.FACT instance at 0x7efbe6617ea8>, 'statut': 'o'}\r
+()\r
+{'nom': 'FAS', 'FAMILY_MESH_NAME_REF': <Accas.A_FACT.FACT instance at 0x7efbe6617ef0>, 'op': None}\r
+\e]0;A96028@dsp0780471: ~/QT5GitEficasTravail/eficas/monCode\aA96028@dsp0780471:~/QT5GitEficasTravail/eficas/monCode$ exit\r
+
+Script terminé sur mar. 29 nov. 2016 15:37:13 CET
diff --git a/OldCodes/Med/Cata_MED_FAM.xml b/OldCodes/Med/Cata_MED_FAM.xml
new file mode 100755 (executable)
index 0000000..75acb49
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<cata xmlns="http://chercheurs.edf.com/logiciels/efficas" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://chercheurs.edf.com/logiciels/efficas file:///Z:/home_fayolle/MED_SVN/PASCALE/XSD/Model%20Efficas%20(1.1)%20%20v5.xsd">\r
+<commandes>\r
+<PROC xmlns:efficas="http://chercheurs.edf.com/logiciels/efficas" efficas:nom="FAS">\r
+  <efficas:FACT efficas:nom="FAMILY_MESH_NAME_REF" efficas:statut="o" efficas:min_occurs="1" efficas:max_occurs="-1">\r
+               <SIMP efficas:nom="NAME" efficas:statut="o"><typeAttendu>TXM</typeAttendu></SIMP>\r
+               <efficas:FACT efficas:nom="ELEM" efficas:statut="f"  efficas:min_occurs="1" efficas:max_occurs="-1">\r
+<!--                <efficas:regles>\r
+                       --><!-- Ajouter des contraintes de vérification de la présence ATT et GRO --><!--\r
+                               <efficas:PRESENT_PRESENT>ATT GRO</efficas:PRESENT_PRESENT>\r
+                    </efficas:regles>-->\r
+                       <efficas:SIMP efficas:nom="NUM" efficas:statut="o" efficas:max_occurs="1"><typeAttendu>TXM</typeAttendu></efficas:SIMP>\r
+                       <efficas:SIMP efficas:nom="NAME" efficas:statut="o" efficas:max_occurs="1"><typeAttendu>TXM</typeAttendu></efficas:SIMP>\r
+                       <efficas:FACT efficas:nom="ATT" efficas:statut="f"  efficas:max_occurs="1">\r
+                               <SIMP efficas:nom="NBR" efficas:statut="o" efficas:max_occurs="1"><typeAttendu>I</typeAttendu></SIMP>\r
+                               <SIMP efficas:nom="DES" efficas:statut="o" efficas:max_occurs="-1"><typeAttendu>TXM</typeAttendu></SIMP>\r
+                               <SIMP efficas:nom="IDE" efficas:statut="o" efficas:max_occurs="-1"><typeAttendu>I</typeAttendu></SIMP>\r
+                               <SIMP efficas:nom="VAL" efficas:statut="o" efficas:max_occurs="-1"><typeAttendu>I</typeAttendu></SIMP>\r
+                       </efficas:FACT>\r
+                       <efficas:FACT efficas:nom="GRO" efficas:statut="f" efficas:max_occurs="1">\r
+                               <SIMP efficas:nom="NBR" efficas:statut="o" efficas:max_occurs="1"><typeAttendu>I</typeAttendu></SIMP>\r
+                           <SIMP efficas:nom="NOM" efficas:statut="o" efficas:max_occurs="-1"><typeAttendu>TXM</typeAttendu></SIMP>\r
+                       </efficas:FACT>\r
+               </efficas:FACT>\r
+       </efficas:FACT>\r
+</PROC>\r
+</commandes>\r
+</cata>\r
diff --git a/OldCodes/Med/Cata_MED_FAM.xml.mini b/OldCodes/Med/Cata_MED_FAM.xml.mini
new file mode 100755 (executable)
index 0000000..75acb49
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<cata xmlns="http://chercheurs.edf.com/logiciels/efficas" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://chercheurs.edf.com/logiciels/efficas file:///Z:/home_fayolle/MED_SVN/PASCALE/XSD/Model%20Efficas%20(1.1)%20%20v5.xsd">\r
+<commandes>\r
+<PROC xmlns:efficas="http://chercheurs.edf.com/logiciels/efficas" efficas:nom="FAS">\r
+  <efficas:FACT efficas:nom="FAMILY_MESH_NAME_REF" efficas:statut="o" efficas:min_occurs="1" efficas:max_occurs="-1">\r
+               <SIMP efficas:nom="NAME" efficas:statut="o"><typeAttendu>TXM</typeAttendu></SIMP>\r
+               <efficas:FACT efficas:nom="ELEM" efficas:statut="f"  efficas:min_occurs="1" efficas:max_occurs="-1">\r
+<!--                <efficas:regles>\r
+                       --><!-- Ajouter des contraintes de vérification de la présence ATT et GRO --><!--\r
+                               <efficas:PRESENT_PRESENT>ATT GRO</efficas:PRESENT_PRESENT>\r
+                    </efficas:regles>-->\r
+                       <efficas:SIMP efficas:nom="NUM" efficas:statut="o" efficas:max_occurs="1"><typeAttendu>TXM</typeAttendu></efficas:SIMP>\r
+                       <efficas:SIMP efficas:nom="NAME" efficas:statut="o" efficas:max_occurs="1"><typeAttendu>TXM</typeAttendu></efficas:SIMP>\r
+                       <efficas:FACT efficas:nom="ATT" efficas:statut="f"  efficas:max_occurs="1">\r
+                               <SIMP efficas:nom="NBR" efficas:statut="o" efficas:max_occurs="1"><typeAttendu>I</typeAttendu></SIMP>\r
+                               <SIMP efficas:nom="DES" efficas:statut="o" efficas:max_occurs="-1"><typeAttendu>TXM</typeAttendu></SIMP>\r
+                               <SIMP efficas:nom="IDE" efficas:statut="o" efficas:max_occurs="-1"><typeAttendu>I</typeAttendu></SIMP>\r
+                               <SIMP efficas:nom="VAL" efficas:statut="o" efficas:max_occurs="-1"><typeAttendu>I</typeAttendu></SIMP>\r
+                       </efficas:FACT>\r
+                       <efficas:FACT efficas:nom="GRO" efficas:statut="f" efficas:max_occurs="1">\r
+                               <SIMP efficas:nom="NBR" efficas:statut="o" efficas:max_occurs="1"><typeAttendu>I</typeAttendu></SIMP>\r
+                           <SIMP efficas:nom="NOM" efficas:statut="o" efficas:max_occurs="-1"><typeAttendu>TXM</typeAttendu></SIMP>\r
+                       </efficas:FACT>\r
+               </efficas:FACT>\r
+       </efficas:FACT>\r
+</PROC>\r
+</commandes>\r
+</cata>\r
diff --git a/OldCodes/Med/Cata_MED_FAM.xml.origin b/OldCodes/Med/Cata_MED_FAM.xml.origin
new file mode 100755 (executable)
index 0000000..75acb49
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<cata xmlns="http://chercheurs.edf.com/logiciels/efficas" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://chercheurs.edf.com/logiciels/efficas file:///Z:/home_fayolle/MED_SVN/PASCALE/XSD/Model%20Efficas%20(1.1)%20%20v5.xsd">\r
+<commandes>\r
+<PROC xmlns:efficas="http://chercheurs.edf.com/logiciels/efficas" efficas:nom="FAS">\r
+  <efficas:FACT efficas:nom="FAMILY_MESH_NAME_REF" efficas:statut="o" efficas:min_occurs="1" efficas:max_occurs="-1">\r
+               <SIMP efficas:nom="NAME" efficas:statut="o"><typeAttendu>TXM</typeAttendu></SIMP>\r
+               <efficas:FACT efficas:nom="ELEM" efficas:statut="f"  efficas:min_occurs="1" efficas:max_occurs="-1">\r
+<!--                <efficas:regles>\r
+                       --><!-- Ajouter des contraintes de vérification de la présence ATT et GRO --><!--\r
+                               <efficas:PRESENT_PRESENT>ATT GRO</efficas:PRESENT_PRESENT>\r
+                    </efficas:regles>-->\r
+                       <efficas:SIMP efficas:nom="NUM" efficas:statut="o" efficas:max_occurs="1"><typeAttendu>TXM</typeAttendu></efficas:SIMP>\r
+                       <efficas:SIMP efficas:nom="NAME" efficas:statut="o" efficas:max_occurs="1"><typeAttendu>TXM</typeAttendu></efficas:SIMP>\r
+                       <efficas:FACT efficas:nom="ATT" efficas:statut="f"  efficas:max_occurs="1">\r
+                               <SIMP efficas:nom="NBR" efficas:statut="o" efficas:max_occurs="1"><typeAttendu>I</typeAttendu></SIMP>\r
+                               <SIMP efficas:nom="DES" efficas:statut="o" efficas:max_occurs="-1"><typeAttendu>TXM</typeAttendu></SIMP>\r
+                               <SIMP efficas:nom="IDE" efficas:statut="o" efficas:max_occurs="-1"><typeAttendu>I</typeAttendu></SIMP>\r
+                               <SIMP efficas:nom="VAL" efficas:statut="o" efficas:max_occurs="-1"><typeAttendu>I</typeAttendu></SIMP>\r
+                       </efficas:FACT>\r
+                       <efficas:FACT efficas:nom="GRO" efficas:statut="f" efficas:max_occurs="1">\r
+                               <SIMP efficas:nom="NBR" efficas:statut="o" efficas:max_occurs="1"><typeAttendu>I</typeAttendu></SIMP>\r
+                           <SIMP efficas:nom="NOM" efficas:statut="o" efficas:max_occurs="-1"><typeAttendu>TXM</typeAttendu></SIMP>\r
+                       </efficas:FACT>\r
+               </efficas:FACT>\r
+       </efficas:FACT>\r
+</PROC>\r
+</commandes>\r
+</cata>\r
diff --git a/OldCodes/Med/README.txt b/OldCodes/Med/README.txt
new file mode 100644 (file)
index 0000000..a167a89
--- /dev/null
@@ -0,0 +1 @@
+pyxbgen -u model.xsd -m efficas --write-for-customization
diff --git a/OldCodes/Med/aide1 b/OldCodes/Med/aide1
new file mode 100644 (file)
index 0000000..96187ef
--- /dev/null
@@ -0,0 +1,256 @@
+Factory 
+
+OPER 
+
+PROC 
+
+_Abstract 
+
+_AddElement 
+
+_AlternativeConstructor 
+
+_AttributeMap 
+
+_AttributeWildcard 
+
+_Automaton 
+
+_CT_ELEMENT_ONLY 
+
+_CT_EMPTY 
+
+_CT_MIXED 
+
+_CT_SIMPLE 
+
+_CompatibleValue 
+
+_ContentTypeTag 
+
+_DynamicCreate 
+
+_DynamicCreate_mixin__AlternativeConstructorAttribute 
+
+_DynamicCreate_mixin__SupersedingClassAttribute 
+
+_ElementBindingDeclForName 
+
+_ElementMap 
+
+_ExpandedName 
+
+_GetValidationConfig 
+
+_HasWildcardElement 
+
+_IsMixed 
+
+_IsSimpleTypeContent 
+
+_IsUrType 
+
+_Locatable_mixin__location 
+
+_Name 
+
+_PerformValidation 
+
+_PreFactory_vx 
+
+_PyXBFactoryKeywords 
+
+_RequireXSIType 
+
+_ReservedSymbols 
+
+_SetAlternativeConstructor 
+
+_SetSupersedingClass 
+
+_SetValidationConfig 
+
+_SupersedingClass 
+
+_T_commandes__OPER 
+
+_T_commandes__PROC 
+
+_TypeBinding_mixin__AttributesFromDOM 
+
+_TypeBinding_mixin__WarnedUnassociatedElement 
+
+_TypeBinding_mixin__checkNilCtor 
+
+_TypeBinding_mixin__constructedWithValue 
+
+_TypeBinding_mixin__element 
+
+_TypeBinding_mixin__getValidationConfig 
+
+_TypeBinding_mixin__namespaceContext 
+
+_TypeBinding_mixin__xsiNil 
+
+_TypeDefinition 
+
+_UseForTag 
+
+_XSDLocation 
+
+__class__ 
+
+__delattr__ 
+
+__dict__ 
+
+__doc__ 
+
+__format__ 
+
+__getattribute__ 
+
+__hash__ 
+
+__httpchercheurs_edf_comlogicielsefficas_T_commandes_httpchercheurs_edf_comlogicielsefficasOPER 
+
+__httpchercheurs_edf_comlogicielsefficas_T_commandes_httpchercheurs_edf_comlogicielsefficasPROC 
+
+__init__ 
+
+__module__ 
+
+__new__ 
+
+__reduce__ 
+
+__reduce_ex__ 
+
+__repr__ 
+
+__setattr__ 
+
+__sizeof__ 
+
+__str__ 
+
+__subclasshook__ 
+
+__weakref__ 
+
+_addContent 
+
+_appendWildcardElement 
+
+_automatonConfiguration 
+
+_complexTypeDefinition__NeedWarnOnContent 
+
+_complexTypeDefinition__WarnOnContent 
+
+_complexTypeDefinition__automatonConfiguration 
+
+_complexTypeDefinition__childrenForDOM 
+
+_complexTypeDefinition__content 
+
+_complexTypeDefinition__setContent 
+
+_complexTypeDefinition__wildcardAttributeMap 
+
+_complexTypeDefinition__wildcardElements 
+
+_constructedWithValue 
+
+_description 
+
+_diagnosticName 
+
+_element 
+
+_finalizeContentModel 
+
+_isNil 
+
+_location 
+
+_namespaceContext 
+
+_performValidation 
+
+_postDOMValidate 
+
+_postFactory_vx 
+
+_resetAutomaton 
+
+_resetContent 
+
+_setAttribute 
+
+_setAttributesFromKeywordsAndDOM 
+
+_setDOMFromAttributes 
+
+_setElement 
+
+_setIsNil 
+
+_setLocation 
+
+_setNamespaceContext 
+
+_setValidationConfig 
+
+_substitutesFor 
+
+_symbolSet 
+
+_toDOM_csc 
+
+_validateAttributes 
+
+_validateBinding_vx 
+
+_validatedChildren 
+
+_validationConfig 
+
+_validationConfig_ 
+
+append 
+
+content 
+
+extend 
+
+orderedContent 
+
+reset 
+
+toDOM 
+
+toxml 
+
+validateBinding 
+
+value 
+
+wildcardAttributeMap 
+
+wildcardElements 
+
+xsdConstraintsOK 
+
+_______________________
+je passe ds CreerAccas
+PlageValeur
+ValeurDef
+doc
+portee
+statut
+o
+typeAttendu
+TXM
+validators
+_______________________
diff --git a/OldCodes/Med/efficas.py b/OldCodes/Med/efficas.py
new file mode 100644 (file)
index 0000000..3304e8a
--- /dev/null
@@ -0,0 +1,2 @@
+# -*- coding: utf-8 -*-
+from raw.efficas import *
diff --git a/OldCodes/Med/model.xsd b/OldCodes/Med/model.xsd
new file mode 100755 (executable)
index 0000000..53fe25a
--- /dev/null
@@ -0,0 +1,595 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!-- edited with XMLSpy v2014 rel. 2 (x64) (http://www.altova.com) by BC (ED) -->\r
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" xmlns="http://chercheurs.edf.com/logiciels/efficas" xmlns:efficas="http://chercheurs.edf.com/logiciels/efficas" xmlns:altova="http://www.altova.com/xml-schema-extensions" targetNamespace="http://chercheurs.edf.com/logiciels/efficas" elementFormDefault="qualified" attributeFormDefault="unqualified" version="0" vc:minVersion="1.1">\r
+       <xs:element name="doc" type="T_doc"/>\r
+       <xs:element name="cata" type="T_cata"/>\r
+       <xs:element name="regles" type="T_regles"/>\r
+       <xs:element name="typeCree" type="T_classe_utilisateur"/>\r
+       <xs:element name="ValeurDef" type="T_typeAttendu"/>\r
+       <xs:element name="ValeurSugg" type="T_typeAttendu"/>\r
+       <xs:element name="fonction_utilisateur" type="T_fonction_python"/>\r
+       <xs:element name="commandes" type="T_commandes">\r
+               <xs:unique name="Uniq_Command">\r
+                       <xs:selector xpath="*"/>\r
+                       <xs:field xpath="@efficas:nom"/>\r
+               </xs:unique>\r
+               <xs:key name="Uniq_Name_In_Oper">\r
+                       <xs:annotation>\r
+                               <xs:documentation>SIMP devrait être selectionné que si .//SIMP[portee='Global']</xs:documentation>\r
+                       </xs:annotation>\r
+                       <xs:selector xpath="./OPER/BLOC |./OPER/FACT|./OPER/SIMP"/>\r
+                       <xs:field xpath="@efficas:nom"/>\r
+               </xs:key>\r
+               <xs:keyref name="Ref_A_Name_In_Oper" refer="Uniq_Name_In_Oper">\r
+                       <xs:selector xpath="./OPER/regles"/>\r
+                       <xs:field xpath="EXCLUS"/>\r
+               </xs:keyref>\r
+               <xs:key name="Uniq_Name_In_Proc">\r
+                       <xs:annotation>\r
+                               <xs:documentation>SIMP devrait être selectionné que si .//SIMP[portee='Global']</xs:documentation>\r
+                       </xs:annotation>\r
+                       <xs:selector xpath="./PROC/BLOC | ./PROC/FACT| ./PROC/SIMP"/>\r
+                       <xs:field xpath="@efficas:nom"/>\r
+               </xs:key>\r
+               <xs:keyref name="Ref_A_Name_In_Proc" refer="Uniq_Name_In_Proc">\r
+                       <xs:selector xpath="./PROC/regles"/>\r
+                       <xs:field xpath="EXCLUS"/>\r
+               </xs:keyref>\r
+       </xs:element>\r
+       <xs:element name="validators" type="T_validators"/>\r
+       <xs:element name="PlageValeur" type="T_PlageValeur"/>\r
+       <xs:element name="typeAttendu" type="T_name"/>\r
+       <xs:element name="classeUtilisateurName" type="T_classe_utilisateur_username" abstract="true" substitutionGroup="typeAttendu"/>\r
+       <xs:element name="SIMP" type="T_SIMP"/>\r
+       <xs:element name="portee" type="T_portee" default="None"/>\r
+       <xs:element name="condition" type="T_fonction_python"/>\r
+       <xs:element name="borne_sup" type="T_typeAttendu"/>\r
+       <xs:element name="borne_inf" type="T_typeAttendu"/>\r
+       <!--    <xs:element name="into" type="T_into"/>-->\r
+       <xs:element name="into" type="T_into"/>\r
+       <!--    <xs:element name="into_plus_fonction" type="T_into" abstract="true" substitutionGroup="into"/>-->\r
+       <xs:attribute name="nom" type="AT_nom"/>\r
+       <xs:attribute name="ag" type="AT_ag"/>\r
+       <xs:attribute name="fr" type="xs:string"/>\r
+       <xs:attribute name="ang" type="xs:string"/>\r
+       <xs:attribute name="docu" type="AT_docu"/>\r
+       <xs:attribute name="valeur_sugg" type="AT_valeur_sugg"/>\r
+       <xs:attribute name="statut" type="AT_statut" default="o"/>\r
+       <xs:attribute name="max_occurs" type="AT_max_occurs"/>\r
+       <xs:attribute name="min_occurs" type="AT_min_occurs"/>\r
+       <xs:attribute name="subroutine" type="AT_subroutine" default="None"/>\r
+       <xs:complexType name="T_doc">\r
+               <xs:attribute ref="fr" use="optional"/>\r
+               <xs:attribute ref="ang"/>\r
+               <xs:attribute ref="docu"/>\r
+       </xs:complexType>\r
+       <xs:complexType name="T_cata">\r
+               <xs:sequence>\r
+                       <xs:element ref="commandes" minOccurs="0" maxOccurs="unbounded"/>\r
+               </xs:sequence>\r
+       </xs:complexType>\r
+       <xs:complexType name="T_commandes">\r
+               <xs:choice minOccurs="0" maxOccurs="unbounded">\r
+                       <xs:element ref="OPER"/>\r
+                       <xs:element ref="PROC"/>\r
+               </xs:choice>\r
+       </xs:complexType>\r
+       <xs:complexType name="T_Cardinalite"/>\r
+       <xs:complexType name="T_PlageValeur">\r
+               <xs:choice>\r
+                       <xs:sequence>\r
+                               <xs:element ref="borne_sup" minOccurs="0"/>\r
+                               <xs:element ref="borne_inf" minOccurs="0"/>\r
+                       </xs:sequence>\r
+                       <xs:element ref="into"/>\r
+               </xs:choice>\r
+       </xs:complexType>\r
+       <xs:complexType name="T_Accas.Common">\r
+               <xs:sequence>\r
+                       <xs:element ref="regles" minOccurs="0"/>\r
+                       <xs:element ref="doc" minOccurs="0"/>\r
+                       <xs:choice maxOccurs="unbounded">\r
+                               <xs:element ref="BLOC"/>\r
+                               <xs:element ref="FACT"/>\r
+                               <xs:element ref="SIMP"/>\r
+                       </xs:choice>\r
+               </xs:sequence>\r
+               <xs:attribute ref="nom" use="required"/>\r
+       </xs:complexType>\r
+       <xs:element name="OPER" type="T_OPER"/>\r
+       <xs:complexType name="T_OPER">\r
+               <xs:complexContent>\r
+                       <xs:extension base="T_Accas.Common">\r
+                               <xs:sequence>\r
+                                       <xs:element ref="typeCree"/>\r
+                               </xs:sequence>\r
+                               <xs:attribute ref="subroutine"/>\r
+                       </xs:extension>\r
+               </xs:complexContent>\r
+       </xs:complexType>\r
+       <xs:element name="PROC" type="T_PROC">\r
+               <xs:unique name="Uniqb_NAme_In_PRoc">\r
+                       <xs:selector xpath="BLOC|FACT|SIMP"/>\r
+                       <xs:field xpath="@efficas:nom"/>\r
+               </xs:unique>\r
+       </xs:element>\r
+       <xs:complexType name="T_PROC">\r
+               <xs:complexContent>\r
+                       <xs:extension base="T_Accas.Common">\r
+                               <xs:attribute ref="subroutine"/>\r
+                       </xs:extension>\r
+               </xs:complexContent>\r
+       </xs:complexType>\r
+       <xs:element name="FACT" type="T_FACT"/>\r
+       <!--    <xs:complexType name="T_FACT">\r
+               <xs:complexContent>\r
+                       <xs:restriction base="T_Accas.Common">\r
+                               <xs:sequence>\r
+                                       <xs:element ref="regles" minOccurs="0"/>\r
+                                       <xs:element ref="doc" minOccurs="0"/>\r
+                                       <xs:choice maxOccurs="unbounded">\r
+                                               <xs:element ref="BLOC"/>\r
+                                               <xs:element ref="FACT"/>\r
+                                               <xs:element ref="SIMP"/>\r
+                                       </xs:choice>\r
+                               </xs:sequence>\r
+                       </xs:restriction>\r
+               </xs:complexContent>\r
+       </xs:complexType>-->\r
+       <xs:complexType name="T_FACT">\r
+               <xs:complexContent>\r
+                       <xs:extension base="T_Accas.Common">\r
+                               <xs:attribute ref="statut"/>\r
+                               <xs:attribute ref="min_occurs" default="1"/>\r
+                               <xs:attribute ref="max_occurs" default="1">\r
+                                       <xs:annotation>\r
+                                               <xs:documentation>La valuer -1 equivaut à oo</xs:documentation>\r
+                                       </xs:annotation>\r
+                               </xs:attribute>\r
+                               <xs:assert test=".[exists(@efficas:max_occurs) and exists(@efficas:min_occurs) and @efficas:max_occurs  gt @efficas:min_occurs]"/>\r
+                               <!--<xs:assert test="if (.[exists(@efficas:max_occurs)] and .[exists(@efficas:min_occurs)] ) then (@efficas:max_occurs  gt @efficas:min_occurs) or @efficas:max_occurs = -1 else true" altova:message="Erreur max_occurs  > min_occurs "/>-->\r
+                       </xs:extension>\r
+               </xs:complexContent>\r
+       </xs:complexType>\r
+       <xs:simpleType name="T_fonction_python">\r
+               <xs:restriction base="xs:string"/>\r
+       </xs:simpleType>\r
+       <xs:element name="BLOC" type="T_BLOC"/>\r
+       <xs:complexType name="T_BLOC">\r
+               <xs:complexContent>\r
+                       <xs:extension base="T_Accas.Common">\r
+                               <xs:sequence>\r
+                                       <xs:element ref="condition"/>\r
+                               </xs:sequence>\r
+                       </xs:extension>\r
+               </xs:complexContent>\r
+       </xs:complexType>\r
+       <xs:complexType name="T_SIMP">\r
+               <xs:sequence>\r
+                       <xs:element ref="doc" minOccurs="0"/>\r
+                       <xs:element ref="portee" minOccurs="0">\r
+                               <xs:annotation>\r
+                                       <xs:documentation>La portée pouurait devenir un attribut de SIMP. Une autre solution consisterait a créer un SIMPG pour distinguer les @nom uniques des SIMP a portée globale des autres.</xs:documentation>\r
+                               </xs:annotation>\r
+                       </xs:element>\r
+                       <xs:element ref="ValeurDef" minOccurs="0"/>\r
+                       <xs:element ref="ValeurSugg" minOccurs="0"/>\r
+                       <xs:element ref="PlageValeur" minOccurs="0"/>\r
+                       <xs:element ref="typeAttendu"/>\r
+                       <xs:element ref="validators" minOccurs="0"/>\r
+               </xs:sequence>\r
+               <xs:attribute ref="nom" use="required"/>\r
+               <xs:attribute ref="statut"/>\r
+               <xs:attribute ref="min_occurs" default="1"/>\r
+               <xs:attribute ref="max_occurs" default="1">\r
+                       <xs:annotation>\r
+                               <xs:documentation>La valuer -1 equivaut à oo</xs:documentation>\r
+                       </xs:annotation>\r
+               </xs:attribute>\r
+       </xs:complexType>\r
+       <xs:simpleType name="AT_statut">\r
+               <xs:restriction base="xs:string">\r
+                       <xs:enumeration value="f"/>\r
+                       <xs:enumeration value="o"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <!--<xs:simpleType name="T_repetable">\r
+               <xs:restriction base="xs:string">\r
+                       <xs:enumeration value="n"/>\r
+                       <xs:enumeration value="o"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>-->\r
+       <xs:simpleType name="T_portee">\r
+               <xs:restriction base="xs:string">\r
+                       <xs:enumeration value="None"/>\r
+                       <xs:enumeration value="Global"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="AT_max_occurs">\r
+               <xs:restriction base="xs:long">\r
+                       <xs:minInclusive value="-1"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="AT_min_occurs">\r
+               <xs:restriction base="xs:long">\r
+                       <xs:minExclusive value="0"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <!-- Comparable -->\r
+       <!--    <xs:simpleType name="AT_borne_sup">\r
+       <xs:atomic base="xs:double"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="AT_borne_inf">\r
+               <xs:restriction base="xs:double"/>\r
+       </xs:simpleType>\r
+-->\r
+       <xs:simpleType name="AT_ag">\r
+               <xs:restriction base="xs:string">\r
+                       <xs:enumeration value="No comment"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="AT_docu">\r
+               <xs:annotation>\r
+                       <xs:documentation>Référence une position dans un fichier maître contenant une liste de références à des pages de documentations</xs:documentation>\r
+               </xs:annotation>\r
+               <xs:restriction base="xs:string"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="AT_valeur_sugg">\r
+               <xs:restriction base="xs:string"/>\r
+       </xs:simpleType>\r
+       <!-- TODO: Exclure mots clés python|efficas -->\r
+       <xs:simpleType name="AT_nom">\r
+               <xs:restriction base="xs:string">\r
+                       <xs:pattern value="([A-Z]|[a-z]|_)([A-Z]|[a-z]|_|[0-9])*"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_predicat1">\r
+               <xs:list itemType="AT_nom"/>\r
+               <!-- TODO: Supprimer la liste -->\r
+       </xs:simpleType>\r
+       <xs:complexType name="T_predicat2">\r
+               <xs:sequence>\r
+                       <xs:element name="p1" type="T_predicat1" minOccurs="1"/>\r
+                       <xs:element name="p2" type="AT_nom" minOccurs="1"/>\r
+               </xs:sequence>\r
+               <!-- TODO: Supprimer la séquence -->\r
+       </xs:complexType>\r
+       <xs:element name="A_CLASSER" type="T_predicat2"/>\r
+       <xs:element name="AU_MOINS_UN" type="T_predicat1"/>\r
+       <xs:element name="AU_PLUS_UN" type="T_predicat1"/>\r
+       <xs:element name="ENSEMBLE" type="T_predicat1"/>\r
+       <xs:element name="EXCLUS" type="T_predicat1">\r
+               <!-- A priori, ce n'est pas l'endroit pour le placer : ? scope de Uniq_Command-->\r
+               <!--            <xs:keyref name="referToAnAlreadyDefinedName" refer="Uniq_Command">\r
+                       <xs:selector xpath="."/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+-->\r
+       </xs:element>\r
+       <xs:element name="PRESENT_ABSENT" type="T_predicat1"/>\r
+       <xs:element name="PRESENT_PRESENT" type="T_predicat1"/>\r
+       <xs:element name="UN_PARMI" type="T_predicat1"/>\r
+       <xs:group name="predicat">\r
+               <xs:choice>\r
+                       <xs:element ref="A_CLASSER"/>\r
+                       <xs:element ref="AU_MOINS_UN"/>\r
+                       <xs:element ref="AU_PLUS_UN"/>\r
+                       <xs:element ref="ENSEMBLE"/>\r
+                       <xs:element ref="EXCLUS">\r
+                               <!-- A priori, ce n'est pas l'endroit pour le placer -->\r
+                               <!--                            <xs:keyref name="referToAnAlreadyDefinedName" refer="/Uniq_Command">\r
+                                       <xs:selector xpath="."/>\r
+                                       <xs:field xpath="."/>\r
+                               </xs:keyref>\r
+-->\r
+                       </xs:element>\r
+                       <xs:element ref="PRESENT_ABSENT"/>\r
+                       <xs:element ref="PRESENT_PRESENT"/>\r
+                       <xs:element ref="UN_PARMI"/>\r
+               </xs:choice>\r
+       </xs:group>\r
+       <xs:complexType name="T_regles">\r
+               <xs:sequence maxOccurs="unbounded">\r
+                       <xs:group ref="predicat"/>\r
+               </xs:sequence>\r
+       </xs:complexType>\r
+       <!--    <xs:simpleType name="T_typeCree">\r
+               <xs:restriction base="T_classe_utilisateur"/>\r
+       </xs:simpleType>\r
+-->\r
+       <xs:simpleType name="AT_subroutine">\r
+               <xs:restriction base="AT_nom"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_validators">\r
+               <xs:restriction base="xs:string">\r
+                       <xs:enumeration value="NoRepeat"/>\r
+                       <xs:enumeration value="OnlyStr"/>\r
+                       <xs:enumeration value="VerifExiste"/>\r
+                       <xs:enumeration value="VerifTypeTuple"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_Bool">\r
+               <xs:restriction base="xs:boolean"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_list_Bool">\r
+               <xs:list itemType="T_Bool"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_I">\r
+               <xs:restriction base="xs:int"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_list_I">\r
+               <xs:list itemType="T_I"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_R">\r
+               <xs:restriction base="xs:double"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_list_R">\r
+               <xs:list itemType="T_R"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_TXM">\r
+               <xs:restriction base="AT_nom"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_list_TXM">\r
+               <xs:list itemType="T_TXM"/>\r
+       </xs:simpleType>\r
+       <!--fonctionne mais ne permet pas de créer une liste de liste -->\r
+       <xs:simpleType name="T_C">\r
+               <xs:restriction>\r
+                       <xs:simpleType>\r
+                               <xs:list itemType="xs:double"/>\r
+                       </xs:simpleType>\r
+                       <xs:minLength value="2"/>\r
+                       <xs:maxLength value="2"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <!-- Ajouter une contrainte : taille pair -->\r
+       <!-- Il n'est pas possible de définir des listes de listes -->\r
+       <xs:simpleType name="T_list_C">\r
+               <xs:list itemType="xs:double"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_name_base">\r
+               <xs:restriction base="AT_nom"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_simple_name">\r
+               <xs:restriction base="T_name_base">\r
+                       <xs:enumeration value="Fichier"/>\r
+                       <xs:enumeration value="Repertoire"/>\r
+                       <xs:enumeration value="TXM"/>\r
+                       <xs:enumeration value="I"/>\r
+                       <xs:enumeration value="R"/>\r
+                       <xs:enumeration value="C"/>\r
+                       <xs:enumeration value="Bool"/>\r
+                       <xs:enumeration value="grma"/>\r
+                       <xs:enumeration value="grno"/>\r
+                       <xs:enumeration value="SalomeEntry"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <!-- On ne peut pas rendre abstrait un simpleType && \r
+          Il n'est pas possible de dérivé par restriction un simplecontent d'un type complex qui\r
+          lui peut être abstrait\r
+    -->\r
+       <xs:simpleType name="T_classe_utilisateur_name">\r
+               <xs:restriction base="T_name">\r
+                       <xs:enumeration value="T_classe_utilisateur"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <xs:complexType name="T_classe_utilisateur_username">\r
+               <xs:simpleContent>\r
+                       <xs:extension base="T_classe_utilisateur_name">\r
+                               <xs:attribute ref="nom" use="required"/>\r
+                       </xs:extension>\r
+               </xs:simpleContent>\r
+       </xs:complexType>\r
+       <xs:simpleType name="T_name">\r
+               <xs:union memberTypes="T_simple_name">\r
+                       <xs:simpleType>\r
+                               <xs:restriction base="AT_nom">\r
+                                       <xs:enumeration value="T_Matrice_double"/>\r
+                                       <xs:enumeration value="T_Matrice_Symetrique_double"/>\r
+                                       <xs:enumeration value="T_tuple"/>\r
+                                       <xs:enumeration value="T_classe_utilisateur"/>\r
+                               </xs:restriction>\r
+                       </xs:simpleType>\r
+               </xs:union>\r
+       </xs:simpleType>\r
+       <xs:complexType name="T_grma"/>\r
+       <xs:complexType name="T_grno"/>\r
+       <xs:complexType name="T_SalomeEntry"/>\r
+       <xs:complexType name="T_Fichier"/>\r
+       <!--    <xs:complexType name="T_Repertoire"/>-->\r
+       <xs:simpleType name="T_Repertoire">\r
+               <xs:list>\r
+                       <xs:simpleType>\r
+                               <xs:restriction base="xs:string">\r
+                                       <xs:whiteSpace value="preserve"/>\r
+                               </xs:restriction>\r
+                       </xs:simpleType>\r
+               </xs:list>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_simple">\r
+               <xs:union memberTypes="T_I T_list_I T_R T_list_R T_C T_list_C T_TXM T_list_TXM T_Bool T_list_Bool T_Repertoire"/>\r
+       </xs:simpleType>\r
+       <!--    <xs:complexType name="T_TXM"/>-->\r
+       <!--    <xs:simpleType name="T_simple">\r
+               <xs:restriction base="xs:string">\r
+                       <xs:enumeration value="Fichier"/>\r
+                       <xs:enumeration value="Repertoire"/>\r
+                       <xs:enumeration value="TXM"/>\r
+                       <xs:enumeration value="I"/>\r
+                       <xs:enumeration value="R"/>\r
+                       <xs:enumeration value="C"/>\r
+                       <xs:enumeration value="Bool"/>\r
+                       <xs:enumeration value="grma"/>\r
+                       <xs:enumeration value="grno"/>\r
+                       <xs:enumeration value="SalomeEntry"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+-->\r
+       <xs:simpleType name="T_list_double">\r
+               <xs:list itemType="xs:double"/>\r
+       </xs:simpleType>\r
+       <!-- Possibilité d'utiliser un type paramétré ? -->\r
+       <xs:complexType name="T_Matrice_double">\r
+               <xs:simpleContent>\r
+                       <xs:extension base="T_list_double">\r
+                               <xs:attribute name="n" type="xs:integer" use="required"/>\r
+                               <xs:attribute name="m" type="xs:integer" use="required"/>\r
+                       </xs:extension>\r
+               </xs:simpleContent>\r
+       </xs:complexType>\r
+       <!-- Faire l'exercice de dériver de T_Matrice_double -->\r
+       <xs:complexType name="T_Matrice_Symetrique_double">\r
+               <xs:simpleContent>\r
+                       <xs:extension base="T_list_double">\r
+                               <xs:attribute name="n" type="xs:int" use="required"/>\r
+                       </xs:extension>\r
+               </xs:simpleContent>\r
+       </xs:complexType>\r
+       <!-- Une liste est aussi un type simple !!!! -->\r
+       <!--    <xs:simpleType name="T_list_anySimpleType">\r
+               <xs:list itemType="xs:anySimpleType"/>\r
+       </xs:simpleType>\r
+-->\r
+       <!-- Le fait de ne pas déclarer une liste risque d'être problématique pour le parsing : A voir-->\r
+       <xs:complexType name="T_tuple">\r
+               <xs:simpleContent>\r
+                       <xs:extension base="xs:anySimpleType">\r
+                               <xs:attribute name="n" type="xs:int" use="required"/>\r
+                       </xs:extension>\r
+               </xs:simpleContent>\r
+       </xs:complexType>\r
+       <xs:simpleType name="T_classe_utilisateur">\r
+               <xs:restriction base="AT_nom"/>\r
+       </xs:simpleType>\r
+       <xs:element name="typesimple" type="T_simple"/>\r
+       <xs:element name="matrice_double" type="T_Matrice_double"/>\r
+       <xs:element name="matrice_symetrique_double" type="T_Matrice_Symetrique_double"/>\r
+       <xs:element name="tuple" type="T_tuple"/>\r
+       <xs:element name="classe_utilisateur" type="T_classe_utilisateur"/>\r
+       <!-- Essai -->\r
+       <!--    <xs:group name="T_Attendu_group1">\r
+               <xs:choice>\r
+                       <xs:element ref="typesimple"/>\r
+                       <xs:element ref="matrice_double"/>\r
+                       <xs:element ref="matrice_symetrique_double"/>\r
+                       <xs:element ref="tuple"/>\r
+                       <xs:element ref="classe_utilisateur"/>\r
+               </xs:choice>\r
+       </xs:group>\r
+\r
+       <xs:group name="T_Attendu_group2">\r
+               <xs:choice>\r
+                       <xs:element ref="typesimple"/>\r
+                       <xs:element ref="matrice_double"/>\r
+                       <xs:element ref="matrice_symetrique_double"/>\r
+                       <xs:element ref="tuple"/>\r
+                       <xs:element ref="classe_utilisateur"/>\r
+                       <xs:element ref="fonction_utilisateur" minOccurs="1" maxOccurs="unbounded"/>\r
+               </xs:choice>\r
+       </xs:group>\r
+\r
+       <xs:complexType name="T_typeAttendu">\r
+               <xs:group ref="T_Attendu_group1"/>\r
+       </xs:complexType>\r
+       -->\r
+       <!-- Faire plutot un groupe de substitution pour ne pas croiser les choix -->\r
+       <!--\r
+       <xs:complexType name="T_into">\r
+         <xs:group ref="T_Attendu_group2"/>\r
+       </xs:complexType>\r
+       -->\r
+       <xs:complexType name="T_into">\r
+               <xs:choice>\r
+                       <!--                    <xs:element ref="typesimple" type="T_Base"/>-->\r
+                       <xs:element ref="typesimple" minOccurs="0" maxOccurs="unbounded"/>\r
+                       <xs:element ref="matrice_double" minOccurs="0" maxOccurs="unbounded"/>\r
+                       <xs:element ref="matrice_symetrique_double" minOccurs="0" maxOccurs="unbounded"/>\r
+                       <xs:element ref="tuple" minOccurs="0" maxOccurs="unbounded"/>\r
+                       <xs:element ref="classe_utilisateur" minOccurs="0" maxOccurs="unbounded"/>\r
+                       <xs:element ref="fonction_utilisateur" minOccurs="1" maxOccurs="unbounded"/>\r
+               </xs:choice>\r
+       </xs:complexType>\r
+       <xs:complexType name="T_typeAttendu">\r
+               <xs:complexContent>\r
+                       <xs:restriction base="T_into">\r
+                               <xs:choice>\r
+                                       <xs:element ref="typesimple" minOccurs="0" maxOccurs="unbounded"/>\r
+                                       <xs:element ref="matrice_double" minOccurs="0" maxOccurs="unbounded"/>\r
+                                       <xs:element ref="matrice_symetrique_double" minOccurs="0" maxOccurs="unbounded"/>\r
+                                       <xs:element ref="tuple" minOccurs="0" maxOccurs="unbounded"/>\r
+                                       <xs:element ref="classe_utilisateur" minOccurs="0" maxOccurs="unbounded"/>\r
+                               </xs:choice>\r
+                       </xs:restriction>\r
+               </xs:complexContent>\r
+       </xs:complexType>\r
+</xs:schema>\r
+<!-- Catalogue EFFICAS équivalent\r
+\r
+# coding: utf-8\r
+from Accas import *\r
+\r
+class carte   (ASSD) : pass\r
+class maille   (ASSD) : pass\r
+class carte_flux_r   (carte):pass\r
+\r
+class NOM_CHAM_INTO:\r
+    def __call__(self, *l_typ_cham, **kwargs):\r
+        return tuple(('A','B','C'))\r
+C_NOM_CHAM_INTO = NOM_CHAM_INTO()\r
+\r
+JdC = JDC_CATA(code='MAP',\r
+               execmodul=None,\r
+               regles=ENSEMBLE('E1','E2','E3')\r
+               )\r
+\r
+CREECARTE = OPER(nom="CREECARTE",op=None, sd_prod=carte, UNITE=SIMP(statut='f',typ='I',defaut=21),);\r
+\r
+CREECARTEFLUX = OPER(nom="CREECARTEFLUX",op=None, sd_prod=carte_flux_r,\r
+                   NOMFLUX=SIMP(statut='o',typ='TXM',defaut='monFlux'),\r
+                );\r
+\r
+CREEMAILLE = OPER(nom="CREEMAILLE",op=None, sd_prod=maille,\r
+                NOEUDS=SIMP(statut='o',typ='I',defaut=(1,2),min=2,max=2)\r
+              );\r
+\r
+E1=PROC(nom="E1",\r
+        op=None,\r
+        regles    = (EXCLUS('ETAT_INIT','RESULTAT',),),\r
+        ETAT_INIT = FACT(statut='f', max='**',\r
+                         GROUP_MA_1=SIMP(statut='o',typ='I',validators=NoRepeat(),max='**'),\r
+                         GROUP_NO_2=SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),\r
+                    ),\r
+\r
+        RESULTAT  = FACT(statut='f',\r
+                         DEPL=SIMP(statut='o', typ='R',  validators=NoRepeat()),\r
+                         VITE=SIMP(statut='f', typ='R',  validators=NoRepeat()),\r
+                         ACCE=SIMP(statut='f', typ='R',  validators=NoRepeat()),\r
+                    ), \r
+        );\r
+\r
+E2=PROC(nom="E2", op=None,\r
+        regles   = (UN_PARMI('CONCEPT','CHAINE','TOUT' ),),\r
+        CONCEPT  = FACT(statut='f',max='**',\r
+                   NOM = SIMP(statut='o',typ=assd,validators=NoRepeat(),max='**'),\r
+                   ),\r
+        CHAINE   = SIMP(statut='f',typ='TXM'),\r
+        POSITION = SIMP(statut='f',typ='I',defaut=1),\r
+        TOUT     = SIMP(statut='f',typ='TXM',into=("OUI",) ),\r
+        );\r
+\r
+E3=PROC(nom="E3",op=None,\r
+        DEFORMATION = SIMP(statut='f',typ='TXM',defaut="PETIT",\r
+                           into=("PETIT","PETIT_REAC","GROT_GDEP","SIMO_MIEHE","GDEF_HYPO_ELAS","GDEF_LOG")),\r
+        b_blocIn    = BLOC(condition = "DEFORMATION in ('PETIT','PETIT_REAC','GROT_GDEP')",\r
+             ITER_INTE_PAS = SIMP(statut='f',typ='I',defaut= 0 ),\r
+             ALGO_INTE     = SIMP(statut='f',typ='TXM',into=("ANALYTIQUE", "SECANTE", "DEKKER", "NEWTON_1D","BRENT",),),\r
+             CARTE        = SIMP(statut='f',typ=carte,),\r
+             b_carte       = BLOC(condition= "(AsType(CARTE) != carte_flux_r)",\r
+                             CONTRAINTE = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',\r
+                                          fr="Options pour le calcul de contraintes et efforts generalises",\r
+                                           into=C_NOM_CHAM_INTO(phenomene='CONTRAINTE',categorie='lin'),)\r
+                             ),\r
+                      ),  \r
+       );\r
+\r
+-->\r
diff --git a/OldCodes/Med/raw/__init__.py b/OldCodes/Med/raw/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/OldCodes/Med/raw/efficas.py b/OldCodes/Med/raw/efficas.py
new file mode 100644 (file)
index 0000000..de150a9
--- /dev/null
@@ -0,0 +1,2685 @@
+# ./raw/efficas.py
+# -*- coding: utf-8 -*-
+# PyXB bindings for NM:759f40938b7670cd6d5941e706557eb2115fb17f
+# Generated 2016-11-23 16:51:37.568270 by PyXB version 1.2.3
+# Namespace http://chercheurs.edf.com/logiciels/efficas
+
+import pyxb
+import pyxb.binding
+import pyxb.binding.saxer
+import io
+import pyxb.utils.utility
+import pyxb.utils.domutils
+import sys
+
+# Unique identifier for bindings created at the same time
+_GenerationUID = pyxb.utils.utility.UniqueIdentifier('urn:uuid:b79c3f70-b194-11e6-bb0f-b05adafd94d6')
+
+# Version of PyXB used to generate the bindings
+_PyXBVersion = '1.2.3'
+# Generated bindings are not compatible across PyXB versions
+if pyxb.__version__ != _PyXBVersion:
+    raise pyxb.PyXBVersionError(_PyXBVersion)
+
+# Import bindings for namespaces imported into schema
+import pyxb.binding.datatypes
+
+# NOTE: All namespace declarations are reserved within the binding
+Namespace = pyxb.namespace.NamespaceForURI(u'http://chercheurs.edf.com/logiciels/efficas', create_if_missing=True)
+Namespace.configureCategories(['typeBinding', 'elementBinding'])
+
+def CreateFromDocument (xml_text, default_namespace=None, location_base=None):
+    """Parse the given XML and use the document element to create a
+    Python instance.
+
+    @param xml_text An XML document.  This should be data (Python 2
+    str or Python 3 bytes), or a text (Python 2 unicode or Python 3
+    str) in the L{pyxb._InputEncoding} encoding.
+
+    @keyword default_namespace The L{pyxb.Namespace} instance to use as the
+    default namespace where there is no default namespace in scope.
+    If unspecified or C{None}, the namespace of the module containing
+    this function will be used.
+
+    @keyword location_base: An object to be recorded as the base of all
+    L{pyxb.utils.utility.Location} instances associated with events and
+    objects handled by the parser.  You might pass the URI from which
+    the document was obtained.
+    """
+
+    if pyxb.XMLStyle_saxer != pyxb._XMLStyle:
+        dom = pyxb.utils.domutils.StringToDOM(xml_text)
+        return CreateFromDOM(dom.documentElement)
+    if default_namespace is None:
+        default_namespace = Namespace.fallbackNamespace()
+    saxer = pyxb.binding.saxer.make_parser(fallback_namespace=default_namespace, location_base=location_base)
+    handler = saxer.getContentHandler()
+    xmld = xml_text
+    if isinstance(xmld, unicode):
+        xmld = xmld.encode(pyxb._InputEncoding)
+    saxer.parse(io.BytesIO(xmld))
+    instance = handler.rootObject()
+    return instance
+
+def CreateFromDOM (node, default_namespace=None):
+    """Create a Python instance from the given DOM node.
+    The node tag must correspond to an element declaration in this module.
+
+    @deprecated: Forcing use of DOM interface is unnecessary; use L{CreateFromDocument}."""
+    if default_namespace is None:
+        default_namespace = Namespace.fallbackNamespace()
+    return pyxb.binding.basis.element.AnyCreateFromDOM(node, default_namespace)
+
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}T_fonction_python
+class T_fonction_python (pyxb.binding.datatypes.string):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_fonction_python')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 154, 1)
+    _Documentation = None
+T_fonction_python._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', u'T_fonction_python', T_fonction_python)
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}AT_statut
+class AT_statut (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'AT_statut')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 190, 1)
+    _Documentation = None
+AT_statut._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=AT_statut, enum_prefix=None)
+AT_statut.f = AT_statut._CF_enumeration.addEnumeration(unicode_value=u'f', tag=u'f')
+AT_statut.o = AT_statut._CF_enumeration.addEnumeration(unicode_value=u'o', tag=u'o')
+AT_statut._InitializeFacetMap(AT_statut._CF_enumeration)
+Namespace.addCategoryObject('typeBinding', u'AT_statut', AT_statut)
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}T_portee
+class T_portee (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_portee')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 202, 1)
+    _Documentation = None
+T_portee._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=T_portee, enum_prefix=None)
+T_portee.None_ = T_portee._CF_enumeration.addEnumeration(unicode_value=u'None', tag=u'None_')
+T_portee.Global = T_portee._CF_enumeration.addEnumeration(unicode_value=u'Global', tag=u'Global')
+T_portee._InitializeFacetMap(T_portee._CF_enumeration)
+Namespace.addCategoryObject('typeBinding', u'T_portee', T_portee)
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}AT_max_occurs
+class AT_max_occurs (pyxb.binding.datatypes.long):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'AT_max_occurs')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 208, 1)
+    _Documentation = None
+AT_max_occurs._CF_minInclusive = pyxb.binding.facets.CF_minInclusive(value_datatype=AT_max_occurs, value=pyxb.binding.datatypes.long(-1L))
+AT_max_occurs._InitializeFacetMap(AT_max_occurs._CF_minInclusive)
+Namespace.addCategoryObject('typeBinding', u'AT_max_occurs', AT_max_occurs)
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}AT_min_occurs
+class AT_min_occurs (pyxb.binding.datatypes.long):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'AT_min_occurs')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 213, 1)
+    _Documentation = None
+AT_min_occurs._CF_minExclusive = pyxb.binding.facets.CF_minExclusive(value_datatype=pyxb.binding.datatypes.long, value=pyxb.binding.datatypes.integer(0L))
+AT_min_occurs._InitializeFacetMap(AT_min_occurs._CF_minExclusive)
+Namespace.addCategoryObject('typeBinding', u'AT_min_occurs', AT_min_occurs)
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}AT_ag
+class AT_ag (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'AT_ag')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 226, 1)
+    _Documentation = None
+AT_ag._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=AT_ag, enum_prefix=None)
+AT_ag.No_comment = AT_ag._CF_enumeration.addEnumeration(unicode_value=u'No comment', tag=u'No_comment')
+AT_ag._InitializeFacetMap(AT_ag._CF_enumeration)
+Namespace.addCategoryObject('typeBinding', u'AT_ag', AT_ag)
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}AT_docu
+class AT_docu (pyxb.binding.datatypes.string):
+
+    """Référence une position dans un fichier maître contenant une liste de références à des pages de documentations"""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'AT_docu')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 231, 1)
+    _Documentation = u'R\xe9f\xe9rence une position dans un fichier ma\xeetre contenant une liste de r\xe9f\xe9rences \xe0 des pages de documentations'
+AT_docu._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', u'AT_docu', AT_docu)
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}AT_valeur_sugg
+class AT_valeur_sugg (pyxb.binding.datatypes.string):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'AT_valeur_sugg')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 237, 1)
+    _Documentation = None
+AT_valeur_sugg._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', u'AT_valeur_sugg', AT_valeur_sugg)
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}AT_nom
+class AT_nom (pyxb.binding.datatypes.string):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'AT_nom')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 241, 1)
+    _Documentation = None
+AT_nom._CF_pattern = pyxb.binding.facets.CF_pattern()
+AT_nom._CF_pattern.addPattern(pattern=u'([A-Z]|[a-z]|_)([A-Z]|[a-z]|_|[0-9])*')
+AT_nom._InitializeFacetMap(AT_nom._CF_pattern)
+Namespace.addCategoryObject('typeBinding', u'AT_nom', AT_nom)
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}T_validators
+class T_validators (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_validators')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 303, 1)
+    _Documentation = None
+T_validators._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=T_validators, enum_prefix=None)
+T_validators.NoRepeat = T_validators._CF_enumeration.addEnumeration(unicode_value=u'NoRepeat', tag=u'NoRepeat')
+T_validators.OnlyStr = T_validators._CF_enumeration.addEnumeration(unicode_value=u'OnlyStr', tag=u'OnlyStr')
+T_validators.VerifExiste = T_validators._CF_enumeration.addEnumeration(unicode_value=u'VerifExiste', tag=u'VerifExiste')
+T_validators.VerifTypeTuple = T_validators._CF_enumeration.addEnumeration(unicode_value=u'VerifTypeTuple', tag=u'VerifTypeTuple')
+T_validators._InitializeFacetMap(T_validators._CF_enumeration)
+Namespace.addCategoryObject('typeBinding', u'T_validators', T_validators)
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}T_Bool
+class T_Bool (pyxb.binding.datatypes.boolean):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_Bool')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 311, 1)
+    _Documentation = None
+T_Bool._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', u'T_Bool', T_Bool)
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}T_I
+class T_I (pyxb.binding.datatypes.int):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_I')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 317, 1)
+    _Documentation = None
+T_I._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', u'T_I', T_I)
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}T_R
+class T_R (pyxb.binding.datatypes.double):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_R')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 323, 1)
+    _Documentation = None
+T_R._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', u'T_R', T_R)
+
+# List simple type: [anonymous]
+# superclasses pyxb.binding.datatypes.anySimpleType
+class STD_ANON (pyxb.binding.basis.STD_list):
+
+    """Simple type that is a list of pyxb.binding.datatypes.double."""
+
+    _ExpandedName = None
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 338, 3)
+    _Documentation = None
+
+    _ItemType = pyxb.binding.datatypes.double
+STD_ANON._InitializeFacetMap()
+
+# List simple type: {http://chercheurs.edf.com/logiciels/efficas}T_list_C
+# superclasses pyxb.binding.datatypes.anySimpleType
+class T_list_C (pyxb.binding.basis.STD_list):
+
+    """Simple type that is a list of pyxb.binding.datatypes.double."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_list_C')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 347, 1)
+    _Documentation = None
+
+    _ItemType = pyxb.binding.datatypes.double
+T_list_C._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', u'T_list_C', T_list_C)
+
+# Atomic simple type: [anonymous]
+class STD_ANON_ (pyxb.binding.datatypes.string):
+
+    """An atomic simple type."""
+
+    _ExpandedName = None
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 402, 3)
+    _Documentation = None
+STD_ANON_._CF_whiteSpace = pyxb.binding.facets.CF_whiteSpace(value=pyxb.binding.facets._WhiteSpace_enum.preserve)
+STD_ANON_._InitializeFacetMap(STD_ANON_._CF_whiteSpace)
+
+# List simple type: {http://chercheurs.edf.com/logiciels/efficas}T_list_double
+# superclasses pyxb.binding.datatypes.anySimpleType
+class T_list_double (pyxb.binding.basis.STD_list):
+
+    """Simple type that is a list of pyxb.binding.datatypes.double."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_list_double')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 428, 1)
+    _Documentation = None
+
+    _ItemType = pyxb.binding.datatypes.double
+T_list_double._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', u'T_list_double', T_list_double)
+
+# List simple type: {http://chercheurs.edf.com/logiciels/efficas}T_predicat1
+# superclasses pyxb.binding.datatypes.anySimpleType
+class T_predicat1 (pyxb.binding.basis.STD_list):
+
+    """Simple type that is a list of AT_nom."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_predicat1')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 246, 1)
+    _Documentation = None
+
+    _ItemType = AT_nom
+T_predicat1._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', u'T_predicat1', T_predicat1)
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}AT_subroutine
+class AT_subroutine (AT_nom):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'AT_subroutine')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 300, 1)
+    _Documentation = None
+AT_subroutine._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', u'AT_subroutine', AT_subroutine)
+
+# List simple type: {http://chercheurs.edf.com/logiciels/efficas}T_list_Bool
+# superclasses pyxb.binding.datatypes.anySimpleType
+class T_list_Bool (pyxb.binding.basis.STD_list):
+
+    """Simple type that is a list of T_Bool."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_list_Bool')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 314, 1)
+    _Documentation = None
+
+    _ItemType = T_Bool
+T_list_Bool._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', u'T_list_Bool', T_list_Bool)
+
+# List simple type: {http://chercheurs.edf.com/logiciels/efficas}T_list_I
+# superclasses pyxb.binding.datatypes.anySimpleType
+class T_list_I (pyxb.binding.basis.STD_list):
+
+    """Simple type that is a list of T_I."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_list_I')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 320, 1)
+    _Documentation = None
+
+    _ItemType = T_I
+T_list_I._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', u'T_list_I', T_list_I)
+
+# List simple type: {http://chercheurs.edf.com/logiciels/efficas}T_list_R
+# superclasses pyxb.binding.datatypes.anySimpleType
+class T_list_R (pyxb.binding.basis.STD_list):
+
+    """Simple type that is a list of T_R."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_list_R')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 326, 1)
+    _Documentation = None
+
+    _ItemType = T_R
+T_list_R._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', u'T_list_R', T_list_R)
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}T_TXM
+class T_TXM (AT_nom):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_TXM')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 329, 1)
+    _Documentation = None
+T_TXM._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', u'T_TXM', T_TXM)
+
+# List simple type: {http://chercheurs.edf.com/logiciels/efficas}T_C
+# superclasses STD_ANON
+class T_C (pyxb.binding.basis.STD_list):
+
+    """Simple type that is a list of pyxb.binding.datatypes.double."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_C')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 336, 1)
+    _Documentation = None
+
+    _ItemType = pyxb.binding.datatypes.double
+T_C._CF_maxLength = pyxb.binding.facets.CF_maxLength(value=pyxb.binding.datatypes.nonNegativeInteger(2L))
+T_C._CF_minLength = pyxb.binding.facets.CF_minLength(value=pyxb.binding.datatypes.nonNegativeInteger(2L))
+T_C._InitializeFacetMap(T_C._CF_maxLength,
+   T_C._CF_minLength)
+Namespace.addCategoryObject('typeBinding', u'T_C', T_C)
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}T_name_base
+class T_name_base (AT_nom):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_name_base')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 350, 1)
+    _Documentation = None
+T_name_base._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', u'T_name_base', T_name_base)
+
+# Atomic simple type: [anonymous]
+class STD_ANON_2 (AT_nom, pyxb.binding.basis.enumeration_mixin):
+
+    """An atomic simple type."""
+
+    _ExpandedName = None
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 385, 3)
+    _Documentation = None
+STD_ANON_2._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=STD_ANON_2, enum_prefix=None)
+STD_ANON_2.T_Matrice_double = STD_ANON_2._CF_enumeration.addEnumeration(unicode_value=u'T_Matrice_double', tag=u'T_Matrice_double')
+STD_ANON_2.T_Matrice_Symetrique_double = STD_ANON_2._CF_enumeration.addEnumeration(unicode_value=u'T_Matrice_Symetrique_double', tag=u'T_Matrice_Symetrique_double')
+STD_ANON_2.T_tuple = STD_ANON_2._CF_enumeration.addEnumeration(unicode_value=u'T_tuple', tag=u'T_tuple')
+STD_ANON_2.T_classe_utilisateur = STD_ANON_2._CF_enumeration.addEnumeration(unicode_value=u'T_classe_utilisateur', tag=u'T_classe_utilisateur')
+STD_ANON_2._InitializeFacetMap(STD_ANON_2._CF_enumeration)
+
+# List simple type: {http://chercheurs.edf.com/logiciels/efficas}T_Repertoire
+# superclasses pyxb.binding.datatypes.anySimpleType
+class T_Repertoire (pyxb.binding.basis.STD_list):
+
+    """Simple type that is a list of STD_ANON_."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_Repertoire')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 400, 1)
+    _Documentation = None
+
+    _ItemType = STD_ANON_
+T_Repertoire._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', u'T_Repertoire', T_Repertoire)
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}T_classe_utilisateur
+class T_classe_utilisateur (AT_nom):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_classe_utilisateur')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 461, 1)
+    _Documentation = None
+T_classe_utilisateur._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', u'T_classe_utilisateur', T_classe_utilisateur)
+
+# List simple type: {http://chercheurs.edf.com/logiciels/efficas}T_list_TXM
+# superclasses pyxb.binding.datatypes.anySimpleType
+class T_list_TXM (pyxb.binding.basis.STD_list):
+
+    """Simple type that is a list of T_TXM."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_list_TXM')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 332, 1)
+    _Documentation = None
+
+    _ItemType = T_TXM
+T_list_TXM._InitializeFacetMap()
+Namespace.addCategoryObject('typeBinding', u'T_list_TXM', T_list_TXM)
+
+# Atomic simple type: {http://chercheurs.edf.com/logiciels/efficas}T_simple_name
+class T_simple_name (T_name_base, pyxb.binding.basis.enumeration_mixin):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_simple_name')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 353, 1)
+    _Documentation = None
+T_simple_name._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=T_simple_name, enum_prefix=None)
+T_simple_name.Fichier = T_simple_name._CF_enumeration.addEnumeration(unicode_value=u'Fichier', tag=u'Fichier')
+T_simple_name.Repertoire = T_simple_name._CF_enumeration.addEnumeration(unicode_value=u'Repertoire', tag=u'Repertoire')
+T_simple_name.TXM = T_simple_name._CF_enumeration.addEnumeration(unicode_value=u'TXM', tag=u'TXM')
+T_simple_name.I = T_simple_name._CF_enumeration.addEnumeration(unicode_value=u'I', tag=u'I')
+T_simple_name.R = T_simple_name._CF_enumeration.addEnumeration(unicode_value=u'R', tag=u'R')
+T_simple_name.C = T_simple_name._CF_enumeration.addEnumeration(unicode_value=u'C', tag=u'C')
+T_simple_name.Bool = T_simple_name._CF_enumeration.addEnumeration(unicode_value=u'Bool', tag=u'Bool')
+T_simple_name.grma = T_simple_name._CF_enumeration.addEnumeration(unicode_value=u'grma', tag=u'grma')
+T_simple_name.grno = T_simple_name._CF_enumeration.addEnumeration(unicode_value=u'grno', tag=u'grno')
+T_simple_name.SalomeEntry = T_simple_name._CF_enumeration.addEnumeration(unicode_value=u'SalomeEntry', tag=u'SalomeEntry')
+T_simple_name._InitializeFacetMap(T_simple_name._CF_enumeration)
+Namespace.addCategoryObject('typeBinding', u'T_simple_name', T_simple_name)
+
+# Union simple type: {http://chercheurs.edf.com/logiciels/efficas}T_name
+# superclasses pyxb.binding.datatypes.anySimpleType
+class T_name (pyxb.binding.basis.STD_union):
+
+    """Simple type that is a union of T_simple_name, STD_ANON_2."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_name')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 383, 1)
+    _Documentation = None
+
+    _MemberTypes = ( T_simple_name, STD_ANON_2, )
+T_name._CF_pattern = pyxb.binding.facets.CF_pattern()
+T_name._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=T_name)
+T_name.Fichier = u'Fichier'                       # originally T_simple_name.Fichier
+T_name.Repertoire = u'Repertoire'                 # originally T_simple_name.Repertoire
+T_name.TXM = u'TXM'                               # originally T_simple_name.TXM
+T_name.I = u'I'                                   # originally T_simple_name.I
+T_name.R = u'R'                                   # originally T_simple_name.R
+T_name.C = u'C'                                   # originally T_simple_name.C
+T_name.Bool = u'Bool'                             # originally T_simple_name.Bool
+T_name.grma = u'grma'                             # originally T_simple_name.grma
+T_name.grno = u'grno'                             # originally T_simple_name.grno
+T_name.SalomeEntry = u'SalomeEntry'               # originally T_simple_name.SalomeEntry
+T_name.T_Matrice_double = u'T_Matrice_double'     # originally STD_ANON_2.T_Matrice_double
+T_name.T_Matrice_Symetrique_double = u'T_Matrice_Symetrique_double'# originally STD_ANON_2.T_Matrice_Symetrique_double
+T_name.T_tuple = u'T_tuple'                       # originally STD_ANON_2.T_tuple
+T_name.T_classe_utilisateur = u'T_classe_utilisateur'# originally STD_ANON_2.T_classe_utilisateur
+T_name._InitializeFacetMap(T_name._CF_pattern,
+   T_name._CF_enumeration)
+Namespace.addCategoryObject('typeBinding', u'T_name', T_name)
+
+# Union simple type: {http://chercheurs.edf.com/logiciels/efficas}T_simple
+# superclasses pyxb.binding.datatypes.anySimpleType
+class T_simple (pyxb.binding.basis.STD_union):
+
+    """Simple type that is a union of T_I, T_list_I, T_R, T_list_R, T_C, T_list_C, T_TXM, T_list_TXM, T_Bool, T_list_Bool, T_Repertoire."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_simple')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 409, 1)
+    _Documentation = None
+
+    _MemberTypes = ( T_I, T_list_I, T_R, T_list_R, T_C, T_list_C, T_TXM, T_list_TXM, T_Bool, T_list_Bool, T_Repertoire, )
+T_simple._CF_pattern = pyxb.binding.facets.CF_pattern()
+T_simple._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=T_simple)
+T_simple._InitializeFacetMap(T_simple._CF_pattern,
+   T_simple._CF_enumeration)
+Namespace.addCategoryObject('typeBinding', u'T_simple', T_simple)
+
+# Union simple type: {http://chercheurs.edf.com/logiciels/efficas}T_classe_utilisateur_name
+# superclasses T_name, pyxb.binding.basis.enumeration_mixin
+class T_classe_utilisateur_name (pyxb.binding.basis.STD_union):
+
+    """Simple type that is a union of T_simple_name, STD_ANON_2."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_classe_utilisateur_name')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 371, 1)
+    _Documentation = None
+
+    _MemberTypes = ( T_simple_name, STD_ANON_2, )
+T_classe_utilisateur_name._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=T_classe_utilisateur_name, enum_prefix=None)
+T_classe_utilisateur_name.T_classe_utilisateur = T_classe_utilisateur_name._CF_enumeration.addEnumeration(unicode_value=u'T_classe_utilisateur', tag=u'T_classe_utilisateur')
+T_classe_utilisateur_name._InitializeFacetMap(T_classe_utilisateur_name._CF_enumeration)
+Namespace.addCategoryObject('typeBinding', u'T_classe_utilisateur_name', T_classe_utilisateur_name)
+
+# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_cata with content type ELEMENT_ONLY
+class T_cata (pyxb.binding.basis.complexTypeDefinition):
+    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_cata with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_cata')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 66, 1)
+    _ElementMap = {}
+    _AttributeMap = {}
+    # Base type is pyxb.binding.datatypes.anyType
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}commandes uses Python identifier commandes
+    __commandes = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'commandes'), 'commandes', '__httpchercheurs_edf_comlogicielsefficas_T_cata_httpchercheurs_edf_comlogicielsefficascommandes', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 11, 1), )
+
+    
+    commandes = property(__commandes.value, __commandes.set, None, None)
+
+    _ElementMap.update({
+        __commandes.name() : __commandes
+    })
+    _AttributeMap.update({
+        
+    })
+Namespace.addCategoryObject('typeBinding', u'T_cata', T_cata)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_commandes with content type ELEMENT_ONLY
+class T_commandes (pyxb.binding.basis.complexTypeDefinition):
+    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_commandes with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_commandes')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 71, 1)
+    _ElementMap = {}
+    _AttributeMap = {}
+    # Base type is pyxb.binding.datatypes.anyType
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}OPER uses Python identifier OPER
+    __OPER = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'OPER'), 'OPER', '__httpchercheurs_edf_comlogicielsefficas_T_commandes_httpchercheurs_edf_comlogicielsefficasOPER', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 99, 1), )
+
+    
+    OPER = property(__OPER.value, __OPER.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}PROC uses Python identifier PROC
+    __PROC = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'PROC'), 'PROC', '__httpchercheurs_edf_comlogicielsefficas_T_commandes_httpchercheurs_edf_comlogicielsefficasPROC', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 110, 1), )
+
+    
+    PROC = property(__PROC.value, __PROC.set, None, None)
+
+    _ElementMap.update({
+        __OPER.name() : __OPER,
+        __PROC.name() : __PROC
+    })
+    _AttributeMap.update({
+        
+    })
+Namespace.addCategoryObject('typeBinding', u'T_commandes', T_commandes)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_Cardinalite with content type EMPTY
+class T_Cardinalite (pyxb.binding.basis.complexTypeDefinition):
+    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_Cardinalite with content type EMPTY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_EMPTY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_Cardinalite')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 77, 1)
+    _ElementMap = {}
+    _AttributeMap = {}
+    # Base type is pyxb.binding.datatypes.anyType
+    _ElementMap.update({
+        
+    })
+    _AttributeMap.update({
+        
+    })
+Namespace.addCategoryObject('typeBinding', u'T_Cardinalite', T_Cardinalite)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_PlageValeur with content type ELEMENT_ONLY
+class T_PlageValeur (pyxb.binding.basis.complexTypeDefinition):
+    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_PlageValeur with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_PlageValeur')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 78, 1)
+    _ElementMap = {}
+    _AttributeMap = {}
+    # Base type is pyxb.binding.datatypes.anyType
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}borne_sup uses Python identifier borne_sup
+    __borne_sup = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'borne_sup'), 'borne_sup', '__httpchercheurs_edf_comlogicielsefficas_T_PlageValeur_httpchercheurs_edf_comlogicielsefficasborne_sup', False, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 46, 1), )
+
+    
+    borne_sup = property(__borne_sup.value, __borne_sup.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}borne_inf uses Python identifier borne_inf
+    __borne_inf = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'borne_inf'), 'borne_inf', '__httpchercheurs_edf_comlogicielsefficas_T_PlageValeur_httpchercheurs_edf_comlogicielsefficasborne_inf', False, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 47, 1), )
+
+    
+    borne_inf = property(__borne_inf.value, __borne_inf.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}into uses Python identifier into
+    __into = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'into'), 'into', '__httpchercheurs_edf_comlogicielsefficas_T_PlageValeur_httpchercheurs_edf_comlogicielsefficasinto', False, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 49, 1), )
+
+    
+    into = property(__into.value, __into.set, None, None)
+
+    _ElementMap.update({
+        __borne_sup.name() : __borne_sup,
+        __borne_inf.name() : __borne_inf,
+        __into.name() : __into
+    })
+    _AttributeMap.update({
+        
+    })
+Namespace.addCategoryObject('typeBinding', u'T_PlageValeur', T_PlageValeur)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_predicat2 with content type ELEMENT_ONLY
+class T_predicat2 (pyxb.binding.basis.complexTypeDefinition):
+    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_predicat2 with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_predicat2')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 250, 1)
+    _ElementMap = {}
+    _AttributeMap = {}
+    # Base type is pyxb.binding.datatypes.anyType
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}p1 uses Python identifier p1
+    __p1 = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'p1'), 'p1', '__httpchercheurs_edf_comlogicielsefficas_T_predicat2_httpchercheurs_edf_comlogicielsefficasp1', False, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 252, 3), )
+
+    
+    p1 = property(__p1.value, __p1.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}p2 uses Python identifier p2
+    __p2 = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'p2'), 'p2', '__httpchercheurs_edf_comlogicielsefficas_T_predicat2_httpchercheurs_edf_comlogicielsefficasp2', False, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 253, 3), )
+
+    
+    p2 = property(__p2.value, __p2.set, None, None)
+
+    _ElementMap.update({
+        __p1.name() : __p1,
+        __p2.name() : __p2
+    })
+    _AttributeMap.update({
+        
+    })
+Namespace.addCategoryObject('typeBinding', u'T_predicat2', T_predicat2)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_regles with content type ELEMENT_ONLY
+class T_regles (pyxb.binding.basis.complexTypeDefinition):
+    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_regles with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_regles')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 291, 1)
+    _ElementMap = {}
+    _AttributeMap = {}
+    # Base type is pyxb.binding.datatypes.anyType
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}A_CLASSER uses Python identifier A_CLASSER
+    __A_CLASSER = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'A_CLASSER'), 'A_CLASSER', '__httpchercheurs_edf_comlogicielsefficas_T_regles_httpchercheurs_edf_comlogicielsefficasA_CLASSER', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 257, 1), )
+
+    
+    A_CLASSER = property(__A_CLASSER.value, __A_CLASSER.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}AU_MOINS_UN uses Python identifier AU_MOINS_UN
+    __AU_MOINS_UN = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'AU_MOINS_UN'), 'AU_MOINS_UN', '__httpchercheurs_edf_comlogicielsefficas_T_regles_httpchercheurs_edf_comlogicielsefficasAU_MOINS_UN', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 258, 1), )
+
+    
+    AU_MOINS_UN = property(__AU_MOINS_UN.value, __AU_MOINS_UN.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}AU_PLUS_UN uses Python identifier AU_PLUS_UN
+    __AU_PLUS_UN = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'AU_PLUS_UN'), 'AU_PLUS_UN', '__httpchercheurs_edf_comlogicielsefficas_T_regles_httpchercheurs_edf_comlogicielsefficasAU_PLUS_UN', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 259, 1), )
+
+    
+    AU_PLUS_UN = property(__AU_PLUS_UN.value, __AU_PLUS_UN.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}ENSEMBLE uses Python identifier ENSEMBLE
+    __ENSEMBLE = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'ENSEMBLE'), 'ENSEMBLE', '__httpchercheurs_edf_comlogicielsefficas_T_regles_httpchercheurs_edf_comlogicielsefficasENSEMBLE', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 260, 1), )
+
+    
+    ENSEMBLE = property(__ENSEMBLE.value, __ENSEMBLE.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}EXCLUS uses Python identifier EXCLUS
+    __EXCLUS = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'EXCLUS'), 'EXCLUS', '__httpchercheurs_edf_comlogicielsefficas_T_regles_httpchercheurs_edf_comlogicielsefficasEXCLUS', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 261, 1), )
+
+    
+    EXCLUS = property(__EXCLUS.value, __EXCLUS.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}PRESENT_ABSENT uses Python identifier PRESENT_ABSENT
+    __PRESENT_ABSENT = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'PRESENT_ABSENT'), 'PRESENT_ABSENT', '__httpchercheurs_edf_comlogicielsefficas_T_regles_httpchercheurs_edf_comlogicielsefficasPRESENT_ABSENT', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 269, 1), )
+
+    
+    PRESENT_ABSENT = property(__PRESENT_ABSENT.value, __PRESENT_ABSENT.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}PRESENT_PRESENT uses Python identifier PRESENT_PRESENT
+    __PRESENT_PRESENT = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'PRESENT_PRESENT'), 'PRESENT_PRESENT', '__httpchercheurs_edf_comlogicielsefficas_T_regles_httpchercheurs_edf_comlogicielsefficasPRESENT_PRESENT', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 270, 1), )
+
+    
+    PRESENT_PRESENT = property(__PRESENT_PRESENT.value, __PRESENT_PRESENT.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}UN_PARMI uses Python identifier UN_PARMI
+    __UN_PARMI = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'UN_PARMI'), 'UN_PARMI', '__httpchercheurs_edf_comlogicielsefficas_T_regles_httpchercheurs_edf_comlogicielsefficasUN_PARMI', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 271, 1), )
+
+    
+    UN_PARMI = property(__UN_PARMI.value, __UN_PARMI.set, None, None)
+
+    _ElementMap.update({
+        __A_CLASSER.name() : __A_CLASSER,
+        __AU_MOINS_UN.name() : __AU_MOINS_UN,
+        __AU_PLUS_UN.name() : __AU_PLUS_UN,
+        __ENSEMBLE.name() : __ENSEMBLE,
+        __EXCLUS.name() : __EXCLUS,
+        __PRESENT_ABSENT.name() : __PRESENT_ABSENT,
+        __PRESENT_PRESENT.name() : __PRESENT_PRESENT,
+        __UN_PARMI.name() : __UN_PARMI
+    })
+    _AttributeMap.update({
+        
+    })
+Namespace.addCategoryObject('typeBinding', u'T_regles', T_regles)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_grma with content type EMPTY
+class T_grma (pyxb.binding.basis.complexTypeDefinition):
+    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_grma with content type EMPTY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_EMPTY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_grma')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 395, 1)
+    _ElementMap = {}
+    _AttributeMap = {}
+    # Base type is pyxb.binding.datatypes.anyType
+    _ElementMap.update({
+        
+    })
+    _AttributeMap.update({
+        
+    })
+Namespace.addCategoryObject('typeBinding', u'T_grma', T_grma)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_grno with content type EMPTY
+class T_grno (pyxb.binding.basis.complexTypeDefinition):
+    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_grno with content type EMPTY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_EMPTY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_grno')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 396, 1)
+    _ElementMap = {}
+    _AttributeMap = {}
+    # Base type is pyxb.binding.datatypes.anyType
+    _ElementMap.update({
+        
+    })
+    _AttributeMap.update({
+        
+    })
+Namespace.addCategoryObject('typeBinding', u'T_grno', T_grno)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_SalomeEntry with content type EMPTY
+class T_SalomeEntry (pyxb.binding.basis.complexTypeDefinition):
+    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_SalomeEntry with content type EMPTY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_EMPTY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_SalomeEntry')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 397, 1)
+    _ElementMap = {}
+    _AttributeMap = {}
+    # Base type is pyxb.binding.datatypes.anyType
+    _ElementMap.update({
+        
+    })
+    _AttributeMap.update({
+        
+    })
+Namespace.addCategoryObject('typeBinding', u'T_SalomeEntry', T_SalomeEntry)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_Fichier with content type EMPTY
+class T_Fichier (pyxb.binding.basis.complexTypeDefinition):
+    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_Fichier with content type EMPTY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_EMPTY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_Fichier')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 398, 1)
+    _ElementMap = {}
+    _AttributeMap = {}
+    # Base type is pyxb.binding.datatypes.anyType
+    _ElementMap.update({
+        
+    })
+    _AttributeMap.update({
+        
+    })
+Namespace.addCategoryObject('typeBinding', u'T_Fichier', T_Fichier)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_tuple with content type SIMPLE
+class T_tuple (pyxb.binding.basis.complexTypeDefinition):
+    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_tuple with content type SIMPLE"""
+    _TypeDefinition = pyxb.binding.datatypes.anySimpleType
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_SIMPLE
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_tuple')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 454, 1)
+    _ElementMap = {}
+    _AttributeMap = {}
+    # Base type is pyxb.binding.datatypes.anySimpleType
+    
+    # Attribute n uses Python identifier n
+    __n = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, u'n'), 'n', '__httpchercheurs_edf_comlogicielsefficas_T_tuple_n', pyxb.binding.datatypes.int, required=True)
+    __n._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 457, 4)
+    __n._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 457, 4)
+    
+    n = property(__n.value, __n.set, None, None)
+
+    _ElementMap.update({
+        
+    })
+    _AttributeMap.update({
+        __n.name() : __n
+    })
+Namespace.addCategoryObject('typeBinding', u'T_tuple', T_tuple)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_into with content type ELEMENT_ONLY
+class T_into (pyxb.binding.basis.complexTypeDefinition):
+    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_into with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_into')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 501, 1)
+    _ElementMap = {}
+    _AttributeMap = {}
+    # Base type is pyxb.binding.datatypes.anyType
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}fonction_utilisateur uses Python identifier fonction_utilisateur
+    __fonction_utilisateur = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'fonction_utilisateur'), 'fonction_utilisateur', '__httpchercheurs_edf_comlogicielsefficas_T_into_httpchercheurs_edf_comlogicielsefficasfonction_utilisateur', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 10, 1), )
+
+    
+    fonction_utilisateur = property(__fonction_utilisateur.value, __fonction_utilisateur.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}typesimple uses Python identifier typesimple
+    __typesimple = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'typesimple'), 'typesimple', '__httpchercheurs_edf_comlogicielsefficas_T_into_httpchercheurs_edf_comlogicielsefficastypesimple', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 464, 1), )
+
+    
+    typesimple = property(__typesimple.value, __typesimple.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}matrice_double uses Python identifier matrice_double
+    __matrice_double = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'matrice_double'), 'matrice_double', '__httpchercheurs_edf_comlogicielsefficas_T_into_httpchercheurs_edf_comlogicielsefficasmatrice_double', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 465, 1), )
+
+    
+    matrice_double = property(__matrice_double.value, __matrice_double.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}matrice_symetrique_double uses Python identifier matrice_symetrique_double
+    __matrice_symetrique_double = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'matrice_symetrique_double'), 'matrice_symetrique_double', '__httpchercheurs_edf_comlogicielsefficas_T_into_httpchercheurs_edf_comlogicielsefficasmatrice_symetrique_double', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 466, 1), )
+
+    
+    matrice_symetrique_double = property(__matrice_symetrique_double.value, __matrice_symetrique_double.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}tuple uses Python identifier tuple
+    __tuple = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'tuple'), 'tuple', '__httpchercheurs_edf_comlogicielsefficas_T_into_httpchercheurs_edf_comlogicielsefficastuple', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 467, 1), )
+
+    
+    tuple = property(__tuple.value, __tuple.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}classe_utilisateur uses Python identifier classe_utilisateur
+    __classe_utilisateur = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'classe_utilisateur'), 'classe_utilisateur', '__httpchercheurs_edf_comlogicielsefficas_T_into_httpchercheurs_edf_comlogicielsefficasclasse_utilisateur', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 468, 1), )
+
+    
+    classe_utilisateur = property(__classe_utilisateur.value, __classe_utilisateur.set, None, None)
+
+    _ElementMap.update({
+        __fonction_utilisateur.name() : __fonction_utilisateur,
+        __typesimple.name() : __typesimple,
+        __matrice_double.name() : __matrice_double,
+        __matrice_symetrique_double.name() : __matrice_symetrique_double,
+        __tuple.name() : __tuple,
+        __classe_utilisateur.name() : __classe_utilisateur
+    })
+    _AttributeMap.update({
+        
+    })
+Namespace.addCategoryObject('typeBinding', u'T_into', T_into)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_doc with content type EMPTY
+class T_doc (pyxb.binding.basis.complexTypeDefinition):
+    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_doc with content type EMPTY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_EMPTY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_doc')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 61, 1)
+    _ElementMap = {}
+    _AttributeMap = {}
+    # Base type is pyxb.binding.datatypes.anyType
+    
+    # Attribute {http://chercheurs.edf.com/logiciels/efficas}fr uses Python identifier fr
+    __fr = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(Namespace, u'fr'), 'fr', '__httpchercheurs_edf_comlogicielsefficas_T_doc_httpchercheurs_edf_comlogicielsefficasfr', pyxb.binding.datatypes.string)
+    __fr._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 53, 1)
+    __fr._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 62, 2)
+    
+    fr = property(__fr.value, __fr.set, None, None)
+
+    
+    # Attribute {http://chercheurs.edf.com/logiciels/efficas}ang uses Python identifier ang
+    __ang = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(Namespace, u'ang'), 'ang', '__httpchercheurs_edf_comlogicielsefficas_T_doc_httpchercheurs_edf_comlogicielsefficasang', pyxb.binding.datatypes.string)
+    __ang._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 54, 1)
+    __ang._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 63, 2)
+    
+    ang = property(__ang.value, __ang.set, None, None)
+
+    
+    # Attribute {http://chercheurs.edf.com/logiciels/efficas}docu uses Python identifier docu
+    __docu = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(Namespace, u'docu'), 'docu', '__httpchercheurs_edf_comlogicielsefficas_T_doc_httpchercheurs_edf_comlogicielsefficasdocu', AT_docu)
+    __docu._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 55, 1)
+    __docu._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 64, 2)
+    
+    docu = property(__docu.value, __docu.set, None, None)
+
+    _ElementMap.update({
+        
+    })
+    _AttributeMap.update({
+        __fr.name() : __fr,
+        __ang.name() : __ang,
+        __docu.name() : __docu
+    })
+Namespace.addCategoryObject('typeBinding', u'T_doc', T_doc)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common with content type ELEMENT_ONLY
+class T_Accas_Common (pyxb.binding.basis.complexTypeDefinition):
+    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_Accas.Common')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 87, 1)
+    _ElementMap = {}
+    _AttributeMap = {}
+    # Base type is pyxb.binding.datatypes.anyType
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}doc uses Python identifier doc
+    __doc = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'doc'), 'doc', '__httpchercheurs_edf_comlogicielsefficas_T_Accas_Common_httpchercheurs_edf_comlogicielsefficasdoc', False, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 4, 1), )
+
+    
+    doc = property(__doc.value, __doc.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}regles uses Python identifier regles
+    __regles = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'regles'), 'regles', '__httpchercheurs_edf_comlogicielsefficas_T_Accas_Common_httpchercheurs_edf_comlogicielsefficasregles', False, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 6, 1), )
+
+    
+    regles = property(__regles.value, __regles.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}SIMP uses Python identifier SIMP
+    __SIMP = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'SIMP'), 'SIMP', '__httpchercheurs_edf_comlogicielsefficas_T_Accas_Common_httpchercheurs_edf_comlogicielsefficasSIMP', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 43, 1), )
+
+    
+    SIMP = property(__SIMP.value, __SIMP.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}FACT uses Python identifier FACT
+    __FACT = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'FACT'), 'FACT', '__httpchercheurs_edf_comlogicielsefficas_T_Accas_Common_httpchercheurs_edf_comlogicielsefficasFACT', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 123, 1), )
+
+    
+    FACT = property(__FACT.value, __FACT.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}BLOC uses Python identifier BLOC
+    __BLOC = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'BLOC'), 'BLOC', '__httpchercheurs_edf_comlogicielsefficas_T_Accas_Common_httpchercheurs_edf_comlogicielsefficasBLOC', True, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 157, 1), )
+
+    
+    BLOC = property(__BLOC.value, __BLOC.set, None, None)
+
+    
+    # Attribute {http://chercheurs.edf.com/logiciels/efficas}nom uses Python identifier nom
+    __nom = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(Namespace, u'nom'), 'nom', '__httpchercheurs_edf_comlogicielsefficas_T_Accas_Common_httpchercheurs_edf_comlogicielsefficasnom', AT_nom, required=True)
+    __nom._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 51, 1)
+    __nom._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 97, 2)
+    
+    nom = property(__nom.value, __nom.set, None, None)
+
+    _ElementMap.update({
+        __doc.name() : __doc,
+        __regles.name() : __regles,
+        __SIMP.name() : __SIMP,
+        __FACT.name() : __FACT,
+        __BLOC.name() : __BLOC
+    })
+    _AttributeMap.update({
+        __nom.name() : __nom
+    })
+Namespace.addCategoryObject('typeBinding', u'T_Accas.Common', T_Accas_Common)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_SIMP with content type ELEMENT_ONLY
+class T_SIMP (pyxb.binding.basis.complexTypeDefinition):
+    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_SIMP with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_SIMP')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 167, 1)
+    _ElementMap = {}
+    _AttributeMap = {}
+    # Base type is pyxb.binding.datatypes.anyType
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}doc uses Python identifier doc
+    __doc = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'doc'), 'doc', '__httpchercheurs_edf_comlogicielsefficas_T_SIMP_httpchercheurs_edf_comlogicielsefficasdoc', False, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 4, 1), )
+
+    
+    doc = property(__doc.value, __doc.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}ValeurDef uses Python identifier ValeurDef
+    __ValeurDef = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'ValeurDef'), 'ValeurDef', '__httpchercheurs_edf_comlogicielsefficas_T_SIMP_httpchercheurs_edf_comlogicielsefficasValeurDef', False, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 8, 1), )
+
+    
+    ValeurDef = property(__ValeurDef.value, __ValeurDef.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}ValeurSugg uses Python identifier ValeurSugg
+    __ValeurSugg = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'ValeurSugg'), 'ValeurSugg', '__httpchercheurs_edf_comlogicielsefficas_T_SIMP_httpchercheurs_edf_comlogicielsefficasValeurSugg', False, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 9, 1), )
+
+    
+    ValeurSugg = property(__ValeurSugg.value, __ValeurSugg.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}validators uses Python identifier validators
+    __validators = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'validators'), 'validators', '__httpchercheurs_edf_comlogicielsefficas_T_SIMP_httpchercheurs_edf_comlogicielsefficasvalidators', False, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 39, 1), )
+
+    
+    validators = property(__validators.value, __validators.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}PlageValeur uses Python identifier PlageValeur
+    __PlageValeur = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'PlageValeur'), 'PlageValeur', '__httpchercheurs_edf_comlogicielsefficas_T_SIMP_httpchercheurs_edf_comlogicielsefficasPlageValeur', False, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 40, 1), )
+
+    
+    PlageValeur = property(__PlageValeur.value, __PlageValeur.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}typeAttendu uses Python identifier typeAttendu
+    __typeAttendu = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'typeAttendu'), 'typeAttendu', '__httpchercheurs_edf_comlogicielsefficas_T_SIMP_httpchercheurs_edf_comlogicielsefficastypeAttendu', False, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 41, 1), )
+
+    
+    typeAttendu = property(__typeAttendu.value, __typeAttendu.set, None, None)
+
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}portee uses Python identifier portee
+    __portee = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'portee'), 'portee', '__httpchercheurs_edf_comlogicielsefficas_T_SIMP_httpchercheurs_edf_comlogicielsefficasportee', False, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 44, 1), )
+
+    
+    portee = property(__portee.value, __portee.set, None, None)
+
+    
+    # Attribute {http://chercheurs.edf.com/logiciels/efficas}nom uses Python identifier nom
+    __nom = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(Namespace, u'nom'), 'nom', '__httpchercheurs_edf_comlogicielsefficas_T_SIMP_httpchercheurs_edf_comlogicielsefficasnom', AT_nom, required=True)
+    __nom._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 51, 1)
+    __nom._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 181, 2)
+    
+    nom = property(__nom.value, __nom.set, None, None)
+
+    
+    # Attribute {http://chercheurs.edf.com/logiciels/efficas}statut uses Python identifier statut
+    __statut = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(Namespace, u'statut'), 'statut', '__httpchercheurs_edf_comlogicielsefficas_T_SIMP_httpchercheurs_edf_comlogicielsefficasstatut', AT_statut, unicode_default=u'o')
+    __statut._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 57, 1)
+    __statut._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 182, 2)
+    
+    statut = property(__statut.value, __statut.set, None, None)
+
+    
+    # Attribute {http://chercheurs.edf.com/logiciels/efficas}max_occurs uses Python identifier max_occurs
+    __max_occurs = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(Namespace, u'max_occurs'), 'max_occurs', '__httpchercheurs_edf_comlogicielsefficas_T_SIMP_httpchercheurs_edf_comlogicielsefficasmax_occurs', AT_max_occurs, unicode_default=u'1')
+    __max_occurs._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 58, 1)
+    __max_occurs._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 184, 2)
+    
+    max_occurs = property(__max_occurs.value, __max_occurs.set, None, None)
+
+    
+    # Attribute {http://chercheurs.edf.com/logiciels/efficas}min_occurs uses Python identifier min_occurs
+    __min_occurs = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(Namespace, u'min_occurs'), 'min_occurs', '__httpchercheurs_edf_comlogicielsefficas_T_SIMP_httpchercheurs_edf_comlogicielsefficasmin_occurs', AT_min_occurs, unicode_default=u'1')
+    __min_occurs._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 59, 1)
+    __min_occurs._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 183, 2)
+    
+    min_occurs = property(__min_occurs.value, __min_occurs.set, None, None)
+
+    _ElementMap.update({
+        __doc.name() : __doc,
+        __ValeurDef.name() : __ValeurDef,
+        __ValeurSugg.name() : __ValeurSugg,
+        __validators.name() : __validators,
+        __PlageValeur.name() : __PlageValeur,
+        __typeAttendu.name() : __typeAttendu,
+        __portee.name() : __portee
+    })
+    _AttributeMap.update({
+        __nom.name() : __nom,
+        __statut.name() : __statut,
+        __max_occurs.name() : __max_occurs,
+        __min_occurs.name() : __min_occurs
+    })
+Namespace.addCategoryObject('typeBinding', u'T_SIMP', T_SIMP)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_Matrice_double with content type SIMPLE
+class T_Matrice_double (pyxb.binding.basis.complexTypeDefinition):
+    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_Matrice_double with content type SIMPLE"""
+    _TypeDefinition = T_list_double
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_SIMPLE
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_Matrice_double')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 432, 1)
+    _ElementMap = {}
+    _AttributeMap = {}
+    # Base type is T_list_double
+    
+    # Attribute n uses Python identifier n
+    __n = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, u'n'), 'n', '__httpchercheurs_edf_comlogicielsefficas_T_Matrice_double_n', pyxb.binding.datatypes.integer, required=True)
+    __n._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 435, 4)
+    __n._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 435, 4)
+    
+    n = property(__n.value, __n.set, None, None)
+
+    
+    # Attribute m uses Python identifier m
+    __m = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, u'm'), 'm', '__httpchercheurs_edf_comlogicielsefficas_T_Matrice_double_m', pyxb.binding.datatypes.integer, required=True)
+    __m._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 436, 4)
+    __m._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 436, 4)
+    
+    m = property(__m.value, __m.set, None, None)
+
+    _ElementMap.update({
+        
+    })
+    _AttributeMap.update({
+        __n.name() : __n,
+        __m.name() : __m
+    })
+Namespace.addCategoryObject('typeBinding', u'T_Matrice_double', T_Matrice_double)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_Matrice_Symetrique_double with content type SIMPLE
+class T_Matrice_Symetrique_double (pyxb.binding.basis.complexTypeDefinition):
+    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_Matrice_Symetrique_double with content type SIMPLE"""
+    _TypeDefinition = T_list_double
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_SIMPLE
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_Matrice_Symetrique_double')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 441, 1)
+    _ElementMap = {}
+    _AttributeMap = {}
+    # Base type is T_list_double
+    
+    # Attribute n uses Python identifier n
+    __n = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, u'n'), 'n', '__httpchercheurs_edf_comlogicielsefficas_T_Matrice_Symetrique_double_n', pyxb.binding.datatypes.int, required=True)
+    __n._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 444, 4)
+    __n._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 444, 4)
+    
+    n = property(__n.value, __n.set, None, None)
+
+    _ElementMap.update({
+        
+    })
+    _AttributeMap.update({
+        __n.name() : __n
+    })
+Namespace.addCategoryObject('typeBinding', u'T_Matrice_Symetrique_double', T_Matrice_Symetrique_double)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_typeAttendu with content type ELEMENT_ONLY
+class T_typeAttendu (T_into):
+    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_typeAttendu with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_typeAttendu')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 512, 1)
+    _ElementMap = T_into._ElementMap.copy()
+    _AttributeMap = T_into._AttributeMap.copy()
+    # Base type is T_into
+    
+    # Element typesimple ({http://chercheurs.edf.com/logiciels/efficas}typesimple) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_into
+    
+    # Element matrice_double ({http://chercheurs.edf.com/logiciels/efficas}matrice_double) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_into
+    
+    # Element matrice_symetrique_double ({http://chercheurs.edf.com/logiciels/efficas}matrice_symetrique_double) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_into
+    
+    # Element tuple ({http://chercheurs.edf.com/logiciels/efficas}tuple) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_into
+    
+    # Element classe_utilisateur ({http://chercheurs.edf.com/logiciels/efficas}classe_utilisateur) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_into
+    _ElementMap.update({
+        
+    })
+    _AttributeMap.update({
+        
+    })
+Namespace.addCategoryObject('typeBinding', u'T_typeAttendu', T_typeAttendu)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_OPER with content type ELEMENT_ONLY
+class T_OPER (T_Accas_Common):
+    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_OPER with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_OPER')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 100, 1)
+    _ElementMap = T_Accas_Common._ElementMap.copy()
+    _AttributeMap = T_Accas_Common._AttributeMap.copy()
+    # Base type is T_Accas_Common
+    
+    # Element doc ({http://chercheurs.edf.com/logiciels/efficas}doc) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
+    
+    # Element regles ({http://chercheurs.edf.com/logiciels/efficas}regles) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}typeCree uses Python identifier typeCree
+    __typeCree = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'typeCree'), 'typeCree', '__httpchercheurs_edf_comlogicielsefficas_T_OPER_httpchercheurs_edf_comlogicielsefficastypeCree', False, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 7, 1), )
+
+    
+    typeCree = property(__typeCree.value, __typeCree.set, None, None)
+
+    
+    # Element SIMP ({http://chercheurs.edf.com/logiciels/efficas}SIMP) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
+    
+    # Element FACT ({http://chercheurs.edf.com/logiciels/efficas}FACT) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
+    
+    # Element BLOC ({http://chercheurs.edf.com/logiciels/efficas}BLOC) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
+    
+    # Attribute nom inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
+    
+    # Attribute {http://chercheurs.edf.com/logiciels/efficas}subroutine uses Python identifier subroutine
+    __subroutine = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(Namespace, u'subroutine'), 'subroutine', '__httpchercheurs_edf_comlogicielsefficas_T_OPER_httpchercheurs_edf_comlogicielsefficassubroutine', AT_subroutine, unicode_default=u'None')
+    __subroutine._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 60, 1)
+    __subroutine._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 106, 4)
+    
+    subroutine = property(__subroutine.value, __subroutine.set, None, None)
+
+    _ElementMap.update({
+        __typeCree.name() : __typeCree
+    })
+    _AttributeMap.update({
+        __subroutine.name() : __subroutine
+    })
+Namespace.addCategoryObject('typeBinding', u'T_OPER', T_OPER)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_PROC with content type ELEMENT_ONLY
+class T_PROC (T_Accas_Common):
+    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_PROC with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_PROC')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 116, 1)
+    _ElementMap = T_Accas_Common._ElementMap.copy()
+    _AttributeMap = T_Accas_Common._AttributeMap.copy()
+    # Base type is T_Accas_Common
+    
+    # Element doc ({http://chercheurs.edf.com/logiciels/efficas}doc) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
+    
+    # Element regles ({http://chercheurs.edf.com/logiciels/efficas}regles) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
+    
+    # Element SIMP ({http://chercheurs.edf.com/logiciels/efficas}SIMP) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
+    
+    # Element FACT ({http://chercheurs.edf.com/logiciels/efficas}FACT) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
+    
+    # Element BLOC ({http://chercheurs.edf.com/logiciels/efficas}BLOC) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
+    
+    # Attribute nom inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
+    
+    # Attribute {http://chercheurs.edf.com/logiciels/efficas}subroutine uses Python identifier subroutine
+    __subroutine = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(Namespace, u'subroutine'), 'subroutine', '__httpchercheurs_edf_comlogicielsefficas_T_PROC_httpchercheurs_edf_comlogicielsefficassubroutine', AT_subroutine, unicode_default=u'None')
+    __subroutine._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 60, 1)
+    __subroutine._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 119, 4)
+    
+    subroutine = property(__subroutine.value, __subroutine.set, None, None)
+
+    _ElementMap.update({
+        
+    })
+    _AttributeMap.update({
+        __subroutine.name() : __subroutine
+    })
+Namespace.addCategoryObject('typeBinding', u'T_PROC', T_PROC)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_FACT with content type ELEMENT_ONLY
+class T_FACT (T_Accas_Common):
+    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_FACT with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_FACT')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 139, 1)
+    _ElementMap = T_Accas_Common._ElementMap.copy()
+    _AttributeMap = T_Accas_Common._AttributeMap.copy()
+    # Base type is T_Accas_Common
+    
+    # Element doc ({http://chercheurs.edf.com/logiciels/efficas}doc) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
+    
+    # Element regles ({http://chercheurs.edf.com/logiciels/efficas}regles) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
+    
+    # Element SIMP ({http://chercheurs.edf.com/logiciels/efficas}SIMP) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
+    
+    # Element FACT ({http://chercheurs.edf.com/logiciels/efficas}FACT) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
+    
+    # Element BLOC ({http://chercheurs.edf.com/logiciels/efficas}BLOC) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
+    
+    # Attribute nom inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
+    
+    # Attribute {http://chercheurs.edf.com/logiciels/efficas}statut uses Python identifier statut
+    __statut = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(Namespace, u'statut'), 'statut', '__httpchercheurs_edf_comlogicielsefficas_T_FACT_httpchercheurs_edf_comlogicielsefficasstatut', AT_statut, unicode_default=u'o')
+    __statut._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 57, 1)
+    __statut._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 142, 4)
+    
+    statut = property(__statut.value, __statut.set, None, None)
+
+    
+    # Attribute {http://chercheurs.edf.com/logiciels/efficas}max_occurs uses Python identifier max_occurs
+    __max_occurs = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(Namespace, u'max_occurs'), 'max_occurs', '__httpchercheurs_edf_comlogicielsefficas_T_FACT_httpchercheurs_edf_comlogicielsefficasmax_occurs', AT_max_occurs, unicode_default=u'1')
+    __max_occurs._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 58, 1)
+    __max_occurs._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 144, 4)
+    
+    max_occurs = property(__max_occurs.value, __max_occurs.set, None, None)
+
+    
+    # Attribute {http://chercheurs.edf.com/logiciels/efficas}min_occurs uses Python identifier min_occurs
+    __min_occurs = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(Namespace, u'min_occurs'), 'min_occurs', '__httpchercheurs_edf_comlogicielsefficas_T_FACT_httpchercheurs_edf_comlogicielsefficasmin_occurs', AT_min_occurs, unicode_default=u'1')
+    __min_occurs._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 59, 1)
+    __min_occurs._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 143, 4)
+    
+    min_occurs = property(__min_occurs.value, __min_occurs.set, None, None)
+
+    _ElementMap.update({
+        
+    })
+    _AttributeMap.update({
+        __statut.name() : __statut,
+        __max_occurs.name() : __max_occurs,
+        __min_occurs.name() : __min_occurs
+    })
+Namespace.addCategoryObject('typeBinding', u'T_FACT', T_FACT)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_BLOC with content type ELEMENT_ONLY
+class T_BLOC (T_Accas_Common):
+    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_BLOC with content type ELEMENT_ONLY"""
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_BLOC')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 158, 1)
+    _ElementMap = T_Accas_Common._ElementMap.copy()
+    _AttributeMap = T_Accas_Common._AttributeMap.copy()
+    # Base type is T_Accas_Common
+    
+    # Element doc ({http://chercheurs.edf.com/logiciels/efficas}doc) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
+    
+    # Element regles ({http://chercheurs.edf.com/logiciels/efficas}regles) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
+    
+    # Element SIMP ({http://chercheurs.edf.com/logiciels/efficas}SIMP) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
+    
+    # Element {http://chercheurs.edf.com/logiciels/efficas}condition uses Python identifier condition
+    __condition = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, u'condition'), 'condition', '__httpchercheurs_edf_comlogicielsefficas_T_BLOC_httpchercheurs_edf_comlogicielsefficascondition', False, pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 45, 1), )
+
+    
+    condition = property(__condition.value, __condition.set, None, None)
+
+    
+    # Element FACT ({http://chercheurs.edf.com/logiciels/efficas}FACT) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
+    
+    # Element BLOC ({http://chercheurs.edf.com/logiciels/efficas}BLOC) inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
+    
+    # Attribute nom inherited from {http://chercheurs.edf.com/logiciels/efficas}T_Accas.Common
+    _ElementMap.update({
+        __condition.name() : __condition
+    })
+    _AttributeMap.update({
+        
+    })
+Namespace.addCategoryObject('typeBinding', u'T_BLOC', T_BLOC)
+
+
+# Complex type {http://chercheurs.edf.com/logiciels/efficas}T_classe_utilisateur_username with content type SIMPLE
+class T_classe_utilisateur_username (pyxb.binding.basis.complexTypeDefinition):
+    """Complex type {http://chercheurs.edf.com/logiciels/efficas}T_classe_utilisateur_username with content type SIMPLE"""
+    _TypeDefinition = T_classe_utilisateur_name
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_SIMPLE
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'T_classe_utilisateur_username')
+    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 376, 1)
+    _ElementMap = {}
+    _AttributeMap = {}
+    # Base type is T_classe_utilisateur_name
+    
+    # Attribute {http://chercheurs.edf.com/logiciels/efficas}nom uses Python identifier nom
+    __nom = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(Namespace, u'nom'), 'nom', '__httpchercheurs_edf_comlogicielsefficas_T_classe_utilisateur_username_httpchercheurs_edf_comlogicielsefficasnom', AT_nom, required=True)
+    __nom._DeclarationLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 51, 1)
+    __nom._UseLocation = pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 379, 4)
+    
+    nom = property(__nom.value, __nom.set, None, None)
+
+    _ElementMap.update({
+        
+    })
+    _AttributeMap.update({
+        __nom.name() : __nom
+    })
+Namespace.addCategoryObject('typeBinding', u'T_classe_utilisateur_username', T_classe_utilisateur_username)
+
+
+cata = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'cata'), T_cata, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 5, 1))
+Namespace.addCategoryObject('elementBinding', cata.name().localName(), cata)
+
+regles = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'regles'), T_regles, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 6, 1))
+Namespace.addCategoryObject('elementBinding', regles.name().localName(), regles)
+
+fonction_utilisateur = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'fonction_utilisateur'), T_fonction_python, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 10, 1))
+Namespace.addCategoryObject('elementBinding', fonction_utilisateur.name().localName(), fonction_utilisateur)
+
+commandes = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'commandes'), T_commandes, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 11, 1))
+Namespace.addCategoryObject('elementBinding', commandes.name().localName(), commandes)
+
+validators = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'validators'), T_validators, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 39, 1))
+Namespace.addCategoryObject('elementBinding', validators.name().localName(), validators)
+
+PlageValeur = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'PlageValeur'), T_PlageValeur, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 40, 1))
+Namespace.addCategoryObject('elementBinding', PlageValeur.name().localName(), PlageValeur)
+
+portee = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'portee'), T_portee, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 44, 1), unicode_default=u'None')
+Namespace.addCategoryObject('elementBinding', portee.name().localName(), portee)
+
+condition = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'condition'), T_fonction_python, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 45, 1))
+Namespace.addCategoryObject('elementBinding', condition.name().localName(), condition)
+
+into = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'into'), T_into, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 49, 1))
+Namespace.addCategoryObject('elementBinding', into.name().localName(), into)
+
+A_CLASSER = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'A_CLASSER'), T_predicat2, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 257, 1))
+Namespace.addCategoryObject('elementBinding', A_CLASSER.name().localName(), A_CLASSER)
+
+tuple = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'tuple'), T_tuple, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 467, 1))
+Namespace.addCategoryObject('elementBinding', tuple.name().localName(), tuple)
+
+doc = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'doc'), T_doc, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 4, 1))
+Namespace.addCategoryObject('elementBinding', doc.name().localName(), doc)
+
+typeCree = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'typeCree'), T_classe_utilisateur, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 7, 1))
+Namespace.addCategoryObject('elementBinding', typeCree.name().localName(), typeCree)
+
+ValeurDef = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'ValeurDef'), T_typeAttendu, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 8, 1))
+Namespace.addCategoryObject('elementBinding', ValeurDef.name().localName(), ValeurDef)
+
+ValeurSugg = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'ValeurSugg'), T_typeAttendu, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 9, 1))
+Namespace.addCategoryObject('elementBinding', ValeurSugg.name().localName(), ValeurSugg)
+
+SIMP = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'SIMP'), T_SIMP, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 43, 1))
+Namespace.addCategoryObject('elementBinding', SIMP.name().localName(), SIMP)
+
+borne_sup = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'borne_sup'), T_typeAttendu, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 46, 1))
+Namespace.addCategoryObject('elementBinding', borne_sup.name().localName(), borne_sup)
+
+borne_inf = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'borne_inf'), T_typeAttendu, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 47, 1))
+Namespace.addCategoryObject('elementBinding', borne_inf.name().localName(), borne_inf)
+
+AU_MOINS_UN = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'AU_MOINS_UN'), T_predicat1, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 258, 1))
+Namespace.addCategoryObject('elementBinding', AU_MOINS_UN.name().localName(), AU_MOINS_UN)
+
+AU_PLUS_UN = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'AU_PLUS_UN'), T_predicat1, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 259, 1))
+Namespace.addCategoryObject('elementBinding', AU_PLUS_UN.name().localName(), AU_PLUS_UN)
+
+ENSEMBLE = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'ENSEMBLE'), T_predicat1, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 260, 1))
+Namespace.addCategoryObject('elementBinding', ENSEMBLE.name().localName(), ENSEMBLE)
+
+EXCLUS = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'EXCLUS'), T_predicat1, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 261, 1))
+Namespace.addCategoryObject('elementBinding', EXCLUS.name().localName(), EXCLUS)
+
+PRESENT_ABSENT = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'PRESENT_ABSENT'), T_predicat1, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 269, 1))
+Namespace.addCategoryObject('elementBinding', PRESENT_ABSENT.name().localName(), PRESENT_ABSENT)
+
+PRESENT_PRESENT = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'PRESENT_PRESENT'), T_predicat1, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 270, 1))
+Namespace.addCategoryObject('elementBinding', PRESENT_PRESENT.name().localName(), PRESENT_PRESENT)
+
+UN_PARMI = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'UN_PARMI'), T_predicat1, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 271, 1))
+Namespace.addCategoryObject('elementBinding', UN_PARMI.name().localName(), UN_PARMI)
+
+matrice_double = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'matrice_double'), T_Matrice_double, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 465, 1))
+Namespace.addCategoryObject('elementBinding', matrice_double.name().localName(), matrice_double)
+
+matrice_symetrique_double = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'matrice_symetrique_double'), T_Matrice_Symetrique_double, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 466, 1))
+Namespace.addCategoryObject('elementBinding', matrice_symetrique_double.name().localName(), matrice_symetrique_double)
+
+classe_utilisateur = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'classe_utilisateur'), T_classe_utilisateur, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 468, 1))
+Namespace.addCategoryObject('elementBinding', classe_utilisateur.name().localName(), classe_utilisateur)
+
+OPER = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'OPER'), T_OPER, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 99, 1))
+Namespace.addCategoryObject('elementBinding', OPER.name().localName(), OPER)
+
+PROC = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'PROC'), T_PROC, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 110, 1))
+Namespace.addCategoryObject('elementBinding', PROC.name().localName(), PROC)
+
+FACT = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'FACT'), T_FACT, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 123, 1))
+Namespace.addCategoryObject('elementBinding', FACT.name().localName(), FACT)
+
+BLOC = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'BLOC'), T_BLOC, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 157, 1))
+Namespace.addCategoryObject('elementBinding', BLOC.name().localName(), BLOC)
+
+typeAttendu = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'typeAttendu'), T_name, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 41, 1))
+Namespace.addCategoryObject('elementBinding', typeAttendu.name().localName(), typeAttendu)
+
+typesimple = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'typesimple'), T_simple, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 464, 1))
+Namespace.addCategoryObject('elementBinding', typesimple.name().localName(), typesimple)
+
+classeUtilisateurName = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'classeUtilisateurName'), T_classe_utilisateur_username, abstract=pyxb.binding.datatypes.boolean(1), location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 42, 1))
+Namespace.addCategoryObject('elementBinding', classeUtilisateurName.name().localName(), classeUtilisateurName)
+
+
+
+T_cata._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'commandes'), T_commandes, scope=T_cata, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 11, 1)))
+
+def _BuildAutomaton ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton
+    del _BuildAutomaton
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0L, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 68, 3))
+    counters.add(cc_0)
+    states = []
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_0, False))
+    symbol = pyxb.binding.content.ElementUse(T_cata._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'commandes')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 68, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_0, True) ]))
+    st_0._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, True, containing_state=None)
+T_cata._Automaton = _BuildAutomaton()
+
+
+
+
+T_commandes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'OPER'), T_OPER, scope=T_commandes, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 99, 1)))
+
+T_commandes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'PROC'), T_PROC, scope=T_commandes, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 110, 1)))
+
+def _BuildAutomaton_ ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_
+    del _BuildAutomaton_
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0L, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 72, 2))
+    counters.add(cc_0)
+    states = []
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_0, False))
+    symbol = pyxb.binding.content.ElementUse(T_commandes._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'OPER')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 73, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_0, False))
+    symbol = pyxb.binding.content.ElementUse(T_commandes._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'PROC')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 74, 3))
+    st_1 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_1)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_0, True) ]))
+    transitions.append(fac.Transition(st_1, [
+        fac.UpdateInstruction(cc_0, True) ]))
+    st_0._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_0, True) ]))
+    transitions.append(fac.Transition(st_1, [
+        fac.UpdateInstruction(cc_0, True) ]))
+    st_1._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, True, containing_state=None)
+T_commandes._Automaton = _BuildAutomaton_()
+
+
+
+
+T_PlageValeur._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'borne_sup'), T_typeAttendu, scope=T_PlageValeur, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 46, 1)))
+
+T_PlageValeur._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'borne_inf'), T_typeAttendu, scope=T_PlageValeur, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 47, 1)))
+
+T_PlageValeur._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'into'), T_into, scope=T_PlageValeur, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 49, 1)))
+
+def _BuildAutomaton_2 ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_2
+    del _BuildAutomaton_2
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 81, 4))
+    counters.add(cc_0)
+    cc_1 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 82, 4))
+    counters.add(cc_1)
+    states = []
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_0, False))
+    symbol = pyxb.binding.content.ElementUse(T_PlageValeur._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'borne_sup')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 81, 4))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_1, False))
+    symbol = pyxb.binding.content.ElementUse(T_PlageValeur._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'borne_inf')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 82, 4))
+    st_1 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_1)
+    final_update = set()
+    symbol = pyxb.binding.content.ElementUse(T_PlageValeur._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'into')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 84, 3))
+    st_2 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_2)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_0, True) ]))
+    transitions.append(fac.Transition(st_1, [
+        fac.UpdateInstruction(cc_0, False) ]))
+    st_0._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_1, [
+        fac.UpdateInstruction(cc_1, True) ]))
+    st_1._set_transitionSet(transitions)
+    transitions = []
+    st_2._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, True, containing_state=None)
+T_PlageValeur._Automaton = _BuildAutomaton_2()
+
+
+
+
+T_predicat2._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'p1'), T_predicat1, scope=T_predicat2, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 252, 3)))
+
+T_predicat2._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'p2'), AT_nom, scope=T_predicat2, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 253, 3)))
+
+def _BuildAutomaton_3 ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_3
+    del _BuildAutomaton_3
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    states = []
+    final_update = None
+    symbol = pyxb.binding.content.ElementUse(T_predicat2._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'p1')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 252, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    final_update = set()
+    symbol = pyxb.binding.content.ElementUse(T_predicat2._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'p2')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 253, 3))
+    st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_1)
+    transitions = []
+    transitions.append(fac.Transition(st_1, [
+         ]))
+    st_0._set_transitionSet(transitions)
+    transitions = []
+    st_1._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, False, containing_state=None)
+T_predicat2._Automaton = _BuildAutomaton_3()
+
+
+
+
+T_regles._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'A_CLASSER'), T_predicat2, scope=T_regles, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 257, 1)))
+
+T_regles._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'AU_MOINS_UN'), T_predicat1, scope=T_regles, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 258, 1)))
+
+T_regles._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'AU_PLUS_UN'), T_predicat1, scope=T_regles, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 259, 1)))
+
+T_regles._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'ENSEMBLE'), T_predicat1, scope=T_regles, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 260, 1)))
+
+T_regles._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'EXCLUS'), T_predicat1, scope=T_regles, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 261, 1)))
+
+T_regles._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'PRESENT_ABSENT'), T_predicat1, scope=T_regles, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 269, 1)))
+
+T_regles._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'PRESENT_PRESENT'), T_predicat1, scope=T_regles, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 270, 1)))
+
+T_regles._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'UN_PARMI'), T_predicat1, scope=T_regles, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 271, 1)))
+
+def _BuildAutomaton_4 ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_4
+    del _BuildAutomaton_4
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    states = []
+    final_update = set()
+    symbol = pyxb.binding.content.ElementUse(T_regles._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'A_CLASSER')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 274, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    final_update = set()
+    symbol = pyxb.binding.content.ElementUse(T_regles._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'AU_MOINS_UN')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 275, 3))
+    st_1 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_1)
+    final_update = set()
+    symbol = pyxb.binding.content.ElementUse(T_regles._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'AU_PLUS_UN')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 276, 3))
+    st_2 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_2)
+    final_update = set()
+    symbol = pyxb.binding.content.ElementUse(T_regles._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'ENSEMBLE')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 277, 3))
+    st_3 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_3)
+    final_update = set()
+    symbol = pyxb.binding.content.ElementUse(T_regles._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'EXCLUS')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 278, 3))
+    st_4 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_4)
+    final_update = set()
+    symbol = pyxb.binding.content.ElementUse(T_regles._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'PRESENT_ABSENT')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 286, 3))
+    st_5 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_5)
+    final_update = set()
+    symbol = pyxb.binding.content.ElementUse(T_regles._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'PRESENT_PRESENT')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 287, 3))
+    st_6 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_6)
+    final_update = set()
+    symbol = pyxb.binding.content.ElementUse(T_regles._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'UN_PARMI')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 288, 3))
+    st_7 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_7)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+         ]))
+    transitions.append(fac.Transition(st_1, [
+         ]))
+    transitions.append(fac.Transition(st_2, [
+         ]))
+    transitions.append(fac.Transition(st_3, [
+         ]))
+    transitions.append(fac.Transition(st_4, [
+         ]))
+    transitions.append(fac.Transition(st_5, [
+         ]))
+    transitions.append(fac.Transition(st_6, [
+         ]))
+    transitions.append(fac.Transition(st_7, [
+         ]))
+    st_0._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+         ]))
+    transitions.append(fac.Transition(st_1, [
+         ]))
+    transitions.append(fac.Transition(st_2, [
+         ]))
+    transitions.append(fac.Transition(st_3, [
+         ]))
+    transitions.append(fac.Transition(st_4, [
+         ]))
+    transitions.append(fac.Transition(st_5, [
+         ]))
+    transitions.append(fac.Transition(st_6, [
+         ]))
+    transitions.append(fac.Transition(st_7, [
+         ]))
+    st_1._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+         ]))
+    transitions.append(fac.Transition(st_1, [
+         ]))
+    transitions.append(fac.Transition(st_2, [
+         ]))
+    transitions.append(fac.Transition(st_3, [
+         ]))
+    transitions.append(fac.Transition(st_4, [
+         ]))
+    transitions.append(fac.Transition(st_5, [
+         ]))
+    transitions.append(fac.Transition(st_6, [
+         ]))
+    transitions.append(fac.Transition(st_7, [
+         ]))
+    st_2._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+         ]))
+    transitions.append(fac.Transition(st_1, [
+         ]))
+    transitions.append(fac.Transition(st_2, [
+         ]))
+    transitions.append(fac.Transition(st_3, [
+         ]))
+    transitions.append(fac.Transition(st_4, [
+         ]))
+    transitions.append(fac.Transition(st_5, [
+         ]))
+    transitions.append(fac.Transition(st_6, [
+         ]))
+    transitions.append(fac.Transition(st_7, [
+         ]))
+    st_3._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+         ]))
+    transitions.append(fac.Transition(st_1, [
+         ]))
+    transitions.append(fac.Transition(st_2, [
+         ]))
+    transitions.append(fac.Transition(st_3, [
+         ]))
+    transitions.append(fac.Transition(st_4, [
+         ]))
+    transitions.append(fac.Transition(st_5, [
+         ]))
+    transitions.append(fac.Transition(st_6, [
+         ]))
+    transitions.append(fac.Transition(st_7, [
+         ]))
+    st_4._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+         ]))
+    transitions.append(fac.Transition(st_1, [
+         ]))
+    transitions.append(fac.Transition(st_2, [
+         ]))
+    transitions.append(fac.Transition(st_3, [
+         ]))
+    transitions.append(fac.Transition(st_4, [
+         ]))
+    transitions.append(fac.Transition(st_5, [
+         ]))
+    transitions.append(fac.Transition(st_6, [
+         ]))
+    transitions.append(fac.Transition(st_7, [
+         ]))
+    st_5._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+         ]))
+    transitions.append(fac.Transition(st_1, [
+         ]))
+    transitions.append(fac.Transition(st_2, [
+         ]))
+    transitions.append(fac.Transition(st_3, [
+         ]))
+    transitions.append(fac.Transition(st_4, [
+         ]))
+    transitions.append(fac.Transition(st_5, [
+         ]))
+    transitions.append(fac.Transition(st_6, [
+         ]))
+    transitions.append(fac.Transition(st_7, [
+         ]))
+    st_6._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+         ]))
+    transitions.append(fac.Transition(st_1, [
+         ]))
+    transitions.append(fac.Transition(st_2, [
+         ]))
+    transitions.append(fac.Transition(st_3, [
+         ]))
+    transitions.append(fac.Transition(st_4, [
+         ]))
+    transitions.append(fac.Transition(st_5, [
+         ]))
+    transitions.append(fac.Transition(st_6, [
+         ]))
+    transitions.append(fac.Transition(st_7, [
+         ]))
+    st_7._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, False, containing_state=None)
+T_regles._Automaton = _BuildAutomaton_4()
+
+
+
+
+T_into._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'fonction_utilisateur'), T_fonction_python, scope=T_into, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 10, 1)))
+
+T_into._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'typesimple'), T_simple, scope=T_into, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 464, 1)))
+
+T_into._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'matrice_double'), T_Matrice_double, scope=T_into, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 465, 1)))
+
+T_into._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'matrice_symetrique_double'), T_Matrice_Symetrique_double, scope=T_into, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 466, 1)))
+
+T_into._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'tuple'), T_tuple, scope=T_into, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 467, 1)))
+
+T_into._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'classe_utilisateur'), T_classe_utilisateur, scope=T_into, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 468, 1)))
+
+def _BuildAutomaton_5 ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_5
+    del _BuildAutomaton_5
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0L, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 504, 3))
+    counters.add(cc_0)
+    cc_1 = fac.CounterCondition(min=0L, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 505, 3))
+    counters.add(cc_1)
+    cc_2 = fac.CounterCondition(min=0L, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 506, 3))
+    counters.add(cc_2)
+    cc_3 = fac.CounterCondition(min=0L, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 507, 3))
+    counters.add(cc_3)
+    cc_4 = fac.CounterCondition(min=0L, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 508, 3))
+    counters.add(cc_4)
+    states = []
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_0, False))
+    symbol = pyxb.binding.content.ElementUse(T_into._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'typesimple')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 504, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_1, False))
+    symbol = pyxb.binding.content.ElementUse(T_into._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'matrice_double')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 505, 3))
+    st_1 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_1)
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_2, False))
+    symbol = pyxb.binding.content.ElementUse(T_into._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'matrice_symetrique_double')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 506, 3))
+    st_2 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_2)
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_3, False))
+    symbol = pyxb.binding.content.ElementUse(T_into._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'tuple')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 507, 3))
+    st_3 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_3)
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_4, False))
+    symbol = pyxb.binding.content.ElementUse(T_into._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'classe_utilisateur')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 508, 3))
+    st_4 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_4)
+    final_update = set()
+    symbol = pyxb.binding.content.ElementUse(T_into._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'fonction_utilisateur')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 509, 3))
+    st_5 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_5)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_0, True) ]))
+    st_0._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_1, [
+        fac.UpdateInstruction(cc_1, True) ]))
+    st_1._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_2, [
+        fac.UpdateInstruction(cc_2, True) ]))
+    st_2._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_3, [
+        fac.UpdateInstruction(cc_3, True) ]))
+    st_3._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_4, [
+        fac.UpdateInstruction(cc_4, True) ]))
+    st_4._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_5, [
+         ]))
+    st_5._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, True, containing_state=None)
+T_into._Automaton = _BuildAutomaton_5()
+
+
+
+
+T_Accas_Common._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'doc'), T_doc, scope=T_Accas_Common, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 4, 1)))
+
+T_Accas_Common._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'regles'), T_regles, scope=T_Accas_Common, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 6, 1)))
+
+T_Accas_Common._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'SIMP'), T_SIMP, scope=T_Accas_Common, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 43, 1)))
+
+T_Accas_Common._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'FACT'), T_FACT, scope=T_Accas_Common, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 123, 1)))
+
+T_Accas_Common._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'BLOC'), T_BLOC, scope=T_Accas_Common, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 157, 1)))
+
+def _BuildAutomaton_6 ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_6
+    del _BuildAutomaton_6
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 89, 3))
+    counters.add(cc_0)
+    cc_1 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 90, 3))
+    counters.add(cc_1)
+    states = []
+    final_update = None
+    symbol = pyxb.binding.content.ElementUse(T_Accas_Common._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'regles')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 89, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    final_update = None
+    symbol = pyxb.binding.content.ElementUse(T_Accas_Common._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'doc')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 90, 3))
+    st_1 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_1)
+    final_update = set()
+    symbol = pyxb.binding.content.ElementUse(T_Accas_Common._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'BLOC')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 92, 4))
+    st_2 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_2)
+    final_update = set()
+    symbol = pyxb.binding.content.ElementUse(T_Accas_Common._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'FACT')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 93, 4))
+    st_3 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_3)
+    final_update = set()
+    symbol = pyxb.binding.content.ElementUse(T_Accas_Common._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'SIMP')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 94, 4))
+    st_4 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_4)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_0, True) ]))
+    transitions.append(fac.Transition(st_1, [
+        fac.UpdateInstruction(cc_0, False) ]))
+    transitions.append(fac.Transition(st_2, [
+        fac.UpdateInstruction(cc_0, False) ]))
+    transitions.append(fac.Transition(st_3, [
+        fac.UpdateInstruction(cc_0, False) ]))
+    transitions.append(fac.Transition(st_4, [
+        fac.UpdateInstruction(cc_0, False) ]))
+    st_0._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_1, [
+        fac.UpdateInstruction(cc_1, True) ]))
+    transitions.append(fac.Transition(st_2, [
+        fac.UpdateInstruction(cc_1, False) ]))
+    transitions.append(fac.Transition(st_3, [
+        fac.UpdateInstruction(cc_1, False) ]))
+    transitions.append(fac.Transition(st_4, [
+        fac.UpdateInstruction(cc_1, False) ]))
+    st_1._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_2, [
+         ]))
+    transitions.append(fac.Transition(st_3, [
+         ]))
+    transitions.append(fac.Transition(st_4, [
+         ]))
+    st_2._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_2, [
+         ]))
+    transitions.append(fac.Transition(st_3, [
+         ]))
+    transitions.append(fac.Transition(st_4, [
+         ]))
+    st_3._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_2, [
+         ]))
+    transitions.append(fac.Transition(st_3, [
+         ]))
+    transitions.append(fac.Transition(st_4, [
+         ]))
+    st_4._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, False, containing_state=None)
+T_Accas_Common._Automaton = _BuildAutomaton_6()
+
+
+
+
+T_SIMP._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'doc'), T_doc, scope=T_SIMP, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 4, 1)))
+
+T_SIMP._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'ValeurDef'), T_typeAttendu, scope=T_SIMP, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 8, 1)))
+
+T_SIMP._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'ValeurSugg'), T_typeAttendu, scope=T_SIMP, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 9, 1)))
+
+T_SIMP._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'validators'), T_validators, scope=T_SIMP, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 39, 1)))
+
+T_SIMP._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'PlageValeur'), T_PlageValeur, scope=T_SIMP, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 40, 1)))
+
+T_SIMP._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'typeAttendu'), T_name, scope=T_SIMP, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 41, 1)))
+
+T_SIMP._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'portee'), T_portee, scope=T_SIMP, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 44, 1), unicode_default=u'None'))
+
+def _BuildAutomaton_7 ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_7
+    del _BuildAutomaton_7
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 169, 3))
+    counters.add(cc_0)
+    cc_1 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 170, 3))
+    counters.add(cc_1)
+    cc_2 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 175, 3))
+    counters.add(cc_2)
+    cc_3 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 176, 3))
+    counters.add(cc_3)
+    cc_4 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 177, 3))
+    counters.add(cc_4)
+    cc_5 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 179, 3))
+    counters.add(cc_5)
+    states = []
+    final_update = None
+    symbol = pyxb.binding.content.ElementUse(T_SIMP._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'doc')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 169, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    final_update = None
+    symbol = pyxb.binding.content.ElementUse(T_SIMP._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'portee')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 170, 3))
+    st_1 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_1)
+    final_update = None
+    symbol = pyxb.binding.content.ElementUse(T_SIMP._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'ValeurDef')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 175, 3))
+    st_2 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_2)
+    final_update = None
+    symbol = pyxb.binding.content.ElementUse(T_SIMP._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'ValeurSugg')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 176, 3))
+    st_3 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_3)
+    final_update = None
+    symbol = pyxb.binding.content.ElementUse(T_SIMP._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'PlageValeur')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 177, 3))
+    st_4 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_4)
+    final_update = set()
+    symbol = pyxb.binding.content.ElementUse(T_SIMP._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'typeAttendu')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 178, 3))
+    st_5 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_5)
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_5, False))
+    symbol = pyxb.binding.content.ElementUse(T_SIMP._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'validators')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 179, 3))
+    st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_6)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_0, True) ]))
+    transitions.append(fac.Transition(st_1, [
+        fac.UpdateInstruction(cc_0, False) ]))
+    transitions.append(fac.Transition(st_2, [
+        fac.UpdateInstruction(cc_0, False) ]))
+    transitions.append(fac.Transition(st_3, [
+        fac.UpdateInstruction(cc_0, False) ]))
+    transitions.append(fac.Transition(st_4, [
+        fac.UpdateInstruction(cc_0, False) ]))
+    transitions.append(fac.Transition(st_5, [
+        fac.UpdateInstruction(cc_0, False) ]))
+    st_0._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_1, [
+        fac.UpdateInstruction(cc_1, True) ]))
+    transitions.append(fac.Transition(st_2, [
+        fac.UpdateInstruction(cc_1, False) ]))
+    transitions.append(fac.Transition(st_3, [
+        fac.UpdateInstruction(cc_1, False) ]))
+    transitions.append(fac.Transition(st_4, [
+        fac.UpdateInstruction(cc_1, False) ]))
+    transitions.append(fac.Transition(st_5, [
+        fac.UpdateInstruction(cc_1, False) ]))
+    st_1._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_2, [
+        fac.UpdateInstruction(cc_2, True) ]))
+    transitions.append(fac.Transition(st_3, [
+        fac.UpdateInstruction(cc_2, False) ]))
+    transitions.append(fac.Transition(st_4, [
+        fac.UpdateInstruction(cc_2, False) ]))
+    transitions.append(fac.Transition(st_5, [
+        fac.UpdateInstruction(cc_2, False) ]))
+    st_2._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_3, [
+        fac.UpdateInstruction(cc_3, True) ]))
+    transitions.append(fac.Transition(st_4, [
+        fac.UpdateInstruction(cc_3, False) ]))
+    transitions.append(fac.Transition(st_5, [
+        fac.UpdateInstruction(cc_3, False) ]))
+    st_3._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_4, [
+        fac.UpdateInstruction(cc_4, True) ]))
+    transitions.append(fac.Transition(st_5, [
+        fac.UpdateInstruction(cc_4, False) ]))
+    st_4._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_6, [
+         ]))
+    st_5._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_6, [
+        fac.UpdateInstruction(cc_5, True) ]))
+    st_6._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, False, containing_state=None)
+T_SIMP._Automaton = _BuildAutomaton_7()
+
+
+
+
+def _BuildAutomaton_8 ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_8
+    del _BuildAutomaton_8
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0L, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 516, 5))
+    counters.add(cc_0)
+    cc_1 = fac.CounterCondition(min=0L, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 517, 5))
+    counters.add(cc_1)
+    cc_2 = fac.CounterCondition(min=0L, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 518, 5))
+    counters.add(cc_2)
+    cc_3 = fac.CounterCondition(min=0L, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 519, 5))
+    counters.add(cc_3)
+    cc_4 = fac.CounterCondition(min=0L, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 520, 5))
+    counters.add(cc_4)
+    states = []
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_0, False))
+    symbol = pyxb.binding.content.ElementUse(T_typeAttendu._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'typesimple')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 516, 5))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_1, False))
+    symbol = pyxb.binding.content.ElementUse(T_typeAttendu._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'matrice_double')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 517, 5))
+    st_1 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_1)
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_2, False))
+    symbol = pyxb.binding.content.ElementUse(T_typeAttendu._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'matrice_symetrique_double')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 518, 5))
+    st_2 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_2)
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_3, False))
+    symbol = pyxb.binding.content.ElementUse(T_typeAttendu._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'tuple')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 519, 5))
+    st_3 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_3)
+    final_update = set()
+    final_update.add(fac.UpdateInstruction(cc_4, False))
+    symbol = pyxb.binding.content.ElementUse(T_typeAttendu._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'classe_utilisateur')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 520, 5))
+    st_4 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_4)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_0, True) ]))
+    st_0._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_1, [
+        fac.UpdateInstruction(cc_1, True) ]))
+    st_1._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_2, [
+        fac.UpdateInstruction(cc_2, True) ]))
+    st_2._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_3, [
+        fac.UpdateInstruction(cc_3, True) ]))
+    st_3._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_4, [
+        fac.UpdateInstruction(cc_4, True) ]))
+    st_4._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, True, containing_state=None)
+T_typeAttendu._Automaton = _BuildAutomaton_8()
+
+
+
+
+T_OPER._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'typeCree'), T_classe_utilisateur, scope=T_OPER, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 7, 1)))
+
+def _BuildAutomaton_9 ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_9
+    del _BuildAutomaton_9
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 89, 3))
+    counters.add(cc_0)
+    cc_1 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 90, 3))
+    counters.add(cc_1)
+    states = []
+    final_update = None
+    symbol = pyxb.binding.content.ElementUse(T_OPER._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'regles')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 89, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    final_update = None
+    symbol = pyxb.binding.content.ElementUse(T_OPER._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'doc')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 90, 3))
+    st_1 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_1)
+    final_update = None
+    symbol = pyxb.binding.content.ElementUse(T_OPER._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'BLOC')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 92, 4))
+    st_2 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_2)
+    final_update = None
+    symbol = pyxb.binding.content.ElementUse(T_OPER._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'FACT')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 93, 4))
+    st_3 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_3)
+    final_update = None
+    symbol = pyxb.binding.content.ElementUse(T_OPER._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'SIMP')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 94, 4))
+    st_4 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_4)
+    final_update = set()
+    symbol = pyxb.binding.content.ElementUse(T_OPER._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'typeCree')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 104, 5))
+    st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_5)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_0, True) ]))
+    transitions.append(fac.Transition(st_1, [
+        fac.UpdateInstruction(cc_0, False) ]))
+    transitions.append(fac.Transition(st_2, [
+        fac.UpdateInstruction(cc_0, False) ]))
+    transitions.append(fac.Transition(st_3, [
+        fac.UpdateInstruction(cc_0, False) ]))
+    transitions.append(fac.Transition(st_4, [
+        fac.UpdateInstruction(cc_0, False) ]))
+    st_0._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_1, [
+        fac.UpdateInstruction(cc_1, True) ]))
+    transitions.append(fac.Transition(st_2, [
+        fac.UpdateInstruction(cc_1, False) ]))
+    transitions.append(fac.Transition(st_3, [
+        fac.UpdateInstruction(cc_1, False) ]))
+    transitions.append(fac.Transition(st_4, [
+        fac.UpdateInstruction(cc_1, False) ]))
+    st_1._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_2, [
+         ]))
+    transitions.append(fac.Transition(st_3, [
+         ]))
+    transitions.append(fac.Transition(st_4, [
+         ]))
+    transitions.append(fac.Transition(st_5, [
+         ]))
+    st_2._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_2, [
+         ]))
+    transitions.append(fac.Transition(st_3, [
+         ]))
+    transitions.append(fac.Transition(st_4, [
+         ]))
+    transitions.append(fac.Transition(st_5, [
+         ]))
+    st_3._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_2, [
+         ]))
+    transitions.append(fac.Transition(st_3, [
+         ]))
+    transitions.append(fac.Transition(st_4, [
+         ]))
+    transitions.append(fac.Transition(st_5, [
+         ]))
+    st_4._set_transitionSet(transitions)
+    transitions = []
+    st_5._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, False, containing_state=None)
+T_OPER._Automaton = _BuildAutomaton_9()
+
+
+
+
+def _BuildAutomaton_10 ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_10
+    del _BuildAutomaton_10
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 89, 3))
+    counters.add(cc_0)
+    cc_1 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 90, 3))
+    counters.add(cc_1)
+    states = []
+    final_update = None
+    symbol = pyxb.binding.content.ElementUse(T_PROC._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'regles')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 89, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    final_update = None
+    symbol = pyxb.binding.content.ElementUse(T_PROC._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'doc')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 90, 3))
+    st_1 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_1)
+    final_update = set()
+    symbol = pyxb.binding.content.ElementUse(T_PROC._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'BLOC')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 92, 4))
+    st_2 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_2)
+    final_update = set()
+    symbol = pyxb.binding.content.ElementUse(T_PROC._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'FACT')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 93, 4))
+    st_3 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_3)
+    final_update = set()
+    symbol = pyxb.binding.content.ElementUse(T_PROC._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'SIMP')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 94, 4))
+    st_4 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_4)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_0, True) ]))
+    transitions.append(fac.Transition(st_1, [
+        fac.UpdateInstruction(cc_0, False) ]))
+    transitions.append(fac.Transition(st_2, [
+        fac.UpdateInstruction(cc_0, False) ]))
+    transitions.append(fac.Transition(st_3, [
+        fac.UpdateInstruction(cc_0, False) ]))
+    transitions.append(fac.Transition(st_4, [
+        fac.UpdateInstruction(cc_0, False) ]))
+    st_0._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_1, [
+        fac.UpdateInstruction(cc_1, True) ]))
+    transitions.append(fac.Transition(st_2, [
+        fac.UpdateInstruction(cc_1, False) ]))
+    transitions.append(fac.Transition(st_3, [
+        fac.UpdateInstruction(cc_1, False) ]))
+    transitions.append(fac.Transition(st_4, [
+        fac.UpdateInstruction(cc_1, False) ]))
+    st_1._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_2, [
+         ]))
+    transitions.append(fac.Transition(st_3, [
+         ]))
+    transitions.append(fac.Transition(st_4, [
+         ]))
+    st_2._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_2, [
+         ]))
+    transitions.append(fac.Transition(st_3, [
+         ]))
+    transitions.append(fac.Transition(st_4, [
+         ]))
+    st_3._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_2, [
+         ]))
+    transitions.append(fac.Transition(st_3, [
+         ]))
+    transitions.append(fac.Transition(st_4, [
+         ]))
+    st_4._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, False, containing_state=None)
+T_PROC._Automaton = _BuildAutomaton_10()
+
+
+
+
+def _BuildAutomaton_11 ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_11
+    del _BuildAutomaton_11
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 89, 3))
+    counters.add(cc_0)
+    cc_1 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 90, 3))
+    counters.add(cc_1)
+    states = []
+    final_update = None
+    symbol = pyxb.binding.content.ElementUse(T_FACT._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'regles')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 89, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    final_update = None
+    symbol = pyxb.binding.content.ElementUse(T_FACT._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'doc')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 90, 3))
+    st_1 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_1)
+    final_update = set()
+    symbol = pyxb.binding.content.ElementUse(T_FACT._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'BLOC')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 92, 4))
+    st_2 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_2)
+    final_update = set()
+    symbol = pyxb.binding.content.ElementUse(T_FACT._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'FACT')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 93, 4))
+    st_3 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_3)
+    final_update = set()
+    symbol = pyxb.binding.content.ElementUse(T_FACT._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'SIMP')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 94, 4))
+    st_4 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_4)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_0, True) ]))
+    transitions.append(fac.Transition(st_1, [
+        fac.UpdateInstruction(cc_0, False) ]))
+    transitions.append(fac.Transition(st_2, [
+        fac.UpdateInstruction(cc_0, False) ]))
+    transitions.append(fac.Transition(st_3, [
+        fac.UpdateInstruction(cc_0, False) ]))
+    transitions.append(fac.Transition(st_4, [
+        fac.UpdateInstruction(cc_0, False) ]))
+    st_0._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_1, [
+        fac.UpdateInstruction(cc_1, True) ]))
+    transitions.append(fac.Transition(st_2, [
+        fac.UpdateInstruction(cc_1, False) ]))
+    transitions.append(fac.Transition(st_3, [
+        fac.UpdateInstruction(cc_1, False) ]))
+    transitions.append(fac.Transition(st_4, [
+        fac.UpdateInstruction(cc_1, False) ]))
+    st_1._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_2, [
+         ]))
+    transitions.append(fac.Transition(st_3, [
+         ]))
+    transitions.append(fac.Transition(st_4, [
+         ]))
+    st_2._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_2, [
+         ]))
+    transitions.append(fac.Transition(st_3, [
+         ]))
+    transitions.append(fac.Transition(st_4, [
+         ]))
+    st_3._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_2, [
+         ]))
+    transitions.append(fac.Transition(st_3, [
+         ]))
+    transitions.append(fac.Transition(st_4, [
+         ]))
+    st_4._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, False, containing_state=None)
+T_FACT._Automaton = _BuildAutomaton_11()
+
+
+
+
+T_BLOC._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'condition'), T_fonction_python, scope=T_BLOC, location=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 45, 1)))
+
+def _BuildAutomaton_12 ():
+    # Remove this helper function from the namespace after it is invoked
+    global _BuildAutomaton_12
+    del _BuildAutomaton_12
+    import pyxb.utils.fac as fac
+
+    counters = set()
+    cc_0 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 89, 3))
+    counters.add(cc_0)
+    cc_1 = fac.CounterCondition(min=0L, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 90, 3))
+    counters.add(cc_1)
+    states = []
+    final_update = None
+    symbol = pyxb.binding.content.ElementUse(T_BLOC._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'regles')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 89, 3))
+    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_0)
+    final_update = None
+    symbol = pyxb.binding.content.ElementUse(T_BLOC._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'doc')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 90, 3))
+    st_1 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_1)
+    final_update = None
+    symbol = pyxb.binding.content.ElementUse(T_BLOC._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'BLOC')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 92, 4))
+    st_2 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_2)
+    final_update = None
+    symbol = pyxb.binding.content.ElementUse(T_BLOC._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'FACT')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 93, 4))
+    st_3 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_3)
+    final_update = None
+    symbol = pyxb.binding.content.ElementUse(T_BLOC._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'SIMP')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 94, 4))
+    st_4 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_4)
+    final_update = set()
+    symbol = pyxb.binding.content.ElementUse(T_BLOC._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'condition')), pyxb.utils.utility.Location('/home/A96028/EchangesEric/EssaiExt/model.xsd', 162, 5))
+    st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False)
+    states.append(st_5)
+    transitions = []
+    transitions.append(fac.Transition(st_0, [
+        fac.UpdateInstruction(cc_0, True) ]))
+    transitions.append(fac.Transition(st_1, [
+        fac.UpdateInstruction(cc_0, False) ]))
+    transitions.append(fac.Transition(st_2, [
+        fac.UpdateInstruction(cc_0, False) ]))
+    transitions.append(fac.Transition(st_3, [
+        fac.UpdateInstruction(cc_0, False) ]))
+    transitions.append(fac.Transition(st_4, [
+        fac.UpdateInstruction(cc_0, False) ]))
+    st_0._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_1, [
+        fac.UpdateInstruction(cc_1, True) ]))
+    transitions.append(fac.Transition(st_2, [
+        fac.UpdateInstruction(cc_1, False) ]))
+    transitions.append(fac.Transition(st_3, [
+        fac.UpdateInstruction(cc_1, False) ]))
+    transitions.append(fac.Transition(st_4, [
+        fac.UpdateInstruction(cc_1, False) ]))
+    st_1._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_2, [
+         ]))
+    transitions.append(fac.Transition(st_3, [
+         ]))
+    transitions.append(fac.Transition(st_4, [
+         ]))
+    transitions.append(fac.Transition(st_5, [
+         ]))
+    st_2._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_2, [
+         ]))
+    transitions.append(fac.Transition(st_3, [
+         ]))
+    transitions.append(fac.Transition(st_4, [
+         ]))
+    transitions.append(fac.Transition(st_5, [
+         ]))
+    st_3._set_transitionSet(transitions)
+    transitions = []
+    transitions.append(fac.Transition(st_2, [
+         ]))
+    transitions.append(fac.Transition(st_3, [
+         ]))
+    transitions.append(fac.Transition(st_4, [
+         ]))
+    transitions.append(fac.Transition(st_5, [
+         ]))
+    st_4._set_transitionSet(transitions)
+    transitions = []
+    st_5._set_transitionSet(transitions)
+    return fac.Automaton(states, counters, False, containing_state=None)
+T_BLOC._Automaton = _BuildAutomaton_12()
+
+
+classeUtilisateurName._setSubstitutionGroup(typeAttendu)
diff --git a/OldCodes/Med/readerEfficas.py b/OldCodes/Med/readerEfficas.py
new file mode 100755 (executable)
index 0000000..afd1249
--- /dev/null
@@ -0,0 +1,129 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+import sys,os
+import raw.efficas as efficas
+import types
+
+sys.path.insert(0,os.path.abspath(os.path.join(os.getcwd(),'..')))
+sys.path.insert(0,os.path.abspath(os.path.join(os.getcwd(),'..','UiQT5')))
+
+
+from Accas import *
+
+
+# Attention pas d heritage possible (cf doc pyxbe)
+
+dictSIMPEficasXML= { 'typ'    : 'typeAttendu', 'statut'     : 'statut', 
+                     'min_occurs': 'min'        , 'max_occurs' : 'max', 
+                     'homo'      : 'homo'       , 'position'   : 'portee', 
+                     'validators': 'validators' , 'sug'        : 'valeur_sugg',
+                     'defaut'    : 'ValeurDef'  , 'into'       : ('PlageValeur','into'), 
+                     'val_min'   : ('PlageValeur','borne_inf') , 'val_max'    : ('PlageValeur','borne_sup'),
+                     'ang'       : ('doc','ang')               , 'fr'         : ('doc','fr',)   ,
+                     'docu'      : ('doc','docu'),}
+dictSIMPXMLEficas = {'doc' : {'fr' : 'fr' , 'ang' : 'ang' , 'docu' : 'docu' },
+                    'PlageValeur' : {'borne_sup' : 'val_max' , 'into' : 'into' , 'borne_inf' : 'val_min' ,},
+                    'statut' : 'statut' , 'validators' : 'validators' , 'homo' : 'homo' ,
+                    'ValeurDef' : 'defaut' ,  'min' : 'min_occurs' ,
+                    'valeur_sugg' : 'sug' , 'portee' : 'position' , 'max' : 'max_occurs' , }
+
+
+# ------------------------------
+class monSIMP (efficas.T_SIMP):
+# ------------------------------
+
+   def explore(self):
+      print "je passe dans  explore pour SIMP ", self.nom
+      self.dictArgsEficas={}
+      self.dictArgsEficas['typ']=self.typeAttendu
+      for nomXMLArg in dir(self) :
+          if nomXMLArg in dictSIMPXMLEficas.keys() :
+              nomEficasArg=dictSIMPXMLEficas[nomXMLArg]
+              argu=getattr(self,nomXMLArg)
+              if argu==None : continue
+              if type(nomEficasArg) == types.DictionaryType:
+                 for nomXML in nomEficasArg.keys():
+                      arguDecoupe=getattr(argu,nomXML)
+                      nomEficasDecoupe=nomEficasArg[nomXML]
+                      self.dictArgsEficas[nomEficasDecoupe]=arguDecoupe
+              else :
+                 self.dictArgsEficas[nomEficasArg] = argu
+                    
+              #if argNew != None : print argNew
+      self.objAccas=A_SIMP.SIMP(**self.dictArgsEficas)
+      self.objAccas.nom=self.nom
+     
+   def getAccasEquivalent(self):
+       return self.nom, self.objAccas
+
+# ------------------------------
+class monPROC(efficas.T_PROC):
+# ------------------------------
+   def explore(self):
+      print "je passe dans  explore pour PROC ", self.nom
+      self.dictConstruction={}
+      self.dictConstruction['nom']=self.nom
+      
+      for obj in self.content(): 
+          if  hasattr(obj,'explore') : obj.explore ()
+          if  hasattr(obj,'getAccasEquivalent') : 
+              nom,objetAccas=obj.getAccasEquivalent()
+              self.dictConstruction[nom]=objetAccas
+      self.dictConstruction['op']=None
+      self.objAccas=A_PROC.PROC(**self.dictConstruction)
+      print dir(self.objAccas)
+      print self.objAccas.entites
+
+
+# ------------------------------
+class monFACT(efficas.T_FACT):
+# ------------------------------
+   def explore(self):
+      #print "je passe dans  explore pour FACT ", self.nom
+      self.dictConstruction={}
+      for obj in self.content(): 
+          if  hasattr(obj,'explore') : obj.explore 
+          if  hasattr(obj,'creeAccasEquivalent') : 
+              nom,objetAccas=obj.creeAccasEquivalent()
+              self.dictConstruction[nom]=objetAccas
+      self.objAccas=A_FACT.FACT(**self.dictConstruction)
+
+   def getAccasEquivalent(self):
+       return self.nom, self.objAccas
+
+
+# ------------------------------
+class monCata(efficas.T_cata):
+# ------------------------------
+   def exploreCata(self):
+   # On positionne le contexte ACCAS
+      self.JdC = JDC_CATA (code = 'MED', execmodul = None,)
+      objAExplorer=self.commandes[0]
+      for obj in objAExplorer.content(): 
+         if  hasattr(obj,'explore') : obj.explore()
+    
+     
+
+efficas.T_SIMP._SetSupersedingClass(monSIMP)
+efficas.T_FACT._SetSupersedingClass(monFACT)
+efficas.T_PROC._SetSupersedingClass(monPROC)
+efficas.T_cata._SetSupersedingClass(monCata)
+
+if __name__ == "__main__":
+#   print dir(efficas)
+#   print dir(efficas.T_SIMP)
+
+
+   xml = open('Cata_MED_FAM.xml').read()
+   SchemaMed = efficas.CreateFromDocument(xml)
+   SchemaMed.exploreCata()
+
+   #print dir(efficas.T_SIMP)
+   #print dir(efficas.T_SIMP)
+
+   #for maCommande in monCata.commandes :
+   #    for monProc in maCommande.PROC:
+   #        for monFact in monProc.FACT:
+   #            for simp in monFact.SIMP:
+   #                simp.creeAccasEquivalent()
index 9e43e5436ce54fe03e4d66124ef03d995ac1a0ee..948554c811870ab6f536eb9d0f496e4abc03abc9 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 64d0b05ed879ac8baa8d77fba3e31e315c60d6d3..9bc506fd5ee80eeeadf51851836a7d0c5298ef42 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-\r
-# Copyright (C) 2007-2013   EDF R&D\r
+# Copyright (C) 2007-2021   EDF R&D\r
 #\r
 # This library is free software; you can redistribute it and/or\r
 # modify it under the terms of the GNU Lesser General Public\r
index ed023cdb25adfec015d6c7e35721227249726653..dfeee514d496ab1ce42da5bf815274a8fd085b6d 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index f83b0a2917340f6b69a04fedd076f3cc35288911..1db9360cab64594069dbe6cac48c4872918b50d5 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index abf2d5ab755f9d437acdcede40e6bda124e871c3..a88c1232f27480662d8d63f52a168c75a9ecd8e0 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 651d5b82fe79a83a9bf912b58a4253044b5a322b..ab09458138eded0748b5f2704c760ad0b8b248ab 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 64d0b05ed879ac8baa8d77fba3e31e315c60d6d3..9bc506fd5ee80eeeadf51851836a7d0c5298ef42 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-\r
-# Copyright (C) 2007-2013   EDF R&D\r
+# Copyright (C) 2007-2021   EDF R&D\r
 #\r
 # This library is free software; you can redistribute it and/or\r
 # modify it under the terms of the GNU Lesser General Public\r
index 10b557d216c5295cde5ccb00ac9fe4562a9e7c5a..544236d085ec0b273c0dfd4f40fd2b1b4128e09d 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
diff --git a/OldCodes/PSEN_Eficas/ExtractGeneratorLoadLineandTransfoDico.py b/OldCodes/PSEN_Eficas/ExtractGeneratorLoadLineandTransfoDico.py
new file mode 100755 (executable)
index 0000000..9427e18
--- /dev/null
@@ -0,0 +1,173 @@
+#NetworkFile = r"C:\Users\J15773\Documents\GTDosier\PSENdocs\Victoria ALL - EFICAS PSEN\Data\2030Conv_HFP2.sav"\r
+#PSSE_PATH = "C:/Program Files/PTI/PSSE33/PSSBIN" #emplacement de PSSE\r
+\r
+def ExtractGeneratorLoadLineandTransfoDico(NetworkFile,PSSE_PATH):\r
+\r
+    import os\r
+    import sys\r
+\r
+    print NetworkFile\r
+    print PSSE_PATH\r
+    sys.path.append(PSSE_PATH)\r
+    os.environ['PATH'] +=  ';' + PSSE_PATH + ';'\r
+\r
+    import psspy\r
+    import redirect\r
+\r
+    ###initialization PSSE\r
+    psspy.psseinit(10000)\r
+    _i=psspy.getdefaultint()\r
+    _f=psspy.getdefaultreal()\r
+    _s=psspy.getdefaultchar()\r
+    redirect.psse2py()\r
+\r
+    # Silent execution of PSSe\r
+    islct=6 # 6=no output; 1=standard\r
+    psspy.progress_output(islct)\r
+\r
+    #open Network File\r
+    psspy.case(NetworkFile)\r
+\r
+    #Extract Loads\r
+    sid = -1 #all buses\r
+    flag = 1 #all in service loads/generators (4 all loads/generators)\r
+\r
+\r
+    string = ['NUMBER']\r
+    ierr,iarray = psspy.aloadint(sid,flag,string)\r
+\r
+    string = ['NAME','ID','EXNAME']\r
+    ierr,carray = psspy.aloadchar(sid,flag,string)\r
+\r
+    LoadDico = {}  # [Bus name, load ID, extended bus name, bus number]\r
+    for i in range(len(iarray[0])):\r
+        idname = "Lo" + str(int(carray[1][i]))\r
+        loadname = carray[0][i].strip()+ "__" + idname\r
+        loadname = loadname.replace(" ","_")\r
+        loadname = loadname.replace(".","_")\r
+        loadname = loadname.replace("&","and")\r
+        try:\r
+            int(loadname[0])\r
+            loadname="_" + loadname\r
+        except:\r
+            pass\r
+        LoadDico[loadname]= {}\r
+        LoadDico[loadname]['BusName'] = carray[0][i].strip()\r
+        LoadDico[loadname]['ID'] = carray[1][i]\r
+        LoadDico[loadname]['BusExName'] =carray[2][i]\r
+        LoadDico[loadname]['BusNum']=iarray[0][i]\r
+\r
+    #Extract Generators\r
+    sid = -1 #all buses\r
+    flag = 1 #all in service loads/generators (4 all loads/generators)\r
+        \r
+    string = ['NUMBER']\r
+    ierr,iarray = psspy.amachint(sid,flag,string)\r
+\r
+    string = ['NAME','ID','EXNAME']\r
+    ierr,carray = psspy.amachchar(sid,flag,string)\r
+\r
+    MachineDico = {} # [Bus name, machine ID, extended bus name, bus number]\r
+    for i in range(len(iarray[0])):\r
+        idname = "Gr" + str(int(carray[1][i]))\r
+        machinename = carray[0][i].strip()+ "__" + idname\r
+        machinename = machinename.replace(" ","_")\r
+        machinename = machinename.replace(".","_")\r
+        machinename = machinename.replace("&","and")\r
+        try:\r
+            int(machinename[0])\r
+            machinename="_" + machinename\r
+        except:\r
+            pass\r
+        MachineDico[machinename]={}\r
+        MachineDico[machinename]['NAME'] = carray[0][i].strip()\r
+        MachineDico[machinename]['ID'] = carray[1][i]\r
+        MachineDico[machinename]['EXNAME'] =carray[2][i]\r
+        MachineDico[machinename]['NUMBER']=iarray[0][i]\r
+\r
+    #Extract Lignes\r
+    sid = -1\r
+    owner = 1\r
+    ties = 1\r
+    flag = 2 #6 for two-winding transfos\r
+    entry = 1 #each branch once, not both directions\r
+    string = ['FROMNUMBER','TONUMBER']\r
+    ierr,iarray = psspy.abrnint(sid,owner,ties,flag,entry,string)\r
+    string = ['FROMNAME','TONAME','FROMEXNAME','TOEXNAME','ID']\r
+    ierr,carray = psspy.abrnchar(sid,owner,ties,flag,entry,string)\r
+\r
+    LineDico = {} #[linename, Bus name 1, Bus name 2, ID, extended bus name 1, extended bus name 2, bus number 1, bus number 2]\r
+    for i in range(len(iarray[0])):\r
+        idname = carray[4][i]\r
+        if '@' in idname:\r
+            idname = idname.replace('@','Br')\r
+        else:\r
+            idname = 'Li' + str(int(idname))\r
+        linename =carray[0][i].strip() + "__" + carray[1][i].strip() + "__" + idname\r
+        linename = linename.replace(" ","_")\r
+        linename = linename.replace(".","_")\r
+        linename = linename.replace("&","and")\r
+        try:\r
+            int(linename[0])\r
+            linename="_" + linename\r
+        except:\r
+            pass\r
+        LineDico[linename]={}\r
+        LineDico[linename]['FROMNAME']=carray[0][i].strip()\r
+        LineDico[linename]['TONAME']=carray[1][i].strip()\r
+        LineDico[linename]['ID']=carray[4][i]\r
+        LineDico[linename]['FROMEXNAME']=carray[2][i]\r
+        LineDico[linename]['TOEXNAME']=carray[3][i]\r
+        LineDico[linename]['FROMNUMBER']=iarray[0][i]\r
+        LineDico[linename]['TONUMBER']=iarray[1][i]\r
+\r
+    #Extract Transfos\r
+    sid = -1\r
+    owner = 1\r
+    ties = 1\r
+    flag = 6 #two-winding transfos\r
+    entry = 1 #each branch once, not both directions\r
+    string = ['FROMNUMBER','TONUMBER']\r
+    ierr,iarray = psspy.abrnint(sid,owner,ties,flag,entry,string)\r
+    string = ['FROMNAME','TONAME','FROMEXNAME','TOEXNAME','ID']\r
+    ierr,carray = psspy.abrnchar(sid,owner,ties,flag,entry,string)\r
+\r
+    TfoDico = {} #[linename, Bus name 1, Bus name 2, machine ID, extended bus name 1, extended bus name 2, bus number 1, bus number 2]\r
+    for i in range(len(iarray[0])):\r
+        idname = 'Tr' + str(int(carray[4][i]))\r
+        tfoname = carray[0][i].strip() + "__" + carray[1][i].strip() + "__" + idname\r
+        tfoname = tfoname.replace(" ","_")\r
+        tfoname = tfoname.replace(".","_")\r
+        tfoname = tfoname.replace("&","and")\r
+        try:\r
+            int(tfoname[0])\r
+            tfoname="_" + tfoname\r
+        except:\r
+            pass\r
+        TfoDico[tfoname]={}\r
+        TfoDico[tfoname]['FROMNAME']=carray[0][i].strip()\r
+        TfoDico[tfoname]['TONAME']=carray[1][i].strip()\r
+        TfoDico[tfoname]['ID']=carray[4][i]\r
+        TfoDico[tfoname]['FROMEXNAME']=carray[2][i]\r
+        TfoDico[tfoname]['TOEXNAME']=carray[3][i]\r
+        TfoDico[tfoname]['FROMNUMBER']=iarray[0][i]\r
+        TfoDico[tfoname]['TONUMBER']=iarray[1][i]\r
+\r
+    return MachineDico, LoadDico, LineDico, TfoDico\r
+\r
+\r
+#MachineDico, LoadDico, LineDico, TfoDico = ExtractGeneratorLoadLineandTransfoDico(NetworkFile,PSSE_PATH)\r
+\r
\r
+def ExtractGeneratorLoadLineandTransfoDico2(NetworkFile,PSSE_PATH):\r
+    MachineDico={'M1':'M1','M2':'M2','M3':'M3','M4':'M4','B6_BUS13__1':'AZ','CSPRING__1':'DD','GT12B__1':'ER','BSTMB__1':'JJ'}\r
+    LoadDico={'C1':'C1','C2':'C2','C3':'C3','C4':'C4'}\r
+    LineDico={'L1':'L1','L2':'L2','L3':'L3','L4':'L4'}\r
+    TfoDico={'T1':'T1','T2':'T2','T3':'T3','T4':'T4'}\r
+    MDico={'MZ1':'MZ1','MZ2':'MZ2','MZ3':'MZ3','MZ4':'MZ4'}\r
+    if NetworkFile == '/home/A96028/PSEN/PSEN_V8/Code/PSEN_Eficas/faux2.sav': \r
+       print "sans T1"\r
+       TfoDico={'T2':'T2','T3':'T3','T4':'T4'}\r
+\r
+\r
+    return MachineDico, LoadDico, LineDico, TfoDico, MDico\r
diff --git a/OldCodes/PSEN_Eficas/ExtractGeneratorandLoadList.py b/OldCodes/PSEN_Eficas/ExtractGeneratorandLoadList.py
new file mode 100755 (executable)
index 0000000..08f4548
--- /dev/null
@@ -0,0 +1,70 @@
+NetworkFile = r"C:\Users\J15773\Documents\GTDosier\PSENdocs\Victoria ALL - EFICAS PSEN\Data\2030Conv_HFP2.sav"\r
+PSSE_PATH = "C:/Program Files/PTI/PSSE33/PSSBIN" #emplacement de PSSE\r
+\r
+def ExtractGeneratorandLoadList(NetworkFile,PSSE_PATH):\r
+\r
+    import os\r
+    import sys\r
+\r
+    print NetworkFile\r
+    print PSSE_PATH\r
+    sys.path.append(PSSE_PATH)\r
+    os.environ['PATH'] +=  ';' + PSSE_PATH + ';'\r
+\r
+    import psspy\r
+    import redirect\r
+\r
+    ###initialization PSSE\r
+    psspy.psseinit(10000)\r
+    _i=psspy.getdefaultint()\r
+    _f=psspy.getdefaultreal()\r
+    _s=psspy.getdefaultchar()\r
+    redirect.psse2py()\r
+\r
+    # Silent execution of PSSe\r
+    islct=6 # 6=no output; 1=standard\r
+    psspy.progress_output(islct)\r
+\r
+    #open Network File\r
+    psspy.case(NetworkFile)\r
+\r
+    #Extract Loads\r
+    sid = -1 #all buses\r
+    flag = 1 #all in service loads/generators (4 all loads/generators)\r
+\r
+\r
+    string = ['NUMBER']\r
+    ierr,iarray = psspy.aloadint(sid,flag,string)\r
+\r
+    string = ['NAME','ID','EXNAME']\r
+    ierr,carray = psspy.aloadchar(sid,flag,string)\r
+\r
+    LoadList = []  # [Bus name, load ID, extended bus name, bus number]\r
+    for i in range(len(iarray[0])):\r
+        LoadList.append([carray[0][i].strip(),carray[1][i],carray[2][i],iarray[0][i]])\r
+\r
+    #Extract Generators\r
+    sid = -1 #all buses\r
+    flag = 1 #all in service loads/generators (4 all loads/generators)\r
+        \r
+    string = ['NUMBER']\r
+    ierr,iarray = psspy.amachint(sid,flag,string)\r
+\r
+    string = ['NAME','ID','EXNAME']\r
+    ierr,carray = psspy.amachchar(sid,flag,string)\r
+\r
+    MachineList = [] # [Bus name, machine ID, extended bus name, bus number]\r
+    for i in range(len(iarray[0])):\r
+        MachineList.append([carray[0][i].strip(),carray[1][i],carray[2][i],iarray[0][i]])\r
+\r
+    return MachineList, LoadList\r
+                                \r
+def ExtractGeneratorandLoadList2(NetworkFile,PSSE_PATH):\r
+    MachineList = [['GT 6', '1 ', 'GT 6        11.500', 10], ['GT 7', '1 ', 'GT 7        11.500', 11], ['GT10', '1 ', 'GT10        11.500', 12], ['GT 5', '1 ', 'GT 5        11.500', 13], ['NEWHUNT', '1 ', 'NEWHUNT     11.500', 15], ['BSTMB', '1 ', 'BSTMB       11.500', 23], ['HYD_MAG', '1 ', 'HYD_MAG     6.9000', 25], ['RF1', '1 ', 'RF1         13.800', 37], ['OH2', '1 ', 'OH2         13.800', 41], ['RF2', '1 ', 'RF2         13.800', 42], ['GT3', '1 ', 'GT3         11.500', 43], ['OH3', '1 ', 'OH3         13.800', 47], ['OH4', '1 ', 'OH4         13.800', 50], ['OH6', '1 ', 'OH6         13.800', 52], ['GT 11', '1 ', 'GT 11       11.500', 56], ['B6_BUS13', '1 ', 'B6_BUS13    13.800', 57], ['GT8', '1 ', 'GT8         11.500', 58], ['HYDRR', '1 ', 'HYDRR       6.9000', 59], ['GT9', '1 ', 'GT9         11.500', 63], ['HYD_UWR', '1 ', 'HYD_UWR     6.9000', 64], ['HYD_RIOB', '1 ', 'HYD_RIOB    6.9000', 65], ['HRYD_LW', '1 ', 'HRYD_LW     6.9000', 68], ['GT13B', '1 ', 'GT13B       11.500', 76], ['GT12B', '1 ', 'GT12B       11.500', 77], ['CSPRING', '1 ', 'CSPRING     69.000', 91], ['OLDHARB1', '1 ', 'OLDHARB1    138.00', 114], ['WIGTON', '1 ', 'WIGTON      0.6900', 202], ['JEPWK1', '1 ', 'JEPWK1      11.500', 300], ['JEPWK1', '2 ', 'JEPWK1      11.500', 300], ['JEPWK1', '3 ', 'JEPWK1      11.500', 300], ['JEPWK2', '1 ', 'JEPWK2      11.500', 301], ['JEPWK2', '2 ', 'JEPWK2      11.500', 301], ['JEPWK2', '3 ', 'JEPWK2      11.500', 301], ['W_MUN1', '1 ', 'W_MUN1      69.000', 503], ['HYD_RHORN', '1 ', 'HYD_RHORN   69.000', 711]]\r
+\r
+    LoadList= [['TREDEGAR', '1 ', 'TREDEGAR    69.000', 5], ['HOPE', '1 ', 'HOPE        69.000', 16], ['MILCHELT', '1 ', 'MILCHELT    69.000', 17], ['PARADISE', '1 ', 'PARADISE    69.000', 24], ['BLEDGE', '1 ', 'BLEDGE      69.000', 26], ['CANE RIV', '1 ', 'CANE RIV    69.000', 27], ['HIGHGATE', '1 ', 'HIGHGATE    69.000', 29], ['QUEENS D', '1 ', 'QUEENS D    69.000', 30], ['OCHO', '1 ', 'OCHO        69.000', 32], ['BOGUE_69', '1 ', 'BOGUE_69    69.000', 33], ['ROSE HAL', '1 ', 'ROSE HAL    69.000', 35], ['OH1', '1 ', 'OH1         13.800', 36], ['RF1', '1 ', 'RF1         13.800', 37], ['CEMENT C', '1 ', 'CEMENT C    69.000', 38], ['OBAY69', '1 ', 'OBAY69      69.000', 39], ['DUNCANS6', '1 ', 'DUNCANS6    69.000', 40], ['OH2', '1 ', 'OH2         13.800', 41], ['RF2', '1 ', 'RF2         13.800', 42], ['3MLS69', '1 ', '3MLS69      69.000', 45], ['WBLVD69', '1 ', 'WBLVD69     69.000', 46], ['OH3', '1 ', 'OH3         13.800', 47], ['PORT ANT', '1 ', 'PORT ANT    69.000', 48], ['OH4', '1 ', 'OH4         13.800', 50], ['B6_BUS13', '1 ', 'B6_BUS13    13.800', 57], ['GREENWOO', '1 ', 'GREENWOO    69.000', 60], ['LYSSONS', '1 ', 'LYSSONS     69.000', 61], ['PORUS', '1 ', 'PORUS       69.000', 62], ['R RIVER', '1 ', 'R RIVER     69.000', 66], ['MARTHA B', '1 ', 'MARTHA B    69.000', 67], ['WKH69', '1 ', 'WKH69       69.000', 69], ['PNASUS69', '1 ', 'PNASUS69    69.000', 70], ['ANNOTTO', '1 ', 'ANNOTTO     69.000', 71], ['UW RIVER', '1 ', 'UW RIVER    69.000', 74], ['KNDAL 69', '1 ', 'KNDAL 69    69.000', 75], ['MONYMUSK', '1 ', 'MONYMUSK    69.000', 78], ['OROCABES', '1 ', 'OROCABES    69.000', 79], ['MAGGOTTY', '1 ', 'MAGGOTTY    69.000', 80], ['UP PARK', '1 ', 'UP PARK     69.000', 82], ['TWICKENH', '1 ', 'TWICKENH    69.000', 85], ['MAY PEN', '1 ', 'MAY PEN     69.000', 88], ['PAJ', '1 ', 'PAJ         69.000', 89], ['GROAD_69', '1 ', 'GROAD_69    69.000', 90], ['CSPRING', '1 ', 'CSPRING     69.000', 91], ['S_ TREE6', '1 ', 'S_ TREE6    69.000', 92], ['NAGGOS H', '1 ', 'NAGGOS H    69.000', 94], ['GOODYEAR', '1 ', 'GOODYEAR    69.000', 99], ['HBAY_69', '1 ', 'HBAY_69     69.000', 101], ['RFORT69', '1 ', 'RFORT69     69.000', 102], ['RHODEN P', '1 ', 'RHODEN P    69.000', 105], ['DUHANEY6', '1 ', 'DUHANEY6    69.000', 107], ['CARDIFF', '1 ', 'CARDIFF     69.000', 109], ['JAB13.8', '1 ', 'JAB13.8     13.800', 112], ['JAM13.8', '1 ', 'JAM13.8     13.800', 113]]\r
+    return MachineList, LoadList\r
+\r
+if __name__ == "__main__":\r
+   MachineList,LoadList= ExtractGeneratorandLoadList2(NetworkFile,PSSE_PATH)\r
+   print MachineList, LoadList\r
diff --git a/OldCodes/PSEN_Eficas/PSEN/PSEN_GUI.py b/OldCodes/PSEN_Eficas/PSEN/PSEN_GUI.py
new file mode 100755 (executable)
index 0000000..32b22db
--- /dev/null
@@ -0,0 +1,1220 @@
+# -*- coding: cp1252 -*-\r
+# ======================== PSEN graphic interface ========================\r
+# This Python script creates a graphical interface to parameter and launch PSEN\r
+\r
+# ============== Import useful modules =================\r
+from Tkinter import *\r
+from ttk import Combobox\r
+import tkFileDialog, os\r
+import subprocess\r
+from time import sleep\r
+import numpy as np\r
+\r
+# ============== Initialize some variables  =================\r
+config=[]\r
+for i in range (60) : # config[] will be used as a list of preferences for PSEN study\r
+    config.append('')\r
+\r
+root = Tk() # Creates the main window\r
+root.wm_withdraw() # The main window is withdrawn/hidden\r
+\r
+CIST=PhotoImage(file="lib\CISTlogo.gif") # Load images\r
+header=PhotoImage(file="lib\header.gif")\r
+WTcurve=PhotoImage(file="lib\WTcurve.gif")\r
+\r
+# ============== Define functions  =================\r
+\r
+# browse_PSSe function is used to get the .SAV file path from the user.\r
+# tkFileDialog.askopenfilename offers a browsing interface to the user\r
+def browse_PSSe() :\r
+    global savAdress\r
+    savAdress = tkFileDialog.askopenfilename(parent=fenPref,title='Open PSSe SAV file',filetypes=[('SAV files', '.sav')])\r
+    savAdressD.set(savAdress)\r
+    fenPref.update_idletasks() # this updates the values in the fenPref window (defined in preferences())\r
+    print 'Added: '+str(savAdress)\r
+    return savAdress\r
+\r
+# browse_ENR function is used to get a .CSV file path from the user\r
+# The CSV file contains a list of machines and their type (PV, Wind, Interconnexion)\r
+# tkFileDialog.askopenfilename offers a browsing interface to the user\r
+def browse_ENR() :\r
+    global ENRpath\r
+    ENRpath = tkFileDialog.askopenfilename(parent=fenPref,title='Open ENR configuration',filetypes=[('CSV files', '.csv'),('All files', '.*')])\r
+    ENRpathD.set(ENRpath)\r
+    fenPref.update_idletasks() # this updates the values in the fenPref window (defined in preferences())\r
+    print 'Added: '+str(ENRpath)\r
+    return ENRpath    \r
+\r
+# browse_folder function is used to get a folder path from the user\r
+# This folder is used to save all study files (.sav, .csv, ...)\r
+# tkFileDialog.askdirectory offers a browsing interface to the user    \r
+def browse_folder() :\r
+    global folderPATH\r
+    folderPATH = tkFileDialog.askdirectory(parent=fenPref,title='Choose working folder')\r
+    folderPATHD.set(folderPATH)\r
+    fenPref.update_idletasks()  # this updates the values in the fenPref window (defined in preferences())\r
+    print 'Added: '+str(folderPATH)\r
+    return folderPATH\r
+\r
+# savePref function is used to save preferences input in fenPref window (defined in preferences())\r
+def savePref() :\r
+    global Vcin, Vrate, Vcout, Rho, lossrate # These variables are global because they are used in savePSEN()\r
+    try : # Test if the user has defined all the requested variables\r
+        savAdress\r
+        folderPATH\r
+        ENRpath\r
+        VcinD\r
+        VrateD\r
+        VcoutD\r
+        RhoD\r
+        lossrateD\r
+    except NameError : # If not a new window pops up and explains the data is missing\r
+        fenetre2 = Tk()\r
+        champ_label = Label(fenetre2, text="ERROR\nNo file and/or folder selected", fg="red", font=("Century Gothic",16))\r
+        champ_label.pack(side=TOP, fill=BOTH, expand=YES)\r
+    else : # If it's OK it gets the data from the fields and save it into config[]\r
+        config[9]=VcinD.get(); config[10]=VrateD.get(); config[11]=VcoutD.get(); config[12]=RhoD.get(); config[13]=lossrateD.get(); config[2]=ENRpathD.get(); config[1]=folderPATHD.get(); config[0]=savAdressD.get()\r
+        Vcin=VcinD.get()\r
+        Vrate=VrateD.get()\r
+        Vcout=VcoutD.get()\r
+        Rho=RhoD.get()\r
+        lossrate=lossrateD.get()\r
+        f=open("lib\pref.psen", "w") # Creates a config file with values to give to PSSEWrapper.py\r
+        f.write(str(savAdress)+";"+str(folderPATH)+";"+str(ENRpath)+";"+str(Vcin)+";"+str(Vrate)+";"+str(Vcout)+";"+str(Rho)+";"+str(lossrate)+";0\n")\r
+        f.close()\r
+    try : \r
+        fenPref\r
+    except NameError :\r
+        pass\r
+    else :\r
+        fenPref.destroy()\r
+        print 'Preferences saved'\r
+   \r
+# refresh_pref function is used to refresh fields value in fenPref window (defined in preferences())\r
+def refresh_pref () :\r
+        try :\r
+            saved\r
+        except NameError : # if saved hasn't been created yet there is no data to update\r
+            pass\r
+            print 'No configuration yet'\r
+        else : # if it has been created we set fields variables and update the window with update_idletasks()\r
+            print 'Update values'\r
+            global continpath\r
+            global model_Path\r
+            global PSSEfolder\r
+            VcinD.set(config[9])\r
+            VrateD.set(config[10])\r
+            VcoutD.set(config[11])\r
+            RhoD.set(config[12])\r
+            lossrateD.set(config[13])\r
+            ENRpathD.set(ENRpath)\r
+            folderPATHD.set(folderPATH)\r
+            savAdressD.set(savAdress)\r
+            fenPref.update_idletasks() \r
+\r
+# savePSEN function is used to create a .PSEN file containing all users parameters and preferences        \r
+def savePSEN() :\r
+    global savePATH\r
+    global saved\r
+    saved=1\r
+\r
+    # === We get all the fields data ===    \r
+    \r
+    MCS_num=var_MCS.get()\r
+    N_1_opt=N_1.get()\r
+    PV_opt=PV.get()\r
+    Wind1_opt=Wind1.get()\r
+    Wind2_opt=Wind1.get()\r
+    Load_opt=Load.get()\r
+\r
+    load_type=choix_load.get()\r
+    load1=var_loadn1.get()\r
+    load2=var_loadn2.get()\r
+    load3=var_loadn3.get()\r
+    load4=var_loadn4.get()\r
+    loadPath=loadPathD.get()\r
+\r
+    wind11_type=choix_wind11.get()\r
+    wind11=var_windn11.get()\r
+    wind12=var_windn12.get()\r
+    wind13=var_windn13.get()\r
+    wind14=var_windn14.get()\r
+    wind1Path=wind1PathD.get()\r
+    \r
+    wind21_type=choix_wind21.get()\r
+    wind21=var_windn21.get()\r
+    wind22=var_windn22.get()\r
+    wind23=var_windn23.get()\r
+    wind24=var_windn24.get()\r
+    wind2Path=wind2PathD.get()\r
+    \r
+    pv_type=choix_pv.get()\r
+    pv1=var_pvn1.get()\r
+    pv2=var_pvn2.get()\r
+    pv3=var_pvn3.get()\r
+    pv4=var_pvn4.get()\r
+    pvPath=pvPathD.get()\r
+    \r
+    C01=C01D.get()\r
+    C02=C02D.get()\r
+    C03=C03D.get()\r
+    C04=C04D.get()\r
+    C12=C12D.get()\r
+    C14=C14D.get()\r
+    C13=C13D.get()\r
+    C23=C23D.get()\r
+    C24=C24D.get()\r
+    C34=C34D.get()\r
+    \r
+    fuel_cost_opt = fuel_cost.get()\r
+    bus_shunt_opt = bus_shunt.get()\r
+    bus_loads_opt = bus_loads.get()\r
+    \r
+    rate_choice = rate_choiceD.get()\r
+    \r
+    try :\r
+        contin_lines_Path\r
+        contin_groups_Path\r
+    except NameError : # If the user hasn't choose a path for the contingency CSV file, we create it as blank to save the data\r
+        contin_lines_Path=''\r
+        contin_groups_Path=''\r
+    \r
+    # We ask the user the name and path of the file\r
+    savePATH = tkFileDialog.asksaveasfilename(parent=fenetre,title='Save the file as ...',defaultextension='.psen',filetypes=[('PSEN file', '.psen')])\r
+    try :\r
+        len(savePATH)>0\r
+    except NameError :\r
+        pass\r
+    else : # Writing all the variables in a specific order (could be improved with XML file for instance)\r
+        f=open(savePATH,'w')\r
+        f.write(str(savAdress)+";"+str(folderPATH)+";"+str(ENRpath)+";"\r
+            +str(contin_lines_Path)+";"+str(contin_groups_Path)+";"+str(model_Path)+";"+str(PSSEfolder)+";"+str(orange_Path)+";"+str(python_Path)+";"\r
+            +str(Vcin)+";"+str(Vrate)+";"+str(Vcout)+";"+str(Rho)+";"+str(lossrate)+";"\r
+            +str(MCS_num)+";"+str(N_1_opt)+";"+str(PV_opt)+";"+str(Wind1_opt)+";"+str(Wind2_opt)+";"+str(Load_opt)+";"\r
+            +str(load_type)+";"+str(load1)+";"+str(load2)+";"+str(load3)+";"+str(load4)+";"+str(loadPath)+";"\r
+            +str(wind11_type)+";"+str(wind11)+";"+str(wind12)+";"+str(wind13)+";"+str(wind14)+";"+str(wind1Path)+";"\r
+            +str(wind21_type)+";"+str(wind21)+";"+str(wind22)+";"+str(wind23)+";"+str(wind24)+";"+str(wind2Path)+";"\r
+            +str(pv_type)+";"+str(pv1)+";"+str(pv2)+";"+str(pv3)+";"+str(pv4)+";"+str(pvPath)+";"\r
+            +str(C01)+";"+str(C02)+";"+str(C03)+";"+str(C04)+";"+str(C12)+";"+str(C13)+";"+str(C14)+";"+str(C23)+";"+str(C24)+";"+str(C34)+";"\r
+            +str(fuel_cost_opt)+";"+str(bus_shunt_opt)+";"+str(bus_loads_opt)+";"\r
+            +str(rate_choice)+";0\n")\r
+        f.close()\r
+        print 'Successfuly saved case study'\r
+\r
+# preferences function is a new window to update some PSEN parameters\r
+def preferences () :   \r
+    global fenPref\r
+    global savAdressD\r
+    global folderPATHD\r
+    global ENRpathD\r
+    global VcinD\r
+    global VrateD\r
+    global VcoutD\r
+    global RhoD\r
+    global lossrateD\r
+    global config        \r
+        \r
+    fenPref = Toplevel(root) # Creating a new window\r
+    fenPref.wm_iconbitmap('lib\PSEN.ico') # Window icon\r
+    fenPref.wm_title('PSEN - Probabilistic Studies of Electrical Networks') # Window title\r
+    \r
+    f0p=Frame(fenPref, height=70, width=500, bd=2, relief=RIDGE)\r
+    f0p.pack_propagate(0) # don't shrink\r
+    f0p.pack()\r
+    \r
+    Label(f0p, text="PSSe .SAV file", fg="black", justify=LEFT, font=("Century Gothic",12)).pack(anchor=NW, padx=10, expand=YES)\r
+    savAdressD=StringVar()\r
+    Entry(f0p, textvariable=savAdressD, width=50).pack(side=LEFT, padx=15, expand=YES)\r
+    Button(f0p, text="Load SAV file", command=browse_PSSe, height=15, width=30).pack(side=LEFT, fill=BOTH, expand=1, padx=5, pady=3)\r
+    \r
+    fline=Frame(fenPref, height=2, width=500, bg="grey")\r
+    fline.pack_propagate(0) # don't shrink\r
+    fline.pack(expand=1)\r
+    \r
+    f1p=Frame(fenPref, height=70, width=500, bd=2, relief=RIDGE)\r
+    f1p.pack_propagate(0) # don't shrink\r
+    f1p.pack()    \r
+    \r
+    Label(f1p, text="Working folder adress :", fg="black", justify=LEFT, font=("Century Gothic",12)).pack(anchor=NW, padx=10, expand=YES)\r
+    folderPATHD=StringVar()\r
+    Entry(f1p, textvariable=folderPATHD, width=50).pack(side=LEFT, padx=15, expand=YES)\r
+    Button(f1p, text="Browse to working folder", command=browse_folder, height=15, width=30).pack(side=LEFT, fill=BOTH, expand=1, padx=5, pady=3)\r
+    \r
+    fline=Frame(fenPref, height=5, width=500, bg="grey")\r
+    fline.pack_propagate(0) # don't shrink\r
+    fline.pack(expand=1)\r
+    \r
+    f3p=Frame(fenPref, height=100, width=500, bd=2, relief=RIDGE)\r
+    f3p.pack_propagate(0) # don't shrink\r
+    f3p.pack()    \r
+    \r
+    Label(f3p, text="Machines configuration :", fg="black", justify=LEFT, font=("Century Gothic",12)).pack(anchor=NW, padx=10, expand=YES)\r
+    Label(f3p, text="N.B. Use the PSSe machine tab, insert a new column in first and write PV for PV, W1 for wind 1, W2 for wind 2 or do nothing for non-ENR. Save as CSV", fg="black", justify=LEFT, wraplength=450).pack(anchor=NW, padx=10, expand=YES)\r
+    ENRpathD=StringVar()\r
+    Entry(f3p, textvariable=ENRpathD, width=50).pack(side=LEFT, padx=15, expand=YES)\r
+    Button(f3p, text="Browse to ENR CSV file", command=browse_ENR, height=15, width=30).pack(side=LEFT, fill=BOTH, expand=1, padx=5, pady=3)\r
+    \r
+    fline=Frame(fenPref, height=5, width=500, bg="grey")\r
+    fline.pack_propagate(0) # don't shrink\r
+    fline.pack(expand=1)\r
+    \r
+    f4p=Frame(fenPref, height=120, width=500, bd=2, relief=RIDGE)\r
+    f4p.pack_propagate(0) # don't shrink\r
+    f4p.pack()    \r
+    \r
+    # Creates 5 entry for wind turbines characteristics    \r
+    Label(f4p, text="Wind 1 & 2 characteristics :", fg="black", justify=LEFT, font=("Century Gothic",12)).pack(anchor=NW, padx=10, expand=YES)\r
+    Label(f4p, text="If wind law, enter the following parameters : \nVcin, Vrate, Vcout, rho (air density kg.m-3, base is 1.225), lossrate (base is 0.05)\nIf power law: Vcin=0, Vrate=1, Vcout>=1. Law must take values between 0 and 1.", fg="black", justify=LEFT, wraplength=450).pack(anchor=NW, padx=10, expand=YES)\r
+    VcinD = StringVar()\r
+    Entry(f4p, textvariable=VcinD, width=13).pack(side=LEFT, padx=5, pady=5) \r
+    VrateD = StringVar()\r
+    Entry(f4p, textvariable=VrateD, width=13).pack(side=LEFT, padx=5, pady=5)\r
+    VcoutD = StringVar()\r
+    Entry(f4p, textvariable=VcoutD, width=13).pack(side=LEFT, padx=5, pady=5)\r
+    RhoD = StringVar()\r
+    Entry(f4p, textvariable=RhoD, width=13).pack(side=LEFT, padx=5, pady=5)\r
+    lossrateD = StringVar()\r
+    Entry(f4p, textvariable=lossrateD, width=13).pack(side=LEFT, padx=5, pady=5)\r
+    \r
+    fline=Frame(fenPref, height=2, width=500, bg="grey")\r
+    fline.pack_propagate(0) # don't shrink\r
+    fline.pack(expand=1)\r
+    \r
+    f2p=Frame(fenPref, height=40, width=500, bd=2, relief=RIDGE)\r
+    f2p.pack_propagate(0) # don't shrink\r
+    f2p.pack()    \r
+    \r
+    Button(f2p, text="Save and quit", command=savePref, height=1, width=30).pack(anchor=N, fill=BOTH, expand=1, padx=5, pady=3)\r
+    \r
+    # Refresh the window data\r
+    refresh_pref ()\r
+    \r
+# openPSEN function opens a .PSEN file with all PSEN parameters, read them and updates their value in the GUI\r
+def openPSEN () :\r
+    global openPATH\r
+    global folderPATH\r
+    global savAdress\r
+    global ENRpath\r
+    global contin_lines_Path\r
+    global contin_groups_Path\r
+    global model_Path\r
+    global loadPath, wind1Path, wind2Path, pvPath\r
+    global PSSEfolder\r
+    global orange_Path\r
+    global python_Path\r
+    global config\r
+    global Vcin; global Vrate; global Vcout; global Rho; global lossrate\r
+    global PVpath\r
+    \r
+    openPATH = tkFileDialog.askopenfilename(parent=fenetre,title='Open PSEN file',filetypes=[('PSEN files', '.psen'),('All files', '.*'),])\r
+    try :\r
+        os.lstat(openPATH)\r
+    except WindowsError : # If the user doesn't choose any file we don't open it\r
+        pass \r
+    except NameError : # If the user doesn't choose any file we don't open it\r
+        pass\r
+    else :\r
+        global saved # Create a saved variable : config list will be created\r
+        saved=1\r
+        f=open(openPATH,'r')\r
+        lines=f.readlines()\r
+        config=lines[0].split(";")\r
+        savAdress=config[0]; folderPATH=config[1]; ENRpath=config[2];\r
+        contin_lines_Path=config[3]; contin_groups_Path=config[4]; model_Path=config[5]; PSSEfolder=config[6]; orange_Path=config[7]; python_Path=config[8]; \r
+        Vcin=config[9]; Vrate=config[10]; Vcout=config[11]; Rho=config[12]; lossrate=config[13];\r
+        loadPath=config[25]; wind1Path=config[31]; wind2Path=config[37]; pvPath=config[43]; \r
+        refresh(config)\r
+        f=open("lib\pref.psen", "w")\r
+        f.write(str(savAdress)+";"+str(folderPATH)+";"+str(ENRpath)+";"+str(Vcin)+";"+str(Vrate)+";"+str(Vcout)+";"+str(Rho)+";"+str(lossrate)+";0\n")\r
+        f.close()\r
+        print 'Successfuly opened '+str(openPATH)\r
+\r
+# This function is not used yet\r
+def numToName (num) :\r
+    num=int(num)\r
+    if num == 1 :\r
+        name = "Normal(mean, stdev)"\r
+    elif num == 2 :\r
+        name = "Uniform(min, max)"\r
+    elif num == 3 :\r
+        name = "Exponential(lambda, gamma)"\r
+    elif num == 4 :\r
+        name = "Weibull(alpha, beta, gamma)"\r
+    elif num == 5 :\r
+        name = "TruncatedNormal(mean, stdev, min, max)"\r
+    elif num == 6 :\r
+        name = "Value list ([[v1,p1],[v2,p2],...])"\r
+    elif num == 7 :\r
+        name = "Histogram (steps, probabilities)"\r
+    elif num == 10 :\r
+        name = "PDF from file ()"\r
+    elif num == 20 :\r
+        name = "Time Serie from file (stepsize, number of points)"\r
+    return name\r
+        \r
+# refresh function updates fields values in fenetre window\r
+def refresh (config) :\r
+    var_MCS.set(config[14])\r
+    N_1.set(config[15])\r
+    PV.set(config[16])\r
+    Wind1.set(config[17])\r
+    Wind2.set(config[18])\r
+    Load.set(config[19])\r
+    \r
+    choix_load.set(config[20])\r
+    var_loadn1.set(config[21])\r
+    var_loadn2.set(config[22])\r
+    var_loadn3.set(config[23])\r
+    var_loadn4.set(config[24])\r
+    loadPathD.set(config[25])\r
+    \r
+    choix_wind11.set(config[26])\r
+    var_windn11.set(config[27])\r
+    var_windn12.set(config[28])\r
+    var_windn13.set(config[39])\r
+    var_windn14.set(config[30])\r
+    wind1PathD.set(config[31])\r
+    \r
+    choix_wind21.set(config[32])\r
+    var_windn21.set(config[33])\r
+    var_windn22.set(config[34])\r
+    var_windn23.set(config[35])\r
+    var_windn24.set(config[36])\r
+    wind2PathD.set(config[37])\r
+    \r
+    choix_pv.set(config[38])\r
+    var_pvn1.set(config[39])\r
+    var_pvn2.set(config[40])\r
+    var_pvn3.set(config[41])\r
+    var_pvn4.set(config[42])\r
+    pvPathD.set(config[43])\r
+\r
+    C01D.set(config[44])\r
+    C02D.set(config[45])\r
+    C03D.set(config[46])\r
+    C04D.set(config[47])\r
+    C12D.set(config[48])\r
+    C13D.set(config[49])\r
+    C14D.set(config[50])\r
+    C23D.set(config[51])\r
+    C24D.set(config[52])\r
+    C34D.set(config[53])\r
+    \r
+    fuel_cost.set(config[54])\r
+    bus_shunt.set(config[55])\r
+    bus_loads.set(config[56])\r
+\r
+    rate_choiceD.set(config[57])\r
+\r
+    fenetre.update_idletasks()\r
+\r
+# PCpreferences function creates a window in which the user can choose some requested paths         \r
+def PCpreferences ():\r
+    global fenPrefPC\r
+    global python_Path\r
+    global orange_Path\r
+    global PSSEfolder\r
+    \r
+    fenPrefPC = Tk()\r
+    fenPrefPC.wm_iconbitmap('lib\PSEN.ico')\r
+    fenPrefPC.wm_title('PSEN - Probabilistic Studies of Electrical Networks')\r
+    \r
+    Label(fenPrefPC, text="Configure PSEN for your computer : ", fg="black", justify=LEFT, font=("Century Gothic",12)).pack(anchor=NW, padx=10, expand=YES)\r
+    Button(fenPrefPC, text="Path to Python 2.7.exe...", command=browse_Python, height=3, width=30).pack(side=LEFT, fill=BOTH, expand=1, padx=5, pady=3)\r
+    Button(fenPrefPC, text="Path to orngCanvas.pyw...", command=browse_Orange, height=3, width=30).pack(side=LEFT, fill=BOTH, expand=1, padx=5, pady=3)\r
+    Button(fenPrefPC, text="Path to PSSE33\PSSBIN...", command=browse_PSSEfolder, height=3, width=30).pack(side=LEFT, fill=BOTH, expand=1, padx=5, pady=3)\r
+    Button(fenPrefPC, text="Save and close", command=closePCpref, height=3, width=15).pack(anchor=S, fill=BOTH, expand=1, padx=5, pady=10)\r
+    \r
+def closePCpref () :\r
+    try : # Test if the user has defined all the requested variables\r
+        python_Path\r
+        orange_Path\r
+        PSSEfolder\r
+    except NameError : # If not a new window pops up and explains the data is missing\r
+        fenetre2 = Tk()\r
+        champ_label = Label(fenetre2, text="ERROR\nNo file and/or folder selected", fg="red", font=("Century Gothic",16))\r
+        champ_label.pack(side=TOP, fill=BOTH, expand=YES)\r
+    else : # If it's OK it gets the data from the fields and save it into config[]\r
+        config[6]=PSSEfolder; config[7]=orange_Path; config[8]=python_Path \r
+    try : \r
+        fenPrefPC\r
+    except NameError :\r
+        pass\r
+    else :\r
+        fenPrefPC.destroy()\r
+        print 'Data saved'\r
+\r
+# PCpreferences function creates a window in which the user can choose some requested paths         \r
+def ContinPreferences ():\r
+    global fenPrefC\r
+    global contin_lines_Path\r
+    global contin_groups_Path\r
+    \r
+    fenPrefC = Tk()\r
+    fenPrefC.wm_iconbitmap('lib\PSEN.ico')\r
+    fenPrefC.wm_title('PSEN - Probabilistic Studies of Electrical Networks')\r
+    \r
+    Label(fenPrefC, text="Choose contingency files with probabilities : ", fg="black", justify=LEFT, font=("Century Gothic",12)).pack(anchor=NW, padx=10, expand=YES)\r
+    Button(fenPrefC, text="Path to branches file", command=contin_lines, height=3, width=30).pack(side=LEFT, fill=BOTH, expand=1, padx=5, pady=3)\r
+    Button(fenPrefC, text="Path to groups file", command=contin_groups, height=3, width=30).pack(side=LEFT, fill=BOTH, expand=1, padx=5, pady=3)\r
+    Button(fenPrefC, text="Save and close", command=closeCpref, height=3, width=15).pack(anchor=S, fill=BOTH, expand=1, padx=5, pady=10)\r
+    \r
+def closeCpref () :\r
+    try : # Test if the user has defined all the requested variables\r
+        contin_lines_Path\r
+        contin_groups_Path\r
+    except NameError : # If not a new window pops up and explains the data is missing\r
+        fenetre2 = Tk()\r
+        champ_label = Label(fenetre2, text="ERROR\nNo file and/or folder selected", fg="red", font=("Century Gothic",16))\r
+        champ_label.pack(side=TOP, fill=BOTH, expand=YES)\r
+    else : # If it's OK it gets the data from the fields and save it into config[]\r
+        config[3]=contin_lines_Path; config[4]=contin_lines_Path\r
+        f=open("lib\contin.psen", "w")\r
+        f.write(str(contin_lines_Path)+";"+str(contin_groups_Path)+";0\n")\r
+        f.close()\r
+    try : \r
+        fenPrefC\r
+    except NameError :\r
+        pass\r
+    else :\r
+        print 'Added :\n'+str(contin_lines_Path)+'\n'+str(contin_groups_Path)\r
+        fenPrefC.destroy()    \r
+        print 'Saved contingency data'\r
+        \r
+def contin_lines () :\r
+    global contin_lines_Path\r
+    contin_lines_Path =  tkFileDialog.askopenfilename(parent=fenetre,title='Choose contingency lines file',filetypes=[('CSV file', '.csv'),('All files', '.*')])\r
+    return contin_lines_Path\r
+    \r
+def contin_groups () :\r
+    global contin_groups_Path\r
+    contin_groups_Path =  tkFileDialog.askopenfilename(parent=fenetre,title='Choose contingency groups file',filetypes=[('CSV file', '.csv'),('All files', '.*')])\r
+    return contin_groups_Path\r
+        \r
+# Hide command window\r
+if os.name == 'nt': # The functions only work with Windows OS\r
+    try:\r
+        import win32gui, win32console, win32con\r
+        win32console.GetConsoleWindow() # do nothing, this is just a test\r
+        def set_attached_console_visible():\r
+            state=is_attached_console_visible()\r
+            win32gui.ShowWindow(win32console.GetConsoleWindow(), win32con.SW_HIDE if state else win32con.SW_SHOW)\r
+        def is_attached_console_visible():\r
+            return win32gui.IsWindowVisible(win32console.GetConsoleWindow())\r
+    except (ImportError, NotImplementedError):\r
+        pass\r
+\r
+\r
+# config_save function is used to save configuration for PSSEWrapper\r
+def config_save():\r
+    MCS_num=var_MCS.get()\r
+    N_1_opt=N_1.get()\r
+    PV_opt=PV.get()\r
+    Wind1_opt=Wind1.get()\r
+    Wind2_opt=Wind2.get()\r
+    Load_opt=Load.get()\r
+\r
+    load_type=choix_load.get()\r
+    load1=var_loadn1.get()\r
+    load2=var_loadn2.get()\r
+    load3=var_loadn3.get()\r
+    load4=var_loadn4.get()\r
+    loadPath=loadPathD.get()\r
+    \r
+    wind11_type=choix_wind11.get()\r
+    wind11=var_windn11.get()\r
+    wind12=var_windn12.get()\r
+    wind13=var_windn13.get()\r
+    wind14=var_windn14.get()\r
+    wind1Path=wind1PathD.get()\r
+    \r
+    wind21_type=choix_wind21.get()\r
+    wind21=var_windn21.get()\r
+    wind22=var_windn22.get()\r
+    wind23=var_windn23.get()\r
+    wind24=var_windn24.get()\r
+    wind2Path=wind2PathD.get()\r
+    \r
+    pv_type=choix_pv.get()\r
+    pv1=var_pvn1.get()\r
+    pv2=var_pvn2.get()\r
+    pv3=var_pvn3.get()\r
+    pv4=var_pvn4.get()\r
+    pvPath=pvPathD.get()\r
+    \r
+    C01=C01D.get()\r
+    C02=C02D.get()\r
+    C03=C03D.get()\r
+    C04=C04D.get()\r
+    C12=C12D.get()\r
+    C13=C13D.get()\r
+    C14=C14D.get()\r
+    C23=C23D.get()\r
+    C24=C24D.get()\r
+    C34=C34D.get()\r
+    \r
+    fuel_cost_opt = fuel_cost.get()\r
+    bus_shunt_opt = bus_shunt.get()\r
+    bus_loads_opt = bus_loads.get()\r
+    \r
+    rate_choice=rate_choiceD.get()\r
+\r
+    f=open("lib\config.psen", "w")\r
+# Write probabilistic model data \r
+    f.write(str(MCS_num)+";"+str(N_1_opt)+";"+str(PV_opt)+";"+str(Wind1_opt)+";"+str(Wind2_opt)+";"+str(Load_opt)+";"+str(fuel_cost_opt)+";"+str(bus_shunt_opt)+";"+str(bus_loads_opt)+"\n")\r
+    \r
+# Write load probabilistic model data \r
+    if load_type == "Normal(mean, stdev)" :\r
+        f.write('1;'+str(load1)+";"+str(load2)+';0')\r
+    elif load_type == "Uniform(min, max)" :\r
+        f.write('2;'+str(load1)+";"+str(load2)+';0')\r
+    elif load_type == "Exponential(lambda, gamma)" :\r
+        f.write('3;'+str(load1)+";"+str(load2)+';0')\r
+    elif load_type == "Weibull(alpha, beta, gamma)" :\r
+        f.write('4;'+str(load1)+";"+str(load2)+";"+str(load3)+';0')\r
+    elif load_type == "TruncatedNormal(mean, stdev, min, max)" :\r
+        f.write('5;'+str(load1)+";"+str(load2)+";"+str(load3)+";"+str(load4)+';0')\r
+    elif load_type == "Value list (values, probabilities)" :\r
+        f.write('6;'+str(load1)+";"+str(load2)+';0')\r
+    elif load_type == 'Histogram (steps, probabilities)' :\r
+        f.write('7;'+str(load1)+";"+str(load2)+';0')\r
+    elif load_type== "PDF from file ()" :\r
+        try :\r
+            loadPath\r
+        except NameError :\r
+            fenetre2 = Tk()\r
+            Label(fenetre2, text="ERROR\nNo file selected", fg="red", font=("Century Gothic",16)).pack(side=TOP, fill=BOTH, expand=YES)\r
+        else :\r
+            f.write('10;'+loadPath+';0')   \r
+    elif load_type== "Time Serie from file (stepsize, number of points)" :\r
+        try :\r
+            loadPath\r
+        except NameError :\r
+            fenetre2 = Tk()\r
+            Label(fenetre2, text="ERROR\nNo file selected", fg="red", font=("Century Gothic",16)).pack(side=TOP, fill=BOTH, expand=YES)\r
+        else :\r
+            f.write('20;'+loadPath+";"+str(load1)+";"+str(load2)+';0') \r
+    else :\r
+        fenetre2 = Tk()\r
+        Label(fenetre2, text="ERROR\nNo load model selected", fg="red", font=("Century Gothic",16)).pack(side=TOP, fill=BOTH, expand=YES)\r
+    f.write("\n")\r
+    \r
+# Write wind 1 probabilistic model data \r
+    if wind11_type == "Normal(mean, stdev)" :\r
+        f.write('1;'+str(wind11)+";"+str(wind12)+';0')\r
+    elif wind11_type == "Uniform(min, max)" :\r
+        f.write('2;'+str(wind11)+";"+str(wind12)+';0')\r
+    elif wind11_type == "Exponential(lambda, gamma)" :\r
+        f.write('3;'+str(wind11)+";"+str(wind12)+';0')\r
+    elif wind11_type == "Weibull(alpha, beta, gamma)" :\r
+        f.write('4;'+str(wind11)+";"+str(wind12)+";"+str(wind13)+';0')\r
+    elif wind11_type == "TruncatedNormal(mean, stdev, min, max)" :\r
+        f.write('5;'+str(wind11)+";"+str(wind12)+";"+str(wind13)+";"+str(wind14)+';0')\r
+    elif wind11_type == "Value list (values, probabilities)" :\r
+        f.write('6;'+str(wind11)+";"+str(wind12)+';0')\r
+    elif wind11_type == 'Histogram (steps, probabilities)' :\r
+        f.write('7;'+str(wind11)+";"+str(wind12)+';0')\r
+    elif wind11_type== "PDF from file ()" :\r
+        try :\r
+            wind1Path\r
+        except NameError :\r
+            fenetre2 = Tk()\r
+            Label(fenetre2, text="ERROR\nNo file selected", fg="red", font=("Century Gothic",16)).pack(side=TOP, fill=BOTH, expand=YES)\r
+        else :\r
+            f.write('10;'+wind1Path+';0')   \r
+    elif wind11_type== "Time Serie from file (stepsize, number of points)" :\r
+        try :\r
+            wind1Path\r
+        except NameError :\r
+            fenetre2 = Tk()\r
+            Label(fenetre2, text="ERROR\nNo file selected", fg="red", font=("Century Gothic",16)).pack(side=TOP, fill=BOTH, expand=YES)\r
+        else :\r
+            f.write('20;'+wind1Path+";"+str(wind11)+";"+str(wind12)+';0') \r
+    else :\r
+        fenetre2 = Tk()\r
+        Label(fenetre2, text="ERROR\nNo wind model selected", fg="red", font=("Century Gothic",16)).pack(side=TOP, fill=BOTH, expand=YES)\r
+    f.write("\n")\r
+    \r
+# Write wind 2 probabilistic model data    \r
+    if wind21_type == "Normal(mean, stdev)" :\r
+        f.write('1;'+str(wind21)+";"+str(wind22)+';0')\r
+    elif wind21_type == "Uniform(min, max)" :\r
+        f.write('2;'+str(wind21)+";"+str(wind22)+';0')\r
+    elif wind21_type == "Exponential(lambda, gamma)" :\r
+        f.write('3;'+str(wind21)+";"+str(wind22)+';0')\r
+    elif wind21_type == "Weibull(alpha, beta, gamma)" :\r
+        f.write('4;'+str(wind21)+";"+str(wind22)+";"+str(wind23)+';0')\r
+    elif wind21_type == "TruncatedNormal(mean, stdev, min, max)" :\r
+        f.write('5;'+str(wind21)+";"+str(wind22)+";"+str(wind23)+";"+str(wind24)+';0')\r
+    elif wind21_type == "Value list (values, probabilities)" :\r
+        f.write('6;'+str(wind21)+";"+str(wind22)+';0')\r
+    elif wind21_type == 'Histogram (steps, probabilities)' :\r
+        f.write('7;'+str(wind21)+";"+str(wind22)+';0')\r
+    elif wind21_type== "PDF from file ()" :\r
+        try :\r
+            wind2Path\r
+        except NameError :\r
+            fenetre2 = Tk()\r
+            Label(fenetre2, text="ERROR\nNo file selected", fg="red", font=("Century Gothic",16)).pack(side=TOP, fill=BOTH, expand=YES)\r
+        else :\r
+            f.write('10;'+wind2Path+';0')   \r
+    elif wind21_type== "Time Serie from file (stepsize, number of points)" :\r
+        try :\r
+            wind2Path\r
+        except NameError :\r
+            fenetre2 = Tk()\r
+            Label(fenetre2, text="ERROR\nNo file selected", fg="red", font=("Century Gothic",16)).pack(side=TOP, fill=BOTH, expand=YES)\r
+        else :\r
+            f.write('20;'+wind2Path+";"+str(wind21)+";"+str(wind22)+';0') \r
+    else :\r
+        fenetre2 = Tk()\r
+        Label(fenetre2, text="ERROR\nNo wind 2 model selected", fg="red", font=("Century Gothic",16)).pack(side=TOP, fill=BOTH, expand=YES)\r
+    f.write("\n")\r
+\r
+# Write correlation probabilistic model data     \r
+    f.write(str(C01)+";"+str(C02)+";"+str(C03)+";"+str(C04)+";"+str(C12)+";"+str(C13)+";"+str(C14)+";"+str(C23)+";"+str(C24)+";"+str(C34)+";0")\r
+    f.write("\n") \r
+\r
+# Write pv probabilistic model data     \r
+    if pv_type == "Normal(mean, stdev)" :\r
+        f.write('1;'+str(pv1)+";"+str(pv2)+';0')\r
+    elif pv_type == "Uniform(min, max)" :\r
+        f.write('2;'+str(pv1)+";"+str(pv2)+';0')\r
+    elif pv_type == "Exponential(lambda, gamma)" :\r
+        f.write('3;'+str(pv1)+";"+str(pv2)+';0')\r
+    elif pv_type == "Weibull(alpha, beta, gamma)" :\r
+        f.write('4;'+str(pv1)+";"+str(pv2)+";"+str(pv3)+';0')\r
+    elif pv_type == "TruncatedNormal(mean, stdev, min, max)" :\r
+        f.write('5;'+str(pv1)+";"+str(pv2)+";"+str(pv3)+";"+str(pv4)+';0')\r
+    elif pv_type == "Value list (values, probabilities)" :\r
+        f.write('6;'+str(pv1)+";"+str(pv2)+';0')\r
+    elif pv_type == 'Histogram (steps, probabilities)' :\r
+        f.write('7;'+str(pv1)+";"+str(pv2)+';0')\r
+    elif pv_type== "PDF from file ()" :\r
+        try :\r
+            pvPath\r
+        except NameError :\r
+            fenetre2 = Tk()\r
+            champ_label = Label(fenetre2, text="ERROR\nNo file selected", fg="red", font=("Century Gothic",16))\r
+            champ_label.pack(side=TOP, fill=BOTH, expand=YES)\r
+        else :\r
+            f.write('10;'+pvPath+';0')   \r
+    elif pv_type== "Time Serie from file (stepsize, number of points)" :\r
+        try :\r
+            pvPath\r
+        except NameError :\r
+            fenetre2 = Tk()\r
+            champ_label = Label(fenetre2, text="ERROR\nNo file selected", fg="red", font=("Century Gothic",16))\r
+            champ_label.pack(side=TOP, fill=BOTH, expand=YES)\r
+        else :\r
+            f.write('20;'+pvPath+";"+str(pv1)+";"+str(pv2)+';0') \r
+    else :\r
+        fenetre2 = Tk()\r
+        champ_label = Label(fenetre2, text="ERROR\nNo wind model selected", fg="red", font=("Century Gothic",16))\r
+        champ_label.pack(side=TOP, fill=BOTH, expand=YES)\r
+    f.write("\n")\r
+\r
+# Write OPF data model     \r
+    f.write(str(fuel_cost_opt) +";"+ str(bus_shunt_opt) +";"+ str(bus_loads_opt)+";0\n")\r
+\r
+# Write Imap rate choice     \r
+    f.write(str(rate_choice)+";0\n")\r
+\r
+    f.close()\r
+    \r
+    print 'Successfuly saved case data'\r
+\r
+# launch_PSEN function is used to run PSSEWrapper code with the configuration in the GUI\r
+def launch_PSEN():\r
+    config_save() # Current configuration is fist saved\r
+    PSEN_Path='PSEN/PSSEWrapper.py'\r
+    subprocess.Popen([python_Path,PSEN_Path])\r
+\r
+# launch_orange function is used to launch Orange with the model file\r
+def launch_Orange():\r
+    subprocess.Popen([python_Path,orange_Path,model_Path])\r
+\r
+# browse_load is used to select a .CSV file with a 1D array of load measures\r
+def browse_load() :\r
+    global loadPath\r
+    loadPath = tkFileDialog.askopenfilename(parent=fenetre,title='Open file for load data estimation',filetypes=[('CSV files', '.csv'),('All files', '.*')])\r
+    loadPathD.set(loadPath)\r
+    fenetre.update_idletasks() # updates the fields paths\r
+    return loadPath\r
+\r
+# browse_wind is used to select a .CSV file with a 1D array of wind measures    \r
+def browse_wind1() :\r
+    global wind1Path\r
+    wind1Path = tkFileDialog.askopenfilename(parent=fenetre,title='Open file for wind 1 data estimation',filetypes=[('CSV files', '.csv'),('All files', '.*')])\r
+    wind1PathD.set(wind1Path)\r
+    fenetre.update_idletasks() # updates the fields paths\r
+    return wind1Path\r
+    \r
+# browse_wind is used to select a .CSV file with a 1D array of wind measures    \r
+def browse_wind2() :\r
+    global wind2Path\r
+    wind2Path = tkFileDialog.askopenfilename(parent=fenetre,title='Open file for wind 2 data estimation',filetypes=[('CSV files', '.csv'),('All files', '.*')])\r
+    wind2PathD.set(wind2Path)\r
+    fenetre.update_idletasks() # updates the fields paths\r
+    return wind2Path\r
+\r
+# browse_pv is used to select a .CSV file with a 1D array of PV measures    \r
+def browse_pv() :\r
+    global pvPath\r
+    pvPath = tkFileDialog.askopenfilename(parent=fenetre,title='Open file for PV data estimation',filetypes=[('CSV files', '.csv'),('All files', '.*')])\r
+    pvPathD.set(pvPath)\r
+    fenetre.update_idletasks() # updates the fields paths\r
+    return pvPath    \r
+\r
+# continload function is a browsing window returning the path to the contingency CSV file\r
+def continload () :\r
+    global continpath\r
+    continpath = tkFileDialog.askopenfilename(parent=fenetre,title='Open contingency file',filetypes=[('CSV files', '.csv'),('All files', '.*')])\r
+    try :\r
+        continpath\r
+    except NameError :\r
+        pass\r
+    else : # Saves the path into a file for PSSEWrapper.py\r
+        f=open("lib\contin.psen", "w")\r
+        f.write(str(continpath)+";0\n")\r
+        f.close()\r
+    return continpath\r
+\r
+# orangeload function is a browsing window returning the path to the orange model file OWS\r
+def orangeload () :\r
+    global model_Path\r
+    model_Path = tkFileDialog.askopenfilename(parent=fenetre,title='Open orange file...',filetypes=[('Orange Widget Scripts', '.ows')])\r
+    \r
+def browse_PSSEfolder () :\r
+    global PSSEfolder\r
+    if os.path.exists("C:\Program Files\PTI\PSSE33\PSSBIN") == True : \r
+        path="C:\Program Files\PTI\PSSE33\PSSBIN"\r
+    else : \r
+        path="C:"\r
+    PSSEfolder = tkFileDialog.askdirectory(parent=fenPrefPC,title='Choose PSSE/PSSBIN folder', initialdir=path)\r
+    return PSSEfolder\r
+    \r
+def browse_Python () :\r
+    global python_Path\r
+    if os.path.exists("C:\Python27") == True : \r
+        path="C:\Python27"\r
+    else : \r
+        path="C:"\r
+    python_Path =  tkFileDialog.askopenfilename(parent=fenetre,title='Choose python.exe',filetypes=[('Executables', '.exe'),('All files', '.*')], initialdir=path)\r
+    return python_Path\r
+    \r
+def browse_Orange () :\r
+    global orange_Path\r
+    if os.path.exists("C:\Python27\Lib\site-packages\Orange\OrangeCanvas") == True : \r
+        path="C:\Python27\Lib\site-packages\Orange\OrangeCanvas"\r
+    else : \r
+        path="C:"\r
+    orange_Path = tkFileDialog.askopenfilename(parent=fenetre,title='Choose orngCanvas.pyw',filetypes=[('Python file', '.pyw'),('All files', '.*')], initialdir=path)\r
+    return orange_Path\r
+# On crée une fenêtre, racine de notre interface\r
+def fenetre() :\r
+    global fenetre,var_MCS,N_1,PV,Wind1,Wind2,Load,choix_load,var_loadn1,var_loadn2,var_loadn3,var_loadn4,loadPathD,choix_wind11,var_windn11,var_windn12,var_windn13,var_windn14,wind1PathD,choix_wind21,var_windn21,var_windn22,var_windn23,var_windn24,wind2PathD,choix_pv,var_pvn1,var_pvn2,var_pvn3,var_pvn4,pvPathD,C01D,C02D,C03D,C04D,C12D,C13D,C14D,C23D,C24D,C34D,fuel_cost,bus_shunt,bus_loads,rate_choiceD\r
+    fenetre = Toplevel(root)\r
+    fenetre.wm_iconbitmap('lib\PSEN.ico')\r
+    fenetre.wm_title('PSEN - Probabilistic Studies of Electrical Networks')\r
+    \r
+    def openshort (event):\r
+        openPSEN()\r
+    def saveshort (event) : \r
+        savePSEN()\r
+    def quitshort (event) : \r
+        fenetre.destroy()\r
+    def orangeshort (event):\r
+        launch_Orange()\r
+    def runshort (event) : \r
+        launch_PSEN()\r
+    def prefshort (event) : \r
+        preferences()    \r
+    \r
+    fenetre.bind_all("<Control-q>", quitshort)\r
+    fenetre.bind_all("<Control-o>", openshort)\r
+    fenetre.bind_all("<Control-s>", saveshort)\r
+    fenetre.bind_all("<Control-a>", orangeshort)\r
+    fenetre.bind_all("<Control-r>", runshort)\r
+    fenetre.bind_all("<Control-p>", prefshort)    \r
+    \r
+    wd=500\r
+    \r
+    # Create a toplevel menu\r
+    menubar=Menu(fenetre)\r
+    \r
+    filemenu = Menu(menubar, tearoff=0)\r
+    filemenu.add_command(label="Open PSEN", command=openPSEN, accelerator="Ctrl+O")\r
+    filemenu.add_command(label="Save PSEN", command=savePSEN, accelerator="Ctrl+S")\r
+    filemenu.add_separator() \r
+    filemenu.add_command(label="Exit", command=fenetre.quit, accelerator="Ctrl+Q")\r
+    menubar.add_cascade(label="File", menu=filemenu)\r
+    \r
+    editmenu = Menu(menubar, tearoff=0)\r
+    editmenu.add_command(label="Computer preferences", command=PCpreferences)\r
+    editmenu.add_separator() \r
+    editmenu.add_command(label="Study preferences", command=preferences, accelerator="Ctrl+P")\r
+    menubar.add_cascade(label="Edit", menu=editmenu)\r
+    \r
+    exemenu = Menu(menubar, tearoff=0)\r
+    exemenu.add_command(label="Run PSEN", command=preferences, accelerator="Ctrl+R")\r
+    menubar.add_cascade(label="Execution", menu=exemenu)\r
+    \r
+    contmenu = Menu(menubar, tearoff=0)\r
+    contmenu.add_command(label="Load contingency file", command=ContinPreferences)\r
+    menubar.add_cascade(label="Contingency analysis", menu=contmenu)\r
+    \r
+    orangemenu = Menu(menubar, tearoff=0)\r
+    orangemenu.add_command(label="Choose Orange model", command=orangeload)\r
+    orangemenu.add_command(label="Open Orange", command=launch_Orange, accelerator="Ctrl+A")\r
+    menubar.add_cascade(label="Orange analysis", menu=orangemenu)\r
+    \r
+    viewmenu = Menu(menubar, tearoff=0)\r
+    viewmenu.add_command(label="Show/Hide cmd window", command=set_attached_console_visible)\r
+    menubar.add_cascade(label="View", menu=viewmenu)\r
+    \r
+    # Display the menu\r
+    fenetre.config(menu=menubar)\r
+    \r
+    ftop=Frame(fenetre, height=140, width=2*wd, bd=2, relief=RIDGE)\r
+    ftop.pack_propagate(0) # don't shrink\r
+    ftop.pack()\r
+    \r
+    fmid=Frame(fenetre, height=500, width=2*wd)\r
+    fmid.pack_propagate(0) # don't shrink\r
+    fmid.pack()\r
+    \r
+    fleft=Frame(fmid, height=500, width=wd, bd=2, relief=RIDGE)\r
+    fleft.pack_propagate(0) # don't shrink\r
+    fleft.pack(side=LEFT)\r
+    \r
+    fright=Frame(fmid, height=500, width=wd, bd=2, relief=RIDGE)\r
+    fright.pack_propagate(0) # don't shrink\r
+    fright.pack(side=RIGHT)\r
+    \r
+    #canvas=Canvas(fenetre, width=600, height=100, bg='ivory')\r
+    Label(ftop, image=header).pack(side=TOP, fill=BOTH, expand=YES)\r
+    #canvas.pack(side=TOP,padx=5,pady=5)\r
+\r
+    fline=Frame(ftop, height=2, width=2*wd, bg="grey")\r
+    fline.pack_propagate(0) # don't shrink\r
+    fline.pack(expand=1)\r
+    \r
+    fl0=Frame(fleft, height=55, width=wd)\r
+    fl0.pack_propagate(0) # don't shrink\r
+    fl0.pack()\r
+    \r
+    Label(fl0, text="Simulation parameters", fg="black", justify=LEFT, font=("Century Gothic",14)).pack(anchor=NW, padx=10, expand=NO)\r
+    \r
+    # Change Monte Carlo samplings\r
+    Label(fl0, text="Choose the number of samples:", fg="black").pack(side=LEFT, padx=10, expand=NO)\r
+    \r
+    var_MCS = StringVar()\r
+    Entry(fl0, textvariable=var_MCS, width=15).pack(side=LEFT, padx=15, expand=NO)\r
+    \r
+    fl01=Frame(fleft, height=30, width=wd)\r
+    fl01.pack_propagate(0) # don't shrink\r
+    fl01.pack()\r
+    \r
+    # Change N-1 study or not\r
+    N_1 = IntVar()\r
+    Checkbutton(fl01, text="N-1 study ?", variable=N_1).pack(side=LEFT, padx=2)\r
+    \r
+    # Include Load ?\r
+    Load = IntVar()\r
+    Checkbutton(fl01, text="Load study ?", variable=Load).pack(side=LEFT, padx=2)\r
+    \r
+    # Include Wind 1 ?\r
+    Wind1 = IntVar()\r
+    Checkbutton(fl01, text="Wind 1 study ?", variable=Wind1).pack(side=LEFT, padx=2)\r
+    \r
+    # Include Wind 2 ?\r
+    Wind2 = IntVar()\r
+    Checkbutton(fl01, text="Wind 2 study ?", variable=Wind2).pack(side=LEFT, padx=2)\r
+    \r
+    # Include PV\r
+    PV = IntVar()\r
+    Checkbutton(fl01, text="PV study ?", variable=PV).pack(side=LEFT, padx=2)\r
+    \r
+    Frame(fleft, height=2, width=wd, bg="grey").pack(pady=10, expand=NO)\r
+    \r
+    fl1=Frame(fleft, height=152, width=wd)\r
+    fl1.pack_propagate(0) # don't shrink\r
+    fl1.pack(pady=0, expand=NO)\r
+    \r
+    champ_label = Label(fl1, text="Correlation upper matrix :", fg="black", justify=LEFT, font=("Century Gothic",14))\r
+    champ_label.pack(anchor=NW, padx=10, expand=NO)\r
+    \r
+    champ_label = Label(fl1, text="Load                         N-1                    Wind1               Wind2                 Solar           ", fg="black")\r
+    champ_label.pack(anchor=NE, padx=10)\r
+    \r
+    fl11=Frame(fl1, height=25, width=wd)\r
+    fl11.pack_propagate(0) # don't shrink\r
+    fl11.pack(padx=10, expand=NO)\r
+    C04D = StringVar()\r
+    Entry(fl11, textvariable=C04D, width=10).pack(side=RIGHT, padx=10, pady=5)\r
+    C04D.set(0)\r
+    C03D = StringVar()\r
+    Entry(fl11, textvariable=C03D, width=10).pack(side=RIGHT, padx=10, pady=5)\r
+    C03D.set(0)\r
+    C02D = StringVar()\r
+    Entry(fl11, textvariable=C02D, width=10).pack(side=RIGHT, padx=10, pady=5)\r
+    C02D.set(0)\r
+    C01D = StringVar()\r
+    Entry(fl11, textvariable=C01D, width=10).pack(side=RIGHT, padx=10, pady=5)\r
+    C01D.set(0)\r
+    \r
+    champ_label = Label(fl11, text="Load     ", fg="black")\r
+    champ_label.pack(side=RIGHT, padx=10)\r
+    \r
+    fl12=Frame(fl1, height=25, width=wd)\r
+    fl12.pack_propagate(0) # don't shrink\r
+    fl12.pack(padx=10, expand=NO)\r
+    C14D = StringVar()\r
+    Entry(fl12, textvariable=C14D, width=10).pack(side=RIGHT, padx=10, pady=5)\r
+    C14D.set(0)\r
+    C13D = StringVar()\r
+    Entry(fl12, textvariable=C13D, width=10).pack(side=RIGHT, padx=10, pady=5)\r
+    C13D.set(0)\r
+    C12D = StringVar()\r
+    Entry(fl12, textvariable=C12D, width=10).pack(side=RIGHT, padx=10, pady=5)\r
+    C12D.set(0)\r
+    \r
+    champ_label = Label(fl12, text="N-1    ", fg="black")\r
+    champ_label.pack(side=RIGHT, padx=10)\r
+    \r
+    fl13=Frame(fl1, height=25, width=wd)\r
+    fl13.pack_propagate(0) # don't shrink\r
+    fl13.pack(padx=10, expand=NO)\r
+    C24D = StringVar()\r
+    Entry(fl13, textvariable=C24D, width=10).pack(side=RIGHT, padx=10, pady=5)\r
+    C24D.set(0)\r
+    C23D = StringVar()\r
+    Entry(fl13, textvariable=C23D, width=10).pack(side=RIGHT, padx=10, pady=5)\r
+    C23D.set(0)\r
+    \r
+    champ_label = Label(fl13, text="Wind1    ", fg="black")\r
+    champ_label.pack(side=RIGHT, padx=10)\r
+    \r
+    fl14=Frame(fl1, height=25, width=wd)\r
+    fl14.pack_propagate(0) # don't shrink\r
+    fl14.pack(padx=10, expand=NO)\r
+    C34D = StringVar()\r
+    Entry(fl14, textvariable=C34D, width=10).pack(side=RIGHT, padx=10, pady=5)\r
+    C34D.set(0)\r
+    \r
+    champ_label = Label(fl14, text="Wind2      ", fg="black")\r
+    champ_label.pack(side=RIGHT, padx=10)\r
+    \r
+    fline=Frame(fleft, height=2, width=wd, bg="grey")\r
+    fline.pack(pady=10, expand=NO)\r
+    \r
+    fl2=Frame(fleft, height=20, width=wd)\r
+    fl2.pack_propagate(0) # don't shrink\r
+    fl2.pack()\r
+    \r
+    champ_label = Label(fl2, text="PSSe OPF parameters", fg="black", justify=LEFT, font=("Century Gothic",14))\r
+    champ_label.pack(anchor=NW, padx=10, expand=NO)\r
+    \r
+    fl21=Frame(fleft, height=30, width=wd)\r
+    fl21.pack_propagate(0) # don't shrink\r
+    fl21.pack()\r
+    \r
+    # "Minimize fuel cost"\r
+    fuel_cost = IntVar()\r
+    Checkbutton(fl21, text="Minimize fuel cost", variable=fuel_cost).pack(side=LEFT, padx=10)\r
+    \r
+    # "Minimize adj. bus shunts"\r
+    bus_shunt = IntVar()\r
+    Checkbutton(fl21, text="Minimize adj. bus shunts", variable=bus_shunt).pack(side=LEFT, padx=10)\r
+    \r
+    # "Minimize adj. bus loads"\r
+    bus_loads = IntVar()\r
+    Checkbutton(fl21, text="Minimize adj. bus loads", variable=bus_loads).pack(side=LEFT, padx=10)\r
+    \r
+    fline=Frame(fleft, height=2, width=wd, bg="grey")\r
+    fline.pack(pady=10, expand=NO)\r
+    \r
+    fl3=Frame(fleft, height=20, width=wd)\r
+    fl3.pack_propagate(0) # don't shrink\r
+    fl3.pack()\r
+    \r
+    champ_label = Label(fl3, text="PSSe Irate choice :", fg="black", justify=LEFT, font=("Century Gothic",14))\r
+    champ_label.pack(side=LEFT, padx=10, expand=NO)\r
+\r
+    # "Minimize fuel cost"\r
+    rate_choiceD = IntVar()\r
+    Radiobutton(fl3, text="Rate A", variable=rate_choiceD, value=1).pack(side=LEFT, padx=20)\r
+    Radiobutton(fl3, text="Rate B", variable=rate_choiceD, value=2).pack(side=LEFT, padx=10)\r
+    Radiobutton(fl3, text="Rate C", variable=rate_choiceD, value=3).pack(side=LEFT, padx=10)\r
+    \r
+#---- Choose the probability laws ---\r
+    #---- Load model ----\r
+    fr0=Frame(fright, height=55, width=wd)\r
+    fr0.pack_propagate(0) # don't shrink\r
+    fr0.pack(expand=NO, anchor=NW)\r
+    \r
+    champ_label = Label(fr0, text="Load model :", fg="black", justify=LEFT, font=("Century Gothic",14))\r
+    champ_label.pack(anchor=NW, padx=10, expand=NO)\r
+    \r
+    choix_load=StringVar()\r
+    laws_choice = ('Normal(mean, stdev)','Uniform(min, max)','Exponential(lambda, gamma)','Weibull(alpha, beta, gamma)', 'TruncatedNormal(mean, stdev, min, max)', 'Value list (values, probabilities)', 'Histogram (steps, probabilities)', 'PDF from file ()', 'Time Serie from file (stepsize, number of points)' )\r
+    Combobox(fr0, textvariable = choix_load, values = laws_choice, state = 'readonly', width=50).pack(side=LEFT, padx=10, expand=NO)\r
+    choix_load.set('Choose your load model')\r
+    \r
+    fr01=Frame(fright, height=30, width=wd)\r
+    fr01.pack_propagate(0) # don't shrink\r
+    fr01.pack(expand=NO)\r
+    champ_label = Label(fr01, text="Parameters :", fg="black").pack(side=LEFT, padx=10, pady=0)\r
+    \r
+    var_loadn1 = StringVar()\r
+    Entry(fr01, textvariable=var_loadn1, width=12).pack(side=LEFT, padx=10, pady=5)\r
+    var_loadn2 = StringVar()\r
+    Entry(fr01, textvariable=var_loadn2, width=12).pack(side=LEFT, padx=10, pady=5)\r
+    var_loadn3 = StringVar()\r
+    Entry(fr01, textvariable=var_loadn3, width=12).pack(side=LEFT, padx=10, pady=5)\r
+    var_loadn4 = StringVar()\r
+    Entry(fr01, textvariable=var_loadn4, width=12).pack(side=LEFT, padx=10, pady=5)\r
+    \r
+    fr011=Frame(fright, height=35, width=wd)\r
+    fr011.pack_propagate(0) # don't shrink\r
+    fr011.pack(expand=NO)\r
+    \r
+    # We create the browse button\r
+    loadPathD=StringVar()\r
+    Entry(fr011, textvariable=loadPathD, width=50).pack(side=LEFT, padx=15, expand=YES)\r
+    \r
+    Button(fr011, text="Load data", command=browse_load).pack(side=LEFT, fill=BOTH, expand=1, padx=5, pady=3)\r
+    \r
+    fline=Frame(fright, height=2, width=wd, bg="grey")\r
+    fline.pack(pady=2, expand=NO)\r
+    \r
+    #---- Wind 1 model ----\r
+    fr1=Frame(fright, height=55, width=wd)\r
+    fr1.pack_propagate(0) # don't shrink\r
+    fr1.pack(expand=NO, pady=0)\r
+    \r
+    champ_label = Label(fr1, text="Wind 1 distribution model :", fg="black", justify=LEFT, font=("Century Gothic",14))\r
+    champ_label.pack(anchor=NW, padx=10, expand=NO)\r
+    \r
+    choix_wind11=StringVar()\r
+    laws_choice = ('Normal(mean, stdev)','Uniform(min, max)','Exponential(lambda, gamma)','Weibull(alpha, beta, gamma)', 'TruncatedNormal(mean, stdev, min, max)', 'Value list (values, probabilities)', 'Histogram (steps, probabilities)', 'PDF from file ()', 'Time Serie from file (stepsize, number of points)' )\r
+    Combobox(fr1, textvariable = choix_wind11, values = laws_choice, state = 'readonly', width=50).pack(side=LEFT, padx=10, expand=NO)\r
+    choix_wind11.set('Choose your wind model')\r
+    \r
+    fr11=Frame(fright, height=30, width=wd)\r
+    fr11.pack_propagate(0) # don't shrink\r
+    fr11.pack(expand=NO)\r
+    Label(fr11, text="Parameters :", fg="black").pack(side=LEFT, padx=10, pady=0)\r
+    \r
+    var_windn11 = StringVar()\r
+    Entry(fr11, textvariable=var_windn11, width=12).pack(side=LEFT, padx=10, pady=5)\r
+    var_windn12 = StringVar()\r
+    Entry(fr11, textvariable=var_windn12, width=12).pack(side=LEFT, padx=10, pady=5)\r
+    var_windn13 = StringVar()\r
+    Entry(fr11, textvariable=var_windn13, width=12).pack(side=LEFT, padx=10, pady=5)\r
+    var_windn14 = StringVar()\r
+    Entry(fr11, textvariable=var_windn14, width=12).pack(side=LEFT, padx=10, pady=5)\r
+    \r
+    fr111=Frame(fright, height=35, width=wd)\r
+    fr111.pack_propagate(0) # don't shrink\r
+    fr111.pack(expand=NO)\r
+    \r
+    # We create the browse button\r
+    wind1PathD=StringVar()\r
+    Entry(fr111, textvariable=wind1PathD, width=50).pack(side=LEFT, padx=15, expand=YES)\r
+    \r
+    Button(fr111, text="Wind 1 data", command=browse_wind1).pack(side=LEFT, fill=BOTH, expand=1, padx=5, pady=3)\r
+    \r
+    fline=Frame(fright, height=2, width=wd, bg="grey")\r
+    fline.pack(pady=2, expand=NO)\r
+    \r
+    #---- Wind 2 model ----\r
+    fr2=Frame(fright, height=55, width=wd)\r
+    fr2.pack_propagate(0) # don't shrink\r
+    fr2.pack(expand=NO, pady=0)\r
+    \r
+    champ_label = Label(fr2, text="Wind 2 distribution model :", fg="black", justify=LEFT, font=("Century Gothic",14))\r
+    champ_label.pack(anchor=NW, padx=10, expand=NO)\r
+    \r
+    choix_wind21=StringVar()\r
+    laws_choice = ('Normal(mean, stdev)','Uniform(min, max)','Exponential(lambda, gamma)','Weibull(alpha, beta, gamma)', 'TruncatedNormal(mean, stdev, min, max)', 'Value list (values, probabilities)', 'Histogram (steps, probabilities)', 'PDF from file ()', 'Time Serie from file (stepsize, number of points)' )\r
+    Combobox(fr2, textvariable = choix_wind21, values = laws_choice, state = 'readonly', width=50).pack(side=LEFT, padx=10, expand=NO)\r
+    choix_wind21.set('Choose your wind model')\r
+    \r
+    fr21=Frame(fright, height=30, width=wd)\r
+    fr21.pack_propagate(0) # don't shrink\r
+    fr21.pack(expand=NO)\r
+    Label(fr21, text="Parameters :", fg="black").pack(side=LEFT, padx=10, pady=0)\r
+    \r
+    var_windn21 = StringVar()\r
+    Entry(fr21, textvariable=var_windn21, width=12).pack(side=LEFT, padx=10, pady=5)\r
+    var_windn22 = StringVar()\r
+    Entry(fr21, textvariable=var_windn22, width=12).pack(side=LEFT, padx=10, pady=5)\r
+    var_windn23 = StringVar()\r
+    Entry(fr21, textvariable=var_windn23, width=12).pack(side=LEFT, padx=10, pady=5)\r
+    var_windn24 = StringVar()\r
+    Entry(fr21, textvariable=var_windn24, width=12).pack(side=LEFT, padx=10, pady=5)\r
+    \r
+    fr211=Frame(fright, height=35, width=wd)\r
+    fr211.pack_propagate(0) # don't shrink\r
+    fr211.pack(expand=NO)\r
+    \r
+    # We create the browse button\r
+    wind2PathD=StringVar()\r
+    Entry(fr211, textvariable=wind2PathD, width=50).pack(side=LEFT, padx=15, expand=YES)\r
+    \r
+    Button(fr211, text="Wind 2 data", command=browse_wind2).pack(side=LEFT, fill=BOTH, expand=1, padx=5, pady=3)\r
+    \r
+    fline=Frame(fright, height=2, width=wd, bg="grey")\r
+    fline.pack(pady=2, expand=NO)\r
+    \r
+    #---- PV model ----    \r
+    fr3=Frame(fright, height=55, width=wd)\r
+    fr3.pack_propagate(0) # don't shrink\r
+    fr3.pack(expand=NO, pady=0)\r
+    \r
+    champ_label = Label(fr3, text="Photovoltaic distribution model :", fg="black", justify=LEFT, font=("Century Gothic",14))\r
+    champ_label.pack(anchor=NW, padx=10, expand=NO)\r
+    \r
+    choix_pv=StringVar()\r
+    laws_choice = ('Normal(mean, stdev)','Uniform(min, max)','Exponential(lambda, gamma)','Weibull(alpha, beta, gamma)', 'TruncatedNormal(mean, stdev, min, max)', 'Value list (values, probabilities)', 'Histogram (steps, probabilities)', 'PDF from file ()', 'Time Serie from file (stepsize, number of points)' )\r
+    Combobox(fr3, textvariable = choix_pv, values = laws_choice, state = 'readonly', width=50).pack(side=LEFT, padx=10, expand=NO)\r
+    choix_pv.set('Choose your PV model')\r
+    \r
+    fr31=Frame(fright, height=30, width=wd)\r
+    fr31.pack_propagate(0) # don't shrink\r
+    fr31.pack(expand=NO)\r
+    Label(fr31, text="Parameters :", fg="black").pack(side=LEFT, padx=10, pady=0)\r
+    \r
+    var_pvn1 = StringVar()\r
+    Entry(fr31, textvariable=var_pvn1, width=12).pack(side=LEFT, padx=10, pady=5)\r
+    var_pvn2 = StringVar()\r
+    Entry(fr31, textvariable=var_pvn2, width=12).pack(side=LEFT, padx=10, pady=5)\r
+    var_pvn3 = StringVar()\r
+    Entry(fr31, textvariable=var_pvn3, width=12).pack(side=LEFT, padx=10, pady=5)\r
+    var_pvn4 = StringVar()\r
+    Entry(fr31, textvariable=var_pvn4, width=12).pack(side=LEFT, padx=10, pady=5)\r
+    \r
+    fr311=Frame(fright, height=35, width=wd)\r
+    fr311.pack_propagate(0) # don't shrink\r
+    fr311.pack(expand=NO)\r
+    \r
+    # We create the browse button\r
+    pvPathD=StringVar()\r
+    Entry(fr311, textvariable=pvPathD, width=50).pack(side=LEFT, padx=15, expand=YES)\r
+    \r
+    Button(fr311, text="PV data", command=browse_pv).pack(side=LEFT, fill=BOTH, expand=1, padx=5, pady=3)\r
+    \r
+    fb=Frame(fenetre, height=50, width=2*wd, bd=2, relief=RIDGE)\r
+    fb.pack_propagate(0) # don't shrink\r
+    fb.pack()\r
+    \r
+    Frame(fb, height=2, width=2*wd, bg="grey").pack(expand=1)\r
+    \r
+    # We create the launch button\r
+    Button(fb, text="Run PSEN", command=launch_PSEN, height=1, width=20, underline=YES).pack(expand=NO, padx=5, pady=3)\r
+    \r
+# On démarre la boucle Tkinter qui s'interompt quand on ferme la fenêtre\r
+fenetre()\r
+root.mainloop()
\ No newline at end of file
diff --git a/OldCodes/PSEN_Eficas/PSEN/PSSEWrapper.py b/OldCodes/PSEN_Eficas/PSEN/PSSEWrapper.py
new file mode 100755 (executable)
index 0000000..3adb5ac
--- /dev/null
@@ -0,0 +1,742 @@
+#===============================================================================
+#   PSEN SCRIPT FOR PROBABILISTIC STUDIES OF ELECTICAL NETWORKS
+#===============================================================================
+from openturns import *
+from pylab import *
+from math import*
+import os, random
+import numpy as np
+from time import gmtime, strftime
+from array import *
+from support_functions import *
+
+# Ouverture du fichier de configuration et recupecation des valeurs sous forme de listes
+f=open("C:\B31272\Documents\PSEN\PSENdev\lib\config.psen","r")
+lines=f.readlines()
+data_config=lines[0].split(";")
+data_load2 = getUserLaw(lines[1].split(";"))[0]
+data_wind1=getUserLaw(lines[2].split(";"))[0]
+data_wind2=getUserLaw(lines[3].split(";"))[0]
+data_corr=lines[4].split(";")
+data_PV=getUserLaw(lines[5].split(";"))[0]
+data_OPF=lines[6].split(";")
+Irate_num=int(lines[7].split(";")[0])
+f.close()
+
+# Definition des variables pour les series temporelles : getUserLaw(lines[1].split(";"))[1][0] doit valoir 1
+# pour que le programme etudie les series temporelles
+time_serie_file=[]
+time_serie_mat=[]
+for i in ([1,2,3,5]) :
+    TSoptions = getUserLaw(lines[i].split(";"))[1]
+    if TSoptions[0] == 1 :
+        time_serie=1
+        f=open(TSoptions[1],"r")
+        linesTS=f.readlines()
+        f.close()
+        tsm=[]
+        for j in range (len(linesTS)) :
+            try :
+                float(linesTS[j])
+            except ValueError :
+                linesTS[j] = commaToPoint(linesTS[j])
+            else :
+                pass
+            tsm.append(float(linesTS[j]))
+        time_serie_mat.append(tsm)
+        time_serie_file.append(TSoptions[1])
+        """time_serie_SS = TSoptions[2]
+        time_serie_TH = TSoptions[3]"""
+    else :
+        time_serie_file.append(-1)
+time_serie_mat=zip(*time_serie_mat)
+
+# Ouverture du fichier de preferences et recuperation des donnees
+f=open("C:\B31272\Documents\PSEN\PSENdev\lib\pref.psen","r")
+lines=f.readlines()
+f.close()
+paths=lines[0].split(";")
+WTconfig=[]
+for i in range (3,8):
+    try :
+        paths[i]
+    except :
+        print "Error in defining wind turbines characteristics"
+        WTconfig=[3.,5.,25.,1.225,0.05]
+    else :
+        WTconfig.append(float(paths[i]))
+
+# Ouverture du fichier d'analyse de N-1 et recuperation des donnees
+f=open("C:\B31272\Documents\PSEN\PSENdev\lib\contin.psen","r")
+lines=f.readlines()
+path_config_contin=lines[0].split(";")
+f.close()
+
+# Definition des lois des cinq variables aleatoires
+N_1=int(data_config[1]) # N_1=1 to do N-1 studies 
+wind_var1=int(data_config[3]) # To take wind1 variability into account
+wind_var2=int(data_config[4]) # To take wind2 variability into account
+PV_var=int(data_config[2]) # To take PV variability into account
+load_var=int(data_config[5]) # To take load variability into account
+
+# Creation variable nom dossier N-1
+if N_1 == 1 :
+    folderN_1 = '1_'
+else :
+    folderN_1 = '_'
+
+# Recuperation des chemins du dossier d'installation de PSSE, .SAV de l'etude et nom du rapport
+folder=paths[1]
+doc_base= paths[0]
+exec_file="report.txt"
+
+# Definition des groupes de production PV, eoliennes, des intercos et des lignes en N-1
+ENR=config_ENR(paths[2])
+windTurbines1 = ENR[1] # Buses with wind turbines 1
+windTurbines2 = ENR[2] # Buses with wind turbines 2
+solarPV = ENR[0] # Buses with solar PV plant
+intercos=ENR[3] # Buses with interconnexions
+# Lines with contingency
+try :
+    config_contingency(path_config_contin)
+except IOError :  # Si le fichier n'est pas dans un bon format on traite l'exception
+    nb_lines=1
+    print 'Error with contingency input file'
+else :
+    continAll = config_contingency(path_config_contin)
+    continLines = continAll[0]
+    continGroups = continAll[1]
+    continVal = continAll[2]
+    continProb = continAll[3]
+    
+    
+# Probabilistic study information
+#==============================================================================
+# Create the marginal distributions
+distributionX0 = data_load2 
+distributionX1 = getUserDefined(continVal,continProb)
+distributionX2 = data_wind1 
+distributionX3 = data_wind2
+distributionX4 = data_PV 
+
+# Create the correlations between the distributions
+corr10=float(data_corr[0])
+corr20=float(data_corr[1])
+corr30=float(data_corr[2])
+corr40=float(data_corr[3])
+corr21=float(data_corr[4])
+corr31=float(data_corr[5])
+corr41=float(data_corr[6])
+corr32=float(data_corr[7])
+corr42=float(data_corr[8])
+corr43=float(data_corr[9])
+
+# Probabilistic Study: central dispersion => Monte Carlo or LHS iterations
+montecarlosize = int(data_config[0])
+
+#Extension name for the folders and files
+day=time.strftime("%Y%m%d", gmtime())
+hour=time.strftime("%Hh%Mm%S", gmtime())
+
+#===============================================================================
+#    CHARGEMENT DE PSSE     -   LOADING OF PSSE
+#===============================================================================
+pssFolder=str(paths[3])
+import sys
+sys.path.append(pssFolder)#r"C:\Program Files\PTI\PSSE33\PSSBIN")
+os.environ['PATH'] = pssFolder+":"+os.environ['PATH'] #r"C:\Program Files\PTI\PSSE33\PSSBIN;"+ os.environ['PATH']
+os.chdir(folder)
+import psspy
+import pssarrays
+import redirect
+_i=psspy.getdefaultint()
+_f=psspy.getdefaultreal()
+_s=psspy.getdefaultchar()
+redirect.psse2py()
+#import pssdb
+psspy.psseinit(80000)
+
+# Silent execution of PSSe
+islct=6 # 6=no output; 1=standard
+psspy.progress_output(islct)
+
+# Enregistrement de l'heure de debut de simulation
+f=open(exec_file, 'a')
+start_time=time.clock()
+f.write("Starting time: %f;     Monte Carlo Size : %f;      " % (start_time, montecarlosize))
+f.close()
+
+#===============================================================================
+#    Fonction de wrappage     -   Wrapper function
+#===============================================================================
+def PSSEFunction(x):
+    # Definition des variables globales
+    global TStest
+    global Xt
+    global sizeY0
+    global sizeY1
+    global sizeY2
+    global sizeY3
+    global sizeY4
+    global sizeY
+    global wind_var
+    global PV_var
+    global N_1
+    global load_var
+    global logCSVfilename
+    global logTXTfilename
+    global ite
+    global folder
+    global day
+    global folderN_1
+    global fich
+    global hour
+    global montecarlosize
+    global WTconfig
+    global x2
+    
+    ite+=1 # incrementation du compteur
+    
+    # Load data from PSSe
+    psspy.case(doc_base) #Launching of PSSE and opening the working file
+    all_inputs_base=read_sav(doc_base) 
+    buses_base=all_inputs_base[0]
+    lines_base=all_inputs_base[1]
+    transf_base=all_inputs_base[2]
+    plants_base=all_inputs_base[3]
+    loads_base=all_inputs_base[4]
+    shunt_base=all_inputs_base[5]
+    doci=folder+"\N"+folderN_1+day+"\CasNum"+str(ite)+".sav"  
+    psspy.save(doci)
+    
+    # Total initial shunt on buses
+    init_shunt = 0
+    for i in range(len(shunt_base)) :
+        init_shunt +=  float(shunt_base[i][2])
+    
+    # Configuration de l'OPF a partir des parametres de l'utilisateur
+    nbeOPF=5 # Nombre de lancement max de l'OPF pour atteindre la convergence de l'algorithme
+    psspy.report_output(6,"",[0,0])
+    psspy.produce_opf_log_file(1,r"""DETAIL""")
+    psspy.minimize_fuel_cost(int(data_OPF[0]))
+    psspy.minimize_adj_bus_shunts(int(data_OPF[1]))
+    psspy.minimize_load_adjustments(int(data_OPF[2]))
+    psspy.initial_opf_barrier_coeff(100.0)
+    psspy.opf_fix_all_generators(1)
+    psspy.set_opf_report_subsystem(3,1)
+    
+    
+    print "                     PSEN simulator, case number: "+str(ite)
+    
+    # 1. Affiche X
+    nx = x.getSize()
+    if TStest==1 :
+        for i in range (len (Xt)) :
+            if Xt[i] == -1 :
+                if i == 0 and load_var==1 :
+                    pass
+                elif i == 1 and  N_1==1 :
+                    x[i]=int(floor(x[i])) # Si on etudie le N-1 on arrondie la valeur tiree en floor : on obtient le numero de la ligne
+                elif i == 2 and wind_var1==1 :
+                   x[i]=eol(x[i],WTconfig)
+                elif i == 3 and wind_var2==1 :
+                   x[i]=eol(x[i],WTconfig)
+                elif i == 4 and PV_var==1 :  # Si on etudie la variabilite de l'eolien on lui donne la valeur de production de l'eolienne a partir du vent
+                   pass
+                else :
+                   x[i]=-1
+            else :
+                x[i]=float(Xt[i]) # Dans le cas d'une etude temporelle on lui donne la valeur de Xt
+    else :
+        if load_var==1 :
+            pass # Sinon on donne la valeur tiree si on etudie la variabilite de x[0]
+        else :
+            x[0]=1 # Sinon on laisse la valeur de base
+            
+        if N_1==1 :
+            x[1]=int(floor(x[1])) # Si on etudie le N-1 on arrondie la valeur tiree en floor : on obtient le numero de la ligne
+        else :
+            x[1]=-1 # Sinon on donne -1 comme marqueur
+
+        if wind_var1==1:
+            x[2]=eol(x[2],WTconfig) # Si on etudie la variabilite de l'eolien on lui donne la valeur de production de l'eolienne a partir du vent
+        else :
+            x[2]=0 # Sinon on considere qu'il n'y a pas d'eolien  
+            
+        if wind_var2==1:
+            x[3]=eol(x[3],WTconfig) # Si on etudie la variabilite de l'eolien on lui donne la valeur de production de l'eolienne a partir du vent
+        else :
+            x[3]=0 # Sinon on considere qu'il n'y a pas d'eolien 
+            
+        if PV_var==1 : # Si on etudie la variabilite du PV on laisse sa valeur a la va
+            pass
+        else :
+            x[4]=0 # Sinon on considere qu'il n'y a pas de PV
+    for i in range(0,nx):
+        print "x[%d]=%f" % (i,x[i])
+    
+    # 2. Fait le calcul avec PSSE
+    #Editing some values in the PSSE .sav input file
+    # Change the values of the different loads and treat large changes of load to help convergence
+    if x[0] > 0.75 : 
+        for i in range(0,np.array(loads_base).shape[0]) : # On change directement toutes les charges
+            psspy.load_chng_4(int(loads_base[i][0]),r"""1""",[1,_i,_i,_i,_i,_i],[x[0]*loads_base[i][1],x[0]*loads_base[i][2],_f,_f,_f,_f])
+    elif x[0] > 0.4 : 
+        for i in range(0,np.array(loads_base).shape[0]) :  # On effectue un pretraitement en passant par une charge intermediaire
+            psspy.load_chng_4(int(loads_base[i][0]),r"""1""",[1,_i,_i,_i,_i,_i],[(1+x[0])/2*loads_base[i][1],(1+x[0])/2*loads_base[i][2],_f,_f,_f,_f])
+        psspy.fnsl([0,0,0,1,1,0,99,0]) # Load flow Newton Raphson
+        psspy.bsys(3,0,[0.0,0.0],0,[],1,[1],0,[],0,[])
+        psspy.set_opf_report_subsystem(3,0)
+        psspy.nopf(0,1) # Lancement OPF
+        for i in range(0,np.array(loads_base).shape[0]) : # On change toutes les charges
+            psspy.load_chng_4(int(loads_base[i][0]),r"""1""",[1,_i,_i,_i,_i,_i],[x[0]*loads_base[i][1],x[0]*loads_base[i][2],_f,_f,_f,_f])
+    else : 
+        for i in range(0,np.array(loads_base).shape[0]) : # On effectue un pretraitement en passant par une charge intermediaire
+            psspy.load_chng_4(int(loads_base[i][0]),r"""1""",[1,_i,_i,_i,_i,_i],[0.7*loads_base[i][1],0.7*loads_base[i][2],_f,_f,_f,_f])
+        psspy.fnsl([0,0,0,1,1,0,99,0])
+        psspy.bsys(3,0,[0.0,0.0],0,[],1,[1],0,[],0,[])
+        psspy.set_opf_report_subsystem(3,0)
+        psspy.nopf(0,1)
+        for i in range(0,np.array(loads_base).shape[0]) : # On effectue un pretraitement en passant par une charge intermediaire
+            psspy.load_chng_4(int(loads_base[i][0]),r"""1""",[1,_i,_i,_i,_i,_i],[0.4*loads_base[i][1],0.4*loads_base[i][2],_f,_f,_f,_f])
+        psspy.fnsl([0,0,0,1,1,0,99,0])
+        psspy.bsys(3,0,[0.0,0.0],0,[],1,[1],0,[],0,[])
+        psspy.set_opf_report_subsystem(3,0)
+        psspy.nopf(0,1)
+        for i in range(0,np.array(loads_base).shape[0]) : # On change toutes les charges
+            psspy.load_chng_4(int(loads_base[i][0]),r"""1""",[1,_i,_i,_i,_i,_i],[x[0]*loads_base[i][1],x[0]*loads_base[i][2],_f,_f,_f,_f])
+
+    x2=[]
+    for sz in range(0,nx):
+        x2.append(float(x[sz]))
+
+    if x[1]<0 :
+        pass
+    elif x[1] < len(continLines) : # L'element tire est une ligne
+        line_num=int(x[1])
+        from_bus=continLines[int(line_num)][0]
+        to_bus=continLines[int(line_num)][1]
+        br_id=continLines[int(line_num)][2]#.replace('@','')
+        psspy.branch_chng(from_bus,to_bus,str(br_id),[0,_i,_i,_i,_i,_i],[ _f, _f, _f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f])  
+        x2[1]='Line '+str(from_bus)+'-'+str(to_bus)+'#'+str(br_id)
+    elif x[1] < (len(continLines)+len(continGroups)) :
+        group_num = int(x[1])-len(continLines)
+        bus_num = continGroups[int(group_num)][0]
+        bus_id = continGroups[int(group_num)][1]
+        psspy.machine_chng_2(int(bus_num),str(bus_id),[0,_i,_i,_i,_i,_i],[_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f]) # Change Interconnection disponibility
+        psspy.opf_gendsp_indv(int(bus_num),str(bus_id),_i,0.0)
+        x2[1]='Group '+str(bus_num)+'#'+str(bus_id)
+    #elif x[1] < len(intercos) :
+        #mat_num=int(x[1])
+        #psspy.machine_chng_2(int(intercos[mat_num][0]),str(intercos[mat_num][2]),[0,_i,_i,_i,_i,_i],[_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f]) # Change Interconnection disponibility
+        #psspy.opf_gendsp_indv(int(intercos[mat_num][0]),str(intercos[mat_num][2]),_i,0.0)
+        #x[1]=-mat_num
+    else : 
+        pass
+        # Change the bus that is not in service
+        #intercos = []
+        #line_num=int(x[1]-len(intercos))
+        #from_bus=lines_con[int(line_num)-1][0]
+        #to_bus=lines_con[int(line_num)-1][1]
+        #br_id=lines_con[int(line_num)-1][2]#.replace('@','')
+        #psspy.branch_chng(from_bus,to_bus,str(br_id),[0,_i,_i,_i,_i,_i],[ _f, _f, _f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f])
+        #x[1]=line_num
+    # Change the production of the wind turbines
+    if np.matrix(windTurbines1).shape[1]>0 :
+        for i in range(0,np.matrix(windTurbines1).shape[0]) :
+            psspy.machine_chng_2(windTurbines1[i][0],str(windTurbines1[i][2]),[1,_i,_i,_i,_i,_i],[x[2]*plants_base[windTurbines1[i][1]][6],_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f])
+            
+    if np.matrix(windTurbines2).shape[1]>0 :
+        for i in range(0,np.matrix(windTurbines2).shape[0]) :
+            psspy.machine_chng_2(windTurbines2[i][0],str(windTurbines2[i][2]),[1,_i,_i,_i,_i,_i],[x[3]*plants_base[windTurbines2[i][1]][6],_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f])
+            
+    # Change the production of the PV stations
+    if np.matrix(solarPV).shape[1]>0 :
+        for i in range(0,np.matrix(solarPV).shape[0]) :
+            psspy.machine_chng_2(solarPV[i][0],str(solarPV[i][2]),[1,_i,_i,_i,_i,_i],[x[4]*plants_base[solarPV[i][1]][6],_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f])
+    
+    psspy.save(doci) #Saving .sav modifications
+    ok=1
+    while nbeOPF>=0 :
+        #for i in (zip(*buses_base)[0]) : psspy.bus_chng_3(i,[_i,_i,_i,_i],[_f, 1.05,_f,_f,_f,_f,_f],_s)
+        psspy.fnsl([0,0,0,1,1,1,99,0])
+        psspy.bsys(3,0,[0.0,0.0],0,[],1,[1],0,[],0,[])
+        psspy.set_opf_report_subsystem(3,0)
+        psspy.nopf(0,1)
+        if psspy.solved()==7:
+            print 'CONVERGENCE          CAS '+str(ite)
+            ok=1
+            break
+        else :
+            print '==================================================================='
+            print 'NO CONVERGENCE'
+            print '==================================================================='
+            ok=0
+            #for i in range (134) :    
+                #psspy.opf_bus_indv(i,[_i,0],[_f, 0.7,_f,_f,_f])
+        nbeOPF-=1
+    psspy.save(doci)
+    all_inputs=read_sav(doci)
+    buses=all_inputs[0];lines=all_inputs[1];transf=all_inputs[2];plants=all_inputs[3];loads=all_inputs[4]; shunt=all_inputs_base[5]
+    
+    # 3. Affiche Y  
+    sizeY4=np.matrix(shunt).shape[0]
+    y=np.zeros(2*sizeY0+sizeY1+3*sizeY2+sizeY3+sizeY4)
+    z=np.zeros(8)
+    rate_mat_index=Irate_num+2
+    if ok==1 : 
+        # Creates the quantities of interest
+        for i in range (sizeY2) :
+            if lines [i][rate_mat_index]>100 :
+                z[0]+=1 # Number of lines above 100% of their limits
+        for i in range (sizeY1):
+            if buses[i][2]>1.06 :
+                z[1]+=1
+            if buses[i][2]<0.9399 :
+                z[1]+=1 # Number of buses outside of their voltage limits
+        for i in range (sizeY0) :
+            z[2]+=float(plants[i][3]) # Total active production
+        for i in range (sizeY3) :
+            z[3]+=float(loads[i][1]) # Total active consumption
+        z[4]=(z[2]-z[3])/z[2]*100 # Active power losses
+        for i in range (sizeY2) :
+            if lines [i][3]>z[5] :
+                z[5]=lines [i][rate_mat_index] # Max flow in lines
+        for i in range (sizeY2) :
+            if lines [i][rate_mat_index]>90 :
+                z[6]+=1
+        z[6]=z[6]-z[0] # Number of lines between 90% and 100% of their limits
+        
+        final_shunt=0
+        for i in range (sizeY4) :
+            final_shunt+=shunt[i][2]
+        z[7]=final_shunt-init_shunt
+           
+       # Creates the output vectors
+        for Pmach in range (sizeY0): 
+            y[Pmach]=float(plants[Pmach][3])
+        for Qmach in range (sizeY0): 
+            y[Qmach+sizeY0]=float(plants[Qmach][4])
+        for Vbus in range (sizeY1): 
+            y[Vbus+2*sizeY0]=float(buses[Vbus][2])
+        for Iline in range (sizeY2): 
+            y[Iline+2*sizeY0+sizeY1]=float(lines[Iline][rate_mat_index])
+        for Pline in range (sizeY2): 
+            y[Pline+2*sizeY0+sizeY1+sizeY2]=float(lines[Pline][6])
+        for Qline in range (sizeY2): 
+            y[Qline+2*sizeY0+sizeY1+2*sizeY2]=float(lines[Qline][7])
+        for Pload in range (sizeY3) :
+            y[Pload+2*sizeY0+sizeY1+3*sizeY2]=float(loads[Pload][1])
+        for Qshunt in range (sizeY4) :
+            y[Qshunt+2*sizeY0+sizeY1+3*sizeY2+sizeY3]=float(shunt[Qshunt][2])
+    
+        #Ecris les sorties
+        print "sorties:"
+        nz = len(z)
+        for i in range(0,nz):
+            print "z[%d]=%f" % (i,z[i])
+        MyLogger(x2,y,z,logCSVfilename,logTXTfilename,ite)
+        #MyMultiLogger (x2, y, sizeY, z, ite, folder, day, fich, hour)
+        return NumericalPoint(z)
+    else : 
+        MyLogger(x2,y,z,logCSVfilename,logTXTfilename,ite)
+        #MyMultiLogger (x2, y, sizeY, z, ite, folder, day, fich, hour)
+        return NumericalPoint(z)
+
+#===============================================================================
+#   DEFINITION DU WRAPPER -  WRAPPER's DEFINITION
+#===============================================================================
+# Initialize size output
+psspy.case(doc_base) 
+all_inputs_base=read_sav(doc_base) 
+buses_base=all_inputs_base[0]
+lines_base=all_inputs_base[1]
+trans_base=all_inputs_base[2]
+plants_base=all_inputs_base[3]
+loads_base=all_inputs_base[4]
+shunt_base=all_inputs_base[5]
+sizeY0=np.matrix(plants_base).shape[0]
+sizeY1=np.matrix(buses_base).shape[0]
+sizeY2=np.matrix(lines_base).shape[0]
+sizeY3=np.matrix(loads_base).shape[0]
+sizeY4=np.matrix(shunt_base).shape[0]
+sizeY=[sizeY0,sizeY1,sizeY2,sizeY3,sizeY4]
+sizeOutput=sizeY2
+
+
+class PSSEWrapperClass(OpenTURNSPythonFunction) : 
+  def __init__(self) : 
+     OpenTURNSPythonFunction.__init__(self,5,8)
+  def _exec(self,x) : 
+      return PSSEFunction(x)
+
+# Initialize the folder
+newpath = folder+"\N"+folderN_1+day
+if not os.path.exists(newpath): os.makedirs(newpath)
+
+# Test the Num. Math. Function
+pssefun = NumericalMathFunction(PSSEWrapperClass())
+
+# Definition of the function to use
+inputDim = pssefun.getInputDimension()
+outputDim = pssefun.getOutputDimension()
+
+# Initialization of the distribution collection:
+#aCollection = DistributionCollection()
+
+# Create a collection of the marginal distributions
+collectionMarginals = DistributionCollection(inputDim)
+collectionMarginals[0] = Distribution(distributionX0) # Load distribution
+collectionMarginals[1] = Distribution(distributionX1) # N-1 distribution
+collectionMarginals[2] = Distribution(distributionX2) # Wind 1 distribution
+collectionMarginals[3] = Distribution(distributionX3) # Wind 2 distribution
+collectionMarginals[4] = Distribution(distributionX4) # PV distribution
+
+#Create a correlation matrix as copulas
+corr=CorrelationMatrix(inputDim)
+
+corr[1,0]=corr10
+corr[2,0]=corr20
+corr[3,0]=corr30
+corr[4,0]=corr40
+corr[0,1]=corr10
+corr[2,1]=corr21
+corr[3,1]=corr31
+corr[4,1]=corr41
+corr[0,2]=corr20
+corr[1,2]=corr21
+corr[3,2]=corr32
+corr[4,2]=corr42
+corr[0,3]=corr30
+corr[1,3]=corr31
+corr[2,3]=corr32
+corr[4,3]=corr43
+corr[0,4]=corr40
+corr[1,4]=corr41
+corr[2,4]=corr42
+corr[3,4]=corr43
+
+copula=Copula(NormalCopula(corr))
+
+
+# Create the input probability distribution, args are the distributions, the correlation laws
+inputDistribution = ComposedDistribution(collectionMarginals, copula)
+
+# Create the input random vector
+"""inputRandomVector = RandomVector(inputDistribution)
+
+# Create the output variable of interest
+outputVariableOfInterest =  RandomVector(pssefun, inputRandomVector)
+outputVariableOfInterest.setDescription(pssefun.getOutputDescription())"""
+
+#===============================================================================
+#   ETUDE DE DISPERSION CENTRALE    -   CENTRAL DEVIATION STUDY
+#===============================================================================
+# Initialize the logger : write the headers 
+logCSVfilename=folder+"\N"+folderN_1+day+"\simulationDClog"+hour+".csv" # Name of the file : global variable
+f = open(logCSVfilename, "a")
+f.write("Iteration;;X:Load(pu);X:lineOff#;XProdEolienne1%Pnom;XProdEolienne2%Pnom;X:ProdPV%Pnom;;Y:NbeTransit;Y:NbeTension;Y:PProdTot;Y:PConsoTot;Y:%Losses;Y:Max%A;Y:NbeTransit_0.9-1;Y:AddedMVAR;;")
+# Names of the Output variables withConso the bus number
+for name in range (sizeY0):
+    f.write("Y:PMachine"+str(plants_base[name][0])+";")
+for name in range (sizeY0):
+    f.write("Y:QMachine"+str(plants_base[name][0])+";")
+for name in range (sizeY1):
+    f.write("Y:VBus"+str(buses_base[name][0])+";")
+for name in range (sizeY2):
+    f.write("Y"+str(name+1)+":%Rate "+str(lines_base[name][0])+"-"+str(lines_base[name][1])+";")
+for name in range (sizeY2):
+    f.write("Y"+str(name+1)+":P "+str(lines_base[name][0])+"-"+str(lines_base[name][1])+";")
+for name in range (sizeY2):
+    f.write("Y"+str(name+1)+":Q "+str(lines_base[name][0])+"-"+str(lines_base[name][1])+";")
+for name in range (sizeY3):
+    f.write("Y:Load "+str(loads_base[name][0])+";")
+for name in range (sizeY4):
+    f.write("Y:Shunt bus "+str(shunt_base[name][0])+";")
+f.write("\n")
+# Names of the Output variables with the bus names
+f.write("#;;pu;line number;%Pnom;%Pnom;%Pnom;;Nbe;Nbe;MW;MW;%;%;Nbe;MVAR;;")
+for name in range (sizeY0):
+    f.write(str(plants_base[name][8])+";")
+for name in range (sizeY0):
+    f.write(str(plants_base[name][8])+";")
+for name in range (sizeY1):
+    f.write(str(buses_base[name][3])+";")
+for name in range (sizeY2):
+    f.write(str(lines_base[name][8])+"-"+str(lines_base[name][9])+";")
+for name in range (sizeY2):
+    f.write(str(lines_base[name][8])+"-"+str(lines_base[name][9])+";")
+for name in range (sizeY2):
+    f.write(str(lines_base[name][8])+"-"+str(lines_base[name][9])+";")
+for name in range (sizeY3):
+    f.write(str(loads_base[name][4])+";")
+for name in range (sizeY4):
+    f.write(str(shunt_base[name][3])+";")
+f.write("\n")
+f.close()
+
+logTXTfilename=folder+"\N"+folderN_1+day+"\simulationDClog"+hour+".txt" # Name of the file : global variable
+f = open(logTXTfilename, "a")
+f.write("Iteration\tX:Load(pu)\tX:lineOff#\tXProdEolienne1%Pnom\ttXProdEolienne2%Pnom\tX:ProdPV%Pnom\tY:NbeTransit\tY:NbeTension\tY:PProdTot\tY:PConsoTot\tY:%Losses\tY:Max%A\tY:NbeTransit_0.9-1\tY:AddedShunt\t")
+# Names of the Output variables withConso the bus number
+for name in range (sizeY0):
+    f.write("Y:PMachine"+str(plants_base[name][0])+" - "+str(plants_base[name][8])+"\t")
+for name in range (sizeY0):
+    f.write("Y:QMachine"+str(plants_base[name][0])+" - "+str(plants_base[name][8])+"\t")
+for name in range (sizeY1):
+    f.write("Y:VBus"+str(buses_base[name][0])+" - "+str(buses_base[name][3])+"\t")
+for name in range (sizeY2):
+    f.write("Y"+str(name+1)+":%RateA "+str(lines_base[name][0])+"-"+str(lines_base[name][1])+" - "+str(lines_base[name][8])+"-"+str(lines_base[name][9])+"\t")
+for name in range (sizeY2):
+    f.write("Y"+str(name+1)+":P "+str(lines_base[name][0])+"-"+str(lines_base[name][1])+" - "+str(lines_base[name][8])+"-"+str(lines_base[name][9])+"\t")
+for name in range (sizeY2):
+    f.write("Y"+str(name+1)+":Q "+str(lines_base[name][0])+"-"+str(lines_base[name][1])+" - "+str(lines_base[name][8])+"-"+str(lines_base[name][9])+"\t")
+for name in range (sizeY3):
+    f.write("Y:Load "+str(loads_base[name][0])+" - "+str(loads_base[name][4])+"\t")
+for name in range (sizeY4):
+    f.write("Y:Shunt "+str(shunt_base[name][0])+" - "+str(shunt_base[name][3])+"\t")
+f.write("\n")
+f.close()
+
+"""
+# Initialize the multilogger : write the headers 
+for fich in range (np.size(sizeY,0)):
+    multilogfilename=folder+"\N"+day+"\Y"+str(fich)+"simulationDClog"+hour+".csv"
+    f=open(multilogfilename, 'a')
+    f.write("Iteration;;X:Load(pu);X:lineOff#;XProdEolienne1%Pnom;XProdEolienne2%Pnom;X:ProdPV%Pnom;;Y:NbeTransit;Y:NbeTension;Y:PProdTot;Y:PConsoTot;Y:Max%A;Y:NbeTransit_0.9-1;;")
+    if fich == 0 :
+        for name in range (sizeY[0]):
+            f.write("Y:PMachine"+str(plants_base[name][0])+";")
+        f.write("\n")
+        f.write("#;;pu;line number;%Pnom;%Pnom;%Pnom;;Nbe;Nbe;MW;MW;%;%;Nbe;;")
+        for name in range (sizeY[0]):
+            f.write(str(plants_base[name][8])+";")
+        f.write("\n")
+        f.close()
+    elif fich == 1 :
+        for name in range (sizeY[1]):
+            f.write("Y:VBus"+str(buses_base[name][0])+";")
+        f.write("\n")
+        f.write("#;;pu;line number;%Pnom;%Pnom;%Pnom;;Nbe;Nbe;MW;MW;%;%;Nbe;;")
+        for name in range (sizeY[1]):
+            f.write(str(buses_base[name][3])+";")
+        f.write("\n")
+        f.close()
+    elif fich == 2 :
+        for name in range (sizeY[2]):
+            f.write("Y"+str(name+1)+":%RateA "+str(lines_base[name][0])+"-"+str(lines_base[name][1])+";")
+        f.write("\n")
+        f.write("#;;pu;line number;%Pnom;%Pnom;%Pnom;;Nbe;Nbe;MW;MW;%;%;Nbe;;")
+        for name in range (sizeY[2]):
+            f.write(str(lines_base[name][8])+"-"+str(lines_base[name][9])+";")
+        f.write("\n")
+        f.close()
+    elif fich == 3 :
+        for name in range (sizeY[3]):
+            f.write("Y:Ploads "+str(loads_base[name][0])+";")
+        f.write("\n")
+        f.write("#;;pu;line number;%Pnom;%Pnom;%Pnom;;Nbe;Nbe;MW;MW;%;%;Nbe;;")
+        for name in range (sizeY[3]):
+            f.write(str(loads_base[name][4])+";")
+        f.write("\n")
+        f.close()
+
+"""
+# Start the simulations
+ite=0
+print "\n\n\n                     Starting PSEN "+str(montecarlosize)+" simulations"
+
+"""inputSample=inputRandomVector.getSample(montecarlosize)
+inputSample.setDescription( ("X0","X1","X2","X3") )
+inputSample.exportToCSVFile("InputSamples.csv")"""
+
+if sum(corr) == 5 :
+    myLHSE = LHSExperiment(inputDistribution,montecarlosize)
+    inputSample = myLHSE.generate()
+else :
+    myMCE = MonteCarloExperiment(inputDistribution,montecarlosize)
+    inputSample = myMCE.generate()
+
+try :
+    time_serie
+except NameError :
+    print 'Probabilistic'
+    TStest=0
+    outputSampleAll = pssefun(inputSample)#outputVariableOfInterest.getSample(montecarlosize)
+else : 
+    TStest=1
+    for i in range (len(time_serie_mat)) :
+        print 'Time serie'
+        RandomGenerator.SetSeed(i)
+        Xt=[]
+        n=0
+        for j in range (len(time_serie_file)) :
+            if time_serie_file[j] == -1 :
+                Xt.append(-1)
+                n+=1
+            else :
+                Xt.append(time_serie_mat[i][j-n])
+        Xt.insert(1,-1)
+        try : 
+            outputSampleAll
+        except :
+            outputSampleAll = pssefun(inputSample)
+        else : 
+            outputSampleAll.add(pssefun(inputSample))
+
+outputDim=outputSampleAll.getDimension()
+outputSize=outputSampleAll.getSize()
+
+outputSample=NumericalSample(0,outputDim)
+outputSampleMissed=NumericalSample(0,outputDim)
+
+for i in range (outputSize):
+    if outputSampleAll[i,5]==0 :
+        outputSampleMissed.add(outputSampleAll[i])
+    else :
+        outputSample.add(outputSampleAll[i])
+
+outputDescription=[]
+for i in range (outputDim):
+    outputDescription.append("Y"+str(i))
+outputSample.setDescription( outputDescription )
+
+# Get the empirical mean and standard deviations
+empMeanX = inputSample.computeMean()
+empSdX = inputSample.computeStandardDeviationPerComponent()
+empiricalMean = outputSample.computeMean()
+empiricalSd = outputSample.computeStandardDeviationPerComponent()
+
+f=open(logCSVfilename, 'a')
+f.write("\n")
+f.write('Mean;;')
+for i in range(0,inputDim):
+    f.write("%f;" % (empMeanX[i]))
+f.write(";")
+for i in range(0,outputDim):
+    f.write("%f;" % (empiricalMean[i]))
+f.write(";")
+f.write("\nStandard deviation;;")
+for i in range(0,inputDim):
+    f.write("%f;" % (empSdX[i]))
+f.write(";")
+for i in range(0,outputDim):
+    f.write("%f;" % (empiricalSd[i]))
+f.write(";")
+f.close()
+    
+f=open(exec_file,'a')
+#stop_time=100*times()[0]
+stop_time=time.clock()
+f.write("Stop time: %f;     Duration: %f;      Time per execution: %f; " % (stop_time, stop_time-start_time, (stop_time-start_time)/montecarlosize))
+f.write("\n\n")
+f.close()
+
+print '\n\nSimulated '+str(montecarlosize)+' cases in '+ str(stop_time-start_time)+' seconds. Average '+str((stop_time-start_time)/montecarlosize)+'s per case.'
+
+nMissed=int(outputSampleMissed.getSize())
+
+print '\n\n             Non-convergence rate is '+str(round(nMissed*100/montecarlosize,3))+' % ('+str(outputSampleMissed.getSize())+' cases on '+str(montecarlosize)+')'
+
+#graphical_out(inputSample, outputSampleAll, inputDim, outputDim, montecarlosize)
diff --git a/OldCodes/PSEN_Eficas/PSEN/__init__.py b/OldCodes/PSEN_Eficas/PSEN/__init__.py
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/OldCodes/PSEN_Eficas/PSEN/exploit2.ows b/OldCodes/PSEN_Eficas/PSEN/exploit2.ows
new file mode 100755 (executable)
index 0000000..5600589
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0" ?>\r
+<schema>\r
+       <widgets>\r
+               <widget caption="File" widgetName="OWFile" xPos="90" yPos="90"/>\r
+               <widget caption="Distributions" widgetName="OWDistributions" xPos="440" yPos="-90"/>\r
+               <widget caption="Scatterplot" widgetName="OWScatterPlot" xPos="580" yPos="80"/>\r
+               <widget caption="Feature Constructor" widgetName="OWFeatureConstructor" xPos="350" yPos="350"/>\r
+               <widget caption="Distributions (2)" widgetName="OWDistributions" xPos="620" yPos="190"/>\r
+               <widget caption="Scatterplot (2)" widgetName="OWScatterPlot" xPos="580" yPos="380"/>\r
+               <widget caption="Attribute Statistics" widgetName="OWAttributeStatistics" xPos="680" yPos="310"/>\r
+               <widget caption="Attribute Statistics (2)" widgetName="OWAttributeStatistics" xPos="430" yPos="170"/>\r
+       </widgets>\r
+       <channels>\r
+               <channel enabled="0" inWidgetCaption="Distributions (2)" outWidgetCaption="Feature Constructor" signals="[('Data', 'Data')]"/>\r
+               <channel enabled="0" inWidgetCaption="Scatterplot (2)" outWidgetCaption="Feature Constructor" signals="[('Data', 'Data')]"/>\r
+               <channel enabled="0" inWidgetCaption="Attribute Statistics" outWidgetCaption="Feature Constructor" signals="[('Data', 'Data')]"/>\r
+               <channel enabled="0" inWidgetCaption="Feature Constructor" outWidgetCaption="File" signals="[('Data', 'Data')]"/>\r
+               <channel enabled="0" inWidgetCaption="Attribute Statistics (2)" outWidgetCaption="File" signals="[('Data', 'Data')]"/>\r
+               <channel enabled="0" inWidgetCaption="Scatterplot" outWidgetCaption="File" signals="[('Data', 'Data Subset')]"/>\r
+               <channel enabled="0" inWidgetCaption="Distributions" outWidgetCaption="File" signals="[('Data', 'Data')]"/>\r
+       </channels>\r
+       <settings settingsDictionary="{'Feature Constructor': '(dp1\nS\'widgetShown\'\np2\nI0\nsS\'savedWidgetGeometry\'\np3\nS\'\\x01\\xd9\\xd0\\xcb\\x00\\x01\\x00\\x00\\xff\\xff\\xfb\\xd5\\x00\\x00\\x00M\\xff\\xff\\xfe\\x13\\x00\\x00\\x01\\xdd\\xff\\xff\\xfb\\xdd\\x00\\x00\\x00i\\xff\\xff\\xfe\\x0b\\x00\\x00\\x01\\xd5\\x00\\x00\\x00\\x01\\x00\\x00\'\np4\nsS\'localContextsVersion\'\np5\n(I100\nI0\ntp6\nsS\'localContexts\'\np7\n(lp8\n(iOWContexts\nContext\np9\n(dp10\nS\'metas\'\np11\n(dp12\nsS\'values\'\np13\n(dp14\nsS\'time\'\np15\nF1370016679.6830001\nsS\'definitions\'\np16\n(lp17\n(VENR\nV&quot;XProdEolienne%Pnom&quot;*100+&quot;X:ProdPV%Pnom&quot;*92\ntp18\nasS\'classVar\'\np19\n(S\'Y:Load 115 - CTAGLI31\'\ncOrange.orange\n__pickleLoaderNamedConstants\np20\n(S\'Variable_Type\'\n(I2\nttRp21\ntp22\nsS\'noCopy\'\np23\n(lp24\nS\'orderedDomain\'\np25\nasS\'attributes\'\np26\n((S\'Iteration\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp27\nt(S\'X:Load(pu)\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp28\nt(S\'X:lineOff#\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp29\nt(S\'XProdEolienne%Pnom\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp30\nt(S\'X:ProdPV%Pnom\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp31\nt(S\'Y:NbeTransit\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp32\nt(S\'Y:NbeTension\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp33\nt(S\'Y:PProdTot\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp34\nt(S\'Y:PConsoTot\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp35\nt(S\'Y:%Losses\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp36\nt(S\'Y:Max%A\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp37\nt(S\'Y:NbeTransit_0.9-1\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp38\nt(S\'Y:PMachine1 - CBONIF11\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp39\nt(S\'Y:PMachine14 - CBONIF21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp40\nt(S\'Y:PMachine18 - CCASAM21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp41\nt(S\'Y:PMachine29 - CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp42\nt(S\'Y:PMachine29 - CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp43\nt(S\'Y:PMachine30 - CLUCCI22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp44\nt(S\'Y:PMachine42 - CSISCO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp45\nt(S\'Y:PMachine47 - CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp46\nt(S\'Y:PMachine53 - CBASTI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp47\nt(S\'Y:PMachine54 - CBASTI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp48\nt(S\'Y:PMachine58 - CBONIF32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp49\nt(S\'Y:PMachine60 - CCALDA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp50\nt(S\'Y:PMachine61 - CCALVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp51\nt(S\'Y:PMachine62 - CCALVI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp52\nt(S\'Y:PMachine63 - CCASAM31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp53\nt(S\'Y:PMachine64 - CCASAM32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp54\nt(S\'Y:PMachine65 - CCASAM33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp55\nt(S\'Y:PMachine66 - CCASAM34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp56\nt(S\'Y:PMachine67 - CCASAM35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp57\nt(S\'Y:PMachine68 - CCASAM36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp58\nt(S\'Y:PMachine69 - CCASAM37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp59\nt(S\'Y:PMachine72 - CCASTI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp60\nt(S\'Y:PMachine73 - CCASTI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp61\nt(S\'Y:PMachine74 - CCERVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp62\nt(S\'Y:PMachine74 - CCERVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp63\nt(S\'Y:PMachine75 - CCORSC31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp64\nt(S\'Y:PMachine77 - CCORTE32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp65\nt(S\'Y:PMachine78 - CFURIA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp66\nt(S\'Y:PMachine81 - CGHISO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp67\nt(S\'Y:PMachine83 - CILERO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp68\nt(S\'Y:PMachine85 - CLORET32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp69\nt(S\'Y:PMachine86 - CLUCCI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp70\nt(S\'Y:PMachine86 - CLUCCI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp71\nt(S\'Y:PMachine87 - CLUCCI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp72\nt(S\'Y:PMachine88 - CLUCCI33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp73\nt(S\'Y:PMachine89 - CLUCCI34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp74\nt(S\'Y:PMachine90 - CMOROS31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp75\nt(S\'Y:PMachine92 - COCANA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp76\nt(S\'Y:PMachine93 - COCANA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp77\nt(S\'Y:PMachine94 - COCANA33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp78\nt(S\'Y:PMachine97 - COCANA36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp79\nt(S\'Y:PMachine101 - CPIETR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp80\nt(S\'Y:PMachine102 - CPORTO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp81\nt(S\'Y:PMachine104 - CPROPR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp82\nt(S\'Y:PMachine105 - CPROPR32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp83\nt(S\'Y:PMachine106 - CRIZZA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp84\nt(S\'Y:PMachine107 - CRIZZA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp85\nt(S\'Y:PMachine109 - CSAGON32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp86\nt(S\'Y:PMachine109 - CSAGON32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp87\nt(S\'Y:PMachine111 - CSTMAR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp88\nt(S\'Y:PMachine112 - CSAMPO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp89\nt(S\'Y:PMachine113 - CSAMPO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp90\nt(S\'Y:PMachine114 - CSOVEN31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp91\nt(S\'Y:PMachine114 - CSOVEN31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp92\nt(S\'Y:PMachine115 - CTAGLI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp93\nt(S\'Y:PMachine116 - CTOLLA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp94\nt(S\'Y:PMachine117 - CTOLLA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp95\nt(S\'Y:PMachine118 - CTOLLA33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp96\nt(S\'Y:PMachine120 - CVAZZI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp97\nt(S\'Y:PMachine121 - CVAZZI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp98\nt(S\'Y:PMachine122 - CVAZZI33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp99\nt(S\'Y:PMachine123 - CVAZZI34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp100\nt(S\'Y:PMachine124 - CVAZZI35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp101\nt(S\'Y:PMachine125 - CVAZZI36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp102\nt(S\'Y:PMachine126 - CVAZZI37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp103\nt(S\'Y:PMachine127 - CVAZZI38\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp104\nt(S\'Y:PMachine128 - CVAZZI39\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp105\nt(S\'Y:PMachine129 - CVAZZI310\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp106\nt(S\'Y:PMachine130 - CVAZZI311\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp107\nt(S\'Y:PMachine131 - CVAZZI312\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp108\nt(S\'Y:PMachine132 - CVAZZI313\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp109\nt(S\'Y:PMachine133 - CVAZZI314\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp110\nt(S\'Y:PMachine134 - CLUCCI35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp111\nt(S\'Y:PMachine135 - CLUCCI36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp112\nt(S\'Y:PMachine136 - CLUCCI37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp113\nt(S\'Y:PMachine137 - CLUCCI38\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp114\nt(S\'Y:PMachine138 - CLUCCI39\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp115\nt(S\'Y:PMachine139 - CLUCCI310\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp116\nt(S\'Y:VBus1 - CBONIF11\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp117\nt(S\'Y:VBus11 - CASPRE21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp118\nt(S\'Y:VBus12 - CBASTI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp119\nt(S\'Y:VBus13 - CBIGUG21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp120\nt(S\'Y:VBus14 - CBONIF21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp121\nt(S\'Y:VBus15 - CBONIF22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp122\nt(S\'Y:VBus16 - CCALDA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp123\nt(S\'Y:VBus17 - CCALVI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp124\nt(S\'Y:VBus18 - CCASAM21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp125\nt(S\'Y:VBus19 - CCASTI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp126\nt(S\'Y:VBus20 - CCERVI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp127\nt(S\'Y:VBus21 - CCORSC21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp128\nt(S\'Y:VBus22 - CCORTE21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp129\nt(S\'Y:VBus23 - CCORTE22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp130\nt(S\'Y:VBus24 - CFURIA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp131\nt(S\'Y:VBus25 - CFURIA22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp132\nt(S\'Y:VBus26 - CGHISO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp133\nt(S\'Y:VBus27 - CILERO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp134\nt(S\'Y:VBus28 - CLORET21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp135\nt(S\'Y:VBus29 - CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp136\nt(S\'Y:VBus30 - CLUCCI22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp137\nt(S\'Y:VBus31 - CMOROS21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp138\nt(S\'Y:VBus32 - COCANA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp139\nt(S\'Y:VBus33 - COLETT21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp140\nt(S\'Y:VBus34 - CPIETR21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp141\nt(S\'Y:VBus35 - CPORTO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp142\nt(S\'Y:VBus36 - CPROPR21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp143\nt(S\'Y:VBus37 - CRIZZA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp144\nt(S\'Y:VBus38 - CSAGON21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp145\nt(S\'Y:VBus39 - CSTLUC21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp146\nt(S\'Y:VBus40 - CSTMAR21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp147\nt(S\'Y:VBus41 - CSAMPO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp148\nt(S\'Y:VBus42 - CSISCO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp149\nt(S\'Y:VBus43 - CSOVEN21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp150\nt(S\'Y:VBus44 - CTAGLI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp151\nt(S\'Y:VBus45 - CTOLLA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp152\nt(S\'Y:VBus46 - CTRAVO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp153\nt(S\'Y:VBus47 - CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp154\nt(S\'Y:VBus48 - CZSSS621\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp155\nt(S\'Y:VBus51 - CASPRE31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp156\nt(S\'Y:VBus52 - CASPRE32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp157\nt(S\'Y:VBus53 - CBASTI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp158\nt(S\'Y:VBus54 - CBASTI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp159\nt(S\'Y:VBus55 - CBIGUG31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp160\nt(S\'Y:VBus56 - CBIGUG32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp161\nt(S\'Y:VBus57 - CBONIF31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp162\nt(S\'Y:VBus58 - CBONIF32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp163\nt(S\'Y:VBus59 - CCALDA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp164\nt(S\'Y:VBus60 - CCALDA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp165\nt(S\'Y:VBus61 - CCALVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp166\nt(S\'Y:VBus62 - CCALVI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp167\nt(S\'Y:VBus63 - CCASAM31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp168\nt(S\'Y:VBus64 - CCASAM32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp169\nt(S\'Y:VBus65 - CCASAM33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp170\nt(S\'Y:VBus66 - CCASAM34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp171\nt(S\'Y:VBus67 - CCASAM35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp172\nt(S\'Y:VBus68 - CCASAM36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp173\nt(S\'Y:VBus69 - CCASAM37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp174\nt(S\'Y:VBus72 - CCASTI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp175\nt(S\'Y:VBus73 - CCASTI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp176\nt(S\'Y:VBus74 - CCERVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp177\nt(S\'Y:VBus75 - CCORSC31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp178\nt(S\'Y:VBus76 - CCORTE31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp179\nt(S\'Y:VBus77 - CCORTE32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp180\nt(S\'Y:VBus78 - CFURIA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp181\nt(S\'Y:VBus79 - CFURIA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp182\nt(S\'Y:VBus80 - CGHISO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp183\nt(S\'Y:VBus81 - CGHISO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp184\nt(S\'Y:VBus82 - CILERO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp185\nt(S\'Y:VBus83 - CILERO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp186\nt(S\'Y:VBus84 - CLORET31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp187\nt(S\'Y:VBus85 - CLORET32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp188\nt(S\'Y:VBus86 - CLUCCI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp189\nt(S\'Y:VBus87 - CLUCCI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp190\nt(S\'Y:VBus88 - CLUCCI33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp191\nt(S\'Y:VBus89 - CLUCCI34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp192\nt(S\'Y:VBus90 - CMOROS31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp193\nt(S\'Y:VBus92 - COCANA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp194\nt(S\'Y:VBus93 - COCANA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp195\nt(S\'Y:VBus94 - COCANA33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp196\nt(S\'Y:VBus95 - COCANA34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp197\nt(S\'Y:VBus96 - COCANA35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp198\nt(S\'Y:VBus97 - COCANA36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp199\nt(S\'Y:VBus100 - COLETT31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp200\nt(S\'Y:VBus101 - CPIETR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp201\nt(S\'Y:VBus102 - CPORTO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp202\nt(S\'Y:VBus103 - CPORTO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp203\nt(S\'Y:VBus104 - CPROPR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp204\nt(S\'Y:VBus105 - CPROPR32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp205\nt(S\'Y:VBus106 - CRIZZA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp206\nt(S\'Y:VBus107 - CRIZZA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp207\nt(S\'Y:VBus108 - CSAGON31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp208\nt(S\'Y:VBus109 - CSAGON32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp209\nt(S\'Y:VBus110 - CSTLUC31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp210\nt(S\'Y:VBus111 - CSTMAR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp211\nt(S\'Y:VBus112 - CSAMPO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp212\nt(S\'Y:VBus113 - CSAMPO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp213\nt(S\'Y:VBus114 - CSOVEN31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp214\nt(S\'Y:VBus115 - CTAGLI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp215\nt(S\'Y:VBus116 - CTOLLA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp216\nt(S\'Y:VBus117 - CTOLLA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp217\nt(S\'Y:VBus118 - CTOLLA33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp218\nt(S\'Y:VBus119 - CTRAVO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp219\nt(S\'Y:VBus120 - CVAZZI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp220\nt(S\'Y:VBus121 - CVAZZI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp221\nt(S\'Y:VBus122 - CVAZZI33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp222\nt(S\'Y:VBus123 - CVAZZI34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp223\nt(S\'Y:VBus124 - CVAZZI35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp224\nt(S\'Y:VBus125 - CVAZZI36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp225\nt(S\'Y:VBus126 - CVAZZI37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp226\nt(S\'Y:VBus127 - CVAZZI38\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp227\nt(S\'Y:VBus128 - CVAZZI39\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp228\nt(S\'Y:VBus129 - CVAZZI310\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp229\nt(S\'Y:VBus130 - CVAZZI311\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp230\nt(S\'Y:VBus131 - CVAZZI312\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp231\nt(S\'Y:VBus132 - CVAZZI313\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp232\nt(S\'Y:VBus133 - CVAZZI314\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp233\nt(S\'Y:VBus134 - CLUCCI35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp234\nt(S\'Y:VBus135 - CLUCCI36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp235\nt(S\'Y:VBus136 - CLUCCI37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp236\nt(S\'Y:VBus137 - CLUCCI38\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp237\nt(S\'Y:VBus138 - CLUCCI39\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp238\nt(S\'Y:VBus139 - CLUCCI310\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp239\nt(S\'Y0:%RateA 11-28 - CASPRE21    -CLORET21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp240\nt(S\'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp241\nt(S\'Y2:%RateA 12-24 - CBASTI21    -CFURIA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp242\nt(S\'Y3:%RateA 12-24 - CBASTI21    -CFURIA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp243\nt(S\'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp244\nt(S\'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp245\nt(S\'Y6:%RateA 14-15 - CBONIF21    -CBONIF22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp246\nt(S\'Y7:%RateA 14-35 - CBONIF21    -CPORTO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp247\nt(S\'Y8:%RateA 15-35 - CBONIF22    -CPORTO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp248\nt(S\'Y9:%RateA 16-32 - CCALDA21    -COCANA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp249\nt(S\'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp250\nt(S\'Y11:%RateA 17-27 - CCALVI21    -CILERO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp251\nt(S\'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp252\nt(S\'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp253\nt(S\'Y14:%RateA 18-31 - CCASAM21    -CMOROS21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp254\nt(S\'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp255\nt(S\'Y16:%RateA 19-21 - CCASTI21    -CCORSC21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp256\nt(S\'Y17:%RateA 19-22 - CCASTI21    -CCORTE21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp257\nt(S\'Y18:%RateA 19-27 - CCASTI21    -CILERO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp258\nt(S\'Y19:%RateA 20-26 - CCERVI21    -CGHISO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp259\nt(S\'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp260\nt(S\'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp261\nt(S\'Y22:%RateA 22-23 - CCORTE21    -CCORTE22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp262\nt(S\'Y23:%RateA 22-31 - CCORTE21    -CMOROS21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp263\nt(S\'Y24:%RateA 23-32 - CCORTE22    -COCANA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp264\nt(S\'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp265\nt(S\'Y26:%RateA 24-25 - CFURIA21    -CFURIA22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp266\nt(S\'Y27:%RateA 24-33 - CFURIA21    -COLETT21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp267\nt(S\'Y28:%RateA 24-42 - CFURIA21    -CSISCO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp268\nt(S\'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp269\nt(S\'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp270\nt(S\'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp271\nt(S\'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp272\nt(S\'Y33:%RateA 27-33 - CILERO21    -COLETT21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp273\nt(S\'Y34:%RateA 28-38 - CLORET21    -CSAGON21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp274\nt(S\'Y35:%RateA 28-47 - CLORET21    -CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp275\nt(S\'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp276\nt(S\'Y37:%RateA 32-34 - COCANA21    -CPIETR21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp277\nt(S\'Y38:%RateA 32-45 - COCANA21    -CTOLLA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp278\nt(S\'Y39:%RateA 32-45 - COCANA21    -CTOLLA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp279\nt(S\'Y40:%RateA 32-47 - COCANA21    -CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp280\nt(S\'Y41:%RateA 32-48 - COCANA21    -CZSSS621\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp281\nt(S\'Y42:%RateA 34-36 - CPIETR21    -CPROPR21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp282\nt(S\'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp283\nt(S\'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp284\nt(S\'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp285\nt(S\'Y46:%RateA 36-48 - CPROPR21    -CZSSS621\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp286\nt(S\'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp287\nt(S\'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp288\nt(S\'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp289\nt(S\'Y50:%RateA 51-52 - CASPRE31    -CASPRE32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp290\nt(S\'Y51:%RateA 53-54 - CBASTI31    -CBASTI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp291\nt(S\'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp292\nt(S\'Y53:%RateA 57-58 - CBONIF31    -CBONIF32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp293\nt(S\'Y54:%RateA 59-60 - CCALDA31    -CCALDA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp294\nt(S\'Y55:%RateA 61-62 - CCALVI31    -CCALVI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp295\nt(S\'Y56:%RateA 72-73 - CCASTI31    -CCASTI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp296\nt(S\'Y57:%RateA 76-77 - CCORTE31    -CCORTE32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp297\nt(S\'Y58:%RateA 78-79 - CFURIA31    -CFURIA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp298\nt(S\'Y59:%RateA 80-81 - CGHISO31    -CGHISO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp299\nt(S\'Y60:%RateA 82-83 - CILERO31    -CILERO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp300\nt(S\'Y61:%RateA 84-85 - CLORET31    -CLORET32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp301\nt(S\'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp302\nt(S\'Y63:%RateA 95-96 - COCANA34    -COCANA35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp303\nt(S\'Y64:%RateA 102-103 - CPORTO31    -CPORTO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp304\nt(S\'Y65:%RateA 104-105 - CPROPR31    -CPROPR32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp305\nt(S\'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp306\nt(S\'Y67:%RateA 108-109 - CSAGON31    -CSAGON32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp307\nt(S\'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp308\nt(S\'Y:Load 37 - CRIZZA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp309\nt(S\'Y:Load 42 - CSISCO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp310\nt(S\'Y:Load 51 - CASPRE31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp311\nt(S\'Y:Load 53 - CBASTI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp312\nt(S\'Y:Load 55 - CBIGUG31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp313\nt(S\'Y:Load 57 - CBONIF31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp314\nt(S\'Y:Load 59 - CCALDA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp315\nt(S\'Y:Load 61 - CCALVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp316\nt(S\'Y:Load 74 - CCERVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp317\nt(S\'Y:Load 76 - CCORTE31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp318\nt(S\'Y:Load 78 - CFURIA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp319\nt(S\'Y:Load 80 - CGHISO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp320\nt(S\'Y:Load 82 - CILERO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp321\nt(S\'Y:Load 84 - CLORET31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp322\nt(S\'Y:Load 86 - CLUCCI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp323\nt(S\'Y:Load 90 - CMOROS31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp324\nt(S\'Y:Load 95 - COCANA34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp325\nt(S\'Y:Load 100 - COLETT31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp326\nt(S\'Y:Load 101 - CPIETR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp327\nt(S\'Y:Load 102 - CPORTO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp328\nt(S\'Y:Load 104 - CPROPR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp329\nt(S\'Y:Load 108 - CSAGON31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp330\nt(S\'Y:Load 110 - CSTLUC31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp331\nttp332\nsba(iOWContexts\nContext\np333\n(dp334\ng11\n(dp335\nS\'Iteration\'\np336\ng20\n(S\'Variable_Type\'\n(I6\nttRp337\nssg13\n(dp338\nsg15\nF1369744625.7249999\nsg16\n(lp339\nsg19\n(S\'Y:Load 115 - CTAGLI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp340\ntp341\nsg23\n(lp342\nS\'orderedDomain\'\np343\nasg26\n((S\'X:Load(pu)\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp344\nt(S\'X:lineOff#\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp345\nt(S\'XProdEolienne%Pnom\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp346\nt(S\'X:ProdPV%Pnom\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp347\nt(S\'Y:NbeTransit\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp348\nt(S\'Y:NbeTension\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp349\nt(S\'Y:PProdTot\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp350\nt(S\'Y:PConsoTot\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp351\nt(S\'Y:%Losses\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp352\nt(S\'Y:Max%A\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp353\nt(S\'Y:NbeTransit_0.9-1\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp354\nt(S\'Y:PMachine1 - CBONIF11\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp355\nt(S\'Y:PMachine14 - CBONIF21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp356\nt(S\'Y:PMachine18 - CCASAM21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp357\nt(S\'Y:PMachine29 - CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp358\nt(S\'Y:PMachine29 - CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp359\nt(S\'Y:PMachine30 - CLUCCI22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp360\nt(S\'Y:PMachine42 - CSISCO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp361\nt(S\'Y:PMachine47 - CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp362\nt(S\'Y:PMachine53 - CBASTI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp363\nt(S\'Y:PMachine54 - CBASTI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp364\nt(S\'Y:PMachine58 - CBONIF32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp365\nt(S\'Y:PMachine60 - CCALDA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp366\nt(S\'Y:PMachine61 - CCALVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp367\nt(S\'Y:PMachine62 - CCALVI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp368\nt(S\'Y:PMachine63 - CCASAM31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp369\nt(S\'Y:PMachine64 - CCASAM32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp370\nt(S\'Y:PMachine65 - CCASAM33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp371\nt(S\'Y:PMachine66 - CCASAM34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp372\nt(S\'Y:PMachine67 - CCASAM35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp373\nt(S\'Y:PMachine68 - CCASAM36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp374\nt(S\'Y:PMachine69 - CCASAM37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp375\nt(S\'Y:PMachine72 - CCASTI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp376\nt(S\'Y:PMachine73 - CCASTI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp377\nt(S\'Y:PMachine74 - CCERVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp378\nt(S\'Y:PMachine74 - CCERVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp379\nt(S\'Y:PMachine75 - CCORSC31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp380\nt(S\'Y:PMachine77 - CCORTE32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp381\nt(S\'Y:PMachine78 - CFURIA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp382\nt(S\'Y:PMachine81 - CGHISO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp383\nt(S\'Y:PMachine83 - CILERO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp384\nt(S\'Y:PMachine85 - CLORET32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp385\nt(S\'Y:PMachine86 - CLUCCI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp386\nt(S\'Y:PMachine86 - CLUCCI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp387\nt(S\'Y:PMachine87 - CLUCCI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp388\nt(S\'Y:PMachine88 - CLUCCI33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp389\nt(S\'Y:PMachine89 - CLUCCI34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp390\nt(S\'Y:PMachine90 - CMOROS31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp391\nt(S\'Y:PMachine92 - COCANA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp392\nt(S\'Y:PMachine93 - COCANA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp393\nt(S\'Y:PMachine94 - COCANA33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp394\nt(S\'Y:PMachine97 - COCANA36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp395\nt(S\'Y:PMachine101 - CPIETR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp396\nt(S\'Y:PMachine102 - CPORTO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp397\nt(S\'Y:PMachine104 - CPROPR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp398\nt(S\'Y:PMachine105 - CPROPR32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp399\nt(S\'Y:PMachine106 - CRIZZA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp400\nt(S\'Y:PMachine107 - CRIZZA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp401\nt(S\'Y:PMachine109 - CSAGON32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp402\nt(S\'Y:PMachine109 - CSAGON32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp403\nt(S\'Y:PMachine111 - CSTMAR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp404\nt(S\'Y:PMachine112 - CSAMPO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp405\nt(S\'Y:PMachine113 - CSAMPO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp406\nt(S\'Y:PMachine114 - CSOVEN31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp407\nt(S\'Y:PMachine114 - CSOVEN31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp408\nt(S\'Y:PMachine115 - CTAGLI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp409\nt(S\'Y:PMachine116 - CTOLLA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp410\nt(S\'Y:PMachine117 - CTOLLA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp411\nt(S\'Y:PMachine118 - CTOLLA33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp412\nt(S\'Y:PMachine120 - CVAZZI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp413\nt(S\'Y:PMachine121 - CVAZZI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp414\nt(S\'Y:PMachine122 - CVAZZI33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp415\nt(S\'Y:PMachine123 - CVAZZI34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp416\nt(S\'Y:PMachine124 - CVAZZI35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp417\nt(S\'Y:PMachine125 - CVAZZI36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp418\nt(S\'Y:PMachine126 - CVAZZI37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp419\nt(S\'Y:PMachine127 - CVAZZI38\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp420\nt(S\'Y:PMachine128 - CVAZZI39\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp421\nt(S\'Y:PMachine129 - CVAZZI310\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp422\nt(S\'Y:PMachine130 - CVAZZI311\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp423\nt(S\'Y:PMachine131 - CVAZZI312\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp424\nt(S\'Y:PMachine132 - CVAZZI313\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp425\nt(S\'Y:PMachine133 - CVAZZI314\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp426\nt(S\'Y:PMachine134 - CLUCCI35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp427\nt(S\'Y:PMachine135 - CLUCCI36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp428\nt(S\'Y:PMachine136 - CLUCCI37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp429\nt(S\'Y:PMachine137 - CLUCCI38\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp430\nt(S\'Y:PMachine138 - CLUCCI39\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp431\nt(S\'Y:PMachine139 - CLUCCI310\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp432\nt(S\'Y:VBus1 - CBONIF11\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp433\nt(S\'Y:VBus11 - CASPRE21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp434\nt(S\'Y:VBus12 - CBASTI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp435\nt(S\'Y:VBus13 - CBIGUG21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp436\nt(S\'Y:VBus14 - CBONIF21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp437\nt(S\'Y:VBus15 - CBONIF22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp438\nt(S\'Y:VBus16 - CCALDA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp439\nt(S\'Y:VBus17 - CCALVI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp440\nt(S\'Y:VBus18 - CCASAM21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp441\nt(S\'Y:VBus19 - CCASTI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp442\nt(S\'Y:VBus20 - CCERVI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp443\nt(S\'Y:VBus21 - CCORSC21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp444\nt(S\'Y:VBus22 - CCORTE21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp445\nt(S\'Y:VBus23 - CCORTE22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp446\nt(S\'Y:VBus24 - CFURIA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp447\nt(S\'Y:VBus25 - CFURIA22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp448\nt(S\'Y:VBus26 - CGHISO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp449\nt(S\'Y:VBus27 - CILERO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp450\nt(S\'Y:VBus28 - CLORET21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp451\nt(S\'Y:VBus29 - CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp452\nt(S\'Y:VBus30 - CLUCCI22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp453\nt(S\'Y:VBus31 - CMOROS21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp454\nt(S\'Y:VBus32 - COCANA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp455\nt(S\'Y:VBus33 - COLETT21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp456\nt(S\'Y:VBus34 - CPIETR21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp457\nt(S\'Y:VBus35 - CPORTO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp458\nt(S\'Y:VBus36 - CPROPR21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp459\nt(S\'Y:VBus37 - CRIZZA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp460\nt(S\'Y:VBus38 - CSAGON21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp461\nt(S\'Y:VBus39 - CSTLUC21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp462\nt(S\'Y:VBus40 - CSTMAR21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp463\nt(S\'Y:VBus41 - CSAMPO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp464\nt(S\'Y:VBus42 - CSISCO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp465\nt(S\'Y:VBus43 - CSOVEN21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp466\nt(S\'Y:VBus44 - CTAGLI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp467\nt(S\'Y:VBus45 - CTOLLA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp468\nt(S\'Y:VBus46 - CTRAVO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp469\nt(S\'Y:VBus47 - CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp470\nt(S\'Y:VBus48 - CZSSS621\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp471\nt(S\'Y:VBus51 - CASPRE31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp472\nt(S\'Y:VBus52 - CASPRE32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp473\nt(S\'Y:VBus53 - CBASTI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp474\nt(S\'Y:VBus54 - CBASTI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp475\nt(S\'Y:VBus55 - CBIGUG31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp476\nt(S\'Y:VBus56 - CBIGUG32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp477\nt(S\'Y:VBus57 - CBONIF31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp478\nt(S\'Y:VBus58 - CBONIF32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp479\nt(S\'Y:VBus59 - CCALDA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp480\nt(S\'Y:VBus60 - CCALDA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp481\nt(S\'Y:VBus61 - CCALVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp482\nt(S\'Y:VBus62 - CCALVI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp483\nt(S\'Y:VBus63 - CCASAM31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp484\nt(S\'Y:VBus64 - CCASAM32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp485\nt(S\'Y:VBus65 - CCASAM33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp486\nt(S\'Y:VBus66 - CCASAM34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp487\nt(S\'Y:VBus67 - CCASAM35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp488\nt(S\'Y:VBus68 - CCASAM36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp489\nt(S\'Y:VBus69 - CCASAM37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp490\nt(S\'Y:VBus72 - CCASTI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp491\nt(S\'Y:VBus73 - CCASTI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp492\nt(S\'Y:VBus74 - CCERVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp493\nt(S\'Y:VBus75 - CCORSC31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp494\nt(S\'Y:VBus76 - CCORTE31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp495\nt(S\'Y:VBus77 - CCORTE32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp496\nt(S\'Y:VBus78 - CFURIA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp497\nt(S\'Y:VBus79 - CFURIA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp498\nt(S\'Y:VBus80 - CGHISO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp499\nt(S\'Y:VBus81 - CGHISO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp500\nt(S\'Y:VBus82 - CILERO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp501\nt(S\'Y:VBus83 - CILERO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp502\nt(S\'Y:VBus84 - CLORET31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp503\nt(S\'Y:VBus85 - CLORET32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp504\nt(S\'Y:VBus86 - CLUCCI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp505\nt(S\'Y:VBus87 - CLUCCI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp506\nt(S\'Y:VBus88 - CLUCCI33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp507\nt(S\'Y:VBus89 - CLUCCI34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp508\nt(S\'Y:VBus90 - CMOROS31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp509\nt(S\'Y:VBus92 - COCANA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp510\nt(S\'Y:VBus93 - COCANA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp511\nt(S\'Y:VBus94 - COCANA33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp512\nt(S\'Y:VBus95 - COCANA34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp513\nt(S\'Y:VBus96 - COCANA35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp514\nt(S\'Y:VBus97 - COCANA36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp515\nt(S\'Y:VBus100 - COLETT31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp516\nt(S\'Y:VBus101 - CPIETR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp517\nt(S\'Y:VBus102 - CPORTO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp518\nt(S\'Y:VBus103 - CPORTO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp519\nt(S\'Y:VBus104 - CPROPR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp520\nt(S\'Y:VBus105 - CPROPR32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp521\nt(S\'Y:VBus106 - CRIZZA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp522\nt(S\'Y:VBus107 - CRIZZA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp523\nt(S\'Y:VBus108 - CSAGON31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp524\nt(S\'Y:VBus109 - CSAGON32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp525\nt(S\'Y:VBus110 - CSTLUC31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp526\nt(S\'Y:VBus111 - CSTMAR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp527\nt(S\'Y:VBus112 - CSAMPO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp528\nt(S\'Y:VBus113 - CSAMPO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp529\nt(S\'Y:VBus114 - CSOVEN31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp530\nt(S\'Y:VBus115 - CTAGLI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp531\nt(S\'Y:VBus116 - CTOLLA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp532\nt(S\'Y:VBus117 - CTOLLA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp533\nt(S\'Y:VBus118 - CTOLLA33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp534\nt(S\'Y:VBus119 - CTRAVO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp535\nt(S\'Y:VBus120 - CVAZZI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp536\nt(S\'Y:VBus121 - CVAZZI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp537\nt(S\'Y:VBus122 - CVAZZI33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp538\nt(S\'Y:VBus123 - CVAZZI34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp539\nt(S\'Y:VBus124 - CVAZZI35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp540\nt(S\'Y:VBus125 - CVAZZI36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp541\nt(S\'Y:VBus126 - CVAZZI37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp542\nt(S\'Y:VBus127 - CVAZZI38\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp543\nt(S\'Y:VBus128 - CVAZZI39\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp544\nt(S\'Y:VBus129 - CVAZZI310\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp545\nt(S\'Y:VBus130 - CVAZZI311\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp546\nt(S\'Y:VBus131 - CVAZZI312\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp547\nt(S\'Y:VBus132 - CVAZZI313\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp548\nt(S\'Y:VBus133 - CVAZZI314\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp549\nt(S\'Y:VBus134 - CLUCCI35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp550\nt(S\'Y:VBus135 - CLUCCI36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp551\nt(S\'Y:VBus136 - CLUCCI37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp552\nt(S\'Y:VBus137 - CLUCCI38\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp553\nt(S\'Y:VBus138 - CLUCCI39\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp554\nt(S\'Y:VBus139 - CLUCCI310\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp555\nt(S\'Y0:%RateA 11-28 - CASPRE21    -CLORET21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp556\nt(S\'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp557\nt(S\'Y2:%RateA 12-24 - CBASTI21    -CFURIA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp558\nt(S\'Y3:%RateA 12-24 - CBASTI21    -CFURIA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp559\nt(S\'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp560\nt(S\'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp561\nt(S\'Y6:%RateA 14-15 - CBONIF21    -CBONIF22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp562\nt(S\'Y7:%RateA 14-35 - CBONIF21    -CPORTO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp563\nt(S\'Y8:%RateA 15-35 - CBONIF22    -CPORTO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp564\nt(S\'Y9:%RateA 16-32 - CCALDA21    -COCANA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp565\nt(S\'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp566\nt(S\'Y11:%RateA 17-27 - CCALVI21    -CILERO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp567\nt(S\'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp568\nt(S\'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp569\nt(S\'Y14:%RateA 18-31 - CCASAM21    -CMOROS21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp570\nt(S\'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp571\nt(S\'Y16:%RateA 19-21 - CCASTI21    -CCORSC21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp572\nt(S\'Y17:%RateA 19-22 - CCASTI21    -CCORTE21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp573\nt(S\'Y18:%RateA 19-27 - CCASTI21    -CILERO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp574\nt(S\'Y19:%RateA 20-26 - CCERVI21    -CGHISO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp575\nt(S\'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp576\nt(S\'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp577\nt(S\'Y22:%RateA 22-23 - CCORTE21    -CCORTE22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp578\nt(S\'Y23:%RateA 22-31 - CCORTE21    -CMOROS21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp579\nt(S\'Y24:%RateA 23-32 - CCORTE22    -COCANA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp580\nt(S\'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp581\nt(S\'Y26:%RateA 24-25 - CFURIA21    -CFURIA22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp582\nt(S\'Y27:%RateA 24-33 - CFURIA21    -COLETT21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp583\nt(S\'Y28:%RateA 24-42 - CFURIA21    -CSISCO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp584\nt(S\'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp585\nt(S\'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp586\nt(S\'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp587\nt(S\'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp588\nt(S\'Y33:%RateA 27-33 - CILERO21    -COLETT21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp589\nt(S\'Y34:%RateA 28-38 - CLORET21    -CSAGON21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp590\nt(S\'Y35:%RateA 28-47 - CLORET21    -CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp591\nt(S\'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp592\nt(S\'Y37:%RateA 32-34 - COCANA21    -CPIETR21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp593\nt(S\'Y38:%RateA 32-45 - COCANA21    -CTOLLA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp594\nt(S\'Y39:%RateA 32-45 - COCANA21    -CTOLLA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp595\nt(S\'Y40:%RateA 32-47 - COCANA21    -CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp596\nt(S\'Y41:%RateA 32-48 - COCANA21    -CZSSS621\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp597\nt(S\'Y42:%RateA 34-36 - CPIETR21    -CPROPR21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp598\nt(S\'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp599\nt(S\'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp600\nt(S\'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp601\nt(S\'Y46:%RateA 36-48 - CPROPR21    -CZSSS621\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp602\nt(S\'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp603\nt(S\'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp604\nt(S\'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp605\nt(S\'Y50:%RateA 51-52 - CASPRE31    -CASPRE32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp606\nt(S\'Y51:%RateA 53-54 - CBASTI31    -CBASTI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp607\nt(S\'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp608\nt(S\'Y53:%RateA 57-58 - CBONIF31    -CBONIF32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp609\nt(S\'Y54:%RateA 59-60 - CCALDA31    -CCALDA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp610\nt(S\'Y55:%RateA 61-62 - CCALVI31    -CCALVI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp611\nt(S\'Y56:%RateA 72-73 - CCASTI31    -CCASTI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp612\nt(S\'Y57:%RateA 76-77 - CCORTE31    -CCORTE32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp613\nt(S\'Y58:%RateA 78-79 - CFURIA31    -CFURIA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp614\nt(S\'Y59:%RateA 80-81 - CGHISO31    -CGHISO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp615\nt(S\'Y60:%RateA 82-83 - CILERO31    -CILERO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp616\nt(S\'Y61:%RateA 84-85 - CLORET31    -CLORET32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp617\nt(S\'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp618\nt(S\'Y63:%RateA 95-96 - COCANA34    -COCANA35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp619\nt(S\'Y64:%RateA 102-103 - CPORTO31    -CPORTO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp620\nt(S\'Y65:%RateA 104-105 - CPROPR31    -CPROPR32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp621\nt(S\'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp622\nt(S\'Y67:%RateA 108-109 - CSAGON31    -CSAGON32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp623\nt(S\'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp624\nt(S\'Y:Load 37 - CRIZZA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp625\nt(S\'Y:Load 42 - CSISCO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp626\nt(S\'Y:Load 51 - CASPRE31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp627\nt(S\'Y:Load 53 - CBASTI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp628\nt(S\'Y:Load 55 - CBIGUG31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp629\nt(S\'Y:Load 57 - CBONIF31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp630\nt(S\'Y:Load 59 - CCALDA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp631\nt(S\'Y:Load 61 - CCALVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp632\nt(S\'Y:Load 74 - CCERVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp633\nt(S\'Y:Load 76 - CCORTE31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp634\nt(S\'Y:Load 78 - CFURIA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp635\nt(S\'Y:Load 80 - CGHISO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp636\nt(S\'Y:Load 82 - CILERO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp637\nt(S\'Y:Load 84 - CLORET31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp638\nt(S\'Y:Load 86 - CLUCCI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp639\nt(S\'Y:Load 90 - CMOROS31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp640\nt(S\'Y:Load 95 - COCANA34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp641\nt(S\'Y:Load 100 - COLETT31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp642\nt(S\'Y:Load 101 - CPIETR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp643\nt(S\'Y:Load 102 - CPORTO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp644\nt(S\'Y:Load 104 - CPROPR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp645\nt(S\'Y:Load 108 - CSAGON31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp646\nt(S\'Y:Load 110 - CSTLUC31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp647\nttp648\nsba(iOWContexts\nContext\np649\n(dp650\ng11\n(dp651\nsg13\n(dp652\nsg15\nF1369994938.7509999\nsg16\n(lp653\n(VEOL_ALL\nV&quot;Y:PMachine14 - CBONIF21&quot;+&quot;Y:PMachine18 - CCASAM21&quot;+&quot;Y:PMachine30 - CLUCCI22&quot;+&quot;Y:PMachine42 - CSISCO21&quot;+&quot;Y:PMachine47 - CVAZZI21&quot;\ntp654\na(VPV_ALL\nV92*&quot;Y:PMachine53 - CBASTI31&quot;\ntp655\na(VINTERCOS\nV&quot;Y:PMachine1 - CBONIF11&quot;+&quot;Y:PMachine29 - CLUCCI21&quot;+&quot;Y:PMachine29 - CLUCCI21&quot;\ntp656\na(VVAZZIO_DIESEL\nV&quot;Y:PMachine120 - CVAZZI31&quot;+&quot;Y:PMachine121 - CVAZZI32&quot;+&quot;Y:PMachine122 - CVAZZI33&quot;+&quot;Y:PMachine123 - CVAZZI34&quot;+&quot;Y:PMachine124 - CVAZZI35&quot;+&quot;Y:PMachine125 - CVAZZI36&quot;+&quot;Y:PMachine126 - CVAZZI37&quot;+&quot;Y:PMachine127 - CVAZZI38&quot;+&quot;Y:PMachine128 - CVAZZI39&quot;+&quot;Y:PMachine129 - CVAZZI310&quot;+&quot;Y:PMachine130 - CVAZZI311&quot;+&quot;Y:PMachine133 - CVAZZI314&quot;\ntp657\na(VVAZZIO_TAC\nV&quot;Y:PMachine131 - CVAZZI312&quot;+&quot;Y:PMachine132 - CVAZZI313&quot;\ntp658\na(VCASA_DIESEL\nV&quot;Y:PMachine63 - CCASAM31&quot;+&quot;Y:PMachine64 - CCASAM32&quot;+&quot;Y:PMachine65 - CCASAM33&quot;+&quot;Y:PMachine66 - CCASAM34&quot;+&quot;Y:PMachine67 - CCASAM35&quot;+&quot;Y:PMachine68 - CCASAM36&quot;+&quot;Y:PMachine69 - CCASAM37&quot;\ntp659\nasg19\n(S\'Y:Load 115 - CTAGLI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp660\ntp661\nsg23\n(lp662\ng343\nasg26\n((S\'Iteration\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp663\nt(S\'X:Load(pu)\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp664\nt(S\'X:lineOff#\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp665\nt(S\'XProdEolienne%Pnom\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp666\nt(S\'X:ProdPV%Pnom\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp667\nt(S\'Y:NbeTransit\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp668\nt(S\'Y:NbeTension\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp669\nt(S\'Y:PProdTot\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp670\nt(S\'Y:PConsoTot\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp671\nt(S\'Y:%Losses\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp672\nt(S\'Y:Max%A\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp673\nt(S\'Y:NbeTransit_0.9-1\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp674\nt(S\'Y:PMachine1 - CBONIF11\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp675\nt(S\'Y:PMachine14 - CBONIF21\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp676\nt(S\'Y:PMachine18 - CCASAM21\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp677\nt(S\'Y:PMachine29 - CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp678\nt(S\'Y:PMachine29 - CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp679\nt(S\'Y:PMachine30 - CLUCCI22\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp680\nt(S\'Y:PMachine42 - CSISCO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp681\nt(S\'Y:PMachine47 - CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp682\nt(S\'Y:PMachine53 - CBASTI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp683\nt(S\'Y:PMachine54 - CBASTI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp684\nt(S\'Y:PMachine58 - CBONIF32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp685\nt(S\'Y:PMachine60 - CCALDA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp686\nt(S\'Y:PMachine61 - CCALVI31\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp687\nt(S\'Y:PMachine62 - CCALVI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp688\nt(S\'Y:PMachine63 - CCASAM31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp689\nt(S\'Y:PMachine64 - CCASAM32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp690\nt(S\'Y:PMachine65 - CCASAM33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp691\nt(S\'Y:PMachine66 - CCASAM34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp692\nt(S\'Y:PMachine67 - CCASAM35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp693\nt(S\'Y:PMachine68 - CCASAM36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp694\nt(S\'Y:PMachine69 - CCASAM37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp695\nt(S\'Y:PMachine72 - CCASTI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp696\nt(S\'Y:PMachine73 - CCASTI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp697\nt(S\'Y:PMachine74 - CCERVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp698\nt(S\'Y:PMachine74 - CCERVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp699\nt(S\'Y:PMachine75 - CCORSC31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp700\nt(S\'Y:PMachine77 - CCORTE32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp701\nt(S\'Y:PMachine78 - CFURIA31\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp702\nt(S\'Y:PMachine81 - CGHISO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp703\nt(S\'Y:PMachine83 - CILERO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp704\nt(S\'Y:PMachine85 - CLORET32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp705\nt(S\'Y:PMachine86 - CLUCCI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp706\nt(S\'Y:PMachine86 - CLUCCI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp707\nt(S\'Y:PMachine87 - CLUCCI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp708\nt(S\'Y:PMachine88 - CLUCCI33\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp709\nt(S\'Y:PMachine89 - CLUCCI34\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp710\nt(S\'Y:PMachine90 - CMOROS31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp711\nt(S\'Y:PMachine92 - COCANA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp712\nt(S\'Y:PMachine93 - COCANA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp713\nt(S\'Y:PMachine94 - COCANA33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp714\nt(S\'Y:PMachine97 - COCANA36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp715\nt(S\'Y:PMachine101 - CPIETR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp716\nt(S\'Y:PMachine102 - CPORTO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp717\nt(S\'Y:PMachine104 - CPROPR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp718\nt(S\'Y:PMachine105 - CPROPR32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp719\nt(S\'Y:PMachine106 - CRIZZA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp720\nt(S\'Y:PMachine107 - CRIZZA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp721\nt(S\'Y:PMachine109 - CSAGON32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp722\nt(S\'Y:PMachine109 - CSAGON32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp723\nt(S\'Y:PMachine111 - CSTMAR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp724\nt(S\'Y:PMachine112 - CSAMPO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp725\nt(S\'Y:PMachine113 - CSAMPO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp726\nt(S\'Y:PMachine114 - CSOVEN31\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp727\nt(S\'Y:PMachine114 - CSOVEN31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp728\nt(S\'Y:PMachine115 - CTAGLI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp729\nt(S\'Y:PMachine116 - CTOLLA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp730\nt(S\'Y:PMachine117 - CTOLLA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp731\nt(S\'Y:PMachine118 - CTOLLA33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp732\nt(S\'Y:PMachine120 - CVAZZI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp733\nt(S\'Y:PMachine121 - CVAZZI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp734\nt(S\'Y:PMachine122 - CVAZZI33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp735\nt(S\'Y:PMachine123 - CVAZZI34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp736\nt(S\'Y:PMachine124 - CVAZZI35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp737\nt(S\'Y:PMachine125 - CVAZZI36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp738\nt(S\'Y:PMachine126 - CVAZZI37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp739\nt(S\'Y:PMachine127 - CVAZZI38\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp740\nt(S\'Y:PMachine128 - CVAZZI39\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp741\nt(S\'Y:PMachine129 - CVAZZI310\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp742\nt(S\'Y:PMachine130 - CVAZZI311\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp743\nt(S\'Y:PMachine131 - CVAZZI312\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp744\nt(S\'Y:PMachine132 - CVAZZI313\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp745\nt(S\'Y:PMachine133 - CVAZZI314\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp746\nt(S\'Y:PMachine134 - CLUCCI35\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp747\nt(S\'Y:PMachine135 - CLUCCI36\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp748\nt(S\'Y:PMachine136 - CLUCCI37\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp749\nt(S\'Y:PMachine137 - CLUCCI38\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp750\nt(S\'Y:PMachine138 - CLUCCI39\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp751\nt(S\'Y:PMachine139 - CLUCCI310\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp752\nt(S\'Y:VBus1 - CBONIF11\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp753\nt(S\'Y:VBus11 - CASPRE21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp754\nt(S\'Y:VBus12 - CBASTI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp755\nt(S\'Y:VBus13 - CBIGUG21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp756\nt(S\'Y:VBus14 - CBONIF21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp757\nt(S\'Y:VBus15 - CBONIF22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp758\nt(S\'Y:VBus16 - CCALDA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp759\nt(S\'Y:VBus17 - CCALVI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp760\nt(S\'Y:VBus18 - CCASAM21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp761\nt(S\'Y:VBus19 - CCASTI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp762\nt(S\'Y:VBus20 - CCERVI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp763\nt(S\'Y:VBus21 - CCORSC21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp764\nt(S\'Y:VBus22 - CCORTE21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp765\nt(S\'Y:VBus23 - CCORTE22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp766\nt(S\'Y:VBus24 - CFURIA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp767\nt(S\'Y:VBus25 - CFURIA22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp768\nt(S\'Y:VBus26 - CGHISO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp769\nt(S\'Y:VBus27 - CILERO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp770\nt(S\'Y:VBus28 - CLORET21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp771\nt(S\'Y:VBus29 - CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp772\nt(S\'Y:VBus30 - CLUCCI22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp773\nt(S\'Y:VBus31 - CMOROS21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp774\nt(S\'Y:VBus32 - COCANA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp775\nt(S\'Y:VBus33 - COLETT21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp776\nt(S\'Y:VBus34 - CPIETR21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp777\nt(S\'Y:VBus35 - CPORTO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp778\nt(S\'Y:VBus36 - CPROPR21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp779\nt(S\'Y:VBus37 - CRIZZA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp780\nt(S\'Y:VBus38 - CSAGON21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp781\nt(S\'Y:VBus39 - CSTLUC21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp782\nt(S\'Y:VBus40 - CSTMAR21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp783\nt(S\'Y:VBus41 - CSAMPO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp784\nt(S\'Y:VBus42 - CSISCO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp785\nt(S\'Y:VBus43 - CSOVEN21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp786\nt(S\'Y:VBus44 - CTAGLI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp787\nt(S\'Y:VBus45 - CTOLLA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp788\nt(S\'Y:VBus46 - CTRAVO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp789\nt(S\'Y:VBus47 - CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp790\nt(S\'Y:VBus48 - CZSSS621\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp791\nt(S\'Y:VBus51 - CASPRE31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp792\nt(S\'Y:VBus52 - CASPRE32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp793\nt(S\'Y:VBus53 - CBASTI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp794\nt(S\'Y:VBus54 - CBASTI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp795\nt(S\'Y:VBus55 - CBIGUG31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp796\nt(S\'Y:VBus56 - CBIGUG32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp797\nt(S\'Y:VBus57 - CBONIF31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp798\nt(S\'Y:VBus58 - CBONIF32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp799\nt(S\'Y:VBus59 - CCALDA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp800\nt(S\'Y:VBus60 - CCALDA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp801\nt(S\'Y:VBus61 - CCALVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp802\nt(S\'Y:VBus62 - CCALVI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp803\nt(S\'Y:VBus63 - CCASAM31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp804\nt(S\'Y:VBus64 - CCASAM32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp805\nt(S\'Y:VBus65 - CCASAM33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp806\nt(S\'Y:VBus66 - CCASAM34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp807\nt(S\'Y:VBus67 - CCASAM35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp808\nt(S\'Y:VBus68 - CCASAM36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp809\nt(S\'Y:VBus69 - CCASAM37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp810\nt(S\'Y:VBus72 - CCASTI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp811\nt(S\'Y:VBus73 - CCASTI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp812\nt(S\'Y:VBus74 - CCERVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp813\nt(S\'Y:VBus75 - CCORSC31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp814\nt(S\'Y:VBus76 - CCORTE31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp815\nt(S\'Y:VBus77 - CCORTE32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp816\nt(S\'Y:VBus78 - CFURIA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp817\nt(S\'Y:VBus79 - CFURIA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp818\nt(S\'Y:VBus80 - CGHISO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp819\nt(S\'Y:VBus81 - CGHISO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp820\nt(S\'Y:VBus82 - CILERO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp821\nt(S\'Y:VBus83 - CILERO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp822\nt(S\'Y:VBus84 - CLORET31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp823\nt(S\'Y:VBus85 - CLORET32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp824\nt(S\'Y:VBus86 - CLUCCI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp825\nt(S\'Y:VBus87 - CLUCCI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp826\nt(S\'Y:VBus88 - CLUCCI33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp827\nt(S\'Y:VBus89 - CLUCCI34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp828\nt(S\'Y:VBus90 - CMOROS31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp829\nt(S\'Y:VBus92 - COCANA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp830\nt(S\'Y:VBus93 - COCANA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp831\nt(S\'Y:VBus94 - COCANA33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp832\nt(S\'Y:VBus95 - COCANA34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp833\nt(S\'Y:VBus96 - COCANA35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp834\nt(S\'Y:VBus97 - COCANA36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp835\nt(S\'Y:VBus100 - COLETT31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp836\nt(S\'Y:VBus101 - CPIETR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp837\nt(S\'Y:VBus102 - CPORTO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp838\nt(S\'Y:VBus103 - CPORTO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp839\nt(S\'Y:VBus104 - CPROPR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp840\nt(S\'Y:VBus105 - CPROPR32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp841\nt(S\'Y:VBus106 - CRIZZA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp842\nt(S\'Y:VBus107 - CRIZZA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp843\nt(S\'Y:VBus108 - CSAGON31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp844\nt(S\'Y:VBus109 - CSAGON32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp845\nt(S\'Y:VBus110 - CSTLUC31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp846\nt(S\'Y:VBus111 - CSTMAR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp847\nt(S\'Y:VBus112 - CSAMPO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp848\nt(S\'Y:VBus113 - CSAMPO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp849\nt(S\'Y:VBus114 - CSOVEN31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp850\nt(S\'Y:VBus115 - CTAGLI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp851\nt(S\'Y:VBus116 - CTOLLA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp852\nt(S\'Y:VBus117 - CTOLLA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp853\nt(S\'Y:VBus118 - CTOLLA33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp854\nt(S\'Y:VBus119 - CTRAVO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp855\nt(S\'Y:VBus120 - CVAZZI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp856\nt(S\'Y:VBus121 - CVAZZI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp857\nt(S\'Y:VBus122 - CVAZZI33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp858\nt(S\'Y:VBus123 - CVAZZI34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp859\nt(S\'Y:VBus124 - CVAZZI35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp860\nt(S\'Y:VBus125 - CVAZZI36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp861\nt(S\'Y:VBus126 - CVAZZI37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp862\nt(S\'Y:VBus127 - CVAZZI38\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp863\nt(S\'Y:VBus128 - CVAZZI39\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp864\nt(S\'Y:VBus129 - CVAZZI310\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp865\nt(S\'Y:VBus130 - CVAZZI311\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp866\nt(S\'Y:VBus131 - CVAZZI312\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp867\nt(S\'Y:VBus132 - CVAZZI313\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp868\nt(S\'Y:VBus133 - CVAZZI314\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp869\nt(S\'Y:VBus134 - CLUCCI35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp870\nt(S\'Y:VBus135 - CLUCCI36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp871\nt(S\'Y:VBus136 - CLUCCI37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp872\nt(S\'Y:VBus137 - CLUCCI38\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp873\nt(S\'Y:VBus138 - CLUCCI39\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp874\nt(S\'Y:VBus139 - CLUCCI310\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp875\nt(S\'Y0:%RateA 11-28 - CASPRE21    -CLORET21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp876\nt(S\'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp877\nt(S\'Y2:%RateA 12-24 - CBASTI21    -CFURIA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp878\nt(S\'Y3:%RateA 12-24 - CBASTI21    -CFURIA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp879\nt(S\'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp880\nt(S\'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp881\nt(S\'Y6:%RateA 14-15 - CBONIF21    -CBONIF22\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp882\nt(S\'Y7:%RateA 14-35 - CBONIF21    -CPORTO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp883\nt(S\'Y8:%RateA 15-35 - CBONIF22    -CPORTO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp884\nt(S\'Y9:%RateA 16-32 - CCALDA21    -COCANA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp885\nt(S\'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp886\nt(S\'Y11:%RateA 17-27 - CCALVI21    -CILERO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp887\nt(S\'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp888\nt(S\'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp889\nt(S\'Y14:%RateA 18-31 - CCASAM21    -CMOROS21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp890\nt(S\'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp891\nt(S\'Y16:%RateA 19-21 - CCASTI21    -CCORSC21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp892\nt(S\'Y17:%RateA 19-22 - CCASTI21    -CCORTE21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp893\nt(S\'Y18:%RateA 19-27 - CCASTI21    -CILERO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp894\nt(S\'Y19:%RateA 20-26 - CCERVI21    -CGHISO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp895\nt(S\'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp896\nt(S\'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp897\nt(S\'Y22:%RateA 22-23 - CCORTE21    -CCORTE22\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp898\nt(S\'Y23:%RateA 22-31 - CCORTE21    -CMOROS21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp899\nt(S\'Y24:%RateA 23-32 - CCORTE22    -COCANA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp900\nt(S\'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp901\nt(S\'Y26:%RateA 24-25 - CFURIA21    -CFURIA22\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp902\nt(S\'Y27:%RateA 24-33 - CFURIA21    -COLETT21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp903\nt(S\'Y28:%RateA 24-42 - CFURIA21    -CSISCO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp904\nt(S\'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp905\nt(S\'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp906\nt(S\'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp907\nt(S\'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp908\nt(S\'Y33:%RateA 27-33 - CILERO21    -COLETT21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp909\nt(S\'Y34:%RateA 28-38 - CLORET21    -CSAGON21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp910\nt(S\'Y35:%RateA 28-47 - CLORET21    -CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp911\nt(S\'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp912\nt(S\'Y37:%RateA 32-34 - COCANA21    -CPIETR21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp913\nt(S\'Y38:%RateA 32-45 - COCANA21    -CTOLLA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp914\nt(S\'Y39:%RateA 32-45 - COCANA21    -CTOLLA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp915\nt(S\'Y40:%RateA 32-47 - COCANA21    -CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp916\nt(S\'Y41:%RateA 32-48 - COCANA21    -CZSSS621\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp917\nt(S\'Y42:%RateA 34-36 - CPIETR21    -CPROPR21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp918\nt(S\'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp919\nt(S\'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp920\nt(S\'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp921\nt(S\'Y46:%RateA 36-48 - CPROPR21    -CZSSS621\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp922\nt(S\'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp923\nt(S\'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp924\nt(S\'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp925\nt(S\'Y50:%RateA 51-52 - CASPRE31    -CASPRE32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp926\nt(S\'Y51:%RateA 53-54 - CBASTI31    -CBASTI32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp927\nt(S\'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp928\nt(S\'Y53:%RateA 57-58 - CBONIF31    -CBONIF32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp929\nt(S\'Y54:%RateA 59-60 - CCALDA31    -CCALDA32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp930\nt(S\'Y55:%RateA 61-62 - CCALVI31    -CCALVI32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp931\nt(S\'Y56:%RateA 72-73 - CCASTI31    -CCASTI32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp932\nt(S\'Y57:%RateA 76-77 - CCORTE31    -CCORTE32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp933\nt(S\'Y58:%RateA 78-79 - CFURIA31    -CFURIA32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp934\nt(S\'Y59:%RateA 80-81 - CGHISO31    -CGHISO32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp935\nt(S\'Y60:%RateA 82-83 - CILERO31    -CILERO32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp936\nt(S\'Y61:%RateA 84-85 - CLORET31    -CLORET32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp937\nt(S\'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp938\nt(S\'Y63:%RateA 95-96 - COCANA34    -COCANA35\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp939\nt(S\'Y64:%RateA 102-103 - CPORTO31    -CPORTO32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp940\nt(S\'Y65:%RateA 104-105 - CPROPR31    -CPROPR32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp941\nt(S\'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp942\nt(S\'Y67:%RateA 108-109 - CSAGON31    -CSAGON32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp943\nt(S\'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp944\nt(S\'Y:Load 37 - CRIZZA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp945\nt(S\'Y:Load 42 - CSISCO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp946\nt(S\'Y:Load 51 - CASPRE31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp947\nt(S\'Y:Load 53 - CBASTI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp948\nt(S\'Y:Load 55 - CBIGUG31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp949\nt(S\'Y:Load 57 - CBONIF31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp950\nt(S\'Y:Load 59 - CCALDA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp951\nt(S\'Y:Load 61 - CCALVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp952\nt(S\'Y:Load 74 - CCERVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp953\nt(S\'Y:Load 76 - CCORTE31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp954\nt(S\'Y:Load 78 - CFURIA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp955\nt(S\'Y:Load 80 - CGHISO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp956\nt(S\'Y:Load 82 - CILERO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp957\nt(S\'Y:Load 84 - CLORET31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp958\nt(S\'Y:Load 86 - CLUCCI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp959\nt(S\'Y:Load 90 - CMOROS31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp960\nt(S\'Y:Load 95 - COCANA34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp961\nt(S\'Y:Load 100 - COLETT31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp962\nt(S\'Y:Load 101 - CPIETR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp963\nt(S\'Y:Load 102 - CPORTO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp964\nt(S\'Y:Load 104 - CPROPR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp965\nt(S\'Y:Load 108 - CSAGON31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp966\nt(S\'Y:Load 110 - CSTLUC31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp967\nttp968\nsba(iOWContexts\nContext\np969\n(dp970\ng11\n(dp971\nsg13\n(dp972\nsg15\nF1369931375.7969999\nsg16\n(lp973\n(VTOT PV\nV&quot;X:ProdPV%Pnom&quot;*92\ntp974\na(VDIESEL VAZZIO\nV&quot;Y:PMachine120&quot;+&quot;Y:PMachine121&quot;+&quot;Y:PMachine122&quot;+&quot;Y:PMachine123&quot;+&quot;Y:PMachine124&quot;+&quot;Y:PMachine125&quot;+&quot;Y:PMachine126&quot;+&quot;Y:PMachine127&quot;+&quot;Y:PMachine128&quot;+&quot;Y:PMachine129&quot;+&quot;Y:PMachine130&quot;+&quot;Y:PMachine133&quot;\ntp975\na(VTAC VAZZIO\nV&quot;Y:PMachine131&quot;+&quot;Y:PMachine132&quot;\ntp976\na(VTOT WIND\nV4*&quot;Y:PMachine14&quot;+&quot;Y:PMachine42&quot;\ntp977\na(VDIESEL CASA\nV&quot;Y:PMachine63&quot;+&quot;Y:PMachine64&quot;+&quot;Y:PMachine65&quot;+&quot;Y:PMachine66&quot;+&quot;Y:PMachine67&quot;+&quot;Y:PMachine68&quot;+&quot;Y:PMachine69&quot;\ntp978\na(VINTERCOS\nV&quot;Y:PMachine1&quot;+&quot;Y:PMachine29&quot;+&quot;Y:PMachine29&quot;\ntp979\na(VTOT ENR\nV&quot;X:ProdPV%Pnom&quot;*92+4*&quot;Y:PMachine14&quot;+&quot;Y:PMachine42&quot;\ntp980\nasg19\n(S\'Y:Load 115\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp981\ntp982\nsg23\n(lp983\ng343\nasg26\n((S\'Iteration\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp984\nt(S\'X:Load(pu)\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp985\nt(S\'X:lineOff#\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp986\nt(S\'XProdEolienne%Pnom\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp987\nt(S\'X:ProdPV%Pnom\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp988\nt(S\'Y:NbeTransit\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp989\nt(S\'Y:NbeTension\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp990\nt(S\'Y:PProdTot\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp991\nt(S\'Y:PConsoTot\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp992\nt(S\'Y:%Losses\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp993\nt(S\'Y:Max%A\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp994\nt(S\'Y:NbeTransit_0.9-1\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp995\nt(S\'Y:PMachine1\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp996\nt(S\'Y:PMachine14\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp997\nt(S\'Y:PMachine18\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp998\nt(S\'Y:PMachine29\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp999\nt(S\'Y:PMachine29\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1000\nt(S\'Y:PMachine30\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1001\nt(S\'Y:PMachine42\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1002\nt(S\'Y:PMachine47\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1003\nt(S\'Y:PMachine53\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1004\nt(S\'Y:PMachine54\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1005\nt(S\'Y:PMachine58\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1006\nt(S\'Y:PMachine60\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1007\nt(S\'Y:PMachine61\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1008\nt(S\'Y:PMachine62\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1009\nt(S\'Y:PMachine63\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1010\nt(S\'Y:PMachine64\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1011\nt(S\'Y:PMachine65\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1012\nt(S\'Y:PMachine66\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1013\nt(S\'Y:PMachine67\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1014\nt(S\'Y:PMachine68\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1015\nt(S\'Y:PMachine69\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1016\nt(S\'Y:PMachine72\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1017\nt(S\'Y:PMachine73\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1018\nt(S\'Y:PMachine74\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1019\nt(S\'Y:PMachine74\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1020\nt(S\'Y:PMachine75\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1021\nt(S\'Y:PMachine77\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1022\nt(S\'Y:PMachine78\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1023\nt(S\'Y:PMachine81\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1024\nt(S\'Y:PMachine83\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1025\nt(S\'Y:PMachine85\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1026\nt(S\'Y:PMachine86\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1027\nt(S\'Y:PMachine86\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1028\nt(S\'Y:PMachine87\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1029\nt(S\'Y:PMachine88\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1030\nt(S\'Y:PMachine89\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1031\nt(S\'Y:PMachine90\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1032\nt(S\'Y:PMachine92\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1033\nt(S\'Y:PMachine93\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1034\nt(S\'Y:PMachine94\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1035\nt(S\'Y:PMachine97\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1036\nt(S\'Y:PMachine101\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1037\nt(S\'Y:PMachine102\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1038\nt(S\'Y:PMachine104\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1039\nt(S\'Y:PMachine105\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1040\nt(S\'Y:PMachine106\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1041\nt(S\'Y:PMachine107\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1042\nt(S\'Y:PMachine109\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1043\nt(S\'Y:PMachine109\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1044\nt(S\'Y:PMachine111\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1045\nt(S\'Y:PMachine112\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1046\nt(S\'Y:PMachine113\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1047\nt(S\'Y:PMachine114\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1048\nt(S\'Y:PMachine114\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1049\nt(S\'Y:PMachine115\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1050\nt(S\'Y:PMachine116\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1051\nt(S\'Y:PMachine117\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1052\nt(S\'Y:PMachine118\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1053\nt(S\'Y:PMachine120\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1054\nt(S\'Y:PMachine121\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1055\nt(S\'Y:PMachine122\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1056\nt(S\'Y:PMachine123\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1057\nt(S\'Y:PMachine124\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1058\nt(S\'Y:PMachine125\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1059\nt(S\'Y:PMachine126\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1060\nt(S\'Y:PMachine127\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1061\nt(S\'Y:PMachine128\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1062\nt(S\'Y:PMachine129\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1063\nt(S\'Y:PMachine130\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1064\nt(S\'Y:PMachine131\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1065\nt(S\'Y:PMachine132\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1066\nt(S\'Y:PMachine133\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1067\nt(S\'Y:PMachine134\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1068\nt(S\'Y:PMachine135\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1069\nt(S\'Y:PMachine136\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1070\nt(S\'Y:PMachine137\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1071\nt(S\'Y:PMachine138\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1072\nt(S\'Y:PMachine139\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1073\nt(S\'Y:VBus1\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1074\nt(S\'Y:VBus11\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1075\nt(S\'Y:VBus12\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1076\nt(S\'Y:VBus13\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1077\nt(S\'Y:VBus14\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1078\nt(S\'Y:VBus15\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1079\nt(S\'Y:VBus16\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1080\nt(S\'Y:VBus17\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1081\nt(S\'Y:VBus18\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1082\nt(S\'Y:VBus19\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1083\nt(S\'Y:VBus20\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1084\nt(S\'Y:VBus21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1085\nt(S\'Y:VBus22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1086\nt(S\'Y:VBus23\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1087\nt(S\'Y:VBus24\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1088\nt(S\'Y:VBus25\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1089\nt(S\'Y:VBus26\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1090\nt(S\'Y:VBus27\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1091\nt(S\'Y:VBus28\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1092\nt(S\'Y:VBus29\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1093\nt(S\'Y:VBus30\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1094\nt(S\'Y:VBus31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1095\nt(S\'Y:VBus32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1096\nt(S\'Y:VBus33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1097\nt(S\'Y:VBus34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1098\nt(S\'Y:VBus35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1099\nt(S\'Y:VBus36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1100\nt(S\'Y:VBus37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1101\nt(S\'Y:VBus38\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1102\nt(S\'Y:VBus39\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1103\nt(S\'Y:VBus40\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1104\nt(S\'Y:VBus41\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1105\nt(S\'Y:VBus42\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1106\nt(S\'Y:VBus43\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1107\nt(S\'Y:VBus44\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1108\nt(S\'Y:VBus45\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1109\nt(S\'Y:VBus46\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1110\nt(S\'Y:VBus47\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1111\nt(S\'Y:VBus48\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1112\nt(S\'Y:VBus51\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1113\nt(S\'Y:VBus52\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1114\nt(S\'Y:VBus53\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1115\nt(S\'Y:VBus54\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1116\nt(S\'Y:VBus55\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1117\nt(S\'Y:VBus56\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1118\nt(S\'Y:VBus57\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1119\nt(S\'Y:VBus58\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1120\nt(S\'Y:VBus59\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1121\nt(S\'Y:VBus60\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1122\nt(S\'Y:VBus61\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1123\nt(S\'Y:VBus62\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1124\nt(S\'Y:VBus63\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1125\nt(S\'Y:VBus64\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1126\nt(S\'Y:VBus65\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1127\nt(S\'Y:VBus66\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1128\nt(S\'Y:VBus67\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1129\nt(S\'Y:VBus68\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1130\nt(S\'Y:VBus69\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1131\nt(S\'Y:VBus72\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1132\nt(S\'Y:VBus73\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1133\nt(S\'Y:VBus74\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1134\nt(S\'Y:VBus75\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1135\nt(S\'Y:VBus76\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1136\nt(S\'Y:VBus77\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1137\nt(S\'Y:VBus78\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1138\nt(S\'Y:VBus79\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1139\nt(S\'Y:VBus80\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1140\nt(S\'Y:VBus81\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1141\nt(S\'Y:VBus82\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1142\nt(S\'Y:VBus83\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1143\nt(S\'Y:VBus84\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1144\nt(S\'Y:VBus85\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1145\nt(S\'Y:VBus86\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1146\nt(S\'Y:VBus87\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1147\nt(S\'Y:VBus88\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1148\nt(S\'Y:VBus89\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1149\nt(S\'Y:VBus90\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1150\nt(S\'Y:VBus92\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1151\nt(S\'Y:VBus93\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1152\nt(S\'Y:VBus94\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1153\nt(S\'Y:VBus95\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1154\nt(S\'Y:VBus96\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1155\nt(S\'Y:VBus97\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1156\nt(S\'Y:VBus100\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1157\nt(S\'Y:VBus101\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1158\nt(S\'Y:VBus102\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1159\nt(S\'Y:VBus103\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1160\nt(S\'Y:VBus104\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1161\nt(S\'Y:VBus105\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1162\nt(S\'Y:VBus106\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1163\nt(S\'Y:VBus107\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1164\nt(S\'Y:VBus108\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1165\nt(S\'Y:VBus109\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1166\nt(S\'Y:VBus110\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1167\nt(S\'Y:VBus111\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1168\nt(S\'Y:VBus112\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1169\nt(S\'Y:VBus113\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1170\nt(S\'Y:VBus114\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1171\nt(S\'Y:VBus115\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1172\nt(S\'Y:VBus116\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1173\nt(S\'Y:VBus117\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1174\nt(S\'Y:VBus118\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1175\nt(S\'Y:VBus119\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1176\nt(S\'Y:VBus120\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1177\nt(S\'Y:VBus121\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1178\nt(S\'Y:VBus122\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1179\nt(S\'Y:VBus123\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1180\nt(S\'Y:VBus124\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1181\nt(S\'Y:VBus125\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1182\nt(S\'Y:VBus126\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1183\nt(S\'Y:VBus127\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1184\nt(S\'Y:VBus128\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1185\nt(S\'Y:VBus129\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1186\nt(S\'Y:VBus130\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1187\nt(S\'Y:VBus131\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1188\nt(S\'Y:VBus132\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1189\nt(S\'Y:VBus133\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1190\nt(S\'Y:VBus134\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1191\nt(S\'Y:VBus135\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1192\nt(S\'Y:VBus136\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1193\nt(S\'Y:VBus137\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1194\nt(S\'Y:VBus138\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1195\nt(S\'Y:VBus139\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1196\nt(S\'Y0:%RateA 11-28\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1197\nt(S\'Y1:%RateA 11-47\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1198\nt(S\'Y2:%RateA 12-24\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1199\nt(S\'Y3:%RateA 12-24\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1200\nt(S\'Y4:%RateA 13-25\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1201\nt(S\'Y5:%RateA 13-29\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1202\nt(S\'Y6:%RateA 14-15\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1203\nt(S\'Y7:%RateA 14-35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1204\nt(S\'Y8:%RateA 15-35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1205\nt(S\'Y9:%RateA 16-32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1206\nt(S\'Y10:%RateA 16-47\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1207\nt(S\'Y11:%RateA 17-27\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1208\nt(S\'Y12:%RateA 18-30\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1209\nt(S\'Y13:%RateA 18-30\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1210\nt(S\'Y14:%RateA 18-31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1211\nt(S\'Y15:%RateA 18-44\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1212\nt(S\'Y16:%RateA 19-21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1213\nt(S\'Y17:%RateA 19-22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1214\nt(S\'Y18:%RateA 19-27\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1215\nt(S\'Y19:%RateA 20-26\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1216\nt(S\'Y20:%RateA 20-44\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1217\nt(S\'Y21:%RateA 21-43\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1218\nt(S\'Y22:%RateA 22-23\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1219\nt(S\'Y23:%RateA 22-31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1220\nt(S\'Y24:%RateA 23-32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1221\nt(S\'Y25:%RateA 23-41\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1222\nt(S\'Y26:%RateA 24-25\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1223\nt(S\'Y27:%RateA 24-33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1224\nt(S\'Y28:%RateA 24-42\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1225\nt(S\'Y29:%RateA 25-29\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1226\nt(S\'Y30:%RateA 25-29\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1227\nt(S\'Y31:%RateA 26-41\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1228\nt(S\'Y32:%RateA 26-46\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1229\nt(S\'Y33:%RateA 27-33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1230\nt(S\'Y34:%RateA 28-38\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1231\nt(S\'Y35:%RateA 28-47\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1232\nt(S\'Y36:%RateA 29-30\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1233\nt(S\'Y37:%RateA 32-34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1234\nt(S\'Y38:%RateA 32-45\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1235\nt(S\'Y39:%RateA 32-45\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1236\nt(S\'Y40:%RateA 32-47\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1237\nt(S\'Y41:%RateA 32-48\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1238\nt(S\'Y42:%RateA 34-36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1239\nt(S\'Y43:%RateA 35-37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1240\nt(S\'Y44:%RateA 35-39\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1241\nt(S\'Y45:%RateA 36-37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1242\nt(S\'Y46:%RateA 36-48\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1243\nt(S\'Y47:%RateA 38-43\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1244\nt(S\'Y48:%RateA 39-46\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1245\nt(S\'Y49:%RateA 40-48\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1246\nt(S\'Y50:%RateA 51-52\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1247\nt(S\'Y51:%RateA 53-54\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1248\nt(S\'Y52:%RateA 55-56\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1249\nt(S\'Y53:%RateA 57-58\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1250\nt(S\'Y54:%RateA 59-60\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1251\nt(S\'Y55:%RateA 61-62\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1252\nt(S\'Y56:%RateA 72-73\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1253\nt(S\'Y57:%RateA 76-77\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1254\nt(S\'Y58:%RateA 78-79\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1255\nt(S\'Y59:%RateA 80-81\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1256\nt(S\'Y60:%RateA 82-83\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1257\nt(S\'Y61:%RateA 84-85\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1258\nt(S\'Y62:%RateA 86-87\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1259\nt(S\'Y63:%RateA 95-96\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1260\nt(S\'Y64:%RateA 102-103\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1261\nt(S\'Y65:%RateA 104-105\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1262\nt(S\'Y66:%RateA 106-107\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1263\nt(S\'Y67:%RateA 108-109\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1264\nt(S\'Y68:%RateA 112-113\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1265\nt(S\'Y:Load 37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1266\nt(S\'Y:Load 42\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1267\nt(S\'Y:Load 51\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1268\nt(S\'Y:Load 53\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1269\nt(S\'Y:Load 55\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1270\nt(S\'Y:Load 57\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1271\nt(S\'Y:Load 59\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1272\nt(S\'Y:Load 61\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1273\nt(S\'Y:Load 74\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1274\nt(S\'Y:Load 76\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1275\nt(S\'Y:Load 78\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1276\nt(S\'Y:Load 80\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1277\nt(S\'Y:Load 82\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1278\nt(S\'Y:Load 84\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1279\nt(S\'Y:Load 86\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1280\nt(S\'Y:Load 90\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1281\nt(S\'Y:Load 95\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1282\nt(S\'Y:Load 100\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1283\nt(S\'Y:Load 101\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1284\nt(S\'Y:Load 102\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1285\nt(S\'Y:Load 104\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1286\nt(S\'Y:Load 108\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1287\nt(S\'Y:Load 110\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1288\nttp1289\nsbas.', 'File': &quot;(dp1\nS'savedWidgetGeometry'\np2\nS'\\x01\\xd9\\xd0\\xcb\\x00\\x01\\x00\\x00\\x00\\x00\\x02&gt;\\x00\\x00\\x00\\x99\\x00\\x00\\x03\\xc9\\x00\\x00\\x02\\x92\\x00\\x00\\x02F\\x00\\x00\\x00\\xb5\\x00\\x00\\x03\\xc1\\x00\\x00\\x02\\x8a\\x00\\x00\\x00\\x00\\x00\\x00'\np3\nsS'widgetShown'\np4\nI0\nsS'showAdvanced'\np5\nI01\nsS'createNewOn'\np6\nI3\nsS'localContextsVersion'\np7\n(I100\nI0\ntp8\nsS'localContexts'\np9\n(lp10\n(iOWContexts\nContext\np11\n(dp12\nS'symbolDC'\np13\nS''\nsS'symbolDK'\np14\nS''\nsS'filename'\np15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/N20130531/simulationDClog16h10m23.txt\np16\nsS'time'\np17\nF1370849937.1389999\nsba(iOWContexts\nContext\np18\n(dp19\ng14\nS''\nsg13\nS''\nsg17\nF1370016639.7539999\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/N20130528/simulationDClog16h28m48.txt\np20\nsba(iOWContexts\nContext\np21\n(dp22\ng14\nS''\nsg13\nS''\nsg17\nF1369757469.2479999\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/N20130528/simulationDClog16h01m05.txt\np23\nsba(iOWContexts\nContext\np24\n(dp25\ng14\nS''\nsg13\nS''\nsg17\nF1369755944.0339999\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/N20130528/simulationDClog15h32m40.txt\np26\nsba(iOWContexts\nContext\np27\n(dp28\ng14\nS''\nsg13\nS''\nsg17\nF1369753559.5610001\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/N20130528/simulationDClog14h33m08.txt\np29\nsba(iOWContexts\nContext\np30\n(dp31\ng14\nS''\nsg13\nS''\nsg17\nF1369744613.8139999\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/N20130531/simulationDClog15h27m22.txt\np32\nsba(iOWContexts\nContext\np33\n(dp34\ng14\nS''\nsg13\nS''\nsg17\nF1369743924.76\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/N20130528/simulationDClog11h19m02.txt\np35\nsba(iOWContexts\nContext\np36\n(dp37\ng14\nS''\nsg13\nS''\nsg17\nF1369739801.845\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/N20130528/simulationDClog09h55m19.txt\np38\nsba(iOWContexts\nContext\np39\n(dp40\ng14\nS''\nsg13\nS''\nsg17\nF1370272136.7409999\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/N20130603/simulationDClog14h57m41.txt\np41\nsba(iOWContexts\nContext\np42\n(dp43\ng14\nS''\nsg13\nS''\nsg17\nF1370270365.368\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/N20130603/simulationDClog14h16m39.txt\np44\nsba(iOWContexts\nContext\np45\n(dp46\ng14\nS''\nsg13\nS''\nsg17\nF1370267534.026\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/N20130603/simulationDClog13h37m05.txt\np47\nsba(iOWContexts\nContext\np48\n(dp49\ng13\nS''\nsg14\nS''\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/Unidimensional/Interco5/simulationDClog09h53m59.txt\np50\nsg17\nF1370266983.5220001\nsba(iOWContexts\nContext\np51\n(dp52\ng13\nS''\nsg14\nS''\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/N20130531/simulationDClog09h32m34.txt\np53\nsg17\nF1369993201.7590001\nsba(iOWContexts\nContext\np54\n(dp55\ng13\nS''\nsg14\nS''\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/Unidimensional/Load/simulationDClog15h40m30.txt\np56\nsg17\nF1369988648.6670001\nsba(iOWContexts\nContext\np57\n(dp58\ng13\nS''\nsg14\nS''\nsg15\nS''\nsg17\nF1369988599.434\nsba(iOWContexts\nContext\np59\n(dp60\ng13\nS''\nsg14\nS''\nsg15\nS''\nsg17\nF1369988595.9649999\nsba(iOWContexts\nContext\np61\n(dp62\ng13\nS''\nsg14\nS''\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/Unidimensional/MultiAll/simulationDClog15h33m00.txt\np63\nsg17\nF1369930697.7049999\nsba(iOWContexts\nContext\np64\n(dp65\ng13\nS''\nsg14\nS''\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/Unidimensional/Wind+Solar/simulationDClog15h36m01.txt\np66\nsg17\nF1369930113.0639999\nsba(iOWContexts\nContext\np67\n(dp68\ng13\nS''\nsg14\nS''\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/N20130530/2simulationDClog13h15m54.txt\np69\nsg17\nF1369929852.3039999\nsba(iOWContexts\nContext\np70\n(dp71\ng14\nS''\nsg13\nS''\nsg17\nF1368453800.7809999\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/Pres Rainer/Cas final w OPF/Corr\xe9lation/Classeur1.csv\np72\nsba(iOWContexts\nContext\np73\n(dp74\ng14\nS''\nsg13\nS''\nsg17\nF1368453753.6889999\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/Pres Rainer/Cas final w OPF/Corr\xe9lation/Classeur1.txt\np75\nsba(iOWContexts\nContext\np76\n(dp77\ng14\nS''\nsg13\nS''\nsg17\nF1368437214.5769999\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/Pres Rainer/Cas final w OPF/CSsimulationDClog07h40m21.csv\np78\nsba(iOWContexts\nContext\np79\n(dp80\ng14\nS''\nsg13\nS''\nsg17\nF1368435563.931\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/Pres Rainer/Cas final w OPF/Y0simulationDClog07h40m21.csv\np81\nsba(iOWContexts\nContext\np82\n(dp83\ng14\nS''\nsg13\nS''\nsg17\nF1368435467.47\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/Pres Rainer/Cas final w OPF/Y2simulationDClog07h40m21.csv\np84\nsba(iOWContexts\nContext\np85\n(dp86\ng13\nS''\nsg14\nS''\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/N20130507/simulationDClog14h01m33.txt\np87\nsg17\nF1368435418.723\nsba(iOWContexts\nContext\np88\n(dp89\ng14\nS''\nsg13\nS''\nsg17\nF1367937351.668\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/Pres Rainer/Cas 2/simulationDClog14h36m39.csv\np90\nsbasS'recentFiles'\np91\n(lp92\ng16\nag20\nag23\nag26\nag29\nag32\nag35\nag38\nag41\nag44\nag47\nag50\nag53\nag56\nag63\nag66\nag69\nas.&quot;, 'Scatterplot (2)': &quot;(dp1\nS'autoSendSelection'\np2\nI1\nsS'graph.showAxisScale'\np3\nI1\nsS'graph.useAntialiasing'\np4\nI1\nsS'selectedSchemaIndex'\np5\nI0\nsS'graph.pointWidth'\np6\nI8\nsS'graph.showFilledSymbols'\np7\nI01\nsS'showGridlines'\np8\nI00\nsS'graph.alphaValue'\np9\nI255\nsS'savedWidgetGeometry'\np10\nS'\\x01\\xd9\\xd0\\xcb\\x00\\x01\\x00\\x00\\xff\\xff\\xff\\xf8\\xff\\xff\\xff\\xf8\\x00\\x00\\x05\\x07\\x00\\x00\\x03\\t\\xff\\xff\\xff\\xc5\\x00\\x00\\x00&lt;\\x00\\x00\\x04\\xc4\\x00\\x00\\x03)\\x00\\x00\\x00\\x00\\x02\\x00'\np11\nsS'graph.jitterContinuous'\np12\nI00\nsS'graph.jitterSize'\np13\nF0.10000000000000001\nsS'graph.showProbabilities'\np14\nI00\nsS'graph.showXaxisTitle'\np15\nI1\nsS'widgetShown'\np16\nI0\nsS'graph.showLegend'\np17\nI1\nsS'localContextsVersion'\np18\n(I100\nI0\ntp19\nsS'localContexts'\np20\n(lp21\n(iOWContexts\nContext\np22\n(dp23\nS'selectionPolygons'\np24\n(lp25\nsS'metas'\np26\n(dp27\nsS'values'\np28\n(dp29\nS'attrLabel'\np30\n(S''\nI-1\ntp31\nsS'attrShape'\np32\n(S''\nI0\ntp33\nsS'attrX'\np34\n(S'X:Load(pu)'\ncOrange.orange\n__pickleLoaderNamedConstants\np35\n(S'Variable_Type'\n(I2\nttRp36\ntp37\nsS'attrY'\np38\n(S'Y:Load 51 - CASPRE31'\ng35\n(S'Variable_Type'\n(I2\nttRp39\ntp40\nsS'attrSize'\np41\n(S''\nI0\ntp42\nsS'attrColor'\np43\n(S'X:ProdPV%Pnom'\ng35\n(S'Variable_Type'\n(I2\nttRp44\ntp45\nssS'time'\np46\nF1370016679.7839999\nsS'attributes'\np47\n(dp48\nS'Y:PMachine134 - CLUCCI35'\np49\ng35\n(S'Variable_Type'\n(I2\nttRp50\nsS'Y:VBus77 - CCORTE32'\np51\ng35\n(S'Variable_Type'\n(I2\nttRp52\nsS'Y:VBus134 - CLUCCI35'\np53\ng35\n(S'Variable_Type'\n(I2\nttRp54\nsS'Y:VBus109 - CSAGON32'\np55\ng35\n(S'Variable_Type'\n(I2\nttRp56\nsS'Y:VBus102 - CPORTO31'\np57\ng35\n(S'Variable_Type'\n(I2\nttRp58\nsS'XProdEolienne%Pnom'\np59\ng35\n(S'Variable_Type'\n(I2\nttRp60\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np61\ng35\n(S'Variable_Type'\n(I2\nttRp62\nsS'Y:PMachine94 - COCANA33'\np63\ng35\n(S'Variable_Type'\n(I2\nttRp64\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np65\ng35\n(S'Variable_Type'\n(I2\nttRp66\nsS'Y:PMachine87 - CLUCCI32'\np67\ng35\n(S'Variable_Type'\n(I2\nttRp68\nsS'Y:PMachine113 - CSAMPO32'\np69\ng35\n(S'Variable_Type'\n(I2\nttRp70\nsS'Y:Load 84 - CLORET31'\np71\ng35\n(S'Variable_Type'\n(I2\nttRp72\nsS'Y:PMachine89 - CLUCCI34'\np73\ng35\n(S'Variable_Type'\n(I2\nttRp74\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np75\ng35\n(S'Variable_Type'\n(I2\nttRp76\nsS'Y:Load 80 - CGHISO31'\np77\ng35\n(S'Variable_Type'\n(I2\nttRp78\nsS'Y:PMachine74 - CCERVI31'\np79\ng35\n(S'Variable_Type'\n(I2\nttRp80\nsS'Y:PMachine125 - CVAZZI36'\np81\ng35\n(S'Variable_Type'\n(I2\nttRp82\nsS'Y:Load 59 - CCALDA31'\np83\ng35\n(S'Variable_Type'\n(I2\nttRp84\nsS'Y:PMachine88 - CLUCCI33'\np85\ng35\n(S'Variable_Type'\n(I2\nttRp86\nsS'Y:PMachine120 - CVAZZI31'\np87\ng35\n(S'Variable_Type'\n(I2\nttRp88\nsS'Y:PMachine111 - CSTMAR31'\np89\ng35\n(S'Variable_Type'\n(I2\nttRp90\nsS'Y:NbeTransit'\np91\ng35\n(S'Variable_Type'\n(I2\nttRp92\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np93\ng35\n(S'Variable_Type'\n(I2\nttRp94\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np95\ng35\n(S'Variable_Type'\n(I2\nttRp96\nsS'Y:PMachine130 - CVAZZI311'\np97\ng35\n(S'Variable_Type'\n(I2\nttRp98\nsS'Y:PMachine127 - CVAZZI38'\np99\ng35\n(S'Variable_Type'\n(I2\nttRp100\nsS'Y:VBus131 - CVAZZI312'\np101\ng35\n(S'Variable_Type'\n(I2\nttRp102\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np103\ng35\n(S'Variable_Type'\n(I2\nttRp104\nsS'Y:PMachine123 - CVAZZI34'\np105\ng35\n(S'Variable_Type'\n(I2\nttRp106\nsS'Y:VBus118 - CTOLLA33'\np107\ng35\n(S'Variable_Type'\n(I2\nttRp108\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np109\ng35\n(S'Variable_Type'\n(I2\nttRp110\nsS'Y:PMachine58 - CBONIF32'\np111\ng35\n(S'Variable_Type'\n(I2\nttRp112\nsS'Y:Load 104 - CPROPR31'\np113\ng35\n(S'Variable_Type'\n(I2\nttRp114\nsS'Y:PMachine30 - CLUCCI22'\np115\ng35\n(S'Variable_Type'\n(I2\nttRp116\nsS'Y:VBus100 - COLETT31'\np117\ng35\n(S'Variable_Type'\n(I2\nttRp118\nsS'Y:PProdTot'\np119\ng35\n(S'Variable_Type'\n(I2\nttRp120\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np121\ng35\n(S'Variable_Type'\n(I2\nttRp122\nsS'Y:VBus57 - CBONIF31'\np123\ng35\n(S'Variable_Type'\n(I2\nttRp124\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np125\ng35\n(S'Variable_Type'\n(I2\nttRp126\nsS'Y:PConsoTot'\np127\ng35\n(S'Variable_Type'\n(I2\nttRp128\nsS'Iteration'\np129\ng35\n(S'Variable_Type'\n(I2\nttRp130\nsS'Y:PMachine109 - CSAGON32'\np131\ng35\n(S'Variable_Type'\n(I2\nttRp132\nsS'Y:PMachine135 - CLUCCI36'\np133\ng35\n(S'Variable_Type'\n(I2\nttRp134\nsS'Y:VBus30 - CLUCCI22'\np135\ng35\n(S'Variable_Type'\n(I2\nttRp136\nsS'Y:VBus122 - CVAZZI33'\np137\ng35\n(S'Variable_Type'\n(I2\nttRp138\nsS'Y:VBus22 - CCORTE21'\np139\ng35\n(S'Variable_Type'\n(I2\nttRp140\nsS'Y:VBus117 - CTOLLA32'\np141\ng35\n(S'Variable_Type'\n(I2\nttRp142\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np143\ng35\n(S'Variable_Type'\n(I2\nttRp144\nsS'Y:PMachine107 - CRIZZA32'\np145\ng35\n(S'Variable_Type'\n(I2\nttRp146\nsS'Y:VBus16 - CCALDA21'\np147\ng35\n(S'Variable_Type'\n(I2\nttRp148\nsS'Y:Load 102 - CPORTO31'\np149\ng35\n(S'Variable_Type'\n(I2\nttRp150\nsS'Y:VBus107 - CRIZZA32'\np151\ng35\n(S'Variable_Type'\n(I2\nttRp152\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np153\ng35\n(S'Variable_Type'\n(I2\nttRp154\nsS'Y:VBus41 - CSAMPO21'\np155\ng35\n(S'Variable_Type'\n(I2\nttRp156\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np157\ng35\n(S'Variable_Type'\n(I2\nttRp158\nsS'Y:VBus34 - CPIETR21'\np159\ng35\n(S'Variable_Type'\n(I2\nttRp160\nsS'Y:Load 108 - CSAGON31'\np161\ng35\n(S'Variable_Type'\n(I2\nttRp162\nsS'Y:VBus56 - CBIGUG32'\np163\ng35\n(S'Variable_Type'\n(I2\nttRp164\nsS'Y:PMachine42 - CSISCO21'\np165\ng35\n(S'Variable_Type'\n(I2\nttRp166\nsS'Y:PMachine138 - CLUCCI39'\np167\ng35\n(S'Variable_Type'\n(I2\nttRp168\nsS'Y:PMachine112 - CSAMPO31'\np169\ng35\n(S'Variable_Type'\n(I2\nttRp170\nsS'Y:VBus105 - CPROPR32'\np171\ng35\n(S'Variable_Type'\n(I2\nttRp172\nsS'Y:VBus1 - CBONIF11'\np173\ng35\n(S'Variable_Type'\n(I2\nttRp174\nsS'Y:VBus12 - CBASTI21'\np175\ng35\n(S'Variable_Type'\n(I2\nttRp176\nsS'Y:PMachine129 - CVAZZI310'\np177\ng35\n(S'Variable_Type'\n(I2\nttRp178\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np179\ng35\n(S'Variable_Type'\n(I2\nttRp180\nsS'Y:VBus35 - CPORTO21'\np181\ng35\n(S'Variable_Type'\n(I2\nttRp182\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np183\ng35\n(S'Variable_Type'\n(I2\nttRp184\nsS'Y:VBus54 - CBASTI32'\np185\ng35\n(S'Variable_Type'\n(I2\nttRp186\nsS'Y:VBus69 - CCASAM37'\np187\ng35\n(S'Variable_Type'\n(I2\nttRp188\nsS'Y:VBus45 - CTOLLA21'\np189\ng35\n(S'Variable_Type'\n(I2\nttRp190\nsS'Y:PMachine115 - CTAGLI31'\np191\ng35\n(S'Variable_Type'\n(I2\nttRp192\nsS'Y:VBus43 - CSOVEN21'\np193\ng35\n(S'Variable_Type'\n(I2\nttRp194\nsS'Y:VBus76 - CCORTE31'\np195\ng35\n(S'Variable_Type'\n(I2\nttRp196\nsS'Y:VBus75 - CCORSC31'\np197\ng35\n(S'Variable_Type'\n(I2\nttRp198\nsS'Y:PMachine78 - CFURIA31'\np199\ng35\n(S'Variable_Type'\n(I2\nttRp200\nsS'Y:VBus127 - CVAZZI38'\np201\ng35\n(S'Variable_Type'\n(I2\nttRp202\nsS'Y:VBus115 - CTAGLI31'\np203\ng35\n(S'Variable_Type'\n(I2\nttRp204\nsS'Y:Load 61 - CCALVI31'\np205\ng35\n(S'Variable_Type'\n(I2\nttRp206\nsS'Y:VBus55 - CBIGUG31'\np207\ng35\n(S'Variable_Type'\n(I2\nttRp208\nsS'Y:Load 42 - CSISCO21'\np209\ng35\n(S'Variable_Type'\n(I2\nttRp210\nsS'Y:VBus72 - CCASTI31'\np211\ng35\n(S'Variable_Type'\n(I2\nttRp212\nsS'Y:Load 37 - CRIZZA21'\np213\ng35\n(S'Variable_Type'\n(I2\nttRp214\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np215\ng35\n(S'Variable_Type'\n(I2\nttRp216\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np217\ng35\n(S'Variable_Type'\n(I2\nttRp218\nsS'Y:PMachine137 - CLUCCI38'\np219\ng35\n(S'Variable_Type'\n(I2\nttRp220\nsS'Y:PMachine67 - CCASAM35'\np221\ng35\n(S'Variable_Type'\n(I2\nttRp222\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np223\ng35\n(S'Variable_Type'\n(I2\nttRp224\nsS'Y:VBus31 - CMOROS21'\np225\ng35\n(S'Variable_Type'\n(I2\nttRp226\nsS'Y:VBus103 - CPORTO32'\np227\ng35\n(S'Variable_Type'\n(I2\nttRp228\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np229\ng35\n(S'Variable_Type'\n(I2\nttRp230\nsS'Y:PMachine128 - CVAZZI39'\np231\ng35\n(S'Variable_Type'\n(I2\nttRp232\nsS'Y:PMachine72 - CCASTI31'\np233\ng35\n(S'Variable_Type'\n(I2\nttRp234\nsS'Y:VBus27 - CILERO21'\np235\ng35\n(S'Variable_Type'\n(I2\nttRp236\nsS'Y:VBus11 - CASPRE21'\np237\ng35\n(S'Variable_Type'\n(I2\nttRp238\nsS'Y:PMachine75 - CCORSC31'\np239\ng35\n(S'Variable_Type'\n(I2\nttRp240\nsS'Y:Load 51 - CASPRE31'\np241\ng39\nsS'Y:PMachine61 - CCALVI31'\np242\ng35\n(S'Variable_Type'\n(I2\nttRp243\nsS'Y:VBus51 - CASPRE31'\np244\ng35\n(S'Variable_Type'\n(I2\nttRp245\nsS'Y:VBus114 - CSOVEN31'\np246\ng35\n(S'Variable_Type'\n(I2\nttRp247\nsS'Y:VBus116 - CTOLLA31'\np248\ng35\n(S'Variable_Type'\n(I2\nttRp249\nsS'Y:Load 86 - CLUCCI31'\np250\ng35\n(S'Variable_Type'\n(I2\nttRp251\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np252\ng35\n(S'Variable_Type'\n(I2\nttRp253\nsS'Y:PMachine116 - CTOLLA31'\np254\ng35\n(S'Variable_Type'\n(I2\nttRp255\nsS'Y:PMachine104 - CPROPR31'\np256\ng35\n(S'Variable_Type'\n(I2\nttRp257\nsS'Y:VBus128 - CVAZZI39'\np258\ng35\n(S'Variable_Type'\n(I2\nttRp259\nsS'Y:PMachine136 - CLUCCI37'\np260\ng35\n(S'Variable_Type'\n(I2\nttRp261\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np262\ng35\n(S'Variable_Type'\n(I2\nttRp263\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np264\ng35\n(S'Variable_Type'\n(I2\nttRp265\nsS'Y:PMachine68 - CCASAM36'\np266\ng35\n(S'Variable_Type'\n(I2\nttRp267\nsS'Y:PMachine29 - CLUCCI21'\np268\ng35\n(S'Variable_Type'\n(I2\nttRp269\nsS'Y:VBus42 - CSISCO21'\np270\ng35\n(S'Variable_Type'\n(I2\nttRp271\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np272\ng35\n(S'Variable_Type'\n(I2\nttRp273\nsS'Y:VBus14 - CBONIF21'\np274\ng35\n(S'Variable_Type'\n(I2\nttRp275\nsS'Y:VBus73 - CCASTI32'\np276\ng35\n(S'Variable_Type'\n(I2\nttRp277\nsS'Y:VBus64 - CCASAM32'\np278\ng35\n(S'Variable_Type'\n(I2\nttRp279\nsS'Y:PMachine14 - CBONIF21'\np280\ng35\n(S'Variable_Type'\n(I2\nttRp281\nsS'Y:PMachine62 - CCALVI32'\np282\ng35\n(S'Variable_Type'\n(I2\nttRp283\nsS'Y:VBus133 - CVAZZI314'\np284\ng35\n(S'Variable_Type'\n(I2\nttRp285\nsS'Y:VBus63 - CCASAM31'\np286\ng35\n(S'Variable_Type'\n(I2\nttRp287\nsS'Y:PMachine101 - CPIETR31'\np288\ng35\n(S'Variable_Type'\n(I2\nttRp289\nsS'Y:%Losses'\np290\ng35\n(S'Variable_Type'\n(I2\nttRp291\nsS'Y:VBus85 - CLORET32'\np292\ng35\n(S'Variable_Type'\n(I2\nttRp293\nsS'Y:Load 115 - CTAGLI31'\np294\ng35\n(S'Variable_Type'\n(I2\nttRp295\nsS'ENR'\np296\ng35\n(S'Variable_Type'\n(I2\nttRp297\nsS'Y:VBus101 - CPIETR31'\np298\ng35\n(S'Variable_Type'\n(I2\nttRp299\nsS'Y:PMachine106 - CRIZZA31'\np300\ng35\n(S'Variable_Type'\n(I2\nttRp301\nsS'Y:VBus132 - CVAZZI313'\np302\ng35\n(S'Variable_Type'\n(I2\nttRp303\nsS'Y:PMachine118 - CTOLLA33'\np304\ng35\n(S'Variable_Type'\n(I2\nttRp305\nsS'Y:VBus19 - CCASTI21'\np306\ng35\n(S'Variable_Type'\n(I2\nttRp307\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np308\ng35\n(S'Variable_Type'\n(I2\nttRp309\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np310\ng35\n(S'Variable_Type'\n(I2\nttRp311\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np312\ng35\n(S'Variable_Type'\n(I2\nttRp313\nsS'Y:PMachine53 - CBASTI31'\np314\ng35\n(S'Variable_Type'\n(I2\nttRp315\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np316\ng35\n(S'Variable_Type'\n(I2\nttRp317\nsS'Y:VBus15 - CBONIF22'\np318\ng35\n(S'Variable_Type'\n(I2\nttRp319\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np320\ng35\n(S'Variable_Type'\n(I2\nttRp321\nsS'Y:VBus129 - CVAZZI310'\np322\ng35\n(S'Variable_Type'\n(I2\nttRp323\nsS'Y:VBus123 - CVAZZI34'\np324\ng35\n(S'Variable_Type'\n(I2\nttRp325\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np326\ng35\n(S'Variable_Type'\n(I2\nttRp327\nsS'Y:VBus60 - CCALDA32'\np328\ng35\n(S'Variable_Type'\n(I2\nttRp329\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np330\ng35\n(S'Variable_Type'\n(I2\nttRp331\nsS'Y:VBus65 - CCASAM33'\np332\ng35\n(S'Variable_Type'\n(I2\nttRp333\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np334\ng35\n(S'Variable_Type'\n(I2\nttRp335\nsS'Y:PMachine139 - CLUCCI310'\np336\ng35\n(S'Variable_Type'\n(I2\nttRp337\nsS'Y:VBus112 - CSAMPO31'\np338\ng35\n(S'Variable_Type'\n(I2\nttRp339\nsS'Y:VBus68 - CCASAM36'\np340\ng35\n(S'Variable_Type'\n(I2\nttRp341\nsS'Y:Load 55 - CBIGUG31'\np342\ng35\n(S'Variable_Type'\n(I2\nttRp343\nsS'Y:Max%A'\np344\ng35\n(S'Variable_Type'\n(I2\nttRp345\nsS'Y:NbeTransit_0.9-1'\np346\ng35\n(S'Variable_Type'\n(I2\nttRp347\nsS'Y:VBus24 - CFURIA21'\np348\ng35\n(S'Variable_Type'\n(I2\nttRp349\nsS'Y:VBus23 - CCORTE22'\np350\ng35\n(S'Variable_Type'\n(I2\nttRp351\nsS'Y:VBus18 - CCASAM21'\np352\ng35\n(S'Variable_Type'\n(I2\nttRp353\nsS'Y:VBus40 - CSTMAR21'\np354\ng35\n(S'Variable_Type'\n(I2\nttRp355\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np356\ng35\n(S'Variable_Type'\n(I2\nttRp357\nsS'Y:PMachine124 - CVAZZI35'\np358\ng35\n(S'Variable_Type'\n(I2\nttRp359\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np360\ng35\n(S'Variable_Type'\n(I2\nttRp361\nsS'Y:PMachine117 - CTOLLA32'\np362\ng35\n(S'Variable_Type'\n(I2\nttRp363\nsS'Y:Load 82 - CILERO31'\np364\ng35\n(S'Variable_Type'\n(I2\nttRp365\nsS'Y:VBus33 - COLETT21'\np366\ng35\n(S'Variable_Type'\n(I2\nttRp367\nsS'Y:VBus32 - COCANA21'\np368\ng35\n(S'Variable_Type'\n(I2\nttRp369\nsS'Y:PMachine121 - CVAZZI32'\np370\ng35\n(S'Variable_Type'\n(I2\nttRp371\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np372\ng35\n(S'Variable_Type'\n(I2\nttRp373\nsS'Y:VBus59 - CCALDA31'\np374\ng35\n(S'Variable_Type'\n(I2\nttRp375\nsS'Y:VBus82 - CILERO31'\np376\ng35\n(S'Variable_Type'\n(I2\nttRp377\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np378\ng35\n(S'Variable_Type'\n(I2\nttRp379\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np380\ng35\n(S'Variable_Type'\n(I2\nttRp381\nsS'Y:VBus37 - CRIZZA21'\np382\ng35\n(S'Variable_Type'\n(I2\nttRp383\nsS'Y:PMachine73 - CCASTI32'\np384\ng35\n(S'Variable_Type'\n(I2\nttRp385\nsS'Y:PMachine86 - CLUCCI31'\np386\ng35\n(S'Variable_Type'\n(I2\nttRp387\nsS'Y:Load 53 - CBASTI31'\np388\ng35\n(S'Variable_Type'\n(I2\nttRp389\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np390\ng35\n(S'Variable_Type'\n(I2\nttRp391\nsS'Y:VBus21 - CCORSC21'\np392\ng35\n(S'Variable_Type'\n(I2\nttRp393\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np394\ng35\n(S'Variable_Type'\n(I2\nttRp395\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np396\ng35\n(S'Variable_Type'\n(I2\nttRp397\nsS'Y:PMachine126 - CVAZZI37'\np398\ng35\n(S'Variable_Type'\n(I2\nttRp399\nsS'Y:PMachine64 - CCASAM32'\np400\ng35\n(S'Variable_Type'\n(I2\nttRp401\nsS'Y:VBus67 - CCASAM35'\np402\ng35\n(S'Variable_Type'\n(I2\nttRp403\nsS'Y:VBus53 - CBASTI31'\np404\ng35\n(S'Variable_Type'\n(I2\nttRp405\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np406\ng35\n(S'Variable_Type'\n(I2\nttRp407\nsS'Y:VBus61 - CCALVI31'\np408\ng35\n(S'Variable_Type'\n(I2\nttRp409\nsS'Y:VBus93 - COCANA32'\np410\ng35\n(S'Variable_Type'\n(I2\nttRp411\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np412\ng35\n(S'Variable_Type'\n(I2\nttRp413\nsS'Y:VBus104 - CPROPR31'\np414\ng35\n(S'Variable_Type'\n(I2\nttRp415\nsS'Y:VBus48 - CZSSS621'\np416\ng35\n(S'Variable_Type'\n(I2\nttRp417\nsS'Y:PMachine85 - CLORET32'\np418\ng35\n(S'Variable_Type'\n(I2\nttRp419\nsS'Y:VBus74 - CCERVI31'\np420\ng35\n(S'Variable_Type'\n(I2\nttRp421\nsS'X:ProdPV%Pnom'\np422\ng44\nsS'Y:VBus89 - CLUCCI34'\np423\ng35\n(S'Variable_Type'\n(I2\nttRp424\nsS'Y:Load 100 - COLETT31'\np425\ng35\n(S'Variable_Type'\n(I2\nttRp426\nsS'Y:PMachine54 - CBASTI32'\np427\ng35\n(S'Variable_Type'\n(I2\nttRp428\nsS'Y:VBus138 - CLUCCI39'\np429\ng35\n(S'Variable_Type'\n(I2\nttRp430\nsS'Y:VBus39 - CSTLUC21'\np431\ng35\n(S'Variable_Type'\n(I2\nttRp432\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np433\ng35\n(S'Variable_Type'\n(I2\nttRp434\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np435\ng35\n(S'Variable_Type'\n(I2\nttRp436\nsS'Y:Load 78 - CFURIA31'\np437\ng35\n(S'Variable_Type'\n(I2\nttRp438\nsS'Y:VBus28 - CLORET21'\np439\ng35\n(S'Variable_Type'\n(I2\nttRp440\nsS'Y:PMachine105 - CPROPR32'\np441\ng35\n(S'Variable_Type'\n(I2\nttRp442\nsS'Y:VBus96 - COCANA35'\np443\ng35\n(S'Variable_Type'\n(I2\nttRp444\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np445\ng35\n(S'Variable_Type'\n(I2\nttRp446\nsS'Y:PMachine18 - CCASAM21'\np447\ng35\n(S'Variable_Type'\n(I2\nttRp448\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np449\ng35\n(S'Variable_Type'\n(I2\nttRp450\nsS'Y:VBus13 - CBIGUG21'\np451\ng35\n(S'Variable_Type'\n(I2\nttRp452\nsS'Y:VBus92 - COCANA31'\np453\ng35\n(S'Variable_Type'\n(I2\nttRp454\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np455\ng35\n(S'Variable_Type'\n(I2\nttRp456\nsS'Y:Load 57 - CBONIF31'\np457\ng35\n(S'Variable_Type'\n(I2\nttRp458\nsS'Y:VBus58 - CBONIF32'\np459\ng35\n(S'Variable_Type'\n(I2\nttRp460\nsS'Y:VBus84 - CLORET31'\np461\ng35\n(S'Variable_Type'\n(I2\nttRp462\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np463\ng35\n(S'Variable_Type'\n(I2\nttRp464\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np465\ng35\n(S'Variable_Type'\n(I2\nttRp466\nsS'Y:VBus97 - COCANA36'\np467\ng35\n(S'Variable_Type'\n(I2\nttRp468\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np469\ng35\n(S'Variable_Type'\n(I2\nttRp470\nsS'Y:VBus79 - CFURIA32'\np471\ng35\n(S'Variable_Type'\n(I2\nttRp472\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np473\ng35\n(S'Variable_Type'\n(I2\nttRp474\nsS'Y:Load 110 - CSTLUC31'\np475\ng35\n(S'Variable_Type'\n(I2\nttRp476\nsS'Y:VBus80 - CGHISO31'\np477\ng35\n(S'Variable_Type'\n(I2\nttRp478\nsS'Y:PMachine114 - CSOVEN31'\np479\ng35\n(S'Variable_Type'\n(I2\nttRp480\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np481\ng35\n(S'Variable_Type'\n(I2\nttRp482\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np483\ng35\n(S'Variable_Type'\n(I2\nttRp484\nsS'Y:PMachine93 - COCANA32'\np485\ng35\n(S'Variable_Type'\n(I2\nttRp486\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np487\ng35\n(S'Variable_Type'\n(I2\nttRp488\nsS'Y:VBus87 - CLUCCI32'\np489\ng35\n(S'Variable_Type'\n(I2\nttRp490\nsS'Y:VBus62 - CCALVI32'\np491\ng35\n(S'Variable_Type'\n(I2\nttRp492\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np493\ng35\n(S'Variable_Type'\n(I2\nttRp494\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np495\ng35\n(S'Variable_Type'\n(I2\nttRp496\nsS'Y:VBus81 - CGHISO32'\np497\ng35\n(S'Variable_Type'\n(I2\nttRp498\nsS'Y:PMachine63 - CCASAM31'\np499\ng35\n(S'Variable_Type'\n(I2\nttRp500\nsS'Y:PMachine47 - CVAZZI21'\np501\ng35\n(S'Variable_Type'\n(I2\nttRp502\nsS'Y:VBus86 - CLUCCI31'\np503\ng35\n(S'Variable_Type'\n(I2\nttRp504\nsS'X:Load(pu)'\np505\ng36\nsS'Y:VBus95 - COCANA34'\np506\ng35\n(S'Variable_Type'\n(I2\nttRp507\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np508\ng35\n(S'Variable_Type'\n(I2\nttRp509\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np510\ng35\n(S'Variable_Type'\n(I2\nttRp511\nsS'Y:Load 95 - COCANA34'\np512\ng35\n(S'Variable_Type'\n(I2\nttRp513\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np514\ng35\n(S'Variable_Type'\n(I2\nttRp515\nsS'Y:PMachine90 - CMOROS31'\np516\ng35\n(S'Variable_Type'\n(I2\nttRp517\nsS'Y:Load 101 - CPIETR31'\np518\ng35\n(S'Variable_Type'\n(I2\nttRp519\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np520\ng35\n(S'Variable_Type'\n(I2\nttRp521\nsS'Y:PMachine132 - CVAZZI313'\np522\ng35\n(S'Variable_Type'\n(I2\nttRp523\nsS'Y:VBus125 - CVAZZI36'\np524\ng35\n(S'Variable_Type'\n(I2\nttRp525\nsS'Y:VBus135 - CLUCCI36'\np526\ng35\n(S'Variable_Type'\n(I2\nttRp527\nsS'Y:VBus47 - CVAZZI21'\np528\ng35\n(S'Variable_Type'\n(I2\nttRp529\nsS'Y:VBus94 - COCANA33'\np530\ng35\n(S'Variable_Type'\n(I2\nttRp531\nsS'Y:VBus17 - CCALVI21'\np532\ng35\n(S'Variable_Type'\n(I2\nttRp533\nsS'Y:VBus36 - CPROPR21'\np534\ng35\n(S'Variable_Type'\n(I2\nttRp535\nsS'Y:Load 90 - CMOROS31'\np536\ng35\n(S'Variable_Type'\n(I2\nttRp537\nsS'Y:VBus120 - CVAZZI31'\np538\ng35\n(S'Variable_Type'\n(I2\nttRp539\nsS'Y:VBus52 - CASPRE32'\np540\ng35\n(S'Variable_Type'\n(I2\nttRp541\nsS'Y:VBus25 - CFURIA22'\np542\ng35\n(S'Variable_Type'\n(I2\nttRp543\nsS'Y:Load 76 - CCORTE31'\np544\ng35\n(S'Variable_Type'\n(I2\nttRp545\nsS'Y:PMachine69 - CCASAM37'\np546\ng35\n(S'Variable_Type'\n(I2\nttRp547\nsS'Y:Load 74 - CCERVI31'\np548\ng35\n(S'Variable_Type'\n(I2\nttRp549\nsS'Y:PMachine92 - COCANA31'\np550\ng35\n(S'Variable_Type'\n(I2\nttRp551\nsS'Y:PMachine102 - CPORTO31'\np552\ng35\n(S'Variable_Type'\n(I2\nttRp553\nsS'Y:PMachine122 - CVAZZI33'\np554\ng35\n(S'Variable_Type'\n(I2\nttRp555\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np556\ng35\n(S'Variable_Type'\n(I2\nttRp557\nsS'Y:PMachine77 - CCORTE32'\np558\ng35\n(S'Variable_Type'\n(I2\nttRp559\nsS'Y:NbeTension'\np560\ng35\n(S'Variable_Type'\n(I2\nttRp561\nsS'Y:VBus126 - CVAZZI37'\np562\ng35\n(S'Variable_Type'\n(I2\nttRp563\nsS'Y:PMachine60 - CCALDA32'\np564\ng35\n(S'Variable_Type'\n(I2\nttRp565\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np566\ng35\n(S'Variable_Type'\n(I2\nttRp567\nsS'Y:VBus20 - CCERVI21'\np568\ng35\n(S'Variable_Type'\n(I2\nttRp569\nsS'Y:VBus119 - CTRAVO31'\np570\ng35\n(S'Variable_Type'\n(I2\nttRp571\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np572\ng35\n(S'Variable_Type'\n(I2\nttRp573\nsS'Y:VBus139 - CLUCCI310'\np574\ng35\n(S'Variable_Type'\n(I2\nttRp575\nsS'Y:VBus106 - CRIZZA31'\np576\ng35\n(S'Variable_Type'\n(I2\nttRp577\nsS'Y:PMachine66 - CCASAM34'\np578\ng35\n(S'Variable_Type'\n(I2\nttRp579\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np580\ng35\n(S'Variable_Type'\n(I2\nttRp581\nsS'Y:VBus136 - CLUCCI37'\np582\ng35\n(S'Variable_Type'\n(I2\nttRp583\nsS'Y:VBus90 - CMOROS31'\np584\ng35\n(S'Variable_Type'\n(I2\nttRp585\nsS'X:lineOff#'\np586\ng35\n(S'Variable_Type'\n(I2\nttRp587\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np588\ng35\n(S'Variable_Type'\n(I2\nttRp589\nsS'Y:VBus108 - CSAGON31'\np590\ng35\n(S'Variable_Type'\n(I2\nttRp591\nsS'Y:VBus137 - CLUCCI38'\np592\ng35\n(S'Variable_Type'\n(I2\nttRp593\nsS'Y:VBus130 - CVAZZI311'\np594\ng35\n(S'Variable_Type'\n(I2\nttRp595\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np596\ng35\n(S'Variable_Type'\n(I2\nttRp597\nsS'Y:VBus46 - CTRAVO21'\np598\ng35\n(S'Variable_Type'\n(I2\nttRp599\nsS'Y:VBus113 - CSAMPO32'\np600\ng35\n(S'Variable_Type'\n(I2\nttRp601\nsS'Y:PMachine133 - CVAZZI314'\np602\ng35\n(S'Variable_Type'\n(I2\nttRp603\nsS'Y:PMachine65 - CCASAM33'\np604\ng35\n(S'Variable_Type'\n(I2\nttRp605\nsS'Y:VBus78 - CFURIA31'\np606\ng35\n(S'Variable_Type'\n(I2\nttRp607\nsS'Y:VBus26 - CGHISO21'\np608\ng35\n(S'Variable_Type'\n(I2\nttRp609\nsS'Y:VBus121 - CVAZZI32'\np610\ng35\n(S'Variable_Type'\n(I2\nttRp611\nsS'Y:PMachine81 - CGHISO32'\np612\ng35\n(S'Variable_Type'\n(I2\nttRp613\nsS'Y:PMachine97 - COCANA36'\np614\ng35\n(S'Variable_Type'\n(I2\nttRp615\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np616\ng35\n(S'Variable_Type'\n(I2\nttRp617\nsS'Y:PMachine83 - CILERO32'\np618\ng35\n(S'Variable_Type'\n(I2\nttRp619\nsS'Y:VBus83 - CILERO32'\np620\ng35\n(S'Variable_Type'\n(I2\nttRp621\nsS'Y:VBus66 - CCASAM34'\np622\ng35\n(S'Variable_Type'\n(I2\nttRp623\nsS'Y:PMachine1 - CBONIF11'\np624\ng35\n(S'Variable_Type'\n(I2\nttRp625\nsS'Y:VBus111 - CSTMAR31'\np626\ng35\n(S'Variable_Type'\n(I2\nttRp627\nsS'Y:VBus124 - CVAZZI35'\np628\ng35\n(S'Variable_Type'\n(I2\nttRp629\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np630\ng35\n(S'Variable_Type'\n(I2\nttRp631\nsS'Y:PMachine131 - CVAZZI312'\np632\ng35\n(S'Variable_Type'\n(I2\nttRp633\nsS'Y:VBus44 - CTAGLI21'\np634\ng35\n(S'Variable_Type'\n(I2\nttRp635\nsS'Y:VBus88 - CLUCCI33'\np636\ng35\n(S'Variable_Type'\n(I2\nttRp637\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np638\ng35\n(S'Variable_Type'\n(I2\nttRp639\nsS'Y:VBus38 - CSAGON21'\np640\ng35\n(S'Variable_Type'\n(I2\nttRp641\nsS'Y:VBus29 - CLUCCI21'\np642\ng35\n(S'Variable_Type'\n(I2\nttRp643\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np644\ng35\n(S'Variable_Type'\n(I2\nttRp645\nsS'Y:VBus110 - CSTLUC31'\np646\ng35\n(S'Variable_Type'\n(I2\nttRp647\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np648\ng35\n(S'Variable_Type'\n(I2\nttRp649\nssS'noCopy'\np650\n(lp651\nS'orderedDomain'\np652\nasba(iOWContexts\nContext\np653\n(dp654\ng24\n(lp655\nsg26\n(dp656\nS'Iteration'\np657\ng35\n(S'Variable_Type'\n(I6\nttRp658\nssg28\n(dp659\nS'attrLabel'\np660\n(S''\nI-1\ntp661\nsS'attrShape'\np662\n(S''\nI0\ntp663\nsS'attrX'\np664\n(S'X:ProdPV%Pnom'\ng35\n(S'Variable_Type'\n(I2\nttRp665\ntp666\nsS'attrY'\np667\n(S'Y:%Losses'\ng35\n(S'Variable_Type'\n(I2\nttRp668\ntp669\nsS'attrSize'\np670\n(S''\nI0\ntp671\nsS'attrColor'\np672\n(S'X:Load(pu)'\ng35\n(S'Variable_Type'\n(I2\nttRp673\ntp674\nssg46\nF1369744625.9300001\nsg47\n(dp675\nS'Y:PMachine134 - CLUCCI35'\np676\ng35\n(S'Variable_Type'\n(I2\nttRp677\nsS'Y:VBus77 - CCORTE32'\np678\ng35\n(S'Variable_Type'\n(I2\nttRp679\nsS'Y:VBus134 - CLUCCI35'\np680\ng35\n(S'Variable_Type'\n(I2\nttRp681\nsS'Y:VBus109 - CSAGON32'\np682\ng35\n(S'Variable_Type'\n(I2\nttRp683\nsS'Y:VBus102 - CPORTO31'\np684\ng35\n(S'Variable_Type'\n(I2\nttRp685\nsS'Y:VBus18 - CCASAM21'\np686\ng35\n(S'Variable_Type'\n(I2\nttRp687\nsS'Y:VBus114 - CSOVEN31'\np688\ng35\n(S'Variable_Type'\n(I2\nttRp689\nsS'Y:VBus83 - CILERO32'\np690\ng35\n(S'Variable_Type'\n(I2\nttRp691\nsS'Y:VBus117 - CTOLLA32'\np692\ng35\n(S'Variable_Type'\n(I2\nttRp693\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np694\ng35\n(S'Variable_Type'\n(I2\nttRp695\nsS'Y:PMachine87 - CLUCCI32'\np696\ng35\n(S'Variable_Type'\n(I2\nttRp697\nsS'Y:PMachine113 - CSAMPO32'\np698\ng35\n(S'Variable_Type'\n(I2\nttRp699\nsS'Y:Load 84 - CLORET31'\np700\ng35\n(S'Variable_Type'\n(I2\nttRp701\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np702\ng35\n(S'Variable_Type'\n(I2\nttRp703\nsS'Y:Load 80 - CGHISO31'\np704\ng35\n(S'Variable_Type'\n(I2\nttRp705\nsS'Y:PMachine125 - CVAZZI36'\np706\ng35\n(S'Variable_Type'\n(I2\nttRp707\nsS'Y:VBus116 - CTOLLA31'\np708\ng35\n(S'Variable_Type'\n(I2\nttRp709\nsS'Y:PMachine88 - CLUCCI33'\np710\ng35\n(S'Variable_Type'\n(I2\nttRp711\nsS'Y:PMachine124 - CVAZZI35'\np712\ng35\n(S'Variable_Type'\n(I2\nttRp713\nsS'Y:PMachine111 - CSTMAR31'\np714\ng35\n(S'Variable_Type'\n(I2\nttRp715\nsS'Y:NbeTransit'\np716\ng35\n(S'Variable_Type'\n(I2\nttRp717\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np718\ng35\n(S'Variable_Type'\n(I2\nttRp719\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np720\ng35\n(S'Variable_Type'\n(I2\nttRp721\nsS'Y:PMachine130 - CVAZZI311'\np722\ng35\n(S'Variable_Type'\n(I2\nttRp723\nsS'Y:PMachine127 - CVAZZI38'\np724\ng35\n(S'Variable_Type'\n(I2\nttRp725\nsS'Y:VBus131 - CVAZZI312'\np726\ng35\n(S'Variable_Type'\n(I2\nttRp727\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np728\ng35\n(S'Variable_Type'\n(I2\nttRp729\nsS'Y:PMachine123 - CVAZZI34'\np730\ng35\n(S'Variable_Type'\n(I2\nttRp731\nsS'Y:VBus118 - CTOLLA33'\np732\ng35\n(S'Variable_Type'\n(I2\nttRp733\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np734\ng35\n(S'Variable_Type'\n(I2\nttRp735\nsS'Y:PMachine58 - CBONIF32'\np736\ng35\n(S'Variable_Type'\n(I2\nttRp737\nsS'Y:VBus90 - CMOROS31'\np738\ng35\n(S'Variable_Type'\n(I2\nttRp739\nsS'Y:Load 104 - CPROPR31'\np740\ng35\n(S'Variable_Type'\n(I2\nttRp741\nsS'Y:PMachine30 - CLUCCI22'\np742\ng35\n(S'Variable_Type'\n(I2\nttRp743\nsS'Y:VBus100 - COLETT31'\np744\ng35\n(S'Variable_Type'\n(I2\nttRp745\nsS'Y:PProdTot'\np746\ng35\n(S'Variable_Type'\n(I2\nttRp747\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np748\ng35\n(S'Variable_Type'\n(I2\nttRp749\nsS'Y:VBus57 - CBONIF31'\np750\ng35\n(S'Variable_Type'\n(I2\nttRp751\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np752\ng35\n(S'Variable_Type'\n(I2\nttRp753\nsS'Y:PMachine131 - CVAZZI312'\np754\ng35\n(S'Variable_Type'\n(I2\nttRp755\nsS'Y:PMachine109 - CSAGON32'\np756\ng35\n(S'Variable_Type'\n(I2\nttRp757\nsS'Y:PMachine135 - CLUCCI36'\np758\ng35\n(S'Variable_Type'\n(I2\nttRp759\nsS'Y:VBus30 - CLUCCI22'\np760\ng35\n(S'Variable_Type'\n(I2\nttRp761\nsS'Y:VBus122 - CVAZZI33'\np762\ng35\n(S'Variable_Type'\n(I2\nttRp763\nsS'Y:VBus22 - CCORTE21'\np764\ng35\n(S'Variable_Type'\n(I2\nttRp765\nsS'Y:PMachine89 - CLUCCI34'\np766\ng35\n(S'Variable_Type'\n(I2\nttRp767\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np768\ng35\n(S'Variable_Type'\n(I2\nttRp769\nsS'Y:PMachine107 - CRIZZA32'\np770\ng35\n(S'Variable_Type'\n(I2\nttRp771\nsS'Y:VBus16 - CCALDA21'\np772\ng35\n(S'Variable_Type'\n(I2\nttRp773\nsS'Y:Load 102 - CPORTO31'\np774\ng35\n(S'Variable_Type'\n(I2\nttRp775\nsS'Y:VBus107 - CRIZZA32'\np776\ng35\n(S'Variable_Type'\n(I2\nttRp777\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np778\ng35\n(S'Variable_Type'\n(I2\nttRp779\nsS'Y:VBus41 - CSAMPO21'\np780\ng35\n(S'Variable_Type'\n(I2\nttRp781\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np782\ng35\n(S'Variable_Type'\n(I2\nttRp783\nsS'Y:VBus34 - CPIETR21'\np784\ng35\n(S'Variable_Type'\n(I2\nttRp785\nsS'Y:Load 108 - CSAGON31'\np786\ng35\n(S'Variable_Type'\n(I2\nttRp787\nsS'Y:VBus56 - CBIGUG32'\np788\ng35\n(S'Variable_Type'\n(I2\nttRp789\nsS'Y:PMachine42 - CSISCO21'\np790\ng35\n(S'Variable_Type'\n(I2\nttRp791\nsS'Y:PMachine138 - CLUCCI39'\np792\ng35\n(S'Variable_Type'\n(I2\nttRp793\nsS'Y:PMachine112 - CSAMPO31'\np794\ng35\n(S'Variable_Type'\n(I2\nttRp795\nsS'Y:VBus105 - CPROPR32'\np796\ng35\n(S'Variable_Type'\n(I2\nttRp797\nsS'Y:VBus1 - CBONIF11'\np798\ng35\n(S'Variable_Type'\n(I2\nttRp799\nsS'Y:VBus12 - CBASTI21'\np800\ng35\n(S'Variable_Type'\n(I2\nttRp801\nsS'Y:PMachine129 - CVAZZI310'\np802\ng35\n(S'Variable_Type'\n(I2\nttRp803\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np804\ng35\n(S'Variable_Type'\n(I2\nttRp805\nsS'Y:VBus35 - CPORTO21'\np806\ng35\n(S'Variable_Type'\n(I2\nttRp807\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np808\ng35\n(S'Variable_Type'\n(I2\nttRp809\nsS'Y:VBus54 - CBASTI32'\np810\ng35\n(S'Variable_Type'\n(I2\nttRp811\nsS'Y:VBus69 - CCASAM37'\np812\ng35\n(S'Variable_Type'\n(I2\nttRp813\nsS'Y:VBus45 - CTOLLA21'\np814\ng35\n(S'Variable_Type'\n(I2\nttRp815\nsS'Y:PMachine115 - CTAGLI31'\np816\ng35\n(S'Variable_Type'\n(I2\nttRp817\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np818\ng35\n(S'Variable_Type'\n(I2\nttRp819\nsS'Y:VBus43 - CSOVEN21'\np820\ng35\n(S'Variable_Type'\n(I2\nttRp821\nsS'Y:VBus76 - CCORTE31'\np822\ng35\n(S'Variable_Type'\n(I2\nttRp823\nsS'Y:VBus75 - CCORSC31'\np824\ng35\n(S'Variable_Type'\n(I2\nttRp825\nsS'Y:PMachine78 - CFURIA31'\np826\ng35\n(S'Variable_Type'\n(I2\nttRp827\nsS'Y:VBus127 - CVAZZI38'\np828\ng35\n(S'Variable_Type'\n(I2\nttRp829\nsS'Y:VBus115 - CTAGLI31'\np830\ng35\n(S'Variable_Type'\n(I2\nttRp831\nsS'Y:Load 61 - CCALVI31'\np832\ng35\n(S'Variable_Type'\n(I2\nttRp833\nsS'Y:VBus55 - CBIGUG31'\np834\ng35\n(S'Variable_Type'\n(I2\nttRp835\nsS'Y:Load 42 - CSISCO21'\np836\ng35\n(S'Variable_Type'\n(I2\nttRp837\nsS'Y:VBus72 - CCASTI31'\np838\ng35\n(S'Variable_Type'\n(I2\nttRp839\nsS'Y:Load 37 - CRIZZA21'\np840\ng35\n(S'Variable_Type'\n(I2\nttRp841\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np842\ng35\n(S'Variable_Type'\n(I2\nttRp843\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np844\ng35\n(S'Variable_Type'\n(I2\nttRp845\nsS'Y:PMachine137 - CLUCCI38'\np846\ng35\n(S'Variable_Type'\n(I2\nttRp847\nsS'Y:PMachine67 - CCASAM35'\np848\ng35\n(S'Variable_Type'\n(I2\nttRp849\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np850\ng35\n(S'Variable_Type'\n(I2\nttRp851\nsS'Y:VBus31 - CMOROS21'\np852\ng35\n(S'Variable_Type'\n(I2\nttRp853\nsS'Y:VBus103 - CPORTO32'\np854\ng35\n(S'Variable_Type'\n(I2\nttRp855\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np856\ng35\n(S'Variable_Type'\n(I2\nttRp857\nsS'Y:PMachine14 - CBONIF21'\np858\ng35\n(S'Variable_Type'\n(I2\nttRp859\nsS'Y:PMachine72 - CCASTI31'\np860\ng35\n(S'Variable_Type'\n(I2\nttRp861\nsS'Y:VBus27 - CILERO21'\np862\ng35\n(S'Variable_Type'\n(I2\nttRp863\nsS'Y:PMachine75 - CCORSC31'\np864\ng35\n(S'Variable_Type'\n(I2\nttRp865\nsS'Y:Load 51 - CASPRE31'\np866\ng35\n(S'Variable_Type'\n(I2\nttRp867\nsS'Y:VBus51 - CASPRE31'\np868\ng35\n(S'Variable_Type'\n(I2\nttRp869\nsS'Y:PMachine94 - COCANA33'\np870\ng35\n(S'Variable_Type'\n(I2\nttRp871\nsS'Y:PMachine126 - CVAZZI37'\np872\ng35\n(S'Variable_Type'\n(I2\nttRp873\nsS'Y:Load 86 - CLUCCI31'\np874\ng35\n(S'Variable_Type'\n(I2\nttRp875\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np876\ng35\n(S'Variable_Type'\n(I2\nttRp877\nsS'Y:PMachine104 - CPROPR31'\np878\ng35\n(S'Variable_Type'\n(I2\nttRp879\nsS'Y:VBus128 - CVAZZI39'\np880\ng35\n(S'Variable_Type'\n(I2\nttRp881\nsS'Y:PMachine136 - CLUCCI37'\np882\ng35\n(S'Variable_Type'\n(I2\nttRp883\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np884\ng35\n(S'Variable_Type'\n(I2\nttRp885\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np886\ng35\n(S'Variable_Type'\n(I2\nttRp887\nsS'Y:PMachine29 - CLUCCI21'\np888\ng35\n(S'Variable_Type'\n(I2\nttRp889\nsS'Y:VBus42 - CSISCO21'\np890\ng35\n(S'Variable_Type'\n(I2\nttRp891\nsS'Y:Load 110 - CSTLUC31'\np892\ng35\n(S'Variable_Type'\n(I2\nttRp893\nsS'Y:VBus14 - CBONIF21'\np894\ng35\n(S'Variable_Type'\n(I2\nttRp895\nsS'Y:VBus73 - CCASTI32'\np896\ng35\n(S'Variable_Type'\n(I2\nttRp897\nsS'Y:VBus64 - CCASAM32'\np898\ng35\n(S'Variable_Type'\n(I2\nttRp899\nsS'Y:PMachine128 - CVAZZI39'\np900\ng35\n(S'Variable_Type'\n(I2\nttRp901\nsS'Y:VBus133 - CVAZZI314'\np902\ng35\n(S'Variable_Type'\n(I2\nttRp903\nsS'Y:VBus63 - CCASAM31'\np904\ng35\n(S'Variable_Type'\n(I2\nttRp905\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np906\ng35\n(S'Variable_Type'\n(I2\nttRp907\nsS'Y:%Losses'\np908\ng668\nsS'Y:VBus85 - CLORET32'\np909\ng35\n(S'Variable_Type'\n(I2\nttRp910\nsS'Y:Load 59 - CCALDA31'\np911\ng35\n(S'Variable_Type'\n(I2\nttRp912\nsS'Y:VBus129 - CVAZZI310'\np913\ng35\n(S'Variable_Type'\n(I2\nttRp914\nsS'Y:VBus101 - CPIETR31'\np915\ng35\n(S'Variable_Type'\n(I2\nttRp916\nsS'Y:PMachine106 - CRIZZA31'\np917\ng35\n(S'Variable_Type'\n(I2\nttRp918\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np919\ng35\n(S'Variable_Type'\n(I2\nttRp920\nsS'Y:PMachine118 - CTOLLA33'\np921\ng35\n(S'Variable_Type'\n(I2\nttRp922\nsS'Y:VBus19 - CCASTI21'\np923\ng35\n(S'Variable_Type'\n(I2\nttRp924\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np925\ng35\n(S'Variable_Type'\n(I2\nttRp926\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np927\ng35\n(S'Variable_Type'\n(I2\nttRp928\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np929\ng35\n(S'Variable_Type'\n(I2\nttRp930\nsS'Y:Load 115 - CTAGLI31'\np931\ng35\n(S'Variable_Type'\n(I2\nttRp932\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np933\ng35\n(S'Variable_Type'\n(I2\nttRp934\nsS'Y:VBus15 - CBONIF22'\np935\ng35\n(S'Variable_Type'\n(I2\nttRp936\nsS'Y:PMachine47 - CVAZZI21'\np937\ng35\n(S'Variable_Type'\n(I2\nttRp938\nsS'Y:VBus123 - CVAZZI34'\np939\ng35\n(S'Variable_Type'\n(I2\nttRp940\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np941\ng35\n(S'Variable_Type'\n(I2\nttRp942\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np943\ng35\n(S'Variable_Type'\n(I2\nttRp944\nsS'Y:VBus44 - CTAGLI21'\np945\ng35\n(S'Variable_Type'\n(I2\nttRp946\nsS'Y:VBus65 - CCASAM33'\np947\ng35\n(S'Variable_Type'\n(I2\nttRp948\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np949\ng35\n(S'Variable_Type'\n(I2\nttRp950\nsS'Y:PMachine139 - CLUCCI310'\np951\ng35\n(S'Variable_Type'\n(I2\nttRp952\nsS'Y:VBus112 - CSAMPO31'\np953\ng35\n(S'Variable_Type'\n(I2\nttRp954\nsS'Y:VBus68 - CCASAM36'\np955\ng35\n(S'Variable_Type'\n(I2\nttRp956\nsS'Y:Load 55 - CBIGUG31'\np957\ng35\n(S'Variable_Type'\n(I2\nttRp958\nsS'Y:PMachine53 - CBASTI31'\np959\ng35\n(S'Variable_Type'\n(I2\nttRp960\nsS'Y:NbeTransit_0.9-1'\np961\ng35\n(S'Variable_Type'\n(I2\nttRp962\nsS'Y:VBus24 - CFURIA21'\np963\ng35\n(S'Variable_Type'\n(I2\nttRp964\nsS'Y:VBus23 - CCORTE22'\np965\ng35\n(S'Variable_Type'\n(I2\nttRp966\nsS'XProdEolienne%Pnom'\np967\ng35\n(S'Variable_Type'\n(I2\nttRp968\nsS'Y:VBus40 - CSTMAR21'\np969\ng35\n(S'Variable_Type'\n(I2\nttRp970\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np971\ng35\n(S'Variable_Type'\n(I2\nttRp972\nsS'Y:PMachine120 - CVAZZI31'\np973\ng35\n(S'Variable_Type'\n(I2\nttRp974\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np975\ng35\n(S'Variable_Type'\n(I2\nttRp976\nsS'Y:PMachine117 - CTOLLA32'\np977\ng35\n(S'Variable_Type'\n(I2\nttRp978\nsS'Y:VBus89 - CLUCCI34'\np979\ng35\n(S'Variable_Type'\n(I2\nttRp980\nsS'Y:VBus33 - COLETT21'\np981\ng35\n(S'Variable_Type'\n(I2\nttRp982\nsS'Y:VBus32 - COCANA21'\np983\ng35\n(S'Variable_Type'\n(I2\nttRp984\nsS'Y:PMachine121 - CVAZZI32'\np985\ng35\n(S'Variable_Type'\n(I2\nttRp986\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np987\ng35\n(S'Variable_Type'\n(I2\nttRp988\nsS'Y:VBus59 - CCALDA31'\np989\ng35\n(S'Variable_Type'\n(I2\nttRp990\nsS'Y:VBus82 - CILERO31'\np991\ng35\n(S'Variable_Type'\n(I2\nttRp992\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np993\ng35\n(S'Variable_Type'\n(I2\nttRp994\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np995\ng35\n(S'Variable_Type'\n(I2\nttRp996\nsS'Y:VBus37 - CRIZZA21'\np997\ng35\n(S'Variable_Type'\n(I2\nttRp998\nsS'Y:PMachine73 - CCASTI32'\np999\ng35\n(S'Variable_Type'\n(I2\nttRp1000\nsS'Y:PMachine86 - CLUCCI31'\np1001\ng35\n(S'Variable_Type'\n(I2\nttRp1002\nsS'Y:Load 53 - CBASTI31'\np1003\ng35\n(S'Variable_Type'\n(I2\nttRp1004\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np1005\ng35\n(S'Variable_Type'\n(I2\nttRp1006\nsS'Y:VBus21 - CCORSC21'\np1007\ng35\n(S'Variable_Type'\n(I2\nttRp1008\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np1009\ng35\n(S'Variable_Type'\n(I2\nttRp1010\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np1011\ng35\n(S'Variable_Type'\n(I2\nttRp1012\nsS'Y:Load 82 - CILERO31'\np1013\ng35\n(S'Variable_Type'\n(I2\nttRp1014\nsS'Y:PMachine64 - CCASAM32'\np1015\ng35\n(S'Variable_Type'\n(I2\nttRp1016\nsS'Y:VBus67 - CCASAM35'\np1017\ng35\n(S'Variable_Type'\n(I2\nttRp1018\nsS'Y:VBus53 - CBASTI31'\np1019\ng35\n(S'Variable_Type'\n(I2\nttRp1020\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np1021\ng35\n(S'Variable_Type'\n(I2\nttRp1022\nsS'Y:VBus61 - CCALVI31'\np1023\ng35\n(S'Variable_Type'\n(I2\nttRp1024\nsS'Y:VBus93 - COCANA32'\np1025\ng35\n(S'Variable_Type'\n(I2\nttRp1026\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np1027\ng35\n(S'Variable_Type'\n(I2\nttRp1028\nsS'Y:PMachine92 - COCANA31'\np1029\ng35\n(S'Variable_Type'\n(I2\nttRp1030\nsS'Y:VBus104 - CPROPR31'\np1031\ng35\n(S'Variable_Type'\n(I2\nttRp1032\nsS'Y:VBus48 - CZSSS621'\np1033\ng35\n(S'Variable_Type'\n(I2\nttRp1034\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np1035\ng35\n(S'Variable_Type'\n(I2\nttRp1036\nsS'Y:VBus74 - CCERVI31'\np1037\ng35\n(S'Variable_Type'\n(I2\nttRp1038\nsS'Y:VBus36 - CPROPR21'\np1039\ng35\n(S'Variable_Type'\n(I2\nttRp1040\nsS'Y:Load 100 - COLETT31'\np1041\ng35\n(S'Variable_Type'\n(I2\nttRp1042\nsS'Y:PMachine54 - CBASTI32'\np1043\ng35\n(S'Variable_Type'\n(I2\nttRp1044\nsS'Y:VBus138 - CLUCCI39'\np1045\ng35\n(S'Variable_Type'\n(I2\nttRp1046\nsS'Y:VBus39 - CSTLUC21'\np1047\ng35\n(S'Variable_Type'\n(I2\nttRp1048\nsS'Y:PMachine74 - CCERVI31'\np1049\ng35\n(S'Variable_Type'\n(I2\nttRp1050\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np1051\ng35\n(S'Variable_Type'\n(I2\nttRp1052\nsS'Y:Load 78 - CFURIA31'\np1053\ng35\n(S'Variable_Type'\n(I2\nttRp1054\nsS'Y:VBus28 - CLORET21'\np1055\ng35\n(S'Variable_Type'\n(I2\nttRp1056\nsS'Y:PMachine105 - CPROPR32'\np1057\ng35\n(S'Variable_Type'\n(I2\nttRp1058\nsS'Y:VBus96 - COCANA35'\np1059\ng35\n(S'Variable_Type'\n(I2\nttRp1060\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np1061\ng35\n(S'Variable_Type'\n(I2\nttRp1062\nsS'Y:PMachine18 - CCASAM21'\np1063\ng35\n(S'Variable_Type'\n(I2\nttRp1064\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np1065\ng35\n(S'Variable_Type'\n(I2\nttRp1066\nsS'Y:VBus13 - CBIGUG21'\np1067\ng35\n(S'Variable_Type'\n(I2\nttRp1068\nsS'Y:VBus92 - COCANA31'\np1069\ng35\n(S'Variable_Type'\n(I2\nttRp1070\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np1071\ng35\n(S'Variable_Type'\n(I2\nttRp1072\nsS'Y:Load 76 - CCORTE31'\np1073\ng35\n(S'Variable_Type'\n(I2\nttRp1074\nsS'Y:VBus58 - CBONIF32'\np1075\ng35\n(S'Variable_Type'\n(I2\nttRp1076\nsS'Y:VBus84 - CLORET31'\np1077\ng35\n(S'Variable_Type'\n(I2\nttRp1078\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np1079\ng35\n(S'Variable_Type'\n(I2\nttRp1080\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np1081\ng35\n(S'Variable_Type'\n(I2\nttRp1082\nsS'Y:VBus97 - COCANA36'\np1083\ng35\n(S'Variable_Type'\n(I2\nttRp1084\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np1085\ng35\n(S'Variable_Type'\n(I2\nttRp1086\nsS'Y:VBus106 - CRIZZA31'\np1087\ng35\n(S'Variable_Type'\n(I2\nttRp1088\nsS'Y:VBus79 - CFURIA32'\np1089\ng35\n(S'Variable_Type'\n(I2\nttRp1090\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np1091\ng35\n(S'Variable_Type'\n(I2\nttRp1092\nsS'Y:VBus80 - CGHISO31'\np1093\ng35\n(S'Variable_Type'\n(I2\nttRp1094\nsS'Y:PMachine114 - CSOVEN31'\np1095\ng35\n(S'Variable_Type'\n(I2\nttRp1096\nsS'Y:VBus132 - CVAZZI313'\np1097\ng35\n(S'Variable_Type'\n(I2\nttRp1098\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np1099\ng35\n(S'Variable_Type'\n(I2\nttRp1100\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np1101\ng35\n(S'Variable_Type'\n(I2\nttRp1102\nsS'Y:VBus87 - CLUCCI32'\np1103\ng35\n(S'Variable_Type'\n(I2\nttRp1104\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np1105\ng35\n(S'Variable_Type'\n(I2\nttRp1106\nsS'Y:VBus88 - CLUCCI33'\np1107\ng35\n(S'Variable_Type'\n(I2\nttRp1108\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np1109\ng35\n(S'Variable_Type'\n(I2\nttRp1110\nsS'Y:PMachine85 - CLORET32'\np1111\ng35\n(S'Variable_Type'\n(I2\nttRp1112\nsS'Y:VBus81 - CGHISO32'\np1113\ng35\n(S'Variable_Type'\n(I2\nttRp1114\nsS'Y:PMachine63 - CCASAM31'\np1115\ng35\n(S'Variable_Type'\n(I2\nttRp1116\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np1117\ng35\n(S'Variable_Type'\n(I2\nttRp1118\nsS'X:Load(pu)'\np1119\ng673\nsS'Y:NbeTension'\np1120\ng35\n(S'Variable_Type'\n(I2\nttRp1121\nsS'Y:VBus95 - COCANA34'\np1122\ng35\n(S'Variable_Type'\n(I2\nttRp1123\nsS'Y:VBus62 - CCALVI32'\np1124\ng35\n(S'Variable_Type'\n(I2\nttRp1125\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np1126\ng35\n(S'Variable_Type'\n(I2\nttRp1127\nsS'Y:Load 95 - COCANA34'\np1128\ng35\n(S'Variable_Type'\n(I2\nttRp1129\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np1130\ng35\n(S'Variable_Type'\n(I2\nttRp1131\nsS'Y:PMachine90 - CMOROS31'\np1132\ng35\n(S'Variable_Type'\n(I2\nttRp1133\nsS'Y:Load 101 - CPIETR31'\np1134\ng35\n(S'Variable_Type'\n(I2\nttRp1135\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np1136\ng35\n(S'Variable_Type'\n(I2\nttRp1137\nsS'Y:PMachine132 - CVAZZI313'\np1138\ng35\n(S'Variable_Type'\n(I2\nttRp1139\nsS'Y:PMachine65 - CCASAM33'\np1140\ng35\n(S'Variable_Type'\n(I2\nttRp1141\nsS'Y:VBus125 - CVAZZI36'\np1142\ng35\n(S'Variable_Type'\n(I2\nttRp1143\nsS'Y:VBus135 - CLUCCI36'\np1144\ng35\n(S'Variable_Type'\n(I2\nttRp1145\nsS'Y:VBus47 - CVAZZI21'\np1146\ng35\n(S'Variable_Type'\n(I2\nttRp1147\nsS'Y:VBus94 - COCANA33'\np1148\ng35\n(S'Variable_Type'\n(I2\nttRp1149\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np1150\ng35\n(S'Variable_Type'\n(I2\nttRp1151\nsS'Y:VBus17 - CCALVI21'\np1152\ng35\n(S'Variable_Type'\n(I2\nttRp1153\nsS'Y:Load 90 - CMOROS31'\np1154\ng35\n(S'Variable_Type'\n(I2\nttRp1155\nsS'Y:VBus120 - CVAZZI31'\np1156\ng35\n(S'Variable_Type'\n(I2\nttRp1157\nsS'Y:VBus52 - CASPRE32'\np1158\ng35\n(S'Variable_Type'\n(I2\nttRp1159\nsS'Y:VBus25 - CFURIA22'\np1160\ng35\n(S'Variable_Type'\n(I2\nttRp1161\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np1162\ng35\n(S'Variable_Type'\n(I2\nttRp1163\nsS'Y:PMachine69 - CCASAM37'\np1164\ng35\n(S'Variable_Type'\n(I2\nttRp1165\nsS'Y:PConsoTot'\np1166\ng35\n(S'Variable_Type'\n(I2\nttRp1167\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np1168\ng35\n(S'Variable_Type'\n(I2\nttRp1169\nsS'Y:PMachine102 - CPORTO31'\np1170\ng35\n(S'Variable_Type'\n(I2\nttRp1171\nsS'Y:VBus136 - CLUCCI37'\np1172\ng35\n(S'Variable_Type'\n(I2\nttRp1173\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np1174\ng35\n(S'Variable_Type'\n(I2\nttRp1175\nsS'Y:PMachine122 - CVAZZI33'\np1176\ng35\n(S'Variable_Type'\n(I2\nttRp1177\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np1178\ng35\n(S'Variable_Type'\n(I2\nttRp1179\nsS'Y:PMachine77 - CCORTE32'\np1180\ng35\n(S'Variable_Type'\n(I2\nttRp1181\nsS'Y:PMachine116 - CTOLLA31'\np1182\ng35\n(S'Variable_Type'\n(I2\nttRp1183\nsS'Y:VBus126 - CVAZZI37'\np1184\ng35\n(S'Variable_Type'\n(I2\nttRp1185\nsS'Y:PMachine60 - CCALDA32'\np1186\ng35\n(S'Variable_Type'\n(I2\nttRp1187\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np1188\ng35\n(S'Variable_Type'\n(I2\nttRp1189\nsS'Y:VBus20 - CCERVI21'\np1190\ng35\n(S'Variable_Type'\n(I2\nttRp1191\nsS'Y:VBus119 - CTRAVO31'\np1192\ng35\n(S'Variable_Type'\n(I2\nttRp1193\nsS'Y:VBus11 - CASPRE21'\np1194\ng35\n(S'Variable_Type'\n(I2\nttRp1195\nsS'Y:VBus139 - CLUCCI310'\np1196\ng35\n(S'Variable_Type'\n(I2\nttRp1197\nsS'Y:VBus60 - CCALDA32'\np1198\ng35\n(S'Variable_Type'\n(I2\nttRp1199\nsS'Y:PMachine66 - CCASAM34'\np1200\ng35\n(S'Variable_Type'\n(I2\nttRp1201\nsS'Y:PMachine101 - CPIETR31'\np1202\ng35\n(S'Variable_Type'\n(I2\nttRp1203\nsS'Y:PMachine133 - CVAZZI314'\np1204\ng35\n(S'Variable_Type'\n(I2\nttRp1205\nsS'Y:PMachine62 - CCALVI32'\np1206\ng35\n(S'Variable_Type'\n(I2\nttRp1207\nsS'Y:Load 74 - CCERVI31'\np1208\ng35\n(S'Variable_Type'\n(I2\nttRp1209\nsS'X:lineOff#'\np1210\ng35\n(S'Variable_Type'\n(I2\nttRp1211\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np1212\ng35\n(S'Variable_Type'\n(I2\nttRp1213\nsS'Y:VBus108 - CSAGON31'\np1214\ng35\n(S'Variable_Type'\n(I2\nttRp1215\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np1216\ng35\n(S'Variable_Type'\n(I2\nttRp1217\nsS'Y:VBus137 - CLUCCI38'\np1218\ng35\n(S'Variable_Type'\n(I2\nttRp1219\nsS'Y:VBus130 - CVAZZI311'\np1220\ng35\n(S'Variable_Type'\n(I2\nttRp1221\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np1222\ng35\n(S'Variable_Type'\n(I2\nttRp1223\nsS'Y:VBus46 - CTRAVO21'\np1224\ng35\n(S'Variable_Type'\n(I2\nttRp1225\nsS'Y:VBus113 - CSAMPO32'\np1226\ng35\n(S'Variable_Type'\n(I2\nttRp1227\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np1228\ng35\n(S'Variable_Type'\n(I2\nttRp1229\nsS'Y:PMachine68 - CCASAM36'\np1230\ng35\n(S'Variable_Type'\n(I2\nttRp1231\nsS'Y:VBus78 - CFURIA31'\np1232\ng35\n(S'Variable_Type'\n(I2\nttRp1233\nsS'Y:VBus26 - CGHISO21'\np1234\ng35\n(S'Variable_Type'\n(I2\nttRp1235\nsS'Y:VBus121 - CVAZZI32'\np1236\ng35\n(S'Variable_Type'\n(I2\nttRp1237\nsS'Y:PMachine97 - COCANA36'\np1238\ng35\n(S'Variable_Type'\n(I2\nttRp1239\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np1240\ng35\n(S'Variable_Type'\n(I2\nttRp1241\nsS'Y:PMachine83 - CILERO32'\np1242\ng35\n(S'Variable_Type'\n(I2\nttRp1243\nsS'Y:Max%A'\np1244\ng35\n(S'Variable_Type'\n(I2\nttRp1245\nsS'Y:VBus66 - CCASAM34'\np1246\ng35\n(S'Variable_Type'\n(I2\nttRp1247\nsS'Y:PMachine1 - CBONIF11'\np1248\ng35\n(S'Variable_Type'\n(I2\nttRp1249\nsS'Y:VBus111 - CSTMAR31'\np1250\ng35\n(S'Variable_Type'\n(I2\nttRp1251\nsS'Y:VBus124 - CVAZZI35'\np1252\ng35\n(S'Variable_Type'\n(I2\nttRp1253\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np1254\ng35\n(S'Variable_Type'\n(I2\nttRp1255\nsS'Y:VBus29 - CLUCCI21'\np1256\ng35\n(S'Variable_Type'\n(I2\nttRp1257\nsS'Y:PMachine93 - COCANA32'\np1258\ng35\n(S'Variable_Type'\n(I2\nttRp1259\nsS'Y:Load 57 - CBONIF31'\np1260\ng35\n(S'Variable_Type'\n(I2\nttRp1261\nsS'Y:VBus86 - CLUCCI31'\np1262\ng35\n(S'Variable_Type'\n(I2\nttRp1263\nsS'Y:VBus38 - CSAGON21'\np1264\ng35\n(S'Variable_Type'\n(I2\nttRp1265\nsS'Y:PMachine81 - CGHISO32'\np1266\ng35\n(S'Variable_Type'\n(I2\nttRp1267\nsS'Y:PMachine61 - CCALVI31'\np1268\ng35\n(S'Variable_Type'\n(I2\nttRp1269\nsS'Y:VBus110 - CSTLUC31'\np1270\ng35\n(S'Variable_Type'\n(I2\nttRp1271\nsS'X:ProdPV%Pnom'\np1272\ng665\nssg650\n(lp1273\ng652\nasba(iOWContexts\nContext\np1274\n(dp1275\ng24\n(lp1276\nsg26\n(dp1277\nsg28\n(dp1278\ng660\n(S''\nI-1\ntp1279\nsg662\n(S''\nI0\ntp1280\nsg664\n(S'X:Load(pu)'\np1281\ng35\n(S'Variable_Type'\n(I2\nttRp1282\ntp1283\nsg667\n(S'X:Load(pu)'\np1284\ng1282\ntp1285\nsg670\n(S''\nI0\ntp1286\nsg672\n(S'Y:Load 115 - CTAGLI31'\np1287\ng35\n(S'Variable_Type'\n(I2\nttRp1288\ntp1289\nssg46\nF1370267501.4719999\nsg47\n(dp1290\nS'Y:PMachine134 - CLUCCI35'\np1291\ng35\n(S'Variable_Type'\n(I2\nttRp1292\nsS'Y:VBus77 - CCORTE32'\np1293\ng35\n(S'Variable_Type'\n(I2\nttRp1294\nsS'Y:VBus134 - CLUCCI35'\np1295\ng35\n(S'Variable_Type'\n(I2\nttRp1296\nsS'Y:VBus109 - CSAGON32'\np1297\ng35\n(S'Variable_Type'\n(I2\nttRp1298\nsS'Y:VBus102 - CPORTO31'\np1299\ng35\n(S'Variable_Type'\n(I2\nttRp1300\nsS'Y:VBus18 - CCASAM21'\np1301\ng35\n(S'Variable_Type'\n(I2\nttRp1302\nsS'Y:VBus114 - CSOVEN31'\np1303\ng35\n(S'Variable_Type'\n(I2\nttRp1304\nsS'Y:VBus83 - CILERO32'\np1305\ng35\n(S'Variable_Type'\n(I2\nttRp1306\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np1307\ng35\n(S'Variable_Type'\n(I2\nttRp1308\nsS'Y:PMachine87 - CLUCCI32'\np1309\ng35\n(S'Variable_Type'\n(I2\nttRp1310\nsS'Y:PMachine113 - CSAMPO32'\np1311\ng35\n(S'Variable_Type'\n(I2\nttRp1312\nsS'Y:Load 84 - CLORET31'\np1313\ng35\n(S'Variable_Type'\n(I2\nttRp1314\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np1315\ng35\n(S'Variable_Type'\n(I2\nttRp1316\nsS'Y:Load 42 - CSISCO21'\np1317\ng35\n(S'Variable_Type'\n(I2\nttRp1318\nsS'Y:PMachine125 - CVAZZI36'\np1319\ng35\n(S'Variable_Type'\n(I2\nttRp1320\nsS'Y:VBus116 - CTOLLA31'\np1321\ng35\n(S'Variable_Type'\n(I2\nttRp1322\nsS'Y:PMachine88 - CLUCCI33'\np1323\ng35\n(S'Variable_Type'\n(I2\nttRp1324\nsS'Y:PMachine124 - CVAZZI35'\np1325\ng35\n(S'Variable_Type'\n(I2\nttRp1326\nsS'Y:PMachine111 - CSTMAR31'\np1327\ng35\n(S'Variable_Type'\n(I2\nttRp1328\nsS'Y:NbeTransit'\np1329\ng35\n(S'Variable_Type'\n(I2\nttRp1330\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np1331\ng35\n(S'Variable_Type'\n(I2\nttRp1332\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np1333\ng35\n(S'Variable_Type'\n(I2\nttRp1334\nsS'Y:PMachine130 - CVAZZI311'\np1335\ng35\n(S'Variable_Type'\n(I2\nttRp1336\nsS'Y:PMachine127 - CVAZZI38'\np1337\ng35\n(S'Variable_Type'\n(I2\nttRp1338\nsS'Y:VBus131 - CVAZZI312'\np1339\ng35\n(S'Variable_Type'\n(I2\nttRp1340\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np1341\ng35\n(S'Variable_Type'\n(I2\nttRp1342\nsS'Y:PMachine123 - CVAZZI34'\np1343\ng35\n(S'Variable_Type'\n(I2\nttRp1344\nsS'Y:VBus118 - CTOLLA33'\np1345\ng35\n(S'Variable_Type'\n(I2\nttRp1346\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np1347\ng35\n(S'Variable_Type'\n(I2\nttRp1348\nsS'Y:PMachine58 - CBONIF32'\np1349\ng35\n(S'Variable_Type'\n(I2\nttRp1350\nsS'Y:VBus90 - CMOROS31'\np1351\ng35\n(S'Variable_Type'\n(I2\nttRp1352\nsS'Y:Load 104 - CPROPR31'\np1353\ng35\n(S'Variable_Type'\n(I2\nttRp1354\nsS'Y:PMachine30 - CLUCCI22'\np1355\ng35\n(S'Variable_Type'\n(I2\nttRp1356\nsS'Y:VBus100 - COLETT31'\np1357\ng35\n(S'Variable_Type'\n(I2\nttRp1358\nsS'Y:PProdTot'\np1359\ng35\n(S'Variable_Type'\n(I2\nttRp1360\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np1361\ng35\n(S'Variable_Type'\n(I2\nttRp1362\nsS'Y:VBus57 - CBONIF31'\np1363\ng35\n(S'Variable_Type'\n(I2\nttRp1364\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np1365\ng35\n(S'Variable_Type'\n(I2\nttRp1366\nsS'Iteration'\np1367\ng35\n(S'Variable_Type'\n(I2\nttRp1368\nsS'Y:PMachine109 - CSAGON32'\np1369\ng35\n(S'Variable_Type'\n(I2\nttRp1370\nsS'Y:PMachine135 - CLUCCI36'\np1371\ng35\n(S'Variable_Type'\n(I2\nttRp1372\nsS'Y:VBus30 - CLUCCI22'\np1373\ng35\n(S'Variable_Type'\n(I2\nttRp1374\nsS'Y:VBus122 - CVAZZI33'\np1375\ng35\n(S'Variable_Type'\n(I2\nttRp1376\nsS'Y:VBus22 - CCORTE21'\np1377\ng35\n(S'Variable_Type'\n(I2\nttRp1378\nsS'Y:VBus117 - CTOLLA32'\np1379\ng35\n(S'Variable_Type'\n(I2\nttRp1380\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np1381\ng35\n(S'Variable_Type'\n(I2\nttRp1382\nsS'Y:PMachine107 - CRIZZA32'\np1383\ng35\n(S'Variable_Type'\n(I2\nttRp1384\nsS'Y:VBus16 - CCALDA21'\np1385\ng35\n(S'Variable_Type'\n(I2\nttRp1386\nsS'Y:Load 102 - CPORTO31'\np1387\ng35\n(S'Variable_Type'\n(I2\nttRp1388\nsS'Y:VBus107 - CRIZZA32'\np1389\ng35\n(S'Variable_Type'\n(I2\nttRp1390\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np1391\ng35\n(S'Variable_Type'\n(I2\nttRp1392\nsS'Y:VBus41 - CSAMPO21'\np1393\ng35\n(S'Variable_Type'\n(I2\nttRp1394\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np1395\ng35\n(S'Variable_Type'\n(I2\nttRp1396\nsS'Y:VBus34 - CPIETR21'\np1397\ng35\n(S'Variable_Type'\n(I2\nttRp1398\nsS'Y:Load 108 - CSAGON31'\np1399\ng35\n(S'Variable_Type'\n(I2\nttRp1400\nsS'Y:VBus56 - CBIGUG32'\np1401\ng35\n(S'Variable_Type'\n(I2\nttRp1402\nsS'Y:PMachine42 - CSISCO21'\np1403\ng35\n(S'Variable_Type'\n(I2\nttRp1404\nsS'Y:PMachine138 - CLUCCI39'\np1405\ng35\n(S'Variable_Type'\n(I2\nttRp1406\nsS'Y:PMachine112 - CSAMPO31'\np1407\ng35\n(S'Variable_Type'\n(I2\nttRp1408\nsS'Y:VBus105 - CPROPR32'\np1409\ng35\n(S'Variable_Type'\n(I2\nttRp1410\nsS'Y:VBus1 - CBONIF11'\np1411\ng35\n(S'Variable_Type'\n(I2\nttRp1412\nsS'Y:VBus12 - CBASTI21'\np1413\ng35\n(S'Variable_Type'\n(I2\nttRp1414\nsS'Y:PMachine129 - CVAZZI310'\np1415\ng35\n(S'Variable_Type'\n(I2\nttRp1416\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np1417\ng35\n(S'Variable_Type'\n(I2\nttRp1418\nsS'Y:VBus35 - CPORTO21'\np1419\ng35\n(S'Variable_Type'\n(I2\nttRp1420\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np1421\ng35\n(S'Variable_Type'\n(I2\nttRp1422\nsS'Y:VBus54 - CBASTI32'\np1423\ng35\n(S'Variable_Type'\n(I2\nttRp1424\nsS'Y:VBus69 - CCASAM37'\np1425\ng35\n(S'Variable_Type'\n(I2\nttRp1426\nsS'Y:VBus45 - CTOLLA21'\np1427\ng35\n(S'Variable_Type'\n(I2\nttRp1428\nsS'Y:PMachine115 - CTAGLI31'\np1429\ng35\n(S'Variable_Type'\n(I2\nttRp1430\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np1431\ng35\n(S'Variable_Type'\n(I2\nttRp1432\nsS'Y:VBus43 - CSOVEN21'\np1433\ng35\n(S'Variable_Type'\n(I2\nttRp1434\nsS'Y:VBus76 - CCORTE31'\np1435\ng35\n(S'Variable_Type'\n(I2\nttRp1436\nsS'Y:VBus75 - CCORSC31'\np1437\ng35\n(S'Variable_Type'\n(I2\nttRp1438\nsS'Y:PMachine78 - CFURIA31'\np1439\ng35\n(S'Variable_Type'\n(I2\nttRp1440\nsS'Y:VBus127 - CVAZZI38'\np1441\ng35\n(S'Variable_Type'\n(I2\nttRp1442\nsS'Y:VBus115 - CTAGLI31'\np1443\ng35\n(S'Variable_Type'\n(I2\nttRp1444\nsS'Y:Load 61 - CCALVI31'\np1445\ng35\n(S'Variable_Type'\n(I2\nttRp1446\nsS'Y:VBus55 - CBIGUG31'\np1447\ng35\n(S'Variable_Type'\n(I2\nttRp1448\nsS'Y:Load 80 - CGHISO31'\np1449\ng35\n(S'Variable_Type'\n(I2\nttRp1450\nsS'Y:VBus72 - CCASTI31'\np1451\ng35\n(S'Variable_Type'\n(I2\nttRp1452\nsS'Y:Load 37 - CRIZZA21'\np1453\ng35\n(S'Variable_Type'\n(I2\nttRp1454\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np1455\ng35\n(S'Variable_Type'\n(I2\nttRp1456\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np1457\ng35\n(S'Variable_Type'\n(I2\nttRp1458\nsS'Y:PMachine102 - CPORTO31'\np1459\ng35\n(S'Variable_Type'\n(I2\nttRp1460\nsS'Y:PMachine67 - CCASAM35'\np1461\ng35\n(S'Variable_Type'\n(I2\nttRp1462\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np1463\ng35\n(S'Variable_Type'\n(I2\nttRp1464\nsS'Y:VBus31 - CMOROS21'\np1465\ng35\n(S'Variable_Type'\n(I2\nttRp1466\nsS'Y:VBus103 - CPORTO32'\np1467\ng35\n(S'Variable_Type'\n(I2\nttRp1468\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np1469\ng35\n(S'Variable_Type'\n(I2\nttRp1470\nsS'Y:PMachine14 - CBONIF21'\np1471\ng35\n(S'Variable_Type'\n(I2\nttRp1472\nsS'Y:PMachine72 - CCASTI31'\np1473\ng35\n(S'Variable_Type'\n(I2\nttRp1474\nsS'Y:VBus27 - CILERO21'\np1475\ng35\n(S'Variable_Type'\n(I2\nttRp1476\nsS'Y:PMachine75 - CCORSC31'\np1477\ng35\n(S'Variable_Type'\n(I2\nttRp1478\nsS'Y:Load 51 - CASPRE31'\np1479\ng35\n(S'Variable_Type'\n(I2\nttRp1480\nsS'Y:VBus51 - CASPRE31'\np1481\ng35\n(S'Variable_Type'\n(I2\nttRp1482\nsS'Y:PMachine94 - COCANA33'\np1483\ng35\n(S'Variable_Type'\n(I2\nttRp1484\nsS'Y:PMachine126 - CVAZZI37'\np1485\ng35\n(S'Variable_Type'\n(I2\nttRp1486\nsS'Y:Load 86 - CLUCCI31'\np1487\ng35\n(S'Variable_Type'\n(I2\nttRp1488\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np1489\ng35\n(S'Variable_Type'\n(I2\nttRp1490\nsS'Y:PMachine104 - CPROPR31'\np1491\ng35\n(S'Variable_Type'\n(I2\nttRp1492\nsS'Y:VBus128 - CVAZZI39'\np1493\ng35\n(S'Variable_Type'\n(I2\nttRp1494\nsS'Y:PMachine136 - CLUCCI37'\np1495\ng35\n(S'Variable_Type'\n(I2\nttRp1496\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np1497\ng35\n(S'Variable_Type'\n(I2\nttRp1498\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np1499\ng35\n(S'Variable_Type'\n(I2\nttRp1500\nsS'Y:PMachine29 - CLUCCI21'\np1501\ng35\n(S'Variable_Type'\n(I2\nttRp1502\nsS'Y:VBus42 - CSISCO21'\np1503\ng35\n(S'Variable_Type'\n(I2\nttRp1504\nsS'Y:Load 110 - CSTLUC31'\np1505\ng35\n(S'Variable_Type'\n(I2\nttRp1506\nsS'Y:VBus14 - CBONIF21'\np1507\ng35\n(S'Variable_Type'\n(I2\nttRp1508\nsS'Y:VBus73 - CCASTI32'\np1509\ng35\n(S'Variable_Type'\n(I2\nttRp1510\nsS'Y:VBus64 - CCASAM32'\np1511\ng35\n(S'Variable_Type'\n(I2\nttRp1512\nsS'Y:PMachine128 - CVAZZI39'\np1513\ng35\n(S'Variable_Type'\n(I2\nttRp1514\nsS'Y:VBus133 - CVAZZI314'\np1515\ng35\n(S'Variable_Type'\n(I2\nttRp1516\nsS'Y:VBus63 - CCASAM31'\np1517\ng35\n(S'Variable_Type'\n(I2\nttRp1518\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np1519\ng35\n(S'Variable_Type'\n(I2\nttRp1520\nsS'Y:%Losses'\np1521\ng35\n(S'Variable_Type'\n(I2\nttRp1522\nsS'Y:VBus85 - CLORET32'\np1523\ng35\n(S'Variable_Type'\n(I2\nttRp1524\nsS'Y:Load 59 - CCALDA31'\np1525\ng35\n(S'Variable_Type'\n(I2\nttRp1526\nsS'Y:VBus129 - CVAZZI310'\np1527\ng35\n(S'Variable_Type'\n(I2\nttRp1528\nsS'Y:VBus101 - CPIETR31'\np1529\ng35\n(S'Variable_Type'\n(I2\nttRp1530\nsS'Y:PMachine106 - CRIZZA31'\np1531\ng35\n(S'Variable_Type'\n(I2\nttRp1532\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np1533\ng35\n(S'Variable_Type'\n(I2\nttRp1534\nsS'Y:PMachine118 - CTOLLA33'\np1535\ng35\n(S'Variable_Type'\n(I2\nttRp1536\nsS'Y:VBus19 - CCASTI21'\np1537\ng35\n(S'Variable_Type'\n(I2\nttRp1538\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np1539\ng35\n(S'Variable_Type'\n(I2\nttRp1540\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np1541\ng35\n(S'Variable_Type'\n(I2\nttRp1542\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np1543\ng35\n(S'Variable_Type'\n(I2\nttRp1544\nsS'Y:Load 115 - CTAGLI31'\np1545\ng1288\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np1546\ng35\n(S'Variable_Type'\n(I2\nttRp1547\nsS'Y:VBus79 - CFURIA32'\np1548\ng35\n(S'Variable_Type'\n(I2\nttRp1549\nsS'Y:PMachine47 - CVAZZI21'\np1550\ng35\n(S'Variable_Type'\n(I2\nttRp1551\nsS'Y:VBus123 - CVAZZI34'\np1552\ng35\n(S'Variable_Type'\n(I2\nttRp1553\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np1554\ng35\n(S'Variable_Type'\n(I2\nttRp1555\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np1556\ng35\n(S'Variable_Type'\n(I2\nttRp1557\nsS'Y:VBus44 - CTAGLI21'\np1558\ng35\n(S'Variable_Type'\n(I2\nttRp1559\nsS'Y:VBus65 - CCASAM33'\np1560\ng35\n(S'Variable_Type'\n(I2\nttRp1561\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np1562\ng35\n(S'Variable_Type'\n(I2\nttRp1563\nsS'Y:PMachine139 - CLUCCI310'\np1564\ng35\n(S'Variable_Type'\n(I2\nttRp1565\nsS'Y:VBus112 - CSAMPO31'\np1566\ng35\n(S'Variable_Type'\n(I2\nttRp1567\nsS'Y:VBus68 - CCASAM36'\np1568\ng35\n(S'Variable_Type'\n(I2\nttRp1569\nsS'Y:Load 55 - CBIGUG31'\np1570\ng35\n(S'Variable_Type'\n(I2\nttRp1571\nsS'Y:PMachine53 - CBASTI31'\np1572\ng35\n(S'Variable_Type'\n(I2\nttRp1573\nsS'Y:NbeTransit_0.9-1'\np1574\ng35\n(S'Variable_Type'\n(I2\nttRp1575\nsS'Y:VBus24 - CFURIA21'\np1576\ng35\n(S'Variable_Type'\n(I2\nttRp1577\nsS'Y:VBus23 - CCORTE22'\np1578\ng35\n(S'Variable_Type'\n(I2\nttRp1579\nsS'XProdEolienne%Pnom'\np1580\ng35\n(S'Variable_Type'\n(I2\nttRp1581\nsS'Y:VBus40 - CSTMAR21'\np1582\ng35\n(S'Variable_Type'\n(I2\nttRp1583\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np1584\ng35\n(S'Variable_Type'\n(I2\nttRp1585\nsS'Y:PMachine120 - CVAZZI31'\np1586\ng35\n(S'Variable_Type'\n(I2\nttRp1587\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np1588\ng35\n(S'Variable_Type'\n(I2\nttRp1589\nsS'Y:PMachine117 - CTOLLA32'\np1590\ng35\n(S'Variable_Type'\n(I2\nttRp1591\nsS'Y:VBus89 - CLUCCI34'\np1592\ng35\n(S'Variable_Type'\n(I2\nttRp1593\nsS'Y:VBus33 - COLETT21'\np1594\ng35\n(S'Variable_Type'\n(I2\nttRp1595\nsS'Y:VBus32 - COCANA21'\np1596\ng35\n(S'Variable_Type'\n(I2\nttRp1597\nsS'Y:PMachine121 - CVAZZI32'\np1598\ng35\n(S'Variable_Type'\n(I2\nttRp1599\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np1600\ng35\n(S'Variable_Type'\n(I2\nttRp1601\nsS'Y:VBus59 - CCALDA31'\np1602\ng35\n(S'Variable_Type'\n(I2\nttRp1603\nsS'Y:VBus82 - CILERO31'\np1604\ng35\n(S'Variable_Type'\n(I2\nttRp1605\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np1606\ng35\n(S'Variable_Type'\n(I2\nttRp1607\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np1608\ng35\n(S'Variable_Type'\n(I2\nttRp1609\nsS'Y:VBus37 - CRIZZA21'\np1610\ng35\n(S'Variable_Type'\n(I2\nttRp1611\nsS'Y:PMachine73 - CCASTI32'\np1612\ng35\n(S'Variable_Type'\n(I2\nttRp1613\nsS'Y:PMachine86 - CLUCCI31'\np1614\ng35\n(S'Variable_Type'\n(I2\nttRp1615\nsS'Y:Load 53 - CBASTI31'\np1616\ng35\n(S'Variable_Type'\n(I2\nttRp1617\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np1618\ng35\n(S'Variable_Type'\n(I2\nttRp1619\nsS'Y:VBus21 - CCORSC21'\np1620\ng35\n(S'Variable_Type'\n(I2\nttRp1621\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np1622\ng35\n(S'Variable_Type'\n(I2\nttRp1623\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np1624\ng35\n(S'Variable_Type'\n(I2\nttRp1625\nsS'Y:Load 82 - CILERO31'\np1626\ng35\n(S'Variable_Type'\n(I2\nttRp1627\nsS'Y:PMachine64 - CCASAM32'\np1628\ng35\n(S'Variable_Type'\n(I2\nttRp1629\nsS'Y:VBus67 - CCASAM35'\np1630\ng35\n(S'Variable_Type'\n(I2\nttRp1631\nsS'Y:VBus53 - CBASTI31'\np1632\ng35\n(S'Variable_Type'\n(I2\nttRp1633\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np1634\ng35\n(S'Variable_Type'\n(I2\nttRp1635\nsS'Y:VBus61 - CCALVI31'\np1636\ng35\n(S'Variable_Type'\n(I2\nttRp1637\nsS'Y:VBus93 - COCANA32'\np1638\ng35\n(S'Variable_Type'\n(I2\nttRp1639\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np1640\ng35\n(S'Variable_Type'\n(I2\nttRp1641\nsS'Y:PMachine92 - COCANA31'\np1642\ng35\n(S'Variable_Type'\n(I2\nttRp1643\nsS'Y:VBus104 - CPROPR31'\np1644\ng35\n(S'Variable_Type'\n(I2\nttRp1645\nsS'Y:VBus48 - CZSSS621'\np1646\ng35\n(S'Variable_Type'\n(I2\nttRp1647\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np1648\ng35\n(S'Variable_Type'\n(I2\nttRp1649\nsS'Y:VBus74 - CCERVI31'\np1650\ng35\n(S'Variable_Type'\n(I2\nttRp1651\nsS'Y:VBus36 - CPROPR21'\np1652\ng35\n(S'Variable_Type'\n(I2\nttRp1653\nsS'Y:Load 100 - COLETT31'\np1654\ng35\n(S'Variable_Type'\n(I2\nttRp1655\nsS'Y:PMachine54 - CBASTI32'\np1656\ng35\n(S'Variable_Type'\n(I2\nttRp1657\nsS'Y:VBus138 - CLUCCI39'\np1658\ng35\n(S'Variable_Type'\n(I2\nttRp1659\nsS'Y:VBus39 - CSTLUC21'\np1660\ng35\n(S'Variable_Type'\n(I2\nttRp1661\nsS'Y:PMachine74 - CCERVI31'\np1662\ng35\n(S'Variable_Type'\n(I2\nttRp1663\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np1664\ng35\n(S'Variable_Type'\n(I2\nttRp1665\nsS'Y:Load 78 - CFURIA31'\np1666\ng35\n(S'Variable_Type'\n(I2\nttRp1667\nsS'Y:VBus28 - CLORET21'\np1668\ng35\n(S'Variable_Type'\n(I2\nttRp1669\nsS'Y:PMachine105 - CPROPR32'\np1670\ng35\n(S'Variable_Type'\n(I2\nttRp1671\nsS'Y:VBus96 - COCANA35'\np1672\ng35\n(S'Variable_Type'\n(I2\nttRp1673\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np1674\ng35\n(S'Variable_Type'\n(I2\nttRp1675\nsS'Y:PMachine18 - CCASAM21'\np1676\ng35\n(S'Variable_Type'\n(I2\nttRp1677\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np1678\ng35\n(S'Variable_Type'\n(I2\nttRp1679\nsS'Y:VBus13 - CBIGUG21'\np1680\ng35\n(S'Variable_Type'\n(I2\nttRp1681\nsS'Y:VBus92 - COCANA31'\np1682\ng35\n(S'Variable_Type'\n(I2\nttRp1683\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np1684\ng35\n(S'Variable_Type'\n(I2\nttRp1685\nsS'Y:Load 76 - CCORTE31'\np1686\ng35\n(S'Variable_Type'\n(I2\nttRp1687\nsS'Y:VBus58 - CBONIF32'\np1688\ng35\n(S'Variable_Type'\n(I2\nttRp1689\nsS'Y:VBus84 - CLORET31'\np1690\ng35\n(S'Variable_Type'\n(I2\nttRp1691\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np1692\ng35\n(S'Variable_Type'\n(I2\nttRp1693\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np1694\ng35\n(S'Variable_Type'\n(I2\nttRp1695\nsS'Y:VBus97 - COCANA36'\np1696\ng35\n(S'Variable_Type'\n(I2\nttRp1697\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np1698\ng35\n(S'Variable_Type'\n(I2\nttRp1699\nsS'Y:VBus106 - CRIZZA31'\np1700\ng35\n(S'Variable_Type'\n(I2\nttRp1701\nsS'Y:VBus15 - CBONIF22'\np1702\ng35\n(S'Variable_Type'\n(I2\nttRp1703\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np1704\ng35\n(S'Variable_Type'\n(I2\nttRp1705\nsS'Y:VBus80 - CGHISO31'\np1706\ng35\n(S'Variable_Type'\n(I2\nttRp1707\nsS'Y:PMachine114 - CSOVEN31'\np1708\ng35\n(S'Variable_Type'\n(I2\nttRp1709\nsS'Y:VBus132 - CVAZZI313'\np1710\ng35\n(S'Variable_Type'\n(I2\nttRp1711\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np1712\ng35\n(S'Variable_Type'\n(I2\nttRp1713\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np1714\ng35\n(S'Variable_Type'\n(I2\nttRp1715\nsS'Y:VBus87 - CLUCCI32'\np1716\ng35\n(S'Variable_Type'\n(I2\nttRp1717\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np1718\ng35\n(S'Variable_Type'\n(I2\nttRp1719\nsS'Y:VBus88 - CLUCCI33'\np1720\ng35\n(S'Variable_Type'\n(I2\nttRp1721\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np1722\ng35\n(S'Variable_Type'\n(I2\nttRp1723\nsS'Y:PMachine85 - CLORET32'\np1724\ng35\n(S'Variable_Type'\n(I2\nttRp1725\nsS'Y:VBus81 - CGHISO32'\np1726\ng35\n(S'Variable_Type'\n(I2\nttRp1727\nsS'Y:PMachine63 - CCASAM31'\np1728\ng35\n(S'Variable_Type'\n(I2\nttRp1729\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np1730\ng35\n(S'Variable_Type'\n(I2\nttRp1731\nsS'X:Load(pu)'\np1732\ng1282\nsS'Y:NbeTension'\np1733\ng35\n(S'Variable_Type'\n(I2\nttRp1734\nsS'Y:VBus95 - COCANA34'\np1735\ng35\n(S'Variable_Type'\n(I2\nttRp1736\nsS'Y:VBus62 - CCALVI32'\np1737\ng35\n(S'Variable_Type'\n(I2\nttRp1738\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np1739\ng35\n(S'Variable_Type'\n(I2\nttRp1740\nsS'Y:Load 95 - COCANA34'\np1741\ng35\n(S'Variable_Type'\n(I2\nttRp1742\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np1743\ng35\n(S'Variable_Type'\n(I2\nttRp1744\nsS'Y:PMachine90 - CMOROS31'\np1745\ng35\n(S'Variable_Type'\n(I2\nttRp1746\nsS'Y:Load 101 - CPIETR31'\np1747\ng35\n(S'Variable_Type'\n(I2\nttRp1748\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np1749\ng35\n(S'Variable_Type'\n(I2\nttRp1750\nsS'Y:PMachine132 - CVAZZI313'\np1751\ng35\n(S'Variable_Type'\n(I2\nttRp1752\nsS'Y:PMachine65 - CCASAM33'\np1753\ng35\n(S'Variable_Type'\n(I2\nttRp1754\nsS'Y:VBus125 - CVAZZI36'\np1755\ng35\n(S'Variable_Type'\n(I2\nttRp1756\nsS'Y:VBus135 - CLUCCI36'\np1757\ng35\n(S'Variable_Type'\n(I2\nttRp1758\nsS'Y:VBus47 - CVAZZI21'\np1759\ng35\n(S'Variable_Type'\n(I2\nttRp1760\nsS'Y:VBus94 - COCANA33'\np1761\ng35\n(S'Variable_Type'\n(I2\nttRp1762\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np1763\ng35\n(S'Variable_Type'\n(I2\nttRp1764\nsS'Y:VBus17 - CCALVI21'\np1765\ng35\n(S'Variable_Type'\n(I2\nttRp1766\nsS'Y:Load 90 - CMOROS31'\np1767\ng35\n(S'Variable_Type'\n(I2\nttRp1768\nsS'Y:VBus120 - CVAZZI31'\np1769\ng35\n(S'Variable_Type'\n(I2\nttRp1770\nsS'Y:VBus52 - CASPRE32'\np1771\ng35\n(S'Variable_Type'\n(I2\nttRp1772\nsS'Y:VBus25 - CFURIA22'\np1773\ng35\n(S'Variable_Type'\n(I2\nttRp1774\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np1775\ng35\n(S'Variable_Type'\n(I2\nttRp1776\nsS'Y:PMachine69 - CCASAM37'\np1777\ng35\n(S'Variable_Type'\n(I2\nttRp1778\nsS'Y:PConsoTot'\np1779\ng35\n(S'Variable_Type'\n(I2\nttRp1780\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np1781\ng35\n(S'Variable_Type'\n(I2\nttRp1782\nsS'Y:PMachine89 - CLUCCI34'\np1783\ng35\n(S'Variable_Type'\n(I2\nttRp1784\nsS'Y:VBus136 - CLUCCI37'\np1785\ng35\n(S'Variable_Type'\n(I2\nttRp1786\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np1787\ng35\n(S'Variable_Type'\n(I2\nttRp1788\nsS'Y:PMachine122 - CVAZZI33'\np1789\ng35\n(S'Variable_Type'\n(I2\nttRp1790\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np1791\ng35\n(S'Variable_Type'\n(I2\nttRp1792\nsS'Y:PMachine77 - CCORTE32'\np1793\ng35\n(S'Variable_Type'\n(I2\nttRp1794\nsS'Y:PMachine116 - CTOLLA31'\np1795\ng35\n(S'Variable_Type'\n(I2\nttRp1796\nsS'Y:VBus126 - CVAZZI37'\np1797\ng35\n(S'Variable_Type'\n(I2\nttRp1798\nsS'Y:PMachine60 - CCALDA32'\np1799\ng35\n(S'Variable_Type'\n(I2\nttRp1800\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np1801\ng35\n(S'Variable_Type'\n(I2\nttRp1802\nsS'Y:VBus20 - CCERVI21'\np1803\ng35\n(S'Variable_Type'\n(I2\nttRp1804\nsS'Y:VBus119 - CTRAVO31'\np1805\ng35\n(S'Variable_Type'\n(I2\nttRp1806\nsS'Y:VBus11 - CASPRE21'\np1807\ng35\n(S'Variable_Type'\n(I2\nttRp1808\nsS'Y:VBus139 - CLUCCI310'\np1809\ng35\n(S'Variable_Type'\n(I2\nttRp1810\nsS'Y:VBus60 - CCALDA32'\np1811\ng35\n(S'Variable_Type'\n(I2\nttRp1812\nsS'Y:PMachine66 - CCASAM34'\np1813\ng35\n(S'Variable_Type'\n(I2\nttRp1814\nsS'Y:PMachine101 - CPIETR31'\np1815\ng35\n(S'Variable_Type'\n(I2\nttRp1816\nsS'Y:PMachine133 - CVAZZI314'\np1817\ng35\n(S'Variable_Type'\n(I2\nttRp1818\nsS'Y:PMachine62 - CCALVI32'\np1819\ng35\n(S'Variable_Type'\n(I2\nttRp1820\nsS'Y:Load 74 - CCERVI31'\np1821\ng35\n(S'Variable_Type'\n(I2\nttRp1822\nsS'X:lineOff#'\np1823\ng35\n(S'Variable_Type'\n(I2\nttRp1824\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np1825\ng35\n(S'Variable_Type'\n(I2\nttRp1826\nsS'Y:VBus108 - CSAGON31'\np1827\ng35\n(S'Variable_Type'\n(I2\nttRp1828\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np1829\ng35\n(S'Variable_Type'\n(I2\nttRp1830\nsS'Y:VBus137 - CLUCCI38'\np1831\ng35\n(S'Variable_Type'\n(I2\nttRp1832\nsS'Y:VBus130 - CVAZZI311'\np1833\ng35\n(S'Variable_Type'\n(I2\nttRp1834\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np1835\ng35\n(S'Variable_Type'\n(I2\nttRp1836\nsS'Y:VBus46 - CTRAVO21'\np1837\ng35\n(S'Variable_Type'\n(I2\nttRp1838\nsS'Y:VBus113 - CSAMPO32'\np1839\ng35\n(S'Variable_Type'\n(I2\nttRp1840\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np1841\ng35\n(S'Variable_Type'\n(I2\nttRp1842\nsS'Y:PMachine68 - CCASAM36'\np1843\ng35\n(S'Variable_Type'\n(I2\nttRp1844\nsS'Y:VBus78 - CFURIA31'\np1845\ng35\n(S'Variable_Type'\n(I2\nttRp1846\nsS'Y:VBus26 - CGHISO21'\np1847\ng35\n(S'Variable_Type'\n(I2\nttRp1848\nsS'Y:VBus121 - CVAZZI32'\np1849\ng35\n(S'Variable_Type'\n(I2\nttRp1850\nsS'Y:PMachine81 - CGHISO32'\np1851\ng35\n(S'Variable_Type'\n(I2\nttRp1852\nsS'Y:PMachine97 - COCANA36'\np1853\ng35\n(S'Variable_Type'\n(I2\nttRp1854\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np1855\ng35\n(S'Variable_Type'\n(I2\nttRp1856\nsS'Y:PMachine83 - CILERO32'\np1857\ng35\n(S'Variable_Type'\n(I2\nttRp1858\nsS'Y:Max%A'\np1859\ng35\n(S'Variable_Type'\n(I2\nttRp1860\nsS'Y:VBus66 - CCASAM34'\np1861\ng35\n(S'Variable_Type'\n(I2\nttRp1862\nsS'Y:PMachine1 - CBONIF11'\np1863\ng35\n(S'Variable_Type'\n(I2\nttRp1864\nsS'Y:VBus111 - CSTMAR31'\np1865\ng35\n(S'Variable_Type'\n(I2\nttRp1866\nsS'Y:VBus124 - CVAZZI35'\np1867\ng35\n(S'Variable_Type'\n(I2\nttRp1868\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np1869\ng35\n(S'Variable_Type'\n(I2\nttRp1870\nsS'Y:PMachine131 - CVAZZI312'\np1871\ng35\n(S'Variable_Type'\n(I2\nttRp1872\nsS'Y:PMachine137 - CLUCCI38'\np1873\ng35\n(S'Variable_Type'\n(I2\nttRp1874\nsS'Y:PMachine93 - COCANA32'\np1875\ng35\n(S'Variable_Type'\n(I2\nttRp1876\nsS'Y:Load 57 - CBONIF31'\np1877\ng35\n(S'Variable_Type'\n(I2\nttRp1878\nsS'Y:VBus86 - CLUCCI31'\np1879\ng35\n(S'Variable_Type'\n(I2\nttRp1880\nsS'Y:VBus38 - CSAGON21'\np1881\ng35\n(S'Variable_Type'\n(I2\nttRp1882\nsS'Y:VBus29 - CLUCCI21'\np1883\ng35\n(S'Variable_Type'\n(I2\nttRp1884\nsS'Y:PMachine61 - CCALVI31'\np1885\ng35\n(S'Variable_Type'\n(I2\nttRp1886\nsS'Y:VBus110 - CSTLUC31'\np1887\ng35\n(S'Variable_Type'\n(I2\nttRp1888\nsS'X:ProdPV%Pnom'\np1889\ng35\n(S'Variable_Type'\n(I2\nttRp1890\nssg650\n(lp1891\ng652\nasba(iOWContexts\nContext\np1892\n(dp1893\ng24\n(lp1894\nsg26\n(dp1895\nsg28\n(dp1896\nS'attrLabel'\np1897\n(S''\nI-1\ntp1898\nsS'attrShape'\np1899\n(S''\nI0\ntp1900\nsS'attrX'\np1901\n(g1281\ng35\n(S'Variable_Type'\n(I2\nttRp1902\ntp1903\nsS'attrY'\np1904\n(g1284\ng1902\ntp1905\nsS'attrSize'\np1906\n(S''\nI0\ntp1907\nsS'attrColor'\np1908\n(g1287\ng35\n(S'Variable_Type'\n(I2\nttRp1909\ntp1910\nssg46\nF1369994938.898\nsg47\n(dp1911\nS'Y:PMachine134 - CLUCCI35'\np1912\ng35\n(S'Variable_Type'\n(I1\nttRp1913\nsS'Y:VBus77 - CCORTE32'\np1914\ng35\n(S'Variable_Type'\n(I2\nttRp1915\nsS'Y:VBus134 - CLUCCI35'\np1916\ng35\n(S'Variable_Type'\n(I2\nttRp1917\nsS'Y:VBus109 - CSAGON32'\np1918\ng35\n(S'Variable_Type'\n(I2\nttRp1919\nsS'Y:VBus102 - CPORTO31'\np1920\ng35\n(S'Variable_Type'\n(I2\nttRp1921\nsS'XProdEolienne%Pnom'\np1922\ng35\n(S'Variable_Type'\n(I1\nttRp1923\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np1924\ng35\n(S'Variable_Type'\n(I2\nttRp1925\nsS'Y:PMachine94 - COCANA33'\np1926\ng35\n(S'Variable_Type'\n(I2\nttRp1927\nsS'Y:VBus117 - CTOLLA32'\np1928\ng35\n(S'Variable_Type'\n(I2\nttRp1929\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np1930\ng35\n(S'Variable_Type'\n(I2\nttRp1931\nsS'Y:PMachine87 - CLUCCI32'\np1932\ng35\n(S'Variable_Type'\n(I2\nttRp1933\nsS'Y:PMachine113 - CSAMPO32'\np1934\ng35\n(S'Variable_Type'\n(I2\nttRp1935\nsS'Y:Load 84 - CLORET31'\np1936\ng35\n(S'Variable_Type'\n(I2\nttRp1937\nsS'Y:PMachine89 - CLUCCI34'\np1938\ng35\n(S'Variable_Type'\n(I1\nttRp1939\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np1940\ng35\n(S'Variable_Type'\n(I2\nttRp1941\nsS'Y:Load 80 - CGHISO31'\np1942\ng35\n(S'Variable_Type'\n(I2\nttRp1943\nsS'Y:PMachine125 - CVAZZI36'\np1944\ng35\n(S'Variable_Type'\n(I2\nttRp1945\nsS'Y:PMachine116 - CTOLLA31'\np1946\ng35\n(S'Variable_Type'\n(I2\nttRp1947\nsS'Y:PMachine88 - CLUCCI33'\np1948\ng35\n(S'Variable_Type'\n(I1\nttRp1949\nsS'Y:PMachine120 - CVAZZI31'\np1950\ng35\n(S'Variable_Type'\n(I2\nttRp1951\nsS'Y:PMachine111 - CSTMAR31'\np1952\ng35\n(S'Variable_Type'\n(I2\nttRp1953\nsS'Y:NbeTransit'\np1954\ng35\n(S'Variable_Type'\n(I1\nttRp1955\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np1956\ng35\n(S'Variable_Type'\n(I2\nttRp1957\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np1958\ng35\n(S'Variable_Type'\n(I2\nttRp1959\nsS'Y:VBus92 - COCANA31'\np1960\ng35\n(S'Variable_Type'\n(I2\nttRp1961\nsS'Y:PMachine130 - CVAZZI311'\np1962\ng35\n(S'Variable_Type'\n(I2\nttRp1963\nsS'Y:PMachine127 - CVAZZI38'\np1964\ng35\n(S'Variable_Type'\n(I2\nttRp1965\nsS'Y:VBus131 - CVAZZI312'\np1966\ng35\n(S'Variable_Type'\n(I2\nttRp1967\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np1968\ng35\n(S'Variable_Type'\n(I2\nttRp1969\nsS'Y:PMachine123 - CVAZZI34'\np1970\ng35\n(S'Variable_Type'\n(I2\nttRp1971\nsS'Y:VBus118 - CTOLLA33'\np1972\ng35\n(S'Variable_Type'\n(I2\nttRp1973\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np1974\ng35\n(S'Variable_Type'\n(I1\nttRp1975\nsS'Y:PMachine58 - CBONIF32'\np1976\ng35\n(S'Variable_Type'\n(I2\nttRp1977\nsS'Y:Load 104 - CPROPR31'\np1978\ng35\n(S'Variable_Type'\n(I2\nttRp1979\nsS'Y:PMachine30 - CLUCCI22'\np1980\ng35\n(S'Variable_Type'\n(I1\nttRp1981\nsS'Y:VBus100 - COLETT31'\np1982\ng35\n(S'Variable_Type'\n(I2\nttRp1983\nsS'Y:PProdTot'\np1984\ng35\n(S'Variable_Type'\n(I2\nttRp1985\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np1986\ng35\n(S'Variable_Type'\n(I1\nttRp1987\nsS'Y:VBus57 - CBONIF31'\np1988\ng35\n(S'Variable_Type'\n(I2\nttRp1989\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np1990\ng35\n(S'Variable_Type'\n(I2\nttRp1991\nsS'Y:PConsoTot'\np1992\ng35\n(S'Variable_Type'\n(I2\nttRp1993\nsS'Iteration'\np1994\ng35\n(S'Variable_Type'\n(I2\nttRp1995\nsS'Y:PMachine109 - CSAGON32'\np1996\ng35\n(S'Variable_Type'\n(I2\nttRp1997\nsS'Y:PMachine135 - CLUCCI36'\np1998\ng35\n(S'Variable_Type'\n(I1\nttRp1999\nsS'Y:VBus30 - CLUCCI22'\np2000\ng35\n(S'Variable_Type'\n(I2\nttRp2001\nsS'Y:VBus122 - CVAZZI33'\np2002\ng35\n(S'Variable_Type'\n(I2\nttRp2003\nsS'Y:VBus86 - CLUCCI31'\np2004\ng35\n(S'Variable_Type'\n(I2\nttRp2005\nsS'Y:PMachine102 - CPORTO31'\np2006\ng35\n(S'Variable_Type'\n(I2\nttRp2007\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np2008\ng35\n(S'Variable_Type'\n(I1\nttRp2009\nsS'Y:PMachine107 - CRIZZA32'\np2010\ng35\n(S'Variable_Type'\n(I2\nttRp2011\nsS'Y:VBus16 - CCALDA21'\np2012\ng35\n(S'Variable_Type'\n(I2\nttRp2013\nsS'Y:Load 102 - CPORTO31'\np2014\ng35\n(S'Variable_Type'\n(I2\nttRp2015\nsS'Y:VBus107 - CRIZZA32'\np2016\ng35\n(S'Variable_Type'\n(I2\nttRp2017\nsS'Y:VBus59 - CCALDA31'\np2018\ng35\n(S'Variable_Type'\n(I2\nttRp2019\nsS'Y:VBus41 - CSAMPO21'\np2020\ng35\n(S'Variable_Type'\n(I2\nttRp2021\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np2022\ng35\n(S'Variable_Type'\n(I2\nttRp2023\nsS'Y:VBus34 - CPIETR21'\np2024\ng35\n(S'Variable_Type'\n(I2\nttRp2025\nsS'Y:Load 108 - CSAGON31'\np2026\ng35\n(S'Variable_Type'\n(I2\nttRp2027\nsS'Y:VBus56 - CBIGUG32'\np2028\ng35\n(S'Variable_Type'\n(I2\nttRp2029\nsS'Y:PMachine42 - CSISCO21'\np2030\ng35\n(S'Variable_Type'\n(I2\nttRp2031\nsS'Y:PMachine138 - CLUCCI39'\np2032\ng35\n(S'Variable_Type'\n(I1\nttRp2033\nsS'Y:PMachine112 - CSAMPO31'\np2034\ng35\n(S'Variable_Type'\n(I2\nttRp2035\nsS'Y:VBus105 - CPROPR32'\np2036\ng35\n(S'Variable_Type'\n(I2\nttRp2037\nsS'Y:VBus1 - CBONIF11'\np2038\ng35\n(S'Variable_Type'\n(I2\nttRp2039\nsS'Y:VBus12 - CBASTI21'\np2040\ng35\n(S'Variable_Type'\n(I2\nttRp2041\nsS'Y:PMachine129 - CVAZZI310'\np2042\ng35\n(S'Variable_Type'\n(I2\nttRp2043\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np2044\ng35\n(S'Variable_Type'\n(I1\nttRp2045\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np2046\ng35\n(S'Variable_Type'\n(I1\nttRp2047\nsS'Y:VBus54 - CBASTI32'\np2048\ng35\n(S'Variable_Type'\n(I2\nttRp2049\nsS'Y:VBus69 - CCASAM37'\np2050\ng35\n(S'Variable_Type'\n(I2\nttRp2051\nsS'Y:VBus45 - CTOLLA21'\np2052\ng35\n(S'Variable_Type'\n(I2\nttRp2053\nsS'Y:PMachine115 - CTAGLI31'\np2054\ng35\n(S'Variable_Type'\n(I2\nttRp2055\nsS'Y:PMachine77 - CCORTE32'\np2056\ng35\n(S'Variable_Type'\n(I2\nttRp2057\nsS'Y:VBus43 - CSOVEN21'\np2058\ng35\n(S'Variable_Type'\n(I2\nttRp2059\nsS'Y:VBus76 - CCORTE31'\np2060\ng35\n(S'Variable_Type'\n(I2\nttRp2061\nsS'Y:VBus75 - CCORSC31'\np2062\ng35\n(S'Variable_Type'\n(I2\nttRp2063\nsS'Y:PMachine78 - CFURIA31'\np2064\ng35\n(S'Variable_Type'\n(I1\nttRp2065\nsS'Y:VBus127 - CVAZZI38'\np2066\ng35\n(S'Variable_Type'\n(I2\nttRp2067\nsS'Y:VBus115 - CTAGLI31'\np2068\ng35\n(S'Variable_Type'\n(I2\nttRp2069\nsS'Y:Load 61 - CCALVI31'\np2070\ng35\n(S'Variable_Type'\n(I2\nttRp2071\nsS'Y:VBus55 - CBIGUG31'\np2072\ng35\n(S'Variable_Type'\n(I2\nttRp2073\nsS'Y:Load 42 - CSISCO21'\np2074\ng35\n(S'Variable_Type'\n(I2\nttRp2075\nsS'Y:VBus72 - CCASTI31'\np2076\ng35\n(S'Variable_Type'\n(I2\nttRp2077\nsS'Y:Load 37 - CRIZZA21'\np2078\ng35\n(S'Variable_Type'\n(I2\nttRp2079\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np2080\ng35\n(S'Variable_Type'\n(I2\nttRp2081\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np2082\ng35\n(S'Variable_Type'\n(I2\nttRp2083\nsS'Y:PMachine137 - CLUCCI38'\np2084\ng35\n(S'Variable_Type'\n(I1\nttRp2085\nsS'Y:PMachine67 - CCASAM35'\np2086\ng35\n(S'Variable_Type'\n(I2\nttRp2087\nsS'INTERCOS'\np2088\ng35\n(S'Variable_Type'\n(I2\nttRp2089\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np2090\ng35\n(S'Variable_Type'\n(I1\nttRp2091\nsS'Y:VBus31 - CMOROS21'\np2092\ng35\n(S'Variable_Type'\n(I2\nttRp2093\nsS'Y:VBus103 - CPORTO32'\np2094\ng35\n(S'Variable_Type'\n(I2\nttRp2095\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np2096\ng35\n(S'Variable_Type'\n(I1\nttRp2097\nsS'Y:PMachine128 - CVAZZI39'\np2098\ng35\n(S'Variable_Type'\n(I2\nttRp2099\nsS'Y:PMachine72 - CCASTI31'\np2100\ng35\n(S'Variable_Type'\n(I2\nttRp2101\nsS'Y:VBus27 - CILERO21'\np2102\ng35\n(S'Variable_Type'\n(I2\nttRp2103\nsS'Y:PMachine75 - CCORSC31'\np2104\ng35\n(S'Variable_Type'\n(I2\nttRp2105\nsS'Y:Load 51 - CASPRE31'\np2106\ng35\n(S'Variable_Type'\n(I2\nttRp2107\nsS'Y:PMachine61 - CCALVI31'\np2108\ng35\n(S'Variable_Type'\n(I1\nttRp2109\nsS'Y:VBus51 - CASPRE31'\np2110\ng35\n(S'Variable_Type'\n(I2\nttRp2111\nsS'Y:VBus114 - CSOVEN31'\np2112\ng35\n(S'Variable_Type'\n(I2\nttRp2113\nsS'Y:Load 82 - CILERO31'\np2114\ng35\n(S'Variable_Type'\n(I2\nttRp2115\nsS'Y:VBus116 - CTOLLA31'\np2116\ng35\n(S'Variable_Type'\n(I2\nttRp2117\nsS'Y:Load 86 - CLUCCI31'\np2118\ng35\n(S'Variable_Type'\n(I2\nttRp2119\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np2120\ng35\n(S'Variable_Type'\n(I2\nttRp2121\nsS'Y:Load 57 - CBONIF31'\np2122\ng35\n(S'Variable_Type'\n(I2\nttRp2123\nsS'Y:PMachine104 - CPROPR31'\np2124\ng35\n(S'Variable_Type'\n(I2\nttRp2125\nsS'Y:VBus128 - CVAZZI39'\np2126\ng35\n(S'Variable_Type'\n(I2\nttRp2127\nsS'Y:PMachine136 - CLUCCI37'\np2128\ng35\n(S'Variable_Type'\n(I1\nttRp2129\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np2130\ng35\n(S'Variable_Type'\n(I2\nttRp2131\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np2132\ng35\n(S'Variable_Type'\n(I2\nttRp2133\nsS'Y:PMachine68 - CCASAM36'\np2134\ng35\n(S'Variable_Type'\n(I2\nttRp2135\nsS'Y:PMachine29 - CLUCCI21'\np2136\ng35\n(S'Variable_Type'\n(I1\nttRp2137\nsS'Y:VBus42 - CSISCO21'\np2138\ng35\n(S'Variable_Type'\n(I2\nttRp2139\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np2140\ng35\n(S'Variable_Type'\n(I1\nttRp2141\nsS'Y:VBus14 - CBONIF21'\np2142\ng35\n(S'Variable_Type'\n(I2\nttRp2143\nsS'Y:VBus73 - CCASTI32'\np2144\ng35\n(S'Variable_Type'\n(I2\nttRp2145\nsS'Y:VBus64 - CCASAM32'\np2146\ng35\n(S'Variable_Type'\n(I2\nttRp2147\nsS'Y:PMachine14 - CBONIF21'\np2148\ng35\n(S'Variable_Type'\n(I1\nttRp2149\nsS'Y:PMachine62 - CCALVI32'\np2150\ng35\n(S'Variable_Type'\n(I2\nttRp2151\nsS'Y:VBus133 - CVAZZI314'\np2152\ng35\n(S'Variable_Type'\n(I2\nttRp2153\nsS'Y:VBus63 - CCASAM31'\np2154\ng35\n(S'Variable_Type'\n(I2\nttRp2155\nsS'Y:PMachine101 - CPIETR31'\np2156\ng35\n(S'Variable_Type'\n(I2\nttRp2157\nsS'Y:%Losses'\np2158\ng35\n(S'Variable_Type'\n(I2\nttRp2159\nsS'Y:VBus85 - CLORET32'\np2160\ng35\n(S'Variable_Type'\n(I2\nttRp2161\nsS'Y:Load 59 - CCALDA31'\np2162\ng35\n(S'Variable_Type'\n(I2\nttRp2163\nsS'Y:VBus129 - CVAZZI310'\np2164\ng35\n(S'Variable_Type'\n(I2\nttRp2165\nsS'Y:VBus101 - CPIETR31'\np2166\ng35\n(S'Variable_Type'\n(I2\nttRp2167\nsS'Y:PMachine106 - CRIZZA31'\np2168\ng35\n(S'Variable_Type'\n(I2\nttRp2169\nsS'Y:VBus132 - CVAZZI313'\np2170\ng35\n(S'Variable_Type'\n(I2\nttRp2171\nsS'Y:PMachine118 - CTOLLA33'\np2172\ng35\n(S'Variable_Type'\n(I2\nttRp2173\nsS'Y:VBus19 - CCASTI21'\np2174\ng35\n(S'Variable_Type'\n(I2\nttRp2175\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np2176\ng35\n(S'Variable_Type'\n(I2\nttRp2177\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np2178\ng35\n(S'Variable_Type'\n(I1\nttRp2179\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np2180\ng35\n(S'Variable_Type'\n(I2\nttRp2181\nsS'Y:Load 115 - CTAGLI31'\np2182\ng1909\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np2183\ng35\n(S'Variable_Type'\n(I2\nttRp2184\nsS'Y:VBus79 - CFURIA32'\np2185\ng35\n(S'Variable_Type'\n(I2\nttRp2186\nsS'Y:PMachine47 - CVAZZI21'\np2187\ng35\n(S'Variable_Type'\n(I1\nttRp2188\nsS'Y:VBus123 - CVAZZI34'\np2189\ng35\n(S'Variable_Type'\n(I2\nttRp2190\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np2191\ng35\n(S'Variable_Type'\n(I2\nttRp2192\nsS'Y:VBus60 - CCALDA32'\np2193\ng35\n(S'Variable_Type'\n(I2\nttRp2194\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np2195\ng35\n(S'Variable_Type'\n(I2\nttRp2196\nsS'Y:VBus65 - CCASAM33'\np2197\ng35\n(S'Variable_Type'\n(I2\nttRp2198\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np2199\ng35\n(S'Variable_Type'\n(I1\nttRp2200\nsS'Y:PMachine139 - CLUCCI310'\np2201\ng35\n(S'Variable_Type'\n(I1\nttRp2202\nsS'Y:VBus112 - CSAMPO31'\np2203\ng35\n(S'Variable_Type'\n(I2\nttRp2204\nsS'Y:VBus68 - CCASAM36'\np2205\ng35\n(S'Variable_Type'\n(I2\nttRp2206\nsS'Y:Load 55 - CBIGUG31'\np2207\ng35\n(S'Variable_Type'\n(I2\nttRp2208\nsS'Y:PMachine53 - CBASTI31'\np2209\ng35\n(S'Variable_Type'\n(I2\nttRp2210\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np2211\ng35\n(S'Variable_Type'\n(I2\nttRp2212\nsS'Y:VBus24 - CFURIA21'\np2213\ng35\n(S'Variable_Type'\n(I2\nttRp2214\nsS'Y:VBus23 - CCORTE22'\np2215\ng35\n(S'Variable_Type'\n(I2\nttRp2216\nsS'Y:VBus18 - CCASAM21'\np2217\ng35\n(S'Variable_Type'\n(I2\nttRp2218\nsS'Y:VBus40 - CSTMAR21'\np2219\ng35\n(S'Variable_Type'\n(I2\nttRp2220\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np2221\ng35\n(S'Variable_Type'\n(I2\nttRp2222\nsS'Y:PMachine124 - CVAZZI35'\np2223\ng35\n(S'Variable_Type'\n(I2\nttRp2224\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np2225\ng35\n(S'Variable_Type'\n(I2\nttRp2226\nsS'Y:PMachine117 - CTOLLA32'\np2227\ng35\n(S'Variable_Type'\n(I2\nttRp2228\nsS'Y:VBus89 - CLUCCI34'\np2229\ng35\n(S'Variable_Type'\n(I2\nttRp2230\nsS'Y:VBus33 - COLETT21'\np2231\ng35\n(S'Variable_Type'\n(I2\nttRp2232\nsS'Y:VBus32 - COCANA21'\np2233\ng35\n(S'Variable_Type'\n(I2\nttRp2234\nsS'Y:PMachine121 - CVAZZI32'\np2235\ng35\n(S'Variable_Type'\n(I2\nttRp2236\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np2237\ng35\n(S'Variable_Type'\n(I1\nttRp2238\nsS'Y:VBus82 - CILERO31'\np2239\ng35\n(S'Variable_Type'\n(I2\nttRp2240\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np2241\ng35\n(S'Variable_Type'\n(I2\nttRp2242\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np2243\ng35\n(S'Variable_Type'\n(I2\nttRp2244\nsS'Y:VBus37 - CRIZZA21'\np2245\ng35\n(S'Variable_Type'\n(I2\nttRp2246\nsS'Y:PMachine73 - CCASTI32'\np2247\ng35\n(S'Variable_Type'\n(I2\nttRp2248\nsS'Y:PMachine86 - CLUCCI31'\np2249\ng35\n(S'Variable_Type'\n(I2\nttRp2250\nsS'Y:Load 53 - CBASTI31'\np2251\ng35\n(S'Variable_Type'\n(I2\nttRp2252\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np2253\ng35\n(S'Variable_Type'\n(I2\nttRp2254\nsS'Y:VBus21 - CCORSC21'\np2255\ng35\n(S'Variable_Type'\n(I2\nttRp2256\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np2257\ng35\n(S'Variable_Type'\n(I2\nttRp2258\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np2259\ng35\n(S'Variable_Type'\n(I2\nttRp2260\nsS'Y:PMachine126 - CVAZZI37'\np2261\ng35\n(S'Variable_Type'\n(I2\nttRp2262\nsS'Y:PMachine64 - CCASAM32'\np2263\ng35\n(S'Variable_Type'\n(I2\nttRp2264\nsS'Y:VBus67 - CCASAM35'\np2265\ng35\n(S'Variable_Type'\n(I2\nttRp2266\nsS'Y:VBus53 - CBASTI31'\np2267\ng35\n(S'Variable_Type'\n(I2\nttRp2268\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np2269\ng35\n(S'Variable_Type'\n(I2\nttRp2270\nsS'Y:VBus61 - CCALVI31'\np2271\ng35\n(S'Variable_Type'\n(I2\nttRp2272\nsS'Y:VBus93 - COCANA32'\np2273\ng35\n(S'Variable_Type'\n(I2\nttRp2274\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np2275\ng35\n(S'Variable_Type'\n(I2\nttRp2276\nsS'Y:NbeTransit_0.9-1'\np2277\ng35\n(S'Variable_Type'\n(I1\nttRp2278\nsS'Y:VBus104 - CPROPR31'\np2279\ng35\n(S'Variable_Type'\n(I2\nttRp2280\nsS'Y:VBus22 - CCORTE21'\np2281\ng35\n(S'Variable_Type'\n(I2\nttRp2282\nsS'Y:VBus48 - CZSSS621'\np2283\ng35\n(S'Variable_Type'\n(I2\nttRp2284\nsS'Y:PMachine85 - CLORET32'\np2285\ng35\n(S'Variable_Type'\n(I2\nttRp2286\nsS'Y:Max%A'\np2287\ng35\n(S'Variable_Type'\n(I2\nttRp2288\nsS'Y:VBus36 - CPROPR21'\np2289\ng35\n(S'Variable_Type'\n(I2\nttRp2290\nsS'Y:Load 100 - COLETT31'\np2291\ng35\n(S'Variable_Type'\n(I2\nttRp2292\nsS'Y:PMachine54 - CBASTI32'\np2293\ng35\n(S'Variable_Type'\n(I2\nttRp2294\nsS'Y:VBus138 - CLUCCI39'\np2295\ng35\n(S'Variable_Type'\n(I2\nttRp2296\nsS'Y:VBus39 - CSTLUC21'\np2297\ng35\n(S'Variable_Type'\n(I2\nttRp2298\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np2299\ng35\n(S'Variable_Type'\n(I2\nttRp2300\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np2301\ng35\n(S'Variable_Type'\n(I2\nttRp2302\nsS'Y:Load 78 - CFURIA31'\np2303\ng35\n(S'Variable_Type'\n(I2\nttRp2304\nsS'Y:Load 74 - CCERVI31'\np2305\ng35\n(S'Variable_Type'\n(I2\nttRp2306\nsS'Y:VBus28 - CLORET21'\np2307\ng35\n(S'Variable_Type'\n(I2\nttRp2308\nsS'Y:PMachine105 - CPROPR32'\np2309\ng35\n(S'Variable_Type'\n(I2\nttRp2310\nsS'Y:VBus96 - COCANA35'\np2311\ng35\n(S'Variable_Type'\n(I2\nttRp2312\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np2313\ng35\n(S'Variable_Type'\n(I1\nttRp2314\nsS'Y:PMachine18 - CCASAM21'\np2315\ng35\n(S'Variable_Type'\n(I1\nttRp2316\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np2317\ng35\n(S'Variable_Type'\n(I2\nttRp2318\nsS'Y:VBus13 - CBIGUG21'\np2319\ng35\n(S'Variable_Type'\n(I2\nttRp2320\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np2321\ng35\n(S'Variable_Type'\n(I2\nttRp2322\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np2323\ng35\n(S'Variable_Type'\n(I2\nttRp2324\nsS'Y:VBus29 - CLUCCI21'\np2325\ng35\n(S'Variable_Type'\n(I2\nttRp2326\nsS'Y:VBus58 - CBONIF32'\np2327\ng35\n(S'Variable_Type'\n(I2\nttRp2328\nsS'Y:VBus84 - CLORET31'\np2329\ng35\n(S'Variable_Type'\n(I2\nttRp2330\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np2331\ng35\n(S'Variable_Type'\n(I1\nttRp2332\nsS'Y:VBus97 - COCANA36'\np2333\ng35\n(S'Variable_Type'\n(I2\nttRp2334\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np2335\ng35\n(S'Variable_Type'\n(I1\nttRp2336\nsS'Y:VBus15 - CBONIF22'\np2337\ng35\n(S'Variable_Type'\n(I2\nttRp2338\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np2339\ng35\n(S'Variable_Type'\n(I2\nttRp2340\nsS'Y:Load 110 - CSTLUC31'\np2341\ng35\n(S'Variable_Type'\n(I2\nttRp2342\nsS'Y:VBus80 - CGHISO31'\np2343\ng35\n(S'Variable_Type'\n(I2\nttRp2344\nsS'Y:PMachine114 - CSOVEN31'\np2345\ng35\n(S'Variable_Type'\n(I2\nttRp2346\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np2347\ng35\n(S'Variable_Type'\n(I1\nttRp2348\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np2349\ng35\n(S'Variable_Type'\n(I2\nttRp2350\nsS'Y:PMachine93 - COCANA32'\np2351\ng35\n(S'Variable_Type'\n(I2\nttRp2352\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np2353\ng35\n(S'Variable_Type'\n(I1\nttRp2354\nsS'Y:VBus87 - CLUCCI32'\np2355\ng35\n(S'Variable_Type'\n(I2\nttRp2356\nsS'Y:VBus62 - CCALVI32'\np2357\ng35\n(S'Variable_Type'\n(I2\nttRp2358\nsS'CASA_DIESEL'\np2359\ng35\n(S'Variable_Type'\n(I2\nttRp2360\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np2361\ng35\n(S'Variable_Type'\n(I1\nttRp2362\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np2363\ng35\n(S'Variable_Type'\n(I1\nttRp2364\nsS'Y:VBus81 - CGHISO32'\np2365\ng35\n(S'Variable_Type'\n(I2\nttRp2366\nsS'Y:PMachine74 - CCERVI31'\np2367\ng35\n(S'Variable_Type'\n(I2\nttRp2368\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np2369\ng35\n(S'Variable_Type'\n(I2\nttRp2370\nsS'EOL_ALL'\np2371\ng35\n(S'Variable_Type'\n(I2\nttRp2372\nsS'X:Load(pu)'\np2373\ng1902\nsS'Y:NbeTension'\np2374\ng35\n(S'Variable_Type'\n(I2\nttRp2375\nsS'Y:VBus95 - COCANA34'\np2376\ng35\n(S'Variable_Type'\n(I2\nttRp2377\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np2378\ng35\n(S'Variable_Type'\n(I2\nttRp2379\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np2380\ng35\n(S'Variable_Type'\n(I2\nttRp2381\nsS'Y:Load 95 - COCANA34'\np2382\ng35\n(S'Variable_Type'\n(I2\nttRp2383\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np2384\ng35\n(S'Variable_Type'\n(I1\nttRp2385\nsS'Y:PMachine90 - CMOROS31'\np2386\ng35\n(S'Variable_Type'\n(I2\nttRp2387\nsS'Y:Load 101 - CPIETR31'\np2388\ng35\n(S'Variable_Type'\n(I2\nttRp2389\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np2390\ng35\n(S'Variable_Type'\n(I1\nttRp2391\nsS'Y:PMachine132 - CVAZZI313'\np2392\ng35\n(S'Variable_Type'\n(I2\nttRp2393\nsS'Y:VBus125 - CVAZZI36'\np2394\ng35\n(S'Variable_Type'\n(I2\nttRp2395\nsS'Y:VBus135 - CLUCCI36'\np2396\ng35\n(S'Variable_Type'\n(I2\nttRp2397\nsS'Y:VBus47 - CVAZZI21'\np2398\ng35\n(S'Variable_Type'\n(I2\nttRp2399\nsS'Y:VBus94 - COCANA33'\np2400\ng35\n(S'Variable_Type'\n(I2\nttRp2401\nsS'Y:VBus17 - CCALVI21'\np2402\ng35\n(S'Variable_Type'\n(I2\nttRp2403\nsS'Y:Load 90 - CMOROS31'\np2404\ng35\n(S'Variable_Type'\n(I2\nttRp2405\nsS'Y:VBus120 - CVAZZI31'\np2406\ng35\n(S'Variable_Type'\n(I2\nttRp2407\nsS'X:ProdPV%Pnom'\np2408\ng35\n(S'Variable_Type'\n(I2\nttRp2409\nsS'Y:VBus52 - CASPRE32'\np2410\ng35\n(S'Variable_Type'\n(I2\nttRp2411\nsS'Y:VBus25 - CFURIA22'\np2412\ng35\n(S'Variable_Type'\n(I2\nttRp2413\nsS'Y:Load 76 - CCORTE31'\np2414\ng35\n(S'Variable_Type'\n(I2\nttRp2415\nsS'Y:PMachine69 - CCASAM37'\np2416\ng35\n(S'Variable_Type'\n(I2\nttRp2417\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np2418\ng35\n(S'Variable_Type'\n(I2\nttRp2419\nsS'Y:PMachine92 - COCANA31'\np2420\ng35\n(S'Variable_Type'\n(I2\nttRp2421\nsS'Y:VBus35 - CPORTO21'\np2422\ng35\n(S'Variable_Type'\n(I2\nttRp2423\nsS'VAZZIO_TAC'\np2424\ng35\n(S'Variable_Type'\n(I2\nttRp2425\nsS'Y:PMachine122 - CVAZZI33'\np2426\ng35\n(S'Variable_Type'\n(I2\nttRp2427\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np2428\ng35\n(S'Variable_Type'\n(I1\nttRp2429\nsS'Y:PMachine63 - CCASAM31'\np2430\ng35\n(S'Variable_Type'\n(I2\nttRp2431\nsS'Y:VBus74 - CCERVI31'\np2432\ng35\n(S'Variable_Type'\n(I2\nttRp2433\nsS'Y:VBus126 - CVAZZI37'\np2434\ng35\n(S'Variable_Type'\n(I2\nttRp2435\nsS'Y:PMachine60 - CCALDA32'\np2436\ng35\n(S'Variable_Type'\n(I2\nttRp2437\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np2438\ng35\n(S'Variable_Type'\n(I1\nttRp2439\nsS'Y:VBus20 - CCERVI21'\np2440\ng35\n(S'Variable_Type'\n(I2\nttRp2441\nsS'Y:VBus119 - CTRAVO31'\np2442\ng35\n(S'Variable_Type'\n(I2\nttRp2443\nsS'Y:VBus11 - CASPRE21'\np2444\ng35\n(S'Variable_Type'\n(I2\nttRp2445\nsS'Y:VBus139 - CLUCCI310'\np2446\ng35\n(S'Variable_Type'\n(I2\nttRp2447\nsS'Y:VBus106 - CRIZZA31'\np2448\ng35\n(S'Variable_Type'\n(I2\nttRp2449\nsS'Y:PMachine66 - CCASAM34'\np2450\ng35\n(S'Variable_Type'\n(I2\nttRp2451\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np2452\ng35\n(S'Variable_Type'\n(I2\nttRp2453\nsS'Y:VBus136 - CLUCCI37'\np2454\ng35\n(S'Variable_Type'\n(I2\nttRp2455\nsS'Y:VBus90 - CMOROS31'\np2456\ng35\n(S'Variable_Type'\n(I2\nttRp2457\nsS'PV_ALL'\np2458\ng35\n(S'Variable_Type'\n(I2\nttRp2459\nsS'X:lineOff#'\np2460\ng35\n(S'Variable_Type'\n(I2\nttRp2461\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np2462\ng35\n(S'Variable_Type'\n(I2\nttRp2463\nsS'Y:VBus108 - CSAGON31'\np2464\ng35\n(S'Variable_Type'\n(I2\nttRp2465\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np2466\ng35\n(S'Variable_Type'\n(I2\nttRp2467\nsS'Y:VBus137 - CLUCCI38'\np2468\ng35\n(S'Variable_Type'\n(I2\nttRp2469\nsS'Y:VBus130 - CVAZZI311'\np2470\ng35\n(S'Variable_Type'\n(I2\nttRp2471\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np2472\ng35\n(S'Variable_Type'\n(I2\nttRp2473\nsS'Y:VBus46 - CTRAVO21'\np2474\ng35\n(S'Variable_Type'\n(I2\nttRp2475\nsS'Y:VBus113 - CSAMPO32'\np2476\ng35\n(S'Variable_Type'\n(I2\nttRp2477\nsS'Y:PMachine133 - CVAZZI314'\np2478\ng35\n(S'Variable_Type'\n(I2\nttRp2479\nsS'Y:PMachine65 - CCASAM33'\np2480\ng35\n(S'Variable_Type'\n(I2\nttRp2481\nsS'Y:VBus78 - CFURIA31'\np2482\ng35\n(S'Variable_Type'\n(I2\nttRp2483\nsS'Y:VBus26 - CGHISO21'\np2484\ng35\n(S'Variable_Type'\n(I2\nttRp2485\nsS'Y:VBus121 - CVAZZI32'\np2486\ng35\n(S'Variable_Type'\n(I2\nttRp2487\nsS'Y:PMachine97 - COCANA36'\np2488\ng35\n(S'Variable_Type'\n(I2\nttRp2489\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np2490\ng35\n(S'Variable_Type'\n(I2\nttRp2491\nsS'Y:PMachine83 - CILERO32'\np2492\ng35\n(S'Variable_Type'\n(I2\nttRp2493\nsS'Y:VBus83 - CILERO32'\np2494\ng35\n(S'Variable_Type'\n(I2\nttRp2495\nsS'Y:VBus66 - CCASAM34'\np2496\ng35\n(S'Variable_Type'\n(I2\nttRp2497\nsS'Y:PMachine1 - CBONIF11'\np2498\ng35\n(S'Variable_Type'\n(I2\nttRp2499\nsS'Y:VBus111 - CSTMAR31'\np2500\ng35\n(S'Variable_Type'\n(I2\nttRp2501\nsS'Y:VBus124 - CVAZZI35'\np2502\ng35\n(S'Variable_Type'\n(I2\nttRp2503\nsS'VAZZIO_DIESEL'\np2504\ng35\n(S'Variable_Type'\n(I2\nttRp2505\nsS'Y:PMachine131 - CVAZZI312'\np2506\ng35\n(S'Variable_Type'\n(I2\nttRp2507\nsS'Y:VBus44 - CTAGLI21'\np2508\ng35\n(S'Variable_Type'\n(I2\nttRp2509\nsS'Y:VBus88 - CLUCCI33'\np2510\ng35\n(S'Variable_Type'\n(I2\nttRp2511\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np2512\ng35\n(S'Variable_Type'\n(I1\nttRp2513\nsS'Y:VBus38 - CSAGON21'\np2514\ng35\n(S'Variable_Type'\n(I2\nttRp2515\nsS'Y:PMachine81 - CGHISO32'\np2516\ng35\n(S'Variable_Type'\n(I2\nttRp2517\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np2518\ng35\n(S'Variable_Type'\n(I2\nttRp2519\nsS'Y:VBus110 - CSTLUC31'\np2520\ng35\n(S'Variable_Type'\n(I2\nttRp2521\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np2522\ng35\n(S'Variable_Type'\n(I2\nttRp2523\nssg650\n(lp2524\ng652\nasba(iOWContexts\nContext\np2525\n(dp2526\ng24\n(lp2527\nsg26\n(dp2528\nsg28\n(dp2529\ng1897\n(S''\nI-1\ntp2530\nsg1899\n(S''\nI0\ntp2531\nsg1901\n(g1281\ng35\n(S'Variable_Type'\n(I2\nttRp2532\ntp2533\nsg1904\n(g1284\ng2532\ntp2534\nsg1906\n(S''\nI0\ntp2535\nsg1908\n(g1287\ng35\n(S'Variable_Type'\n(I2\nttRp2536\ntp2537\nssg46\nF1369994938.898\nsg47\n(dp2538\nS'Y:PMachine134 - CLUCCI35'\np2539\ng35\n(S'Variable_Type'\n(I1\nttRp2540\nsS'Y:VBus77 - CCORTE32'\np2541\ng35\n(S'Variable_Type'\n(I2\nttRp2542\nsS'Y:VBus134 - CLUCCI35'\np2543\ng35\n(S'Variable_Type'\n(I2\nttRp2544\nsS'Y:VBus109 - CSAGON32'\np2545\ng35\n(S'Variable_Type'\n(I2\nttRp2546\nsS'Y:VBus102 - CPORTO31'\np2547\ng35\n(S'Variable_Type'\n(I2\nttRp2548\nsS'XProdEolienne%Pnom'\np2549\ng35\n(S'Variable_Type'\n(I1\nttRp2550\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np2551\ng35\n(S'Variable_Type'\n(I2\nttRp2552\nsS'Y:PMachine94 - COCANA33'\np2553\ng35\n(S'Variable_Type'\n(I2\nttRp2554\nsS'Y:VBus117 - CTOLLA32'\np2555\ng35\n(S'Variable_Type'\n(I2\nttRp2556\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np2557\ng35\n(S'Variable_Type'\n(I2\nttRp2558\nsS'Y:PMachine87 - CLUCCI32'\np2559\ng35\n(S'Variable_Type'\n(I2\nttRp2560\nsS'Y:PMachine113 - CSAMPO32'\np2561\ng35\n(S'Variable_Type'\n(I2\nttRp2562\nsS'Y:Load 84 - CLORET31'\np2563\ng35\n(S'Variable_Type'\n(I2\nttRp2564\nsS'Y:PMachine89 - CLUCCI34'\np2565\ng35\n(S'Variable_Type'\n(I1\nttRp2566\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np2567\ng35\n(S'Variable_Type'\n(I2\nttRp2568\nsS'Y:Load 80 - CGHISO31'\np2569\ng35\n(S'Variable_Type'\n(I2\nttRp2570\nsS'Y:PMachine125 - CVAZZI36'\np2571\ng35\n(S'Variable_Type'\n(I2\nttRp2572\nsS'Y:PMachine116 - CTOLLA31'\np2573\ng35\n(S'Variable_Type'\n(I2\nttRp2574\nsS'Y:PMachine88 - CLUCCI33'\np2575\ng35\n(S'Variable_Type'\n(I1\nttRp2576\nsS'Y:PMachine120 - CVAZZI31'\np2577\ng35\n(S'Variable_Type'\n(I2\nttRp2578\nsS'Y:PMachine111 - CSTMAR31'\np2579\ng35\n(S'Variable_Type'\n(I2\nttRp2580\nsS'Y:NbeTransit'\np2581\ng35\n(S'Variable_Type'\n(I1\nttRp2582\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np2583\ng35\n(S'Variable_Type'\n(I2\nttRp2584\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np2585\ng35\n(S'Variable_Type'\n(I2\nttRp2586\nsS'Y:VBus92 - COCANA31'\np2587\ng35\n(S'Variable_Type'\n(I2\nttRp2588\nsS'Y:PMachine130 - CVAZZI311'\np2589\ng35\n(S'Variable_Type'\n(I2\nttRp2590\nsS'Y:PMachine127 - CVAZZI38'\np2591\ng35\n(S'Variable_Type'\n(I2\nttRp2592\nsS'Y:VBus131 - CVAZZI312'\np2593\ng35\n(S'Variable_Type'\n(I2\nttRp2594\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np2595\ng35\n(S'Variable_Type'\n(I2\nttRp2596\nsS'Y:PMachine123 - CVAZZI34'\np2597\ng35\n(S'Variable_Type'\n(I2\nttRp2598\nsS'Y:VBus118 - CTOLLA33'\np2599\ng35\n(S'Variable_Type'\n(I2\nttRp2600\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np2601\ng35\n(S'Variable_Type'\n(I1\nttRp2602\nsS'Y:PMachine58 - CBONIF32'\np2603\ng35\n(S'Variable_Type'\n(I2\nttRp2604\nsS'Y:Load 104 - CPROPR31'\np2605\ng35\n(S'Variable_Type'\n(I2\nttRp2606\nsS'Y:PMachine30 - CLUCCI22'\np2607\ng35\n(S'Variable_Type'\n(I1\nttRp2608\nsS'Y:VBus100 - COLETT31'\np2609\ng35\n(S'Variable_Type'\n(I2\nttRp2610\nsS'Y:PProdTot'\np2611\ng35\n(S'Variable_Type'\n(I2\nttRp2612\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np2613\ng35\n(S'Variable_Type'\n(I1\nttRp2614\nsS'Y:VBus57 - CBONIF31'\np2615\ng35\n(S'Variable_Type'\n(I2\nttRp2616\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np2617\ng35\n(S'Variable_Type'\n(I2\nttRp2618\nsS'Y:PConsoTot'\np2619\ng35\n(S'Variable_Type'\n(I2\nttRp2620\nsS'Iteration'\np2621\ng35\n(S'Variable_Type'\n(I2\nttRp2622\nsS'Y:PMachine109 - CSAGON32'\np2623\ng35\n(S'Variable_Type'\n(I2\nttRp2624\nsS'Y:PMachine135 - CLUCCI36'\np2625\ng35\n(S'Variable_Type'\n(I1\nttRp2626\nsS'Y:VBus30 - CLUCCI22'\np2627\ng35\n(S'Variable_Type'\n(I2\nttRp2628\nsS'Y:VBus122 - CVAZZI33'\np2629\ng35\n(S'Variable_Type'\n(I2\nttRp2630\nsS'Y:VBus86 - CLUCCI31'\np2631\ng35\n(S'Variable_Type'\n(I2\nttRp2632\nsS'Y:PMachine102 - CPORTO31'\np2633\ng35\n(S'Variable_Type'\n(I2\nttRp2634\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np2635\ng35\n(S'Variable_Type'\n(I1\nttRp2636\nsS'Y:PMachine107 - CRIZZA32'\np2637\ng35\n(S'Variable_Type'\n(I2\nttRp2638\nsS'Y:VBus16 - CCALDA21'\np2639\ng35\n(S'Variable_Type'\n(I2\nttRp2640\nsS'Y:Load 102 - CPORTO31'\np2641\ng35\n(S'Variable_Type'\n(I2\nttRp2642\nsS'Y:VBus107 - CRIZZA32'\np2643\ng35\n(S'Variable_Type'\n(I2\nttRp2644\nsS'Y:VBus59 - CCALDA31'\np2645\ng35\n(S'Variable_Type'\n(I2\nttRp2646\nsS'Y:VBus41 - CSAMPO21'\np2647\ng35\n(S'Variable_Type'\n(I2\nttRp2648\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np2649\ng35\n(S'Variable_Type'\n(I2\nttRp2650\nsS'Y:VBus34 - CPIETR21'\np2651\ng35\n(S'Variable_Type'\n(I2\nttRp2652\nsS'Y:Load 108 - CSAGON31'\np2653\ng35\n(S'Variable_Type'\n(I2\nttRp2654\nsS'Y:VBus56 - CBIGUG32'\np2655\ng35\n(S'Variable_Type'\n(I2\nttRp2656\nsS'Y:PMachine42 - CSISCO21'\np2657\ng35\n(S'Variable_Type'\n(I2\nttRp2658\nsS'Y:PMachine138 - CLUCCI39'\np2659\ng35\n(S'Variable_Type'\n(I1\nttRp2660\nsS'Y:PMachine112 - CSAMPO31'\np2661\ng35\n(S'Variable_Type'\n(I2\nttRp2662\nsS'Y:VBus105 - CPROPR32'\np2663\ng35\n(S'Variable_Type'\n(I2\nttRp2664\nsS'Y:VBus1 - CBONIF11'\np2665\ng35\n(S'Variable_Type'\n(I2\nttRp2666\nsS'Y:VBus12 - CBASTI21'\np2667\ng35\n(S'Variable_Type'\n(I2\nttRp2668\nsS'Y:PMachine129 - CVAZZI310'\np2669\ng35\n(S'Variable_Type'\n(I2\nttRp2670\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np2671\ng35\n(S'Variable_Type'\n(I1\nttRp2672\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np2673\ng35\n(S'Variable_Type'\n(I1\nttRp2674\nsS'Y:VBus54 - CBASTI32'\np2675\ng35\n(S'Variable_Type'\n(I2\nttRp2676\nsS'Y:VBus69 - CCASAM37'\np2677\ng35\n(S'Variable_Type'\n(I2\nttRp2678\nsS'Y:VBus45 - CTOLLA21'\np2679\ng35\n(S'Variable_Type'\n(I2\nttRp2680\nsS'Y:PMachine115 - CTAGLI31'\np2681\ng35\n(S'Variable_Type'\n(I2\nttRp2682\nsS'Y:PMachine77 - CCORTE32'\np2683\ng35\n(S'Variable_Type'\n(I2\nttRp2684\nsS'Y:VBus43 - CSOVEN21'\np2685\ng35\n(S'Variable_Type'\n(I2\nttRp2686\nsS'Y:VBus76 - CCORTE31'\np2687\ng35\n(S'Variable_Type'\n(I2\nttRp2688\nsS'Y:VBus75 - CCORSC31'\np2689\ng35\n(S'Variable_Type'\n(I2\nttRp2690\nsS'Y:PMachine78 - CFURIA31'\np2691\ng35\n(S'Variable_Type'\n(I1\nttRp2692\nsS'Y:VBus127 - CVAZZI38'\np2693\ng35\n(S'Variable_Type'\n(I2\nttRp2694\nsS'Y:VBus115 - CTAGLI31'\np2695\ng35\n(S'Variable_Type'\n(I2\nttRp2696\nsS'Y:Load 61 - CCALVI31'\np2697\ng35\n(S'Variable_Type'\n(I2\nttRp2698\nsS'Y:VBus55 - CBIGUG31'\np2699\ng35\n(S'Variable_Type'\n(I2\nttRp2700\nsS'Y:Load 42 - CSISCO21'\np2701\ng35\n(S'Variable_Type'\n(I2\nttRp2702\nsS'Y:VBus72 - CCASTI31'\np2703\ng35\n(S'Variable_Type'\n(I2\nttRp2704\nsS'Y:Load 37 - CRIZZA21'\np2705\ng35\n(S'Variable_Type'\n(I2\nttRp2706\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np2707\ng35\n(S'Variable_Type'\n(I2\nttRp2708\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np2709\ng35\n(S'Variable_Type'\n(I2\nttRp2710\nsS'Y:PMachine137 - CLUCCI38'\np2711\ng35\n(S'Variable_Type'\n(I1\nttRp2712\nsS'Y:PMachine67 - CCASAM35'\np2713\ng35\n(S'Variable_Type'\n(I2\nttRp2714\nsS'INTERCOS'\np2715\ng35\n(S'Variable_Type'\n(I2\nttRp2716\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np2717\ng35\n(S'Variable_Type'\n(I1\nttRp2718\nsS'Y:VBus31 - CMOROS21'\np2719\ng35\n(S'Variable_Type'\n(I2\nttRp2720\nsS'Y:VBus103 - CPORTO32'\np2721\ng35\n(S'Variable_Type'\n(I2\nttRp2722\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np2723\ng35\n(S'Variable_Type'\n(I1\nttRp2724\nsS'Y:PMachine128 - CVAZZI39'\np2725\ng35\n(S'Variable_Type'\n(I2\nttRp2726\nsS'Y:PMachine72 - CCASTI31'\np2727\ng35\n(S'Variable_Type'\n(I2\nttRp2728\nsS'Y:VBus27 - CILERO21'\np2729\ng35\n(S'Variable_Type'\n(I2\nttRp2730\nsS'Y:PMachine75 - CCORSC31'\np2731\ng35\n(S'Variable_Type'\n(I2\nttRp2732\nsS'Y:Load 51 - CASPRE31'\np2733\ng35\n(S'Variable_Type'\n(I2\nttRp2734\nsS'Y:PMachine61 - CCALVI31'\np2735\ng35\n(S'Variable_Type'\n(I1\nttRp2736\nsS'Y:VBus51 - CASPRE31'\np2737\ng35\n(S'Variable_Type'\n(I2\nttRp2738\nsS'Y:VBus114 - CSOVEN31'\np2739\ng35\n(S'Variable_Type'\n(I2\nttRp2740\nsS'Y:Load 82 - CILERO31'\np2741\ng35\n(S'Variable_Type'\n(I2\nttRp2742\nsS'Y:VBus116 - CTOLLA31'\np2743\ng35\n(S'Variable_Type'\n(I2\nttRp2744\nsS'Y:Load 86 - CLUCCI31'\np2745\ng35\n(S'Variable_Type'\n(I2\nttRp2746\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np2747\ng35\n(S'Variable_Type'\n(I2\nttRp2748\nsS'Y:Load 57 - CBONIF31'\np2749\ng35\n(S'Variable_Type'\n(I2\nttRp2750\nsS'Y:PMachine104 - CPROPR31'\np2751\ng35\n(S'Variable_Type'\n(I2\nttRp2752\nsS'Y:VBus128 - CVAZZI39'\np2753\ng35\n(S'Variable_Type'\n(I2\nttRp2754\nsS'Y:PMachine136 - CLUCCI37'\np2755\ng35\n(S'Variable_Type'\n(I1\nttRp2756\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np2757\ng35\n(S'Variable_Type'\n(I2\nttRp2758\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np2759\ng35\n(S'Variable_Type'\n(I2\nttRp2760\nsS'Y:PMachine68 - CCASAM36'\np2761\ng35\n(S'Variable_Type'\n(I2\nttRp2762\nsS'Y:PMachine29 - CLUCCI21'\np2763\ng35\n(S'Variable_Type'\n(I1\nttRp2764\nsS'Y:VBus42 - CSISCO21'\np2765\ng35\n(S'Variable_Type'\n(I2\nttRp2766\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np2767\ng35\n(S'Variable_Type'\n(I1\nttRp2768\nsS'Y:VBus14 - CBONIF21'\np2769\ng35\n(S'Variable_Type'\n(I2\nttRp2770\nsS'Y:VBus73 - CCASTI32'\np2771\ng35\n(S'Variable_Type'\n(I2\nttRp2772\nsS'Y:VBus64 - CCASAM32'\np2773\ng35\n(S'Variable_Type'\n(I2\nttRp2774\nsS'Y:PMachine14 - CBONIF21'\np2775\ng35\n(S'Variable_Type'\n(I1\nttRp2776\nsS'Y:PMachine62 - CCALVI32'\np2777\ng35\n(S'Variable_Type'\n(I2\nttRp2778\nsS'Y:VBus133 - CVAZZI314'\np2779\ng35\n(S'Variable_Type'\n(I2\nttRp2780\nsS'Y:VBus63 - CCASAM31'\np2781\ng35\n(S'Variable_Type'\n(I2\nttRp2782\nsS'Y:PMachine101 - CPIETR31'\np2783\ng35\n(S'Variable_Type'\n(I2\nttRp2784\nsS'Y:%Losses'\np2785\ng35\n(S'Variable_Type'\n(I2\nttRp2786\nsS'Y:VBus85 - CLORET32'\np2787\ng35\n(S'Variable_Type'\n(I2\nttRp2788\nsS'Y:Load 59 - CCALDA31'\np2789\ng35\n(S'Variable_Type'\n(I2\nttRp2790\nsS'Y:VBus129 - CVAZZI310'\np2791\ng35\n(S'Variable_Type'\n(I2\nttRp2792\nsS'Y:VBus101 - CPIETR31'\np2793\ng35\n(S'Variable_Type'\n(I2\nttRp2794\nsS'Y:PMachine106 - CRIZZA31'\np2795\ng35\n(S'Variable_Type'\n(I2\nttRp2796\nsS'Y:VBus132 - CVAZZI313'\np2797\ng35\n(S'Variable_Type'\n(I2\nttRp2798\nsS'Y:PMachine118 - CTOLLA33'\np2799\ng35\n(S'Variable_Type'\n(I2\nttRp2800\nsS'Y:VBus19 - CCASTI21'\np2801\ng35\n(S'Variable_Type'\n(I2\nttRp2802\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np2803\ng35\n(S'Variable_Type'\n(I2\nttRp2804\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np2805\ng35\n(S'Variable_Type'\n(I1\nttRp2806\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np2807\ng35\n(S'Variable_Type'\n(I2\nttRp2808\nsS'Y:Load 115 - CTAGLI31'\np2809\ng2536\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np2810\ng35\n(S'Variable_Type'\n(I2\nttRp2811\nsS'Y:VBus79 - CFURIA32'\np2812\ng35\n(S'Variable_Type'\n(I2\nttRp2813\nsS'Y:PMachine47 - CVAZZI21'\np2814\ng35\n(S'Variable_Type'\n(I1\nttRp2815\nsS'Y:VBus123 - CVAZZI34'\np2816\ng35\n(S'Variable_Type'\n(I2\nttRp2817\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np2818\ng35\n(S'Variable_Type'\n(I2\nttRp2819\nsS'Y:VBus60 - CCALDA32'\np2820\ng35\n(S'Variable_Type'\n(I2\nttRp2821\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np2822\ng35\n(S'Variable_Type'\n(I2\nttRp2823\nsS'Y:VBus65 - CCASAM33'\np2824\ng35\n(S'Variable_Type'\n(I2\nttRp2825\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np2826\ng35\n(S'Variable_Type'\n(I1\nttRp2827\nsS'Y:PMachine139 - CLUCCI310'\np2828\ng35\n(S'Variable_Type'\n(I1\nttRp2829\nsS'Y:VBus112 - CSAMPO31'\np2830\ng35\n(S'Variable_Type'\n(I2\nttRp2831\nsS'Y:VBus68 - CCASAM36'\np2832\ng35\n(S'Variable_Type'\n(I2\nttRp2833\nsS'Y:Load 55 - CBIGUG31'\np2834\ng35\n(S'Variable_Type'\n(I2\nttRp2835\nsS'Y:PMachine53 - CBASTI31'\np2836\ng35\n(S'Variable_Type'\n(I2\nttRp2837\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np2838\ng35\n(S'Variable_Type'\n(I2\nttRp2839\nsS'Y:VBus24 - CFURIA21'\np2840\ng35\n(S'Variable_Type'\n(I2\nttRp2841\nsS'Y:VBus23 - CCORTE22'\np2842\ng35\n(S'Variable_Type'\n(I2\nttRp2843\nsS'Y:VBus18 - CCASAM21'\np2844\ng35\n(S'Variable_Type'\n(I2\nttRp2845\nsS'Y:VBus40 - CSTMAR21'\np2846\ng35\n(S'Variable_Type'\n(I2\nttRp2847\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np2848\ng35\n(S'Variable_Type'\n(I2\nttRp2849\nsS'Y:PMachine124 - CVAZZI35'\np2850\ng35\n(S'Variable_Type'\n(I2\nttRp2851\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np2852\ng35\n(S'Variable_Type'\n(I2\nttRp2853\nsS'Y:PMachine117 - CTOLLA32'\np2854\ng35\n(S'Variable_Type'\n(I2\nttRp2855\nsS'Y:VBus89 - CLUCCI34'\np2856\ng35\n(S'Variable_Type'\n(I2\nttRp2857\nsS'Y:VBus33 - COLETT21'\np2858\ng35\n(S'Variable_Type'\n(I2\nttRp2859\nsS'Y:VBus32 - COCANA21'\np2860\ng35\n(S'Variable_Type'\n(I2\nttRp2861\nsS'Y:PMachine121 - CVAZZI32'\np2862\ng35\n(S'Variable_Type'\n(I2\nttRp2863\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np2864\ng35\n(S'Variable_Type'\n(I1\nttRp2865\nsS'Y:VBus82 - CILERO31'\np2866\ng35\n(S'Variable_Type'\n(I2\nttRp2867\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np2868\ng35\n(S'Variable_Type'\n(I2\nttRp2869\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np2870\ng35\n(S'Variable_Type'\n(I2\nttRp2871\nsS'Y:VBus37 - CRIZZA21'\np2872\ng35\n(S'Variable_Type'\n(I2\nttRp2873\nsS'Y:PMachine73 - CCASTI32'\np2874\ng35\n(S'Variable_Type'\n(I2\nttRp2875\nsS'Y:PMachine86 - CLUCCI31'\np2876\ng35\n(S'Variable_Type'\n(I2\nttRp2877\nsS'Y:Load 53 - CBASTI31'\np2878\ng35\n(S'Variable_Type'\n(I2\nttRp2879\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np2880\ng35\n(S'Variable_Type'\n(I2\nttRp2881\nsS'Y:VBus21 - CCORSC21'\np2882\ng35\n(S'Variable_Type'\n(I2\nttRp2883\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np2884\ng35\n(S'Variable_Type'\n(I2\nttRp2885\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np2886\ng35\n(S'Variable_Type'\n(I2\nttRp2887\nsS'Y:PMachine126 - CVAZZI37'\np2888\ng35\n(S'Variable_Type'\n(I2\nttRp2889\nsS'Y:PMachine64 - CCASAM32'\np2890\ng35\n(S'Variable_Type'\n(I2\nttRp2891\nsS'Y:VBus67 - CCASAM35'\np2892\ng35\n(S'Variable_Type'\n(I2\nttRp2893\nsS'Y:VBus53 - CBASTI31'\np2894\ng35\n(S'Variable_Type'\n(I2\nttRp2895\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np2896\ng35\n(S'Variable_Type'\n(I2\nttRp2897\nsS'Y:VBus61 - CCALVI31'\np2898\ng35\n(S'Variable_Type'\n(I2\nttRp2899\nsS'Y:VBus93 - COCANA32'\np2900\ng35\n(S'Variable_Type'\n(I2\nttRp2901\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np2902\ng35\n(S'Variable_Type'\n(I2\nttRp2903\nsS'Y:NbeTransit_0.9-1'\np2904\ng35\n(S'Variable_Type'\n(I1\nttRp2905\nsS'Y:VBus104 - CPROPR31'\np2906\ng35\n(S'Variable_Type'\n(I2\nttRp2907\nsS'Y:VBus22 - CCORTE21'\np2908\ng35\n(S'Variable_Type'\n(I2\nttRp2909\nsS'Y:VBus48 - CZSSS621'\np2910\ng35\n(S'Variable_Type'\n(I2\nttRp2911\nsS'Y:PMachine85 - CLORET32'\np2912\ng35\n(S'Variable_Type'\n(I2\nttRp2913\nsS'Y:Max%A'\np2914\ng35\n(S'Variable_Type'\n(I2\nttRp2915\nsS'Y:VBus36 - CPROPR21'\np2916\ng35\n(S'Variable_Type'\n(I2\nttRp2917\nsS'Y:Load 100 - COLETT31'\np2918\ng35\n(S'Variable_Type'\n(I2\nttRp2919\nsS'Y:PMachine54 - CBASTI32'\np2920\ng35\n(S'Variable_Type'\n(I2\nttRp2921\nsS'Y:VBus138 - CLUCCI39'\np2922\ng35\n(S'Variable_Type'\n(I2\nttRp2923\nsS'Y:VBus39 - CSTLUC21'\np2924\ng35\n(S'Variable_Type'\n(I2\nttRp2925\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np2926\ng35\n(S'Variable_Type'\n(I2\nttRp2927\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np2928\ng35\n(S'Variable_Type'\n(I2\nttRp2929\nsS'Y:Load 78 - CFURIA31'\np2930\ng35\n(S'Variable_Type'\n(I2\nttRp2931\nsS'Y:Load 74 - CCERVI31'\np2932\ng35\n(S'Variable_Type'\n(I2\nttRp2933\nsS'Y:VBus28 - CLORET21'\np2934\ng35\n(S'Variable_Type'\n(I2\nttRp2935\nsS'Y:PMachine105 - CPROPR32'\np2936\ng35\n(S'Variable_Type'\n(I2\nttRp2937\nsS'Y:VBus96 - COCANA35'\np2938\ng35\n(S'Variable_Type'\n(I2\nttRp2939\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np2940\ng35\n(S'Variable_Type'\n(I1\nttRp2941\nsS'Y:PMachine18 - CCASAM21'\np2942\ng35\n(S'Variable_Type'\n(I1\nttRp2943\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np2944\ng35\n(S'Variable_Type'\n(I2\nttRp2945\nsS'Y:VBus13 - CBIGUG21'\np2946\ng35\n(S'Variable_Type'\n(I2\nttRp2947\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np2948\ng35\n(S'Variable_Type'\n(I2\nttRp2949\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np2950\ng35\n(S'Variable_Type'\n(I2\nttRp2951\nsS'Y:VBus29 - CLUCCI21'\np2952\ng35\n(S'Variable_Type'\n(I2\nttRp2953\nsS'Y:VBus58 - CBONIF32'\np2954\ng35\n(S'Variable_Type'\n(I2\nttRp2955\nsS'Y:VBus84 - CLORET31'\np2956\ng35\n(S'Variable_Type'\n(I2\nttRp2957\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np2958\ng35\n(S'Variable_Type'\n(I1\nttRp2959\nsS'Y:VBus97 - COCANA36'\np2960\ng35\n(S'Variable_Type'\n(I2\nttRp2961\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np2962\ng35\n(S'Variable_Type'\n(I1\nttRp2963\nsS'Y:VBus15 - CBONIF22'\np2964\ng35\n(S'Variable_Type'\n(I2\nttRp2965\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np2966\ng35\n(S'Variable_Type'\n(I2\nttRp2967\nsS'Y:Load 110 - CSTLUC31'\np2968\ng35\n(S'Variable_Type'\n(I2\nttRp2969\nsS'Y:VBus80 - CGHISO31'\np2970\ng35\n(S'Variable_Type'\n(I2\nttRp2971\nsS'Y:PMachine114 - CSOVEN31'\np2972\ng35\n(S'Variable_Type'\n(I2\nttRp2973\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np2974\ng35\n(S'Variable_Type'\n(I1\nttRp2975\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np2976\ng35\n(S'Variable_Type'\n(I2\nttRp2977\nsS'Y:PMachine93 - COCANA32'\np2978\ng35\n(S'Variable_Type'\n(I2\nttRp2979\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np2980\ng35\n(S'Variable_Type'\n(I1\nttRp2981\nsS'Y:VBus87 - CLUCCI32'\np2982\ng35\n(S'Variable_Type'\n(I2\nttRp2983\nsS'Y:VBus62 - CCALVI32'\np2984\ng35\n(S'Variable_Type'\n(I2\nttRp2985\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np2986\ng35\n(S'Variable_Type'\n(I1\nttRp2987\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np2988\ng35\n(S'Variable_Type'\n(I1\nttRp2989\nsS'Y:VBus81 - CGHISO32'\np2990\ng35\n(S'Variable_Type'\n(I2\nttRp2991\nsS'Y:PMachine74 - CCERVI31'\np2992\ng35\n(S'Variable_Type'\n(I2\nttRp2993\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np2994\ng35\n(S'Variable_Type'\n(I2\nttRp2995\nsS'EOL_ALL'\np2996\ng35\n(S'Variable_Type'\n(I2\nttRp2997\nsS'X:Load(pu)'\np2998\ng2532\nsS'Y:NbeTension'\np2999\ng35\n(S'Variable_Type'\n(I2\nttRp3000\nsS'Y:VBus95 - COCANA34'\np3001\ng35\n(S'Variable_Type'\n(I2\nttRp3002\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np3003\ng35\n(S'Variable_Type'\n(I2\nttRp3004\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np3005\ng35\n(S'Variable_Type'\n(I2\nttRp3006\nsS'Y:Load 95 - COCANA34'\np3007\ng35\n(S'Variable_Type'\n(I2\nttRp3008\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np3009\ng35\n(S'Variable_Type'\n(I1\nttRp3010\nsS'Y:PMachine90 - CMOROS31'\np3011\ng35\n(S'Variable_Type'\n(I2\nttRp3012\nsS'Y:Load 101 - CPIETR31'\np3013\ng35\n(S'Variable_Type'\n(I2\nttRp3014\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np3015\ng35\n(S'Variable_Type'\n(I1\nttRp3016\nsS'Y:PMachine132 - CVAZZI313'\np3017\ng35\n(S'Variable_Type'\n(I2\nttRp3018\nsS'Y:VBus125 - CVAZZI36'\np3019\ng35\n(S'Variable_Type'\n(I2\nttRp3020\nsS'Y:VBus135 - CLUCCI36'\np3021\ng35\n(S'Variable_Type'\n(I2\nttRp3022\nsS'Y:VBus47 - CVAZZI21'\np3023\ng35\n(S'Variable_Type'\n(I2\nttRp3024\nsS'Y:VBus94 - COCANA33'\np3025\ng35\n(S'Variable_Type'\n(I2\nttRp3026\nsS'Y:VBus17 - CCALVI21'\np3027\ng35\n(S'Variable_Type'\n(I2\nttRp3028\nsS'Y:Load 90 - CMOROS31'\np3029\ng35\n(S'Variable_Type'\n(I2\nttRp3030\nsS'Y:VBus120 - CVAZZI31'\np3031\ng35\n(S'Variable_Type'\n(I2\nttRp3032\nsS'X:ProdPV%Pnom'\np3033\ng35\n(S'Variable_Type'\n(I2\nttRp3034\nsS'Y:VBus52 - CASPRE32'\np3035\ng35\n(S'Variable_Type'\n(I2\nttRp3036\nsS'Y:VBus25 - CFURIA22'\np3037\ng35\n(S'Variable_Type'\n(I2\nttRp3038\nsS'Y:Load 76 - CCORTE31'\np3039\ng35\n(S'Variable_Type'\n(I2\nttRp3040\nsS'Y:PMachine69 - CCASAM37'\np3041\ng35\n(S'Variable_Type'\n(I2\nttRp3042\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np3043\ng35\n(S'Variable_Type'\n(I2\nttRp3044\nsS'Y:PMachine92 - COCANA31'\np3045\ng35\n(S'Variable_Type'\n(I2\nttRp3046\nsS'Y:VBus35 - CPORTO21'\np3047\ng35\n(S'Variable_Type'\n(I2\nttRp3048\nsS'VAZZIO_TAC'\np3049\ng35\n(S'Variable_Type'\n(I2\nttRp3050\nsS'Y:PMachine122 - CVAZZI33'\np3051\ng35\n(S'Variable_Type'\n(I2\nttRp3052\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np3053\ng35\n(S'Variable_Type'\n(I1\nttRp3054\nsS'Y:PMachine63 - CCASAM31'\np3055\ng35\n(S'Variable_Type'\n(I2\nttRp3056\nsS'Y:VBus74 - CCERVI31'\np3057\ng35\n(S'Variable_Type'\n(I2\nttRp3058\nsS'Y:VBus126 - CVAZZI37'\np3059\ng35\n(S'Variable_Type'\n(I2\nttRp3060\nsS'Y:PMachine60 - CCALDA32'\np3061\ng35\n(S'Variable_Type'\n(I2\nttRp3062\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np3063\ng35\n(S'Variable_Type'\n(I1\nttRp3064\nsS'Y:VBus20 - CCERVI21'\np3065\ng35\n(S'Variable_Type'\n(I2\nttRp3066\nsS'Y:VBus119 - CTRAVO31'\np3067\ng35\n(S'Variable_Type'\n(I2\nttRp3068\nsS'Y:VBus11 - CASPRE21'\np3069\ng35\n(S'Variable_Type'\n(I2\nttRp3070\nsS'Y:VBus139 - CLUCCI310'\np3071\ng35\n(S'Variable_Type'\n(I2\nttRp3072\nsS'Y:VBus106 - CRIZZA31'\np3073\ng35\n(S'Variable_Type'\n(I2\nttRp3074\nsS'Y:PMachine66 - CCASAM34'\np3075\ng35\n(S'Variable_Type'\n(I2\nttRp3076\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np3077\ng35\n(S'Variable_Type'\n(I2\nttRp3078\nsS'Y:VBus136 - CLUCCI37'\np3079\ng35\n(S'Variable_Type'\n(I2\nttRp3080\nsS'Y:VBus90 - CMOROS31'\np3081\ng35\n(S'Variable_Type'\n(I2\nttRp3082\nsS'PV_ALL'\np3083\ng35\n(S'Variable_Type'\n(I2\nttRp3084\nsS'X:lineOff#'\np3085\ng35\n(S'Variable_Type'\n(I2\nttRp3086\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np3087\ng35\n(S'Variable_Type'\n(I2\nttRp3088\nsS'Y:VBus108 - CSAGON31'\np3089\ng35\n(S'Variable_Type'\n(I2\nttRp3090\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np3091\ng35\n(S'Variable_Type'\n(I2\nttRp3092\nsS'Y:VBus137 - CLUCCI38'\np3093\ng35\n(S'Variable_Type'\n(I2\nttRp3094\nsS'Y:VBus130 - CVAZZI311'\np3095\ng35\n(S'Variable_Type'\n(I2\nttRp3096\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np3097\ng35\n(S'Variable_Type'\n(I2\nttRp3098\nsS'Y:VBus46 - CTRAVO21'\np3099\ng35\n(S'Variable_Type'\n(I2\nttRp3100\nsS'Y:VBus113 - CSAMPO32'\np3101\ng35\n(S'Variable_Type'\n(I2\nttRp3102\nsS'Y:PMachine133 - CVAZZI314'\np3103\ng35\n(S'Variable_Type'\n(I2\nttRp3104\nsS'Y:PMachine65 - CCASAM33'\np3105\ng35\n(S'Variable_Type'\n(I2\nttRp3106\nsS'Y:VBus78 - CFURIA31'\np3107\ng35\n(S'Variable_Type'\n(I2\nttRp3108\nsS'Y:VBus26 - CGHISO21'\np3109\ng35\n(S'Variable_Type'\n(I2\nttRp3110\nsS'Y:VBus121 - CVAZZI32'\np3111\ng35\n(S'Variable_Type'\n(I2\nttRp3112\nsS'Y:PMachine97 - COCANA36'\np3113\ng35\n(S'Variable_Type'\n(I2\nttRp3114\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np3115\ng35\n(S'Variable_Type'\n(I2\nttRp3116\nsS'Y:PMachine83 - CILERO32'\np3117\ng35\n(S'Variable_Type'\n(I2\nttRp3118\nsS'Y:VBus83 - CILERO32'\np3119\ng35\n(S'Variable_Type'\n(I2\nttRp3120\nsS'Y:VBus66 - CCASAM34'\np3121\ng35\n(S'Variable_Type'\n(I2\nttRp3122\nsS'Y:PMachine1 - CBONIF11'\np3123\ng35\n(S'Variable_Type'\n(I2\nttRp3124\nsS'Y:VBus111 - CSTMAR31'\np3125\ng35\n(S'Variable_Type'\n(I2\nttRp3126\nsS'Y:VBus124 - CVAZZI35'\np3127\ng35\n(S'Variable_Type'\n(I2\nttRp3128\nsS'VAZZIO_DIESEL'\np3129\ng35\n(S'Variable_Type'\n(I2\nttRp3130\nsS'Y:PMachine131 - CVAZZI312'\np3131\ng35\n(S'Variable_Type'\n(I2\nttRp3132\nsS'Y:VBus44 - CTAGLI21'\np3133\ng35\n(S'Variable_Type'\n(I2\nttRp3134\nsS'Y:VBus88 - CLUCCI33'\np3135\ng35\n(S'Variable_Type'\n(I2\nttRp3136\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np3137\ng35\n(S'Variable_Type'\n(I1\nttRp3138\nsS'Y:VBus38 - CSAGON21'\np3139\ng35\n(S'Variable_Type'\n(I2\nttRp3140\nsS'Y:PMachine81 - CGHISO32'\np3141\ng35\n(S'Variable_Type'\n(I2\nttRp3142\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np3143\ng35\n(S'Variable_Type'\n(I2\nttRp3144\nsS'Y:VBus110 - CSTLUC31'\np3145\ng35\n(S'Variable_Type'\n(I2\nttRp3146\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np3147\ng35\n(S'Variable_Type'\n(I2\nttRp3148\nssg650\n(lp3149\ng652\nasba(iOWContexts\nContext\np3150\n(dp3151\ng24\n(lp3152\nsg26\n(dp3153\nsg28\n(dp3154\ng1897\n(S''\nI-1\ntp3155\nsg1899\n(S''\nI0\ntp3156\nsg1901\n(g1281\ng35\n(S'Variable_Type'\n(I2\nttRp3157\ntp3158\nsg1904\n(g1284\ng3157\ntp3159\nsg1906\n(S''\nI0\ntp3160\nsg1908\n(g1287\ng35\n(S'Variable_Type'\n(I2\nttRp3161\ntp3162\nssg46\nF1369994938.898\nsg47\n(dp3163\nS'Y:PMachine134 - CLUCCI35'\np3164\ng35\n(S'Variable_Type'\n(I1\nttRp3165\nsS'Y:VBus77 - CCORTE32'\np3166\ng35\n(S'Variable_Type'\n(I2\nttRp3167\nsS'Y:VBus134 - CLUCCI35'\np3168\ng35\n(S'Variable_Type'\n(I2\nttRp3169\nsS'Y:VBus109 - CSAGON32'\np3170\ng35\n(S'Variable_Type'\n(I2\nttRp3171\nsS'Y:VBus102 - CPORTO31'\np3172\ng35\n(S'Variable_Type'\n(I2\nttRp3173\nsS'XProdEolienne%Pnom'\np3174\ng35\n(S'Variable_Type'\n(I1\nttRp3175\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np3176\ng35\n(S'Variable_Type'\n(I2\nttRp3177\nsS'Y:PMachine94 - COCANA33'\np3178\ng35\n(S'Variable_Type'\n(I2\nttRp3179\nsS'Y:VBus117 - CTOLLA32'\np3180\ng35\n(S'Variable_Type'\n(I2\nttRp3181\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np3182\ng35\n(S'Variable_Type'\n(I2\nttRp3183\nsS'Y:PMachine87 - CLUCCI32'\np3184\ng35\n(S'Variable_Type'\n(I2\nttRp3185\nsS'Y:PMachine113 - CSAMPO32'\np3186\ng35\n(S'Variable_Type'\n(I2\nttRp3187\nsS'Y:Load 84 - CLORET31'\np3188\ng35\n(S'Variable_Type'\n(I2\nttRp3189\nsS'Y:PMachine89 - CLUCCI34'\np3190\ng35\n(S'Variable_Type'\n(I1\nttRp3191\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np3192\ng35\n(S'Variable_Type'\n(I2\nttRp3193\nsS'Y:Load 80 - CGHISO31'\np3194\ng35\n(S'Variable_Type'\n(I2\nttRp3195\nsS'Y:PMachine125 - CVAZZI36'\np3196\ng35\n(S'Variable_Type'\n(I2\nttRp3197\nsS'Y:PMachine116 - CTOLLA31'\np3198\ng35\n(S'Variable_Type'\n(I2\nttRp3199\nsS'Y:PMachine88 - CLUCCI33'\np3200\ng35\n(S'Variable_Type'\n(I1\nttRp3201\nsS'Y:PMachine120 - CVAZZI31'\np3202\ng35\n(S'Variable_Type'\n(I2\nttRp3203\nsS'Y:PMachine111 - CSTMAR31'\np3204\ng35\n(S'Variable_Type'\n(I2\nttRp3205\nsS'Y:NbeTransit'\np3206\ng35\n(S'Variable_Type'\n(I1\nttRp3207\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np3208\ng35\n(S'Variable_Type'\n(I2\nttRp3209\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np3210\ng35\n(S'Variable_Type'\n(I2\nttRp3211\nsS'Y:VBus92 - COCANA31'\np3212\ng35\n(S'Variable_Type'\n(I2\nttRp3213\nsS'Y:PMachine130 - CVAZZI311'\np3214\ng35\n(S'Variable_Type'\n(I2\nttRp3215\nsS'Y:PMachine127 - CVAZZI38'\np3216\ng35\n(S'Variable_Type'\n(I2\nttRp3217\nsS'Y:VBus131 - CVAZZI312'\np3218\ng35\n(S'Variable_Type'\n(I2\nttRp3219\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np3220\ng35\n(S'Variable_Type'\n(I2\nttRp3221\nsS'Y:PMachine123 - CVAZZI34'\np3222\ng35\n(S'Variable_Type'\n(I2\nttRp3223\nsS'Y:VBus118 - CTOLLA33'\np3224\ng35\n(S'Variable_Type'\n(I2\nttRp3225\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np3226\ng35\n(S'Variable_Type'\n(I1\nttRp3227\nsS'Y:PMachine58 - CBONIF32'\np3228\ng35\n(S'Variable_Type'\n(I2\nttRp3229\nsS'Y:Load 104 - CPROPR31'\np3230\ng35\n(S'Variable_Type'\n(I2\nttRp3231\nsS'Y:PMachine30 - CLUCCI22'\np3232\ng35\n(S'Variable_Type'\n(I1\nttRp3233\nsS'Y:VBus100 - COLETT31'\np3234\ng35\n(S'Variable_Type'\n(I2\nttRp3235\nsS'Y:PProdTot'\np3236\ng35\n(S'Variable_Type'\n(I2\nttRp3237\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np3238\ng35\n(S'Variable_Type'\n(I1\nttRp3239\nsS'Y:VBus57 - CBONIF31'\np3240\ng35\n(S'Variable_Type'\n(I2\nttRp3241\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np3242\ng35\n(S'Variable_Type'\n(I2\nttRp3243\nsS'Y:PConsoTot'\np3244\ng35\n(S'Variable_Type'\n(I2\nttRp3245\nsS'Iteration'\np3246\ng35\n(S'Variable_Type'\n(I2\nttRp3247\nsS'Y:PMachine109 - CSAGON32'\np3248\ng35\n(S'Variable_Type'\n(I2\nttRp3249\nsS'Y:PMachine135 - CLUCCI36'\np3250\ng35\n(S'Variable_Type'\n(I1\nttRp3251\nsS'Y:VBus30 - CLUCCI22'\np3252\ng35\n(S'Variable_Type'\n(I2\nttRp3253\nsS'Y:VBus122 - CVAZZI33'\np3254\ng35\n(S'Variable_Type'\n(I2\nttRp3255\nsS'Y:VBus86 - CLUCCI31'\np3256\ng35\n(S'Variable_Type'\n(I2\nttRp3257\nsS'Y:PMachine102 - CPORTO31'\np3258\ng35\n(S'Variable_Type'\n(I2\nttRp3259\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np3260\ng35\n(S'Variable_Type'\n(I1\nttRp3261\nsS'Y:PMachine107 - CRIZZA32'\np3262\ng35\n(S'Variable_Type'\n(I2\nttRp3263\nsS'Y:VBus16 - CCALDA21'\np3264\ng35\n(S'Variable_Type'\n(I2\nttRp3265\nsS'Y:Load 102 - CPORTO31'\np3266\ng35\n(S'Variable_Type'\n(I2\nttRp3267\nsS'Y:VBus107 - CRIZZA32'\np3268\ng35\n(S'Variable_Type'\n(I2\nttRp3269\nsS'Y:VBus59 - CCALDA31'\np3270\ng35\n(S'Variable_Type'\n(I2\nttRp3271\nsS'Y:VBus41 - CSAMPO21'\np3272\ng35\n(S'Variable_Type'\n(I2\nttRp3273\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np3274\ng35\n(S'Variable_Type'\n(I2\nttRp3275\nsS'Y:VBus34 - CPIETR21'\np3276\ng35\n(S'Variable_Type'\n(I2\nttRp3277\nsS'Y:Load 108 - CSAGON31'\np3278\ng35\n(S'Variable_Type'\n(I2\nttRp3279\nsS'Y:VBus56 - CBIGUG32'\np3280\ng35\n(S'Variable_Type'\n(I2\nttRp3281\nsS'Y:PMachine42 - CSISCO21'\np3282\ng35\n(S'Variable_Type'\n(I2\nttRp3283\nsS'Y:PMachine138 - CLUCCI39'\np3284\ng35\n(S'Variable_Type'\n(I1\nttRp3285\nsS'Y:PMachine112 - CSAMPO31'\np3286\ng35\n(S'Variable_Type'\n(I2\nttRp3287\nsS'Y:VBus105 - CPROPR32'\np3288\ng35\n(S'Variable_Type'\n(I2\nttRp3289\nsS'Y:VBus1 - CBONIF11'\np3290\ng35\n(S'Variable_Type'\n(I2\nttRp3291\nsS'Y:VBus12 - CBASTI21'\np3292\ng35\n(S'Variable_Type'\n(I2\nttRp3293\nsS'Y:PMachine129 - CVAZZI310'\np3294\ng35\n(S'Variable_Type'\n(I2\nttRp3295\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np3296\ng35\n(S'Variable_Type'\n(I1\nttRp3297\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np3298\ng35\n(S'Variable_Type'\n(I1\nttRp3299\nsS'Y:VBus54 - CBASTI32'\np3300\ng35\n(S'Variable_Type'\n(I2\nttRp3301\nsS'Y:VBus69 - CCASAM37'\np3302\ng35\n(S'Variable_Type'\n(I2\nttRp3303\nsS'Y:VBus45 - CTOLLA21'\np3304\ng35\n(S'Variable_Type'\n(I2\nttRp3305\nsS'Y:PMachine115 - CTAGLI31'\np3306\ng35\n(S'Variable_Type'\n(I2\nttRp3307\nsS'Y:PMachine77 - CCORTE32'\np3308\ng35\n(S'Variable_Type'\n(I2\nttRp3309\nsS'Y:VBus43 - CSOVEN21'\np3310\ng35\n(S'Variable_Type'\n(I2\nttRp3311\nsS'Y:VBus76 - CCORTE31'\np3312\ng35\n(S'Variable_Type'\n(I2\nttRp3313\nsS'Y:VBus75 - CCORSC31'\np3314\ng35\n(S'Variable_Type'\n(I2\nttRp3315\nsS'Y:PMachine78 - CFURIA31'\np3316\ng35\n(S'Variable_Type'\n(I1\nttRp3317\nsS'Y:VBus127 - CVAZZI38'\np3318\ng35\n(S'Variable_Type'\n(I2\nttRp3319\nsS'Y:VBus115 - CTAGLI31'\np3320\ng35\n(S'Variable_Type'\n(I2\nttRp3321\nsS'Y:Load 61 - CCALVI31'\np3322\ng35\n(S'Variable_Type'\n(I2\nttRp3323\nsS'Y:VBus55 - CBIGUG31'\np3324\ng35\n(S'Variable_Type'\n(I2\nttRp3325\nsS'Y:Load 42 - CSISCO21'\np3326\ng35\n(S'Variable_Type'\n(I2\nttRp3327\nsS'Y:VBus72 - CCASTI31'\np3328\ng35\n(S'Variable_Type'\n(I2\nttRp3329\nsS'Y:Load 37 - CRIZZA21'\np3330\ng35\n(S'Variable_Type'\n(I2\nttRp3331\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np3332\ng35\n(S'Variable_Type'\n(I2\nttRp3333\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np3334\ng35\n(S'Variable_Type'\n(I2\nttRp3335\nsS'Y:PMachine137 - CLUCCI38'\np3336\ng35\n(S'Variable_Type'\n(I1\nttRp3337\nsS'Y:PMachine67 - CCASAM35'\np3338\ng35\n(S'Variable_Type'\n(I2\nttRp3339\nsS'INTERCOS'\np3340\ng35\n(S'Variable_Type'\n(I2\nttRp3341\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np3342\ng35\n(S'Variable_Type'\n(I1\nttRp3343\nsS'Y:VBus31 - CMOROS21'\np3344\ng35\n(S'Variable_Type'\n(I2\nttRp3345\nsS'Y:VBus103 - CPORTO32'\np3346\ng35\n(S'Variable_Type'\n(I2\nttRp3347\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np3348\ng35\n(S'Variable_Type'\n(I1\nttRp3349\nsS'Y:PMachine128 - CVAZZI39'\np3350\ng35\n(S'Variable_Type'\n(I2\nttRp3351\nsS'Y:PMachine72 - CCASTI31'\np3352\ng35\n(S'Variable_Type'\n(I2\nttRp3353\nsS'Y:VBus27 - CILERO21'\np3354\ng35\n(S'Variable_Type'\n(I2\nttRp3355\nsS'Y:PMachine75 - CCORSC31'\np3356\ng35\n(S'Variable_Type'\n(I2\nttRp3357\nsS'Y:Load 51 - CASPRE31'\np3358\ng35\n(S'Variable_Type'\n(I2\nttRp3359\nsS'Y:PMachine61 - CCALVI31'\np3360\ng35\n(S'Variable_Type'\n(I1\nttRp3361\nsS'Y:VBus51 - CASPRE31'\np3362\ng35\n(S'Variable_Type'\n(I2\nttRp3363\nsS'Y:VBus114 - CSOVEN31'\np3364\ng35\n(S'Variable_Type'\n(I2\nttRp3365\nsS'Y:Load 82 - CILERO31'\np3366\ng35\n(S'Variable_Type'\n(I2\nttRp3367\nsS'Y:VBus116 - CTOLLA31'\np3368\ng35\n(S'Variable_Type'\n(I2\nttRp3369\nsS'Y:Load 86 - CLUCCI31'\np3370\ng35\n(S'Variable_Type'\n(I2\nttRp3371\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np3372\ng35\n(S'Variable_Type'\n(I2\nttRp3373\nsS'Y:Load 57 - CBONIF31'\np3374\ng35\n(S'Variable_Type'\n(I2\nttRp3375\nsS'Y:PMachine104 - CPROPR31'\np3376\ng35\n(S'Variable_Type'\n(I2\nttRp3377\nsS'Y:VBus128 - CVAZZI39'\np3378\ng35\n(S'Variable_Type'\n(I2\nttRp3379\nsS'Y:PMachine136 - CLUCCI37'\np3380\ng35\n(S'Variable_Type'\n(I1\nttRp3381\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np3382\ng35\n(S'Variable_Type'\n(I2\nttRp3383\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np3384\ng35\n(S'Variable_Type'\n(I2\nttRp3385\nsS'Y:PMachine68 - CCASAM36'\np3386\ng35\n(S'Variable_Type'\n(I2\nttRp3387\nsS'Y:PMachine29 - CLUCCI21'\np3388\ng35\n(S'Variable_Type'\n(I1\nttRp3389\nsS'Y:VBus42 - CSISCO21'\np3390\ng35\n(S'Variable_Type'\n(I2\nttRp3391\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np3392\ng35\n(S'Variable_Type'\n(I1\nttRp3393\nsS'Y:VBus14 - CBONIF21'\np3394\ng35\n(S'Variable_Type'\n(I2\nttRp3395\nsS'Y:VBus73 - CCASTI32'\np3396\ng35\n(S'Variable_Type'\n(I2\nttRp3397\nsS'Y:VBus64 - CCASAM32'\np3398\ng35\n(S'Variable_Type'\n(I2\nttRp3399\nsS'Y:PMachine14 - CBONIF21'\np3400\ng35\n(S'Variable_Type'\n(I1\nttRp3401\nsS'Y:PMachine62 - CCALVI32'\np3402\ng35\n(S'Variable_Type'\n(I2\nttRp3403\nsS'Y:VBus133 - CVAZZI314'\np3404\ng35\n(S'Variable_Type'\n(I2\nttRp3405\nsS'Y:VBus63 - CCASAM31'\np3406\ng35\n(S'Variable_Type'\n(I2\nttRp3407\nsS'Y:PMachine101 - CPIETR31'\np3408\ng35\n(S'Variable_Type'\n(I2\nttRp3409\nsS'Y:%Losses'\np3410\ng35\n(S'Variable_Type'\n(I2\nttRp3411\nsS'Y:VBus85 - CLORET32'\np3412\ng35\n(S'Variable_Type'\n(I2\nttRp3413\nsS'Y:Load 59 - CCALDA31'\np3414\ng35\n(S'Variable_Type'\n(I2\nttRp3415\nsS'Y:VBus129 - CVAZZI310'\np3416\ng35\n(S'Variable_Type'\n(I2\nttRp3417\nsS'Y:VBus101 - CPIETR31'\np3418\ng35\n(S'Variable_Type'\n(I2\nttRp3419\nsS'Y:PMachine106 - CRIZZA31'\np3420\ng35\n(S'Variable_Type'\n(I2\nttRp3421\nsS'Y:VBus132 - CVAZZI313'\np3422\ng35\n(S'Variable_Type'\n(I2\nttRp3423\nsS'Y:PMachine118 - CTOLLA33'\np3424\ng35\n(S'Variable_Type'\n(I2\nttRp3425\nsS'Y:VBus19 - CCASTI21'\np3426\ng35\n(S'Variable_Type'\n(I2\nttRp3427\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np3428\ng35\n(S'Variable_Type'\n(I2\nttRp3429\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np3430\ng35\n(S'Variable_Type'\n(I1\nttRp3431\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np3432\ng35\n(S'Variable_Type'\n(I2\nttRp3433\nsS'Y:Load 115 - CTAGLI31'\np3434\ng3161\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np3435\ng35\n(S'Variable_Type'\n(I2\nttRp3436\nsS'Y:VBus79 - CFURIA32'\np3437\ng35\n(S'Variable_Type'\n(I2\nttRp3438\nsS'Y:PMachine47 - CVAZZI21'\np3439\ng35\n(S'Variable_Type'\n(I1\nttRp3440\nsS'Y:VBus123 - CVAZZI34'\np3441\ng35\n(S'Variable_Type'\n(I2\nttRp3442\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np3443\ng35\n(S'Variable_Type'\n(I2\nttRp3444\nsS'Y:VBus60 - CCALDA32'\np3445\ng35\n(S'Variable_Type'\n(I2\nttRp3446\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np3447\ng35\n(S'Variable_Type'\n(I2\nttRp3448\nsS'Y:VBus65 - CCASAM33'\np3449\ng35\n(S'Variable_Type'\n(I2\nttRp3450\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np3451\ng35\n(S'Variable_Type'\n(I1\nttRp3452\nsS'Y:PMachine139 - CLUCCI310'\np3453\ng35\n(S'Variable_Type'\n(I1\nttRp3454\nsS'Y:VBus112 - CSAMPO31'\np3455\ng35\n(S'Variable_Type'\n(I2\nttRp3456\nsS'Y:VBus68 - CCASAM36'\np3457\ng35\n(S'Variable_Type'\n(I2\nttRp3458\nsS'Y:Load 55 - CBIGUG31'\np3459\ng35\n(S'Variable_Type'\n(I2\nttRp3460\nsS'Y:PMachine53 - CBASTI31'\np3461\ng35\n(S'Variable_Type'\n(I2\nttRp3462\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np3463\ng35\n(S'Variable_Type'\n(I2\nttRp3464\nsS'Y:VBus24 - CFURIA21'\np3465\ng35\n(S'Variable_Type'\n(I2\nttRp3466\nsS'Y:VBus23 - CCORTE22'\np3467\ng35\n(S'Variable_Type'\n(I2\nttRp3468\nsS'Y:VBus18 - CCASAM21'\np3469\ng35\n(S'Variable_Type'\n(I2\nttRp3470\nsS'Y:VBus40 - CSTMAR21'\np3471\ng35\n(S'Variable_Type'\n(I2\nttRp3472\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np3473\ng35\n(S'Variable_Type'\n(I2\nttRp3474\nsS'Y:PMachine124 - CVAZZI35'\np3475\ng35\n(S'Variable_Type'\n(I2\nttRp3476\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np3477\ng35\n(S'Variable_Type'\n(I2\nttRp3478\nsS'Y:PMachine117 - CTOLLA32'\np3479\ng35\n(S'Variable_Type'\n(I2\nttRp3480\nsS'Y:VBus89 - CLUCCI34'\np3481\ng35\n(S'Variable_Type'\n(I2\nttRp3482\nsS'Y:VBus33 - COLETT21'\np3483\ng35\n(S'Variable_Type'\n(I2\nttRp3484\nsS'Y:VBus32 - COCANA21'\np3485\ng35\n(S'Variable_Type'\n(I2\nttRp3486\nsS'Y:PMachine121 - CVAZZI32'\np3487\ng35\n(S'Variable_Type'\n(I2\nttRp3488\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np3489\ng35\n(S'Variable_Type'\n(I1\nttRp3490\nsS'Y:VBus82 - CILERO31'\np3491\ng35\n(S'Variable_Type'\n(I2\nttRp3492\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np3493\ng35\n(S'Variable_Type'\n(I2\nttRp3494\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np3495\ng35\n(S'Variable_Type'\n(I2\nttRp3496\nsS'Y:VBus37 - CRIZZA21'\np3497\ng35\n(S'Variable_Type'\n(I2\nttRp3498\nsS'Y:PMachine73 - CCASTI32'\np3499\ng35\n(S'Variable_Type'\n(I2\nttRp3500\nsS'Y:PMachine86 - CLUCCI31'\np3501\ng35\n(S'Variable_Type'\n(I2\nttRp3502\nsS'Y:Load 53 - CBASTI31'\np3503\ng35\n(S'Variable_Type'\n(I2\nttRp3504\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np3505\ng35\n(S'Variable_Type'\n(I2\nttRp3506\nsS'Y:VBus21 - CCORSC21'\np3507\ng35\n(S'Variable_Type'\n(I2\nttRp3508\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np3509\ng35\n(S'Variable_Type'\n(I2\nttRp3510\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np3511\ng35\n(S'Variable_Type'\n(I2\nttRp3512\nsS'Y:PMachine126 - CVAZZI37'\np3513\ng35\n(S'Variable_Type'\n(I2\nttRp3514\nsS'Y:PMachine64 - CCASAM32'\np3515\ng35\n(S'Variable_Type'\n(I2\nttRp3516\nsS'Y:VBus67 - CCASAM35'\np3517\ng35\n(S'Variable_Type'\n(I2\nttRp3518\nsS'Y:VBus53 - CBASTI31'\np3519\ng35\n(S'Variable_Type'\n(I2\nttRp3520\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np3521\ng35\n(S'Variable_Type'\n(I2\nttRp3522\nsS'Y:VBus61 - CCALVI31'\np3523\ng35\n(S'Variable_Type'\n(I2\nttRp3524\nsS'Y:VBus93 - COCANA32'\np3525\ng35\n(S'Variable_Type'\n(I2\nttRp3526\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np3527\ng35\n(S'Variable_Type'\n(I2\nttRp3528\nsS'Y:NbeTransit_0.9-1'\np3529\ng35\n(S'Variable_Type'\n(I1\nttRp3530\nsS'Y:VBus104 - CPROPR31'\np3531\ng35\n(S'Variable_Type'\n(I2\nttRp3532\nsS'Y:VBus22 - CCORTE21'\np3533\ng35\n(S'Variable_Type'\n(I2\nttRp3534\nsS'Y:VBus48 - CZSSS621'\np3535\ng35\n(S'Variable_Type'\n(I2\nttRp3536\nsS'Y:PMachine85 - CLORET32'\np3537\ng35\n(S'Variable_Type'\n(I2\nttRp3538\nsS'Y:Max%A'\np3539\ng35\n(S'Variable_Type'\n(I2\nttRp3540\nsS'Y:VBus36 - CPROPR21'\np3541\ng35\n(S'Variable_Type'\n(I2\nttRp3542\nsS'Y:Load 100 - COLETT31'\np3543\ng35\n(S'Variable_Type'\n(I2\nttRp3544\nsS'Y:PMachine54 - CBASTI32'\np3545\ng35\n(S'Variable_Type'\n(I2\nttRp3546\nsS'Y:VBus138 - CLUCCI39'\np3547\ng35\n(S'Variable_Type'\n(I2\nttRp3548\nsS'Y:VBus39 - CSTLUC21'\np3549\ng35\n(S'Variable_Type'\n(I2\nttRp3550\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np3551\ng35\n(S'Variable_Type'\n(I2\nttRp3552\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np3553\ng35\n(S'Variable_Type'\n(I2\nttRp3554\nsS'Y:Load 78 - CFURIA31'\np3555\ng35\n(S'Variable_Type'\n(I2\nttRp3556\nsS'Y:Load 74 - CCERVI31'\np3557\ng35\n(S'Variable_Type'\n(I2\nttRp3558\nsS'Y:VBus28 - CLORET21'\np3559\ng35\n(S'Variable_Type'\n(I2\nttRp3560\nsS'Y:PMachine105 - CPROPR32'\np3561\ng35\n(S'Variable_Type'\n(I2\nttRp3562\nsS'Y:VBus96 - COCANA35'\np3563\ng35\n(S'Variable_Type'\n(I2\nttRp3564\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np3565\ng35\n(S'Variable_Type'\n(I1\nttRp3566\nsS'Y:PMachine18 - CCASAM21'\np3567\ng35\n(S'Variable_Type'\n(I1\nttRp3568\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np3569\ng35\n(S'Variable_Type'\n(I2\nttRp3570\nsS'Y:VBus13 - CBIGUG21'\np3571\ng35\n(S'Variable_Type'\n(I2\nttRp3572\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np3573\ng35\n(S'Variable_Type'\n(I2\nttRp3574\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np3575\ng35\n(S'Variable_Type'\n(I2\nttRp3576\nsS'Y:VBus29 - CLUCCI21'\np3577\ng35\n(S'Variable_Type'\n(I2\nttRp3578\nsS'Y:VBus58 - CBONIF32'\np3579\ng35\n(S'Variable_Type'\n(I2\nttRp3580\nsS'Y:VBus84 - CLORET31'\np3581\ng35\n(S'Variable_Type'\n(I2\nttRp3582\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np3583\ng35\n(S'Variable_Type'\n(I1\nttRp3584\nsS'Y:VBus97 - COCANA36'\np3585\ng35\n(S'Variable_Type'\n(I2\nttRp3586\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np3587\ng35\n(S'Variable_Type'\n(I1\nttRp3588\nsS'Y:VBus15 - CBONIF22'\np3589\ng35\n(S'Variable_Type'\n(I2\nttRp3590\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np3591\ng35\n(S'Variable_Type'\n(I2\nttRp3592\nsS'Y:Load 110 - CSTLUC31'\np3593\ng35\n(S'Variable_Type'\n(I2\nttRp3594\nsS'Y:VBus80 - CGHISO31'\np3595\ng35\n(S'Variable_Type'\n(I2\nttRp3596\nsS'Y:PMachine114 - CSOVEN31'\np3597\ng35\n(S'Variable_Type'\n(I2\nttRp3598\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np3599\ng35\n(S'Variable_Type'\n(I1\nttRp3600\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np3601\ng35\n(S'Variable_Type'\n(I2\nttRp3602\nsS'Y:PMachine93 - COCANA32'\np3603\ng35\n(S'Variable_Type'\n(I2\nttRp3604\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np3605\ng35\n(S'Variable_Type'\n(I1\nttRp3606\nsS'Y:VBus87 - CLUCCI32'\np3607\ng35\n(S'Variable_Type'\n(I2\nttRp3608\nsS'Y:VBus62 - CCALVI32'\np3609\ng35\n(S'Variable_Type'\n(I2\nttRp3610\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np3611\ng35\n(S'Variable_Type'\n(I1\nttRp3612\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np3613\ng35\n(S'Variable_Type'\n(I1\nttRp3614\nsS'Y:VBus81 - CGHISO32'\np3615\ng35\n(S'Variable_Type'\n(I2\nttRp3616\nsS'Y:PMachine74 - CCERVI31'\np3617\ng35\n(S'Variable_Type'\n(I2\nttRp3618\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np3619\ng35\n(S'Variable_Type'\n(I2\nttRp3620\nsS'EOL_ALL'\np3621\ng35\n(S'Variable_Type'\n(I2\nttRp3622\nsS'X:Load(pu)'\np3623\ng3157\nsS'Y:NbeTension'\np3624\ng35\n(S'Variable_Type'\n(I2\nttRp3625\nsS'Y:VBus95 - COCANA34'\np3626\ng35\n(S'Variable_Type'\n(I2\nttRp3627\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np3628\ng35\n(S'Variable_Type'\n(I2\nttRp3629\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np3630\ng35\n(S'Variable_Type'\n(I2\nttRp3631\nsS'Y:Load 95 - COCANA34'\np3632\ng35\n(S'Variable_Type'\n(I2\nttRp3633\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np3634\ng35\n(S'Variable_Type'\n(I1\nttRp3635\nsS'Y:PMachine90 - CMOROS31'\np3636\ng35\n(S'Variable_Type'\n(I2\nttRp3637\nsS'Y:Load 101 - CPIETR31'\np3638\ng35\n(S'Variable_Type'\n(I2\nttRp3639\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np3640\ng35\n(S'Variable_Type'\n(I1\nttRp3641\nsS'Y:PMachine132 - CVAZZI313'\np3642\ng35\n(S'Variable_Type'\n(I2\nttRp3643\nsS'Y:VBus125 - CVAZZI36'\np3644\ng35\n(S'Variable_Type'\n(I2\nttRp3645\nsS'Y:VBus135 - CLUCCI36'\np3646\ng35\n(S'Variable_Type'\n(I2\nttRp3647\nsS'Y:VBus47 - CVAZZI21'\np3648\ng35\n(S'Variable_Type'\n(I2\nttRp3649\nsS'Y:VBus94 - COCANA33'\np3650\ng35\n(S'Variable_Type'\n(I2\nttRp3651\nsS'Y:VBus17 - CCALVI21'\np3652\ng35\n(S'Variable_Type'\n(I2\nttRp3653\nsS'Y:Load 90 - CMOROS31'\np3654\ng35\n(S'Variable_Type'\n(I2\nttRp3655\nsS'Y:VBus120 - CVAZZI31'\np3656\ng35\n(S'Variable_Type'\n(I2\nttRp3657\nsS'X:ProdPV%Pnom'\np3658\ng35\n(S'Variable_Type'\n(I2\nttRp3659\nsS'Y:VBus52 - CASPRE32'\np3660\ng35\n(S'Variable_Type'\n(I2\nttRp3661\nsS'Y:VBus25 - CFURIA22'\np3662\ng35\n(S'Variable_Type'\n(I2\nttRp3663\nsS'Y:Load 76 - CCORTE31'\np3664\ng35\n(S'Variable_Type'\n(I2\nttRp3665\nsS'Y:PMachine69 - CCASAM37'\np3666\ng35\n(S'Variable_Type'\n(I2\nttRp3667\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np3668\ng35\n(S'Variable_Type'\n(I2\nttRp3669\nsS'Y:PMachine92 - COCANA31'\np3670\ng35\n(S'Variable_Type'\n(I2\nttRp3671\nsS'Y:VBus35 - CPORTO21'\np3672\ng35\n(S'Variable_Type'\n(I2\nttRp3673\nsS'Y:PMachine122 - CVAZZI33'\np3674\ng35\n(S'Variable_Type'\n(I2\nttRp3675\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np3676\ng35\n(S'Variable_Type'\n(I1\nttRp3677\nsS'Y:PMachine63 - CCASAM31'\np3678\ng35\n(S'Variable_Type'\n(I2\nttRp3679\nsS'Y:VBus74 - CCERVI31'\np3680\ng35\n(S'Variable_Type'\n(I2\nttRp3681\nsS'Y:VBus126 - CVAZZI37'\np3682\ng35\n(S'Variable_Type'\n(I2\nttRp3683\nsS'Y:PMachine60 - CCALDA32'\np3684\ng35\n(S'Variable_Type'\n(I2\nttRp3685\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np3686\ng35\n(S'Variable_Type'\n(I1\nttRp3687\nsS'Y:VBus20 - CCERVI21'\np3688\ng35\n(S'Variable_Type'\n(I2\nttRp3689\nsS'Y:VBus119 - CTRAVO31'\np3690\ng35\n(S'Variable_Type'\n(I2\nttRp3691\nsS'Y:VBus11 - CASPRE21'\np3692\ng35\n(S'Variable_Type'\n(I2\nttRp3693\nsS'Y:VBus139 - CLUCCI310'\np3694\ng35\n(S'Variable_Type'\n(I2\nttRp3695\nsS'Y:VBus106 - CRIZZA31'\np3696\ng35\n(S'Variable_Type'\n(I2\nttRp3697\nsS'Y:PMachine66 - CCASAM34'\np3698\ng35\n(S'Variable_Type'\n(I2\nttRp3699\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np3700\ng35\n(S'Variable_Type'\n(I2\nttRp3701\nsS'Y:VBus136 - CLUCCI37'\np3702\ng35\n(S'Variable_Type'\n(I2\nttRp3703\nsS'Y:VBus90 - CMOROS31'\np3704\ng35\n(S'Variable_Type'\n(I2\nttRp3705\nsS'PV_ALL'\np3706\ng35\n(S'Variable_Type'\n(I2\nttRp3707\nsS'X:lineOff#'\np3708\ng35\n(S'Variable_Type'\n(I2\nttRp3709\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np3710\ng35\n(S'Variable_Type'\n(I2\nttRp3711\nsS'Y:VBus108 - CSAGON31'\np3712\ng35\n(S'Variable_Type'\n(I2\nttRp3713\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np3714\ng35\n(S'Variable_Type'\n(I2\nttRp3715\nsS'Y:VBus137 - CLUCCI38'\np3716\ng35\n(S'Variable_Type'\n(I2\nttRp3717\nsS'Y:VBus130 - CVAZZI311'\np3718\ng35\n(S'Variable_Type'\n(I2\nttRp3719\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np3720\ng35\n(S'Variable_Type'\n(I2\nttRp3721\nsS'Y:VBus46 - CTRAVO21'\np3722\ng35\n(S'Variable_Type'\n(I2\nttRp3723\nsS'Y:VBus113 - CSAMPO32'\np3724\ng35\n(S'Variable_Type'\n(I2\nttRp3725\nsS'Y:PMachine133 - CVAZZI314'\np3726\ng35\n(S'Variable_Type'\n(I2\nttRp3727\nsS'Y:PMachine65 - CCASAM33'\np3728\ng35\n(S'Variable_Type'\n(I2\nttRp3729\nsS'Y:VBus78 - CFURIA31'\np3730\ng35\n(S'Variable_Type'\n(I2\nttRp3731\nsS'Y:VBus26 - CGHISO21'\np3732\ng35\n(S'Variable_Type'\n(I2\nttRp3733\nsS'Y:VBus121 - CVAZZI32'\np3734\ng35\n(S'Variable_Type'\n(I2\nttRp3735\nsS'Y:PMachine97 - COCANA36'\np3736\ng35\n(S'Variable_Type'\n(I2\nttRp3737\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np3738\ng35\n(S'Variable_Type'\n(I2\nttRp3739\nsS'Y:PMachine83 - CILERO32'\np3740\ng35\n(S'Variable_Type'\n(I2\nttRp3741\nsS'Y:VBus83 - CILERO32'\np3742\ng35\n(S'Variable_Type'\n(I2\nttRp3743\nsS'Y:VBus66 - CCASAM34'\np3744\ng35\n(S'Variable_Type'\n(I2\nttRp3745\nsS'Y:PMachine1 - CBONIF11'\np3746\ng35\n(S'Variable_Type'\n(I2\nttRp3747\nsS'Y:VBus111 - CSTMAR31'\np3748\ng35\n(S'Variable_Type'\n(I2\nttRp3749\nsS'Y:VBus124 - CVAZZI35'\np3750\ng35\n(S'Variable_Type'\n(I2\nttRp3751\nsS'VAZZIO_DIESEL'\np3752\ng35\n(S'Variable_Type'\n(I2\nttRp3753\nsS'Y:PMachine131 - CVAZZI312'\np3754\ng35\n(S'Variable_Type'\n(I2\nttRp3755\nsS'Y:VBus44 - CTAGLI21'\np3756\ng35\n(S'Variable_Type'\n(I2\nttRp3757\nsS'Y:VBus88 - CLUCCI33'\np3758\ng35\n(S'Variable_Type'\n(I2\nttRp3759\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np3760\ng35\n(S'Variable_Type'\n(I1\nttRp3761\nsS'Y:VBus38 - CSAGON21'\np3762\ng35\n(S'Variable_Type'\n(I2\nttRp3763\nsS'Y:PMachine81 - CGHISO32'\np3764\ng35\n(S'Variable_Type'\n(I2\nttRp3765\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np3766\ng35\n(S'Variable_Type'\n(I2\nttRp3767\nsS'Y:VBus110 - CSTLUC31'\np3768\ng35\n(S'Variable_Type'\n(I2\nttRp3769\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np3770\ng35\n(S'Variable_Type'\n(I2\nttRp3771\nssg650\n(lp3772\ng652\nasba(iOWContexts\nContext\np3773\n(dp3774\ng24\n(lp3775\nsg26\n(dp3776\nsg28\n(dp3777\ng1897\n(S''\nI-1\ntp3778\nsg1899\n(S''\nI0\ntp3779\nsg1901\n(g1281\ng35\n(S'Variable_Type'\n(I2\nttRp3780\ntp3781\nsg1904\n(g1284\ng3780\ntp3782\nsg1906\n(S''\nI0\ntp3783\nsg1908\n(g1287\ng35\n(S'Variable_Type'\n(I2\nttRp3784\ntp3785\nssg46\nF1369994938.898\nsg47\n(dp3786\nS'Y:PMachine134 - CLUCCI35'\np3787\ng35\n(S'Variable_Type'\n(I1\nttRp3788\nsS'Y:VBus77 - CCORTE32'\np3789\ng35\n(S'Variable_Type'\n(I2\nttRp3790\nsS'Y:VBus134 - CLUCCI35'\np3791\ng35\n(S'Variable_Type'\n(I2\nttRp3792\nsS'Y:VBus109 - CSAGON32'\np3793\ng35\n(S'Variable_Type'\n(I2\nttRp3794\nsS'Y:VBus102 - CPORTO31'\np3795\ng35\n(S'Variable_Type'\n(I2\nttRp3796\nsS'XProdEolienne%Pnom'\np3797\ng35\n(S'Variable_Type'\n(I1\nttRp3798\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np3799\ng35\n(S'Variable_Type'\n(I2\nttRp3800\nsS'Y:PMachine94 - COCANA33'\np3801\ng35\n(S'Variable_Type'\n(I2\nttRp3802\nsS'Y:VBus117 - CTOLLA32'\np3803\ng35\n(S'Variable_Type'\n(I2\nttRp3804\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np3805\ng35\n(S'Variable_Type'\n(I2\nttRp3806\nsS'Y:PMachine87 - CLUCCI32'\np3807\ng35\n(S'Variable_Type'\n(I2\nttRp3808\nsS'Y:PMachine113 - CSAMPO32'\np3809\ng35\n(S'Variable_Type'\n(I2\nttRp3810\nsS'Y:Load 84 - CLORET31'\np3811\ng35\n(S'Variable_Type'\n(I2\nttRp3812\nsS'Y:PMachine89 - CLUCCI34'\np3813\ng35\n(S'Variable_Type'\n(I1\nttRp3814\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np3815\ng35\n(S'Variable_Type'\n(I2\nttRp3816\nsS'Y:Load 80 - CGHISO31'\np3817\ng35\n(S'Variable_Type'\n(I2\nttRp3818\nsS'Y:PMachine125 - CVAZZI36'\np3819\ng35\n(S'Variable_Type'\n(I2\nttRp3820\nsS'Y:PMachine116 - CTOLLA31'\np3821\ng35\n(S'Variable_Type'\n(I2\nttRp3822\nsS'Y:PMachine88 - CLUCCI33'\np3823\ng35\n(S'Variable_Type'\n(I1\nttRp3824\nsS'Y:PMachine120 - CVAZZI31'\np3825\ng35\n(S'Variable_Type'\n(I2\nttRp3826\nsS'Y:PMachine111 - CSTMAR31'\np3827\ng35\n(S'Variable_Type'\n(I2\nttRp3828\nsS'Y:NbeTransit'\np3829\ng35\n(S'Variable_Type'\n(I1\nttRp3830\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np3831\ng35\n(S'Variable_Type'\n(I2\nttRp3832\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np3833\ng35\n(S'Variable_Type'\n(I2\nttRp3834\nsS'Y:VBus92 - COCANA31'\np3835\ng35\n(S'Variable_Type'\n(I2\nttRp3836\nsS'Y:PMachine130 - CVAZZI311'\np3837\ng35\n(S'Variable_Type'\n(I2\nttRp3838\nsS'Y:PMachine127 - CVAZZI38'\np3839\ng35\n(S'Variable_Type'\n(I2\nttRp3840\nsS'Y:VBus131 - CVAZZI312'\np3841\ng35\n(S'Variable_Type'\n(I2\nttRp3842\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np3843\ng35\n(S'Variable_Type'\n(I2\nttRp3844\nsS'Y:PMachine123 - CVAZZI34'\np3845\ng35\n(S'Variable_Type'\n(I2\nttRp3846\nsS'Y:VBus118 - CTOLLA33'\np3847\ng35\n(S'Variable_Type'\n(I2\nttRp3848\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np3849\ng35\n(S'Variable_Type'\n(I1\nttRp3850\nsS'Y:PMachine58 - CBONIF32'\np3851\ng35\n(S'Variable_Type'\n(I2\nttRp3852\nsS'Y:Load 104 - CPROPR31'\np3853\ng35\n(S'Variable_Type'\n(I2\nttRp3854\nsS'Y:PMachine30 - CLUCCI22'\np3855\ng35\n(S'Variable_Type'\n(I1\nttRp3856\nsS'Y:VBus100 - COLETT31'\np3857\ng35\n(S'Variable_Type'\n(I2\nttRp3858\nsS'Y:PProdTot'\np3859\ng35\n(S'Variable_Type'\n(I2\nttRp3860\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np3861\ng35\n(S'Variable_Type'\n(I1\nttRp3862\nsS'Y:VBus57 - CBONIF31'\np3863\ng35\n(S'Variable_Type'\n(I2\nttRp3864\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np3865\ng35\n(S'Variable_Type'\n(I2\nttRp3866\nsS'Y:PConsoTot'\np3867\ng35\n(S'Variable_Type'\n(I2\nttRp3868\nsS'Iteration'\np3869\ng35\n(S'Variable_Type'\n(I2\nttRp3870\nsS'Y:PMachine109 - CSAGON32'\np3871\ng35\n(S'Variable_Type'\n(I2\nttRp3872\nsS'Y:PMachine135 - CLUCCI36'\np3873\ng35\n(S'Variable_Type'\n(I1\nttRp3874\nsS'Y:VBus30 - CLUCCI22'\np3875\ng35\n(S'Variable_Type'\n(I2\nttRp3876\nsS'Y:VBus122 - CVAZZI33'\np3877\ng35\n(S'Variable_Type'\n(I2\nttRp3878\nsS'Y:VBus86 - CLUCCI31'\np3879\ng35\n(S'Variable_Type'\n(I2\nttRp3880\nsS'Y:PMachine102 - CPORTO31'\np3881\ng35\n(S'Variable_Type'\n(I2\nttRp3882\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np3883\ng35\n(S'Variable_Type'\n(I1\nttRp3884\nsS'Y:PMachine107 - CRIZZA32'\np3885\ng35\n(S'Variable_Type'\n(I2\nttRp3886\nsS'Y:VBus16 - CCALDA21'\np3887\ng35\n(S'Variable_Type'\n(I2\nttRp3888\nsS'Y:Load 102 - CPORTO31'\np3889\ng35\n(S'Variable_Type'\n(I2\nttRp3890\nsS'Y:VBus107 - CRIZZA32'\np3891\ng35\n(S'Variable_Type'\n(I2\nttRp3892\nsS'Y:VBus59 - CCALDA31'\np3893\ng35\n(S'Variable_Type'\n(I2\nttRp3894\nsS'Y:VBus41 - CSAMPO21'\np3895\ng35\n(S'Variable_Type'\n(I2\nttRp3896\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np3897\ng35\n(S'Variable_Type'\n(I2\nttRp3898\nsS'Y:VBus34 - CPIETR21'\np3899\ng35\n(S'Variable_Type'\n(I2\nttRp3900\nsS'Y:Load 108 - CSAGON31'\np3901\ng35\n(S'Variable_Type'\n(I2\nttRp3902\nsS'Y:VBus56 - CBIGUG32'\np3903\ng35\n(S'Variable_Type'\n(I2\nttRp3904\nsS'Y:PMachine42 - CSISCO21'\np3905\ng35\n(S'Variable_Type'\n(I2\nttRp3906\nsS'Y:PMachine138 - CLUCCI39'\np3907\ng35\n(S'Variable_Type'\n(I1\nttRp3908\nsS'Y:PMachine112 - CSAMPO31'\np3909\ng35\n(S'Variable_Type'\n(I2\nttRp3910\nsS'Y:VBus105 - CPROPR32'\np3911\ng35\n(S'Variable_Type'\n(I2\nttRp3912\nsS'Y:VBus1 - CBONIF11'\np3913\ng35\n(S'Variable_Type'\n(I2\nttRp3914\nsS'Y:VBus12 - CBASTI21'\np3915\ng35\n(S'Variable_Type'\n(I2\nttRp3916\nsS'Y:PMachine129 - CVAZZI310'\np3917\ng35\n(S'Variable_Type'\n(I2\nttRp3918\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np3919\ng35\n(S'Variable_Type'\n(I1\nttRp3920\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np3921\ng35\n(S'Variable_Type'\n(I1\nttRp3922\nsS'Y:VBus54 - CBASTI32'\np3923\ng35\n(S'Variable_Type'\n(I2\nttRp3924\nsS'Y:VBus69 - CCASAM37'\np3925\ng35\n(S'Variable_Type'\n(I2\nttRp3926\nsS'Y:VBus45 - CTOLLA21'\np3927\ng35\n(S'Variable_Type'\n(I2\nttRp3928\nsS'Y:PMachine115 - CTAGLI31'\np3929\ng35\n(S'Variable_Type'\n(I2\nttRp3930\nsS'Y:PMachine77 - CCORTE32'\np3931\ng35\n(S'Variable_Type'\n(I2\nttRp3932\nsS'Y:VBus43 - CSOVEN21'\np3933\ng35\n(S'Variable_Type'\n(I2\nttRp3934\nsS'Y:VBus76 - CCORTE31'\np3935\ng35\n(S'Variable_Type'\n(I2\nttRp3936\nsS'Y:VBus75 - CCORSC31'\np3937\ng35\n(S'Variable_Type'\n(I2\nttRp3938\nsS'Y:PMachine78 - CFURIA31'\np3939\ng35\n(S'Variable_Type'\n(I1\nttRp3940\nsS'Y:VBus127 - CVAZZI38'\np3941\ng35\n(S'Variable_Type'\n(I2\nttRp3942\nsS'Y:VBus115 - CTAGLI31'\np3943\ng35\n(S'Variable_Type'\n(I2\nttRp3944\nsS'Y:Load 61 - CCALVI31'\np3945\ng35\n(S'Variable_Type'\n(I2\nttRp3946\nsS'Y:VBus55 - CBIGUG31'\np3947\ng35\n(S'Variable_Type'\n(I2\nttRp3948\nsS'Y:Load 42 - CSISCO21'\np3949\ng35\n(S'Variable_Type'\n(I2\nttRp3950\nsS'Y:VBus72 - CCASTI31'\np3951\ng35\n(S'Variable_Type'\n(I2\nttRp3952\nsS'Y:Load 37 - CRIZZA21'\np3953\ng35\n(S'Variable_Type'\n(I2\nttRp3954\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np3955\ng35\n(S'Variable_Type'\n(I2\nttRp3956\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np3957\ng35\n(S'Variable_Type'\n(I2\nttRp3958\nsS'Y:PMachine137 - CLUCCI38'\np3959\ng35\n(S'Variable_Type'\n(I1\nttRp3960\nsS'Y:PMachine67 - CCASAM35'\np3961\ng35\n(S'Variable_Type'\n(I2\nttRp3962\nsS'INTERCOS'\np3963\ng35\n(S'Variable_Type'\n(I2\nttRp3964\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np3965\ng35\n(S'Variable_Type'\n(I1\nttRp3966\nsS'Y:VBus31 - CMOROS21'\np3967\ng35\n(S'Variable_Type'\n(I2\nttRp3968\nsS'Y:VBus103 - CPORTO32'\np3969\ng35\n(S'Variable_Type'\n(I2\nttRp3970\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np3971\ng35\n(S'Variable_Type'\n(I1\nttRp3972\nsS'Y:PMachine128 - CVAZZI39'\np3973\ng35\n(S'Variable_Type'\n(I2\nttRp3974\nsS'Y:PMachine72 - CCASTI31'\np3975\ng35\n(S'Variable_Type'\n(I2\nttRp3976\nsS'Y:VBus27 - CILERO21'\np3977\ng35\n(S'Variable_Type'\n(I2\nttRp3978\nsS'Y:PMachine75 - CCORSC31'\np3979\ng35\n(S'Variable_Type'\n(I2\nttRp3980\nsS'Y:Load 51 - CASPRE31'\np3981\ng35\n(S'Variable_Type'\n(I2\nttRp3982\nsS'Y:PMachine61 - CCALVI31'\np3983\ng35\n(S'Variable_Type'\n(I1\nttRp3984\nsS'Y:VBus51 - CASPRE31'\np3985\ng35\n(S'Variable_Type'\n(I2\nttRp3986\nsS'Y:VBus114 - CSOVEN31'\np3987\ng35\n(S'Variable_Type'\n(I2\nttRp3988\nsS'Y:Load 82 - CILERO31'\np3989\ng35\n(S'Variable_Type'\n(I2\nttRp3990\nsS'Y:VBus116 - CTOLLA31'\np3991\ng35\n(S'Variable_Type'\n(I2\nttRp3992\nsS'Y:Load 86 - CLUCCI31'\np3993\ng35\n(S'Variable_Type'\n(I2\nttRp3994\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np3995\ng35\n(S'Variable_Type'\n(I2\nttRp3996\nsS'Y:Load 57 - CBONIF31'\np3997\ng35\n(S'Variable_Type'\n(I2\nttRp3998\nsS'Y:PMachine104 - CPROPR31'\np3999\ng35\n(S'Variable_Type'\n(I2\nttRp4000\nsS'Y:VBus128 - CVAZZI39'\np4001\ng35\n(S'Variable_Type'\n(I2\nttRp4002\nsS'Y:PMachine136 - CLUCCI37'\np4003\ng35\n(S'Variable_Type'\n(I1\nttRp4004\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np4005\ng35\n(S'Variable_Type'\n(I2\nttRp4006\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np4007\ng35\n(S'Variable_Type'\n(I2\nttRp4008\nsS'Y:PMachine68 - CCASAM36'\np4009\ng35\n(S'Variable_Type'\n(I2\nttRp4010\nsS'Y:PMachine29 - CLUCCI21'\np4011\ng35\n(S'Variable_Type'\n(I1\nttRp4012\nsS'Y:VBus42 - CSISCO21'\np4013\ng35\n(S'Variable_Type'\n(I2\nttRp4014\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np4015\ng35\n(S'Variable_Type'\n(I1\nttRp4016\nsS'Y:VBus14 - CBONIF21'\np4017\ng35\n(S'Variable_Type'\n(I2\nttRp4018\nsS'Y:VBus73 - CCASTI32'\np4019\ng35\n(S'Variable_Type'\n(I2\nttRp4020\nsS'Y:VBus64 - CCASAM32'\np4021\ng35\n(S'Variable_Type'\n(I2\nttRp4022\nsS'Y:PMachine14 - CBONIF21'\np4023\ng35\n(S'Variable_Type'\n(I1\nttRp4024\nsS'Y:PMachine62 - CCALVI32'\np4025\ng35\n(S'Variable_Type'\n(I2\nttRp4026\nsS'Y:VBus133 - CVAZZI314'\np4027\ng35\n(S'Variable_Type'\n(I2\nttRp4028\nsS'Y:VBus63 - CCASAM31'\np4029\ng35\n(S'Variable_Type'\n(I2\nttRp4030\nsS'Y:PMachine101 - CPIETR31'\np4031\ng35\n(S'Variable_Type'\n(I2\nttRp4032\nsS'Y:%Losses'\np4033\ng35\n(S'Variable_Type'\n(I2\nttRp4034\nsS'Y:VBus85 - CLORET32'\np4035\ng35\n(S'Variable_Type'\n(I2\nttRp4036\nsS'Y:Load 59 - CCALDA31'\np4037\ng35\n(S'Variable_Type'\n(I2\nttRp4038\nsS'Y:VBus129 - CVAZZI310'\np4039\ng35\n(S'Variable_Type'\n(I2\nttRp4040\nsS'Y:VBus101 - CPIETR31'\np4041\ng35\n(S'Variable_Type'\n(I2\nttRp4042\nsS'Y:PMachine106 - CRIZZA31'\np4043\ng35\n(S'Variable_Type'\n(I2\nttRp4044\nsS'Y:VBus132 - CVAZZI313'\np4045\ng35\n(S'Variable_Type'\n(I2\nttRp4046\nsS'Y:PMachine118 - CTOLLA33'\np4047\ng35\n(S'Variable_Type'\n(I2\nttRp4048\nsS'Y:VBus19 - CCASTI21'\np4049\ng35\n(S'Variable_Type'\n(I2\nttRp4050\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np4051\ng35\n(S'Variable_Type'\n(I2\nttRp4052\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np4053\ng35\n(S'Variable_Type'\n(I1\nttRp4054\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np4055\ng35\n(S'Variable_Type'\n(I2\nttRp4056\nsS'Y:Load 115 - CTAGLI31'\np4057\ng3784\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np4058\ng35\n(S'Variable_Type'\n(I2\nttRp4059\nsS'Y:VBus79 - CFURIA32'\np4060\ng35\n(S'Variable_Type'\n(I2\nttRp4061\nsS'Y:PMachine47 - CVAZZI21'\np4062\ng35\n(S'Variable_Type'\n(I1\nttRp4063\nsS'Y:VBus123 - CVAZZI34'\np4064\ng35\n(S'Variable_Type'\n(I2\nttRp4065\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np4066\ng35\n(S'Variable_Type'\n(I2\nttRp4067\nsS'Y:VBus60 - CCALDA32'\np4068\ng35\n(S'Variable_Type'\n(I2\nttRp4069\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np4070\ng35\n(S'Variable_Type'\n(I2\nttRp4071\nsS'Y:VBus65 - CCASAM33'\np4072\ng35\n(S'Variable_Type'\n(I2\nttRp4073\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np4074\ng35\n(S'Variable_Type'\n(I1\nttRp4075\nsS'Y:PMachine139 - CLUCCI310'\np4076\ng35\n(S'Variable_Type'\n(I1\nttRp4077\nsS'Y:VBus112 - CSAMPO31'\np4078\ng35\n(S'Variable_Type'\n(I2\nttRp4079\nsS'Y:VBus68 - CCASAM36'\np4080\ng35\n(S'Variable_Type'\n(I2\nttRp4081\nsS'Y:Load 55 - CBIGUG31'\np4082\ng35\n(S'Variable_Type'\n(I2\nttRp4083\nsS'Y:PMachine53 - CBASTI31'\np4084\ng35\n(S'Variable_Type'\n(I2\nttRp4085\nsS'Y:NbeTransit_0.9-1'\np4086\ng35\n(S'Variable_Type'\n(I1\nttRp4087\nsS'Y:VBus24 - CFURIA21'\np4088\ng35\n(S'Variable_Type'\n(I2\nttRp4089\nsS'Y:VBus23 - CCORTE22'\np4090\ng35\n(S'Variable_Type'\n(I2\nttRp4091\nsS'Y:VBus18 - CCASAM21'\np4092\ng35\n(S'Variable_Type'\n(I2\nttRp4093\nsS'Y:VBus40 - CSTMAR21'\np4094\ng35\n(S'Variable_Type'\n(I2\nttRp4095\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np4096\ng35\n(S'Variable_Type'\n(I2\nttRp4097\nsS'Y:PMachine124 - CVAZZI35'\np4098\ng35\n(S'Variable_Type'\n(I2\nttRp4099\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np4100\ng35\n(S'Variable_Type'\n(I2\nttRp4101\nsS'Y:PMachine117 - CTOLLA32'\np4102\ng35\n(S'Variable_Type'\n(I2\nttRp4103\nsS'Y:VBus89 - CLUCCI34'\np4104\ng35\n(S'Variable_Type'\n(I2\nttRp4105\nsS'Y:VBus33 - COLETT21'\np4106\ng35\n(S'Variable_Type'\n(I2\nttRp4107\nsS'Y:VBus32 - COCANA21'\np4108\ng35\n(S'Variable_Type'\n(I2\nttRp4109\nsS'Y:PMachine121 - CVAZZI32'\np4110\ng35\n(S'Variable_Type'\n(I2\nttRp4111\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np4112\ng35\n(S'Variable_Type'\n(I1\nttRp4113\nsS'Y:VBus82 - CILERO31'\np4114\ng35\n(S'Variable_Type'\n(I2\nttRp4115\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np4116\ng35\n(S'Variable_Type'\n(I2\nttRp4117\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np4118\ng35\n(S'Variable_Type'\n(I2\nttRp4119\nsS'Y:VBus37 - CRIZZA21'\np4120\ng35\n(S'Variable_Type'\n(I2\nttRp4121\nsS'Y:PMachine73 - CCASTI32'\np4122\ng35\n(S'Variable_Type'\n(I2\nttRp4123\nsS'Y:PMachine86 - CLUCCI31'\np4124\ng35\n(S'Variable_Type'\n(I2\nttRp4125\nsS'Y:Load 53 - CBASTI31'\np4126\ng35\n(S'Variable_Type'\n(I2\nttRp4127\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np4128\ng35\n(S'Variable_Type'\n(I2\nttRp4129\nsS'Y:VBus21 - CCORSC21'\np4130\ng35\n(S'Variable_Type'\n(I2\nttRp4131\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np4132\ng35\n(S'Variable_Type'\n(I2\nttRp4133\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np4134\ng35\n(S'Variable_Type'\n(I2\nttRp4135\nsS'Y:PMachine126 - CVAZZI37'\np4136\ng35\n(S'Variable_Type'\n(I2\nttRp4137\nsS'Y:PMachine64 - CCASAM32'\np4138\ng35\n(S'Variable_Type'\n(I2\nttRp4139\nsS'Y:VBus67 - CCASAM35'\np4140\ng35\n(S'Variable_Type'\n(I2\nttRp4141\nsS'Y:VBus53 - CBASTI31'\np4142\ng35\n(S'Variable_Type'\n(I2\nttRp4143\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np4144\ng35\n(S'Variable_Type'\n(I2\nttRp4145\nsS'Y:VBus61 - CCALVI31'\np4146\ng35\n(S'Variable_Type'\n(I2\nttRp4147\nsS'Y:VBus93 - COCANA32'\np4148\ng35\n(S'Variable_Type'\n(I2\nttRp4149\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np4150\ng35\n(S'Variable_Type'\n(I2\nttRp4151\nsS'Y:VBus104 - CPROPR31'\np4152\ng35\n(S'Variable_Type'\n(I2\nttRp4153\nsS'Y:VBus22 - CCORTE21'\np4154\ng35\n(S'Variable_Type'\n(I2\nttRp4155\nsS'Y:VBus48 - CZSSS621'\np4156\ng35\n(S'Variable_Type'\n(I2\nttRp4157\nsS'Y:PMachine85 - CLORET32'\np4158\ng35\n(S'Variable_Type'\n(I2\nttRp4159\nsS'Y:Max%A'\np4160\ng35\n(S'Variable_Type'\n(I2\nttRp4161\nsS'Y:VBus36 - CPROPR21'\np4162\ng35\n(S'Variable_Type'\n(I2\nttRp4163\nsS'Y:Load 100 - COLETT31'\np4164\ng35\n(S'Variable_Type'\n(I2\nttRp4165\nsS'Y:PMachine54 - CBASTI32'\np4166\ng35\n(S'Variable_Type'\n(I2\nttRp4167\nsS'Y:VBus138 - CLUCCI39'\np4168\ng35\n(S'Variable_Type'\n(I2\nttRp4169\nsS'Y:VBus39 - CSTLUC21'\np4170\ng35\n(S'Variable_Type'\n(I2\nttRp4171\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np4172\ng35\n(S'Variable_Type'\n(I2\nttRp4173\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np4174\ng35\n(S'Variable_Type'\n(I2\nttRp4175\nsS'Y:Load 78 - CFURIA31'\np4176\ng35\n(S'Variable_Type'\n(I2\nttRp4177\nsS'Y:Load 74 - CCERVI31'\np4178\ng35\n(S'Variable_Type'\n(I2\nttRp4179\nsS'Y:VBus28 - CLORET21'\np4180\ng35\n(S'Variable_Type'\n(I2\nttRp4181\nsS'Y:PMachine105 - CPROPR32'\np4182\ng35\n(S'Variable_Type'\n(I2\nttRp4183\nsS'Y:VBus96 - COCANA35'\np4184\ng35\n(S'Variable_Type'\n(I2\nttRp4185\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np4186\ng35\n(S'Variable_Type'\n(I1\nttRp4187\nsS'Y:PMachine18 - CCASAM21'\np4188\ng35\n(S'Variable_Type'\n(I1\nttRp4189\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np4190\ng35\n(S'Variable_Type'\n(I2\nttRp4191\nsS'Y:VBus13 - CBIGUG21'\np4192\ng35\n(S'Variable_Type'\n(I2\nttRp4193\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np4194\ng35\n(S'Variable_Type'\n(I2\nttRp4195\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np4196\ng35\n(S'Variable_Type'\n(I2\nttRp4197\nsS'Y:VBus29 - CLUCCI21'\np4198\ng35\n(S'Variable_Type'\n(I2\nttRp4199\nsS'Y:VBus58 - CBONIF32'\np4200\ng35\n(S'Variable_Type'\n(I2\nttRp4201\nsS'Y:VBus84 - CLORET31'\np4202\ng35\n(S'Variable_Type'\n(I2\nttRp4203\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np4204\ng35\n(S'Variable_Type'\n(I1\nttRp4205\nsS'Y:VBus97 - COCANA36'\np4206\ng35\n(S'Variable_Type'\n(I2\nttRp4207\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np4208\ng35\n(S'Variable_Type'\n(I1\nttRp4209\nsS'Y:VBus15 - CBONIF22'\np4210\ng35\n(S'Variable_Type'\n(I2\nttRp4211\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np4212\ng35\n(S'Variable_Type'\n(I2\nttRp4213\nsS'Y:Load 110 - CSTLUC31'\np4214\ng35\n(S'Variable_Type'\n(I2\nttRp4215\nsS'Y:VBus80 - CGHISO31'\np4216\ng35\n(S'Variable_Type'\n(I2\nttRp4217\nsS'Y:PMachine114 - CSOVEN31'\np4218\ng35\n(S'Variable_Type'\n(I2\nttRp4219\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np4220\ng35\n(S'Variable_Type'\n(I1\nttRp4221\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np4222\ng35\n(S'Variable_Type'\n(I2\nttRp4223\nsS'Y:PMachine93 - COCANA32'\np4224\ng35\n(S'Variable_Type'\n(I2\nttRp4225\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np4226\ng35\n(S'Variable_Type'\n(I1\nttRp4227\nsS'Y:VBus87 - CLUCCI32'\np4228\ng35\n(S'Variable_Type'\n(I2\nttRp4229\nsS'Y:VBus62 - CCALVI32'\np4230\ng35\n(S'Variable_Type'\n(I2\nttRp4231\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np4232\ng35\n(S'Variable_Type'\n(I1\nttRp4233\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np4234\ng35\n(S'Variable_Type'\n(I1\nttRp4235\nsS'Y:VBus81 - CGHISO32'\np4236\ng35\n(S'Variable_Type'\n(I2\nttRp4237\nsS'Y:PMachine74 - CCERVI31'\np4238\ng35\n(S'Variable_Type'\n(I2\nttRp4239\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np4240\ng35\n(S'Variable_Type'\n(I2\nttRp4241\nsS'EOL_ALL'\np4242\ng35\n(S'Variable_Type'\n(I2\nttRp4243\nsS'X:Load(pu)'\np4244\ng3780\nsS'Y:NbeTension'\np4245\ng35\n(S'Variable_Type'\n(I2\nttRp4246\nsS'Y:VBus95 - COCANA34'\np4247\ng35\n(S'Variable_Type'\n(I2\nttRp4248\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np4249\ng35\n(S'Variable_Type'\n(I2\nttRp4250\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np4251\ng35\n(S'Variable_Type'\n(I2\nttRp4252\nsS'Y:Load 95 - COCANA34'\np4253\ng35\n(S'Variable_Type'\n(I2\nttRp4254\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np4255\ng35\n(S'Variable_Type'\n(I1\nttRp4256\nsS'Y:PMachine90 - CMOROS31'\np4257\ng35\n(S'Variable_Type'\n(I2\nttRp4258\nsS'Y:Load 101 - CPIETR31'\np4259\ng35\n(S'Variable_Type'\n(I2\nttRp4260\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np4261\ng35\n(S'Variable_Type'\n(I1\nttRp4262\nsS'Y:PMachine132 - CVAZZI313'\np4263\ng35\n(S'Variable_Type'\n(I2\nttRp4264\nsS'Y:VBus125 - CVAZZI36'\np4265\ng35\n(S'Variable_Type'\n(I2\nttRp4266\nsS'Y:VBus135 - CLUCCI36'\np4267\ng35\n(S'Variable_Type'\n(I2\nttRp4268\nsS'Y:VBus47 - CVAZZI21'\np4269\ng35\n(S'Variable_Type'\n(I2\nttRp4270\nsS'Y:VBus94 - COCANA33'\np4271\ng35\n(S'Variable_Type'\n(I2\nttRp4272\nsS'Y:VBus17 - CCALVI21'\np4273\ng35\n(S'Variable_Type'\n(I2\nttRp4274\nsS'Y:Load 90 - CMOROS31'\np4275\ng35\n(S'Variable_Type'\n(I2\nttRp4276\nsS'Y:VBus120 - CVAZZI31'\np4277\ng35\n(S'Variable_Type'\n(I2\nttRp4278\nsS'X:ProdPV%Pnom'\np4279\ng35\n(S'Variable_Type'\n(I2\nttRp4280\nsS'Y:VBus52 - CASPRE32'\np4281\ng35\n(S'Variable_Type'\n(I2\nttRp4282\nsS'Y:VBus25 - CFURIA22'\np4283\ng35\n(S'Variable_Type'\n(I2\nttRp4284\nsS'Y:Load 76 - CCORTE31'\np4285\ng35\n(S'Variable_Type'\n(I2\nttRp4286\nsS'Y:PMachine69 - CCASAM37'\np4287\ng35\n(S'Variable_Type'\n(I2\nttRp4288\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np4289\ng35\n(S'Variable_Type'\n(I2\nttRp4290\nsS'Y:PMachine92 - COCANA31'\np4291\ng35\n(S'Variable_Type'\n(I2\nttRp4292\nsS'Y:VBus35 - CPORTO21'\np4293\ng35\n(S'Variable_Type'\n(I2\nttRp4294\nsS'Y:PMachine122 - CVAZZI33'\np4295\ng35\n(S'Variable_Type'\n(I2\nttRp4296\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np4297\ng35\n(S'Variable_Type'\n(I1\nttRp4298\nsS'Y:PMachine63 - CCASAM31'\np4299\ng35\n(S'Variable_Type'\n(I2\nttRp4300\nsS'Y:VBus74 - CCERVI31'\np4301\ng35\n(S'Variable_Type'\n(I2\nttRp4302\nsS'Y:VBus126 - CVAZZI37'\np4303\ng35\n(S'Variable_Type'\n(I2\nttRp4304\nsS'Y:PMachine60 - CCALDA32'\np4305\ng35\n(S'Variable_Type'\n(I2\nttRp4306\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np4307\ng35\n(S'Variable_Type'\n(I1\nttRp4308\nsS'Y:VBus20 - CCERVI21'\np4309\ng35\n(S'Variable_Type'\n(I2\nttRp4310\nsS'Y:VBus119 - CTRAVO31'\np4311\ng35\n(S'Variable_Type'\n(I2\nttRp4312\nsS'Y:VBus11 - CASPRE21'\np4313\ng35\n(S'Variable_Type'\n(I2\nttRp4314\nsS'Y:VBus139 - CLUCCI310'\np4315\ng35\n(S'Variable_Type'\n(I2\nttRp4316\nsS'Y:VBus106 - CRIZZA31'\np4317\ng35\n(S'Variable_Type'\n(I2\nttRp4318\nsS'Y:PMachine66 - CCASAM34'\np4319\ng35\n(S'Variable_Type'\n(I2\nttRp4320\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np4321\ng35\n(S'Variable_Type'\n(I2\nttRp4322\nsS'Y:VBus136 - CLUCCI37'\np4323\ng35\n(S'Variable_Type'\n(I2\nttRp4324\nsS'Y:VBus90 - CMOROS31'\np4325\ng35\n(S'Variable_Type'\n(I2\nttRp4326\nsS'PV_ALL'\np4327\ng35\n(S'Variable_Type'\n(I2\nttRp4328\nsS'X:lineOff#'\np4329\ng35\n(S'Variable_Type'\n(I2\nttRp4330\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np4331\ng35\n(S'Variable_Type'\n(I2\nttRp4332\nsS'Y:VBus108 - CSAGON31'\np4333\ng35\n(S'Variable_Type'\n(I2\nttRp4334\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np4335\ng35\n(S'Variable_Type'\n(I2\nttRp4336\nsS'Y:VBus137 - CLUCCI38'\np4337\ng35\n(S'Variable_Type'\n(I2\nttRp4338\nsS'Y:VBus130 - CVAZZI311'\np4339\ng35\n(S'Variable_Type'\n(I2\nttRp4340\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np4341\ng35\n(S'Variable_Type'\n(I2\nttRp4342\nsS'Y:VBus46 - CTRAVO21'\np4343\ng35\n(S'Variable_Type'\n(I2\nttRp4344\nsS'Y:VBus113 - CSAMPO32'\np4345\ng35\n(S'Variable_Type'\n(I2\nttRp4346\nsS'Y:PMachine133 - CVAZZI314'\np4347\ng35\n(S'Variable_Type'\n(I2\nttRp4348\nsS'Y:PMachine65 - CCASAM33'\np4349\ng35\n(S'Variable_Type'\n(I2\nttRp4350\nsS'Y:VBus78 - CFURIA31'\np4351\ng35\n(S'Variable_Type'\n(I2\nttRp4352\nsS'Y:VBus26 - CGHISO21'\np4353\ng35\n(S'Variable_Type'\n(I2\nttRp4354\nsS'Y:VBus121 - CVAZZI32'\np4355\ng35\n(S'Variable_Type'\n(I2\nttRp4356\nsS'Y:PMachine97 - COCANA36'\np4357\ng35\n(S'Variable_Type'\n(I2\nttRp4358\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np4359\ng35\n(S'Variable_Type'\n(I2\nttRp4360\nsS'Y:PMachine83 - CILERO32'\np4361\ng35\n(S'Variable_Type'\n(I2\nttRp4362\nsS'Y:VBus83 - CILERO32'\np4363\ng35\n(S'Variable_Type'\n(I2\nttRp4364\nsS'Y:VBus66 - CCASAM34'\np4365\ng35\n(S'Variable_Type'\n(I2\nttRp4366\nsS'Y:PMachine1 - CBONIF11'\np4367\ng35\n(S'Variable_Type'\n(I2\nttRp4368\nsS'Y:VBus111 - CSTMAR31'\np4369\ng35\n(S'Variable_Type'\n(I2\nttRp4370\nsS'Y:VBus124 - CVAZZI35'\np4371\ng35\n(S'Variable_Type'\n(I2\nttRp4372\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np4373\ng35\n(S'Variable_Type'\n(I2\nttRp4374\nsS'Y:PMachine131 - CVAZZI312'\np4375\ng35\n(S'Variable_Type'\n(I2\nttRp4376\nsS'Y:VBus44 - CTAGLI21'\np4377\ng35\n(S'Variable_Type'\n(I2\nttRp4378\nsS'Y:VBus88 - CLUCCI33'\np4379\ng35\n(S'Variable_Type'\n(I2\nttRp4380\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np4381\ng35\n(S'Variable_Type'\n(I1\nttRp4382\nsS'Y:VBus38 - CSAGON21'\np4383\ng35\n(S'Variable_Type'\n(I2\nttRp4384\nsS'Y:PMachine81 - CGHISO32'\np4385\ng35\n(S'Variable_Type'\n(I2\nttRp4386\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np4387\ng35\n(S'Variable_Type'\n(I2\nttRp4388\nsS'Y:VBus110 - CSTLUC31'\np4389\ng35\n(S'Variable_Type'\n(I2\nttRp4390\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np4391\ng35\n(S'Variable_Type'\n(I2\nttRp4392\nssg650\n(lp4393\ng652\nasba(iOWContexts\nContext\np4394\n(dp4395\ng24\n(lp4396\nsg26\n(dp4397\nsg28\n(dp4398\ng1897\n(S''\nI-1\ntp4399\nsg1899\n(S''\nI0\ntp4400\nsg1901\n(g1281\ng35\n(S'Variable_Type'\n(I2\nttRp4401\ntp4402\nsg1904\n(g1284\ng4401\ntp4403\nsg1906\n(S''\nI0\ntp4404\nsg1908\n(g1287\ng35\n(S'Variable_Type'\n(I2\nttRp4405\ntp4406\nssg46\nF1369994938.898\nsg47\n(dp4407\nS'Y:PMachine134 - CLUCCI35'\np4408\ng35\n(S'Variable_Type'\n(I1\nttRp4409\nsS'Y:VBus77 - CCORTE32'\np4410\ng35\n(S'Variable_Type'\n(I2\nttRp4411\nsS'Y:VBus134 - CLUCCI35'\np4412\ng35\n(S'Variable_Type'\n(I2\nttRp4413\nsS'Y:VBus109 - CSAGON32'\np4414\ng35\n(S'Variable_Type'\n(I2\nttRp4415\nsS'Y:VBus102 - CPORTO31'\np4416\ng35\n(S'Variable_Type'\n(I2\nttRp4417\nsS'XProdEolienne%Pnom'\np4418\ng35\n(S'Variable_Type'\n(I1\nttRp4419\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np4420\ng35\n(S'Variable_Type'\n(I2\nttRp4421\nsS'Y:PMachine94 - COCANA33'\np4422\ng35\n(S'Variable_Type'\n(I2\nttRp4423\nsS'Y:VBus117 - CTOLLA32'\np4424\ng35\n(S'Variable_Type'\n(I2\nttRp4425\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np4426\ng35\n(S'Variable_Type'\n(I2\nttRp4427\nsS'Y:PMachine87 - CLUCCI32'\np4428\ng35\n(S'Variable_Type'\n(I2\nttRp4429\nsS'Y:PMachine113 - CSAMPO32'\np4430\ng35\n(S'Variable_Type'\n(I2\nttRp4431\nsS'Y:Load 84 - CLORET31'\np4432\ng35\n(S'Variable_Type'\n(I2\nttRp4433\nsS'Y:PMachine89 - CLUCCI34'\np4434\ng35\n(S'Variable_Type'\n(I1\nttRp4435\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np4436\ng35\n(S'Variable_Type'\n(I2\nttRp4437\nsS'Y:Load 80 - CGHISO31'\np4438\ng35\n(S'Variable_Type'\n(I2\nttRp4439\nsS'Y:PMachine125 - CVAZZI36'\np4440\ng35\n(S'Variable_Type'\n(I2\nttRp4441\nsS'Y:PMachine116 - CTOLLA31'\np4442\ng35\n(S'Variable_Type'\n(I2\nttRp4443\nsS'Y:PMachine88 - CLUCCI33'\np4444\ng35\n(S'Variable_Type'\n(I1\nttRp4445\nsS'Y:PMachine120 - CVAZZI31'\np4446\ng35\n(S'Variable_Type'\n(I2\nttRp4447\nsS'Y:PMachine111 - CSTMAR31'\np4448\ng35\n(S'Variable_Type'\n(I2\nttRp4449\nsS'Y:NbeTransit'\np4450\ng35\n(S'Variable_Type'\n(I1\nttRp4451\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np4452\ng35\n(S'Variable_Type'\n(I2\nttRp4453\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np4454\ng35\n(S'Variable_Type'\n(I2\nttRp4455\nsS'Y:VBus92 - COCANA31'\np4456\ng35\n(S'Variable_Type'\n(I2\nttRp4457\nsS'Y:PMachine130 - CVAZZI311'\np4458\ng35\n(S'Variable_Type'\n(I2\nttRp4459\nsS'Y:PMachine127 - CVAZZI38'\np4460\ng35\n(S'Variable_Type'\n(I2\nttRp4461\nsS'Y:VBus131 - CVAZZI312'\np4462\ng35\n(S'Variable_Type'\n(I2\nttRp4463\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np4464\ng35\n(S'Variable_Type'\n(I2\nttRp4465\nsS'Y:PMachine123 - CVAZZI34'\np4466\ng35\n(S'Variable_Type'\n(I2\nttRp4467\nsS'Y:VBus118 - CTOLLA33'\np4468\ng35\n(S'Variable_Type'\n(I2\nttRp4469\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np4470\ng35\n(S'Variable_Type'\n(I1\nttRp4471\nsS'Y:PMachine58 - CBONIF32'\np4472\ng35\n(S'Variable_Type'\n(I2\nttRp4473\nsS'Y:Load 104 - CPROPR31'\np4474\ng35\n(S'Variable_Type'\n(I2\nttRp4475\nsS'Y:PMachine30 - CLUCCI22'\np4476\ng35\n(S'Variable_Type'\n(I1\nttRp4477\nsS'Y:VBus100 - COLETT31'\np4478\ng35\n(S'Variable_Type'\n(I2\nttRp4479\nsS'Y:PProdTot'\np4480\ng35\n(S'Variable_Type'\n(I2\nttRp4481\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np4482\ng35\n(S'Variable_Type'\n(I1\nttRp4483\nsS'Y:VBus57 - CBONIF31'\np4484\ng35\n(S'Variable_Type'\n(I2\nttRp4485\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np4486\ng35\n(S'Variable_Type'\n(I2\nttRp4487\nsS'Y:PConsoTot'\np4488\ng35\n(S'Variable_Type'\n(I2\nttRp4489\nsS'Iteration'\np4490\ng35\n(S'Variable_Type'\n(I2\nttRp4491\nsS'Y:PMachine109 - CSAGON32'\np4492\ng35\n(S'Variable_Type'\n(I2\nttRp4493\nsS'Y:PMachine135 - CLUCCI36'\np4494\ng35\n(S'Variable_Type'\n(I1\nttRp4495\nsS'Y:VBus30 - CLUCCI22'\np4496\ng35\n(S'Variable_Type'\n(I2\nttRp4497\nsS'Y:VBus122 - CVAZZI33'\np4498\ng35\n(S'Variable_Type'\n(I2\nttRp4499\nsS'Y:VBus86 - CLUCCI31'\np4500\ng35\n(S'Variable_Type'\n(I2\nttRp4501\nsS'Y:PMachine102 - CPORTO31'\np4502\ng35\n(S'Variable_Type'\n(I2\nttRp4503\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np4504\ng35\n(S'Variable_Type'\n(I1\nttRp4505\nsS'Y:PMachine107 - CRIZZA32'\np4506\ng35\n(S'Variable_Type'\n(I2\nttRp4507\nsS'Y:VBus16 - CCALDA21'\np4508\ng35\n(S'Variable_Type'\n(I2\nttRp4509\nsS'Y:Load 102 - CPORTO31'\np4510\ng35\n(S'Variable_Type'\n(I2\nttRp4511\nsS'Y:VBus107 - CRIZZA32'\np4512\ng35\n(S'Variable_Type'\n(I2\nttRp4513\nsS'Y:VBus59 - CCALDA31'\np4514\ng35\n(S'Variable_Type'\n(I2\nttRp4515\nsS'Y:VBus41 - CSAMPO21'\np4516\ng35\n(S'Variable_Type'\n(I2\nttRp4517\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np4518\ng35\n(S'Variable_Type'\n(I2\nttRp4519\nsS'Y:VBus34 - CPIETR21'\np4520\ng35\n(S'Variable_Type'\n(I2\nttRp4521\nsS'Y:Load 108 - CSAGON31'\np4522\ng35\n(S'Variable_Type'\n(I2\nttRp4523\nsS'Y:VBus56 - CBIGUG32'\np4524\ng35\n(S'Variable_Type'\n(I2\nttRp4525\nsS'Y:PMachine42 - CSISCO21'\np4526\ng35\n(S'Variable_Type'\n(I2\nttRp4527\nsS'Y:PMachine138 - CLUCCI39'\np4528\ng35\n(S'Variable_Type'\n(I1\nttRp4529\nsS'Y:PMachine112 - CSAMPO31'\np4530\ng35\n(S'Variable_Type'\n(I2\nttRp4531\nsS'Y:VBus105 - CPROPR32'\np4532\ng35\n(S'Variable_Type'\n(I2\nttRp4533\nsS'Y:VBus1 - CBONIF11'\np4534\ng35\n(S'Variable_Type'\n(I2\nttRp4535\nsS'Y:VBus12 - CBASTI21'\np4536\ng35\n(S'Variable_Type'\n(I2\nttRp4537\nsS'Y:PMachine129 - CVAZZI310'\np4538\ng35\n(S'Variable_Type'\n(I2\nttRp4539\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np4540\ng35\n(S'Variable_Type'\n(I1\nttRp4541\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np4542\ng35\n(S'Variable_Type'\n(I1\nttRp4543\nsS'Y:VBus54 - CBASTI32'\np4544\ng35\n(S'Variable_Type'\n(I2\nttRp4545\nsS'Y:VBus69 - CCASAM37'\np4546\ng35\n(S'Variable_Type'\n(I2\nttRp4547\nsS'Y:VBus45 - CTOLLA21'\np4548\ng35\n(S'Variable_Type'\n(I2\nttRp4549\nsS'Y:PMachine115 - CTAGLI31'\np4550\ng35\n(S'Variable_Type'\n(I2\nttRp4551\nsS'Y:PMachine77 - CCORTE32'\np4552\ng35\n(S'Variable_Type'\n(I2\nttRp4553\nsS'Y:VBus43 - CSOVEN21'\np4554\ng35\n(S'Variable_Type'\n(I2\nttRp4555\nsS'Y:VBus76 - CCORTE31'\np4556\ng35\n(S'Variable_Type'\n(I2\nttRp4557\nsS'Y:VBus75 - CCORSC31'\np4558\ng35\n(S'Variable_Type'\n(I2\nttRp4559\nsS'Y:PMachine78 - CFURIA31'\np4560\ng35\n(S'Variable_Type'\n(I1\nttRp4561\nsS'Y:VBus127 - CVAZZI38'\np4562\ng35\n(S'Variable_Type'\n(I2\nttRp4563\nsS'Y:VBus115 - CTAGLI31'\np4564\ng35\n(S'Variable_Type'\n(I2\nttRp4565\nsS'Y:Load 61 - CCALVI31'\np4566\ng35\n(S'Variable_Type'\n(I2\nttRp4567\nsS'Y:VBus55 - CBIGUG31'\np4568\ng35\n(S'Variable_Type'\n(I2\nttRp4569\nsS'Y:Load 42 - CSISCO21'\np4570\ng35\n(S'Variable_Type'\n(I2\nttRp4571\nsS'Y:VBus72 - CCASTI31'\np4572\ng35\n(S'Variable_Type'\n(I2\nttRp4573\nsS'Y:Load 37 - CRIZZA21'\np4574\ng35\n(S'Variable_Type'\n(I2\nttRp4575\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np4576\ng35\n(S'Variable_Type'\n(I2\nttRp4577\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np4578\ng35\n(S'Variable_Type'\n(I2\nttRp4579\nsS'Y:PMachine137 - CLUCCI38'\np4580\ng35\n(S'Variable_Type'\n(I1\nttRp4581\nsS'Y:PMachine67 - CCASAM35'\np4582\ng35\n(S'Variable_Type'\n(I2\nttRp4583\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np4584\ng35\n(S'Variable_Type'\n(I1\nttRp4585\nsS'Y:VBus31 - CMOROS21'\np4586\ng35\n(S'Variable_Type'\n(I2\nttRp4587\nsS'Y:VBus103 - CPORTO32'\np4588\ng35\n(S'Variable_Type'\n(I2\nttRp4589\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np4590\ng35\n(S'Variable_Type'\n(I1\nttRp4591\nsS'Y:PMachine128 - CVAZZI39'\np4592\ng35\n(S'Variable_Type'\n(I2\nttRp4593\nsS'Y:PMachine72 - CCASTI31'\np4594\ng35\n(S'Variable_Type'\n(I2\nttRp4595\nsS'Y:VBus27 - CILERO21'\np4596\ng35\n(S'Variable_Type'\n(I2\nttRp4597\nsS'Y:PMachine75 - CCORSC31'\np4598\ng35\n(S'Variable_Type'\n(I2\nttRp4599\nsS'Y:Load 51 - CASPRE31'\np4600\ng35\n(S'Variable_Type'\n(I2\nttRp4601\nsS'Y:PMachine61 - CCALVI31'\np4602\ng35\n(S'Variable_Type'\n(I1\nttRp4603\nsS'Y:VBus51 - CASPRE31'\np4604\ng35\n(S'Variable_Type'\n(I2\nttRp4605\nsS'Y:VBus114 - CSOVEN31'\np4606\ng35\n(S'Variable_Type'\n(I2\nttRp4607\nsS'Y:Load 82 - CILERO31'\np4608\ng35\n(S'Variable_Type'\n(I2\nttRp4609\nsS'Y:VBus116 - CTOLLA31'\np4610\ng35\n(S'Variable_Type'\n(I2\nttRp4611\nsS'Y:Load 86 - CLUCCI31'\np4612\ng35\n(S'Variable_Type'\n(I2\nttRp4613\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np4614\ng35\n(S'Variable_Type'\n(I2\nttRp4615\nsS'Y:Load 57 - CBONIF31'\np4616\ng35\n(S'Variable_Type'\n(I2\nttRp4617\nsS'Y:PMachine104 - CPROPR31'\np4618\ng35\n(S'Variable_Type'\n(I2\nttRp4619\nsS'Y:VBus128 - CVAZZI39'\np4620\ng35\n(S'Variable_Type'\n(I2\nttRp4621\nsS'Y:PMachine136 - CLUCCI37'\np4622\ng35\n(S'Variable_Type'\n(I1\nttRp4623\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np4624\ng35\n(S'Variable_Type'\n(I2\nttRp4625\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np4626\ng35\n(S'Variable_Type'\n(I2\nttRp4627\nsS'Y:PMachine68 - CCASAM36'\np4628\ng35\n(S'Variable_Type'\n(I2\nttRp4629\nsS'Y:PMachine29 - CLUCCI21'\np4630\ng35\n(S'Variable_Type'\n(I1\nttRp4631\nsS'Y:VBus42 - CSISCO21'\np4632\ng35\n(S'Variable_Type'\n(I2\nttRp4633\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np4634\ng35\n(S'Variable_Type'\n(I1\nttRp4635\nsS'Y:VBus14 - CBONIF21'\np4636\ng35\n(S'Variable_Type'\n(I2\nttRp4637\nsS'Y:VBus73 - CCASTI32'\np4638\ng35\n(S'Variable_Type'\n(I2\nttRp4639\nsS'Y:VBus64 - CCASAM32'\np4640\ng35\n(S'Variable_Type'\n(I2\nttRp4641\nsS'Y:PMachine14 - CBONIF21'\np4642\ng35\n(S'Variable_Type'\n(I1\nttRp4643\nsS'Y:PMachine62 - CCALVI32'\np4644\ng35\n(S'Variable_Type'\n(I2\nttRp4645\nsS'Y:VBus133 - CVAZZI314'\np4646\ng35\n(S'Variable_Type'\n(I2\nttRp4647\nsS'Y:VBus63 - CCASAM31'\np4648\ng35\n(S'Variable_Type'\n(I2\nttRp4649\nsS'Y:PMachine101 - CPIETR31'\np4650\ng35\n(S'Variable_Type'\n(I2\nttRp4651\nsS'Y:%Losses'\np4652\ng35\n(S'Variable_Type'\n(I2\nttRp4653\nsS'Y:VBus85 - CLORET32'\np4654\ng35\n(S'Variable_Type'\n(I2\nttRp4655\nsS'Y:Load 59 - CCALDA31'\np4656\ng35\n(S'Variable_Type'\n(I2\nttRp4657\nsS'Y:VBus129 - CVAZZI310'\np4658\ng35\n(S'Variable_Type'\n(I2\nttRp4659\nsS'Y:VBus101 - CPIETR31'\np4660\ng35\n(S'Variable_Type'\n(I2\nttRp4661\nsS'Y:PMachine106 - CRIZZA31'\np4662\ng35\n(S'Variable_Type'\n(I2\nttRp4663\nsS'Y:VBus132 - CVAZZI313'\np4664\ng35\n(S'Variable_Type'\n(I2\nttRp4665\nsS'Y:PMachine118 - CTOLLA33'\np4666\ng35\n(S'Variable_Type'\n(I2\nttRp4667\nsS'Y:VBus19 - CCASTI21'\np4668\ng35\n(S'Variable_Type'\n(I2\nttRp4669\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np4670\ng35\n(S'Variable_Type'\n(I2\nttRp4671\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np4672\ng35\n(S'Variable_Type'\n(I1\nttRp4673\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np4674\ng35\n(S'Variable_Type'\n(I2\nttRp4675\nsS'Y:Load 115 - CTAGLI31'\np4676\ng4405\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np4677\ng35\n(S'Variable_Type'\n(I2\nttRp4678\nsS'Y:VBus79 - CFURIA32'\np4679\ng35\n(S'Variable_Type'\n(I2\nttRp4680\nsS'Y:PMachine47 - CVAZZI21'\np4681\ng35\n(S'Variable_Type'\n(I1\nttRp4682\nsS'Y:VBus123 - CVAZZI34'\np4683\ng35\n(S'Variable_Type'\n(I2\nttRp4684\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np4685\ng35\n(S'Variable_Type'\n(I2\nttRp4686\nsS'Y:VBus60 - CCALDA32'\np4687\ng35\n(S'Variable_Type'\n(I2\nttRp4688\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np4689\ng35\n(S'Variable_Type'\n(I2\nttRp4690\nsS'Y:VBus65 - CCASAM33'\np4691\ng35\n(S'Variable_Type'\n(I2\nttRp4692\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np4693\ng35\n(S'Variable_Type'\n(I1\nttRp4694\nsS'Y:PMachine139 - CLUCCI310'\np4695\ng35\n(S'Variable_Type'\n(I1\nttRp4696\nsS'Y:VBus112 - CSAMPO31'\np4697\ng35\n(S'Variable_Type'\n(I2\nttRp4698\nsS'Y:VBus68 - CCASAM36'\np4699\ng35\n(S'Variable_Type'\n(I2\nttRp4700\nsS'Y:Load 55 - CBIGUG31'\np4701\ng35\n(S'Variable_Type'\n(I2\nttRp4702\nsS'Y:PMachine53 - CBASTI31'\np4703\ng35\n(S'Variable_Type'\n(I2\nttRp4704\nsS'Y:NbeTransit_0.9-1'\np4705\ng35\n(S'Variable_Type'\n(I1\nttRp4706\nsS'Y:VBus24 - CFURIA21'\np4707\ng35\n(S'Variable_Type'\n(I2\nttRp4708\nsS'Y:VBus23 - CCORTE22'\np4709\ng35\n(S'Variable_Type'\n(I2\nttRp4710\nsS'Y:VBus18 - CCASAM21'\np4711\ng35\n(S'Variable_Type'\n(I2\nttRp4712\nsS'Y:VBus40 - CSTMAR21'\np4713\ng35\n(S'Variable_Type'\n(I2\nttRp4714\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np4715\ng35\n(S'Variable_Type'\n(I2\nttRp4716\nsS'Y:PMachine124 - CVAZZI35'\np4717\ng35\n(S'Variable_Type'\n(I2\nttRp4718\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np4719\ng35\n(S'Variable_Type'\n(I2\nttRp4720\nsS'Y:PMachine117 - CTOLLA32'\np4721\ng35\n(S'Variable_Type'\n(I2\nttRp4722\nsS'Y:VBus89 - CLUCCI34'\np4723\ng35\n(S'Variable_Type'\n(I2\nttRp4724\nsS'Y:VBus33 - COLETT21'\np4725\ng35\n(S'Variable_Type'\n(I2\nttRp4726\nsS'Y:VBus32 - COCANA21'\np4727\ng35\n(S'Variable_Type'\n(I2\nttRp4728\nsS'Y:PMachine121 - CVAZZI32'\np4729\ng35\n(S'Variable_Type'\n(I2\nttRp4730\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np4731\ng35\n(S'Variable_Type'\n(I1\nttRp4732\nsS'Y:VBus82 - CILERO31'\np4733\ng35\n(S'Variable_Type'\n(I2\nttRp4734\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np4735\ng35\n(S'Variable_Type'\n(I2\nttRp4736\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np4737\ng35\n(S'Variable_Type'\n(I2\nttRp4738\nsS'Y:VBus37 - CRIZZA21'\np4739\ng35\n(S'Variable_Type'\n(I2\nttRp4740\nsS'Y:PMachine73 - CCASTI32'\np4741\ng35\n(S'Variable_Type'\n(I2\nttRp4742\nsS'Y:PMachine86 - CLUCCI31'\np4743\ng35\n(S'Variable_Type'\n(I2\nttRp4744\nsS'Y:Load 53 - CBASTI31'\np4745\ng35\n(S'Variable_Type'\n(I2\nttRp4746\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np4747\ng35\n(S'Variable_Type'\n(I2\nttRp4748\nsS'Y:VBus21 - CCORSC21'\np4749\ng35\n(S'Variable_Type'\n(I2\nttRp4750\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np4751\ng35\n(S'Variable_Type'\n(I2\nttRp4752\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np4753\ng35\n(S'Variable_Type'\n(I2\nttRp4754\nsS'Y:PMachine126 - CVAZZI37'\np4755\ng35\n(S'Variable_Type'\n(I2\nttRp4756\nsS'Y:PMachine64 - CCASAM32'\np4757\ng35\n(S'Variable_Type'\n(I2\nttRp4758\nsS'Y:VBus67 - CCASAM35'\np4759\ng35\n(S'Variable_Type'\n(I2\nttRp4760\nsS'Y:VBus53 - CBASTI31'\np4761\ng35\n(S'Variable_Type'\n(I2\nttRp4762\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np4763\ng35\n(S'Variable_Type'\n(I2\nttRp4764\nsS'Y:VBus61 - CCALVI31'\np4765\ng35\n(S'Variable_Type'\n(I2\nttRp4766\nsS'Y:VBus93 - COCANA32'\np4767\ng35\n(S'Variable_Type'\n(I2\nttRp4768\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np4769\ng35\n(S'Variable_Type'\n(I2\nttRp4770\nsS'Y:VBus104 - CPROPR31'\np4771\ng35\n(S'Variable_Type'\n(I2\nttRp4772\nsS'Y:VBus22 - CCORTE21'\np4773\ng35\n(S'Variable_Type'\n(I2\nttRp4774\nsS'Y:VBus48 - CZSSS621'\np4775\ng35\n(S'Variable_Type'\n(I2\nttRp4776\nsS'Y:PMachine85 - CLORET32'\np4777\ng35\n(S'Variable_Type'\n(I2\nttRp4778\nsS'Y:Max%A'\np4779\ng35\n(S'Variable_Type'\n(I2\nttRp4780\nsS'Y:VBus36 - CPROPR21'\np4781\ng35\n(S'Variable_Type'\n(I2\nttRp4782\nsS'Y:Load 100 - COLETT31'\np4783\ng35\n(S'Variable_Type'\n(I2\nttRp4784\nsS'Y:PMachine54 - CBASTI32'\np4785\ng35\n(S'Variable_Type'\n(I2\nttRp4786\nsS'Y:VBus138 - CLUCCI39'\np4787\ng35\n(S'Variable_Type'\n(I2\nttRp4788\nsS'Y:VBus39 - CSTLUC21'\np4789\ng35\n(S'Variable_Type'\n(I2\nttRp4790\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np4791\ng35\n(S'Variable_Type'\n(I2\nttRp4792\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np4793\ng35\n(S'Variable_Type'\n(I2\nttRp4794\nsS'Y:Load 78 - CFURIA31'\np4795\ng35\n(S'Variable_Type'\n(I2\nttRp4796\nsS'Y:Load 74 - CCERVI31'\np4797\ng35\n(S'Variable_Type'\n(I2\nttRp4798\nsS'Y:VBus28 - CLORET21'\np4799\ng35\n(S'Variable_Type'\n(I2\nttRp4800\nsS'Y:PMachine105 - CPROPR32'\np4801\ng35\n(S'Variable_Type'\n(I2\nttRp4802\nsS'Y:VBus96 - COCANA35'\np4803\ng35\n(S'Variable_Type'\n(I2\nttRp4804\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np4805\ng35\n(S'Variable_Type'\n(I1\nttRp4806\nsS'Y:PMachine18 - CCASAM21'\np4807\ng35\n(S'Variable_Type'\n(I1\nttRp4808\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np4809\ng35\n(S'Variable_Type'\n(I2\nttRp4810\nsS'Y:VBus13 - CBIGUG21'\np4811\ng35\n(S'Variable_Type'\n(I2\nttRp4812\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np4813\ng35\n(S'Variable_Type'\n(I2\nttRp4814\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np4815\ng35\n(S'Variable_Type'\n(I2\nttRp4816\nsS'Y:VBus29 - CLUCCI21'\np4817\ng35\n(S'Variable_Type'\n(I2\nttRp4818\nsS'Y:VBus58 - CBONIF32'\np4819\ng35\n(S'Variable_Type'\n(I2\nttRp4820\nsS'Y:VBus84 - CLORET31'\np4821\ng35\n(S'Variable_Type'\n(I2\nttRp4822\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np4823\ng35\n(S'Variable_Type'\n(I1\nttRp4824\nsS'Y:VBus97 - COCANA36'\np4825\ng35\n(S'Variable_Type'\n(I2\nttRp4826\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np4827\ng35\n(S'Variable_Type'\n(I1\nttRp4828\nsS'Y:VBus15 - CBONIF22'\np4829\ng35\n(S'Variable_Type'\n(I2\nttRp4830\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np4831\ng35\n(S'Variable_Type'\n(I2\nttRp4832\nsS'Y:Load 110 - CSTLUC31'\np4833\ng35\n(S'Variable_Type'\n(I2\nttRp4834\nsS'Y:VBus80 - CGHISO31'\np4835\ng35\n(S'Variable_Type'\n(I2\nttRp4836\nsS'Y:PMachine114 - CSOVEN31'\np4837\ng35\n(S'Variable_Type'\n(I2\nttRp4838\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np4839\ng35\n(S'Variable_Type'\n(I1\nttRp4840\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np4841\ng35\n(S'Variable_Type'\n(I2\nttRp4842\nsS'Y:PMachine93 - COCANA32'\np4843\ng35\n(S'Variable_Type'\n(I2\nttRp4844\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np4845\ng35\n(S'Variable_Type'\n(I1\nttRp4846\nsS'Y:VBus87 - CLUCCI32'\np4847\ng35\n(S'Variable_Type'\n(I2\nttRp4848\nsS'Y:VBus62 - CCALVI32'\np4849\ng35\n(S'Variable_Type'\n(I2\nttRp4850\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np4851\ng35\n(S'Variable_Type'\n(I1\nttRp4852\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np4853\ng35\n(S'Variable_Type'\n(I1\nttRp4854\nsS'Y:VBus81 - CGHISO32'\np4855\ng35\n(S'Variable_Type'\n(I2\nttRp4856\nsS'Y:PMachine74 - CCERVI31'\np4857\ng35\n(S'Variable_Type'\n(I2\nttRp4858\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np4859\ng35\n(S'Variable_Type'\n(I2\nttRp4860\nsS'EOL_ALL'\np4861\ng35\n(S'Variable_Type'\n(I2\nttRp4862\nsS'X:Load(pu)'\np4863\ng4401\nsS'Y:NbeTension'\np4864\ng35\n(S'Variable_Type'\n(I2\nttRp4865\nsS'Y:VBus95 - COCANA34'\np4866\ng35\n(S'Variable_Type'\n(I2\nttRp4867\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np4868\ng35\n(S'Variable_Type'\n(I2\nttRp4869\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np4870\ng35\n(S'Variable_Type'\n(I2\nttRp4871\nsS'Y:Load 95 - COCANA34'\np4872\ng35\n(S'Variable_Type'\n(I2\nttRp4873\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np4874\ng35\n(S'Variable_Type'\n(I1\nttRp4875\nsS'Y:PMachine90 - CMOROS31'\np4876\ng35\n(S'Variable_Type'\n(I2\nttRp4877\nsS'Y:Load 101 - CPIETR31'\np4878\ng35\n(S'Variable_Type'\n(I2\nttRp4879\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np4880\ng35\n(S'Variable_Type'\n(I1\nttRp4881\nsS'Y:PMachine132 - CVAZZI313'\np4882\ng35\n(S'Variable_Type'\n(I2\nttRp4883\nsS'Y:VBus125 - CVAZZI36'\np4884\ng35\n(S'Variable_Type'\n(I2\nttRp4885\nsS'Y:VBus135 - CLUCCI36'\np4886\ng35\n(S'Variable_Type'\n(I2\nttRp4887\nsS'Y:VBus47 - CVAZZI21'\np4888\ng35\n(S'Variable_Type'\n(I2\nttRp4889\nsS'Y:VBus94 - COCANA33'\np4890\ng35\n(S'Variable_Type'\n(I2\nttRp4891\nsS'Y:VBus17 - CCALVI21'\np4892\ng35\n(S'Variable_Type'\n(I2\nttRp4893\nsS'Y:Load 90 - CMOROS31'\np4894\ng35\n(S'Variable_Type'\n(I2\nttRp4895\nsS'Y:VBus120 - CVAZZI31'\np4896\ng35\n(S'Variable_Type'\n(I2\nttRp4897\nsS'X:ProdPV%Pnom'\np4898\ng35\n(S'Variable_Type'\n(I2\nttRp4899\nsS'Y:VBus52 - CASPRE32'\np4900\ng35\n(S'Variable_Type'\n(I2\nttRp4901\nsS'Y:VBus25 - CFURIA22'\np4902\ng35\n(S'Variable_Type'\n(I2\nttRp4903\nsS'Y:Load 76 - CCORTE31'\np4904\ng35\n(S'Variable_Type'\n(I2\nttRp4905\nsS'Y:PMachine69 - CCASAM37'\np4906\ng35\n(S'Variable_Type'\n(I2\nttRp4907\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np4908\ng35\n(S'Variable_Type'\n(I2\nttRp4909\nsS'Y:PMachine92 - COCANA31'\np4910\ng35\n(S'Variable_Type'\n(I2\nttRp4911\nsS'Y:VBus35 - CPORTO21'\np4912\ng35\n(S'Variable_Type'\n(I2\nttRp4913\nsS'Y:PMachine122 - CVAZZI33'\np4914\ng35\n(S'Variable_Type'\n(I2\nttRp4915\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np4916\ng35\n(S'Variable_Type'\n(I1\nttRp4917\nsS'Y:PMachine63 - CCASAM31'\np4918\ng35\n(S'Variable_Type'\n(I2\nttRp4919\nsS'Y:VBus74 - CCERVI31'\np4920\ng35\n(S'Variable_Type'\n(I2\nttRp4921\nsS'Y:VBus126 - CVAZZI37'\np4922\ng35\n(S'Variable_Type'\n(I2\nttRp4923\nsS'Y:PMachine60 - CCALDA32'\np4924\ng35\n(S'Variable_Type'\n(I2\nttRp4925\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np4926\ng35\n(S'Variable_Type'\n(I1\nttRp4927\nsS'Y:VBus20 - CCERVI21'\np4928\ng35\n(S'Variable_Type'\n(I2\nttRp4929\nsS'Y:VBus119 - CTRAVO31'\np4930\ng35\n(S'Variable_Type'\n(I2\nttRp4931\nsS'Y:VBus11 - CASPRE21'\np4932\ng35\n(S'Variable_Type'\n(I2\nttRp4933\nsS'Y:VBus139 - CLUCCI310'\np4934\ng35\n(S'Variable_Type'\n(I2\nttRp4935\nsS'Y:VBus106 - CRIZZA31'\np4936\ng35\n(S'Variable_Type'\n(I2\nttRp4937\nsS'Y:PMachine66 - CCASAM34'\np4938\ng35\n(S'Variable_Type'\n(I2\nttRp4939\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np4940\ng35\n(S'Variable_Type'\n(I2\nttRp4941\nsS'Y:VBus136 - CLUCCI37'\np4942\ng35\n(S'Variable_Type'\n(I2\nttRp4943\nsS'Y:VBus90 - CMOROS31'\np4944\ng35\n(S'Variable_Type'\n(I2\nttRp4945\nsS'PV_ALL'\np4946\ng35\n(S'Variable_Type'\n(I2\nttRp4947\nsS'X:lineOff#'\np4948\ng35\n(S'Variable_Type'\n(I2\nttRp4949\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np4950\ng35\n(S'Variable_Type'\n(I2\nttRp4951\nsS'Y:VBus108 - CSAGON31'\np4952\ng35\n(S'Variable_Type'\n(I2\nttRp4953\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np4954\ng35\n(S'Variable_Type'\n(I2\nttRp4955\nsS'Y:VBus137 - CLUCCI38'\np4956\ng35\n(S'Variable_Type'\n(I2\nttRp4957\nsS'Y:VBus130 - CVAZZI311'\np4958\ng35\n(S'Variable_Type'\n(I2\nttRp4959\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np4960\ng35\n(S'Variable_Type'\n(I2\nttRp4961\nsS'Y:VBus46 - CTRAVO21'\np4962\ng35\n(S'Variable_Type'\n(I2\nttRp4963\nsS'Y:VBus113 - CSAMPO32'\np4964\ng35\n(S'Variable_Type'\n(I2\nttRp4965\nsS'Y:PMachine133 - CVAZZI314'\np4966\ng35\n(S'Variable_Type'\n(I2\nttRp4967\nsS'Y:PMachine65 - CCASAM33'\np4968\ng35\n(S'Variable_Type'\n(I2\nttRp4969\nsS'Y:VBus78 - CFURIA31'\np4970\ng35\n(S'Variable_Type'\n(I2\nttRp4971\nsS'Y:VBus26 - CGHISO21'\np4972\ng35\n(S'Variable_Type'\n(I2\nttRp4973\nsS'Y:VBus121 - CVAZZI32'\np4974\ng35\n(S'Variable_Type'\n(I2\nttRp4975\nsS'Y:PMachine97 - COCANA36'\np4976\ng35\n(S'Variable_Type'\n(I2\nttRp4977\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np4978\ng35\n(S'Variable_Type'\n(I2\nttRp4979\nsS'Y:PMachine83 - CILERO32'\np4980\ng35\n(S'Variable_Type'\n(I2\nttRp4981\nsS'Y:VBus83 - CILERO32'\np4982\ng35\n(S'Variable_Type'\n(I2\nttRp4983\nsS'Y:VBus66 - CCASAM34'\np4984\ng35\n(S'Variable_Type'\n(I2\nttRp4985\nsS'Y:PMachine1 - CBONIF11'\np4986\ng35\n(S'Variable_Type'\n(I2\nttRp4987\nsS'Y:VBus111 - CSTMAR31'\np4988\ng35\n(S'Variable_Type'\n(I2\nttRp4989\nsS'Y:VBus124 - CVAZZI35'\np4990\ng35\n(S'Variable_Type'\n(I2\nttRp4991\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np4992\ng35\n(S'Variable_Type'\n(I2\nttRp4993\nsS'Y:PMachine131 - CVAZZI312'\np4994\ng35\n(S'Variable_Type'\n(I2\nttRp4995\nsS'Y:VBus44 - CTAGLI21'\np4996\ng35\n(S'Variable_Type'\n(I2\nttRp4997\nsS'Y:VBus88 - CLUCCI33'\np4998\ng35\n(S'Variable_Type'\n(I2\nttRp4999\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np5000\ng35\n(S'Variable_Type'\n(I1\nttRp5001\nsS'Y:VBus38 - CSAGON21'\np5002\ng35\n(S'Variable_Type'\n(I2\nttRp5003\nsS'Y:PMachine81 - CGHISO32'\np5004\ng35\n(S'Variable_Type'\n(I2\nttRp5005\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np5006\ng35\n(S'Variable_Type'\n(I2\nttRp5007\nsS'Y:VBus110 - CSTLUC31'\np5008\ng35\n(S'Variable_Type'\n(I2\nttRp5009\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np5010\ng35\n(S'Variable_Type'\n(I2\nttRp5011\nssg650\n(lp5012\ng652\nasba(iOWContexts\nContext\np5013\n(dp5014\ng24\n(lp5015\nsg26\n(dp5016\nsg28\n(dp5017\ng1897\n(S''\nI-1\ntp5018\nsg1899\n(S''\nI0\ntp5019\nsg1901\n(g1281\ng35\n(S'Variable_Type'\n(I2\nttRp5020\ntp5021\nsg1904\n(g1284\ng5020\ntp5022\nsg1906\n(S''\nI0\ntp5023\nsg1908\n(g1287\ng35\n(S'Variable_Type'\n(I2\nttRp5024\ntp5025\nssg46\nF1369994938.898\nsg47\n(dp5026\nS'Y:PMachine134 - CLUCCI35'\np5027\ng35\n(S'Variable_Type'\n(I1\nttRp5028\nsS'Y:VBus77 - CCORTE32'\np5029\ng35\n(S'Variable_Type'\n(I2\nttRp5030\nsS'Y:VBus134 - CLUCCI35'\np5031\ng35\n(S'Variable_Type'\n(I2\nttRp5032\nsS'Y:VBus109 - CSAGON32'\np5033\ng35\n(S'Variable_Type'\n(I2\nttRp5034\nsS'Y:VBus102 - CPORTO31'\np5035\ng35\n(S'Variable_Type'\n(I2\nttRp5036\nsS'XProdEolienne%Pnom'\np5037\ng35\n(S'Variable_Type'\n(I1\nttRp5038\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np5039\ng35\n(S'Variable_Type'\n(I2\nttRp5040\nsS'Y:PMachine94 - COCANA33'\np5041\ng35\n(S'Variable_Type'\n(I2\nttRp5042\nsS'Y:VBus117 - CTOLLA32'\np5043\ng35\n(S'Variable_Type'\n(I2\nttRp5044\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np5045\ng35\n(S'Variable_Type'\n(I2\nttRp5046\nsS'Y:PMachine87 - CLUCCI32'\np5047\ng35\n(S'Variable_Type'\n(I2\nttRp5048\nsS'Y:PMachine113 - CSAMPO32'\np5049\ng35\n(S'Variable_Type'\n(I2\nttRp5050\nsS'Y:Load 84 - CLORET31'\np5051\ng35\n(S'Variable_Type'\n(I2\nttRp5052\nsS'Y:PMachine89 - CLUCCI34'\np5053\ng35\n(S'Variable_Type'\n(I1\nttRp5054\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np5055\ng35\n(S'Variable_Type'\n(I2\nttRp5056\nsS'Y:Load 80 - CGHISO31'\np5057\ng35\n(S'Variable_Type'\n(I2\nttRp5058\nsS'Y:PMachine125 - CVAZZI36'\np5059\ng35\n(S'Variable_Type'\n(I2\nttRp5060\nsS'Y:PMachine116 - CTOLLA31'\np5061\ng35\n(S'Variable_Type'\n(I2\nttRp5062\nsS'Y:PMachine88 - CLUCCI33'\np5063\ng35\n(S'Variable_Type'\n(I1\nttRp5064\nsS'Y:PMachine120 - CVAZZI31'\np5065\ng35\n(S'Variable_Type'\n(I2\nttRp5066\nsS'Y:PMachine111 - CSTMAR31'\np5067\ng35\n(S'Variable_Type'\n(I2\nttRp5068\nsS'Y:NbeTransit'\np5069\ng35\n(S'Variable_Type'\n(I1\nttRp5070\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np5071\ng35\n(S'Variable_Type'\n(I2\nttRp5072\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np5073\ng35\n(S'Variable_Type'\n(I2\nttRp5074\nsS'Y:VBus92 - COCANA31'\np5075\ng35\n(S'Variable_Type'\n(I2\nttRp5076\nsS'Y:PMachine130 - CVAZZI311'\np5077\ng35\n(S'Variable_Type'\n(I2\nttRp5078\nsS'Y:PMachine127 - CVAZZI38'\np5079\ng35\n(S'Variable_Type'\n(I2\nttRp5080\nsS'Y:VBus131 - CVAZZI312'\np5081\ng35\n(S'Variable_Type'\n(I2\nttRp5082\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np5083\ng35\n(S'Variable_Type'\n(I2\nttRp5084\nsS'Y:PMachine123 - CVAZZI34'\np5085\ng35\n(S'Variable_Type'\n(I2\nttRp5086\nsS'Y:VBus118 - CTOLLA33'\np5087\ng35\n(S'Variable_Type'\n(I2\nttRp5088\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np5089\ng35\n(S'Variable_Type'\n(I1\nttRp5090\nsS'Y:PMachine58 - CBONIF32'\np5091\ng35\n(S'Variable_Type'\n(I2\nttRp5092\nsS'Y:Load 104 - CPROPR31'\np5093\ng35\n(S'Variable_Type'\n(I2\nttRp5094\nsS'Y:PMachine30 - CLUCCI22'\np5095\ng35\n(S'Variable_Type'\n(I1\nttRp5096\nsS'Y:VBus100 - COLETT31'\np5097\ng35\n(S'Variable_Type'\n(I2\nttRp5098\nsS'Y:PProdTot'\np5099\ng35\n(S'Variable_Type'\n(I2\nttRp5100\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np5101\ng35\n(S'Variable_Type'\n(I1\nttRp5102\nsS'Y:VBus57 - CBONIF31'\np5103\ng35\n(S'Variable_Type'\n(I2\nttRp5104\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np5105\ng35\n(S'Variable_Type'\n(I2\nttRp5106\nsS'Y:PConsoTot'\np5107\ng35\n(S'Variable_Type'\n(I2\nttRp5108\nsS'Iteration'\np5109\ng35\n(S'Variable_Type'\n(I2\nttRp5110\nsS'Y:PMachine109 - CSAGON32'\np5111\ng35\n(S'Variable_Type'\n(I2\nttRp5112\nsS'Y:PMachine135 - CLUCCI36'\np5113\ng35\n(S'Variable_Type'\n(I1\nttRp5114\nsS'Y:VBus30 - CLUCCI22'\np5115\ng35\n(S'Variable_Type'\n(I2\nttRp5116\nsS'Y:VBus122 - CVAZZI33'\np5117\ng35\n(S'Variable_Type'\n(I2\nttRp5118\nsS'Y:VBus86 - CLUCCI31'\np5119\ng35\n(S'Variable_Type'\n(I2\nttRp5120\nsS'Y:VBus35 - CPORTO21'\np5121\ng35\n(S'Variable_Type'\n(I2\nttRp5122\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np5123\ng35\n(S'Variable_Type'\n(I1\nttRp5124\nsS'Y:PMachine107 - CRIZZA32'\np5125\ng35\n(S'Variable_Type'\n(I2\nttRp5126\nsS'Y:VBus16 - CCALDA21'\np5127\ng35\n(S'Variable_Type'\n(I2\nttRp5128\nsS'Y:Load 102 - CPORTO31'\np5129\ng35\n(S'Variable_Type'\n(I2\nttRp5130\nsS'Y:VBus107 - CRIZZA32'\np5131\ng35\n(S'Variable_Type'\n(I2\nttRp5132\nsS'Y:VBus59 - CCALDA31'\np5133\ng35\n(S'Variable_Type'\n(I2\nttRp5134\nsS'Y:VBus41 - CSAMPO21'\np5135\ng35\n(S'Variable_Type'\n(I2\nttRp5136\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np5137\ng35\n(S'Variable_Type'\n(I2\nttRp5138\nsS'Y:VBus34 - CPIETR21'\np5139\ng35\n(S'Variable_Type'\n(I2\nttRp5140\nsS'Y:Load 108 - CSAGON31'\np5141\ng35\n(S'Variable_Type'\n(I2\nttRp5142\nsS'Y:VBus56 - CBIGUG32'\np5143\ng35\n(S'Variable_Type'\n(I2\nttRp5144\nsS'Y:PMachine42 - CSISCO21'\np5145\ng35\n(S'Variable_Type'\n(I2\nttRp5146\nsS'Y:PMachine138 - CLUCCI39'\np5147\ng35\n(S'Variable_Type'\n(I1\nttRp5148\nsS'Y:PMachine112 - CSAMPO31'\np5149\ng35\n(S'Variable_Type'\n(I2\nttRp5150\nsS'Y:VBus105 - CPROPR32'\np5151\ng35\n(S'Variable_Type'\n(I2\nttRp5152\nsS'Y:VBus1 - CBONIF11'\np5153\ng35\n(S'Variable_Type'\n(I2\nttRp5154\nsS'Y:VBus12 - CBASTI21'\np5155\ng35\n(S'Variable_Type'\n(I2\nttRp5156\nsS'Y:PMachine129 - CVAZZI310'\np5157\ng35\n(S'Variable_Type'\n(I2\nttRp5158\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np5159\ng35\n(S'Variable_Type'\n(I1\nttRp5160\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np5161\ng35\n(S'Variable_Type'\n(I1\nttRp5162\nsS'Y:VBus54 - CBASTI32'\np5163\ng35\n(S'Variable_Type'\n(I2\nttRp5164\nsS'Y:VBus69 - CCASAM37'\np5165\ng35\n(S'Variable_Type'\n(I2\nttRp5166\nsS'Y:VBus45 - CTOLLA21'\np5167\ng35\n(S'Variable_Type'\n(I2\nttRp5168\nsS'Y:PMachine115 - CTAGLI31'\np5169\ng35\n(S'Variable_Type'\n(I2\nttRp5170\nsS'Y:PMachine77 - CCORTE32'\np5171\ng35\n(S'Variable_Type'\n(I2\nttRp5172\nsS'Y:VBus43 - CSOVEN21'\np5173\ng35\n(S'Variable_Type'\n(I2\nttRp5174\nsS'Y:VBus76 - CCORTE31'\np5175\ng35\n(S'Variable_Type'\n(I2\nttRp5176\nsS'Y:VBus75 - CCORSC31'\np5177\ng35\n(S'Variable_Type'\n(I2\nttRp5178\nsS'Y:PMachine78 - CFURIA31'\np5179\ng35\n(S'Variable_Type'\n(I1\nttRp5180\nsS'Y:VBus127 - CVAZZI38'\np5181\ng35\n(S'Variable_Type'\n(I2\nttRp5182\nsS'Y:VBus115 - CTAGLI31'\np5183\ng35\n(S'Variable_Type'\n(I2\nttRp5184\nsS'Y:Load 61 - CCALVI31'\np5185\ng35\n(S'Variable_Type'\n(I2\nttRp5186\nsS'Y:VBus55 - CBIGUG31'\np5187\ng35\n(S'Variable_Type'\n(I2\nttRp5188\nsS'Y:Load 42 - CSISCO21'\np5189\ng35\n(S'Variable_Type'\n(I2\nttRp5190\nsS'Y:VBus72 - CCASTI31'\np5191\ng35\n(S'Variable_Type'\n(I2\nttRp5192\nsS'Y:Load 37 - CRIZZA21'\np5193\ng35\n(S'Variable_Type'\n(I2\nttRp5194\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np5195\ng35\n(S'Variable_Type'\n(I2\nttRp5196\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np5197\ng35\n(S'Variable_Type'\n(I2\nttRp5198\nsS'Y:PMachine137 - CLUCCI38'\np5199\ng35\n(S'Variable_Type'\n(I1\nttRp5200\nsS'Y:PMachine67 - CCASAM35'\np5201\ng35\n(S'Variable_Type'\n(I2\nttRp5202\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np5203\ng35\n(S'Variable_Type'\n(I1\nttRp5204\nsS'Y:VBus31 - CMOROS21'\np5205\ng35\n(S'Variable_Type'\n(I2\nttRp5206\nsS'Y:VBus103 - CPORTO32'\np5207\ng35\n(S'Variable_Type'\n(I2\nttRp5208\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np5209\ng35\n(S'Variable_Type'\n(I1\nttRp5210\nsS'Y:PMachine128 - CVAZZI39'\np5211\ng35\n(S'Variable_Type'\n(I2\nttRp5212\nsS'Y:PMachine72 - CCASTI31'\np5213\ng35\n(S'Variable_Type'\n(I2\nttRp5214\nsS'Y:VBus27 - CILERO21'\np5215\ng35\n(S'Variable_Type'\n(I2\nttRp5216\nsS'Y:PMachine75 - CCORSC31'\np5217\ng35\n(S'Variable_Type'\n(I2\nttRp5218\nsS'Y:Load 51 - CASPRE31'\np5219\ng35\n(S'Variable_Type'\n(I2\nttRp5220\nsS'Y:PMachine61 - CCALVI31'\np5221\ng35\n(S'Variable_Type'\n(I1\nttRp5222\nsS'Y:VBus51 - CASPRE31'\np5223\ng35\n(S'Variable_Type'\n(I2\nttRp5224\nsS'Y:VBus114 - CSOVEN31'\np5225\ng35\n(S'Variable_Type'\n(I2\nttRp5226\nsS'Y:Load 82 - CILERO31'\np5227\ng35\n(S'Variable_Type'\n(I2\nttRp5228\nsS'Y:VBus116 - CTOLLA31'\np5229\ng35\n(S'Variable_Type'\n(I2\nttRp5230\nsS'Y:Load 86 - CLUCCI31'\np5231\ng35\n(S'Variable_Type'\n(I2\nttRp5232\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np5233\ng35\n(S'Variable_Type'\n(I2\nttRp5234\nsS'Y:Load 57 - CBONIF31'\np5235\ng35\n(S'Variable_Type'\n(I2\nttRp5236\nsS'Y:PMachine104 - CPROPR31'\np5237\ng35\n(S'Variable_Type'\n(I2\nttRp5238\nsS'Y:VBus128 - CVAZZI39'\np5239\ng35\n(S'Variable_Type'\n(I2\nttRp5240\nsS'Y:PMachine136 - CLUCCI37'\np5241\ng35\n(S'Variable_Type'\n(I1\nttRp5242\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np5243\ng35\n(S'Variable_Type'\n(I2\nttRp5244\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np5245\ng35\n(S'Variable_Type'\n(I2\nttRp5246\nsS'Y:PMachine68 - CCASAM36'\np5247\ng35\n(S'Variable_Type'\n(I2\nttRp5248\nsS'Y:PMachine29 - CLUCCI21'\np5249\ng35\n(S'Variable_Type'\n(I1\nttRp5250\nsS'Y:VBus42 - CSISCO21'\np5251\ng35\n(S'Variable_Type'\n(I2\nttRp5252\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np5253\ng35\n(S'Variable_Type'\n(I1\nttRp5254\nsS'Y:VBus14 - CBONIF21'\np5255\ng35\n(S'Variable_Type'\n(I2\nttRp5256\nsS'Y:VBus73 - CCASTI32'\np5257\ng35\n(S'Variable_Type'\n(I2\nttRp5258\nsS'Y:VBus64 - CCASAM32'\np5259\ng35\n(S'Variable_Type'\n(I2\nttRp5260\nsS'Y:PMachine14 - CBONIF21'\np5261\ng35\n(S'Variable_Type'\n(I1\nttRp5262\nsS'Y:PMachine62 - CCALVI32'\np5263\ng35\n(S'Variable_Type'\n(I2\nttRp5264\nsS'Y:VBus133 - CVAZZI314'\np5265\ng35\n(S'Variable_Type'\n(I2\nttRp5266\nsS'Y:VBus63 - CCASAM31'\np5267\ng35\n(S'Variable_Type'\n(I2\nttRp5268\nsS'Y:PMachine101 - CPIETR31'\np5269\ng35\n(S'Variable_Type'\n(I2\nttRp5270\nsS'Y:%Losses'\np5271\ng35\n(S'Variable_Type'\n(I2\nttRp5272\nsS'Y:VBus85 - CLORET32'\np5273\ng35\n(S'Variable_Type'\n(I2\nttRp5274\nsS'Y:Load 59 - CCALDA31'\np5275\ng35\n(S'Variable_Type'\n(I2\nttRp5276\nsS'Y:VBus129 - CVAZZI310'\np5277\ng35\n(S'Variable_Type'\n(I2\nttRp5278\nsS'Y:VBus101 - CPIETR31'\np5279\ng35\n(S'Variable_Type'\n(I2\nttRp5280\nsS'Y:PMachine106 - CRIZZA31'\np5281\ng35\n(S'Variable_Type'\n(I2\nttRp5282\nsS'Y:VBus132 - CVAZZI313'\np5283\ng35\n(S'Variable_Type'\n(I2\nttRp5284\nsS'Y:PMachine118 - CTOLLA33'\np5285\ng35\n(S'Variable_Type'\n(I2\nttRp5286\nsS'Y:VBus19 - CCASTI21'\np5287\ng35\n(S'Variable_Type'\n(I2\nttRp5288\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np5289\ng35\n(S'Variable_Type'\n(I2\nttRp5290\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np5291\ng35\n(S'Variable_Type'\n(I1\nttRp5292\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np5293\ng35\n(S'Variable_Type'\n(I2\nttRp5294\nsS'Y:Load 115 - CTAGLI31'\np5295\ng5024\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np5296\ng35\n(S'Variable_Type'\n(I2\nttRp5297\nsS'Y:VBus79 - CFURIA32'\np5298\ng35\n(S'Variable_Type'\n(I2\nttRp5299\nsS'Y:PMachine47 - CVAZZI21'\np5300\ng35\n(S'Variable_Type'\n(I1\nttRp5301\nsS'Y:VBus123 - CVAZZI34'\np5302\ng35\n(S'Variable_Type'\n(I2\nttRp5303\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np5304\ng35\n(S'Variable_Type'\n(I2\nttRp5305\nsS'Y:VBus60 - CCALDA32'\np5306\ng35\n(S'Variable_Type'\n(I2\nttRp5307\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np5308\ng35\n(S'Variable_Type'\n(I2\nttRp5309\nsS'Y:VBus65 - CCASAM33'\np5310\ng35\n(S'Variable_Type'\n(I2\nttRp5311\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np5312\ng35\n(S'Variable_Type'\n(I1\nttRp5313\nsS'Y:PMachine139 - CLUCCI310'\np5314\ng35\n(S'Variable_Type'\n(I1\nttRp5315\nsS'Y:VBus112 - CSAMPO31'\np5316\ng35\n(S'Variable_Type'\n(I2\nttRp5317\nsS'Y:VBus68 - CCASAM36'\np5318\ng35\n(S'Variable_Type'\n(I2\nttRp5319\nsS'Y:Load 55 - CBIGUG31'\np5320\ng35\n(S'Variable_Type'\n(I2\nttRp5321\nsS'Y:PMachine53 - CBASTI31'\np5322\ng35\n(S'Variable_Type'\n(I2\nttRp5323\nsS'Y:NbeTransit_0.9-1'\np5324\ng35\n(S'Variable_Type'\n(I1\nttRp5325\nsS'Y:VBus24 - CFURIA21'\np5326\ng35\n(S'Variable_Type'\n(I2\nttRp5327\nsS'Y:VBus23 - CCORTE22'\np5328\ng35\n(S'Variable_Type'\n(I2\nttRp5329\nsS'Y:VBus18 - CCASAM21'\np5330\ng35\n(S'Variable_Type'\n(I2\nttRp5331\nsS'Y:VBus40 - CSTMAR21'\np5332\ng35\n(S'Variable_Type'\n(I2\nttRp5333\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np5334\ng35\n(S'Variable_Type'\n(I2\nttRp5335\nsS'Y:PMachine124 - CVAZZI35'\np5336\ng35\n(S'Variable_Type'\n(I2\nttRp5337\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np5338\ng35\n(S'Variable_Type'\n(I2\nttRp5339\nsS'Y:PMachine117 - CTOLLA32'\np5340\ng35\n(S'Variable_Type'\n(I2\nttRp5341\nsS'Y:VBus89 - CLUCCI34'\np5342\ng35\n(S'Variable_Type'\n(I2\nttRp5343\nsS'Y:VBus33 - COLETT21'\np5344\ng35\n(S'Variable_Type'\n(I2\nttRp5345\nsS'Y:VBus32 - COCANA21'\np5346\ng35\n(S'Variable_Type'\n(I2\nttRp5347\nsS'Y:PMachine121 - CVAZZI32'\np5348\ng35\n(S'Variable_Type'\n(I2\nttRp5349\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np5350\ng35\n(S'Variable_Type'\n(I1\nttRp5351\nsS'Y:VBus82 - CILERO31'\np5352\ng35\n(S'Variable_Type'\n(I2\nttRp5353\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np5354\ng35\n(S'Variable_Type'\n(I2\nttRp5355\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np5356\ng35\n(S'Variable_Type'\n(I2\nttRp5357\nsS'Y:VBus37 - CRIZZA21'\np5358\ng35\n(S'Variable_Type'\n(I2\nttRp5359\nsS'Y:PMachine73 - CCASTI32'\np5360\ng35\n(S'Variable_Type'\n(I2\nttRp5361\nsS'Y:PMachine86 - CLUCCI31'\np5362\ng35\n(S'Variable_Type'\n(I2\nttRp5363\nsS'Y:Load 53 - CBASTI31'\np5364\ng35\n(S'Variable_Type'\n(I2\nttRp5365\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np5366\ng35\n(S'Variable_Type'\n(I2\nttRp5367\nsS'Y:VBus21 - CCORSC21'\np5368\ng35\n(S'Variable_Type'\n(I2\nttRp5369\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np5370\ng35\n(S'Variable_Type'\n(I2\nttRp5371\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np5372\ng35\n(S'Variable_Type'\n(I2\nttRp5373\nsS'Y:PMachine126 - CVAZZI37'\np5374\ng35\n(S'Variable_Type'\n(I2\nttRp5375\nsS'Y:PMachine64 - CCASAM32'\np5376\ng35\n(S'Variable_Type'\n(I2\nttRp5377\nsS'Y:VBus67 - CCASAM35'\np5378\ng35\n(S'Variable_Type'\n(I2\nttRp5379\nsS'Y:VBus53 - CBASTI31'\np5380\ng35\n(S'Variable_Type'\n(I2\nttRp5381\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np5382\ng35\n(S'Variable_Type'\n(I2\nttRp5383\nsS'Y:VBus61 - CCALVI31'\np5384\ng35\n(S'Variable_Type'\n(I2\nttRp5385\nsS'Y:VBus93 - COCANA32'\np5386\ng35\n(S'Variable_Type'\n(I2\nttRp5387\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np5388\ng35\n(S'Variable_Type'\n(I2\nttRp5389\nsS'Y:VBus104 - CPROPR31'\np5390\ng35\n(S'Variable_Type'\n(I2\nttRp5391\nsS'Y:VBus22 - CCORTE21'\np5392\ng35\n(S'Variable_Type'\n(I2\nttRp5393\nsS'Y:VBus48 - CZSSS621'\np5394\ng35\n(S'Variable_Type'\n(I2\nttRp5395\nsS'Y:PMachine85 - CLORET32'\np5396\ng35\n(S'Variable_Type'\n(I2\nttRp5397\nsS'Y:Max%A'\np5398\ng35\n(S'Variable_Type'\n(I2\nttRp5399\nsS'Y:VBus36 - CPROPR21'\np5400\ng35\n(S'Variable_Type'\n(I2\nttRp5401\nsS'Y:Load 100 - COLETT31'\np5402\ng35\n(S'Variable_Type'\n(I2\nttRp5403\nsS'Y:PMachine54 - CBASTI32'\np5404\ng35\n(S'Variable_Type'\n(I2\nttRp5405\nsS'Y:VBus138 - CLUCCI39'\np5406\ng35\n(S'Variable_Type'\n(I2\nttRp5407\nsS'Y:VBus39 - CSTLUC21'\np5408\ng35\n(S'Variable_Type'\n(I2\nttRp5409\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np5410\ng35\n(S'Variable_Type'\n(I2\nttRp5411\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np5412\ng35\n(S'Variable_Type'\n(I2\nttRp5413\nsS'Y:Load 78 - CFURIA31'\np5414\ng35\n(S'Variable_Type'\n(I2\nttRp5415\nsS'Y:VBus28 - CLORET21'\np5416\ng35\n(S'Variable_Type'\n(I2\nttRp5417\nsS'Y:PMachine105 - CPROPR32'\np5418\ng35\n(S'Variable_Type'\n(I2\nttRp5419\nsS'Y:VBus96 - COCANA35'\np5420\ng35\n(S'Variable_Type'\n(I2\nttRp5421\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np5422\ng35\n(S'Variable_Type'\n(I1\nttRp5423\nsS'Y:PMachine18 - CCASAM21'\np5424\ng35\n(S'Variable_Type'\n(I1\nttRp5425\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np5426\ng35\n(S'Variable_Type'\n(I2\nttRp5427\nsS'Y:VBus13 - CBIGUG21'\np5428\ng35\n(S'Variable_Type'\n(I2\nttRp5429\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np5430\ng35\n(S'Variable_Type'\n(I2\nttRp5431\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np5432\ng35\n(S'Variable_Type'\n(I2\nttRp5433\nsS'Y:VBus29 - CLUCCI21'\np5434\ng35\n(S'Variable_Type'\n(I2\nttRp5435\nsS'Y:VBus58 - CBONIF32'\np5436\ng35\n(S'Variable_Type'\n(I2\nttRp5437\nsS'Y:VBus84 - CLORET31'\np5438\ng35\n(S'Variable_Type'\n(I2\nttRp5439\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np5440\ng35\n(S'Variable_Type'\n(I1\nttRp5441\nsS'Y:VBus97 - COCANA36'\np5442\ng35\n(S'Variable_Type'\n(I2\nttRp5443\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np5444\ng35\n(S'Variable_Type'\n(I1\nttRp5445\nsS'Y:VBus15 - CBONIF22'\np5446\ng35\n(S'Variable_Type'\n(I2\nttRp5447\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np5448\ng35\n(S'Variable_Type'\n(I2\nttRp5449\nsS'Y:Load 110 - CSTLUC31'\np5450\ng35\n(S'Variable_Type'\n(I2\nttRp5451\nsS'Y:VBus80 - CGHISO31'\np5452\ng35\n(S'Variable_Type'\n(I2\nttRp5453\nsS'Y:PMachine114 - CSOVEN31'\np5454\ng35\n(S'Variable_Type'\n(I2\nttRp5455\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np5456\ng35\n(S'Variable_Type'\n(I1\nttRp5457\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np5458\ng35\n(S'Variable_Type'\n(I2\nttRp5459\nsS'Y:PMachine93 - COCANA32'\np5460\ng35\n(S'Variable_Type'\n(I2\nttRp5461\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np5462\ng35\n(S'Variable_Type'\n(I1\nttRp5463\nsS'Y:VBus87 - CLUCCI32'\np5464\ng35\n(S'Variable_Type'\n(I2\nttRp5465\nsS'Y:VBus62 - CCALVI32'\np5466\ng35\n(S'Variable_Type'\n(I2\nttRp5467\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np5468\ng35\n(S'Variable_Type'\n(I1\nttRp5469\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np5470\ng35\n(S'Variable_Type'\n(I1\nttRp5471\nsS'Y:VBus81 - CGHISO32'\np5472\ng35\n(S'Variable_Type'\n(I2\nttRp5473\nsS'Y:PMachine74 - CCERVI31'\np5474\ng35\n(S'Variable_Type'\n(I2\nttRp5475\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np5476\ng35\n(S'Variable_Type'\n(I2\nttRp5477\nsS'EOL_ALL'\np5478\ng35\n(S'Variable_Type'\n(I2\nttRp5479\nsS'X:Load(pu)'\np5480\ng5020\nsS'Y:NbeTension'\np5481\ng35\n(S'Variable_Type'\n(I2\nttRp5482\nsS'Y:VBus95 - COCANA34'\np5483\ng35\n(S'Variable_Type'\n(I2\nttRp5484\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np5485\ng35\n(S'Variable_Type'\n(I2\nttRp5486\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np5487\ng35\n(S'Variable_Type'\n(I2\nttRp5488\nsS'Y:Load 95 - COCANA34'\np5489\ng35\n(S'Variable_Type'\n(I2\nttRp5490\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np5491\ng35\n(S'Variable_Type'\n(I1\nttRp5492\nsS'Y:PMachine90 - CMOROS31'\np5493\ng35\n(S'Variable_Type'\n(I2\nttRp5494\nsS'Y:Load 101 - CPIETR31'\np5495\ng35\n(S'Variable_Type'\n(I2\nttRp5496\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np5497\ng35\n(S'Variable_Type'\n(I1\nttRp5498\nsS'Y:PMachine132 - CVAZZI313'\np5499\ng35\n(S'Variable_Type'\n(I2\nttRp5500\nsS'Y:VBus125 - CVAZZI36'\np5501\ng35\n(S'Variable_Type'\n(I2\nttRp5502\nsS'Y:VBus135 - CLUCCI36'\np5503\ng35\n(S'Variable_Type'\n(I2\nttRp5504\nsS'Y:VBus47 - CVAZZI21'\np5505\ng35\n(S'Variable_Type'\n(I2\nttRp5506\nsS'Y:VBus94 - COCANA33'\np5507\ng35\n(S'Variable_Type'\n(I2\nttRp5508\nsS'Y:VBus17 - CCALVI21'\np5509\ng35\n(S'Variable_Type'\n(I2\nttRp5510\nsS'Y:Load 90 - CMOROS31'\np5511\ng35\n(S'Variable_Type'\n(I2\nttRp5512\nsS'Y:VBus120 - CVAZZI31'\np5513\ng35\n(S'Variable_Type'\n(I2\nttRp5514\nsS'X:ProdPV%Pnom'\np5515\ng35\n(S'Variable_Type'\n(I2\nttRp5516\nsS'Y:VBus52 - CASPRE32'\np5517\ng35\n(S'Variable_Type'\n(I2\nttRp5518\nsS'Y:VBus25 - CFURIA22'\np5519\ng35\n(S'Variable_Type'\n(I2\nttRp5520\nsS'Y:Load 76 - CCORTE31'\np5521\ng35\n(S'Variable_Type'\n(I2\nttRp5522\nsS'Y:PMachine69 - CCASAM37'\np5523\ng35\n(S'Variable_Type'\n(I2\nttRp5524\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np5525\ng35\n(S'Variable_Type'\n(I2\nttRp5526\nsS'Y:PMachine92 - COCANA31'\np5527\ng35\n(S'Variable_Type'\n(I2\nttRp5528\nsS'Y:PMachine102 - CPORTO31'\np5529\ng35\n(S'Variable_Type'\n(I2\nttRp5530\nsS'Y:PMachine122 - CVAZZI33'\np5531\ng35\n(S'Variable_Type'\n(I2\nttRp5532\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np5533\ng35\n(S'Variable_Type'\n(I1\nttRp5534\nsS'Y:PMachine63 - CCASAM31'\np5535\ng35\n(S'Variable_Type'\n(I2\nttRp5536\nsS'Y:VBus74 - CCERVI31'\np5537\ng35\n(S'Variable_Type'\n(I2\nttRp5538\nsS'Y:VBus126 - CVAZZI37'\np5539\ng35\n(S'Variable_Type'\n(I2\nttRp5540\nsS'Y:PMachine60 - CCALDA32'\np5541\ng35\n(S'Variable_Type'\n(I2\nttRp5542\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np5543\ng35\n(S'Variable_Type'\n(I1\nttRp5544\nsS'Y:VBus20 - CCERVI21'\np5545\ng35\n(S'Variable_Type'\n(I2\nttRp5546\nsS'Y:VBus119 - CTRAVO31'\np5547\ng35\n(S'Variable_Type'\n(I2\nttRp5548\nsS'Y:VBus11 - CASPRE21'\np5549\ng35\n(S'Variable_Type'\n(I2\nttRp5550\nsS'Y:VBus139 - CLUCCI310'\np5551\ng35\n(S'Variable_Type'\n(I2\nttRp5552\nsS'Y:VBus106 - CRIZZA31'\np5553\ng35\n(S'Variable_Type'\n(I2\nttRp5554\nsS'Y:PMachine66 - CCASAM34'\np5555\ng35\n(S'Variable_Type'\n(I2\nttRp5556\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np5557\ng35\n(S'Variable_Type'\n(I2\nttRp5558\nsS'Y:VBus136 - CLUCCI37'\np5559\ng35\n(S'Variable_Type'\n(I2\nttRp5560\nsS'Y:VBus90 - CMOROS31'\np5561\ng35\n(S'Variable_Type'\n(I2\nttRp5562\nsS'Y:Load 74 - CCERVI31'\np5563\ng35\n(S'Variable_Type'\n(I2\nttRp5564\nsS'X:lineOff#'\np5565\ng35\n(S'Variable_Type'\n(I2\nttRp5566\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np5567\ng35\n(S'Variable_Type'\n(I2\nttRp5568\nsS'Y:VBus108 - CSAGON31'\np5569\ng35\n(S'Variable_Type'\n(I2\nttRp5570\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np5571\ng35\n(S'Variable_Type'\n(I2\nttRp5572\nsS'Y:VBus137 - CLUCCI38'\np5573\ng35\n(S'Variable_Type'\n(I2\nttRp5574\nsS'Y:VBus130 - CVAZZI311'\np5575\ng35\n(S'Variable_Type'\n(I2\nttRp5576\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np5577\ng35\n(S'Variable_Type'\n(I2\nttRp5578\nsS'Y:VBus46 - CTRAVO21'\np5579\ng35\n(S'Variable_Type'\n(I2\nttRp5580\nsS'Y:VBus113 - CSAMPO32'\np5581\ng35\n(S'Variable_Type'\n(I2\nttRp5582\nsS'Y:PMachine133 - CVAZZI314'\np5583\ng35\n(S'Variable_Type'\n(I2\nttRp5584\nsS'Y:PMachine65 - CCASAM33'\np5585\ng35\n(S'Variable_Type'\n(I2\nttRp5586\nsS'Y:VBus78 - CFURIA31'\np5587\ng35\n(S'Variable_Type'\n(I2\nttRp5588\nsS'Y:VBus26 - CGHISO21'\np5589\ng35\n(S'Variable_Type'\n(I2\nttRp5590\nsS'Y:VBus121 - CVAZZI32'\np5591\ng35\n(S'Variable_Type'\n(I2\nttRp5592\nsS'Y:PMachine97 - COCANA36'\np5593\ng35\n(S'Variable_Type'\n(I2\nttRp5594\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np5595\ng35\n(S'Variable_Type'\n(I2\nttRp5596\nsS'Y:PMachine83 - CILERO32'\np5597\ng35\n(S'Variable_Type'\n(I2\nttRp5598\nsS'Y:VBus83 - CILERO32'\np5599\ng35\n(S'Variable_Type'\n(I2\nttRp5600\nsS'Y:VBus66 - CCASAM34'\np5601\ng35\n(S'Variable_Type'\n(I2\nttRp5602\nsS'Y:PMachine1 - CBONIF11'\np5603\ng35\n(S'Variable_Type'\n(I2\nttRp5604\nsS'Y:VBus111 - CSTMAR31'\np5605\ng35\n(S'Variable_Type'\n(I2\nttRp5606\nsS'Y:VBus124 - CVAZZI35'\np5607\ng35\n(S'Variable_Type'\n(I2\nttRp5608\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np5609\ng35\n(S'Variable_Type'\n(I2\nttRp5610\nsS'Y:PMachine131 - CVAZZI312'\np5611\ng35\n(S'Variable_Type'\n(I2\nttRp5612\nsS'Y:VBus44 - CTAGLI21'\np5613\ng35\n(S'Variable_Type'\n(I2\nttRp5614\nsS'Y:VBus88 - CLUCCI33'\np5615\ng35\n(S'Variable_Type'\n(I2\nttRp5616\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np5617\ng35\n(S'Variable_Type'\n(I1\nttRp5618\nsS'Y:VBus38 - CSAGON21'\np5619\ng35\n(S'Variable_Type'\n(I2\nttRp5620\nsS'Y:PMachine81 - CGHISO32'\np5621\ng35\n(S'Variable_Type'\n(I2\nttRp5622\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np5623\ng35\n(S'Variable_Type'\n(I2\nttRp5624\nsS'Y:VBus110 - CSTLUC31'\np5625\ng35\n(S'Variable_Type'\n(I2\nttRp5626\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np5627\ng35\n(S'Variable_Type'\n(I2\nttRp5628\nssg650\n(lp5629\ng652\nasba(iOWContexts\nContext\np5630\n(dp5631\ng24\n(lp5632\nsg26\n(dp5633\nsg28\n(dp5634\ng1897\n(S''\nI-1\ntp5635\nsg1899\n(S''\nI0\ntp5636\nsg1901\n(g1281\ng35\n(S'Variable_Type'\n(I2\nttRp5637\ntp5638\nsg1904\n(g1284\ng5637\ntp5639\nsg1906\n(S''\nI0\ntp5640\nsg1908\n(g1287\ng35\n(S'Variable_Type'\n(I2\nttRp5641\ntp5642\nssg46\nF1369994938.898\nsg47\n(dp5643\nS'Y:PMachine134 - CLUCCI35'\np5644\ng35\n(S'Variable_Type'\n(I1\nttRp5645\nsS'Y:VBus77 - CCORTE32'\np5646\ng35\n(S'Variable_Type'\n(I2\nttRp5647\nsS'Y:VBus134 - CLUCCI35'\np5648\ng35\n(S'Variable_Type'\n(I2\nttRp5649\nsS'Y:VBus109 - CSAGON32'\np5650\ng35\n(S'Variable_Type'\n(I2\nttRp5651\nsS'Y:VBus102 - CPORTO31'\np5652\ng35\n(S'Variable_Type'\n(I2\nttRp5653\nsS'XProdEolienne%Pnom'\np5654\ng35\n(S'Variable_Type'\n(I1\nttRp5655\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np5656\ng35\n(S'Variable_Type'\n(I2\nttRp5657\nsS'Y:PMachine94 - COCANA33'\np5658\ng35\n(S'Variable_Type'\n(I2\nttRp5659\nsS'Y:VBus117 - CTOLLA32'\np5660\ng35\n(S'Variable_Type'\n(I2\nttRp5661\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np5662\ng35\n(S'Variable_Type'\n(I2\nttRp5663\nsS'Y:PMachine87 - CLUCCI32'\np5664\ng35\n(S'Variable_Type'\n(I2\nttRp5665\nsS'Y:PMachine113 - CSAMPO32'\np5666\ng35\n(S'Variable_Type'\n(I2\nttRp5667\nsS'Y:Load 84 - CLORET31'\np5668\ng35\n(S'Variable_Type'\n(I2\nttRp5669\nsS'Y:PMachine89 - CLUCCI34'\np5670\ng35\n(S'Variable_Type'\n(I1\nttRp5671\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np5672\ng35\n(S'Variable_Type'\n(I2\nttRp5673\nsS'Y:Load 80 - CGHISO31'\np5674\ng35\n(S'Variable_Type'\n(I2\nttRp5675\nsS'Y:PMachine125 - CVAZZI36'\np5676\ng35\n(S'Variable_Type'\n(I2\nttRp5677\nsS'Y:PMachine116 - CTOLLA31'\np5678\ng35\n(S'Variable_Type'\n(I2\nttRp5679\nsS'Y:PMachine88 - CLUCCI33'\np5680\ng35\n(S'Variable_Type'\n(I1\nttRp5681\nsS'Y:PMachine120 - CVAZZI31'\np5682\ng35\n(S'Variable_Type'\n(I2\nttRp5683\nsS'Y:PMachine111 - CSTMAR31'\np5684\ng35\n(S'Variable_Type'\n(I2\nttRp5685\nsS'Y:NbeTransit'\np5686\ng35\n(S'Variable_Type'\n(I1\nttRp5687\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np5688\ng35\n(S'Variable_Type'\n(I2\nttRp5689\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np5690\ng35\n(S'Variable_Type'\n(I2\nttRp5691\nsS'Y:VBus92 - COCANA31'\np5692\ng35\n(S'Variable_Type'\n(I2\nttRp5693\nsS'Y:PMachine130 - CVAZZI311'\np5694\ng35\n(S'Variable_Type'\n(I2\nttRp5695\nsS'Y:PMachine127 - CVAZZI38'\np5696\ng35\n(S'Variable_Type'\n(I2\nttRp5697\nsS'Y:VBus131 - CVAZZI312'\np5698\ng35\n(S'Variable_Type'\n(I2\nttRp5699\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np5700\ng35\n(S'Variable_Type'\n(I2\nttRp5701\nsS'Y:PMachine123 - CVAZZI34'\np5702\ng35\n(S'Variable_Type'\n(I2\nttRp5703\nsS'Y:VBus118 - CTOLLA33'\np5704\ng35\n(S'Variable_Type'\n(I2\nttRp5705\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np5706\ng35\n(S'Variable_Type'\n(I1\nttRp5707\nsS'Y:PMachine58 - CBONIF32'\np5708\ng35\n(S'Variable_Type'\n(I2\nttRp5709\nsS'Y:Load 104 - CPROPR31'\np5710\ng35\n(S'Variable_Type'\n(I2\nttRp5711\nsS'Y:PMachine30 - CLUCCI22'\np5712\ng35\n(S'Variable_Type'\n(I1\nttRp5713\nsS'Y:VBus100 - COLETT31'\np5714\ng35\n(S'Variable_Type'\n(I2\nttRp5715\nsS'Y:PProdTot'\np5716\ng35\n(S'Variable_Type'\n(I2\nttRp5717\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np5718\ng35\n(S'Variable_Type'\n(I1\nttRp5719\nsS'Y:VBus57 - CBONIF31'\np5720\ng35\n(S'Variable_Type'\n(I2\nttRp5721\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np5722\ng35\n(S'Variable_Type'\n(I2\nttRp5723\nsS'Y:PConsoTot'\np5724\ng35\n(S'Variable_Type'\n(I2\nttRp5725\nsS'Iteration'\np5726\ng35\n(S'Variable_Type'\n(I2\nttRp5727\nsS'Y:PMachine109 - CSAGON32'\np5728\ng35\n(S'Variable_Type'\n(I2\nttRp5729\nsS'Y:PMachine135 - CLUCCI36'\np5730\ng35\n(S'Variable_Type'\n(I1\nttRp5731\nsS'Y:VBus30 - CLUCCI22'\np5732\ng35\n(S'Variable_Type'\n(I2\nttRp5733\nsS'Y:VBus122 - CVAZZI33'\np5734\ng35\n(S'Variable_Type'\n(I2\nttRp5735\nsS'Y:VBus22 - CCORTE21'\np5736\ng35\n(S'Variable_Type'\n(I2\nttRp5737\nsS'Y:VBus35 - CPORTO21'\np5738\ng35\n(S'Variable_Type'\n(I2\nttRp5739\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np5740\ng35\n(S'Variable_Type'\n(I1\nttRp5741\nsS'Y:PMachine107 - CRIZZA32'\np5742\ng35\n(S'Variable_Type'\n(I2\nttRp5743\nsS'Y:VBus16 - CCALDA21'\np5744\ng35\n(S'Variable_Type'\n(I2\nttRp5745\nsS'Y:Load 102 - CPORTO31'\np5746\ng35\n(S'Variable_Type'\n(I2\nttRp5747\nsS'Y:VBus107 - CRIZZA32'\np5748\ng35\n(S'Variable_Type'\n(I2\nttRp5749\nsS'Y:VBus59 - CCALDA31'\np5750\ng35\n(S'Variable_Type'\n(I2\nttRp5751\nsS'Y:VBus41 - CSAMPO21'\np5752\ng35\n(S'Variable_Type'\n(I2\nttRp5753\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np5754\ng35\n(S'Variable_Type'\n(I2\nttRp5755\nsS'Y:VBus34 - CPIETR21'\np5756\ng35\n(S'Variable_Type'\n(I2\nttRp5757\nsS'Y:Load 108 - CSAGON31'\np5758\ng35\n(S'Variable_Type'\n(I2\nttRp5759\nsS'Y:VBus56 - CBIGUG32'\np5760\ng35\n(S'Variable_Type'\n(I2\nttRp5761\nsS'Y:PMachine42 - CSISCO21'\np5762\ng35\n(S'Variable_Type'\n(I2\nttRp5763\nsS'Y:PMachine138 - CLUCCI39'\np5764\ng35\n(S'Variable_Type'\n(I1\nttRp5765\nsS'Y:PMachine112 - CSAMPO31'\np5766\ng35\n(S'Variable_Type'\n(I2\nttRp5767\nsS'Y:VBus105 - CPROPR32'\np5768\ng35\n(S'Variable_Type'\n(I2\nttRp5769\nsS'Y:VBus1 - CBONIF11'\np5770\ng35\n(S'Variable_Type'\n(I2\nttRp5771\nsS'Y:VBus12 - CBASTI21'\np5772\ng35\n(S'Variable_Type'\n(I2\nttRp5773\nsS'Y:PMachine129 - CVAZZI310'\np5774\ng35\n(S'Variable_Type'\n(I2\nttRp5775\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np5776\ng35\n(S'Variable_Type'\n(I1\nttRp5777\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np5778\ng35\n(S'Variable_Type'\n(I1\nttRp5779\nsS'Y:VBus54 - CBASTI32'\np5780\ng35\n(S'Variable_Type'\n(I2\nttRp5781\nsS'Y:VBus69 - CCASAM37'\np5782\ng35\n(S'Variable_Type'\n(I2\nttRp5783\nsS'Y:VBus45 - CTOLLA21'\np5784\ng35\n(S'Variable_Type'\n(I2\nttRp5785\nsS'Y:PMachine115 - CTAGLI31'\np5786\ng35\n(S'Variable_Type'\n(I2\nttRp5787\nsS'Y:PMachine77 - CCORTE32'\np5788\ng35\n(S'Variable_Type'\n(I2\nttRp5789\nsS'Y:VBus43 - CSOVEN21'\np5790\ng35\n(S'Variable_Type'\n(I2\nttRp5791\nsS'Y:VBus76 - CCORTE31'\np5792\ng35\n(S'Variable_Type'\n(I2\nttRp5793\nsS'Y:VBus75 - CCORSC31'\np5794\ng35\n(S'Variable_Type'\n(I2\nttRp5795\nsS'Y:PMachine78 - CFURIA31'\np5796\ng35\n(S'Variable_Type'\n(I1\nttRp5797\nsS'Y:VBus127 - CVAZZI38'\np5798\ng35\n(S'Variable_Type'\n(I2\nttRp5799\nsS'Y:VBus115 - CTAGLI31'\np5800\ng35\n(S'Variable_Type'\n(I2\nttRp5801\nsS'Y:Load 61 - CCALVI31'\np5802\ng35\n(S'Variable_Type'\n(I2\nttRp5803\nsS'Y:VBus55 - CBIGUG31'\np5804\ng35\n(S'Variable_Type'\n(I2\nttRp5805\nsS'Y:Load 42 - CSISCO21'\np5806\ng35\n(S'Variable_Type'\n(I2\nttRp5807\nsS'Y:VBus72 - CCASTI31'\np5808\ng35\n(S'Variable_Type'\n(I2\nttRp5809\nsS'Y:Load 37 - CRIZZA21'\np5810\ng35\n(S'Variable_Type'\n(I2\nttRp5811\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np5812\ng35\n(S'Variable_Type'\n(I2\nttRp5813\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np5814\ng35\n(S'Variable_Type'\n(I2\nttRp5815\nsS'Y:PMachine137 - CLUCCI38'\np5816\ng35\n(S'Variable_Type'\n(I1\nttRp5817\nsS'Y:PMachine67 - CCASAM35'\np5818\ng35\n(S'Variable_Type'\n(I2\nttRp5819\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np5820\ng35\n(S'Variable_Type'\n(I1\nttRp5821\nsS'Y:VBus31 - CMOROS21'\np5822\ng35\n(S'Variable_Type'\n(I2\nttRp5823\nsS'Y:VBus103 - CPORTO32'\np5824\ng35\n(S'Variable_Type'\n(I2\nttRp5825\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np5826\ng35\n(S'Variable_Type'\n(I1\nttRp5827\nsS'Y:PMachine128 - CVAZZI39'\np5828\ng35\n(S'Variable_Type'\n(I2\nttRp5829\nsS'Y:PMachine72 - CCASTI31'\np5830\ng35\n(S'Variable_Type'\n(I2\nttRp5831\nsS'Y:VBus27 - CILERO21'\np5832\ng35\n(S'Variable_Type'\n(I2\nttRp5833\nsS'Y:PMachine75 - CCORSC31'\np5834\ng35\n(S'Variable_Type'\n(I2\nttRp5835\nsS'Y:Load 51 - CASPRE31'\np5836\ng35\n(S'Variable_Type'\n(I2\nttRp5837\nsS'Y:PMachine61 - CCALVI31'\np5838\ng35\n(S'Variable_Type'\n(I1\nttRp5839\nsS'Y:VBus51 - CASPRE31'\np5840\ng35\n(S'Variable_Type'\n(I2\nttRp5841\nsS'Y:VBus114 - CSOVEN31'\np5842\ng35\n(S'Variable_Type'\n(I2\nttRp5843\nsS'Y:Load 82 - CILERO31'\np5844\ng35\n(S'Variable_Type'\n(I2\nttRp5845\nsS'Y:VBus116 - CTOLLA31'\np5846\ng35\n(S'Variable_Type'\n(I2\nttRp5847\nsS'Y:Load 86 - CLUCCI31'\np5848\ng35\n(S'Variable_Type'\n(I2\nttRp5849\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np5850\ng35\n(S'Variable_Type'\n(I2\nttRp5851\nsS'Y:Load 57 - CBONIF31'\np5852\ng35\n(S'Variable_Type'\n(I2\nttRp5853\nsS'Y:PMachine104 - CPROPR31'\np5854\ng35\n(S'Variable_Type'\n(I2\nttRp5855\nsS'Y:VBus128 - CVAZZI39'\np5856\ng35\n(S'Variable_Type'\n(I2\nttRp5857\nsS'Y:PMachine136 - CLUCCI37'\np5858\ng35\n(S'Variable_Type'\n(I1\nttRp5859\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np5860\ng35\n(S'Variable_Type'\n(I2\nttRp5861\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np5862\ng35\n(S'Variable_Type'\n(I2\nttRp5863\nsS'Y:PMachine68 - CCASAM36'\np5864\ng35\n(S'Variable_Type'\n(I2\nttRp5865\nsS'Y:PMachine29 - CLUCCI21'\np5866\ng35\n(S'Variable_Type'\n(I1\nttRp5867\nsS'Y:VBus42 - CSISCO21'\np5868\ng35\n(S'Variable_Type'\n(I2\nttRp5869\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np5870\ng35\n(S'Variable_Type'\n(I1\nttRp5871\nsS'Y:VBus14 - CBONIF21'\np5872\ng35\n(S'Variable_Type'\n(I2\nttRp5873\nsS'Y:VBus73 - CCASTI32'\np5874\ng35\n(S'Variable_Type'\n(I2\nttRp5875\nsS'Y:VBus64 - CCASAM32'\np5876\ng35\n(S'Variable_Type'\n(I2\nttRp5877\nsS'Y:PMachine14 - CBONIF21'\np5878\ng35\n(S'Variable_Type'\n(I1\nttRp5879\nsS'Y:PMachine62 - CCALVI32'\np5880\ng35\n(S'Variable_Type'\n(I2\nttRp5881\nsS'Y:VBus133 - CVAZZI314'\np5882\ng35\n(S'Variable_Type'\n(I2\nttRp5883\nsS'Y:VBus63 - CCASAM31'\np5884\ng35\n(S'Variable_Type'\n(I2\nttRp5885\nsS'Y:PMachine101 - CPIETR31'\np5886\ng35\n(S'Variable_Type'\n(I2\nttRp5887\nsS'Y:%Losses'\np5888\ng35\n(S'Variable_Type'\n(I2\nttRp5889\nsS'Y:VBus85 - CLORET32'\np5890\ng35\n(S'Variable_Type'\n(I2\nttRp5891\nsS'Y:Load 59 - CCALDA31'\np5892\ng35\n(S'Variable_Type'\n(I2\nttRp5893\nsS'Y:VBus129 - CVAZZI310'\np5894\ng35\n(S'Variable_Type'\n(I2\nttRp5895\nsS'Y:VBus101 - CPIETR31'\np5896\ng35\n(S'Variable_Type'\n(I2\nttRp5897\nsS'Y:PMachine106 - CRIZZA31'\np5898\ng35\n(S'Variable_Type'\n(I2\nttRp5899\nsS'Y:VBus132 - CVAZZI313'\np5900\ng35\n(S'Variable_Type'\n(I2\nttRp5901\nsS'Y:PMachine118 - CTOLLA33'\np5902\ng35\n(S'Variable_Type'\n(I2\nttRp5903\nsS'Y:VBus19 - CCASTI21'\np5904\ng35\n(S'Variable_Type'\n(I2\nttRp5905\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np5906\ng35\n(S'Variable_Type'\n(I2\nttRp5907\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np5908\ng35\n(S'Variable_Type'\n(I1\nttRp5909\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np5910\ng35\n(S'Variable_Type'\n(I2\nttRp5911\nsS'Y:Load 115 - CTAGLI31'\np5912\ng5641\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np5913\ng35\n(S'Variable_Type'\n(I2\nttRp5914\nsS'Y:VBus79 - CFURIA32'\np5915\ng35\n(S'Variable_Type'\n(I2\nttRp5916\nsS'Y:PMachine47 - CVAZZI21'\np5917\ng35\n(S'Variable_Type'\n(I1\nttRp5918\nsS'Y:VBus123 - CVAZZI34'\np5919\ng35\n(S'Variable_Type'\n(I2\nttRp5920\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np5921\ng35\n(S'Variable_Type'\n(I2\nttRp5922\nsS'Y:VBus60 - CCALDA32'\np5923\ng35\n(S'Variable_Type'\n(I2\nttRp5924\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np5925\ng35\n(S'Variable_Type'\n(I2\nttRp5926\nsS'Y:VBus65 - CCASAM33'\np5927\ng35\n(S'Variable_Type'\n(I2\nttRp5928\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np5929\ng35\n(S'Variable_Type'\n(I1\nttRp5930\nsS'Y:PMachine139 - CLUCCI310'\np5931\ng35\n(S'Variable_Type'\n(I1\nttRp5932\nsS'Y:VBus112 - CSAMPO31'\np5933\ng35\n(S'Variable_Type'\n(I2\nttRp5934\nsS'Y:VBus68 - CCASAM36'\np5935\ng35\n(S'Variable_Type'\n(I2\nttRp5936\nsS'Y:Load 55 - CBIGUG31'\np5937\ng35\n(S'Variable_Type'\n(I2\nttRp5938\nsS'Y:PMachine53 - CBASTI31'\np5939\ng35\n(S'Variable_Type'\n(I2\nttRp5940\nsS'Y:NbeTransit_0.9-1'\np5941\ng35\n(S'Variable_Type'\n(I1\nttRp5942\nsS'Y:VBus24 - CFURIA21'\np5943\ng35\n(S'Variable_Type'\n(I2\nttRp5944\nsS'Y:VBus23 - CCORTE22'\np5945\ng35\n(S'Variable_Type'\n(I2\nttRp5946\nsS'Y:VBus18 - CCASAM21'\np5947\ng35\n(S'Variable_Type'\n(I2\nttRp5948\nsS'Y:VBus40 - CSTMAR21'\np5949\ng35\n(S'Variable_Type'\n(I2\nttRp5950\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np5951\ng35\n(S'Variable_Type'\n(I2\nttRp5952\nsS'Y:PMachine124 - CVAZZI35'\np5953\ng35\n(S'Variable_Type'\n(I2\nttRp5954\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np5955\ng35\n(S'Variable_Type'\n(I2\nttRp5956\nsS'Y:PMachine117 - CTOLLA32'\np5957\ng35\n(S'Variable_Type'\n(I2\nttRp5958\nsS'Y:VBus89 - CLUCCI34'\np5959\ng35\n(S'Variable_Type'\n(I2\nttRp5960\nsS'Y:VBus33 - COLETT21'\np5961\ng35\n(S'Variable_Type'\n(I2\nttRp5962\nsS'Y:VBus32 - COCANA21'\np5963\ng35\n(S'Variable_Type'\n(I2\nttRp5964\nsS'Y:PMachine121 - CVAZZI32'\np5965\ng35\n(S'Variable_Type'\n(I2\nttRp5966\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np5967\ng35\n(S'Variable_Type'\n(I1\nttRp5968\nsS'Y:VBus82 - CILERO31'\np5969\ng35\n(S'Variable_Type'\n(I2\nttRp5970\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np5971\ng35\n(S'Variable_Type'\n(I2\nttRp5972\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np5973\ng35\n(S'Variable_Type'\n(I2\nttRp5974\nsS'Y:VBus37 - CRIZZA21'\np5975\ng35\n(S'Variable_Type'\n(I2\nttRp5976\nsS'Y:PMachine73 - CCASTI32'\np5977\ng35\n(S'Variable_Type'\n(I2\nttRp5978\nsS'Y:PMachine86 - CLUCCI31'\np5979\ng35\n(S'Variable_Type'\n(I2\nttRp5980\nsS'Y:Load 53 - CBASTI31'\np5981\ng35\n(S'Variable_Type'\n(I2\nttRp5982\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np5983\ng35\n(S'Variable_Type'\n(I2\nttRp5984\nsS'Y:VBus21 - CCORSC21'\np5985\ng35\n(S'Variable_Type'\n(I2\nttRp5986\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np5987\ng35\n(S'Variable_Type'\n(I2\nttRp5988\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np5989\ng35\n(S'Variable_Type'\n(I2\nttRp5990\nsS'Y:PMachine126 - CVAZZI37'\np5991\ng35\n(S'Variable_Type'\n(I2\nttRp5992\nsS'Y:PMachine64 - CCASAM32'\np5993\ng35\n(S'Variable_Type'\n(I2\nttRp5994\nsS'Y:VBus67 - CCASAM35'\np5995\ng35\n(S'Variable_Type'\n(I2\nttRp5996\nsS'Y:VBus53 - CBASTI31'\np5997\ng35\n(S'Variable_Type'\n(I2\nttRp5998\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np5999\ng35\n(S'Variable_Type'\n(I2\nttRp6000\nsS'Y:VBus61 - CCALVI31'\np6001\ng35\n(S'Variable_Type'\n(I2\nttRp6002\nsS'Y:VBus93 - COCANA32'\np6003\ng35\n(S'Variable_Type'\n(I2\nttRp6004\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np6005\ng35\n(S'Variable_Type'\n(I2\nttRp6006\nsS'Y:VBus104 - CPROPR31'\np6007\ng35\n(S'Variable_Type'\n(I2\nttRp6008\nsS'Y:VBus48 - CZSSS621'\np6009\ng35\n(S'Variable_Type'\n(I2\nttRp6010\nsS'Y:PMachine85 - CLORET32'\np6011\ng35\n(S'Variable_Type'\n(I2\nttRp6012\nsS'Y:Max%A'\np6013\ng35\n(S'Variable_Type'\n(I2\nttRp6014\nsS'Y:VBus36 - CPROPR21'\np6015\ng35\n(S'Variable_Type'\n(I2\nttRp6016\nsS'Y:Load 100 - COLETT31'\np6017\ng35\n(S'Variable_Type'\n(I2\nttRp6018\nsS'Y:PMachine54 - CBASTI32'\np6019\ng35\n(S'Variable_Type'\n(I2\nttRp6020\nsS'Y:VBus138 - CLUCCI39'\np6021\ng35\n(S'Variable_Type'\n(I2\nttRp6022\nsS'Y:VBus39 - CSTLUC21'\np6023\ng35\n(S'Variable_Type'\n(I2\nttRp6024\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np6025\ng35\n(S'Variable_Type'\n(I2\nttRp6026\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np6027\ng35\n(S'Variable_Type'\n(I2\nttRp6028\nsS'Y:Load 78 - CFURIA31'\np6029\ng35\n(S'Variable_Type'\n(I2\nttRp6030\nsS'Y:VBus28 - CLORET21'\np6031\ng35\n(S'Variable_Type'\n(I2\nttRp6032\nsS'Y:PMachine105 - CPROPR32'\np6033\ng35\n(S'Variable_Type'\n(I2\nttRp6034\nsS'Y:VBus96 - COCANA35'\np6035\ng35\n(S'Variable_Type'\n(I2\nttRp6036\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np6037\ng35\n(S'Variable_Type'\n(I1\nttRp6038\nsS'Y:PMachine18 - CCASAM21'\np6039\ng35\n(S'Variable_Type'\n(I1\nttRp6040\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np6041\ng35\n(S'Variable_Type'\n(I2\nttRp6042\nsS'Y:VBus13 - CBIGUG21'\np6043\ng35\n(S'Variable_Type'\n(I2\nttRp6044\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np6045\ng35\n(S'Variable_Type'\n(I2\nttRp6046\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np6047\ng35\n(S'Variable_Type'\n(I2\nttRp6048\nsS'Y:VBus29 - CLUCCI21'\np6049\ng35\n(S'Variable_Type'\n(I2\nttRp6050\nsS'Y:VBus58 - CBONIF32'\np6051\ng35\n(S'Variable_Type'\n(I2\nttRp6052\nsS'Y:VBus84 - CLORET31'\np6053\ng35\n(S'Variable_Type'\n(I2\nttRp6054\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np6055\ng35\n(S'Variable_Type'\n(I1\nttRp6056\nsS'Y:VBus97 - COCANA36'\np6057\ng35\n(S'Variable_Type'\n(I2\nttRp6058\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np6059\ng35\n(S'Variable_Type'\n(I1\nttRp6060\nsS'Y:VBus15 - CBONIF22'\np6061\ng35\n(S'Variable_Type'\n(I2\nttRp6062\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np6063\ng35\n(S'Variable_Type'\n(I2\nttRp6064\nsS'Y:Load 110 - CSTLUC31'\np6065\ng35\n(S'Variable_Type'\n(I2\nttRp6066\nsS'Y:VBus80 - CGHISO31'\np6067\ng35\n(S'Variable_Type'\n(I2\nttRp6068\nsS'Y:PMachine114 - CSOVEN31'\np6069\ng35\n(S'Variable_Type'\n(I2\nttRp6070\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np6071\ng35\n(S'Variable_Type'\n(I1\nttRp6072\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np6073\ng35\n(S'Variable_Type'\n(I2\nttRp6074\nsS'Y:PMachine93 - COCANA32'\np6075\ng35\n(S'Variable_Type'\n(I2\nttRp6076\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np6077\ng35\n(S'Variable_Type'\n(I1\nttRp6078\nsS'Y:VBus87 - CLUCCI32'\np6079\ng35\n(S'Variable_Type'\n(I2\nttRp6080\nsS'Y:VBus62 - CCALVI32'\np6081\ng35\n(S'Variable_Type'\n(I2\nttRp6082\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np6083\ng35\n(S'Variable_Type'\n(I1\nttRp6084\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np6085\ng35\n(S'Variable_Type'\n(I1\nttRp6086\nsS'Y:VBus81 - CGHISO32'\np6087\ng35\n(S'Variable_Type'\n(I2\nttRp6088\nsS'Y:PMachine74 - CCERVI31'\np6089\ng35\n(S'Variable_Type'\n(I2\nttRp6090\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np6091\ng35\n(S'Variable_Type'\n(I2\nttRp6092\nsS'Y:VBus86 - CLUCCI31'\np6093\ng35\n(S'Variable_Type'\n(I2\nttRp6094\nsS'X:Load(pu)'\np6095\ng5637\nsS'Y:NbeTension'\np6096\ng35\n(S'Variable_Type'\n(I2\nttRp6097\nsS'Y:VBus95 - COCANA34'\np6098\ng35\n(S'Variable_Type'\n(I2\nttRp6099\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np6100\ng35\n(S'Variable_Type'\n(I2\nttRp6101\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np6102\ng35\n(S'Variable_Type'\n(I2\nttRp6103\nsS'Y:Load 95 - COCANA34'\np6104\ng35\n(S'Variable_Type'\n(I2\nttRp6105\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np6106\ng35\n(S'Variable_Type'\n(I1\nttRp6107\nsS'Y:PMachine90 - CMOROS31'\np6108\ng35\n(S'Variable_Type'\n(I2\nttRp6109\nsS'Y:Load 101 - CPIETR31'\np6110\ng35\n(S'Variable_Type'\n(I2\nttRp6111\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np6112\ng35\n(S'Variable_Type'\n(I1\nttRp6113\nsS'Y:PMachine132 - CVAZZI313'\np6114\ng35\n(S'Variable_Type'\n(I2\nttRp6115\nsS'Y:VBus125 - CVAZZI36'\np6116\ng35\n(S'Variable_Type'\n(I2\nttRp6117\nsS'Y:VBus135 - CLUCCI36'\np6118\ng35\n(S'Variable_Type'\n(I2\nttRp6119\nsS'Y:VBus47 - CVAZZI21'\np6120\ng35\n(S'Variable_Type'\n(I2\nttRp6121\nsS'Y:VBus94 - COCANA33'\np6122\ng35\n(S'Variable_Type'\n(I2\nttRp6123\nsS'Y:VBus17 - CCALVI21'\np6124\ng35\n(S'Variable_Type'\n(I2\nttRp6125\nsS'Y:Load 90 - CMOROS31'\np6126\ng35\n(S'Variable_Type'\n(I2\nttRp6127\nsS'Y:VBus120 - CVAZZI31'\np6128\ng35\n(S'Variable_Type'\n(I2\nttRp6129\nsS'X:ProdPV%Pnom'\np6130\ng35\n(S'Variable_Type'\n(I2\nttRp6131\nsS'Y:VBus52 - CASPRE32'\np6132\ng35\n(S'Variable_Type'\n(I2\nttRp6133\nsS'Y:VBus25 - CFURIA22'\np6134\ng35\n(S'Variable_Type'\n(I2\nttRp6135\nsS'Y:Load 76 - CCORTE31'\np6136\ng35\n(S'Variable_Type'\n(I2\nttRp6137\nsS'Y:PMachine69 - CCASAM37'\np6138\ng35\n(S'Variable_Type'\n(I2\nttRp6139\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np6140\ng35\n(S'Variable_Type'\n(I2\nttRp6141\nsS'Y:PMachine92 - COCANA31'\np6142\ng35\n(S'Variable_Type'\n(I2\nttRp6143\nsS'Y:PMachine102 - CPORTO31'\np6144\ng35\n(S'Variable_Type'\n(I2\nttRp6145\nsS'Y:PMachine122 - CVAZZI33'\np6146\ng35\n(S'Variable_Type'\n(I2\nttRp6147\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np6148\ng35\n(S'Variable_Type'\n(I1\nttRp6149\nsS'Y:PMachine63 - CCASAM31'\np6150\ng35\n(S'Variable_Type'\n(I2\nttRp6151\nsS'Y:VBus74 - CCERVI31'\np6152\ng35\n(S'Variable_Type'\n(I2\nttRp6153\nsS'Y:VBus126 - CVAZZI37'\np6154\ng35\n(S'Variable_Type'\n(I2\nttRp6155\nsS'Y:PMachine60 - CCALDA32'\np6156\ng35\n(S'Variable_Type'\n(I2\nttRp6157\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np6158\ng35\n(S'Variable_Type'\n(I1\nttRp6159\nsS'Y:VBus20 - CCERVI21'\np6160\ng35\n(S'Variable_Type'\n(I2\nttRp6161\nsS'Y:VBus119 - CTRAVO31'\np6162\ng35\n(S'Variable_Type'\n(I2\nttRp6163\nsS'Y:VBus11 - CASPRE21'\np6164\ng35\n(S'Variable_Type'\n(I2\nttRp6165\nsS'Y:VBus139 - CLUCCI310'\np6166\ng35\n(S'Variable_Type'\n(I2\nttRp6167\nsS'Y:VBus106 - CRIZZA31'\np6168\ng35\n(S'Variable_Type'\n(I2\nttRp6169\nsS'Y:PMachine66 - CCASAM34'\np6170\ng35\n(S'Variable_Type'\n(I2\nttRp6171\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np6172\ng35\n(S'Variable_Type'\n(I2\nttRp6173\nsS'Y:VBus136 - CLUCCI37'\np6174\ng35\n(S'Variable_Type'\n(I2\nttRp6175\nsS'Y:VBus90 - CMOROS31'\np6176\ng35\n(S'Variable_Type'\n(I2\nttRp6177\nsS'Y:Load 74 - CCERVI31'\np6178\ng35\n(S'Variable_Type'\n(I2\nttRp6179\nsS'X:lineOff#'\np6180\ng35\n(S'Variable_Type'\n(I2\nttRp6181\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np6182\ng35\n(S'Variable_Type'\n(I2\nttRp6183\nsS'Y:VBus108 - CSAGON31'\np6184\ng35\n(S'Variable_Type'\n(I2\nttRp6185\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np6186\ng35\n(S'Variable_Type'\n(I2\nttRp6187\nsS'Y:VBus137 - CLUCCI38'\np6188\ng35\n(S'Variable_Type'\n(I2\nttRp6189\nsS'Y:VBus130 - CVAZZI311'\np6190\ng35\n(S'Variable_Type'\n(I2\nttRp6191\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np6192\ng35\n(S'Variable_Type'\n(I2\nttRp6193\nsS'Y:VBus46 - CTRAVO21'\np6194\ng35\n(S'Variable_Type'\n(I2\nttRp6195\nsS'Y:VBus113 - CSAMPO32'\np6196\ng35\n(S'Variable_Type'\n(I2\nttRp6197\nsS'Y:PMachine133 - CVAZZI314'\np6198\ng35\n(S'Variable_Type'\n(I2\nttRp6199\nsS'Y:PMachine65 - CCASAM33'\np6200\ng35\n(S'Variable_Type'\n(I2\nttRp6201\nsS'Y:VBus78 - CFURIA31'\np6202\ng35\n(S'Variable_Type'\n(I2\nttRp6203\nsS'Y:VBus26 - CGHISO21'\np6204\ng35\n(S'Variable_Type'\n(I2\nttRp6205\nsS'Y:VBus121 - CVAZZI32'\np6206\ng35\n(S'Variable_Type'\n(I2\nttRp6207\nsS'Y:PMachine97 - COCANA36'\np6208\ng35\n(S'Variable_Type'\n(I2\nttRp6209\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np6210\ng35\n(S'Variable_Type'\n(I2\nttRp6211\nsS'Y:PMachine83 - CILERO32'\np6212\ng35\n(S'Variable_Type'\n(I2\nttRp6213\nsS'Y:VBus83 - CILERO32'\np6214\ng35\n(S'Variable_Type'\n(I2\nttRp6215\nsS'Y:VBus66 - CCASAM34'\np6216\ng35\n(S'Variable_Type'\n(I2\nttRp6217\nsS'Y:PMachine1 - CBONIF11'\np6218\ng35\n(S'Variable_Type'\n(I2\nttRp6219\nsS'Y:VBus111 - CSTMAR31'\np6220\ng35\n(S'Variable_Type'\n(I2\nttRp6221\nsS'Y:VBus124 - CVAZZI35'\np6222\ng35\n(S'Variable_Type'\n(I2\nttRp6223\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np6224\ng35\n(S'Variable_Type'\n(I2\nttRp6225\nsS'Y:PMachine131 - CVAZZI312'\np6226\ng35\n(S'Variable_Type'\n(I2\nttRp6227\nsS'Y:VBus44 - CTAGLI21'\np6228\ng35\n(S'Variable_Type'\n(I2\nttRp6229\nsS'Y:VBus88 - CLUCCI33'\np6230\ng35\n(S'Variable_Type'\n(I2\nttRp6231\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np6232\ng35\n(S'Variable_Type'\n(I1\nttRp6233\nsS'Y:VBus38 - CSAGON21'\np6234\ng35\n(S'Variable_Type'\n(I2\nttRp6235\nsS'Y:PMachine81 - CGHISO32'\np6236\ng35\n(S'Variable_Type'\n(I2\nttRp6237\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np6238\ng35\n(S'Variable_Type'\n(I2\nttRp6239\nsS'Y:VBus110 - CSTLUC31'\np6240\ng35\n(S'Variable_Type'\n(I2\nttRp6241\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np6242\ng35\n(S'Variable_Type'\n(I2\nttRp6243\nssg650\n(lp6244\ng652\nasba(iOWContexts\nContext\np6245\n(dp6246\ng24\n(lp6247\nsg26\n(dp6248\nsg28\n(dp6249\ng1897\n(S''\nI-1\ntp6250\nsg1899\n(S''\nI0\ntp6251\nsg1901\n(g1281\ng35\n(S'Variable_Type'\n(I2\nttRp6252\ntp6253\nsg1904\n(S'Y10:%RateA 16-47'\ng35\n(S'Variable_Type'\n(I2\nttRp6254\ntp6255\nsg1906\n(S''\nI0\ntp6256\nsg1908\n(S'TOT ENR'\ng35\n(S'Variable_Type'\n(I2\nttRp6257\ntp6258\nssg46\nF1369932170.872\nsg47\n(dp6259\nS'Y:VBus48'\np6260\ng35\n(S'Variable_Type'\n(I2\nttRp6261\nsS'Y15:%RateA 18-44'\np6262\ng35\n(S'Variable_Type'\n(I2\nttRp6263\nsS'Y:VBus41'\np6264\ng35\n(S'Variable_Type'\n(I2\nttRp6265\nsS'Y:VBus40'\np6266\ng35\n(S'Variable_Type'\n(I2\nttRp6267\nsS'Y:VBus43'\np6268\ng35\n(S'Variable_Type'\n(I2\nttRp6269\nsS'Y:VBus42'\np6270\ng35\n(S'Variable_Type'\n(I2\nttRp6271\nsS'Y:VBus45'\np6272\ng35\n(S'Variable_Type'\n(I2\nttRp6273\nsS'Y:VBus44'\np6274\ng35\n(S'Variable_Type'\n(I2\nttRp6275\nsS'Y:VBus47'\np6276\ng35\n(S'Variable_Type'\n(I2\nttRp6277\nsS'Y:VBus46'\np6278\ng35\n(S'Variable_Type'\n(I2\nttRp6279\nsS'Y39:%RateA 32-45'\np6280\ng35\n(S'Variable_Type'\n(I2\nttRp6281\nsS'Y:Load 110'\np6282\ng35\n(S'Variable_Type'\n(I2\nttRp6283\nsS'Y:Load 115'\np6284\ng35\n(S'Variable_Type'\n(I2\nttRp6285\nsS'Y:PMachine134'\np6286\ng35\n(S'Variable_Type'\n(I1\nttRp6287\nsS'Y:VBus79'\np6288\ng35\n(S'Variable_Type'\n(I2\nttRp6289\nsS'Y13:%RateA 18-30'\np6290\ng35\n(S'Variable_Type'\n(I2\nttRp6291\nsS'TOT ENR'\np6292\ng6257\nsS'Y34:%RateA 28-38'\np6293\ng35\n(S'Variable_Type'\n(I2\nttRp6294\nsS'Y:NbeTransit'\np6295\ng35\n(S'Variable_Type'\n(I1\nttRp6296\nsS'Y:VBus104'\np6297\ng35\n(S'Variable_Type'\n(I2\nttRp6298\nsS'Y20:%RateA 20-44'\np6299\ng35\n(S'Variable_Type'\n(I2\nttRp6300\nsS'DIESEL CASA'\np6301\ng35\n(S'Variable_Type'\n(I2\nttRp6302\nsS'Y38:%RateA 32-45'\np6303\ng35\n(S'Variable_Type'\n(I2\nttRp6304\nsS'Y:PMachine73'\np6305\ng35\n(S'Variable_Type'\n(I2\nttRp6306\nsS'Y:PMachine72'\np6307\ng35\n(S'Variable_Type'\n(I2\nttRp6308\nsS'Y49:%RateA 40-48'\np6309\ng35\n(S'Variable_Type'\n(I2\nttRp6310\nsS'Y:PMachine77'\np6311\ng35\n(S'Variable_Type'\n(I2\nttRp6312\nsS'Y:PMachine75'\np6313\ng35\n(S'Variable_Type'\n(I2\nttRp6314\nsS'Y:PMachine74'\np6315\ng35\n(S'Variable_Type'\n(I2\nttRp6316\nsS'Y:PMachine78'\np6317\ng35\n(S'Variable_Type'\n(I1\nttRp6318\nsS'Y:PMachine138'\np6319\ng35\n(S'Variable_Type'\n(I1\nttRp6320\nsS'Y28:%RateA 24-42'\np6321\ng35\n(S'Variable_Type'\n(I2\nttRp6322\nsS'Y:PProdTot'\np6323\ng35\n(S'Variable_Type'\n(I2\nttRp6324\nsS'Y:PMachine69'\np6325\ng35\n(S'Variable_Type'\n(I2\nttRp6326\nsS'Y:VBus38'\np6327\ng35\n(S'Variable_Type'\n(I2\nttRp6328\nsS'Y:VBus39'\np6329\ng35\n(S'Variable_Type'\n(I2\nttRp6330\nsS'Y62:%RateA 86-87'\np6331\ng35\n(S'Variable_Type'\n(I1\nttRp6332\nsS'Y:PMachine1'\np6333\ng35\n(S'Variable_Type'\n(I2\nttRp6334\nsS'Y:VBus35'\np6335\ng35\n(S'Variable_Type'\n(I2\nttRp6336\nsS'Y:VBus36'\np6337\ng35\n(S'Variable_Type'\n(I2\nttRp6338\nsS'Y:VBus37'\np6339\ng35\n(S'Variable_Type'\n(I2\nttRp6340\nsS'Iteration'\np6341\ng35\n(S'Variable_Type'\n(I2\nttRp6342\nsS'Y:VBus31'\np6343\ng35\n(S'Variable_Type'\n(I2\nttRp6344\nsS'Y:VBus32'\np6345\ng35\n(S'Variable_Type'\n(I2\nttRp6346\nsS'Y:VBus33'\np6347\ng35\n(S'Variable_Type'\n(I2\nttRp6348\nsS'Y53:%RateA 57-58'\np6349\ng35\n(S'Variable_Type'\n(I1\nttRp6350\nsS'Y14:%RateA 18-31'\np6351\ng35\n(S'Variable_Type'\n(I2\nttRp6352\nsS'Y48:%RateA 39-46'\np6353\ng35\n(S'Variable_Type'\n(I2\nttRp6354\nsS'Y60:%RateA 82-83'\np6355\ng35\n(S'Variable_Type'\n(I1\nttRp6356\nsS'Y:PMachine87'\np6357\ng35\n(S'Variable_Type'\n(I2\nttRp6358\nsS'Y:VBus121'\np6359\ng35\n(S'Variable_Type'\n(I2\nttRp6360\nsS'Y:VBus120'\np6361\ng35\n(S'Variable_Type'\n(I2\nttRp6362\nsS'Y:VBus123'\np6363\ng35\n(S'Variable_Type'\n(I2\nttRp6364\nsS'Y:VBus122'\np6365\ng35\n(S'Variable_Type'\n(I2\nttRp6366\nsS'Y:VBus125'\np6367\ng35\n(S'Variable_Type'\n(I2\nttRp6368\nsS'Y:VBus124'\np6369\ng35\n(S'Variable_Type'\n(I2\nttRp6370\nsS'Y:VBus127'\np6371\ng35\n(S'Variable_Type'\n(I2\nttRp6372\nsS'Y:VBus126'\np6373\ng35\n(S'Variable_Type'\n(I2\nttRp6374\nsS'Y:VBus129'\np6375\ng35\n(S'Variable_Type'\n(I2\nttRp6376\nsS'Y:PMachine47'\np6377\ng35\n(S'Variable_Type'\n(I2\nttRp6378\nsS'Y37:%RateA 32-34'\np6379\ng35\n(S'Variable_Type'\n(I2\nttRp6380\nsS'Y43:%RateA 35-37'\np6381\ng35\n(S'Variable_Type'\n(I2\nttRp6382\nsS'Y:PMachine42'\np6383\ng35\n(S'Variable_Type'\n(I2\nttRp6384\nsS'Y0:%RateA 11-28'\np6385\ng35\n(S'Variable_Type'\n(I2\nttRp6386\nsS'Y:VBus67'\np6387\ng35\n(S'Variable_Type'\n(I2\nttRp6388\nsS'Y:Load 37'\np6389\ng35\n(S'Variable_Type'\n(I2\nttRp6390\nsS'Y65:%RateA 104-105'\np6391\ng35\n(S'Variable_Type'\n(I1\nttRp6392\nsS'Y40:%RateA 32-47'\np6393\ng35\n(S'Variable_Type'\n(I2\nttRp6394\nsS'Y:VBus128'\np6395\ng35\n(S'Variable_Type'\n(I2\nttRp6396\nsS'Y6:%RateA 14-15'\np6397\ng35\n(S'Variable_Type'\n(I1\nttRp6398\nsS'Y:VBus1'\np6399\ng35\n(S'Variable_Type'\n(I2\nttRp6400\nsS'Y44:%RateA 35-39'\np6401\ng35\n(S'Variable_Type'\n(I2\nttRp6402\nsS'Y:PMachine88'\np6403\ng35\n(S'Variable_Type'\n(I1\nttRp6404\nsS'Y42:%RateA 34-36'\np6405\ng35\n(S'Variable_Type'\n(I2\nttRp6406\nsS'Y57:%RateA 76-77'\np6407\ng35\n(S'Variable_Type'\n(I1\nttRp6408\nsS'Y:PMachine89'\np6409\ng35\n(S'Variable_Type'\n(I1\nttRp6410\nsS'Y:VBus77'\np6411\ng35\n(S'Variable_Type'\n(I2\nttRp6412\nsS'Y:VBus29'\np6413\ng35\n(S'Variable_Type'\n(I2\nttRp6414\nsS'Y:VBus28'\np6415\ng35\n(S'Variable_Type'\n(I2\nttRp6416\nsS'Y:VBus27'\np6417\ng35\n(S'Variable_Type'\n(I2\nttRp6418\nsS'Y:VBus26'\np6419\ng35\n(S'Variable_Type'\n(I2\nttRp6420\nsS'Y:VBus25'\np6421\ng35\n(S'Variable_Type'\n(I2\nttRp6422\nsS'Y:VBus24'\np6423\ng35\n(S'Variable_Type'\n(I2\nttRp6424\nsS'Y:VBus23'\np6425\ng35\n(S'Variable_Type'\n(I2\nttRp6426\nsS'Y:VBus22'\np6427\ng35\n(S'Variable_Type'\n(I2\nttRp6428\nsS'Y:VBus21'\np6429\ng35\n(S'Variable_Type'\n(I2\nttRp6430\nsS'Y:VBus20'\np6431\ng35\n(S'Variable_Type'\n(I2\nttRp6432\nsS'Y:VBus85'\np6433\ng35\n(S'Variable_Type'\n(I2\nttRp6434\nsS'Y66:%RateA 106-107'\np6435\ng35\n(S'Variable_Type'\n(I1\nttRp6436\nsS'Y:VBus84'\np6437\ng35\n(S'Variable_Type'\n(I2\nttRp6438\nsS'Y52:%RateA 55-56'\np6439\ng35\n(S'Variable_Type'\n(I1\nttRp6440\nsS'Y2:%RateA 12-24'\np6441\ng35\n(S'Variable_Type'\n(I2\nttRp6442\nsS'Y:VBus112'\np6443\ng35\n(S'Variable_Type'\n(I2\nttRp6444\nsS'Y:VBus132'\np6445\ng35\n(S'Variable_Type'\n(I2\nttRp6446\nsS'Y:PMachine58'\np6447\ng35\n(S'Variable_Type'\n(I2\nttRp6448\nsS'Y:VBus130'\np6449\ng35\n(S'Variable_Type'\n(I2\nttRp6450\nsS'Y:VBus131'\np6451\ng35\n(S'Variable_Type'\n(I2\nttRp6452\nsS'Y:VBus136'\np6453\ng35\n(S'Variable_Type'\n(I2\nttRp6454\nsS'Y:VBus137'\np6455\ng35\n(S'Variable_Type'\n(I2\nttRp6456\nsS'Y:VBus134'\np6457\ng35\n(S'Variable_Type'\n(I2\nttRp6458\nsS'Y:VBus135'\np6459\ng35\n(S'Variable_Type'\n(I2\nttRp6460\nsS'Y:VBus81'\np6461\ng35\n(S'Variable_Type'\n(I2\nttRp6462\nsS'Y:PMachine53'\np6463\ng35\n(S'Variable_Type'\n(I2\nttRp6464\nsS'Y:VBus139'\np6465\ng35\n(S'Variable_Type'\n(I2\nttRp6466\nsS'Y30:%RateA 25-29'\np6467\ng35\n(S'Variable_Type'\n(I2\nttRp6468\nsS'Y:VBus115'\np6469\ng35\n(S'Variable_Type'\n(I2\nttRp6470\nsS'Y:PMachine124'\np6471\ng35\n(S'Variable_Type'\n(I2\nttRp6472\nsS'Y:VBus83'\np6473\ng35\n(S'Variable_Type'\n(I2\nttRp6474\nsS'Y:PMachine125'\np6475\ng35\n(S'Variable_Type'\n(I2\nttRp6476\nsS'Y25:%RateA 23-41'\np6477\ng35\n(S'Variable_Type'\n(I2\nttRp6478\nsS'Y:%Losses'\np6479\ng35\n(S'Variable_Type'\n(I2\nttRp6480\nsS'Y:VBus12'\np6481\ng35\n(S'Variable_Type'\n(I2\nttRp6482\nsS'Y:VBus13'\np6483\ng35\n(S'Variable_Type'\n(I2\nttRp6484\nsS'Y50:%RateA 51-52'\np6485\ng35\n(S'Variable_Type'\n(I1\nttRp6486\nsS'Y:VBus11'\np6487\ng35\n(S'Variable_Type'\n(I2\nttRp6488\nsS'Y:VBus16'\np6489\ng35\n(S'Variable_Type'\n(I2\nttRp6490\nsS'Y:VBus17'\np6491\ng35\n(S'Variable_Type'\n(I2\nttRp6492\nsS'Y:VBus14'\np6493\ng35\n(S'Variable_Type'\n(I2\nttRp6494\nsS'Y:VBus15'\np6495\ng35\n(S'Variable_Type'\n(I2\nttRp6496\nsS'Y:VBus113'\np6497\ng35\n(S'Variable_Type'\n(I2\nttRp6498\nsS'Y:PMachine120'\np6499\ng35\n(S'Variable_Type'\n(I2\nttRp6500\nsS'Y:VBus18'\np6501\ng35\n(S'Variable_Type'\n(I2\nttRp6502\nsS'Y:VBus19'\np6503\ng35\n(S'Variable_Type'\n(I2\nttRp6504\nsS'Y4:%RateA 13-25'\np6505\ng35\n(S'Variable_Type'\n(I2\nttRp6506\nsS'DIESEL VAZZIO'\np6507\ng35\n(S'Variable_Type'\n(I2\nttRp6508\nsS'Y35:%RateA 28-47'\np6509\ng35\n(S'Variable_Type'\n(I2\nttRp6510\nsS'Y:PMachine122'\np6511\ng35\n(S'Variable_Type'\n(I2\nttRp6512\nsS'Y16:%RateA 19-21'\np6513\ng35\n(S'Variable_Type'\n(I2\nttRp6514\nsS'Y:VBus92'\np6515\ng35\n(S'Variable_Type'\n(I2\nttRp6516\nsS'Y7:%RateA 14-35'\np6517\ng35\n(S'Variable_Type'\n(I2\nttRp6518\nsS'Y:VBus90'\np6519\ng35\n(S'Variable_Type'\n(I2\nttRp6520\nsS'Y:VBus96'\np6521\ng35\n(S'Variable_Type'\n(I2\nttRp6522\nsS'Y:VBus97'\np6523\ng35\n(S'Variable_Type'\n(I2\nttRp6524\nsS'Y:VBus94'\np6525\ng35\n(S'Variable_Type'\n(I2\nttRp6526\nsS'Y:VBus95'\np6527\ng35\n(S'Variable_Type'\n(I2\nttRp6528\nsS'Y:VBus107'\np6529\ng35\n(S'Variable_Type'\n(I2\nttRp6530\nsS'Y:VBus106'\np6531\ng35\n(S'Variable_Type'\n(I2\nttRp6532\nsS'Y:VBus105'\np6533\ng35\n(S'Variable_Type'\n(I2\nttRp6534\nsS'Y22:%RateA 22-23'\np6535\ng35\n(S'Variable_Type'\n(I1\nttRp6536\nsS'Y:VBus103'\np6537\ng35\n(S'Variable_Type'\n(I2\nttRp6538\nsS'Y:VBus102'\np6539\ng35\n(S'Variable_Type'\n(I2\nttRp6540\nsS'Y:VBus101'\np6541\ng35\n(S'Variable_Type'\n(I2\nttRp6542\nsS'Y:VBus100'\np6543\ng35\n(S'Variable_Type'\n(I2\nttRp6544\nsS'Y:Load 55'\np6545\ng35\n(S'Variable_Type'\n(I2\nttRp6546\nsS'Y:Load 57'\np6547\ng35\n(S'Variable_Type'\n(I2\nttRp6548\nsS'Y:Load 51'\np6549\ng35\n(S'Variable_Type'\n(I2\nttRp6550\nsS'Y:VBus54'\np6551\ng35\n(S'Variable_Type'\n(I2\nttRp6552\nsS'Y:VBus109'\np6553\ng35\n(S'Variable_Type'\n(I2\nttRp6554\nsS'Y46:%RateA 36-48'\np6555\ng35\n(S'Variable_Type'\n(I2\nttRp6556\nsS'Y:Load 80'\np6557\ng35\n(S'Variable_Type'\n(I2\nttRp6558\nsS'Y:PMachine133'\np6559\ng35\n(S'Variable_Type'\n(I2\nttRp6560\nsS'Y:VBus55'\np6561\ng35\n(S'Variable_Type'\n(I2\nttRp6562\nsS'Y:PMachine29'\np6563\ng35\n(S'Variable_Type'\n(I1\nttRp6564\nsS'Y24:%RateA 23-32'\np6565\ng35\n(S'Variable_Type'\n(I2\nttRp6566\nsS'X:lineOff#'\np6567\ng35\n(S'Variable_Type'\n(I2\nttRp6568\nsS'Y:Max%A'\np6569\ng35\n(S'Variable_Type'\n(I2\nttRp6570\nsS'Y:NbeTransit_0.9-1'\np6571\ng35\n(S'Variable_Type'\n(I1\nttRp6572\nsS'XProdEolienne%Pnom'\np6573\ng35\n(S'Variable_Type'\n(I2\nttRp6574\nsS'Y33:%RateA 27-33'\np6575\ng35\n(S'Variable_Type'\n(I2\nttRp6576\nsS'Y59:%RateA 80-81'\np6577\ng35\n(S'Variable_Type'\n(I1\nttRp6578\nsS'Y:VBus65'\np6579\ng35\n(S'Variable_Type'\n(I2\nttRp6580\nsS'TAC VAZZIO'\np6581\ng35\n(S'Variable_Type'\n(I2\nttRp6582\nsS'Y:VBus118'\np6583\ng35\n(S'Variable_Type'\n(I2\nttRp6584\nsS'Y:VBus119'\np6585\ng35\n(S'Variable_Type'\n(I2\nttRp6586\nsS'Y:PMachine117'\np6587\ng35\n(S'Variable_Type'\n(I2\nttRp6588\nsS'Y:PMachine116'\np6589\ng35\n(S'Variable_Type'\n(I2\nttRp6590\nsS'Y:PMachine111'\np6591\ng35\n(S'Variable_Type'\n(I2\nttRp6592\nsS'Y:VBus88'\np6593\ng35\n(S'Variable_Type'\n(I2\nttRp6594\nsS'Y:PMachine113'\np6595\ng35\n(S'Variable_Type'\n(I2\nttRp6596\nsS'Y:VBus93'\np6597\ng35\n(S'Variable_Type'\n(I2\nttRp6598\nsS'Y:VBus110'\np6599\ng35\n(S'Variable_Type'\n(I2\nttRp6600\nsS'Y:VBus111'\np6601\ng35\n(S'Variable_Type'\n(I2\nttRp6602\nsS'Y:VBus87'\np6603\ng35\n(S'Variable_Type'\n(I2\nttRp6604\nsS'Y12:%RateA 18-30'\np6605\ng35\n(S'Variable_Type'\n(I2\nttRp6606\nsS'Y:VBus114'\np6607\ng35\n(S'Variable_Type'\n(I2\nttRp6608\nsS'Y:VBus80'\np6609\ng35\n(S'Variable_Type'\n(I2\nttRp6610\nsS'Y:VBus116'\np6611\ng35\n(S'Variable_Type'\n(I2\nttRp6612\nsS'Y:VBus82'\np6613\ng35\n(S'Variable_Type'\n(I2\nttRp6614\nsS'Y61:%RateA 84-85'\np6615\ng35\n(S'Variable_Type'\n(I1\nttRp6616\nsS'Y31:%RateA 26-41'\np6617\ng35\n(S'Variable_Type'\n(I2\nttRp6618\nsS'Y:PMachine131'\np6619\ng35\n(S'Variable_Type'\n(I2\nttRp6620\nsS'Y47:%RateA 38-43'\np6621\ng35\n(S'Variable_Type'\n(I2\nttRp6622\nsS'Y:Load 42'\np6623\ng35\n(S'Variable_Type'\n(I2\nttRp6624\nsS'Y:PMachine85'\np6625\ng35\n(S'Variable_Type'\n(I2\nttRp6626\nsS'Y32:%RateA 26-46'\np6627\ng35\n(S'Variable_Type'\n(I2\nttRp6628\nsS'Y:PMachine132'\np6629\ng35\n(S'Variable_Type'\n(I2\nttRp6630\nsS'Y18:%RateA 19-27'\np6631\ng35\n(S'Variable_Type'\n(I2\nttRp6632\nsS'Y:VBus86'\np6633\ng35\n(S'Variable_Type'\n(I2\nttRp6634\nsS'Y63:%RateA 95-96'\np6635\ng35\n(S'Variable_Type'\n(I1\nttRp6636\nsS'Y17:%RateA 19-22'\np6637\ng35\n(S'Variable_Type'\n(I2\nttRp6638\nsS'Y41:%RateA 32-48'\np6639\ng35\n(S'Variable_Type'\n(I2\nttRp6640\nsS'Y:PMachine30'\np6641\ng35\n(S'Variable_Type'\n(I2\nttRp6642\nsS'Y:VBus117'\np6643\ng35\n(S'Variable_Type'\n(I2\nttRp6644\nsS'Y56:%RateA 72-73'\np6645\ng35\n(S'Variable_Type'\n(I1\nttRp6646\nsS'Y68:%RateA 112-113'\np6647\ng35\n(S'Variable_Type'\n(I1\nttRp6648\nsS'Y:PMachine130'\np6649\ng35\n(S'Variable_Type'\n(I2\nttRp6650\nsS'Y27:%RateA 24-33'\np6651\ng35\n(S'Variable_Type'\n(I2\nttRp6652\nsS'Y:PMachine106'\np6653\ng35\n(S'Variable_Type'\n(I2\nttRp6654\nsS'Y:PMachine107'\np6655\ng35\n(S'Variable_Type'\n(I2\nttRp6656\nsS'Y:PMachine104'\np6657\ng35\n(S'Variable_Type'\n(I2\nttRp6658\nsS'Y:VBus73'\np6659\ng35\n(S'Variable_Type'\n(I2\nttRp6660\nsS'Y:VBus74'\np6661\ng35\n(S'Variable_Type'\n(I2\nttRp6662\nsS'Y:VBus75'\np6663\ng35\n(S'Variable_Type'\n(I2\nttRp6664\nsS'Y:VBus76'\np6665\ng35\n(S'Variable_Type'\n(I2\nttRp6666\nsS'Y:PMachine101'\np6667\ng35\n(S'Variable_Type'\n(I2\nttRp6668\nsS'Y:VBus78'\np6669\ng35\n(S'Variable_Type'\n(I2\nttRp6670\nsS'Y:Load 59'\np6671\ng35\n(S'Variable_Type'\n(I2\nttRp6672\nsS'Y:PMachine115'\np6673\ng35\n(S'Variable_Type'\n(I2\nttRp6674\nsS'Y51:%RateA 53-54'\np6675\ng35\n(S'Variable_Type'\n(I1\nttRp6676\nsS'Y67:%RateA 108-109'\np6677\ng35\n(S'Variable_Type'\n(I1\nttRp6678\nsS'Y:PMachine109'\np6679\ng35\n(S'Variable_Type'\n(I2\nttRp6680\nsS'Y:PMachine83'\np6681\ng35\n(S'Variable_Type'\n(I2\nttRp6682\nsS'Y:PMachine81'\np6683\ng35\n(S'Variable_Type'\n(I2\nttRp6684\nsS'Y:PMachine86'\np6685\ng35\n(S'Variable_Type'\n(I2\nttRp6686\nsS'Y:Load 76'\np6687\ng35\n(S'Variable_Type'\n(I2\nttRp6688\nsS'Y:Load 74'\np6689\ng35\n(S'Variable_Type'\n(I2\nttRp6690\nsS'Y45:%RateA 36-37'\np6691\ng35\n(S'Variable_Type'\n(I2\nttRp6692\nsS'Y58:%RateA 78-79'\np6693\ng35\n(S'Variable_Type'\n(I1\nttRp6694\nsS'Y:Load 78'\np6695\ng35\n(S'Variable_Type'\n(I2\nttRp6696\nsS'X:Load(pu)'\np6697\ng6252\nsS'Y5:%RateA 13-29'\np6698\ng35\n(S'Variable_Type'\n(I2\nttRp6699\nsS'Y:PMachine118'\np6700\ng35\n(S'Variable_Type'\n(I2\nttRp6701\nsS'Y1:%RateA 11-47'\np6702\ng35\n(S'Variable_Type'\n(I2\nttRp6703\nsS'Y:VBus60'\np6704\ng35\n(S'Variable_Type'\n(I2\nttRp6705\nsS'Y:PMachine137'\np6706\ng35\n(S'Variable_Type'\n(I1\nttRp6707\nsS'Y29:%RateA 25-29'\np6708\ng35\n(S'Variable_Type'\n(I2\nttRp6709\nsS'Y:VBus66'\np6710\ng35\n(S'Variable_Type'\n(I2\nttRp6711\nsS'Y36:%RateA 29-30'\np6712\ng35\n(S'Variable_Type'\n(I1\nttRp6713\nsS'Y54:%RateA 59-60'\np6714\ng35\n(S'Variable_Type'\n(I1\nttRp6715\nsS'Y:Load 90'\np6716\ng35\n(S'Variable_Type'\n(I2\nttRp6717\nsS'Y9:%RateA 16-32'\np6718\ng35\n(S'Variable_Type'\n(I2\nttRp6719\nsS'INTERCOS'\np6720\ng35\n(S'Variable_Type'\n(I2\nttRp6721\nsS'Y:Load 95'\np6722\ng35\n(S'Variable_Type'\n(I2\nttRp6723\nsS'Y:VBus63'\np6724\ng35\n(S'Variable_Type'\n(I2\nttRp6725\nsS'Y:VBus62'\np6726\ng35\n(S'Variable_Type'\n(I2\nttRp6727\nsS'Y:VBus61'\np6728\ng35\n(S'Variable_Type'\n(I2\nttRp6729\nsS'Y55:%RateA 61-62'\np6730\ng35\n(S'Variable_Type'\n(I1\nttRp6731\nsS'Y8:%RateA 15-35'\np6732\ng35\n(S'Variable_Type'\n(I2\nttRp6733\nsS'Y:PMachine136'\np6734\ng35\n(S'Variable_Type'\n(I1\nttRp6735\nsS'Y:PMachine135'\np6736\ng35\n(S'Variable_Type'\n(I1\nttRp6737\nsS'Y:VBus64'\np6738\ng35\n(S'Variable_Type'\n(I2\nttRp6739\nsS'Y:PMachine94'\np6740\ng35\n(S'Variable_Type'\n(I2\nttRp6741\nsS'Y:VBus69'\np6742\ng35\n(S'Variable_Type'\n(I2\nttRp6743\nsS'Y:VBus108'\np6744\ng35\n(S'Variable_Type'\n(I2\nttRp6745\nsS'Y:PMachine139'\np6746\ng35\n(S'Variable_Type'\n(I1\nttRp6747\nsS'Y:PMachine97'\np6748\ng35\n(S'Variable_Type'\n(I2\nttRp6749\nsS'Y:PMachine92'\np6750\ng35\n(S'Variable_Type'\n(I2\nttRp6751\nsS'Y:VBus68'\np6752\ng35\n(S'Variable_Type'\n(I2\nttRp6753\nsS'Y:Load 61'\np6754\ng35\n(S'Variable_Type'\n(I2\nttRp6755\nsS'Y:VBus89'\np6756\ng35\n(S'Variable_Type'\n(I2\nttRp6757\nsS'Y21:%RateA 21-43'\np6758\ng35\n(S'Variable_Type'\n(I2\nttRp6759\nsS'Y:PMachine90'\np6760\ng35\n(S'Variable_Type'\n(I2\nttRp6761\nsS'Y:PMachine14'\np6762\ng35\n(S'Variable_Type'\n(I2\nttRp6763\nsS'Y:PMachine63'\np6764\ng35\n(S'Variable_Type'\n(I2\nttRp6765\nsS'Y:PMachine93'\np6766\ng35\n(S'Variable_Type'\n(I2\nttRp6767\nsS'Y:PConsoTot'\np6768\ng35\n(S'Variable_Type'\n(I2\nttRp6769\nsS'Y23:%RateA 22-31'\np6770\ng35\n(S'Variable_Type'\n(I2\nttRp6771\nsS'Y19:%RateA 20-26'\np6772\ng35\n(S'Variable_Type'\n(I2\nttRp6773\nsS'Y:PMachine18'\np6774\ng35\n(S'Variable_Type'\n(I2\nttRp6775\nsS'Y:VBus34'\np6776\ng35\n(S'Variable_Type'\n(I2\nttRp6777\nsS'Y:NbeTension'\np6778\ng35\n(S'Variable_Type'\n(I2\nttRp6779\nsS'TOT PV'\np6780\ng35\n(S'Variable_Type'\n(I2\nttRp6781\nsS'Y:PMachine128'\np6782\ng35\n(S'Variable_Type'\n(I2\nttRp6783\nsS'Y:PMachine129'\np6784\ng35\n(S'Variable_Type'\n(I2\nttRp6785\nsS'Y:VBus133'\np6786\ng35\n(S'Variable_Type'\n(I2\nttRp6787\nsS'Y:Load 82'\np6788\ng35\n(S'Variable_Type'\n(I2\nttRp6789\nsS'Y:VBus30'\np6790\ng35\n(S'Variable_Type'\n(I2\nttRp6791\nsS'Y:PMachine126'\np6792\ng35\n(S'Variable_Type'\n(I2\nttRp6793\nsS'Y:PMachine127'\np6794\ng35\n(S'Variable_Type'\n(I2\nttRp6795\nsS'Y:Load 86'\np6796\ng35\n(S'Variable_Type'\n(I2\nttRp6797\nsS'Y:PMachine121'\np6798\ng35\n(S'Variable_Type'\n(I2\nttRp6799\nsS'Y:Load 84'\np6800\ng35\n(S'Variable_Type'\n(I2\nttRp6801\nsS'Y:PMachine123'\np6802\ng35\n(S'Variable_Type'\n(I2\nttRp6803\nsS'Y:Load 102'\np6804\ng35\n(S'Variable_Type'\n(I2\nttRp6805\nsS'Y:VBus57'\np6806\ng35\n(S'Variable_Type'\n(I2\nttRp6807\nsS'Y:Load 100'\np6808\ng35\n(S'Variable_Type'\n(I2\nttRp6809\nsS'Y:Load 101'\np6810\ng35\n(S'Variable_Type'\n(I2\nttRp6811\nsS'Y:VBus52'\np6812\ng35\n(S'Variable_Type'\n(I2\nttRp6813\nsS'Y:VBus53'\np6814\ng35\n(S'Variable_Type'\n(I2\nttRp6815\nsS'Y:Load 104'\np6816\ng35\n(S'Variable_Type'\n(I2\nttRp6817\nsS'Y:VBus51'\np6818\ng35\n(S'Variable_Type'\n(I2\nttRp6819\nsS'Y:Load 108'\np6820\ng35\n(S'Variable_Type'\n(I2\nttRp6821\nsS'Y64:%RateA 102-103'\np6822\ng35\n(S'Variable_Type'\n(I1\nttRp6823\nsS'Y:PMachine112'\np6824\ng35\n(S'Variable_Type'\n(I2\nttRp6825\nsS'Y:VBus58'\np6826\ng35\n(S'Variable_Type'\n(I2\nttRp6827\nsS'Y:VBus59'\np6828\ng35\n(S'Variable_Type'\n(I2\nttRp6829\nsS'Y:Load 53'\np6830\ng35\n(S'Variable_Type'\n(I2\nttRp6831\nsS'Y10:%RateA 16-47'\np6832\ng6254\nsS'Y:PMachine54'\np6833\ng35\n(S'Variable_Type'\n(I2\nttRp6834\nsS'Y:VBus56'\np6835\ng35\n(S'Variable_Type'\n(I2\nttRp6836\nsS'TOT WIND'\np6837\ng35\n(S'Variable_Type'\n(I2\nttRp6838\nsS'Y3:%RateA 12-24'\np6839\ng35\n(S'Variable_Type'\n(I2\nttRp6840\nsS'Y11:%RateA 17-27'\np6841\ng35\n(S'Variable_Type'\n(I2\nttRp6842\nsS'Y:PMachine114'\np6843\ng35\n(S'Variable_Type'\n(I2\nttRp6844\nsS'Y:VBus72'\np6845\ng35\n(S'Variable_Type'\n(I2\nttRp6846\nsS'Y:PMachine60'\np6847\ng35\n(S'Variable_Type'\n(I2\nttRp6848\nsS'Y:PMachine61'\np6849\ng35\n(S'Variable_Type'\n(I1\nttRp6850\nsS'Y:PMachine62'\np6851\ng35\n(S'Variable_Type'\n(I2\nttRp6852\nsS'Y:PMachine105'\np6853\ng35\n(S'Variable_Type'\n(I2\nttRp6854\nsS'Y:PMachine64'\np6855\ng35\n(S'Variable_Type'\n(I2\nttRp6856\nsS'Y:PMachine65'\np6857\ng35\n(S'Variable_Type'\n(I2\nttRp6858\nsS'Y:PMachine66'\np6859\ng35\n(S'Variable_Type'\n(I2\nttRp6860\nsS'Y:PMachine67'\np6861\ng35\n(S'Variable_Type'\n(I2\nttRp6862\nsS'Y:PMachine68'\np6863\ng35\n(S'Variable_Type'\n(I2\nttRp6864\nsS'Y:PMachine102'\np6865\ng35\n(S'Variable_Type'\n(I2\nttRp6866\nsS'X:ProdPV%Pnom'\np6867\ng35\n(S'Variable_Type'\n(I2\nttRp6868\nsS'Y:VBus138'\np6869\ng35\n(S'Variable_Type'\n(I2\nttRp6870\nsS'Y26:%RateA 24-25'\np6871\ng35\n(S'Variable_Type'\n(I1\nttRp6872\nssg650\n(lp6873\ng652\nasba(iOWContexts\nContext\np6874\n(dp6875\ng24\n(lp6876\nsg26\n(dp6877\nsg28\n(dp6878\ng1897\n(S''\nI-1\ntp6879\nsg1899\n(S''\nI0\ntp6880\nsg1901\n(g1281\ng35\n(S'Variable_Type'\n(I2\nttRp6881\ntp6882\nsg1904\n(S'DIESEL CASA'\ng35\n(S'Variable_Type'\n(I2\nttRp6883\ntp6884\nsg1906\n(S''\nI0\ntp6885\nsg1908\n(S'Y:Load 115'\ng35\n(S'Variable_Type'\n(I2\nttRp6886\ntp6887\nssg46\nF1368453819.1259999\nsg47\n(dp6888\nS'Y:VBus48'\np6889\ng35\n(S'Variable_Type'\n(I2\nttRp6890\nsS'Y15:%RateA 18-44'\np6891\ng35\n(S'Variable_Type'\n(I2\nttRp6892\nsS'Y:VBus41'\np6893\ng35\n(S'Variable_Type'\n(I2\nttRp6894\nsS'Y:VBus40'\np6895\ng35\n(S'Variable_Type'\n(I2\nttRp6896\nsS'Y:VBus43'\np6897\ng35\n(S'Variable_Type'\n(I2\nttRp6898\nsS'Y:VBus42'\np6899\ng35\n(S'Variable_Type'\n(I2\nttRp6900\nsS'Y:VBus45'\np6901\ng35\n(S'Variable_Type'\n(I2\nttRp6902\nsS'Y:VBus44'\np6903\ng35\n(S'Variable_Type'\n(I2\nttRp6904\nsS'Y:VBus47'\np6905\ng35\n(S'Variable_Type'\n(I2\nttRp6906\nsS'Y:VBus46'\np6907\ng35\n(S'Variable_Type'\n(I2\nttRp6908\nsS'Y39:%RateA 32-45'\np6909\ng35\n(S'Variable_Type'\n(I2\nttRp6910\nsS'Y:Load 110'\np6911\ng35\n(S'Variable_Type'\n(I2\nttRp6912\nsS'Y:Load 115'\np6913\ng6886\nsS'Y:PMachine134'\np6914\ng35\n(S'Variable_Type'\n(I1\nttRp6915\nsS'Y:VBus79'\np6916\ng35\n(S'Variable_Type'\n(I2\nttRp6917\nsS'Y13:%RateA 18-30'\np6918\ng35\n(S'Variable_Type'\n(I2\nttRp6919\nsS'Y34:%RateA 28-38'\np6920\ng35\n(S'Variable_Type'\n(I2\nttRp6921\nsS'Y:NbeTransit'\np6922\ng35\n(S'Variable_Type'\n(I1\nttRp6923\nsS'Y:VBus104'\np6924\ng35\n(S'Variable_Type'\n(I2\nttRp6925\nsS'Y20:%RateA 20-44'\np6926\ng35\n(S'Variable_Type'\n(I2\nttRp6927\nsS'DIESEL CASA'\np6928\ng6883\nsS'Y38:%RateA 32-45'\np6929\ng35\n(S'Variable_Type'\n(I2\nttRp6930\nsS'Y:PMachine73'\np6931\ng35\n(S'Variable_Type'\n(I2\nttRp6932\nsS'Y:PMachine72'\np6933\ng35\n(S'Variable_Type'\n(I2\nttRp6934\nsS'Y49:%RateA 40-48'\np6935\ng35\n(S'Variable_Type'\n(I2\nttRp6936\nsS'Y:PMachine77'\np6937\ng35\n(S'Variable_Type'\n(I2\nttRp6938\nsS'Y:PMachine75'\np6939\ng35\n(S'Variable_Type'\n(I2\nttRp6940\nsS'Y:PMachine74'\np6941\ng35\n(S'Variable_Type'\n(I2\nttRp6942\nsS'Y:PMachine78'\np6943\ng35\n(S'Variable_Type'\n(I1\nttRp6944\nsS'Y:PMachine138'\np6945\ng35\n(S'Variable_Type'\n(I1\nttRp6946\nsS'Y28:%RateA 24-42'\np6947\ng35\n(S'Variable_Type'\n(I2\nttRp6948\nsS'Y:PProdTot'\np6949\ng35\n(S'Variable_Type'\n(I2\nttRp6950\nsS'Y:PMachine69'\np6951\ng35\n(S'Variable_Type'\n(I2\nttRp6952\nsS'Y:VBus38'\np6953\ng35\n(S'Variable_Type'\n(I2\nttRp6954\nsS'Y:VBus39'\np6955\ng35\n(S'Variable_Type'\n(I2\nttRp6956\nsS'Y62:%RateA 86-87'\np6957\ng35\n(S'Variable_Type'\n(I1\nttRp6958\nsS'Y:PMachine1'\np6959\ng35\n(S'Variable_Type'\n(I2\nttRp6960\nsS'Y:VBus35'\np6961\ng35\n(S'Variable_Type'\n(I2\nttRp6962\nsS'Y:VBus36'\np6963\ng35\n(S'Variable_Type'\n(I2\nttRp6964\nsS'Y:VBus37'\np6965\ng35\n(S'Variable_Type'\n(I2\nttRp6966\nsS'Iteration'\np6967\ng35\n(S'Variable_Type'\n(I2\nttRp6968\nsS'Y:VBus31'\np6969\ng35\n(S'Variable_Type'\n(I2\nttRp6970\nsS'Y:VBus32'\np6971\ng35\n(S'Variable_Type'\n(I2\nttRp6972\nsS'Y:VBus33'\np6973\ng35\n(S'Variable_Type'\n(I2\nttRp6974\nsS'Y53:%RateA 57-58'\np6975\ng35\n(S'Variable_Type'\n(I1\nttRp6976\nsS'Y14:%RateA 18-31'\np6977\ng35\n(S'Variable_Type'\n(I2\nttRp6978\nsS'Y48:%RateA 39-46'\np6979\ng35\n(S'Variable_Type'\n(I2\nttRp6980\nsS'Y60:%RateA 82-83'\np6981\ng35\n(S'Variable_Type'\n(I1\nttRp6982\nsS'Y:PMachine87'\np6983\ng35\n(S'Variable_Type'\n(I2\nttRp6984\nsS'Y:VBus121'\np6985\ng35\n(S'Variable_Type'\n(I2\nttRp6986\nsS'Y:VBus120'\np6987\ng35\n(S'Variable_Type'\n(I2\nttRp6988\nsS'Y:VBus123'\np6989\ng35\n(S'Variable_Type'\n(I2\nttRp6990\nsS'Y:VBus122'\np6991\ng35\n(S'Variable_Type'\n(I2\nttRp6992\nsS'Y:VBus125'\np6993\ng35\n(S'Variable_Type'\n(I2\nttRp6994\nsS'Y:VBus124'\np6995\ng35\n(S'Variable_Type'\n(I2\nttRp6996\nsS'Y:VBus127'\np6997\ng35\n(S'Variable_Type'\n(I2\nttRp6998\nsS'Y:VBus126'\np6999\ng35\n(S'Variable_Type'\n(I2\nttRp7000\nsS'Y:VBus129'\np7001\ng35\n(S'Variable_Type'\n(I2\nttRp7002\nsS'Y:VBus128'\np7003\ng35\n(S'Variable_Type'\n(I2\nttRp7004\nsS'Y37:%RateA 32-34'\np7005\ng35\n(S'Variable_Type'\n(I2\nttRp7006\nsS'Y43:%RateA 35-37'\np7007\ng35\n(S'Variable_Type'\n(I2\nttRp7008\nsS'Y:PMachine42'\np7009\ng35\n(S'Variable_Type'\n(I2\nttRp7010\nsS'Y0:%RateA 11-28'\np7011\ng35\n(S'Variable_Type'\n(I2\nttRp7012\nsS'Y:VBus67'\np7013\ng35\n(S'Variable_Type'\n(I2\nttRp7014\nsS'Y:Load 37'\np7015\ng35\n(S'Variable_Type'\n(I2\nttRp7016\nsS'Y65:%RateA 104-105'\np7017\ng35\n(S'Variable_Type'\n(I1\nttRp7018\nsS'Y40:%RateA 32-47'\np7019\ng35\n(S'Variable_Type'\n(I2\nttRp7020\nsS'Y:PMachine47'\np7021\ng35\n(S'Variable_Type'\n(I2\nttRp7022\nsS'Y6:%RateA 14-15'\np7023\ng35\n(S'Variable_Type'\n(I1\nttRp7024\nsS'Y:VBus1'\np7025\ng35\n(S'Variable_Type'\n(I2\nttRp7026\nsS'Y44:%RateA 35-39'\np7027\ng35\n(S'Variable_Type'\n(I2\nttRp7028\nsS'Y:PMachine88'\np7029\ng35\n(S'Variable_Type'\n(I1\nttRp7030\nsS'Y42:%RateA 34-36'\np7031\ng35\n(S'Variable_Type'\n(I2\nttRp7032\nsS'Y57:%RateA 76-77'\np7033\ng35\n(S'Variable_Type'\n(I1\nttRp7034\nsS'Y:PMachine89'\np7035\ng35\n(S'Variable_Type'\n(I1\nttRp7036\nsS'Y:VBus77'\np7037\ng35\n(S'Variable_Type'\n(I2\nttRp7038\nsS'Y:VBus29'\np7039\ng35\n(S'Variable_Type'\n(I2\nttRp7040\nsS'Y:VBus28'\np7041\ng35\n(S'Variable_Type'\n(I2\nttRp7042\nsS'Y:VBus27'\np7043\ng35\n(S'Variable_Type'\n(I2\nttRp7044\nsS'Y:VBus26'\np7045\ng35\n(S'Variable_Type'\n(I2\nttRp7046\nsS'Y:VBus25'\np7047\ng35\n(S'Variable_Type'\n(I2\nttRp7048\nsS'Y:VBus24'\np7049\ng35\n(S'Variable_Type'\n(I2\nttRp7050\nsS'Y:VBus23'\np7051\ng35\n(S'Variable_Type'\n(I2\nttRp7052\nsS'Y:VBus22'\np7053\ng35\n(S'Variable_Type'\n(I2\nttRp7054\nsS'Y:VBus21'\np7055\ng35\n(S'Variable_Type'\n(I2\nttRp7056\nsS'Y:VBus20'\np7057\ng35\n(S'Variable_Type'\n(I2\nttRp7058\nsS'Y:VBus85'\np7059\ng35\n(S'Variable_Type'\n(I2\nttRp7060\nsS'Y66:%RateA 106-107'\np7061\ng35\n(S'Variable_Type'\n(I1\nttRp7062\nsS'Y:VBus84'\np7063\ng35\n(S'Variable_Type'\n(I2\nttRp7064\nsS'Y52:%RateA 55-56'\np7065\ng35\n(S'Variable_Type'\n(I1\nttRp7066\nsS'Y2:%RateA 12-24'\np7067\ng35\n(S'Variable_Type'\n(I2\nttRp7068\nsS'Y:VBus112'\np7069\ng35\n(S'Variable_Type'\n(I2\nttRp7070\nsS'Y:VBus132'\np7071\ng35\n(S'Variable_Type'\n(I2\nttRp7072\nsS'Y:PMachine58'\np7073\ng35\n(S'Variable_Type'\n(I2\nttRp7074\nsS'Y:VBus130'\np7075\ng35\n(S'Variable_Type'\n(I2\nttRp7076\nsS'Y:VBus131'\np7077\ng35\n(S'Variable_Type'\n(I2\nttRp7078\nsS'Y:VBus136'\np7079\ng35\n(S'Variable_Type'\n(I2\nttRp7080\nsS'Y:VBus137'\np7081\ng35\n(S'Variable_Type'\n(I2\nttRp7082\nsS'Y:VBus134'\np7083\ng35\n(S'Variable_Type'\n(I2\nttRp7084\nsS'Y:VBus135'\np7085\ng35\n(S'Variable_Type'\n(I2\nttRp7086\nsS'Y:VBus81'\np7087\ng35\n(S'Variable_Type'\n(I2\nttRp7088\nsS'Y:PMachine53'\np7089\ng35\n(S'Variable_Type'\n(I2\nttRp7090\nsS'Y:VBus139'\np7091\ng35\n(S'Variable_Type'\n(I2\nttRp7092\nsS'Y30:%RateA 25-29'\np7093\ng35\n(S'Variable_Type'\n(I2\nttRp7094\nsS'Y:VBus115'\np7095\ng35\n(S'Variable_Type'\n(I2\nttRp7096\nsS'Y:PMachine124'\np7097\ng35\n(S'Variable_Type'\n(I2\nttRp7098\nsS'Y:VBus83'\np7099\ng35\n(S'Variable_Type'\n(I2\nttRp7100\nsS'Y:PMachine125'\np7101\ng35\n(S'Variable_Type'\n(I2\nttRp7102\nsS'Y25:%RateA 23-41'\np7103\ng35\n(S'Variable_Type'\n(I2\nttRp7104\nsS'Y:%Losses'\np7105\ng35\n(S'Variable_Type'\n(I2\nttRp7106\nsS'Y:VBus12'\np7107\ng35\n(S'Variable_Type'\n(I2\nttRp7108\nsS'Y:VBus13'\np7109\ng35\n(S'Variable_Type'\n(I2\nttRp7110\nsS'Y50:%RateA 51-52'\np7111\ng35\n(S'Variable_Type'\n(I1\nttRp7112\nsS'Y:VBus11'\np7113\ng35\n(S'Variable_Type'\n(I2\nttRp7114\nsS'Y:VBus16'\np7115\ng35\n(S'Variable_Type'\n(I2\nttRp7116\nsS'Y:VBus17'\np7117\ng35\n(S'Variable_Type'\n(I2\nttRp7118\nsS'Y:VBus14'\np7119\ng35\n(S'Variable_Type'\n(I2\nttRp7120\nsS'Y:VBus15'\np7121\ng35\n(S'Variable_Type'\n(I2\nttRp7122\nsS'Y:VBus113'\np7123\ng35\n(S'Variable_Type'\n(I2\nttRp7124\nsS'Y:PMachine120'\np7125\ng35\n(S'Variable_Type'\n(I2\nttRp7126\nsS'Y:VBus18'\np7127\ng35\n(S'Variable_Type'\n(I2\nttRp7128\nsS'Y:VBus19'\np7129\ng35\n(S'Variable_Type'\n(I2\nttRp7130\nsS'Y4:%RateA 13-25'\np7131\ng35\n(S'Variable_Type'\n(I2\nttRp7132\nsS'DIESEL VAZZIO'\np7133\ng35\n(S'Variable_Type'\n(I2\nttRp7134\nsS'Y35:%RateA 28-47'\np7135\ng35\n(S'Variable_Type'\n(I2\nttRp7136\nsS'Y:PMachine122'\np7137\ng35\n(S'Variable_Type'\n(I2\nttRp7138\nsS'Y16:%RateA 19-21'\np7139\ng35\n(S'Variable_Type'\n(I2\nttRp7140\nsS'Y:VBus92'\np7141\ng35\n(S'Variable_Type'\n(I2\nttRp7142\nsS'Y7:%RateA 14-35'\np7143\ng35\n(S'Variable_Type'\n(I2\nttRp7144\nsS'Y:VBus90'\np7145\ng35\n(S'Variable_Type'\n(I2\nttRp7146\nsS'Y:VBus96'\np7147\ng35\n(S'Variable_Type'\n(I2\nttRp7148\nsS'Y:VBus97'\np7149\ng35\n(S'Variable_Type'\n(I2\nttRp7150\nsS'Y:VBus94'\np7151\ng35\n(S'Variable_Type'\n(I2\nttRp7152\nsS'Y:VBus95'\np7153\ng35\n(S'Variable_Type'\n(I2\nttRp7154\nsS'Y:VBus107'\np7155\ng35\n(S'Variable_Type'\n(I2\nttRp7156\nsS'Y:VBus106'\np7157\ng35\n(S'Variable_Type'\n(I2\nttRp7158\nsS'Y:VBus105'\np7159\ng35\n(S'Variable_Type'\n(I2\nttRp7160\nsS'Y22:%RateA 22-23'\np7161\ng35\n(S'Variable_Type'\n(I1\nttRp7162\nsS'Y:VBus103'\np7163\ng35\n(S'Variable_Type'\n(I2\nttRp7164\nsS'Y:VBus102'\np7165\ng35\n(S'Variable_Type'\n(I2\nttRp7166\nsS'Y:VBus101'\np7167\ng35\n(S'Variable_Type'\n(I2\nttRp7168\nsS'Y:VBus100'\np7169\ng35\n(S'Variable_Type'\n(I2\nttRp7170\nsS'Y:Load 55'\np7171\ng35\n(S'Variable_Type'\n(I2\nttRp7172\nsS'Y:Load 57'\np7173\ng35\n(S'Variable_Type'\n(I2\nttRp7174\nsS'Y:Load 51'\np7175\ng35\n(S'Variable_Type'\n(I2\nttRp7176\nsS'Y:VBus54'\np7177\ng35\n(S'Variable_Type'\n(I2\nttRp7178\nsS'Y:VBus109'\np7179\ng35\n(S'Variable_Type'\n(I2\nttRp7180\nsS'Y46:%RateA 36-48'\np7181\ng35\n(S'Variable_Type'\n(I2\nttRp7182\nsS'Y:Load 80'\np7183\ng35\n(S'Variable_Type'\n(I2\nttRp7184\nsS'Y:PMachine133'\np7185\ng35\n(S'Variable_Type'\n(I2\nttRp7186\nsS'Y:VBus55'\np7187\ng35\n(S'Variable_Type'\n(I2\nttRp7188\nsS'Y:PMachine29'\np7189\ng35\n(S'Variable_Type'\n(I1\nttRp7190\nsS'Y24:%RateA 23-32'\np7191\ng35\n(S'Variable_Type'\n(I2\nttRp7192\nsS'X:lineOff#'\np7193\ng35\n(S'Variable_Type'\n(I2\nttRp7194\nsS'Y:Max%A'\np7195\ng35\n(S'Variable_Type'\n(I2\nttRp7196\nsS'Y:NbeTransit_0.9-1'\np7197\ng35\n(S'Variable_Type'\n(I1\nttRp7198\nsS'XProdEolienne%Pnom'\np7199\ng35\n(S'Variable_Type'\n(I2\nttRp7200\nsS'Y33:%RateA 27-33'\np7201\ng35\n(S'Variable_Type'\n(I2\nttRp7202\nsS'Y59:%RateA 80-81'\np7203\ng35\n(S'Variable_Type'\n(I1\nttRp7204\nsS'Y:VBus65'\np7205\ng35\n(S'Variable_Type'\n(I2\nttRp7206\nsS'TAC VAZZIO'\np7207\ng35\n(S'Variable_Type'\n(I2\nttRp7208\nsS'Y:VBus118'\np7209\ng35\n(S'Variable_Type'\n(I2\nttRp7210\nsS'Y:VBus119'\np7211\ng35\n(S'Variable_Type'\n(I2\nttRp7212\nsS'Y:PMachine117'\np7213\ng35\n(S'Variable_Type'\n(I2\nttRp7214\nsS'Y:PMachine116'\np7215\ng35\n(S'Variable_Type'\n(I2\nttRp7216\nsS'Y:PMachine111'\np7217\ng35\n(S'Variable_Type'\n(I2\nttRp7218\nsS'Y:VBus88'\np7219\ng35\n(S'Variable_Type'\n(I2\nttRp7220\nsS'Y:PMachine113'\np7221\ng35\n(S'Variable_Type'\n(I2\nttRp7222\nsS'Y:VBus93'\np7223\ng35\n(S'Variable_Type'\n(I2\nttRp7224\nsS'Y:VBus110'\np7225\ng35\n(S'Variable_Type'\n(I2\nttRp7226\nsS'Y:VBus111'\np7227\ng35\n(S'Variable_Type'\n(I2\nttRp7228\nsS'Y:VBus87'\np7229\ng35\n(S'Variable_Type'\n(I2\nttRp7230\nsS'Y12:%RateA 18-30'\np7231\ng35\n(S'Variable_Type'\n(I2\nttRp7232\nsS'Y:VBus114'\np7233\ng35\n(S'Variable_Type'\n(I2\nttRp7234\nsS'Y:VBus80'\np7235\ng35\n(S'Variable_Type'\n(I2\nttRp7236\nsS'Y:VBus116'\np7237\ng35\n(S'Variable_Type'\n(I2\nttRp7238\nsS'Y:VBus82'\np7239\ng35\n(S'Variable_Type'\n(I2\nttRp7240\nsS'Y61:%RateA 84-85'\np7241\ng35\n(S'Variable_Type'\n(I1\nttRp7242\nsS'Y31:%RateA 26-41'\np7243\ng35\n(S'Variable_Type'\n(I2\nttRp7244\nsS'Y:PMachine131'\np7245\ng35\n(S'Variable_Type'\n(I2\nttRp7246\nsS'Y47:%RateA 38-43'\np7247\ng35\n(S'Variable_Type'\n(I2\nttRp7248\nsS'Y:Load 42'\np7249\ng35\n(S'Variable_Type'\n(I2\nttRp7250\nsS'Y:PMachine85'\np7251\ng35\n(S'Variable_Type'\n(I2\nttRp7252\nsS'Y32:%RateA 26-46'\np7253\ng35\n(S'Variable_Type'\n(I2\nttRp7254\nsS'Y:PMachine132'\np7255\ng35\n(S'Variable_Type'\n(I2\nttRp7256\nsS'Y18:%RateA 19-27'\np7257\ng35\n(S'Variable_Type'\n(I2\nttRp7258\nsS'Y:VBus86'\np7259\ng35\n(S'Variable_Type'\n(I2\nttRp7260\nsS'Y63:%RateA 95-96'\np7261\ng35\n(S'Variable_Type'\n(I1\nttRp7262\nsS'Y17:%RateA 19-22'\np7263\ng35\n(S'Variable_Type'\n(I2\nttRp7264\nsS'Y41:%RateA 32-48'\np7265\ng35\n(S'Variable_Type'\n(I2\nttRp7266\nsS'Y:PMachine30'\np7267\ng35\n(S'Variable_Type'\n(I2\nttRp7268\nsS'Y:VBus117'\np7269\ng35\n(S'Variable_Type'\n(I2\nttRp7270\nsS'Y56:%RateA 72-73'\np7271\ng35\n(S'Variable_Type'\n(I1\nttRp7272\nsS'Y68:%RateA 112-113'\np7273\ng35\n(S'Variable_Type'\n(I1\nttRp7274\nsS'Y:PMachine130'\np7275\ng35\n(S'Variable_Type'\n(I2\nttRp7276\nsS'Y27:%RateA 24-33'\np7277\ng35\n(S'Variable_Type'\n(I2\nttRp7278\nsS'Y:PMachine106'\np7279\ng35\n(S'Variable_Type'\n(I2\nttRp7280\nsS'Y:PMachine107'\np7281\ng35\n(S'Variable_Type'\n(I2\nttRp7282\nsS'Y:PMachine104'\np7283\ng35\n(S'Variable_Type'\n(I2\nttRp7284\nsS'Y:VBus73'\np7285\ng35\n(S'Variable_Type'\n(I2\nttRp7286\nsS'Y:VBus74'\np7287\ng35\n(S'Variable_Type'\n(I2\nttRp7288\nsS'Y:VBus75'\np7289\ng35\n(S'Variable_Type'\n(I2\nttRp7290\nsS'Y:VBus76'\np7291\ng35\n(S'Variable_Type'\n(I2\nttRp7292\nsS'Y:PMachine101'\np7293\ng35\n(S'Variable_Type'\n(I2\nttRp7294\nsS'Y:VBus78'\np7295\ng35\n(S'Variable_Type'\n(I2\nttRp7296\nsS'Y:Load 59'\np7297\ng35\n(S'Variable_Type'\n(I2\nttRp7298\nsS'Y:PMachine115'\np7299\ng35\n(S'Variable_Type'\n(I2\nttRp7300\nsS'Y51:%RateA 53-54'\np7301\ng35\n(S'Variable_Type'\n(I1\nttRp7302\nsS'Y67:%RateA 108-109'\np7303\ng35\n(S'Variable_Type'\n(I1\nttRp7304\nsS'Y:PMachine109'\np7305\ng35\n(S'Variable_Type'\n(I2\nttRp7306\nsS'Y:PMachine83'\np7307\ng35\n(S'Variable_Type'\n(I2\nttRp7308\nsS'Y:PMachine81'\np7309\ng35\n(S'Variable_Type'\n(I2\nttRp7310\nsS'Y:PMachine86'\np7311\ng35\n(S'Variable_Type'\n(I2\nttRp7312\nsS'Y:Load 76'\np7313\ng35\n(S'Variable_Type'\n(I2\nttRp7314\nsS'Y:Load 74'\np7315\ng35\n(S'Variable_Type'\n(I2\nttRp7316\nsS'Y45:%RateA 36-37'\np7317\ng35\n(S'Variable_Type'\n(I2\nttRp7318\nsS'Y58:%RateA 78-79'\np7319\ng35\n(S'Variable_Type'\n(I1\nttRp7320\nsS'Y:Load 78'\np7321\ng35\n(S'Variable_Type'\n(I2\nttRp7322\nsS'X:Load(pu)'\np7323\ng6881\nsS'Y5:%RateA 13-29'\np7324\ng35\n(S'Variable_Type'\n(I2\nttRp7325\nsS'Y:PMachine118'\np7326\ng35\n(S'Variable_Type'\n(I2\nttRp7327\nsS'Y1:%RateA 11-47'\np7328\ng35\n(S'Variable_Type'\n(I2\nttRp7329\nsS'Y:VBus60'\np7330\ng35\n(S'Variable_Type'\n(I2\nttRp7331\nsS'Y:PMachine137'\np7332\ng35\n(S'Variable_Type'\n(I1\nttRp7333\nsS'Y29:%RateA 25-29'\np7334\ng35\n(S'Variable_Type'\n(I2\nttRp7335\nsS'Y:VBus66'\np7336\ng35\n(S'Variable_Type'\n(I2\nttRp7337\nsS'Y36:%RateA 29-30'\np7338\ng35\n(S'Variable_Type'\n(I1\nttRp7339\nsS'Y54:%RateA 59-60'\np7340\ng35\n(S'Variable_Type'\n(I1\nttRp7341\nsS'Y:Load 90'\np7342\ng35\n(S'Variable_Type'\n(I2\nttRp7343\nsS'Y9:%RateA 16-32'\np7344\ng35\n(S'Variable_Type'\n(I2\nttRp7345\nsS'INTERCOS'\np7346\ng35\n(S'Variable_Type'\n(I2\nttRp7347\nsS'Y:Load 95'\np7348\ng35\n(S'Variable_Type'\n(I2\nttRp7349\nsS'Y:VBus63'\np7350\ng35\n(S'Variable_Type'\n(I2\nttRp7351\nsS'Y:VBus62'\np7352\ng35\n(S'Variable_Type'\n(I2\nttRp7353\nsS'Y:VBus61'\np7354\ng35\n(S'Variable_Type'\n(I2\nttRp7355\nsS'Y55:%RateA 61-62'\np7356\ng35\n(S'Variable_Type'\n(I1\nttRp7357\nsS'Y8:%RateA 15-35'\np7358\ng35\n(S'Variable_Type'\n(I2\nttRp7359\nsS'Y:PMachine136'\np7360\ng35\n(S'Variable_Type'\n(I1\nttRp7361\nsS'Y:PMachine135'\np7362\ng35\n(S'Variable_Type'\n(I1\nttRp7363\nsS'Y:VBus64'\np7364\ng35\n(S'Variable_Type'\n(I2\nttRp7365\nsS'Y:PMachine94'\np7366\ng35\n(S'Variable_Type'\n(I2\nttRp7367\nsS'Y:VBus69'\np7368\ng35\n(S'Variable_Type'\n(I2\nttRp7369\nsS'Y:VBus108'\np7370\ng35\n(S'Variable_Type'\n(I2\nttRp7371\nsS'Y:PMachine139'\np7372\ng35\n(S'Variable_Type'\n(I1\nttRp7373\nsS'Y:PMachine97'\np7374\ng35\n(S'Variable_Type'\n(I2\nttRp7375\nsS'Y:PMachine92'\np7376\ng35\n(S'Variable_Type'\n(I2\nttRp7377\nsS'Y:VBus68'\np7378\ng35\n(S'Variable_Type'\n(I2\nttRp7379\nsS'Y:Load 61'\np7380\ng35\n(S'Variable_Type'\n(I2\nttRp7381\nsS'Y:VBus89'\np7382\ng35\n(S'Variable_Type'\n(I2\nttRp7383\nsS'Y21:%RateA 21-43'\np7384\ng35\n(S'Variable_Type'\n(I2\nttRp7385\nsS'Y:PMachine90'\np7386\ng35\n(S'Variable_Type'\n(I2\nttRp7387\nsS'Y:PMachine14'\np7388\ng35\n(S'Variable_Type'\n(I2\nttRp7389\nsS'Y:PMachine63'\np7390\ng35\n(S'Variable_Type'\n(I2\nttRp7391\nsS'Y:PMachine93'\np7392\ng35\n(S'Variable_Type'\n(I2\nttRp7393\nsS'Y:PConsoTot'\np7394\ng35\n(S'Variable_Type'\n(I2\nttRp7395\nsS'Y23:%RateA 22-31'\np7396\ng35\n(S'Variable_Type'\n(I2\nttRp7397\nsS'Y19:%RateA 20-26'\np7398\ng35\n(S'Variable_Type'\n(I2\nttRp7399\nsS'Y:PMachine18'\np7400\ng35\n(S'Variable_Type'\n(I2\nttRp7401\nsS'Y:VBus34'\np7402\ng35\n(S'Variable_Type'\n(I2\nttRp7403\nsS'Y:NbeTension'\np7404\ng35\n(S'Variable_Type'\n(I2\nttRp7405\nsS'TOT PV'\np7406\ng35\n(S'Variable_Type'\n(I2\nttRp7407\nsS'Y:PMachine128'\np7408\ng35\n(S'Variable_Type'\n(I2\nttRp7409\nsS'Y:PMachine129'\np7410\ng35\n(S'Variable_Type'\n(I2\nttRp7411\nsS'Y:VBus133'\np7412\ng35\n(S'Variable_Type'\n(I2\nttRp7413\nsS'Y:Load 82'\np7414\ng35\n(S'Variable_Type'\n(I2\nttRp7415\nsS'Y:VBus30'\np7416\ng35\n(S'Variable_Type'\n(I2\nttRp7417\nsS'Y:PMachine126'\np7418\ng35\n(S'Variable_Type'\n(I2\nttRp7419\nsS'Y:PMachine127'\np7420\ng35\n(S'Variable_Type'\n(I2\nttRp7421\nsS'Y:Load 86'\np7422\ng35\n(S'Variable_Type'\n(I2\nttRp7423\nsS'Y:PMachine121'\np7424\ng35\n(S'Variable_Type'\n(I2\nttRp7425\nsS'Y:Load 84'\np7426\ng35\n(S'Variable_Type'\n(I2\nttRp7427\nsS'Y:PMachine123'\np7428\ng35\n(S'Variable_Type'\n(I2\nttRp7429\nsS'Y:Load 102'\np7430\ng35\n(S'Variable_Type'\n(I2\nttRp7431\nsS'Y:VBus57'\np7432\ng35\n(S'Variable_Type'\n(I2\nttRp7433\nsS'Y:Load 100'\np7434\ng35\n(S'Variable_Type'\n(I2\nttRp7435\nsS'Y:Load 101'\np7436\ng35\n(S'Variable_Type'\n(I2\nttRp7437\nsS'Y:VBus52'\np7438\ng35\n(S'Variable_Type'\n(I2\nttRp7439\nsS'Y:VBus53'\np7440\ng35\n(S'Variable_Type'\n(I2\nttRp7441\nsS'Y:Load 104'\np7442\ng35\n(S'Variable_Type'\n(I2\nttRp7443\nsS'Y:VBus51'\np7444\ng35\n(S'Variable_Type'\n(I2\nttRp7445\nsS'Y:Load 108'\np7446\ng35\n(S'Variable_Type'\n(I2\nttRp7447\nsS'Y64:%RateA 102-103'\np7448\ng35\n(S'Variable_Type'\n(I1\nttRp7449\nsS'Y:PMachine112'\np7450\ng35\n(S'Variable_Type'\n(I2\nttRp7451\nsS'Y:VBus58'\np7452\ng35\n(S'Variable_Type'\n(I2\nttRp7453\nsS'Y:VBus59'\np7454\ng35\n(S'Variable_Type'\n(I2\nttRp7455\nsS'Y:Load 53'\np7456\ng35\n(S'Variable_Type'\n(I2\nttRp7457\nsS'Y10:%RateA 16-47'\np7458\ng35\n(S'Variable_Type'\n(I2\nttRp7459\nsS'Y:PMachine54'\np7460\ng35\n(S'Variable_Type'\n(I2\nttRp7461\nsS'Y:VBus56'\np7462\ng35\n(S'Variable_Type'\n(I2\nttRp7463\nsS'TOT WIND'\np7464\ng35\n(S'Variable_Type'\n(I2\nttRp7465\nsS'Y3:%RateA 12-24'\np7466\ng35\n(S'Variable_Type'\n(I2\nttRp7467\nsS'Y11:%RateA 17-27'\np7468\ng35\n(S'Variable_Type'\n(I2\nttRp7469\nsS'Y:PMachine114'\np7470\ng35\n(S'Variable_Type'\n(I2\nttRp7471\nsS'Y:VBus72'\np7472\ng35\n(S'Variable_Type'\n(I2\nttRp7473\nsS'Y:PMachine60'\np7474\ng35\n(S'Variable_Type'\n(I2\nttRp7475\nsS'Y:PMachine61'\np7476\ng35\n(S'Variable_Type'\n(I1\nttRp7477\nsS'Y:PMachine62'\np7478\ng35\n(S'Variable_Type'\n(I2\nttRp7479\nsS'Y:PMachine105'\np7480\ng35\n(S'Variable_Type'\n(I2\nttRp7481\nsS'Y:PMachine64'\np7482\ng35\n(S'Variable_Type'\n(I2\nttRp7483\nsS'Y:PMachine65'\np7484\ng35\n(S'Variable_Type'\n(I2\nttRp7485\nsS'Y:PMachine66'\np7486\ng35\n(S'Variable_Type'\n(I2\nttRp7487\nsS'Y:PMachine67'\np7488\ng35\n(S'Variable_Type'\n(I2\nttRp7489\nsS'Y:PMachine68'\np7490\ng35\n(S'Variable_Type'\n(I2\nttRp7491\nsS'Y:PMachine102'\np7492\ng35\n(S'Variable_Type'\n(I2\nttRp7493\nsS'X:ProdPV%Pnom'\np7494\ng35\n(S'Variable_Type'\n(I2\nttRp7495\nsS'Y:VBus138'\np7496\ng35\n(S'Variable_Type'\n(I2\nttRp7497\nsS'Y26:%RateA 24-25'\np7498\ng35\n(S'Variable_Type'\n(I1\nttRp7499\nssg650\n(lp7500\ng652\nasba(iOWContexts\nContext\np7501\n(dp7502\ng24\n(lp7503\nsg26\n(dp7504\nsg28\n(dp7505\nS'attrLabel'\np7506\n(S''\nI-1\ntp7507\nsS'attrShape'\np7508\n(S''\nI0\ntp7509\nsS'attrX'\np7510\n(g1281\ng35\n(S'Variable_Type'\n(I2\nttRp7511\ntp7512\nsS'attrY'\np7513\n(S'X:Interco(bin)'\ng35\n(S'Variable_Type'\n(I1\nttRp7514\ntp7515\nsS'attrSize'\np7516\n(S''\nI0\ntp7517\nsS'attrColor'\np7518\n(S'X:ProdEolienne%Pnom'\ng35\n(S'Variable_Type'\n(I2\nttRp7519\ntp7520\nssg46\nF1368453819.1259999\nsg47\n(dp7521\nS'X:Interco(bin)'\np7522\ng7514\nsS'X:Load(pu)'\np7523\ng7511\nsS'X:ProdEolienne%Pnom'\np7524\ng7519\nssg650\n(lp7525\ng652\nasba(iOWContexts\nContext\np7526\n(dp7527\ng24\n(lp7528\nsg26\n(dp7529\nsg28\n(dp7530\nS'attrLabel'\np7531\n(S''\nI-1\ntp7532\nsS'attrShape'\np7533\n(S''\nI0\ntp7534\nsS'attrX'\np7535\n(S'X:Load(pu)'\ng35\n(S'Variable_Type'\n(I2\nttRp7536\ntp7537\nsS'attrY'\np7538\n(S'X:Interco(bin)'\ng35\n(S'Variable_Type'\n(I1\nttRp7539\ntp7540\nsS'attrSize'\np7541\n(S''\nI0\ntp7542\nsS'attrColor'\np7543\n(S'X:ProdEolienne%Pnom'\ng35\n(S'Variable_Type'\n(I2\nttRp7544\ntp7545\nssg46\nF1368453819.1259999\nsg47\n(dp7546\nS'X:Interco(bin)'\np7547\ng7539\nsS'X:Load(pu)'\np7548\ng7536\nsS'X:ProdEolienne%Pnom'\np7549\ng7544\nssg650\n(lp7550\nS'orderedDomain'\np7551\nasbasS'toolbarSelection'\np7552\nI0\nsS'graph.sendSelectionOnUpdate'\np7553\nI00\nsS'graph.showYLaxisTitle'\np7554\nI1\nsS'graph.showDistributions'\np7555\nNsS'colorSettings'\np7556\n(lp7557\n(lp7558\nS'c v'\np7559\na(lp7560\n(lp7561\n(S'Canvas'\np7562\nL4294967295L\ntp7563\na(S'Grid'\np7564\nL4292335575L\ntp7565\naa(lp7566\n(S'contPalette'\np7567\n(L4294945280L\nL4278255360L\nI00\nttp7568\naa(lp7569\n(S'discPalette'\np7570\n(lp7571\n(I0\nI0\nI255\ntp7572\na(I255\nI0\nI0\ntp7573\na(I0\nI255\nI0\ntp7574\na(I255\nI128\nI0\ntp7575\na(I255\nI255\nI0\ntp7576\na(I255\nI0\nI255\ntp7577\na(I0\nI255\nI255\ntp7578\na(I128\nI0\nI255\ntp7579\na(I0\nI128\nI255\ntp7580\na(I255\nI223\nI128\ntp7581\na(I127\nI111\nI64\ntp7582\na(I92\nI46\nI0\ntp7583\na(I0\nI84\nI0\ntp7584\na(I192\nI192\nI0\ntp7585\na(I0\nI127\nI127\ntp7586\na(I128\nI0\nI0\ntp7587\na(I127\nI0\nI127\ntp7588\natp7589\naa(lp7590\naaa(S''\n(lp7591\n(lp7592\n(g7562\nL4294967295L\ntp7593\na(g7564\nL4292335575L\ntp7594\naa(lp7595\n(g7567\n(L4294967295L\nL4278190080L\nI01\nttp7596\naa(lp7597\n(g7570\ng7571\ntp7598\naa(lp7599\natp7600\na(S'Default'\n(lp7601\n(lp7602\n(S'Canvas'\nL4294967295L\ntp7603\na(S'Grid'\nL4292335575L\ntp7604\naa(lp7605\n(S'contPalette'\n(L4294967295L\nL4278190080L\nI0\nttp7606\naa(lp7607\n(S'discPalette'\ng7571\ntp7608\naa(lp7609\natp7610\nasS'VizRankLearnerName'\np7611\nNs.&quot;, 'Scatterplot': &quot;(dp1\nS'autoSendSelection'\np2\nI1\nsS'graph.showAxisScale'\np3\nI1\nsS'graph.useAntialiasing'\np4\nI1\nsS'selectedSchemaIndex'\np5\nI0\nsS'graph.pointWidth'\np6\nI5\nsS'graph.showFilledSymbols'\np7\nI1\nsS'showGridlines'\np8\nI0\nsS'graph.alphaValue'\np9\nI255\nsS'savedWidgetGeometry'\np10\nS'\\x01\\xd9\\xd0\\xcb\\x00\\x01\\x00\\x00\\x00\\x00\\x01\\xa1\\x00\\x00\\x00k\\x00\\x00\\x04\\xaf\\x00\\x00\\x02\\x88\\x00\\x00\\x01\\xa9\\x00\\x00\\x00\\x87\\x00\\x00\\x04\\xa7\\x00\\x00\\x02\\x80\\x00\\x00\\x00\\x00\\x00\\x00'\np11\nsS'graph.jitterContinuous'\np12\nI00\nsS'graph.jitterSize'\np13\nF0.10000000000000001\nsS'graph.showProbabilities'\np14\nI0\nsS'graph.showXaxisTitle'\np15\nI1\nsS'widgetShown'\np16\nI0\nsS'graph.showLegend'\np17\nI1\nsS'localContextsVersion'\np18\n(I100\nI0\ntp19\nsS'localContexts'\np20\n(lp21\n(iOWContexts\nContext\np22\n(dp23\nS'selectionPolygons'\np24\n(lp25\nsS'metas'\np26\n(dp27\nsS'values'\np28\n(dp29\nS'attrLabel'\np30\n(S''\nI-1\ntp31\nsS'attrShape'\np32\n(S''\nI0\ntp33\nsS'attrX'\np34\n(S'X:Load(pu)'\ncOrange.orange\n__pickleLoaderNamedConstants\np35\n(S'Variable_Type'\n(I2\nttRp36\ntp37\nsS'attrY'\np38\n(S'Y:Max%A'\ng35\n(S'Variable_Type'\n(I2\nttRp39\ntp40\nsS'attrSize'\np41\n(S''\nI0\ntp42\nsS'attrColor'\np43\n(S'X:lineOff#'\ng35\n(S'Variable_Type'\n(I2\nttRp44\ntp45\nssS'time'\np46\nF1370505351.4360001\nsS'attributes'\np47\n(dp48\nS'Y:PMachine134 - CLUCCI35'\np49\ng35\n(S'Variable_Type'\n(I2\nttRp50\nsS'Y:VBus77 - CCORTE32'\np51\ng35\n(S'Variable_Type'\n(I2\nttRp52\nsS'Y:VBus134 - CLUCCI35'\np53\ng35\n(S'Variable_Type'\n(I2\nttRp54\nsS'Y:VBus109 - CSAGON32'\np55\ng35\n(S'Variable_Type'\n(I2\nttRp56\nsS'Y:VBus102 - CPORTO31'\np57\ng35\n(S'Variable_Type'\n(I2\nttRp58\nsS'XProdEolienne%Pnom'\np59\ng35\n(S'Variable_Type'\n(I2\nttRp60\nsS'Y:PMachine94 - COCANA33'\np61\ng35\n(S'Variable_Type'\n(I2\nttRp62\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np63\ng35\n(S'Variable_Type'\n(I2\nttRp64\nsS'Y:PMachine87 - CLUCCI32'\np65\ng35\n(S'Variable_Type'\n(I2\nttRp66\nsS'Y:PMachine113 - CSAMPO32'\np67\ng35\n(S'Variable_Type'\n(I2\nttRp68\nsS'Y:Load 84 - CLORET31'\np69\ng35\n(S'Variable_Type'\n(I2\nttRp70\nsS'Y:PMachine89 - CLUCCI34'\np71\ng35\n(S'Variable_Type'\n(I2\nttRp72\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np73\ng35\n(S'Variable_Type'\n(I2\nttRp74\nsS'Y:Load 80 - CGHISO31'\np75\ng35\n(S'Variable_Type'\n(I2\nttRp76\nsS'Y:PMachine125 - CVAZZI36'\np77\ng35\n(S'Variable_Type'\n(I2\nttRp78\nsS'Y:PMachine116 - CTOLLA31'\np79\ng35\n(S'Variable_Type'\n(I2\nttRp80\nsS'Y:PMachine88 - CLUCCI33'\np81\ng35\n(S'Variable_Type'\n(I2\nttRp82\nsS'Y:PMachine120 - CVAZZI31'\np83\ng35\n(S'Variable_Type'\n(I2\nttRp84\nsS'Y:PMachine111 - CSTMAR31'\np85\ng35\n(S'Variable_Type'\n(I2\nttRp86\nsS'Y:NbeTransit'\np87\ng35\n(S'Variable_Type'\n(I2\nttRp88\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np89\ng35\n(S'Variable_Type'\n(I2\nttRp90\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np91\ng35\n(S'Variable_Type'\n(I2\nttRp92\nsS'Y:PMachine130 - CVAZZI311'\np93\ng35\n(S'Variable_Type'\n(I2\nttRp94\nsS'Y:PMachine127 - CVAZZI38'\np95\ng35\n(S'Variable_Type'\n(I2\nttRp96\nsS'Y:VBus131 - CVAZZI312'\np97\ng35\n(S'Variable_Type'\n(I2\nttRp98\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np99\ng35\n(S'Variable_Type'\n(I2\nttRp100\nsS'Y:PMachine123 - CVAZZI34'\np101\ng35\n(S'Variable_Type'\n(I2\nttRp102\nsS'Y:VBus118 - CTOLLA33'\np103\ng35\n(S'Variable_Type'\n(I2\nttRp104\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np105\ng35\n(S'Variable_Type'\n(I2\nttRp106\nsS'Y:PMachine58 - CBONIF32'\np107\ng35\n(S'Variable_Type'\n(I2\nttRp108\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np109\ng35\n(S'Variable_Type'\n(I2\nttRp110\nsS'Y:Load 104 - CPROPR31'\np111\ng35\n(S'Variable_Type'\n(I2\nttRp112\nsS'Y:PMachine30 - CLUCCI22'\np113\ng35\n(S'Variable_Type'\n(I2\nttRp114\nsS'Y:VBus100 - COLETT31'\np115\ng35\n(S'Variable_Type'\n(I2\nttRp116\nsS'Y:PProdTot'\np117\ng35\n(S'Variable_Type'\n(I2\nttRp118\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np119\ng35\n(S'Variable_Type'\n(I2\nttRp120\nsS'Y:PMachine126 - CVAZZI37'\np121\ng35\n(S'Variable_Type'\n(I2\nttRp122\nsS'Y:VBus57 - CBONIF31'\np123\ng35\n(S'Variable_Type'\n(I2\nttRp124\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np125\ng35\n(S'Variable_Type'\n(I2\nttRp126\nsS'Y:PConsoTot'\np127\ng35\n(S'Variable_Type'\n(I2\nttRp128\nsS'Iteration'\np129\ng35\n(S'Variable_Type'\n(I2\nttRp130\nsS'Y:PMachine109 - CSAGON32'\np131\ng35\n(S'Variable_Type'\n(I2\nttRp132\nsS'Y:PMachine135 - CLUCCI36'\np133\ng35\n(S'Variable_Type'\n(I2\nttRp134\nsS'Y:VBus30 - CLUCCI22'\np135\ng35\n(S'Variable_Type'\n(I2\nttRp136\nsS'Y:VBus122 - CVAZZI33'\np137\ng35\n(S'Variable_Type'\n(I2\nttRp138\nsS'Y:VBus22 - CCORTE21'\np139\ng35\n(S'Variable_Type'\n(I2\nttRp140\nsS'Y:VBus117 - CTOLLA32'\np141\ng35\n(S'Variable_Type'\n(I2\nttRp142\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np143\ng35\n(S'Variable_Type'\n(I2\nttRp144\nsS'Y:PMachine107 - CRIZZA32'\np145\ng35\n(S'Variable_Type'\n(I2\nttRp146\nsS'Y:VBus16 - CCALDA21'\np147\ng35\n(S'Variable_Type'\n(I2\nttRp148\nsS'Y:VBus108 - CSAGON31'\np149\ng35\n(S'Variable_Type'\n(I2\nttRp150\nsS'Y:Load 102 - CPORTO31'\np151\ng35\n(S'Variable_Type'\n(I2\nttRp152\nsS'Y:VBus107 - CRIZZA32'\np153\ng35\n(S'Variable_Type'\n(I2\nttRp154\nsS'Y:VBus92 - COCANA31'\np155\ng35\n(S'Variable_Type'\n(I2\nttRp156\nsS'Y:VBus41 - CSAMPO21'\np157\ng35\n(S'Variable_Type'\n(I2\nttRp158\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np159\ng35\n(S'Variable_Type'\n(I2\nttRp160\nsS'Y:VBus34 - CPIETR21'\np161\ng35\n(S'Variable_Type'\n(I2\nttRp162\nsS'Y:Load 108 - CSAGON31'\np163\ng35\n(S'Variable_Type'\n(I2\nttRp164\nsS'Y:VBus56 - CBIGUG32'\np165\ng35\n(S'Variable_Type'\n(I2\nttRp166\nsS'Y:PMachine42 - CSISCO21'\np167\ng35\n(S'Variable_Type'\n(I2\nttRp168\nsS'Y:PMachine138 - CLUCCI39'\np169\ng35\n(S'Variable_Type'\n(I2\nttRp170\nsS'Y:PMachine112 - CSAMPO31'\np171\ng35\n(S'Variable_Type'\n(I2\nttRp172\nsS'Y:VBus105 - CPROPR32'\np173\ng35\n(S'Variable_Type'\n(I2\nttRp174\nsS'Y:VBus1 - CBONIF11'\np175\ng35\n(S'Variable_Type'\n(I2\nttRp176\nsS'Y:VBus12 - CBASTI21'\np177\ng35\n(S'Variable_Type'\n(I2\nttRp178\nsS'Y:PMachine129 - CVAZZI310'\np179\ng35\n(S'Variable_Type'\n(I2\nttRp180\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np181\ng35\n(S'Variable_Type'\n(I2\nttRp182\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np183\ng35\n(S'Variable_Type'\n(I2\nttRp184\nsS'Y:VBus54 - CBASTI32'\np185\ng35\n(S'Variable_Type'\n(I2\nttRp186\nsS'Y:VBus69 - CCASAM37'\np187\ng35\n(S'Variable_Type'\n(I2\nttRp188\nsS'Y:VBus45 - CTOLLA21'\np189\ng35\n(S'Variable_Type'\n(I2\nttRp190\nsS'Y:PMachine115 - CTAGLI31'\np191\ng35\n(S'Variable_Type'\n(I2\nttRp192\nsS'Y:VBus79 - CFURIA32'\np193\ng35\n(S'Variable_Type'\n(I2\nttRp194\nsS'Y:VBus43 - CSOVEN21'\np195\ng35\n(S'Variable_Type'\n(I2\nttRp196\nsS'Y:VBus76 - CCORTE31'\np197\ng35\n(S'Variable_Type'\n(I2\nttRp198\nsS'Y:VBus75 - CCORSC31'\np199\ng35\n(S'Variable_Type'\n(I2\nttRp200\nsS'Y:PMachine78 - CFURIA31'\np201\ng35\n(S'Variable_Type'\n(I2\nttRp202\nsS'Y:VBus127 - CVAZZI38'\np203\ng35\n(S'Variable_Type'\n(I2\nttRp204\nsS'Y:VBus115 - CTAGLI31'\np205\ng35\n(S'Variable_Type'\n(I2\nttRp206\nsS'Y:Load 61 - CCALVI31'\np207\ng35\n(S'Variable_Type'\n(I2\nttRp208\nsS'Y:VBus55 - CBIGUG31'\np209\ng35\n(S'Variable_Type'\n(I2\nttRp210\nsS'Y:Load 42 - CSISCO21'\np211\ng35\n(S'Variable_Type'\n(I2\nttRp212\nsS'Y:VBus72 - CCASTI31'\np213\ng35\n(S'Variable_Type'\n(I2\nttRp214\nsS'Y:Load 37 - CRIZZA21'\np215\ng35\n(S'Variable_Type'\n(I2\nttRp216\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np217\ng35\n(S'Variable_Type'\n(I2\nttRp218\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np219\ng35\n(S'Variable_Type'\n(I2\nttRp220\nsS'Y:PMachine102 - CPORTO31'\np221\ng35\n(S'Variable_Type'\n(I2\nttRp222\nsS'Y:PMachine67 - CCASAM35'\np223\ng35\n(S'Variable_Type'\n(I2\nttRp224\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np225\ng35\n(S'Variable_Type'\n(I2\nttRp226\nsS'Y:VBus31 - CMOROS21'\np227\ng35\n(S'Variable_Type'\n(I2\nttRp228\nsS'Y:VBus103 - CPORTO32'\np229\ng35\n(S'Variable_Type'\n(I2\nttRp230\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np231\ng35\n(S'Variable_Type'\n(I2\nttRp232\nsS'Y:PMachine128 - CVAZZI39'\np233\ng35\n(S'Variable_Type'\n(I2\nttRp234\nsS'Y:PMachine72 - CCASTI31'\np235\ng35\n(S'Variable_Type'\n(I2\nttRp236\nsS'Y:VBus27 - CILERO21'\np237\ng35\n(S'Variable_Type'\n(I2\nttRp238\nsS'Y:PMachine75 - CCORSC31'\np239\ng35\n(S'Variable_Type'\n(I2\nttRp240\nsS'Y:Load 51 - CASPRE31'\np241\ng35\n(S'Variable_Type'\n(I2\nttRp242\nsS'Y:PMachine61 - CCALVI31'\np243\ng35\n(S'Variable_Type'\n(I2\nttRp244\nsS'Y:VBus51 - CASPRE31'\np245\ng35\n(S'Variable_Type'\n(I2\nttRp246\nsS'Y:VBus114 - CSOVEN31'\np247\ng35\n(S'Variable_Type'\n(I2\nttRp248\nsS'Y:VBus116 - CTOLLA31'\np249\ng35\n(S'Variable_Type'\n(I2\nttRp250\nsS'Y:Load 86 - CLUCCI31'\np251\ng35\n(S'Variable_Type'\n(I2\nttRp252\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np253\ng35\n(S'Variable_Type'\n(I2\nttRp254\nsS'Y:Load 57 - CBONIF31'\np255\ng35\n(S'Variable_Type'\n(I2\nttRp256\nsS'Y:PMachine104 - CPROPR31'\np257\ng35\n(S'Variable_Type'\n(I2\nttRp258\nsS'Y:VBus128 - CVAZZI39'\np259\ng35\n(S'Variable_Type'\n(I2\nttRp260\nsS'Y:PMachine136 - CLUCCI37'\np261\ng35\n(S'Variable_Type'\n(I2\nttRp262\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np263\ng35\n(S'Variable_Type'\n(I2\nttRp264\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np265\ng35\n(S'Variable_Type'\n(I2\nttRp266\nsS'Y:PMachine68 - CCASAM36'\np267\ng35\n(S'Variable_Type'\n(I2\nttRp268\nsS'Y:PMachine29 - CLUCCI21'\np269\ng35\n(S'Variable_Type'\n(I2\nttRp270\nsS'Y:VBus42 - CSISCO21'\np271\ng35\n(S'Variable_Type'\n(I2\nttRp272\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np273\ng35\n(S'Variable_Type'\n(I2\nttRp274\nsS'Y:VBus14 - CBONIF21'\np275\ng35\n(S'Variable_Type'\n(I2\nttRp276\nsS'Y:VBus73 - CCASTI32'\np277\ng35\n(S'Variable_Type'\n(I2\nttRp278\nsS'Y:VBus64 - CCASAM32'\np279\ng35\n(S'Variable_Type'\n(I2\nttRp280\nsS'Y:PMachine14 - CBONIF21'\np281\ng35\n(S'Variable_Type'\n(I2\nttRp282\nsS'Y:PMachine62 - CCALVI32'\np283\ng35\n(S'Variable_Type'\n(I2\nttRp284\nsS'Y:VBus133 - CVAZZI314'\np285\ng35\n(S'Variable_Type'\n(I2\nttRp286\nsS'Y:VBus63 - CCASAM31'\np287\ng35\n(S'Variable_Type'\n(I2\nttRp288\nsS'Y:PMachine101 - CPIETR31'\np289\ng35\n(S'Variable_Type'\n(I2\nttRp290\nsS'Y:%Losses'\np291\ng35\n(S'Variable_Type'\n(I2\nttRp292\nsS'Y:VBus85 - CLORET32'\np293\ng35\n(S'Variable_Type'\n(I2\nttRp294\nsS'Y:Load 59 - CCALDA31'\np295\ng35\n(S'Variable_Type'\n(I2\nttRp296\nsS'Y:VBus129 - CVAZZI310'\np297\ng35\n(S'Variable_Type'\n(I2\nttRp298\nsS'Y:VBus101 - CPIETR31'\np299\ng35\n(S'Variable_Type'\n(I2\nttRp300\nsS'Y:PMachine106 - CRIZZA31'\np301\ng35\n(S'Variable_Type'\n(I2\nttRp302\nsS'Y:VBus132 - CVAZZI313'\np303\ng35\n(S'Variable_Type'\n(I2\nttRp304\nsS'Y:PMachine118 - CTOLLA33'\np305\ng35\n(S'Variable_Type'\n(I2\nttRp306\nsS'Y:VBus19 - CCASTI21'\np307\ng35\n(S'Variable_Type'\n(I2\nttRp308\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np309\ng35\n(S'Variable_Type'\n(I2\nttRp310\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np311\ng35\n(S'Variable_Type'\n(I2\nttRp312\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np313\ng35\n(S'Variable_Type'\n(I2\nttRp314\nsS'Y:Load 115 - CTAGLI31'\np315\ng35\n(S'Variable_Type'\n(I2\nttRp316\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np317\ng35\n(S'Variable_Type'\n(I2\nttRp318\nsS'Y:VBus15 - CBONIF22'\np319\ng35\n(S'Variable_Type'\n(I2\nttRp320\nsS'Y:PMachine47 - CVAZZI21'\np321\ng35\n(S'Variable_Type'\n(I2\nttRp322\nsS'Y:VBus123 - CVAZZI34'\np323\ng35\n(S'Variable_Type'\n(I2\nttRp324\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np325\ng35\n(S'Variable_Type'\n(I2\nttRp326\nsS'Y:VBus60 - CCALDA32'\np327\ng35\n(S'Variable_Type'\n(I2\nttRp328\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np329\ng35\n(S'Variable_Type'\n(I2\nttRp330\nsS'Y:VBus65 - CCASAM33'\np331\ng35\n(S'Variable_Type'\n(I2\nttRp332\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np333\ng35\n(S'Variable_Type'\n(I2\nttRp334\nsS'Y:PMachine139 - CLUCCI310'\np335\ng35\n(S'Variable_Type'\n(I2\nttRp336\nsS'Y:VBus112 - CSAMPO31'\np337\ng35\n(S'Variable_Type'\n(I2\nttRp338\nsS'Y:VBus68 - CCASAM36'\np339\ng35\n(S'Variable_Type'\n(I2\nttRp340\nsS'Y:Load 55 - CBIGUG31'\np341\ng35\n(S'Variable_Type'\n(I2\nttRp342\nsS'Y:PMachine53 - CBASTI31'\np343\ng35\n(S'Variable_Type'\n(I2\nttRp344\nsS'Y:NbeTransit_0.9-1'\np345\ng35\n(S'Variable_Type'\n(I2\nttRp346\nsS'Y:VBus24 - CFURIA21'\np347\ng35\n(S'Variable_Type'\n(I2\nttRp348\nsS'Y:VBus23 - CCORTE22'\np349\ng35\n(S'Variable_Type'\n(I2\nttRp350\nsS'Y:VBus18 - CCASAM21'\np351\ng35\n(S'Variable_Type'\n(I2\nttRp352\nsS'Y:VBus40 - CSTMAR21'\np353\ng35\n(S'Variable_Type'\n(I2\nttRp354\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np355\ng35\n(S'Variable_Type'\n(I2\nttRp356\nsS'Y:PMachine124 - CVAZZI35'\np357\ng35\n(S'Variable_Type'\n(I2\nttRp358\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np359\ng35\n(S'Variable_Type'\n(I2\nttRp360\nsS'Y:PMachine117 - CTOLLA32'\np361\ng35\n(S'Variable_Type'\n(I2\nttRp362\nsS'Y:Load 82 - CILERO31'\np363\ng35\n(S'Variable_Type'\n(I2\nttRp364\nsS'Y:VBus33 - COLETT21'\np365\ng35\n(S'Variable_Type'\n(I2\nttRp366\nsS'Y:VBus32 - COCANA21'\np367\ng35\n(S'Variable_Type'\n(I2\nttRp368\nsS'Y:PMachine121 - CVAZZI32'\np369\ng35\n(S'Variable_Type'\n(I2\nttRp370\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np371\ng35\n(S'Variable_Type'\n(I2\nttRp372\nsS'Y:VBus82 - CILERO31'\np373\ng35\n(S'Variable_Type'\n(I2\nttRp374\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np375\ng35\n(S'Variable_Type'\n(I2\nttRp376\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np377\ng35\n(S'Variable_Type'\n(I2\nttRp378\nsS'Y:VBus37 - CRIZZA21'\np379\ng35\n(S'Variable_Type'\n(I2\nttRp380\nsS'Y:PMachine73 - CCASTI32'\np381\ng35\n(S'Variable_Type'\n(I2\nttRp382\nsS'Y:PMachine86 - CLUCCI31'\np383\ng35\n(S'Variable_Type'\n(I2\nttRp384\nsS'Y:Load 53 - CBASTI31'\np385\ng35\n(S'Variable_Type'\n(I2\nttRp386\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np387\ng35\n(S'Variable_Type'\n(I2\nttRp388\nsS'Y:VBus21 - CCORSC21'\np389\ng35\n(S'Variable_Type'\n(I2\nttRp390\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np391\ng35\n(S'Variable_Type'\n(I2\nttRp392\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np393\ng35\n(S'Variable_Type'\n(I2\nttRp394\nsS'Y:PMachine63 - CCASAM31'\np395\ng35\n(S'Variable_Type'\n(I2\nttRp396\nsS'Y:VBus89 - CLUCCI34'\np397\ng35\n(S'Variable_Type'\n(I2\nttRp398\nsS'Y:PMachine64 - CCASAM32'\np399\ng35\n(S'Variable_Type'\n(I2\nttRp400\nsS'Y:VBus67 - CCASAM35'\np401\ng35\n(S'Variable_Type'\n(I2\nttRp402\nsS'Y:VBus53 - CBASTI31'\np403\ng35\n(S'Variable_Type'\n(I2\nttRp404\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np405\ng35\n(S'Variable_Type'\n(I2\nttRp406\nsS'Y:VBus61 - CCALVI31'\np407\ng35\n(S'Variable_Type'\n(I2\nttRp408\nsS'Y:VBus93 - COCANA32'\np409\ng35\n(S'Variable_Type'\n(I2\nttRp410\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np411\ng35\n(S'Variable_Type'\n(I2\nttRp412\nsS'Y:VBus104 - CPROPR31'\np413\ng35\n(S'Variable_Type'\n(I2\nttRp414\nsS'Y:VBus48 - CZSSS621'\np415\ng35\n(S'Variable_Type'\n(I2\nttRp416\nsS'Y:PMachine85 - CLORET32'\np417\ng35\n(S'Variable_Type'\n(I2\nttRp418\nsS'Y:Max%A'\np419\ng39\nsS'Y:VBus36 - CPROPR21'\np420\ng35\n(S'Variable_Type'\n(I2\nttRp421\nsS'Y:Load 100 - COLETT31'\np422\ng35\n(S'Variable_Type'\n(I2\nttRp423\nsS'Y:PMachine54 - CBASTI32'\np424\ng35\n(S'Variable_Type'\n(I2\nttRp425\nsS'Y:VBus138 - CLUCCI39'\np426\ng35\n(S'Variable_Type'\n(I2\nttRp427\nsS'Y:VBus39 - CSTLUC21'\np428\ng35\n(S'Variable_Type'\n(I2\nttRp429\nsS'Y:PMachine74 - CCERVI31'\np430\ng35\n(S'Variable_Type'\n(I2\nttRp431\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np432\ng35\n(S'Variable_Type'\n(I2\nttRp433\nsS'Y:Load 78 - CFURIA31'\np434\ng35\n(S'Variable_Type'\n(I2\nttRp435\nsS'Y:VBus28 - CLORET21'\np436\ng35\n(S'Variable_Type'\n(I2\nttRp437\nsS'Y:PMachine105 - CPROPR32'\np438\ng35\n(S'Variable_Type'\n(I2\nttRp439\nsS'Y:VBus96 - COCANA35'\np440\ng35\n(S'Variable_Type'\n(I2\nttRp441\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np442\ng35\n(S'Variable_Type'\n(I2\nttRp443\nsS'Y:PMachine18 - CCASAM21'\np444\ng35\n(S'Variable_Type'\n(I2\nttRp445\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np446\ng35\n(S'Variable_Type'\n(I2\nttRp447\nsS'Y:VBus13 - CBIGUG21'\np448\ng35\n(S'Variable_Type'\n(I2\nttRp449\nsS'Y:VBus59 - CCALDA31'\np450\ng35\n(S'Variable_Type'\n(I2\nttRp451\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np452\ng35\n(S'Variable_Type'\n(I2\nttRp453\nsS'Y:VBus58 - CBONIF32'\np454\ng35\n(S'Variable_Type'\n(I2\nttRp455\nsS'Y:VBus84 - CLORET31'\np456\ng35\n(S'Variable_Type'\n(I2\nttRp457\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np458\ng35\n(S'Variable_Type'\n(I2\nttRp459\nsS'Y:VBus97 - COCANA36'\np460\ng35\n(S'Variable_Type'\n(I2\nttRp461\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np462\ng35\n(S'Variable_Type'\n(I2\nttRp463\nsS'Y:VBus29 - CLUCCI21'\np464\ng35\n(S'Variable_Type'\n(I2\nttRp465\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np466\ng35\n(S'Variable_Type'\n(I2\nttRp467\nsS'Y:Load 110 - CSTLUC31'\np468\ng35\n(S'Variable_Type'\n(I2\nttRp469\nsS'Y:VBus80 - CGHISO31'\np470\ng35\n(S'Variable_Type'\n(I2\nttRp471\nsS'Y:PMachine114 - CSOVEN31'\np472\ng35\n(S'Variable_Type'\n(I2\nttRp473\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np474\ng35\n(S'Variable_Type'\n(I2\nttRp475\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np476\ng35\n(S'Variable_Type'\n(I2\nttRp477\nsS'Y:PMachine93 - COCANA32'\np478\ng35\n(S'Variable_Type'\n(I2\nttRp479\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np480\ng35\n(S'Variable_Type'\n(I2\nttRp481\nsS'Y:VBus87 - CLUCCI32'\np482\ng35\n(S'Variable_Type'\n(I2\nttRp483\nsS'Y:VBus62 - CCALVI32'\np484\ng35\n(S'Variable_Type'\n(I2\nttRp485\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np486\ng35\n(S'Variable_Type'\n(I2\nttRp487\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np488\ng35\n(S'Variable_Type'\n(I2\nttRp489\nsS'Y:VBus81 - CGHISO32'\np490\ng35\n(S'Variable_Type'\n(I2\nttRp491\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np492\ng35\n(S'Variable_Type'\n(I2\nttRp493\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np494\ng35\n(S'Variable_Type'\n(I2\nttRp495\nsS'Y:VBus86 - CLUCCI31'\np496\ng35\n(S'Variable_Type'\n(I2\nttRp497\nsS'X:Load(pu)'\np498\ng36\nsS'Y:NbeTension'\np499\ng35\n(S'Variable_Type'\n(I2\nttRp500\nsS'Y:VBus95 - COCANA34'\np501\ng35\n(S'Variable_Type'\n(I2\nttRp502\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np503\ng35\n(S'Variable_Type'\n(I2\nttRp504\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np505\ng35\n(S'Variable_Type'\n(I2\nttRp506\nsS'Y:Load 95 - COCANA34'\np507\ng35\n(S'Variable_Type'\n(I2\nttRp508\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np509\ng35\n(S'Variable_Type'\n(I2\nttRp510\nsS'Y:PMachine90 - CMOROS31'\np511\ng35\n(S'Variable_Type'\n(I2\nttRp512\nsS'Y:Load 101 - CPIETR31'\np513\ng35\n(S'Variable_Type'\n(I2\nttRp514\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np515\ng35\n(S'Variable_Type'\n(I2\nttRp516\nsS'Y:PMachine132 - CVAZZI313'\np517\ng35\n(S'Variable_Type'\n(I2\nttRp518\nsS'Y:VBus125 - CVAZZI36'\np519\ng35\n(S'Variable_Type'\n(I2\nttRp520\nsS'Y:VBus135 - CLUCCI36'\np521\ng35\n(S'Variable_Type'\n(I2\nttRp522\nsS'Y:VBus47 - CVAZZI21'\np523\ng35\n(S'Variable_Type'\n(I2\nttRp524\nsS'Y:VBus94 - COCANA33'\np525\ng35\n(S'Variable_Type'\n(I2\nttRp526\nsS'Y:VBus17 - CCALVI21'\np527\ng35\n(S'Variable_Type'\n(I2\nttRp528\nsS'Y:Load 90 - CMOROS31'\np529\ng35\n(S'Variable_Type'\n(I2\nttRp530\nsS'Y:VBus120 - CVAZZI31'\np531\ng35\n(S'Variable_Type'\n(I2\nttRp532\nsS'X:ProdPV%Pnom'\np533\ng35\n(S'Variable_Type'\n(I2\nttRp534\nsS'Y:VBus52 - CASPRE32'\np535\ng35\n(S'Variable_Type'\n(I2\nttRp536\nsS'Y:VBus25 - CFURIA22'\np537\ng35\n(S'Variable_Type'\n(I2\nttRp538\nsS'Y:Load 76 - CCORTE31'\np539\ng35\n(S'Variable_Type'\n(I2\nttRp540\nsS'Y:PMachine69 - CCASAM37'\np541\ng35\n(S'Variable_Type'\n(I2\nttRp542\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np543\ng35\n(S'Variable_Type'\n(I2\nttRp544\nsS'Y:PMachine92 - COCANA31'\np545\ng35\n(S'Variable_Type'\n(I2\nttRp546\nsS'Y:VBus35 - CPORTO21'\np547\ng35\n(S'Variable_Type'\n(I2\nttRp548\nsS'Y:PMachine122 - CVAZZI33'\np549\ng35\n(S'Variable_Type'\n(I2\nttRp550\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np551\ng35\n(S'Variable_Type'\n(I2\nttRp552\nsS'Y:PMachine77 - CCORTE32'\np553\ng35\n(S'Variable_Type'\n(I2\nttRp554\nsS'Y:VBus74 - CCERVI31'\np555\ng35\n(S'Variable_Type'\n(I2\nttRp556\nsS'Y:VBus126 - CVAZZI37'\np557\ng35\n(S'Variable_Type'\n(I2\nttRp558\nsS'Y:PMachine60 - CCALDA32'\np559\ng35\n(S'Variable_Type'\n(I2\nttRp560\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np561\ng35\n(S'Variable_Type'\n(I2\nttRp562\nsS'Y:VBus20 - CCERVI21'\np563\ng35\n(S'Variable_Type'\n(I2\nttRp564\nsS'Y:VBus119 - CTRAVO31'\np565\ng35\n(S'Variable_Type'\n(I2\nttRp566\nsS'Y:VBus11 - CASPRE21'\np567\ng35\n(S'Variable_Type'\n(I2\nttRp568\nsS'Y:VBus139 - CLUCCI310'\np569\ng35\n(S'Variable_Type'\n(I2\nttRp570\nsS'Y:VBus106 - CRIZZA31'\np571\ng35\n(S'Variable_Type'\n(I2\nttRp572\nsS'Y:PMachine66 - CCASAM34'\np573\ng35\n(S'Variable_Type'\n(I2\nttRp574\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np575\ng35\n(S'Variable_Type'\n(I2\nttRp576\nsS'Y:PMachine133 - CVAZZI314'\np577\ng35\n(S'Variable_Type'\n(I2\nttRp578\nsS'Y:VBus90 - CMOROS31'\np579\ng35\n(S'Variable_Type'\n(I2\nttRp580\nsS'Y:Load 74 - CCERVI31'\np581\ng35\n(S'Variable_Type'\n(I2\nttRp582\nsS'X:lineOff#'\np583\ng44\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np584\ng35\n(S'Variable_Type'\n(I2\nttRp585\nsS'Y:VBus136 - CLUCCI37'\np586\ng35\n(S'Variable_Type'\n(I2\nttRp587\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np588\ng35\n(S'Variable_Type'\n(I2\nttRp589\nsS'Y:VBus137 - CLUCCI38'\np590\ng35\n(S'Variable_Type'\n(I2\nttRp591\nsS'Y:VBus130 - CVAZZI311'\np592\ng35\n(S'Variable_Type'\n(I2\nttRp593\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np594\ng35\n(S'Variable_Type'\n(I2\nttRp595\nsS'Y:VBus46 - CTRAVO21'\np596\ng35\n(S'Variable_Type'\n(I2\nttRp597\nsS'Y:VBus113 - CSAMPO32'\np598\ng35\n(S'Variable_Type'\n(I2\nttRp599\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np600\ng35\n(S'Variable_Type'\n(I2\nttRp601\nsS'Y:PMachine65 - CCASAM33'\np602\ng35\n(S'Variable_Type'\n(I2\nttRp603\nsS'Y:VBus78 - CFURIA31'\np604\ng35\n(S'Variable_Type'\n(I2\nttRp605\nsS'Y:VBus26 - CGHISO21'\np606\ng35\n(S'Variable_Type'\n(I2\nttRp607\nsS'Y:VBus121 - CVAZZI32'\np608\ng35\n(S'Variable_Type'\n(I2\nttRp609\nsS'Y:PMachine97 - COCANA36'\np610\ng35\n(S'Variable_Type'\n(I2\nttRp611\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np612\ng35\n(S'Variable_Type'\n(I2\nttRp613\nsS'Y:PMachine83 - CILERO32'\np614\ng35\n(S'Variable_Type'\n(I2\nttRp615\nsS'Y:VBus83 - CILERO32'\np616\ng35\n(S'Variable_Type'\n(I2\nttRp617\nsS'Y:VBus66 - CCASAM34'\np618\ng35\n(S'Variable_Type'\n(I2\nttRp619\nsS'Y:PMachine1 - CBONIF11'\np620\ng35\n(S'Variable_Type'\n(I2\nttRp621\nsS'Y:VBus111 - CSTMAR31'\np622\ng35\n(S'Variable_Type'\n(I2\nttRp623\nsS'Y:VBus124 - CVAZZI35'\np624\ng35\n(S'Variable_Type'\n(I2\nttRp625\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np626\ng35\n(S'Variable_Type'\n(I2\nttRp627\nsS'Y:PMachine131 - CVAZZI312'\np628\ng35\n(S'Variable_Type'\n(I2\nttRp629\nsS'Y:VBus44 - CTAGLI21'\np630\ng35\n(S'Variable_Type'\n(I2\nttRp631\nsS'Y:VBus110 - CSTLUC31'\np632\ng35\n(S'Variable_Type'\n(I2\nttRp633\nsS'Y:VBus88 - CLUCCI33'\np634\ng35\n(S'Variable_Type'\n(I2\nttRp635\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np636\ng35\n(S'Variable_Type'\n(I2\nttRp637\nsS'Y:VBus38 - CSAGON21'\np638\ng35\n(S'Variable_Type'\n(I2\nttRp639\nsS'Y:PMachine81 - CGHISO32'\np640\ng35\n(S'Variable_Type'\n(I2\nttRp641\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np642\ng35\n(S'Variable_Type'\n(I2\nttRp643\nsS'Y:PMachine137 - CLUCCI38'\np644\ng35\n(S'Variable_Type'\n(I2\nttRp645\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np646\ng35\n(S'Variable_Type'\n(I2\nttRp647\nssS'noCopy'\np648\n(lp649\nS'orderedDomain'\np650\nasba(iOWContexts\nContext\np651\n(dp652\ng24\n(lp653\nsg26\n(dp654\nS'Iteration'\np655\ng35\n(S'Variable_Type'\n(I6\nttRp656\nssg28\n(dp657\nS'attrLabel'\np658\n(S''\nI-1\ntp659\nsS'attrShape'\np660\n(S''\nI0\ntp661\nsS'attrX'\np662\n(S'X:Load(pu)'\np663\ng35\n(S'Variable_Type'\n(I2\nttRp664\ntp665\nsS'attrY'\np666\n(S'Y:PMachine30 - CLUCCI22'\ng35\n(S'Variable_Type'\n(I2\nttRp667\ntp668\nsS'attrSize'\np669\n(S'X:ProdPV%Pnom'\np670\ng35\n(S'Variable_Type'\n(I2\nttRp671\ntp672\nsS'attrColor'\np673\n(S''\nI0\ntp674\nssg46\nF1369744625.5610001\nsg47\n(dp675\nS'Y:PMachine134 - CLUCCI35'\np676\ng35\n(S'Variable_Type'\n(I2\nttRp677\nsS'Y:VBus77 - CCORTE32'\np678\ng35\n(S'Variable_Type'\n(I2\nttRp679\nsS'Y:VBus134 - CLUCCI35'\np680\ng35\n(S'Variable_Type'\n(I2\nttRp681\nsS'Y:VBus109 - CSAGON32'\np682\ng35\n(S'Variable_Type'\n(I2\nttRp683\nsS'Y:VBus102 - CPORTO31'\np684\ng35\n(S'Variable_Type'\n(I2\nttRp685\nsS'Y:VBus18 - CCASAM21'\np686\ng35\n(S'Variable_Type'\n(I2\nttRp687\nsS'Y:VBus114 - CSOVEN31'\np688\ng35\n(S'Variable_Type'\n(I2\nttRp689\nsS'Y:VBus83 - CILERO32'\np690\ng35\n(S'Variable_Type'\n(I2\nttRp691\nsS'Y:VBus117 - CTOLLA32'\np692\ng35\n(S'Variable_Type'\n(I2\nttRp693\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np694\ng35\n(S'Variable_Type'\n(I2\nttRp695\nsS'Y:PMachine87 - CLUCCI32'\np696\ng35\n(S'Variable_Type'\n(I2\nttRp697\nsS'Y:PMachine113 - CSAMPO32'\np698\ng35\n(S'Variable_Type'\n(I2\nttRp699\nsS'Y:Load 84 - CLORET31'\np700\ng35\n(S'Variable_Type'\n(I2\nttRp701\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np702\ng35\n(S'Variable_Type'\n(I2\nttRp703\nsS'Y:Load 80 - CGHISO31'\np704\ng35\n(S'Variable_Type'\n(I2\nttRp705\nsS'Y:PMachine125 - CVAZZI36'\np706\ng35\n(S'Variable_Type'\n(I2\nttRp707\nsS'Y:VBus116 - CTOLLA31'\np708\ng35\n(S'Variable_Type'\n(I2\nttRp709\nsS'Y:PMachine88 - CLUCCI33'\np710\ng35\n(S'Variable_Type'\n(I2\nttRp711\nsS'Y:PMachine124 - CVAZZI35'\np712\ng35\n(S'Variable_Type'\n(I2\nttRp713\nsS'Y:PMachine111 - CSTMAR31'\np714\ng35\n(S'Variable_Type'\n(I2\nttRp715\nsS'Y:NbeTransit'\np716\ng35\n(S'Variable_Type'\n(I2\nttRp717\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np718\ng35\n(S'Variable_Type'\n(I2\nttRp719\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np720\ng35\n(S'Variable_Type'\n(I2\nttRp721\nsS'Y:PMachine130 - CVAZZI311'\np722\ng35\n(S'Variable_Type'\n(I2\nttRp723\nsS'Y:PMachine127 - CVAZZI38'\np724\ng35\n(S'Variable_Type'\n(I2\nttRp725\nsS'Y:VBus131 - CVAZZI312'\np726\ng35\n(S'Variable_Type'\n(I2\nttRp727\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np728\ng35\n(S'Variable_Type'\n(I2\nttRp729\nsS'Y:PMachine123 - CVAZZI34'\np730\ng35\n(S'Variable_Type'\n(I2\nttRp731\nsS'Y:VBus118 - CTOLLA33'\np732\ng35\n(S'Variable_Type'\n(I2\nttRp733\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np734\ng35\n(S'Variable_Type'\n(I2\nttRp735\nsS'Y:PMachine58 - CBONIF32'\np736\ng35\n(S'Variable_Type'\n(I2\nttRp737\nsS'Y:VBus90 - CMOROS31'\np738\ng35\n(S'Variable_Type'\n(I2\nttRp739\nsS'Y:Load 104 - CPROPR31'\np740\ng35\n(S'Variable_Type'\n(I2\nttRp741\nsS'Y:PMachine30 - CLUCCI22'\np742\ng667\nsS'Y:VBus100 - COLETT31'\np743\ng35\n(S'Variable_Type'\n(I2\nttRp744\nsS'Y:PProdTot'\np745\ng35\n(S'Variable_Type'\n(I2\nttRp746\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np747\ng35\n(S'Variable_Type'\n(I2\nttRp748\nsS'Y:VBus57 - CBONIF31'\np749\ng35\n(S'Variable_Type'\n(I2\nttRp750\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np751\ng35\n(S'Variable_Type'\n(I2\nttRp752\nsS'Y:PMachine131 - CVAZZI312'\np753\ng35\n(S'Variable_Type'\n(I2\nttRp754\nsS'Y:PMachine109 - CSAGON32'\np755\ng35\n(S'Variable_Type'\n(I2\nttRp756\nsS'Y:PMachine135 - CLUCCI36'\np757\ng35\n(S'Variable_Type'\n(I2\nttRp758\nsS'Y:VBus30 - CLUCCI22'\np759\ng35\n(S'Variable_Type'\n(I2\nttRp760\nsS'Y:VBus122 - CVAZZI33'\np761\ng35\n(S'Variable_Type'\n(I2\nttRp762\nsS'Y:VBus22 - CCORTE21'\np763\ng35\n(S'Variable_Type'\n(I2\nttRp764\nsS'Y:PMachine89 - CLUCCI34'\np765\ng35\n(S'Variable_Type'\n(I2\nttRp766\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np767\ng35\n(S'Variable_Type'\n(I2\nttRp768\nsS'Y:PMachine107 - CRIZZA32'\np769\ng35\n(S'Variable_Type'\n(I2\nttRp770\nsS'Y:VBus16 - CCALDA21'\np771\ng35\n(S'Variable_Type'\n(I2\nttRp772\nsS'Y:Load 102 - CPORTO31'\np773\ng35\n(S'Variable_Type'\n(I2\nttRp774\nsS'Y:VBus107 - CRIZZA32'\np775\ng35\n(S'Variable_Type'\n(I2\nttRp776\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np777\ng35\n(S'Variable_Type'\n(I2\nttRp778\nsS'Y:VBus41 - CSAMPO21'\np779\ng35\n(S'Variable_Type'\n(I2\nttRp780\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np781\ng35\n(S'Variable_Type'\n(I2\nttRp782\nsS'Y:VBus34 - CPIETR21'\np783\ng35\n(S'Variable_Type'\n(I2\nttRp784\nsS'Y:Load 108 - CSAGON31'\np785\ng35\n(S'Variable_Type'\n(I2\nttRp786\nsS'Y:VBus56 - CBIGUG32'\np787\ng35\n(S'Variable_Type'\n(I2\nttRp788\nsS'Y:PMachine42 - CSISCO21'\np789\ng35\n(S'Variable_Type'\n(I2\nttRp790\nsS'Y:PMachine138 - CLUCCI39'\np791\ng35\n(S'Variable_Type'\n(I2\nttRp792\nsS'Y:PMachine112 - CSAMPO31'\np793\ng35\n(S'Variable_Type'\n(I2\nttRp794\nsS'Y:VBus105 - CPROPR32'\np795\ng35\n(S'Variable_Type'\n(I2\nttRp796\nsS'Y:VBus1 - CBONIF11'\np797\ng35\n(S'Variable_Type'\n(I2\nttRp798\nsS'Y:VBus12 - CBASTI21'\np799\ng35\n(S'Variable_Type'\n(I2\nttRp800\nsS'Y:PMachine129 - CVAZZI310'\np801\ng35\n(S'Variable_Type'\n(I2\nttRp802\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np803\ng35\n(S'Variable_Type'\n(I2\nttRp804\nsS'Y:VBus35 - CPORTO21'\np805\ng35\n(S'Variable_Type'\n(I2\nttRp806\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np807\ng35\n(S'Variable_Type'\n(I2\nttRp808\nsS'Y:VBus54 - CBASTI32'\np809\ng35\n(S'Variable_Type'\n(I2\nttRp810\nsS'Y:VBus69 - CCASAM37'\np811\ng35\n(S'Variable_Type'\n(I2\nttRp812\nsS'Y:VBus45 - CTOLLA21'\np813\ng35\n(S'Variable_Type'\n(I2\nttRp814\nsS'Y:PMachine115 - CTAGLI31'\np815\ng35\n(S'Variable_Type'\n(I2\nttRp816\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np817\ng35\n(S'Variable_Type'\n(I2\nttRp818\nsS'Y:VBus43 - CSOVEN21'\np819\ng35\n(S'Variable_Type'\n(I2\nttRp820\nsS'Y:VBus76 - CCORTE31'\np821\ng35\n(S'Variable_Type'\n(I2\nttRp822\nsS'Y:VBus75 - CCORSC31'\np823\ng35\n(S'Variable_Type'\n(I2\nttRp824\nsS'Y:PMachine78 - CFURIA31'\np825\ng35\n(S'Variable_Type'\n(I2\nttRp826\nsS'Y:VBus127 - CVAZZI38'\np827\ng35\n(S'Variable_Type'\n(I2\nttRp828\nsS'Y:VBus115 - CTAGLI31'\np829\ng35\n(S'Variable_Type'\n(I2\nttRp830\nsS'Y:Load 61 - CCALVI31'\np831\ng35\n(S'Variable_Type'\n(I2\nttRp832\nsS'Y:VBus55 - CBIGUG31'\np833\ng35\n(S'Variable_Type'\n(I2\nttRp834\nsS'Y:Load 42 - CSISCO21'\np835\ng35\n(S'Variable_Type'\n(I2\nttRp836\nsS'Y:VBus72 - CCASTI31'\np837\ng35\n(S'Variable_Type'\n(I2\nttRp838\nsS'Y:Load 37 - CRIZZA21'\np839\ng35\n(S'Variable_Type'\n(I2\nttRp840\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np841\ng35\n(S'Variable_Type'\n(I2\nttRp842\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np843\ng35\n(S'Variable_Type'\n(I2\nttRp844\nsS'Y:PMachine137 - CLUCCI38'\np845\ng35\n(S'Variable_Type'\n(I2\nttRp846\nsS'Y:PMachine67 - CCASAM35'\np847\ng35\n(S'Variable_Type'\n(I2\nttRp848\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np849\ng35\n(S'Variable_Type'\n(I2\nttRp850\nsS'Y:VBus31 - CMOROS21'\np851\ng35\n(S'Variable_Type'\n(I2\nttRp852\nsS'Y:VBus103 - CPORTO32'\np853\ng35\n(S'Variable_Type'\n(I2\nttRp854\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np855\ng35\n(S'Variable_Type'\n(I2\nttRp856\nsS'Y:PMachine14 - CBONIF21'\np857\ng35\n(S'Variable_Type'\n(I2\nttRp858\nsS'Y:PMachine72 - CCASTI31'\np859\ng35\n(S'Variable_Type'\n(I2\nttRp860\nsS'Y:VBus27 - CILERO21'\np861\ng35\n(S'Variable_Type'\n(I2\nttRp862\nsS'Y:PMachine75 - CCORSC31'\np863\ng35\n(S'Variable_Type'\n(I2\nttRp864\nsS'Y:Load 51 - CASPRE31'\np865\ng35\n(S'Variable_Type'\n(I2\nttRp866\nsS'Y:VBus51 - CASPRE31'\np867\ng35\n(S'Variable_Type'\n(I2\nttRp868\nsS'Y:PMachine94 - COCANA33'\np869\ng35\n(S'Variable_Type'\n(I2\nttRp870\nsS'Y:PMachine126 - CVAZZI37'\np871\ng35\n(S'Variable_Type'\n(I2\nttRp872\nsS'Y:Load 86 - CLUCCI31'\np873\ng35\n(S'Variable_Type'\n(I2\nttRp874\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np875\ng35\n(S'Variable_Type'\n(I2\nttRp876\nsS'Y:PMachine104 - CPROPR31'\np877\ng35\n(S'Variable_Type'\n(I2\nttRp878\nsS'Y:VBus128 - CVAZZI39'\np879\ng35\n(S'Variable_Type'\n(I2\nttRp880\nsS'Y:PMachine136 - CLUCCI37'\np881\ng35\n(S'Variable_Type'\n(I2\nttRp882\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np883\ng35\n(S'Variable_Type'\n(I2\nttRp884\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np885\ng35\n(S'Variable_Type'\n(I2\nttRp886\nsS'Y:PMachine29 - CLUCCI21'\np887\ng35\n(S'Variable_Type'\n(I2\nttRp888\nsS'Y:VBus42 - CSISCO21'\np889\ng35\n(S'Variable_Type'\n(I2\nttRp890\nsS'Y:Load 110 - CSTLUC31'\np891\ng35\n(S'Variable_Type'\n(I2\nttRp892\nsS'Y:VBus14 - CBONIF21'\np893\ng35\n(S'Variable_Type'\n(I2\nttRp894\nsS'Y:VBus73 - CCASTI32'\np895\ng35\n(S'Variable_Type'\n(I2\nttRp896\nsS'Y:VBus64 - CCASAM32'\np897\ng35\n(S'Variable_Type'\n(I2\nttRp898\nsS'Y:PMachine128 - CVAZZI39'\np899\ng35\n(S'Variable_Type'\n(I2\nttRp900\nsS'Y:VBus133 - CVAZZI314'\np901\ng35\n(S'Variable_Type'\n(I2\nttRp902\nsS'Y:VBus63 - CCASAM31'\np903\ng35\n(S'Variable_Type'\n(I2\nttRp904\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np905\ng35\n(S'Variable_Type'\n(I2\nttRp906\nsS'Y:%Losses'\np907\ng35\n(S'Variable_Type'\n(I2\nttRp908\nsS'Y:VBus85 - CLORET32'\np909\ng35\n(S'Variable_Type'\n(I2\nttRp910\nsS'Y:Load 59 - CCALDA31'\np911\ng35\n(S'Variable_Type'\n(I2\nttRp912\nsS'Y:VBus129 - CVAZZI310'\np913\ng35\n(S'Variable_Type'\n(I2\nttRp914\nsS'Y:VBus101 - CPIETR31'\np915\ng35\n(S'Variable_Type'\n(I2\nttRp916\nsS'Y:PMachine106 - CRIZZA31'\np917\ng35\n(S'Variable_Type'\n(I2\nttRp918\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np919\ng35\n(S'Variable_Type'\n(I2\nttRp920\nsS'Y:PMachine118 - CTOLLA33'\np921\ng35\n(S'Variable_Type'\n(I2\nttRp922\nsS'Y:VBus19 - CCASTI21'\np923\ng35\n(S'Variable_Type'\n(I2\nttRp924\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np925\ng35\n(S'Variable_Type'\n(I2\nttRp926\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np927\ng35\n(S'Variable_Type'\n(I2\nttRp928\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np929\ng35\n(S'Variable_Type'\n(I2\nttRp930\nsS'Y:Load 115 - CTAGLI31'\np931\ng35\n(S'Variable_Type'\n(I2\nttRp932\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np933\ng35\n(S'Variable_Type'\n(I2\nttRp934\nsS'Y:VBus15 - CBONIF22'\np935\ng35\n(S'Variable_Type'\n(I2\nttRp936\nsS'Y:PMachine47 - CVAZZI21'\np937\ng35\n(S'Variable_Type'\n(I2\nttRp938\nsS'Y:VBus123 - CVAZZI34'\np939\ng35\n(S'Variable_Type'\n(I2\nttRp940\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np941\ng35\n(S'Variable_Type'\n(I2\nttRp942\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np943\ng35\n(S'Variable_Type'\n(I2\nttRp944\nsS'Y:VBus44 - CTAGLI21'\np945\ng35\n(S'Variable_Type'\n(I2\nttRp946\nsS'Y:VBus65 - CCASAM33'\np947\ng35\n(S'Variable_Type'\n(I2\nttRp948\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np949\ng35\n(S'Variable_Type'\n(I2\nttRp950\nsS'Y:PMachine139 - CLUCCI310'\np951\ng35\n(S'Variable_Type'\n(I2\nttRp952\nsS'Y:VBus112 - CSAMPO31'\np953\ng35\n(S'Variable_Type'\n(I2\nttRp954\nsS'Y:VBus68 - CCASAM36'\np955\ng35\n(S'Variable_Type'\n(I2\nttRp956\nsS'Y:Load 55 - CBIGUG31'\np957\ng35\n(S'Variable_Type'\n(I2\nttRp958\nsS'Y:PMachine53 - CBASTI31'\np959\ng35\n(S'Variable_Type'\n(I2\nttRp960\nsS'Y:NbeTransit_0.9-1'\np961\ng35\n(S'Variable_Type'\n(I2\nttRp962\nsS'Y:VBus24 - CFURIA21'\np963\ng35\n(S'Variable_Type'\n(I2\nttRp964\nsS'Y:VBus23 - CCORTE22'\np965\ng35\n(S'Variable_Type'\n(I2\nttRp966\nsS'XProdEolienne%Pnom'\np967\ng35\n(S'Variable_Type'\n(I2\nttRp968\nsS'Y:VBus40 - CSTMAR21'\np969\ng35\n(S'Variable_Type'\n(I2\nttRp970\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np971\ng35\n(S'Variable_Type'\n(I2\nttRp972\nsS'Y:PMachine120 - CVAZZI31'\np973\ng35\n(S'Variable_Type'\n(I2\nttRp974\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np975\ng35\n(S'Variable_Type'\n(I2\nttRp976\nsS'Y:PMachine117 - CTOLLA32'\np977\ng35\n(S'Variable_Type'\n(I2\nttRp978\nsS'Y:VBus89 - CLUCCI34'\np979\ng35\n(S'Variable_Type'\n(I2\nttRp980\nsS'Y:VBus33 - COLETT21'\np981\ng35\n(S'Variable_Type'\n(I2\nttRp982\nsS'Y:VBus32 - COCANA21'\np983\ng35\n(S'Variable_Type'\n(I2\nttRp984\nsS'Y:PMachine121 - CVAZZI32'\np985\ng35\n(S'Variable_Type'\n(I2\nttRp986\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np987\ng35\n(S'Variable_Type'\n(I2\nttRp988\nsS'Y:VBus59 - CCALDA31'\np989\ng35\n(S'Variable_Type'\n(I2\nttRp990\nsS'Y:VBus82 - CILERO31'\np991\ng35\n(S'Variable_Type'\n(I2\nttRp992\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np993\ng35\n(S'Variable_Type'\n(I2\nttRp994\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np995\ng35\n(S'Variable_Type'\n(I2\nttRp996\nsS'Y:VBus37 - CRIZZA21'\np997\ng35\n(S'Variable_Type'\n(I2\nttRp998\nsS'Y:PMachine73 - CCASTI32'\np999\ng35\n(S'Variable_Type'\n(I2\nttRp1000\nsS'Y:PMachine86 - CLUCCI31'\np1001\ng35\n(S'Variable_Type'\n(I2\nttRp1002\nsS'Y:Load 53 - CBASTI31'\np1003\ng35\n(S'Variable_Type'\n(I2\nttRp1004\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np1005\ng35\n(S'Variable_Type'\n(I2\nttRp1006\nsS'Y:VBus21 - CCORSC21'\np1007\ng35\n(S'Variable_Type'\n(I2\nttRp1008\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np1009\ng35\n(S'Variable_Type'\n(I2\nttRp1010\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np1011\ng35\n(S'Variable_Type'\n(I2\nttRp1012\nsS'Y:Load 82 - CILERO31'\np1013\ng35\n(S'Variable_Type'\n(I2\nttRp1014\nsS'Y:PMachine64 - CCASAM32'\np1015\ng35\n(S'Variable_Type'\n(I2\nttRp1016\nsS'Y:VBus67 - CCASAM35'\np1017\ng35\n(S'Variable_Type'\n(I2\nttRp1018\nsS'Y:VBus53 - CBASTI31'\np1019\ng35\n(S'Variable_Type'\n(I2\nttRp1020\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np1021\ng35\n(S'Variable_Type'\n(I2\nttRp1022\nsS'Y:VBus61 - CCALVI31'\np1023\ng35\n(S'Variable_Type'\n(I2\nttRp1024\nsS'Y:VBus93 - COCANA32'\np1025\ng35\n(S'Variable_Type'\n(I2\nttRp1026\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np1027\ng35\n(S'Variable_Type'\n(I2\nttRp1028\nsS'Y:PMachine92 - COCANA31'\np1029\ng35\n(S'Variable_Type'\n(I2\nttRp1030\nsS'Y:VBus104 - CPROPR31'\np1031\ng35\n(S'Variable_Type'\n(I2\nttRp1032\nsS'Y:VBus48 - CZSSS621'\np1033\ng35\n(S'Variable_Type'\n(I2\nttRp1034\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np1035\ng35\n(S'Variable_Type'\n(I2\nttRp1036\nsS'Y:VBus74 - CCERVI31'\np1037\ng35\n(S'Variable_Type'\n(I2\nttRp1038\nsS'Y:VBus36 - CPROPR21'\np1039\ng35\n(S'Variable_Type'\n(I2\nttRp1040\nsS'Y:Load 100 - COLETT31'\np1041\ng35\n(S'Variable_Type'\n(I2\nttRp1042\nsS'Y:PMachine54 - CBASTI32'\np1043\ng35\n(S'Variable_Type'\n(I2\nttRp1044\nsS'Y:VBus138 - CLUCCI39'\np1045\ng35\n(S'Variable_Type'\n(I2\nttRp1046\nsS'Y:VBus39 - CSTLUC21'\np1047\ng35\n(S'Variable_Type'\n(I2\nttRp1048\nsS'Y:PMachine74 - CCERVI31'\np1049\ng35\n(S'Variable_Type'\n(I2\nttRp1050\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np1051\ng35\n(S'Variable_Type'\n(I2\nttRp1052\nsS'Y:Load 78 - CFURIA31'\np1053\ng35\n(S'Variable_Type'\n(I2\nttRp1054\nsS'Y:VBus28 - CLORET21'\np1055\ng35\n(S'Variable_Type'\n(I2\nttRp1056\nsS'Y:PMachine105 - CPROPR32'\np1057\ng35\n(S'Variable_Type'\n(I2\nttRp1058\nsS'Y:VBus96 - COCANA35'\np1059\ng35\n(S'Variable_Type'\n(I2\nttRp1060\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np1061\ng35\n(S'Variable_Type'\n(I2\nttRp1062\nsS'Y:PMachine18 - CCASAM21'\np1063\ng35\n(S'Variable_Type'\n(I2\nttRp1064\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np1065\ng35\n(S'Variable_Type'\n(I2\nttRp1066\nsS'Y:VBus13 - CBIGUG21'\np1067\ng35\n(S'Variable_Type'\n(I2\nttRp1068\nsS'Y:VBus92 - COCANA31'\np1069\ng35\n(S'Variable_Type'\n(I2\nttRp1070\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np1071\ng35\n(S'Variable_Type'\n(I2\nttRp1072\nsS'Y:Load 76 - CCORTE31'\np1073\ng35\n(S'Variable_Type'\n(I2\nttRp1074\nsS'Y:VBus58 - CBONIF32'\np1075\ng35\n(S'Variable_Type'\n(I2\nttRp1076\nsS'Y:VBus84 - CLORET31'\np1077\ng35\n(S'Variable_Type'\n(I2\nttRp1078\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np1079\ng35\n(S'Variable_Type'\n(I2\nttRp1080\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np1081\ng35\n(S'Variable_Type'\n(I2\nttRp1082\nsS'Y:VBus97 - COCANA36'\np1083\ng35\n(S'Variable_Type'\n(I2\nttRp1084\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np1085\ng35\n(S'Variable_Type'\n(I2\nttRp1086\nsS'Y:VBus106 - CRIZZA31'\np1087\ng35\n(S'Variable_Type'\n(I2\nttRp1088\nsS'Y:VBus79 - CFURIA32'\np1089\ng35\n(S'Variable_Type'\n(I2\nttRp1090\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np1091\ng35\n(S'Variable_Type'\n(I2\nttRp1092\nsS'Y:VBus80 - CGHISO31'\np1093\ng35\n(S'Variable_Type'\n(I2\nttRp1094\nsS'Y:PMachine114 - CSOVEN31'\np1095\ng35\n(S'Variable_Type'\n(I2\nttRp1096\nsS'Y:VBus132 - CVAZZI313'\np1097\ng35\n(S'Variable_Type'\n(I2\nttRp1098\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np1099\ng35\n(S'Variable_Type'\n(I2\nttRp1100\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np1101\ng35\n(S'Variable_Type'\n(I2\nttRp1102\nsS'Y:VBus87 - CLUCCI32'\np1103\ng35\n(S'Variable_Type'\n(I2\nttRp1104\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np1105\ng35\n(S'Variable_Type'\n(I2\nttRp1106\nsS'Y:VBus88 - CLUCCI33'\np1107\ng35\n(S'Variable_Type'\n(I2\nttRp1108\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np1109\ng35\n(S'Variable_Type'\n(I2\nttRp1110\nsS'Y:PMachine85 - CLORET32'\np1111\ng35\n(S'Variable_Type'\n(I2\nttRp1112\nsS'Y:VBus81 - CGHISO32'\np1113\ng35\n(S'Variable_Type'\n(I2\nttRp1114\nsS'Y:PMachine63 - CCASAM31'\np1115\ng35\n(S'Variable_Type'\n(I2\nttRp1116\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np1117\ng35\n(S'Variable_Type'\n(I2\nttRp1118\nsS'X:Load(pu)'\np1119\ng664\nsS'Y:NbeTension'\np1120\ng35\n(S'Variable_Type'\n(I2\nttRp1121\nsS'Y:VBus95 - COCANA34'\np1122\ng35\n(S'Variable_Type'\n(I2\nttRp1123\nsS'Y:VBus62 - CCALVI32'\np1124\ng35\n(S'Variable_Type'\n(I2\nttRp1125\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np1126\ng35\n(S'Variable_Type'\n(I2\nttRp1127\nsS'Y:Load 95 - COCANA34'\np1128\ng35\n(S'Variable_Type'\n(I2\nttRp1129\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np1130\ng35\n(S'Variable_Type'\n(I2\nttRp1131\nsS'Y:PMachine90 - CMOROS31'\np1132\ng35\n(S'Variable_Type'\n(I2\nttRp1133\nsS'Y:Load 101 - CPIETR31'\np1134\ng35\n(S'Variable_Type'\n(I2\nttRp1135\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np1136\ng35\n(S'Variable_Type'\n(I2\nttRp1137\nsS'Y:PMachine132 - CVAZZI313'\np1138\ng35\n(S'Variable_Type'\n(I2\nttRp1139\nsS'Y:PMachine65 - CCASAM33'\np1140\ng35\n(S'Variable_Type'\n(I2\nttRp1141\nsS'Y:VBus125 - CVAZZI36'\np1142\ng35\n(S'Variable_Type'\n(I2\nttRp1143\nsS'Y:VBus135 - CLUCCI36'\np1144\ng35\n(S'Variable_Type'\n(I2\nttRp1145\nsS'Y:VBus47 - CVAZZI21'\np1146\ng35\n(S'Variable_Type'\n(I2\nttRp1147\nsS'Y:VBus94 - COCANA33'\np1148\ng35\n(S'Variable_Type'\n(I2\nttRp1149\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np1150\ng35\n(S'Variable_Type'\n(I2\nttRp1151\nsS'Y:VBus17 - CCALVI21'\np1152\ng35\n(S'Variable_Type'\n(I2\nttRp1153\nsS'Y:Load 90 - CMOROS31'\np1154\ng35\n(S'Variable_Type'\n(I2\nttRp1155\nsS'Y:VBus120 - CVAZZI31'\np1156\ng35\n(S'Variable_Type'\n(I2\nttRp1157\nsS'Y:VBus52 - CASPRE32'\np1158\ng35\n(S'Variable_Type'\n(I2\nttRp1159\nsS'Y:VBus25 - CFURIA22'\np1160\ng35\n(S'Variable_Type'\n(I2\nttRp1161\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np1162\ng35\n(S'Variable_Type'\n(I2\nttRp1163\nsS'Y:PMachine69 - CCASAM37'\np1164\ng35\n(S'Variable_Type'\n(I2\nttRp1165\nsS'Y:PConsoTot'\np1166\ng35\n(S'Variable_Type'\n(I2\nttRp1167\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np1168\ng35\n(S'Variable_Type'\n(I2\nttRp1169\nsS'Y:PMachine102 - CPORTO31'\np1170\ng35\n(S'Variable_Type'\n(I2\nttRp1171\nsS'Y:VBus136 - CLUCCI37'\np1172\ng35\n(S'Variable_Type'\n(I2\nttRp1173\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np1174\ng35\n(S'Variable_Type'\n(I2\nttRp1175\nsS'Y:PMachine122 - CVAZZI33'\np1176\ng35\n(S'Variable_Type'\n(I2\nttRp1177\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np1178\ng35\n(S'Variable_Type'\n(I2\nttRp1179\nsS'Y:PMachine77 - CCORTE32'\np1180\ng35\n(S'Variable_Type'\n(I2\nttRp1181\nsS'Y:PMachine116 - CTOLLA31'\np1182\ng35\n(S'Variable_Type'\n(I2\nttRp1183\nsS'Y:VBus126 - CVAZZI37'\np1184\ng35\n(S'Variable_Type'\n(I2\nttRp1185\nsS'Y:PMachine60 - CCALDA32'\np1186\ng35\n(S'Variable_Type'\n(I2\nttRp1187\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np1188\ng35\n(S'Variable_Type'\n(I2\nttRp1189\nsS'Y:VBus20 - CCERVI21'\np1190\ng35\n(S'Variable_Type'\n(I2\nttRp1191\nsS'Y:VBus119 - CTRAVO31'\np1192\ng35\n(S'Variable_Type'\n(I2\nttRp1193\nsS'Y:VBus11 - CASPRE21'\np1194\ng35\n(S'Variable_Type'\n(I2\nttRp1195\nsS'Y:VBus139 - CLUCCI310'\np1196\ng35\n(S'Variable_Type'\n(I2\nttRp1197\nsS'Y:VBus60 - CCALDA32'\np1198\ng35\n(S'Variable_Type'\n(I2\nttRp1199\nsS'Y:PMachine66 - CCASAM34'\np1200\ng35\n(S'Variable_Type'\n(I2\nttRp1201\nsS'Y:PMachine101 - CPIETR31'\np1202\ng35\n(S'Variable_Type'\n(I2\nttRp1203\nsS'Y:PMachine133 - CVAZZI314'\np1204\ng35\n(S'Variable_Type'\n(I2\nttRp1205\nsS'Y:PMachine62 - CCALVI32'\np1206\ng35\n(S'Variable_Type'\n(I2\nttRp1207\nsS'Y:Load 74 - CCERVI31'\np1208\ng35\n(S'Variable_Type'\n(I2\nttRp1209\nsS'X:lineOff#'\np1210\ng35\n(S'Variable_Type'\n(I2\nttRp1211\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np1212\ng35\n(S'Variable_Type'\n(I2\nttRp1213\nsS'Y:VBus108 - CSAGON31'\np1214\ng35\n(S'Variable_Type'\n(I2\nttRp1215\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np1216\ng35\n(S'Variable_Type'\n(I2\nttRp1217\nsS'Y:VBus137 - CLUCCI38'\np1218\ng35\n(S'Variable_Type'\n(I2\nttRp1219\nsS'Y:VBus130 - CVAZZI311'\np1220\ng35\n(S'Variable_Type'\n(I2\nttRp1221\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np1222\ng35\n(S'Variable_Type'\n(I2\nttRp1223\nsS'Y:VBus46 - CTRAVO21'\np1224\ng35\n(S'Variable_Type'\n(I2\nttRp1225\nsS'Y:VBus113 - CSAMPO32'\np1226\ng35\n(S'Variable_Type'\n(I2\nttRp1227\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np1228\ng35\n(S'Variable_Type'\n(I2\nttRp1229\nsS'Y:PMachine68 - CCASAM36'\np1230\ng35\n(S'Variable_Type'\n(I2\nttRp1231\nsS'Y:VBus78 - CFURIA31'\np1232\ng35\n(S'Variable_Type'\n(I2\nttRp1233\nsS'Y:VBus26 - CGHISO21'\np1234\ng35\n(S'Variable_Type'\n(I2\nttRp1235\nsS'Y:VBus121 - CVAZZI32'\np1236\ng35\n(S'Variable_Type'\n(I2\nttRp1237\nsS'Y:PMachine97 - COCANA36'\np1238\ng35\n(S'Variable_Type'\n(I2\nttRp1239\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np1240\ng35\n(S'Variable_Type'\n(I2\nttRp1241\nsS'Y:PMachine83 - CILERO32'\np1242\ng35\n(S'Variable_Type'\n(I2\nttRp1243\nsS'Y:Max%A'\np1244\ng35\n(S'Variable_Type'\n(I2\nttRp1245\nsS'Y:VBus66 - CCASAM34'\np1246\ng35\n(S'Variable_Type'\n(I2\nttRp1247\nsS'Y:PMachine1 - CBONIF11'\np1248\ng35\n(S'Variable_Type'\n(I2\nttRp1249\nsS'Y:VBus111 - CSTMAR31'\np1250\ng35\n(S'Variable_Type'\n(I2\nttRp1251\nsS'Y:VBus124 - CVAZZI35'\np1252\ng35\n(S'Variable_Type'\n(I2\nttRp1253\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np1254\ng35\n(S'Variable_Type'\n(I2\nttRp1255\nsS'Y:VBus29 - CLUCCI21'\np1256\ng35\n(S'Variable_Type'\n(I2\nttRp1257\nsS'Y:PMachine93 - COCANA32'\np1258\ng35\n(S'Variable_Type'\n(I2\nttRp1259\nsS'Y:Load 57 - CBONIF31'\np1260\ng35\n(S'Variable_Type'\n(I2\nttRp1261\nsS'Y:VBus86 - CLUCCI31'\np1262\ng35\n(S'Variable_Type'\n(I2\nttRp1263\nsS'Y:VBus38 - CSAGON21'\np1264\ng35\n(S'Variable_Type'\n(I2\nttRp1265\nsS'Y:PMachine81 - CGHISO32'\np1266\ng35\n(S'Variable_Type'\n(I2\nttRp1267\nsS'Y:PMachine61 - CCALVI31'\np1268\ng35\n(S'Variable_Type'\n(I2\nttRp1269\nsS'Y:VBus110 - CSTLUC31'\np1270\ng35\n(S'Variable_Type'\n(I2\nttRp1271\nsS'X:ProdPV%Pnom'\np1272\ng671\nssg648\n(lp1273\ng650\nasba(iOWContexts\nContext\np1274\n(dp1275\ng24\n(lp1276\nsg26\n(dp1277\nsg28\n(dp1278\nS'attrLabel'\np1279\n(S''\nI-1\ntp1280\nsS'attrShape'\np1281\n(S''\nI0\ntp1282\nsS'attrX'\np1283\n(g663\ng35\n(S'Variable_Type'\n(I2\nttRp1284\ntp1285\nsS'attrY'\np1286\n(S'Y:PMachine107 - CRIZZA32'\ng35\n(S'Variable_Type'\n(I2\nttRp1287\ntp1288\nsS'attrSize'\np1289\n(g670\ng35\n(S'Variable_Type'\n(I2\nttRp1290\ntp1291\nsS'attrColor'\np1292\n(S'X:lineOff#'\ng35\n(S'Variable_Type'\n(I2\nttRp1293\ntp1294\nssg46\nF1369930725.474\nsg47\n(dp1295\nS'Y:PMachine134 - CLUCCI35'\np1296\ng35\n(S'Variable_Type'\n(I1\nttRp1297\nsS'Y:VBus77 - CCORTE32'\np1298\ng35\n(S'Variable_Type'\n(I2\nttRp1299\nsS'Y:VBus134 - CLUCCI35'\np1300\ng35\n(S'Variable_Type'\n(I2\nttRp1301\nsS'Y:VBus109 - CSAGON32'\np1302\ng35\n(S'Variable_Type'\n(I2\nttRp1303\nsS'Y:VBus102 - CPORTO31'\np1304\ng35\n(S'Variable_Type'\n(I2\nttRp1305\nsS'XProdEolienne%Pnom'\np1306\ng35\n(S'Variable_Type'\n(I1\nttRp1307\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np1308\ng35\n(S'Variable_Type'\n(I2\nttRp1309\nsS'Y:PMachine94 - COCANA33'\np1310\ng35\n(S'Variable_Type'\n(I2\nttRp1311\nsS'Y:VBus117 - CTOLLA32'\np1312\ng35\n(S'Variable_Type'\n(I2\nttRp1313\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np1314\ng35\n(S'Variable_Type'\n(I2\nttRp1315\nsS'Y:PMachine87 - CLUCCI32'\np1316\ng35\n(S'Variable_Type'\n(I2\nttRp1317\nsS'Y:PMachine113 - CSAMPO32'\np1318\ng35\n(S'Variable_Type'\n(I2\nttRp1319\nsS'Y:Load 84 - CLORET31'\np1320\ng35\n(S'Variable_Type'\n(I2\nttRp1321\nsS'Y:PMachine89 - CLUCCI34'\np1322\ng35\n(S'Variable_Type'\n(I1\nttRp1323\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np1324\ng35\n(S'Variable_Type'\n(I2\nttRp1325\nsS'Y:Load 80 - CGHISO31'\np1326\ng35\n(S'Variable_Type'\n(I2\nttRp1327\nsS'Y:PMachine125 - CVAZZI36'\np1328\ng35\n(S'Variable_Type'\n(I2\nttRp1329\nsS'Y:PMachine116 - CTOLLA31'\np1330\ng35\n(S'Variable_Type'\n(I2\nttRp1331\nsS'Y:PMachine88 - CLUCCI33'\np1332\ng35\n(S'Variable_Type'\n(I1\nttRp1333\nsS'Y:PMachine120 - CVAZZI31'\np1334\ng35\n(S'Variable_Type'\n(I2\nttRp1335\nsS'Y:PMachine111 - CSTMAR31'\np1336\ng35\n(S'Variable_Type'\n(I2\nttRp1337\nsS'Y:NbeTransit'\np1338\ng35\n(S'Variable_Type'\n(I1\nttRp1339\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np1340\ng35\n(S'Variable_Type'\n(I2\nttRp1341\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np1342\ng35\n(S'Variable_Type'\n(I2\nttRp1343\nsS'Y:VBus92 - COCANA31'\np1344\ng35\n(S'Variable_Type'\n(I2\nttRp1345\nsS'Y:PMachine130 - CVAZZI311'\np1346\ng35\n(S'Variable_Type'\n(I2\nttRp1347\nsS'Y:PMachine127 - CVAZZI38'\np1348\ng35\n(S'Variable_Type'\n(I2\nttRp1349\nsS'Y:VBus131 - CVAZZI312'\np1350\ng35\n(S'Variable_Type'\n(I2\nttRp1351\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np1352\ng35\n(S'Variable_Type'\n(I2\nttRp1353\nsS'Y:PMachine123 - CVAZZI34'\np1354\ng35\n(S'Variable_Type'\n(I2\nttRp1355\nsS'Y:VBus118 - CTOLLA33'\np1356\ng35\n(S'Variable_Type'\n(I2\nttRp1357\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np1358\ng35\n(S'Variable_Type'\n(I1\nttRp1359\nsS'Y:PMachine58 - CBONIF32'\np1360\ng35\n(S'Variable_Type'\n(I2\nttRp1361\nsS'Y:Load 104 - CPROPR31'\np1362\ng35\n(S'Variable_Type'\n(I2\nttRp1363\nsS'Y:PMachine30 - CLUCCI22'\np1364\ng35\n(S'Variable_Type'\n(I1\nttRp1365\nsS'Y:VBus100 - COLETT31'\np1366\ng35\n(S'Variable_Type'\n(I2\nttRp1367\nsS'Y:PProdTot'\np1368\ng35\n(S'Variable_Type'\n(I2\nttRp1369\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np1370\ng35\n(S'Variable_Type'\n(I1\nttRp1371\nsS'Y:VBus57 - CBONIF31'\np1372\ng35\n(S'Variable_Type'\n(I2\nttRp1373\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np1374\ng35\n(S'Variable_Type'\n(I2\nttRp1375\nsS'Y:PConsoTot'\np1376\ng35\n(S'Variable_Type'\n(I2\nttRp1377\nsS'Iteration'\np1378\ng35\n(S'Variable_Type'\n(I2\nttRp1379\nsS'Y:PMachine109 - CSAGON32'\np1380\ng35\n(S'Variable_Type'\n(I2\nttRp1381\nsS'Y:PMachine135 - CLUCCI36'\np1382\ng35\n(S'Variable_Type'\n(I1\nttRp1383\nsS'Y:VBus30 - CLUCCI22'\np1384\ng35\n(S'Variable_Type'\n(I2\nttRp1385\nsS'Y:VBus122 - CVAZZI33'\np1386\ng35\n(S'Variable_Type'\n(I2\nttRp1387\nsS'Y:VBus22 - CCORTE21'\np1388\ng35\n(S'Variable_Type'\n(I2\nttRp1389\nsS'Y:VBus35 - CPORTO21'\np1390\ng35\n(S'Variable_Type'\n(I2\nttRp1391\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np1392\ng35\n(S'Variable_Type'\n(I1\nttRp1393\nsS'Y:PMachine107 - CRIZZA32'\np1394\ng1287\nsS'Y:VBus16 - CCALDA21'\np1395\ng35\n(S'Variable_Type'\n(I2\nttRp1396\nsS'Y:Load 102 - CPORTO31'\np1397\ng35\n(S'Variable_Type'\n(I2\nttRp1398\nsS'Y:VBus107 - CRIZZA32'\np1399\ng35\n(S'Variable_Type'\n(I2\nttRp1400\nsS'Y:VBus59 - CCALDA31'\np1401\ng35\n(S'Variable_Type'\n(I2\nttRp1402\nsS'Y:VBus41 - CSAMPO21'\np1403\ng35\n(S'Variable_Type'\n(I2\nttRp1404\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np1405\ng35\n(S'Variable_Type'\n(I2\nttRp1406\nsS'Y:VBus34 - CPIETR21'\np1407\ng35\n(S'Variable_Type'\n(I2\nttRp1408\nsS'Y:Load 108 - CSAGON31'\np1409\ng35\n(S'Variable_Type'\n(I2\nttRp1410\nsS'Y:VBus56 - CBIGUG32'\np1411\ng35\n(S'Variable_Type'\n(I2\nttRp1412\nsS'Y:PMachine42 - CSISCO21'\np1413\ng35\n(S'Variable_Type'\n(I2\nttRp1414\nsS'Y:PMachine138 - CLUCCI39'\np1415\ng35\n(S'Variable_Type'\n(I1\nttRp1416\nsS'Y:PMachine112 - CSAMPO31'\np1417\ng35\n(S'Variable_Type'\n(I2\nttRp1418\nsS'Y:VBus105 - CPROPR32'\np1419\ng35\n(S'Variable_Type'\n(I2\nttRp1420\nsS'Y:VBus1 - CBONIF11'\np1421\ng35\n(S'Variable_Type'\n(I2\nttRp1422\nsS'Y:VBus12 - CBASTI21'\np1423\ng35\n(S'Variable_Type'\n(I2\nttRp1424\nsS'Y:PMachine129 - CVAZZI310'\np1425\ng35\n(S'Variable_Type'\n(I2\nttRp1426\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np1427\ng35\n(S'Variable_Type'\n(I1\nttRp1428\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np1429\ng35\n(S'Variable_Type'\n(I1\nttRp1430\nsS'Y:VBus54 - CBASTI32'\np1431\ng35\n(S'Variable_Type'\n(I2\nttRp1432\nsS'Y:VBus69 - CCASAM37'\np1433\ng35\n(S'Variable_Type'\n(I2\nttRp1434\nsS'Y:VBus45 - CTOLLA21'\np1435\ng35\n(S'Variable_Type'\n(I2\nttRp1436\nsS'Y:PMachine115 - CTAGLI31'\np1437\ng35\n(S'Variable_Type'\n(I2\nttRp1438\nsS'Y:PMachine77 - CCORTE32'\np1439\ng35\n(S'Variable_Type'\n(I2\nttRp1440\nsS'Y:VBus43 - CSOVEN21'\np1441\ng35\n(S'Variable_Type'\n(I2\nttRp1442\nsS'Y:VBus76 - CCORTE31'\np1443\ng35\n(S'Variable_Type'\n(I2\nttRp1444\nsS'Y:VBus75 - CCORSC31'\np1445\ng35\n(S'Variable_Type'\n(I2\nttRp1446\nsS'Y:PMachine78 - CFURIA31'\np1447\ng35\n(S'Variable_Type'\n(I1\nttRp1448\nsS'Y:VBus127 - CVAZZI38'\np1449\ng35\n(S'Variable_Type'\n(I2\nttRp1450\nsS'Y:VBus115 - CTAGLI31'\np1451\ng35\n(S'Variable_Type'\n(I2\nttRp1452\nsS'Y:Load 61 - CCALVI31'\np1453\ng35\n(S'Variable_Type'\n(I2\nttRp1454\nsS'Y:VBus55 - CBIGUG31'\np1455\ng35\n(S'Variable_Type'\n(I2\nttRp1456\nsS'Y:Load 42 - CSISCO21'\np1457\ng35\n(S'Variable_Type'\n(I2\nttRp1458\nsS'Y:VBus72 - CCASTI31'\np1459\ng35\n(S'Variable_Type'\n(I2\nttRp1460\nsS'Y:Load 37 - CRIZZA21'\np1461\ng35\n(S'Variable_Type'\n(I2\nttRp1462\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np1463\ng35\n(S'Variable_Type'\n(I2\nttRp1464\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np1465\ng35\n(S'Variable_Type'\n(I2\nttRp1466\nsS'Y:PMachine137 - CLUCCI38'\np1467\ng35\n(S'Variable_Type'\n(I1\nttRp1468\nsS'Y:PMachine67 - CCASAM35'\np1469\ng35\n(S'Variable_Type'\n(I2\nttRp1470\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np1471\ng35\n(S'Variable_Type'\n(I1\nttRp1472\nsS'Y:VBus31 - CMOROS21'\np1473\ng35\n(S'Variable_Type'\n(I2\nttRp1474\nsS'Y:VBus103 - CPORTO32'\np1475\ng35\n(S'Variable_Type'\n(I2\nttRp1476\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np1477\ng35\n(S'Variable_Type'\n(I1\nttRp1478\nsS'Y:PMachine128 - CVAZZI39'\np1479\ng35\n(S'Variable_Type'\n(I2\nttRp1480\nsS'Y:PMachine72 - CCASTI31'\np1481\ng35\n(S'Variable_Type'\n(I2\nttRp1482\nsS'Y:VBus27 - CILERO21'\np1483\ng35\n(S'Variable_Type'\n(I2\nttRp1484\nsS'Y:PMachine75 - CCORSC31'\np1485\ng35\n(S'Variable_Type'\n(I2\nttRp1486\nsS'Y:Load 51 - CASPRE31'\np1487\ng35\n(S'Variable_Type'\n(I2\nttRp1488\nsS'Y:PMachine61 - CCALVI31'\np1489\ng35\n(S'Variable_Type'\n(I1\nttRp1490\nsS'Y:VBus51 - CASPRE31'\np1491\ng35\n(S'Variable_Type'\n(I2\nttRp1492\nsS'Y:VBus114 - CSOVEN31'\np1493\ng35\n(S'Variable_Type'\n(I2\nttRp1494\nsS'Y:Load 82 - CILERO31'\np1495\ng35\n(S'Variable_Type'\n(I2\nttRp1496\nsS'Y:VBus116 - CTOLLA31'\np1497\ng35\n(S'Variable_Type'\n(I2\nttRp1498\nsS'Y:Load 86 - CLUCCI31'\np1499\ng35\n(S'Variable_Type'\n(I2\nttRp1500\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np1501\ng35\n(S'Variable_Type'\n(I2\nttRp1502\nsS'Y:Load 57 - CBONIF31'\np1503\ng35\n(S'Variable_Type'\n(I2\nttRp1504\nsS'Y:PMachine104 - CPROPR31'\np1505\ng35\n(S'Variable_Type'\n(I2\nttRp1506\nsS'Y:VBus128 - CVAZZI39'\np1507\ng35\n(S'Variable_Type'\n(I2\nttRp1508\nsS'Y:PMachine136 - CLUCCI37'\np1509\ng35\n(S'Variable_Type'\n(I1\nttRp1510\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np1511\ng35\n(S'Variable_Type'\n(I2\nttRp1512\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np1513\ng35\n(S'Variable_Type'\n(I2\nttRp1514\nsS'Y:PMachine68 - CCASAM36'\np1515\ng35\n(S'Variable_Type'\n(I2\nttRp1516\nsS'Y:PMachine29 - CLUCCI21'\np1517\ng35\n(S'Variable_Type'\n(I1\nttRp1518\nsS'Y:VBus42 - CSISCO21'\np1519\ng35\n(S'Variable_Type'\n(I2\nttRp1520\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np1521\ng35\n(S'Variable_Type'\n(I1\nttRp1522\nsS'Y:VBus14 - CBONIF21'\np1523\ng35\n(S'Variable_Type'\n(I2\nttRp1524\nsS'Y:VBus73 - CCASTI32'\np1525\ng35\n(S'Variable_Type'\n(I2\nttRp1526\nsS'Y:VBus64 - CCASAM32'\np1527\ng35\n(S'Variable_Type'\n(I2\nttRp1528\nsS'Y:PMachine14 - CBONIF21'\np1529\ng35\n(S'Variable_Type'\n(I1\nttRp1530\nsS'Y:PMachine62 - CCALVI32'\np1531\ng35\n(S'Variable_Type'\n(I2\nttRp1532\nsS'Y:VBus133 - CVAZZI314'\np1533\ng35\n(S'Variable_Type'\n(I2\nttRp1534\nsS'Y:VBus63 - CCASAM31'\np1535\ng35\n(S'Variable_Type'\n(I2\nttRp1536\nsS'Y:PMachine101 - CPIETR31'\np1537\ng35\n(S'Variable_Type'\n(I2\nttRp1538\nsS'Y:%Losses'\np1539\ng35\n(S'Variable_Type'\n(I2\nttRp1540\nsS'Y:VBus85 - CLORET32'\np1541\ng35\n(S'Variable_Type'\n(I2\nttRp1542\nsS'Y:Load 59 - CCALDA31'\np1543\ng35\n(S'Variable_Type'\n(I2\nttRp1544\nsS'Y:VBus129 - CVAZZI310'\np1545\ng35\n(S'Variable_Type'\n(I2\nttRp1546\nsS'Y:VBus101 - CPIETR31'\np1547\ng35\n(S'Variable_Type'\n(I2\nttRp1548\nsS'Y:PMachine106 - CRIZZA31'\np1549\ng35\n(S'Variable_Type'\n(I2\nttRp1550\nsS'Y:VBus132 - CVAZZI313'\np1551\ng35\n(S'Variable_Type'\n(I2\nttRp1552\nsS'Y:PMachine118 - CTOLLA33'\np1553\ng35\n(S'Variable_Type'\n(I2\nttRp1554\nsS'Y:VBus19 - CCASTI21'\np1555\ng35\n(S'Variable_Type'\n(I2\nttRp1556\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np1557\ng35\n(S'Variable_Type'\n(I2\nttRp1558\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np1559\ng35\n(S'Variable_Type'\n(I1\nttRp1560\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np1561\ng35\n(S'Variable_Type'\n(I2\nttRp1562\nsS'Y:Load 115 - CTAGLI31'\np1563\ng35\n(S'Variable_Type'\n(I2\nttRp1564\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np1565\ng35\n(S'Variable_Type'\n(I2\nttRp1566\nsS'Y:VBus79 - CFURIA32'\np1567\ng35\n(S'Variable_Type'\n(I2\nttRp1568\nsS'Y:PMachine47 - CVAZZI21'\np1569\ng35\n(S'Variable_Type'\n(I1\nttRp1570\nsS'Y:VBus123 - CVAZZI34'\np1571\ng35\n(S'Variable_Type'\n(I2\nttRp1572\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np1573\ng35\n(S'Variable_Type'\n(I2\nttRp1574\nsS'Y:VBus60 - CCALDA32'\np1575\ng35\n(S'Variable_Type'\n(I2\nttRp1576\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np1577\ng35\n(S'Variable_Type'\n(I2\nttRp1578\nsS'Y:VBus65 - CCASAM33'\np1579\ng35\n(S'Variable_Type'\n(I2\nttRp1580\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np1581\ng35\n(S'Variable_Type'\n(I1\nttRp1582\nsS'Y:PMachine139 - CLUCCI310'\np1583\ng35\n(S'Variable_Type'\n(I1\nttRp1584\nsS'Y:VBus112 - CSAMPO31'\np1585\ng35\n(S'Variable_Type'\n(I2\nttRp1586\nsS'Y:VBus68 - CCASAM36'\np1587\ng35\n(S'Variable_Type'\n(I2\nttRp1588\nsS'Y:Load 55 - CBIGUG31'\np1589\ng35\n(S'Variable_Type'\n(I2\nttRp1590\nsS'Y:PMachine53 - CBASTI31'\np1591\ng35\n(S'Variable_Type'\n(I2\nttRp1592\nsS'Y:NbeTransit_0.9-1'\np1593\ng35\n(S'Variable_Type'\n(I1\nttRp1594\nsS'Y:VBus24 - CFURIA21'\np1595\ng35\n(S'Variable_Type'\n(I2\nttRp1596\nsS'Y:VBus23 - CCORTE22'\np1597\ng35\n(S'Variable_Type'\n(I2\nttRp1598\nsS'Y:VBus18 - CCASAM21'\np1599\ng35\n(S'Variable_Type'\n(I2\nttRp1600\nsS'Y:VBus40 - CSTMAR21'\np1601\ng35\n(S'Variable_Type'\n(I2\nttRp1602\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np1603\ng35\n(S'Variable_Type'\n(I2\nttRp1604\nsS'Y:PMachine124 - CVAZZI35'\np1605\ng35\n(S'Variable_Type'\n(I2\nttRp1606\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np1607\ng35\n(S'Variable_Type'\n(I2\nttRp1608\nsS'Y:PMachine117 - CTOLLA32'\np1609\ng35\n(S'Variable_Type'\n(I2\nttRp1610\nsS'Y:VBus89 - CLUCCI34'\np1611\ng35\n(S'Variable_Type'\n(I2\nttRp1612\nsS'Y:VBus33 - COLETT21'\np1613\ng35\n(S'Variable_Type'\n(I2\nttRp1614\nsS'Y:VBus32 - COCANA21'\np1615\ng35\n(S'Variable_Type'\n(I2\nttRp1616\nsS'Y:PMachine121 - CVAZZI32'\np1617\ng35\n(S'Variable_Type'\n(I2\nttRp1618\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np1619\ng35\n(S'Variable_Type'\n(I1\nttRp1620\nsS'Y:VBus82 - CILERO31'\np1621\ng35\n(S'Variable_Type'\n(I2\nttRp1622\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np1623\ng35\n(S'Variable_Type'\n(I2\nttRp1624\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np1625\ng35\n(S'Variable_Type'\n(I2\nttRp1626\nsS'Y:VBus37 - CRIZZA21'\np1627\ng35\n(S'Variable_Type'\n(I2\nttRp1628\nsS'Y:PMachine73 - CCASTI32'\np1629\ng35\n(S'Variable_Type'\n(I2\nttRp1630\nsS'Y:PMachine86 - CLUCCI31'\np1631\ng35\n(S'Variable_Type'\n(I2\nttRp1632\nsS'Y:Load 53 - CBASTI31'\np1633\ng35\n(S'Variable_Type'\n(I2\nttRp1634\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np1635\ng35\n(S'Variable_Type'\n(I2\nttRp1636\nsS'Y:VBus21 - CCORSC21'\np1637\ng35\n(S'Variable_Type'\n(I2\nttRp1638\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np1639\ng35\n(S'Variable_Type'\n(I2\nttRp1640\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np1641\ng35\n(S'Variable_Type'\n(I2\nttRp1642\nsS'Y:PMachine126 - CVAZZI37'\np1643\ng35\n(S'Variable_Type'\n(I2\nttRp1644\nsS'Y:PMachine64 - CCASAM32'\np1645\ng35\n(S'Variable_Type'\n(I2\nttRp1646\nsS'Y:VBus67 - CCASAM35'\np1647\ng35\n(S'Variable_Type'\n(I2\nttRp1648\nsS'Y:VBus53 - CBASTI31'\np1649\ng35\n(S'Variable_Type'\n(I2\nttRp1650\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np1651\ng35\n(S'Variable_Type'\n(I2\nttRp1652\nsS'Y:VBus61 - CCALVI31'\np1653\ng35\n(S'Variable_Type'\n(I2\nttRp1654\nsS'Y:VBus93 - COCANA32'\np1655\ng35\n(S'Variable_Type'\n(I2\nttRp1656\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np1657\ng35\n(S'Variable_Type'\n(I2\nttRp1658\nsS'Y:VBus104 - CPROPR31'\np1659\ng35\n(S'Variable_Type'\n(I2\nttRp1660\nsS'Y:VBus48 - CZSSS621'\np1661\ng35\n(S'Variable_Type'\n(I2\nttRp1662\nsS'Y:PMachine85 - CLORET32'\np1663\ng35\n(S'Variable_Type'\n(I2\nttRp1664\nsS'Y:Max%A'\np1665\ng35\n(S'Variable_Type'\n(I2\nttRp1666\nsS'Y:VBus36 - CPROPR21'\np1667\ng35\n(S'Variable_Type'\n(I2\nttRp1668\nsS'Y:Load 100 - COLETT31'\np1669\ng35\n(S'Variable_Type'\n(I2\nttRp1670\nsS'Y:PMachine54 - CBASTI32'\np1671\ng35\n(S'Variable_Type'\n(I2\nttRp1672\nsS'Y:VBus138 - CLUCCI39'\np1673\ng35\n(S'Variable_Type'\n(I2\nttRp1674\nsS'Y:VBus39 - CSTLUC21'\np1675\ng35\n(S'Variable_Type'\n(I2\nttRp1676\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np1677\ng35\n(S'Variable_Type'\n(I2\nttRp1678\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np1679\ng35\n(S'Variable_Type'\n(I2\nttRp1680\nsS'Y:Load 78 - CFURIA31'\np1681\ng35\n(S'Variable_Type'\n(I2\nttRp1682\nsS'Y:VBus28 - CLORET21'\np1683\ng35\n(S'Variable_Type'\n(I2\nttRp1684\nsS'Y:PMachine105 - CPROPR32'\np1685\ng35\n(S'Variable_Type'\n(I2\nttRp1686\nsS'Y:VBus96 - COCANA35'\np1687\ng35\n(S'Variable_Type'\n(I2\nttRp1688\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np1689\ng35\n(S'Variable_Type'\n(I1\nttRp1690\nsS'Y:PMachine18 - CCASAM21'\np1691\ng35\n(S'Variable_Type'\n(I1\nttRp1692\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np1693\ng35\n(S'Variable_Type'\n(I2\nttRp1694\nsS'Y:VBus13 - CBIGUG21'\np1695\ng35\n(S'Variable_Type'\n(I2\nttRp1696\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np1697\ng35\n(S'Variable_Type'\n(I2\nttRp1698\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np1699\ng35\n(S'Variable_Type'\n(I2\nttRp1700\nsS'Y:VBus29 - CLUCCI21'\np1701\ng35\n(S'Variable_Type'\n(I2\nttRp1702\nsS'Y:VBus58 - CBONIF32'\np1703\ng35\n(S'Variable_Type'\n(I2\nttRp1704\nsS'Y:VBus84 - CLORET31'\np1705\ng35\n(S'Variable_Type'\n(I2\nttRp1706\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np1707\ng35\n(S'Variable_Type'\n(I1\nttRp1708\nsS'Y:VBus97 - COCANA36'\np1709\ng35\n(S'Variable_Type'\n(I2\nttRp1710\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np1711\ng35\n(S'Variable_Type'\n(I1\nttRp1712\nsS'Y:VBus15 - CBONIF22'\np1713\ng35\n(S'Variable_Type'\n(I2\nttRp1714\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np1715\ng35\n(S'Variable_Type'\n(I2\nttRp1716\nsS'Y:Load 110 - CSTLUC31'\np1717\ng35\n(S'Variable_Type'\n(I2\nttRp1718\nsS'Y:VBus80 - CGHISO31'\np1719\ng35\n(S'Variable_Type'\n(I2\nttRp1720\nsS'Y:PMachine114 - CSOVEN31'\np1721\ng35\n(S'Variable_Type'\n(I2\nttRp1722\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np1723\ng35\n(S'Variable_Type'\n(I1\nttRp1724\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np1725\ng35\n(S'Variable_Type'\n(I2\nttRp1726\nsS'Y:PMachine93 - COCANA32'\np1727\ng35\n(S'Variable_Type'\n(I2\nttRp1728\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np1729\ng35\n(S'Variable_Type'\n(I1\nttRp1730\nsS'Y:VBus87 - CLUCCI32'\np1731\ng35\n(S'Variable_Type'\n(I2\nttRp1732\nsS'Y:VBus62 - CCALVI32'\np1733\ng35\n(S'Variable_Type'\n(I2\nttRp1734\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np1735\ng35\n(S'Variable_Type'\n(I1\nttRp1736\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np1737\ng35\n(S'Variable_Type'\n(I1\nttRp1738\nsS'Y:VBus81 - CGHISO32'\np1739\ng35\n(S'Variable_Type'\n(I2\nttRp1740\nsS'Y:PMachine74 - CCERVI31'\np1741\ng35\n(S'Variable_Type'\n(I2\nttRp1742\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np1743\ng35\n(S'Variable_Type'\n(I2\nttRp1744\nsS'Y:VBus86 - CLUCCI31'\np1745\ng35\n(S'Variable_Type'\n(I2\nttRp1746\nsS'X:Load(pu)'\np1747\ng1284\nsS'Y:NbeTension'\np1748\ng35\n(S'Variable_Type'\n(I2\nttRp1749\nsS'Y:VBus95 - COCANA34'\np1750\ng35\n(S'Variable_Type'\n(I2\nttRp1751\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np1752\ng35\n(S'Variable_Type'\n(I2\nttRp1753\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np1754\ng35\n(S'Variable_Type'\n(I2\nttRp1755\nsS'Y:Load 95 - COCANA34'\np1756\ng35\n(S'Variable_Type'\n(I2\nttRp1757\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np1758\ng35\n(S'Variable_Type'\n(I1\nttRp1759\nsS'Y:PMachine90 - CMOROS31'\np1760\ng35\n(S'Variable_Type'\n(I2\nttRp1761\nsS'Y:Load 101 - CPIETR31'\np1762\ng35\n(S'Variable_Type'\n(I2\nttRp1763\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np1764\ng35\n(S'Variable_Type'\n(I1\nttRp1765\nsS'Y:PMachine132 - CVAZZI313'\np1766\ng35\n(S'Variable_Type'\n(I2\nttRp1767\nsS'Y:VBus125 - CVAZZI36'\np1768\ng35\n(S'Variable_Type'\n(I2\nttRp1769\nsS'Y:VBus135 - CLUCCI36'\np1770\ng35\n(S'Variable_Type'\n(I2\nttRp1771\nsS'Y:VBus47 - CVAZZI21'\np1772\ng35\n(S'Variable_Type'\n(I2\nttRp1773\nsS'Y:VBus94 - COCANA33'\np1774\ng35\n(S'Variable_Type'\n(I2\nttRp1775\nsS'Y:VBus17 - CCALVI21'\np1776\ng35\n(S'Variable_Type'\n(I2\nttRp1777\nsS'Y:Load 90 - CMOROS31'\np1778\ng35\n(S'Variable_Type'\n(I2\nttRp1779\nsS'Y:VBus120 - CVAZZI31'\np1780\ng35\n(S'Variable_Type'\n(I2\nttRp1781\nsS'X:ProdPV%Pnom'\np1782\ng1290\nsS'Y:VBus52 - CASPRE32'\np1783\ng35\n(S'Variable_Type'\n(I2\nttRp1784\nsS'Y:VBus25 - CFURIA22'\np1785\ng35\n(S'Variable_Type'\n(I2\nttRp1786\nsS'Y:Load 76 - CCORTE31'\np1787\ng35\n(S'Variable_Type'\n(I2\nttRp1788\nsS'Y:PMachine69 - CCASAM37'\np1789\ng35\n(S'Variable_Type'\n(I2\nttRp1790\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np1791\ng35\n(S'Variable_Type'\n(I2\nttRp1792\nsS'Y:PMachine92 - COCANA31'\np1793\ng35\n(S'Variable_Type'\n(I2\nttRp1794\nsS'Y:PMachine102 - CPORTO31'\np1795\ng35\n(S'Variable_Type'\n(I2\nttRp1796\nsS'Y:PMachine122 - CVAZZI33'\np1797\ng35\n(S'Variable_Type'\n(I2\nttRp1798\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np1799\ng35\n(S'Variable_Type'\n(I1\nttRp1800\nsS'Y:PMachine63 - CCASAM31'\np1801\ng35\n(S'Variable_Type'\n(I2\nttRp1802\nsS'Y:VBus74 - CCERVI31'\np1803\ng35\n(S'Variable_Type'\n(I2\nttRp1804\nsS'Y:VBus126 - CVAZZI37'\np1805\ng35\n(S'Variable_Type'\n(I2\nttRp1806\nsS'Y:PMachine60 - CCALDA32'\np1807\ng35\n(S'Variable_Type'\n(I2\nttRp1808\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np1809\ng35\n(S'Variable_Type'\n(I1\nttRp1810\nsS'Y:VBus20 - CCERVI21'\np1811\ng35\n(S'Variable_Type'\n(I2\nttRp1812\nsS'Y:VBus119 - CTRAVO31'\np1813\ng35\n(S'Variable_Type'\n(I2\nttRp1814\nsS'Y:VBus11 - CASPRE21'\np1815\ng35\n(S'Variable_Type'\n(I2\nttRp1816\nsS'Y:VBus139 - CLUCCI310'\np1817\ng35\n(S'Variable_Type'\n(I2\nttRp1818\nsS'Y:VBus106 - CRIZZA31'\np1819\ng35\n(S'Variable_Type'\n(I2\nttRp1820\nsS'Y:PMachine66 - CCASAM34'\np1821\ng35\n(S'Variable_Type'\n(I2\nttRp1822\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np1823\ng35\n(S'Variable_Type'\n(I2\nttRp1824\nsS'Y:VBus136 - CLUCCI37'\np1825\ng35\n(S'Variable_Type'\n(I2\nttRp1826\nsS'Y:VBus90 - CMOROS31'\np1827\ng35\n(S'Variable_Type'\n(I2\nttRp1828\nsS'Y:Load 74 - CCERVI31'\np1829\ng35\n(S'Variable_Type'\n(I2\nttRp1830\nsS'X:lineOff#'\np1831\ng1293\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np1832\ng35\n(S'Variable_Type'\n(I2\nttRp1833\nsS'Y:VBus108 - CSAGON31'\np1834\ng35\n(S'Variable_Type'\n(I2\nttRp1835\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np1836\ng35\n(S'Variable_Type'\n(I2\nttRp1837\nsS'Y:VBus137 - CLUCCI38'\np1838\ng35\n(S'Variable_Type'\n(I2\nttRp1839\nsS'Y:VBus130 - CVAZZI311'\np1840\ng35\n(S'Variable_Type'\n(I2\nttRp1841\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np1842\ng35\n(S'Variable_Type'\n(I2\nttRp1843\nsS'Y:VBus46 - CTRAVO21'\np1844\ng35\n(S'Variable_Type'\n(I2\nttRp1845\nsS'Y:VBus113 - CSAMPO32'\np1846\ng35\n(S'Variable_Type'\n(I2\nttRp1847\nsS'Y:PMachine133 - CVAZZI314'\np1848\ng35\n(S'Variable_Type'\n(I2\nttRp1849\nsS'Y:PMachine65 - CCASAM33'\np1850\ng35\n(S'Variable_Type'\n(I2\nttRp1851\nsS'Y:VBus78 - CFURIA31'\np1852\ng35\n(S'Variable_Type'\n(I2\nttRp1853\nsS'Y:VBus26 - CGHISO21'\np1854\ng35\n(S'Variable_Type'\n(I2\nttRp1855\nsS'Y:VBus121 - CVAZZI32'\np1856\ng35\n(S'Variable_Type'\n(I2\nttRp1857\nsS'Y:PMachine97 - COCANA36'\np1858\ng35\n(S'Variable_Type'\n(I2\nttRp1859\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np1860\ng35\n(S'Variable_Type'\n(I2\nttRp1861\nsS'Y:PMachine83 - CILERO32'\np1862\ng35\n(S'Variable_Type'\n(I2\nttRp1863\nsS'Y:VBus83 - CILERO32'\np1864\ng35\n(S'Variable_Type'\n(I2\nttRp1865\nsS'Y:VBus66 - CCASAM34'\np1866\ng35\n(S'Variable_Type'\n(I2\nttRp1867\nsS'Y:PMachine1 - CBONIF11'\np1868\ng35\n(S'Variable_Type'\n(I2\nttRp1869\nsS'Y:VBus111 - CSTMAR31'\np1870\ng35\n(S'Variable_Type'\n(I2\nttRp1871\nsS'Y:VBus124 - CVAZZI35'\np1872\ng35\n(S'Variable_Type'\n(I2\nttRp1873\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np1874\ng35\n(S'Variable_Type'\n(I2\nttRp1875\nsS'Y:PMachine131 - CVAZZI312'\np1876\ng35\n(S'Variable_Type'\n(I2\nttRp1877\nsS'Y:VBus44 - CTAGLI21'\np1878\ng35\n(S'Variable_Type'\n(I2\nttRp1879\nsS'Y:VBus88 - CLUCCI33'\np1880\ng35\n(S'Variable_Type'\n(I2\nttRp1881\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np1882\ng35\n(S'Variable_Type'\n(I1\nttRp1883\nsS'Y:VBus38 - CSAGON21'\np1884\ng35\n(S'Variable_Type'\n(I2\nttRp1885\nsS'Y:PMachine81 - CGHISO32'\np1886\ng35\n(S'Variable_Type'\n(I2\nttRp1887\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np1888\ng35\n(S'Variable_Type'\n(I2\nttRp1889\nsS'Y:VBus110 - CSTLUC31'\np1890\ng35\n(S'Variable_Type'\n(I2\nttRp1891\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np1892\ng35\n(S'Variable_Type'\n(I2\nttRp1893\nssg648\n(lp1894\ng650\nasba(iOWContexts\nContext\np1895\n(dp1896\ng24\n(lp1897\nsg26\n(dp1898\nsg28\n(dp1899\ng1279\n(S''\nI-1\ntp1900\nsg1281\n(S''\nI0\ntp1901\nsg1283\n(g663\ng35\n(S'Variable_Type'\n(I2\nttRp1902\ntp1903\nsg1286\n(S'Y:VBus15'\ng35\n(S'Variable_Type'\n(I2\nttRp1904\ntp1905\nsg1289\n(g670\ng35\n(S'Variable_Type'\n(I2\nttRp1906\ntp1907\nsg1292\n(S'XProdEolienne%Pnom'\ng35\n(S'Variable_Type'\n(I2\nttRp1908\ntp1909\nssg46\nF1369930725.474\nsg47\n(dp1910\nS'Y:VBus48'\np1911\ng35\n(S'Variable_Type'\n(I2\nttRp1912\nsS'Y15:%RateA 18-44'\np1913\ng35\n(S'Variable_Type'\n(I2\nttRp1914\nsS'Y:VBus41'\np1915\ng35\n(S'Variable_Type'\n(I2\nttRp1916\nsS'Y:VBus40'\np1917\ng35\n(S'Variable_Type'\n(I2\nttRp1918\nsS'Y:VBus43'\np1919\ng35\n(S'Variable_Type'\n(I2\nttRp1920\nsS'Y:VBus42'\np1921\ng35\n(S'Variable_Type'\n(I2\nttRp1922\nsS'Y:VBus45'\np1923\ng35\n(S'Variable_Type'\n(I2\nttRp1924\nsS'Y:VBus44'\np1925\ng35\n(S'Variable_Type'\n(I2\nttRp1926\nsS'Y:VBus47'\np1927\ng35\n(S'Variable_Type'\n(I2\nttRp1928\nsS'Y:VBus46'\np1929\ng35\n(S'Variable_Type'\n(I2\nttRp1930\nsS'Y39:%RateA 32-45'\np1931\ng35\n(S'Variable_Type'\n(I2\nttRp1932\nsS'Y:Load 110'\np1933\ng35\n(S'Variable_Type'\n(I2\nttRp1934\nsS'Y:Load 115'\np1935\ng35\n(S'Variable_Type'\n(I2\nttRp1936\nsS'Y:VBus79'\np1937\ng35\n(S'Variable_Type'\n(I2\nttRp1938\nsS'Y13:%RateA 18-30'\np1939\ng35\n(S'Variable_Type'\n(I2\nttRp1940\nsS'Y34:%RateA 28-38'\np1941\ng35\n(S'Variable_Type'\n(I2\nttRp1942\nsS'Y:NbeTransit'\np1943\ng35\n(S'Variable_Type'\n(I1\nttRp1944\nsS'Y:VBus104'\np1945\ng35\n(S'Variable_Type'\n(I2\nttRp1946\nsS'Y20:%RateA 20-44'\np1947\ng35\n(S'Variable_Type'\n(I2\nttRp1948\nsS'Y38:%RateA 32-45'\np1949\ng35\n(S'Variable_Type'\n(I2\nttRp1950\nsS'Y:PMachine73'\np1951\ng35\n(S'Variable_Type'\n(I2\nttRp1952\nsS'Y:PMachine72'\np1953\ng35\n(S'Variable_Type'\n(I2\nttRp1954\nsS'Y49:%RateA 40-48'\np1955\ng35\n(S'Variable_Type'\n(I2\nttRp1956\nsS'Y:PMachine77'\np1957\ng35\n(S'Variable_Type'\n(I2\nttRp1958\nsS'Y:PMachine75'\np1959\ng35\n(S'Variable_Type'\n(I2\nttRp1960\nsS'Y:PMachine74'\np1961\ng35\n(S'Variable_Type'\n(I2\nttRp1962\nsS'Y:PMachine78'\np1963\ng35\n(S'Variable_Type'\n(I1\nttRp1964\nsS'Y:PMachine138'\np1965\ng35\n(S'Variable_Type'\n(I1\nttRp1966\nsS'Y28:%RateA 24-42'\np1967\ng35\n(S'Variable_Type'\n(I2\nttRp1968\nsS'Y:PProdTot'\np1969\ng35\n(S'Variable_Type'\n(I2\nttRp1970\nsS'Y:PMachine69'\np1971\ng35\n(S'Variable_Type'\n(I2\nttRp1972\nsS'Y:VBus38'\np1973\ng35\n(S'Variable_Type'\n(I2\nttRp1974\nsS'Y:VBus39'\np1975\ng35\n(S'Variable_Type'\n(I2\nttRp1976\nsS'Y62:%RateA 86-87'\np1977\ng35\n(S'Variable_Type'\n(I1\nttRp1978\nsS'Y:PMachine1'\np1979\ng35\n(S'Variable_Type'\n(I2\nttRp1980\nsS'Y:VBus35'\np1981\ng35\n(S'Variable_Type'\n(I2\nttRp1982\nsS'Y:VBus36'\np1983\ng35\n(S'Variable_Type'\n(I2\nttRp1984\nsS'Y:VBus37'\np1985\ng35\n(S'Variable_Type'\n(I2\nttRp1986\nsS'Y:VBus30'\np1987\ng35\n(S'Variable_Type'\n(I2\nttRp1988\nsS'Y:VBus31'\np1989\ng35\n(S'Variable_Type'\n(I2\nttRp1990\nsS'Y:VBus32'\np1991\ng35\n(S'Variable_Type'\n(I2\nttRp1992\nsS'Y:VBus33'\np1993\ng35\n(S'Variable_Type'\n(I2\nttRp1994\nsS'Y53:%RateA 57-58'\np1995\ng35\n(S'Variable_Type'\n(I1\nttRp1996\nsS'Y14:%RateA 18-31'\np1997\ng35\n(S'Variable_Type'\n(I2\nttRp1998\nsS'Y48:%RateA 39-46'\np1999\ng35\n(S'Variable_Type'\n(I2\nttRp2000\nsS'Y60:%RateA 82-83'\np2001\ng35\n(S'Variable_Type'\n(I1\nttRp2002\nsS'Y:PMachine87'\np2003\ng35\n(S'Variable_Type'\n(I2\nttRp2004\nsS'Y:VBus121'\np2005\ng35\n(S'Variable_Type'\n(I2\nttRp2006\nsS'Y:VBus120'\np2007\ng35\n(S'Variable_Type'\n(I2\nttRp2008\nsS'Y:VBus123'\np2009\ng35\n(S'Variable_Type'\n(I2\nttRp2010\nsS'Y:VBus122'\np2011\ng35\n(S'Variable_Type'\n(I2\nttRp2012\nsS'Y:VBus125'\np2013\ng35\n(S'Variable_Type'\n(I2\nttRp2014\nsS'Y:VBus124'\np2015\ng35\n(S'Variable_Type'\n(I2\nttRp2016\nsS'Y:VBus127'\np2017\ng35\n(S'Variable_Type'\n(I2\nttRp2018\nsS'Y:VBus126'\np2019\ng35\n(S'Variable_Type'\n(I2\nttRp2020\nsS'Y:VBus129'\np2021\ng35\n(S'Variable_Type'\n(I2\nttRp2022\nsS'Y:VBus128'\np2023\ng35\n(S'Variable_Type'\n(I2\nttRp2024\nsS'Y37:%RateA 32-34'\np2025\ng35\n(S'Variable_Type'\n(I2\nttRp2026\nsS'Y43:%RateA 35-37'\np2027\ng35\n(S'Variable_Type'\n(I2\nttRp2028\nsS'Y:PMachine42'\np2029\ng35\n(S'Variable_Type'\n(I2\nttRp2030\nsS'Y0:%RateA 11-28'\np2031\ng35\n(S'Variable_Type'\n(I2\nttRp2032\nsS'Y:VBus67'\np2033\ng35\n(S'Variable_Type'\n(I2\nttRp2034\nsS'Y:Load 37'\np2035\ng35\n(S'Variable_Type'\n(I2\nttRp2036\nsS'Y65:%RateA 104-105'\np2037\ng35\n(S'Variable_Type'\n(I1\nttRp2038\nsS'Y40:%RateA 32-47'\np2039\ng35\n(S'Variable_Type'\n(I2\nttRp2040\nsS'Y:PMachine47'\np2041\ng35\n(S'Variable_Type'\n(I2\nttRp2042\nsS'Y6:%RateA 14-15'\np2043\ng35\n(S'Variable_Type'\n(I1\nttRp2044\nsS'Y:VBus1'\np2045\ng35\n(S'Variable_Type'\n(I2\nttRp2046\nsS'Y44:%RateA 35-39'\np2047\ng35\n(S'Variable_Type'\n(I2\nttRp2048\nsS'Y:PMachine88'\np2049\ng35\n(S'Variable_Type'\n(I1\nttRp2050\nsS'Y42:%RateA 34-36'\np2051\ng35\n(S'Variable_Type'\n(I2\nttRp2052\nsS'Y57:%RateA 76-77'\np2053\ng35\n(S'Variable_Type'\n(I1\nttRp2054\nsS'Y:PMachine89'\np2055\ng35\n(S'Variable_Type'\n(I1\nttRp2056\nsS'Y:VBus77'\np2057\ng35\n(S'Variable_Type'\n(I2\nttRp2058\nsS'Y:VBus29'\np2059\ng35\n(S'Variable_Type'\n(I2\nttRp2060\nsS'Y:VBus28'\np2061\ng35\n(S'Variable_Type'\n(I2\nttRp2062\nsS'Y:VBus27'\np2063\ng35\n(S'Variable_Type'\n(I2\nttRp2064\nsS'Y:VBus26'\np2065\ng35\n(S'Variable_Type'\n(I2\nttRp2066\nsS'Y:VBus25'\np2067\ng35\n(S'Variable_Type'\n(I2\nttRp2068\nsS'Y:VBus24'\np2069\ng35\n(S'Variable_Type'\n(I2\nttRp2070\nsS'Y:VBus23'\np2071\ng35\n(S'Variable_Type'\n(I2\nttRp2072\nsS'Y:VBus22'\np2073\ng35\n(S'Variable_Type'\n(I2\nttRp2074\nsS'Y:VBus21'\np2075\ng35\n(S'Variable_Type'\n(I2\nttRp2076\nsS'Y:VBus20'\np2077\ng35\n(S'Variable_Type'\n(I2\nttRp2078\nsS'Y:VBus85'\np2079\ng35\n(S'Variable_Type'\n(I2\nttRp2080\nsS'Y:VBus84'\np2081\ng35\n(S'Variable_Type'\n(I2\nttRp2082\nsS'Y52:%RateA 55-56'\np2083\ng35\n(S'Variable_Type'\n(I1\nttRp2084\nsS'Y2:%RateA 12-24'\np2085\ng35\n(S'Variable_Type'\n(I2\nttRp2086\nsS'Y:VBus112'\np2087\ng35\n(S'Variable_Type'\n(I2\nttRp2088\nsS'Y:VBus132'\np2089\ng35\n(S'Variable_Type'\n(I2\nttRp2090\nsS'Y:PMachine58'\np2091\ng35\n(S'Variable_Type'\n(I2\nttRp2092\nsS'Y:VBus130'\np2093\ng35\n(S'Variable_Type'\n(I2\nttRp2094\nsS'Y:VBus131'\np2095\ng35\n(S'Variable_Type'\n(I2\nttRp2096\nsS'Y:VBus136'\np2097\ng35\n(S'Variable_Type'\n(I2\nttRp2098\nsS'Y:VBus137'\np2099\ng35\n(S'Variable_Type'\n(I2\nttRp2100\nsS'Y:VBus134'\np2101\ng35\n(S'Variable_Type'\n(I2\nttRp2102\nsS'Y:VBus135'\np2103\ng35\n(S'Variable_Type'\n(I2\nttRp2104\nsS'Y:VBus81'\np2105\ng35\n(S'Variable_Type'\n(I2\nttRp2106\nsS'Y:PMachine53'\np2107\ng35\n(S'Variable_Type'\n(I2\nttRp2108\nsS'Y:VBus139'\np2109\ng35\n(S'Variable_Type'\n(I2\nttRp2110\nsS'Y30:%RateA 25-29'\np2111\ng35\n(S'Variable_Type'\n(I2\nttRp2112\nsS'Y:VBus115'\np2113\ng35\n(S'Variable_Type'\n(I2\nttRp2114\nsS'Y:PMachine124'\np2115\ng35\n(S'Variable_Type'\n(I2\nttRp2116\nsS'Y:VBus83'\np2117\ng35\n(S'Variable_Type'\n(I2\nttRp2118\nsS'Y66:%RateA 106-107'\np2119\ng35\n(S'Variable_Type'\n(I1\nttRp2120\nsS'Y25:%RateA 23-41'\np2121\ng35\n(S'Variable_Type'\n(I2\nttRp2122\nsS'Y:%Losses'\np2123\ng35\n(S'Variable_Type'\n(I2\nttRp2124\nsS'Y:VBus12'\np2125\ng35\n(S'Variable_Type'\n(I2\nttRp2126\nsS'Y:VBus13'\np2127\ng35\n(S'Variable_Type'\n(I2\nttRp2128\nsS'Y50:%RateA 51-52'\np2129\ng35\n(S'Variable_Type'\n(I1\nttRp2130\nsS'Y:VBus11'\np2131\ng35\n(S'Variable_Type'\n(I2\nttRp2132\nsS'Y:VBus16'\np2133\ng35\n(S'Variable_Type'\n(I2\nttRp2134\nsS'Y:VBus17'\np2135\ng35\n(S'Variable_Type'\n(I2\nttRp2136\nsS'Y:VBus14'\np2137\ng35\n(S'Variable_Type'\n(I2\nttRp2138\nsS'Y:VBus15'\np2139\ng1904\nsS'Y:VBus113'\np2140\ng35\n(S'Variable_Type'\n(I2\nttRp2141\nsS'Y:PMachine120'\np2142\ng35\n(S'Variable_Type'\n(I2\nttRp2143\nsS'Y:VBus18'\np2144\ng35\n(S'Variable_Type'\n(I2\nttRp2145\nsS'Y:VBus19'\np2146\ng35\n(S'Variable_Type'\n(I2\nttRp2147\nsS'Y4:%RateA 13-25'\np2148\ng35\n(S'Variable_Type'\n(I2\nttRp2149\nsS'Y35:%RateA 28-47'\np2150\ng35\n(S'Variable_Type'\n(I2\nttRp2151\nsS'Y:PMachine122'\np2152\ng35\n(S'Variable_Type'\n(I2\nttRp2153\nsS'Y16:%RateA 19-21'\np2154\ng35\n(S'Variable_Type'\n(I2\nttRp2155\nsS'Y:VBus92'\np2156\ng35\n(S'Variable_Type'\n(I2\nttRp2157\nsS'Y7:%RateA 14-35'\np2158\ng35\n(S'Variable_Type'\n(I2\nttRp2159\nsS'Y:VBus90'\np2160\ng35\n(S'Variable_Type'\n(I2\nttRp2161\nsS'Y:VBus96'\np2162\ng35\n(S'Variable_Type'\n(I2\nttRp2163\nsS'Y:VBus97'\np2164\ng35\n(S'Variable_Type'\n(I2\nttRp2165\nsS'Y:VBus94'\np2166\ng35\n(S'Variable_Type'\n(I2\nttRp2167\nsS'Y:VBus95'\np2168\ng35\n(S'Variable_Type'\n(I2\nttRp2169\nsS'Y:VBus107'\np2170\ng35\n(S'Variable_Type'\n(I2\nttRp2171\nsS'Y:VBus106'\np2172\ng35\n(S'Variable_Type'\n(I2\nttRp2173\nsS'Y:VBus105'\np2174\ng35\n(S'Variable_Type'\n(I2\nttRp2175\nsS'Y22:%RateA 22-23'\np2176\ng35\n(S'Variable_Type'\n(I1\nttRp2177\nsS'Y:VBus103'\np2178\ng35\n(S'Variable_Type'\n(I2\nttRp2179\nsS'Y:VBus102'\np2180\ng35\n(S'Variable_Type'\n(I2\nttRp2181\nsS'Y:VBus101'\np2182\ng35\n(S'Variable_Type'\n(I2\nttRp2183\nsS'Y:VBus100'\np2184\ng35\n(S'Variable_Type'\n(I2\nttRp2185\nsS'Y:Load 55'\np2186\ng35\n(S'Variable_Type'\n(I2\nttRp2187\nsS'Y:Load 57'\np2188\ng35\n(S'Variable_Type'\n(I2\nttRp2189\nsS'Y:Load 51'\np2190\ng35\n(S'Variable_Type'\n(I2\nttRp2191\nsS'Y:VBus54'\np2192\ng35\n(S'Variable_Type'\n(I2\nttRp2193\nsS'Y:VBus109'\np2194\ng35\n(S'Variable_Type'\n(I2\nttRp2195\nsS'Y46:%RateA 36-48'\np2196\ng35\n(S'Variable_Type'\n(I2\nttRp2197\nsS'Y:Load 80'\np2198\ng35\n(S'Variable_Type'\n(I2\nttRp2199\nsS'Y:PMachine133'\np2200\ng35\n(S'Variable_Type'\n(I2\nttRp2201\nsS'Y:VBus55'\np2202\ng35\n(S'Variable_Type'\n(I2\nttRp2203\nsS'Y:PMachine29'\np2204\ng35\n(S'Variable_Type'\n(I1\nttRp2205\nsS'Y24:%RateA 23-32'\np2206\ng35\n(S'Variable_Type'\n(I2\nttRp2207\nsS'X:lineOff#'\np2208\ng35\n(S'Variable_Type'\n(I2\nttRp2209\nsS'Y:Max%A'\np2210\ng35\n(S'Variable_Type'\n(I2\nttRp2211\nsS'Y:NbeTransit_0.9-1'\np2212\ng35\n(S'Variable_Type'\n(I1\nttRp2213\nsS'XProdEolienne%Pnom'\np2214\ng1908\nsS'Y33:%RateA 27-33'\np2215\ng35\n(S'Variable_Type'\n(I2\nttRp2216\nsS'Y59:%RateA 80-81'\np2217\ng35\n(S'Variable_Type'\n(I1\nttRp2218\nsS'Y:VBus65'\np2219\ng35\n(S'Variable_Type'\n(I2\nttRp2220\nsS'Y:VBus118'\np2221\ng35\n(S'Variable_Type'\n(I2\nttRp2222\nsS'Y:VBus119'\np2223\ng35\n(S'Variable_Type'\n(I2\nttRp2224\nsS'Y:PMachine117'\np2225\ng35\n(S'Variable_Type'\n(I2\nttRp2226\nsS'Y:PMachine116'\np2227\ng35\n(S'Variable_Type'\n(I2\nttRp2228\nsS'Y:PMachine111'\np2229\ng35\n(S'Variable_Type'\n(I2\nttRp2230\nsS'Y:VBus88'\np2231\ng35\n(S'Variable_Type'\n(I2\nttRp2232\nsS'Y:PMachine113'\np2233\ng35\n(S'Variable_Type'\n(I2\nttRp2234\nsS'Y:VBus93'\np2235\ng35\n(S'Variable_Type'\n(I2\nttRp2236\nsS'Y:VBus110'\np2237\ng35\n(S'Variable_Type'\n(I2\nttRp2238\nsS'Y:VBus111'\np2239\ng35\n(S'Variable_Type'\n(I2\nttRp2240\nsS'Y:VBus87'\np2241\ng35\n(S'Variable_Type'\n(I2\nttRp2242\nsS'Y12:%RateA 18-30'\np2243\ng35\n(S'Variable_Type'\n(I2\nttRp2244\nsS'Y:VBus114'\np2245\ng35\n(S'Variable_Type'\n(I2\nttRp2246\nsS'Y:VBus80'\np2247\ng35\n(S'Variable_Type'\n(I2\nttRp2248\nsS'Y:VBus116'\np2249\ng35\n(S'Variable_Type'\n(I2\nttRp2250\nsS'Y:VBus82'\np2251\ng35\n(S'Variable_Type'\n(I2\nttRp2252\nsS'Y61:%RateA 84-85'\np2253\ng35\n(S'Variable_Type'\n(I1\nttRp2254\nsS'Y31:%RateA 26-41'\np2255\ng35\n(S'Variable_Type'\n(I2\nttRp2256\nsS'Y:PMachine131'\np2257\ng35\n(S'Variable_Type'\n(I2\nttRp2258\nsS'Y47:%RateA 38-43'\np2259\ng35\n(S'Variable_Type'\n(I2\nttRp2260\nsS'Y:Load 42'\np2261\ng35\n(S'Variable_Type'\n(I2\nttRp2262\nsS'Y:PMachine85'\np2263\ng35\n(S'Variable_Type'\n(I2\nttRp2264\nsS'Y32:%RateA 26-46'\np2265\ng35\n(S'Variable_Type'\n(I2\nttRp2266\nsS'Y:PMachine132'\np2267\ng35\n(S'Variable_Type'\n(I2\nttRp2268\nsS'Y18:%RateA 19-27'\np2269\ng35\n(S'Variable_Type'\n(I2\nttRp2270\nsS'Y:VBus86'\np2271\ng35\n(S'Variable_Type'\n(I2\nttRp2272\nsS'Y63:%RateA 95-96'\np2273\ng35\n(S'Variable_Type'\n(I1\nttRp2274\nsS'Y17:%RateA 19-22'\np2275\ng35\n(S'Variable_Type'\n(I2\nttRp2276\nsS'Y41:%RateA 32-48'\np2277\ng35\n(S'Variable_Type'\n(I2\nttRp2278\nsS'Y:PMachine30'\np2279\ng35\n(S'Variable_Type'\n(I2\nttRp2280\nsS'Y:VBus117'\np2281\ng35\n(S'Variable_Type'\n(I2\nttRp2282\nsS'Y56:%RateA 72-73'\np2283\ng35\n(S'Variable_Type'\n(I1\nttRp2284\nsS'Y68:%RateA 112-113'\np2285\ng35\n(S'Variable_Type'\n(I1\nttRp2286\nsS'Y:PMachine130'\np2287\ng35\n(S'Variable_Type'\n(I2\nttRp2288\nsS'Y27:%RateA 24-33'\np2289\ng35\n(S'Variable_Type'\n(I2\nttRp2290\nsS'Y:PMachine106'\np2291\ng35\n(S'Variable_Type'\n(I2\nttRp2292\nsS'Y:PMachine107'\np2293\ng35\n(S'Variable_Type'\n(I2\nttRp2294\nsS'Y:PMachine104'\np2295\ng35\n(S'Variable_Type'\n(I2\nttRp2296\nsS'Y:VBus73'\np2297\ng35\n(S'Variable_Type'\n(I2\nttRp2298\nsS'Y:VBus74'\np2299\ng35\n(S'Variable_Type'\n(I2\nttRp2300\nsS'Y:VBus75'\np2301\ng35\n(S'Variable_Type'\n(I2\nttRp2302\nsS'Y:VBus76'\np2303\ng35\n(S'Variable_Type'\n(I2\nttRp2304\nsS'Y:PMachine101'\np2305\ng35\n(S'Variable_Type'\n(I2\nttRp2306\nsS'Y:VBus78'\np2307\ng35\n(S'Variable_Type'\n(I2\nttRp2308\nsS'Y:Load 59'\np2309\ng35\n(S'Variable_Type'\n(I2\nttRp2310\nsS'Y:PMachine115'\np2311\ng35\n(S'Variable_Type'\n(I2\nttRp2312\nsS'Y51:%RateA 53-54'\np2313\ng35\n(S'Variable_Type'\n(I1\nttRp2314\nsS'Y67:%RateA 108-109'\np2315\ng35\n(S'Variable_Type'\n(I1\nttRp2316\nsS'Y:PMachine109'\np2317\ng35\n(S'Variable_Type'\n(I2\nttRp2318\nsS'Y:PMachine83'\np2319\ng35\n(S'Variable_Type'\n(I2\nttRp2320\nsS'Y:PMachine81'\np2321\ng35\n(S'Variable_Type'\n(I2\nttRp2322\nsS'Y:PMachine86'\np2323\ng35\n(S'Variable_Type'\n(I2\nttRp2324\nsS'Y:Load 76'\np2325\ng35\n(S'Variable_Type'\n(I2\nttRp2326\nsS'Y:Load 74'\np2327\ng35\n(S'Variable_Type'\n(I2\nttRp2328\nsS'Y45:%RateA 36-37'\np2329\ng35\n(S'Variable_Type'\n(I2\nttRp2330\nsS'Y58:%RateA 78-79'\np2331\ng35\n(S'Variable_Type'\n(I1\nttRp2332\nsS'Y:Load 78'\np2333\ng35\n(S'Variable_Type'\n(I2\nttRp2334\nsS'X:Load(pu)'\np2335\ng1902\nsS'Y5:%RateA 13-29'\np2336\ng35\n(S'Variable_Type'\n(I2\nttRp2337\nsS'Y:PMachine118'\np2338\ng35\n(S'Variable_Type'\n(I2\nttRp2339\nsS'Y1:%RateA 11-47'\np2340\ng35\n(S'Variable_Type'\n(I2\nttRp2341\nsS'Y:VBus60'\np2342\ng35\n(S'Variable_Type'\n(I2\nttRp2343\nsS'Y:PMachine137'\np2344\ng35\n(S'Variable_Type'\n(I1\nttRp2345\nsS'Y29:%RateA 25-29'\np2346\ng35\n(S'Variable_Type'\n(I2\nttRp2347\nsS'Y:VBus66'\np2348\ng35\n(S'Variable_Type'\n(I2\nttRp2349\nsS'Iteration'\np2350\ng35\n(S'Variable_Type'\n(I2\nttRp2351\nsS'Y36:%RateA 29-30'\np2352\ng35\n(S'Variable_Type'\n(I1\nttRp2353\nsS'Y54:%RateA 59-60'\np2354\ng35\n(S'Variable_Type'\n(I1\nttRp2355\nsS'Y:Load 90'\np2356\ng35\n(S'Variable_Type'\n(I2\nttRp2357\nsS'Y9:%RateA 16-32'\np2358\ng35\n(S'Variable_Type'\n(I2\nttRp2359\nsS'Y:PMachine134'\np2360\ng35\n(S'Variable_Type'\n(I1\nttRp2361\nsS'Y:Load 95'\np2362\ng35\n(S'Variable_Type'\n(I2\nttRp2363\nsS'Y:VBus63'\np2364\ng35\n(S'Variable_Type'\n(I2\nttRp2365\nsS'Y:VBus62'\np2366\ng35\n(S'Variable_Type'\n(I2\nttRp2367\nsS'Y:VBus61'\np2368\ng35\n(S'Variable_Type'\n(I2\nttRp2369\nsS'Y55:%RateA 61-62'\np2370\ng35\n(S'Variable_Type'\n(I1\nttRp2371\nsS'Y8:%RateA 15-35'\np2372\ng35\n(S'Variable_Type'\n(I2\nttRp2373\nsS'Y:PMachine136'\np2374\ng35\n(S'Variable_Type'\n(I1\nttRp2375\nsS'Y:PMachine135'\np2376\ng35\n(S'Variable_Type'\n(I1\nttRp2377\nsS'Y:VBus64'\np2378\ng35\n(S'Variable_Type'\n(I2\nttRp2379\nsS'Y:PMachine94'\np2380\ng35\n(S'Variable_Type'\n(I2\nttRp2381\nsS'Y:VBus69'\np2382\ng35\n(S'Variable_Type'\n(I2\nttRp2383\nsS'Y:VBus108'\np2384\ng35\n(S'Variable_Type'\n(I2\nttRp2385\nsS'Y:PMachine139'\np2386\ng35\n(S'Variable_Type'\n(I1\nttRp2387\nsS'Y:PMachine97'\np2388\ng35\n(S'Variable_Type'\n(I2\nttRp2389\nsS'Y:PMachine92'\np2390\ng35\n(S'Variable_Type'\n(I2\nttRp2391\nsS'Y:VBus68'\np2392\ng35\n(S'Variable_Type'\n(I2\nttRp2393\nsS'Y:Load 61'\np2394\ng35\n(S'Variable_Type'\n(I2\nttRp2395\nsS'Y:VBus89'\np2396\ng35\n(S'Variable_Type'\n(I2\nttRp2397\nsS'Y21:%RateA 21-43'\np2398\ng35\n(S'Variable_Type'\n(I2\nttRp2399\nsS'Y:PMachine90'\np2400\ng35\n(S'Variable_Type'\n(I2\nttRp2401\nsS'Y:PMachine14'\np2402\ng35\n(S'Variable_Type'\n(I2\nttRp2403\nsS'Y:PMachine63'\np2404\ng35\n(S'Variable_Type'\n(I2\nttRp2405\nsS'Y:PMachine93'\np2406\ng35\n(S'Variable_Type'\n(I2\nttRp2407\nsS'Y:PConsoTot'\np2408\ng35\n(S'Variable_Type'\n(I2\nttRp2409\nsS'Y23:%RateA 22-31'\np2410\ng35\n(S'Variable_Type'\n(I2\nttRp2411\nsS'Y19:%RateA 20-26'\np2412\ng35\n(S'Variable_Type'\n(I2\nttRp2413\nsS'Y:PMachine18'\np2414\ng35\n(S'Variable_Type'\n(I2\nttRp2415\nsS'Y:VBus34'\np2416\ng35\n(S'Variable_Type'\n(I2\nttRp2417\nsS'Y:NbeTension'\np2418\ng35\n(S'Variable_Type'\n(I2\nttRp2419\nsS'Y:PMachine128'\np2420\ng35\n(S'Variable_Type'\n(I2\nttRp2421\nsS'Y:PMachine129'\np2422\ng35\n(S'Variable_Type'\n(I2\nttRp2423\nsS'Y:VBus133'\np2424\ng35\n(S'Variable_Type'\n(I2\nttRp2425\nsS'Y:Load 82'\np2426\ng35\n(S'Variable_Type'\n(I2\nttRp2427\nsS'Y:PMachine125'\np2428\ng35\n(S'Variable_Type'\n(I2\nttRp2429\nsS'Y:PMachine126'\np2430\ng35\n(S'Variable_Type'\n(I2\nttRp2431\nsS'Y:PMachine127'\np2432\ng35\n(S'Variable_Type'\n(I2\nttRp2433\nsS'Y:Load 86'\np2434\ng35\n(S'Variable_Type'\n(I2\nttRp2435\nsS'Y:PMachine121'\np2436\ng35\n(S'Variable_Type'\n(I2\nttRp2437\nsS'Y:Load 84'\np2438\ng35\n(S'Variable_Type'\n(I2\nttRp2439\nsS'Y:PMachine123'\np2440\ng35\n(S'Variable_Type'\n(I2\nttRp2441\nsS'Y:Load 102'\np2442\ng35\n(S'Variable_Type'\n(I2\nttRp2443\nsS'Y:VBus57'\np2444\ng35\n(S'Variable_Type'\n(I2\nttRp2445\nsS'Y:Load 100'\np2446\ng35\n(S'Variable_Type'\n(I2\nttRp2447\nsS'Y:Load 101'\np2448\ng35\n(S'Variable_Type'\n(I2\nttRp2449\nsS'Y:VBus52'\np2450\ng35\n(S'Variable_Type'\n(I2\nttRp2451\nsS'Y:VBus53'\np2452\ng35\n(S'Variable_Type'\n(I2\nttRp2453\nsS'Y:Load 104'\np2454\ng35\n(S'Variable_Type'\n(I2\nttRp2455\nsS'Y:VBus51'\np2456\ng35\n(S'Variable_Type'\n(I2\nttRp2457\nsS'Y:Load 108'\np2458\ng35\n(S'Variable_Type'\n(I2\nttRp2459\nsS'Y64:%RateA 102-103'\np2460\ng35\n(S'Variable_Type'\n(I1\nttRp2461\nsS'Y:PMachine112'\np2462\ng35\n(S'Variable_Type'\n(I2\nttRp2463\nsS'Y:VBus58'\np2464\ng35\n(S'Variable_Type'\n(I2\nttRp2465\nsS'Y:VBus59'\np2466\ng35\n(S'Variable_Type'\n(I2\nttRp2467\nsS'Y:Load 53'\np2468\ng35\n(S'Variable_Type'\n(I2\nttRp2469\nsS'Y10:%RateA 16-47'\np2470\ng35\n(S'Variable_Type'\n(I2\nttRp2471\nsS'Y:PMachine54'\np2472\ng35\n(S'Variable_Type'\n(I2\nttRp2473\nsS'Y:VBus56'\np2474\ng35\n(S'Variable_Type'\n(I2\nttRp2475\nsS'Y3:%RateA 12-24'\np2476\ng35\n(S'Variable_Type'\n(I2\nttRp2477\nsS'Y11:%RateA 17-27'\np2478\ng35\n(S'Variable_Type'\n(I2\nttRp2479\nsS'Y:PMachine114'\np2480\ng35\n(S'Variable_Type'\n(I2\nttRp2481\nsS'Y:VBus72'\np2482\ng35\n(S'Variable_Type'\n(I2\nttRp2483\nsS'Y:PMachine60'\np2484\ng35\n(S'Variable_Type'\n(I2\nttRp2485\nsS'Y:PMachine61'\np2486\ng35\n(S'Variable_Type'\n(I1\nttRp2487\nsS'Y:PMachine62'\np2488\ng35\n(S'Variable_Type'\n(I2\nttRp2489\nsS'Y:PMachine105'\np2490\ng35\n(S'Variable_Type'\n(I2\nttRp2491\nsS'Y:PMachine64'\np2492\ng35\n(S'Variable_Type'\n(I2\nttRp2493\nsS'Y:PMachine65'\np2494\ng35\n(S'Variable_Type'\n(I2\nttRp2495\nsS'Y:PMachine66'\np2496\ng35\n(S'Variable_Type'\n(I2\nttRp2497\nsS'Y:PMachine67'\np2498\ng35\n(S'Variable_Type'\n(I2\nttRp2499\nsS'Y:PMachine68'\np2500\ng35\n(S'Variable_Type'\n(I2\nttRp2501\nsS'Y:PMachine102'\np2502\ng35\n(S'Variable_Type'\n(I2\nttRp2503\nsS'X:ProdPV%Pnom'\np2504\ng1906\nsS'Y:VBus138'\np2505\ng35\n(S'Variable_Type'\n(I2\nttRp2506\nsS'Y26:%RateA 24-25'\np2507\ng35\n(S'Variable_Type'\n(I1\nttRp2508\nssg648\n(lp2509\ng650\nasba(iOWContexts\nContext\np2510\n(dp2511\ng24\n(lp2512\nsg26\n(dp2513\nsg28\n(dp2514\nS'attrLabel'\np2515\n(S''\nI-1\ntp2516\nsS'attrShape'\np2517\n(S''\nI0\ntp2518\nsS'attrX'\np2519\n(S'X:Load(pu)'\ng35\n(S'Variable_Type'\n(I2\nttRp2520\ntp2521\nsS'attrY'\np2522\n(S'X:Interco(bin)'\ng35\n(S'Variable_Type'\n(I1\nttRp2523\ntp2524\nsS'attrSize'\np2525\n(S''\nI0\ntp2526\nsS'attrColor'\np2527\n(S'X:ProdEolienne%Pnom'\ng35\n(S'Variable_Type'\n(I2\nttRp2528\ntp2529\nssg46\nF1368453819.1259999\nsg47\n(dp2530\nS'X:Interco(bin)'\np2531\ng2523\nsS'X:Load(pu)'\np2532\ng2520\nsS'X:ProdEolienne%Pnom'\np2533\ng2528\nssg648\n(lp2534\ng650\nasba(iOWContexts\nContext\np2535\n(dp2536\ng24\n(lp2537\nsg26\n(dp2538\nsg28\n(dp2539\nS'attrLabel'\np2540\n(S''\nI-1\ntp2541\nsS'attrShape'\np2542\n(S''\nI0\ntp2543\nsS'attrX'\np2544\n(S'X:Load(pu)'\ng35\n(S'Variable_Type'\n(I2\nttRp2545\ntp2546\nsS'attrY'\np2547\n(S'X:Interco(bin)'\ng35\n(S'Variable_Type'\n(I1\nttRp2548\ntp2549\nsS'attrSize'\np2550\n(S''\nI0\ntp2551\nsS'attrColor'\np2552\n(S'X:ProdEolienne%Pnom'\ng35\n(S'Variable_Type'\n(I2\nttRp2553\ntp2554\nssg46\nF1368453819.1259999\nsg47\n(dp2555\nS'X:Interco(bin)'\np2556\ng2548\nsS'X:Load(pu)'\np2557\ng2545\nsS'X:ProdEolienne%Pnom'\np2558\ng2553\nssg648\n(lp2559\nS'orderedDomain'\np2560\nasbasS'toolbarSelection'\np2561\nI0\nsS'graph.sendSelectionOnUpdate'\np2562\nI0\nsS'graph.showYLaxisTitle'\np2563\nI1\nsS'graph.showDistributions'\np2564\nNsS'colorSettings'\np2565\n(lp2566\n(S''\n(lp2567\n(lp2568\n(S'Canvas'\nL4294967295L\ntp2569\na(S'Grid'\nL4292335575L\ntp2570\naa(lp2571\n(S'contPalette'\n(L4283826047L\nL4294945280L\nI0\nttp2572\naa(lp2573\n(S'discPalette'\n(lp2574\n(I0\nI0\nI255\ntp2575\na(I255\nI0\nI0\ntp2576\na(I0\nI255\nI0\ntp2577\na(I255\nI128\nI0\ntp2578\na(I255\nI255\nI0\ntp2579\na(I255\nI0\nI255\ntp2580\na(I0\nI255\nI255\ntp2581\na(I128\nI0\nI255\ntp2582\na(I0\nI128\nI255\ntp2583\na(I255\nI223\nI128\ntp2584\na(I127\nI111\nI64\ntp2585\na(I92\nI46\nI0\ntp2586\na(I0\nI84\nI0\ntp2587\na(I192\nI192\nI0\ntp2588\na(I0\nI127\nI127\ntp2589\na(I128\nI0\nI0\ntp2590\na(I127\nI0\nI127\ntp2591\natp2592\naa(lp2593\natp2594\na(S'Default'\n(lp2595\n(lp2596\n(S'Canvas'\nL4294967295L\ntp2597\na(S'Grid'\nL4292335575L\ntp2598\naa(lp2599\n(S'contPalette'\n(L4294967295L\nL4278190080L\nI0\nttp2600\naa(lp2601\n(S'discPalette'\ng2574\ntp2602\naa(lp2603\natp2604\nasS'VizRankLearnerName'\np2605\nNs.&quot;, 'Attribute Statistics (2)': &quot;(dp1\nS'widgetShown'\np2\nI0\nsS'localContextsVersion'\np3\n(I100\nI0\ntp4\nsS'savedWidgetGeometry'\np5\nS'\\x01\\xd9\\xd0\\xcb\\x00\\x01\\x00\\x00\\xff\\xff\\xfb=\\xff\\xff\\xff\\xe8\\xff\\xff\\xfe\\x08\\x00\\x00\\x02c\\xff\\xff\\xfbE\\x00\\x00\\x00\\x04\\xff\\xff\\xfe\\x00\\x00\\x00\\x02[\\x00\\x00\\x00\\x01\\x00\\x00'\np6\nsS'sorting'\np7\nI2\nsS'localContexts'\np8\n(lp9\n(iOWContexts\nContext\np10\n(dp11\nS'noCopy'\np12\n(lp13\nS'orderedDomain'\np14\nasS'attributes'\np15\n(dp16\nS'Y:PMachine134 - CLUCCI35'\np17\ncOrange.orange\n__pickleLoaderNamedConstants\np18\n(S'Variable_Type'\n(I2\nttRp19\nsS'Y:VBus77 - CCORTE32'\np20\ng18\n(S'Variable_Type'\n(I2\nttRp21\nsS'Y:VBus134 - CLUCCI35'\np22\ng18\n(S'Variable_Type'\n(I2\nttRp23\nsS'Y:VBus109 - CSAGON32'\np24\ng18\n(S'Variable_Type'\n(I2\nttRp25\nsS'Y:VBus102 - CPORTO31'\np26\ng18\n(S'Variable_Type'\n(I2\nttRp27\nsS'XProdEolienne%Pnom'\np28\ng18\n(S'Variable_Type'\n(I2\nttRp29\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np30\ng18\n(S'Variable_Type'\n(I2\nttRp31\nsS'Y:PMachine94 - COCANA33'\np32\ng18\n(S'Variable_Type'\n(I2\nttRp33\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np34\ng18\n(S'Variable_Type'\n(I2\nttRp35\nsS'Y:PMachine87 - CLUCCI32'\np36\ng18\n(S'Variable_Type'\n(I2\nttRp37\nsS'Y:PMachine113 - CSAMPO32'\np38\ng18\n(S'Variable_Type'\n(I2\nttRp39\nsS'Y:Load 84 - CLORET31'\np40\ng18\n(S'Variable_Type'\n(I2\nttRp41\nsS'Y:PMachine89 - CLUCCI34'\np42\ng18\n(S'Variable_Type'\n(I2\nttRp43\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np44\ng18\n(S'Variable_Type'\n(I2\nttRp45\nsS'Y:Load 80 - CGHISO31'\np46\ng18\n(S'Variable_Type'\n(I2\nttRp47\nsS'Y:PMachine74 - CCERVI31'\np48\ng18\n(S'Variable_Type'\n(I2\nttRp49\nsS'Y:PMachine125 - CVAZZI36'\np50\ng18\n(S'Variable_Type'\n(I2\nttRp51\nsS'Y:Load 59 - CCALDA31'\np52\ng18\n(S'Variable_Type'\n(I2\nttRp53\nsS'Y:PMachine88 - CLUCCI33'\np54\ng18\n(S'Variable_Type'\n(I2\nttRp55\nsS'Y:PMachine120 - CVAZZI31'\np56\ng18\n(S'Variable_Type'\n(I2\nttRp57\nsS'Y:PMachine111 - CSTMAR31'\np58\ng18\n(S'Variable_Type'\n(I2\nttRp59\nsS'Y:NbeTransit'\np60\ng18\n(S'Variable_Type'\n(I2\nttRp61\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np62\ng18\n(S'Variable_Type'\n(I2\nttRp63\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np64\ng18\n(S'Variable_Type'\n(I2\nttRp65\nsS'Y:PMachine130 - CVAZZI311'\np66\ng18\n(S'Variable_Type'\n(I2\nttRp67\nsS'Y:PMachine127 - CVAZZI38'\np68\ng18\n(S'Variable_Type'\n(I2\nttRp69\nsS'Y:VBus131 - CVAZZI312'\np70\ng18\n(S'Variable_Type'\n(I2\nttRp71\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np72\ng18\n(S'Variable_Type'\n(I2\nttRp73\nsS'Y:PMachine123 - CVAZZI34'\np74\ng18\n(S'Variable_Type'\n(I2\nttRp75\nsS'Y:VBus118 - CTOLLA33'\np76\ng18\n(S'Variable_Type'\n(I2\nttRp77\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np78\ng18\n(S'Variable_Type'\n(I2\nttRp79\nsS'Y:PMachine58 - CBONIF32'\np80\ng18\n(S'Variable_Type'\n(I2\nttRp81\nsS'Y:Load 104 - CPROPR31'\np82\ng18\n(S'Variable_Type'\n(I2\nttRp83\nsS'Y:PMachine30 - CLUCCI22'\np84\ng18\n(S'Variable_Type'\n(I2\nttRp85\nsS'Y:VBus100 - COLETT31'\np86\ng18\n(S'Variable_Type'\n(I2\nttRp87\nsS'Y:PProdTot'\np88\ng18\n(S'Variable_Type'\n(I2\nttRp89\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np90\ng18\n(S'Variable_Type'\n(I2\nttRp91\nsS'Y:VBus57 - CBONIF31'\np92\ng18\n(S'Variable_Type'\n(I2\nttRp93\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np94\ng18\n(S'Variable_Type'\n(I2\nttRp95\nsS'Y:PConsoTot'\np96\ng18\n(S'Variable_Type'\n(I2\nttRp97\nsS'Iteration'\np98\ng18\n(S'Variable_Type'\n(I2\nttRp99\nsS'Y:PMachine109 - CSAGON32'\np100\ng18\n(S'Variable_Type'\n(I2\nttRp101\nsS'Y:PMachine135 - CLUCCI36'\np102\ng18\n(S'Variable_Type'\n(I2\nttRp103\nsS'Y:VBus30 - CLUCCI22'\np104\ng18\n(S'Variable_Type'\n(I2\nttRp105\nsS'Y:VBus122 - CVAZZI33'\np106\ng18\n(S'Variable_Type'\n(I2\nttRp107\nsS'Y:VBus22 - CCORTE21'\np108\ng18\n(S'Variable_Type'\n(I2\nttRp109\nsS'Y:VBus117 - CTOLLA32'\np110\ng18\n(S'Variable_Type'\n(I2\nttRp111\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np112\ng18\n(S'Variable_Type'\n(I2\nttRp113\nsS'Y:PMachine107 - CRIZZA32'\np114\ng18\n(S'Variable_Type'\n(I2\nttRp115\nsS'Y:VBus16 - CCALDA21'\np116\ng18\n(S'Variable_Type'\n(I2\nttRp117\nsS'Y:Load 102 - CPORTO31'\np118\ng18\n(S'Variable_Type'\n(I2\nttRp119\nsS'Y:VBus107 - CRIZZA32'\np120\ng18\n(S'Variable_Type'\n(I2\nttRp121\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np122\ng18\n(S'Variable_Type'\n(I2\nttRp123\nsS'Y:VBus41 - CSAMPO21'\np124\ng18\n(S'Variable_Type'\n(I2\nttRp125\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np126\ng18\n(S'Variable_Type'\n(I2\nttRp127\nsS'Y:VBus34 - CPIETR21'\np128\ng18\n(S'Variable_Type'\n(I2\nttRp129\nsS'Y:Load 108 - CSAGON31'\np130\ng18\n(S'Variable_Type'\n(I2\nttRp131\nsS'Y:VBus56 - CBIGUG32'\np132\ng18\n(S'Variable_Type'\n(I2\nttRp133\nsS'Y:PMachine42 - CSISCO21'\np134\ng18\n(S'Variable_Type'\n(I2\nttRp135\nsS'Y:PMachine138 - CLUCCI39'\np136\ng18\n(S'Variable_Type'\n(I2\nttRp137\nsS'Y:PMachine112 - CSAMPO31'\np138\ng18\n(S'Variable_Type'\n(I2\nttRp139\nsS'Y:VBus105 - CPROPR32'\np140\ng18\n(S'Variable_Type'\n(I2\nttRp141\nsS'Y:VBus1 - CBONIF11'\np142\ng18\n(S'Variable_Type'\n(I2\nttRp143\nsS'Y:VBus12 - CBASTI21'\np144\ng18\n(S'Variable_Type'\n(I2\nttRp145\nsS'Y:PMachine129 - CVAZZI310'\np146\ng18\n(S'Variable_Type'\n(I2\nttRp147\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np148\ng18\n(S'Variable_Type'\n(I2\nttRp149\nsS'Y:VBus35 - CPORTO21'\np150\ng18\n(S'Variable_Type'\n(I2\nttRp151\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np152\ng18\n(S'Variable_Type'\n(I2\nttRp153\nsS'Y:VBus54 - CBASTI32'\np154\ng18\n(S'Variable_Type'\n(I2\nttRp155\nsS'Y:VBus69 - CCASAM37'\np156\ng18\n(S'Variable_Type'\n(I2\nttRp157\nsS'Y:VBus45 - CTOLLA21'\np158\ng18\n(S'Variable_Type'\n(I2\nttRp159\nsS'Y:PMachine115 - CTAGLI31'\np160\ng18\n(S'Variable_Type'\n(I2\nttRp161\nsS'Y:VBus43 - CSOVEN21'\np162\ng18\n(S'Variable_Type'\n(I2\nttRp163\nsS'Y:VBus76 - CCORTE31'\np164\ng18\n(S'Variable_Type'\n(I2\nttRp165\nsS'Y:VBus75 - CCORSC31'\np166\ng18\n(S'Variable_Type'\n(I2\nttRp167\nsS'Y:PMachine78 - CFURIA31'\np168\ng18\n(S'Variable_Type'\n(I2\nttRp169\nsS'Y:VBus127 - CVAZZI38'\np170\ng18\n(S'Variable_Type'\n(I2\nttRp171\nsS'Y:VBus115 - CTAGLI31'\np172\ng18\n(S'Variable_Type'\n(I2\nttRp173\nsS'Y:Load 61 - CCALVI31'\np174\ng18\n(S'Variable_Type'\n(I2\nttRp175\nsS'Y:VBus55 - CBIGUG31'\np176\ng18\n(S'Variable_Type'\n(I2\nttRp177\nsS'Y:Load 42 - CSISCO21'\np178\ng18\n(S'Variable_Type'\n(I2\nttRp179\nsS'Y:VBus72 - CCASTI31'\np180\ng18\n(S'Variable_Type'\n(I2\nttRp181\nsS'Y:Load 37 - CRIZZA21'\np182\ng18\n(S'Variable_Type'\n(I2\nttRp183\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np184\ng18\n(S'Variable_Type'\n(I2\nttRp185\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np186\ng18\n(S'Variable_Type'\n(I2\nttRp187\nsS'Y:PMachine137 - CLUCCI38'\np188\ng18\n(S'Variable_Type'\n(I2\nttRp189\nsS'Y:PMachine67 - CCASAM35'\np190\ng18\n(S'Variable_Type'\n(I2\nttRp191\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np192\ng18\n(S'Variable_Type'\n(I2\nttRp193\nsS'Y:VBus31 - CMOROS21'\np194\ng18\n(S'Variable_Type'\n(I2\nttRp195\nsS'Y:VBus103 - CPORTO32'\np196\ng18\n(S'Variable_Type'\n(I2\nttRp197\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np198\ng18\n(S'Variable_Type'\n(I2\nttRp199\nsS'Y:PMachine128 - CVAZZI39'\np200\ng18\n(S'Variable_Type'\n(I2\nttRp201\nsS'Y:PMachine72 - CCASTI31'\np202\ng18\n(S'Variable_Type'\n(I2\nttRp203\nsS'Y:VBus27 - CILERO21'\np204\ng18\n(S'Variable_Type'\n(I2\nttRp205\nsS'Y:VBus11 - CASPRE21'\np206\ng18\n(S'Variable_Type'\n(I2\nttRp207\nsS'Y:PMachine75 - CCORSC31'\np208\ng18\n(S'Variable_Type'\n(I2\nttRp209\nsS'Y:Load 51 - CASPRE31'\np210\ng18\n(S'Variable_Type'\n(I2\nttRp211\nsS'Y:PMachine61 - CCALVI31'\np212\ng18\n(S'Variable_Type'\n(I2\nttRp213\nsS'Y:VBus51 - CASPRE31'\np214\ng18\n(S'Variable_Type'\n(I2\nttRp215\nsS'Y:VBus114 - CSOVEN31'\np216\ng18\n(S'Variable_Type'\n(I2\nttRp217\nsS'Y:VBus116 - CTOLLA31'\np218\ng18\n(S'Variable_Type'\n(I2\nttRp219\nsS'Y:Load 86 - CLUCCI31'\np220\ng18\n(S'Variable_Type'\n(I2\nttRp221\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np222\ng18\n(S'Variable_Type'\n(I2\nttRp223\nsS'Y:PMachine116 - CTOLLA31'\np224\ng18\n(S'Variable_Type'\n(I2\nttRp225\nsS'Y:PMachine104 - CPROPR31'\np226\ng18\n(S'Variable_Type'\n(I2\nttRp227\nsS'Y:VBus128 - CVAZZI39'\np228\ng18\n(S'Variable_Type'\n(I2\nttRp229\nsS'Y:PMachine136 - CLUCCI37'\np230\ng18\n(S'Variable_Type'\n(I2\nttRp231\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np232\ng18\n(S'Variable_Type'\n(I2\nttRp233\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np234\ng18\n(S'Variable_Type'\n(I2\nttRp235\nsS'Y:PMachine68 - CCASAM36'\np236\ng18\n(S'Variable_Type'\n(I2\nttRp237\nsS'Y:PMachine29 - CLUCCI21'\np238\ng18\n(S'Variable_Type'\n(I2\nttRp239\nsS'Y:VBus42 - CSISCO21'\np240\ng18\n(S'Variable_Type'\n(I2\nttRp241\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np242\ng18\n(S'Variable_Type'\n(I2\nttRp243\nsS'Y:VBus14 - CBONIF21'\np244\ng18\n(S'Variable_Type'\n(I2\nttRp245\nsS'Y:VBus73 - CCASTI32'\np246\ng18\n(S'Variable_Type'\n(I2\nttRp247\nsS'Y:VBus64 - CCASAM32'\np248\ng18\n(S'Variable_Type'\n(I2\nttRp249\nsS'Y:PMachine14 - CBONIF21'\np250\ng18\n(S'Variable_Type'\n(I2\nttRp251\nsS'Y:PMachine62 - CCALVI32'\np252\ng18\n(S'Variable_Type'\n(I2\nttRp253\nsS'Y:VBus133 - CVAZZI314'\np254\ng18\n(S'Variable_Type'\n(I2\nttRp255\nsS'Y:VBus63 - CCASAM31'\np256\ng18\n(S'Variable_Type'\n(I2\nttRp257\nsS'Y:PMachine101 - CPIETR31'\np258\ng18\n(S'Variable_Type'\n(I2\nttRp259\nsS'Y:%Losses'\np260\ng18\n(S'Variable_Type'\n(I2\nttRp261\nsS'Y:VBus85 - CLORET32'\np262\ng18\n(S'Variable_Type'\n(I2\nttRp263\nsS'Y:Load 115 - CTAGLI31'\np264\ng18\n(S'Variable_Type'\n(I2\nttRp265\nsS'Y:VBus129 - CVAZZI310'\np266\ng18\n(S'Variable_Type'\n(I2\nttRp267\nsS'Y:VBus101 - CPIETR31'\np268\ng18\n(S'Variable_Type'\n(I2\nttRp269\nsS'Y:PMachine106 - CRIZZA31'\np270\ng18\n(S'Variable_Type'\n(I2\nttRp271\nsS'Y:VBus132 - CVAZZI313'\np272\ng18\n(S'Variable_Type'\n(I2\nttRp273\nsS'Y:PMachine118 - CTOLLA33'\np274\ng18\n(S'Variable_Type'\n(I2\nttRp275\nsS'Y:VBus19 - CCASTI21'\np276\ng18\n(S'Variable_Type'\n(I2\nttRp277\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np278\ng18\n(S'Variable_Type'\n(I2\nttRp279\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np280\ng18\n(S'Variable_Type'\n(I2\nttRp281\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np282\ng18\n(S'Variable_Type'\n(I2\nttRp283\nsS'Y:PMachine53 - CBASTI31'\np284\ng18\n(S'Variable_Type'\n(I2\nttRp285\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np286\ng18\n(S'Variable_Type'\n(I2\nttRp287\nsS'Y:VBus15 - CBONIF22'\np288\ng18\n(S'Variable_Type'\n(I2\nttRp289\nsS'Y:PMachine47 - CVAZZI21'\np290\ng18\n(S'Variable_Type'\n(I2\nttRp291\nsS'Y:VBus123 - CVAZZI34'\np292\ng18\n(S'Variable_Type'\n(I2\nttRp293\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np294\ng18\n(S'Variable_Type'\n(I2\nttRp295\nsS'Y:VBus60 - CCALDA32'\np296\ng18\n(S'Variable_Type'\n(I2\nttRp297\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np298\ng18\n(S'Variable_Type'\n(I2\nttRp299\nsS'Y:VBus65 - CCASAM33'\np300\ng18\n(S'Variable_Type'\n(I2\nttRp301\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np302\ng18\n(S'Variable_Type'\n(I2\nttRp303\nsS'Y:PMachine139 - CLUCCI310'\np304\ng18\n(S'Variable_Type'\n(I2\nttRp305\nsS'Y:VBus112 - CSAMPO31'\np306\ng18\n(S'Variable_Type'\n(I2\nttRp307\nsS'Y:VBus68 - CCASAM36'\np308\ng18\n(S'Variable_Type'\n(I2\nttRp309\nsS'Y:Load 55 - CBIGUG31'\np310\ng18\n(S'Variable_Type'\n(I2\nttRp311\nsS'Y:Max%A'\np312\ng18\n(S'Variable_Type'\n(I2\nttRp313\nsS'Y:NbeTransit_0.9-1'\np314\ng18\n(S'Variable_Type'\n(I2\nttRp315\nsS'Y:VBus24 - CFURIA21'\np316\ng18\n(S'Variable_Type'\n(I2\nttRp317\nsS'Y:VBus23 - CCORTE22'\np318\ng18\n(S'Variable_Type'\n(I2\nttRp319\nsS'Y:VBus18 - CCASAM21'\np320\ng18\n(S'Variable_Type'\n(I2\nttRp321\nsS'Y:VBus40 - CSTMAR21'\np322\ng18\n(S'Variable_Type'\n(I2\nttRp323\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np324\ng18\n(S'Variable_Type'\n(I2\nttRp325\nsS'Y:PMachine124 - CVAZZI35'\np326\ng18\n(S'Variable_Type'\n(I2\nttRp327\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np328\ng18\n(S'Variable_Type'\n(I2\nttRp329\nsS'Y:PMachine117 - CTOLLA32'\np330\ng18\n(S'Variable_Type'\n(I2\nttRp331\nsS'Y:Load 82 - CILERO31'\np332\ng18\n(S'Variable_Type'\n(I2\nttRp333\nsS'Y:VBus33 - COLETT21'\np334\ng18\n(S'Variable_Type'\n(I2\nttRp335\nsS'Y:VBus32 - COCANA21'\np336\ng18\n(S'Variable_Type'\n(I2\nttRp337\nsS'Y:PMachine121 - CVAZZI32'\np338\ng18\n(S'Variable_Type'\n(I2\nttRp339\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np340\ng18\n(S'Variable_Type'\n(I2\nttRp341\nsS'Y:VBus59 - CCALDA31'\np342\ng18\n(S'Variable_Type'\n(I2\nttRp343\nsS'Y:VBus82 - CILERO31'\np344\ng18\n(S'Variable_Type'\n(I2\nttRp345\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np346\ng18\n(S'Variable_Type'\n(I2\nttRp347\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np348\ng18\n(S'Variable_Type'\n(I2\nttRp349\nsS'Y:VBus37 - CRIZZA21'\np350\ng18\n(S'Variable_Type'\n(I2\nttRp351\nsS'Y:PMachine73 - CCASTI32'\np352\ng18\n(S'Variable_Type'\n(I2\nttRp353\nsS'Y:PMachine86 - CLUCCI31'\np354\ng18\n(S'Variable_Type'\n(I2\nttRp355\nsS'Y:Load 53 - CBASTI31'\np356\ng18\n(S'Variable_Type'\n(I2\nttRp357\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np358\ng18\n(S'Variable_Type'\n(I2\nttRp359\nsS'Y:VBus21 - CCORSC21'\np360\ng18\n(S'Variable_Type'\n(I2\nttRp361\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np362\ng18\n(S'Variable_Type'\n(I2\nttRp363\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np364\ng18\n(S'Variable_Type'\n(I2\nttRp365\nsS'Y:PMachine126 - CVAZZI37'\np366\ng18\n(S'Variable_Type'\n(I2\nttRp367\nsS'Y:PMachine64 - CCASAM32'\np368\ng18\n(S'Variable_Type'\n(I2\nttRp369\nsS'Y:VBus67 - CCASAM35'\np370\ng18\n(S'Variable_Type'\n(I2\nttRp371\nsS'Y:VBus53 - CBASTI31'\np372\ng18\n(S'Variable_Type'\n(I2\nttRp373\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np374\ng18\n(S'Variable_Type'\n(I2\nttRp375\nsS'Y:VBus61 - CCALVI31'\np376\ng18\n(S'Variable_Type'\n(I2\nttRp377\nsS'Y:VBus93 - COCANA32'\np378\ng18\n(S'Variable_Type'\n(I2\nttRp379\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np380\ng18\n(S'Variable_Type'\n(I2\nttRp381\nsS'Y:VBus104 - CPROPR31'\np382\ng18\n(S'Variable_Type'\n(I2\nttRp383\nsS'Y:VBus48 - CZSSS621'\np384\ng18\n(S'Variable_Type'\n(I2\nttRp385\nsS'Y:PMachine85 - CLORET32'\np386\ng18\n(S'Variable_Type'\n(I2\nttRp387\nsS'Y:VBus74 - CCERVI31'\np388\ng18\n(S'Variable_Type'\n(I2\nttRp389\nsS'X:ProdPV%Pnom'\np390\ng18\n(S'Variable_Type'\n(I2\nttRp391\nsS'Y:VBus89 - CLUCCI34'\np392\ng18\n(S'Variable_Type'\n(I2\nttRp393\nsS'Y:Load 100 - COLETT31'\np394\ng18\n(S'Variable_Type'\n(I2\nttRp395\nsS'Y:PMachine54 - CBASTI32'\np396\ng18\n(S'Variable_Type'\n(I2\nttRp397\nsS'Y:VBus138 - CLUCCI39'\np398\ng18\n(S'Variable_Type'\n(I2\nttRp399\nsS'Y:VBus39 - CSTLUC21'\np400\ng18\n(S'Variable_Type'\n(I2\nttRp401\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np402\ng18\n(S'Variable_Type'\n(I2\nttRp403\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np404\ng18\n(S'Variable_Type'\n(I2\nttRp405\nsS'Y:Load 78 - CFURIA31'\np406\ng18\n(S'Variable_Type'\n(I2\nttRp407\nsS'Y:VBus28 - CLORET21'\np408\ng18\n(S'Variable_Type'\n(I2\nttRp409\nsS'Y:PMachine105 - CPROPR32'\np410\ng18\n(S'Variable_Type'\n(I2\nttRp411\nsS'Y:VBus96 - COCANA35'\np412\ng18\n(S'Variable_Type'\n(I2\nttRp413\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np414\ng18\n(S'Variable_Type'\n(I2\nttRp415\nsS'Y:PMachine18 - CCASAM21'\np416\ng18\n(S'Variable_Type'\n(I2\nttRp417\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np418\ng18\n(S'Variable_Type'\n(I2\nttRp419\nsS'Y:VBus13 - CBIGUG21'\np420\ng18\n(S'Variable_Type'\n(I2\nttRp421\nsS'Y:VBus92 - COCANA31'\np422\ng18\n(S'Variable_Type'\n(I2\nttRp423\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np424\ng18\n(S'Variable_Type'\n(I2\nttRp425\nsS'Y:Load 57 - CBONIF31'\np426\ng18\n(S'Variable_Type'\n(I2\nttRp427\nsS'Y:VBus58 - CBONIF32'\np428\ng18\n(S'Variable_Type'\n(I2\nttRp429\nsS'Y:VBus84 - CLORET31'\np430\ng18\n(S'Variable_Type'\n(I2\nttRp431\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np432\ng18\n(S'Variable_Type'\n(I2\nttRp433\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np434\ng18\n(S'Variable_Type'\n(I2\nttRp435\nsS'Y:VBus97 - COCANA36'\np436\ng18\n(S'Variable_Type'\n(I2\nttRp437\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np438\ng18\n(S'Variable_Type'\n(I2\nttRp439\nsS'Y:VBus79 - CFURIA32'\np440\ng18\n(S'Variable_Type'\n(I2\nttRp441\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np442\ng18\n(S'Variable_Type'\n(I2\nttRp443\nsS'Y:Load 110 - CSTLUC31'\np444\ng18\n(S'Variable_Type'\n(I2\nttRp445\nsS'Y:VBus80 - CGHISO31'\np446\ng18\n(S'Variable_Type'\n(I2\nttRp447\nsS'Y:PMachine114 - CSOVEN31'\np448\ng18\n(S'Variable_Type'\n(I2\nttRp449\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np450\ng18\n(S'Variable_Type'\n(I2\nttRp451\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np452\ng18\n(S'Variable_Type'\n(I2\nttRp453\nsS'Y:PMachine93 - COCANA32'\np454\ng18\n(S'Variable_Type'\n(I2\nttRp455\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np456\ng18\n(S'Variable_Type'\n(I2\nttRp457\nsS'Y:VBus87 - CLUCCI32'\np458\ng18\n(S'Variable_Type'\n(I2\nttRp459\nsS'Y:VBus62 - CCALVI32'\np460\ng18\n(S'Variable_Type'\n(I2\nttRp461\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np462\ng18\n(S'Variable_Type'\n(I2\nttRp463\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np464\ng18\n(S'Variable_Type'\n(I2\nttRp465\nsS'Y:VBus81 - CGHISO32'\np466\ng18\n(S'Variable_Type'\n(I2\nttRp467\nsS'Y:PMachine63 - CCASAM31'\np468\ng18\n(S'Variable_Type'\n(I2\nttRp469\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np470\ng18\n(S'Variable_Type'\n(I2\nttRp471\nsS'Y:VBus86 - CLUCCI31'\np472\ng18\n(S'Variable_Type'\n(I2\nttRp473\nsS'X:Load(pu)'\np474\ng18\n(S'Variable_Type'\n(I2\nttRp475\nsS'Y:VBus95 - COCANA34'\np476\ng18\n(S'Variable_Type'\n(I2\nttRp477\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np478\ng18\n(S'Variable_Type'\n(I2\nttRp479\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np480\ng18\n(S'Variable_Type'\n(I2\nttRp481\nsS'Y:Load 95 - COCANA34'\np482\ng18\n(S'Variable_Type'\n(I2\nttRp483\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np484\ng18\n(S'Variable_Type'\n(I2\nttRp485\nsS'Y:PMachine90 - CMOROS31'\np486\ng18\n(S'Variable_Type'\n(I2\nttRp487\nsS'Y:Load 101 - CPIETR31'\np488\ng18\n(S'Variable_Type'\n(I2\nttRp489\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np490\ng18\n(S'Variable_Type'\n(I2\nttRp491\nsS'Y:PMachine132 - CVAZZI313'\np492\ng18\n(S'Variable_Type'\n(I2\nttRp493\nsS'Y:VBus125 - CVAZZI36'\np494\ng18\n(S'Variable_Type'\n(I2\nttRp495\nsS'Y:VBus135 - CLUCCI36'\np496\ng18\n(S'Variable_Type'\n(I2\nttRp497\nsS'Y:VBus47 - CVAZZI21'\np498\ng18\n(S'Variable_Type'\n(I2\nttRp499\nsS'Y:VBus94 - COCANA33'\np500\ng18\n(S'Variable_Type'\n(I2\nttRp501\nsS'Y:VBus17 - CCALVI21'\np502\ng18\n(S'Variable_Type'\n(I2\nttRp503\nsS'Y:VBus36 - CPROPR21'\np504\ng18\n(S'Variable_Type'\n(I2\nttRp505\nsS'Y:Load 90 - CMOROS31'\np506\ng18\n(S'Variable_Type'\n(I2\nttRp507\nsS'Y:VBus120 - CVAZZI31'\np508\ng18\n(S'Variable_Type'\n(I2\nttRp509\nsS'Y:VBus52 - CASPRE32'\np510\ng18\n(S'Variable_Type'\n(I2\nttRp511\nsS'Y:VBus25 - CFURIA22'\np512\ng18\n(S'Variable_Type'\n(I2\nttRp513\nsS'Y:Load 76 - CCORTE31'\np514\ng18\n(S'Variable_Type'\n(I2\nttRp515\nsS'Y:PMachine69 - CCASAM37'\np516\ng18\n(S'Variable_Type'\n(I2\nttRp517\nsS'Y:Load 74 - CCERVI31'\np518\ng18\n(S'Variable_Type'\n(I2\nttRp519\nsS'Y:PMachine92 - COCANA31'\np520\ng18\n(S'Variable_Type'\n(I2\nttRp521\nsS'Y:PMachine102 - CPORTO31'\np522\ng18\n(S'Variable_Type'\n(I2\nttRp523\nsS'Y:PMachine122 - CVAZZI33'\np524\ng18\n(S'Variable_Type'\n(I2\nttRp525\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np526\ng18\n(S'Variable_Type'\n(I2\nttRp527\nsS'Y:PMachine77 - CCORTE32'\np528\ng18\n(S'Variable_Type'\n(I2\nttRp529\nsS'Y:NbeTension'\np530\ng18\n(S'Variable_Type'\n(I2\nttRp531\nsS'Y:VBus126 - CVAZZI37'\np532\ng18\n(S'Variable_Type'\n(I2\nttRp533\nsS'Y:PMachine60 - CCALDA32'\np534\ng18\n(S'Variable_Type'\n(I2\nttRp535\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np536\ng18\n(S'Variable_Type'\n(I2\nttRp537\nsS'Y:VBus20 - CCERVI21'\np538\ng18\n(S'Variable_Type'\n(I2\nttRp539\nsS'Y:VBus119 - CTRAVO31'\np540\ng18\n(S'Variable_Type'\n(I2\nttRp541\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np542\ng18\n(S'Variable_Type'\n(I2\nttRp543\nsS'Y:VBus139 - CLUCCI310'\np544\ng18\n(S'Variable_Type'\n(I2\nttRp545\nsS'Y:VBus106 - CRIZZA31'\np546\ng18\n(S'Variable_Type'\n(I2\nttRp547\nsS'Y:PMachine66 - CCASAM34'\np548\ng18\n(S'Variable_Type'\n(I2\nttRp549\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np550\ng18\n(S'Variable_Type'\n(I2\nttRp551\nsS'Y:VBus136 - CLUCCI37'\np552\ng18\n(S'Variable_Type'\n(I2\nttRp553\nsS'Y:VBus90 - CMOROS31'\np554\ng18\n(S'Variable_Type'\n(I2\nttRp555\nsS'X:lineOff#'\np556\ng18\n(S'Variable_Type'\n(I2\nttRp557\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np558\ng18\n(S'Variable_Type'\n(I2\nttRp559\nsS'Y:VBus108 - CSAGON31'\np560\ng18\n(S'Variable_Type'\n(I2\nttRp561\nsS'Y:VBus137 - CLUCCI38'\np562\ng18\n(S'Variable_Type'\n(I2\nttRp563\nsS'Y:VBus130 - CVAZZI311'\np564\ng18\n(S'Variable_Type'\n(I2\nttRp565\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np566\ng18\n(S'Variable_Type'\n(I2\nttRp567\nsS'Y:VBus46 - CTRAVO21'\np568\ng18\n(S'Variable_Type'\n(I2\nttRp569\nsS'Y:VBus113 - CSAMPO32'\np570\ng18\n(S'Variable_Type'\n(I2\nttRp571\nsS'Y:PMachine133 - CVAZZI314'\np572\ng18\n(S'Variable_Type'\n(I2\nttRp573\nsS'Y:PMachine65 - CCASAM33'\np574\ng18\n(S'Variable_Type'\n(I2\nttRp575\nsS'Y:VBus78 - CFURIA31'\np576\ng18\n(S'Variable_Type'\n(I2\nttRp577\nsS'Y:VBus26 - CGHISO21'\np578\ng18\n(S'Variable_Type'\n(I2\nttRp579\nsS'Y:VBus121 - CVAZZI32'\np580\ng18\n(S'Variable_Type'\n(I2\nttRp581\nsS'Y:PMachine81 - CGHISO32'\np582\ng18\n(S'Variable_Type'\n(I2\nttRp583\nsS'Y:PMachine97 - COCANA36'\np584\ng18\n(S'Variable_Type'\n(I2\nttRp585\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np586\ng18\n(S'Variable_Type'\n(I2\nttRp587\nsS'Y:PMachine83 - CILERO32'\np588\ng18\n(S'Variable_Type'\n(I2\nttRp589\nsS'Y:VBus83 - CILERO32'\np590\ng18\n(S'Variable_Type'\n(I2\nttRp591\nsS'Y:VBus66 - CCASAM34'\np592\ng18\n(S'Variable_Type'\n(I2\nttRp593\nsS'Y:PMachine1 - CBONIF11'\np594\ng18\n(S'Variable_Type'\n(I2\nttRp595\nsS'Y:VBus111 - CSTMAR31'\np596\ng18\n(S'Variable_Type'\n(I2\nttRp597\nsS'Y:VBus124 - CVAZZI35'\np598\ng18\n(S'Variable_Type'\n(I2\nttRp599\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np600\ng18\n(S'Variable_Type'\n(I2\nttRp601\nsS'Y:PMachine131 - CVAZZI312'\np602\ng18\n(S'Variable_Type'\n(I2\nttRp603\nsS'Y:VBus44 - CTAGLI21'\np604\ng18\n(S'Variable_Type'\n(I2\nttRp605\nsS'Y:VBus88 - CLUCCI33'\np606\ng18\n(S'Variable_Type'\n(I2\nttRp607\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np608\ng18\n(S'Variable_Type'\n(I2\nttRp609\nsS'Y:VBus38 - CSAGON21'\np610\ng18\n(S'Variable_Type'\n(I2\nttRp611\nsS'Y:VBus29 - CLUCCI21'\np612\ng18\n(S'Variable_Type'\n(I2\nttRp613\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np614\ng18\n(S'Variable_Type'\n(I2\nttRp615\nsS'Y:VBus110 - CSTLUC31'\np616\ng18\n(S'Variable_Type'\n(I2\nttRp617\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np618\ng18\n(S'Variable_Type'\n(I2\nttRp619\nssS'metas'\np620\n(dp621\nsS'values'\np622\n(dp623\nS'HighlightedAttribute'\np624\n(I3\nI-2\ntp625\nssS'time'\np626\nF1370016685.8180001\nsba(iOWContexts\nContext\np627\n(dp628\ng622\n(dp629\nS'HighlightedAttribute'\np630\n(I13\nI-2\ntp631\nssg15\n(dp632\nS'Y:PMachine134 - CLUCCI35'\np633\ng18\n(S'Variable_Type'\n(I2\nttRp634\nsS'Y:VBus77 - CCORTE32'\np635\ng18\n(S'Variable_Type'\n(I2\nttRp636\nsS'Y:VBus134 - CLUCCI35'\np637\ng18\n(S'Variable_Type'\n(I2\nttRp638\nsS'Y:VBus109 - CSAGON32'\np639\ng18\n(S'Variable_Type'\n(I2\nttRp640\nsS'Y:VBus102 - CPORTO31'\np641\ng18\n(S'Variable_Type'\n(I2\nttRp642\nsS'Y:VBus18 - CCASAM21'\np643\ng18\n(S'Variable_Type'\n(I2\nttRp644\nsS'Y:VBus114 - CSOVEN31'\np645\ng18\n(S'Variable_Type'\n(I2\nttRp646\nsS'Y:VBus83 - CILERO32'\np647\ng18\n(S'Variable_Type'\n(I2\nttRp648\nsS'Y:VBus117 - CTOLLA32'\np649\ng18\n(S'Variable_Type'\n(I2\nttRp650\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np651\ng18\n(S'Variable_Type'\n(I2\nttRp652\nsS'Y:PMachine87 - CLUCCI32'\np653\ng18\n(S'Variable_Type'\n(I2\nttRp654\nsS'Y:PMachine113 - CSAMPO32'\np655\ng18\n(S'Variable_Type'\n(I2\nttRp656\nsS'Y:Load 84 - CLORET31'\np657\ng18\n(S'Variable_Type'\n(I2\nttRp658\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np659\ng18\n(S'Variable_Type'\n(I2\nttRp660\nsS'Y:Load 80 - CGHISO31'\np661\ng18\n(S'Variable_Type'\n(I2\nttRp662\nsS'Y:PMachine125 - CVAZZI36'\np663\ng18\n(S'Variable_Type'\n(I2\nttRp664\nsS'Y:VBus116 - CTOLLA31'\np665\ng18\n(S'Variable_Type'\n(I2\nttRp666\nsS'Y:PMachine88 - CLUCCI33'\np667\ng18\n(S'Variable_Type'\n(I2\nttRp668\nsS'Y:PMachine124 - CVAZZI35'\np669\ng18\n(S'Variable_Type'\n(I2\nttRp670\nsS'Y:PMachine111 - CSTMAR31'\np671\ng18\n(S'Variable_Type'\n(I2\nttRp672\nsS'Y:NbeTransit'\np673\ng18\n(S'Variable_Type'\n(I2\nttRp674\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np675\ng18\n(S'Variable_Type'\n(I2\nttRp676\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np677\ng18\n(S'Variable_Type'\n(I2\nttRp678\nsS'Y:PMachine130 - CVAZZI311'\np679\ng18\n(S'Variable_Type'\n(I2\nttRp680\nsS'Y:PMachine127 - CVAZZI38'\np681\ng18\n(S'Variable_Type'\n(I2\nttRp682\nsS'Y:VBus131 - CVAZZI312'\np683\ng18\n(S'Variable_Type'\n(I2\nttRp684\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np685\ng18\n(S'Variable_Type'\n(I2\nttRp686\nsS'Y:PMachine123 - CVAZZI34'\np687\ng18\n(S'Variable_Type'\n(I2\nttRp688\nsS'Y:VBus118 - CTOLLA33'\np689\ng18\n(S'Variable_Type'\n(I2\nttRp690\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np691\ng18\n(S'Variable_Type'\n(I2\nttRp692\nsS'Y:PMachine58 - CBONIF32'\np693\ng18\n(S'Variable_Type'\n(I2\nttRp694\nsS'Y:VBus90 - CMOROS31'\np695\ng18\n(S'Variable_Type'\n(I2\nttRp696\nsS'Y:Load 104 - CPROPR31'\np697\ng18\n(S'Variable_Type'\n(I2\nttRp698\nsS'Y:PMachine30 - CLUCCI22'\np699\ng18\n(S'Variable_Type'\n(I2\nttRp700\nsS'Y:VBus100 - COLETT31'\np701\ng18\n(S'Variable_Type'\n(I2\nttRp702\nsS'Y:PProdTot'\np703\ng18\n(S'Variable_Type'\n(I2\nttRp704\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np705\ng18\n(S'Variable_Type'\n(I2\nttRp706\nsS'Y:VBus57 - CBONIF31'\np707\ng18\n(S'Variable_Type'\n(I2\nttRp708\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np709\ng18\n(S'Variable_Type'\n(I2\nttRp710\nsS'Y:PMachine131 - CVAZZI312'\np711\ng18\n(S'Variable_Type'\n(I2\nttRp712\nsS'Y:PMachine109 - CSAGON32'\np713\ng18\n(S'Variable_Type'\n(I2\nttRp714\nsS'Y:PMachine135 - CLUCCI36'\np715\ng18\n(S'Variable_Type'\n(I2\nttRp716\nsS'Y:VBus30 - CLUCCI22'\np717\ng18\n(S'Variable_Type'\n(I2\nttRp718\nsS'Y:VBus122 - CVAZZI33'\np719\ng18\n(S'Variable_Type'\n(I2\nttRp720\nsS'Y:VBus22 - CCORTE21'\np721\ng18\n(S'Variable_Type'\n(I2\nttRp722\nsS'Y:PMachine89 - CLUCCI34'\np723\ng18\n(S'Variable_Type'\n(I2\nttRp724\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np725\ng18\n(S'Variable_Type'\n(I2\nttRp726\nsS'Y:PMachine107 - CRIZZA32'\np727\ng18\n(S'Variable_Type'\n(I2\nttRp728\nsS'Y:VBus16 - CCALDA21'\np729\ng18\n(S'Variable_Type'\n(I2\nttRp730\nsS'Y:Load 102 - CPORTO31'\np731\ng18\n(S'Variable_Type'\n(I2\nttRp732\nsS'Y:VBus107 - CRIZZA32'\np733\ng18\n(S'Variable_Type'\n(I2\nttRp734\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np735\ng18\n(S'Variable_Type'\n(I2\nttRp736\nsS'Y:VBus41 - CSAMPO21'\np737\ng18\n(S'Variable_Type'\n(I2\nttRp738\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np739\ng18\n(S'Variable_Type'\n(I2\nttRp740\nsS'Y:VBus34 - CPIETR21'\np741\ng18\n(S'Variable_Type'\n(I2\nttRp742\nsS'Y:Load 108 - CSAGON31'\np743\ng18\n(S'Variable_Type'\n(I2\nttRp744\nsS'Y:VBus56 - CBIGUG32'\np745\ng18\n(S'Variable_Type'\n(I2\nttRp746\nsS'Y:PMachine42 - CSISCO21'\np747\ng18\n(S'Variable_Type'\n(I2\nttRp748\nsS'Y:PMachine138 - CLUCCI39'\np749\ng18\n(S'Variable_Type'\n(I2\nttRp750\nsS'Y:PMachine112 - CSAMPO31'\np751\ng18\n(S'Variable_Type'\n(I2\nttRp752\nsS'Y:VBus105 - CPROPR32'\np753\ng18\n(S'Variable_Type'\n(I2\nttRp754\nsS'Y:VBus1 - CBONIF11'\np755\ng18\n(S'Variable_Type'\n(I2\nttRp756\nsS'Y:VBus12 - CBASTI21'\np757\ng18\n(S'Variable_Type'\n(I2\nttRp758\nsS'Y:PMachine129 - CVAZZI310'\np759\ng18\n(S'Variable_Type'\n(I2\nttRp760\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np761\ng18\n(S'Variable_Type'\n(I2\nttRp762\nsS'Y:VBus35 - CPORTO21'\np763\ng18\n(S'Variable_Type'\n(I2\nttRp764\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np765\ng18\n(S'Variable_Type'\n(I2\nttRp766\nsS'Y:VBus54 - CBASTI32'\np767\ng18\n(S'Variable_Type'\n(I2\nttRp768\nsS'Y:VBus69 - CCASAM37'\np769\ng18\n(S'Variable_Type'\n(I2\nttRp770\nsS'Y:VBus45 - CTOLLA21'\np771\ng18\n(S'Variable_Type'\n(I2\nttRp772\nsS'Y:PMachine115 - CTAGLI31'\np773\ng18\n(S'Variable_Type'\n(I2\nttRp774\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np775\ng18\n(S'Variable_Type'\n(I2\nttRp776\nsS'Y:VBus43 - CSOVEN21'\np777\ng18\n(S'Variable_Type'\n(I2\nttRp778\nsS'Y:VBus76 - CCORTE31'\np779\ng18\n(S'Variable_Type'\n(I2\nttRp780\nsS'Y:VBus75 - CCORSC31'\np781\ng18\n(S'Variable_Type'\n(I2\nttRp782\nsS'Y:PMachine78 - CFURIA31'\np783\ng18\n(S'Variable_Type'\n(I2\nttRp784\nsS'Y:VBus127 - CVAZZI38'\np785\ng18\n(S'Variable_Type'\n(I2\nttRp786\nsS'Y:VBus115 - CTAGLI31'\np787\ng18\n(S'Variable_Type'\n(I2\nttRp788\nsS'Y:Load 61 - CCALVI31'\np789\ng18\n(S'Variable_Type'\n(I2\nttRp790\nsS'Y:VBus55 - CBIGUG31'\np791\ng18\n(S'Variable_Type'\n(I2\nttRp792\nsS'Y:Load 42 - CSISCO21'\np793\ng18\n(S'Variable_Type'\n(I2\nttRp794\nsS'Y:VBus72 - CCASTI31'\np795\ng18\n(S'Variable_Type'\n(I2\nttRp796\nsS'Y:Load 37 - CRIZZA21'\np797\ng18\n(S'Variable_Type'\n(I2\nttRp798\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np799\ng18\n(S'Variable_Type'\n(I2\nttRp800\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np801\ng18\n(S'Variable_Type'\n(I2\nttRp802\nsS'Y:PMachine137 - CLUCCI38'\np803\ng18\n(S'Variable_Type'\n(I2\nttRp804\nsS'Y:PMachine67 - CCASAM35'\np805\ng18\n(S'Variable_Type'\n(I2\nttRp806\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np807\ng18\n(S'Variable_Type'\n(I2\nttRp808\nsS'Y:VBus31 - CMOROS21'\np809\ng18\n(S'Variable_Type'\n(I2\nttRp810\nsS'Y:VBus103 - CPORTO32'\np811\ng18\n(S'Variable_Type'\n(I2\nttRp812\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np813\ng18\n(S'Variable_Type'\n(I2\nttRp814\nsS'Y:PMachine14 - CBONIF21'\np815\ng18\n(S'Variable_Type'\n(I2\nttRp816\nsS'Y:PMachine72 - CCASTI31'\np817\ng18\n(S'Variable_Type'\n(I2\nttRp818\nsS'Y:VBus27 - CILERO21'\np819\ng18\n(S'Variable_Type'\n(I2\nttRp820\nsS'Y:PMachine75 - CCORSC31'\np821\ng18\n(S'Variable_Type'\n(I2\nttRp822\nsS'Y:Load 51 - CASPRE31'\np823\ng18\n(S'Variable_Type'\n(I2\nttRp824\nsS'Y:VBus51 - CASPRE31'\np825\ng18\n(S'Variable_Type'\n(I2\nttRp826\nsS'Y:PMachine94 - COCANA33'\np827\ng18\n(S'Variable_Type'\n(I2\nttRp828\nsS'Y:PMachine126 - CVAZZI37'\np829\ng18\n(S'Variable_Type'\n(I2\nttRp830\nsS'Y:Load 86 - CLUCCI31'\np831\ng18\n(S'Variable_Type'\n(I2\nttRp832\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np833\ng18\n(S'Variable_Type'\n(I2\nttRp834\nsS'Y:PMachine104 - CPROPR31'\np835\ng18\n(S'Variable_Type'\n(I2\nttRp836\nsS'Y:VBus128 - CVAZZI39'\np837\ng18\n(S'Variable_Type'\n(I2\nttRp838\nsS'Y:PMachine136 - CLUCCI37'\np839\ng18\n(S'Variable_Type'\n(I2\nttRp840\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np841\ng18\n(S'Variable_Type'\n(I2\nttRp842\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np843\ng18\n(S'Variable_Type'\n(I2\nttRp844\nsS'Y:PMachine29 - CLUCCI21'\np845\ng18\n(S'Variable_Type'\n(I2\nttRp846\nsS'Y:VBus42 - CSISCO21'\np847\ng18\n(S'Variable_Type'\n(I2\nttRp848\nsS'Y:Load 110 - CSTLUC31'\np849\ng18\n(S'Variable_Type'\n(I2\nttRp850\nsS'Y:VBus14 - CBONIF21'\np851\ng18\n(S'Variable_Type'\n(I2\nttRp852\nsS'Y:VBus73 - CCASTI32'\np853\ng18\n(S'Variable_Type'\n(I2\nttRp854\nsS'Y:VBus64 - CCASAM32'\np855\ng18\n(S'Variable_Type'\n(I2\nttRp856\nsS'Y:PMachine128 - CVAZZI39'\np857\ng18\n(S'Variable_Type'\n(I2\nttRp858\nsS'Y:VBus133 - CVAZZI314'\np859\ng18\n(S'Variable_Type'\n(I2\nttRp860\nsS'Y:VBus63 - CCASAM31'\np861\ng18\n(S'Variable_Type'\n(I2\nttRp862\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np863\ng18\n(S'Variable_Type'\n(I2\nttRp864\nsS'Y:%Losses'\np865\ng18\n(S'Variable_Type'\n(I2\nttRp866\nsS'Y:VBus85 - CLORET32'\np867\ng18\n(S'Variable_Type'\n(I2\nttRp868\nsS'Y:Load 59 - CCALDA31'\np869\ng18\n(S'Variable_Type'\n(I2\nttRp870\nsS'Y:VBus129 - CVAZZI310'\np871\ng18\n(S'Variable_Type'\n(I2\nttRp872\nsS'Y:VBus101 - CPIETR31'\np873\ng18\n(S'Variable_Type'\n(I2\nttRp874\nsS'Y:PMachine106 - CRIZZA31'\np875\ng18\n(S'Variable_Type'\n(I2\nttRp876\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np877\ng18\n(S'Variable_Type'\n(I2\nttRp878\nsS'Y:PMachine118 - CTOLLA33'\np879\ng18\n(S'Variable_Type'\n(I2\nttRp880\nsS'Y:VBus19 - CCASTI21'\np881\ng18\n(S'Variable_Type'\n(I2\nttRp882\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np883\ng18\n(S'Variable_Type'\n(I2\nttRp884\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np885\ng18\n(S'Variable_Type'\n(I2\nttRp886\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np887\ng18\n(S'Variable_Type'\n(I2\nttRp888\nsS'Y:Load 115 - CTAGLI31'\np889\ng18\n(S'Variable_Type'\n(I2\nttRp890\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np891\ng18\n(S'Variable_Type'\n(I2\nttRp892\nsS'Y:VBus15 - CBONIF22'\np893\ng18\n(S'Variable_Type'\n(I2\nttRp894\nsS'Y:PMachine47 - CVAZZI21'\np895\ng18\n(S'Variable_Type'\n(I2\nttRp896\nsS'Y:VBus123 - CVAZZI34'\np897\ng18\n(S'Variable_Type'\n(I2\nttRp898\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np899\ng18\n(S'Variable_Type'\n(I2\nttRp900\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np901\ng18\n(S'Variable_Type'\n(I2\nttRp902\nsS'Y:VBus44 - CTAGLI21'\np903\ng18\n(S'Variable_Type'\n(I2\nttRp904\nsS'Y:VBus65 - CCASAM33'\np905\ng18\n(S'Variable_Type'\n(I2\nttRp906\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np907\ng18\n(S'Variable_Type'\n(I2\nttRp908\nsS'Y:PMachine139 - CLUCCI310'\np909\ng18\n(S'Variable_Type'\n(I2\nttRp910\nsS'Y:VBus112 - CSAMPO31'\np911\ng18\n(S'Variable_Type'\n(I2\nttRp912\nsS'Y:VBus68 - CCASAM36'\np913\ng18\n(S'Variable_Type'\n(I2\nttRp914\nsS'Y:Load 55 - CBIGUG31'\np915\ng18\n(S'Variable_Type'\n(I2\nttRp916\nsS'Y:PMachine53 - CBASTI31'\np917\ng18\n(S'Variable_Type'\n(I2\nttRp918\nsS'Y:NbeTransit_0.9-1'\np919\ng18\n(S'Variable_Type'\n(I2\nttRp920\nsS'Y:VBus24 - CFURIA21'\np921\ng18\n(S'Variable_Type'\n(I2\nttRp922\nsS'Y:VBus23 - CCORTE22'\np923\ng18\n(S'Variable_Type'\n(I2\nttRp924\nsS'XProdEolienne%Pnom'\np925\ng18\n(S'Variable_Type'\n(I2\nttRp926\nsS'Y:VBus40 - CSTMAR21'\np927\ng18\n(S'Variable_Type'\n(I2\nttRp928\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np929\ng18\n(S'Variable_Type'\n(I2\nttRp930\nsS'Y:PMachine120 - CVAZZI31'\np931\ng18\n(S'Variable_Type'\n(I2\nttRp932\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np933\ng18\n(S'Variable_Type'\n(I2\nttRp934\nsS'Y:PMachine117 - CTOLLA32'\np935\ng18\n(S'Variable_Type'\n(I2\nttRp936\nsS'Y:VBus89 - CLUCCI34'\np937\ng18\n(S'Variable_Type'\n(I2\nttRp938\nsS'Y:VBus33 - COLETT21'\np939\ng18\n(S'Variable_Type'\n(I2\nttRp940\nsS'Y:VBus32 - COCANA21'\np941\ng18\n(S'Variable_Type'\n(I2\nttRp942\nsS'Y:PMachine121 - CVAZZI32'\np943\ng18\n(S'Variable_Type'\n(I2\nttRp944\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np945\ng18\n(S'Variable_Type'\n(I2\nttRp946\nsS'Y:VBus59 - CCALDA31'\np947\ng18\n(S'Variable_Type'\n(I2\nttRp948\nsS'Y:VBus82 - CILERO31'\np949\ng18\n(S'Variable_Type'\n(I2\nttRp950\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np951\ng18\n(S'Variable_Type'\n(I2\nttRp952\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np953\ng18\n(S'Variable_Type'\n(I2\nttRp954\nsS'Y:VBus37 - CRIZZA21'\np955\ng18\n(S'Variable_Type'\n(I2\nttRp956\nsS'Y:PMachine73 - CCASTI32'\np957\ng18\n(S'Variable_Type'\n(I2\nttRp958\nsS'Y:PMachine86 - CLUCCI31'\np959\ng18\n(S'Variable_Type'\n(I2\nttRp960\nsS'Y:Load 53 - CBASTI31'\np961\ng18\n(S'Variable_Type'\n(I2\nttRp962\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np963\ng18\n(S'Variable_Type'\n(I2\nttRp964\nsS'Y:VBus21 - CCORSC21'\np965\ng18\n(S'Variable_Type'\n(I2\nttRp966\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np967\ng18\n(S'Variable_Type'\n(I2\nttRp968\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np969\ng18\n(S'Variable_Type'\n(I2\nttRp970\nsS'Y:Load 82 - CILERO31'\np971\ng18\n(S'Variable_Type'\n(I2\nttRp972\nsS'Y:PMachine64 - CCASAM32'\np973\ng18\n(S'Variable_Type'\n(I2\nttRp974\nsS'Y:VBus67 - CCASAM35'\np975\ng18\n(S'Variable_Type'\n(I2\nttRp976\nsS'Y:VBus53 - CBASTI31'\np977\ng18\n(S'Variable_Type'\n(I2\nttRp978\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np979\ng18\n(S'Variable_Type'\n(I2\nttRp980\nsS'Y:VBus61 - CCALVI31'\np981\ng18\n(S'Variable_Type'\n(I2\nttRp982\nsS'Y:VBus93 - COCANA32'\np983\ng18\n(S'Variable_Type'\n(I2\nttRp984\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np985\ng18\n(S'Variable_Type'\n(I2\nttRp986\nsS'Y:PMachine92 - COCANA31'\np987\ng18\n(S'Variable_Type'\n(I2\nttRp988\nsS'Y:VBus104 - CPROPR31'\np989\ng18\n(S'Variable_Type'\n(I2\nttRp990\nsS'Y:VBus48 - CZSSS621'\np991\ng18\n(S'Variable_Type'\n(I2\nttRp992\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np993\ng18\n(S'Variable_Type'\n(I2\nttRp994\nsS'Y:VBus74 - CCERVI31'\np995\ng18\n(S'Variable_Type'\n(I2\nttRp996\nsS'Y:VBus36 - CPROPR21'\np997\ng18\n(S'Variable_Type'\n(I2\nttRp998\nsS'Y:Load 100 - COLETT31'\np999\ng18\n(S'Variable_Type'\n(I2\nttRp1000\nsS'Y:PMachine54 - CBASTI32'\np1001\ng18\n(S'Variable_Type'\n(I2\nttRp1002\nsS'Y:VBus138 - CLUCCI39'\np1003\ng18\n(S'Variable_Type'\n(I2\nttRp1004\nsS'Y:VBus39 - CSTLUC21'\np1005\ng18\n(S'Variable_Type'\n(I2\nttRp1006\nsS'Y:PMachine74 - CCERVI31'\np1007\ng18\n(S'Variable_Type'\n(I2\nttRp1008\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np1009\ng18\n(S'Variable_Type'\n(I2\nttRp1010\nsS'Y:Load 78 - CFURIA31'\np1011\ng18\n(S'Variable_Type'\n(I2\nttRp1012\nsS'Y:VBus28 - CLORET21'\np1013\ng18\n(S'Variable_Type'\n(I2\nttRp1014\nsS'Y:PMachine105 - CPROPR32'\np1015\ng18\n(S'Variable_Type'\n(I2\nttRp1016\nsS'Y:VBus96 - COCANA35'\np1017\ng18\n(S'Variable_Type'\n(I2\nttRp1018\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np1019\ng18\n(S'Variable_Type'\n(I2\nttRp1020\nsS'Y:PMachine18 - CCASAM21'\np1021\ng18\n(S'Variable_Type'\n(I2\nttRp1022\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np1023\ng18\n(S'Variable_Type'\n(I2\nttRp1024\nsS'Y:VBus13 - CBIGUG21'\np1025\ng18\n(S'Variable_Type'\n(I2\nttRp1026\nsS'Y:VBus92 - COCANA31'\np1027\ng18\n(S'Variable_Type'\n(I2\nttRp1028\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np1029\ng18\n(S'Variable_Type'\n(I2\nttRp1030\nsS'Y:Load 76 - CCORTE31'\np1031\ng18\n(S'Variable_Type'\n(I2\nttRp1032\nsS'Y:VBus58 - CBONIF32'\np1033\ng18\n(S'Variable_Type'\n(I2\nttRp1034\nsS'Y:VBus84 - CLORET31'\np1035\ng18\n(S'Variable_Type'\n(I2\nttRp1036\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np1037\ng18\n(S'Variable_Type'\n(I2\nttRp1038\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np1039\ng18\n(S'Variable_Type'\n(I2\nttRp1040\nsS'Y:VBus97 - COCANA36'\np1041\ng18\n(S'Variable_Type'\n(I2\nttRp1042\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np1043\ng18\n(S'Variable_Type'\n(I2\nttRp1044\nsS'Y:VBus106 - CRIZZA31'\np1045\ng18\n(S'Variable_Type'\n(I2\nttRp1046\nsS'Y:VBus79 - CFURIA32'\np1047\ng18\n(S'Variable_Type'\n(I2\nttRp1048\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np1049\ng18\n(S'Variable_Type'\n(I2\nttRp1050\nsS'Y:VBus80 - CGHISO31'\np1051\ng18\n(S'Variable_Type'\n(I2\nttRp1052\nsS'Y:PMachine114 - CSOVEN31'\np1053\ng18\n(S'Variable_Type'\n(I2\nttRp1054\nsS'Y:VBus132 - CVAZZI313'\np1055\ng18\n(S'Variable_Type'\n(I2\nttRp1056\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np1057\ng18\n(S'Variable_Type'\n(I2\nttRp1058\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np1059\ng18\n(S'Variable_Type'\n(I2\nttRp1060\nsS'Y:VBus87 - CLUCCI32'\np1061\ng18\n(S'Variable_Type'\n(I2\nttRp1062\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np1063\ng18\n(S'Variable_Type'\n(I2\nttRp1064\nsS'Y:VBus88 - CLUCCI33'\np1065\ng18\n(S'Variable_Type'\n(I2\nttRp1066\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np1067\ng18\n(S'Variable_Type'\n(I2\nttRp1068\nsS'Y:PMachine85 - CLORET32'\np1069\ng18\n(S'Variable_Type'\n(I2\nttRp1070\nsS'Y:VBus81 - CGHISO32'\np1071\ng18\n(S'Variable_Type'\n(I2\nttRp1072\nsS'Y:PMachine63 - CCASAM31'\np1073\ng18\n(S'Variable_Type'\n(I2\nttRp1074\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np1075\ng18\n(S'Variable_Type'\n(I2\nttRp1076\nsS'X:Load(pu)'\np1077\ng18\n(S'Variable_Type'\n(I2\nttRp1078\nsS'Y:NbeTension'\np1079\ng18\n(S'Variable_Type'\n(I2\nttRp1080\nsS'Y:VBus95 - COCANA34'\np1081\ng18\n(S'Variable_Type'\n(I2\nttRp1082\nsS'Y:VBus62 - CCALVI32'\np1083\ng18\n(S'Variable_Type'\n(I2\nttRp1084\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np1085\ng18\n(S'Variable_Type'\n(I2\nttRp1086\nsS'Y:Load 95 - COCANA34'\np1087\ng18\n(S'Variable_Type'\n(I2\nttRp1088\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np1089\ng18\n(S'Variable_Type'\n(I2\nttRp1090\nsS'Y:PMachine90 - CMOROS31'\np1091\ng18\n(S'Variable_Type'\n(I2\nttRp1092\nsS'Y:Load 101 - CPIETR31'\np1093\ng18\n(S'Variable_Type'\n(I2\nttRp1094\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np1095\ng18\n(S'Variable_Type'\n(I2\nttRp1096\nsS'Y:PMachine132 - CVAZZI313'\np1097\ng18\n(S'Variable_Type'\n(I2\nttRp1098\nsS'Y:PMachine65 - CCASAM33'\np1099\ng18\n(S'Variable_Type'\n(I2\nttRp1100\nsS'Y:VBus125 - CVAZZI36'\np1101\ng18\n(S'Variable_Type'\n(I2\nttRp1102\nsS'Y:VBus135 - CLUCCI36'\np1103\ng18\n(S'Variable_Type'\n(I2\nttRp1104\nsS'Y:VBus47 - CVAZZI21'\np1105\ng18\n(S'Variable_Type'\n(I2\nttRp1106\nsS'Y:VBus94 - COCANA33'\np1107\ng18\n(S'Variable_Type'\n(I2\nttRp1108\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np1109\ng18\n(S'Variable_Type'\n(I2\nttRp1110\nsS'Y:VBus17 - CCALVI21'\np1111\ng18\n(S'Variable_Type'\n(I2\nttRp1112\nsS'Y:Load 90 - CMOROS31'\np1113\ng18\n(S'Variable_Type'\n(I2\nttRp1114\nsS'Y:VBus120 - CVAZZI31'\np1115\ng18\n(S'Variable_Type'\n(I2\nttRp1116\nsS'Y:VBus52 - CASPRE32'\np1117\ng18\n(S'Variable_Type'\n(I2\nttRp1118\nsS'Y:VBus25 - CFURIA22'\np1119\ng18\n(S'Variable_Type'\n(I2\nttRp1120\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np1121\ng18\n(S'Variable_Type'\n(I2\nttRp1122\nsS'Y:PMachine69 - CCASAM37'\np1123\ng18\n(S'Variable_Type'\n(I2\nttRp1124\nsS'Y:PConsoTot'\np1125\ng18\n(S'Variable_Type'\n(I2\nttRp1126\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np1127\ng18\n(S'Variable_Type'\n(I2\nttRp1128\nsS'Y:PMachine102 - CPORTO31'\np1129\ng18\n(S'Variable_Type'\n(I2\nttRp1130\nsS'Y:VBus136 - CLUCCI37'\np1131\ng18\n(S'Variable_Type'\n(I2\nttRp1132\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np1133\ng18\n(S'Variable_Type'\n(I2\nttRp1134\nsS'Y:PMachine122 - CVAZZI33'\np1135\ng18\n(S'Variable_Type'\n(I2\nttRp1136\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np1137\ng18\n(S'Variable_Type'\n(I2\nttRp1138\nsS'Y:PMachine77 - CCORTE32'\np1139\ng18\n(S'Variable_Type'\n(I2\nttRp1140\nsS'Y:PMachine116 - CTOLLA31'\np1141\ng18\n(S'Variable_Type'\n(I2\nttRp1142\nsS'Y:VBus126 - CVAZZI37'\np1143\ng18\n(S'Variable_Type'\n(I2\nttRp1144\nsS'Y:PMachine60 - CCALDA32'\np1145\ng18\n(S'Variable_Type'\n(I2\nttRp1146\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np1147\ng18\n(S'Variable_Type'\n(I2\nttRp1148\nsS'Y:VBus20 - CCERVI21'\np1149\ng18\n(S'Variable_Type'\n(I2\nttRp1150\nsS'Y:VBus119 - CTRAVO31'\np1151\ng18\n(S'Variable_Type'\n(I2\nttRp1152\nsS'Y:VBus11 - CASPRE21'\np1153\ng18\n(S'Variable_Type'\n(I2\nttRp1154\nsS'Y:VBus139 - CLUCCI310'\np1155\ng18\n(S'Variable_Type'\n(I2\nttRp1156\nsS'Y:VBus60 - CCALDA32'\np1157\ng18\n(S'Variable_Type'\n(I2\nttRp1158\nsS'Y:PMachine66 - CCASAM34'\np1159\ng18\n(S'Variable_Type'\n(I2\nttRp1160\nsS'Y:PMachine101 - CPIETR31'\np1161\ng18\n(S'Variable_Type'\n(I2\nttRp1162\nsS'Y:PMachine133 - CVAZZI314'\np1163\ng18\n(S'Variable_Type'\n(I2\nttRp1164\nsS'Y:PMachine62 - CCALVI32'\np1165\ng18\n(S'Variable_Type'\n(I2\nttRp1166\nsS'Y:Load 74 - CCERVI31'\np1167\ng18\n(S'Variable_Type'\n(I2\nttRp1168\nsS'X:lineOff#'\np1169\ng18\n(S'Variable_Type'\n(I2\nttRp1170\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np1171\ng18\n(S'Variable_Type'\n(I2\nttRp1172\nsS'Y:VBus108 - CSAGON31'\np1173\ng18\n(S'Variable_Type'\n(I2\nttRp1174\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np1175\ng18\n(S'Variable_Type'\n(I2\nttRp1176\nsS'Y:VBus137 - CLUCCI38'\np1177\ng18\n(S'Variable_Type'\n(I2\nttRp1178\nsS'Y:VBus130 - CVAZZI311'\np1179\ng18\n(S'Variable_Type'\n(I2\nttRp1180\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np1181\ng18\n(S'Variable_Type'\n(I2\nttRp1182\nsS'Y:VBus46 - CTRAVO21'\np1183\ng18\n(S'Variable_Type'\n(I2\nttRp1184\nsS'Y:VBus113 - CSAMPO32'\np1185\ng18\n(S'Variable_Type'\n(I2\nttRp1186\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np1187\ng18\n(S'Variable_Type'\n(I2\nttRp1188\nsS'Y:PMachine68 - CCASAM36'\np1189\ng18\n(S'Variable_Type'\n(I2\nttRp1190\nsS'Y:VBus78 - CFURIA31'\np1191\ng18\n(S'Variable_Type'\n(I2\nttRp1192\nsS'Y:VBus26 - CGHISO21'\np1193\ng18\n(S'Variable_Type'\n(I2\nttRp1194\nsS'Y:VBus121 - CVAZZI32'\np1195\ng18\n(S'Variable_Type'\n(I2\nttRp1196\nsS'Y:PMachine97 - COCANA36'\np1197\ng18\n(S'Variable_Type'\n(I2\nttRp1198\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np1199\ng18\n(S'Variable_Type'\n(I2\nttRp1200\nsS'Y:PMachine83 - CILERO32'\np1201\ng18\n(S'Variable_Type'\n(I2\nttRp1202\nsS'Y:Max%A'\np1203\ng18\n(S'Variable_Type'\n(I2\nttRp1204\nsS'Y:VBus66 - CCASAM34'\np1205\ng18\n(S'Variable_Type'\n(I2\nttRp1206\nsS'Y:PMachine1 - CBONIF11'\np1207\ng18\n(S'Variable_Type'\n(I2\nttRp1208\nsS'Y:VBus111 - CSTMAR31'\np1209\ng18\n(S'Variable_Type'\n(I2\nttRp1210\nsS'Y:VBus124 - CVAZZI35'\np1211\ng18\n(S'Variable_Type'\n(I2\nttRp1212\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np1213\ng18\n(S'Variable_Type'\n(I2\nttRp1214\nsS'Y:VBus29 - CLUCCI21'\np1215\ng18\n(S'Variable_Type'\n(I2\nttRp1216\nsS'Y:PMachine93 - COCANA32'\np1217\ng18\n(S'Variable_Type'\n(I2\nttRp1218\nsS'Y:Load 57 - CBONIF31'\np1219\ng18\n(S'Variable_Type'\n(I2\nttRp1220\nsS'Y:VBus86 - CLUCCI31'\np1221\ng18\n(S'Variable_Type'\n(I2\nttRp1222\nsS'Y:VBus38 - CSAGON21'\np1223\ng18\n(S'Variable_Type'\n(I2\nttRp1224\nsS'Y:PMachine81 - CGHISO32'\np1225\ng18\n(S'Variable_Type'\n(I2\nttRp1226\nsS'Y:PMachine61 - CCALVI31'\np1227\ng18\n(S'Variable_Type'\n(I2\nttRp1228\nsS'Y:VBus110 - CSTLUC31'\np1229\ng18\n(S'Variable_Type'\n(I2\nttRp1230\nsS'X:ProdPV%Pnom'\np1231\ng18\n(S'Variable_Type'\n(I2\nttRp1232\nssg620\n(dp1233\nsg12\n(lp1234\ng14\nasg626\nF1369744626.543\nsba(iOWContexts\nContext\np1235\n(dp1236\ng12\n(lp1237\nS'orderedDomain'\np1238\nasg15\n(dp1239\nS'%'\ng18\n(S'Variable_Type'\n(I2\nttRp1240\nsS'Data'\np1241\ng18\n(S'Variable_Type'\n(I2\nttRp1242\nssg620\n(dp1243\nsg622\n(dp1244\nS'HighlightedAttribute'\np1245\n(I0\nI-2\ntp1246\nssg626\nF1370011140.273\nsba(iOWContexts\nContext\np1247\n(dp1248\ng12\n(lp1249\ng1238\nasg15\n(dp1250\nS'%'\ng18\n(S'Variable_Type'\n(I2\nttRp1251\nssg620\n(dp1252\nsg622\n(dp1253\ng1245\n(I0\nI-2\ntp1254\nssg626\nF1370011050.6600001\nsba(iOWContexts\nContext\np1255\n(dp1256\ng12\n(lp1257\ng1238\nasg15\n(dp1258\nS'%'\ng18\n(S'Variable_Type'\n(I2\nttRp1259\nsS'Tot'\np1260\ng18\n(S'Variable_Type'\n(I2\nttRp1261\nssg620\n(dp1262\nsg622\n(dp1263\ng1245\n(I1\nI-2\ntp1264\nssg626\nF1370010842.2869999\nsba(iOWContexts\nContext\np1265\n(dp1266\ng12\n(lp1267\ng1238\nasg15\n(dp1268\nS'%'\ng18\n(S'Variable_Type'\n(I2\nttRp1269\nsS'Val'\np1270\ng18\n(S'Variable_Type'\n(I2\nttRp1271\nsS'Tot'\np1272\ng18\n(S'Variable_Type'\n(I2\nttRp1273\nssg620\n(dp1274\nsg622\n(dp1275\ng1245\n(I2\nI-2\ntp1276\nssg626\nF1370010752.7349999\nsba(iOWContexts\nContext\np1277\n(dp1278\ng12\n(lp1279\ng1238\nasg15\n(dp1280\nS'0.572136575'\np1281\ng18\n(S'Variable_Type'\n(I2\nttRp1282\nsS'58414'\np1283\ng18\n(S'Variable_Type'\n(I2\nttRp1284\nssg620\n(dp1285\nsg622\n(dp1286\ng1245\n(I0\nI-2\ntp1287\nssg626\nF1370009955.477\nsba(iOWContexts\nContext\np1288\n(dp1289\ng12\n(lp1290\ng1238\nasg15\n(dp1291\nS'Y15:%RateA 18-44'\np1292\ng18\n(S'Variable_Type'\n(I2\nttRp1293\nsS'Y36:%RateA 29-30'\np1294\ng18\n(S'Variable_Type'\n(I1\nttRp1295\nsS'Y17:%RateA 19-22'\np1296\ng18\n(S'Variable_Type'\n(I2\nttRp1297\nsS'Y56:%RateA 72-73'\np1298\ng18\n(S'Variable_Type'\n(I1\nttRp1299\nsS'Y30:%RateA 25-29'\np1300\ng18\n(S'Variable_Type'\n(I2\nttRp1301\nsS'Y39:%RateA 32-45'\np1302\ng18\n(S'Variable_Type'\n(I2\nttRp1303\nsS'Y52:%RateA 55-56'\np1304\ng18\n(S'Variable_Type'\n(I1\nttRp1305\nsS'X:Load(pu)'\np1306\ng18\n(S'Variable_Type'\n(I2\nttRp1307\nsS'Y55:%RateA 61-62'\np1308\ng18\n(S'Variable_Type'\n(I1\nttRp1309\nsS'Y:Load 115'\np1310\ng18\n(S'Variable_Type'\n(I2\nttRp1311\nsS'Y1:%RateA 11-47'\np1312\ng18\n(S'Variable_Type'\n(I2\nttRp1313\nsS'Y13:%RateA 18-30'\np1314\ng18\n(S'Variable_Type'\n(I2\nttRp1315\nsS'Y2:%RateA 12-24'\np1316\ng18\n(S'Variable_Type'\n(I2\nttRp1317\nsS'Y12:%RateA 18-30'\np1318\ng18\n(S'Variable_Type'\n(I2\nttRp1319\nsS'Y23:%RateA 22-31'\np1320\ng18\n(S'Variable_Type'\n(I2\nttRp1321\nsS'Y34:%RateA 28-38'\np1322\ng18\n(S'Variable_Type'\n(I2\nttRp1323\nsS'Y31:%RateA 26-41'\np1324\ng18\n(S'Variable_Type'\n(I2\nttRp1325\nsS'Y11:%RateA 17-27'\np1326\ng18\n(S'Variable_Type'\n(I2\nttRp1327\nsS'Y20:%RateA 20-44'\np1328\ng18\n(S'Variable_Type'\n(I2\nttRp1329\nsS'Y43:%RateA 35-37'\np1330\ng18\n(S'Variable_Type'\n(I2\nttRp1331\nsS'Y54:%RateA 59-60'\np1332\ng18\n(S'Variable_Type'\n(I1\nttRp1333\nsS'Y38:%RateA 32-45'\np1334\ng18\n(S'Variable_Type'\n(I2\nttRp1335\nsS'Y18:%RateA 19-27'\np1336\ng18\n(S'Variable_Type'\n(I2\nttRp1337\nsS'Y49:%RateA 40-48'\np1338\ng18\n(S'Variable_Type'\n(I2\nttRp1339\nsS'Y63:%RateA 95-96'\np1340\ng18\n(S'Variable_Type'\n(I1\nttRp1341\nsS'Y68:%RateA 112-113'\np1342\ng18\n(S'Variable_Type'\n(I1\nttRp1343\nsS'Y7:%RateA 14-35'\np1344\ng18\n(S'Variable_Type'\n(I2\nttRp1345\nsS'Y25:%RateA 23-41'\np1346\ng18\n(S'Variable_Type'\n(I2\nttRp1347\nsS'Y19:%RateA 20-26'\np1348\ng18\n(S'Variable_Type'\n(I2\nttRp1349\nsS'Y9:%RateA 16-32'\np1350\ng18\n(S'Variable_Type'\n(I2\nttRp1351\nsS'Y41:%RateA 32-48'\np1352\ng18\n(S'Variable_Type'\n(I2\nttRp1353\nsS'Y16:%RateA 19-21'\np1354\ng18\n(S'Variable_Type'\n(I2\nttRp1355\nsS'Y61:%RateA 84-85'\np1356\ng18\n(S'Variable_Type'\n(I1\nttRp1357\nsS'Y50:%RateA 51-52'\np1358\ng18\n(S'Variable_Type'\n(I1\nttRp1359\nsS'Y24:%RateA 23-32'\np1360\ng18\n(S'Variable_Type'\n(I2\nttRp1361\nsS'Y66:%RateA 106-107'\np1362\ng18\n(S'Variable_Type'\n(I1\nttRp1363\nsS'Y4:%RateA 13-25'\np1364\ng18\n(S'Variable_Type'\n(I2\nttRp1365\nsS'Y27:%RateA 24-33'\np1366\ng18\n(S'Variable_Type'\n(I2\nttRp1367\nsS'Y35:%RateA 28-47'\np1368\ng18\n(S'Variable_Type'\n(I2\nttRp1369\nsS'Y28:%RateA 24-42'\np1370\ng18\n(S'Variable_Type'\n(I2\nttRp1371\nsS'Y8:%RateA 15-35'\np1372\ng18\n(S'Variable_Type'\n(I2\nttRp1373\nsS'Y14:%RateA 18-31'\np1374\ng18\n(S'Variable_Type'\n(I2\nttRp1375\nsS'Y26:%RateA 24-25'\np1376\ng18\n(S'Variable_Type'\n(I1\nttRp1377\nsS'Y48:%RateA 39-46'\np1378\ng18\n(S'Variable_Type'\n(I2\nttRp1379\nsS'Y33:%RateA 27-33'\np1380\ng18\n(S'Variable_Type'\n(I2\nttRp1381\nsS'Y47:%RateA 38-43'\np1382\ng18\n(S'Variable_Type'\n(I2\nttRp1383\nsS'Y64:%RateA 102-103'\np1384\ng18\n(S'Variable_Type'\n(I1\nttRp1385\nsS'Y51:%RateA 53-54'\np1386\ng18\n(S'Variable_Type'\n(I1\nttRp1387\nsS'Y67:%RateA 108-109'\np1388\ng18\n(S'Variable_Type'\n(I1\nttRp1389\nsS'Y60:%RateA 82-83'\np1390\ng18\n(S'Variable_Type'\n(I1\nttRp1391\nsS'Y62:%RateA 86-87'\np1392\ng18\n(S'Variable_Type'\n(I1\nttRp1393\nsS'Y59:%RateA 80-81'\np1394\ng18\n(S'Variable_Type'\n(I1\nttRp1395\nsS'Y53:%RateA 57-58'\np1396\ng18\n(S'Variable_Type'\n(I1\nttRp1397\nsS'Y10:%RateA 16-47'\np1398\ng18\n(S'Variable_Type'\n(I2\nttRp1399\nsS'Y3:%RateA 12-24'\np1400\ng18\n(S'Variable_Type'\n(I2\nttRp1401\nsS'Y32:%RateA 26-46'\np1402\ng18\n(S'Variable_Type'\n(I2\nttRp1403\nsS'Y22:%RateA 22-23'\np1404\ng18\n(S'Variable_Type'\n(I1\nttRp1405\nsS'Y37:%RateA 32-34'\np1406\ng18\n(S'Variable_Type'\n(I2\nttRp1407\nsS'Y21:%RateA 21-43'\np1408\ng18\n(S'Variable_Type'\n(I2\nttRp1409\nsS'Y0:%RateA 11-28'\np1410\ng18\n(S'Variable_Type'\n(I2\nttRp1411\nsS'Y46:%RateA 36-48'\np1412\ng18\n(S'Variable_Type'\n(I2\nttRp1413\nsS'Y45:%RateA 36-37'\np1414\ng18\n(S'Variable_Type'\n(I2\nttRp1415\nsS'Y65:%RateA 104-105'\np1416\ng18\n(S'Variable_Type'\n(I1\nttRp1417\nsS'Y5:%RateA 13-29'\np1418\ng18\n(S'Variable_Type'\n(I2\nttRp1419\nsS'Y40:%RateA 32-47'\np1420\ng18\n(S'Variable_Type'\n(I2\nttRp1421\nsS'Y6:%RateA 14-15'\np1422\ng18\n(S'Variable_Type'\n(I1\nttRp1423\nsS'Y29:%RateA 25-29'\np1424\ng18\n(S'Variable_Type'\n(I2\nttRp1425\nsS'Y44:%RateA 35-39'\np1426\ng18\n(S'Variable_Type'\n(I2\nttRp1427\nsS'Y58:%RateA 78-79'\np1428\ng18\n(S'Variable_Type'\n(I1\nttRp1429\nsS'Y42:%RateA 34-36'\np1430\ng18\n(S'Variable_Type'\n(I2\nttRp1431\nsS'Y57:%RateA 76-77'\np1432\ng18\n(S'Variable_Type'\n(I1\nttRp1433\nssg620\n(dp1434\nsg622\n(dp1435\ng1245\n(I17\nI-2\ntp1436\nssg626\nF1369933161.6689999\nsba(iOWContexts\nContext\np1437\n(dp1438\ng622\n(dp1439\nS'HighlightedAttribute'\np1440\n(I17\nI-2\ntp1441\nssg15\n(dp1442\nS'Y15:%RateA 18-44'\np1443\ng18\n(S'Variable_Type'\n(I2\nttRp1444\nsS'Y36:%RateA 29-30'\np1445\ng18\n(S'Variable_Type'\n(I1\nttRp1446\nsS'Y17:%RateA 19-22'\np1447\ng18\n(S'Variable_Type'\n(I2\nttRp1448\nsS'Y56:%RateA 72-73'\np1449\ng18\n(S'Variable_Type'\n(I1\nttRp1450\nsS'Y30:%RateA 25-29'\np1451\ng18\n(S'Variable_Type'\n(I2\nttRp1452\nsS'Y39:%RateA 32-45'\np1453\ng18\n(S'Variable_Type'\n(I2\nttRp1454\nsS'Y52:%RateA 55-56'\np1455\ng18\n(S'Variable_Type'\n(I1\nttRp1456\nsS'X:Load(pu)'\np1457\ng18\n(S'Variable_Type'\n(I2\nttRp1458\nsS'Y55:%RateA 61-62'\np1459\ng18\n(S'Variable_Type'\n(I1\nttRp1460\nsS'Y:Load 115'\np1461\ng18\n(S'Variable_Type'\n(I2\nttRp1462\nsS'Y1:%RateA 11-47'\np1463\ng18\n(S'Variable_Type'\n(I2\nttRp1464\nsS'Y13:%RateA 18-30'\np1465\ng18\n(S'Variable_Type'\n(I2\nttRp1466\nsS'Y2:%RateA 12-24'\np1467\ng18\n(S'Variable_Type'\n(I2\nttRp1468\nsS'Y38:%RateA 32-45'\np1469\ng18\n(S'Variable_Type'\n(I2\nttRp1470\nsS'Y48:%RateA 39-46'\np1471\ng18\n(S'Variable_Type'\n(I2\nttRp1472\nsS'Y23:%RateA 22-31'\np1473\ng18\n(S'Variable_Type'\n(I2\nttRp1474\nsS'Y34:%RateA 28-38'\np1475\ng18\n(S'Variable_Type'\n(I2\nttRp1476\nsS'Y31:%RateA 26-41'\np1477\ng18\n(S'Variable_Type'\n(I2\nttRp1478\nsS'Y11:%RateA 17-27'\np1479\ng18\n(S'Variable_Type'\n(I2\nttRp1480\nsS'Y20:%RateA 20-44'\np1481\ng18\n(S'Variable_Type'\n(I2\nttRp1482\nsS'Y47:%RateA 38-43'\np1483\ng18\n(S'Variable_Type'\n(I2\nttRp1484\nsS'Y57:%RateA 76-77'\np1485\ng18\n(S'Variable_Type'\n(I1\nttRp1486\nsS'Y54:%RateA 59-60'\np1487\ng18\n(S'Variable_Type'\n(I1\nttRp1488\nsS'Y12:%RateA 18-30'\np1489\ng18\n(S'Variable_Type'\n(I2\nttRp1490\nsS'Y18:%RateA 19-27'\np1491\ng18\n(S'Variable_Type'\n(I2\nttRp1492\nsS'Y49:%RateA 40-48'\np1493\ng18\n(S'Variable_Type'\n(I2\nttRp1494\nsS'Y63:%RateA 95-96'\np1495\ng18\n(S'Variable_Type'\n(I1\nttRp1496\nsS'Y21:%RateA 21-43'\np1497\ng18\n(S'Variable_Type'\n(I2\nttRp1498\nsS'Y68:%RateA 112-113'\np1499\ng18\n(S'Variable_Type'\n(I1\nttRp1500\nsS'Y25:%RateA 23-41'\np1501\ng18\n(S'Variable_Type'\n(I2\nttRp1502\nsS'Y19:%RateA 20-26'\np1503\ng18\n(S'Variable_Type'\n(I2\nttRp1504\nsS'Y9:%RateA 16-32'\np1505\ng18\n(S'Variable_Type'\n(I2\nttRp1506\nsS'Y41:%RateA 32-48'\np1507\ng18\n(S'Variable_Type'\n(I2\nttRp1508\nsS'Y61:%RateA 84-85'\np1509\ng18\n(S'Variable_Type'\n(I1\nttRp1510\nsS'Y50:%RateA 51-52'\np1511\ng18\n(S'Variable_Type'\n(I1\nttRp1512\nsS'Y40:%RateA 32-47'\np1513\ng18\n(S'Variable_Type'\n(I2\nttRp1514\nsS'Y66:%RateA 106-107'\np1515\ng18\n(S'Variable_Type'\n(I1\nttRp1516\nsS'Y4:%RateA 13-25'\np1517\ng18\n(S'Variable_Type'\n(I2\nttRp1518\nsS'Y27:%RateA 24-33'\np1519\ng18\n(S'Variable_Type'\n(I2\nttRp1520\nsS'Y35:%RateA 28-47'\np1521\ng18\n(S'Variable_Type'\n(I2\nttRp1522\nsS'Y28:%RateA 24-42'\np1523\ng18\n(S'Variable_Type'\n(I2\nttRp1524\nsS'Y53:%RateA 57-58'\np1525\ng18\n(S'Variable_Type'\n(I1\nttRp1526\nsS'Y14:%RateA 18-31'\np1527\ng18\n(S'Variable_Type'\n(I2\nttRp1528\nsS'Y26:%RateA 24-25'\np1529\ng18\n(S'Variable_Type'\n(I1\nttRp1530\nsS'Y16:%RateA 19-21'\np1531\ng18\n(S'Variable_Type'\n(I2\nttRp1532\nsS'Y33:%RateA 27-33'\np1533\ng18\n(S'Variable_Type'\n(I2\nttRp1534\nsS'Y7:%RateA 14-35'\np1535\ng18\n(S'Variable_Type'\n(I2\nttRp1536\nsS'Y64:%RateA 102-103'\np1537\ng18\n(S'Variable_Type'\n(I1\nttRp1538\nsS'Y51:%RateA 53-54'\np1539\ng18\n(S'Variable_Type'\n(I1\nttRp1540\nsS'Y67:%RateA 108-109'\np1541\ng18\n(S'Variable_Type'\n(I1\nttRp1542\nsS'Y60:%RateA 82-83'\np1543\ng18\n(S'Variable_Type'\n(I1\nttRp1544\nsS'Y62:%RateA 86-87'\np1545\ng18\n(S'Variable_Type'\n(I1\nttRp1546\nsS'Y59:%RateA 80-81'\np1547\ng18\n(S'Variable_Type'\n(I1\nttRp1548\nsS'Y8:%RateA 15-35'\np1549\ng18\n(S'Variable_Type'\n(I2\nttRp1550\nsS'Y3:%RateA 12-24'\np1551\ng18\n(S'Variable_Type'\n(I2\nttRp1552\nsS'Y32:%RateA 26-46'\np1553\ng18\n(S'Variable_Type'\n(I2\nttRp1554\nsS'Y22:%RateA 22-23'\np1555\ng18\n(S'Variable_Type'\n(I1\nttRp1556\nsS'Y37:%RateA 32-34'\np1557\ng18\n(S'Variable_Type'\n(I2\nttRp1558\nsS'Y43:%RateA 35-37'\np1559\ng18\n(S'Variable_Type'\n(I2\nttRp1560\nsS'Y0:%RateA 11-28'\np1561\ng18\n(S'Variable_Type'\n(I2\nttRp1562\nsS'Y46:%RateA 36-48'\np1563\ng18\n(S'Variable_Type'\n(I2\nttRp1564\nsS'Y45:%RateA 36-37'\np1565\ng18\n(S'Variable_Type'\n(I2\nttRp1566\nsS'Y65:%RateA 104-105'\np1567\ng18\n(S'Variable_Type'\n(I1\nttRp1568\nsS'Y5:%RateA 13-29'\np1569\ng18\n(S'Variable_Type'\n(I2\nttRp1570\nsS'Y24:%RateA 23-32'\np1571\ng18\n(S'Variable_Type'\n(I2\nttRp1572\nsS'Y6:%RateA 14-15'\np1573\ng18\n(S'Variable_Type'\n(I1\nttRp1574\nsS'Y29:%RateA 25-29'\np1575\ng18\n(S'Variable_Type'\n(I2\nttRp1576\nsS'Y44:%RateA 35-39'\np1577\ng18\n(S'Variable_Type'\n(I2\nttRp1578\nsS'Y58:%RateA 78-79'\np1579\ng18\n(S'Variable_Type'\n(I1\nttRp1580\nsS'Y42:%RateA 34-36'\np1581\ng18\n(S'Variable_Type'\n(I2\nttRp1582\nsS'Y10:%RateA 16-47'\np1583\ng18\n(S'Variable_Type'\n(I2\nttRp1584\nssg620\n(dp1585\nsg12\n(lp1586\nS'orderedDomain'\np1587\nasg626\nF1369933161.6689999\nsba(iOWContexts\nContext\np1588\n(dp1589\ng622\n(dp1590\nS'HighlightedAttribute'\np1591\n(I17\nI-2\ntp1592\nssg15\n(dp1593\nS'Y15:%RateA 18-44'\np1594\ng18\n(S'Variable_Type'\n(I2\nttRp1595\nsS'Y36:%RateA 29-30'\np1596\ng18\n(S'Variable_Type'\n(I1\nttRp1597\nsS'Y17:%RateA 19-22'\np1598\ng18\n(S'Variable_Type'\n(I2\nttRp1599\nsS'Y56:%RateA 72-73'\np1600\ng18\n(S'Variable_Type'\n(I1\nttRp1601\nsS'Y30:%RateA 25-29'\np1602\ng18\n(S'Variable_Type'\n(I2\nttRp1603\nsS'Y39:%RateA 32-45'\np1604\ng18\n(S'Variable_Type'\n(I2\nttRp1605\nsS'Y52:%RateA 55-56'\np1606\ng18\n(S'Variable_Type'\n(I1\nttRp1607\nsS'X:Load(pu)'\np1608\ng18\n(S'Variable_Type'\n(I2\nttRp1609\nsS'Y55:%RateA 61-62'\np1610\ng18\n(S'Variable_Type'\n(I1\nttRp1611\nsS'Y:Load 115'\np1612\ng18\n(S'Variable_Type'\n(I2\nttRp1613\nsS'Y1:%RateA 11-47'\np1614\ng18\n(S'Variable_Type'\n(I2\nttRp1615\nsS'Y13:%RateA 18-30'\np1616\ng18\n(S'Variable_Type'\n(I2\nttRp1617\nsS'Y2:%RateA 12-24'\np1618\ng18\n(S'Variable_Type'\n(I2\nttRp1619\nsS'Y38:%RateA 32-45'\np1620\ng18\n(S'Variable_Type'\n(I2\nttRp1621\nsS'Y48:%RateA 39-46'\np1622\ng18\n(S'Variable_Type'\n(I2\nttRp1623\nsS'Y23:%RateA 22-31'\np1624\ng18\n(S'Variable_Type'\n(I2\nttRp1625\nsS'Y34:%RateA 28-38'\np1626\ng18\n(S'Variable_Type'\n(I2\nttRp1627\nsS'Y31:%RateA 26-41'\np1628\ng18\n(S'Variable_Type'\n(I2\nttRp1629\nsS'Y11:%RateA 17-27'\np1630\ng18\n(S'Variable_Type'\n(I2\nttRp1631\nsS'Y20:%RateA 20-44'\np1632\ng18\n(S'Variable_Type'\n(I2\nttRp1633\nsS'Y47:%RateA 38-43'\np1634\ng18\n(S'Variable_Type'\n(I2\nttRp1635\nsS'Y57:%RateA 76-77'\np1636\ng18\n(S'Variable_Type'\n(I1\nttRp1637\nsS'Y54:%RateA 59-60'\np1638\ng18\n(S'Variable_Type'\n(I1\nttRp1639\nsS'Y12:%RateA 18-30'\np1640\ng18\n(S'Variable_Type'\n(I2\nttRp1641\nsS'Y18:%RateA 19-27'\np1642\ng18\n(S'Variable_Type'\n(I2\nttRp1643\nsS'Y49:%RateA 40-48'\np1644\ng18\n(S'Variable_Type'\n(I2\nttRp1645\nsS'Y63:%RateA 95-96'\np1646\ng18\n(S'Variable_Type'\n(I1\nttRp1647\nsS'Y21:%RateA 21-43'\np1648\ng18\n(S'Variable_Type'\n(I2\nttRp1649\nsS'Y68:%RateA 112-113'\np1650\ng18\n(S'Variable_Type'\n(I1\nttRp1651\nsS'Y25:%RateA 23-41'\np1652\ng18\n(S'Variable_Type'\n(I2\nttRp1653\nsS'Y19:%RateA 20-26'\np1654\ng18\n(S'Variable_Type'\n(I2\nttRp1655\nsS'Y9:%RateA 16-32'\np1656\ng18\n(S'Variable_Type'\n(I2\nttRp1657\nsS'Y41:%RateA 32-48'\np1658\ng18\n(S'Variable_Type'\n(I2\nttRp1659\nsS'Y61:%RateA 84-85'\np1660\ng18\n(S'Variable_Type'\n(I1\nttRp1661\nsS'Y50:%RateA 51-52'\np1662\ng18\n(S'Variable_Type'\n(I1\nttRp1663\nsS'Y40:%RateA 32-47'\np1664\ng18\n(S'Variable_Type'\n(I2\nttRp1665\nsS'Y66:%RateA 106-107'\np1666\ng18\n(S'Variable_Type'\n(I1\nttRp1667\nsS'Y4:%RateA 13-25'\np1668\ng18\n(S'Variable_Type'\n(I2\nttRp1669\nsS'Y27:%RateA 24-33'\np1670\ng18\n(S'Variable_Type'\n(I2\nttRp1671\nsS'Y35:%RateA 28-47'\np1672\ng18\n(S'Variable_Type'\n(I2\nttRp1673\nsS'Y28:%RateA 24-42'\np1674\ng18\n(S'Variable_Type'\n(I2\nttRp1675\nsS'Y53:%RateA 57-58'\np1676\ng18\n(S'Variable_Type'\n(I1\nttRp1677\nsS'Y14:%RateA 18-31'\np1678\ng18\n(S'Variable_Type'\n(I2\nttRp1679\nsS'Y26:%RateA 24-25'\np1680\ng18\n(S'Variable_Type'\n(I1\nttRp1681\nsS'Y16:%RateA 19-21'\np1682\ng18\n(S'Variable_Type'\n(I2\nttRp1683\nsS'Y33:%RateA 27-33'\np1684\ng18\n(S'Variable_Type'\n(I2\nttRp1685\nsS'Y7:%RateA 14-35'\np1686\ng18\n(S'Variable_Type'\n(I2\nttRp1687\nsS'Y64:%RateA 102-103'\np1688\ng18\n(S'Variable_Type'\n(I1\nttRp1689\nsS'Y51:%RateA 53-54'\np1690\ng18\n(S'Variable_Type'\n(I1\nttRp1691\nsS'Y67:%RateA 108-109'\np1692\ng18\n(S'Variable_Type'\n(I1\nttRp1693\nsS'Y60:%RateA 82-83'\np1694\ng18\n(S'Variable_Type'\n(I1\nttRp1695\nsS'Y62:%RateA 86-87'\np1696\ng18\n(S'Variable_Type'\n(I1\nttRp1697\nsS'Y59:%RateA 80-81'\np1698\ng18\n(S'Variable_Type'\n(I1\nttRp1699\nsS'Y8:%RateA 15-35'\np1700\ng18\n(S'Variable_Type'\n(I2\nttRp1701\nsS'Y3:%RateA 12-24'\np1702\ng18\n(S'Variable_Type'\n(I2\nttRp1703\nsS'Y32:%RateA 26-46'\np1704\ng18\n(S'Variable_Type'\n(I2\nttRp1705\nsS'Y22:%RateA 22-23'\np1706\ng18\n(S'Variable_Type'\n(I1\nttRp1707\nsS'Y37:%RateA 32-34'\np1708\ng18\n(S'Variable_Type'\n(I2\nttRp1709\nsS'Y43:%RateA 35-37'\np1710\ng18\n(S'Variable_Type'\n(I2\nttRp1711\nsS'Y0:%RateA 11-28'\np1712\ng18\n(S'Variable_Type'\n(I2\nttRp1713\nsS'Y46:%RateA 36-48'\np1714\ng18\n(S'Variable_Type'\n(I2\nttRp1715\nsS'Y45:%RateA 36-37'\np1716\ng18\n(S'Variable_Type'\n(I2\nttRp1717\nsS'Y65:%RateA 104-105'\np1718\ng18\n(S'Variable_Type'\n(I1\nttRp1719\nsS'Y5:%RateA 13-29'\np1720\ng18\n(S'Variable_Type'\n(I2\nttRp1721\nsS'Y24:%RateA 23-32'\np1722\ng18\n(S'Variable_Type'\n(I2\nttRp1723\nsS'Y6:%RateA 14-15'\np1724\ng18\n(S'Variable_Type'\n(I1\nttRp1725\nsS'Y29:%RateA 25-29'\np1726\ng18\n(S'Variable_Type'\n(I2\nttRp1727\nsS'Y44:%RateA 35-39'\np1728\ng18\n(S'Variable_Type'\n(I2\nttRp1729\nsS'Y58:%RateA 78-79'\np1730\ng18\n(S'Variable_Type'\n(I1\nttRp1731\nsS'Y42:%RateA 34-36'\np1732\ng18\n(S'Variable_Type'\n(I2\nttRp1733\nsS'Y10:%RateA 16-47'\np1734\ng18\n(S'Variable_Type'\n(I2\nttRp1735\nssg620\n(dp1736\nsg12\n(lp1737\nS'orderedDomain'\np1738\nasg626\nF1369933161.6689999\nsba(iOWContexts\nContext\np1739\n(dp1740\ng12\n(lp1741\nS'orderedDomain'\np1742\nasg15\n(dp1743\nS'Y15:%RateA 18-44'\np1744\ng18\n(S'Variable_Type'\n(I2\nttRp1745\nsS'Y36:%RateA 29-30'\np1746\ng18\n(S'Variable_Type'\n(I1\nttRp1747\nsS'Y17:%RateA 19-22'\np1748\ng18\n(S'Variable_Type'\n(I2\nttRp1749\nsS'Y56:%RateA 72-73'\np1750\ng18\n(S'Variable_Type'\n(I1\nttRp1751\nsS'Y54:%RateA 59-60'\np1752\ng18\n(S'Variable_Type'\n(I1\nttRp1753\nsS'Y39:%RateA 32-45'\np1754\ng18\n(S'Variable_Type'\n(I2\nttRp1755\nsS'Y52:%RateA 55-56'\np1756\ng18\n(S'Variable_Type'\n(I1\nttRp1757\nsS'X:Load(pu)'\np1758\ng18\n(S'Variable_Type'\n(I2\nttRp1759\nsS'Y55:%RateA 61-62'\np1760\ng18\n(S'Variable_Type'\n(I1\nttRp1761\nsS'Y:Load 115'\np1762\ng18\n(S'Variable_Type'\n(I2\nttRp1763\nsS'Y1:%RateA 11-47'\np1764\ng18\n(S'Variable_Type'\n(I2\nttRp1765\nsS'Y13:%RateA 18-30'\np1766\ng18\n(S'Variable_Type'\n(I2\nttRp1767\nsS'Y2:%RateA 12-24'\np1768\ng18\n(S'Variable_Type'\n(I2\nttRp1769\nsS'Y12:%RateA 18-30'\np1770\ng18\n(S'Variable_Type'\n(I2\nttRp1771\nsS'Y23:%RateA 22-31'\np1772\ng18\n(S'Variable_Type'\n(I2\nttRp1773\nsS'Y34:%RateA 28-38'\np1774\ng18\n(S'Variable_Type'\n(I2\nttRp1775\nsS'Y31:%RateA 26-41'\np1776\ng18\n(S'Variable_Type'\n(I2\nttRp1777\nsS'Y11:%RateA 17-27'\np1778\ng18\n(S'Variable_Type'\n(I2\nttRp1779\nsS'Y20:%RateA 20-44'\np1780\ng18\n(S'Variable_Type'\n(I2\nttRp1781\nsS'Y43:%RateA 35-37'\np1782\ng18\n(S'Variable_Type'\n(I2\nttRp1783\nsS'Y30:%RateA 25-29'\np1784\ng18\n(S'Variable_Type'\n(I2\nttRp1785\nsS'Y38:%RateA 32-45'\np1786\ng18\n(S'Variable_Type'\n(I2\nttRp1787\nsS'Y18:%RateA 19-27'\np1788\ng18\n(S'Variable_Type'\n(I2\nttRp1789\nsS'Y49:%RateA 40-48'\np1790\ng18\n(S'Variable_Type'\n(I2\nttRp1791\nsS'Y63:%RateA 95-96'\np1792\ng18\n(S'Variable_Type'\n(I1\nttRp1793\nsS'Y68:%RateA 112-113'\np1794\ng18\n(S'Variable_Type'\n(I1\nttRp1795\nsS'Y7:%RateA 14-35'\np1796\ng18\n(S'Variable_Type'\n(I2\nttRp1797\nsS'Y25:%RateA 23-41'\np1798\ng18\n(S'Variable_Type'\n(I2\nttRp1799\nsS'Y19:%RateA 20-26'\np1800\ng18\n(S'Variable_Type'\n(I2\nttRp1801\nsS'Y9:%RateA 16-32'\np1802\ng18\n(S'Variable_Type'\n(I2\nttRp1803\nsS'Y41:%RateA 32-48'\np1804\ng18\n(S'Variable_Type'\n(I2\nttRp1805\nsS'Y16:%RateA 19-21'\np1806\ng18\n(S'Variable_Type'\n(I2\nttRp1807\nsS'Y61:%RateA 84-85'\np1808\ng18\n(S'Variable_Type'\n(I1\nttRp1809\nsS'Y50:%RateA 51-52'\np1810\ng18\n(S'Variable_Type'\n(I1\nttRp1811\nsS'Y24:%RateA 23-32'\np1812\ng18\n(S'Variable_Type'\n(I2\nttRp1813\nsS'Y66:%RateA 106-107'\np1814\ng18\n(S'Variable_Type'\n(I1\nttRp1815\nsS'Y4:%RateA 13-25'\np1816\ng18\n(S'Variable_Type'\n(I2\nttRp1817\nsS'Y27:%RateA 24-33'\np1818\ng18\n(S'Variable_Type'\n(I2\nttRp1819\nsS'Y35:%RateA 28-47'\np1820\ng18\n(S'Variable_Type'\n(I2\nttRp1821\nsS'Y28:%RateA 24-42'\np1822\ng18\n(S'Variable_Type'\n(I2\nttRp1823\nsS'Y8:%RateA 15-35'\np1824\ng18\n(S'Variable_Type'\n(I2\nttRp1825\nsS'Y14:%RateA 18-31'\np1826\ng18\n(S'Variable_Type'\n(I2\nttRp1827\nsS'Y26:%RateA 24-25'\np1828\ng18\n(S'Variable_Type'\n(I1\nttRp1829\nsS'Y48:%RateA 39-46'\np1830\ng18\n(S'Variable_Type'\n(I2\nttRp1831\nsS'Y33:%RateA 27-33'\np1832\ng18\n(S'Variable_Type'\n(I2\nttRp1833\nsS'Y47:%RateA 38-43'\np1834\ng18\n(S'Variable_Type'\n(I2\nttRp1835\nsS'Y64:%RateA 102-103'\np1836\ng18\n(S'Variable_Type'\n(I1\nttRp1837\nsS'Y51:%RateA 53-54'\np1838\ng18\n(S'Variable_Type'\n(I1\nttRp1839\nsS'Y67:%RateA 108-109'\np1840\ng18\n(S'Variable_Type'\n(I1\nttRp1841\nsS'Y60:%RateA 82-83'\np1842\ng18\n(S'Variable_Type'\n(I1\nttRp1843\nsS'Y62:%RateA 86-87'\np1844\ng18\n(S'Variable_Type'\n(I1\nttRp1845\nsS'Y59:%RateA 80-81'\np1846\ng18\n(S'Variable_Type'\n(I1\nttRp1847\nsS'Y53:%RateA 57-58'\np1848\ng18\n(S'Variable_Type'\n(I1\nttRp1849\nsS'Y10:%RateA 16-47'\np1850\ng18\n(S'Variable_Type'\n(I2\nttRp1851\nsS'Y3:%RateA 12-24'\np1852\ng18\n(S'Variable_Type'\n(I2\nttRp1853\nsS'Y32:%RateA 26-46'\np1854\ng18\n(S'Variable_Type'\n(I2\nttRp1855\nsS'Y22:%RateA 22-23'\np1856\ng18\n(S'Variable_Type'\n(I1\nttRp1857\nsS'Y37:%RateA 32-34'\np1858\ng18\n(S'Variable_Type'\n(I2\nttRp1859\nsS'Y21:%RateA 21-43'\np1860\ng18\n(S'Variable_Type'\n(I2\nttRp1861\nsS'Y0:%RateA 11-28'\np1862\ng18\n(S'Variable_Type'\n(I2\nttRp1863\nsS'Y46:%RateA 36-48'\np1864\ng18\n(S'Variable_Type'\n(I2\nttRp1865\nsS'Y45:%RateA 36-37'\np1866\ng18\n(S'Variable_Type'\n(I2\nttRp1867\nsS'Y65:%RateA 104-105'\np1868\ng18\n(S'Variable_Type'\n(I1\nttRp1869\nsS'Y5:%RateA 13-29'\np1870\ng18\n(S'Variable_Type'\n(I2\nttRp1871\nsS'Y40:%RateA 32-47'\np1872\ng18\n(S'Variable_Type'\n(I2\nttRp1873\nsS'Y6:%RateA 14-15'\np1874\ng18\n(S'Variable_Type'\n(I1\nttRp1875\nsS'Y29:%RateA 25-29'\np1876\ng18\n(S'Variable_Type'\n(I2\nttRp1877\nsS'Y44:%RateA 35-39'\np1878\ng18\n(S'Variable_Type'\n(I2\nttRp1879\nsS'Y58:%RateA 78-79'\np1880\ng18\n(S'Variable_Type'\n(I1\nttRp1881\nsS'Y42:%RateA 34-36'\np1882\ng18\n(S'Variable_Type'\n(I2\nttRp1883\nsS'Y57:%RateA 76-77'\np1884\ng18\n(S'Variable_Type'\n(I1\nttRp1885\nssg620\n(dp1886\nsg622\n(dp1887\nS'HighlightedAttribute'\np1888\n(I17\nI-2\ntp1889\nssg626\nF1369933161.6689999\nsba(iOWContexts\nContext\np1890\n(dp1891\ng622\n(dp1892\nS'HighlightedAttribute'\np1893\n(I17\nI-2\ntp1894\nssg15\n(dp1895\nS'Y15:%RateA 18-44'\np1896\ng18\n(S'Variable_Type'\n(I2\nttRp1897\nsS'Y36:%RateA 29-30'\np1898\ng18\n(S'Variable_Type'\n(I1\nttRp1899\nsS'Y17:%RateA 19-22'\np1900\ng18\n(S'Variable_Type'\n(I2\nttRp1901\nsS'Y56:%RateA 72-73'\np1902\ng18\n(S'Variable_Type'\n(I1\nttRp1903\nsS'Y30:%RateA 25-29'\np1904\ng18\n(S'Variable_Type'\n(I2\nttRp1905\nsS'Y39:%RateA 32-45'\np1906\ng18\n(S'Variable_Type'\n(I2\nttRp1907\nsS'Y52:%RateA 55-56'\np1908\ng18\n(S'Variable_Type'\n(I1\nttRp1909\nsS'X:Load(pu)'\np1910\ng18\n(S'Variable_Type'\n(I2\nttRp1911\nsS'Y55:%RateA 61-62'\np1912\ng18\n(S'Variable_Type'\n(I1\nttRp1913\nsS'Y:Load 115'\np1914\ng18\n(S'Variable_Type'\n(I2\nttRp1915\nsS'Y1:%RateA 11-47'\np1916\ng18\n(S'Variable_Type'\n(I2\nttRp1917\nsS'Y13:%RateA 18-30'\np1918\ng18\n(S'Variable_Type'\n(I2\nttRp1919\nsS'Y2:%RateA 12-24'\np1920\ng18\n(S'Variable_Type'\n(I2\nttRp1921\nsS'Y38:%RateA 32-45'\np1922\ng18\n(S'Variable_Type'\n(I2\nttRp1923\nsS'Y48:%RateA 39-46'\np1924\ng18\n(S'Variable_Type'\n(I2\nttRp1925\nsS'Y23:%RateA 22-31'\np1926\ng18\n(S'Variable_Type'\n(I2\nttRp1927\nsS'Y34:%RateA 28-38'\np1928\ng18\n(S'Variable_Type'\n(I2\nttRp1929\nsS'Y31:%RateA 26-41'\np1930\ng18\n(S'Variable_Type'\n(I2\nttRp1931\nsS'Y11:%RateA 17-27'\np1932\ng18\n(S'Variable_Type'\n(I2\nttRp1933\nsS'Y20:%RateA 20-44'\np1934\ng18\n(S'Variable_Type'\n(I2\nttRp1935\nsS'Y47:%RateA 38-43'\np1936\ng18\n(S'Variable_Type'\n(I2\nttRp1937\nsS'Y57:%RateA 76-77'\np1938\ng18\n(S'Variable_Type'\n(I1\nttRp1939\nsS'Y54:%RateA 59-60'\np1940\ng18\n(S'Variable_Type'\n(I1\nttRp1941\nsS'Y12:%RateA 18-30'\np1942\ng18\n(S'Variable_Type'\n(I2\nttRp1943\nsS'Y18:%RateA 19-27'\np1944\ng18\n(S'Variable_Type'\n(I2\nttRp1945\nsS'Y49:%RateA 40-48'\np1946\ng18\n(S'Variable_Type'\n(I2\nttRp1947\nsS'Y63:%RateA 95-96'\np1948\ng18\n(S'Variable_Type'\n(I1\nttRp1949\nsS'Y21:%RateA 21-43'\np1950\ng18\n(S'Variable_Type'\n(I2\nttRp1951\nsS'Y68:%RateA 112-113'\np1952\ng18\n(S'Variable_Type'\n(I1\nttRp1953\nsS'Y25:%RateA 23-41'\np1954\ng18\n(S'Variable_Type'\n(I2\nttRp1955\nsS'Y19:%RateA 20-26'\np1956\ng18\n(S'Variable_Type'\n(I2\nttRp1957\nsS'Y9:%RateA 16-32'\np1958\ng18\n(S'Variable_Type'\n(I2\nttRp1959\nsS'Y41:%RateA 32-48'\np1960\ng18\n(S'Variable_Type'\n(I2\nttRp1961\nsS'Y61:%RateA 84-85'\np1962\ng18\n(S'Variable_Type'\n(I1\nttRp1963\nsS'Y50:%RateA 51-52'\np1964\ng18\n(S'Variable_Type'\n(I1\nttRp1965\nsS'Y40:%RateA 32-47'\np1966\ng18\n(S'Variable_Type'\n(I2\nttRp1967\nsS'Y66:%RateA 106-107'\np1968\ng18\n(S'Variable_Type'\n(I1\nttRp1969\nsS'Y4:%RateA 13-25'\np1970\ng18\n(S'Variable_Type'\n(I2\nttRp1971\nsS'Y27:%RateA 24-33'\np1972\ng18\n(S'Variable_Type'\n(I2\nttRp1973\nsS'Y35:%RateA 28-47'\np1974\ng18\n(S'Variable_Type'\n(I2\nttRp1975\nsS'Y28:%RateA 24-42'\np1976\ng18\n(S'Variable_Type'\n(I2\nttRp1977\nsS'Y53:%RateA 57-58'\np1978\ng18\n(S'Variable_Type'\n(I1\nttRp1979\nsS'Y14:%RateA 18-31'\np1980\ng18\n(S'Variable_Type'\n(I2\nttRp1981\nsS'Y26:%RateA 24-25'\np1982\ng18\n(S'Variable_Type'\n(I1\nttRp1983\nsS'Y16:%RateA 19-21'\np1984\ng18\n(S'Variable_Type'\n(I2\nttRp1985\nsS'Y33:%RateA 27-33'\np1986\ng18\n(S'Variable_Type'\n(I2\nttRp1987\nsS'Y7:%RateA 14-35'\np1988\ng18\n(S'Variable_Type'\n(I2\nttRp1989\nsS'Y64:%RateA 102-103'\np1990\ng18\n(S'Variable_Type'\n(I1\nttRp1991\nsS'Y51:%RateA 53-54'\np1992\ng18\n(S'Variable_Type'\n(I1\nttRp1993\nsS'Y67:%RateA 108-109'\np1994\ng18\n(S'Variable_Type'\n(I1\nttRp1995\nsS'Y60:%RateA 82-83'\np1996\ng18\n(S'Variable_Type'\n(I1\nttRp1997\nsS'Y62:%RateA 86-87'\np1998\ng18\n(S'Variable_Type'\n(I1\nttRp1999\nsS'Y59:%RateA 80-81'\np2000\ng18\n(S'Variable_Type'\n(I1\nttRp2001\nsS'Y8:%RateA 15-35'\np2002\ng18\n(S'Variable_Type'\n(I2\nttRp2003\nsS'Y3:%RateA 12-24'\np2004\ng18\n(S'Variable_Type'\n(I2\nttRp2005\nsS'Y32:%RateA 26-46'\np2006\ng18\n(S'Variable_Type'\n(I2\nttRp2007\nsS'Y22:%RateA 22-23'\np2008\ng18\n(S'Variable_Type'\n(I1\nttRp2009\nsS'Y37:%RateA 32-34'\np2010\ng18\n(S'Variable_Type'\n(I2\nttRp2011\nsS'Y43:%RateA 35-37'\np2012\ng18\n(S'Variable_Type'\n(I2\nttRp2013\nsS'Y0:%RateA 11-28'\np2014\ng18\n(S'Variable_Type'\n(I2\nttRp2015\nsS'Y46:%RateA 36-48'\np2016\ng18\n(S'Variable_Type'\n(I2\nttRp2017\nsS'Y45:%RateA 36-37'\np2018\ng18\n(S'Variable_Type'\n(I2\nttRp2019\nsS'Y65:%RateA 104-105'\np2020\ng18\n(S'Variable_Type'\n(I1\nttRp2021\nsS'Y5:%RateA 13-29'\np2022\ng18\n(S'Variable_Type'\n(I2\nttRp2023\nsS'Y24:%RateA 23-32'\np2024\ng18\n(S'Variable_Type'\n(I2\nttRp2025\nsS'Y6:%RateA 14-15'\np2026\ng18\n(S'Variable_Type'\n(I1\nttRp2027\nsS'Y29:%RateA 25-29'\np2028\ng18\n(S'Variable_Type'\n(I2\nttRp2029\nsS'Y44:%RateA 35-39'\np2030\ng18\n(S'Variable_Type'\n(I2\nttRp2031\nsS'Y58:%RateA 78-79'\np2032\ng18\n(S'Variable_Type'\n(I1\nttRp2033\nsS'Y42:%RateA 34-36'\np2034\ng18\n(S'Variable_Type'\n(I2\nttRp2035\nsS'Y10:%RateA 16-47'\np2036\ng18\n(S'Variable_Type'\n(I2\nttRp2037\nssg620\n(dp2038\nsg12\n(lp2039\nS'orderedDomain'\np2040\nasg626\nF1369933161.6689999\nsba(iOWContexts\nContext\np2041\n(dp2042\ng12\n(lp2043\nS'orderedDomain'\np2044\nasg15\n(dp2045\nS'Y15:%RateA 18-44'\np2046\ng18\n(S'Variable_Type'\n(I2\nttRp2047\nsS'Y36:%RateA 29-30'\np2048\ng18\n(S'Variable_Type'\n(I1\nttRp2049\nsS'Y17:%RateA 19-22'\np2050\ng18\n(S'Variable_Type'\n(I2\nttRp2051\nsS'Y56:%RateA 72-73'\np2052\ng18\n(S'Variable_Type'\n(I1\nttRp2053\nsS'Y54:%RateA 59-60'\np2054\ng18\n(S'Variable_Type'\n(I1\nttRp2055\nsS'Y39:%RateA 32-45'\np2056\ng18\n(S'Variable_Type'\n(I2\nttRp2057\nsS'Y52:%RateA 55-56'\np2058\ng18\n(S'Variable_Type'\n(I1\nttRp2059\nsS'X:Load(pu)'\np2060\ng18\n(S'Variable_Type'\n(I2\nttRp2061\nsS'Y55:%RateA 61-62'\np2062\ng18\n(S'Variable_Type'\n(I1\nttRp2063\nsS'Y:Load 115'\np2064\ng18\n(S'Variable_Type'\n(I2\nttRp2065\nsS'Y1:%RateA 11-47'\np2066\ng18\n(S'Variable_Type'\n(I2\nttRp2067\nsS'Y13:%RateA 18-30'\np2068\ng18\n(S'Variable_Type'\n(I2\nttRp2069\nsS'Y2:%RateA 12-24'\np2070\ng18\n(S'Variable_Type'\n(I2\nttRp2071\nsS'Y12:%RateA 18-30'\np2072\ng18\n(S'Variable_Type'\n(I2\nttRp2073\nsS'Y23:%RateA 22-31'\np2074\ng18\n(S'Variable_Type'\n(I2\nttRp2075\nsS'Y34:%RateA 28-38'\np2076\ng18\n(S'Variable_Type'\n(I2\nttRp2077\nsS'Y31:%RateA 26-41'\np2078\ng18\n(S'Variable_Type'\n(I2\nttRp2079\nsS'Y11:%RateA 17-27'\np2080\ng18\n(S'Variable_Type'\n(I2\nttRp2081\nsS'Y20:%RateA 20-44'\np2082\ng18\n(S'Variable_Type'\n(I2\nttRp2083\nsS'Y43:%RateA 35-37'\np2084\ng18\n(S'Variable_Type'\n(I2\nttRp2085\nsS'Y30:%RateA 25-29'\np2086\ng18\n(S'Variable_Type'\n(I2\nttRp2087\nsS'Y38:%RateA 32-45'\np2088\ng18\n(S'Variable_Type'\n(I2\nttRp2089\nsS'Y18:%RateA 19-27'\np2090\ng18\n(S'Variable_Type'\n(I2\nttRp2091\nsS'Y49:%RateA 40-48'\np2092\ng18\n(S'Variable_Type'\n(I2\nttRp2093\nsS'Y63:%RateA 95-96'\np2094\ng18\n(S'Variable_Type'\n(I1\nttRp2095\nsS'Y68:%RateA 112-113'\np2096\ng18\n(S'Variable_Type'\n(I1\nttRp2097\nsS'Y7:%RateA 14-35'\np2098\ng18\n(S'Variable_Type'\n(I2\nttRp2099\nsS'Y25:%RateA 23-41'\np2100\ng18\n(S'Variable_Type'\n(I2\nttRp2101\nsS'Y19:%RateA 20-26'\np2102\ng18\n(S'Variable_Type'\n(I2\nttRp2103\nsS'Y9:%RateA 16-32'\np2104\ng18\n(S'Variable_Type'\n(I2\nttRp2105\nsS'Y41:%RateA 32-48'\np2106\ng18\n(S'Variable_Type'\n(I2\nttRp2107\nsS'Y16:%RateA 19-21'\np2108\ng18\n(S'Variable_Type'\n(I2\nttRp2109\nsS'Y61:%RateA 84-85'\np2110\ng18\n(S'Variable_Type'\n(I1\nttRp2111\nsS'Y50:%RateA 51-52'\np2112\ng18\n(S'Variable_Type'\n(I1\nttRp2113\nsS'Y24:%RateA 23-32'\np2114\ng18\n(S'Variable_Type'\n(I2\nttRp2115\nsS'Y66:%RateA 106-107'\np2116\ng18\n(S'Variable_Type'\n(I1\nttRp2117\nsS'Y4:%RateA 13-25'\np2118\ng18\n(S'Variable_Type'\n(I2\nttRp2119\nsS'Y27:%RateA 24-33'\np2120\ng18\n(S'Variable_Type'\n(I2\nttRp2121\nsS'Y35:%RateA 28-47'\np2122\ng18\n(S'Variable_Type'\n(I2\nttRp2123\nsS'Y28:%RateA 24-42'\np2124\ng18\n(S'Variable_Type'\n(I2\nttRp2125\nsS'Y8:%RateA 15-35'\np2126\ng18\n(S'Variable_Type'\n(I2\nttRp2127\nsS'Y14:%RateA 18-31'\np2128\ng18\n(S'Variable_Type'\n(I2\nttRp2129\nsS'Y26:%RateA 24-25'\np2130\ng18\n(S'Variable_Type'\n(I1\nttRp2131\nsS'Y48:%RateA 39-46'\np2132\ng18\n(S'Variable_Type'\n(I2\nttRp2133\nsS'Y33:%RateA 27-33'\np2134\ng18\n(S'Variable_Type'\n(I2\nttRp2135\nsS'Y47:%RateA 38-43'\np2136\ng18\n(S'Variable_Type'\n(I2\nttRp2137\nsS'Y64:%RateA 102-103'\np2138\ng18\n(S'Variable_Type'\n(I1\nttRp2139\nsS'Y51:%RateA 53-54'\np2140\ng18\n(S'Variable_Type'\n(I1\nttRp2141\nsS'Y67:%RateA 108-109'\np2142\ng18\n(S'Variable_Type'\n(I1\nttRp2143\nsS'Y60:%RateA 82-83'\np2144\ng18\n(S'Variable_Type'\n(I1\nttRp2145\nsS'Y62:%RateA 86-87'\np2146\ng18\n(S'Variable_Type'\n(I1\nttRp2147\nsS'Y59:%RateA 80-81'\np2148\ng18\n(S'Variable_Type'\n(I1\nttRp2149\nsS'Y53:%RateA 57-58'\np2150\ng18\n(S'Variable_Type'\n(I1\nttRp2151\nsS'Y10:%RateA 16-47'\np2152\ng18\n(S'Variable_Type'\n(I2\nttRp2153\nsS'Y3:%RateA 12-24'\np2154\ng18\n(S'Variable_Type'\n(I2\nttRp2155\nsS'Y32:%RateA 26-46'\np2156\ng18\n(S'Variable_Type'\n(I2\nttRp2157\nsS'Y22:%RateA 22-23'\np2158\ng18\n(S'Variable_Type'\n(I1\nttRp2159\nsS'Y37:%RateA 32-34'\np2160\ng18\n(S'Variable_Type'\n(I2\nttRp2161\nsS'Y21:%RateA 21-43'\np2162\ng18\n(S'Variable_Type'\n(I2\nttRp2163\nsS'Y0:%RateA 11-28'\np2164\ng18\n(S'Variable_Type'\n(I2\nttRp2165\nsS'Y46:%RateA 36-48'\np2166\ng18\n(S'Variable_Type'\n(I2\nttRp2167\nsS'Y45:%RateA 36-37'\np2168\ng18\n(S'Variable_Type'\n(I2\nttRp2169\nsS'Y65:%RateA 104-105'\np2170\ng18\n(S'Variable_Type'\n(I1\nttRp2171\nsS'Y5:%RateA 13-29'\np2172\ng18\n(S'Variable_Type'\n(I2\nttRp2173\nsS'Y40:%RateA 32-47'\np2174\ng18\n(S'Variable_Type'\n(I2\nttRp2175\nsS'Y6:%RateA 14-15'\np2176\ng18\n(S'Variable_Type'\n(I1\nttRp2177\nsS'Y29:%RateA 25-29'\np2178\ng18\n(S'Variable_Type'\n(I2\nttRp2179\nsS'Y44:%RateA 35-39'\np2180\ng18\n(S'Variable_Type'\n(I2\nttRp2181\nsS'Y58:%RateA 78-79'\np2182\ng18\n(S'Variable_Type'\n(I1\nttRp2183\nsS'Y42:%RateA 34-36'\np2184\ng18\n(S'Variable_Type'\n(I2\nttRp2185\nsS'Y57:%RateA 76-77'\np2186\ng18\n(S'Variable_Type'\n(I1\nttRp2187\nssg620\n(dp2188\nsg622\n(dp2189\nS'HighlightedAttribute'\np2190\n(I17\nI-2\ntp2191\nssg626\nF1369933161.6689999\nsbas.&quot;, 'Distributions (2)': &quot;(dp1\nS'showYaxisTitle'\np2\nI1\nsS'graph.showContinuousClassGraph'\np3\nI00\nsS'barSize'\np4\nI50\nsS'showXaxisTitle'\np5\nI1\nsS'localContextsVersion'\np6\n(I100\nI2\ntp7\nsS'smoothLines'\np8\nI0\nsS'showYPaxisTitle'\np9\nI1\nsS'savedWidgetGeometry'\np10\nS'\\x01\\xd9\\xd0\\xcb\\x00\\x01\\x00\\x00\\xff\\xff\\xfbT\\x00\\x00\\x00G\\xff\\xff\\xfeh\\x00\\x00\\x02\\x84\\xff\\xff\\xfb\\\\\\x00\\x00\\x00c\\xff\\xff\\xfe`\\x00\\x00\\x02|\\x00\\x00\\x00\\x01\\x00\\x00'\np11\nsS'showMainTitle'\np12\nI00\nsS'showConfidenceIntervals'\np13\nI0\nsS'widgetShown'\np14\nI0\nsS'lineWidth'\np15\nI1\nsS'localContexts'\np16\n(lp17\n(iOWContexts\nContext\np18\n(dp19\nS'noCopy'\np20\n(lp21\nS'orderedDomain'\np22\nasS'attributes'\np23\n(dp24\nS'Y:PMachine134 - CLUCCI35'\np25\ncOrange.orange\n__pickleLoaderNamedConstants\np26\n(S'Variable_Type'\n(I2\nttRp27\nsS'Y:VBus77 - CCORTE32'\np28\ng26\n(S'Variable_Type'\n(I2\nttRp29\nsS'Y:VBus134 - CLUCCI35'\np30\ng26\n(S'Variable_Type'\n(I2\nttRp31\nsS'Y:VBus109 - CSAGON32'\np32\ng26\n(S'Variable_Type'\n(I2\nttRp33\nsS'Y:VBus102 - CPORTO31'\np34\ng26\n(S'Variable_Type'\n(I2\nttRp35\nsS'XProdEolienne%Pnom'\np36\ng26\n(S'Variable_Type'\n(I2\nttRp37\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np38\ng26\n(S'Variable_Type'\n(I2\nttRp39\nsS'Y:PMachine94 - COCANA33'\np40\ng26\n(S'Variable_Type'\n(I2\nttRp41\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np42\ng26\n(S'Variable_Type'\n(I2\nttRp43\nsS'Y:PMachine87 - CLUCCI32'\np44\ng26\n(S'Variable_Type'\n(I2\nttRp45\nsS'Y:PMachine113 - CSAMPO32'\np46\ng26\n(S'Variable_Type'\n(I2\nttRp47\nsS'Y:Load 84 - CLORET31'\np48\ng26\n(S'Variable_Type'\n(I2\nttRp49\nsS'Y:PMachine89 - CLUCCI34'\np50\ng26\n(S'Variable_Type'\n(I2\nttRp51\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np52\ng26\n(S'Variable_Type'\n(I2\nttRp53\nsS'Y:Load 80 - CGHISO31'\np54\ng26\n(S'Variable_Type'\n(I2\nttRp55\nsS'Y:PMachine74 - CCERVI31'\np56\ng26\n(S'Variable_Type'\n(I2\nttRp57\nsS'Y:PMachine125 - CVAZZI36'\np58\ng26\n(S'Variable_Type'\n(I2\nttRp59\nsS'Y:Load 59 - CCALDA31'\np60\ng26\n(S'Variable_Type'\n(I2\nttRp61\nsS'Y:PMachine88 - CLUCCI33'\np62\ng26\n(S'Variable_Type'\n(I2\nttRp63\nsS'Y:PMachine120 - CVAZZI31'\np64\ng26\n(S'Variable_Type'\n(I2\nttRp65\nsS'Y:PMachine111 - CSTMAR31'\np66\ng26\n(S'Variable_Type'\n(I2\nttRp67\nsS'Y:NbeTransit'\np68\ng26\n(S'Variable_Type'\n(I2\nttRp69\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np70\ng26\n(S'Variable_Type'\n(I2\nttRp71\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np72\ng26\n(S'Variable_Type'\n(I2\nttRp73\nsS'Y:PMachine130 - CVAZZI311'\np74\ng26\n(S'Variable_Type'\n(I2\nttRp75\nsS'Y:PMachine127 - CVAZZI38'\np76\ng26\n(S'Variable_Type'\n(I2\nttRp77\nsS'Y:VBus131 - CVAZZI312'\np78\ng26\n(S'Variable_Type'\n(I2\nttRp79\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np80\ng26\n(S'Variable_Type'\n(I2\nttRp81\nsS'Y:PMachine123 - CVAZZI34'\np82\ng26\n(S'Variable_Type'\n(I2\nttRp83\nsS'Y:VBus118 - CTOLLA33'\np84\ng26\n(S'Variable_Type'\n(I2\nttRp85\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np86\ng26\n(S'Variable_Type'\n(I2\nttRp87\nsS'Y:PMachine58 - CBONIF32'\np88\ng26\n(S'Variable_Type'\n(I2\nttRp89\nsS'Y:Load 104 - CPROPR31'\np90\ng26\n(S'Variable_Type'\n(I2\nttRp91\nsS'Y:PMachine30 - CLUCCI22'\np92\ng26\n(S'Variable_Type'\n(I2\nttRp93\nsS'Y:VBus100 - COLETT31'\np94\ng26\n(S'Variable_Type'\n(I2\nttRp95\nsS'Y:PProdTot'\np96\ng26\n(S'Variable_Type'\n(I2\nttRp97\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np98\ng26\n(S'Variable_Type'\n(I2\nttRp99\nsS'Y:VBus57 - CBONIF31'\np100\ng26\n(S'Variable_Type'\n(I2\nttRp101\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np102\ng26\n(S'Variable_Type'\n(I2\nttRp103\nsS'Y:PConsoTot'\np104\ng26\n(S'Variable_Type'\n(I2\nttRp105\nsS'Iteration'\np106\ng26\n(S'Variable_Type'\n(I2\nttRp107\nsS'Y:PMachine109 - CSAGON32'\np108\ng26\n(S'Variable_Type'\n(I2\nttRp109\nsS'Y:PMachine135 - CLUCCI36'\np110\ng26\n(S'Variable_Type'\n(I2\nttRp111\nsS'Y:VBus30 - CLUCCI22'\np112\ng26\n(S'Variable_Type'\n(I2\nttRp113\nsS'Y:VBus122 - CVAZZI33'\np114\ng26\n(S'Variable_Type'\n(I2\nttRp115\nsS'Y:VBus22 - CCORTE21'\np116\ng26\n(S'Variable_Type'\n(I2\nttRp117\nsS'Y:VBus117 - CTOLLA32'\np118\ng26\n(S'Variable_Type'\n(I2\nttRp119\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np120\ng26\n(S'Variable_Type'\n(I2\nttRp121\nsS'Y:PMachine107 - CRIZZA32'\np122\ng26\n(S'Variable_Type'\n(I2\nttRp123\nsS'Y:VBus16 - CCALDA21'\np124\ng26\n(S'Variable_Type'\n(I2\nttRp125\nsS'Y:Load 102 - CPORTO31'\np126\ng26\n(S'Variable_Type'\n(I2\nttRp127\nsS'Y:VBus107 - CRIZZA32'\np128\ng26\n(S'Variable_Type'\n(I2\nttRp129\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np130\ng26\n(S'Variable_Type'\n(I2\nttRp131\nsS'Y:VBus41 - CSAMPO21'\np132\ng26\n(S'Variable_Type'\n(I2\nttRp133\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np134\ng26\n(S'Variable_Type'\n(I2\nttRp135\nsS'Y:VBus34 - CPIETR21'\np136\ng26\n(S'Variable_Type'\n(I2\nttRp137\nsS'Y:Load 108 - CSAGON31'\np138\ng26\n(S'Variable_Type'\n(I2\nttRp139\nsS'Y:VBus56 - CBIGUG32'\np140\ng26\n(S'Variable_Type'\n(I2\nttRp141\nsS'Y:PMachine42 - CSISCO21'\np142\ng26\n(S'Variable_Type'\n(I2\nttRp143\nsS'Y:PMachine138 - CLUCCI39'\np144\ng26\n(S'Variable_Type'\n(I2\nttRp145\nsS'Y:PMachine112 - CSAMPO31'\np146\ng26\n(S'Variable_Type'\n(I2\nttRp147\nsS'Y:VBus105 - CPROPR32'\np148\ng26\n(S'Variable_Type'\n(I2\nttRp149\nsS'Y:VBus1 - CBONIF11'\np150\ng26\n(S'Variable_Type'\n(I2\nttRp151\nsS'Y:VBus12 - CBASTI21'\np152\ng26\n(S'Variable_Type'\n(I2\nttRp153\nsS'Y:PMachine129 - CVAZZI310'\np154\ng26\n(S'Variable_Type'\n(I2\nttRp155\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np156\ng26\n(S'Variable_Type'\n(I2\nttRp157\nsS'Y:VBus35 - CPORTO21'\np158\ng26\n(S'Variable_Type'\n(I2\nttRp159\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np160\ng26\n(S'Variable_Type'\n(I2\nttRp161\nsS'Y:VBus54 - CBASTI32'\np162\ng26\n(S'Variable_Type'\n(I2\nttRp163\nsS'Y:VBus69 - CCASAM37'\np164\ng26\n(S'Variable_Type'\n(I2\nttRp165\nsS'Y:VBus45 - CTOLLA21'\np166\ng26\n(S'Variable_Type'\n(I2\nttRp167\nsS'Y:PMachine115 - CTAGLI31'\np168\ng26\n(S'Variable_Type'\n(I2\nttRp169\nsS'Y:VBus43 - CSOVEN21'\np170\ng26\n(S'Variable_Type'\n(I2\nttRp171\nsS'Y:VBus76 - CCORTE31'\np172\ng26\n(S'Variable_Type'\n(I2\nttRp173\nsS'Y:VBus75 - CCORSC31'\np174\ng26\n(S'Variable_Type'\n(I2\nttRp175\nsS'Y:PMachine78 - CFURIA31'\np176\ng26\n(S'Variable_Type'\n(I2\nttRp177\nsS'Y:VBus127 - CVAZZI38'\np178\ng26\n(S'Variable_Type'\n(I2\nttRp179\nsS'Y:VBus115 - CTAGLI31'\np180\ng26\n(S'Variable_Type'\n(I2\nttRp181\nsS'Y:Load 61 - CCALVI31'\np182\ng26\n(S'Variable_Type'\n(I2\nttRp183\nsS'Y:VBus55 - CBIGUG31'\np184\ng26\n(S'Variable_Type'\n(I2\nttRp185\nsS'Y:Load 42 - CSISCO21'\np186\ng26\n(S'Variable_Type'\n(I2\nttRp187\nsS'Y:VBus72 - CCASTI31'\np188\ng26\n(S'Variable_Type'\n(I2\nttRp189\nsS'Y:Load 37 - CRIZZA21'\np190\ng26\n(S'Variable_Type'\n(I2\nttRp191\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np192\ng26\n(S'Variable_Type'\n(I2\nttRp193\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np194\ng26\n(S'Variable_Type'\n(I2\nttRp195\nsS'Y:PMachine137 - CLUCCI38'\np196\ng26\n(S'Variable_Type'\n(I2\nttRp197\nsS'Y:PMachine67 - CCASAM35'\np198\ng26\n(S'Variable_Type'\n(I2\nttRp199\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np200\ng26\n(S'Variable_Type'\n(I2\nttRp201\nsS'Y:VBus31 - CMOROS21'\np202\ng26\n(S'Variable_Type'\n(I2\nttRp203\nsS'Y:VBus103 - CPORTO32'\np204\ng26\n(S'Variable_Type'\n(I2\nttRp205\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np206\ng26\n(S'Variable_Type'\n(I2\nttRp207\nsS'Y:PMachine128 - CVAZZI39'\np208\ng26\n(S'Variable_Type'\n(I2\nttRp209\nsS'Y:PMachine72 - CCASTI31'\np210\ng26\n(S'Variable_Type'\n(I2\nttRp211\nsS'Y:VBus27 - CILERO21'\np212\ng26\n(S'Variable_Type'\n(I2\nttRp213\nsS'Y:VBus11 - CASPRE21'\np214\ng26\n(S'Variable_Type'\n(I2\nttRp215\nsS'Y:PMachine75 - CCORSC31'\np216\ng26\n(S'Variable_Type'\n(I2\nttRp217\nsS'Y:Load 51 - CASPRE31'\np218\ng26\n(S'Variable_Type'\n(I2\nttRp219\nsS'Y:PMachine61 - CCALVI31'\np220\ng26\n(S'Variable_Type'\n(I2\nttRp221\nsS'Y:VBus51 - CASPRE31'\np222\ng26\n(S'Variable_Type'\n(I2\nttRp223\nsS'Y:VBus114 - CSOVEN31'\np224\ng26\n(S'Variable_Type'\n(I2\nttRp225\nsS'Y:VBus116 - CTOLLA31'\np226\ng26\n(S'Variable_Type'\n(I2\nttRp227\nsS'Y:Load 86 - CLUCCI31'\np228\ng26\n(S'Variable_Type'\n(I2\nttRp229\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np230\ng26\n(S'Variable_Type'\n(I2\nttRp231\nsS'Y:PMachine116 - CTOLLA31'\np232\ng26\n(S'Variable_Type'\n(I2\nttRp233\nsS'Y:PMachine104 - CPROPR31'\np234\ng26\n(S'Variable_Type'\n(I2\nttRp235\nsS'Y:VBus128 - CVAZZI39'\np236\ng26\n(S'Variable_Type'\n(I2\nttRp237\nsS'Y:PMachine136 - CLUCCI37'\np238\ng26\n(S'Variable_Type'\n(I2\nttRp239\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np240\ng26\n(S'Variable_Type'\n(I2\nttRp241\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np242\ng26\n(S'Variable_Type'\n(I2\nttRp243\nsS'Y:PMachine68 - CCASAM36'\np244\ng26\n(S'Variable_Type'\n(I2\nttRp245\nsS'Y:PMachine29 - CLUCCI21'\np246\ng26\n(S'Variable_Type'\n(I2\nttRp247\nsS'Y:VBus42 - CSISCO21'\np248\ng26\n(S'Variable_Type'\n(I2\nttRp249\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np250\ng26\n(S'Variable_Type'\n(I2\nttRp251\nsS'Y:VBus14 - CBONIF21'\np252\ng26\n(S'Variable_Type'\n(I2\nttRp253\nsS'Y:VBus73 - CCASTI32'\np254\ng26\n(S'Variable_Type'\n(I2\nttRp255\nsS'Y:VBus64 - CCASAM32'\np256\ng26\n(S'Variable_Type'\n(I2\nttRp257\nsS'Y:PMachine14 - CBONIF21'\np258\ng26\n(S'Variable_Type'\n(I2\nttRp259\nsS'Y:PMachine62 - CCALVI32'\np260\ng26\n(S'Variable_Type'\n(I2\nttRp261\nsS'Y:VBus133 - CVAZZI314'\np262\ng26\n(S'Variable_Type'\n(I2\nttRp263\nsS'Y:VBus63 - CCASAM31'\np264\ng26\n(S'Variable_Type'\n(I2\nttRp265\nsS'Y:PMachine101 - CPIETR31'\np266\ng26\n(S'Variable_Type'\n(I2\nttRp267\nsS'Y:%Losses'\np268\ng26\n(S'Variable_Type'\n(I2\nttRp269\nsS'Y:VBus85 - CLORET32'\np270\ng26\n(S'Variable_Type'\n(I2\nttRp271\nsS'Y:Load 115 - CTAGLI31'\np272\ng26\n(S'Variable_Type'\n(I2\nttRp273\nsS'ENR'\np274\ng26\n(S'Variable_Type'\n(I2\nttRp275\nsS'Y:VBus101 - CPIETR31'\np276\ng26\n(S'Variable_Type'\n(I2\nttRp277\nsS'Y:PMachine106 - CRIZZA31'\np278\ng26\n(S'Variable_Type'\n(I2\nttRp279\nsS'Y:VBus132 - CVAZZI313'\np280\ng26\n(S'Variable_Type'\n(I2\nttRp281\nsS'Y:PMachine118 - CTOLLA33'\np282\ng26\n(S'Variable_Type'\n(I2\nttRp283\nsS'Y:VBus19 - CCASTI21'\np284\ng26\n(S'Variable_Type'\n(I2\nttRp285\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np286\ng26\n(S'Variable_Type'\n(I2\nttRp287\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np288\ng26\n(S'Variable_Type'\n(I2\nttRp289\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np290\ng26\n(S'Variable_Type'\n(I2\nttRp291\nsS'Y:PMachine53 - CBASTI31'\np292\ng26\n(S'Variable_Type'\n(I2\nttRp293\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np294\ng26\n(S'Variable_Type'\n(I2\nttRp295\nsS'Y:VBus15 - CBONIF22'\np296\ng26\n(S'Variable_Type'\n(I2\nttRp297\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np298\ng26\n(S'Variable_Type'\n(I2\nttRp299\nsS'Y:VBus129 - CVAZZI310'\np300\ng26\n(S'Variable_Type'\n(I2\nttRp301\nsS'Y:VBus123 - CVAZZI34'\np302\ng26\n(S'Variable_Type'\n(I2\nttRp303\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np304\ng26\n(S'Variable_Type'\n(I2\nttRp305\nsS'Y:VBus60 - CCALDA32'\np306\ng26\n(S'Variable_Type'\n(I2\nttRp307\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np308\ng26\n(S'Variable_Type'\n(I2\nttRp309\nsS'Y:VBus65 - CCASAM33'\np310\ng26\n(S'Variable_Type'\n(I2\nttRp311\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np312\ng26\n(S'Variable_Type'\n(I2\nttRp313\nsS'Y:PMachine139 - CLUCCI310'\np314\ng26\n(S'Variable_Type'\n(I2\nttRp315\nsS'Y:VBus112 - CSAMPO31'\np316\ng26\n(S'Variable_Type'\n(I2\nttRp317\nsS'Y:VBus68 - CCASAM36'\np318\ng26\n(S'Variable_Type'\n(I2\nttRp319\nsS'Y:Load 55 - CBIGUG31'\np320\ng26\n(S'Variable_Type'\n(I2\nttRp321\nsS'Y:Max%A'\np322\ng26\n(S'Variable_Type'\n(I2\nttRp323\nsS'Y:NbeTransit_0.9-1'\np324\ng26\n(S'Variable_Type'\n(I2\nttRp325\nsS'Y:VBus24 - CFURIA21'\np326\ng26\n(S'Variable_Type'\n(I2\nttRp327\nsS'Y:VBus23 - CCORTE22'\np328\ng26\n(S'Variable_Type'\n(I2\nttRp329\nsS'Y:VBus18 - CCASAM21'\np330\ng26\n(S'Variable_Type'\n(I2\nttRp331\nsS'Y:VBus40 - CSTMAR21'\np332\ng26\n(S'Variable_Type'\n(I2\nttRp333\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np334\ng26\n(S'Variable_Type'\n(I2\nttRp335\nsS'Y:PMachine124 - CVAZZI35'\np336\ng26\n(S'Variable_Type'\n(I2\nttRp337\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np338\ng26\n(S'Variable_Type'\n(I2\nttRp339\nsS'Y:PMachine117 - CTOLLA32'\np340\ng26\n(S'Variable_Type'\n(I2\nttRp341\nsS'Y:Load 82 - CILERO31'\np342\ng26\n(S'Variable_Type'\n(I2\nttRp343\nsS'Y:VBus33 - COLETT21'\np344\ng26\n(S'Variable_Type'\n(I2\nttRp345\nsS'Y:VBus32 - COCANA21'\np346\ng26\n(S'Variable_Type'\n(I2\nttRp347\nsS'Y:PMachine121 - CVAZZI32'\np348\ng26\n(S'Variable_Type'\n(I2\nttRp349\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np350\ng26\n(S'Variable_Type'\n(I2\nttRp351\nsS'Y:VBus59 - CCALDA31'\np352\ng26\n(S'Variable_Type'\n(I2\nttRp353\nsS'Y:VBus82 - CILERO31'\np354\ng26\n(S'Variable_Type'\n(I2\nttRp355\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np356\ng26\n(S'Variable_Type'\n(I2\nttRp357\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np358\ng26\n(S'Variable_Type'\n(I2\nttRp359\nsS'Y:VBus37 - CRIZZA21'\np360\ng26\n(S'Variable_Type'\n(I2\nttRp361\nsS'Y:PMachine73 - CCASTI32'\np362\ng26\n(S'Variable_Type'\n(I2\nttRp363\nsS'Y:PMachine86 - CLUCCI31'\np364\ng26\n(S'Variable_Type'\n(I2\nttRp365\nsS'Y:Load 53 - CBASTI31'\np366\ng26\n(S'Variable_Type'\n(I2\nttRp367\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np368\ng26\n(S'Variable_Type'\n(I2\nttRp369\nsS'Y:VBus21 - CCORSC21'\np370\ng26\n(S'Variable_Type'\n(I2\nttRp371\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np372\ng26\n(S'Variable_Type'\n(I2\nttRp373\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np374\ng26\n(S'Variable_Type'\n(I2\nttRp375\nsS'Y:PMachine126 - CVAZZI37'\np376\ng26\n(S'Variable_Type'\n(I2\nttRp377\nsS'Y:PMachine64 - CCASAM32'\np378\ng26\n(S'Variable_Type'\n(I2\nttRp379\nsS'Y:VBus67 - CCASAM35'\np380\ng26\n(S'Variable_Type'\n(I2\nttRp381\nsS'Y:VBus53 - CBASTI31'\np382\ng26\n(S'Variable_Type'\n(I2\nttRp383\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np384\ng26\n(S'Variable_Type'\n(I2\nttRp385\nsS'Y:VBus61 - CCALVI31'\np386\ng26\n(S'Variable_Type'\n(I2\nttRp387\nsS'Y:VBus93 - COCANA32'\np388\ng26\n(S'Variable_Type'\n(I2\nttRp389\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np390\ng26\n(S'Variable_Type'\n(I2\nttRp391\nsS'Y:VBus104 - CPROPR31'\np392\ng26\n(S'Variable_Type'\n(I2\nttRp393\nsS'Y:VBus48 - CZSSS621'\np394\ng26\n(S'Variable_Type'\n(I2\nttRp395\nsS'Y:PMachine85 - CLORET32'\np396\ng26\n(S'Variable_Type'\n(I2\nttRp397\nsS'Y:VBus74 - CCERVI31'\np398\ng26\n(S'Variable_Type'\n(I2\nttRp399\nsS'X:ProdPV%Pnom'\np400\ng26\n(S'Variable_Type'\n(I2\nttRp401\nsS'Y:VBus89 - CLUCCI34'\np402\ng26\n(S'Variable_Type'\n(I2\nttRp403\nsS'Y:Load 100 - COLETT31'\np404\ng26\n(S'Variable_Type'\n(I2\nttRp405\nsS'Y:PMachine54 - CBASTI32'\np406\ng26\n(S'Variable_Type'\n(I2\nttRp407\nsS'Y:VBus138 - CLUCCI39'\np408\ng26\n(S'Variable_Type'\n(I2\nttRp409\nsS'Y:VBus39 - CSTLUC21'\np410\ng26\n(S'Variable_Type'\n(I2\nttRp411\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np412\ng26\n(S'Variable_Type'\n(I2\nttRp413\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np414\ng26\n(S'Variable_Type'\n(I2\nttRp415\nsS'Y:Load 78 - CFURIA31'\np416\ng26\n(S'Variable_Type'\n(I2\nttRp417\nsS'Y:VBus28 - CLORET21'\np418\ng26\n(S'Variable_Type'\n(I2\nttRp419\nsS'Y:PMachine105 - CPROPR32'\np420\ng26\n(S'Variable_Type'\n(I2\nttRp421\nsS'Y:VBus96 - COCANA35'\np422\ng26\n(S'Variable_Type'\n(I2\nttRp423\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np424\ng26\n(S'Variable_Type'\n(I2\nttRp425\nsS'Y:PMachine18 - CCASAM21'\np426\ng26\n(S'Variable_Type'\n(I2\nttRp427\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np428\ng26\n(S'Variable_Type'\n(I2\nttRp429\nsS'Y:VBus13 - CBIGUG21'\np430\ng26\n(S'Variable_Type'\n(I2\nttRp431\nsS'Y:VBus92 - COCANA31'\np432\ng26\n(S'Variable_Type'\n(I2\nttRp433\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np434\ng26\n(S'Variable_Type'\n(I2\nttRp435\nsS'Y:Load 57 - CBONIF31'\np436\ng26\n(S'Variable_Type'\n(I2\nttRp437\nsS'Y:VBus58 - CBONIF32'\np438\ng26\n(S'Variable_Type'\n(I2\nttRp439\nsS'Y:VBus84 - CLORET31'\np440\ng26\n(S'Variable_Type'\n(I2\nttRp441\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np442\ng26\n(S'Variable_Type'\n(I2\nttRp443\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np444\ng26\n(S'Variable_Type'\n(I2\nttRp445\nsS'Y:VBus97 - COCANA36'\np446\ng26\n(S'Variable_Type'\n(I2\nttRp447\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np448\ng26\n(S'Variable_Type'\n(I2\nttRp449\nsS'Y:VBus79 - CFURIA32'\np450\ng26\n(S'Variable_Type'\n(I2\nttRp451\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np452\ng26\n(S'Variable_Type'\n(I2\nttRp453\nsS'Y:Load 110 - CSTLUC31'\np454\ng26\n(S'Variable_Type'\n(I2\nttRp455\nsS'Y:VBus80 - CGHISO31'\np456\ng26\n(S'Variable_Type'\n(I2\nttRp457\nsS'Y:PMachine114 - CSOVEN31'\np458\ng26\n(S'Variable_Type'\n(I2\nttRp459\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np460\ng26\n(S'Variable_Type'\n(I2\nttRp461\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np462\ng26\n(S'Variable_Type'\n(I2\nttRp463\nsS'Y:PMachine93 - COCANA32'\np464\ng26\n(S'Variable_Type'\n(I2\nttRp465\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np466\ng26\n(S'Variable_Type'\n(I2\nttRp467\nsS'Y:VBus87 - CLUCCI32'\np468\ng26\n(S'Variable_Type'\n(I2\nttRp469\nsS'Y:VBus62 - CCALVI32'\np470\ng26\n(S'Variable_Type'\n(I2\nttRp471\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np472\ng26\n(S'Variable_Type'\n(I2\nttRp473\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np474\ng26\n(S'Variable_Type'\n(I2\nttRp475\nsS'Y:VBus81 - CGHISO32'\np476\ng26\n(S'Variable_Type'\n(I2\nttRp477\nsS'Y:PMachine63 - CCASAM31'\np478\ng26\n(S'Variable_Type'\n(I2\nttRp479\nsS'Y:PMachine47 - CVAZZI21'\np480\ng26\n(S'Variable_Type'\n(I2\nttRp481\nsS'Y:VBus86 - CLUCCI31'\np482\ng26\n(S'Variable_Type'\n(I2\nttRp483\nsS'X:Load(pu)'\np484\ng26\n(S'Variable_Type'\n(I2\nttRp485\nsS'Y:VBus95 - COCANA34'\np486\ng26\n(S'Variable_Type'\n(I2\nttRp487\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np488\ng26\n(S'Variable_Type'\n(I2\nttRp489\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np490\ng26\n(S'Variable_Type'\n(I2\nttRp491\nsS'Y:Load 95 - COCANA34'\np492\ng26\n(S'Variable_Type'\n(I2\nttRp493\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np494\ng26\n(S'Variable_Type'\n(I2\nttRp495\nsS'Y:PMachine90 - CMOROS31'\np496\ng26\n(S'Variable_Type'\n(I2\nttRp497\nsS'Y:Load 101 - CPIETR31'\np498\ng26\n(S'Variable_Type'\n(I2\nttRp499\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np500\ng26\n(S'Variable_Type'\n(I2\nttRp501\nsS'Y:PMachine132 - CVAZZI313'\np502\ng26\n(S'Variable_Type'\n(I2\nttRp503\nsS'Y:VBus125 - CVAZZI36'\np504\ng26\n(S'Variable_Type'\n(I2\nttRp505\nsS'Y:VBus135 - CLUCCI36'\np506\ng26\n(S'Variable_Type'\n(I2\nttRp507\nsS'Y:VBus47 - CVAZZI21'\np508\ng26\n(S'Variable_Type'\n(I2\nttRp509\nsS'Y:VBus94 - COCANA33'\np510\ng26\n(S'Variable_Type'\n(I2\nttRp511\nsS'Y:VBus17 - CCALVI21'\np512\ng26\n(S'Variable_Type'\n(I2\nttRp513\nsS'Y:VBus36 - CPROPR21'\np514\ng26\n(S'Variable_Type'\n(I2\nttRp515\nsS'Y:Load 90 - CMOROS31'\np516\ng26\n(S'Variable_Type'\n(I2\nttRp517\nsS'Y:VBus120 - CVAZZI31'\np518\ng26\n(S'Variable_Type'\n(I2\nttRp519\nsS'Y:VBus52 - CASPRE32'\np520\ng26\n(S'Variable_Type'\n(I2\nttRp521\nsS'Y:VBus25 - CFURIA22'\np522\ng26\n(S'Variable_Type'\n(I2\nttRp523\nsS'Y:Load 76 - CCORTE31'\np524\ng26\n(S'Variable_Type'\n(I2\nttRp525\nsS'Y:PMachine69 - CCASAM37'\np526\ng26\n(S'Variable_Type'\n(I2\nttRp527\nsS'Y:Load 74 - CCERVI31'\np528\ng26\n(S'Variable_Type'\n(I2\nttRp529\nsS'Y:PMachine92 - COCANA31'\np530\ng26\n(S'Variable_Type'\n(I2\nttRp531\nsS'Y:PMachine102 - CPORTO31'\np532\ng26\n(S'Variable_Type'\n(I2\nttRp533\nsS'Y:PMachine122 - CVAZZI33'\np534\ng26\n(S'Variable_Type'\n(I2\nttRp535\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np536\ng26\n(S'Variable_Type'\n(I2\nttRp537\nsS'Y:PMachine77 - CCORTE32'\np538\ng26\n(S'Variable_Type'\n(I2\nttRp539\nsS'Y:NbeTension'\np540\ng26\n(S'Variable_Type'\n(I2\nttRp541\nsS'Y:VBus126 - CVAZZI37'\np542\ng26\n(S'Variable_Type'\n(I2\nttRp543\nsS'Y:PMachine60 - CCALDA32'\np544\ng26\n(S'Variable_Type'\n(I2\nttRp545\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np546\ng26\n(S'Variable_Type'\n(I2\nttRp547\nsS'Y:VBus20 - CCERVI21'\np548\ng26\n(S'Variable_Type'\n(I2\nttRp549\nsS'Y:VBus119 - CTRAVO31'\np550\ng26\n(S'Variable_Type'\n(I2\nttRp551\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np552\ng26\n(S'Variable_Type'\n(I2\nttRp553\nsS'Y:VBus139 - CLUCCI310'\np554\ng26\n(S'Variable_Type'\n(I2\nttRp555\nsS'Y:VBus106 - CRIZZA31'\np556\ng26\n(S'Variable_Type'\n(I2\nttRp557\nsS'Y:PMachine66 - CCASAM34'\np558\ng26\n(S'Variable_Type'\n(I2\nttRp559\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np560\ng26\n(S'Variable_Type'\n(I2\nttRp561\nsS'Y:VBus136 - CLUCCI37'\np562\ng26\n(S'Variable_Type'\n(I2\nttRp563\nsS'Y:VBus90 - CMOROS31'\np564\ng26\n(S'Variable_Type'\n(I2\nttRp565\nsS'X:lineOff#'\np566\ng26\n(S'Variable_Type'\n(I2\nttRp567\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np568\ng26\n(S'Variable_Type'\n(I2\nttRp569\nsS'Y:VBus108 - CSAGON31'\np570\ng26\n(S'Variable_Type'\n(I2\nttRp571\nsS'Y:VBus137 - CLUCCI38'\np572\ng26\n(S'Variable_Type'\n(I2\nttRp573\nsS'Y:VBus130 - CVAZZI311'\np574\ng26\n(S'Variable_Type'\n(I2\nttRp575\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np576\ng26\n(S'Variable_Type'\n(I2\nttRp577\nsS'Y:VBus46 - CTRAVO21'\np578\ng26\n(S'Variable_Type'\n(I2\nttRp579\nsS'Y:VBus113 - CSAMPO32'\np580\ng26\n(S'Variable_Type'\n(I2\nttRp581\nsS'Y:PMachine133 - CVAZZI314'\np582\ng26\n(S'Variable_Type'\n(I2\nttRp583\nsS'Y:PMachine65 - CCASAM33'\np584\ng26\n(S'Variable_Type'\n(I2\nttRp585\nsS'Y:VBus78 - CFURIA31'\np586\ng26\n(S'Variable_Type'\n(I2\nttRp587\nsS'Y:VBus26 - CGHISO21'\np588\ng26\n(S'Variable_Type'\n(I2\nttRp589\nsS'Y:VBus121 - CVAZZI32'\np590\ng26\n(S'Variable_Type'\n(I2\nttRp591\nsS'Y:PMachine81 - CGHISO32'\np592\ng26\n(S'Variable_Type'\n(I2\nttRp593\nsS'Y:PMachine97 - COCANA36'\np594\ng26\n(S'Variable_Type'\n(I2\nttRp595\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np596\ng26\n(S'Variable_Type'\n(I2\nttRp597\nsS'Y:PMachine83 - CILERO32'\np598\ng26\n(S'Variable_Type'\n(I2\nttRp599\nsS'Y:VBus83 - CILERO32'\np600\ng26\n(S'Variable_Type'\n(I2\nttRp601\nsS'Y:VBus66 - CCASAM34'\np602\ng26\n(S'Variable_Type'\n(I2\nttRp603\nsS'Y:PMachine1 - CBONIF11'\np604\ng26\n(S'Variable_Type'\n(I2\nttRp605\nsS'Y:VBus111 - CSTMAR31'\np606\ng26\n(S'Variable_Type'\n(I2\nttRp607\nsS'Y:VBus124 - CVAZZI35'\np608\ng26\n(S'Variable_Type'\n(I2\nttRp609\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np610\ng26\n(S'Variable_Type'\n(I2\nttRp611\nsS'Y:PMachine131 - CVAZZI312'\np612\ng26\n(S'Variable_Type'\n(I2\nttRp613\nsS'Y:VBus44 - CTAGLI21'\np614\ng26\n(S'Variable_Type'\n(I2\nttRp615\nsS'Y:VBus88 - CLUCCI33'\np616\ng26\n(S'Variable_Type'\n(I2\nttRp617\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np618\ng26\n(S'Variable_Type'\n(I2\nttRp619\nsS'Y:VBus38 - CSAGON21'\np620\ng26\n(S'Variable_Type'\n(I2\nttRp621\nsS'Y:VBus29 - CLUCCI21'\np622\ng26\n(S'Variable_Type'\n(I2\nttRp623\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np624\ng26\n(S'Variable_Type'\n(I2\nttRp625\nsS'Y:VBus110 - CSTLUC31'\np626\ng26\n(S'Variable_Type'\n(I2\nttRp627\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np628\ng26\n(S'Variable_Type'\n(I2\nttRp629\nssS'metas'\np630\n(dp631\nsS'values'\np632\n(dp633\nS'attribute'\np634\n(S'Iteration'\np635\ng107\ntp636\nsS'yaxisTitle'\np637\n(S'frequency'\np638\nI0\ntp639\nsS'xaxisTitle'\np640\n(g635\ng107\ntp641\nsS'mainTitle'\np642\n(S''\nI0\ntp643\nsS'yPaxisTitle'\np644\n(S''\nI0\ntp645\nsS'targetValue'\np646\n(NI-2\ntp647\nsS'visibleOutcomes'\np648\n((lI-2\ntp649\nssS'time'\np650\nF1370016679.714\nsba(iOWContexts\nContext\np651\n(dp652\ng632\n(dp653\nS'attribute'\np654\n(S'X:Load(pu)'\np655\ng26\n(S'Variable_Type'\n(I2\nttRp656\ntp657\nsS'yaxisTitle'\np658\n(g638\nI0\ntp659\nsS'xaxisTitle'\np660\n(g655\ng656\ntp661\nsS'mainTitle'\np662\n(S''\nI0\ntp663\nsS'yPaxisTitle'\np664\n(S''\nI0\ntp665\nsS'targetValue'\np666\n(NI-2\ntp667\nsS'visibleOutcomes'\np668\n((lI-2\ntp669\nssg23\n(dp670\nS'Y:PMachine134 - CLUCCI35'\np671\ng26\n(S'Variable_Type'\n(I2\nttRp672\nsS'Y:VBus77 - CCORTE32'\np673\ng26\n(S'Variable_Type'\n(I2\nttRp674\nsS'Y:VBus134 - CLUCCI35'\np675\ng26\n(S'Variable_Type'\n(I2\nttRp676\nsS'Y:VBus109 - CSAGON32'\np677\ng26\n(S'Variable_Type'\n(I2\nttRp678\nsS'Y:VBus102 - CPORTO31'\np679\ng26\n(S'Variable_Type'\n(I2\nttRp680\nsS'Y:VBus18 - CCASAM21'\np681\ng26\n(S'Variable_Type'\n(I2\nttRp682\nsS'Y:VBus114 - CSOVEN31'\np683\ng26\n(S'Variable_Type'\n(I2\nttRp684\nsS'Y:VBus83 - CILERO32'\np685\ng26\n(S'Variable_Type'\n(I2\nttRp686\nsS'Y:VBus117 - CTOLLA32'\np687\ng26\n(S'Variable_Type'\n(I2\nttRp688\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np689\ng26\n(S'Variable_Type'\n(I2\nttRp690\nsS'Y:PMachine87 - CLUCCI32'\np691\ng26\n(S'Variable_Type'\n(I2\nttRp692\nsS'Y:PMachine113 - CSAMPO32'\np693\ng26\n(S'Variable_Type'\n(I2\nttRp694\nsS'Y:Load 84 - CLORET31'\np695\ng26\n(S'Variable_Type'\n(I2\nttRp696\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np697\ng26\n(S'Variable_Type'\n(I2\nttRp698\nsS'Y:Load 80 - CGHISO31'\np699\ng26\n(S'Variable_Type'\n(I2\nttRp700\nsS'Y:PMachine125 - CVAZZI36'\np701\ng26\n(S'Variable_Type'\n(I2\nttRp702\nsS'Y:VBus116 - CTOLLA31'\np703\ng26\n(S'Variable_Type'\n(I2\nttRp704\nsS'Y:PMachine88 - CLUCCI33'\np705\ng26\n(S'Variable_Type'\n(I2\nttRp706\nsS'Y:PMachine124 - CVAZZI35'\np707\ng26\n(S'Variable_Type'\n(I2\nttRp708\nsS'Y:PMachine111 - CSTMAR31'\np709\ng26\n(S'Variable_Type'\n(I2\nttRp710\nsS'Y:NbeTransit'\np711\ng26\n(S'Variable_Type'\n(I2\nttRp712\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np713\ng26\n(S'Variable_Type'\n(I2\nttRp714\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np715\ng26\n(S'Variable_Type'\n(I2\nttRp716\nsS'Y:PMachine130 - CVAZZI311'\np717\ng26\n(S'Variable_Type'\n(I2\nttRp718\nsS'Y:PMachine127 - CVAZZI38'\np719\ng26\n(S'Variable_Type'\n(I2\nttRp720\nsS'Y:VBus131 - CVAZZI312'\np721\ng26\n(S'Variable_Type'\n(I2\nttRp722\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np723\ng26\n(S'Variable_Type'\n(I2\nttRp724\nsS'Y:PMachine123 - CVAZZI34'\np725\ng26\n(S'Variable_Type'\n(I2\nttRp726\nsS'Y:VBus118 - CTOLLA33'\np727\ng26\n(S'Variable_Type'\n(I2\nttRp728\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np729\ng26\n(S'Variable_Type'\n(I2\nttRp730\nsS'Y:PMachine58 - CBONIF32'\np731\ng26\n(S'Variable_Type'\n(I2\nttRp732\nsS'Y:VBus90 - CMOROS31'\np733\ng26\n(S'Variable_Type'\n(I2\nttRp734\nsS'Y:Load 104 - CPROPR31'\np735\ng26\n(S'Variable_Type'\n(I2\nttRp736\nsS'Y:PMachine30 - CLUCCI22'\np737\ng26\n(S'Variable_Type'\n(I2\nttRp738\nsS'Y:VBus100 - COLETT31'\np739\ng26\n(S'Variable_Type'\n(I2\nttRp740\nsS'Y:PProdTot'\np741\ng26\n(S'Variable_Type'\n(I2\nttRp742\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np743\ng26\n(S'Variable_Type'\n(I2\nttRp744\nsS'Y:VBus57 - CBONIF31'\np745\ng26\n(S'Variable_Type'\n(I2\nttRp746\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np747\ng26\n(S'Variable_Type'\n(I2\nttRp748\nsS'Y:PMachine131 - CVAZZI312'\np749\ng26\n(S'Variable_Type'\n(I2\nttRp750\nsS'Y:PMachine109 - CSAGON32'\np751\ng26\n(S'Variable_Type'\n(I2\nttRp752\nsS'Y:PMachine135 - CLUCCI36'\np753\ng26\n(S'Variable_Type'\n(I2\nttRp754\nsS'Y:VBus30 - CLUCCI22'\np755\ng26\n(S'Variable_Type'\n(I2\nttRp756\nsS'Y:VBus122 - CVAZZI33'\np757\ng26\n(S'Variable_Type'\n(I2\nttRp758\nsS'Y:VBus22 - CCORTE21'\np759\ng26\n(S'Variable_Type'\n(I2\nttRp760\nsS'Y:PMachine89 - CLUCCI34'\np761\ng26\n(S'Variable_Type'\n(I2\nttRp762\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np763\ng26\n(S'Variable_Type'\n(I2\nttRp764\nsS'Y:PMachine107 - CRIZZA32'\np765\ng26\n(S'Variable_Type'\n(I2\nttRp766\nsS'Y:VBus16 - CCALDA21'\np767\ng26\n(S'Variable_Type'\n(I2\nttRp768\nsS'Y:Load 102 - CPORTO31'\np769\ng26\n(S'Variable_Type'\n(I2\nttRp770\nsS'Y:VBus107 - CRIZZA32'\np771\ng26\n(S'Variable_Type'\n(I2\nttRp772\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np773\ng26\n(S'Variable_Type'\n(I2\nttRp774\nsS'Y:VBus41 - CSAMPO21'\np775\ng26\n(S'Variable_Type'\n(I2\nttRp776\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np777\ng26\n(S'Variable_Type'\n(I2\nttRp778\nsS'Y:VBus34 - CPIETR21'\np779\ng26\n(S'Variable_Type'\n(I2\nttRp780\nsS'Y:Load 108 - CSAGON31'\np781\ng26\n(S'Variable_Type'\n(I2\nttRp782\nsS'Y:VBus56 - CBIGUG32'\np783\ng26\n(S'Variable_Type'\n(I2\nttRp784\nsS'Y:PMachine42 - CSISCO21'\np785\ng26\n(S'Variable_Type'\n(I2\nttRp786\nsS'Y:PMachine138 - CLUCCI39'\np787\ng26\n(S'Variable_Type'\n(I2\nttRp788\nsS'Y:PMachine112 - CSAMPO31'\np789\ng26\n(S'Variable_Type'\n(I2\nttRp790\nsS'Y:VBus105 - CPROPR32'\np791\ng26\n(S'Variable_Type'\n(I2\nttRp792\nsS'Y:VBus1 - CBONIF11'\np793\ng26\n(S'Variable_Type'\n(I2\nttRp794\nsS'Y:VBus12 - CBASTI21'\np795\ng26\n(S'Variable_Type'\n(I2\nttRp796\nsS'Y:PMachine129 - CVAZZI310'\np797\ng26\n(S'Variable_Type'\n(I2\nttRp798\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np799\ng26\n(S'Variable_Type'\n(I2\nttRp800\nsS'Y:VBus35 - CPORTO21'\np801\ng26\n(S'Variable_Type'\n(I2\nttRp802\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np803\ng26\n(S'Variable_Type'\n(I2\nttRp804\nsS'Y:VBus54 - CBASTI32'\np805\ng26\n(S'Variable_Type'\n(I2\nttRp806\nsS'Y:VBus69 - CCASAM37'\np807\ng26\n(S'Variable_Type'\n(I2\nttRp808\nsS'Y:VBus45 - CTOLLA21'\np809\ng26\n(S'Variable_Type'\n(I2\nttRp810\nsS'Y:PMachine115 - CTAGLI31'\np811\ng26\n(S'Variable_Type'\n(I2\nttRp812\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np813\ng26\n(S'Variable_Type'\n(I2\nttRp814\nsS'Y:VBus43 - CSOVEN21'\np815\ng26\n(S'Variable_Type'\n(I2\nttRp816\nsS'Y:VBus76 - CCORTE31'\np817\ng26\n(S'Variable_Type'\n(I2\nttRp818\nsS'Y:VBus75 - CCORSC31'\np819\ng26\n(S'Variable_Type'\n(I2\nttRp820\nsS'Y:PMachine78 - CFURIA31'\np821\ng26\n(S'Variable_Type'\n(I2\nttRp822\nsS'Y:VBus127 - CVAZZI38'\np823\ng26\n(S'Variable_Type'\n(I2\nttRp824\nsS'Y:VBus115 - CTAGLI31'\np825\ng26\n(S'Variable_Type'\n(I2\nttRp826\nsS'Y:Load 61 - CCALVI31'\np827\ng26\n(S'Variable_Type'\n(I2\nttRp828\nsS'Y:VBus55 - CBIGUG31'\np829\ng26\n(S'Variable_Type'\n(I2\nttRp830\nsS'Y:Load 42 - CSISCO21'\np831\ng26\n(S'Variable_Type'\n(I2\nttRp832\nsS'Y:VBus72 - CCASTI31'\np833\ng26\n(S'Variable_Type'\n(I2\nttRp834\nsS'Y:Load 37 - CRIZZA21'\np835\ng26\n(S'Variable_Type'\n(I2\nttRp836\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np837\ng26\n(S'Variable_Type'\n(I2\nttRp838\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np839\ng26\n(S'Variable_Type'\n(I2\nttRp840\nsS'Y:PMachine137 - CLUCCI38'\np841\ng26\n(S'Variable_Type'\n(I2\nttRp842\nsS'Y:PMachine67 - CCASAM35'\np843\ng26\n(S'Variable_Type'\n(I2\nttRp844\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np845\ng26\n(S'Variable_Type'\n(I2\nttRp846\nsS'Y:VBus31 - CMOROS21'\np847\ng26\n(S'Variable_Type'\n(I2\nttRp848\nsS'Y:VBus103 - CPORTO32'\np849\ng26\n(S'Variable_Type'\n(I2\nttRp850\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np851\ng26\n(S'Variable_Type'\n(I2\nttRp852\nsS'Y:PMachine14 - CBONIF21'\np853\ng26\n(S'Variable_Type'\n(I2\nttRp854\nsS'Y:PMachine72 - CCASTI31'\np855\ng26\n(S'Variable_Type'\n(I2\nttRp856\nsS'Y:VBus27 - CILERO21'\np857\ng26\n(S'Variable_Type'\n(I2\nttRp858\nsS'Y:PMachine75 - CCORSC31'\np859\ng26\n(S'Variable_Type'\n(I2\nttRp860\nsS'Y:Load 51 - CASPRE31'\np861\ng26\n(S'Variable_Type'\n(I2\nttRp862\nsS'Y:VBus51 - CASPRE31'\np863\ng26\n(S'Variable_Type'\n(I2\nttRp864\nsS'Y:PMachine94 - COCANA33'\np865\ng26\n(S'Variable_Type'\n(I2\nttRp866\nsS'Y:PMachine126 - CVAZZI37'\np867\ng26\n(S'Variable_Type'\n(I2\nttRp868\nsS'Y:Load 86 - CLUCCI31'\np869\ng26\n(S'Variable_Type'\n(I2\nttRp870\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np871\ng26\n(S'Variable_Type'\n(I2\nttRp872\nsS'Y:PMachine104 - CPROPR31'\np873\ng26\n(S'Variable_Type'\n(I2\nttRp874\nsS'Y:VBus128 - CVAZZI39'\np875\ng26\n(S'Variable_Type'\n(I2\nttRp876\nsS'Y:PMachine136 - CLUCCI37'\np877\ng26\n(S'Variable_Type'\n(I2\nttRp878\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np879\ng26\n(S'Variable_Type'\n(I2\nttRp880\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np881\ng26\n(S'Variable_Type'\n(I2\nttRp882\nsS'Y:PMachine29 - CLUCCI21'\np883\ng26\n(S'Variable_Type'\n(I2\nttRp884\nsS'Y:VBus42 - CSISCO21'\np885\ng26\n(S'Variable_Type'\n(I2\nttRp886\nsS'Y:Load 110 - CSTLUC31'\np887\ng26\n(S'Variable_Type'\n(I2\nttRp888\nsS'Y:VBus14 - CBONIF21'\np889\ng26\n(S'Variable_Type'\n(I2\nttRp890\nsS'Y:VBus73 - CCASTI32'\np891\ng26\n(S'Variable_Type'\n(I2\nttRp892\nsS'Y:VBus64 - CCASAM32'\np893\ng26\n(S'Variable_Type'\n(I2\nttRp894\nsS'Y:PMachine128 - CVAZZI39'\np895\ng26\n(S'Variable_Type'\n(I2\nttRp896\nsS'Y:VBus133 - CVAZZI314'\np897\ng26\n(S'Variable_Type'\n(I2\nttRp898\nsS'Y:VBus63 - CCASAM31'\np899\ng26\n(S'Variable_Type'\n(I2\nttRp900\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np901\ng26\n(S'Variable_Type'\n(I2\nttRp902\nsS'Y:%Losses'\np903\ng26\n(S'Variable_Type'\n(I2\nttRp904\nsS'Y:VBus85 - CLORET32'\np905\ng26\n(S'Variable_Type'\n(I2\nttRp906\nsS'Y:Load 59 - CCALDA31'\np907\ng26\n(S'Variable_Type'\n(I2\nttRp908\nsS'Y:VBus129 - CVAZZI310'\np909\ng26\n(S'Variable_Type'\n(I2\nttRp910\nsS'Y:VBus101 - CPIETR31'\np911\ng26\n(S'Variable_Type'\n(I2\nttRp912\nsS'Y:PMachine106 - CRIZZA31'\np913\ng26\n(S'Variable_Type'\n(I2\nttRp914\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np915\ng26\n(S'Variable_Type'\n(I2\nttRp916\nsS'Y:PMachine118 - CTOLLA33'\np917\ng26\n(S'Variable_Type'\n(I2\nttRp918\nsS'Y:VBus19 - CCASTI21'\np919\ng26\n(S'Variable_Type'\n(I2\nttRp920\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np921\ng26\n(S'Variable_Type'\n(I2\nttRp922\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np923\ng26\n(S'Variable_Type'\n(I2\nttRp924\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np925\ng26\n(S'Variable_Type'\n(I2\nttRp926\nsS'Y:Load 115 - CTAGLI31'\np927\ng26\n(S'Variable_Type'\n(I2\nttRp928\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np929\ng26\n(S'Variable_Type'\n(I2\nttRp930\nsS'Y:VBus15 - CBONIF22'\np931\ng26\n(S'Variable_Type'\n(I2\nttRp932\nsS'Y:PMachine47 - CVAZZI21'\np933\ng26\n(S'Variable_Type'\n(I2\nttRp934\nsS'Y:VBus123 - CVAZZI34'\np935\ng26\n(S'Variable_Type'\n(I2\nttRp936\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np937\ng26\n(S'Variable_Type'\n(I2\nttRp938\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np939\ng26\n(S'Variable_Type'\n(I2\nttRp940\nsS'Y:VBus44 - CTAGLI21'\np941\ng26\n(S'Variable_Type'\n(I2\nttRp942\nsS'Y:VBus65 - CCASAM33'\np943\ng26\n(S'Variable_Type'\n(I2\nttRp944\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np945\ng26\n(S'Variable_Type'\n(I2\nttRp946\nsS'Y:PMachine139 - CLUCCI310'\np947\ng26\n(S'Variable_Type'\n(I2\nttRp948\nsS'Y:VBus112 - CSAMPO31'\np949\ng26\n(S'Variable_Type'\n(I2\nttRp950\nsS'Y:VBus68 - CCASAM36'\np951\ng26\n(S'Variable_Type'\n(I2\nttRp952\nsS'Y:Load 55 - CBIGUG31'\np953\ng26\n(S'Variable_Type'\n(I2\nttRp954\nsS'Y:PMachine53 - CBASTI31'\np955\ng26\n(S'Variable_Type'\n(I2\nttRp956\nsS'Y:NbeTransit_0.9-1'\np957\ng26\n(S'Variable_Type'\n(I2\nttRp958\nsS'Y:VBus24 - CFURIA21'\np959\ng26\n(S'Variable_Type'\n(I2\nttRp960\nsS'Y:VBus23 - CCORTE22'\np961\ng26\n(S'Variable_Type'\n(I2\nttRp962\nsS'XProdEolienne%Pnom'\np963\ng26\n(S'Variable_Type'\n(I2\nttRp964\nsS'Y:VBus40 - CSTMAR21'\np965\ng26\n(S'Variable_Type'\n(I2\nttRp966\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np967\ng26\n(S'Variable_Type'\n(I2\nttRp968\nsS'Y:PMachine120 - CVAZZI31'\np969\ng26\n(S'Variable_Type'\n(I2\nttRp970\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np971\ng26\n(S'Variable_Type'\n(I2\nttRp972\nsS'Y:PMachine117 - CTOLLA32'\np973\ng26\n(S'Variable_Type'\n(I2\nttRp974\nsS'Y:VBus89 - CLUCCI34'\np975\ng26\n(S'Variable_Type'\n(I2\nttRp976\nsS'Y:VBus33 - COLETT21'\np977\ng26\n(S'Variable_Type'\n(I2\nttRp978\nsS'Y:VBus32 - COCANA21'\np979\ng26\n(S'Variable_Type'\n(I2\nttRp980\nsS'Y:PMachine121 - CVAZZI32'\np981\ng26\n(S'Variable_Type'\n(I2\nttRp982\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np983\ng26\n(S'Variable_Type'\n(I2\nttRp984\nsS'Y:VBus59 - CCALDA31'\np985\ng26\n(S'Variable_Type'\n(I2\nttRp986\nsS'Y:VBus82 - CILERO31'\np987\ng26\n(S'Variable_Type'\n(I2\nttRp988\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np989\ng26\n(S'Variable_Type'\n(I2\nttRp990\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np991\ng26\n(S'Variable_Type'\n(I2\nttRp992\nsS'Y:VBus37 - CRIZZA21'\np993\ng26\n(S'Variable_Type'\n(I2\nttRp994\nsS'Y:PMachine73 - CCASTI32'\np995\ng26\n(S'Variable_Type'\n(I2\nttRp996\nsS'Y:PMachine86 - CLUCCI31'\np997\ng26\n(S'Variable_Type'\n(I2\nttRp998\nsS'Y:Load 53 - CBASTI31'\np999\ng26\n(S'Variable_Type'\n(I2\nttRp1000\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np1001\ng26\n(S'Variable_Type'\n(I2\nttRp1002\nsS'Y:VBus21 - CCORSC21'\np1003\ng26\n(S'Variable_Type'\n(I2\nttRp1004\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np1005\ng26\n(S'Variable_Type'\n(I2\nttRp1006\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np1007\ng26\n(S'Variable_Type'\n(I2\nttRp1008\nsS'Y:Load 82 - CILERO31'\np1009\ng26\n(S'Variable_Type'\n(I2\nttRp1010\nsS'Y:PMachine64 - CCASAM32'\np1011\ng26\n(S'Variable_Type'\n(I2\nttRp1012\nsS'Y:VBus67 - CCASAM35'\np1013\ng26\n(S'Variable_Type'\n(I2\nttRp1014\nsS'Y:VBus53 - CBASTI31'\np1015\ng26\n(S'Variable_Type'\n(I2\nttRp1016\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np1017\ng26\n(S'Variable_Type'\n(I2\nttRp1018\nsS'Y:VBus61 - CCALVI31'\np1019\ng26\n(S'Variable_Type'\n(I2\nttRp1020\nsS'Y:VBus93 - COCANA32'\np1021\ng26\n(S'Variable_Type'\n(I2\nttRp1022\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np1023\ng26\n(S'Variable_Type'\n(I2\nttRp1024\nsS'Y:PMachine92 - COCANA31'\np1025\ng26\n(S'Variable_Type'\n(I2\nttRp1026\nsS'Y:VBus104 - CPROPR31'\np1027\ng26\n(S'Variable_Type'\n(I2\nttRp1028\nsS'Y:VBus48 - CZSSS621'\np1029\ng26\n(S'Variable_Type'\n(I2\nttRp1030\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np1031\ng26\n(S'Variable_Type'\n(I2\nttRp1032\nsS'Y:VBus74 - CCERVI31'\np1033\ng26\n(S'Variable_Type'\n(I2\nttRp1034\nsS'Y:VBus36 - CPROPR21'\np1035\ng26\n(S'Variable_Type'\n(I2\nttRp1036\nsS'Y:Load 100 - COLETT31'\np1037\ng26\n(S'Variable_Type'\n(I2\nttRp1038\nsS'Y:PMachine54 - CBASTI32'\np1039\ng26\n(S'Variable_Type'\n(I2\nttRp1040\nsS'Y:VBus138 - CLUCCI39'\np1041\ng26\n(S'Variable_Type'\n(I2\nttRp1042\nsS'Y:VBus39 - CSTLUC21'\np1043\ng26\n(S'Variable_Type'\n(I2\nttRp1044\nsS'Y:PMachine74 - CCERVI31'\np1045\ng26\n(S'Variable_Type'\n(I2\nttRp1046\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np1047\ng26\n(S'Variable_Type'\n(I2\nttRp1048\nsS'Y:Load 78 - CFURIA31'\np1049\ng26\n(S'Variable_Type'\n(I2\nttRp1050\nsS'Y:VBus28 - CLORET21'\np1051\ng26\n(S'Variable_Type'\n(I2\nttRp1052\nsS'Y:PMachine105 - CPROPR32'\np1053\ng26\n(S'Variable_Type'\n(I2\nttRp1054\nsS'Y:VBus96 - COCANA35'\np1055\ng26\n(S'Variable_Type'\n(I2\nttRp1056\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np1057\ng26\n(S'Variable_Type'\n(I2\nttRp1058\nsS'Y:PMachine18 - CCASAM21'\np1059\ng26\n(S'Variable_Type'\n(I2\nttRp1060\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np1061\ng26\n(S'Variable_Type'\n(I2\nttRp1062\nsS'Y:VBus13 - CBIGUG21'\np1063\ng26\n(S'Variable_Type'\n(I2\nttRp1064\nsS'Y:VBus92 - COCANA31'\np1065\ng26\n(S'Variable_Type'\n(I2\nttRp1066\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np1067\ng26\n(S'Variable_Type'\n(I2\nttRp1068\nsS'Y:Load 76 - CCORTE31'\np1069\ng26\n(S'Variable_Type'\n(I2\nttRp1070\nsS'Y:VBus58 - CBONIF32'\np1071\ng26\n(S'Variable_Type'\n(I2\nttRp1072\nsS'Y:VBus84 - CLORET31'\np1073\ng26\n(S'Variable_Type'\n(I2\nttRp1074\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np1075\ng26\n(S'Variable_Type'\n(I2\nttRp1076\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np1077\ng26\n(S'Variable_Type'\n(I2\nttRp1078\nsS'Y:VBus97 - COCANA36'\np1079\ng26\n(S'Variable_Type'\n(I2\nttRp1080\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np1081\ng26\n(S'Variable_Type'\n(I2\nttRp1082\nsS'Y:VBus106 - CRIZZA31'\np1083\ng26\n(S'Variable_Type'\n(I2\nttRp1084\nsS'Y:VBus79 - CFURIA32'\np1085\ng26\n(S'Variable_Type'\n(I2\nttRp1086\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np1087\ng26\n(S'Variable_Type'\n(I2\nttRp1088\nsS'Y:VBus80 - CGHISO31'\np1089\ng26\n(S'Variable_Type'\n(I2\nttRp1090\nsS'Y:PMachine114 - CSOVEN31'\np1091\ng26\n(S'Variable_Type'\n(I2\nttRp1092\nsS'Y:VBus132 - CVAZZI313'\np1093\ng26\n(S'Variable_Type'\n(I2\nttRp1094\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np1095\ng26\n(S'Variable_Type'\n(I2\nttRp1096\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np1097\ng26\n(S'Variable_Type'\n(I2\nttRp1098\nsS'Y:VBus87 - CLUCCI32'\np1099\ng26\n(S'Variable_Type'\n(I2\nttRp1100\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np1101\ng26\n(S'Variable_Type'\n(I2\nttRp1102\nsS'Y:VBus88 - CLUCCI33'\np1103\ng26\n(S'Variable_Type'\n(I2\nttRp1104\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np1105\ng26\n(S'Variable_Type'\n(I2\nttRp1106\nsS'Y:PMachine85 - CLORET32'\np1107\ng26\n(S'Variable_Type'\n(I2\nttRp1108\nsS'Y:VBus81 - CGHISO32'\np1109\ng26\n(S'Variable_Type'\n(I2\nttRp1110\nsS'Y:PMachine63 - CCASAM31'\np1111\ng26\n(S'Variable_Type'\n(I2\nttRp1112\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np1113\ng26\n(S'Variable_Type'\n(I2\nttRp1114\nsS'X:Load(pu)'\np1115\ng656\nsS'Y:NbeTension'\np1116\ng26\n(S'Variable_Type'\n(I2\nttRp1117\nsS'Y:VBus95 - COCANA34'\np1118\ng26\n(S'Variable_Type'\n(I2\nttRp1119\nsS'Y:VBus62 - CCALVI32'\np1120\ng26\n(S'Variable_Type'\n(I2\nttRp1121\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np1122\ng26\n(S'Variable_Type'\n(I2\nttRp1123\nsS'Y:Load 95 - COCANA34'\np1124\ng26\n(S'Variable_Type'\n(I2\nttRp1125\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np1126\ng26\n(S'Variable_Type'\n(I2\nttRp1127\nsS'Y:PMachine90 - CMOROS31'\np1128\ng26\n(S'Variable_Type'\n(I2\nttRp1129\nsS'Y:Load 101 - CPIETR31'\np1130\ng26\n(S'Variable_Type'\n(I2\nttRp1131\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np1132\ng26\n(S'Variable_Type'\n(I2\nttRp1133\nsS'Y:PMachine132 - CVAZZI313'\np1134\ng26\n(S'Variable_Type'\n(I2\nttRp1135\nsS'Y:PMachine65 - CCASAM33'\np1136\ng26\n(S'Variable_Type'\n(I2\nttRp1137\nsS'Y:VBus125 - CVAZZI36'\np1138\ng26\n(S'Variable_Type'\n(I2\nttRp1139\nsS'Y:VBus135 - CLUCCI36'\np1140\ng26\n(S'Variable_Type'\n(I2\nttRp1141\nsS'Y:VBus47 - CVAZZI21'\np1142\ng26\n(S'Variable_Type'\n(I2\nttRp1143\nsS'Y:VBus94 - COCANA33'\np1144\ng26\n(S'Variable_Type'\n(I2\nttRp1145\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np1146\ng26\n(S'Variable_Type'\n(I2\nttRp1147\nsS'Y:VBus17 - CCALVI21'\np1148\ng26\n(S'Variable_Type'\n(I2\nttRp1149\nsS'Y:Load 90 - CMOROS31'\np1150\ng26\n(S'Variable_Type'\n(I2\nttRp1151\nsS'Y:VBus120 - CVAZZI31'\np1152\ng26\n(S'Variable_Type'\n(I2\nttRp1153\nsS'Y:VBus52 - CASPRE32'\np1154\ng26\n(S'Variable_Type'\n(I2\nttRp1155\nsS'Y:VBus25 - CFURIA22'\np1156\ng26\n(S'Variable_Type'\n(I2\nttRp1157\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np1158\ng26\n(S'Variable_Type'\n(I2\nttRp1159\nsS'Y:PMachine69 - CCASAM37'\np1160\ng26\n(S'Variable_Type'\n(I2\nttRp1161\nsS'Y:PConsoTot'\np1162\ng26\n(S'Variable_Type'\n(I2\nttRp1163\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np1164\ng26\n(S'Variable_Type'\n(I2\nttRp1165\nsS'Y:PMachine102 - CPORTO31'\np1166\ng26\n(S'Variable_Type'\n(I2\nttRp1167\nsS'Y:VBus136 - CLUCCI37'\np1168\ng26\n(S'Variable_Type'\n(I2\nttRp1169\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np1170\ng26\n(S'Variable_Type'\n(I2\nttRp1171\nsS'Y:PMachine122 - CVAZZI33'\np1172\ng26\n(S'Variable_Type'\n(I2\nttRp1173\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np1174\ng26\n(S'Variable_Type'\n(I2\nttRp1175\nsS'Y:PMachine77 - CCORTE32'\np1176\ng26\n(S'Variable_Type'\n(I2\nttRp1177\nsS'Y:PMachine116 - CTOLLA31'\np1178\ng26\n(S'Variable_Type'\n(I2\nttRp1179\nsS'Y:VBus126 - CVAZZI37'\np1180\ng26\n(S'Variable_Type'\n(I2\nttRp1181\nsS'Y:PMachine60 - CCALDA32'\np1182\ng26\n(S'Variable_Type'\n(I2\nttRp1183\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np1184\ng26\n(S'Variable_Type'\n(I2\nttRp1185\nsS'Y:VBus20 - CCERVI21'\np1186\ng26\n(S'Variable_Type'\n(I2\nttRp1187\nsS'Y:VBus119 - CTRAVO31'\np1188\ng26\n(S'Variable_Type'\n(I2\nttRp1189\nsS'Y:VBus11 - CASPRE21'\np1190\ng26\n(S'Variable_Type'\n(I2\nttRp1191\nsS'Y:VBus139 - CLUCCI310'\np1192\ng26\n(S'Variable_Type'\n(I2\nttRp1193\nsS'Y:VBus60 - CCALDA32'\np1194\ng26\n(S'Variable_Type'\n(I2\nttRp1195\nsS'Y:PMachine66 - CCASAM34'\np1196\ng26\n(S'Variable_Type'\n(I2\nttRp1197\nsS'Y:PMachine101 - CPIETR31'\np1198\ng26\n(S'Variable_Type'\n(I2\nttRp1199\nsS'Y:PMachine133 - CVAZZI314'\np1200\ng26\n(S'Variable_Type'\n(I2\nttRp1201\nsS'Y:PMachine62 - CCALVI32'\np1202\ng26\n(S'Variable_Type'\n(I2\nttRp1203\nsS'Y:Load 74 - CCERVI31'\np1204\ng26\n(S'Variable_Type'\n(I2\nttRp1205\nsS'X:lineOff#'\np1206\ng26\n(S'Variable_Type'\n(I2\nttRp1207\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np1208\ng26\n(S'Variable_Type'\n(I2\nttRp1209\nsS'Y:VBus108 - CSAGON31'\np1210\ng26\n(S'Variable_Type'\n(I2\nttRp1211\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np1212\ng26\n(S'Variable_Type'\n(I2\nttRp1213\nsS'Y:VBus137 - CLUCCI38'\np1214\ng26\n(S'Variable_Type'\n(I2\nttRp1215\nsS'Y:VBus130 - CVAZZI311'\np1216\ng26\n(S'Variable_Type'\n(I2\nttRp1217\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np1218\ng26\n(S'Variable_Type'\n(I2\nttRp1219\nsS'Y:VBus46 - CTRAVO21'\np1220\ng26\n(S'Variable_Type'\n(I2\nttRp1221\nsS'Y:VBus113 - CSAMPO32'\np1222\ng26\n(S'Variable_Type'\n(I2\nttRp1223\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np1224\ng26\n(S'Variable_Type'\n(I2\nttRp1225\nsS'Y:PMachine68 - CCASAM36'\np1226\ng26\n(S'Variable_Type'\n(I2\nttRp1227\nsS'Y:VBus78 - CFURIA31'\np1228\ng26\n(S'Variable_Type'\n(I2\nttRp1229\nsS'Y:VBus26 - CGHISO21'\np1230\ng26\n(S'Variable_Type'\n(I2\nttRp1231\nsS'Y:VBus121 - CVAZZI32'\np1232\ng26\n(S'Variable_Type'\n(I2\nttRp1233\nsS'Y:PMachine97 - COCANA36'\np1234\ng26\n(S'Variable_Type'\n(I2\nttRp1235\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np1236\ng26\n(S'Variable_Type'\n(I2\nttRp1237\nsS'Y:PMachine83 - CILERO32'\np1238\ng26\n(S'Variable_Type'\n(I2\nttRp1239\nsS'Y:Max%A'\np1240\ng26\n(S'Variable_Type'\n(I2\nttRp1241\nsS'Y:VBus66 - CCASAM34'\np1242\ng26\n(S'Variable_Type'\n(I2\nttRp1243\nsS'Y:PMachine1 - CBONIF11'\np1244\ng26\n(S'Variable_Type'\n(I2\nttRp1245\nsS'Y:VBus111 - CSTMAR31'\np1246\ng26\n(S'Variable_Type'\n(I2\nttRp1247\nsS'Y:VBus124 - CVAZZI35'\np1248\ng26\n(S'Variable_Type'\n(I2\nttRp1249\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np1250\ng26\n(S'Variable_Type'\n(I2\nttRp1251\nsS'Y:VBus29 - CLUCCI21'\np1252\ng26\n(S'Variable_Type'\n(I2\nttRp1253\nsS'Y:PMachine93 - COCANA32'\np1254\ng26\n(S'Variable_Type'\n(I2\nttRp1255\nsS'Y:Load 57 - CBONIF31'\np1256\ng26\n(S'Variable_Type'\n(I2\nttRp1257\nsS'Y:VBus86 - CLUCCI31'\np1258\ng26\n(S'Variable_Type'\n(I2\nttRp1259\nsS'Y:VBus38 - CSAGON21'\np1260\ng26\n(S'Variable_Type'\n(I2\nttRp1261\nsS'Y:PMachine81 - CGHISO32'\np1262\ng26\n(S'Variable_Type'\n(I2\nttRp1263\nsS'Y:PMachine61 - CCALVI31'\np1264\ng26\n(S'Variable_Type'\n(I2\nttRp1265\nsS'Y:VBus110 - CSTLUC31'\np1266\ng26\n(S'Variable_Type'\n(I2\nttRp1267\nsS'X:ProdPV%Pnom'\np1268\ng26\n(S'Variable_Type'\n(I2\nttRp1269\nssg630\n(dp1270\nsg20\n(lp1271\nS'orderedDomain'\np1272\nasg650\nF1369744625.773\nsba(iOWContexts\nContext\np1273\n(dp1274\ng632\n(dp1275\ng654\n(S'Iteration'\np1276\ng26\n(S'Variable_Type'\n(I2\nttRp1277\ntp1278\nsg658\n(g638\nI0\ntp1279\nsg660\n(g1276\ng1277\ntp1280\nsg662\n(S''\nI0\ntp1281\nsg664\n(S''\nI0\ntp1282\nsg666\n(NI-2\ntp1283\nsg668\n((lI-2\ntp1284\nssg23\n(dp1285\nS'Y:PMachine134 - CLUCCI35'\np1286\ng26\n(S'Variable_Type'\n(I2\nttRp1287\nsS'Y:VBus77 - CCORTE32'\np1288\ng26\n(S'Variable_Type'\n(I2\nttRp1289\nsS'Y:VBus134 - CLUCCI35'\np1290\ng26\n(S'Variable_Type'\n(I2\nttRp1291\nsS'Y:VBus109 - CSAGON32'\np1292\ng26\n(S'Variable_Type'\n(I2\nttRp1293\nsS'Y:VBus102 - CPORTO31'\np1294\ng26\n(S'Variable_Type'\n(I2\nttRp1295\nsS'Y:VBus18 - CCASAM21'\np1296\ng26\n(S'Variable_Type'\n(I2\nttRp1297\nsS'Y:VBus114 - CSOVEN31'\np1298\ng26\n(S'Variable_Type'\n(I2\nttRp1299\nsS'Y:VBus83 - CILERO32'\np1300\ng26\n(S'Variable_Type'\n(I2\nttRp1301\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np1302\ng26\n(S'Variable_Type'\n(I2\nttRp1303\nsS'Y:PMachine87 - CLUCCI32'\np1304\ng26\n(S'Variable_Type'\n(I2\nttRp1305\nsS'Y:PMachine113 - CSAMPO32'\np1306\ng26\n(S'Variable_Type'\n(I2\nttRp1307\nsS'Y:Load 84 - CLORET31'\np1308\ng26\n(S'Variable_Type'\n(I2\nttRp1309\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np1310\ng26\n(S'Variable_Type'\n(I2\nttRp1311\nsS'Y:Load 42 - CSISCO21'\np1312\ng26\n(S'Variable_Type'\n(I2\nttRp1313\nsS'Y:PMachine125 - CVAZZI36'\np1314\ng26\n(S'Variable_Type'\n(I2\nttRp1315\nsS'Y:VBus116 - CTOLLA31'\np1316\ng26\n(S'Variable_Type'\n(I2\nttRp1317\nsS'Y:PMachine88 - CLUCCI33'\np1318\ng26\n(S'Variable_Type'\n(I2\nttRp1319\nsS'Y:PMachine124 - CVAZZI35'\np1320\ng26\n(S'Variable_Type'\n(I2\nttRp1321\nsS'Y:PMachine111 - CSTMAR31'\np1322\ng26\n(S'Variable_Type'\n(I2\nttRp1323\nsS'Y:NbeTransit'\np1324\ng26\n(S'Variable_Type'\n(I2\nttRp1325\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np1326\ng26\n(S'Variable_Type'\n(I2\nttRp1327\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np1328\ng26\n(S'Variable_Type'\n(I2\nttRp1329\nsS'Y:PMachine130 - CVAZZI311'\np1330\ng26\n(S'Variable_Type'\n(I2\nttRp1331\nsS'Y:PMachine127 - CVAZZI38'\np1332\ng26\n(S'Variable_Type'\n(I2\nttRp1333\nsS'Y:VBus131 - CVAZZI312'\np1334\ng26\n(S'Variable_Type'\n(I2\nttRp1335\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np1336\ng26\n(S'Variable_Type'\n(I2\nttRp1337\nsS'Y:PMachine123 - CVAZZI34'\np1338\ng26\n(S'Variable_Type'\n(I2\nttRp1339\nsS'Y:VBus118 - CTOLLA33'\np1340\ng26\n(S'Variable_Type'\n(I2\nttRp1341\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np1342\ng26\n(S'Variable_Type'\n(I2\nttRp1343\nsS'Y:PMachine58 - CBONIF32'\np1344\ng26\n(S'Variable_Type'\n(I2\nttRp1345\nsS'Y:VBus90 - CMOROS31'\np1346\ng26\n(S'Variable_Type'\n(I2\nttRp1347\nsS'Y:Load 104 - CPROPR31'\np1348\ng26\n(S'Variable_Type'\n(I2\nttRp1349\nsS'Y:PMachine30 - CLUCCI22'\np1350\ng26\n(S'Variable_Type'\n(I2\nttRp1351\nsS'Y:VBus100 - COLETT31'\np1352\ng26\n(S'Variable_Type'\n(I2\nttRp1353\nsS'Y:PProdTot'\np1354\ng26\n(S'Variable_Type'\n(I2\nttRp1355\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np1356\ng26\n(S'Variable_Type'\n(I2\nttRp1357\nsS'Y:VBus57 - CBONIF31'\np1358\ng26\n(S'Variable_Type'\n(I2\nttRp1359\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np1360\ng26\n(S'Variable_Type'\n(I2\nttRp1361\nsS'Iteration'\np1362\ng1277\nsS'Y:PMachine109 - CSAGON32'\np1363\ng26\n(S'Variable_Type'\n(I2\nttRp1364\nsS'Y:PMachine135 - CLUCCI36'\np1365\ng26\n(S'Variable_Type'\n(I2\nttRp1366\nsS'Y:VBus30 - CLUCCI22'\np1367\ng26\n(S'Variable_Type'\n(I2\nttRp1368\nsS'Y:VBus122 - CVAZZI33'\np1369\ng26\n(S'Variable_Type'\n(I2\nttRp1370\nsS'Y:VBus22 - CCORTE21'\np1371\ng26\n(S'Variable_Type'\n(I2\nttRp1372\nsS'Y:VBus117 - CTOLLA32'\np1373\ng26\n(S'Variable_Type'\n(I2\nttRp1374\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np1375\ng26\n(S'Variable_Type'\n(I2\nttRp1376\nsS'Y:PMachine107 - CRIZZA32'\np1377\ng26\n(S'Variable_Type'\n(I2\nttRp1378\nsS'Y:VBus16 - CCALDA21'\np1379\ng26\n(S'Variable_Type'\n(I2\nttRp1380\nsS'Y:Load 102 - CPORTO31'\np1381\ng26\n(S'Variable_Type'\n(I2\nttRp1382\nsS'Y:VBus107 - CRIZZA32'\np1383\ng26\n(S'Variable_Type'\n(I2\nttRp1384\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np1385\ng26\n(S'Variable_Type'\n(I2\nttRp1386\nsS'Y:VBus41 - CSAMPO21'\np1387\ng26\n(S'Variable_Type'\n(I2\nttRp1388\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np1389\ng26\n(S'Variable_Type'\n(I2\nttRp1390\nsS'Y:VBus34 - CPIETR21'\np1391\ng26\n(S'Variable_Type'\n(I2\nttRp1392\nsS'Y:Load 108 - CSAGON31'\np1393\ng26\n(S'Variable_Type'\n(I2\nttRp1394\nsS'Y:VBus56 - CBIGUG32'\np1395\ng26\n(S'Variable_Type'\n(I2\nttRp1396\nsS'Y:PMachine42 - CSISCO21'\np1397\ng26\n(S'Variable_Type'\n(I2\nttRp1398\nsS'Y:PMachine138 - CLUCCI39'\np1399\ng26\n(S'Variable_Type'\n(I2\nttRp1400\nsS'Y:PMachine112 - CSAMPO31'\np1401\ng26\n(S'Variable_Type'\n(I2\nttRp1402\nsS'Y:VBus105 - CPROPR32'\np1403\ng26\n(S'Variable_Type'\n(I2\nttRp1404\nsS'Y:VBus1 - CBONIF11'\np1405\ng26\n(S'Variable_Type'\n(I2\nttRp1406\nsS'Y:VBus12 - CBASTI21'\np1407\ng26\n(S'Variable_Type'\n(I2\nttRp1408\nsS'Y:PMachine129 - CVAZZI310'\np1409\ng26\n(S'Variable_Type'\n(I2\nttRp1410\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np1411\ng26\n(S'Variable_Type'\n(I2\nttRp1412\nsS'Y:VBus35 - CPORTO21'\np1413\ng26\n(S'Variable_Type'\n(I2\nttRp1414\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np1415\ng26\n(S'Variable_Type'\n(I2\nttRp1416\nsS'Y:VBus54 - CBASTI32'\np1417\ng26\n(S'Variable_Type'\n(I2\nttRp1418\nsS'Y:VBus69 - CCASAM37'\np1419\ng26\n(S'Variable_Type'\n(I2\nttRp1420\nsS'Y:VBus45 - CTOLLA21'\np1421\ng26\n(S'Variable_Type'\n(I2\nttRp1422\nsS'Y:PMachine115 - CTAGLI31'\np1423\ng26\n(S'Variable_Type'\n(I2\nttRp1424\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np1425\ng26\n(S'Variable_Type'\n(I2\nttRp1426\nsS'Y:VBus43 - CSOVEN21'\np1427\ng26\n(S'Variable_Type'\n(I2\nttRp1428\nsS'Y:VBus76 - CCORTE31'\np1429\ng26\n(S'Variable_Type'\n(I2\nttRp1430\nsS'Y:VBus75 - CCORSC31'\np1431\ng26\n(S'Variable_Type'\n(I2\nttRp1432\nsS'Y:PMachine78 - CFURIA31'\np1433\ng26\n(S'Variable_Type'\n(I2\nttRp1434\nsS'Y:VBus127 - CVAZZI38'\np1435\ng26\n(S'Variable_Type'\n(I2\nttRp1436\nsS'Y:VBus115 - CTAGLI31'\np1437\ng26\n(S'Variable_Type'\n(I2\nttRp1438\nsS'Y:Load 61 - CCALVI31'\np1439\ng26\n(S'Variable_Type'\n(I2\nttRp1440\nsS'Y:VBus55 - CBIGUG31'\np1441\ng26\n(S'Variable_Type'\n(I2\nttRp1442\nsS'Y:Load 80 - CGHISO31'\np1443\ng26\n(S'Variable_Type'\n(I2\nttRp1444\nsS'Y:VBus72 - CCASTI31'\np1445\ng26\n(S'Variable_Type'\n(I2\nttRp1446\nsS'Y:Load 37 - CRIZZA21'\np1447\ng26\n(S'Variable_Type'\n(I2\nttRp1448\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np1449\ng26\n(S'Variable_Type'\n(I2\nttRp1450\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np1451\ng26\n(S'Variable_Type'\n(I2\nttRp1452\nsS'Y:PMachine102 - CPORTO31'\np1453\ng26\n(S'Variable_Type'\n(I2\nttRp1454\nsS'Y:PMachine67 - CCASAM35'\np1455\ng26\n(S'Variable_Type'\n(I2\nttRp1456\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np1457\ng26\n(S'Variable_Type'\n(I2\nttRp1458\nsS'Y:VBus31 - CMOROS21'\np1459\ng26\n(S'Variable_Type'\n(I2\nttRp1460\nsS'Y:VBus103 - CPORTO32'\np1461\ng26\n(S'Variable_Type'\n(I2\nttRp1462\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np1463\ng26\n(S'Variable_Type'\n(I2\nttRp1464\nsS'Y:PMachine14 - CBONIF21'\np1465\ng26\n(S'Variable_Type'\n(I2\nttRp1466\nsS'Y:PMachine72 - CCASTI31'\np1467\ng26\n(S'Variable_Type'\n(I2\nttRp1468\nsS'Y:VBus27 - CILERO21'\np1469\ng26\n(S'Variable_Type'\n(I2\nttRp1470\nsS'Y:PMachine75 - CCORSC31'\np1471\ng26\n(S'Variable_Type'\n(I2\nttRp1472\nsS'Y:Load 51 - CASPRE31'\np1473\ng26\n(S'Variable_Type'\n(I2\nttRp1474\nsS'Y:VBus51 - CASPRE31'\np1475\ng26\n(S'Variable_Type'\n(I2\nttRp1476\nsS'Y:PMachine94 - COCANA33'\np1477\ng26\n(S'Variable_Type'\n(I2\nttRp1478\nsS'Y:PMachine126 - CVAZZI37'\np1479\ng26\n(S'Variable_Type'\n(I2\nttRp1480\nsS'Y:Load 86 - CLUCCI31'\np1481\ng26\n(S'Variable_Type'\n(I2\nttRp1482\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np1483\ng26\n(S'Variable_Type'\n(I2\nttRp1484\nsS'Y:PMachine104 - CPROPR31'\np1485\ng26\n(S'Variable_Type'\n(I2\nttRp1486\nsS'Y:VBus128 - CVAZZI39'\np1487\ng26\n(S'Variable_Type'\n(I2\nttRp1488\nsS'Y:PMachine136 - CLUCCI37'\np1489\ng26\n(S'Variable_Type'\n(I2\nttRp1490\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np1491\ng26\n(S'Variable_Type'\n(I2\nttRp1492\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np1493\ng26\n(S'Variable_Type'\n(I2\nttRp1494\nsS'Y:PMachine29 - CLUCCI21'\np1495\ng26\n(S'Variable_Type'\n(I2\nttRp1496\nsS'Y:VBus42 - CSISCO21'\np1497\ng26\n(S'Variable_Type'\n(I2\nttRp1498\nsS'Y:Load 110 - CSTLUC31'\np1499\ng26\n(S'Variable_Type'\n(I2\nttRp1500\nsS'Y:VBus14 - CBONIF21'\np1501\ng26\n(S'Variable_Type'\n(I2\nttRp1502\nsS'Y:VBus73 - CCASTI32'\np1503\ng26\n(S'Variable_Type'\n(I2\nttRp1504\nsS'Y:VBus64 - CCASAM32'\np1505\ng26\n(S'Variable_Type'\n(I2\nttRp1506\nsS'Y:PMachine128 - CVAZZI39'\np1507\ng26\n(S'Variable_Type'\n(I2\nttRp1508\nsS'Y:VBus133 - CVAZZI314'\np1509\ng26\n(S'Variable_Type'\n(I2\nttRp1510\nsS'Y:VBus63 - CCASAM31'\np1511\ng26\n(S'Variable_Type'\n(I2\nttRp1512\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np1513\ng26\n(S'Variable_Type'\n(I2\nttRp1514\nsS'Y:%Losses'\np1515\ng26\n(S'Variable_Type'\n(I2\nttRp1516\nsS'Y:VBus85 - CLORET32'\np1517\ng26\n(S'Variable_Type'\n(I2\nttRp1518\nsS'Y:Load 59 - CCALDA31'\np1519\ng26\n(S'Variable_Type'\n(I2\nttRp1520\nsS'Y:VBus129 - CVAZZI310'\np1521\ng26\n(S'Variable_Type'\n(I2\nttRp1522\nsS'Y:VBus101 - CPIETR31'\np1523\ng26\n(S'Variable_Type'\n(I2\nttRp1524\nsS'Y:PMachine106 - CRIZZA31'\np1525\ng26\n(S'Variable_Type'\n(I2\nttRp1526\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np1527\ng26\n(S'Variable_Type'\n(I2\nttRp1528\nsS'Y:PMachine118 - CTOLLA33'\np1529\ng26\n(S'Variable_Type'\n(I2\nttRp1530\nsS'Y:VBus19 - CCASTI21'\np1531\ng26\n(S'Variable_Type'\n(I2\nttRp1532\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np1533\ng26\n(S'Variable_Type'\n(I2\nttRp1534\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np1535\ng26\n(S'Variable_Type'\n(I2\nttRp1536\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np1537\ng26\n(S'Variable_Type'\n(I2\nttRp1538\nsS'Y:Load 115 - CTAGLI31'\np1539\ng26\n(S'Variable_Type'\n(I2\nttRp1540\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np1541\ng26\n(S'Variable_Type'\n(I2\nttRp1542\nsS'Y:VBus79 - CFURIA32'\np1543\ng26\n(S'Variable_Type'\n(I2\nttRp1544\nsS'Y:PMachine47 - CVAZZI21'\np1545\ng26\n(S'Variable_Type'\n(I2\nttRp1546\nsS'Y:VBus123 - CVAZZI34'\np1547\ng26\n(S'Variable_Type'\n(I2\nttRp1548\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np1549\ng26\n(S'Variable_Type'\n(I2\nttRp1550\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np1551\ng26\n(S'Variable_Type'\n(I2\nttRp1552\nsS'Y:VBus44 - CTAGLI21'\np1553\ng26\n(S'Variable_Type'\n(I2\nttRp1554\nsS'Y:VBus65 - CCASAM33'\np1555\ng26\n(S'Variable_Type'\n(I2\nttRp1556\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np1557\ng26\n(S'Variable_Type'\n(I2\nttRp1558\nsS'Y:PMachine139 - CLUCCI310'\np1559\ng26\n(S'Variable_Type'\n(I2\nttRp1560\nsS'Y:VBus112 - CSAMPO31'\np1561\ng26\n(S'Variable_Type'\n(I2\nttRp1562\nsS'Y:VBus68 - CCASAM36'\np1563\ng26\n(S'Variable_Type'\n(I2\nttRp1564\nsS'Y:Load 55 - CBIGUG31'\np1565\ng26\n(S'Variable_Type'\n(I2\nttRp1566\nsS'Y:PMachine53 - CBASTI31'\np1567\ng26\n(S'Variable_Type'\n(I2\nttRp1568\nsS'Y:NbeTransit_0.9-1'\np1569\ng26\n(S'Variable_Type'\n(I2\nttRp1570\nsS'Y:VBus24 - CFURIA21'\np1571\ng26\n(S'Variable_Type'\n(I2\nttRp1572\nsS'Y:VBus23 - CCORTE22'\np1573\ng26\n(S'Variable_Type'\n(I2\nttRp1574\nsS'XProdEolienne%Pnom'\np1575\ng26\n(S'Variable_Type'\n(I2\nttRp1576\nsS'Y:VBus40 - CSTMAR21'\np1577\ng26\n(S'Variable_Type'\n(I2\nttRp1578\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np1579\ng26\n(S'Variable_Type'\n(I2\nttRp1580\nsS'Y:PMachine120 - CVAZZI31'\np1581\ng26\n(S'Variable_Type'\n(I2\nttRp1582\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np1583\ng26\n(S'Variable_Type'\n(I2\nttRp1584\nsS'Y:PMachine117 - CTOLLA32'\np1585\ng26\n(S'Variable_Type'\n(I2\nttRp1586\nsS'Y:VBus89 - CLUCCI34'\np1587\ng26\n(S'Variable_Type'\n(I2\nttRp1588\nsS'Y:VBus33 - COLETT21'\np1589\ng26\n(S'Variable_Type'\n(I2\nttRp1590\nsS'Y:VBus32 - COCANA21'\np1591\ng26\n(S'Variable_Type'\n(I2\nttRp1592\nsS'Y:PMachine121 - CVAZZI32'\np1593\ng26\n(S'Variable_Type'\n(I2\nttRp1594\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np1595\ng26\n(S'Variable_Type'\n(I2\nttRp1596\nsS'Y:VBus59 - CCALDA31'\np1597\ng26\n(S'Variable_Type'\n(I2\nttRp1598\nsS'Y:VBus82 - CILERO31'\np1599\ng26\n(S'Variable_Type'\n(I2\nttRp1600\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np1601\ng26\n(S'Variable_Type'\n(I2\nttRp1602\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np1603\ng26\n(S'Variable_Type'\n(I2\nttRp1604\nsS'Y:VBus37 - CRIZZA21'\np1605\ng26\n(S'Variable_Type'\n(I2\nttRp1606\nsS'Y:PMachine73 - CCASTI32'\np1607\ng26\n(S'Variable_Type'\n(I2\nttRp1608\nsS'Y:PMachine86 - CLUCCI31'\np1609\ng26\n(S'Variable_Type'\n(I2\nttRp1610\nsS'Y:Load 53 - CBASTI31'\np1611\ng26\n(S'Variable_Type'\n(I2\nttRp1612\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np1613\ng26\n(S'Variable_Type'\n(I2\nttRp1614\nsS'Y:VBus21 - CCORSC21'\np1615\ng26\n(S'Variable_Type'\n(I2\nttRp1616\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np1617\ng26\n(S'Variable_Type'\n(I2\nttRp1618\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np1619\ng26\n(S'Variable_Type'\n(I2\nttRp1620\nsS'Y:Load 82 - CILERO31'\np1621\ng26\n(S'Variable_Type'\n(I2\nttRp1622\nsS'Y:PMachine64 - CCASAM32'\np1623\ng26\n(S'Variable_Type'\n(I2\nttRp1624\nsS'Y:VBus67 - CCASAM35'\np1625\ng26\n(S'Variable_Type'\n(I2\nttRp1626\nsS'Y:VBus53 - CBASTI31'\np1627\ng26\n(S'Variable_Type'\n(I2\nttRp1628\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np1629\ng26\n(S'Variable_Type'\n(I2\nttRp1630\nsS'Y:VBus61 - CCALVI31'\np1631\ng26\n(S'Variable_Type'\n(I2\nttRp1632\nsS'Y:VBus93 - COCANA32'\np1633\ng26\n(S'Variable_Type'\n(I2\nttRp1634\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np1635\ng26\n(S'Variable_Type'\n(I2\nttRp1636\nsS'Y:PMachine92 - COCANA31'\np1637\ng26\n(S'Variable_Type'\n(I2\nttRp1638\nsS'Y:VBus104 - CPROPR31'\np1639\ng26\n(S'Variable_Type'\n(I2\nttRp1640\nsS'Y:VBus48 - CZSSS621'\np1641\ng26\n(S'Variable_Type'\n(I2\nttRp1642\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np1643\ng26\n(S'Variable_Type'\n(I2\nttRp1644\nsS'Y:VBus74 - CCERVI31'\np1645\ng26\n(S'Variable_Type'\n(I2\nttRp1646\nsS'Y:VBus36 - CPROPR21'\np1647\ng26\n(S'Variable_Type'\n(I2\nttRp1648\nsS'Y:Load 100 - COLETT31'\np1649\ng26\n(S'Variable_Type'\n(I2\nttRp1650\nsS'Y:PMachine54 - CBASTI32'\np1651\ng26\n(S'Variable_Type'\n(I2\nttRp1652\nsS'Y:VBus138 - CLUCCI39'\np1653\ng26\n(S'Variable_Type'\n(I2\nttRp1654\nsS'Y:VBus39 - CSTLUC21'\np1655\ng26\n(S'Variable_Type'\n(I2\nttRp1656\nsS'Y:PMachine74 - CCERVI31'\np1657\ng26\n(S'Variable_Type'\n(I2\nttRp1658\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np1659\ng26\n(S'Variable_Type'\n(I2\nttRp1660\nsS'Y:Load 78 - CFURIA31'\np1661\ng26\n(S'Variable_Type'\n(I2\nttRp1662\nsS'Y:VBus28 - CLORET21'\np1663\ng26\n(S'Variable_Type'\n(I2\nttRp1664\nsS'Y:PMachine105 - CPROPR32'\np1665\ng26\n(S'Variable_Type'\n(I2\nttRp1666\nsS'Y:VBus96 - COCANA35'\np1667\ng26\n(S'Variable_Type'\n(I2\nttRp1668\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np1669\ng26\n(S'Variable_Type'\n(I2\nttRp1670\nsS'Y:PMachine18 - CCASAM21'\np1671\ng26\n(S'Variable_Type'\n(I2\nttRp1672\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np1673\ng26\n(S'Variable_Type'\n(I2\nttRp1674\nsS'Y:VBus13 - CBIGUG21'\np1675\ng26\n(S'Variable_Type'\n(I2\nttRp1676\nsS'Y:VBus92 - COCANA31'\np1677\ng26\n(S'Variable_Type'\n(I2\nttRp1678\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np1679\ng26\n(S'Variable_Type'\n(I2\nttRp1680\nsS'Y:Load 76 - CCORTE31'\np1681\ng26\n(S'Variable_Type'\n(I2\nttRp1682\nsS'Y:VBus58 - CBONIF32'\np1683\ng26\n(S'Variable_Type'\n(I2\nttRp1684\nsS'Y:VBus84 - CLORET31'\np1685\ng26\n(S'Variable_Type'\n(I2\nttRp1686\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np1687\ng26\n(S'Variable_Type'\n(I2\nttRp1688\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np1689\ng26\n(S'Variable_Type'\n(I2\nttRp1690\nsS'Y:VBus97 - COCANA36'\np1691\ng26\n(S'Variable_Type'\n(I2\nttRp1692\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np1693\ng26\n(S'Variable_Type'\n(I2\nttRp1694\nsS'Y:VBus106 - CRIZZA31'\np1695\ng26\n(S'Variable_Type'\n(I2\nttRp1696\nsS'Y:VBus15 - CBONIF22'\np1697\ng26\n(S'Variable_Type'\n(I2\nttRp1698\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np1699\ng26\n(S'Variable_Type'\n(I2\nttRp1700\nsS'Y:VBus80 - CGHISO31'\np1701\ng26\n(S'Variable_Type'\n(I2\nttRp1702\nsS'Y:PMachine114 - CSOVEN31'\np1703\ng26\n(S'Variable_Type'\n(I2\nttRp1704\nsS'Y:VBus132 - CVAZZI313'\np1705\ng26\n(S'Variable_Type'\n(I2\nttRp1706\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np1707\ng26\n(S'Variable_Type'\n(I2\nttRp1708\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np1709\ng26\n(S'Variable_Type'\n(I2\nttRp1710\nsS'Y:VBus87 - CLUCCI32'\np1711\ng26\n(S'Variable_Type'\n(I2\nttRp1712\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np1713\ng26\n(S'Variable_Type'\n(I2\nttRp1714\nsS'Y:VBus88 - CLUCCI33'\np1715\ng26\n(S'Variable_Type'\n(I2\nttRp1716\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np1717\ng26\n(S'Variable_Type'\n(I2\nttRp1718\nsS'Y:PMachine85 - CLORET32'\np1719\ng26\n(S'Variable_Type'\n(I2\nttRp1720\nsS'Y:VBus81 - CGHISO32'\np1721\ng26\n(S'Variable_Type'\n(I2\nttRp1722\nsS'Y:PMachine63 - CCASAM31'\np1723\ng26\n(S'Variable_Type'\n(I2\nttRp1724\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np1725\ng26\n(S'Variable_Type'\n(I2\nttRp1726\nsS'X:Load(pu)'\np1727\ng26\n(S'Variable_Type'\n(I2\nttRp1728\nsS'Y:NbeTension'\np1729\ng26\n(S'Variable_Type'\n(I2\nttRp1730\nsS'Y:VBus95 - COCANA34'\np1731\ng26\n(S'Variable_Type'\n(I2\nttRp1732\nsS'Y:VBus62 - CCALVI32'\np1733\ng26\n(S'Variable_Type'\n(I2\nttRp1734\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np1735\ng26\n(S'Variable_Type'\n(I2\nttRp1736\nsS'Y:Load 95 - COCANA34'\np1737\ng26\n(S'Variable_Type'\n(I2\nttRp1738\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np1739\ng26\n(S'Variable_Type'\n(I2\nttRp1740\nsS'Y:PMachine90 - CMOROS31'\np1741\ng26\n(S'Variable_Type'\n(I2\nttRp1742\nsS'Y:Load 101 - CPIETR31'\np1743\ng26\n(S'Variable_Type'\n(I2\nttRp1744\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np1745\ng26\n(S'Variable_Type'\n(I2\nttRp1746\nsS'Y:PMachine132 - CVAZZI313'\np1747\ng26\n(S'Variable_Type'\n(I2\nttRp1748\nsS'Y:PMachine65 - CCASAM33'\np1749\ng26\n(S'Variable_Type'\n(I2\nttRp1750\nsS'Y:VBus125 - CVAZZI36'\np1751\ng26\n(S'Variable_Type'\n(I2\nttRp1752\nsS'Y:VBus135 - CLUCCI36'\np1753\ng26\n(S'Variable_Type'\n(I2\nttRp1754\nsS'Y:VBus47 - CVAZZI21'\np1755\ng26\n(S'Variable_Type'\n(I2\nttRp1756\nsS'Y:VBus94 - COCANA33'\np1757\ng26\n(S'Variable_Type'\n(I2\nttRp1758\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np1759\ng26\n(S'Variable_Type'\n(I2\nttRp1760\nsS'Y:VBus17 - CCALVI21'\np1761\ng26\n(S'Variable_Type'\n(I2\nttRp1762\nsS'Y:Load 90 - CMOROS31'\np1763\ng26\n(S'Variable_Type'\n(I2\nttRp1764\nsS'Y:VBus120 - CVAZZI31'\np1765\ng26\n(S'Variable_Type'\n(I2\nttRp1766\nsS'Y:VBus52 - CASPRE32'\np1767\ng26\n(S'Variable_Type'\n(I2\nttRp1768\nsS'Y:VBus25 - CFURIA22'\np1769\ng26\n(S'Variable_Type'\n(I2\nttRp1770\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np1771\ng26\n(S'Variable_Type'\n(I2\nttRp1772\nsS'Y:PMachine69 - CCASAM37'\np1773\ng26\n(S'Variable_Type'\n(I2\nttRp1774\nsS'Y:PConsoTot'\np1775\ng26\n(S'Variable_Type'\n(I2\nttRp1776\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np1777\ng26\n(S'Variable_Type'\n(I2\nttRp1778\nsS'Y:PMachine89 - CLUCCI34'\np1779\ng26\n(S'Variable_Type'\n(I2\nttRp1780\nsS'Y:VBus136 - CLUCCI37'\np1781\ng26\n(S'Variable_Type'\n(I2\nttRp1782\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np1783\ng26\n(S'Variable_Type'\n(I2\nttRp1784\nsS'Y:PMachine122 - CVAZZI33'\np1785\ng26\n(S'Variable_Type'\n(I2\nttRp1786\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np1787\ng26\n(S'Variable_Type'\n(I2\nttRp1788\nsS'Y:PMachine77 - CCORTE32'\np1789\ng26\n(S'Variable_Type'\n(I2\nttRp1790\nsS'Y:PMachine116 - CTOLLA31'\np1791\ng26\n(S'Variable_Type'\n(I2\nttRp1792\nsS'Y:VBus126 - CVAZZI37'\np1793\ng26\n(S'Variable_Type'\n(I2\nttRp1794\nsS'Y:PMachine60 - CCALDA32'\np1795\ng26\n(S'Variable_Type'\n(I2\nttRp1796\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np1797\ng26\n(S'Variable_Type'\n(I2\nttRp1798\nsS'Y:VBus20 - CCERVI21'\np1799\ng26\n(S'Variable_Type'\n(I2\nttRp1800\nsS'Y:VBus119 - CTRAVO31'\np1801\ng26\n(S'Variable_Type'\n(I2\nttRp1802\nsS'Y:VBus11 - CASPRE21'\np1803\ng26\n(S'Variable_Type'\n(I2\nttRp1804\nsS'Y:VBus139 - CLUCCI310'\np1805\ng26\n(S'Variable_Type'\n(I2\nttRp1806\nsS'Y:VBus60 - CCALDA32'\np1807\ng26\n(S'Variable_Type'\n(I2\nttRp1808\nsS'Y:PMachine66 - CCASAM34'\np1809\ng26\n(S'Variable_Type'\n(I2\nttRp1810\nsS'Y:PMachine101 - CPIETR31'\np1811\ng26\n(S'Variable_Type'\n(I2\nttRp1812\nsS'Y:PMachine133 - CVAZZI314'\np1813\ng26\n(S'Variable_Type'\n(I2\nttRp1814\nsS'Y:PMachine62 - CCALVI32'\np1815\ng26\n(S'Variable_Type'\n(I2\nttRp1816\nsS'Y:Load 74 - CCERVI31'\np1817\ng26\n(S'Variable_Type'\n(I2\nttRp1818\nsS'X:lineOff#'\np1819\ng26\n(S'Variable_Type'\n(I2\nttRp1820\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np1821\ng26\n(S'Variable_Type'\n(I2\nttRp1822\nsS'Y:VBus108 - CSAGON31'\np1823\ng26\n(S'Variable_Type'\n(I2\nttRp1824\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np1825\ng26\n(S'Variable_Type'\n(I2\nttRp1826\nsS'Y:VBus137 - CLUCCI38'\np1827\ng26\n(S'Variable_Type'\n(I2\nttRp1828\nsS'Y:VBus130 - CVAZZI311'\np1829\ng26\n(S'Variable_Type'\n(I2\nttRp1830\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np1831\ng26\n(S'Variable_Type'\n(I2\nttRp1832\nsS'Y:VBus46 - CTRAVO21'\np1833\ng26\n(S'Variable_Type'\n(I2\nttRp1834\nsS'Y:VBus113 - CSAMPO32'\np1835\ng26\n(S'Variable_Type'\n(I2\nttRp1836\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np1837\ng26\n(S'Variable_Type'\n(I2\nttRp1838\nsS'Y:PMachine68 - CCASAM36'\np1839\ng26\n(S'Variable_Type'\n(I2\nttRp1840\nsS'Y:VBus78 - CFURIA31'\np1841\ng26\n(S'Variable_Type'\n(I2\nttRp1842\nsS'Y:VBus26 - CGHISO21'\np1843\ng26\n(S'Variable_Type'\n(I2\nttRp1844\nsS'Y:VBus121 - CVAZZI32'\np1845\ng26\n(S'Variable_Type'\n(I2\nttRp1846\nsS'Y:PMachine81 - CGHISO32'\np1847\ng26\n(S'Variable_Type'\n(I2\nttRp1848\nsS'Y:PMachine97 - COCANA36'\np1849\ng26\n(S'Variable_Type'\n(I2\nttRp1850\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np1851\ng26\n(S'Variable_Type'\n(I2\nttRp1852\nsS'Y:PMachine83 - CILERO32'\np1853\ng26\n(S'Variable_Type'\n(I2\nttRp1854\nsS'Y:Max%A'\np1855\ng26\n(S'Variable_Type'\n(I2\nttRp1856\nsS'Y:VBus66 - CCASAM34'\np1857\ng26\n(S'Variable_Type'\n(I2\nttRp1858\nsS'Y:PMachine1 - CBONIF11'\np1859\ng26\n(S'Variable_Type'\n(I2\nttRp1860\nsS'Y:VBus111 - CSTMAR31'\np1861\ng26\n(S'Variable_Type'\n(I2\nttRp1862\nsS'Y:VBus124 - CVAZZI35'\np1863\ng26\n(S'Variable_Type'\n(I2\nttRp1864\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np1865\ng26\n(S'Variable_Type'\n(I2\nttRp1866\nsS'Y:PMachine131 - CVAZZI312'\np1867\ng26\n(S'Variable_Type'\n(I2\nttRp1868\nsS'Y:PMachine137 - CLUCCI38'\np1869\ng26\n(S'Variable_Type'\n(I2\nttRp1870\nsS'Y:PMachine93 - COCANA32'\np1871\ng26\n(S'Variable_Type'\n(I2\nttRp1872\nsS'Y:Load 57 - CBONIF31'\np1873\ng26\n(S'Variable_Type'\n(I2\nttRp1874\nsS'Y:VBus86 - CLUCCI31'\np1875\ng26\n(S'Variable_Type'\n(I2\nttRp1876\nsS'Y:VBus38 - CSAGON21'\np1877\ng26\n(S'Variable_Type'\n(I2\nttRp1878\nsS'Y:VBus29 - CLUCCI21'\np1879\ng26\n(S'Variable_Type'\n(I2\nttRp1880\nsS'Y:PMachine61 - CCALVI31'\np1881\ng26\n(S'Variable_Type'\n(I2\nttRp1882\nsS'Y:VBus110 - CSTLUC31'\np1883\ng26\n(S'Variable_Type'\n(I2\nttRp1884\nsS'X:ProdPV%Pnom'\np1885\ng26\n(S'Variable_Type'\n(I2\nttRp1886\nssg630\n(dp1887\nsg20\n(lp1888\ng22\nasg650\nF1370267567.2539999\nsba(iOWContexts\nContext\np1889\n(dp1890\ng20\n(lp1891\ng1272\nasg23\n(dp1892\nS'Y:PMachine134 - CLUCCI35'\np1893\ng26\n(S'Variable_Type'\n(I1\nttRp1894\nsS'Y:VBus77 - CCORTE32'\np1895\ng26\n(S'Variable_Type'\n(I2\nttRp1896\nsS'Y:VBus134 - CLUCCI35'\np1897\ng26\n(S'Variable_Type'\n(I2\nttRp1898\nsS'Y:VBus109 - CSAGON32'\np1899\ng26\n(S'Variable_Type'\n(I2\nttRp1900\nsS'Y:VBus102 - CPORTO31'\np1901\ng26\n(S'Variable_Type'\n(I2\nttRp1902\nsS'XProdEolienne%Pnom'\np1903\ng26\n(S'Variable_Type'\n(I1\nttRp1904\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np1905\ng26\n(S'Variable_Type'\n(I2\nttRp1906\nsS'Y:PMachine94 - COCANA33'\np1907\ng26\n(S'Variable_Type'\n(I2\nttRp1908\nsS'Y:VBus117 - CTOLLA32'\np1909\ng26\n(S'Variable_Type'\n(I2\nttRp1910\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np1911\ng26\n(S'Variable_Type'\n(I2\nttRp1912\nsS'Y:PMachine87 - CLUCCI32'\np1913\ng26\n(S'Variable_Type'\n(I2\nttRp1914\nsS'Y:PMachine113 - CSAMPO32'\np1915\ng26\n(S'Variable_Type'\n(I2\nttRp1916\nsS'Y:Load 84 - CLORET31'\np1917\ng26\n(S'Variable_Type'\n(I2\nttRp1918\nsS'Y:PMachine89 - CLUCCI34'\np1919\ng26\n(S'Variable_Type'\n(I1\nttRp1920\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np1921\ng26\n(S'Variable_Type'\n(I2\nttRp1922\nsS'Y:Load 80 - CGHISO31'\np1923\ng26\n(S'Variable_Type'\n(I2\nttRp1924\nsS'Y:PMachine125 - CVAZZI36'\np1925\ng26\n(S'Variable_Type'\n(I2\nttRp1926\nsS'Y:PMachine116 - CTOLLA31'\np1927\ng26\n(S'Variable_Type'\n(I2\nttRp1928\nsS'Y:PMachine88 - CLUCCI33'\np1929\ng26\n(S'Variable_Type'\n(I1\nttRp1930\nsS'Y:PMachine120 - CVAZZI31'\np1931\ng26\n(S'Variable_Type'\n(I2\nttRp1932\nsS'Y:PMachine111 - CSTMAR31'\np1933\ng26\n(S'Variable_Type'\n(I2\nttRp1934\nsS'Y:NbeTransit'\np1935\ng26\n(S'Variable_Type'\n(I1\nttRp1936\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np1937\ng26\n(S'Variable_Type'\n(I2\nttRp1938\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np1939\ng26\n(S'Variable_Type'\n(I2\nttRp1940\nsS'Y:VBus92 - COCANA31'\np1941\ng26\n(S'Variable_Type'\n(I2\nttRp1942\nsS'Y:PMachine130 - CVAZZI311'\np1943\ng26\n(S'Variable_Type'\n(I2\nttRp1944\nsS'Y:PMachine127 - CVAZZI38'\np1945\ng26\n(S'Variable_Type'\n(I2\nttRp1946\nsS'Y:VBus131 - CVAZZI312'\np1947\ng26\n(S'Variable_Type'\n(I2\nttRp1948\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np1949\ng26\n(S'Variable_Type'\n(I2\nttRp1950\nsS'Y:PMachine123 - CVAZZI34'\np1951\ng26\n(S'Variable_Type'\n(I2\nttRp1952\nsS'Y:VBus118 - CTOLLA33'\np1953\ng26\n(S'Variable_Type'\n(I2\nttRp1954\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np1955\ng26\n(S'Variable_Type'\n(I1\nttRp1956\nsS'Y:PMachine58 - CBONIF32'\np1957\ng26\n(S'Variable_Type'\n(I2\nttRp1958\nsS'Y:Load 104 - CPROPR31'\np1959\ng26\n(S'Variable_Type'\n(I2\nttRp1960\nsS'Y:PMachine30 - CLUCCI22'\np1961\ng26\n(S'Variable_Type'\n(I1\nttRp1962\nsS'Y:VBus100 - COLETT31'\np1963\ng26\n(S'Variable_Type'\n(I2\nttRp1964\nsS'Y:PProdTot'\np1965\ng26\n(S'Variable_Type'\n(I2\nttRp1966\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np1967\ng26\n(S'Variable_Type'\n(I1\nttRp1968\nsS'Y:VBus57 - CBONIF31'\np1969\ng26\n(S'Variable_Type'\n(I2\nttRp1970\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np1971\ng26\n(S'Variable_Type'\n(I2\nttRp1972\nsS'Y:PConsoTot'\np1973\ng26\n(S'Variable_Type'\n(I2\nttRp1974\nsS'Iteration'\np1975\ng26\n(S'Variable_Type'\n(I2\nttRp1976\nsS'Y:PMachine109 - CSAGON32'\np1977\ng26\n(S'Variable_Type'\n(I2\nttRp1978\nsS'Y:PMachine135 - CLUCCI36'\np1979\ng26\n(S'Variable_Type'\n(I1\nttRp1980\nsS'Y:VBus30 - CLUCCI22'\np1981\ng26\n(S'Variable_Type'\n(I2\nttRp1982\nsS'Y:VBus122 - CVAZZI33'\np1983\ng26\n(S'Variable_Type'\n(I2\nttRp1984\nsS'Y:VBus86 - CLUCCI31'\np1985\ng26\n(S'Variable_Type'\n(I2\nttRp1986\nsS'Y:PMachine102 - CPORTO31'\np1987\ng26\n(S'Variable_Type'\n(I2\nttRp1988\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np1989\ng26\n(S'Variable_Type'\n(I1\nttRp1990\nsS'Y:PMachine107 - CRIZZA32'\np1991\ng26\n(S'Variable_Type'\n(I2\nttRp1992\nsS'Y:VBus16 - CCALDA21'\np1993\ng26\n(S'Variable_Type'\n(I2\nttRp1994\nsS'Y:Load 102 - CPORTO31'\np1995\ng26\n(S'Variable_Type'\n(I2\nttRp1996\nsS'Y:VBus107 - CRIZZA32'\np1997\ng26\n(S'Variable_Type'\n(I2\nttRp1998\nsS'Y:VBus59 - CCALDA31'\np1999\ng26\n(S'Variable_Type'\n(I2\nttRp2000\nsS'Y:VBus41 - CSAMPO21'\np2001\ng26\n(S'Variable_Type'\n(I2\nttRp2002\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np2003\ng26\n(S'Variable_Type'\n(I2\nttRp2004\nsS'Y:VBus34 - CPIETR21'\np2005\ng26\n(S'Variable_Type'\n(I2\nttRp2006\nsS'Y:Load 108 - CSAGON31'\np2007\ng26\n(S'Variable_Type'\n(I2\nttRp2008\nsS'Y:VBus56 - CBIGUG32'\np2009\ng26\n(S'Variable_Type'\n(I2\nttRp2010\nsS'Y:PMachine42 - CSISCO21'\np2011\ng26\n(S'Variable_Type'\n(I2\nttRp2012\nsS'Y:PMachine138 - CLUCCI39'\np2013\ng26\n(S'Variable_Type'\n(I1\nttRp2014\nsS'Y:PMachine112 - CSAMPO31'\np2015\ng26\n(S'Variable_Type'\n(I2\nttRp2016\nsS'Y:VBus105 - CPROPR32'\np2017\ng26\n(S'Variable_Type'\n(I2\nttRp2018\nsS'Y:VBus1 - CBONIF11'\np2019\ng26\n(S'Variable_Type'\n(I2\nttRp2020\nsS'Y:VBus12 - CBASTI21'\np2021\ng26\n(S'Variable_Type'\n(I2\nttRp2022\nsS'Y:PMachine129 - CVAZZI310'\np2023\ng26\n(S'Variable_Type'\n(I2\nttRp2024\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np2025\ng26\n(S'Variable_Type'\n(I1\nttRp2026\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np2027\ng26\n(S'Variable_Type'\n(I1\nttRp2028\nsS'Y:VBus54 - CBASTI32'\np2029\ng26\n(S'Variable_Type'\n(I2\nttRp2030\nsS'Y:VBus69 - CCASAM37'\np2031\ng26\n(S'Variable_Type'\n(I2\nttRp2032\nsS'Y:VBus45 - CTOLLA21'\np2033\ng26\n(S'Variable_Type'\n(I2\nttRp2034\nsS'Y:PMachine115 - CTAGLI31'\np2035\ng26\n(S'Variable_Type'\n(I2\nttRp2036\nsS'Y:PMachine77 - CCORTE32'\np2037\ng26\n(S'Variable_Type'\n(I2\nttRp2038\nsS'Y:VBus43 - CSOVEN21'\np2039\ng26\n(S'Variable_Type'\n(I2\nttRp2040\nsS'Y:VBus76 - CCORTE31'\np2041\ng26\n(S'Variable_Type'\n(I2\nttRp2042\nsS'Y:VBus75 - CCORSC31'\np2043\ng26\n(S'Variable_Type'\n(I2\nttRp2044\nsS'Y:PMachine78 - CFURIA31'\np2045\ng26\n(S'Variable_Type'\n(I1\nttRp2046\nsS'Y:VBus127 - CVAZZI38'\np2047\ng26\n(S'Variable_Type'\n(I2\nttRp2048\nsS'Y:VBus115 - CTAGLI31'\np2049\ng26\n(S'Variable_Type'\n(I2\nttRp2050\nsS'Y:Load 61 - CCALVI31'\np2051\ng26\n(S'Variable_Type'\n(I2\nttRp2052\nsS'Y:VBus55 - CBIGUG31'\np2053\ng26\n(S'Variable_Type'\n(I2\nttRp2054\nsS'Y:Load 42 - CSISCO21'\np2055\ng26\n(S'Variable_Type'\n(I2\nttRp2056\nsS'Y:VBus72 - CCASTI31'\np2057\ng26\n(S'Variable_Type'\n(I2\nttRp2058\nsS'Y:Load 37 - CRIZZA21'\np2059\ng26\n(S'Variable_Type'\n(I2\nttRp2060\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np2061\ng26\n(S'Variable_Type'\n(I2\nttRp2062\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np2063\ng26\n(S'Variable_Type'\n(I2\nttRp2064\nsS'Y:PMachine137 - CLUCCI38'\np2065\ng26\n(S'Variable_Type'\n(I1\nttRp2066\nsS'Y:PMachine67 - CCASAM35'\np2067\ng26\n(S'Variable_Type'\n(I2\nttRp2068\nsS'INTERCOS'\np2069\ng26\n(S'Variable_Type'\n(I2\nttRp2070\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np2071\ng26\n(S'Variable_Type'\n(I1\nttRp2072\nsS'Y:VBus31 - CMOROS21'\np2073\ng26\n(S'Variable_Type'\n(I2\nttRp2074\nsS'Y:VBus103 - CPORTO32'\np2075\ng26\n(S'Variable_Type'\n(I2\nttRp2076\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np2077\ng26\n(S'Variable_Type'\n(I1\nttRp2078\nsS'Y:PMachine128 - CVAZZI39'\np2079\ng26\n(S'Variable_Type'\n(I2\nttRp2080\nsS'Y:PMachine72 - CCASTI31'\np2081\ng26\n(S'Variable_Type'\n(I2\nttRp2082\nsS'Y:VBus27 - CILERO21'\np2083\ng26\n(S'Variable_Type'\n(I2\nttRp2084\nsS'Y:PMachine75 - CCORSC31'\np2085\ng26\n(S'Variable_Type'\n(I2\nttRp2086\nsS'Y:Load 51 - CASPRE31'\np2087\ng26\n(S'Variable_Type'\n(I2\nttRp2088\nsS'Y:PMachine61 - CCALVI31'\np2089\ng26\n(S'Variable_Type'\n(I1\nttRp2090\nsS'Y:VBus51 - CASPRE31'\np2091\ng26\n(S'Variable_Type'\n(I2\nttRp2092\nsS'Y:VBus114 - CSOVEN31'\np2093\ng26\n(S'Variable_Type'\n(I2\nttRp2094\nsS'Y:Load 82 - CILERO31'\np2095\ng26\n(S'Variable_Type'\n(I2\nttRp2096\nsS'Y:VBus116 - CTOLLA31'\np2097\ng26\n(S'Variable_Type'\n(I2\nttRp2098\nsS'Y:Load 86 - CLUCCI31'\np2099\ng26\n(S'Variable_Type'\n(I2\nttRp2100\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np2101\ng26\n(S'Variable_Type'\n(I2\nttRp2102\nsS'Y:Load 57 - CBONIF31'\np2103\ng26\n(S'Variable_Type'\n(I2\nttRp2104\nsS'Y:PMachine104 - CPROPR31'\np2105\ng26\n(S'Variable_Type'\n(I2\nttRp2106\nsS'Y:VBus128 - CVAZZI39'\np2107\ng26\n(S'Variable_Type'\n(I2\nttRp2108\nsS'Y:PMachine136 - CLUCCI37'\np2109\ng26\n(S'Variable_Type'\n(I1\nttRp2110\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np2111\ng26\n(S'Variable_Type'\n(I2\nttRp2112\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np2113\ng26\n(S'Variable_Type'\n(I2\nttRp2114\nsS'Y:PMachine68 - CCASAM36'\np2115\ng26\n(S'Variable_Type'\n(I2\nttRp2116\nsS'Y:PMachine29 - CLUCCI21'\np2117\ng26\n(S'Variable_Type'\n(I1\nttRp2118\nsS'Y:VBus42 - CSISCO21'\np2119\ng26\n(S'Variable_Type'\n(I2\nttRp2120\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np2121\ng26\n(S'Variable_Type'\n(I1\nttRp2122\nsS'Y:VBus14 - CBONIF21'\np2123\ng26\n(S'Variable_Type'\n(I2\nttRp2124\nsS'Y:VBus73 - CCASTI32'\np2125\ng26\n(S'Variable_Type'\n(I2\nttRp2126\nsS'Y:VBus64 - CCASAM32'\np2127\ng26\n(S'Variable_Type'\n(I2\nttRp2128\nsS'Y:PMachine14 - CBONIF21'\np2129\ng26\n(S'Variable_Type'\n(I1\nttRp2130\nsS'Y:PMachine62 - CCALVI32'\np2131\ng26\n(S'Variable_Type'\n(I2\nttRp2132\nsS'Y:VBus133 - CVAZZI314'\np2133\ng26\n(S'Variable_Type'\n(I2\nttRp2134\nsS'Y:VBus63 - CCASAM31'\np2135\ng26\n(S'Variable_Type'\n(I2\nttRp2136\nsS'Y:PMachine101 - CPIETR31'\np2137\ng26\n(S'Variable_Type'\n(I2\nttRp2138\nsS'Y:%Losses'\np2139\ng26\n(S'Variable_Type'\n(I2\nttRp2140\nsS'Y:VBus85 - CLORET32'\np2141\ng26\n(S'Variable_Type'\n(I2\nttRp2142\nsS'Y:Load 59 - CCALDA31'\np2143\ng26\n(S'Variable_Type'\n(I2\nttRp2144\nsS'Y:VBus129 - CVAZZI310'\np2145\ng26\n(S'Variable_Type'\n(I2\nttRp2146\nsS'Y:VBus101 - CPIETR31'\np2147\ng26\n(S'Variable_Type'\n(I2\nttRp2148\nsS'Y:PMachine106 - CRIZZA31'\np2149\ng26\n(S'Variable_Type'\n(I2\nttRp2150\nsS'Y:VBus132 - CVAZZI313'\np2151\ng26\n(S'Variable_Type'\n(I2\nttRp2152\nsS'Y:PMachine118 - CTOLLA33'\np2153\ng26\n(S'Variable_Type'\n(I2\nttRp2154\nsS'Y:VBus19 - CCASTI21'\np2155\ng26\n(S'Variable_Type'\n(I2\nttRp2156\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np2157\ng26\n(S'Variable_Type'\n(I2\nttRp2158\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np2159\ng26\n(S'Variable_Type'\n(I1\nttRp2160\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np2161\ng26\n(S'Variable_Type'\n(I2\nttRp2162\nsS'Y:Load 115 - CTAGLI31'\np2163\ng26\n(S'Variable_Type'\n(I2\nttRp2164\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np2165\ng26\n(S'Variable_Type'\n(I2\nttRp2166\nsS'Y:VBus79 - CFURIA32'\np2167\ng26\n(S'Variable_Type'\n(I2\nttRp2168\nsS'Y:PMachine47 - CVAZZI21'\np2169\ng26\n(S'Variable_Type'\n(I1\nttRp2170\nsS'Y:VBus123 - CVAZZI34'\np2171\ng26\n(S'Variable_Type'\n(I2\nttRp2172\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np2173\ng26\n(S'Variable_Type'\n(I2\nttRp2174\nsS'Y:VBus60 - CCALDA32'\np2175\ng26\n(S'Variable_Type'\n(I2\nttRp2176\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np2177\ng26\n(S'Variable_Type'\n(I2\nttRp2178\nsS'Y:VBus65 - CCASAM33'\np2179\ng26\n(S'Variable_Type'\n(I2\nttRp2180\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np2181\ng26\n(S'Variable_Type'\n(I1\nttRp2182\nsS'Y:PMachine139 - CLUCCI310'\np2183\ng26\n(S'Variable_Type'\n(I1\nttRp2184\nsS'Y:VBus112 - CSAMPO31'\np2185\ng26\n(S'Variable_Type'\n(I2\nttRp2186\nsS'Y:VBus68 - CCASAM36'\np2187\ng26\n(S'Variable_Type'\n(I2\nttRp2188\nsS'Y:Load 55 - CBIGUG31'\np2189\ng26\n(S'Variable_Type'\n(I2\nttRp2190\nsS'Y:PMachine53 - CBASTI31'\np2191\ng26\n(S'Variable_Type'\n(I2\nttRp2192\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np2193\ng26\n(S'Variable_Type'\n(I2\nttRp2194\nsS'Y:VBus24 - CFURIA21'\np2195\ng26\n(S'Variable_Type'\n(I2\nttRp2196\nsS'Y:VBus23 - CCORTE22'\np2197\ng26\n(S'Variable_Type'\n(I2\nttRp2198\nsS'Y:VBus18 - CCASAM21'\np2199\ng26\n(S'Variable_Type'\n(I2\nttRp2200\nsS'Y:VBus40 - CSTMAR21'\np2201\ng26\n(S'Variable_Type'\n(I2\nttRp2202\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np2203\ng26\n(S'Variable_Type'\n(I2\nttRp2204\nsS'Y:PMachine124 - CVAZZI35'\np2205\ng26\n(S'Variable_Type'\n(I2\nttRp2206\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np2207\ng26\n(S'Variable_Type'\n(I2\nttRp2208\nsS'Y:PMachine117 - CTOLLA32'\np2209\ng26\n(S'Variable_Type'\n(I2\nttRp2210\nsS'Y:VBus89 - CLUCCI34'\np2211\ng26\n(S'Variable_Type'\n(I2\nttRp2212\nsS'Y:VBus33 - COLETT21'\np2213\ng26\n(S'Variable_Type'\n(I2\nttRp2214\nsS'Y:VBus32 - COCANA21'\np2215\ng26\n(S'Variable_Type'\n(I2\nttRp2216\nsS'Y:PMachine121 - CVAZZI32'\np2217\ng26\n(S'Variable_Type'\n(I2\nttRp2218\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np2219\ng26\n(S'Variable_Type'\n(I1\nttRp2220\nsS'Y:VBus82 - CILERO31'\np2221\ng26\n(S'Variable_Type'\n(I2\nttRp2222\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np2223\ng26\n(S'Variable_Type'\n(I2\nttRp2224\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np2225\ng26\n(S'Variable_Type'\n(I2\nttRp2226\nsS'Y:VBus37 - CRIZZA21'\np2227\ng26\n(S'Variable_Type'\n(I2\nttRp2228\nsS'Y:PMachine73 - CCASTI32'\np2229\ng26\n(S'Variable_Type'\n(I2\nttRp2230\nsS'Y:PMachine86 - CLUCCI31'\np2231\ng26\n(S'Variable_Type'\n(I2\nttRp2232\nsS'Y:Load 53 - CBASTI31'\np2233\ng26\n(S'Variable_Type'\n(I2\nttRp2234\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np2235\ng26\n(S'Variable_Type'\n(I2\nttRp2236\nsS'Y:VBus21 - CCORSC21'\np2237\ng26\n(S'Variable_Type'\n(I2\nttRp2238\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np2239\ng26\n(S'Variable_Type'\n(I2\nttRp2240\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np2241\ng26\n(S'Variable_Type'\n(I2\nttRp2242\nsS'Y:PMachine126 - CVAZZI37'\np2243\ng26\n(S'Variable_Type'\n(I2\nttRp2244\nsS'Y:PMachine64 - CCASAM32'\np2245\ng26\n(S'Variable_Type'\n(I2\nttRp2246\nsS'Y:VBus67 - CCASAM35'\np2247\ng26\n(S'Variable_Type'\n(I2\nttRp2248\nsS'Y:VBus53 - CBASTI31'\np2249\ng26\n(S'Variable_Type'\n(I2\nttRp2250\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np2251\ng26\n(S'Variable_Type'\n(I2\nttRp2252\nsS'Y:VBus61 - CCALVI31'\np2253\ng26\n(S'Variable_Type'\n(I2\nttRp2254\nsS'Y:VBus93 - COCANA32'\np2255\ng26\n(S'Variable_Type'\n(I2\nttRp2256\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np2257\ng26\n(S'Variable_Type'\n(I2\nttRp2258\nsS'Y:NbeTransit_0.9-1'\np2259\ng26\n(S'Variable_Type'\n(I1\nttRp2260\nsS'Y:VBus104 - CPROPR31'\np2261\ng26\n(S'Variable_Type'\n(I2\nttRp2262\nsS'Y:VBus22 - CCORTE21'\np2263\ng26\n(S'Variable_Type'\n(I2\nttRp2264\nsS'Y:VBus48 - CZSSS621'\np2265\ng26\n(S'Variable_Type'\n(I2\nttRp2266\nsS'Y:PMachine85 - CLORET32'\np2267\ng26\n(S'Variable_Type'\n(I2\nttRp2268\nsS'Y:Max%A'\np2269\ng26\n(S'Variable_Type'\n(I2\nttRp2270\nsS'Y:VBus36 - CPROPR21'\np2271\ng26\n(S'Variable_Type'\n(I2\nttRp2272\nsS'Y:Load 100 - COLETT31'\np2273\ng26\n(S'Variable_Type'\n(I2\nttRp2274\nsS'Y:PMachine54 - CBASTI32'\np2275\ng26\n(S'Variable_Type'\n(I2\nttRp2276\nsS'Y:VBus138 - CLUCCI39'\np2277\ng26\n(S'Variable_Type'\n(I2\nttRp2278\nsS'Y:VBus39 - CSTLUC21'\np2279\ng26\n(S'Variable_Type'\n(I2\nttRp2280\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np2281\ng26\n(S'Variable_Type'\n(I2\nttRp2282\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np2283\ng26\n(S'Variable_Type'\n(I2\nttRp2284\nsS'Y:Load 78 - CFURIA31'\np2285\ng26\n(S'Variable_Type'\n(I2\nttRp2286\nsS'Y:Load 74 - CCERVI31'\np2287\ng26\n(S'Variable_Type'\n(I2\nttRp2288\nsS'Y:VBus28 - CLORET21'\np2289\ng26\n(S'Variable_Type'\n(I2\nttRp2290\nsS'Y:PMachine105 - CPROPR32'\np2291\ng26\n(S'Variable_Type'\n(I2\nttRp2292\nsS'Y:VBus96 - COCANA35'\np2293\ng26\n(S'Variable_Type'\n(I2\nttRp2294\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np2295\ng26\n(S'Variable_Type'\n(I1\nttRp2296\nsS'Y:PMachine18 - CCASAM21'\np2297\ng26\n(S'Variable_Type'\n(I1\nttRp2298\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np2299\ng26\n(S'Variable_Type'\n(I2\nttRp2300\nsS'Y:VBus13 - CBIGUG21'\np2301\ng26\n(S'Variable_Type'\n(I2\nttRp2302\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np2303\ng26\n(S'Variable_Type'\n(I2\nttRp2304\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np2305\ng26\n(S'Variable_Type'\n(I2\nttRp2306\nsS'Y:VBus29 - CLUCCI21'\np2307\ng26\n(S'Variable_Type'\n(I2\nttRp2308\nsS'Y:VBus58 - CBONIF32'\np2309\ng26\n(S'Variable_Type'\n(I2\nttRp2310\nsS'Y:VBus84 - CLORET31'\np2311\ng26\n(S'Variable_Type'\n(I2\nttRp2312\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np2313\ng26\n(S'Variable_Type'\n(I1\nttRp2314\nsS'Y:VBus97 - COCANA36'\np2315\ng26\n(S'Variable_Type'\n(I2\nttRp2316\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np2317\ng26\n(S'Variable_Type'\n(I1\nttRp2318\nsS'Y:VBus15 - CBONIF22'\np2319\ng26\n(S'Variable_Type'\n(I2\nttRp2320\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np2321\ng26\n(S'Variable_Type'\n(I2\nttRp2322\nsS'Y:Load 110 - CSTLUC31'\np2323\ng26\n(S'Variable_Type'\n(I2\nttRp2324\nsS'Y:VBus80 - CGHISO31'\np2325\ng26\n(S'Variable_Type'\n(I2\nttRp2326\nsS'Y:PMachine114 - CSOVEN31'\np2327\ng26\n(S'Variable_Type'\n(I2\nttRp2328\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np2329\ng26\n(S'Variable_Type'\n(I1\nttRp2330\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np2331\ng26\n(S'Variable_Type'\n(I2\nttRp2332\nsS'Y:PMachine93 - COCANA32'\np2333\ng26\n(S'Variable_Type'\n(I2\nttRp2334\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np2335\ng26\n(S'Variable_Type'\n(I1\nttRp2336\nsS'Y:VBus87 - CLUCCI32'\np2337\ng26\n(S'Variable_Type'\n(I2\nttRp2338\nsS'Y:VBus62 - CCALVI32'\np2339\ng26\n(S'Variable_Type'\n(I2\nttRp2340\nsS'CASA_DIESEL'\np2341\ng26\n(S'Variable_Type'\n(I2\nttRp2342\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np2343\ng26\n(S'Variable_Type'\n(I1\nttRp2344\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np2345\ng26\n(S'Variable_Type'\n(I1\nttRp2346\nsS'Y:VBus81 - CGHISO32'\np2347\ng26\n(S'Variable_Type'\n(I2\nttRp2348\nsS'Y:PMachine74 - CCERVI31'\np2349\ng26\n(S'Variable_Type'\n(I2\nttRp2350\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np2351\ng26\n(S'Variable_Type'\n(I2\nttRp2352\nsS'EOL_ALL'\np2353\ng26\n(S'Variable_Type'\n(I2\nttRp2354\nsS'X:Load(pu)'\np2355\ng26\n(S'Variable_Type'\n(I2\nttRp2356\nsS'Y:NbeTension'\np2357\ng26\n(S'Variable_Type'\n(I2\nttRp2358\nsS'Y:VBus95 - COCANA34'\np2359\ng26\n(S'Variable_Type'\n(I2\nttRp2360\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np2361\ng26\n(S'Variable_Type'\n(I2\nttRp2362\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np2363\ng26\n(S'Variable_Type'\n(I2\nttRp2364\nsS'Y:Load 95 - COCANA34'\np2365\ng26\n(S'Variable_Type'\n(I2\nttRp2366\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np2367\ng26\n(S'Variable_Type'\n(I1\nttRp2368\nsS'Y:PMachine90 - CMOROS31'\np2369\ng26\n(S'Variable_Type'\n(I2\nttRp2370\nsS'Y:Load 101 - CPIETR31'\np2371\ng26\n(S'Variable_Type'\n(I2\nttRp2372\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np2373\ng26\n(S'Variable_Type'\n(I1\nttRp2374\nsS'Y:PMachine132 - CVAZZI313'\np2375\ng26\n(S'Variable_Type'\n(I2\nttRp2376\nsS'Y:VBus125 - CVAZZI36'\np2377\ng26\n(S'Variable_Type'\n(I2\nttRp2378\nsS'Y:VBus135 - CLUCCI36'\np2379\ng26\n(S'Variable_Type'\n(I2\nttRp2380\nsS'Y:VBus47 - CVAZZI21'\np2381\ng26\n(S'Variable_Type'\n(I2\nttRp2382\nsS'Y:VBus94 - COCANA33'\np2383\ng26\n(S'Variable_Type'\n(I2\nttRp2384\nsS'Y:VBus17 - CCALVI21'\np2385\ng26\n(S'Variable_Type'\n(I2\nttRp2386\nsS'Y:Load 90 - CMOROS31'\np2387\ng26\n(S'Variable_Type'\n(I2\nttRp2388\nsS'Y:VBus120 - CVAZZI31'\np2389\ng26\n(S'Variable_Type'\n(I2\nttRp2390\nsS'X:ProdPV%Pnom'\np2391\ng26\n(S'Variable_Type'\n(I2\nttRp2392\nsS'Y:VBus52 - CASPRE32'\np2393\ng26\n(S'Variable_Type'\n(I2\nttRp2394\nsS'Y:VBus25 - CFURIA22'\np2395\ng26\n(S'Variable_Type'\n(I2\nttRp2396\nsS'Y:Load 76 - CCORTE31'\np2397\ng26\n(S'Variable_Type'\n(I2\nttRp2398\nsS'Y:PMachine69 - CCASAM37'\np2399\ng26\n(S'Variable_Type'\n(I2\nttRp2400\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np2401\ng26\n(S'Variable_Type'\n(I2\nttRp2402\nsS'Y:PMachine92 - COCANA31'\np2403\ng26\n(S'Variable_Type'\n(I2\nttRp2404\nsS'Y:VBus35 - CPORTO21'\np2405\ng26\n(S'Variable_Type'\n(I2\nttRp2406\nsS'VAZZIO_TAC'\np2407\ng26\n(S'Variable_Type'\n(I2\nttRp2408\nsS'Y:PMachine122 - CVAZZI33'\np2409\ng26\n(S'Variable_Type'\n(I2\nttRp2410\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np2411\ng26\n(S'Variable_Type'\n(I1\nttRp2412\nsS'Y:PMachine63 - CCASAM31'\np2413\ng26\n(S'Variable_Type'\n(I2\nttRp2414\nsS'Y:VBus74 - CCERVI31'\np2415\ng26\n(S'Variable_Type'\n(I2\nttRp2416\nsS'Y:VBus126 - CVAZZI37'\np2417\ng26\n(S'Variable_Type'\n(I2\nttRp2418\nsS'Y:PMachine60 - CCALDA32'\np2419\ng26\n(S'Variable_Type'\n(I2\nttRp2420\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np2421\ng26\n(S'Variable_Type'\n(I1\nttRp2422\nsS'Y:VBus20 - CCERVI21'\np2423\ng26\n(S'Variable_Type'\n(I2\nttRp2424\nsS'Y:VBus119 - CTRAVO31'\np2425\ng26\n(S'Variable_Type'\n(I2\nttRp2426\nsS'Y:VBus11 - CASPRE21'\np2427\ng26\n(S'Variable_Type'\n(I2\nttRp2428\nsS'Y:VBus139 - CLUCCI310'\np2429\ng26\n(S'Variable_Type'\n(I2\nttRp2430\nsS'Y:VBus106 - CRIZZA31'\np2431\ng26\n(S'Variable_Type'\n(I2\nttRp2432\nsS'Y:PMachine66 - CCASAM34'\np2433\ng26\n(S'Variable_Type'\n(I2\nttRp2434\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np2435\ng26\n(S'Variable_Type'\n(I2\nttRp2436\nsS'Y:VBus136 - CLUCCI37'\np2437\ng26\n(S'Variable_Type'\n(I2\nttRp2438\nsS'Y:VBus90 - CMOROS31'\np2439\ng26\n(S'Variable_Type'\n(I2\nttRp2440\nsS'PV_ALL'\np2441\ng26\n(S'Variable_Type'\n(I2\nttRp2442\nsS'X:lineOff#'\np2443\ng26\n(S'Variable_Type'\n(I2\nttRp2444\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np2445\ng26\n(S'Variable_Type'\n(I2\nttRp2446\nsS'Y:VBus108 - CSAGON31'\np2447\ng26\n(S'Variable_Type'\n(I2\nttRp2448\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np2449\ng26\n(S'Variable_Type'\n(I2\nttRp2450\nsS'Y:VBus137 - CLUCCI38'\np2451\ng26\n(S'Variable_Type'\n(I2\nttRp2452\nsS'Y:VBus130 - CVAZZI311'\np2453\ng26\n(S'Variable_Type'\n(I2\nttRp2454\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np2455\ng26\n(S'Variable_Type'\n(I2\nttRp2456\nsS'Y:VBus46 - CTRAVO21'\np2457\ng26\n(S'Variable_Type'\n(I2\nttRp2458\nsS'Y:VBus113 - CSAMPO32'\np2459\ng26\n(S'Variable_Type'\n(I2\nttRp2460\nsS'Y:PMachine133 - CVAZZI314'\np2461\ng26\n(S'Variable_Type'\n(I2\nttRp2462\nsS'Y:PMachine65 - CCASAM33'\np2463\ng26\n(S'Variable_Type'\n(I2\nttRp2464\nsS'Y:VBus78 - CFURIA31'\np2465\ng26\n(S'Variable_Type'\n(I2\nttRp2466\nsS'Y:VBus26 - CGHISO21'\np2467\ng26\n(S'Variable_Type'\n(I2\nttRp2468\nsS'Y:VBus121 - CVAZZI32'\np2469\ng26\n(S'Variable_Type'\n(I2\nttRp2470\nsS'Y:PMachine97 - COCANA36'\np2471\ng26\n(S'Variable_Type'\n(I2\nttRp2472\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np2473\ng26\n(S'Variable_Type'\n(I2\nttRp2474\nsS'Y:PMachine83 - CILERO32'\np2475\ng26\n(S'Variable_Type'\n(I2\nttRp2476\nsS'Y:VBus83 - CILERO32'\np2477\ng26\n(S'Variable_Type'\n(I2\nttRp2478\nsS'Y:VBus66 - CCASAM34'\np2479\ng26\n(S'Variable_Type'\n(I2\nttRp2480\nsS'Y:PMachine1 - CBONIF11'\np2481\ng26\n(S'Variable_Type'\n(I2\nttRp2482\nsS'Y:VBus111 - CSTMAR31'\np2483\ng26\n(S'Variable_Type'\n(I2\nttRp2484\nsS'Y:VBus124 - CVAZZI35'\np2485\ng26\n(S'Variable_Type'\n(I2\nttRp2486\nsS'VAZZIO_DIESEL'\np2487\ng26\n(S'Variable_Type'\n(I2\nttRp2488\nsS'Y:PMachine131 - CVAZZI312'\np2489\ng26\n(S'Variable_Type'\n(I2\nttRp2490\nsS'Y:VBus44 - CTAGLI21'\np2491\ng26\n(S'Variable_Type'\n(I2\nttRp2492\nsS'Y:VBus88 - CLUCCI33'\np2493\ng26\n(S'Variable_Type'\n(I2\nttRp2494\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np2495\ng26\n(S'Variable_Type'\n(I1\nttRp2496\nsS'Y:VBus38 - CSAGON21'\np2497\ng26\n(S'Variable_Type'\n(I2\nttRp2498\nsS'Y:PMachine81 - CGHISO32'\np2499\ng26\n(S'Variable_Type'\n(I2\nttRp2500\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np2501\ng26\n(S'Variable_Type'\n(I2\nttRp2502\nsS'Y:VBus110 - CSTLUC31'\np2503\ng26\n(S'Variable_Type'\n(I2\nttRp2504\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np2505\ng26\n(S'Variable_Type'\n(I2\nttRp2506\nssg630\n(dp2507\nsg632\n(dp2508\nS'attribute'\np2509\n(S'X:Load(pu)'\np2510\ng2356\ntp2511\nsS'yaxisTitle'\np2512\n(g638\nI0\ntp2513\nsS'xaxisTitle'\np2514\n(g2510\ng2356\ntp2515\nsS'mainTitle'\np2516\n(S''\nI0\ntp2517\nsS'yPaxisTitle'\np2518\n(S''\nI0\ntp2519\nsS'targetValue'\np2520\n(NI-2\ntp2521\nsS'visibleOutcomes'\np2522\n((lI-2\ntp2523\nssg650\nF1369995560.3740001\nsba(iOWContexts\nContext\np2524\n(dp2525\ng20\n(lp2526\ng1272\nasg23\n(dp2527\nS'Y:PMachine134 - CLUCCI35'\np2528\ng26\n(S'Variable_Type'\n(I1\nttRp2529\nsS'Y:VBus77 - CCORTE32'\np2530\ng26\n(S'Variable_Type'\n(I2\nttRp2531\nsS'Y:VBus134 - CLUCCI35'\np2532\ng26\n(S'Variable_Type'\n(I2\nttRp2533\nsS'Y:VBus109 - CSAGON32'\np2534\ng26\n(S'Variable_Type'\n(I2\nttRp2535\nsS'Y:VBus102 - CPORTO31'\np2536\ng26\n(S'Variable_Type'\n(I2\nttRp2537\nsS'XProdEolienne%Pnom'\np2538\ng26\n(S'Variable_Type'\n(I1\nttRp2539\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np2540\ng26\n(S'Variable_Type'\n(I2\nttRp2541\nsS'Y:PMachine94 - COCANA33'\np2542\ng26\n(S'Variable_Type'\n(I2\nttRp2543\nsS'Y:VBus117 - CTOLLA32'\np2544\ng26\n(S'Variable_Type'\n(I2\nttRp2545\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np2546\ng26\n(S'Variable_Type'\n(I2\nttRp2547\nsS'Y:PMachine87 - CLUCCI32'\np2548\ng26\n(S'Variable_Type'\n(I2\nttRp2549\nsS'Y:PMachine113 - CSAMPO32'\np2550\ng26\n(S'Variable_Type'\n(I2\nttRp2551\nsS'Y:Load 84 - CLORET31'\np2552\ng26\n(S'Variable_Type'\n(I2\nttRp2553\nsS'Y:PMachine89 - CLUCCI34'\np2554\ng26\n(S'Variable_Type'\n(I1\nttRp2555\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np2556\ng26\n(S'Variable_Type'\n(I2\nttRp2557\nsS'Y:Load 80 - CGHISO31'\np2558\ng26\n(S'Variable_Type'\n(I2\nttRp2559\nsS'Y:PMachine125 - CVAZZI36'\np2560\ng26\n(S'Variable_Type'\n(I2\nttRp2561\nsS'Y:PMachine116 - CTOLLA31'\np2562\ng26\n(S'Variable_Type'\n(I2\nttRp2563\nsS'Y:PMachine88 - CLUCCI33'\np2564\ng26\n(S'Variable_Type'\n(I1\nttRp2565\nsS'Y:PMachine120 - CVAZZI31'\np2566\ng26\n(S'Variable_Type'\n(I2\nttRp2567\nsS'Y:PMachine111 - CSTMAR31'\np2568\ng26\n(S'Variable_Type'\n(I2\nttRp2569\nsS'Y:NbeTransit'\np2570\ng26\n(S'Variable_Type'\n(I1\nttRp2571\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np2572\ng26\n(S'Variable_Type'\n(I2\nttRp2573\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np2574\ng26\n(S'Variable_Type'\n(I2\nttRp2575\nsS'Y:VBus92 - COCANA31'\np2576\ng26\n(S'Variable_Type'\n(I2\nttRp2577\nsS'Y:PMachine130 - CVAZZI311'\np2578\ng26\n(S'Variable_Type'\n(I2\nttRp2579\nsS'Y:PMachine127 - CVAZZI38'\np2580\ng26\n(S'Variable_Type'\n(I2\nttRp2581\nsS'Y:VBus131 - CVAZZI312'\np2582\ng26\n(S'Variable_Type'\n(I2\nttRp2583\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np2584\ng26\n(S'Variable_Type'\n(I2\nttRp2585\nsS'Y:PMachine123 - CVAZZI34'\np2586\ng26\n(S'Variable_Type'\n(I2\nttRp2587\nsS'Y:VBus118 - CTOLLA33'\np2588\ng26\n(S'Variable_Type'\n(I2\nttRp2589\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np2590\ng26\n(S'Variable_Type'\n(I1\nttRp2591\nsS'Y:PMachine58 - CBONIF32'\np2592\ng26\n(S'Variable_Type'\n(I2\nttRp2593\nsS'Y:Load 104 - CPROPR31'\np2594\ng26\n(S'Variable_Type'\n(I2\nttRp2595\nsS'Y:PMachine30 - CLUCCI22'\np2596\ng26\n(S'Variable_Type'\n(I1\nttRp2597\nsS'Y:VBus100 - COLETT31'\np2598\ng26\n(S'Variable_Type'\n(I2\nttRp2599\nsS'Y:PProdTot'\np2600\ng26\n(S'Variable_Type'\n(I2\nttRp2601\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np2602\ng26\n(S'Variable_Type'\n(I1\nttRp2603\nsS'Y:VBus57 - CBONIF31'\np2604\ng26\n(S'Variable_Type'\n(I2\nttRp2605\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np2606\ng26\n(S'Variable_Type'\n(I2\nttRp2607\nsS'Y:PConsoTot'\np2608\ng26\n(S'Variable_Type'\n(I2\nttRp2609\nsS'Iteration'\np2610\ng26\n(S'Variable_Type'\n(I2\nttRp2611\nsS'Y:PMachine109 - CSAGON32'\np2612\ng26\n(S'Variable_Type'\n(I2\nttRp2613\nsS'Y:PMachine135 - CLUCCI36'\np2614\ng26\n(S'Variable_Type'\n(I1\nttRp2615\nsS'Y:VBus30 - CLUCCI22'\np2616\ng26\n(S'Variable_Type'\n(I2\nttRp2617\nsS'Y:VBus122 - CVAZZI33'\np2618\ng26\n(S'Variable_Type'\n(I2\nttRp2619\nsS'Y:VBus86 - CLUCCI31'\np2620\ng26\n(S'Variable_Type'\n(I2\nttRp2621\nsS'Y:PMachine102 - CPORTO31'\np2622\ng26\n(S'Variable_Type'\n(I2\nttRp2623\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np2624\ng26\n(S'Variable_Type'\n(I1\nttRp2625\nsS'Y:PMachine107 - CRIZZA32'\np2626\ng26\n(S'Variable_Type'\n(I2\nttRp2627\nsS'Y:VBus16 - CCALDA21'\np2628\ng26\n(S'Variable_Type'\n(I2\nttRp2629\nsS'Y:Load 102 - CPORTO31'\np2630\ng26\n(S'Variable_Type'\n(I2\nttRp2631\nsS'Y:VBus107 - CRIZZA32'\np2632\ng26\n(S'Variable_Type'\n(I2\nttRp2633\nsS'Y:VBus59 - CCALDA31'\np2634\ng26\n(S'Variable_Type'\n(I2\nttRp2635\nsS'Y:VBus41 - CSAMPO21'\np2636\ng26\n(S'Variable_Type'\n(I2\nttRp2637\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np2638\ng26\n(S'Variable_Type'\n(I2\nttRp2639\nsS'Y:VBus34 - CPIETR21'\np2640\ng26\n(S'Variable_Type'\n(I2\nttRp2641\nsS'Y:Load 108 - CSAGON31'\np2642\ng26\n(S'Variable_Type'\n(I2\nttRp2643\nsS'Y:VBus56 - CBIGUG32'\np2644\ng26\n(S'Variable_Type'\n(I2\nttRp2645\nsS'Y:PMachine42 - CSISCO21'\np2646\ng26\n(S'Variable_Type'\n(I2\nttRp2647\nsS'Y:PMachine138 - CLUCCI39'\np2648\ng26\n(S'Variable_Type'\n(I1\nttRp2649\nsS'Y:PMachine112 - CSAMPO31'\np2650\ng26\n(S'Variable_Type'\n(I2\nttRp2651\nsS'Y:VBus105 - CPROPR32'\np2652\ng26\n(S'Variable_Type'\n(I2\nttRp2653\nsS'Y:VBus1 - CBONIF11'\np2654\ng26\n(S'Variable_Type'\n(I2\nttRp2655\nsS'Y:VBus12 - CBASTI21'\np2656\ng26\n(S'Variable_Type'\n(I2\nttRp2657\nsS'Y:PMachine129 - CVAZZI310'\np2658\ng26\n(S'Variable_Type'\n(I2\nttRp2659\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np2660\ng26\n(S'Variable_Type'\n(I1\nttRp2661\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np2662\ng26\n(S'Variable_Type'\n(I1\nttRp2663\nsS'Y:VBus54 - CBASTI32'\np2664\ng26\n(S'Variable_Type'\n(I2\nttRp2665\nsS'Y:VBus69 - CCASAM37'\np2666\ng26\n(S'Variable_Type'\n(I2\nttRp2667\nsS'Y:VBus45 - CTOLLA21'\np2668\ng26\n(S'Variable_Type'\n(I2\nttRp2669\nsS'Y:PMachine115 - CTAGLI31'\np2670\ng26\n(S'Variable_Type'\n(I2\nttRp2671\nsS'Y:PMachine77 - CCORTE32'\np2672\ng26\n(S'Variable_Type'\n(I2\nttRp2673\nsS'Y:VBus43 - CSOVEN21'\np2674\ng26\n(S'Variable_Type'\n(I2\nttRp2675\nsS'Y:VBus76 - CCORTE31'\np2676\ng26\n(S'Variable_Type'\n(I2\nttRp2677\nsS'Y:VBus75 - CCORSC31'\np2678\ng26\n(S'Variable_Type'\n(I2\nttRp2679\nsS'Y:PMachine78 - CFURIA31'\np2680\ng26\n(S'Variable_Type'\n(I1\nttRp2681\nsS'Y:VBus127 - CVAZZI38'\np2682\ng26\n(S'Variable_Type'\n(I2\nttRp2683\nsS'Y:VBus115 - CTAGLI31'\np2684\ng26\n(S'Variable_Type'\n(I2\nttRp2685\nsS'Y:Load 61 - CCALVI31'\np2686\ng26\n(S'Variable_Type'\n(I2\nttRp2687\nsS'Y:VBus55 - CBIGUG31'\np2688\ng26\n(S'Variable_Type'\n(I2\nttRp2689\nsS'Y:Load 42 - CSISCO21'\np2690\ng26\n(S'Variable_Type'\n(I2\nttRp2691\nsS'Y:VBus72 - CCASTI31'\np2692\ng26\n(S'Variable_Type'\n(I2\nttRp2693\nsS'Y:Load 37 - CRIZZA21'\np2694\ng26\n(S'Variable_Type'\n(I2\nttRp2695\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np2696\ng26\n(S'Variable_Type'\n(I2\nttRp2697\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np2698\ng26\n(S'Variable_Type'\n(I2\nttRp2699\nsS'Y:PMachine137 - CLUCCI38'\np2700\ng26\n(S'Variable_Type'\n(I1\nttRp2701\nsS'Y:PMachine67 - CCASAM35'\np2702\ng26\n(S'Variable_Type'\n(I2\nttRp2703\nsS'INTERCOS'\np2704\ng26\n(S'Variable_Type'\n(I2\nttRp2705\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np2706\ng26\n(S'Variable_Type'\n(I1\nttRp2707\nsS'Y:VBus31 - CMOROS21'\np2708\ng26\n(S'Variable_Type'\n(I2\nttRp2709\nsS'Y:VBus103 - CPORTO32'\np2710\ng26\n(S'Variable_Type'\n(I2\nttRp2711\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np2712\ng26\n(S'Variable_Type'\n(I1\nttRp2713\nsS'Y:PMachine128 - CVAZZI39'\np2714\ng26\n(S'Variable_Type'\n(I2\nttRp2715\nsS'Y:PMachine72 - CCASTI31'\np2716\ng26\n(S'Variable_Type'\n(I2\nttRp2717\nsS'Y:VBus27 - CILERO21'\np2718\ng26\n(S'Variable_Type'\n(I2\nttRp2719\nsS'Y:PMachine75 - CCORSC31'\np2720\ng26\n(S'Variable_Type'\n(I2\nttRp2721\nsS'Y:Load 51 - CASPRE31'\np2722\ng26\n(S'Variable_Type'\n(I2\nttRp2723\nsS'Y:PMachine61 - CCALVI31'\np2724\ng26\n(S'Variable_Type'\n(I1\nttRp2725\nsS'Y:VBus51 - CASPRE31'\np2726\ng26\n(S'Variable_Type'\n(I2\nttRp2727\nsS'Y:VBus114 - CSOVEN31'\np2728\ng26\n(S'Variable_Type'\n(I2\nttRp2729\nsS'Y:Load 82 - CILERO31'\np2730\ng26\n(S'Variable_Type'\n(I2\nttRp2731\nsS'Y:VBus116 - CTOLLA31'\np2732\ng26\n(S'Variable_Type'\n(I2\nttRp2733\nsS'Y:Load 86 - CLUCCI31'\np2734\ng26\n(S'Variable_Type'\n(I2\nttRp2735\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np2736\ng26\n(S'Variable_Type'\n(I2\nttRp2737\nsS'Y:Load 57 - CBONIF31'\np2738\ng26\n(S'Variable_Type'\n(I2\nttRp2739\nsS'Y:PMachine104 - CPROPR31'\np2740\ng26\n(S'Variable_Type'\n(I2\nttRp2741\nsS'Y:VBus128 - CVAZZI39'\np2742\ng26\n(S'Variable_Type'\n(I2\nttRp2743\nsS'Y:PMachine136 - CLUCCI37'\np2744\ng26\n(S'Variable_Type'\n(I1\nttRp2745\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np2746\ng26\n(S'Variable_Type'\n(I2\nttRp2747\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np2748\ng26\n(S'Variable_Type'\n(I2\nttRp2749\nsS'Y:PMachine68 - CCASAM36'\np2750\ng26\n(S'Variable_Type'\n(I2\nttRp2751\nsS'Y:PMachine29 - CLUCCI21'\np2752\ng26\n(S'Variable_Type'\n(I1\nttRp2753\nsS'Y:VBus42 - CSISCO21'\np2754\ng26\n(S'Variable_Type'\n(I2\nttRp2755\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np2756\ng26\n(S'Variable_Type'\n(I1\nttRp2757\nsS'Y:VBus14 - CBONIF21'\np2758\ng26\n(S'Variable_Type'\n(I2\nttRp2759\nsS'Y:VBus73 - CCASTI32'\np2760\ng26\n(S'Variable_Type'\n(I2\nttRp2761\nsS'Y:VBus64 - CCASAM32'\np2762\ng26\n(S'Variable_Type'\n(I2\nttRp2763\nsS'Y:PMachine14 - CBONIF21'\np2764\ng26\n(S'Variable_Type'\n(I1\nttRp2765\nsS'Y:PMachine62 - CCALVI32'\np2766\ng26\n(S'Variable_Type'\n(I2\nttRp2767\nsS'Y:VBus133 - CVAZZI314'\np2768\ng26\n(S'Variable_Type'\n(I2\nttRp2769\nsS'Y:VBus63 - CCASAM31'\np2770\ng26\n(S'Variable_Type'\n(I2\nttRp2771\nsS'Y:PMachine101 - CPIETR31'\np2772\ng26\n(S'Variable_Type'\n(I2\nttRp2773\nsS'Y:%Losses'\np2774\ng26\n(S'Variable_Type'\n(I2\nttRp2775\nsS'Y:VBus85 - CLORET32'\np2776\ng26\n(S'Variable_Type'\n(I2\nttRp2777\nsS'Y:Load 59 - CCALDA31'\np2778\ng26\n(S'Variable_Type'\n(I2\nttRp2779\nsS'Y:VBus129 - CVAZZI310'\np2780\ng26\n(S'Variable_Type'\n(I2\nttRp2781\nsS'Y:VBus101 - CPIETR31'\np2782\ng26\n(S'Variable_Type'\n(I2\nttRp2783\nsS'Y:PMachine106 - CRIZZA31'\np2784\ng26\n(S'Variable_Type'\n(I2\nttRp2785\nsS'Y:VBus132 - CVAZZI313'\np2786\ng26\n(S'Variable_Type'\n(I2\nttRp2787\nsS'Y:PMachine118 - CTOLLA33'\np2788\ng26\n(S'Variable_Type'\n(I2\nttRp2789\nsS'Y:VBus19 - CCASTI21'\np2790\ng26\n(S'Variable_Type'\n(I2\nttRp2791\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np2792\ng26\n(S'Variable_Type'\n(I2\nttRp2793\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np2794\ng26\n(S'Variable_Type'\n(I1\nttRp2795\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np2796\ng26\n(S'Variable_Type'\n(I2\nttRp2797\nsS'Y:Load 115 - CTAGLI31'\np2798\ng26\n(S'Variable_Type'\n(I2\nttRp2799\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np2800\ng26\n(S'Variable_Type'\n(I2\nttRp2801\nsS'Y:VBus79 - CFURIA32'\np2802\ng26\n(S'Variable_Type'\n(I2\nttRp2803\nsS'Y:PMachine47 - CVAZZI21'\np2804\ng26\n(S'Variable_Type'\n(I1\nttRp2805\nsS'Y:VBus123 - CVAZZI34'\np2806\ng26\n(S'Variable_Type'\n(I2\nttRp2807\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np2808\ng26\n(S'Variable_Type'\n(I2\nttRp2809\nsS'Y:VBus60 - CCALDA32'\np2810\ng26\n(S'Variable_Type'\n(I2\nttRp2811\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np2812\ng26\n(S'Variable_Type'\n(I2\nttRp2813\nsS'Y:VBus65 - CCASAM33'\np2814\ng26\n(S'Variable_Type'\n(I2\nttRp2815\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np2816\ng26\n(S'Variable_Type'\n(I1\nttRp2817\nsS'Y:PMachine139 - CLUCCI310'\np2818\ng26\n(S'Variable_Type'\n(I1\nttRp2819\nsS'Y:VBus112 - CSAMPO31'\np2820\ng26\n(S'Variable_Type'\n(I2\nttRp2821\nsS'Y:VBus68 - CCASAM36'\np2822\ng26\n(S'Variable_Type'\n(I2\nttRp2823\nsS'Y:Load 55 - CBIGUG31'\np2824\ng26\n(S'Variable_Type'\n(I2\nttRp2825\nsS'Y:PMachine53 - CBASTI31'\np2826\ng26\n(S'Variable_Type'\n(I2\nttRp2827\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np2828\ng26\n(S'Variable_Type'\n(I2\nttRp2829\nsS'Y:VBus24 - CFURIA21'\np2830\ng26\n(S'Variable_Type'\n(I2\nttRp2831\nsS'Y:VBus23 - CCORTE22'\np2832\ng26\n(S'Variable_Type'\n(I2\nttRp2833\nsS'Y:VBus18 - CCASAM21'\np2834\ng26\n(S'Variable_Type'\n(I2\nttRp2835\nsS'Y:VBus40 - CSTMAR21'\np2836\ng26\n(S'Variable_Type'\n(I2\nttRp2837\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np2838\ng26\n(S'Variable_Type'\n(I2\nttRp2839\nsS'Y:PMachine124 - CVAZZI35'\np2840\ng26\n(S'Variable_Type'\n(I2\nttRp2841\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np2842\ng26\n(S'Variable_Type'\n(I2\nttRp2843\nsS'Y:PMachine117 - CTOLLA32'\np2844\ng26\n(S'Variable_Type'\n(I2\nttRp2845\nsS'Y:VBus89 - CLUCCI34'\np2846\ng26\n(S'Variable_Type'\n(I2\nttRp2847\nsS'Y:VBus33 - COLETT21'\np2848\ng26\n(S'Variable_Type'\n(I2\nttRp2849\nsS'Y:VBus32 - COCANA21'\np2850\ng26\n(S'Variable_Type'\n(I2\nttRp2851\nsS'Y:PMachine121 - CVAZZI32'\np2852\ng26\n(S'Variable_Type'\n(I2\nttRp2853\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np2854\ng26\n(S'Variable_Type'\n(I1\nttRp2855\nsS'Y:VBus82 - CILERO31'\np2856\ng26\n(S'Variable_Type'\n(I2\nttRp2857\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np2858\ng26\n(S'Variable_Type'\n(I2\nttRp2859\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np2860\ng26\n(S'Variable_Type'\n(I2\nttRp2861\nsS'Y:VBus37 - CRIZZA21'\np2862\ng26\n(S'Variable_Type'\n(I2\nttRp2863\nsS'Y:PMachine73 - CCASTI32'\np2864\ng26\n(S'Variable_Type'\n(I2\nttRp2865\nsS'Y:PMachine86 - CLUCCI31'\np2866\ng26\n(S'Variable_Type'\n(I2\nttRp2867\nsS'Y:Load 53 - CBASTI31'\np2868\ng26\n(S'Variable_Type'\n(I2\nttRp2869\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np2870\ng26\n(S'Variable_Type'\n(I2\nttRp2871\nsS'Y:VBus21 - CCORSC21'\np2872\ng26\n(S'Variable_Type'\n(I2\nttRp2873\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np2874\ng26\n(S'Variable_Type'\n(I2\nttRp2875\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np2876\ng26\n(S'Variable_Type'\n(I2\nttRp2877\nsS'Y:PMachine126 - CVAZZI37'\np2878\ng26\n(S'Variable_Type'\n(I2\nttRp2879\nsS'Y:PMachine64 - CCASAM32'\np2880\ng26\n(S'Variable_Type'\n(I2\nttRp2881\nsS'Y:VBus67 - CCASAM35'\np2882\ng26\n(S'Variable_Type'\n(I2\nttRp2883\nsS'Y:VBus53 - CBASTI31'\np2884\ng26\n(S'Variable_Type'\n(I2\nttRp2885\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np2886\ng26\n(S'Variable_Type'\n(I2\nttRp2887\nsS'Y:VBus61 - CCALVI31'\np2888\ng26\n(S'Variable_Type'\n(I2\nttRp2889\nsS'Y:VBus93 - COCANA32'\np2890\ng26\n(S'Variable_Type'\n(I2\nttRp2891\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np2892\ng26\n(S'Variable_Type'\n(I2\nttRp2893\nsS'Y:NbeTransit_0.9-1'\np2894\ng26\n(S'Variable_Type'\n(I1\nttRp2895\nsS'Y:VBus104 - CPROPR31'\np2896\ng26\n(S'Variable_Type'\n(I2\nttRp2897\nsS'Y:VBus22 - CCORTE21'\np2898\ng26\n(S'Variable_Type'\n(I2\nttRp2899\nsS'Y:VBus48 - CZSSS621'\np2900\ng26\n(S'Variable_Type'\n(I2\nttRp2901\nsS'Y:PMachine85 - CLORET32'\np2902\ng26\n(S'Variable_Type'\n(I2\nttRp2903\nsS'Y:Max%A'\np2904\ng26\n(S'Variable_Type'\n(I2\nttRp2905\nsS'Y:VBus36 - CPROPR21'\np2906\ng26\n(S'Variable_Type'\n(I2\nttRp2907\nsS'Y:Load 100 - COLETT31'\np2908\ng26\n(S'Variable_Type'\n(I2\nttRp2909\nsS'Y:PMachine54 - CBASTI32'\np2910\ng26\n(S'Variable_Type'\n(I2\nttRp2911\nsS'Y:VBus138 - CLUCCI39'\np2912\ng26\n(S'Variable_Type'\n(I2\nttRp2913\nsS'Y:VBus39 - CSTLUC21'\np2914\ng26\n(S'Variable_Type'\n(I2\nttRp2915\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np2916\ng26\n(S'Variable_Type'\n(I2\nttRp2917\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np2918\ng26\n(S'Variable_Type'\n(I2\nttRp2919\nsS'Y:Load 78 - CFURIA31'\np2920\ng26\n(S'Variable_Type'\n(I2\nttRp2921\nsS'Y:Load 74 - CCERVI31'\np2922\ng26\n(S'Variable_Type'\n(I2\nttRp2923\nsS'Y:VBus28 - CLORET21'\np2924\ng26\n(S'Variable_Type'\n(I2\nttRp2925\nsS'Y:PMachine105 - CPROPR32'\np2926\ng26\n(S'Variable_Type'\n(I2\nttRp2927\nsS'Y:VBus96 - COCANA35'\np2928\ng26\n(S'Variable_Type'\n(I2\nttRp2929\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np2930\ng26\n(S'Variable_Type'\n(I1\nttRp2931\nsS'Y:PMachine18 - CCASAM21'\np2932\ng26\n(S'Variable_Type'\n(I1\nttRp2933\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np2934\ng26\n(S'Variable_Type'\n(I2\nttRp2935\nsS'Y:VBus13 - CBIGUG21'\np2936\ng26\n(S'Variable_Type'\n(I2\nttRp2937\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np2938\ng26\n(S'Variable_Type'\n(I2\nttRp2939\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np2940\ng26\n(S'Variable_Type'\n(I2\nttRp2941\nsS'Y:VBus29 - CLUCCI21'\np2942\ng26\n(S'Variable_Type'\n(I2\nttRp2943\nsS'Y:VBus58 - CBONIF32'\np2944\ng26\n(S'Variable_Type'\n(I2\nttRp2945\nsS'Y:VBus84 - CLORET31'\np2946\ng26\n(S'Variable_Type'\n(I2\nttRp2947\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np2948\ng26\n(S'Variable_Type'\n(I1\nttRp2949\nsS'Y:VBus97 - COCANA36'\np2950\ng26\n(S'Variable_Type'\n(I2\nttRp2951\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np2952\ng26\n(S'Variable_Type'\n(I1\nttRp2953\nsS'Y:VBus15 - CBONIF22'\np2954\ng26\n(S'Variable_Type'\n(I2\nttRp2955\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np2956\ng26\n(S'Variable_Type'\n(I2\nttRp2957\nsS'Y:Load 110 - CSTLUC31'\np2958\ng26\n(S'Variable_Type'\n(I2\nttRp2959\nsS'Y:VBus80 - CGHISO31'\np2960\ng26\n(S'Variable_Type'\n(I2\nttRp2961\nsS'Y:PMachine114 - CSOVEN31'\np2962\ng26\n(S'Variable_Type'\n(I2\nttRp2963\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np2964\ng26\n(S'Variable_Type'\n(I1\nttRp2965\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np2966\ng26\n(S'Variable_Type'\n(I2\nttRp2967\nsS'Y:PMachine93 - COCANA32'\np2968\ng26\n(S'Variable_Type'\n(I2\nttRp2969\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np2970\ng26\n(S'Variable_Type'\n(I1\nttRp2971\nsS'Y:VBus87 - CLUCCI32'\np2972\ng26\n(S'Variable_Type'\n(I2\nttRp2973\nsS'Y:VBus62 - CCALVI32'\np2974\ng26\n(S'Variable_Type'\n(I2\nttRp2975\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np2976\ng26\n(S'Variable_Type'\n(I1\nttRp2977\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np2978\ng26\n(S'Variable_Type'\n(I1\nttRp2979\nsS'Y:VBus81 - CGHISO32'\np2980\ng26\n(S'Variable_Type'\n(I2\nttRp2981\nsS'Y:PMachine74 - CCERVI31'\np2982\ng26\n(S'Variable_Type'\n(I2\nttRp2983\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np2984\ng26\n(S'Variable_Type'\n(I2\nttRp2985\nsS'EOL_ALL'\np2986\ng26\n(S'Variable_Type'\n(I2\nttRp2987\nsS'X:Load(pu)'\np2988\ng26\n(S'Variable_Type'\n(I2\nttRp2989\nsS'Y:NbeTension'\np2990\ng26\n(S'Variable_Type'\n(I2\nttRp2991\nsS'Y:VBus95 - COCANA34'\np2992\ng26\n(S'Variable_Type'\n(I2\nttRp2993\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np2994\ng26\n(S'Variable_Type'\n(I2\nttRp2995\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np2996\ng26\n(S'Variable_Type'\n(I2\nttRp2997\nsS'Y:Load 95 - COCANA34'\np2998\ng26\n(S'Variable_Type'\n(I2\nttRp2999\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np3000\ng26\n(S'Variable_Type'\n(I1\nttRp3001\nsS'Y:PMachine90 - CMOROS31'\np3002\ng26\n(S'Variable_Type'\n(I2\nttRp3003\nsS'Y:Load 101 - CPIETR31'\np3004\ng26\n(S'Variable_Type'\n(I2\nttRp3005\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np3006\ng26\n(S'Variable_Type'\n(I1\nttRp3007\nsS'Y:PMachine132 - CVAZZI313'\np3008\ng26\n(S'Variable_Type'\n(I2\nttRp3009\nsS'Y:VBus125 - CVAZZI36'\np3010\ng26\n(S'Variable_Type'\n(I2\nttRp3011\nsS'Y:VBus135 - CLUCCI36'\np3012\ng26\n(S'Variable_Type'\n(I2\nttRp3013\nsS'Y:VBus47 - CVAZZI21'\np3014\ng26\n(S'Variable_Type'\n(I2\nttRp3015\nsS'Y:VBus94 - COCANA33'\np3016\ng26\n(S'Variable_Type'\n(I2\nttRp3017\nsS'Y:VBus17 - CCALVI21'\np3018\ng26\n(S'Variable_Type'\n(I2\nttRp3019\nsS'Y:Load 90 - CMOROS31'\np3020\ng26\n(S'Variable_Type'\n(I2\nttRp3021\nsS'Y:VBus120 - CVAZZI31'\np3022\ng26\n(S'Variable_Type'\n(I2\nttRp3023\nsS'X:ProdPV%Pnom'\np3024\ng26\n(S'Variable_Type'\n(I2\nttRp3025\nsS'Y:VBus52 - CASPRE32'\np3026\ng26\n(S'Variable_Type'\n(I2\nttRp3027\nsS'Y:VBus25 - CFURIA22'\np3028\ng26\n(S'Variable_Type'\n(I2\nttRp3029\nsS'Y:Load 76 - CCORTE31'\np3030\ng26\n(S'Variable_Type'\n(I2\nttRp3031\nsS'Y:PMachine69 - CCASAM37'\np3032\ng26\n(S'Variable_Type'\n(I2\nttRp3033\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np3034\ng26\n(S'Variable_Type'\n(I2\nttRp3035\nsS'Y:PMachine92 - COCANA31'\np3036\ng26\n(S'Variable_Type'\n(I2\nttRp3037\nsS'Y:VBus35 - CPORTO21'\np3038\ng26\n(S'Variable_Type'\n(I2\nttRp3039\nsS'VAZZIO_TAC'\np3040\ng26\n(S'Variable_Type'\n(I2\nttRp3041\nsS'Y:PMachine122 - CVAZZI33'\np3042\ng26\n(S'Variable_Type'\n(I2\nttRp3043\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np3044\ng26\n(S'Variable_Type'\n(I1\nttRp3045\nsS'Y:PMachine63 - CCASAM31'\np3046\ng26\n(S'Variable_Type'\n(I2\nttRp3047\nsS'Y:VBus74 - CCERVI31'\np3048\ng26\n(S'Variable_Type'\n(I2\nttRp3049\nsS'Y:VBus126 - CVAZZI37'\np3050\ng26\n(S'Variable_Type'\n(I2\nttRp3051\nsS'Y:PMachine60 - CCALDA32'\np3052\ng26\n(S'Variable_Type'\n(I2\nttRp3053\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np3054\ng26\n(S'Variable_Type'\n(I1\nttRp3055\nsS'Y:VBus20 - CCERVI21'\np3056\ng26\n(S'Variable_Type'\n(I2\nttRp3057\nsS'Y:VBus119 - CTRAVO31'\np3058\ng26\n(S'Variable_Type'\n(I2\nttRp3059\nsS'Y:VBus11 - CASPRE21'\np3060\ng26\n(S'Variable_Type'\n(I2\nttRp3061\nsS'Y:VBus139 - CLUCCI310'\np3062\ng26\n(S'Variable_Type'\n(I2\nttRp3063\nsS'Y:VBus106 - CRIZZA31'\np3064\ng26\n(S'Variable_Type'\n(I2\nttRp3065\nsS'Y:PMachine66 - CCASAM34'\np3066\ng26\n(S'Variable_Type'\n(I2\nttRp3067\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np3068\ng26\n(S'Variable_Type'\n(I2\nttRp3069\nsS'Y:VBus136 - CLUCCI37'\np3070\ng26\n(S'Variable_Type'\n(I2\nttRp3071\nsS'Y:VBus90 - CMOROS31'\np3072\ng26\n(S'Variable_Type'\n(I2\nttRp3073\nsS'PV_ALL'\np3074\ng26\n(S'Variable_Type'\n(I2\nttRp3075\nsS'X:lineOff#'\np3076\ng26\n(S'Variable_Type'\n(I2\nttRp3077\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np3078\ng26\n(S'Variable_Type'\n(I2\nttRp3079\nsS'Y:VBus108 - CSAGON31'\np3080\ng26\n(S'Variable_Type'\n(I2\nttRp3081\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np3082\ng26\n(S'Variable_Type'\n(I2\nttRp3083\nsS'Y:VBus137 - CLUCCI38'\np3084\ng26\n(S'Variable_Type'\n(I2\nttRp3085\nsS'Y:VBus130 - CVAZZI311'\np3086\ng26\n(S'Variable_Type'\n(I2\nttRp3087\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np3088\ng26\n(S'Variable_Type'\n(I2\nttRp3089\nsS'Y:VBus46 - CTRAVO21'\np3090\ng26\n(S'Variable_Type'\n(I2\nttRp3091\nsS'Y:VBus113 - CSAMPO32'\np3092\ng26\n(S'Variable_Type'\n(I2\nttRp3093\nsS'Y:PMachine133 - CVAZZI314'\np3094\ng26\n(S'Variable_Type'\n(I2\nttRp3095\nsS'Y:PMachine65 - CCASAM33'\np3096\ng26\n(S'Variable_Type'\n(I2\nttRp3097\nsS'Y:VBus78 - CFURIA31'\np3098\ng26\n(S'Variable_Type'\n(I2\nttRp3099\nsS'Y:VBus26 - CGHISO21'\np3100\ng26\n(S'Variable_Type'\n(I2\nttRp3101\nsS'Y:VBus121 - CVAZZI32'\np3102\ng26\n(S'Variable_Type'\n(I2\nttRp3103\nsS'Y:PMachine97 - COCANA36'\np3104\ng26\n(S'Variable_Type'\n(I2\nttRp3105\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np3106\ng26\n(S'Variable_Type'\n(I2\nttRp3107\nsS'Y:PMachine83 - CILERO32'\np3108\ng26\n(S'Variable_Type'\n(I2\nttRp3109\nsS'Y:VBus83 - CILERO32'\np3110\ng26\n(S'Variable_Type'\n(I2\nttRp3111\nsS'Y:VBus66 - CCASAM34'\np3112\ng26\n(S'Variable_Type'\n(I2\nttRp3113\nsS'Y:PMachine1 - CBONIF11'\np3114\ng26\n(S'Variable_Type'\n(I2\nttRp3115\nsS'Y:VBus111 - CSTMAR31'\np3116\ng26\n(S'Variable_Type'\n(I2\nttRp3117\nsS'Y:VBus124 - CVAZZI35'\np3118\ng26\n(S'Variable_Type'\n(I2\nttRp3119\nsS'VAZZIO_DIESEL'\np3120\ng26\n(S'Variable_Type'\n(I2\nttRp3121\nsS'Y:PMachine131 - CVAZZI312'\np3122\ng26\n(S'Variable_Type'\n(I2\nttRp3123\nsS'Y:VBus44 - CTAGLI21'\np3124\ng26\n(S'Variable_Type'\n(I2\nttRp3125\nsS'Y:VBus88 - CLUCCI33'\np3126\ng26\n(S'Variable_Type'\n(I2\nttRp3127\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np3128\ng26\n(S'Variable_Type'\n(I1\nttRp3129\nsS'Y:VBus38 - CSAGON21'\np3130\ng26\n(S'Variable_Type'\n(I2\nttRp3131\nsS'Y:PMachine81 - CGHISO32'\np3132\ng26\n(S'Variable_Type'\n(I2\nttRp3133\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np3134\ng26\n(S'Variable_Type'\n(I2\nttRp3135\nsS'Y:VBus110 - CSTLUC31'\np3136\ng26\n(S'Variable_Type'\n(I2\nttRp3137\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np3138\ng26\n(S'Variable_Type'\n(I2\nttRp3139\nssg630\n(dp3140\nsg632\n(dp3141\ng2509\n(S'Iteration'\np3142\ng2611\ntp3143\nsg2512\n(g638\nI0\ntp3144\nsg2514\n(g3142\ng2611\ntp3145\nsg2516\n(S''\nI0\ntp3146\nsg2518\n(S''\nI0\ntp3147\nsg2520\n(NI-2\ntp3148\nsg2522\n((lI-2\ntp3149\nssg650\nF1369995455.3150001\nsba(iOWContexts\nContext\np3150\n(dp3151\ng20\n(lp3152\ng1272\nasg23\n(dp3153\nS'Y:PMachine134 - CLUCCI35'\np3154\ng26\n(S'Variable_Type'\n(I1\nttRp3155\nsS'Y:VBus77 - CCORTE32'\np3156\ng26\n(S'Variable_Type'\n(I2\nttRp3157\nsS'Y:VBus134 - CLUCCI35'\np3158\ng26\n(S'Variable_Type'\n(I2\nttRp3159\nsS'Y:VBus109 - CSAGON32'\np3160\ng26\n(S'Variable_Type'\n(I2\nttRp3161\nsS'Y:VBus102 - CPORTO31'\np3162\ng26\n(S'Variable_Type'\n(I2\nttRp3163\nsS'XProdEolienne%Pnom'\np3164\ng26\n(S'Variable_Type'\n(I1\nttRp3165\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np3166\ng26\n(S'Variable_Type'\n(I2\nttRp3167\nsS'Y:PMachine94 - COCANA33'\np3168\ng26\n(S'Variable_Type'\n(I2\nttRp3169\nsS'Y:VBus117 - CTOLLA32'\np3170\ng26\n(S'Variable_Type'\n(I2\nttRp3171\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np3172\ng26\n(S'Variable_Type'\n(I2\nttRp3173\nsS'Y:PMachine87 - CLUCCI32'\np3174\ng26\n(S'Variable_Type'\n(I2\nttRp3175\nsS'Y:PMachine113 - CSAMPO32'\np3176\ng26\n(S'Variable_Type'\n(I2\nttRp3177\nsS'Y:Load 84 - CLORET31'\np3178\ng26\n(S'Variable_Type'\n(I2\nttRp3179\nsS'Y:PMachine89 - CLUCCI34'\np3180\ng26\n(S'Variable_Type'\n(I1\nttRp3181\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np3182\ng26\n(S'Variable_Type'\n(I2\nttRp3183\nsS'Y:Load 80 - CGHISO31'\np3184\ng26\n(S'Variable_Type'\n(I2\nttRp3185\nsS'Y:PMachine125 - CVAZZI36'\np3186\ng26\n(S'Variable_Type'\n(I2\nttRp3187\nsS'Y:PMachine116 - CTOLLA31'\np3188\ng26\n(S'Variable_Type'\n(I2\nttRp3189\nsS'Y:PMachine88 - CLUCCI33'\np3190\ng26\n(S'Variable_Type'\n(I1\nttRp3191\nsS'Y:PMachine120 - CVAZZI31'\np3192\ng26\n(S'Variable_Type'\n(I2\nttRp3193\nsS'Y:PMachine111 - CSTMAR31'\np3194\ng26\n(S'Variable_Type'\n(I2\nttRp3195\nsS'Y:NbeTransit'\np3196\ng26\n(S'Variable_Type'\n(I1\nttRp3197\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np3198\ng26\n(S'Variable_Type'\n(I2\nttRp3199\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np3200\ng26\n(S'Variable_Type'\n(I2\nttRp3201\nsS'Y:VBus92 - COCANA31'\np3202\ng26\n(S'Variable_Type'\n(I2\nttRp3203\nsS'Y:PMachine130 - CVAZZI311'\np3204\ng26\n(S'Variable_Type'\n(I2\nttRp3205\nsS'Y:PMachine127 - CVAZZI38'\np3206\ng26\n(S'Variable_Type'\n(I2\nttRp3207\nsS'Y:VBus131 - CVAZZI312'\np3208\ng26\n(S'Variable_Type'\n(I2\nttRp3209\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np3210\ng26\n(S'Variable_Type'\n(I2\nttRp3211\nsS'Y:PMachine123 - CVAZZI34'\np3212\ng26\n(S'Variable_Type'\n(I2\nttRp3213\nsS'Y:VBus118 - CTOLLA33'\np3214\ng26\n(S'Variable_Type'\n(I2\nttRp3215\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np3216\ng26\n(S'Variable_Type'\n(I1\nttRp3217\nsS'Y:PMachine58 - CBONIF32'\np3218\ng26\n(S'Variable_Type'\n(I2\nttRp3219\nsS'Y:Load 104 - CPROPR31'\np3220\ng26\n(S'Variable_Type'\n(I2\nttRp3221\nsS'Y:PMachine30 - CLUCCI22'\np3222\ng26\n(S'Variable_Type'\n(I1\nttRp3223\nsS'Y:VBus100 - COLETT31'\np3224\ng26\n(S'Variable_Type'\n(I2\nttRp3225\nsS'Y:PProdTot'\np3226\ng26\n(S'Variable_Type'\n(I2\nttRp3227\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np3228\ng26\n(S'Variable_Type'\n(I1\nttRp3229\nsS'Y:VBus57 - CBONIF31'\np3230\ng26\n(S'Variable_Type'\n(I2\nttRp3231\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np3232\ng26\n(S'Variable_Type'\n(I2\nttRp3233\nsS'Y:PConsoTot'\np3234\ng26\n(S'Variable_Type'\n(I2\nttRp3235\nsS'Iteration'\np3236\ng26\n(S'Variable_Type'\n(I2\nttRp3237\nsS'Y:PMachine109 - CSAGON32'\np3238\ng26\n(S'Variable_Type'\n(I2\nttRp3239\nsS'Y:PMachine135 - CLUCCI36'\np3240\ng26\n(S'Variable_Type'\n(I1\nttRp3241\nsS'Y:VBus30 - CLUCCI22'\np3242\ng26\n(S'Variable_Type'\n(I2\nttRp3243\nsS'Y:VBus122 - CVAZZI33'\np3244\ng26\n(S'Variable_Type'\n(I2\nttRp3245\nsS'Y:VBus86 - CLUCCI31'\np3246\ng26\n(S'Variable_Type'\n(I2\nttRp3247\nsS'Y:PMachine102 - CPORTO31'\np3248\ng26\n(S'Variable_Type'\n(I2\nttRp3249\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np3250\ng26\n(S'Variable_Type'\n(I1\nttRp3251\nsS'Y:PMachine107 - CRIZZA32'\np3252\ng26\n(S'Variable_Type'\n(I2\nttRp3253\nsS'Y:VBus16 - CCALDA21'\np3254\ng26\n(S'Variable_Type'\n(I2\nttRp3255\nsS'Y:Load 102 - CPORTO31'\np3256\ng26\n(S'Variable_Type'\n(I2\nttRp3257\nsS'Y:VBus107 - CRIZZA32'\np3258\ng26\n(S'Variable_Type'\n(I2\nttRp3259\nsS'Y:VBus59 - CCALDA31'\np3260\ng26\n(S'Variable_Type'\n(I2\nttRp3261\nsS'Y:VBus41 - CSAMPO21'\np3262\ng26\n(S'Variable_Type'\n(I2\nttRp3263\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np3264\ng26\n(S'Variable_Type'\n(I2\nttRp3265\nsS'Y:VBus34 - CPIETR21'\np3266\ng26\n(S'Variable_Type'\n(I2\nttRp3267\nsS'Y:Load 108 - CSAGON31'\np3268\ng26\n(S'Variable_Type'\n(I2\nttRp3269\nsS'Y:VBus56 - CBIGUG32'\np3270\ng26\n(S'Variable_Type'\n(I2\nttRp3271\nsS'Y:PMachine42 - CSISCO21'\np3272\ng26\n(S'Variable_Type'\n(I2\nttRp3273\nsS'Y:PMachine138 - CLUCCI39'\np3274\ng26\n(S'Variable_Type'\n(I1\nttRp3275\nsS'Y:PMachine112 - CSAMPO31'\np3276\ng26\n(S'Variable_Type'\n(I2\nttRp3277\nsS'Y:VBus105 - CPROPR32'\np3278\ng26\n(S'Variable_Type'\n(I2\nttRp3279\nsS'Y:VBus1 - CBONIF11'\np3280\ng26\n(S'Variable_Type'\n(I2\nttRp3281\nsS'Y:VBus12 - CBASTI21'\np3282\ng26\n(S'Variable_Type'\n(I2\nttRp3283\nsS'Y:PMachine129 - CVAZZI310'\np3284\ng26\n(S'Variable_Type'\n(I2\nttRp3285\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np3286\ng26\n(S'Variable_Type'\n(I1\nttRp3287\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np3288\ng26\n(S'Variable_Type'\n(I1\nttRp3289\nsS'Y:VBus54 - CBASTI32'\np3290\ng26\n(S'Variable_Type'\n(I2\nttRp3291\nsS'Y:VBus69 - CCASAM37'\np3292\ng26\n(S'Variable_Type'\n(I2\nttRp3293\nsS'Y:VBus45 - CTOLLA21'\np3294\ng26\n(S'Variable_Type'\n(I2\nttRp3295\nsS'Y:PMachine115 - CTAGLI31'\np3296\ng26\n(S'Variable_Type'\n(I2\nttRp3297\nsS'Y:PMachine77 - CCORTE32'\np3298\ng26\n(S'Variable_Type'\n(I2\nttRp3299\nsS'Y:VBus43 - CSOVEN21'\np3300\ng26\n(S'Variable_Type'\n(I2\nttRp3301\nsS'Y:VBus76 - CCORTE31'\np3302\ng26\n(S'Variable_Type'\n(I2\nttRp3303\nsS'Y:VBus75 - CCORSC31'\np3304\ng26\n(S'Variable_Type'\n(I2\nttRp3305\nsS'Y:PMachine78 - CFURIA31'\np3306\ng26\n(S'Variable_Type'\n(I1\nttRp3307\nsS'Y:VBus127 - CVAZZI38'\np3308\ng26\n(S'Variable_Type'\n(I2\nttRp3309\nsS'Y:VBus115 - CTAGLI31'\np3310\ng26\n(S'Variable_Type'\n(I2\nttRp3311\nsS'Y:Load 61 - CCALVI31'\np3312\ng26\n(S'Variable_Type'\n(I2\nttRp3313\nsS'Y:VBus55 - CBIGUG31'\np3314\ng26\n(S'Variable_Type'\n(I2\nttRp3315\nsS'Y:Load 42 - CSISCO21'\np3316\ng26\n(S'Variable_Type'\n(I2\nttRp3317\nsS'Y:VBus72 - CCASTI31'\np3318\ng26\n(S'Variable_Type'\n(I2\nttRp3319\nsS'Y:Load 37 - CRIZZA21'\np3320\ng26\n(S'Variable_Type'\n(I2\nttRp3321\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np3322\ng26\n(S'Variable_Type'\n(I2\nttRp3323\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np3324\ng26\n(S'Variable_Type'\n(I2\nttRp3325\nsS'Y:PMachine137 - CLUCCI38'\np3326\ng26\n(S'Variable_Type'\n(I1\nttRp3327\nsS'Y:PMachine67 - CCASAM35'\np3328\ng26\n(S'Variable_Type'\n(I2\nttRp3329\nsS'INTERCOS'\np3330\ng26\n(S'Variable_Type'\n(I2\nttRp3331\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np3332\ng26\n(S'Variable_Type'\n(I1\nttRp3333\nsS'Y:VBus31 - CMOROS21'\np3334\ng26\n(S'Variable_Type'\n(I2\nttRp3335\nsS'Y:VBus103 - CPORTO32'\np3336\ng26\n(S'Variable_Type'\n(I2\nttRp3337\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np3338\ng26\n(S'Variable_Type'\n(I1\nttRp3339\nsS'Y:PMachine128 - CVAZZI39'\np3340\ng26\n(S'Variable_Type'\n(I2\nttRp3341\nsS'Y:PMachine72 - CCASTI31'\np3342\ng26\n(S'Variable_Type'\n(I2\nttRp3343\nsS'Y:VBus27 - CILERO21'\np3344\ng26\n(S'Variable_Type'\n(I2\nttRp3345\nsS'Y:PMachine75 - CCORSC31'\np3346\ng26\n(S'Variable_Type'\n(I2\nttRp3347\nsS'Y:Load 51 - CASPRE31'\np3348\ng26\n(S'Variable_Type'\n(I2\nttRp3349\nsS'Y:PMachine61 - CCALVI31'\np3350\ng26\n(S'Variable_Type'\n(I1\nttRp3351\nsS'Y:VBus51 - CASPRE31'\np3352\ng26\n(S'Variable_Type'\n(I2\nttRp3353\nsS'Y:VBus114 - CSOVEN31'\np3354\ng26\n(S'Variable_Type'\n(I2\nttRp3355\nsS'Y:Load 82 - CILERO31'\np3356\ng26\n(S'Variable_Type'\n(I2\nttRp3357\nsS'Y:VBus116 - CTOLLA31'\np3358\ng26\n(S'Variable_Type'\n(I2\nttRp3359\nsS'Y:Load 86 - CLUCCI31'\np3360\ng26\n(S'Variable_Type'\n(I2\nttRp3361\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np3362\ng26\n(S'Variable_Type'\n(I2\nttRp3363\nsS'Y:Load 57 - CBONIF31'\np3364\ng26\n(S'Variable_Type'\n(I2\nttRp3365\nsS'Y:PMachine104 - CPROPR31'\np3366\ng26\n(S'Variable_Type'\n(I2\nttRp3367\nsS'Y:VBus128 - CVAZZI39'\np3368\ng26\n(S'Variable_Type'\n(I2\nttRp3369\nsS'Y:PMachine136 - CLUCCI37'\np3370\ng26\n(S'Variable_Type'\n(I1\nttRp3371\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np3372\ng26\n(S'Variable_Type'\n(I2\nttRp3373\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np3374\ng26\n(S'Variable_Type'\n(I2\nttRp3375\nsS'Y:PMachine68 - CCASAM36'\np3376\ng26\n(S'Variable_Type'\n(I2\nttRp3377\nsS'Y:PMachine29 - CLUCCI21'\np3378\ng26\n(S'Variable_Type'\n(I1\nttRp3379\nsS'Y:VBus42 - CSISCO21'\np3380\ng26\n(S'Variable_Type'\n(I2\nttRp3381\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np3382\ng26\n(S'Variable_Type'\n(I1\nttRp3383\nsS'Y:VBus14 - CBONIF21'\np3384\ng26\n(S'Variable_Type'\n(I2\nttRp3385\nsS'Y:VBus73 - CCASTI32'\np3386\ng26\n(S'Variable_Type'\n(I2\nttRp3387\nsS'Y:VBus64 - CCASAM32'\np3388\ng26\n(S'Variable_Type'\n(I2\nttRp3389\nsS'Y:PMachine14 - CBONIF21'\np3390\ng26\n(S'Variable_Type'\n(I1\nttRp3391\nsS'Y:PMachine62 - CCALVI32'\np3392\ng26\n(S'Variable_Type'\n(I2\nttRp3393\nsS'Y:VBus133 - CVAZZI314'\np3394\ng26\n(S'Variable_Type'\n(I2\nttRp3395\nsS'Y:VBus63 - CCASAM31'\np3396\ng26\n(S'Variable_Type'\n(I2\nttRp3397\nsS'Y:PMachine101 - CPIETR31'\np3398\ng26\n(S'Variable_Type'\n(I2\nttRp3399\nsS'Y:%Losses'\np3400\ng26\n(S'Variable_Type'\n(I2\nttRp3401\nsS'Y:VBus85 - CLORET32'\np3402\ng26\n(S'Variable_Type'\n(I2\nttRp3403\nsS'Y:Load 59 - CCALDA31'\np3404\ng26\n(S'Variable_Type'\n(I2\nttRp3405\nsS'Y:VBus129 - CVAZZI310'\np3406\ng26\n(S'Variable_Type'\n(I2\nttRp3407\nsS'Y:VBus101 - CPIETR31'\np3408\ng26\n(S'Variable_Type'\n(I2\nttRp3409\nsS'Y:PMachine106 - CRIZZA31'\np3410\ng26\n(S'Variable_Type'\n(I2\nttRp3411\nsS'Y:VBus132 - CVAZZI313'\np3412\ng26\n(S'Variable_Type'\n(I2\nttRp3413\nsS'Y:PMachine118 - CTOLLA33'\np3414\ng26\n(S'Variable_Type'\n(I2\nttRp3415\nsS'Y:VBus19 - CCASTI21'\np3416\ng26\n(S'Variable_Type'\n(I2\nttRp3417\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np3418\ng26\n(S'Variable_Type'\n(I2\nttRp3419\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np3420\ng26\n(S'Variable_Type'\n(I1\nttRp3421\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np3422\ng26\n(S'Variable_Type'\n(I2\nttRp3423\nsS'Y:Load 115 - CTAGLI31'\np3424\ng26\n(S'Variable_Type'\n(I2\nttRp3425\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np3426\ng26\n(S'Variable_Type'\n(I2\nttRp3427\nsS'Y:VBus79 - CFURIA32'\np3428\ng26\n(S'Variable_Type'\n(I2\nttRp3429\nsS'Y:PMachine47 - CVAZZI21'\np3430\ng26\n(S'Variable_Type'\n(I1\nttRp3431\nsS'Y:VBus123 - CVAZZI34'\np3432\ng26\n(S'Variable_Type'\n(I2\nttRp3433\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np3434\ng26\n(S'Variable_Type'\n(I2\nttRp3435\nsS'Y:VBus60 - CCALDA32'\np3436\ng26\n(S'Variable_Type'\n(I2\nttRp3437\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np3438\ng26\n(S'Variable_Type'\n(I2\nttRp3439\nsS'Y:VBus65 - CCASAM33'\np3440\ng26\n(S'Variable_Type'\n(I2\nttRp3441\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np3442\ng26\n(S'Variable_Type'\n(I1\nttRp3443\nsS'Y:PMachine139 - CLUCCI310'\np3444\ng26\n(S'Variable_Type'\n(I1\nttRp3445\nsS'Y:VBus112 - CSAMPO31'\np3446\ng26\n(S'Variable_Type'\n(I2\nttRp3447\nsS'Y:VBus68 - CCASAM36'\np3448\ng26\n(S'Variable_Type'\n(I2\nttRp3449\nsS'Y:Load 55 - CBIGUG31'\np3450\ng26\n(S'Variable_Type'\n(I2\nttRp3451\nsS'Y:PMachine53 - CBASTI31'\np3452\ng26\n(S'Variable_Type'\n(I2\nttRp3453\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np3454\ng26\n(S'Variable_Type'\n(I2\nttRp3455\nsS'Y:VBus24 - CFURIA21'\np3456\ng26\n(S'Variable_Type'\n(I2\nttRp3457\nsS'Y:VBus23 - CCORTE22'\np3458\ng26\n(S'Variable_Type'\n(I2\nttRp3459\nsS'Y:VBus18 - CCASAM21'\np3460\ng26\n(S'Variable_Type'\n(I2\nttRp3461\nsS'Y:VBus40 - CSTMAR21'\np3462\ng26\n(S'Variable_Type'\n(I2\nttRp3463\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np3464\ng26\n(S'Variable_Type'\n(I2\nttRp3465\nsS'Y:PMachine124 - CVAZZI35'\np3466\ng26\n(S'Variable_Type'\n(I2\nttRp3467\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np3468\ng26\n(S'Variable_Type'\n(I2\nttRp3469\nsS'Y:PMachine117 - CTOLLA32'\np3470\ng26\n(S'Variable_Type'\n(I2\nttRp3471\nsS'Y:VBus89 - CLUCCI34'\np3472\ng26\n(S'Variable_Type'\n(I2\nttRp3473\nsS'Y:VBus33 - COLETT21'\np3474\ng26\n(S'Variable_Type'\n(I2\nttRp3475\nsS'Y:VBus32 - COCANA21'\np3476\ng26\n(S'Variable_Type'\n(I2\nttRp3477\nsS'Y:PMachine121 - CVAZZI32'\np3478\ng26\n(S'Variable_Type'\n(I2\nttRp3479\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np3480\ng26\n(S'Variable_Type'\n(I1\nttRp3481\nsS'Y:VBus82 - CILERO31'\np3482\ng26\n(S'Variable_Type'\n(I2\nttRp3483\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np3484\ng26\n(S'Variable_Type'\n(I2\nttRp3485\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np3486\ng26\n(S'Variable_Type'\n(I2\nttRp3487\nsS'Y:VBus37 - CRIZZA21'\np3488\ng26\n(S'Variable_Type'\n(I2\nttRp3489\nsS'Y:PMachine73 - CCASTI32'\np3490\ng26\n(S'Variable_Type'\n(I2\nttRp3491\nsS'Y:PMachine86 - CLUCCI31'\np3492\ng26\n(S'Variable_Type'\n(I2\nttRp3493\nsS'Y:Load 53 - CBASTI31'\np3494\ng26\n(S'Variable_Type'\n(I2\nttRp3495\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np3496\ng26\n(S'Variable_Type'\n(I2\nttRp3497\nsS'Y:VBus21 - CCORSC21'\np3498\ng26\n(S'Variable_Type'\n(I2\nttRp3499\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np3500\ng26\n(S'Variable_Type'\n(I2\nttRp3501\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np3502\ng26\n(S'Variable_Type'\n(I2\nttRp3503\nsS'Y:PMachine126 - CVAZZI37'\np3504\ng26\n(S'Variable_Type'\n(I2\nttRp3505\nsS'Y:PMachine64 - CCASAM32'\np3506\ng26\n(S'Variable_Type'\n(I2\nttRp3507\nsS'Y:VBus67 - CCASAM35'\np3508\ng26\n(S'Variable_Type'\n(I2\nttRp3509\nsS'Y:VBus53 - CBASTI31'\np3510\ng26\n(S'Variable_Type'\n(I2\nttRp3511\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np3512\ng26\n(S'Variable_Type'\n(I2\nttRp3513\nsS'Y:VBus61 - CCALVI31'\np3514\ng26\n(S'Variable_Type'\n(I2\nttRp3515\nsS'Y:VBus93 - COCANA32'\np3516\ng26\n(S'Variable_Type'\n(I2\nttRp3517\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np3518\ng26\n(S'Variable_Type'\n(I2\nttRp3519\nsS'Y:NbeTransit_0.9-1'\np3520\ng26\n(S'Variable_Type'\n(I1\nttRp3521\nsS'Y:VBus104 - CPROPR31'\np3522\ng26\n(S'Variable_Type'\n(I2\nttRp3523\nsS'Y:VBus22 - CCORTE21'\np3524\ng26\n(S'Variable_Type'\n(I2\nttRp3525\nsS'Y:VBus48 - CZSSS621'\np3526\ng26\n(S'Variable_Type'\n(I2\nttRp3527\nsS'Y:PMachine85 - CLORET32'\np3528\ng26\n(S'Variable_Type'\n(I2\nttRp3529\nsS'Y:Max%A'\np3530\ng26\n(S'Variable_Type'\n(I2\nttRp3531\nsS'Y:VBus36 - CPROPR21'\np3532\ng26\n(S'Variable_Type'\n(I2\nttRp3533\nsS'Y:Load 100 - COLETT31'\np3534\ng26\n(S'Variable_Type'\n(I2\nttRp3535\nsS'Y:PMachine54 - CBASTI32'\np3536\ng26\n(S'Variable_Type'\n(I2\nttRp3537\nsS'Y:VBus138 - CLUCCI39'\np3538\ng26\n(S'Variable_Type'\n(I2\nttRp3539\nsS'Y:VBus39 - CSTLUC21'\np3540\ng26\n(S'Variable_Type'\n(I2\nttRp3541\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np3542\ng26\n(S'Variable_Type'\n(I2\nttRp3543\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np3544\ng26\n(S'Variable_Type'\n(I2\nttRp3545\nsS'Y:Load 78 - CFURIA31'\np3546\ng26\n(S'Variable_Type'\n(I2\nttRp3547\nsS'Y:Load 74 - CCERVI31'\np3548\ng26\n(S'Variable_Type'\n(I2\nttRp3549\nsS'Y:VBus28 - CLORET21'\np3550\ng26\n(S'Variable_Type'\n(I2\nttRp3551\nsS'Y:PMachine105 - CPROPR32'\np3552\ng26\n(S'Variable_Type'\n(I2\nttRp3553\nsS'Y:VBus96 - COCANA35'\np3554\ng26\n(S'Variable_Type'\n(I2\nttRp3555\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np3556\ng26\n(S'Variable_Type'\n(I1\nttRp3557\nsS'Y:PMachine18 - CCASAM21'\np3558\ng26\n(S'Variable_Type'\n(I1\nttRp3559\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np3560\ng26\n(S'Variable_Type'\n(I2\nttRp3561\nsS'Y:VBus13 - CBIGUG21'\np3562\ng26\n(S'Variable_Type'\n(I2\nttRp3563\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np3564\ng26\n(S'Variable_Type'\n(I2\nttRp3565\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np3566\ng26\n(S'Variable_Type'\n(I2\nttRp3567\nsS'Y:VBus29 - CLUCCI21'\np3568\ng26\n(S'Variable_Type'\n(I2\nttRp3569\nsS'Y:VBus58 - CBONIF32'\np3570\ng26\n(S'Variable_Type'\n(I2\nttRp3571\nsS'Y:VBus84 - CLORET31'\np3572\ng26\n(S'Variable_Type'\n(I2\nttRp3573\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np3574\ng26\n(S'Variable_Type'\n(I1\nttRp3575\nsS'Y:VBus97 - COCANA36'\np3576\ng26\n(S'Variable_Type'\n(I2\nttRp3577\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np3578\ng26\n(S'Variable_Type'\n(I1\nttRp3579\nsS'Y:VBus15 - CBONIF22'\np3580\ng26\n(S'Variable_Type'\n(I2\nttRp3581\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np3582\ng26\n(S'Variable_Type'\n(I2\nttRp3583\nsS'Y:Load 110 - CSTLUC31'\np3584\ng26\n(S'Variable_Type'\n(I2\nttRp3585\nsS'Y:VBus80 - CGHISO31'\np3586\ng26\n(S'Variable_Type'\n(I2\nttRp3587\nsS'Y:PMachine114 - CSOVEN31'\np3588\ng26\n(S'Variable_Type'\n(I2\nttRp3589\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np3590\ng26\n(S'Variable_Type'\n(I1\nttRp3591\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np3592\ng26\n(S'Variable_Type'\n(I2\nttRp3593\nsS'Y:PMachine93 - COCANA32'\np3594\ng26\n(S'Variable_Type'\n(I2\nttRp3595\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np3596\ng26\n(S'Variable_Type'\n(I1\nttRp3597\nsS'Y:VBus87 - CLUCCI32'\np3598\ng26\n(S'Variable_Type'\n(I2\nttRp3599\nsS'Y:VBus62 - CCALVI32'\np3600\ng26\n(S'Variable_Type'\n(I2\nttRp3601\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np3602\ng26\n(S'Variable_Type'\n(I1\nttRp3603\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np3604\ng26\n(S'Variable_Type'\n(I1\nttRp3605\nsS'Y:VBus81 - CGHISO32'\np3606\ng26\n(S'Variable_Type'\n(I2\nttRp3607\nsS'Y:PMachine74 - CCERVI31'\np3608\ng26\n(S'Variable_Type'\n(I2\nttRp3609\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np3610\ng26\n(S'Variable_Type'\n(I2\nttRp3611\nsS'EOL_ALL'\np3612\ng26\n(S'Variable_Type'\n(I2\nttRp3613\nsS'X:Load(pu)'\np3614\ng26\n(S'Variable_Type'\n(I2\nttRp3615\nsS'Y:NbeTension'\np3616\ng26\n(S'Variable_Type'\n(I2\nttRp3617\nsS'Y:VBus95 - COCANA34'\np3618\ng26\n(S'Variable_Type'\n(I2\nttRp3619\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np3620\ng26\n(S'Variable_Type'\n(I2\nttRp3621\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np3622\ng26\n(S'Variable_Type'\n(I2\nttRp3623\nsS'Y:Load 95 - COCANA34'\np3624\ng26\n(S'Variable_Type'\n(I2\nttRp3625\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np3626\ng26\n(S'Variable_Type'\n(I1\nttRp3627\nsS'Y:PMachine90 - CMOROS31'\np3628\ng26\n(S'Variable_Type'\n(I2\nttRp3629\nsS'Y:Load 101 - CPIETR31'\np3630\ng26\n(S'Variable_Type'\n(I2\nttRp3631\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np3632\ng26\n(S'Variable_Type'\n(I1\nttRp3633\nsS'Y:PMachine132 - CVAZZI313'\np3634\ng26\n(S'Variable_Type'\n(I2\nttRp3635\nsS'Y:VBus125 - CVAZZI36'\np3636\ng26\n(S'Variable_Type'\n(I2\nttRp3637\nsS'Y:VBus135 - CLUCCI36'\np3638\ng26\n(S'Variable_Type'\n(I2\nttRp3639\nsS'Y:VBus47 - CVAZZI21'\np3640\ng26\n(S'Variable_Type'\n(I2\nttRp3641\nsS'Y:VBus94 - COCANA33'\np3642\ng26\n(S'Variable_Type'\n(I2\nttRp3643\nsS'Y:VBus17 - CCALVI21'\np3644\ng26\n(S'Variable_Type'\n(I2\nttRp3645\nsS'Y:Load 90 - CMOROS31'\np3646\ng26\n(S'Variable_Type'\n(I2\nttRp3647\nsS'Y:VBus120 - CVAZZI31'\np3648\ng26\n(S'Variable_Type'\n(I2\nttRp3649\nsS'X:ProdPV%Pnom'\np3650\ng26\n(S'Variable_Type'\n(I2\nttRp3651\nsS'Y:VBus52 - CASPRE32'\np3652\ng26\n(S'Variable_Type'\n(I2\nttRp3653\nsS'Y:VBus25 - CFURIA22'\np3654\ng26\n(S'Variable_Type'\n(I2\nttRp3655\nsS'Y:Load 76 - CCORTE31'\np3656\ng26\n(S'Variable_Type'\n(I2\nttRp3657\nsS'Y:PMachine69 - CCASAM37'\np3658\ng26\n(S'Variable_Type'\n(I2\nttRp3659\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np3660\ng26\n(S'Variable_Type'\n(I2\nttRp3661\nsS'Y:PMachine92 - COCANA31'\np3662\ng26\n(S'Variable_Type'\n(I2\nttRp3663\nsS'Y:VBus35 - CPORTO21'\np3664\ng26\n(S'Variable_Type'\n(I2\nttRp3665\nsS'Y:PMachine122 - CVAZZI33'\np3666\ng26\n(S'Variable_Type'\n(I2\nttRp3667\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np3668\ng26\n(S'Variable_Type'\n(I1\nttRp3669\nsS'Y:PMachine63 - CCASAM31'\np3670\ng26\n(S'Variable_Type'\n(I2\nttRp3671\nsS'Y:VBus74 - CCERVI31'\np3672\ng26\n(S'Variable_Type'\n(I2\nttRp3673\nsS'Y:VBus126 - CVAZZI37'\np3674\ng26\n(S'Variable_Type'\n(I2\nttRp3675\nsS'Y:PMachine60 - CCALDA32'\np3676\ng26\n(S'Variable_Type'\n(I2\nttRp3677\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np3678\ng26\n(S'Variable_Type'\n(I1\nttRp3679\nsS'Y:VBus20 - CCERVI21'\np3680\ng26\n(S'Variable_Type'\n(I2\nttRp3681\nsS'Y:VBus119 - CTRAVO31'\np3682\ng26\n(S'Variable_Type'\n(I2\nttRp3683\nsS'Y:VBus11 - CASPRE21'\np3684\ng26\n(S'Variable_Type'\n(I2\nttRp3685\nsS'Y:VBus139 - CLUCCI310'\np3686\ng26\n(S'Variable_Type'\n(I2\nttRp3687\nsS'Y:VBus106 - CRIZZA31'\np3688\ng26\n(S'Variable_Type'\n(I2\nttRp3689\nsS'Y:PMachine66 - CCASAM34'\np3690\ng26\n(S'Variable_Type'\n(I2\nttRp3691\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np3692\ng26\n(S'Variable_Type'\n(I2\nttRp3693\nsS'Y:VBus136 - CLUCCI37'\np3694\ng26\n(S'Variable_Type'\n(I2\nttRp3695\nsS'Y:VBus90 - CMOROS31'\np3696\ng26\n(S'Variable_Type'\n(I2\nttRp3697\nsS'PV_ALL'\np3698\ng26\n(S'Variable_Type'\n(I2\nttRp3699\nsS'X:lineOff#'\np3700\ng26\n(S'Variable_Type'\n(I2\nttRp3701\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np3702\ng26\n(S'Variable_Type'\n(I2\nttRp3703\nsS'Y:VBus108 - CSAGON31'\np3704\ng26\n(S'Variable_Type'\n(I2\nttRp3705\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np3706\ng26\n(S'Variable_Type'\n(I2\nttRp3707\nsS'Y:VBus137 - CLUCCI38'\np3708\ng26\n(S'Variable_Type'\n(I2\nttRp3709\nsS'Y:VBus130 - CVAZZI311'\np3710\ng26\n(S'Variable_Type'\n(I2\nttRp3711\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np3712\ng26\n(S'Variable_Type'\n(I2\nttRp3713\nsS'Y:VBus46 - CTRAVO21'\np3714\ng26\n(S'Variable_Type'\n(I2\nttRp3715\nsS'Y:VBus113 - CSAMPO32'\np3716\ng26\n(S'Variable_Type'\n(I2\nttRp3717\nsS'Y:PMachine133 - CVAZZI314'\np3718\ng26\n(S'Variable_Type'\n(I2\nttRp3719\nsS'Y:PMachine65 - CCASAM33'\np3720\ng26\n(S'Variable_Type'\n(I2\nttRp3721\nsS'Y:VBus78 - CFURIA31'\np3722\ng26\n(S'Variable_Type'\n(I2\nttRp3723\nsS'Y:VBus26 - CGHISO21'\np3724\ng26\n(S'Variable_Type'\n(I2\nttRp3725\nsS'Y:VBus121 - CVAZZI32'\np3726\ng26\n(S'Variable_Type'\n(I2\nttRp3727\nsS'Y:PMachine97 - COCANA36'\np3728\ng26\n(S'Variable_Type'\n(I2\nttRp3729\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np3730\ng26\n(S'Variable_Type'\n(I2\nttRp3731\nsS'Y:PMachine83 - CILERO32'\np3732\ng26\n(S'Variable_Type'\n(I2\nttRp3733\nsS'Y:VBus83 - CILERO32'\np3734\ng26\n(S'Variable_Type'\n(I2\nttRp3735\nsS'Y:VBus66 - CCASAM34'\np3736\ng26\n(S'Variable_Type'\n(I2\nttRp3737\nsS'Y:PMachine1 - CBONIF11'\np3738\ng26\n(S'Variable_Type'\n(I2\nttRp3739\nsS'Y:VBus111 - CSTMAR31'\np3740\ng26\n(S'Variable_Type'\n(I2\nttRp3741\nsS'Y:VBus124 - CVAZZI35'\np3742\ng26\n(S'Variable_Type'\n(I2\nttRp3743\nsS'VAZZIO_DIESEL'\np3744\ng26\n(S'Variable_Type'\n(I2\nttRp3745\nsS'Y:PMachine131 - CVAZZI312'\np3746\ng26\n(S'Variable_Type'\n(I2\nttRp3747\nsS'Y:VBus44 - CTAGLI21'\np3748\ng26\n(S'Variable_Type'\n(I2\nttRp3749\nsS'Y:VBus88 - CLUCCI33'\np3750\ng26\n(S'Variable_Type'\n(I2\nttRp3751\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np3752\ng26\n(S'Variable_Type'\n(I1\nttRp3753\nsS'Y:VBus38 - CSAGON21'\np3754\ng26\n(S'Variable_Type'\n(I2\nttRp3755\nsS'Y:PMachine81 - CGHISO32'\np3756\ng26\n(S'Variable_Type'\n(I2\nttRp3757\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np3758\ng26\n(S'Variable_Type'\n(I2\nttRp3759\nsS'Y:VBus110 - CSTLUC31'\np3760\ng26\n(S'Variable_Type'\n(I2\nttRp3761\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np3762\ng26\n(S'Variable_Type'\n(I2\nttRp3763\nssg630\n(dp3764\nsg632\n(dp3765\ng2509\n(S'Iteration'\np3766\ng3237\ntp3767\nsg2512\n(g638\nI0\ntp3768\nsg2514\n(g3766\ng3237\ntp3769\nsg2516\n(S''\nI0\ntp3770\nsg2518\n(S''\nI0\ntp3771\nsg2520\n(NI-2\ntp3772\nsg2522\n((lI-2\ntp3773\nssg650\nF1369995428.927\nsba(iOWContexts\nContext\np3774\n(dp3775\ng20\n(lp3776\ng1272\nasg23\n(dp3777\nS'Y:PMachine134 - CLUCCI35'\np3778\ng26\n(S'Variable_Type'\n(I1\nttRp3779\nsS'Y:VBus77 - CCORTE32'\np3780\ng26\n(S'Variable_Type'\n(I2\nttRp3781\nsS'Y:VBus134 - CLUCCI35'\np3782\ng26\n(S'Variable_Type'\n(I2\nttRp3783\nsS'Y:VBus109 - CSAGON32'\np3784\ng26\n(S'Variable_Type'\n(I2\nttRp3785\nsS'Y:VBus102 - CPORTO31'\np3786\ng26\n(S'Variable_Type'\n(I2\nttRp3787\nsS'XProdEolienne%Pnom'\np3788\ng26\n(S'Variable_Type'\n(I1\nttRp3789\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np3790\ng26\n(S'Variable_Type'\n(I2\nttRp3791\nsS'Y:PMachine94 - COCANA33'\np3792\ng26\n(S'Variable_Type'\n(I2\nttRp3793\nsS'Y:VBus117 - CTOLLA32'\np3794\ng26\n(S'Variable_Type'\n(I2\nttRp3795\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np3796\ng26\n(S'Variable_Type'\n(I2\nttRp3797\nsS'Y:PMachine87 - CLUCCI32'\np3798\ng26\n(S'Variable_Type'\n(I2\nttRp3799\nsS'Y:PMachine113 - CSAMPO32'\np3800\ng26\n(S'Variable_Type'\n(I2\nttRp3801\nsS'Y:Load 84 - CLORET31'\np3802\ng26\n(S'Variable_Type'\n(I2\nttRp3803\nsS'Y:PMachine89 - CLUCCI34'\np3804\ng26\n(S'Variable_Type'\n(I1\nttRp3805\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np3806\ng26\n(S'Variable_Type'\n(I2\nttRp3807\nsS'Y:Load 80 - CGHISO31'\np3808\ng26\n(S'Variable_Type'\n(I2\nttRp3809\nsS'Y:PMachine125 - CVAZZI36'\np3810\ng26\n(S'Variable_Type'\n(I2\nttRp3811\nsS'Y:PMachine116 - CTOLLA31'\np3812\ng26\n(S'Variable_Type'\n(I2\nttRp3813\nsS'Y:PMachine88 - CLUCCI33'\np3814\ng26\n(S'Variable_Type'\n(I1\nttRp3815\nsS'Y:PMachine120 - CVAZZI31'\np3816\ng26\n(S'Variable_Type'\n(I2\nttRp3817\nsS'Y:PMachine111 - CSTMAR31'\np3818\ng26\n(S'Variable_Type'\n(I2\nttRp3819\nsS'Y:NbeTransit'\np3820\ng26\n(S'Variable_Type'\n(I1\nttRp3821\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np3822\ng26\n(S'Variable_Type'\n(I2\nttRp3823\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np3824\ng26\n(S'Variable_Type'\n(I2\nttRp3825\nsS'Y:VBus92 - COCANA31'\np3826\ng26\n(S'Variable_Type'\n(I2\nttRp3827\nsS'Y:PMachine130 - CVAZZI311'\np3828\ng26\n(S'Variable_Type'\n(I2\nttRp3829\nsS'Y:PMachine127 - CVAZZI38'\np3830\ng26\n(S'Variable_Type'\n(I2\nttRp3831\nsS'Y:VBus131 - CVAZZI312'\np3832\ng26\n(S'Variable_Type'\n(I2\nttRp3833\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np3834\ng26\n(S'Variable_Type'\n(I2\nttRp3835\nsS'Y:PMachine123 - CVAZZI34'\np3836\ng26\n(S'Variable_Type'\n(I2\nttRp3837\nsS'Y:VBus118 - CTOLLA33'\np3838\ng26\n(S'Variable_Type'\n(I2\nttRp3839\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np3840\ng26\n(S'Variable_Type'\n(I1\nttRp3841\nsS'Y:PMachine58 - CBONIF32'\np3842\ng26\n(S'Variable_Type'\n(I2\nttRp3843\nsS'Y:Load 104 - CPROPR31'\np3844\ng26\n(S'Variable_Type'\n(I2\nttRp3845\nsS'Y:PMachine30 - CLUCCI22'\np3846\ng26\n(S'Variable_Type'\n(I1\nttRp3847\nsS'Y:VBus100 - COLETT31'\np3848\ng26\n(S'Variable_Type'\n(I2\nttRp3849\nsS'Y:PProdTot'\np3850\ng26\n(S'Variable_Type'\n(I2\nttRp3851\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np3852\ng26\n(S'Variable_Type'\n(I1\nttRp3853\nsS'Y:VBus57 - CBONIF31'\np3854\ng26\n(S'Variable_Type'\n(I2\nttRp3855\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np3856\ng26\n(S'Variable_Type'\n(I2\nttRp3857\nsS'Y:PConsoTot'\np3858\ng26\n(S'Variable_Type'\n(I2\nttRp3859\nsS'Iteration'\np3860\ng26\n(S'Variable_Type'\n(I2\nttRp3861\nsS'Y:PMachine109 - CSAGON32'\np3862\ng26\n(S'Variable_Type'\n(I2\nttRp3863\nsS'Y:PMachine135 - CLUCCI36'\np3864\ng26\n(S'Variable_Type'\n(I1\nttRp3865\nsS'Y:VBus30 - CLUCCI22'\np3866\ng26\n(S'Variable_Type'\n(I2\nttRp3867\nsS'Y:VBus122 - CVAZZI33'\np3868\ng26\n(S'Variable_Type'\n(I2\nttRp3869\nsS'Y:VBus86 - CLUCCI31'\np3870\ng26\n(S'Variable_Type'\n(I2\nttRp3871\nsS'Y:PMachine102 - CPORTO31'\np3872\ng26\n(S'Variable_Type'\n(I2\nttRp3873\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np3874\ng26\n(S'Variable_Type'\n(I1\nttRp3875\nsS'Y:PMachine107 - CRIZZA32'\np3876\ng26\n(S'Variable_Type'\n(I2\nttRp3877\nsS'Y:VBus16 - CCALDA21'\np3878\ng26\n(S'Variable_Type'\n(I2\nttRp3879\nsS'Y:Load 102 - CPORTO31'\np3880\ng26\n(S'Variable_Type'\n(I2\nttRp3881\nsS'Y:VBus107 - CRIZZA32'\np3882\ng26\n(S'Variable_Type'\n(I2\nttRp3883\nsS'Y:VBus59 - CCALDA31'\np3884\ng26\n(S'Variable_Type'\n(I2\nttRp3885\nsS'Y:VBus41 - CSAMPO21'\np3886\ng26\n(S'Variable_Type'\n(I2\nttRp3887\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np3888\ng26\n(S'Variable_Type'\n(I2\nttRp3889\nsS'Y:VBus34 - CPIETR21'\np3890\ng26\n(S'Variable_Type'\n(I2\nttRp3891\nsS'Y:Load 108 - CSAGON31'\np3892\ng26\n(S'Variable_Type'\n(I2\nttRp3893\nsS'Y:VBus56 - CBIGUG32'\np3894\ng26\n(S'Variable_Type'\n(I2\nttRp3895\nsS'Y:PMachine42 - CSISCO21'\np3896\ng26\n(S'Variable_Type'\n(I2\nttRp3897\nsS'Y:PMachine138 - CLUCCI39'\np3898\ng26\n(S'Variable_Type'\n(I1\nttRp3899\nsS'Y:PMachine112 - CSAMPO31'\np3900\ng26\n(S'Variable_Type'\n(I2\nttRp3901\nsS'Y:VBus105 - CPROPR32'\np3902\ng26\n(S'Variable_Type'\n(I2\nttRp3903\nsS'Y:VBus1 - CBONIF11'\np3904\ng26\n(S'Variable_Type'\n(I2\nttRp3905\nsS'Y:VBus12 - CBASTI21'\np3906\ng26\n(S'Variable_Type'\n(I2\nttRp3907\nsS'Y:PMachine129 - CVAZZI310'\np3908\ng26\n(S'Variable_Type'\n(I2\nttRp3909\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np3910\ng26\n(S'Variable_Type'\n(I1\nttRp3911\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np3912\ng26\n(S'Variable_Type'\n(I1\nttRp3913\nsS'Y:VBus54 - CBASTI32'\np3914\ng26\n(S'Variable_Type'\n(I2\nttRp3915\nsS'Y:VBus69 - CCASAM37'\np3916\ng26\n(S'Variable_Type'\n(I2\nttRp3917\nsS'Y:VBus45 - CTOLLA21'\np3918\ng26\n(S'Variable_Type'\n(I2\nttRp3919\nsS'Y:PMachine115 - CTAGLI31'\np3920\ng26\n(S'Variable_Type'\n(I2\nttRp3921\nsS'Y:PMachine77 - CCORTE32'\np3922\ng26\n(S'Variable_Type'\n(I2\nttRp3923\nsS'Y:VBus43 - CSOVEN21'\np3924\ng26\n(S'Variable_Type'\n(I2\nttRp3925\nsS'Y:VBus76 - CCORTE31'\np3926\ng26\n(S'Variable_Type'\n(I2\nttRp3927\nsS'Y:VBus75 - CCORSC31'\np3928\ng26\n(S'Variable_Type'\n(I2\nttRp3929\nsS'Y:PMachine78 - CFURIA31'\np3930\ng26\n(S'Variable_Type'\n(I1\nttRp3931\nsS'Y:VBus127 - CVAZZI38'\np3932\ng26\n(S'Variable_Type'\n(I2\nttRp3933\nsS'Y:VBus115 - CTAGLI31'\np3934\ng26\n(S'Variable_Type'\n(I2\nttRp3935\nsS'Y:Load 61 - CCALVI31'\np3936\ng26\n(S'Variable_Type'\n(I2\nttRp3937\nsS'Y:VBus55 - CBIGUG31'\np3938\ng26\n(S'Variable_Type'\n(I2\nttRp3939\nsS'Y:Load 42 - CSISCO21'\np3940\ng26\n(S'Variable_Type'\n(I2\nttRp3941\nsS'Y:VBus72 - CCASTI31'\np3942\ng26\n(S'Variable_Type'\n(I2\nttRp3943\nsS'Y:Load 37 - CRIZZA21'\np3944\ng26\n(S'Variable_Type'\n(I2\nttRp3945\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np3946\ng26\n(S'Variable_Type'\n(I2\nttRp3947\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np3948\ng26\n(S'Variable_Type'\n(I2\nttRp3949\nsS'Y:PMachine137 - CLUCCI38'\np3950\ng26\n(S'Variable_Type'\n(I1\nttRp3951\nsS'Y:PMachine67 - CCASAM35'\np3952\ng26\n(S'Variable_Type'\n(I2\nttRp3953\nsS'INTERCOS'\np3954\ng26\n(S'Variable_Type'\n(I2\nttRp3955\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np3956\ng26\n(S'Variable_Type'\n(I1\nttRp3957\nsS'Y:VBus31 - CMOROS21'\np3958\ng26\n(S'Variable_Type'\n(I2\nttRp3959\nsS'Y:VBus103 - CPORTO32'\np3960\ng26\n(S'Variable_Type'\n(I2\nttRp3961\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np3962\ng26\n(S'Variable_Type'\n(I1\nttRp3963\nsS'Y:PMachine128 - CVAZZI39'\np3964\ng26\n(S'Variable_Type'\n(I2\nttRp3965\nsS'Y:PMachine72 - CCASTI31'\np3966\ng26\n(S'Variable_Type'\n(I2\nttRp3967\nsS'Y:VBus27 - CILERO21'\np3968\ng26\n(S'Variable_Type'\n(I2\nttRp3969\nsS'Y:PMachine75 - CCORSC31'\np3970\ng26\n(S'Variable_Type'\n(I2\nttRp3971\nsS'Y:Load 51 - CASPRE31'\np3972\ng26\n(S'Variable_Type'\n(I2\nttRp3973\nsS'Y:PMachine61 - CCALVI31'\np3974\ng26\n(S'Variable_Type'\n(I1\nttRp3975\nsS'Y:VBus51 - CASPRE31'\np3976\ng26\n(S'Variable_Type'\n(I2\nttRp3977\nsS'Y:VBus114 - CSOVEN31'\np3978\ng26\n(S'Variable_Type'\n(I2\nttRp3979\nsS'Y:Load 82 - CILERO31'\np3980\ng26\n(S'Variable_Type'\n(I2\nttRp3981\nsS'Y:VBus116 - CTOLLA31'\np3982\ng26\n(S'Variable_Type'\n(I2\nttRp3983\nsS'Y:Load 86 - CLUCCI31'\np3984\ng26\n(S'Variable_Type'\n(I2\nttRp3985\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np3986\ng26\n(S'Variable_Type'\n(I2\nttRp3987\nsS'Y:Load 57 - CBONIF31'\np3988\ng26\n(S'Variable_Type'\n(I2\nttRp3989\nsS'Y:PMachine104 - CPROPR31'\np3990\ng26\n(S'Variable_Type'\n(I2\nttRp3991\nsS'Y:VBus128 - CVAZZI39'\np3992\ng26\n(S'Variable_Type'\n(I2\nttRp3993\nsS'Y:PMachine136 - CLUCCI37'\np3994\ng26\n(S'Variable_Type'\n(I1\nttRp3995\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np3996\ng26\n(S'Variable_Type'\n(I2\nttRp3997\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np3998\ng26\n(S'Variable_Type'\n(I2\nttRp3999\nsS'Y:PMachine68 - CCASAM36'\np4000\ng26\n(S'Variable_Type'\n(I2\nttRp4001\nsS'Y:PMachine29 - CLUCCI21'\np4002\ng26\n(S'Variable_Type'\n(I1\nttRp4003\nsS'Y:VBus42 - CSISCO21'\np4004\ng26\n(S'Variable_Type'\n(I2\nttRp4005\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np4006\ng26\n(S'Variable_Type'\n(I1\nttRp4007\nsS'Y:VBus14 - CBONIF21'\np4008\ng26\n(S'Variable_Type'\n(I2\nttRp4009\nsS'Y:VBus73 - CCASTI32'\np4010\ng26\n(S'Variable_Type'\n(I2\nttRp4011\nsS'Y:VBus64 - CCASAM32'\np4012\ng26\n(S'Variable_Type'\n(I2\nttRp4013\nsS'Y:PMachine14 - CBONIF21'\np4014\ng26\n(S'Variable_Type'\n(I1\nttRp4015\nsS'Y:PMachine62 - CCALVI32'\np4016\ng26\n(S'Variable_Type'\n(I2\nttRp4017\nsS'Y:VBus133 - CVAZZI314'\np4018\ng26\n(S'Variable_Type'\n(I2\nttRp4019\nsS'Y:VBus63 - CCASAM31'\np4020\ng26\n(S'Variable_Type'\n(I2\nttRp4021\nsS'Y:PMachine101 - CPIETR31'\np4022\ng26\n(S'Variable_Type'\n(I2\nttRp4023\nsS'Y:%Losses'\np4024\ng26\n(S'Variable_Type'\n(I2\nttRp4025\nsS'Y:VBus85 - CLORET32'\np4026\ng26\n(S'Variable_Type'\n(I2\nttRp4027\nsS'Y:Load 59 - CCALDA31'\np4028\ng26\n(S'Variable_Type'\n(I2\nttRp4029\nsS'Y:VBus129 - CVAZZI310'\np4030\ng26\n(S'Variable_Type'\n(I2\nttRp4031\nsS'Y:VBus101 - CPIETR31'\np4032\ng26\n(S'Variable_Type'\n(I2\nttRp4033\nsS'Y:PMachine106 - CRIZZA31'\np4034\ng26\n(S'Variable_Type'\n(I2\nttRp4035\nsS'Y:VBus132 - CVAZZI313'\np4036\ng26\n(S'Variable_Type'\n(I2\nttRp4037\nsS'Y:PMachine118 - CTOLLA33'\np4038\ng26\n(S'Variable_Type'\n(I2\nttRp4039\nsS'Y:VBus19 - CCASTI21'\np4040\ng26\n(S'Variable_Type'\n(I2\nttRp4041\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np4042\ng26\n(S'Variable_Type'\n(I2\nttRp4043\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np4044\ng26\n(S'Variable_Type'\n(I1\nttRp4045\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np4046\ng26\n(S'Variable_Type'\n(I2\nttRp4047\nsS'Y:Load 115 - CTAGLI31'\np4048\ng26\n(S'Variable_Type'\n(I2\nttRp4049\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np4050\ng26\n(S'Variable_Type'\n(I2\nttRp4051\nsS'Y:VBus79 - CFURIA32'\np4052\ng26\n(S'Variable_Type'\n(I2\nttRp4053\nsS'Y:PMachine47 - CVAZZI21'\np4054\ng26\n(S'Variable_Type'\n(I1\nttRp4055\nsS'Y:VBus123 - CVAZZI34'\np4056\ng26\n(S'Variable_Type'\n(I2\nttRp4057\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np4058\ng26\n(S'Variable_Type'\n(I2\nttRp4059\nsS'Y:VBus60 - CCALDA32'\np4060\ng26\n(S'Variable_Type'\n(I2\nttRp4061\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np4062\ng26\n(S'Variable_Type'\n(I2\nttRp4063\nsS'Y:VBus65 - CCASAM33'\np4064\ng26\n(S'Variable_Type'\n(I2\nttRp4065\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np4066\ng26\n(S'Variable_Type'\n(I1\nttRp4067\nsS'Y:PMachine139 - CLUCCI310'\np4068\ng26\n(S'Variable_Type'\n(I1\nttRp4069\nsS'Y:VBus112 - CSAMPO31'\np4070\ng26\n(S'Variable_Type'\n(I2\nttRp4071\nsS'Y:VBus68 - CCASAM36'\np4072\ng26\n(S'Variable_Type'\n(I2\nttRp4073\nsS'Y:Load 55 - CBIGUG31'\np4074\ng26\n(S'Variable_Type'\n(I2\nttRp4075\nsS'Y:PMachine53 - CBASTI31'\np4076\ng26\n(S'Variable_Type'\n(I2\nttRp4077\nsS'Y:NbeTransit_0.9-1'\np4078\ng26\n(S'Variable_Type'\n(I1\nttRp4079\nsS'Y:VBus24 - CFURIA21'\np4080\ng26\n(S'Variable_Type'\n(I2\nttRp4081\nsS'Y:VBus23 - CCORTE22'\np4082\ng26\n(S'Variable_Type'\n(I2\nttRp4083\nsS'Y:VBus18 - CCASAM21'\np4084\ng26\n(S'Variable_Type'\n(I2\nttRp4085\nsS'Y:VBus40 - CSTMAR21'\np4086\ng26\n(S'Variable_Type'\n(I2\nttRp4087\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np4088\ng26\n(S'Variable_Type'\n(I2\nttRp4089\nsS'Y:PMachine124 - CVAZZI35'\np4090\ng26\n(S'Variable_Type'\n(I2\nttRp4091\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np4092\ng26\n(S'Variable_Type'\n(I2\nttRp4093\nsS'Y:PMachine117 - CTOLLA32'\np4094\ng26\n(S'Variable_Type'\n(I2\nttRp4095\nsS'Y:VBus89 - CLUCCI34'\np4096\ng26\n(S'Variable_Type'\n(I2\nttRp4097\nsS'Y:VBus33 - COLETT21'\np4098\ng26\n(S'Variable_Type'\n(I2\nttRp4099\nsS'Y:VBus32 - COCANA21'\np4100\ng26\n(S'Variable_Type'\n(I2\nttRp4101\nsS'Y:PMachine121 - CVAZZI32'\np4102\ng26\n(S'Variable_Type'\n(I2\nttRp4103\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np4104\ng26\n(S'Variable_Type'\n(I1\nttRp4105\nsS'Y:VBus82 - CILERO31'\np4106\ng26\n(S'Variable_Type'\n(I2\nttRp4107\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np4108\ng26\n(S'Variable_Type'\n(I2\nttRp4109\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np4110\ng26\n(S'Variable_Type'\n(I2\nttRp4111\nsS'Y:VBus37 - CRIZZA21'\np4112\ng26\n(S'Variable_Type'\n(I2\nttRp4113\nsS'Y:PMachine73 - CCASTI32'\np4114\ng26\n(S'Variable_Type'\n(I2\nttRp4115\nsS'Y:PMachine86 - CLUCCI31'\np4116\ng26\n(S'Variable_Type'\n(I2\nttRp4117\nsS'Y:Load 53 - CBASTI31'\np4118\ng26\n(S'Variable_Type'\n(I2\nttRp4119\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np4120\ng26\n(S'Variable_Type'\n(I2\nttRp4121\nsS'Y:VBus21 - CCORSC21'\np4122\ng26\n(S'Variable_Type'\n(I2\nttRp4123\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np4124\ng26\n(S'Variable_Type'\n(I2\nttRp4125\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np4126\ng26\n(S'Variable_Type'\n(I2\nttRp4127\nsS'Y:PMachine126 - CVAZZI37'\np4128\ng26\n(S'Variable_Type'\n(I2\nttRp4129\nsS'Y:PMachine64 - CCASAM32'\np4130\ng26\n(S'Variable_Type'\n(I2\nttRp4131\nsS'Y:VBus67 - CCASAM35'\np4132\ng26\n(S'Variable_Type'\n(I2\nttRp4133\nsS'Y:VBus53 - CBASTI31'\np4134\ng26\n(S'Variable_Type'\n(I2\nttRp4135\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np4136\ng26\n(S'Variable_Type'\n(I2\nttRp4137\nsS'Y:VBus61 - CCALVI31'\np4138\ng26\n(S'Variable_Type'\n(I2\nttRp4139\nsS'Y:VBus93 - COCANA32'\np4140\ng26\n(S'Variable_Type'\n(I2\nttRp4141\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np4142\ng26\n(S'Variable_Type'\n(I2\nttRp4143\nsS'Y:VBus104 - CPROPR31'\np4144\ng26\n(S'Variable_Type'\n(I2\nttRp4145\nsS'Y:VBus22 - CCORTE21'\np4146\ng26\n(S'Variable_Type'\n(I2\nttRp4147\nsS'Y:VBus48 - CZSSS621'\np4148\ng26\n(S'Variable_Type'\n(I2\nttRp4149\nsS'Y:PMachine85 - CLORET32'\np4150\ng26\n(S'Variable_Type'\n(I2\nttRp4151\nsS'Y:Max%A'\np4152\ng26\n(S'Variable_Type'\n(I2\nttRp4153\nsS'Y:VBus36 - CPROPR21'\np4154\ng26\n(S'Variable_Type'\n(I2\nttRp4155\nsS'Y:Load 100 - COLETT31'\np4156\ng26\n(S'Variable_Type'\n(I2\nttRp4157\nsS'Y:PMachine54 - CBASTI32'\np4158\ng26\n(S'Variable_Type'\n(I2\nttRp4159\nsS'Y:VBus138 - CLUCCI39'\np4160\ng26\n(S'Variable_Type'\n(I2\nttRp4161\nsS'Y:VBus39 - CSTLUC21'\np4162\ng26\n(S'Variable_Type'\n(I2\nttRp4163\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np4164\ng26\n(S'Variable_Type'\n(I2\nttRp4165\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np4166\ng26\n(S'Variable_Type'\n(I2\nttRp4167\nsS'Y:Load 78 - CFURIA31'\np4168\ng26\n(S'Variable_Type'\n(I2\nttRp4169\nsS'Y:Load 74 - CCERVI31'\np4170\ng26\n(S'Variable_Type'\n(I2\nttRp4171\nsS'Y:VBus28 - CLORET21'\np4172\ng26\n(S'Variable_Type'\n(I2\nttRp4173\nsS'Y:PMachine105 - CPROPR32'\np4174\ng26\n(S'Variable_Type'\n(I2\nttRp4175\nsS'Y:VBus96 - COCANA35'\np4176\ng26\n(S'Variable_Type'\n(I2\nttRp4177\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np4178\ng26\n(S'Variable_Type'\n(I1\nttRp4179\nsS'Y:PMachine18 - CCASAM21'\np4180\ng26\n(S'Variable_Type'\n(I1\nttRp4181\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np4182\ng26\n(S'Variable_Type'\n(I2\nttRp4183\nsS'Y:VBus13 - CBIGUG21'\np4184\ng26\n(S'Variable_Type'\n(I2\nttRp4185\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np4186\ng26\n(S'Variable_Type'\n(I2\nttRp4187\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np4188\ng26\n(S'Variable_Type'\n(I2\nttRp4189\nsS'Y:VBus29 - CLUCCI21'\np4190\ng26\n(S'Variable_Type'\n(I2\nttRp4191\nsS'Y:VBus58 - CBONIF32'\np4192\ng26\n(S'Variable_Type'\n(I2\nttRp4193\nsS'Y:VBus84 - CLORET31'\np4194\ng26\n(S'Variable_Type'\n(I2\nttRp4195\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np4196\ng26\n(S'Variable_Type'\n(I1\nttRp4197\nsS'Y:VBus97 - COCANA36'\np4198\ng26\n(S'Variable_Type'\n(I2\nttRp4199\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np4200\ng26\n(S'Variable_Type'\n(I1\nttRp4201\nsS'Y:VBus15 - CBONIF22'\np4202\ng26\n(S'Variable_Type'\n(I2\nttRp4203\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np4204\ng26\n(S'Variable_Type'\n(I2\nttRp4205\nsS'Y:Load 110 - CSTLUC31'\np4206\ng26\n(S'Variable_Type'\n(I2\nttRp4207\nsS'Y:VBus80 - CGHISO31'\np4208\ng26\n(S'Variable_Type'\n(I2\nttRp4209\nsS'Y:PMachine114 - CSOVEN31'\np4210\ng26\n(S'Variable_Type'\n(I2\nttRp4211\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np4212\ng26\n(S'Variable_Type'\n(I1\nttRp4213\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np4214\ng26\n(S'Variable_Type'\n(I2\nttRp4215\nsS'Y:PMachine93 - COCANA32'\np4216\ng26\n(S'Variable_Type'\n(I2\nttRp4217\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np4218\ng26\n(S'Variable_Type'\n(I1\nttRp4219\nsS'Y:VBus87 - CLUCCI32'\np4220\ng26\n(S'Variable_Type'\n(I2\nttRp4221\nsS'Y:VBus62 - CCALVI32'\np4222\ng26\n(S'Variable_Type'\n(I2\nttRp4223\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np4224\ng26\n(S'Variable_Type'\n(I1\nttRp4225\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np4226\ng26\n(S'Variable_Type'\n(I1\nttRp4227\nsS'Y:VBus81 - CGHISO32'\np4228\ng26\n(S'Variable_Type'\n(I2\nttRp4229\nsS'Y:PMachine74 - CCERVI31'\np4230\ng26\n(S'Variable_Type'\n(I2\nttRp4231\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np4232\ng26\n(S'Variable_Type'\n(I2\nttRp4233\nsS'EOL_ALL'\np4234\ng26\n(S'Variable_Type'\n(I2\nttRp4235\nsS'X:Load(pu)'\np4236\ng26\n(S'Variable_Type'\n(I2\nttRp4237\nsS'Y:NbeTension'\np4238\ng26\n(S'Variable_Type'\n(I2\nttRp4239\nsS'Y:VBus95 - COCANA34'\np4240\ng26\n(S'Variable_Type'\n(I2\nttRp4241\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np4242\ng26\n(S'Variable_Type'\n(I2\nttRp4243\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np4244\ng26\n(S'Variable_Type'\n(I2\nttRp4245\nsS'Y:Load 95 - COCANA34'\np4246\ng26\n(S'Variable_Type'\n(I2\nttRp4247\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np4248\ng26\n(S'Variable_Type'\n(I1\nttRp4249\nsS'Y:PMachine90 - CMOROS31'\np4250\ng26\n(S'Variable_Type'\n(I2\nttRp4251\nsS'Y:Load 101 - CPIETR31'\np4252\ng26\n(S'Variable_Type'\n(I2\nttRp4253\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np4254\ng26\n(S'Variable_Type'\n(I1\nttRp4255\nsS'Y:PMachine132 - CVAZZI313'\np4256\ng26\n(S'Variable_Type'\n(I2\nttRp4257\nsS'Y:VBus125 - CVAZZI36'\np4258\ng26\n(S'Variable_Type'\n(I2\nttRp4259\nsS'Y:VBus135 - CLUCCI36'\np4260\ng26\n(S'Variable_Type'\n(I2\nttRp4261\nsS'Y:VBus47 - CVAZZI21'\np4262\ng26\n(S'Variable_Type'\n(I2\nttRp4263\nsS'Y:VBus94 - COCANA33'\np4264\ng26\n(S'Variable_Type'\n(I2\nttRp4265\nsS'Y:VBus17 - CCALVI21'\np4266\ng26\n(S'Variable_Type'\n(I2\nttRp4267\nsS'Y:Load 90 - CMOROS31'\np4268\ng26\n(S'Variable_Type'\n(I2\nttRp4269\nsS'Y:VBus120 - CVAZZI31'\np4270\ng26\n(S'Variable_Type'\n(I2\nttRp4271\nsS'X:ProdPV%Pnom'\np4272\ng26\n(S'Variable_Type'\n(I2\nttRp4273\nsS'Y:VBus52 - CASPRE32'\np4274\ng26\n(S'Variable_Type'\n(I2\nttRp4275\nsS'Y:VBus25 - CFURIA22'\np4276\ng26\n(S'Variable_Type'\n(I2\nttRp4277\nsS'Y:Load 76 - CCORTE31'\np4278\ng26\n(S'Variable_Type'\n(I2\nttRp4279\nsS'Y:PMachine69 - CCASAM37'\np4280\ng26\n(S'Variable_Type'\n(I2\nttRp4281\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np4282\ng26\n(S'Variable_Type'\n(I2\nttRp4283\nsS'Y:PMachine92 - COCANA31'\np4284\ng26\n(S'Variable_Type'\n(I2\nttRp4285\nsS'Y:VBus35 - CPORTO21'\np4286\ng26\n(S'Variable_Type'\n(I2\nttRp4287\nsS'Y:PMachine122 - CVAZZI33'\np4288\ng26\n(S'Variable_Type'\n(I2\nttRp4289\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np4290\ng26\n(S'Variable_Type'\n(I1\nttRp4291\nsS'Y:PMachine63 - CCASAM31'\np4292\ng26\n(S'Variable_Type'\n(I2\nttRp4293\nsS'Y:VBus74 - CCERVI31'\np4294\ng26\n(S'Variable_Type'\n(I2\nttRp4295\nsS'Y:VBus126 - CVAZZI37'\np4296\ng26\n(S'Variable_Type'\n(I2\nttRp4297\nsS'Y:PMachine60 - CCALDA32'\np4298\ng26\n(S'Variable_Type'\n(I2\nttRp4299\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np4300\ng26\n(S'Variable_Type'\n(I1\nttRp4301\nsS'Y:VBus20 - CCERVI21'\np4302\ng26\n(S'Variable_Type'\n(I2\nttRp4303\nsS'Y:VBus119 - CTRAVO31'\np4304\ng26\n(S'Variable_Type'\n(I2\nttRp4305\nsS'Y:VBus11 - CASPRE21'\np4306\ng26\n(S'Variable_Type'\n(I2\nttRp4307\nsS'Y:VBus139 - CLUCCI310'\np4308\ng26\n(S'Variable_Type'\n(I2\nttRp4309\nsS'Y:VBus106 - CRIZZA31'\np4310\ng26\n(S'Variable_Type'\n(I2\nttRp4311\nsS'Y:PMachine66 - CCASAM34'\np4312\ng26\n(S'Variable_Type'\n(I2\nttRp4313\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np4314\ng26\n(S'Variable_Type'\n(I2\nttRp4315\nsS'Y:VBus136 - CLUCCI37'\np4316\ng26\n(S'Variable_Type'\n(I2\nttRp4317\nsS'Y:VBus90 - CMOROS31'\np4318\ng26\n(S'Variable_Type'\n(I2\nttRp4319\nsS'PV_ALL'\np4320\ng26\n(S'Variable_Type'\n(I2\nttRp4321\nsS'X:lineOff#'\np4322\ng26\n(S'Variable_Type'\n(I2\nttRp4323\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np4324\ng26\n(S'Variable_Type'\n(I2\nttRp4325\nsS'Y:VBus108 - CSAGON31'\np4326\ng26\n(S'Variable_Type'\n(I2\nttRp4327\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np4328\ng26\n(S'Variable_Type'\n(I2\nttRp4329\nsS'Y:VBus137 - CLUCCI38'\np4330\ng26\n(S'Variable_Type'\n(I2\nttRp4331\nsS'Y:VBus130 - CVAZZI311'\np4332\ng26\n(S'Variable_Type'\n(I2\nttRp4333\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np4334\ng26\n(S'Variable_Type'\n(I2\nttRp4335\nsS'Y:VBus46 - CTRAVO21'\np4336\ng26\n(S'Variable_Type'\n(I2\nttRp4337\nsS'Y:VBus113 - CSAMPO32'\np4338\ng26\n(S'Variable_Type'\n(I2\nttRp4339\nsS'Y:PMachine133 - CVAZZI314'\np4340\ng26\n(S'Variable_Type'\n(I2\nttRp4341\nsS'Y:PMachine65 - CCASAM33'\np4342\ng26\n(S'Variable_Type'\n(I2\nttRp4343\nsS'Y:VBus78 - CFURIA31'\np4344\ng26\n(S'Variable_Type'\n(I2\nttRp4345\nsS'Y:VBus26 - CGHISO21'\np4346\ng26\n(S'Variable_Type'\n(I2\nttRp4347\nsS'Y:VBus121 - CVAZZI32'\np4348\ng26\n(S'Variable_Type'\n(I2\nttRp4349\nsS'Y:PMachine97 - COCANA36'\np4350\ng26\n(S'Variable_Type'\n(I2\nttRp4351\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np4352\ng26\n(S'Variable_Type'\n(I2\nttRp4353\nsS'Y:PMachine83 - CILERO32'\np4354\ng26\n(S'Variable_Type'\n(I2\nttRp4355\nsS'Y:VBus83 - CILERO32'\np4356\ng26\n(S'Variable_Type'\n(I2\nttRp4357\nsS'Y:VBus66 - CCASAM34'\np4358\ng26\n(S'Variable_Type'\n(I2\nttRp4359\nsS'Y:PMachine1 - CBONIF11'\np4360\ng26\n(S'Variable_Type'\n(I2\nttRp4361\nsS'Y:VBus111 - CSTMAR31'\np4362\ng26\n(S'Variable_Type'\n(I2\nttRp4363\nsS'Y:VBus124 - CVAZZI35'\np4364\ng26\n(S'Variable_Type'\n(I2\nttRp4365\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np4366\ng26\n(S'Variable_Type'\n(I2\nttRp4367\nsS'Y:PMachine131 - CVAZZI312'\np4368\ng26\n(S'Variable_Type'\n(I2\nttRp4369\nsS'Y:VBus44 - CTAGLI21'\np4370\ng26\n(S'Variable_Type'\n(I2\nttRp4371\nsS'Y:VBus88 - CLUCCI33'\np4372\ng26\n(S'Variable_Type'\n(I2\nttRp4373\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np4374\ng26\n(S'Variable_Type'\n(I1\nttRp4375\nsS'Y:VBus38 - CSAGON21'\np4376\ng26\n(S'Variable_Type'\n(I2\nttRp4377\nsS'Y:PMachine81 - CGHISO32'\np4378\ng26\n(S'Variable_Type'\n(I2\nttRp4379\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np4380\ng26\n(S'Variable_Type'\n(I2\nttRp4381\nsS'Y:VBus110 - CSTLUC31'\np4382\ng26\n(S'Variable_Type'\n(I2\nttRp4383\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np4384\ng26\n(S'Variable_Type'\n(I2\nttRp4385\nssg630\n(dp4386\nsg632\n(dp4387\ng2509\n(S'Iteration'\np4388\ng3861\ntp4389\nsg2512\n(g638\nI0\ntp4390\nsg2514\n(g4388\ng3861\ntp4391\nsg2516\n(S''\nI0\ntp4392\nsg2518\n(S''\nI0\ntp4393\nsg2520\n(NI-2\ntp4394\nsg2522\n((lI-2\ntp4395\nssg650\nF1369995226.5469999\nsba(iOWContexts\nContext\np4396\n(dp4397\ng20\n(lp4398\ng1272\nasg23\n(dp4399\nS'Y:PMachine134 - CLUCCI35'\np4400\ng26\n(S'Variable_Type'\n(I1\nttRp4401\nsS'Y:VBus77 - CCORTE32'\np4402\ng26\n(S'Variable_Type'\n(I2\nttRp4403\nsS'Y:VBus134 - CLUCCI35'\np4404\ng26\n(S'Variable_Type'\n(I2\nttRp4405\nsS'Y:VBus109 - CSAGON32'\np4406\ng26\n(S'Variable_Type'\n(I2\nttRp4407\nsS'Y:VBus102 - CPORTO31'\np4408\ng26\n(S'Variable_Type'\n(I2\nttRp4409\nsS'XProdEolienne%Pnom'\np4410\ng26\n(S'Variable_Type'\n(I1\nttRp4411\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np4412\ng26\n(S'Variable_Type'\n(I2\nttRp4413\nsS'Y:PMachine94 - COCANA33'\np4414\ng26\n(S'Variable_Type'\n(I2\nttRp4415\nsS'Y:VBus117 - CTOLLA32'\np4416\ng26\n(S'Variable_Type'\n(I2\nttRp4417\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np4418\ng26\n(S'Variable_Type'\n(I2\nttRp4419\nsS'Y:PMachine87 - CLUCCI32'\np4420\ng26\n(S'Variable_Type'\n(I2\nttRp4421\nsS'Y:PMachine113 - CSAMPO32'\np4422\ng26\n(S'Variable_Type'\n(I2\nttRp4423\nsS'Y:Load 84 - CLORET31'\np4424\ng26\n(S'Variable_Type'\n(I2\nttRp4425\nsS'Y:PMachine89 - CLUCCI34'\np4426\ng26\n(S'Variable_Type'\n(I1\nttRp4427\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np4428\ng26\n(S'Variable_Type'\n(I2\nttRp4429\nsS'Y:Load 80 - CGHISO31'\np4430\ng26\n(S'Variable_Type'\n(I2\nttRp4431\nsS'Y:PMachine125 - CVAZZI36'\np4432\ng26\n(S'Variable_Type'\n(I2\nttRp4433\nsS'Y:PMachine116 - CTOLLA31'\np4434\ng26\n(S'Variable_Type'\n(I2\nttRp4435\nsS'Y:PMachine88 - CLUCCI33'\np4436\ng26\n(S'Variable_Type'\n(I1\nttRp4437\nsS'Y:PMachine120 - CVAZZI31'\np4438\ng26\n(S'Variable_Type'\n(I2\nttRp4439\nsS'Y:PMachine111 - CSTMAR31'\np4440\ng26\n(S'Variable_Type'\n(I2\nttRp4441\nsS'Y:NbeTransit'\np4442\ng26\n(S'Variable_Type'\n(I1\nttRp4443\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np4444\ng26\n(S'Variable_Type'\n(I2\nttRp4445\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np4446\ng26\n(S'Variable_Type'\n(I2\nttRp4447\nsS'Y:VBus92 - COCANA31'\np4448\ng26\n(S'Variable_Type'\n(I2\nttRp4449\nsS'Y:PMachine130 - CVAZZI311'\np4450\ng26\n(S'Variable_Type'\n(I2\nttRp4451\nsS'Y:PMachine127 - CVAZZI38'\np4452\ng26\n(S'Variable_Type'\n(I2\nttRp4453\nsS'Y:VBus131 - CVAZZI312'\np4454\ng26\n(S'Variable_Type'\n(I2\nttRp4455\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np4456\ng26\n(S'Variable_Type'\n(I2\nttRp4457\nsS'Y:PMachine123 - CVAZZI34'\np4458\ng26\n(S'Variable_Type'\n(I2\nttRp4459\nsS'Y:VBus118 - CTOLLA33'\np4460\ng26\n(S'Variable_Type'\n(I2\nttRp4461\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np4462\ng26\n(S'Variable_Type'\n(I1\nttRp4463\nsS'Y:PMachine58 - CBONIF32'\np4464\ng26\n(S'Variable_Type'\n(I2\nttRp4465\nsS'Y:Load 104 - CPROPR31'\np4466\ng26\n(S'Variable_Type'\n(I2\nttRp4467\nsS'Y:PMachine30 - CLUCCI22'\np4468\ng26\n(S'Variable_Type'\n(I1\nttRp4469\nsS'Y:VBus100 - COLETT31'\np4470\ng26\n(S'Variable_Type'\n(I2\nttRp4471\nsS'Y:PProdTot'\np4472\ng26\n(S'Variable_Type'\n(I2\nttRp4473\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np4474\ng26\n(S'Variable_Type'\n(I1\nttRp4475\nsS'Y:VBus57 - CBONIF31'\np4476\ng26\n(S'Variable_Type'\n(I2\nttRp4477\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np4478\ng26\n(S'Variable_Type'\n(I2\nttRp4479\nsS'Y:PConsoTot'\np4480\ng26\n(S'Variable_Type'\n(I2\nttRp4481\nsS'Iteration'\np4482\ng26\n(S'Variable_Type'\n(I2\nttRp4483\nsS'Y:PMachine109 - CSAGON32'\np4484\ng26\n(S'Variable_Type'\n(I2\nttRp4485\nsS'Y:PMachine135 - CLUCCI36'\np4486\ng26\n(S'Variable_Type'\n(I1\nttRp4487\nsS'Y:VBus30 - CLUCCI22'\np4488\ng26\n(S'Variable_Type'\n(I2\nttRp4489\nsS'Y:VBus122 - CVAZZI33'\np4490\ng26\n(S'Variable_Type'\n(I2\nttRp4491\nsS'Y:VBus86 - CLUCCI31'\np4492\ng26\n(S'Variable_Type'\n(I2\nttRp4493\nsS'Y:PMachine102 - CPORTO31'\np4494\ng26\n(S'Variable_Type'\n(I2\nttRp4495\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np4496\ng26\n(S'Variable_Type'\n(I1\nttRp4497\nsS'Y:PMachine107 - CRIZZA32'\np4498\ng26\n(S'Variable_Type'\n(I2\nttRp4499\nsS'Y:VBus16 - CCALDA21'\np4500\ng26\n(S'Variable_Type'\n(I2\nttRp4501\nsS'Y:Load 102 - CPORTO31'\np4502\ng26\n(S'Variable_Type'\n(I2\nttRp4503\nsS'Y:VBus107 - CRIZZA32'\np4504\ng26\n(S'Variable_Type'\n(I2\nttRp4505\nsS'Y:VBus59 - CCALDA31'\np4506\ng26\n(S'Variable_Type'\n(I2\nttRp4507\nsS'Y:VBus41 - CSAMPO21'\np4508\ng26\n(S'Variable_Type'\n(I2\nttRp4509\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np4510\ng26\n(S'Variable_Type'\n(I2\nttRp4511\nsS'Y:VBus34 - CPIETR21'\np4512\ng26\n(S'Variable_Type'\n(I2\nttRp4513\nsS'Y:Load 108 - CSAGON31'\np4514\ng26\n(S'Variable_Type'\n(I2\nttRp4515\nsS'Y:VBus56 - CBIGUG32'\np4516\ng26\n(S'Variable_Type'\n(I2\nttRp4517\nsS'Y:PMachine42 - CSISCO21'\np4518\ng26\n(S'Variable_Type'\n(I2\nttRp4519\nsS'Y:PMachine138 - CLUCCI39'\np4520\ng26\n(S'Variable_Type'\n(I1\nttRp4521\nsS'Y:PMachine112 - CSAMPO31'\np4522\ng26\n(S'Variable_Type'\n(I2\nttRp4523\nsS'Y:VBus105 - CPROPR32'\np4524\ng26\n(S'Variable_Type'\n(I2\nttRp4525\nsS'Y:VBus1 - CBONIF11'\np4526\ng26\n(S'Variable_Type'\n(I2\nttRp4527\nsS'Y:VBus12 - CBASTI21'\np4528\ng26\n(S'Variable_Type'\n(I2\nttRp4529\nsS'Y:PMachine129 - CVAZZI310'\np4530\ng26\n(S'Variable_Type'\n(I2\nttRp4531\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np4532\ng26\n(S'Variable_Type'\n(I1\nttRp4533\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np4534\ng26\n(S'Variable_Type'\n(I1\nttRp4535\nsS'Y:VBus54 - CBASTI32'\np4536\ng26\n(S'Variable_Type'\n(I2\nttRp4537\nsS'Y:VBus69 - CCASAM37'\np4538\ng26\n(S'Variable_Type'\n(I2\nttRp4539\nsS'Y:VBus45 - CTOLLA21'\np4540\ng26\n(S'Variable_Type'\n(I2\nttRp4541\nsS'Y:PMachine115 - CTAGLI31'\np4542\ng26\n(S'Variable_Type'\n(I2\nttRp4543\nsS'Y:PMachine77 - CCORTE32'\np4544\ng26\n(S'Variable_Type'\n(I2\nttRp4545\nsS'Y:VBus43 - CSOVEN21'\np4546\ng26\n(S'Variable_Type'\n(I2\nttRp4547\nsS'Y:VBus76 - CCORTE31'\np4548\ng26\n(S'Variable_Type'\n(I2\nttRp4549\nsS'Y:VBus75 - CCORSC31'\np4550\ng26\n(S'Variable_Type'\n(I2\nttRp4551\nsS'Y:PMachine78 - CFURIA31'\np4552\ng26\n(S'Variable_Type'\n(I1\nttRp4553\nsS'Y:VBus127 - CVAZZI38'\np4554\ng26\n(S'Variable_Type'\n(I2\nttRp4555\nsS'Y:VBus115 - CTAGLI31'\np4556\ng26\n(S'Variable_Type'\n(I2\nttRp4557\nsS'Y:Load 61 - CCALVI31'\np4558\ng26\n(S'Variable_Type'\n(I2\nttRp4559\nsS'Y:VBus55 - CBIGUG31'\np4560\ng26\n(S'Variable_Type'\n(I2\nttRp4561\nsS'Y:Load 42 - CSISCO21'\np4562\ng26\n(S'Variable_Type'\n(I2\nttRp4563\nsS'Y:VBus72 - CCASTI31'\np4564\ng26\n(S'Variable_Type'\n(I2\nttRp4565\nsS'Y:Load 37 - CRIZZA21'\np4566\ng26\n(S'Variable_Type'\n(I2\nttRp4567\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np4568\ng26\n(S'Variable_Type'\n(I2\nttRp4569\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np4570\ng26\n(S'Variable_Type'\n(I2\nttRp4571\nsS'Y:PMachine137 - CLUCCI38'\np4572\ng26\n(S'Variable_Type'\n(I1\nttRp4573\nsS'Y:PMachine67 - CCASAM35'\np4574\ng26\n(S'Variable_Type'\n(I2\nttRp4575\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np4576\ng26\n(S'Variable_Type'\n(I1\nttRp4577\nsS'Y:VBus31 - CMOROS21'\np4578\ng26\n(S'Variable_Type'\n(I2\nttRp4579\nsS'Y:VBus103 - CPORTO32'\np4580\ng26\n(S'Variable_Type'\n(I2\nttRp4581\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np4582\ng26\n(S'Variable_Type'\n(I1\nttRp4583\nsS'Y:PMachine128 - CVAZZI39'\np4584\ng26\n(S'Variable_Type'\n(I2\nttRp4585\nsS'Y:PMachine72 - CCASTI31'\np4586\ng26\n(S'Variable_Type'\n(I2\nttRp4587\nsS'Y:VBus27 - CILERO21'\np4588\ng26\n(S'Variable_Type'\n(I2\nttRp4589\nsS'Y:PMachine75 - CCORSC31'\np4590\ng26\n(S'Variable_Type'\n(I2\nttRp4591\nsS'Y:Load 51 - CASPRE31'\np4592\ng26\n(S'Variable_Type'\n(I2\nttRp4593\nsS'Y:PMachine61 - CCALVI31'\np4594\ng26\n(S'Variable_Type'\n(I1\nttRp4595\nsS'Y:VBus51 - CASPRE31'\np4596\ng26\n(S'Variable_Type'\n(I2\nttRp4597\nsS'Y:VBus114 - CSOVEN31'\np4598\ng26\n(S'Variable_Type'\n(I2\nttRp4599\nsS'Y:Load 82 - CILERO31'\np4600\ng26\n(S'Variable_Type'\n(I2\nttRp4601\nsS'Y:VBus116 - CTOLLA31'\np4602\ng26\n(S'Variable_Type'\n(I2\nttRp4603\nsS'Y:Load 86 - CLUCCI31'\np4604\ng26\n(S'Variable_Type'\n(I2\nttRp4605\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np4606\ng26\n(S'Variable_Type'\n(I2\nttRp4607\nsS'Y:Load 57 - CBONIF31'\np4608\ng26\n(S'Variable_Type'\n(I2\nttRp4609\nsS'Y:PMachine104 - CPROPR31'\np4610\ng26\n(S'Variable_Type'\n(I2\nttRp4611\nsS'Y:VBus128 - CVAZZI39'\np4612\ng26\n(S'Variable_Type'\n(I2\nttRp4613\nsS'Y:PMachine136 - CLUCCI37'\np4614\ng26\n(S'Variable_Type'\n(I1\nttRp4615\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np4616\ng26\n(S'Variable_Type'\n(I2\nttRp4617\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np4618\ng26\n(S'Variable_Type'\n(I2\nttRp4619\nsS'Y:PMachine68 - CCASAM36'\np4620\ng26\n(S'Variable_Type'\n(I2\nttRp4621\nsS'Y:PMachine29 - CLUCCI21'\np4622\ng26\n(S'Variable_Type'\n(I1\nttRp4623\nsS'Y:VBus42 - CSISCO21'\np4624\ng26\n(S'Variable_Type'\n(I2\nttRp4625\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np4626\ng26\n(S'Variable_Type'\n(I1\nttRp4627\nsS'Y:VBus14 - CBONIF21'\np4628\ng26\n(S'Variable_Type'\n(I2\nttRp4629\nsS'Y:VBus73 - CCASTI32'\np4630\ng26\n(S'Variable_Type'\n(I2\nttRp4631\nsS'Y:VBus64 - CCASAM32'\np4632\ng26\n(S'Variable_Type'\n(I2\nttRp4633\nsS'Y:PMachine14 - CBONIF21'\np4634\ng26\n(S'Variable_Type'\n(I1\nttRp4635\nsS'Y:PMachine62 - CCALVI32'\np4636\ng26\n(S'Variable_Type'\n(I2\nttRp4637\nsS'Y:VBus133 - CVAZZI314'\np4638\ng26\n(S'Variable_Type'\n(I2\nttRp4639\nsS'Y:VBus63 - CCASAM31'\np4640\ng26\n(S'Variable_Type'\n(I2\nttRp4641\nsS'Y:PMachine101 - CPIETR31'\np4642\ng26\n(S'Variable_Type'\n(I2\nttRp4643\nsS'Y:%Losses'\np4644\ng26\n(S'Variable_Type'\n(I2\nttRp4645\nsS'Y:VBus85 - CLORET32'\np4646\ng26\n(S'Variable_Type'\n(I2\nttRp4647\nsS'Y:Load 59 - CCALDA31'\np4648\ng26\n(S'Variable_Type'\n(I2\nttRp4649\nsS'Y:VBus129 - CVAZZI310'\np4650\ng26\n(S'Variable_Type'\n(I2\nttRp4651\nsS'Y:VBus101 - CPIETR31'\np4652\ng26\n(S'Variable_Type'\n(I2\nttRp4653\nsS'Y:PMachine106 - CRIZZA31'\np4654\ng26\n(S'Variable_Type'\n(I2\nttRp4655\nsS'Y:VBus132 - CVAZZI313'\np4656\ng26\n(S'Variable_Type'\n(I2\nttRp4657\nsS'Y:PMachine118 - CTOLLA33'\np4658\ng26\n(S'Variable_Type'\n(I2\nttRp4659\nsS'Y:VBus19 - CCASTI21'\np4660\ng26\n(S'Variable_Type'\n(I2\nttRp4661\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np4662\ng26\n(S'Variable_Type'\n(I2\nttRp4663\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np4664\ng26\n(S'Variable_Type'\n(I1\nttRp4665\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np4666\ng26\n(S'Variable_Type'\n(I2\nttRp4667\nsS'Y:Load 115 - CTAGLI31'\np4668\ng26\n(S'Variable_Type'\n(I2\nttRp4669\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np4670\ng26\n(S'Variable_Type'\n(I2\nttRp4671\nsS'Y:VBus79 - CFURIA32'\np4672\ng26\n(S'Variable_Type'\n(I2\nttRp4673\nsS'Y:PMachine47 - CVAZZI21'\np4674\ng26\n(S'Variable_Type'\n(I1\nttRp4675\nsS'Y:VBus123 - CVAZZI34'\np4676\ng26\n(S'Variable_Type'\n(I2\nttRp4677\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np4678\ng26\n(S'Variable_Type'\n(I2\nttRp4679\nsS'Y:VBus60 - CCALDA32'\np4680\ng26\n(S'Variable_Type'\n(I2\nttRp4681\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np4682\ng26\n(S'Variable_Type'\n(I2\nttRp4683\nsS'Y:VBus65 - CCASAM33'\np4684\ng26\n(S'Variable_Type'\n(I2\nttRp4685\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np4686\ng26\n(S'Variable_Type'\n(I1\nttRp4687\nsS'Y:PMachine139 - CLUCCI310'\np4688\ng26\n(S'Variable_Type'\n(I1\nttRp4689\nsS'Y:VBus112 - CSAMPO31'\np4690\ng26\n(S'Variable_Type'\n(I2\nttRp4691\nsS'Y:VBus68 - CCASAM36'\np4692\ng26\n(S'Variable_Type'\n(I2\nttRp4693\nsS'Y:Load 55 - CBIGUG31'\np4694\ng26\n(S'Variable_Type'\n(I2\nttRp4695\nsS'Y:PMachine53 - CBASTI31'\np4696\ng26\n(S'Variable_Type'\n(I2\nttRp4697\nsS'Y:NbeTransit_0.9-1'\np4698\ng26\n(S'Variable_Type'\n(I1\nttRp4699\nsS'Y:VBus24 - CFURIA21'\np4700\ng26\n(S'Variable_Type'\n(I2\nttRp4701\nsS'Y:VBus23 - CCORTE22'\np4702\ng26\n(S'Variable_Type'\n(I2\nttRp4703\nsS'Y:VBus18 - CCASAM21'\np4704\ng26\n(S'Variable_Type'\n(I2\nttRp4705\nsS'Y:VBus40 - CSTMAR21'\np4706\ng26\n(S'Variable_Type'\n(I2\nttRp4707\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np4708\ng26\n(S'Variable_Type'\n(I2\nttRp4709\nsS'Y:PMachine124 - CVAZZI35'\np4710\ng26\n(S'Variable_Type'\n(I2\nttRp4711\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np4712\ng26\n(S'Variable_Type'\n(I2\nttRp4713\nsS'Y:PMachine117 - CTOLLA32'\np4714\ng26\n(S'Variable_Type'\n(I2\nttRp4715\nsS'Y:VBus89 - CLUCCI34'\np4716\ng26\n(S'Variable_Type'\n(I2\nttRp4717\nsS'Y:VBus33 - COLETT21'\np4718\ng26\n(S'Variable_Type'\n(I2\nttRp4719\nsS'Y:VBus32 - COCANA21'\np4720\ng26\n(S'Variable_Type'\n(I2\nttRp4721\nsS'Y:PMachine121 - CVAZZI32'\np4722\ng26\n(S'Variable_Type'\n(I2\nttRp4723\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np4724\ng26\n(S'Variable_Type'\n(I1\nttRp4725\nsS'Y:VBus82 - CILERO31'\np4726\ng26\n(S'Variable_Type'\n(I2\nttRp4727\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np4728\ng26\n(S'Variable_Type'\n(I2\nttRp4729\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np4730\ng26\n(S'Variable_Type'\n(I2\nttRp4731\nsS'Y:VBus37 - CRIZZA21'\np4732\ng26\n(S'Variable_Type'\n(I2\nttRp4733\nsS'Y:PMachine73 - CCASTI32'\np4734\ng26\n(S'Variable_Type'\n(I2\nttRp4735\nsS'Y:PMachine86 - CLUCCI31'\np4736\ng26\n(S'Variable_Type'\n(I2\nttRp4737\nsS'Y:Load 53 - CBASTI31'\np4738\ng26\n(S'Variable_Type'\n(I2\nttRp4739\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np4740\ng26\n(S'Variable_Type'\n(I2\nttRp4741\nsS'Y:VBus21 - CCORSC21'\np4742\ng26\n(S'Variable_Type'\n(I2\nttRp4743\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np4744\ng26\n(S'Variable_Type'\n(I2\nttRp4745\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np4746\ng26\n(S'Variable_Type'\n(I2\nttRp4747\nsS'Y:PMachine126 - CVAZZI37'\np4748\ng26\n(S'Variable_Type'\n(I2\nttRp4749\nsS'Y:PMachine64 - CCASAM32'\np4750\ng26\n(S'Variable_Type'\n(I2\nttRp4751\nsS'Y:VBus67 - CCASAM35'\np4752\ng26\n(S'Variable_Type'\n(I2\nttRp4753\nsS'Y:VBus53 - CBASTI31'\np4754\ng26\n(S'Variable_Type'\n(I2\nttRp4755\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np4756\ng26\n(S'Variable_Type'\n(I2\nttRp4757\nsS'Y:VBus61 - CCALVI31'\np4758\ng26\n(S'Variable_Type'\n(I2\nttRp4759\nsS'Y:VBus93 - COCANA32'\np4760\ng26\n(S'Variable_Type'\n(I2\nttRp4761\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np4762\ng26\n(S'Variable_Type'\n(I2\nttRp4763\nsS'Y:VBus104 - CPROPR31'\np4764\ng26\n(S'Variable_Type'\n(I2\nttRp4765\nsS'Y:VBus22 - CCORTE21'\np4766\ng26\n(S'Variable_Type'\n(I2\nttRp4767\nsS'Y:VBus48 - CZSSS621'\np4768\ng26\n(S'Variable_Type'\n(I2\nttRp4769\nsS'Y:PMachine85 - CLORET32'\np4770\ng26\n(S'Variable_Type'\n(I2\nttRp4771\nsS'Y:Max%A'\np4772\ng26\n(S'Variable_Type'\n(I2\nttRp4773\nsS'Y:VBus36 - CPROPR21'\np4774\ng26\n(S'Variable_Type'\n(I2\nttRp4775\nsS'Y:Load 100 - COLETT31'\np4776\ng26\n(S'Variable_Type'\n(I2\nttRp4777\nsS'Y:PMachine54 - CBASTI32'\np4778\ng26\n(S'Variable_Type'\n(I2\nttRp4779\nsS'Y:VBus138 - CLUCCI39'\np4780\ng26\n(S'Variable_Type'\n(I2\nttRp4781\nsS'Y:VBus39 - CSTLUC21'\np4782\ng26\n(S'Variable_Type'\n(I2\nttRp4783\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np4784\ng26\n(S'Variable_Type'\n(I2\nttRp4785\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np4786\ng26\n(S'Variable_Type'\n(I2\nttRp4787\nsS'Y:Load 78 - CFURIA31'\np4788\ng26\n(S'Variable_Type'\n(I2\nttRp4789\nsS'Y:Load 74 - CCERVI31'\np4790\ng26\n(S'Variable_Type'\n(I2\nttRp4791\nsS'Y:VBus28 - CLORET21'\np4792\ng26\n(S'Variable_Type'\n(I2\nttRp4793\nsS'Y:PMachine105 - CPROPR32'\np4794\ng26\n(S'Variable_Type'\n(I2\nttRp4795\nsS'Y:VBus96 - COCANA35'\np4796\ng26\n(S'Variable_Type'\n(I2\nttRp4797\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np4798\ng26\n(S'Variable_Type'\n(I1\nttRp4799\nsS'Y:PMachine18 - CCASAM21'\np4800\ng26\n(S'Variable_Type'\n(I1\nttRp4801\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np4802\ng26\n(S'Variable_Type'\n(I2\nttRp4803\nsS'Y:VBus13 - CBIGUG21'\np4804\ng26\n(S'Variable_Type'\n(I2\nttRp4805\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np4806\ng26\n(S'Variable_Type'\n(I2\nttRp4807\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np4808\ng26\n(S'Variable_Type'\n(I2\nttRp4809\nsS'Y:VBus29 - CLUCCI21'\np4810\ng26\n(S'Variable_Type'\n(I2\nttRp4811\nsS'Y:VBus58 - CBONIF32'\np4812\ng26\n(S'Variable_Type'\n(I2\nttRp4813\nsS'Y:VBus84 - CLORET31'\np4814\ng26\n(S'Variable_Type'\n(I2\nttRp4815\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np4816\ng26\n(S'Variable_Type'\n(I1\nttRp4817\nsS'Y:VBus97 - COCANA36'\np4818\ng26\n(S'Variable_Type'\n(I2\nttRp4819\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np4820\ng26\n(S'Variable_Type'\n(I1\nttRp4821\nsS'Y:VBus15 - CBONIF22'\np4822\ng26\n(S'Variable_Type'\n(I2\nttRp4823\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np4824\ng26\n(S'Variable_Type'\n(I2\nttRp4825\nsS'Y:Load 110 - CSTLUC31'\np4826\ng26\n(S'Variable_Type'\n(I2\nttRp4827\nsS'Y:VBus80 - CGHISO31'\np4828\ng26\n(S'Variable_Type'\n(I2\nttRp4829\nsS'Y:PMachine114 - CSOVEN31'\np4830\ng26\n(S'Variable_Type'\n(I2\nttRp4831\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np4832\ng26\n(S'Variable_Type'\n(I1\nttRp4833\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np4834\ng26\n(S'Variable_Type'\n(I2\nttRp4835\nsS'Y:PMachine93 - COCANA32'\np4836\ng26\n(S'Variable_Type'\n(I2\nttRp4837\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np4838\ng26\n(S'Variable_Type'\n(I1\nttRp4839\nsS'Y:VBus87 - CLUCCI32'\np4840\ng26\n(S'Variable_Type'\n(I2\nttRp4841\nsS'Y:VBus62 - CCALVI32'\np4842\ng26\n(S'Variable_Type'\n(I2\nttRp4843\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np4844\ng26\n(S'Variable_Type'\n(I1\nttRp4845\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np4846\ng26\n(S'Variable_Type'\n(I1\nttRp4847\nsS'Y:VBus81 - CGHISO32'\np4848\ng26\n(S'Variable_Type'\n(I2\nttRp4849\nsS'Y:PMachine74 - CCERVI31'\np4850\ng26\n(S'Variable_Type'\n(I2\nttRp4851\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np4852\ng26\n(S'Variable_Type'\n(I2\nttRp4853\nsS'EOL_ALL'\np4854\ng26\n(S'Variable_Type'\n(I2\nttRp4855\nsS'X:Load(pu)'\np4856\ng26\n(S'Variable_Type'\n(I2\nttRp4857\nsS'Y:NbeTension'\np4858\ng26\n(S'Variable_Type'\n(I2\nttRp4859\nsS'Y:VBus95 - COCANA34'\np4860\ng26\n(S'Variable_Type'\n(I2\nttRp4861\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np4862\ng26\n(S'Variable_Type'\n(I2\nttRp4863\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np4864\ng26\n(S'Variable_Type'\n(I2\nttRp4865\nsS'Y:Load 95 - COCANA34'\np4866\ng26\n(S'Variable_Type'\n(I2\nttRp4867\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np4868\ng26\n(S'Variable_Type'\n(I1\nttRp4869\nsS'Y:PMachine90 - CMOROS31'\np4870\ng26\n(S'Variable_Type'\n(I2\nttRp4871\nsS'Y:Load 101 - CPIETR31'\np4872\ng26\n(S'Variable_Type'\n(I2\nttRp4873\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np4874\ng26\n(S'Variable_Type'\n(I1\nttRp4875\nsS'Y:PMachine132 - CVAZZI313'\np4876\ng26\n(S'Variable_Type'\n(I2\nttRp4877\nsS'Y:VBus125 - CVAZZI36'\np4878\ng26\n(S'Variable_Type'\n(I2\nttRp4879\nsS'Y:VBus135 - CLUCCI36'\np4880\ng26\n(S'Variable_Type'\n(I2\nttRp4881\nsS'Y:VBus47 - CVAZZI21'\np4882\ng26\n(S'Variable_Type'\n(I2\nttRp4883\nsS'Y:VBus94 - COCANA33'\np4884\ng26\n(S'Variable_Type'\n(I2\nttRp4885\nsS'Y:VBus17 - CCALVI21'\np4886\ng26\n(S'Variable_Type'\n(I2\nttRp4887\nsS'Y:Load 90 - CMOROS31'\np4888\ng26\n(S'Variable_Type'\n(I2\nttRp4889\nsS'Y:VBus120 - CVAZZI31'\np4890\ng26\n(S'Variable_Type'\n(I2\nttRp4891\nsS'X:ProdPV%Pnom'\np4892\ng26\n(S'Variable_Type'\n(I2\nttRp4893\nsS'Y:VBus52 - CASPRE32'\np4894\ng26\n(S'Variable_Type'\n(I2\nttRp4895\nsS'Y:VBus25 - CFURIA22'\np4896\ng26\n(S'Variable_Type'\n(I2\nttRp4897\nsS'Y:Load 76 - CCORTE31'\np4898\ng26\n(S'Variable_Type'\n(I2\nttRp4899\nsS'Y:PMachine69 - CCASAM37'\np4900\ng26\n(S'Variable_Type'\n(I2\nttRp4901\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np4902\ng26\n(S'Variable_Type'\n(I2\nttRp4903\nsS'Y:PMachine92 - COCANA31'\np4904\ng26\n(S'Variable_Type'\n(I2\nttRp4905\nsS'Y:VBus35 - CPORTO21'\np4906\ng26\n(S'Variable_Type'\n(I2\nttRp4907\nsS'Y:PMachine122 - CVAZZI33'\np4908\ng26\n(S'Variable_Type'\n(I2\nttRp4909\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np4910\ng26\n(S'Variable_Type'\n(I1\nttRp4911\nsS'Y:PMachine63 - CCASAM31'\np4912\ng26\n(S'Variable_Type'\n(I2\nttRp4913\nsS'Y:VBus74 - CCERVI31'\np4914\ng26\n(S'Variable_Type'\n(I2\nttRp4915\nsS'Y:VBus126 - CVAZZI37'\np4916\ng26\n(S'Variable_Type'\n(I2\nttRp4917\nsS'Y:PMachine60 - CCALDA32'\np4918\ng26\n(S'Variable_Type'\n(I2\nttRp4919\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np4920\ng26\n(S'Variable_Type'\n(I1\nttRp4921\nsS'Y:VBus20 - CCERVI21'\np4922\ng26\n(S'Variable_Type'\n(I2\nttRp4923\nsS'Y:VBus119 - CTRAVO31'\np4924\ng26\n(S'Variable_Type'\n(I2\nttRp4925\nsS'Y:VBus11 - CASPRE21'\np4926\ng26\n(S'Variable_Type'\n(I2\nttRp4927\nsS'Y:VBus139 - CLUCCI310'\np4928\ng26\n(S'Variable_Type'\n(I2\nttRp4929\nsS'Y:VBus106 - CRIZZA31'\np4930\ng26\n(S'Variable_Type'\n(I2\nttRp4931\nsS'Y:PMachine66 - CCASAM34'\np4932\ng26\n(S'Variable_Type'\n(I2\nttRp4933\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np4934\ng26\n(S'Variable_Type'\n(I2\nttRp4935\nsS'Y:VBus136 - CLUCCI37'\np4936\ng26\n(S'Variable_Type'\n(I2\nttRp4937\nsS'Y:VBus90 - CMOROS31'\np4938\ng26\n(S'Variable_Type'\n(I2\nttRp4939\nsS'PV_ALL'\np4940\ng26\n(S'Variable_Type'\n(I2\nttRp4941\nsS'X:lineOff#'\np4942\ng26\n(S'Variable_Type'\n(I2\nttRp4943\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np4944\ng26\n(S'Variable_Type'\n(I2\nttRp4945\nsS'Y:VBus108 - CSAGON31'\np4946\ng26\n(S'Variable_Type'\n(I2\nttRp4947\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np4948\ng26\n(S'Variable_Type'\n(I2\nttRp4949\nsS'Y:VBus137 - CLUCCI38'\np4950\ng26\n(S'Variable_Type'\n(I2\nttRp4951\nsS'Y:VBus130 - CVAZZI311'\np4952\ng26\n(S'Variable_Type'\n(I2\nttRp4953\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np4954\ng26\n(S'Variable_Type'\n(I2\nttRp4955\nsS'Y:VBus46 - CTRAVO21'\np4956\ng26\n(S'Variable_Type'\n(I2\nttRp4957\nsS'Y:VBus113 - CSAMPO32'\np4958\ng26\n(S'Variable_Type'\n(I2\nttRp4959\nsS'Y:PMachine133 - CVAZZI314'\np4960\ng26\n(S'Variable_Type'\n(I2\nttRp4961\nsS'Y:PMachine65 - CCASAM33'\np4962\ng26\n(S'Variable_Type'\n(I2\nttRp4963\nsS'Y:VBus78 - CFURIA31'\np4964\ng26\n(S'Variable_Type'\n(I2\nttRp4965\nsS'Y:VBus26 - CGHISO21'\np4966\ng26\n(S'Variable_Type'\n(I2\nttRp4967\nsS'Y:VBus121 - CVAZZI32'\np4968\ng26\n(S'Variable_Type'\n(I2\nttRp4969\nsS'Y:PMachine97 - COCANA36'\np4970\ng26\n(S'Variable_Type'\n(I2\nttRp4971\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np4972\ng26\n(S'Variable_Type'\n(I2\nttRp4973\nsS'Y:PMachine83 - CILERO32'\np4974\ng26\n(S'Variable_Type'\n(I2\nttRp4975\nsS'Y:VBus83 - CILERO32'\np4976\ng26\n(S'Variable_Type'\n(I2\nttRp4977\nsS'Y:VBus66 - CCASAM34'\np4978\ng26\n(S'Variable_Type'\n(I2\nttRp4979\nsS'Y:PMachine1 - CBONIF11'\np4980\ng26\n(S'Variable_Type'\n(I2\nttRp4981\nsS'Y:VBus111 - CSTMAR31'\np4982\ng26\n(S'Variable_Type'\n(I2\nttRp4983\nsS'Y:VBus124 - CVAZZI35'\np4984\ng26\n(S'Variable_Type'\n(I2\nttRp4985\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np4986\ng26\n(S'Variable_Type'\n(I2\nttRp4987\nsS'Y:PMachine131 - CVAZZI312'\np4988\ng26\n(S'Variable_Type'\n(I2\nttRp4989\nsS'Y:VBus44 - CTAGLI21'\np4990\ng26\n(S'Variable_Type'\n(I2\nttRp4991\nsS'Y:VBus88 - CLUCCI33'\np4992\ng26\n(S'Variable_Type'\n(I2\nttRp4993\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np4994\ng26\n(S'Variable_Type'\n(I1\nttRp4995\nsS'Y:VBus38 - CSAGON21'\np4996\ng26\n(S'Variable_Type'\n(I2\nttRp4997\nsS'Y:PMachine81 - CGHISO32'\np4998\ng26\n(S'Variable_Type'\n(I2\nttRp4999\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np5000\ng26\n(S'Variable_Type'\n(I2\nttRp5001\nsS'Y:VBus110 - CSTLUC31'\np5002\ng26\n(S'Variable_Type'\n(I2\nttRp5003\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np5004\ng26\n(S'Variable_Type'\n(I2\nttRp5005\nssg630\n(dp5006\nsg632\n(dp5007\ng2509\n(S'Iteration'\np5008\ng4483\ntp5009\nsg2512\n(g638\nI0\ntp5010\nsg2514\n(g5008\ng4483\ntp5011\nsg2516\n(S''\nI0\ntp5012\nsg2518\n(S''\nI0\ntp5013\nsg2520\n(NI-2\ntp5014\nsg2522\n((lI-2\ntp5015\nssg650\nF1369995172.0940001\nsba(iOWContexts\nContext\np5016\n(dp5017\ng20\n(lp5018\ng1272\nasg23\n(dp5019\nS'Y:PMachine134 - CLUCCI35'\np5020\ng26\n(S'Variable_Type'\n(I1\nttRp5021\nsS'Y:VBus77 - CCORTE32'\np5022\ng26\n(S'Variable_Type'\n(I2\nttRp5023\nsS'Y:VBus134 - CLUCCI35'\np5024\ng26\n(S'Variable_Type'\n(I2\nttRp5025\nsS'Y:VBus109 - CSAGON32'\np5026\ng26\n(S'Variable_Type'\n(I2\nttRp5027\nsS'Y:VBus102 - CPORTO31'\np5028\ng26\n(S'Variable_Type'\n(I2\nttRp5029\nsS'XProdEolienne%Pnom'\np5030\ng26\n(S'Variable_Type'\n(I1\nttRp5031\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np5032\ng26\n(S'Variable_Type'\n(I2\nttRp5033\nsS'Y:PMachine94 - COCANA33'\np5034\ng26\n(S'Variable_Type'\n(I2\nttRp5035\nsS'Y:VBus117 - CTOLLA32'\np5036\ng26\n(S'Variable_Type'\n(I2\nttRp5037\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np5038\ng26\n(S'Variable_Type'\n(I2\nttRp5039\nsS'Y:PMachine87 - CLUCCI32'\np5040\ng26\n(S'Variable_Type'\n(I2\nttRp5041\nsS'Y:PMachine113 - CSAMPO32'\np5042\ng26\n(S'Variable_Type'\n(I2\nttRp5043\nsS'Y:Load 84 - CLORET31'\np5044\ng26\n(S'Variable_Type'\n(I2\nttRp5045\nsS'Y:PMachine89 - CLUCCI34'\np5046\ng26\n(S'Variable_Type'\n(I1\nttRp5047\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np5048\ng26\n(S'Variable_Type'\n(I2\nttRp5049\nsS'Y:Load 80 - CGHISO31'\np5050\ng26\n(S'Variable_Type'\n(I2\nttRp5051\nsS'Y:PMachine125 - CVAZZI36'\np5052\ng26\n(S'Variable_Type'\n(I2\nttRp5053\nsS'Y:PMachine116 - CTOLLA31'\np5054\ng26\n(S'Variable_Type'\n(I2\nttRp5055\nsS'Y:PMachine88 - CLUCCI33'\np5056\ng26\n(S'Variable_Type'\n(I1\nttRp5057\nsS'Y:PMachine120 - CVAZZI31'\np5058\ng26\n(S'Variable_Type'\n(I2\nttRp5059\nsS'Y:PMachine111 - CSTMAR31'\np5060\ng26\n(S'Variable_Type'\n(I2\nttRp5061\nsS'Y:NbeTransit'\np5062\ng26\n(S'Variable_Type'\n(I1\nttRp5063\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np5064\ng26\n(S'Variable_Type'\n(I2\nttRp5065\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np5066\ng26\n(S'Variable_Type'\n(I2\nttRp5067\nsS'Y:VBus92 - COCANA31'\np5068\ng26\n(S'Variable_Type'\n(I2\nttRp5069\nsS'Y:PMachine130 - CVAZZI311'\np5070\ng26\n(S'Variable_Type'\n(I2\nttRp5071\nsS'Y:PMachine127 - CVAZZI38'\np5072\ng26\n(S'Variable_Type'\n(I2\nttRp5073\nsS'Y:VBus131 - CVAZZI312'\np5074\ng26\n(S'Variable_Type'\n(I2\nttRp5075\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np5076\ng26\n(S'Variable_Type'\n(I2\nttRp5077\nsS'Y:PMachine123 - CVAZZI34'\np5078\ng26\n(S'Variable_Type'\n(I2\nttRp5079\nsS'Y:VBus118 - CTOLLA33'\np5080\ng26\n(S'Variable_Type'\n(I2\nttRp5081\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np5082\ng26\n(S'Variable_Type'\n(I1\nttRp5083\nsS'Y:PMachine58 - CBONIF32'\np5084\ng26\n(S'Variable_Type'\n(I2\nttRp5085\nsS'Y:Load 104 - CPROPR31'\np5086\ng26\n(S'Variable_Type'\n(I2\nttRp5087\nsS'Y:PMachine30 - CLUCCI22'\np5088\ng26\n(S'Variable_Type'\n(I1\nttRp5089\nsS'Y:VBus100 - COLETT31'\np5090\ng26\n(S'Variable_Type'\n(I2\nttRp5091\nsS'Y:PProdTot'\np5092\ng26\n(S'Variable_Type'\n(I2\nttRp5093\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np5094\ng26\n(S'Variable_Type'\n(I1\nttRp5095\nsS'Y:VBus57 - CBONIF31'\np5096\ng26\n(S'Variable_Type'\n(I2\nttRp5097\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np5098\ng26\n(S'Variable_Type'\n(I2\nttRp5099\nsS'Y:PConsoTot'\np5100\ng26\n(S'Variable_Type'\n(I2\nttRp5101\nsS'Iteration'\np5102\ng26\n(S'Variable_Type'\n(I2\nttRp5103\nsS'Y:PMachine109 - CSAGON32'\np5104\ng26\n(S'Variable_Type'\n(I2\nttRp5105\nsS'Y:PMachine135 - CLUCCI36'\np5106\ng26\n(S'Variable_Type'\n(I1\nttRp5107\nsS'Y:VBus30 - CLUCCI22'\np5108\ng26\n(S'Variable_Type'\n(I2\nttRp5109\nsS'Y:VBus122 - CVAZZI33'\np5110\ng26\n(S'Variable_Type'\n(I2\nttRp5111\nsS'Y:VBus86 - CLUCCI31'\np5112\ng26\n(S'Variable_Type'\n(I2\nttRp5113\nsS'Y:VBus35 - CPORTO21'\np5114\ng26\n(S'Variable_Type'\n(I2\nttRp5115\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np5116\ng26\n(S'Variable_Type'\n(I1\nttRp5117\nsS'Y:PMachine107 - CRIZZA32'\np5118\ng26\n(S'Variable_Type'\n(I2\nttRp5119\nsS'Y:VBus16 - CCALDA21'\np5120\ng26\n(S'Variable_Type'\n(I2\nttRp5121\nsS'Y:Load 102 - CPORTO31'\np5122\ng26\n(S'Variable_Type'\n(I2\nttRp5123\nsS'Y:VBus107 - CRIZZA32'\np5124\ng26\n(S'Variable_Type'\n(I2\nttRp5125\nsS'Y:VBus59 - CCALDA31'\np5126\ng26\n(S'Variable_Type'\n(I2\nttRp5127\nsS'Y:VBus41 - CSAMPO21'\np5128\ng26\n(S'Variable_Type'\n(I2\nttRp5129\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np5130\ng26\n(S'Variable_Type'\n(I2\nttRp5131\nsS'Y:VBus34 - CPIETR21'\np5132\ng26\n(S'Variable_Type'\n(I2\nttRp5133\nsS'Y:Load 108 - CSAGON31'\np5134\ng26\n(S'Variable_Type'\n(I2\nttRp5135\nsS'Y:VBus56 - CBIGUG32'\np5136\ng26\n(S'Variable_Type'\n(I2\nttRp5137\nsS'Y:PMachine42 - CSISCO21'\np5138\ng26\n(S'Variable_Type'\n(I2\nttRp5139\nsS'Y:PMachine138 - CLUCCI39'\np5140\ng26\n(S'Variable_Type'\n(I1\nttRp5141\nsS'Y:PMachine112 - CSAMPO31'\np5142\ng26\n(S'Variable_Type'\n(I2\nttRp5143\nsS'Y:VBus105 - CPROPR32'\np5144\ng26\n(S'Variable_Type'\n(I2\nttRp5145\nsS'Y:VBus1 - CBONIF11'\np5146\ng26\n(S'Variable_Type'\n(I2\nttRp5147\nsS'Y:VBus12 - CBASTI21'\np5148\ng26\n(S'Variable_Type'\n(I2\nttRp5149\nsS'Y:PMachine129 - CVAZZI310'\np5150\ng26\n(S'Variable_Type'\n(I2\nttRp5151\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np5152\ng26\n(S'Variable_Type'\n(I1\nttRp5153\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np5154\ng26\n(S'Variable_Type'\n(I1\nttRp5155\nsS'Y:VBus54 - CBASTI32'\np5156\ng26\n(S'Variable_Type'\n(I2\nttRp5157\nsS'Y:VBus69 - CCASAM37'\np5158\ng26\n(S'Variable_Type'\n(I2\nttRp5159\nsS'Y:VBus45 - CTOLLA21'\np5160\ng26\n(S'Variable_Type'\n(I2\nttRp5161\nsS'Y:PMachine115 - CTAGLI31'\np5162\ng26\n(S'Variable_Type'\n(I2\nttRp5163\nsS'Y:PMachine77 - CCORTE32'\np5164\ng26\n(S'Variable_Type'\n(I2\nttRp5165\nsS'Y:VBus43 - CSOVEN21'\np5166\ng26\n(S'Variable_Type'\n(I2\nttRp5167\nsS'Y:VBus76 - CCORTE31'\np5168\ng26\n(S'Variable_Type'\n(I2\nttRp5169\nsS'Y:VBus75 - CCORSC31'\np5170\ng26\n(S'Variable_Type'\n(I2\nttRp5171\nsS'Y:PMachine78 - CFURIA31'\np5172\ng26\n(S'Variable_Type'\n(I1\nttRp5173\nsS'Y:VBus127 - CVAZZI38'\np5174\ng26\n(S'Variable_Type'\n(I2\nttRp5175\nsS'Y:VBus115 - CTAGLI31'\np5176\ng26\n(S'Variable_Type'\n(I2\nttRp5177\nsS'Y:Load 61 - CCALVI31'\np5178\ng26\n(S'Variable_Type'\n(I2\nttRp5179\nsS'Y:VBus55 - CBIGUG31'\np5180\ng26\n(S'Variable_Type'\n(I2\nttRp5181\nsS'Y:Load 42 - CSISCO21'\np5182\ng26\n(S'Variable_Type'\n(I2\nttRp5183\nsS'Y:VBus72 - CCASTI31'\np5184\ng26\n(S'Variable_Type'\n(I2\nttRp5185\nsS'Y:Load 37 - CRIZZA21'\np5186\ng26\n(S'Variable_Type'\n(I2\nttRp5187\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np5188\ng26\n(S'Variable_Type'\n(I2\nttRp5189\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np5190\ng26\n(S'Variable_Type'\n(I2\nttRp5191\nsS'Y:PMachine137 - CLUCCI38'\np5192\ng26\n(S'Variable_Type'\n(I1\nttRp5193\nsS'Y:PMachine67 - CCASAM35'\np5194\ng26\n(S'Variable_Type'\n(I2\nttRp5195\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np5196\ng26\n(S'Variable_Type'\n(I1\nttRp5197\nsS'Y:VBus31 - CMOROS21'\np5198\ng26\n(S'Variable_Type'\n(I2\nttRp5199\nsS'Y:VBus103 - CPORTO32'\np5200\ng26\n(S'Variable_Type'\n(I2\nttRp5201\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np5202\ng26\n(S'Variable_Type'\n(I1\nttRp5203\nsS'Y:PMachine128 - CVAZZI39'\np5204\ng26\n(S'Variable_Type'\n(I2\nttRp5205\nsS'Y:PMachine72 - CCASTI31'\np5206\ng26\n(S'Variable_Type'\n(I2\nttRp5207\nsS'Y:VBus27 - CILERO21'\np5208\ng26\n(S'Variable_Type'\n(I2\nttRp5209\nsS'Y:PMachine75 - CCORSC31'\np5210\ng26\n(S'Variable_Type'\n(I2\nttRp5211\nsS'Y:Load 51 - CASPRE31'\np5212\ng26\n(S'Variable_Type'\n(I2\nttRp5213\nsS'Y:PMachine61 - CCALVI31'\np5214\ng26\n(S'Variable_Type'\n(I1\nttRp5215\nsS'Y:VBus51 - CASPRE31'\np5216\ng26\n(S'Variable_Type'\n(I2\nttRp5217\nsS'Y:VBus114 - CSOVEN31'\np5218\ng26\n(S'Variable_Type'\n(I2\nttRp5219\nsS'Y:Load 82 - CILERO31'\np5220\ng26\n(S'Variable_Type'\n(I2\nttRp5221\nsS'Y:VBus116 - CTOLLA31'\np5222\ng26\n(S'Variable_Type'\n(I2\nttRp5223\nsS'Y:Load 86 - CLUCCI31'\np5224\ng26\n(S'Variable_Type'\n(I2\nttRp5225\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np5226\ng26\n(S'Variable_Type'\n(I2\nttRp5227\nsS'Y:Load 57 - CBONIF31'\np5228\ng26\n(S'Variable_Type'\n(I2\nttRp5229\nsS'Y:PMachine104 - CPROPR31'\np5230\ng26\n(S'Variable_Type'\n(I2\nttRp5231\nsS'Y:VBus128 - CVAZZI39'\np5232\ng26\n(S'Variable_Type'\n(I2\nttRp5233\nsS'Y:PMachine136 - CLUCCI37'\np5234\ng26\n(S'Variable_Type'\n(I1\nttRp5235\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np5236\ng26\n(S'Variable_Type'\n(I2\nttRp5237\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np5238\ng26\n(S'Variable_Type'\n(I2\nttRp5239\nsS'Y:PMachine68 - CCASAM36'\np5240\ng26\n(S'Variable_Type'\n(I2\nttRp5241\nsS'Y:PMachine29 - CLUCCI21'\np5242\ng26\n(S'Variable_Type'\n(I1\nttRp5243\nsS'Y:VBus42 - CSISCO21'\np5244\ng26\n(S'Variable_Type'\n(I2\nttRp5245\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np5246\ng26\n(S'Variable_Type'\n(I1\nttRp5247\nsS'Y:VBus14 - CBONIF21'\np5248\ng26\n(S'Variable_Type'\n(I2\nttRp5249\nsS'Y:VBus73 - CCASTI32'\np5250\ng26\n(S'Variable_Type'\n(I2\nttRp5251\nsS'Y:VBus64 - CCASAM32'\np5252\ng26\n(S'Variable_Type'\n(I2\nttRp5253\nsS'Y:PMachine14 - CBONIF21'\np5254\ng26\n(S'Variable_Type'\n(I1\nttRp5255\nsS'Y:PMachine62 - CCALVI32'\np5256\ng26\n(S'Variable_Type'\n(I2\nttRp5257\nsS'Y:VBus133 - CVAZZI314'\np5258\ng26\n(S'Variable_Type'\n(I2\nttRp5259\nsS'Y:VBus63 - CCASAM31'\np5260\ng26\n(S'Variable_Type'\n(I2\nttRp5261\nsS'Y:PMachine101 - CPIETR31'\np5262\ng26\n(S'Variable_Type'\n(I2\nttRp5263\nsS'Y:%Losses'\np5264\ng26\n(S'Variable_Type'\n(I2\nttRp5265\nsS'Y:VBus85 - CLORET32'\np5266\ng26\n(S'Variable_Type'\n(I2\nttRp5267\nsS'Y:Load 59 - CCALDA31'\np5268\ng26\n(S'Variable_Type'\n(I2\nttRp5269\nsS'Y:VBus129 - CVAZZI310'\np5270\ng26\n(S'Variable_Type'\n(I2\nttRp5271\nsS'Y:VBus101 - CPIETR31'\np5272\ng26\n(S'Variable_Type'\n(I2\nttRp5273\nsS'Y:PMachine106 - CRIZZA31'\np5274\ng26\n(S'Variable_Type'\n(I2\nttRp5275\nsS'Y:VBus132 - CVAZZI313'\np5276\ng26\n(S'Variable_Type'\n(I2\nttRp5277\nsS'Y:PMachine118 - CTOLLA33'\np5278\ng26\n(S'Variable_Type'\n(I2\nttRp5279\nsS'Y:VBus19 - CCASTI21'\np5280\ng26\n(S'Variable_Type'\n(I2\nttRp5281\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np5282\ng26\n(S'Variable_Type'\n(I2\nttRp5283\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np5284\ng26\n(S'Variable_Type'\n(I1\nttRp5285\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np5286\ng26\n(S'Variable_Type'\n(I2\nttRp5287\nsS'Y:Load 115 - CTAGLI31'\np5288\ng26\n(S'Variable_Type'\n(I2\nttRp5289\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np5290\ng26\n(S'Variable_Type'\n(I2\nttRp5291\nsS'Y:VBus79 - CFURIA32'\np5292\ng26\n(S'Variable_Type'\n(I2\nttRp5293\nsS'Y:PMachine47 - CVAZZI21'\np5294\ng26\n(S'Variable_Type'\n(I1\nttRp5295\nsS'Y:VBus123 - CVAZZI34'\np5296\ng26\n(S'Variable_Type'\n(I2\nttRp5297\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np5298\ng26\n(S'Variable_Type'\n(I2\nttRp5299\nsS'Y:VBus60 - CCALDA32'\np5300\ng26\n(S'Variable_Type'\n(I2\nttRp5301\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np5302\ng26\n(S'Variable_Type'\n(I2\nttRp5303\nsS'Y:VBus65 - CCASAM33'\np5304\ng26\n(S'Variable_Type'\n(I2\nttRp5305\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np5306\ng26\n(S'Variable_Type'\n(I1\nttRp5307\nsS'Y:PMachine139 - CLUCCI310'\np5308\ng26\n(S'Variable_Type'\n(I1\nttRp5309\nsS'Y:VBus112 - CSAMPO31'\np5310\ng26\n(S'Variable_Type'\n(I2\nttRp5311\nsS'Y:VBus68 - CCASAM36'\np5312\ng26\n(S'Variable_Type'\n(I2\nttRp5313\nsS'Y:Load 55 - CBIGUG31'\np5314\ng26\n(S'Variable_Type'\n(I2\nttRp5315\nsS'Y:PMachine53 - CBASTI31'\np5316\ng26\n(S'Variable_Type'\n(I2\nttRp5317\nsS'Y:NbeTransit_0.9-1'\np5318\ng26\n(S'Variable_Type'\n(I1\nttRp5319\nsS'Y:VBus24 - CFURIA21'\np5320\ng26\n(S'Variable_Type'\n(I2\nttRp5321\nsS'Y:VBus23 - CCORTE22'\np5322\ng26\n(S'Variable_Type'\n(I2\nttRp5323\nsS'Y:VBus18 - CCASAM21'\np5324\ng26\n(S'Variable_Type'\n(I2\nttRp5325\nsS'Y:VBus40 - CSTMAR21'\np5326\ng26\n(S'Variable_Type'\n(I2\nttRp5327\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np5328\ng26\n(S'Variable_Type'\n(I2\nttRp5329\nsS'Y:PMachine124 - CVAZZI35'\np5330\ng26\n(S'Variable_Type'\n(I2\nttRp5331\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np5332\ng26\n(S'Variable_Type'\n(I2\nttRp5333\nsS'Y:PMachine117 - CTOLLA32'\np5334\ng26\n(S'Variable_Type'\n(I2\nttRp5335\nsS'Y:VBus89 - CLUCCI34'\np5336\ng26\n(S'Variable_Type'\n(I2\nttRp5337\nsS'Y:VBus33 - COLETT21'\np5338\ng26\n(S'Variable_Type'\n(I2\nttRp5339\nsS'Y:VBus32 - COCANA21'\np5340\ng26\n(S'Variable_Type'\n(I2\nttRp5341\nsS'Y:PMachine121 - CVAZZI32'\np5342\ng26\n(S'Variable_Type'\n(I2\nttRp5343\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np5344\ng26\n(S'Variable_Type'\n(I1\nttRp5345\nsS'Y:VBus82 - CILERO31'\np5346\ng26\n(S'Variable_Type'\n(I2\nttRp5347\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np5348\ng26\n(S'Variable_Type'\n(I2\nttRp5349\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np5350\ng26\n(S'Variable_Type'\n(I2\nttRp5351\nsS'Y:VBus37 - CRIZZA21'\np5352\ng26\n(S'Variable_Type'\n(I2\nttRp5353\nsS'Y:PMachine73 - CCASTI32'\np5354\ng26\n(S'Variable_Type'\n(I2\nttRp5355\nsS'Y:PMachine86 - CLUCCI31'\np5356\ng26\n(S'Variable_Type'\n(I2\nttRp5357\nsS'Y:Load 53 - CBASTI31'\np5358\ng26\n(S'Variable_Type'\n(I2\nttRp5359\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np5360\ng26\n(S'Variable_Type'\n(I2\nttRp5361\nsS'Y:VBus21 - CCORSC21'\np5362\ng26\n(S'Variable_Type'\n(I2\nttRp5363\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np5364\ng26\n(S'Variable_Type'\n(I2\nttRp5365\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np5366\ng26\n(S'Variable_Type'\n(I2\nttRp5367\nsS'Y:PMachine126 - CVAZZI37'\np5368\ng26\n(S'Variable_Type'\n(I2\nttRp5369\nsS'Y:PMachine64 - CCASAM32'\np5370\ng26\n(S'Variable_Type'\n(I2\nttRp5371\nsS'Y:VBus67 - CCASAM35'\np5372\ng26\n(S'Variable_Type'\n(I2\nttRp5373\nsS'Y:VBus53 - CBASTI31'\np5374\ng26\n(S'Variable_Type'\n(I2\nttRp5375\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np5376\ng26\n(S'Variable_Type'\n(I2\nttRp5377\nsS'Y:VBus61 - CCALVI31'\np5378\ng26\n(S'Variable_Type'\n(I2\nttRp5379\nsS'Y:VBus93 - COCANA32'\np5380\ng26\n(S'Variable_Type'\n(I2\nttRp5381\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np5382\ng26\n(S'Variable_Type'\n(I2\nttRp5383\nsS'Y:VBus104 - CPROPR31'\np5384\ng26\n(S'Variable_Type'\n(I2\nttRp5385\nsS'Y:VBus22 - CCORTE21'\np5386\ng26\n(S'Variable_Type'\n(I2\nttRp5387\nsS'Y:VBus48 - CZSSS621'\np5388\ng26\n(S'Variable_Type'\n(I2\nttRp5389\nsS'Y:PMachine85 - CLORET32'\np5390\ng26\n(S'Variable_Type'\n(I2\nttRp5391\nsS'Y:Max%A'\np5392\ng26\n(S'Variable_Type'\n(I2\nttRp5393\nsS'Y:VBus36 - CPROPR21'\np5394\ng26\n(S'Variable_Type'\n(I2\nttRp5395\nsS'Y:Load 100 - COLETT31'\np5396\ng26\n(S'Variable_Type'\n(I2\nttRp5397\nsS'Y:PMachine54 - CBASTI32'\np5398\ng26\n(S'Variable_Type'\n(I2\nttRp5399\nsS'Y:VBus138 - CLUCCI39'\np5400\ng26\n(S'Variable_Type'\n(I2\nttRp5401\nsS'Y:VBus39 - CSTLUC21'\np5402\ng26\n(S'Variable_Type'\n(I2\nttRp5403\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np5404\ng26\n(S'Variable_Type'\n(I2\nttRp5405\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np5406\ng26\n(S'Variable_Type'\n(I2\nttRp5407\nsS'Y:Load 78 - CFURIA31'\np5408\ng26\n(S'Variable_Type'\n(I2\nttRp5409\nsS'Y:VBus28 - CLORET21'\np5410\ng26\n(S'Variable_Type'\n(I2\nttRp5411\nsS'Y:PMachine105 - CPROPR32'\np5412\ng26\n(S'Variable_Type'\n(I2\nttRp5413\nsS'Y:VBus96 - COCANA35'\np5414\ng26\n(S'Variable_Type'\n(I2\nttRp5415\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np5416\ng26\n(S'Variable_Type'\n(I1\nttRp5417\nsS'Y:PMachine18 - CCASAM21'\np5418\ng26\n(S'Variable_Type'\n(I1\nttRp5419\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np5420\ng26\n(S'Variable_Type'\n(I2\nttRp5421\nsS'Y:VBus13 - CBIGUG21'\np5422\ng26\n(S'Variable_Type'\n(I2\nttRp5423\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np5424\ng26\n(S'Variable_Type'\n(I2\nttRp5425\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np5426\ng26\n(S'Variable_Type'\n(I2\nttRp5427\nsS'Y:VBus29 - CLUCCI21'\np5428\ng26\n(S'Variable_Type'\n(I2\nttRp5429\nsS'Y:VBus58 - CBONIF32'\np5430\ng26\n(S'Variable_Type'\n(I2\nttRp5431\nsS'Y:VBus84 - CLORET31'\np5432\ng26\n(S'Variable_Type'\n(I2\nttRp5433\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np5434\ng26\n(S'Variable_Type'\n(I1\nttRp5435\nsS'Y:VBus97 - COCANA36'\np5436\ng26\n(S'Variable_Type'\n(I2\nttRp5437\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np5438\ng26\n(S'Variable_Type'\n(I1\nttRp5439\nsS'Y:VBus15 - CBONIF22'\np5440\ng26\n(S'Variable_Type'\n(I2\nttRp5441\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np5442\ng26\n(S'Variable_Type'\n(I2\nttRp5443\nsS'Y:Load 110 - CSTLUC31'\np5444\ng26\n(S'Variable_Type'\n(I2\nttRp5445\nsS'Y:VBus80 - CGHISO31'\np5446\ng26\n(S'Variable_Type'\n(I2\nttRp5447\nsS'Y:PMachine114 - CSOVEN31'\np5448\ng26\n(S'Variable_Type'\n(I2\nttRp5449\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np5450\ng26\n(S'Variable_Type'\n(I1\nttRp5451\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np5452\ng26\n(S'Variable_Type'\n(I2\nttRp5453\nsS'Y:PMachine93 - COCANA32'\np5454\ng26\n(S'Variable_Type'\n(I2\nttRp5455\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np5456\ng26\n(S'Variable_Type'\n(I1\nttRp5457\nsS'Y:VBus87 - CLUCCI32'\np5458\ng26\n(S'Variable_Type'\n(I2\nttRp5459\nsS'Y:VBus62 - CCALVI32'\np5460\ng26\n(S'Variable_Type'\n(I2\nttRp5461\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np5462\ng26\n(S'Variable_Type'\n(I1\nttRp5463\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np5464\ng26\n(S'Variable_Type'\n(I1\nttRp5465\nsS'Y:VBus81 - CGHISO32'\np5466\ng26\n(S'Variable_Type'\n(I2\nttRp5467\nsS'Y:PMachine74 - CCERVI31'\np5468\ng26\n(S'Variable_Type'\n(I2\nttRp5469\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np5470\ng26\n(S'Variable_Type'\n(I2\nttRp5471\nsS'EOL_ALL'\np5472\ng26\n(S'Variable_Type'\n(I2\nttRp5473\nsS'X:Load(pu)'\np5474\ng26\n(S'Variable_Type'\n(I2\nttRp5475\nsS'Y:NbeTension'\np5476\ng26\n(S'Variable_Type'\n(I2\nttRp5477\nsS'Y:VBus95 - COCANA34'\np5478\ng26\n(S'Variable_Type'\n(I2\nttRp5479\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np5480\ng26\n(S'Variable_Type'\n(I2\nttRp5481\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np5482\ng26\n(S'Variable_Type'\n(I2\nttRp5483\nsS'Y:Load 95 - COCANA34'\np5484\ng26\n(S'Variable_Type'\n(I2\nttRp5485\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np5486\ng26\n(S'Variable_Type'\n(I1\nttRp5487\nsS'Y:PMachine90 - CMOROS31'\np5488\ng26\n(S'Variable_Type'\n(I2\nttRp5489\nsS'Y:Load 101 - CPIETR31'\np5490\ng26\n(S'Variable_Type'\n(I2\nttRp5491\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np5492\ng26\n(S'Variable_Type'\n(I1\nttRp5493\nsS'Y:PMachine132 - CVAZZI313'\np5494\ng26\n(S'Variable_Type'\n(I2\nttRp5495\nsS'Y:VBus125 - CVAZZI36'\np5496\ng26\n(S'Variable_Type'\n(I2\nttRp5497\nsS'Y:VBus135 - CLUCCI36'\np5498\ng26\n(S'Variable_Type'\n(I2\nttRp5499\nsS'Y:VBus47 - CVAZZI21'\np5500\ng26\n(S'Variable_Type'\n(I2\nttRp5501\nsS'Y:VBus94 - COCANA33'\np5502\ng26\n(S'Variable_Type'\n(I2\nttRp5503\nsS'Y:VBus17 - CCALVI21'\np5504\ng26\n(S'Variable_Type'\n(I2\nttRp5505\nsS'Y:Load 90 - CMOROS31'\np5506\ng26\n(S'Variable_Type'\n(I2\nttRp5507\nsS'Y:VBus120 - CVAZZI31'\np5508\ng26\n(S'Variable_Type'\n(I2\nttRp5509\nsS'X:ProdPV%Pnom'\np5510\ng26\n(S'Variable_Type'\n(I2\nttRp5511\nsS'Y:VBus52 - CASPRE32'\np5512\ng26\n(S'Variable_Type'\n(I2\nttRp5513\nsS'Y:VBus25 - CFURIA22'\np5514\ng26\n(S'Variable_Type'\n(I2\nttRp5515\nsS'Y:Load 76 - CCORTE31'\np5516\ng26\n(S'Variable_Type'\n(I2\nttRp5517\nsS'Y:PMachine69 - CCASAM37'\np5518\ng26\n(S'Variable_Type'\n(I2\nttRp5519\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np5520\ng26\n(S'Variable_Type'\n(I2\nttRp5521\nsS'Y:PMachine92 - COCANA31'\np5522\ng26\n(S'Variable_Type'\n(I2\nttRp5523\nsS'Y:PMachine102 - CPORTO31'\np5524\ng26\n(S'Variable_Type'\n(I2\nttRp5525\nsS'Y:PMachine122 - CVAZZI33'\np5526\ng26\n(S'Variable_Type'\n(I2\nttRp5527\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np5528\ng26\n(S'Variable_Type'\n(I1\nttRp5529\nsS'Y:PMachine63 - CCASAM31'\np5530\ng26\n(S'Variable_Type'\n(I2\nttRp5531\nsS'Y:VBus74 - CCERVI31'\np5532\ng26\n(S'Variable_Type'\n(I2\nttRp5533\nsS'Y:VBus126 - CVAZZI37'\np5534\ng26\n(S'Variable_Type'\n(I2\nttRp5535\nsS'Y:PMachine60 - CCALDA32'\np5536\ng26\n(S'Variable_Type'\n(I2\nttRp5537\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np5538\ng26\n(S'Variable_Type'\n(I1\nttRp5539\nsS'Y:VBus20 - CCERVI21'\np5540\ng26\n(S'Variable_Type'\n(I2\nttRp5541\nsS'Y:VBus119 - CTRAVO31'\np5542\ng26\n(S'Variable_Type'\n(I2\nttRp5543\nsS'Y:VBus11 - CASPRE21'\np5544\ng26\n(S'Variable_Type'\n(I2\nttRp5545\nsS'Y:VBus139 - CLUCCI310'\np5546\ng26\n(S'Variable_Type'\n(I2\nttRp5547\nsS'Y:VBus106 - CRIZZA31'\np5548\ng26\n(S'Variable_Type'\n(I2\nttRp5549\nsS'Y:PMachine66 - CCASAM34'\np5550\ng26\n(S'Variable_Type'\n(I2\nttRp5551\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np5552\ng26\n(S'Variable_Type'\n(I2\nttRp5553\nsS'Y:VBus136 - CLUCCI37'\np5554\ng26\n(S'Variable_Type'\n(I2\nttRp5555\nsS'Y:VBus90 - CMOROS31'\np5556\ng26\n(S'Variable_Type'\n(I2\nttRp5557\nsS'Y:Load 74 - CCERVI31'\np5558\ng26\n(S'Variable_Type'\n(I2\nttRp5559\nsS'X:lineOff#'\np5560\ng26\n(S'Variable_Type'\n(I2\nttRp5561\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np5562\ng26\n(S'Variable_Type'\n(I2\nttRp5563\nsS'Y:VBus108 - CSAGON31'\np5564\ng26\n(S'Variable_Type'\n(I2\nttRp5565\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np5566\ng26\n(S'Variable_Type'\n(I2\nttRp5567\nsS'Y:VBus137 - CLUCCI38'\np5568\ng26\n(S'Variable_Type'\n(I2\nttRp5569\nsS'Y:VBus130 - CVAZZI311'\np5570\ng26\n(S'Variable_Type'\n(I2\nttRp5571\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np5572\ng26\n(S'Variable_Type'\n(I2\nttRp5573\nsS'Y:VBus46 - CTRAVO21'\np5574\ng26\n(S'Variable_Type'\n(I2\nttRp5575\nsS'Y:VBus113 - CSAMPO32'\np5576\ng26\n(S'Variable_Type'\n(I2\nttRp5577\nsS'Y:PMachine133 - CVAZZI314'\np5578\ng26\n(S'Variable_Type'\n(I2\nttRp5579\nsS'Y:PMachine65 - CCASAM33'\np5580\ng26\n(S'Variable_Type'\n(I2\nttRp5581\nsS'Y:VBus78 - CFURIA31'\np5582\ng26\n(S'Variable_Type'\n(I2\nttRp5583\nsS'Y:VBus26 - CGHISO21'\np5584\ng26\n(S'Variable_Type'\n(I2\nttRp5585\nsS'Y:VBus121 - CVAZZI32'\np5586\ng26\n(S'Variable_Type'\n(I2\nttRp5587\nsS'Y:PMachine97 - COCANA36'\np5588\ng26\n(S'Variable_Type'\n(I2\nttRp5589\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np5590\ng26\n(S'Variable_Type'\n(I2\nttRp5591\nsS'Y:PMachine83 - CILERO32'\np5592\ng26\n(S'Variable_Type'\n(I2\nttRp5593\nsS'Y:VBus83 - CILERO32'\np5594\ng26\n(S'Variable_Type'\n(I2\nttRp5595\nsS'Y:VBus66 - CCASAM34'\np5596\ng26\n(S'Variable_Type'\n(I2\nttRp5597\nsS'Y:PMachine1 - CBONIF11'\np5598\ng26\n(S'Variable_Type'\n(I2\nttRp5599\nsS'Y:VBus111 - CSTMAR31'\np5600\ng26\n(S'Variable_Type'\n(I2\nttRp5601\nsS'Y:VBus124 - CVAZZI35'\np5602\ng26\n(S'Variable_Type'\n(I2\nttRp5603\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np5604\ng26\n(S'Variable_Type'\n(I2\nttRp5605\nsS'Y:PMachine131 - CVAZZI312'\np5606\ng26\n(S'Variable_Type'\n(I2\nttRp5607\nsS'Y:VBus44 - CTAGLI21'\np5608\ng26\n(S'Variable_Type'\n(I2\nttRp5609\nsS'Y:VBus88 - CLUCCI33'\np5610\ng26\n(S'Variable_Type'\n(I2\nttRp5611\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np5612\ng26\n(S'Variable_Type'\n(I1\nttRp5613\nsS'Y:VBus38 - CSAGON21'\np5614\ng26\n(S'Variable_Type'\n(I2\nttRp5615\nsS'Y:PMachine81 - CGHISO32'\np5616\ng26\n(S'Variable_Type'\n(I2\nttRp5617\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np5618\ng26\n(S'Variable_Type'\n(I2\nttRp5619\nsS'Y:VBus110 - CSTLUC31'\np5620\ng26\n(S'Variable_Type'\n(I2\nttRp5621\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np5622\ng26\n(S'Variable_Type'\n(I2\nttRp5623\nssg630\n(dp5624\nsg632\n(dp5625\ng2509\n(S'Iteration'\np5626\ng5103\ntp5627\nsg2512\n(g638\nI0\ntp5628\nsg2514\n(g5626\ng5103\ntp5629\nsg2516\n(S''\nI0\ntp5630\nsg2518\n(S''\nI0\ntp5631\nsg2520\n(NI-2\ntp5632\nsg2522\n((lI-2\ntp5633\nssg650\nF1369995008.329\nsba(iOWContexts\nContext\np5634\n(dp5635\ng20\n(lp5636\ng1272\nasg23\n(dp5637\nS'Y:PMachine134 - CLUCCI35'\np5638\ng26\n(S'Variable_Type'\n(I1\nttRp5639\nsS'Y:VBus77 - CCORTE32'\np5640\ng26\n(S'Variable_Type'\n(I2\nttRp5641\nsS'Y:VBus134 - CLUCCI35'\np5642\ng26\n(S'Variable_Type'\n(I2\nttRp5643\nsS'Y:VBus109 - CSAGON32'\np5644\ng26\n(S'Variable_Type'\n(I2\nttRp5645\nsS'Y:VBus102 - CPORTO31'\np5646\ng26\n(S'Variable_Type'\n(I2\nttRp5647\nsS'XProdEolienne%Pnom'\np5648\ng26\n(S'Variable_Type'\n(I1\nttRp5649\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np5650\ng26\n(S'Variable_Type'\n(I2\nttRp5651\nsS'Y:PMachine94 - COCANA33'\np5652\ng26\n(S'Variable_Type'\n(I2\nttRp5653\nsS'Y:VBus117 - CTOLLA32'\np5654\ng26\n(S'Variable_Type'\n(I2\nttRp5655\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np5656\ng26\n(S'Variable_Type'\n(I2\nttRp5657\nsS'Y:PMachine87 - CLUCCI32'\np5658\ng26\n(S'Variable_Type'\n(I2\nttRp5659\nsS'Y:PMachine113 - CSAMPO32'\np5660\ng26\n(S'Variable_Type'\n(I2\nttRp5661\nsS'Y:Load 84 - CLORET31'\np5662\ng26\n(S'Variable_Type'\n(I2\nttRp5663\nsS'Y:PMachine89 - CLUCCI34'\np5664\ng26\n(S'Variable_Type'\n(I1\nttRp5665\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np5666\ng26\n(S'Variable_Type'\n(I2\nttRp5667\nsS'Y:Load 80 - CGHISO31'\np5668\ng26\n(S'Variable_Type'\n(I2\nttRp5669\nsS'Y:PMachine125 - CVAZZI36'\np5670\ng26\n(S'Variable_Type'\n(I2\nttRp5671\nsS'Y:PMachine116 - CTOLLA31'\np5672\ng26\n(S'Variable_Type'\n(I2\nttRp5673\nsS'Y:PMachine88 - CLUCCI33'\np5674\ng26\n(S'Variable_Type'\n(I1\nttRp5675\nsS'Y:PMachine120 - CVAZZI31'\np5676\ng26\n(S'Variable_Type'\n(I2\nttRp5677\nsS'Y:PMachine111 - CSTMAR31'\np5678\ng26\n(S'Variable_Type'\n(I2\nttRp5679\nsS'Y:NbeTransit'\np5680\ng26\n(S'Variable_Type'\n(I1\nttRp5681\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np5682\ng26\n(S'Variable_Type'\n(I2\nttRp5683\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np5684\ng26\n(S'Variable_Type'\n(I2\nttRp5685\nsS'Y:VBus92 - COCANA31'\np5686\ng26\n(S'Variable_Type'\n(I2\nttRp5687\nsS'Y:PMachine130 - CVAZZI311'\np5688\ng26\n(S'Variable_Type'\n(I2\nttRp5689\nsS'Y:PMachine127 - CVAZZI38'\np5690\ng26\n(S'Variable_Type'\n(I2\nttRp5691\nsS'Y:VBus131 - CVAZZI312'\np5692\ng26\n(S'Variable_Type'\n(I2\nttRp5693\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np5694\ng26\n(S'Variable_Type'\n(I2\nttRp5695\nsS'Y:PMachine123 - CVAZZI34'\np5696\ng26\n(S'Variable_Type'\n(I2\nttRp5697\nsS'Y:VBus118 - CTOLLA33'\np5698\ng26\n(S'Variable_Type'\n(I2\nttRp5699\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np5700\ng26\n(S'Variable_Type'\n(I1\nttRp5701\nsS'Y:PMachine58 - CBONIF32'\np5702\ng26\n(S'Variable_Type'\n(I2\nttRp5703\nsS'Y:Load 104 - CPROPR31'\np5704\ng26\n(S'Variable_Type'\n(I2\nttRp5705\nsS'Y:PMachine30 - CLUCCI22'\np5706\ng26\n(S'Variable_Type'\n(I1\nttRp5707\nsS'Y:VBus100 - COLETT31'\np5708\ng26\n(S'Variable_Type'\n(I2\nttRp5709\nsS'Y:PProdTot'\np5710\ng26\n(S'Variable_Type'\n(I2\nttRp5711\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np5712\ng26\n(S'Variable_Type'\n(I1\nttRp5713\nsS'Y:VBus57 - CBONIF31'\np5714\ng26\n(S'Variable_Type'\n(I2\nttRp5715\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np5716\ng26\n(S'Variable_Type'\n(I2\nttRp5717\nsS'Y:PConsoTot'\np5718\ng26\n(S'Variable_Type'\n(I2\nttRp5719\nsS'Iteration'\np5720\ng26\n(S'Variable_Type'\n(I2\nttRp5721\nsS'Y:PMachine109 - CSAGON32'\np5722\ng26\n(S'Variable_Type'\n(I2\nttRp5723\nsS'Y:PMachine135 - CLUCCI36'\np5724\ng26\n(S'Variable_Type'\n(I1\nttRp5725\nsS'Y:VBus30 - CLUCCI22'\np5726\ng26\n(S'Variable_Type'\n(I2\nttRp5727\nsS'Y:VBus122 - CVAZZI33'\np5728\ng26\n(S'Variable_Type'\n(I2\nttRp5729\nsS'Y:VBus22 - CCORTE21'\np5730\ng26\n(S'Variable_Type'\n(I2\nttRp5731\nsS'Y:VBus35 - CPORTO21'\np5732\ng26\n(S'Variable_Type'\n(I2\nttRp5733\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np5734\ng26\n(S'Variable_Type'\n(I1\nttRp5735\nsS'Y:PMachine107 - CRIZZA32'\np5736\ng26\n(S'Variable_Type'\n(I2\nttRp5737\nsS'Y:VBus16 - CCALDA21'\np5738\ng26\n(S'Variable_Type'\n(I2\nttRp5739\nsS'Y:Load 102 - CPORTO31'\np5740\ng26\n(S'Variable_Type'\n(I2\nttRp5741\nsS'Y:VBus107 - CRIZZA32'\np5742\ng26\n(S'Variable_Type'\n(I2\nttRp5743\nsS'Y:VBus59 - CCALDA31'\np5744\ng26\n(S'Variable_Type'\n(I2\nttRp5745\nsS'Y:VBus41 - CSAMPO21'\np5746\ng26\n(S'Variable_Type'\n(I2\nttRp5747\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np5748\ng26\n(S'Variable_Type'\n(I2\nttRp5749\nsS'Y:VBus34 - CPIETR21'\np5750\ng26\n(S'Variable_Type'\n(I2\nttRp5751\nsS'Y:Load 108 - CSAGON31'\np5752\ng26\n(S'Variable_Type'\n(I2\nttRp5753\nsS'Y:VBus56 - CBIGUG32'\np5754\ng26\n(S'Variable_Type'\n(I2\nttRp5755\nsS'Y:PMachine42 - CSISCO21'\np5756\ng26\n(S'Variable_Type'\n(I2\nttRp5757\nsS'Y:PMachine138 - CLUCCI39'\np5758\ng26\n(S'Variable_Type'\n(I1\nttRp5759\nsS'Y:PMachine112 - CSAMPO31'\np5760\ng26\n(S'Variable_Type'\n(I2\nttRp5761\nsS'Y:VBus105 - CPROPR32'\np5762\ng26\n(S'Variable_Type'\n(I2\nttRp5763\nsS'Y:VBus1 - CBONIF11'\np5764\ng26\n(S'Variable_Type'\n(I2\nttRp5765\nsS'Y:VBus12 - CBASTI21'\np5766\ng26\n(S'Variable_Type'\n(I2\nttRp5767\nsS'Y:PMachine129 - CVAZZI310'\np5768\ng26\n(S'Variable_Type'\n(I2\nttRp5769\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np5770\ng26\n(S'Variable_Type'\n(I1\nttRp5771\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np5772\ng26\n(S'Variable_Type'\n(I1\nttRp5773\nsS'Y:VBus54 - CBASTI32'\np5774\ng26\n(S'Variable_Type'\n(I2\nttRp5775\nsS'Y:VBus69 - CCASAM37'\np5776\ng26\n(S'Variable_Type'\n(I2\nttRp5777\nsS'Y:VBus45 - CTOLLA21'\np5778\ng26\n(S'Variable_Type'\n(I2\nttRp5779\nsS'Y:PMachine115 - CTAGLI31'\np5780\ng26\n(S'Variable_Type'\n(I2\nttRp5781\nsS'Y:PMachine77 - CCORTE32'\np5782\ng26\n(S'Variable_Type'\n(I2\nttRp5783\nsS'Y:VBus43 - CSOVEN21'\np5784\ng26\n(S'Variable_Type'\n(I2\nttRp5785\nsS'Y:VBus76 - CCORTE31'\np5786\ng26\n(S'Variable_Type'\n(I2\nttRp5787\nsS'Y:VBus75 - CCORSC31'\np5788\ng26\n(S'Variable_Type'\n(I2\nttRp5789\nsS'Y:PMachine78 - CFURIA31'\np5790\ng26\n(S'Variable_Type'\n(I1\nttRp5791\nsS'Y:VBus127 - CVAZZI38'\np5792\ng26\n(S'Variable_Type'\n(I2\nttRp5793\nsS'Y:VBus115 - CTAGLI31'\np5794\ng26\n(S'Variable_Type'\n(I2\nttRp5795\nsS'Y:Load 61 - CCALVI31'\np5796\ng26\n(S'Variable_Type'\n(I2\nttRp5797\nsS'Y:VBus55 - CBIGUG31'\np5798\ng26\n(S'Variable_Type'\n(I2\nttRp5799\nsS'Y:Load 42 - CSISCO21'\np5800\ng26\n(S'Variable_Type'\n(I2\nttRp5801\nsS'Y:VBus72 - CCASTI31'\np5802\ng26\n(S'Variable_Type'\n(I2\nttRp5803\nsS'Y:Load 37 - CRIZZA21'\np5804\ng26\n(S'Variable_Type'\n(I2\nttRp5805\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np5806\ng26\n(S'Variable_Type'\n(I2\nttRp5807\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np5808\ng26\n(S'Variable_Type'\n(I2\nttRp5809\nsS'Y:PMachine137 - CLUCCI38'\np5810\ng26\n(S'Variable_Type'\n(I1\nttRp5811\nsS'Y:PMachine67 - CCASAM35'\np5812\ng26\n(S'Variable_Type'\n(I2\nttRp5813\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np5814\ng26\n(S'Variable_Type'\n(I1\nttRp5815\nsS'Y:VBus31 - CMOROS21'\np5816\ng26\n(S'Variable_Type'\n(I2\nttRp5817\nsS'Y:VBus103 - CPORTO32'\np5818\ng26\n(S'Variable_Type'\n(I2\nttRp5819\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np5820\ng26\n(S'Variable_Type'\n(I1\nttRp5821\nsS'Y:PMachine128 - CVAZZI39'\np5822\ng26\n(S'Variable_Type'\n(I2\nttRp5823\nsS'Y:PMachine72 - CCASTI31'\np5824\ng26\n(S'Variable_Type'\n(I2\nttRp5825\nsS'Y:VBus27 - CILERO21'\np5826\ng26\n(S'Variable_Type'\n(I2\nttRp5827\nsS'Y:PMachine75 - CCORSC31'\np5828\ng26\n(S'Variable_Type'\n(I2\nttRp5829\nsS'Y:Load 51 - CASPRE31'\np5830\ng26\n(S'Variable_Type'\n(I2\nttRp5831\nsS'Y:PMachine61 - CCALVI31'\np5832\ng26\n(S'Variable_Type'\n(I1\nttRp5833\nsS'Y:VBus51 - CASPRE31'\np5834\ng26\n(S'Variable_Type'\n(I2\nttRp5835\nsS'Y:VBus114 - CSOVEN31'\np5836\ng26\n(S'Variable_Type'\n(I2\nttRp5837\nsS'Y:Load 82 - CILERO31'\np5838\ng26\n(S'Variable_Type'\n(I2\nttRp5839\nsS'Y:VBus116 - CTOLLA31'\np5840\ng26\n(S'Variable_Type'\n(I2\nttRp5841\nsS'Y:Load 86 - CLUCCI31'\np5842\ng26\n(S'Variable_Type'\n(I2\nttRp5843\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np5844\ng26\n(S'Variable_Type'\n(I2\nttRp5845\nsS'Y:Load 57 - CBONIF31'\np5846\ng26\n(S'Variable_Type'\n(I2\nttRp5847\nsS'Y:PMachine104 - CPROPR31'\np5848\ng26\n(S'Variable_Type'\n(I2\nttRp5849\nsS'Y:VBus128 - CVAZZI39'\np5850\ng26\n(S'Variable_Type'\n(I2\nttRp5851\nsS'Y:PMachine136 - CLUCCI37'\np5852\ng26\n(S'Variable_Type'\n(I1\nttRp5853\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np5854\ng26\n(S'Variable_Type'\n(I2\nttRp5855\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np5856\ng26\n(S'Variable_Type'\n(I2\nttRp5857\nsS'Y:PMachine68 - CCASAM36'\np5858\ng26\n(S'Variable_Type'\n(I2\nttRp5859\nsS'Y:PMachine29 - CLUCCI21'\np5860\ng26\n(S'Variable_Type'\n(I1\nttRp5861\nsS'Y:VBus42 - CSISCO21'\np5862\ng26\n(S'Variable_Type'\n(I2\nttRp5863\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np5864\ng26\n(S'Variable_Type'\n(I1\nttRp5865\nsS'Y:VBus14 - CBONIF21'\np5866\ng26\n(S'Variable_Type'\n(I2\nttRp5867\nsS'Y:VBus73 - CCASTI32'\np5868\ng26\n(S'Variable_Type'\n(I2\nttRp5869\nsS'Y:VBus64 - CCASAM32'\np5870\ng26\n(S'Variable_Type'\n(I2\nttRp5871\nsS'Y:PMachine14 - CBONIF21'\np5872\ng26\n(S'Variable_Type'\n(I1\nttRp5873\nsS'Y:PMachine62 - CCALVI32'\np5874\ng26\n(S'Variable_Type'\n(I2\nttRp5875\nsS'Y:VBus133 - CVAZZI314'\np5876\ng26\n(S'Variable_Type'\n(I2\nttRp5877\nsS'Y:VBus63 - CCASAM31'\np5878\ng26\n(S'Variable_Type'\n(I2\nttRp5879\nsS'Y:PMachine101 - CPIETR31'\np5880\ng26\n(S'Variable_Type'\n(I2\nttRp5881\nsS'Y:%Losses'\np5882\ng26\n(S'Variable_Type'\n(I2\nttRp5883\nsS'Y:VBus85 - CLORET32'\np5884\ng26\n(S'Variable_Type'\n(I2\nttRp5885\nsS'Y:Load 59 - CCALDA31'\np5886\ng26\n(S'Variable_Type'\n(I2\nttRp5887\nsS'Y:VBus129 - CVAZZI310'\np5888\ng26\n(S'Variable_Type'\n(I2\nttRp5889\nsS'Y:VBus101 - CPIETR31'\np5890\ng26\n(S'Variable_Type'\n(I2\nttRp5891\nsS'Y:PMachine106 - CRIZZA31'\np5892\ng26\n(S'Variable_Type'\n(I2\nttRp5893\nsS'Y:VBus132 - CVAZZI313'\np5894\ng26\n(S'Variable_Type'\n(I2\nttRp5895\nsS'Y:PMachine118 - CTOLLA33'\np5896\ng26\n(S'Variable_Type'\n(I2\nttRp5897\nsS'Y:VBus19 - CCASTI21'\np5898\ng26\n(S'Variable_Type'\n(I2\nttRp5899\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np5900\ng26\n(S'Variable_Type'\n(I2\nttRp5901\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np5902\ng26\n(S'Variable_Type'\n(I1\nttRp5903\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np5904\ng26\n(S'Variable_Type'\n(I2\nttRp5905\nsS'Y:Load 115 - CTAGLI31'\np5906\ng26\n(S'Variable_Type'\n(I2\nttRp5907\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np5908\ng26\n(S'Variable_Type'\n(I2\nttRp5909\nsS'Y:VBus79 - CFURIA32'\np5910\ng26\n(S'Variable_Type'\n(I2\nttRp5911\nsS'Y:PMachine47 - CVAZZI21'\np5912\ng26\n(S'Variable_Type'\n(I1\nttRp5913\nsS'Y:VBus123 - CVAZZI34'\np5914\ng26\n(S'Variable_Type'\n(I2\nttRp5915\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np5916\ng26\n(S'Variable_Type'\n(I2\nttRp5917\nsS'Y:VBus60 - CCALDA32'\np5918\ng26\n(S'Variable_Type'\n(I2\nttRp5919\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np5920\ng26\n(S'Variable_Type'\n(I2\nttRp5921\nsS'Y:VBus65 - CCASAM33'\np5922\ng26\n(S'Variable_Type'\n(I2\nttRp5923\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np5924\ng26\n(S'Variable_Type'\n(I1\nttRp5925\nsS'Y:PMachine139 - CLUCCI310'\np5926\ng26\n(S'Variable_Type'\n(I1\nttRp5927\nsS'Y:VBus112 - CSAMPO31'\np5928\ng26\n(S'Variable_Type'\n(I2\nttRp5929\nsS'Y:VBus68 - CCASAM36'\np5930\ng26\n(S'Variable_Type'\n(I2\nttRp5931\nsS'Y:Load 55 - CBIGUG31'\np5932\ng26\n(S'Variable_Type'\n(I2\nttRp5933\nsS'Y:PMachine53 - CBASTI31'\np5934\ng26\n(S'Variable_Type'\n(I2\nttRp5935\nsS'Y:NbeTransit_0.9-1'\np5936\ng26\n(S'Variable_Type'\n(I1\nttRp5937\nsS'Y:VBus24 - CFURIA21'\np5938\ng26\n(S'Variable_Type'\n(I2\nttRp5939\nsS'Y:VBus23 - CCORTE22'\np5940\ng26\n(S'Variable_Type'\n(I2\nttRp5941\nsS'Y:VBus18 - CCASAM21'\np5942\ng26\n(S'Variable_Type'\n(I2\nttRp5943\nsS'Y:VBus40 - CSTMAR21'\np5944\ng26\n(S'Variable_Type'\n(I2\nttRp5945\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np5946\ng26\n(S'Variable_Type'\n(I2\nttRp5947\nsS'Y:PMachine124 - CVAZZI35'\np5948\ng26\n(S'Variable_Type'\n(I2\nttRp5949\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np5950\ng26\n(S'Variable_Type'\n(I2\nttRp5951\nsS'Y:PMachine117 - CTOLLA32'\np5952\ng26\n(S'Variable_Type'\n(I2\nttRp5953\nsS'Y:VBus89 - CLUCCI34'\np5954\ng26\n(S'Variable_Type'\n(I2\nttRp5955\nsS'Y:VBus33 - COLETT21'\np5956\ng26\n(S'Variable_Type'\n(I2\nttRp5957\nsS'Y:VBus32 - COCANA21'\np5958\ng26\n(S'Variable_Type'\n(I2\nttRp5959\nsS'Y:PMachine121 - CVAZZI32'\np5960\ng26\n(S'Variable_Type'\n(I2\nttRp5961\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np5962\ng26\n(S'Variable_Type'\n(I1\nttRp5963\nsS'Y:VBus82 - CILERO31'\np5964\ng26\n(S'Variable_Type'\n(I2\nttRp5965\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np5966\ng26\n(S'Variable_Type'\n(I2\nttRp5967\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np5968\ng26\n(S'Variable_Type'\n(I2\nttRp5969\nsS'Y:VBus37 - CRIZZA21'\np5970\ng26\n(S'Variable_Type'\n(I2\nttRp5971\nsS'Y:PMachine73 - CCASTI32'\np5972\ng26\n(S'Variable_Type'\n(I2\nttRp5973\nsS'Y:PMachine86 - CLUCCI31'\np5974\ng26\n(S'Variable_Type'\n(I2\nttRp5975\nsS'Y:Load 53 - CBASTI31'\np5976\ng26\n(S'Variable_Type'\n(I2\nttRp5977\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np5978\ng26\n(S'Variable_Type'\n(I2\nttRp5979\nsS'Y:VBus21 - CCORSC21'\np5980\ng26\n(S'Variable_Type'\n(I2\nttRp5981\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np5982\ng26\n(S'Variable_Type'\n(I2\nttRp5983\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np5984\ng26\n(S'Variable_Type'\n(I2\nttRp5985\nsS'Y:PMachine126 - CVAZZI37'\np5986\ng26\n(S'Variable_Type'\n(I2\nttRp5987\nsS'Y:PMachine64 - CCASAM32'\np5988\ng26\n(S'Variable_Type'\n(I2\nttRp5989\nsS'Y:VBus67 - CCASAM35'\np5990\ng26\n(S'Variable_Type'\n(I2\nttRp5991\nsS'Y:VBus53 - CBASTI31'\np5992\ng26\n(S'Variable_Type'\n(I2\nttRp5993\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np5994\ng26\n(S'Variable_Type'\n(I2\nttRp5995\nsS'Y:VBus61 - CCALVI31'\np5996\ng26\n(S'Variable_Type'\n(I2\nttRp5997\nsS'Y:VBus93 - COCANA32'\np5998\ng26\n(S'Variable_Type'\n(I2\nttRp5999\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np6000\ng26\n(S'Variable_Type'\n(I2\nttRp6001\nsS'Y:VBus104 - CPROPR31'\np6002\ng26\n(S'Variable_Type'\n(I2\nttRp6003\nsS'Y:VBus48 - CZSSS621'\np6004\ng26\n(S'Variable_Type'\n(I2\nttRp6005\nsS'Y:PMachine85 - CLORET32'\np6006\ng26\n(S'Variable_Type'\n(I2\nttRp6007\nsS'Y:Max%A'\np6008\ng26\n(S'Variable_Type'\n(I2\nttRp6009\nsS'Y:VBus36 - CPROPR21'\np6010\ng26\n(S'Variable_Type'\n(I2\nttRp6011\nsS'Y:Load 100 - COLETT31'\np6012\ng26\n(S'Variable_Type'\n(I2\nttRp6013\nsS'Y:PMachine54 - CBASTI32'\np6014\ng26\n(S'Variable_Type'\n(I2\nttRp6015\nsS'Y:VBus138 - CLUCCI39'\np6016\ng26\n(S'Variable_Type'\n(I2\nttRp6017\nsS'Y:VBus39 - CSTLUC21'\np6018\ng26\n(S'Variable_Type'\n(I2\nttRp6019\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np6020\ng26\n(S'Variable_Type'\n(I2\nttRp6021\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np6022\ng26\n(S'Variable_Type'\n(I2\nttRp6023\nsS'Y:Load 78 - CFURIA31'\np6024\ng26\n(S'Variable_Type'\n(I2\nttRp6025\nsS'Y:VBus28 - CLORET21'\np6026\ng26\n(S'Variable_Type'\n(I2\nttRp6027\nsS'Y:PMachine105 - CPROPR32'\np6028\ng26\n(S'Variable_Type'\n(I2\nttRp6029\nsS'Y:VBus96 - COCANA35'\np6030\ng26\n(S'Variable_Type'\n(I2\nttRp6031\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np6032\ng26\n(S'Variable_Type'\n(I1\nttRp6033\nsS'Y:PMachine18 - CCASAM21'\np6034\ng26\n(S'Variable_Type'\n(I1\nttRp6035\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np6036\ng26\n(S'Variable_Type'\n(I2\nttRp6037\nsS'Y:VBus13 - CBIGUG21'\np6038\ng26\n(S'Variable_Type'\n(I2\nttRp6039\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np6040\ng26\n(S'Variable_Type'\n(I2\nttRp6041\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np6042\ng26\n(S'Variable_Type'\n(I2\nttRp6043\nsS'Y:VBus29 - CLUCCI21'\np6044\ng26\n(S'Variable_Type'\n(I2\nttRp6045\nsS'Y:VBus58 - CBONIF32'\np6046\ng26\n(S'Variable_Type'\n(I2\nttRp6047\nsS'Y:VBus84 - CLORET31'\np6048\ng26\n(S'Variable_Type'\n(I2\nttRp6049\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np6050\ng26\n(S'Variable_Type'\n(I1\nttRp6051\nsS'Y:VBus97 - COCANA36'\np6052\ng26\n(S'Variable_Type'\n(I2\nttRp6053\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np6054\ng26\n(S'Variable_Type'\n(I1\nttRp6055\nsS'Y:VBus15 - CBONIF22'\np6056\ng26\n(S'Variable_Type'\n(I2\nttRp6057\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np6058\ng26\n(S'Variable_Type'\n(I2\nttRp6059\nsS'Y:Load 110 - CSTLUC31'\np6060\ng26\n(S'Variable_Type'\n(I2\nttRp6061\nsS'Y:VBus80 - CGHISO31'\np6062\ng26\n(S'Variable_Type'\n(I2\nttRp6063\nsS'Y:PMachine114 - CSOVEN31'\np6064\ng26\n(S'Variable_Type'\n(I2\nttRp6065\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np6066\ng26\n(S'Variable_Type'\n(I1\nttRp6067\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np6068\ng26\n(S'Variable_Type'\n(I2\nttRp6069\nsS'Y:PMachine93 - COCANA32'\np6070\ng26\n(S'Variable_Type'\n(I2\nttRp6071\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np6072\ng26\n(S'Variable_Type'\n(I1\nttRp6073\nsS'Y:VBus87 - CLUCCI32'\np6074\ng26\n(S'Variable_Type'\n(I2\nttRp6075\nsS'Y:VBus62 - CCALVI32'\np6076\ng26\n(S'Variable_Type'\n(I2\nttRp6077\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np6078\ng26\n(S'Variable_Type'\n(I1\nttRp6079\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np6080\ng26\n(S'Variable_Type'\n(I1\nttRp6081\nsS'Y:VBus81 - CGHISO32'\np6082\ng26\n(S'Variable_Type'\n(I2\nttRp6083\nsS'Y:PMachine74 - CCERVI31'\np6084\ng26\n(S'Variable_Type'\n(I2\nttRp6085\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np6086\ng26\n(S'Variable_Type'\n(I2\nttRp6087\nsS'Y:VBus86 - CLUCCI31'\np6088\ng26\n(S'Variable_Type'\n(I2\nttRp6089\nsS'X:Load(pu)'\np6090\ng26\n(S'Variable_Type'\n(I2\nttRp6091\nsS'Y:NbeTension'\np6092\ng26\n(S'Variable_Type'\n(I2\nttRp6093\nsS'Y:VBus95 - COCANA34'\np6094\ng26\n(S'Variable_Type'\n(I2\nttRp6095\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np6096\ng26\n(S'Variable_Type'\n(I2\nttRp6097\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np6098\ng26\n(S'Variable_Type'\n(I2\nttRp6099\nsS'Y:Load 95 - COCANA34'\np6100\ng26\n(S'Variable_Type'\n(I2\nttRp6101\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np6102\ng26\n(S'Variable_Type'\n(I1\nttRp6103\nsS'Y:PMachine90 - CMOROS31'\np6104\ng26\n(S'Variable_Type'\n(I2\nttRp6105\nsS'Y:Load 101 - CPIETR31'\np6106\ng26\n(S'Variable_Type'\n(I2\nttRp6107\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np6108\ng26\n(S'Variable_Type'\n(I1\nttRp6109\nsS'Y:PMachine132 - CVAZZI313'\np6110\ng26\n(S'Variable_Type'\n(I2\nttRp6111\nsS'Y:VBus125 - CVAZZI36'\np6112\ng26\n(S'Variable_Type'\n(I2\nttRp6113\nsS'Y:VBus135 - CLUCCI36'\np6114\ng26\n(S'Variable_Type'\n(I2\nttRp6115\nsS'Y:VBus47 - CVAZZI21'\np6116\ng26\n(S'Variable_Type'\n(I2\nttRp6117\nsS'Y:VBus94 - COCANA33'\np6118\ng26\n(S'Variable_Type'\n(I2\nttRp6119\nsS'Y:VBus17 - CCALVI21'\np6120\ng26\n(S'Variable_Type'\n(I2\nttRp6121\nsS'Y:Load 90 - CMOROS31'\np6122\ng26\n(S'Variable_Type'\n(I2\nttRp6123\nsS'Y:VBus120 - CVAZZI31'\np6124\ng26\n(S'Variable_Type'\n(I2\nttRp6125\nsS'X:ProdPV%Pnom'\np6126\ng26\n(S'Variable_Type'\n(I2\nttRp6127\nsS'Y:VBus52 - CASPRE32'\np6128\ng26\n(S'Variable_Type'\n(I2\nttRp6129\nsS'Y:VBus25 - CFURIA22'\np6130\ng26\n(S'Variable_Type'\n(I2\nttRp6131\nsS'Y:Load 76 - CCORTE31'\np6132\ng26\n(S'Variable_Type'\n(I2\nttRp6133\nsS'Y:PMachine69 - CCASAM37'\np6134\ng26\n(S'Variable_Type'\n(I2\nttRp6135\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np6136\ng26\n(S'Variable_Type'\n(I2\nttRp6137\nsS'Y:PMachine92 - COCANA31'\np6138\ng26\n(S'Variable_Type'\n(I2\nttRp6139\nsS'Y:PMachine102 - CPORTO31'\np6140\ng26\n(S'Variable_Type'\n(I2\nttRp6141\nsS'Y:PMachine122 - CVAZZI33'\np6142\ng26\n(S'Variable_Type'\n(I2\nttRp6143\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np6144\ng26\n(S'Variable_Type'\n(I1\nttRp6145\nsS'Y:PMachine63 - CCASAM31'\np6146\ng26\n(S'Variable_Type'\n(I2\nttRp6147\nsS'Y:VBus74 - CCERVI31'\np6148\ng26\n(S'Variable_Type'\n(I2\nttRp6149\nsS'Y:VBus126 - CVAZZI37'\np6150\ng26\n(S'Variable_Type'\n(I2\nttRp6151\nsS'Y:PMachine60 - CCALDA32'\np6152\ng26\n(S'Variable_Type'\n(I2\nttRp6153\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np6154\ng26\n(S'Variable_Type'\n(I1\nttRp6155\nsS'Y:VBus20 - CCERVI21'\np6156\ng26\n(S'Variable_Type'\n(I2\nttRp6157\nsS'Y:VBus119 - CTRAVO31'\np6158\ng26\n(S'Variable_Type'\n(I2\nttRp6159\nsS'Y:VBus11 - CASPRE21'\np6160\ng26\n(S'Variable_Type'\n(I2\nttRp6161\nsS'Y:VBus139 - CLUCCI310'\np6162\ng26\n(S'Variable_Type'\n(I2\nttRp6163\nsS'Y:VBus106 - CRIZZA31'\np6164\ng26\n(S'Variable_Type'\n(I2\nttRp6165\nsS'Y:PMachine66 - CCASAM34'\np6166\ng26\n(S'Variable_Type'\n(I2\nttRp6167\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np6168\ng26\n(S'Variable_Type'\n(I2\nttRp6169\nsS'Y:VBus136 - CLUCCI37'\np6170\ng26\n(S'Variable_Type'\n(I2\nttRp6171\nsS'Y:VBus90 - CMOROS31'\np6172\ng26\n(S'Variable_Type'\n(I2\nttRp6173\nsS'Y:Load 74 - CCERVI31'\np6174\ng26\n(S'Variable_Type'\n(I2\nttRp6175\nsS'X:lineOff#'\np6176\ng26\n(S'Variable_Type'\n(I2\nttRp6177\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np6178\ng26\n(S'Variable_Type'\n(I2\nttRp6179\nsS'Y:VBus108 - CSAGON31'\np6180\ng26\n(S'Variable_Type'\n(I2\nttRp6181\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np6182\ng26\n(S'Variable_Type'\n(I2\nttRp6183\nsS'Y:VBus137 - CLUCCI38'\np6184\ng26\n(S'Variable_Type'\n(I2\nttRp6185\nsS'Y:VBus130 - CVAZZI311'\np6186\ng26\n(S'Variable_Type'\n(I2\nttRp6187\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np6188\ng26\n(S'Variable_Type'\n(I2\nttRp6189\nsS'Y:VBus46 - CTRAVO21'\np6190\ng26\n(S'Variable_Type'\n(I2\nttRp6191\nsS'Y:VBus113 - CSAMPO32'\np6192\ng26\n(S'Variable_Type'\n(I2\nttRp6193\nsS'Y:PMachine133 - CVAZZI314'\np6194\ng26\n(S'Variable_Type'\n(I2\nttRp6195\nsS'Y:PMachine65 - CCASAM33'\np6196\ng26\n(S'Variable_Type'\n(I2\nttRp6197\nsS'Y:VBus78 - CFURIA31'\np6198\ng26\n(S'Variable_Type'\n(I2\nttRp6199\nsS'Y:VBus26 - CGHISO21'\np6200\ng26\n(S'Variable_Type'\n(I2\nttRp6201\nsS'Y:VBus121 - CVAZZI32'\np6202\ng26\n(S'Variable_Type'\n(I2\nttRp6203\nsS'Y:PMachine97 - COCANA36'\np6204\ng26\n(S'Variable_Type'\n(I2\nttRp6205\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np6206\ng26\n(S'Variable_Type'\n(I2\nttRp6207\nsS'Y:PMachine83 - CILERO32'\np6208\ng26\n(S'Variable_Type'\n(I2\nttRp6209\nsS'Y:VBus83 - CILERO32'\np6210\ng26\n(S'Variable_Type'\n(I2\nttRp6211\nsS'Y:VBus66 - CCASAM34'\np6212\ng26\n(S'Variable_Type'\n(I2\nttRp6213\nsS'Y:PMachine1 - CBONIF11'\np6214\ng26\n(S'Variable_Type'\n(I2\nttRp6215\nsS'Y:VBus111 - CSTMAR31'\np6216\ng26\n(S'Variable_Type'\n(I2\nttRp6217\nsS'Y:VBus124 - CVAZZI35'\np6218\ng26\n(S'Variable_Type'\n(I2\nttRp6219\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np6220\ng26\n(S'Variable_Type'\n(I2\nttRp6221\nsS'Y:PMachine131 - CVAZZI312'\np6222\ng26\n(S'Variable_Type'\n(I2\nttRp6223\nsS'Y:VBus44 - CTAGLI21'\np6224\ng26\n(S'Variable_Type'\n(I2\nttRp6225\nsS'Y:VBus88 - CLUCCI33'\np6226\ng26\n(S'Variable_Type'\n(I2\nttRp6227\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np6228\ng26\n(S'Variable_Type'\n(I1\nttRp6229\nsS'Y:VBus38 - CSAGON21'\np6230\ng26\n(S'Variable_Type'\n(I2\nttRp6231\nsS'Y:PMachine81 - CGHISO32'\np6232\ng26\n(S'Variable_Type'\n(I2\nttRp6233\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np6234\ng26\n(S'Variable_Type'\n(I2\nttRp6235\nsS'Y:VBus110 - CSTLUC31'\np6236\ng26\n(S'Variable_Type'\n(I2\nttRp6237\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np6238\ng26\n(S'Variable_Type'\n(I2\nttRp6239\nssg630\n(dp6240\nsg632\n(dp6241\ng2509\n(S'Iteration'\np6242\ng5721\ntp6243\nsg2512\n(g638\nI0\ntp6244\nsg2514\n(g6242\ng5721\ntp6245\nsg2516\n(S''\nI0\ntp6246\nsg2518\n(S''\nI0\ntp6247\nsg2520\n(NI-2\ntp6248\nsg2522\n((lI-2\ntp6249\nssg650\nF1369994938.8169999\nsba(iOWContexts\nContext\np6250\n(dp6251\ng20\n(lp6252\ng1272\nasg23\n(dp6253\nS'Y:VBus48'\np6254\ng26\n(S'Variable_Type'\n(I2\nttRp6255\nsS'Y15:%RateA 18-44'\np6256\ng26\n(S'Variable_Type'\n(I2\nttRp6257\nsS'Y:VBus41'\np6258\ng26\n(S'Variable_Type'\n(I2\nttRp6259\nsS'Y:VBus40'\np6260\ng26\n(S'Variable_Type'\n(I2\nttRp6261\nsS'Y:VBus43'\np6262\ng26\n(S'Variable_Type'\n(I2\nttRp6263\nsS'Y:VBus42'\np6264\ng26\n(S'Variable_Type'\n(I2\nttRp6265\nsS'Y:VBus45'\np6266\ng26\n(S'Variable_Type'\n(I2\nttRp6267\nsS'Y:VBus44'\np6268\ng26\n(S'Variable_Type'\n(I2\nttRp6269\nsS'Y:VBus47'\np6270\ng26\n(S'Variable_Type'\n(I2\nttRp6271\nsS'Y:VBus46'\np6272\ng26\n(S'Variable_Type'\n(I2\nttRp6273\nsS'Y39:%RateA 32-45'\np6274\ng26\n(S'Variable_Type'\n(I2\nttRp6275\nsS'Y:Load 110'\np6276\ng26\n(S'Variable_Type'\n(I2\nttRp6277\nsS'Y:Load 115'\np6278\ng26\n(S'Variable_Type'\n(I2\nttRp6279\nsS'Y:PMachine134'\np6280\ng26\n(S'Variable_Type'\n(I1\nttRp6281\nsS'Y:VBus79'\np6282\ng26\n(S'Variable_Type'\n(I2\nttRp6283\nsS'Y13:%RateA 18-30'\np6284\ng26\n(S'Variable_Type'\n(I2\nttRp6285\nsS'TOT ENR'\np6286\ng26\n(S'Variable_Type'\n(I2\nttRp6287\nsS'Y34:%RateA 28-38'\np6288\ng26\n(S'Variable_Type'\n(I2\nttRp6289\nsS'Y:NbeTransit'\np6290\ng26\n(S'Variable_Type'\n(I1\nttRp6291\nsS'Y:VBus104'\np6292\ng26\n(S'Variable_Type'\n(I2\nttRp6293\nsS'Y20:%RateA 20-44'\np6294\ng26\n(S'Variable_Type'\n(I2\nttRp6295\nsS'DIESEL CASA'\np6296\ng26\n(S'Variable_Type'\n(I2\nttRp6297\nsS'Y38:%RateA 32-45'\np6298\ng26\n(S'Variable_Type'\n(I2\nttRp6299\nsS'Y:PMachine73'\np6300\ng26\n(S'Variable_Type'\n(I2\nttRp6301\nsS'Y:PMachine72'\np6302\ng26\n(S'Variable_Type'\n(I2\nttRp6303\nsS'Y49:%RateA 40-48'\np6304\ng26\n(S'Variable_Type'\n(I2\nttRp6305\nsS'Y:PMachine77'\np6306\ng26\n(S'Variable_Type'\n(I2\nttRp6307\nsS'Y:PMachine75'\np6308\ng26\n(S'Variable_Type'\n(I2\nttRp6309\nsS'Y:PMachine74'\np6310\ng26\n(S'Variable_Type'\n(I2\nttRp6311\nsS'Y:PMachine78'\np6312\ng26\n(S'Variable_Type'\n(I1\nttRp6313\nsS'Y:PMachine138'\np6314\ng26\n(S'Variable_Type'\n(I1\nttRp6315\nsS'Y28:%RateA 24-42'\np6316\ng26\n(S'Variable_Type'\n(I2\nttRp6317\nsS'Y:PProdTot'\np6318\ng26\n(S'Variable_Type'\n(I2\nttRp6319\nsS'Y:PMachine69'\np6320\ng26\n(S'Variable_Type'\n(I2\nttRp6321\nsS'Y:VBus38'\np6322\ng26\n(S'Variable_Type'\n(I2\nttRp6323\nsS'Y:VBus39'\np6324\ng26\n(S'Variable_Type'\n(I2\nttRp6325\nsS'Y62:%RateA 86-87'\np6326\ng26\n(S'Variable_Type'\n(I1\nttRp6327\nsS'Y:PMachine1'\np6328\ng26\n(S'Variable_Type'\n(I2\nttRp6329\nsS'Y:VBus35'\np6330\ng26\n(S'Variable_Type'\n(I2\nttRp6331\nsS'Y:VBus36'\np6332\ng26\n(S'Variable_Type'\n(I2\nttRp6333\nsS'Y:VBus37'\np6334\ng26\n(S'Variable_Type'\n(I2\nttRp6335\nsS'Iteration'\np6336\ng26\n(S'Variable_Type'\n(I2\nttRp6337\nsS'Y:VBus31'\np6338\ng26\n(S'Variable_Type'\n(I2\nttRp6339\nsS'Y:VBus32'\np6340\ng26\n(S'Variable_Type'\n(I2\nttRp6341\nsS'Y:VBus33'\np6342\ng26\n(S'Variable_Type'\n(I2\nttRp6343\nsS'Y53:%RateA 57-58'\np6344\ng26\n(S'Variable_Type'\n(I1\nttRp6345\nsS'Y14:%RateA 18-31'\np6346\ng26\n(S'Variable_Type'\n(I2\nttRp6347\nsS'Y48:%RateA 39-46'\np6348\ng26\n(S'Variable_Type'\n(I2\nttRp6349\nsS'Y60:%RateA 82-83'\np6350\ng26\n(S'Variable_Type'\n(I1\nttRp6351\nsS'Y:PMachine87'\np6352\ng26\n(S'Variable_Type'\n(I2\nttRp6353\nsS'Y:VBus121'\np6354\ng26\n(S'Variable_Type'\n(I2\nttRp6355\nsS'Y:VBus120'\np6356\ng26\n(S'Variable_Type'\n(I2\nttRp6357\nsS'Y:VBus123'\np6358\ng26\n(S'Variable_Type'\n(I2\nttRp6359\nsS'Y:VBus122'\np6360\ng26\n(S'Variable_Type'\n(I2\nttRp6361\nsS'Y:VBus125'\np6362\ng26\n(S'Variable_Type'\n(I2\nttRp6363\nsS'Y:VBus124'\np6364\ng26\n(S'Variable_Type'\n(I2\nttRp6365\nsS'Y:VBus127'\np6366\ng26\n(S'Variable_Type'\n(I2\nttRp6367\nsS'Y:VBus126'\np6368\ng26\n(S'Variable_Type'\n(I2\nttRp6369\nsS'Y:VBus129'\np6370\ng26\n(S'Variable_Type'\n(I2\nttRp6371\nsS'Y:PMachine47'\np6372\ng26\n(S'Variable_Type'\n(I2\nttRp6373\nsS'Y37:%RateA 32-34'\np6374\ng26\n(S'Variable_Type'\n(I2\nttRp6375\nsS'Y43:%RateA 35-37'\np6376\ng26\n(S'Variable_Type'\n(I2\nttRp6377\nsS'Y:PMachine42'\np6378\ng26\n(S'Variable_Type'\n(I2\nttRp6379\nsS'Y0:%RateA 11-28'\np6380\ng26\n(S'Variable_Type'\n(I2\nttRp6381\nsS'Y:VBus67'\np6382\ng26\n(S'Variable_Type'\n(I2\nttRp6383\nsS'Y:Load 37'\np6384\ng26\n(S'Variable_Type'\n(I2\nttRp6385\nsS'Y65:%RateA 104-105'\np6386\ng26\n(S'Variable_Type'\n(I1\nttRp6387\nsS'Y40:%RateA 32-47'\np6388\ng26\n(S'Variable_Type'\n(I2\nttRp6389\nsS'Y:VBus128'\np6390\ng26\n(S'Variable_Type'\n(I2\nttRp6391\nsS'Y6:%RateA 14-15'\np6392\ng26\n(S'Variable_Type'\n(I1\nttRp6393\nsS'Y:VBus1'\np6394\ng26\n(S'Variable_Type'\n(I2\nttRp6395\nsS'Y44:%RateA 35-39'\np6396\ng26\n(S'Variable_Type'\n(I2\nttRp6397\nsS'Y:PMachine88'\np6398\ng26\n(S'Variable_Type'\n(I1\nttRp6399\nsS'Y42:%RateA 34-36'\np6400\ng26\n(S'Variable_Type'\n(I2\nttRp6401\nsS'Y57:%RateA 76-77'\np6402\ng26\n(S'Variable_Type'\n(I1\nttRp6403\nsS'Y:PMachine89'\np6404\ng26\n(S'Variable_Type'\n(I1\nttRp6405\nsS'Y:VBus77'\np6406\ng26\n(S'Variable_Type'\n(I2\nttRp6407\nsS'Y:VBus29'\np6408\ng26\n(S'Variable_Type'\n(I2\nttRp6409\nsS'Y:VBus28'\np6410\ng26\n(S'Variable_Type'\n(I2\nttRp6411\nsS'Y:VBus27'\np6412\ng26\n(S'Variable_Type'\n(I2\nttRp6413\nsS'Y:VBus26'\np6414\ng26\n(S'Variable_Type'\n(I2\nttRp6415\nsS'Y:VBus25'\np6416\ng26\n(S'Variable_Type'\n(I2\nttRp6417\nsS'Y:VBus24'\np6418\ng26\n(S'Variable_Type'\n(I2\nttRp6419\nsS'Y:VBus23'\np6420\ng26\n(S'Variable_Type'\n(I2\nttRp6421\nsS'Y:VBus22'\np6422\ng26\n(S'Variable_Type'\n(I2\nttRp6423\nsS'Y:VBus21'\np6424\ng26\n(S'Variable_Type'\n(I2\nttRp6425\nsS'Y:VBus20'\np6426\ng26\n(S'Variable_Type'\n(I2\nttRp6427\nsS'Y:VBus85'\np6428\ng26\n(S'Variable_Type'\n(I2\nttRp6429\nsS'Y66:%RateA 106-107'\np6430\ng26\n(S'Variable_Type'\n(I1\nttRp6431\nsS'Y:VBus84'\np6432\ng26\n(S'Variable_Type'\n(I2\nttRp6433\nsS'Y52:%RateA 55-56'\np6434\ng26\n(S'Variable_Type'\n(I1\nttRp6435\nsS'Y2:%RateA 12-24'\np6436\ng26\n(S'Variable_Type'\n(I2\nttRp6437\nsS'Y:VBus112'\np6438\ng26\n(S'Variable_Type'\n(I2\nttRp6439\nsS'Y:VBus132'\np6440\ng26\n(S'Variable_Type'\n(I2\nttRp6441\nsS'Y:PMachine58'\np6442\ng26\n(S'Variable_Type'\n(I2\nttRp6443\nsS'Y:VBus130'\np6444\ng26\n(S'Variable_Type'\n(I2\nttRp6445\nsS'Y:VBus131'\np6446\ng26\n(S'Variable_Type'\n(I2\nttRp6447\nsS'Y:VBus136'\np6448\ng26\n(S'Variable_Type'\n(I2\nttRp6449\nsS'Y:VBus137'\np6450\ng26\n(S'Variable_Type'\n(I2\nttRp6451\nsS'Y:VBus134'\np6452\ng26\n(S'Variable_Type'\n(I2\nttRp6453\nsS'Y:VBus135'\np6454\ng26\n(S'Variable_Type'\n(I2\nttRp6455\nsS'Y:VBus81'\np6456\ng26\n(S'Variable_Type'\n(I2\nttRp6457\nsS'Y:PMachine53'\np6458\ng26\n(S'Variable_Type'\n(I2\nttRp6459\nsS'Y:VBus139'\np6460\ng26\n(S'Variable_Type'\n(I2\nttRp6461\nsS'Y30:%RateA 25-29'\np6462\ng26\n(S'Variable_Type'\n(I2\nttRp6463\nsS'Y:VBus115'\np6464\ng26\n(S'Variable_Type'\n(I2\nttRp6465\nsS'Y:PMachine124'\np6466\ng26\n(S'Variable_Type'\n(I2\nttRp6467\nsS'Y:VBus83'\np6468\ng26\n(S'Variable_Type'\n(I2\nttRp6469\nsS'Y:PMachine125'\np6470\ng26\n(S'Variable_Type'\n(I2\nttRp6471\nsS'Y25:%RateA 23-41'\np6472\ng26\n(S'Variable_Type'\n(I2\nttRp6473\nsS'Y:%Losses'\np6474\ng26\n(S'Variable_Type'\n(I2\nttRp6475\nsS'Y:VBus12'\np6476\ng26\n(S'Variable_Type'\n(I2\nttRp6477\nsS'Y:VBus13'\np6478\ng26\n(S'Variable_Type'\n(I2\nttRp6479\nsS'Y50:%RateA 51-52'\np6480\ng26\n(S'Variable_Type'\n(I1\nttRp6481\nsS'Y:VBus11'\np6482\ng26\n(S'Variable_Type'\n(I2\nttRp6483\nsS'Y:VBus16'\np6484\ng26\n(S'Variable_Type'\n(I2\nttRp6485\nsS'Y:VBus17'\np6486\ng26\n(S'Variable_Type'\n(I2\nttRp6487\nsS'Y:VBus14'\np6488\ng26\n(S'Variable_Type'\n(I2\nttRp6489\nsS'Y:VBus15'\np6490\ng26\n(S'Variable_Type'\n(I2\nttRp6491\nsS'Y:VBus113'\np6492\ng26\n(S'Variable_Type'\n(I2\nttRp6493\nsS'Y:PMachine120'\np6494\ng26\n(S'Variable_Type'\n(I2\nttRp6495\nsS'Y:VBus18'\np6496\ng26\n(S'Variable_Type'\n(I2\nttRp6497\nsS'Y:VBus19'\np6498\ng26\n(S'Variable_Type'\n(I2\nttRp6499\nsS'Y4:%RateA 13-25'\np6500\ng26\n(S'Variable_Type'\n(I2\nttRp6501\nsS'DIESEL VAZZIO'\np6502\ng26\n(S'Variable_Type'\n(I2\nttRp6503\nsS'Y35:%RateA 28-47'\np6504\ng26\n(S'Variable_Type'\n(I2\nttRp6505\nsS'Y:PMachine122'\np6506\ng26\n(S'Variable_Type'\n(I2\nttRp6507\nsS'Y16:%RateA 19-21'\np6508\ng26\n(S'Variable_Type'\n(I2\nttRp6509\nsS'Y:VBus92'\np6510\ng26\n(S'Variable_Type'\n(I2\nttRp6511\nsS'Y7:%RateA 14-35'\np6512\ng26\n(S'Variable_Type'\n(I2\nttRp6513\nsS'Y:VBus90'\np6514\ng26\n(S'Variable_Type'\n(I2\nttRp6515\nsS'Y:VBus96'\np6516\ng26\n(S'Variable_Type'\n(I2\nttRp6517\nsS'Y:VBus97'\np6518\ng26\n(S'Variable_Type'\n(I2\nttRp6519\nsS'Y:VBus94'\np6520\ng26\n(S'Variable_Type'\n(I2\nttRp6521\nsS'Y:VBus95'\np6522\ng26\n(S'Variable_Type'\n(I2\nttRp6523\nsS'Y:VBus107'\np6524\ng26\n(S'Variable_Type'\n(I2\nttRp6525\nsS'Y:VBus106'\np6526\ng26\n(S'Variable_Type'\n(I2\nttRp6527\nsS'Y:VBus105'\np6528\ng26\n(S'Variable_Type'\n(I2\nttRp6529\nsS'Y22:%RateA 22-23'\np6530\ng26\n(S'Variable_Type'\n(I1\nttRp6531\nsS'Y:VBus103'\np6532\ng26\n(S'Variable_Type'\n(I2\nttRp6533\nsS'Y:VBus102'\np6534\ng26\n(S'Variable_Type'\n(I2\nttRp6535\nsS'Y:VBus101'\np6536\ng26\n(S'Variable_Type'\n(I2\nttRp6537\nsS'Y:VBus100'\np6538\ng26\n(S'Variable_Type'\n(I2\nttRp6539\nsS'Y:Load 55'\np6540\ng26\n(S'Variable_Type'\n(I2\nttRp6541\nsS'Y:Load 57'\np6542\ng26\n(S'Variable_Type'\n(I2\nttRp6543\nsS'Y:Load 51'\np6544\ng26\n(S'Variable_Type'\n(I2\nttRp6545\nsS'Y:VBus54'\np6546\ng26\n(S'Variable_Type'\n(I2\nttRp6547\nsS'Y:VBus109'\np6548\ng26\n(S'Variable_Type'\n(I2\nttRp6549\nsS'Y46:%RateA 36-48'\np6550\ng26\n(S'Variable_Type'\n(I2\nttRp6551\nsS'Y:Load 80'\np6552\ng26\n(S'Variable_Type'\n(I2\nttRp6553\nsS'Y:PMachine133'\np6554\ng26\n(S'Variable_Type'\n(I2\nttRp6555\nsS'Y:VBus55'\np6556\ng26\n(S'Variable_Type'\n(I2\nttRp6557\nsS'Y:PMachine29'\np6558\ng26\n(S'Variable_Type'\n(I1\nttRp6559\nsS'Y24:%RateA 23-32'\np6560\ng26\n(S'Variable_Type'\n(I2\nttRp6561\nsS'X:lineOff#'\np6562\ng26\n(S'Variable_Type'\n(I2\nttRp6563\nsS'Y:Max%A'\np6564\ng26\n(S'Variable_Type'\n(I2\nttRp6565\nsS'Y:NbeTransit_0.9-1'\np6566\ng26\n(S'Variable_Type'\n(I1\nttRp6567\nsS'XProdEolienne%Pnom'\np6568\ng26\n(S'Variable_Type'\n(I2\nttRp6569\nsS'Y33:%RateA 27-33'\np6570\ng26\n(S'Variable_Type'\n(I2\nttRp6571\nsS'Y59:%RateA 80-81'\np6572\ng26\n(S'Variable_Type'\n(I1\nttRp6573\nsS'Y:VBus65'\np6574\ng26\n(S'Variable_Type'\n(I2\nttRp6575\nsS'TAC VAZZIO'\np6576\ng26\n(S'Variable_Type'\n(I2\nttRp6577\nsS'Y:VBus118'\np6578\ng26\n(S'Variable_Type'\n(I2\nttRp6579\nsS'Y:VBus119'\np6580\ng26\n(S'Variable_Type'\n(I2\nttRp6581\nsS'Y:PMachine117'\np6582\ng26\n(S'Variable_Type'\n(I2\nttRp6583\nsS'Y:PMachine116'\np6584\ng26\n(S'Variable_Type'\n(I2\nttRp6585\nsS'Y:PMachine111'\np6586\ng26\n(S'Variable_Type'\n(I2\nttRp6587\nsS'Y:VBus88'\np6588\ng26\n(S'Variable_Type'\n(I2\nttRp6589\nsS'Y:PMachine113'\np6590\ng26\n(S'Variable_Type'\n(I2\nttRp6591\nsS'Y:VBus93'\np6592\ng26\n(S'Variable_Type'\n(I2\nttRp6593\nsS'Y:VBus110'\np6594\ng26\n(S'Variable_Type'\n(I2\nttRp6595\nsS'Y:VBus111'\np6596\ng26\n(S'Variable_Type'\n(I2\nttRp6597\nsS'Y:VBus87'\np6598\ng26\n(S'Variable_Type'\n(I2\nttRp6599\nsS'Y12:%RateA 18-30'\np6600\ng26\n(S'Variable_Type'\n(I2\nttRp6601\nsS'Y:VBus114'\np6602\ng26\n(S'Variable_Type'\n(I2\nttRp6603\nsS'Y:VBus80'\np6604\ng26\n(S'Variable_Type'\n(I2\nttRp6605\nsS'Y:VBus116'\np6606\ng26\n(S'Variable_Type'\n(I2\nttRp6607\nsS'Y:VBus82'\np6608\ng26\n(S'Variable_Type'\n(I2\nttRp6609\nsS'Y61:%RateA 84-85'\np6610\ng26\n(S'Variable_Type'\n(I1\nttRp6611\nsS'Y31:%RateA 26-41'\np6612\ng26\n(S'Variable_Type'\n(I2\nttRp6613\nsS'Y:PMachine131'\np6614\ng26\n(S'Variable_Type'\n(I2\nttRp6615\nsS'Y47:%RateA 38-43'\np6616\ng26\n(S'Variable_Type'\n(I2\nttRp6617\nsS'Y:Load 42'\np6618\ng26\n(S'Variable_Type'\n(I2\nttRp6619\nsS'Y:PMachine85'\np6620\ng26\n(S'Variable_Type'\n(I2\nttRp6621\nsS'Y32:%RateA 26-46'\np6622\ng26\n(S'Variable_Type'\n(I2\nttRp6623\nsS'Y:PMachine132'\np6624\ng26\n(S'Variable_Type'\n(I2\nttRp6625\nsS'Y18:%RateA 19-27'\np6626\ng26\n(S'Variable_Type'\n(I2\nttRp6627\nsS'Y:VBus86'\np6628\ng26\n(S'Variable_Type'\n(I2\nttRp6629\nsS'Y63:%RateA 95-96'\np6630\ng26\n(S'Variable_Type'\n(I1\nttRp6631\nsS'Y17:%RateA 19-22'\np6632\ng26\n(S'Variable_Type'\n(I2\nttRp6633\nsS'Y41:%RateA 32-48'\np6634\ng26\n(S'Variable_Type'\n(I2\nttRp6635\nsS'Y:PMachine30'\np6636\ng26\n(S'Variable_Type'\n(I2\nttRp6637\nsS'Y:VBus117'\np6638\ng26\n(S'Variable_Type'\n(I2\nttRp6639\nsS'Y56:%RateA 72-73'\np6640\ng26\n(S'Variable_Type'\n(I1\nttRp6641\nsS'Y68:%RateA 112-113'\np6642\ng26\n(S'Variable_Type'\n(I1\nttRp6643\nsS'Y:PMachine130'\np6644\ng26\n(S'Variable_Type'\n(I2\nttRp6645\nsS'Y27:%RateA 24-33'\np6646\ng26\n(S'Variable_Type'\n(I2\nttRp6647\nsS'Y:PMachine106'\np6648\ng26\n(S'Variable_Type'\n(I2\nttRp6649\nsS'Y:PMachine107'\np6650\ng26\n(S'Variable_Type'\n(I2\nttRp6651\nsS'Y:PMachine104'\np6652\ng26\n(S'Variable_Type'\n(I2\nttRp6653\nsS'Y:VBus73'\np6654\ng26\n(S'Variable_Type'\n(I2\nttRp6655\nsS'Y:VBus74'\np6656\ng26\n(S'Variable_Type'\n(I2\nttRp6657\nsS'Y:VBus75'\np6658\ng26\n(S'Variable_Type'\n(I2\nttRp6659\nsS'Y:VBus76'\np6660\ng26\n(S'Variable_Type'\n(I2\nttRp6661\nsS'Y:PMachine101'\np6662\ng26\n(S'Variable_Type'\n(I2\nttRp6663\nsS'Y:VBus78'\np6664\ng26\n(S'Variable_Type'\n(I2\nttRp6665\nsS'Y:Load 59'\np6666\ng26\n(S'Variable_Type'\n(I2\nttRp6667\nsS'Y:PMachine115'\np6668\ng26\n(S'Variable_Type'\n(I2\nttRp6669\nsS'Y51:%RateA 53-54'\np6670\ng26\n(S'Variable_Type'\n(I1\nttRp6671\nsS'Y67:%RateA 108-109'\np6672\ng26\n(S'Variable_Type'\n(I1\nttRp6673\nsS'Y:PMachine109'\np6674\ng26\n(S'Variable_Type'\n(I2\nttRp6675\nsS'Y:PMachine83'\np6676\ng26\n(S'Variable_Type'\n(I2\nttRp6677\nsS'Y:PMachine81'\np6678\ng26\n(S'Variable_Type'\n(I2\nttRp6679\nsS'Y:PMachine86'\np6680\ng26\n(S'Variable_Type'\n(I2\nttRp6681\nsS'Y:Load 76'\np6682\ng26\n(S'Variable_Type'\n(I2\nttRp6683\nsS'Y:Load 74'\np6684\ng26\n(S'Variable_Type'\n(I2\nttRp6685\nsS'Y45:%RateA 36-37'\np6686\ng26\n(S'Variable_Type'\n(I2\nttRp6687\nsS'Y58:%RateA 78-79'\np6688\ng26\n(S'Variable_Type'\n(I1\nttRp6689\nsS'Y:Load 78'\np6690\ng26\n(S'Variable_Type'\n(I2\nttRp6691\nsS'X:Load(pu)'\np6692\ng26\n(S'Variable_Type'\n(I2\nttRp6693\nsS'Y5:%RateA 13-29'\np6694\ng26\n(S'Variable_Type'\n(I2\nttRp6695\nsS'Y:PMachine118'\np6696\ng26\n(S'Variable_Type'\n(I2\nttRp6697\nsS'Y1:%RateA 11-47'\np6698\ng26\n(S'Variable_Type'\n(I2\nttRp6699\nsS'Y:VBus60'\np6700\ng26\n(S'Variable_Type'\n(I2\nttRp6701\nsS'Y:PMachine137'\np6702\ng26\n(S'Variable_Type'\n(I1\nttRp6703\nsS'Y29:%RateA 25-29'\np6704\ng26\n(S'Variable_Type'\n(I2\nttRp6705\nsS'Y:VBus66'\np6706\ng26\n(S'Variable_Type'\n(I2\nttRp6707\nsS'Y36:%RateA 29-30'\np6708\ng26\n(S'Variable_Type'\n(I1\nttRp6709\nsS'Y54:%RateA 59-60'\np6710\ng26\n(S'Variable_Type'\n(I1\nttRp6711\nsS'Y:Load 90'\np6712\ng26\n(S'Variable_Type'\n(I2\nttRp6713\nsS'Y9:%RateA 16-32'\np6714\ng26\n(S'Variable_Type'\n(I2\nttRp6715\nsS'INTERCOS'\np6716\ng26\n(S'Variable_Type'\n(I2\nttRp6717\nsS'Y:Load 95'\np6718\ng26\n(S'Variable_Type'\n(I2\nttRp6719\nsS'Y:VBus63'\np6720\ng26\n(S'Variable_Type'\n(I2\nttRp6721\nsS'Y:VBus62'\np6722\ng26\n(S'Variable_Type'\n(I2\nttRp6723\nsS'Y:VBus61'\np6724\ng26\n(S'Variable_Type'\n(I2\nttRp6725\nsS'Y55:%RateA 61-62'\np6726\ng26\n(S'Variable_Type'\n(I1\nttRp6727\nsS'Y8:%RateA 15-35'\np6728\ng26\n(S'Variable_Type'\n(I2\nttRp6729\nsS'Y:PMachine136'\np6730\ng26\n(S'Variable_Type'\n(I1\nttRp6731\nsS'Y:PMachine135'\np6732\ng26\n(S'Variable_Type'\n(I1\nttRp6733\nsS'Y:VBus64'\np6734\ng26\n(S'Variable_Type'\n(I2\nttRp6735\nsS'Y:PMachine94'\np6736\ng26\n(S'Variable_Type'\n(I2\nttRp6737\nsS'Y:VBus69'\np6738\ng26\n(S'Variable_Type'\n(I2\nttRp6739\nsS'Y:VBus108'\np6740\ng26\n(S'Variable_Type'\n(I2\nttRp6741\nsS'Y:PMachine139'\np6742\ng26\n(S'Variable_Type'\n(I1\nttRp6743\nsS'Y:PMachine97'\np6744\ng26\n(S'Variable_Type'\n(I2\nttRp6745\nsS'Y:PMachine92'\np6746\ng26\n(S'Variable_Type'\n(I2\nttRp6747\nsS'Y:VBus68'\np6748\ng26\n(S'Variable_Type'\n(I2\nttRp6749\nsS'Y:Load 61'\np6750\ng26\n(S'Variable_Type'\n(I2\nttRp6751\nsS'Y:VBus89'\np6752\ng26\n(S'Variable_Type'\n(I2\nttRp6753\nsS'Y21:%RateA 21-43'\np6754\ng26\n(S'Variable_Type'\n(I2\nttRp6755\nsS'Y:PMachine90'\np6756\ng26\n(S'Variable_Type'\n(I2\nttRp6757\nsS'Y:PMachine14'\np6758\ng26\n(S'Variable_Type'\n(I2\nttRp6759\nsS'Y:PMachine63'\np6760\ng26\n(S'Variable_Type'\n(I2\nttRp6761\nsS'Y:PMachine93'\np6762\ng26\n(S'Variable_Type'\n(I2\nttRp6763\nsS'Y:PConsoTot'\np6764\ng26\n(S'Variable_Type'\n(I2\nttRp6765\nsS'Y23:%RateA 22-31'\np6766\ng26\n(S'Variable_Type'\n(I2\nttRp6767\nsS'Y19:%RateA 20-26'\np6768\ng26\n(S'Variable_Type'\n(I2\nttRp6769\nsS'Y:PMachine18'\np6770\ng26\n(S'Variable_Type'\n(I2\nttRp6771\nsS'Y:VBus34'\np6772\ng26\n(S'Variable_Type'\n(I2\nttRp6773\nsS'Y:NbeTension'\np6774\ng26\n(S'Variable_Type'\n(I2\nttRp6775\nsS'TOT PV'\np6776\ng26\n(S'Variable_Type'\n(I2\nttRp6777\nsS'Y:PMachine128'\np6778\ng26\n(S'Variable_Type'\n(I2\nttRp6779\nsS'Y:PMachine129'\np6780\ng26\n(S'Variable_Type'\n(I2\nttRp6781\nsS'Y:VBus133'\np6782\ng26\n(S'Variable_Type'\n(I2\nttRp6783\nsS'Y:Load 82'\np6784\ng26\n(S'Variable_Type'\n(I2\nttRp6785\nsS'Y:VBus30'\np6786\ng26\n(S'Variable_Type'\n(I2\nttRp6787\nsS'Y:PMachine126'\np6788\ng26\n(S'Variable_Type'\n(I2\nttRp6789\nsS'Y:PMachine127'\np6790\ng26\n(S'Variable_Type'\n(I2\nttRp6791\nsS'Y:Load 86'\np6792\ng26\n(S'Variable_Type'\n(I2\nttRp6793\nsS'Y:PMachine121'\np6794\ng26\n(S'Variable_Type'\n(I2\nttRp6795\nsS'Y:Load 84'\np6796\ng26\n(S'Variable_Type'\n(I2\nttRp6797\nsS'Y:PMachine123'\np6798\ng26\n(S'Variable_Type'\n(I2\nttRp6799\nsS'Y:Load 102'\np6800\ng26\n(S'Variable_Type'\n(I2\nttRp6801\nsS'Y:VBus57'\np6802\ng26\n(S'Variable_Type'\n(I2\nttRp6803\nsS'Y:Load 100'\np6804\ng26\n(S'Variable_Type'\n(I2\nttRp6805\nsS'Y:Load 101'\np6806\ng26\n(S'Variable_Type'\n(I2\nttRp6807\nsS'Y:VBus52'\np6808\ng26\n(S'Variable_Type'\n(I2\nttRp6809\nsS'Y:VBus53'\np6810\ng26\n(S'Variable_Type'\n(I2\nttRp6811\nsS'Y:Load 104'\np6812\ng26\n(S'Variable_Type'\n(I2\nttRp6813\nsS'Y:VBus51'\np6814\ng26\n(S'Variable_Type'\n(I2\nttRp6815\nsS'Y:Load 108'\np6816\ng26\n(S'Variable_Type'\n(I2\nttRp6817\nsS'Y64:%RateA 102-103'\np6818\ng26\n(S'Variable_Type'\n(I1\nttRp6819\nsS'Y:PMachine112'\np6820\ng26\n(S'Variable_Type'\n(I2\nttRp6821\nsS'Y:VBus58'\np6822\ng26\n(S'Variable_Type'\n(I2\nttRp6823\nsS'Y:VBus59'\np6824\ng26\n(S'Variable_Type'\n(I2\nttRp6825\nsS'Y:Load 53'\np6826\ng26\n(S'Variable_Type'\n(I2\nttRp6827\nsS'Y10:%RateA 16-47'\np6828\ng26\n(S'Variable_Type'\n(I2\nttRp6829\nsS'Y:PMachine54'\np6830\ng26\n(S'Variable_Type'\n(I2\nttRp6831\nsS'Y:VBus56'\np6832\ng26\n(S'Variable_Type'\n(I2\nttRp6833\nsS'TOT WIND'\np6834\ng26\n(S'Variable_Type'\n(I2\nttRp6835\nsS'Y3:%RateA 12-24'\np6836\ng26\n(S'Variable_Type'\n(I2\nttRp6837\nsS'Y11:%RateA 17-27'\np6838\ng26\n(S'Variable_Type'\n(I2\nttRp6839\nsS'Y:PMachine114'\np6840\ng26\n(S'Variable_Type'\n(I2\nttRp6841\nsS'Y:VBus72'\np6842\ng26\n(S'Variable_Type'\n(I2\nttRp6843\nsS'Y:PMachine60'\np6844\ng26\n(S'Variable_Type'\n(I2\nttRp6845\nsS'Y:PMachine61'\np6846\ng26\n(S'Variable_Type'\n(I1\nttRp6847\nsS'Y:PMachine62'\np6848\ng26\n(S'Variable_Type'\n(I2\nttRp6849\nsS'Y:PMachine105'\np6850\ng26\n(S'Variable_Type'\n(I2\nttRp6851\nsS'Y:PMachine64'\np6852\ng26\n(S'Variable_Type'\n(I2\nttRp6853\nsS'Y:PMachine65'\np6854\ng26\n(S'Variable_Type'\n(I2\nttRp6855\nsS'Y:PMachine66'\np6856\ng26\n(S'Variable_Type'\n(I2\nttRp6857\nsS'Y:PMachine67'\np6858\ng26\n(S'Variable_Type'\n(I2\nttRp6859\nsS'Y:PMachine68'\np6860\ng26\n(S'Variable_Type'\n(I2\nttRp6861\nsS'Y:PMachine102'\np6862\ng26\n(S'Variable_Type'\n(I2\nttRp6863\nsS'X:ProdPV%Pnom'\np6864\ng26\n(S'Variable_Type'\n(I2\nttRp6865\nsS'Y:VBus138'\np6866\ng26\n(S'Variable_Type'\n(I2\nttRp6867\nsS'Y26:%RateA 24-25'\np6868\ng26\n(S'Variable_Type'\n(I1\nttRp6869\nssg630\n(dp6870\nsg632\n(dp6871\ng2509\n(S'Y4:%RateA 13-25'\np6872\ng6501\ntp6873\nsg2512\n(g638\nI0\ntp6874\nsg2514\n(g6872\ng6501\ntp6875\nsg2516\n(S''\nI0\ntp6876\nsg2518\n(S''\nI0\ntp6877\nsg2520\n(NI-2\ntp6878\nsg2522\n((lI-2\ntp6879\nssg650\nF1369932170.793\nsba(iOWContexts\nContext\np6880\n(dp6881\ng20\n(lp6882\ng1272\nasg23\n(dp6883\nS'Y:VBus48'\np6884\ng26\n(S'Variable_Type'\n(I2\nttRp6885\nsS'Y15:%RateA 18-44'\np6886\ng26\n(S'Variable_Type'\n(I2\nttRp6887\nsS'Y:VBus41'\np6888\ng26\n(S'Variable_Type'\n(I2\nttRp6889\nsS'Y:VBus40'\np6890\ng26\n(S'Variable_Type'\n(I2\nttRp6891\nsS'Y:VBus43'\np6892\ng26\n(S'Variable_Type'\n(I2\nttRp6893\nsS'Y:VBus42'\np6894\ng26\n(S'Variable_Type'\n(I2\nttRp6895\nsS'Y:VBus45'\np6896\ng26\n(S'Variable_Type'\n(I2\nttRp6897\nsS'Y:VBus44'\np6898\ng26\n(S'Variable_Type'\n(I2\nttRp6899\nsS'Y:VBus47'\np6900\ng26\n(S'Variable_Type'\n(I2\nttRp6901\nsS'Y:VBus46'\np6902\ng26\n(S'Variable_Type'\n(I2\nttRp6903\nsS'Y39:%RateA 32-45'\np6904\ng26\n(S'Variable_Type'\n(I2\nttRp6905\nsS'Y:Load 110'\np6906\ng26\n(S'Variable_Type'\n(I2\nttRp6907\nsS'Y:Load 115'\np6908\ng26\n(S'Variable_Type'\n(I2\nttRp6909\nsS'Y:PMachine134'\np6910\ng26\n(S'Variable_Type'\n(I1\nttRp6911\nsS'Y:VBus79'\np6912\ng26\n(S'Variable_Type'\n(I2\nttRp6913\nsS'Y13:%RateA 18-30'\np6914\ng26\n(S'Variable_Type'\n(I2\nttRp6915\nsS'Y34:%RateA 28-38'\np6916\ng26\n(S'Variable_Type'\n(I2\nttRp6917\nsS'Y:NbeTransit'\np6918\ng26\n(S'Variable_Type'\n(I1\nttRp6919\nsS'Y:VBus104'\np6920\ng26\n(S'Variable_Type'\n(I2\nttRp6921\nsS'Y20:%RateA 20-44'\np6922\ng26\n(S'Variable_Type'\n(I2\nttRp6923\nsS'DIESEL CASA'\np6924\ng26\n(S'Variable_Type'\n(I2\nttRp6925\nsS'Y38:%RateA 32-45'\np6926\ng26\n(S'Variable_Type'\n(I2\nttRp6927\nsS'Y:PMachine73'\np6928\ng26\n(S'Variable_Type'\n(I2\nttRp6929\nsS'Y:PMachine72'\np6930\ng26\n(S'Variable_Type'\n(I2\nttRp6931\nsS'Y49:%RateA 40-48'\np6932\ng26\n(S'Variable_Type'\n(I2\nttRp6933\nsS'Y:PMachine77'\np6934\ng26\n(S'Variable_Type'\n(I2\nttRp6935\nsS'Y:PMachine75'\np6936\ng26\n(S'Variable_Type'\n(I2\nttRp6937\nsS'Y:PMachine74'\np6938\ng26\n(S'Variable_Type'\n(I2\nttRp6939\nsS'Y:PMachine78'\np6940\ng26\n(S'Variable_Type'\n(I1\nttRp6941\nsS'Y:PMachine138'\np6942\ng26\n(S'Variable_Type'\n(I1\nttRp6943\nsS'Y28:%RateA 24-42'\np6944\ng26\n(S'Variable_Type'\n(I2\nttRp6945\nsS'Y:PProdTot'\np6946\ng26\n(S'Variable_Type'\n(I2\nttRp6947\nsS'Y:PMachine69'\np6948\ng26\n(S'Variable_Type'\n(I2\nttRp6949\nsS'Y:VBus38'\np6950\ng26\n(S'Variable_Type'\n(I2\nttRp6951\nsS'Y:VBus39'\np6952\ng26\n(S'Variable_Type'\n(I2\nttRp6953\nsS'Y62:%RateA 86-87'\np6954\ng26\n(S'Variable_Type'\n(I1\nttRp6955\nsS'Y:PMachine1'\np6956\ng26\n(S'Variable_Type'\n(I2\nttRp6957\nsS'Y:VBus35'\np6958\ng26\n(S'Variable_Type'\n(I2\nttRp6959\nsS'Y:VBus36'\np6960\ng26\n(S'Variable_Type'\n(I2\nttRp6961\nsS'Y:VBus37'\np6962\ng26\n(S'Variable_Type'\n(I2\nttRp6963\nsS'Iteration'\np6964\ng26\n(S'Variable_Type'\n(I2\nttRp6965\nsS'Y:VBus31'\np6966\ng26\n(S'Variable_Type'\n(I2\nttRp6967\nsS'Y:VBus32'\np6968\ng26\n(S'Variable_Type'\n(I2\nttRp6969\nsS'Y:VBus33'\np6970\ng26\n(S'Variable_Type'\n(I2\nttRp6971\nsS'Y53:%RateA 57-58'\np6972\ng26\n(S'Variable_Type'\n(I1\nttRp6973\nsS'Y14:%RateA 18-31'\np6974\ng26\n(S'Variable_Type'\n(I2\nttRp6975\nsS'Y48:%RateA 39-46'\np6976\ng26\n(S'Variable_Type'\n(I2\nttRp6977\nsS'Y60:%RateA 82-83'\np6978\ng26\n(S'Variable_Type'\n(I1\nttRp6979\nsS'Y:PMachine87'\np6980\ng26\n(S'Variable_Type'\n(I2\nttRp6981\nsS'Y:VBus121'\np6982\ng26\n(S'Variable_Type'\n(I2\nttRp6983\nsS'Y:VBus120'\np6984\ng26\n(S'Variable_Type'\n(I2\nttRp6985\nsS'Y:VBus123'\np6986\ng26\n(S'Variable_Type'\n(I2\nttRp6987\nsS'Y:VBus122'\np6988\ng26\n(S'Variable_Type'\n(I2\nttRp6989\nsS'Y:VBus125'\np6990\ng26\n(S'Variable_Type'\n(I2\nttRp6991\nsS'Y:VBus124'\np6992\ng26\n(S'Variable_Type'\n(I2\nttRp6993\nsS'Y:VBus127'\np6994\ng26\n(S'Variable_Type'\n(I2\nttRp6995\nsS'Y:VBus126'\np6996\ng26\n(S'Variable_Type'\n(I2\nttRp6997\nsS'Y:VBus129'\np6998\ng26\n(S'Variable_Type'\n(I2\nttRp6999\nsS'Y:VBus128'\np7000\ng26\n(S'Variable_Type'\n(I2\nttRp7001\nsS'Y37:%RateA 32-34'\np7002\ng26\n(S'Variable_Type'\n(I2\nttRp7003\nsS'Y43:%RateA 35-37'\np7004\ng26\n(S'Variable_Type'\n(I2\nttRp7005\nsS'Y:PMachine42'\np7006\ng26\n(S'Variable_Type'\n(I2\nttRp7007\nsS'Y0:%RateA 11-28'\np7008\ng26\n(S'Variable_Type'\n(I2\nttRp7009\nsS'Y:VBus67'\np7010\ng26\n(S'Variable_Type'\n(I2\nttRp7011\nsS'Y:Load 37'\np7012\ng26\n(S'Variable_Type'\n(I2\nttRp7013\nsS'Y65:%RateA 104-105'\np7014\ng26\n(S'Variable_Type'\n(I1\nttRp7015\nsS'Y40:%RateA 32-47'\np7016\ng26\n(S'Variable_Type'\n(I2\nttRp7017\nsS'Y:PMachine47'\np7018\ng26\n(S'Variable_Type'\n(I2\nttRp7019\nsS'Y6:%RateA 14-15'\np7020\ng26\n(S'Variable_Type'\n(I1\nttRp7021\nsS'Y:VBus1'\np7022\ng26\n(S'Variable_Type'\n(I2\nttRp7023\nsS'Y44:%RateA 35-39'\np7024\ng26\n(S'Variable_Type'\n(I2\nttRp7025\nsS'Y:PMachine88'\np7026\ng26\n(S'Variable_Type'\n(I1\nttRp7027\nsS'Y42:%RateA 34-36'\np7028\ng26\n(S'Variable_Type'\n(I2\nttRp7029\nsS'Y57:%RateA 76-77'\np7030\ng26\n(S'Variable_Type'\n(I1\nttRp7031\nsS'Y:PMachine89'\np7032\ng26\n(S'Variable_Type'\n(I1\nttRp7033\nsS'Y:VBus77'\np7034\ng26\n(S'Variable_Type'\n(I2\nttRp7035\nsS'Y:VBus29'\np7036\ng26\n(S'Variable_Type'\n(I2\nttRp7037\nsS'Y:VBus28'\np7038\ng26\n(S'Variable_Type'\n(I2\nttRp7039\nsS'Y:VBus27'\np7040\ng26\n(S'Variable_Type'\n(I2\nttRp7041\nsS'Y:VBus26'\np7042\ng26\n(S'Variable_Type'\n(I2\nttRp7043\nsS'Y:VBus25'\np7044\ng26\n(S'Variable_Type'\n(I2\nttRp7045\nsS'Y:VBus24'\np7046\ng26\n(S'Variable_Type'\n(I2\nttRp7047\nsS'Y:VBus23'\np7048\ng26\n(S'Variable_Type'\n(I2\nttRp7049\nsS'Y:VBus22'\np7050\ng26\n(S'Variable_Type'\n(I2\nttRp7051\nsS'Y:VBus21'\np7052\ng26\n(S'Variable_Type'\n(I2\nttRp7053\nsS'Y:VBus20'\np7054\ng26\n(S'Variable_Type'\n(I2\nttRp7055\nsS'Y:VBus85'\np7056\ng26\n(S'Variable_Type'\n(I2\nttRp7057\nsS'Y66:%RateA 106-107'\np7058\ng26\n(S'Variable_Type'\n(I1\nttRp7059\nsS'Y:VBus84'\np7060\ng26\n(S'Variable_Type'\n(I2\nttRp7061\nsS'Y52:%RateA 55-56'\np7062\ng26\n(S'Variable_Type'\n(I1\nttRp7063\nsS'Y2:%RateA 12-24'\np7064\ng26\n(S'Variable_Type'\n(I2\nttRp7065\nsS'Y:VBus112'\np7066\ng26\n(S'Variable_Type'\n(I2\nttRp7067\nsS'Y:VBus132'\np7068\ng26\n(S'Variable_Type'\n(I2\nttRp7069\nsS'Y:PMachine58'\np7070\ng26\n(S'Variable_Type'\n(I2\nttRp7071\nsS'Y:VBus130'\np7072\ng26\n(S'Variable_Type'\n(I2\nttRp7073\nsS'Y:VBus131'\np7074\ng26\n(S'Variable_Type'\n(I2\nttRp7075\nsS'Y:VBus136'\np7076\ng26\n(S'Variable_Type'\n(I2\nttRp7077\nsS'Y:VBus137'\np7078\ng26\n(S'Variable_Type'\n(I2\nttRp7079\nsS'Y:VBus134'\np7080\ng26\n(S'Variable_Type'\n(I2\nttRp7081\nsS'Y:VBus135'\np7082\ng26\n(S'Variable_Type'\n(I2\nttRp7083\nsS'Y:VBus81'\np7084\ng26\n(S'Variable_Type'\n(I2\nttRp7085\nsS'Y:PMachine53'\np7086\ng26\n(S'Variable_Type'\n(I2\nttRp7087\nsS'Y:VBus139'\np7088\ng26\n(S'Variable_Type'\n(I2\nttRp7089\nsS'Y30:%RateA 25-29'\np7090\ng26\n(S'Variable_Type'\n(I2\nttRp7091\nsS'Y:VBus115'\np7092\ng26\n(S'Variable_Type'\n(I2\nttRp7093\nsS'Y:PMachine124'\np7094\ng26\n(S'Variable_Type'\n(I2\nttRp7095\nsS'Y:VBus83'\np7096\ng26\n(S'Variable_Type'\n(I2\nttRp7097\nsS'Y:PMachine125'\np7098\ng26\n(S'Variable_Type'\n(I2\nttRp7099\nsS'Y25:%RateA 23-41'\np7100\ng26\n(S'Variable_Type'\n(I2\nttRp7101\nsS'Y:%Losses'\np7102\ng26\n(S'Variable_Type'\n(I2\nttRp7103\nsS'Y:VBus12'\np7104\ng26\n(S'Variable_Type'\n(I2\nttRp7105\nsS'Y:VBus13'\np7106\ng26\n(S'Variable_Type'\n(I2\nttRp7107\nsS'Y50:%RateA 51-52'\np7108\ng26\n(S'Variable_Type'\n(I1\nttRp7109\nsS'Y:VBus11'\np7110\ng26\n(S'Variable_Type'\n(I2\nttRp7111\nsS'Y:VBus16'\np7112\ng26\n(S'Variable_Type'\n(I2\nttRp7113\nsS'Y:VBus17'\np7114\ng26\n(S'Variable_Type'\n(I2\nttRp7115\nsS'Y:VBus14'\np7116\ng26\n(S'Variable_Type'\n(I2\nttRp7117\nsS'Y:VBus15'\np7118\ng26\n(S'Variable_Type'\n(I2\nttRp7119\nsS'Y:VBus113'\np7120\ng26\n(S'Variable_Type'\n(I2\nttRp7121\nsS'Y:PMachine120'\np7122\ng26\n(S'Variable_Type'\n(I2\nttRp7123\nsS'Y:VBus18'\np7124\ng26\n(S'Variable_Type'\n(I2\nttRp7125\nsS'Y:VBus19'\np7126\ng26\n(S'Variable_Type'\n(I2\nttRp7127\nsS'Y4:%RateA 13-25'\np7128\ng26\n(S'Variable_Type'\n(I2\nttRp7129\nsS'DIESEL VAZZIO'\np7130\ng26\n(S'Variable_Type'\n(I2\nttRp7131\nsS'Y35:%RateA 28-47'\np7132\ng26\n(S'Variable_Type'\n(I2\nttRp7133\nsS'Y:PMachine122'\np7134\ng26\n(S'Variable_Type'\n(I2\nttRp7135\nsS'Y16:%RateA 19-21'\np7136\ng26\n(S'Variable_Type'\n(I2\nttRp7137\nsS'Y:VBus92'\np7138\ng26\n(S'Variable_Type'\n(I2\nttRp7139\nsS'Y7:%RateA 14-35'\np7140\ng26\n(S'Variable_Type'\n(I2\nttRp7141\nsS'Y:VBus90'\np7142\ng26\n(S'Variable_Type'\n(I2\nttRp7143\nsS'Y:VBus96'\np7144\ng26\n(S'Variable_Type'\n(I2\nttRp7145\nsS'Y:VBus97'\np7146\ng26\n(S'Variable_Type'\n(I2\nttRp7147\nsS'Y:VBus94'\np7148\ng26\n(S'Variable_Type'\n(I2\nttRp7149\nsS'Y:VBus95'\np7150\ng26\n(S'Variable_Type'\n(I2\nttRp7151\nsS'Y:VBus107'\np7152\ng26\n(S'Variable_Type'\n(I2\nttRp7153\nsS'Y:VBus106'\np7154\ng26\n(S'Variable_Type'\n(I2\nttRp7155\nsS'Y:VBus105'\np7156\ng26\n(S'Variable_Type'\n(I2\nttRp7157\nsS'Y22:%RateA 22-23'\np7158\ng26\n(S'Variable_Type'\n(I1\nttRp7159\nsS'Y:VBus103'\np7160\ng26\n(S'Variable_Type'\n(I2\nttRp7161\nsS'Y:VBus102'\np7162\ng26\n(S'Variable_Type'\n(I2\nttRp7163\nsS'Y:VBus101'\np7164\ng26\n(S'Variable_Type'\n(I2\nttRp7165\nsS'Y:VBus100'\np7166\ng26\n(S'Variable_Type'\n(I2\nttRp7167\nsS'Y:Load 55'\np7168\ng26\n(S'Variable_Type'\n(I2\nttRp7169\nsS'Y:Load 57'\np7170\ng26\n(S'Variable_Type'\n(I2\nttRp7171\nsS'Y:Load 51'\np7172\ng26\n(S'Variable_Type'\n(I2\nttRp7173\nsS'Y:VBus54'\np7174\ng26\n(S'Variable_Type'\n(I2\nttRp7175\nsS'Y:VBus109'\np7176\ng26\n(S'Variable_Type'\n(I2\nttRp7177\nsS'Y46:%RateA 36-48'\np7178\ng26\n(S'Variable_Type'\n(I2\nttRp7179\nsS'Y:Load 80'\np7180\ng26\n(S'Variable_Type'\n(I2\nttRp7181\nsS'Y:PMachine133'\np7182\ng26\n(S'Variable_Type'\n(I2\nttRp7183\nsS'Y:VBus55'\np7184\ng26\n(S'Variable_Type'\n(I2\nttRp7185\nsS'Y:PMachine29'\np7186\ng26\n(S'Variable_Type'\n(I1\nttRp7187\nsS'Y24:%RateA 23-32'\np7188\ng26\n(S'Variable_Type'\n(I2\nttRp7189\nsS'X:lineOff#'\np7190\ng26\n(S'Variable_Type'\n(I2\nttRp7191\nsS'Y:Max%A'\np7192\ng26\n(S'Variable_Type'\n(I2\nttRp7193\nsS'Y:NbeTransit_0.9-1'\np7194\ng26\n(S'Variable_Type'\n(I1\nttRp7195\nsS'XProdEolienne%Pnom'\np7196\ng26\n(S'Variable_Type'\n(I2\nttRp7197\nsS'Y33:%RateA 27-33'\np7198\ng26\n(S'Variable_Type'\n(I2\nttRp7199\nsS'Y59:%RateA 80-81'\np7200\ng26\n(S'Variable_Type'\n(I1\nttRp7201\nsS'Y:VBus65'\np7202\ng26\n(S'Variable_Type'\n(I2\nttRp7203\nsS'TAC VAZZIO'\np7204\ng26\n(S'Variable_Type'\n(I2\nttRp7205\nsS'Y:VBus118'\np7206\ng26\n(S'Variable_Type'\n(I2\nttRp7207\nsS'Y:VBus119'\np7208\ng26\n(S'Variable_Type'\n(I2\nttRp7209\nsS'Y:PMachine117'\np7210\ng26\n(S'Variable_Type'\n(I2\nttRp7211\nsS'Y:PMachine116'\np7212\ng26\n(S'Variable_Type'\n(I2\nttRp7213\nsS'Y:PMachine111'\np7214\ng26\n(S'Variable_Type'\n(I2\nttRp7215\nsS'Y:VBus88'\np7216\ng26\n(S'Variable_Type'\n(I2\nttRp7217\nsS'Y:PMachine113'\np7218\ng26\n(S'Variable_Type'\n(I2\nttRp7219\nsS'Y:VBus93'\np7220\ng26\n(S'Variable_Type'\n(I2\nttRp7221\nsS'Y:VBus110'\np7222\ng26\n(S'Variable_Type'\n(I2\nttRp7223\nsS'Y:VBus111'\np7224\ng26\n(S'Variable_Type'\n(I2\nttRp7225\nsS'Y:VBus87'\np7226\ng26\n(S'Variable_Type'\n(I2\nttRp7227\nsS'Y12:%RateA 18-30'\np7228\ng26\n(S'Variable_Type'\n(I2\nttRp7229\nsS'Y:VBus114'\np7230\ng26\n(S'Variable_Type'\n(I2\nttRp7231\nsS'Y:VBus80'\np7232\ng26\n(S'Variable_Type'\n(I2\nttRp7233\nsS'Y:VBus116'\np7234\ng26\n(S'Variable_Type'\n(I2\nttRp7235\nsS'Y:VBus82'\np7236\ng26\n(S'Variable_Type'\n(I2\nttRp7237\nsS'Y61:%RateA 84-85'\np7238\ng26\n(S'Variable_Type'\n(I1\nttRp7239\nsS'Y31:%RateA 26-41'\np7240\ng26\n(S'Variable_Type'\n(I2\nttRp7241\nsS'Y:PMachine131'\np7242\ng26\n(S'Variable_Type'\n(I2\nttRp7243\nsS'Y47:%RateA 38-43'\np7244\ng26\n(S'Variable_Type'\n(I2\nttRp7245\nsS'Y:Load 42'\np7246\ng26\n(S'Variable_Type'\n(I2\nttRp7247\nsS'Y:PMachine85'\np7248\ng26\n(S'Variable_Type'\n(I2\nttRp7249\nsS'Y32:%RateA 26-46'\np7250\ng26\n(S'Variable_Type'\n(I2\nttRp7251\nsS'Y:PMachine132'\np7252\ng26\n(S'Variable_Type'\n(I2\nttRp7253\nsS'Y18:%RateA 19-27'\np7254\ng26\n(S'Variable_Type'\n(I2\nttRp7255\nsS'Y:VBus86'\np7256\ng26\n(S'Variable_Type'\n(I2\nttRp7257\nsS'Y63:%RateA 95-96'\np7258\ng26\n(S'Variable_Type'\n(I1\nttRp7259\nsS'Y17:%RateA 19-22'\np7260\ng26\n(S'Variable_Type'\n(I2\nttRp7261\nsS'Y41:%RateA 32-48'\np7262\ng26\n(S'Variable_Type'\n(I2\nttRp7263\nsS'Y:PMachine30'\np7264\ng26\n(S'Variable_Type'\n(I2\nttRp7265\nsS'Y:VBus117'\np7266\ng26\n(S'Variable_Type'\n(I2\nttRp7267\nsS'Y56:%RateA 72-73'\np7268\ng26\n(S'Variable_Type'\n(I1\nttRp7269\nsS'Y68:%RateA 112-113'\np7270\ng26\n(S'Variable_Type'\n(I1\nttRp7271\nsS'Y:PMachine130'\np7272\ng26\n(S'Variable_Type'\n(I2\nttRp7273\nsS'Y27:%RateA 24-33'\np7274\ng26\n(S'Variable_Type'\n(I2\nttRp7275\nsS'Y:PMachine106'\np7276\ng26\n(S'Variable_Type'\n(I2\nttRp7277\nsS'Y:PMachine107'\np7278\ng26\n(S'Variable_Type'\n(I2\nttRp7279\nsS'Y:PMachine104'\np7280\ng26\n(S'Variable_Type'\n(I2\nttRp7281\nsS'Y:VBus73'\np7282\ng26\n(S'Variable_Type'\n(I2\nttRp7283\nsS'Y:VBus74'\np7284\ng26\n(S'Variable_Type'\n(I2\nttRp7285\nsS'Y:VBus75'\np7286\ng26\n(S'Variable_Type'\n(I2\nttRp7287\nsS'Y:VBus76'\np7288\ng26\n(S'Variable_Type'\n(I2\nttRp7289\nsS'Y:PMachine101'\np7290\ng26\n(S'Variable_Type'\n(I2\nttRp7291\nsS'Y:VBus78'\np7292\ng26\n(S'Variable_Type'\n(I2\nttRp7293\nsS'Y:Load 59'\np7294\ng26\n(S'Variable_Type'\n(I2\nttRp7295\nsS'Y:PMachine115'\np7296\ng26\n(S'Variable_Type'\n(I2\nttRp7297\nsS'Y51:%RateA 53-54'\np7298\ng26\n(S'Variable_Type'\n(I1\nttRp7299\nsS'Y67:%RateA 108-109'\np7300\ng26\n(S'Variable_Type'\n(I1\nttRp7301\nsS'Y:PMachine109'\np7302\ng26\n(S'Variable_Type'\n(I2\nttRp7303\nsS'Y:PMachine83'\np7304\ng26\n(S'Variable_Type'\n(I2\nttRp7305\nsS'Y:PMachine81'\np7306\ng26\n(S'Variable_Type'\n(I2\nttRp7307\nsS'Y:PMachine86'\np7308\ng26\n(S'Variable_Type'\n(I2\nttRp7309\nsS'Y:Load 76'\np7310\ng26\n(S'Variable_Type'\n(I2\nttRp7311\nsS'Y:Load 74'\np7312\ng26\n(S'Variable_Type'\n(I2\nttRp7313\nsS'Y45:%RateA 36-37'\np7314\ng26\n(S'Variable_Type'\n(I2\nttRp7315\nsS'Y58:%RateA 78-79'\np7316\ng26\n(S'Variable_Type'\n(I1\nttRp7317\nsS'Y:Load 78'\np7318\ng26\n(S'Variable_Type'\n(I2\nttRp7319\nsS'X:Load(pu)'\np7320\ng26\n(S'Variable_Type'\n(I2\nttRp7321\nsS'Y5:%RateA 13-29'\np7322\ng26\n(S'Variable_Type'\n(I2\nttRp7323\nsS'Y:PMachine118'\np7324\ng26\n(S'Variable_Type'\n(I2\nttRp7325\nsS'Y1:%RateA 11-47'\np7326\ng26\n(S'Variable_Type'\n(I2\nttRp7327\nsS'Y:VBus60'\np7328\ng26\n(S'Variable_Type'\n(I2\nttRp7329\nsS'Y:PMachine137'\np7330\ng26\n(S'Variable_Type'\n(I1\nttRp7331\nsS'Y29:%RateA 25-29'\np7332\ng26\n(S'Variable_Type'\n(I2\nttRp7333\nsS'Y:VBus66'\np7334\ng26\n(S'Variable_Type'\n(I2\nttRp7335\nsS'Y36:%RateA 29-30'\np7336\ng26\n(S'Variable_Type'\n(I1\nttRp7337\nsS'Y54:%RateA 59-60'\np7338\ng26\n(S'Variable_Type'\n(I1\nttRp7339\nsS'Y:Load 90'\np7340\ng26\n(S'Variable_Type'\n(I2\nttRp7341\nsS'Y9:%RateA 16-32'\np7342\ng26\n(S'Variable_Type'\n(I2\nttRp7343\nsS'INTERCOS'\np7344\ng26\n(S'Variable_Type'\n(I2\nttRp7345\nsS'Y:Load 95'\np7346\ng26\n(S'Variable_Type'\n(I2\nttRp7347\nsS'Y:VBus63'\np7348\ng26\n(S'Variable_Type'\n(I2\nttRp7349\nsS'Y:VBus62'\np7350\ng26\n(S'Variable_Type'\n(I2\nttRp7351\nsS'Y:VBus61'\np7352\ng26\n(S'Variable_Type'\n(I2\nttRp7353\nsS'Y55:%RateA 61-62'\np7354\ng26\n(S'Variable_Type'\n(I1\nttRp7355\nsS'Y8:%RateA 15-35'\np7356\ng26\n(S'Variable_Type'\n(I2\nttRp7357\nsS'Y:PMachine136'\np7358\ng26\n(S'Variable_Type'\n(I1\nttRp7359\nsS'Y:PMachine135'\np7360\ng26\n(S'Variable_Type'\n(I1\nttRp7361\nsS'Y:VBus64'\np7362\ng26\n(S'Variable_Type'\n(I2\nttRp7363\nsS'Y:PMachine94'\np7364\ng26\n(S'Variable_Type'\n(I2\nttRp7365\nsS'Y:VBus69'\np7366\ng26\n(S'Variable_Type'\n(I2\nttRp7367\nsS'Y:VBus108'\np7368\ng26\n(S'Variable_Type'\n(I2\nttRp7369\nsS'Y:PMachine139'\np7370\ng26\n(S'Variable_Type'\n(I1\nttRp7371\nsS'Y:PMachine97'\np7372\ng26\n(S'Variable_Type'\n(I2\nttRp7373\nsS'Y:PMachine92'\np7374\ng26\n(S'Variable_Type'\n(I2\nttRp7375\nsS'Y:VBus68'\np7376\ng26\n(S'Variable_Type'\n(I2\nttRp7377\nsS'Y:Load 61'\np7378\ng26\n(S'Variable_Type'\n(I2\nttRp7379\nsS'Y:VBus89'\np7380\ng26\n(S'Variable_Type'\n(I2\nttRp7381\nsS'Y21:%RateA 21-43'\np7382\ng26\n(S'Variable_Type'\n(I2\nttRp7383\nsS'Y:PMachine90'\np7384\ng26\n(S'Variable_Type'\n(I2\nttRp7385\nsS'Y:PMachine14'\np7386\ng26\n(S'Variable_Type'\n(I2\nttRp7387\nsS'Y:PMachine63'\np7388\ng26\n(S'Variable_Type'\n(I2\nttRp7389\nsS'Y:PMachine93'\np7390\ng26\n(S'Variable_Type'\n(I2\nttRp7391\nsS'Y:PConsoTot'\np7392\ng26\n(S'Variable_Type'\n(I2\nttRp7393\nsS'Y23:%RateA 22-31'\np7394\ng26\n(S'Variable_Type'\n(I2\nttRp7395\nsS'Y19:%RateA 20-26'\np7396\ng26\n(S'Variable_Type'\n(I2\nttRp7397\nsS'Y:PMachine18'\np7398\ng26\n(S'Variable_Type'\n(I2\nttRp7399\nsS'Y:VBus34'\np7400\ng26\n(S'Variable_Type'\n(I2\nttRp7401\nsS'Y:NbeTension'\np7402\ng26\n(S'Variable_Type'\n(I2\nttRp7403\nsS'TOT PV'\np7404\ng26\n(S'Variable_Type'\n(I2\nttRp7405\nsS'Y:PMachine128'\np7406\ng26\n(S'Variable_Type'\n(I2\nttRp7407\nsS'Y:PMachine129'\np7408\ng26\n(S'Variable_Type'\n(I2\nttRp7409\nsS'Y:VBus133'\np7410\ng26\n(S'Variable_Type'\n(I2\nttRp7411\nsS'Y:Load 82'\np7412\ng26\n(S'Variable_Type'\n(I2\nttRp7413\nsS'Y:VBus30'\np7414\ng26\n(S'Variable_Type'\n(I2\nttRp7415\nsS'Y:PMachine126'\np7416\ng26\n(S'Variable_Type'\n(I2\nttRp7417\nsS'Y:PMachine127'\np7418\ng26\n(S'Variable_Type'\n(I2\nttRp7419\nsS'Y:Load 86'\np7420\ng26\n(S'Variable_Type'\n(I2\nttRp7421\nsS'Y:PMachine121'\np7422\ng26\n(S'Variable_Type'\n(I2\nttRp7423\nsS'Y:Load 84'\np7424\ng26\n(S'Variable_Type'\n(I2\nttRp7425\nsS'Y:PMachine123'\np7426\ng26\n(S'Variable_Type'\n(I2\nttRp7427\nsS'Y:Load 102'\np7428\ng26\n(S'Variable_Type'\n(I2\nttRp7429\nsS'Y:VBus57'\np7430\ng26\n(S'Variable_Type'\n(I2\nttRp7431\nsS'Y:Load 100'\np7432\ng26\n(S'Variable_Type'\n(I2\nttRp7433\nsS'Y:Load 101'\np7434\ng26\n(S'Variable_Type'\n(I2\nttRp7435\nsS'Y:VBus52'\np7436\ng26\n(S'Variable_Type'\n(I2\nttRp7437\nsS'Y:VBus53'\np7438\ng26\n(S'Variable_Type'\n(I2\nttRp7439\nsS'Y:Load 104'\np7440\ng26\n(S'Variable_Type'\n(I2\nttRp7441\nsS'Y:VBus51'\np7442\ng26\n(S'Variable_Type'\n(I2\nttRp7443\nsS'Y:Load 108'\np7444\ng26\n(S'Variable_Type'\n(I2\nttRp7445\nsS'Y64:%RateA 102-103'\np7446\ng26\n(S'Variable_Type'\n(I1\nttRp7447\nsS'Y:PMachine112'\np7448\ng26\n(S'Variable_Type'\n(I2\nttRp7449\nsS'Y:VBus58'\np7450\ng26\n(S'Variable_Type'\n(I2\nttRp7451\nsS'Y:VBus59'\np7452\ng26\n(S'Variable_Type'\n(I2\nttRp7453\nsS'Y:Load 53'\np7454\ng26\n(S'Variable_Type'\n(I2\nttRp7455\nsS'Y10:%RateA 16-47'\np7456\ng26\n(S'Variable_Type'\n(I2\nttRp7457\nsS'Y:PMachine54'\np7458\ng26\n(S'Variable_Type'\n(I2\nttRp7459\nsS'Y:VBus56'\np7460\ng26\n(S'Variable_Type'\n(I2\nttRp7461\nsS'TOT WIND'\np7462\ng26\n(S'Variable_Type'\n(I2\nttRp7463\nsS'Y3:%RateA 12-24'\np7464\ng26\n(S'Variable_Type'\n(I2\nttRp7465\nsS'Y11:%RateA 17-27'\np7466\ng26\n(S'Variable_Type'\n(I2\nttRp7467\nsS'Y:PMachine114'\np7468\ng26\n(S'Variable_Type'\n(I2\nttRp7469\nsS'Y:VBus72'\np7470\ng26\n(S'Variable_Type'\n(I2\nttRp7471\nsS'Y:PMachine60'\np7472\ng26\n(S'Variable_Type'\n(I2\nttRp7473\nsS'Y:PMachine61'\np7474\ng26\n(S'Variable_Type'\n(I1\nttRp7475\nsS'Y:PMachine62'\np7476\ng26\n(S'Variable_Type'\n(I2\nttRp7477\nsS'Y:PMachine105'\np7478\ng26\n(S'Variable_Type'\n(I2\nttRp7479\nsS'Y:PMachine64'\np7480\ng26\n(S'Variable_Type'\n(I2\nttRp7481\nsS'Y:PMachine65'\np7482\ng26\n(S'Variable_Type'\n(I2\nttRp7483\nsS'Y:PMachine66'\np7484\ng26\n(S'Variable_Type'\n(I2\nttRp7485\nsS'Y:PMachine67'\np7486\ng26\n(S'Variable_Type'\n(I2\nttRp7487\nsS'Y:PMachine68'\np7488\ng26\n(S'Variable_Type'\n(I2\nttRp7489\nsS'Y:PMachine102'\np7490\ng26\n(S'Variable_Type'\n(I2\nttRp7491\nsS'X:ProdPV%Pnom'\np7492\ng26\n(S'Variable_Type'\n(I2\nttRp7493\nsS'Y:VBus138'\np7494\ng26\n(S'Variable_Type'\n(I2\nttRp7495\nsS'Y26:%RateA 24-25'\np7496\ng26\n(S'Variable_Type'\n(I1\nttRp7497\nssg630\n(dp7498\nsg632\n(dp7499\ng2509\n(S'INTERCOS'\np7500\ng7345\ntp7501\nsg2512\n(g638\nI0\ntp7502\nsg2514\n(g7500\ng7345\ntp7503\nsg2516\n(S''\nI0\ntp7504\nsg2518\n(S''\nI0\ntp7505\nsg2520\n(NI-2\ntp7506\nsg2522\n((lI-2\ntp7507\nssg650\nF1369931977.266\nsba(iOWContexts\nContext\np7508\n(dp7509\ng20\n(lp7510\ng1272\nasg23\n(dp7511\nS'Y:VBus48'\np7512\ng26\n(S'Variable_Type'\n(I2\nttRp7513\nsS'Y15:%RateA 18-44'\np7514\ng26\n(S'Variable_Type'\n(I2\nttRp7515\nsS'Y:VBus41'\np7516\ng26\n(S'Variable_Type'\n(I2\nttRp7517\nsS'Y:VBus40'\np7518\ng26\n(S'Variable_Type'\n(I2\nttRp7519\nsS'Y:VBus43'\np7520\ng26\n(S'Variable_Type'\n(I2\nttRp7521\nsS'Y:VBus42'\np7522\ng26\n(S'Variable_Type'\n(I2\nttRp7523\nsS'Y:VBus45'\np7524\ng26\n(S'Variable_Type'\n(I2\nttRp7525\nsS'Y:VBus44'\np7526\ng26\n(S'Variable_Type'\n(I2\nttRp7527\nsS'Y:VBus47'\np7528\ng26\n(S'Variable_Type'\n(I2\nttRp7529\nsS'Y:VBus46'\np7530\ng26\n(S'Variable_Type'\n(I2\nttRp7531\nsS'Y39:%RateA 32-45'\np7532\ng26\n(S'Variable_Type'\n(I2\nttRp7533\nsS'Y:Load 110'\np7534\ng26\n(S'Variable_Type'\n(I2\nttRp7535\nsS'Y:Load 115'\np7536\ng26\n(S'Variable_Type'\n(I2\nttRp7537\nsS'Y:VBus79'\np7538\ng26\n(S'Variable_Type'\n(I2\nttRp7539\nsS'Y13:%RateA 18-30'\np7540\ng26\n(S'Variable_Type'\n(I2\nttRp7541\nsS'Y34:%RateA 28-38'\np7542\ng26\n(S'Variable_Type'\n(I2\nttRp7543\nsS'Y:NbeTransit'\np7544\ng26\n(S'Variable_Type'\n(I1\nttRp7545\nsS'Y:VBus104'\np7546\ng26\n(S'Variable_Type'\n(I2\nttRp7547\nsS'Y20:%RateA 20-44'\np7548\ng26\n(S'Variable_Type'\n(I2\nttRp7549\nsS'DIESEL CASA'\np7550\ng26\n(S'Variable_Type'\n(I2\nttRp7551\nsS'Y38:%RateA 32-45'\np7552\ng26\n(S'Variable_Type'\n(I2\nttRp7553\nsS'Y:PMachine73'\np7554\ng26\n(S'Variable_Type'\n(I2\nttRp7555\nsS'Y:PMachine72'\np7556\ng26\n(S'Variable_Type'\n(I2\nttRp7557\nsS'Y49:%RateA 40-48'\np7558\ng26\n(S'Variable_Type'\n(I2\nttRp7559\nsS'Y:PMachine77'\np7560\ng26\n(S'Variable_Type'\n(I2\nttRp7561\nsS'Y:PMachine75'\np7562\ng26\n(S'Variable_Type'\n(I2\nttRp7563\nsS'Y:PMachine74'\np7564\ng26\n(S'Variable_Type'\n(I2\nttRp7565\nsS'Y:PMachine78'\np7566\ng26\n(S'Variable_Type'\n(I1\nttRp7567\nsS'Y:PMachine138'\np7568\ng26\n(S'Variable_Type'\n(I1\nttRp7569\nsS'Y28:%RateA 24-42'\np7570\ng26\n(S'Variable_Type'\n(I2\nttRp7571\nsS'Y:PProdTot'\np7572\ng26\n(S'Variable_Type'\n(I2\nttRp7573\nsS'Y:PMachine69'\np7574\ng26\n(S'Variable_Type'\n(I2\nttRp7575\nsS'Y:VBus38'\np7576\ng26\n(S'Variable_Type'\n(I2\nttRp7577\nsS'Y:VBus39'\np7578\ng26\n(S'Variable_Type'\n(I2\nttRp7579\nsS'Y62:%RateA 86-87'\np7580\ng26\n(S'Variable_Type'\n(I1\nttRp7581\nsS'Y:PMachine1'\np7582\ng26\n(S'Variable_Type'\n(I2\nttRp7583\nsS'Y:VBus35'\np7584\ng26\n(S'Variable_Type'\n(I2\nttRp7585\nsS'Y:VBus36'\np7586\ng26\n(S'Variable_Type'\n(I2\nttRp7587\nsS'Y:VBus37'\np7588\ng26\n(S'Variable_Type'\n(I2\nttRp7589\nsS'Y:VBus30'\np7590\ng26\n(S'Variable_Type'\n(I2\nttRp7591\nsS'Y:VBus31'\np7592\ng26\n(S'Variable_Type'\n(I2\nttRp7593\nsS'Y:VBus32'\np7594\ng26\n(S'Variable_Type'\n(I2\nttRp7595\nsS'Y:VBus33'\np7596\ng26\n(S'Variable_Type'\n(I2\nttRp7597\nsS'Y53:%RateA 57-58'\np7598\ng26\n(S'Variable_Type'\n(I1\nttRp7599\nsS'Y14:%RateA 18-31'\np7600\ng26\n(S'Variable_Type'\n(I2\nttRp7601\nsS'Y48:%RateA 39-46'\np7602\ng26\n(S'Variable_Type'\n(I2\nttRp7603\nsS'Y60:%RateA 82-83'\np7604\ng26\n(S'Variable_Type'\n(I1\nttRp7605\nsS'Y:PMachine87'\np7606\ng26\n(S'Variable_Type'\n(I2\nttRp7607\nsS'Y:VBus121'\np7608\ng26\n(S'Variable_Type'\n(I2\nttRp7609\nsS'Y:VBus120'\np7610\ng26\n(S'Variable_Type'\n(I2\nttRp7611\nsS'Y:VBus123'\np7612\ng26\n(S'Variable_Type'\n(I2\nttRp7613\nsS'Y:VBus122'\np7614\ng26\n(S'Variable_Type'\n(I2\nttRp7615\nsS'Y:VBus125'\np7616\ng26\n(S'Variable_Type'\n(I2\nttRp7617\nsS'Y:VBus124'\np7618\ng26\n(S'Variable_Type'\n(I2\nttRp7619\nsS'Y:VBus127'\np7620\ng26\n(S'Variable_Type'\n(I2\nttRp7621\nsS'Y:VBus126'\np7622\ng26\n(S'Variable_Type'\n(I2\nttRp7623\nsS'Y:VBus129'\np7624\ng26\n(S'Variable_Type'\n(I2\nttRp7625\nsS'Y:VBus128'\np7626\ng26\n(S'Variable_Type'\n(I2\nttRp7627\nsS'Y37:%RateA 32-34'\np7628\ng26\n(S'Variable_Type'\n(I2\nttRp7629\nsS'Y43:%RateA 35-37'\np7630\ng26\n(S'Variable_Type'\n(I2\nttRp7631\nsS'Y:PMachine42'\np7632\ng26\n(S'Variable_Type'\n(I2\nttRp7633\nsS'Y0:%RateA 11-28'\np7634\ng26\n(S'Variable_Type'\n(I2\nttRp7635\nsS'Y:VBus67'\np7636\ng26\n(S'Variable_Type'\n(I2\nttRp7637\nsS'Y:Load 37'\np7638\ng26\n(S'Variable_Type'\n(I2\nttRp7639\nsS'Y65:%RateA 104-105'\np7640\ng26\n(S'Variable_Type'\n(I1\nttRp7641\nsS'Y40:%RateA 32-47'\np7642\ng26\n(S'Variable_Type'\n(I2\nttRp7643\nsS'Y:PMachine47'\np7644\ng26\n(S'Variable_Type'\n(I2\nttRp7645\nsS'Y6:%RateA 14-15'\np7646\ng26\n(S'Variable_Type'\n(I1\nttRp7647\nsS'Y:VBus1'\np7648\ng26\n(S'Variable_Type'\n(I2\nttRp7649\nsS'Y44:%RateA 35-39'\np7650\ng26\n(S'Variable_Type'\n(I2\nttRp7651\nsS'Y:PMachine88'\np7652\ng26\n(S'Variable_Type'\n(I1\nttRp7653\nsS'Y42:%RateA 34-36'\np7654\ng26\n(S'Variable_Type'\n(I2\nttRp7655\nsS'Y57:%RateA 76-77'\np7656\ng26\n(S'Variable_Type'\n(I1\nttRp7657\nsS'Y:PMachine89'\np7658\ng26\n(S'Variable_Type'\n(I1\nttRp7659\nsS'Y:VBus77'\np7660\ng26\n(S'Variable_Type'\n(I2\nttRp7661\nsS'Y:VBus29'\np7662\ng26\n(S'Variable_Type'\n(I2\nttRp7663\nsS'Y:VBus28'\np7664\ng26\n(S'Variable_Type'\n(I2\nttRp7665\nsS'Y:VBus27'\np7666\ng26\n(S'Variable_Type'\n(I2\nttRp7667\nsS'Y:VBus26'\np7668\ng26\n(S'Variable_Type'\n(I2\nttRp7669\nsS'Y:VBus25'\np7670\ng26\n(S'Variable_Type'\n(I2\nttRp7671\nsS'Y:VBus24'\np7672\ng26\n(S'Variable_Type'\n(I2\nttRp7673\nsS'Y:VBus23'\np7674\ng26\n(S'Variable_Type'\n(I2\nttRp7675\nsS'Y:VBus22'\np7676\ng26\n(S'Variable_Type'\n(I2\nttRp7677\nsS'Y:VBus21'\np7678\ng26\n(S'Variable_Type'\n(I2\nttRp7679\nsS'Y:VBus20'\np7680\ng26\n(S'Variable_Type'\n(I2\nttRp7681\nsS'Y:VBus85'\np7682\ng26\n(S'Variable_Type'\n(I2\nttRp7683\nsS'Y:VBus84'\np7684\ng26\n(S'Variable_Type'\n(I2\nttRp7685\nsS'Y52:%RateA 55-56'\np7686\ng26\n(S'Variable_Type'\n(I1\nttRp7687\nsS'Y2:%RateA 12-24'\np7688\ng26\n(S'Variable_Type'\n(I2\nttRp7689\nsS'Y:VBus112'\np7690\ng26\n(S'Variable_Type'\n(I2\nttRp7691\nsS'Y:VBus132'\np7692\ng26\n(S'Variable_Type'\n(I2\nttRp7693\nsS'Y:PMachine58'\np7694\ng26\n(S'Variable_Type'\n(I2\nttRp7695\nsS'Y:VBus130'\np7696\ng26\n(S'Variable_Type'\n(I2\nttRp7697\nsS'Y:VBus131'\np7698\ng26\n(S'Variable_Type'\n(I2\nttRp7699\nsS'Y:VBus136'\np7700\ng26\n(S'Variable_Type'\n(I2\nttRp7701\nsS'Y:VBus137'\np7702\ng26\n(S'Variable_Type'\n(I2\nttRp7703\nsS'Y:VBus134'\np7704\ng26\n(S'Variable_Type'\n(I2\nttRp7705\nsS'Y:VBus135'\np7706\ng26\n(S'Variable_Type'\n(I2\nttRp7707\nsS'Y:VBus81'\np7708\ng26\n(S'Variable_Type'\n(I2\nttRp7709\nsS'Y:PMachine53'\np7710\ng26\n(S'Variable_Type'\n(I2\nttRp7711\nsS'Y:VBus139'\np7712\ng26\n(S'Variable_Type'\n(I2\nttRp7713\nsS'Y30:%RateA 25-29'\np7714\ng26\n(S'Variable_Type'\n(I2\nttRp7715\nsS'Y:VBus115'\np7716\ng26\n(S'Variable_Type'\n(I2\nttRp7717\nsS'Y:PMachine124'\np7718\ng26\n(S'Variable_Type'\n(I2\nttRp7719\nsS'Y:VBus83'\np7720\ng26\n(S'Variable_Type'\n(I2\nttRp7721\nsS'Y66:%RateA 106-107'\np7722\ng26\n(S'Variable_Type'\n(I1\nttRp7723\nsS'Y25:%RateA 23-41'\np7724\ng26\n(S'Variable_Type'\n(I2\nttRp7725\nsS'Y:%Losses'\np7726\ng26\n(S'Variable_Type'\n(I2\nttRp7727\nsS'Y:VBus12'\np7728\ng26\n(S'Variable_Type'\n(I2\nttRp7729\nsS'Y:VBus13'\np7730\ng26\n(S'Variable_Type'\n(I2\nttRp7731\nsS'Y50:%RateA 51-52'\np7732\ng26\n(S'Variable_Type'\n(I1\nttRp7733\nsS'Y:VBus11'\np7734\ng26\n(S'Variable_Type'\n(I2\nttRp7735\nsS'Y:VBus16'\np7736\ng26\n(S'Variable_Type'\n(I2\nttRp7737\nsS'Y:VBus17'\np7738\ng26\n(S'Variable_Type'\n(I2\nttRp7739\nsS'Y:VBus14'\np7740\ng26\n(S'Variable_Type'\n(I2\nttRp7741\nsS'Y:VBus15'\np7742\ng26\n(S'Variable_Type'\n(I2\nttRp7743\nsS'Y:VBus113'\np7744\ng26\n(S'Variable_Type'\n(I2\nttRp7745\nsS'Y:PMachine120'\np7746\ng26\n(S'Variable_Type'\n(I2\nttRp7747\nsS'Y:VBus18'\np7748\ng26\n(S'Variable_Type'\n(I2\nttRp7749\nsS'Y:VBus19'\np7750\ng26\n(S'Variable_Type'\n(I2\nttRp7751\nsS'Y4:%RateA 13-25'\np7752\ng26\n(S'Variable_Type'\n(I2\nttRp7753\nsS'DIESEL VAZZIO'\np7754\ng26\n(S'Variable_Type'\n(I2\nttRp7755\nsS'Y35:%RateA 28-47'\np7756\ng26\n(S'Variable_Type'\n(I2\nttRp7757\nsS'Y:PMachine122'\np7758\ng26\n(S'Variable_Type'\n(I2\nttRp7759\nsS'Y16:%RateA 19-21'\np7760\ng26\n(S'Variable_Type'\n(I2\nttRp7761\nsS'Y:VBus92'\np7762\ng26\n(S'Variable_Type'\n(I2\nttRp7763\nsS'Y7:%RateA 14-35'\np7764\ng26\n(S'Variable_Type'\n(I2\nttRp7765\nsS'Y:VBus90'\np7766\ng26\n(S'Variable_Type'\n(I2\nttRp7767\nsS'Y:VBus96'\np7768\ng26\n(S'Variable_Type'\n(I2\nttRp7769\nsS'Y:VBus97'\np7770\ng26\n(S'Variable_Type'\n(I2\nttRp7771\nsS'Y:VBus94'\np7772\ng26\n(S'Variable_Type'\n(I2\nttRp7773\nsS'Y:VBus95'\np7774\ng26\n(S'Variable_Type'\n(I2\nttRp7775\nsS'Y:VBus107'\np7776\ng26\n(S'Variable_Type'\n(I2\nttRp7777\nsS'Y:VBus106'\np7778\ng26\n(S'Variable_Type'\n(I2\nttRp7779\nsS'Y:VBus105'\np7780\ng26\n(S'Variable_Type'\n(I2\nttRp7781\nsS'Y22:%RateA 22-23'\np7782\ng26\n(S'Variable_Type'\n(I1\nttRp7783\nsS'Y:VBus103'\np7784\ng26\n(S'Variable_Type'\n(I2\nttRp7785\nsS'Y:VBus102'\np7786\ng26\n(S'Variable_Type'\n(I2\nttRp7787\nsS'Y:VBus101'\np7788\ng26\n(S'Variable_Type'\n(I2\nttRp7789\nsS'Y:VBus100'\np7790\ng26\n(S'Variable_Type'\n(I2\nttRp7791\nsS'Y:Load 55'\np7792\ng26\n(S'Variable_Type'\n(I2\nttRp7793\nsS'Y:Load 57'\np7794\ng26\n(S'Variable_Type'\n(I2\nttRp7795\nsS'Y:Load 51'\np7796\ng26\n(S'Variable_Type'\n(I2\nttRp7797\nsS'Y:VBus54'\np7798\ng26\n(S'Variable_Type'\n(I2\nttRp7799\nsS'Y:VBus109'\np7800\ng26\n(S'Variable_Type'\n(I2\nttRp7801\nsS'Y46:%RateA 36-48'\np7802\ng26\n(S'Variable_Type'\n(I2\nttRp7803\nsS'Y:Load 80'\np7804\ng26\n(S'Variable_Type'\n(I2\nttRp7805\nsS'Y:PMachine133'\np7806\ng26\n(S'Variable_Type'\n(I2\nttRp7807\nsS'Y:VBus55'\np7808\ng26\n(S'Variable_Type'\n(I2\nttRp7809\nsS'Y:PMachine29'\np7810\ng26\n(S'Variable_Type'\n(I1\nttRp7811\nsS'Y24:%RateA 23-32'\np7812\ng26\n(S'Variable_Type'\n(I2\nttRp7813\nsS'X:lineOff#'\np7814\ng26\n(S'Variable_Type'\n(I2\nttRp7815\nsS'Y:Max%A'\np7816\ng26\n(S'Variable_Type'\n(I2\nttRp7817\nsS'Y:NbeTransit_0.9-1'\np7818\ng26\n(S'Variable_Type'\n(I1\nttRp7819\nsS'XProdEolienne%Pnom'\np7820\ng26\n(S'Variable_Type'\n(I2\nttRp7821\nsS'Y33:%RateA 27-33'\np7822\ng26\n(S'Variable_Type'\n(I2\nttRp7823\nsS'Y59:%RateA 80-81'\np7824\ng26\n(S'Variable_Type'\n(I1\nttRp7825\nsS'Y:VBus65'\np7826\ng26\n(S'Variable_Type'\n(I2\nttRp7827\nsS'TAC VAZZIO'\np7828\ng26\n(S'Variable_Type'\n(I2\nttRp7829\nsS'Y:VBus118'\np7830\ng26\n(S'Variable_Type'\n(I2\nttRp7831\nsS'Y:VBus119'\np7832\ng26\n(S'Variable_Type'\n(I2\nttRp7833\nsS'Y:PMachine117'\np7834\ng26\n(S'Variable_Type'\n(I2\nttRp7835\nsS'Y:PMachine116'\np7836\ng26\n(S'Variable_Type'\n(I2\nttRp7837\nsS'Y:PMachine111'\np7838\ng26\n(S'Variable_Type'\n(I2\nttRp7839\nsS'Y:VBus88'\np7840\ng26\n(S'Variable_Type'\n(I2\nttRp7841\nsS'Y:PMachine113'\np7842\ng26\n(S'Variable_Type'\n(I2\nttRp7843\nsS'Y:VBus93'\np7844\ng26\n(S'Variable_Type'\n(I2\nttRp7845\nsS'Y:VBus110'\np7846\ng26\n(S'Variable_Type'\n(I2\nttRp7847\nsS'Y:VBus111'\np7848\ng26\n(S'Variable_Type'\n(I2\nttRp7849\nsS'Y:VBus87'\np7850\ng26\n(S'Variable_Type'\n(I2\nttRp7851\nsS'Y12:%RateA 18-30'\np7852\ng26\n(S'Variable_Type'\n(I2\nttRp7853\nsS'Y:VBus114'\np7854\ng26\n(S'Variable_Type'\n(I2\nttRp7855\nsS'Y:VBus80'\np7856\ng26\n(S'Variable_Type'\n(I2\nttRp7857\nsS'Y:VBus116'\np7858\ng26\n(S'Variable_Type'\n(I2\nttRp7859\nsS'Y:VBus82'\np7860\ng26\n(S'Variable_Type'\n(I2\nttRp7861\nsS'Y61:%RateA 84-85'\np7862\ng26\n(S'Variable_Type'\n(I1\nttRp7863\nsS'Y31:%RateA 26-41'\np7864\ng26\n(S'Variable_Type'\n(I2\nttRp7865\nsS'Y:PMachine131'\np7866\ng26\n(S'Variable_Type'\n(I2\nttRp7867\nsS'Y47:%RateA 38-43'\np7868\ng26\n(S'Variable_Type'\n(I2\nttRp7869\nsS'Y:Load 42'\np7870\ng26\n(S'Variable_Type'\n(I2\nttRp7871\nsS'Y:PMachine85'\np7872\ng26\n(S'Variable_Type'\n(I2\nttRp7873\nsS'Y32:%RateA 26-46'\np7874\ng26\n(S'Variable_Type'\n(I2\nttRp7875\nsS'Y:PMachine132'\np7876\ng26\n(S'Variable_Type'\n(I2\nttRp7877\nsS'Y18:%RateA 19-27'\np7878\ng26\n(S'Variable_Type'\n(I2\nttRp7879\nsS'Y:VBus86'\np7880\ng26\n(S'Variable_Type'\n(I2\nttRp7881\nsS'Y63:%RateA 95-96'\np7882\ng26\n(S'Variable_Type'\n(I1\nttRp7883\nsS'Y17:%RateA 19-22'\np7884\ng26\n(S'Variable_Type'\n(I2\nttRp7885\nsS'Y41:%RateA 32-48'\np7886\ng26\n(S'Variable_Type'\n(I2\nttRp7887\nsS'Y:PMachine30'\np7888\ng26\n(S'Variable_Type'\n(I2\nttRp7889\nsS'Y:VBus117'\np7890\ng26\n(S'Variable_Type'\n(I2\nttRp7891\nsS'Y56:%RateA 72-73'\np7892\ng26\n(S'Variable_Type'\n(I1\nttRp7893\nsS'Y68:%RateA 112-113'\np7894\ng26\n(S'Variable_Type'\n(I1\nttRp7895\nsS'Y:PMachine130'\np7896\ng26\n(S'Variable_Type'\n(I2\nttRp7897\nsS'Y27:%RateA 24-33'\np7898\ng26\n(S'Variable_Type'\n(I2\nttRp7899\nsS'Y:PMachine106'\np7900\ng26\n(S'Variable_Type'\n(I2\nttRp7901\nsS'Y:PMachine107'\np7902\ng26\n(S'Variable_Type'\n(I2\nttRp7903\nsS'Y:PMachine104'\np7904\ng26\n(S'Variable_Type'\n(I2\nttRp7905\nsS'Y:VBus73'\np7906\ng26\n(S'Variable_Type'\n(I2\nttRp7907\nsS'Y:VBus74'\np7908\ng26\n(S'Variable_Type'\n(I2\nttRp7909\nsS'Y:VBus75'\np7910\ng26\n(S'Variable_Type'\n(I2\nttRp7911\nsS'Y:VBus76'\np7912\ng26\n(S'Variable_Type'\n(I2\nttRp7913\nsS'Y:PMachine101'\np7914\ng26\n(S'Variable_Type'\n(I2\nttRp7915\nsS'Y:VBus78'\np7916\ng26\n(S'Variable_Type'\n(I2\nttRp7917\nsS'Y:Load 59'\np7918\ng26\n(S'Variable_Type'\n(I2\nttRp7919\nsS'Y:PMachine115'\np7920\ng26\n(S'Variable_Type'\n(I2\nttRp7921\nsS'Y51:%RateA 53-54'\np7922\ng26\n(S'Variable_Type'\n(I1\nttRp7923\nsS'Y67:%RateA 108-109'\np7924\ng26\n(S'Variable_Type'\n(I1\nttRp7925\nsS'Y:PMachine109'\np7926\ng26\n(S'Variable_Type'\n(I2\nttRp7927\nsS'Y:PMachine83'\np7928\ng26\n(S'Variable_Type'\n(I2\nttRp7929\nsS'Y:PMachine81'\np7930\ng26\n(S'Variable_Type'\n(I2\nttRp7931\nsS'Y:PMachine86'\np7932\ng26\n(S'Variable_Type'\n(I2\nttRp7933\nsS'Y:Load 76'\np7934\ng26\n(S'Variable_Type'\n(I2\nttRp7935\nsS'Y:Load 74'\np7936\ng26\n(S'Variable_Type'\n(I2\nttRp7937\nsS'Y45:%RateA 36-37'\np7938\ng26\n(S'Variable_Type'\n(I2\nttRp7939\nsS'Y58:%RateA 78-79'\np7940\ng26\n(S'Variable_Type'\n(I1\nttRp7941\nsS'Y:Load 78'\np7942\ng26\n(S'Variable_Type'\n(I2\nttRp7943\nsS'X:Load(pu)'\np7944\ng26\n(S'Variable_Type'\n(I2\nttRp7945\nsS'Y5:%RateA 13-29'\np7946\ng26\n(S'Variable_Type'\n(I2\nttRp7947\nsS'Y:PMachine118'\np7948\ng26\n(S'Variable_Type'\n(I2\nttRp7949\nsS'Y1:%RateA 11-47'\np7950\ng26\n(S'Variable_Type'\n(I2\nttRp7951\nsS'Y:VBus60'\np7952\ng26\n(S'Variable_Type'\n(I2\nttRp7953\nsS'Y:PMachine137'\np7954\ng26\n(S'Variable_Type'\n(I1\nttRp7955\nsS'Y29:%RateA 25-29'\np7956\ng26\n(S'Variable_Type'\n(I2\nttRp7957\nsS'Y:VBus66'\np7958\ng26\n(S'Variable_Type'\n(I2\nttRp7959\nsS'Iteration'\np7960\ng26\n(S'Variable_Type'\n(I2\nttRp7961\nsS'Y36:%RateA 29-30'\np7962\ng26\n(S'Variable_Type'\n(I1\nttRp7963\nsS'Y54:%RateA 59-60'\np7964\ng26\n(S'Variable_Type'\n(I1\nttRp7965\nsS'Y:Load 90'\np7966\ng26\n(S'Variable_Type'\n(I2\nttRp7967\nsS'Y9:%RateA 16-32'\np7968\ng26\n(S'Variable_Type'\n(I2\nttRp7969\nsS'Y:PMachine134'\np7970\ng26\n(S'Variable_Type'\n(I1\nttRp7971\nsS'Y:Load 95'\np7972\ng26\n(S'Variable_Type'\n(I2\nttRp7973\nsS'Y:VBus63'\np7974\ng26\n(S'Variable_Type'\n(I2\nttRp7975\nsS'Y:VBus62'\np7976\ng26\n(S'Variable_Type'\n(I2\nttRp7977\nsS'Y:VBus61'\np7978\ng26\n(S'Variable_Type'\n(I2\nttRp7979\nsS'Y55:%RateA 61-62'\np7980\ng26\n(S'Variable_Type'\n(I1\nttRp7981\nsS'Y8:%RateA 15-35'\np7982\ng26\n(S'Variable_Type'\n(I2\nttRp7983\nsS'Y:PMachine136'\np7984\ng26\n(S'Variable_Type'\n(I1\nttRp7985\nsS'Y:PMachine135'\np7986\ng26\n(S'Variable_Type'\n(I1\nttRp7987\nsS'Y:VBus64'\np7988\ng26\n(S'Variable_Type'\n(I2\nttRp7989\nsS'Y:PMachine94'\np7990\ng26\n(S'Variable_Type'\n(I2\nttRp7991\nsS'Y:VBus69'\np7992\ng26\n(S'Variable_Type'\n(I2\nttRp7993\nsS'Y:VBus108'\np7994\ng26\n(S'Variable_Type'\n(I2\nttRp7995\nsS'Y:PMachine139'\np7996\ng26\n(S'Variable_Type'\n(I1\nttRp7997\nsS'Y:PMachine97'\np7998\ng26\n(S'Variable_Type'\n(I2\nttRp7999\nsS'Y:PMachine92'\np8000\ng26\n(S'Variable_Type'\n(I2\nttRp8001\nsS'Y:VBus68'\np8002\ng26\n(S'Variable_Type'\n(I2\nttRp8003\nsS'Y:Load 61'\np8004\ng26\n(S'Variable_Type'\n(I2\nttRp8005\nsS'Y:VBus89'\np8006\ng26\n(S'Variable_Type'\n(I2\nttRp8007\nsS'Y21:%RateA 21-43'\np8008\ng26\n(S'Variable_Type'\n(I2\nttRp8009\nsS'Y:PMachine90'\np8010\ng26\n(S'Variable_Type'\n(I2\nttRp8011\nsS'Y:PMachine14'\np8012\ng26\n(S'Variable_Type'\n(I2\nttRp8013\nsS'Y:PMachine63'\np8014\ng26\n(S'Variable_Type'\n(I2\nttRp8015\nsS'Y:PMachine93'\np8016\ng26\n(S'Variable_Type'\n(I2\nttRp8017\nsS'Y:PConsoTot'\np8018\ng26\n(S'Variable_Type'\n(I2\nttRp8019\nsS'Y23:%RateA 22-31'\np8020\ng26\n(S'Variable_Type'\n(I2\nttRp8021\nsS'Y19:%RateA 20-26'\np8022\ng26\n(S'Variable_Type'\n(I2\nttRp8023\nsS'Y:PMachine18'\np8024\ng26\n(S'Variable_Type'\n(I2\nttRp8025\nsS'Y:VBus34'\np8026\ng26\n(S'Variable_Type'\n(I2\nttRp8027\nsS'Y:NbeTension'\np8028\ng26\n(S'Variable_Type'\n(I2\nttRp8029\nsS'TOT PV'\np8030\ng26\n(S'Variable_Type'\n(I2\nttRp8031\nsS'Y:PMachine128'\np8032\ng26\n(S'Variable_Type'\n(I2\nttRp8033\nsS'Y:PMachine129'\np8034\ng26\n(S'Variable_Type'\n(I2\nttRp8035\nsS'Y:VBus133'\np8036\ng26\n(S'Variable_Type'\n(I2\nttRp8037\nsS'Y:Load 82'\np8038\ng26\n(S'Variable_Type'\n(I2\nttRp8039\nsS'Y:PMachine125'\np8040\ng26\n(S'Variable_Type'\n(I2\nttRp8041\nsS'Y:PMachine126'\np8042\ng26\n(S'Variable_Type'\n(I2\nttRp8043\nsS'Y:PMachine127'\np8044\ng26\n(S'Variable_Type'\n(I2\nttRp8045\nsS'Y:Load 86'\np8046\ng26\n(S'Variable_Type'\n(I2\nttRp8047\nsS'Y:PMachine121'\np8048\ng26\n(S'Variable_Type'\n(I2\nttRp8049\nsS'Y:Load 84'\np8050\ng26\n(S'Variable_Type'\n(I2\nttRp8051\nsS'Y:PMachine123'\np8052\ng26\n(S'Variable_Type'\n(I2\nttRp8053\nsS'Y:Load 102'\np8054\ng26\n(S'Variable_Type'\n(I2\nttRp8055\nsS'Y:VBus57'\np8056\ng26\n(S'Variable_Type'\n(I2\nttRp8057\nsS'Y:Load 100'\np8058\ng26\n(S'Variable_Type'\n(I2\nttRp8059\nsS'Y:Load 101'\np8060\ng26\n(S'Variable_Type'\n(I2\nttRp8061\nsS'Y:VBus52'\np8062\ng26\n(S'Variable_Type'\n(I2\nttRp8063\nsS'Y:VBus53'\np8064\ng26\n(S'Variable_Type'\n(I2\nttRp8065\nsS'Y:Load 104'\np8066\ng26\n(S'Variable_Type'\n(I2\nttRp8067\nsS'Y:VBus51'\np8068\ng26\n(S'Variable_Type'\n(I2\nttRp8069\nsS'Y:Load 108'\np8070\ng26\n(S'Variable_Type'\n(I2\nttRp8071\nsS'Y64:%RateA 102-103'\np8072\ng26\n(S'Variable_Type'\n(I1\nttRp8073\nsS'Y:PMachine112'\np8074\ng26\n(S'Variable_Type'\n(I2\nttRp8075\nsS'Y:VBus58'\np8076\ng26\n(S'Variable_Type'\n(I2\nttRp8077\nsS'Y:VBus59'\np8078\ng26\n(S'Variable_Type'\n(I2\nttRp8079\nsS'Y:Load 53'\np8080\ng26\n(S'Variable_Type'\n(I2\nttRp8081\nsS'Y10:%RateA 16-47'\np8082\ng26\n(S'Variable_Type'\n(I2\nttRp8083\nsS'Y:PMachine54'\np8084\ng26\n(S'Variable_Type'\n(I2\nttRp8085\nsS'Y:VBus56'\np8086\ng26\n(S'Variable_Type'\n(I2\nttRp8087\nsS'TOT WIND'\np8088\ng26\n(S'Variable_Type'\n(I2\nttRp8089\nsS'Y3:%RateA 12-24'\np8090\ng26\n(S'Variable_Type'\n(I2\nttRp8091\nsS'Y11:%RateA 17-27'\np8092\ng26\n(S'Variable_Type'\n(I2\nttRp8093\nsS'Y:PMachine114'\np8094\ng26\n(S'Variable_Type'\n(I2\nttRp8095\nsS'Y:VBus72'\np8096\ng26\n(S'Variable_Type'\n(I2\nttRp8097\nsS'Y:PMachine60'\np8098\ng26\n(S'Variable_Type'\n(I2\nttRp8099\nsS'Y:PMachine61'\np8100\ng26\n(S'Variable_Type'\n(I1\nttRp8101\nsS'Y:PMachine62'\np8102\ng26\n(S'Variable_Type'\n(I2\nttRp8103\nsS'Y:PMachine105'\np8104\ng26\n(S'Variable_Type'\n(I2\nttRp8105\nsS'Y:PMachine64'\np8106\ng26\n(S'Variable_Type'\n(I2\nttRp8107\nsS'Y:PMachine65'\np8108\ng26\n(S'Variable_Type'\n(I2\nttRp8109\nsS'Y:PMachine66'\np8110\ng26\n(S'Variable_Type'\n(I2\nttRp8111\nsS'Y:PMachine67'\np8112\ng26\n(S'Variable_Type'\n(I2\nttRp8113\nsS'Y:PMachine68'\np8114\ng26\n(S'Variable_Type'\n(I2\nttRp8115\nsS'Y:PMachine102'\np8116\ng26\n(S'Variable_Type'\n(I2\nttRp8117\nsS'X:ProdPV%Pnom'\np8118\ng26\n(S'Variable_Type'\n(I2\nttRp8119\nsS'Y:VBus138'\np8120\ng26\n(S'Variable_Type'\n(I2\nttRp8121\nsS'Y26:%RateA 24-25'\np8122\ng26\n(S'Variable_Type'\n(I1\nttRp8123\nssg630\n(dp8124\nsg632\n(dp8125\ng2509\n(S'Iteration'\np8126\ng7961\ntp8127\nsg2512\n(g638\nI0\ntp8128\nsg2514\n(g8126\ng7961\ntp8129\nsg2516\n(S''\nI0\ntp8130\nsg2518\n(S''\nI0\ntp8131\nsg2520\n(NI-2\ntp8132\nsg2522\n((lI-2\ntp8133\nssg650\nF1369931856.0039999\nsba(iOWContexts\nContext\np8134\n(dp8135\ng20\n(lp8136\ng1272\nasg23\n(dp8137\nS'Y:VBus48'\np8138\ng26\n(S'Variable_Type'\n(I2\nttRp8139\nsS'Y15:%RateA 18-44'\np8140\ng26\n(S'Variable_Type'\n(I2\nttRp8141\nsS'Y:VBus41'\np8142\ng26\n(S'Variable_Type'\n(I2\nttRp8143\nsS'Y:VBus40'\np8144\ng26\n(S'Variable_Type'\n(I2\nttRp8145\nsS'Y:VBus43'\np8146\ng26\n(S'Variable_Type'\n(I2\nttRp8147\nsS'Y:VBus42'\np8148\ng26\n(S'Variable_Type'\n(I2\nttRp8149\nsS'Y:VBus45'\np8150\ng26\n(S'Variable_Type'\n(I2\nttRp8151\nsS'Y:VBus44'\np8152\ng26\n(S'Variable_Type'\n(I2\nttRp8153\nsS'Y:VBus47'\np8154\ng26\n(S'Variable_Type'\n(I2\nttRp8155\nsS'Y:VBus46'\np8156\ng26\n(S'Variable_Type'\n(I2\nttRp8157\nsS'Y39:%RateA 32-45'\np8158\ng26\n(S'Variable_Type'\n(I2\nttRp8159\nsS'Y:Load 110'\np8160\ng26\n(S'Variable_Type'\n(I2\nttRp8161\nsS'Y:Load 115'\np8162\ng26\n(S'Variable_Type'\n(I2\nttRp8163\nsS'Y:VBus79'\np8164\ng26\n(S'Variable_Type'\n(I2\nttRp8165\nsS'Y13:%RateA 18-30'\np8166\ng26\n(S'Variable_Type'\n(I2\nttRp8167\nsS'Y34:%RateA 28-38'\np8168\ng26\n(S'Variable_Type'\n(I2\nttRp8169\nsS'Y:NbeTransit'\np8170\ng26\n(S'Variable_Type'\n(I1\nttRp8171\nsS'Y:VBus104'\np8172\ng26\n(S'Variable_Type'\n(I2\nttRp8173\nsS'Y20:%RateA 20-44'\np8174\ng26\n(S'Variable_Type'\n(I2\nttRp8175\nsS'Y38:%RateA 32-45'\np8176\ng26\n(S'Variable_Type'\n(I2\nttRp8177\nsS'Y:PMachine73'\np8178\ng26\n(S'Variable_Type'\n(I2\nttRp8179\nsS'Y:PMachine72'\np8180\ng26\n(S'Variable_Type'\n(I2\nttRp8181\nsS'Y49:%RateA 40-48'\np8182\ng26\n(S'Variable_Type'\n(I2\nttRp8183\nsS'Y:PMachine77'\np8184\ng26\n(S'Variable_Type'\n(I2\nttRp8185\nsS'Y:PMachine75'\np8186\ng26\n(S'Variable_Type'\n(I2\nttRp8187\nsS'Y:PMachine74'\np8188\ng26\n(S'Variable_Type'\n(I2\nttRp8189\nsS'Y:PMachine78'\np8190\ng26\n(S'Variable_Type'\n(I1\nttRp8191\nsS'Y:PMachine138'\np8192\ng26\n(S'Variable_Type'\n(I1\nttRp8193\nsS'Y28:%RateA 24-42'\np8194\ng26\n(S'Variable_Type'\n(I2\nttRp8195\nsS'Y:PProdTot'\np8196\ng26\n(S'Variable_Type'\n(I2\nttRp8197\nsS'Y:PMachine69'\np8198\ng26\n(S'Variable_Type'\n(I2\nttRp8199\nsS'Y:VBus38'\np8200\ng26\n(S'Variable_Type'\n(I2\nttRp8201\nsS'Y:VBus39'\np8202\ng26\n(S'Variable_Type'\n(I2\nttRp8203\nsS'Y62:%RateA 86-87'\np8204\ng26\n(S'Variable_Type'\n(I1\nttRp8205\nsS'Y:PMachine1'\np8206\ng26\n(S'Variable_Type'\n(I2\nttRp8207\nsS'Y:VBus35'\np8208\ng26\n(S'Variable_Type'\n(I2\nttRp8209\nsS'Y:VBus36'\np8210\ng26\n(S'Variable_Type'\n(I2\nttRp8211\nsS'Y:VBus37'\np8212\ng26\n(S'Variable_Type'\n(I2\nttRp8213\nsS'Y:VBus30'\np8214\ng26\n(S'Variable_Type'\n(I2\nttRp8215\nsS'Y:VBus31'\np8216\ng26\n(S'Variable_Type'\n(I2\nttRp8217\nsS'Y:VBus32'\np8218\ng26\n(S'Variable_Type'\n(I2\nttRp8219\nsS'Y:VBus33'\np8220\ng26\n(S'Variable_Type'\n(I2\nttRp8221\nsS'Y53:%RateA 57-58'\np8222\ng26\n(S'Variable_Type'\n(I1\nttRp8223\nsS'Y14:%RateA 18-31'\np8224\ng26\n(S'Variable_Type'\n(I2\nttRp8225\nsS'Y48:%RateA 39-46'\np8226\ng26\n(S'Variable_Type'\n(I2\nttRp8227\nsS'Y60:%RateA 82-83'\np8228\ng26\n(S'Variable_Type'\n(I1\nttRp8229\nsS'Y:PMachine87'\np8230\ng26\n(S'Variable_Type'\n(I2\nttRp8231\nsS'Y:VBus121'\np8232\ng26\n(S'Variable_Type'\n(I2\nttRp8233\nsS'Y:VBus120'\np8234\ng26\n(S'Variable_Type'\n(I2\nttRp8235\nsS'Y:VBus123'\np8236\ng26\n(S'Variable_Type'\n(I2\nttRp8237\nsS'Y:VBus122'\np8238\ng26\n(S'Variable_Type'\n(I2\nttRp8239\nsS'Y:VBus125'\np8240\ng26\n(S'Variable_Type'\n(I2\nttRp8241\nsS'Y:VBus124'\np8242\ng26\n(S'Variable_Type'\n(I2\nttRp8243\nsS'Y:VBus127'\np8244\ng26\n(S'Variable_Type'\n(I2\nttRp8245\nsS'Y:VBus126'\np8246\ng26\n(S'Variable_Type'\n(I2\nttRp8247\nsS'Y:VBus129'\np8248\ng26\n(S'Variable_Type'\n(I2\nttRp8249\nsS'Y:VBus128'\np8250\ng26\n(S'Variable_Type'\n(I2\nttRp8251\nsS'Y37:%RateA 32-34'\np8252\ng26\n(S'Variable_Type'\n(I2\nttRp8253\nsS'Y43:%RateA 35-37'\np8254\ng26\n(S'Variable_Type'\n(I2\nttRp8255\nsS'Y:PMachine42'\np8256\ng26\n(S'Variable_Type'\n(I2\nttRp8257\nsS'Y0:%RateA 11-28'\np8258\ng26\n(S'Variable_Type'\n(I2\nttRp8259\nsS'Y:VBus67'\np8260\ng26\n(S'Variable_Type'\n(I2\nttRp8261\nsS'Y:Load 37'\np8262\ng26\n(S'Variable_Type'\n(I2\nttRp8263\nsS'Y65:%RateA 104-105'\np8264\ng26\n(S'Variable_Type'\n(I1\nttRp8265\nsS'Y40:%RateA 32-47'\np8266\ng26\n(S'Variable_Type'\n(I2\nttRp8267\nsS'Y:PMachine47'\np8268\ng26\n(S'Variable_Type'\n(I2\nttRp8269\nsS'Y6:%RateA 14-15'\np8270\ng26\n(S'Variable_Type'\n(I1\nttRp8271\nsS'Y:VBus1'\np8272\ng26\n(S'Variable_Type'\n(I2\nttRp8273\nsS'Y44:%RateA 35-39'\np8274\ng26\n(S'Variable_Type'\n(I2\nttRp8275\nsS'Y:PMachine88'\np8276\ng26\n(S'Variable_Type'\n(I1\nttRp8277\nsS'Y42:%RateA 34-36'\np8278\ng26\n(S'Variable_Type'\n(I2\nttRp8279\nsS'Y57:%RateA 76-77'\np8280\ng26\n(S'Variable_Type'\n(I1\nttRp8281\nsS'Y:PMachine89'\np8282\ng26\n(S'Variable_Type'\n(I1\nttRp8283\nsS'Y:VBus77'\np8284\ng26\n(S'Variable_Type'\n(I2\nttRp8285\nsS'Y:VBus29'\np8286\ng26\n(S'Variable_Type'\n(I2\nttRp8287\nsS'Y:VBus28'\np8288\ng26\n(S'Variable_Type'\n(I2\nttRp8289\nsS'Y:VBus27'\np8290\ng26\n(S'Variable_Type'\n(I2\nttRp8291\nsS'Y:VBus26'\np8292\ng26\n(S'Variable_Type'\n(I2\nttRp8293\nsS'Y:VBus25'\np8294\ng26\n(S'Variable_Type'\n(I2\nttRp8295\nsS'Y:VBus24'\np8296\ng26\n(S'Variable_Type'\n(I2\nttRp8297\nsS'Y:VBus23'\np8298\ng26\n(S'Variable_Type'\n(I2\nttRp8299\nsS'Y:VBus22'\np8300\ng26\n(S'Variable_Type'\n(I2\nttRp8301\nsS'Y:VBus21'\np8302\ng26\n(S'Variable_Type'\n(I2\nttRp8303\nsS'Y:VBus20'\np8304\ng26\n(S'Variable_Type'\n(I2\nttRp8305\nsS'Y:VBus85'\np8306\ng26\n(S'Variable_Type'\n(I2\nttRp8307\nsS'Y:VBus84'\np8308\ng26\n(S'Variable_Type'\n(I2\nttRp8309\nsS'Y52:%RateA 55-56'\np8310\ng26\n(S'Variable_Type'\n(I1\nttRp8311\nsS'Y2:%RateA 12-24'\np8312\ng26\n(S'Variable_Type'\n(I2\nttRp8313\nsS'Y:VBus112'\np8314\ng26\n(S'Variable_Type'\n(I2\nttRp8315\nsS'Y:VBus132'\np8316\ng26\n(S'Variable_Type'\n(I2\nttRp8317\nsS'Y:PMachine58'\np8318\ng26\n(S'Variable_Type'\n(I2\nttRp8319\nsS'Y:VBus130'\np8320\ng26\n(S'Variable_Type'\n(I2\nttRp8321\nsS'Y:VBus131'\np8322\ng26\n(S'Variable_Type'\n(I2\nttRp8323\nsS'Y:VBus136'\np8324\ng26\n(S'Variable_Type'\n(I2\nttRp8325\nsS'Y:VBus137'\np8326\ng26\n(S'Variable_Type'\n(I2\nttRp8327\nsS'Y:VBus134'\np8328\ng26\n(S'Variable_Type'\n(I2\nttRp8329\nsS'Y:VBus135'\np8330\ng26\n(S'Variable_Type'\n(I2\nttRp8331\nsS'Y:VBus81'\np8332\ng26\n(S'Variable_Type'\n(I2\nttRp8333\nsS'Y:PMachine53'\np8334\ng26\n(S'Variable_Type'\n(I2\nttRp8335\nsS'Y:VBus139'\np8336\ng26\n(S'Variable_Type'\n(I2\nttRp8337\nsS'Y30:%RateA 25-29'\np8338\ng26\n(S'Variable_Type'\n(I2\nttRp8339\nsS'Y:VBus115'\np8340\ng26\n(S'Variable_Type'\n(I2\nttRp8341\nsS'Y:PMachine124'\np8342\ng26\n(S'Variable_Type'\n(I2\nttRp8343\nsS'Y:VBus83'\np8344\ng26\n(S'Variable_Type'\n(I2\nttRp8345\nsS'Y66:%RateA 106-107'\np8346\ng26\n(S'Variable_Type'\n(I1\nttRp8347\nsS'Y25:%RateA 23-41'\np8348\ng26\n(S'Variable_Type'\n(I2\nttRp8349\nsS'Y:%Losses'\np8350\ng26\n(S'Variable_Type'\n(I2\nttRp8351\nsS'Y:VBus12'\np8352\ng26\n(S'Variable_Type'\n(I2\nttRp8353\nsS'Y:VBus13'\np8354\ng26\n(S'Variable_Type'\n(I2\nttRp8355\nsS'Y50:%RateA 51-52'\np8356\ng26\n(S'Variable_Type'\n(I1\nttRp8357\nsS'Y:VBus11'\np8358\ng26\n(S'Variable_Type'\n(I2\nttRp8359\nsS'Y:VBus16'\np8360\ng26\n(S'Variable_Type'\n(I2\nttRp8361\nsS'Y:VBus17'\np8362\ng26\n(S'Variable_Type'\n(I2\nttRp8363\nsS'Y:VBus14'\np8364\ng26\n(S'Variable_Type'\n(I2\nttRp8365\nsS'Y:VBus15'\np8366\ng26\n(S'Variable_Type'\n(I2\nttRp8367\nsS'Y:VBus113'\np8368\ng26\n(S'Variable_Type'\n(I2\nttRp8369\nsS'Y:PMachine120'\np8370\ng26\n(S'Variable_Type'\n(I2\nttRp8371\nsS'Y:VBus18'\np8372\ng26\n(S'Variable_Type'\n(I2\nttRp8373\nsS'Y:VBus19'\np8374\ng26\n(S'Variable_Type'\n(I2\nttRp8375\nsS'Y4:%RateA 13-25'\np8376\ng26\n(S'Variable_Type'\n(I2\nttRp8377\nsS'DIESEL VAZZIO'\np8378\ng26\n(S'Variable_Type'\n(I2\nttRp8379\nsS'Y35:%RateA 28-47'\np8380\ng26\n(S'Variable_Type'\n(I2\nttRp8381\nsS'Y:PMachine122'\np8382\ng26\n(S'Variable_Type'\n(I2\nttRp8383\nsS'Y16:%RateA 19-21'\np8384\ng26\n(S'Variable_Type'\n(I2\nttRp8385\nsS'Y:VBus92'\np8386\ng26\n(S'Variable_Type'\n(I2\nttRp8387\nsS'Y7:%RateA 14-35'\np8388\ng26\n(S'Variable_Type'\n(I2\nttRp8389\nsS'Y:VBus90'\np8390\ng26\n(S'Variable_Type'\n(I2\nttRp8391\nsS'Y:VBus96'\np8392\ng26\n(S'Variable_Type'\n(I2\nttRp8393\nsS'Y:VBus97'\np8394\ng26\n(S'Variable_Type'\n(I2\nttRp8395\nsS'Y:VBus94'\np8396\ng26\n(S'Variable_Type'\n(I2\nttRp8397\nsS'Y:VBus95'\np8398\ng26\n(S'Variable_Type'\n(I2\nttRp8399\nsS'Y:VBus107'\np8400\ng26\n(S'Variable_Type'\n(I2\nttRp8401\nsS'Y:VBus106'\np8402\ng26\n(S'Variable_Type'\n(I2\nttRp8403\nsS'Y:VBus105'\np8404\ng26\n(S'Variable_Type'\n(I2\nttRp8405\nsS'Y22:%RateA 22-23'\np8406\ng26\n(S'Variable_Type'\n(I1\nttRp8407\nsS'Y:VBus103'\np8408\ng26\n(S'Variable_Type'\n(I2\nttRp8409\nsS'Y:VBus102'\np8410\ng26\n(S'Variable_Type'\n(I2\nttRp8411\nsS'Y:VBus101'\np8412\ng26\n(S'Variable_Type'\n(I2\nttRp8413\nsS'Y:VBus100'\np8414\ng26\n(S'Variable_Type'\n(I2\nttRp8415\nsS'Y:Load 55'\np8416\ng26\n(S'Variable_Type'\n(I2\nttRp8417\nsS'Y:Load 57'\np8418\ng26\n(S'Variable_Type'\n(I2\nttRp8419\nsS'Y:Load 51'\np8420\ng26\n(S'Variable_Type'\n(I2\nttRp8421\nsS'Y:VBus54'\np8422\ng26\n(S'Variable_Type'\n(I2\nttRp8423\nsS'Y:VBus109'\np8424\ng26\n(S'Variable_Type'\n(I2\nttRp8425\nsS'Y46:%RateA 36-48'\np8426\ng26\n(S'Variable_Type'\n(I2\nttRp8427\nsS'Y:Load 80'\np8428\ng26\n(S'Variable_Type'\n(I2\nttRp8429\nsS'Y:PMachine133'\np8430\ng26\n(S'Variable_Type'\n(I2\nttRp8431\nsS'Y:VBus55'\np8432\ng26\n(S'Variable_Type'\n(I2\nttRp8433\nsS'Y:PMachine29'\np8434\ng26\n(S'Variable_Type'\n(I1\nttRp8435\nsS'Y24:%RateA 23-32'\np8436\ng26\n(S'Variable_Type'\n(I2\nttRp8437\nsS'X:lineOff#'\np8438\ng26\n(S'Variable_Type'\n(I2\nttRp8439\nsS'Y:Max%A'\np8440\ng26\n(S'Variable_Type'\n(I2\nttRp8441\nsS'Y:NbeTransit_0.9-1'\np8442\ng26\n(S'Variable_Type'\n(I1\nttRp8443\nsS'XProdEolienne%Pnom'\np8444\ng26\n(S'Variable_Type'\n(I2\nttRp8445\nsS'Y33:%RateA 27-33'\np8446\ng26\n(S'Variable_Type'\n(I2\nttRp8447\nsS'Y59:%RateA 80-81'\np8448\ng26\n(S'Variable_Type'\n(I1\nttRp8449\nsS'Y:VBus65'\np8450\ng26\n(S'Variable_Type'\n(I2\nttRp8451\nsS'TAC VAZZIO'\np8452\ng26\n(S'Variable_Type'\n(I2\nttRp8453\nsS'Y:VBus118'\np8454\ng26\n(S'Variable_Type'\n(I2\nttRp8455\nsS'Y:VBus119'\np8456\ng26\n(S'Variable_Type'\n(I2\nttRp8457\nsS'Y:PMachine117'\np8458\ng26\n(S'Variable_Type'\n(I2\nttRp8459\nsS'Y:PMachine116'\np8460\ng26\n(S'Variable_Type'\n(I2\nttRp8461\nsS'Y:PMachine111'\np8462\ng26\n(S'Variable_Type'\n(I2\nttRp8463\nsS'Y:VBus88'\np8464\ng26\n(S'Variable_Type'\n(I2\nttRp8465\nsS'Y:PMachine113'\np8466\ng26\n(S'Variable_Type'\n(I2\nttRp8467\nsS'Y:VBus93'\np8468\ng26\n(S'Variable_Type'\n(I2\nttRp8469\nsS'Y:VBus110'\np8470\ng26\n(S'Variable_Type'\n(I2\nttRp8471\nsS'Y:VBus111'\np8472\ng26\n(S'Variable_Type'\n(I2\nttRp8473\nsS'Y:VBus87'\np8474\ng26\n(S'Variable_Type'\n(I2\nttRp8475\nsS'Y12:%RateA 18-30'\np8476\ng26\n(S'Variable_Type'\n(I2\nttRp8477\nsS'Y:VBus114'\np8478\ng26\n(S'Variable_Type'\n(I2\nttRp8479\nsS'Y:VBus80'\np8480\ng26\n(S'Variable_Type'\n(I2\nttRp8481\nsS'Y:VBus116'\np8482\ng26\n(S'Variable_Type'\n(I2\nttRp8483\nsS'Y:VBus82'\np8484\ng26\n(S'Variable_Type'\n(I2\nttRp8485\nsS'Y61:%RateA 84-85'\np8486\ng26\n(S'Variable_Type'\n(I1\nttRp8487\nsS'Y31:%RateA 26-41'\np8488\ng26\n(S'Variable_Type'\n(I2\nttRp8489\nsS'Y:PMachine131'\np8490\ng26\n(S'Variable_Type'\n(I2\nttRp8491\nsS'Y47:%RateA 38-43'\np8492\ng26\n(S'Variable_Type'\n(I2\nttRp8493\nsS'Y:Load 42'\np8494\ng26\n(S'Variable_Type'\n(I2\nttRp8495\nsS'Y:PMachine85'\np8496\ng26\n(S'Variable_Type'\n(I2\nttRp8497\nsS'Y32:%RateA 26-46'\np8498\ng26\n(S'Variable_Type'\n(I2\nttRp8499\nsS'Y:PMachine132'\np8500\ng26\n(S'Variable_Type'\n(I2\nttRp8501\nsS'Y18:%RateA 19-27'\np8502\ng26\n(S'Variable_Type'\n(I2\nttRp8503\nsS'Y:VBus86'\np8504\ng26\n(S'Variable_Type'\n(I2\nttRp8505\nsS'Y63:%RateA 95-96'\np8506\ng26\n(S'Variable_Type'\n(I1\nttRp8507\nsS'Y17:%RateA 19-22'\np8508\ng26\n(S'Variable_Type'\n(I2\nttRp8509\nsS'Y41:%RateA 32-48'\np8510\ng26\n(S'Variable_Type'\n(I2\nttRp8511\nsS'Y:PMachine30'\np8512\ng26\n(S'Variable_Type'\n(I2\nttRp8513\nsS'Y:VBus117'\np8514\ng26\n(S'Variable_Type'\n(I2\nttRp8515\nsS'Y56:%RateA 72-73'\np8516\ng26\n(S'Variable_Type'\n(I1\nttRp8517\nsS'Y68:%RateA 112-113'\np8518\ng26\n(S'Variable_Type'\n(I1\nttRp8519\nsS'Y:PMachine130'\np8520\ng26\n(S'Variable_Type'\n(I2\nttRp8521\nsS'Y27:%RateA 24-33'\np8522\ng26\n(S'Variable_Type'\n(I2\nttRp8523\nsS'Y:PMachine106'\np8524\ng26\n(S'Variable_Type'\n(I2\nttRp8525\nsS'Y:PMachine107'\np8526\ng26\n(S'Variable_Type'\n(I2\nttRp8527\nsS'Y:PMachine104'\np8528\ng26\n(S'Variable_Type'\n(I2\nttRp8529\nsS'Y:VBus73'\np8530\ng26\n(S'Variable_Type'\n(I2\nttRp8531\nsS'Y:VBus74'\np8532\ng26\n(S'Variable_Type'\n(I2\nttRp8533\nsS'Y:VBus75'\np8534\ng26\n(S'Variable_Type'\n(I2\nttRp8535\nsS'Y:VBus76'\np8536\ng26\n(S'Variable_Type'\n(I2\nttRp8537\nsS'Y:PMachine101'\np8538\ng26\n(S'Variable_Type'\n(I2\nttRp8539\nsS'Y:VBus78'\np8540\ng26\n(S'Variable_Type'\n(I2\nttRp8541\nsS'Y:Load 59'\np8542\ng26\n(S'Variable_Type'\n(I2\nttRp8543\nsS'Y:PMachine115'\np8544\ng26\n(S'Variable_Type'\n(I2\nttRp8545\nsS'Y51:%RateA 53-54'\np8546\ng26\n(S'Variable_Type'\n(I1\nttRp8547\nsS'Y67:%RateA 108-109'\np8548\ng26\n(S'Variable_Type'\n(I1\nttRp8549\nsS'Y:PMachine109'\np8550\ng26\n(S'Variable_Type'\n(I2\nttRp8551\nsS'Y:PMachine83'\np8552\ng26\n(S'Variable_Type'\n(I2\nttRp8553\nsS'Y:PMachine81'\np8554\ng26\n(S'Variable_Type'\n(I2\nttRp8555\nsS'Y:PMachine86'\np8556\ng26\n(S'Variable_Type'\n(I2\nttRp8557\nsS'Y:Load 76'\np8558\ng26\n(S'Variable_Type'\n(I2\nttRp8559\nsS'Y:Load 74'\np8560\ng26\n(S'Variable_Type'\n(I2\nttRp8561\nsS'Y45:%RateA 36-37'\np8562\ng26\n(S'Variable_Type'\n(I2\nttRp8563\nsS'Y58:%RateA 78-79'\np8564\ng26\n(S'Variable_Type'\n(I1\nttRp8565\nsS'Y:Load 78'\np8566\ng26\n(S'Variable_Type'\n(I2\nttRp8567\nsS'X:Load(pu)'\np8568\ng26\n(S'Variable_Type'\n(I2\nttRp8569\nsS'Y5:%RateA 13-29'\np8570\ng26\n(S'Variable_Type'\n(I2\nttRp8571\nsS'Y:PMachine118'\np8572\ng26\n(S'Variable_Type'\n(I2\nttRp8573\nsS'Y1:%RateA 11-47'\np8574\ng26\n(S'Variable_Type'\n(I2\nttRp8575\nsS'Y:VBus60'\np8576\ng26\n(S'Variable_Type'\n(I2\nttRp8577\nsS'Y:PMachine137'\np8578\ng26\n(S'Variable_Type'\n(I1\nttRp8579\nsS'Y29:%RateA 25-29'\np8580\ng26\n(S'Variable_Type'\n(I2\nttRp8581\nsS'Y:VBus66'\np8582\ng26\n(S'Variable_Type'\n(I2\nttRp8583\nsS'Iteration'\np8584\ng26\n(S'Variable_Type'\n(I2\nttRp8585\nsS'Y36:%RateA 29-30'\np8586\ng26\n(S'Variable_Type'\n(I1\nttRp8587\nsS'Y54:%RateA 59-60'\np8588\ng26\n(S'Variable_Type'\n(I1\nttRp8589\nsS'Y:Load 90'\np8590\ng26\n(S'Variable_Type'\n(I2\nttRp8591\nsS'Y9:%RateA 16-32'\np8592\ng26\n(S'Variable_Type'\n(I2\nttRp8593\nsS'Y:PMachine134'\np8594\ng26\n(S'Variable_Type'\n(I1\nttRp8595\nsS'Y:Load 95'\np8596\ng26\n(S'Variable_Type'\n(I2\nttRp8597\nsS'Y:VBus63'\np8598\ng26\n(S'Variable_Type'\n(I2\nttRp8599\nsS'Y:VBus62'\np8600\ng26\n(S'Variable_Type'\n(I2\nttRp8601\nsS'Y:VBus61'\np8602\ng26\n(S'Variable_Type'\n(I2\nttRp8603\nsS'Y55:%RateA 61-62'\np8604\ng26\n(S'Variable_Type'\n(I1\nttRp8605\nsS'Y8:%RateA 15-35'\np8606\ng26\n(S'Variable_Type'\n(I2\nttRp8607\nsS'Y:PMachine136'\np8608\ng26\n(S'Variable_Type'\n(I1\nttRp8609\nsS'Y:PMachine135'\np8610\ng26\n(S'Variable_Type'\n(I1\nttRp8611\nsS'Y:VBus64'\np8612\ng26\n(S'Variable_Type'\n(I2\nttRp8613\nsS'Y:PMachine94'\np8614\ng26\n(S'Variable_Type'\n(I2\nttRp8615\nsS'Y:VBus69'\np8616\ng26\n(S'Variable_Type'\n(I2\nttRp8617\nsS'Y:VBus108'\np8618\ng26\n(S'Variable_Type'\n(I2\nttRp8619\nsS'Y:PMachine139'\np8620\ng26\n(S'Variable_Type'\n(I1\nttRp8621\nsS'Y:PMachine97'\np8622\ng26\n(S'Variable_Type'\n(I2\nttRp8623\nsS'Y:PMachine92'\np8624\ng26\n(S'Variable_Type'\n(I2\nttRp8625\nsS'Y:VBus68'\np8626\ng26\n(S'Variable_Type'\n(I2\nttRp8627\nsS'Y:Load 61'\np8628\ng26\n(S'Variable_Type'\n(I2\nttRp8629\nsS'Y:VBus89'\np8630\ng26\n(S'Variable_Type'\n(I2\nttRp8631\nsS'Y21:%RateA 21-43'\np8632\ng26\n(S'Variable_Type'\n(I2\nttRp8633\nsS'Y:PMachine90'\np8634\ng26\n(S'Variable_Type'\n(I2\nttRp8635\nsS'Y:PMachine14'\np8636\ng26\n(S'Variable_Type'\n(I2\nttRp8637\nsS'Y:PMachine63'\np8638\ng26\n(S'Variable_Type'\n(I2\nttRp8639\nsS'Y:PMachine93'\np8640\ng26\n(S'Variable_Type'\n(I2\nttRp8641\nsS'Y:PConsoTot'\np8642\ng26\n(S'Variable_Type'\n(I2\nttRp8643\nsS'Y23:%RateA 22-31'\np8644\ng26\n(S'Variable_Type'\n(I2\nttRp8645\nsS'Y19:%RateA 20-26'\np8646\ng26\n(S'Variable_Type'\n(I2\nttRp8647\nsS'Y:PMachine18'\np8648\ng26\n(S'Variable_Type'\n(I2\nttRp8649\nsS'Y:VBus34'\np8650\ng26\n(S'Variable_Type'\n(I2\nttRp8651\nsS'Y:NbeTension'\np8652\ng26\n(S'Variable_Type'\n(I2\nttRp8653\nsS'TOT PV'\np8654\ng26\n(S'Variable_Type'\n(I2\nttRp8655\nsS'Y:PMachine128'\np8656\ng26\n(S'Variable_Type'\n(I2\nttRp8657\nsS'Y:PMachine129'\np8658\ng26\n(S'Variable_Type'\n(I2\nttRp8659\nsS'Y:VBus133'\np8660\ng26\n(S'Variable_Type'\n(I2\nttRp8661\nsS'Y:Load 82'\np8662\ng26\n(S'Variable_Type'\n(I2\nttRp8663\nsS'Y:PMachine125'\np8664\ng26\n(S'Variable_Type'\n(I2\nttRp8665\nsS'Y:PMachine126'\np8666\ng26\n(S'Variable_Type'\n(I2\nttRp8667\nsS'Y:PMachine127'\np8668\ng26\n(S'Variable_Type'\n(I2\nttRp8669\nsS'Y:Load 86'\np8670\ng26\n(S'Variable_Type'\n(I2\nttRp8671\nsS'Y:PMachine121'\np8672\ng26\n(S'Variable_Type'\n(I2\nttRp8673\nsS'Y:Load 84'\np8674\ng26\n(S'Variable_Type'\n(I2\nttRp8675\nsS'Y:PMachine123'\np8676\ng26\n(S'Variable_Type'\n(I2\nttRp8677\nsS'Y:Load 102'\np8678\ng26\n(S'Variable_Type'\n(I2\nttRp8679\nsS'Y:VBus57'\np8680\ng26\n(S'Variable_Type'\n(I2\nttRp8681\nsS'Y:Load 100'\np8682\ng26\n(S'Variable_Type'\n(I2\nttRp8683\nsS'Y:Load 101'\np8684\ng26\n(S'Variable_Type'\n(I2\nttRp8685\nsS'Y:VBus52'\np8686\ng26\n(S'Variable_Type'\n(I2\nttRp8687\nsS'Y:VBus53'\np8688\ng26\n(S'Variable_Type'\n(I2\nttRp8689\nsS'Y:Load 104'\np8690\ng26\n(S'Variable_Type'\n(I2\nttRp8691\nsS'Y:VBus51'\np8692\ng26\n(S'Variable_Type'\n(I2\nttRp8693\nsS'Y:Load 108'\np8694\ng26\n(S'Variable_Type'\n(I2\nttRp8695\nsS'Y64:%RateA 102-103'\np8696\ng26\n(S'Variable_Type'\n(I1\nttRp8697\nsS'Y:PMachine112'\np8698\ng26\n(S'Variable_Type'\n(I2\nttRp8699\nsS'Y:VBus58'\np8700\ng26\n(S'Variable_Type'\n(I2\nttRp8701\nsS'Y:VBus59'\np8702\ng26\n(S'Variable_Type'\n(I2\nttRp8703\nsS'Y:Load 53'\np8704\ng26\n(S'Variable_Type'\n(I2\nttRp8705\nsS'Y10:%RateA 16-47'\np8706\ng26\n(S'Variable_Type'\n(I2\nttRp8707\nsS'Y:PMachine54'\np8708\ng26\n(S'Variable_Type'\n(I2\nttRp8709\nsS'Y:VBus56'\np8710\ng26\n(S'Variable_Type'\n(I2\nttRp8711\nsS'TOT WIND'\np8712\ng26\n(S'Variable_Type'\n(I2\nttRp8713\nsS'Y3:%RateA 12-24'\np8714\ng26\n(S'Variable_Type'\n(I2\nttRp8715\nsS'Y11:%RateA 17-27'\np8716\ng26\n(S'Variable_Type'\n(I2\nttRp8717\nsS'Y:PMachine114'\np8718\ng26\n(S'Variable_Type'\n(I2\nttRp8719\nsS'Y:VBus72'\np8720\ng26\n(S'Variable_Type'\n(I2\nttRp8721\nsS'Y:PMachine60'\np8722\ng26\n(S'Variable_Type'\n(I2\nttRp8723\nsS'Y:PMachine61'\np8724\ng26\n(S'Variable_Type'\n(I1\nttRp8725\nsS'Y:PMachine62'\np8726\ng26\n(S'Variable_Type'\n(I2\nttRp8727\nsS'Y:PMachine105'\np8728\ng26\n(S'Variable_Type'\n(I2\nttRp8729\nsS'Y:PMachine64'\np8730\ng26\n(S'Variable_Type'\n(I2\nttRp8731\nsS'Y:PMachine65'\np8732\ng26\n(S'Variable_Type'\n(I2\nttRp8733\nsS'Y:PMachine66'\np8734\ng26\n(S'Variable_Type'\n(I2\nttRp8735\nsS'Y:PMachine67'\np8736\ng26\n(S'Variable_Type'\n(I2\nttRp8737\nsS'Y:PMachine68'\np8738\ng26\n(S'Variable_Type'\n(I2\nttRp8739\nsS'Y:PMachine102'\np8740\ng26\n(S'Variable_Type'\n(I2\nttRp8741\nsS'X:ProdPV%Pnom'\np8742\ng26\n(S'Variable_Type'\n(I2\nttRp8743\nsS'Y:VBus138'\np8744\ng26\n(S'Variable_Type'\n(I2\nttRp8745\nsS'Y26:%RateA 24-25'\np8746\ng26\n(S'Variable_Type'\n(I1\nttRp8747\nssg630\n(dp8748\nsg632\n(dp8749\ng2509\n(S'Iteration'\np8750\ng8585\ntp8751\nsg2512\n(g638\nI0\ntp8752\nsg2514\n(g8750\ng8585\ntp8753\nsg2516\n(S''\nI0\ntp8754\nsg2518\n(S''\nI0\ntp8755\nsg2520\n(NI-2\ntp8756\nsg2522\n((lI-2\ntp8757\nssg650\nF1369931731.908\nsba(iOWContexts\nContext\np8758\n(dp8759\ng20\n(lp8760\ng1272\nasg23\n(dp8761\nS'Y:VBus48'\np8762\ng26\n(S'Variable_Type'\n(I2\nttRp8763\nsS'Y15:%RateA 18-44'\np8764\ng26\n(S'Variable_Type'\n(I2\nttRp8765\nsS'Y:VBus41'\np8766\ng26\n(S'Variable_Type'\n(I2\nttRp8767\nsS'Y:VBus40'\np8768\ng26\n(S'Variable_Type'\n(I2\nttRp8769\nsS'Y:VBus43'\np8770\ng26\n(S'Variable_Type'\n(I2\nttRp8771\nsS'Y:VBus42'\np8772\ng26\n(S'Variable_Type'\n(I2\nttRp8773\nsS'Y:VBus45'\np8774\ng26\n(S'Variable_Type'\n(I2\nttRp8775\nsS'Y:VBus44'\np8776\ng26\n(S'Variable_Type'\n(I2\nttRp8777\nsS'Y:VBus47'\np8778\ng26\n(S'Variable_Type'\n(I2\nttRp8779\nsS'Y:VBus46'\np8780\ng26\n(S'Variable_Type'\n(I2\nttRp8781\nsS'Y39:%RateA 32-45'\np8782\ng26\n(S'Variable_Type'\n(I2\nttRp8783\nsS'Y:Load 110'\np8784\ng26\n(S'Variable_Type'\n(I2\nttRp8785\nsS'Y:Load 115'\np8786\ng26\n(S'Variable_Type'\n(I2\nttRp8787\nsS'Y:VBus79'\np8788\ng26\n(S'Variable_Type'\n(I2\nttRp8789\nsS'Y13:%RateA 18-30'\np8790\ng26\n(S'Variable_Type'\n(I2\nttRp8791\nsS'Y34:%RateA 28-38'\np8792\ng26\n(S'Variable_Type'\n(I2\nttRp8793\nsS'Y:NbeTransit'\np8794\ng26\n(S'Variable_Type'\n(I1\nttRp8795\nsS'Y:VBus104'\np8796\ng26\n(S'Variable_Type'\n(I2\nttRp8797\nsS'Y20:%RateA 20-44'\np8798\ng26\n(S'Variable_Type'\n(I2\nttRp8799\nsS'Y38:%RateA 32-45'\np8800\ng26\n(S'Variable_Type'\n(I2\nttRp8801\nsS'Y:PMachine73'\np8802\ng26\n(S'Variable_Type'\n(I2\nttRp8803\nsS'Y:PMachine72'\np8804\ng26\n(S'Variable_Type'\n(I2\nttRp8805\nsS'Y49:%RateA 40-48'\np8806\ng26\n(S'Variable_Type'\n(I2\nttRp8807\nsS'Y:PMachine77'\np8808\ng26\n(S'Variable_Type'\n(I2\nttRp8809\nsS'Y:PMachine75'\np8810\ng26\n(S'Variable_Type'\n(I2\nttRp8811\nsS'Y:PMachine74'\np8812\ng26\n(S'Variable_Type'\n(I2\nttRp8813\nsS'Y:PMachine78'\np8814\ng26\n(S'Variable_Type'\n(I1\nttRp8815\nsS'Y:PMachine138'\np8816\ng26\n(S'Variable_Type'\n(I1\nttRp8817\nsS'Y28:%RateA 24-42'\np8818\ng26\n(S'Variable_Type'\n(I2\nttRp8819\nsS'Y:PProdTot'\np8820\ng26\n(S'Variable_Type'\n(I2\nttRp8821\nsS'Y:PMachine69'\np8822\ng26\n(S'Variable_Type'\n(I2\nttRp8823\nsS'Y:VBus38'\np8824\ng26\n(S'Variable_Type'\n(I2\nttRp8825\nsS'Y:VBus39'\np8826\ng26\n(S'Variable_Type'\n(I2\nttRp8827\nsS'Y62:%RateA 86-87'\np8828\ng26\n(S'Variable_Type'\n(I1\nttRp8829\nsS'Y:PMachine1'\np8830\ng26\n(S'Variable_Type'\n(I2\nttRp8831\nsS'Y:VBus35'\np8832\ng26\n(S'Variable_Type'\n(I2\nttRp8833\nsS'Y:VBus36'\np8834\ng26\n(S'Variable_Type'\n(I2\nttRp8835\nsS'Y:VBus37'\np8836\ng26\n(S'Variable_Type'\n(I2\nttRp8837\nsS'Y:VBus30'\np8838\ng26\n(S'Variable_Type'\n(I2\nttRp8839\nsS'Y:VBus31'\np8840\ng26\n(S'Variable_Type'\n(I2\nttRp8841\nsS'Y:VBus32'\np8842\ng26\n(S'Variable_Type'\n(I2\nttRp8843\nsS'Y:VBus33'\np8844\ng26\n(S'Variable_Type'\n(I2\nttRp8845\nsS'Y53:%RateA 57-58'\np8846\ng26\n(S'Variable_Type'\n(I1\nttRp8847\nsS'Y14:%RateA 18-31'\np8848\ng26\n(S'Variable_Type'\n(I2\nttRp8849\nsS'Y48:%RateA 39-46'\np8850\ng26\n(S'Variable_Type'\n(I2\nttRp8851\nsS'Y60:%RateA 82-83'\np8852\ng26\n(S'Variable_Type'\n(I1\nttRp8853\nsS'Y:PMachine87'\np8854\ng26\n(S'Variable_Type'\n(I2\nttRp8855\nsS'Y:VBus121'\np8856\ng26\n(S'Variable_Type'\n(I2\nttRp8857\nsS'Y:VBus120'\np8858\ng26\n(S'Variable_Type'\n(I2\nttRp8859\nsS'Y:VBus123'\np8860\ng26\n(S'Variable_Type'\n(I2\nttRp8861\nsS'Y:VBus122'\np8862\ng26\n(S'Variable_Type'\n(I2\nttRp8863\nsS'Y:VBus125'\np8864\ng26\n(S'Variable_Type'\n(I2\nttRp8865\nsS'Y:VBus124'\np8866\ng26\n(S'Variable_Type'\n(I2\nttRp8867\nsS'Y:VBus127'\np8868\ng26\n(S'Variable_Type'\n(I2\nttRp8869\nsS'Y:VBus126'\np8870\ng26\n(S'Variable_Type'\n(I2\nttRp8871\nsS'Y:VBus129'\np8872\ng26\n(S'Variable_Type'\n(I2\nttRp8873\nsS'Y:VBus128'\np8874\ng26\n(S'Variable_Type'\n(I2\nttRp8875\nsS'Y37:%RateA 32-34'\np8876\ng26\n(S'Variable_Type'\n(I2\nttRp8877\nsS'Y43:%RateA 35-37'\np8878\ng26\n(S'Variable_Type'\n(I2\nttRp8879\nsS'Y:PMachine42'\np8880\ng26\n(S'Variable_Type'\n(I2\nttRp8881\nsS'Y0:%RateA 11-28'\np8882\ng26\n(S'Variable_Type'\n(I2\nttRp8883\nsS'Y:VBus67'\np8884\ng26\n(S'Variable_Type'\n(I2\nttRp8885\nsS'Y:Load 37'\np8886\ng26\n(S'Variable_Type'\n(I2\nttRp8887\nsS'Y65:%RateA 104-105'\np8888\ng26\n(S'Variable_Type'\n(I1\nttRp8889\nsS'Y40:%RateA 32-47'\np8890\ng26\n(S'Variable_Type'\n(I2\nttRp8891\nsS'Y:PMachine47'\np8892\ng26\n(S'Variable_Type'\n(I2\nttRp8893\nsS'Y6:%RateA 14-15'\np8894\ng26\n(S'Variable_Type'\n(I1\nttRp8895\nsS'Y:VBus1'\np8896\ng26\n(S'Variable_Type'\n(I2\nttRp8897\nsS'Y44:%RateA 35-39'\np8898\ng26\n(S'Variable_Type'\n(I2\nttRp8899\nsS'Y:PMachine88'\np8900\ng26\n(S'Variable_Type'\n(I1\nttRp8901\nsS'Y42:%RateA 34-36'\np8902\ng26\n(S'Variable_Type'\n(I2\nttRp8903\nsS'Y57:%RateA 76-77'\np8904\ng26\n(S'Variable_Type'\n(I1\nttRp8905\nsS'Y:PMachine89'\np8906\ng26\n(S'Variable_Type'\n(I1\nttRp8907\nsS'Y:VBus77'\np8908\ng26\n(S'Variable_Type'\n(I2\nttRp8909\nsS'Y:VBus29'\np8910\ng26\n(S'Variable_Type'\n(I2\nttRp8911\nsS'Y:VBus28'\np8912\ng26\n(S'Variable_Type'\n(I2\nttRp8913\nsS'Y:VBus27'\np8914\ng26\n(S'Variable_Type'\n(I2\nttRp8915\nsS'Y:VBus26'\np8916\ng26\n(S'Variable_Type'\n(I2\nttRp8917\nsS'Y:VBus25'\np8918\ng26\n(S'Variable_Type'\n(I2\nttRp8919\nsS'Y:VBus24'\np8920\ng26\n(S'Variable_Type'\n(I2\nttRp8921\nsS'Y:VBus23'\np8922\ng26\n(S'Variable_Type'\n(I2\nttRp8923\nsS'Y:VBus22'\np8924\ng26\n(S'Variable_Type'\n(I2\nttRp8925\nsS'Y:VBus21'\np8926\ng26\n(S'Variable_Type'\n(I2\nttRp8927\nsS'Y:VBus20'\np8928\ng26\n(S'Variable_Type'\n(I2\nttRp8929\nsS'Y:VBus85'\np8930\ng26\n(S'Variable_Type'\n(I2\nttRp8931\nsS'Y:VBus84'\np8932\ng26\n(S'Variable_Type'\n(I2\nttRp8933\nsS'Y52:%RateA 55-56'\np8934\ng26\n(S'Variable_Type'\n(I1\nttRp8935\nsS'Y2:%RateA 12-24'\np8936\ng26\n(S'Variable_Type'\n(I2\nttRp8937\nsS'Y:VBus112'\np8938\ng26\n(S'Variable_Type'\n(I2\nttRp8939\nsS'Y:VBus132'\np8940\ng26\n(S'Variable_Type'\n(I2\nttRp8941\nsS'Y:PMachine58'\np8942\ng26\n(S'Variable_Type'\n(I2\nttRp8943\nsS'Y:VBus130'\np8944\ng26\n(S'Variable_Type'\n(I2\nttRp8945\nsS'Y:VBus131'\np8946\ng26\n(S'Variable_Type'\n(I2\nttRp8947\nsS'Y:VBus136'\np8948\ng26\n(S'Variable_Type'\n(I2\nttRp8949\nsS'Y:VBus137'\np8950\ng26\n(S'Variable_Type'\n(I2\nttRp8951\nsS'Y:VBus134'\np8952\ng26\n(S'Variable_Type'\n(I2\nttRp8953\nsS'Y:VBus135'\np8954\ng26\n(S'Variable_Type'\n(I2\nttRp8955\nsS'Y:VBus81'\np8956\ng26\n(S'Variable_Type'\n(I2\nttRp8957\nsS'Y:PMachine53'\np8958\ng26\n(S'Variable_Type'\n(I2\nttRp8959\nsS'Y:VBus139'\np8960\ng26\n(S'Variable_Type'\n(I2\nttRp8961\nsS'Y30:%RateA 25-29'\np8962\ng26\n(S'Variable_Type'\n(I2\nttRp8963\nsS'Y:VBus115'\np8964\ng26\n(S'Variable_Type'\n(I2\nttRp8965\nsS'Y:PMachine124'\np8966\ng26\n(S'Variable_Type'\n(I2\nttRp8967\nsS'Y:VBus83'\np8968\ng26\n(S'Variable_Type'\n(I2\nttRp8969\nsS'Y66:%RateA 106-107'\np8970\ng26\n(S'Variable_Type'\n(I1\nttRp8971\nsS'Y25:%RateA 23-41'\np8972\ng26\n(S'Variable_Type'\n(I2\nttRp8973\nsS'Y:%Losses'\np8974\ng26\n(S'Variable_Type'\n(I2\nttRp8975\nsS'Y:VBus12'\np8976\ng26\n(S'Variable_Type'\n(I2\nttRp8977\nsS'Y:VBus13'\np8978\ng26\n(S'Variable_Type'\n(I2\nttRp8979\nsS'Y50:%RateA 51-52'\np8980\ng26\n(S'Variable_Type'\n(I1\nttRp8981\nsS'Y:VBus11'\np8982\ng26\n(S'Variable_Type'\n(I2\nttRp8983\nsS'Y:VBus16'\np8984\ng26\n(S'Variable_Type'\n(I2\nttRp8985\nsS'Y:VBus17'\np8986\ng26\n(S'Variable_Type'\n(I2\nttRp8987\nsS'Y:VBus14'\np8988\ng26\n(S'Variable_Type'\n(I2\nttRp8989\nsS'Y:VBus15'\np8990\ng26\n(S'Variable_Type'\n(I2\nttRp8991\nsS'Y:VBus113'\np8992\ng26\n(S'Variable_Type'\n(I2\nttRp8993\nsS'Y:PMachine120'\np8994\ng26\n(S'Variable_Type'\n(I2\nttRp8995\nsS'Y:VBus18'\np8996\ng26\n(S'Variable_Type'\n(I2\nttRp8997\nsS'Y:VBus19'\np8998\ng26\n(S'Variable_Type'\n(I2\nttRp8999\nsS'Y4:%RateA 13-25'\np9000\ng26\n(S'Variable_Type'\n(I2\nttRp9001\nsS'DIESEL VAZZIO'\np9002\ng26\n(S'Variable_Type'\n(I2\nttRp9003\nsS'Y35:%RateA 28-47'\np9004\ng26\n(S'Variable_Type'\n(I2\nttRp9005\nsS'Y:PMachine122'\np9006\ng26\n(S'Variable_Type'\n(I2\nttRp9007\nsS'Y16:%RateA 19-21'\np9008\ng26\n(S'Variable_Type'\n(I2\nttRp9009\nsS'Y:VBus92'\np9010\ng26\n(S'Variable_Type'\n(I2\nttRp9011\nsS'Y7:%RateA 14-35'\np9012\ng26\n(S'Variable_Type'\n(I2\nttRp9013\nsS'Y:VBus90'\np9014\ng26\n(S'Variable_Type'\n(I2\nttRp9015\nsS'Y:VBus96'\np9016\ng26\n(S'Variable_Type'\n(I2\nttRp9017\nsS'Y:VBus97'\np9018\ng26\n(S'Variable_Type'\n(I2\nttRp9019\nsS'Y:VBus94'\np9020\ng26\n(S'Variable_Type'\n(I2\nttRp9021\nsS'Y:VBus95'\np9022\ng26\n(S'Variable_Type'\n(I2\nttRp9023\nsS'Y:VBus107'\np9024\ng26\n(S'Variable_Type'\n(I2\nttRp9025\nsS'Y:VBus106'\np9026\ng26\n(S'Variable_Type'\n(I2\nttRp9027\nsS'Y:VBus105'\np9028\ng26\n(S'Variable_Type'\n(I2\nttRp9029\nsS'Y22:%RateA 22-23'\np9030\ng26\n(S'Variable_Type'\n(I1\nttRp9031\nsS'Y:VBus103'\np9032\ng26\n(S'Variable_Type'\n(I2\nttRp9033\nsS'Y:VBus102'\np9034\ng26\n(S'Variable_Type'\n(I2\nttRp9035\nsS'Y:VBus101'\np9036\ng26\n(S'Variable_Type'\n(I2\nttRp9037\nsS'Y:VBus100'\np9038\ng26\n(S'Variable_Type'\n(I2\nttRp9039\nsS'Y:Load 55'\np9040\ng26\n(S'Variable_Type'\n(I2\nttRp9041\nsS'Y:Load 57'\np9042\ng26\n(S'Variable_Type'\n(I2\nttRp9043\nsS'Y:Load 51'\np9044\ng26\n(S'Variable_Type'\n(I2\nttRp9045\nsS'Y:VBus54'\np9046\ng26\n(S'Variable_Type'\n(I2\nttRp9047\nsS'Y:VBus109'\np9048\ng26\n(S'Variable_Type'\n(I2\nttRp9049\nsS'Y46:%RateA 36-48'\np9050\ng26\n(S'Variable_Type'\n(I2\nttRp9051\nsS'Y:Load 80'\np9052\ng26\n(S'Variable_Type'\n(I2\nttRp9053\nsS'Y:PMachine133'\np9054\ng26\n(S'Variable_Type'\n(I2\nttRp9055\nsS'Y:VBus55'\np9056\ng26\n(S'Variable_Type'\n(I2\nttRp9057\nsS'Y:PMachine29'\np9058\ng26\n(S'Variable_Type'\n(I1\nttRp9059\nsS'Y24:%RateA 23-32'\np9060\ng26\n(S'Variable_Type'\n(I2\nttRp9061\nsS'X:lineOff#'\np9062\ng26\n(S'Variable_Type'\n(I2\nttRp9063\nsS'Y:Max%A'\np9064\ng26\n(S'Variable_Type'\n(I2\nttRp9065\nsS'Y:NbeTransit_0.9-1'\np9066\ng26\n(S'Variable_Type'\n(I1\nttRp9067\nsS'XProdEolienne%Pnom'\np9068\ng26\n(S'Variable_Type'\n(I2\nttRp9069\nsS'Y33:%RateA 27-33'\np9070\ng26\n(S'Variable_Type'\n(I2\nttRp9071\nsS'Y59:%RateA 80-81'\np9072\ng26\n(S'Variable_Type'\n(I1\nttRp9073\nsS'Y:VBus65'\np9074\ng26\n(S'Variable_Type'\n(I2\nttRp9075\nsS'TAC VAZZIO'\np9076\ng26\n(S'Variable_Type'\n(I2\nttRp9077\nsS'Y:VBus118'\np9078\ng26\n(S'Variable_Type'\n(I2\nttRp9079\nsS'Y:VBus119'\np9080\ng26\n(S'Variable_Type'\n(I2\nttRp9081\nsS'Y:PMachine117'\np9082\ng26\n(S'Variable_Type'\n(I2\nttRp9083\nsS'Y:PMachine116'\np9084\ng26\n(S'Variable_Type'\n(I2\nttRp9085\nsS'Y:PMachine111'\np9086\ng26\n(S'Variable_Type'\n(I2\nttRp9087\nsS'Y:VBus88'\np9088\ng26\n(S'Variable_Type'\n(I2\nttRp9089\nsS'Y:PMachine113'\np9090\ng26\n(S'Variable_Type'\n(I2\nttRp9091\nsS'Y:VBus93'\np9092\ng26\n(S'Variable_Type'\n(I2\nttRp9093\nsS'Y:VBus110'\np9094\ng26\n(S'Variable_Type'\n(I2\nttRp9095\nsS'Y:VBus111'\np9096\ng26\n(S'Variable_Type'\n(I2\nttRp9097\nsS'Y:VBus87'\np9098\ng26\n(S'Variable_Type'\n(I2\nttRp9099\nsS'Y12:%RateA 18-30'\np9100\ng26\n(S'Variable_Type'\n(I2\nttRp9101\nsS'Y:VBus114'\np9102\ng26\n(S'Variable_Type'\n(I2\nttRp9103\nsS'Y:VBus80'\np9104\ng26\n(S'Variable_Type'\n(I2\nttRp9105\nsS'Y:VBus116'\np9106\ng26\n(S'Variable_Type'\n(I2\nttRp9107\nsS'Y:VBus82'\np9108\ng26\n(S'Variable_Type'\n(I2\nttRp9109\nsS'Y61:%RateA 84-85'\np9110\ng26\n(S'Variable_Type'\n(I1\nttRp9111\nsS'Y31:%RateA 26-41'\np9112\ng26\n(S'Variable_Type'\n(I2\nttRp9113\nsS'Y:PMachine131'\np9114\ng26\n(S'Variable_Type'\n(I2\nttRp9115\nsS'Y47:%RateA 38-43'\np9116\ng26\n(S'Variable_Type'\n(I2\nttRp9117\nsS'Y:Load 42'\np9118\ng26\n(S'Variable_Type'\n(I2\nttRp9119\nsS'Y:PMachine85'\np9120\ng26\n(S'Variable_Type'\n(I2\nttRp9121\nsS'Y32:%RateA 26-46'\np9122\ng26\n(S'Variable_Type'\n(I2\nttRp9123\nsS'Y:PMachine132'\np9124\ng26\n(S'Variable_Type'\n(I2\nttRp9125\nsS'Y18:%RateA 19-27'\np9126\ng26\n(S'Variable_Type'\n(I2\nttRp9127\nsS'Y:VBus86'\np9128\ng26\n(S'Variable_Type'\n(I2\nttRp9129\nsS'Y63:%RateA 95-96'\np9130\ng26\n(S'Variable_Type'\n(I1\nttRp9131\nsS'Y17:%RateA 19-22'\np9132\ng26\n(S'Variable_Type'\n(I2\nttRp9133\nsS'Y41:%RateA 32-48'\np9134\ng26\n(S'Variable_Type'\n(I2\nttRp9135\nsS'Y:PMachine30'\np9136\ng26\n(S'Variable_Type'\n(I2\nttRp9137\nsS'Y:VBus117'\np9138\ng26\n(S'Variable_Type'\n(I2\nttRp9139\nsS'Y56:%RateA 72-73'\np9140\ng26\n(S'Variable_Type'\n(I1\nttRp9141\nsS'Y68:%RateA 112-113'\np9142\ng26\n(S'Variable_Type'\n(I1\nttRp9143\nsS'Y:PMachine130'\np9144\ng26\n(S'Variable_Type'\n(I2\nttRp9145\nsS'Y27:%RateA 24-33'\np9146\ng26\n(S'Variable_Type'\n(I2\nttRp9147\nsS'Y:PMachine106'\np9148\ng26\n(S'Variable_Type'\n(I2\nttRp9149\nsS'Y:PMachine107'\np9150\ng26\n(S'Variable_Type'\n(I2\nttRp9151\nsS'Y:PMachine104'\np9152\ng26\n(S'Variable_Type'\n(I2\nttRp9153\nsS'Y:VBus73'\np9154\ng26\n(S'Variable_Type'\n(I2\nttRp9155\nsS'Y:VBus74'\np9156\ng26\n(S'Variable_Type'\n(I2\nttRp9157\nsS'Y:VBus75'\np9158\ng26\n(S'Variable_Type'\n(I2\nttRp9159\nsS'Y:VBus76'\np9160\ng26\n(S'Variable_Type'\n(I2\nttRp9161\nsS'Y:PMachine101'\np9162\ng26\n(S'Variable_Type'\n(I2\nttRp9163\nsS'Y:VBus78'\np9164\ng26\n(S'Variable_Type'\n(I2\nttRp9165\nsS'Y:Load 59'\np9166\ng26\n(S'Variable_Type'\n(I2\nttRp9167\nsS'Y:PMachine115'\np9168\ng26\n(S'Variable_Type'\n(I2\nttRp9169\nsS'Y51:%RateA 53-54'\np9170\ng26\n(S'Variable_Type'\n(I1\nttRp9171\nsS'Y67:%RateA 108-109'\np9172\ng26\n(S'Variable_Type'\n(I1\nttRp9173\nsS'Y:PMachine109'\np9174\ng26\n(S'Variable_Type'\n(I2\nttRp9175\nsS'Y:PMachine83'\np9176\ng26\n(S'Variable_Type'\n(I2\nttRp9177\nsS'Y:PMachine81'\np9178\ng26\n(S'Variable_Type'\n(I2\nttRp9179\nsS'Y:PMachine86'\np9180\ng26\n(S'Variable_Type'\n(I2\nttRp9181\nsS'Y:Load 76'\np9182\ng26\n(S'Variable_Type'\n(I2\nttRp9183\nsS'Y:Load 74'\np9184\ng26\n(S'Variable_Type'\n(I2\nttRp9185\nsS'Y45:%RateA 36-37'\np9186\ng26\n(S'Variable_Type'\n(I2\nttRp9187\nsS'Y58:%RateA 78-79'\np9188\ng26\n(S'Variable_Type'\n(I1\nttRp9189\nsS'Y:Load 78'\np9190\ng26\n(S'Variable_Type'\n(I2\nttRp9191\nsS'X:Load(pu)'\np9192\ng26\n(S'Variable_Type'\n(I2\nttRp9193\nsS'Y5:%RateA 13-29'\np9194\ng26\n(S'Variable_Type'\n(I2\nttRp9195\nsS'Y:PMachine118'\np9196\ng26\n(S'Variable_Type'\n(I2\nttRp9197\nsS'Y1:%RateA 11-47'\np9198\ng26\n(S'Variable_Type'\n(I2\nttRp9199\nsS'Y:VBus60'\np9200\ng26\n(S'Variable_Type'\n(I2\nttRp9201\nsS'Y:PMachine137'\np9202\ng26\n(S'Variable_Type'\n(I1\nttRp9203\nsS'Y29:%RateA 25-29'\np9204\ng26\n(S'Variable_Type'\n(I2\nttRp9205\nsS'Y:VBus66'\np9206\ng26\n(S'Variable_Type'\n(I2\nttRp9207\nsS'Iteration'\np9208\ng26\n(S'Variable_Type'\n(I2\nttRp9209\nsS'Y36:%RateA 29-30'\np9210\ng26\n(S'Variable_Type'\n(I1\nttRp9211\nsS'Y54:%RateA 59-60'\np9212\ng26\n(S'Variable_Type'\n(I1\nttRp9213\nsS'Y:Load 90'\np9214\ng26\n(S'Variable_Type'\n(I2\nttRp9215\nsS'Y9:%RateA 16-32'\np9216\ng26\n(S'Variable_Type'\n(I2\nttRp9217\nsS'Y:PMachine134'\np9218\ng26\n(S'Variable_Type'\n(I1\nttRp9219\nsS'Y:Load 95'\np9220\ng26\n(S'Variable_Type'\n(I2\nttRp9221\nsS'Y:VBus63'\np9222\ng26\n(S'Variable_Type'\n(I2\nttRp9223\nsS'Y:VBus62'\np9224\ng26\n(S'Variable_Type'\n(I2\nttRp9225\nsS'Y:VBus61'\np9226\ng26\n(S'Variable_Type'\n(I2\nttRp9227\nsS'Y55:%RateA 61-62'\np9228\ng26\n(S'Variable_Type'\n(I1\nttRp9229\nsS'Y8:%RateA 15-35'\np9230\ng26\n(S'Variable_Type'\n(I2\nttRp9231\nsS'Y:PMachine136'\np9232\ng26\n(S'Variable_Type'\n(I1\nttRp9233\nsS'Y:PMachine135'\np9234\ng26\n(S'Variable_Type'\n(I1\nttRp9235\nsS'Y:VBus64'\np9236\ng26\n(S'Variable_Type'\n(I2\nttRp9237\nsS'Y:PMachine94'\np9238\ng26\n(S'Variable_Type'\n(I2\nttRp9239\nsS'Y:VBus69'\np9240\ng26\n(S'Variable_Type'\n(I2\nttRp9241\nsS'Y:VBus108'\np9242\ng26\n(S'Variable_Type'\n(I2\nttRp9243\nsS'Y:PMachine139'\np9244\ng26\n(S'Variable_Type'\n(I1\nttRp9245\nsS'Y:PMachine97'\np9246\ng26\n(S'Variable_Type'\n(I2\nttRp9247\nsS'Y:PMachine92'\np9248\ng26\n(S'Variable_Type'\n(I2\nttRp9249\nsS'Y:VBus68'\np9250\ng26\n(S'Variable_Type'\n(I2\nttRp9251\nsS'Y:Load 61'\np9252\ng26\n(S'Variable_Type'\n(I2\nttRp9253\nsS'Y:VBus89'\np9254\ng26\n(S'Variable_Type'\n(I2\nttRp9255\nsS'Y21:%RateA 21-43'\np9256\ng26\n(S'Variable_Type'\n(I2\nttRp9257\nsS'Y:PMachine90'\np9258\ng26\n(S'Variable_Type'\n(I2\nttRp9259\nsS'Y:PMachine14'\np9260\ng26\n(S'Variable_Type'\n(I2\nttRp9261\nsS'Y:PMachine63'\np9262\ng26\n(S'Variable_Type'\n(I2\nttRp9263\nsS'Y:PMachine93'\np9264\ng26\n(S'Variable_Type'\n(I2\nttRp9265\nsS'Y:PConsoTot'\np9266\ng26\n(S'Variable_Type'\n(I2\nttRp9267\nsS'Y23:%RateA 22-31'\np9268\ng26\n(S'Variable_Type'\n(I2\nttRp9269\nsS'Y19:%RateA 20-26'\np9270\ng26\n(S'Variable_Type'\n(I2\nttRp9271\nsS'Y:PMachine18'\np9272\ng26\n(S'Variable_Type'\n(I2\nttRp9273\nsS'Y:VBus34'\np9274\ng26\n(S'Variable_Type'\n(I2\nttRp9275\nsS'Y:NbeTension'\np9276\ng26\n(S'Variable_Type'\n(I2\nttRp9277\nsS'TOT PV'\np9278\ng26\n(S'Variable_Type'\n(I2\nttRp9279\nsS'Y:PMachine128'\np9280\ng26\n(S'Variable_Type'\n(I2\nttRp9281\nsS'Y:PMachine129'\np9282\ng26\n(S'Variable_Type'\n(I2\nttRp9283\nsS'Y:VBus133'\np9284\ng26\n(S'Variable_Type'\n(I2\nttRp9285\nsS'Y:Load 82'\np9286\ng26\n(S'Variable_Type'\n(I2\nttRp9287\nsS'Y:PMachine125'\np9288\ng26\n(S'Variable_Type'\n(I2\nttRp9289\nsS'Y:PMachine126'\np9290\ng26\n(S'Variable_Type'\n(I2\nttRp9291\nsS'Y:PMachine127'\np9292\ng26\n(S'Variable_Type'\n(I2\nttRp9293\nsS'Y:Load 86'\np9294\ng26\n(S'Variable_Type'\n(I2\nttRp9295\nsS'Y:PMachine121'\np9296\ng26\n(S'Variable_Type'\n(I2\nttRp9297\nsS'Y:Load 84'\np9298\ng26\n(S'Variable_Type'\n(I2\nttRp9299\nsS'Y:PMachine123'\np9300\ng26\n(S'Variable_Type'\n(I2\nttRp9301\nsS'Y:Load 102'\np9302\ng26\n(S'Variable_Type'\n(I2\nttRp9303\nsS'Y:VBus57'\np9304\ng26\n(S'Variable_Type'\n(I2\nttRp9305\nsS'Y:Load 100'\np9306\ng26\n(S'Variable_Type'\n(I2\nttRp9307\nsS'Y:Load 101'\np9308\ng26\n(S'Variable_Type'\n(I2\nttRp9309\nsS'Y:VBus52'\np9310\ng26\n(S'Variable_Type'\n(I2\nttRp9311\nsS'Y:VBus53'\np9312\ng26\n(S'Variable_Type'\n(I2\nttRp9313\nsS'Y:Load 104'\np9314\ng26\n(S'Variable_Type'\n(I2\nttRp9315\nsS'Y:VBus51'\np9316\ng26\n(S'Variable_Type'\n(I2\nttRp9317\nsS'Y:Load 108'\np9318\ng26\n(S'Variable_Type'\n(I2\nttRp9319\nsS'Y64:%RateA 102-103'\np9320\ng26\n(S'Variable_Type'\n(I1\nttRp9321\nsS'Y:PMachine112'\np9322\ng26\n(S'Variable_Type'\n(I2\nttRp9323\nsS'Y:VBus58'\np9324\ng26\n(S'Variable_Type'\n(I2\nttRp9325\nsS'Y:VBus59'\np9326\ng26\n(S'Variable_Type'\n(I2\nttRp9327\nsS'Y:Load 53'\np9328\ng26\n(S'Variable_Type'\n(I2\nttRp9329\nsS'Y10:%RateA 16-47'\np9330\ng26\n(S'Variable_Type'\n(I2\nttRp9331\nsS'Y:PMachine54'\np9332\ng26\n(S'Variable_Type'\n(I2\nttRp9333\nsS'Y:VBus56'\np9334\ng26\n(S'Variable_Type'\n(I2\nttRp9335\nsS'Y3:%RateA 12-24'\np9336\ng26\n(S'Variable_Type'\n(I2\nttRp9337\nsS'Y11:%RateA 17-27'\np9338\ng26\n(S'Variable_Type'\n(I2\nttRp9339\nsS'Y:PMachine114'\np9340\ng26\n(S'Variable_Type'\n(I2\nttRp9341\nsS'Y:VBus72'\np9342\ng26\n(S'Variable_Type'\n(I2\nttRp9343\nsS'Y:PMachine60'\np9344\ng26\n(S'Variable_Type'\n(I2\nttRp9345\nsS'Y:PMachine61'\np9346\ng26\n(S'Variable_Type'\n(I1\nttRp9347\nsS'Y:PMachine62'\np9348\ng26\n(S'Variable_Type'\n(I2\nttRp9349\nsS'Y:PMachine105'\np9350\ng26\n(S'Variable_Type'\n(I2\nttRp9351\nsS'Y:PMachine64'\np9352\ng26\n(S'Variable_Type'\n(I2\nttRp9353\nsS'Y:PMachine65'\np9354\ng26\n(S'Variable_Type'\n(I2\nttRp9355\nsS'Y:PMachine66'\np9356\ng26\n(S'Variable_Type'\n(I2\nttRp9357\nsS'Y:PMachine67'\np9358\ng26\n(S'Variable_Type'\n(I2\nttRp9359\nsS'Y:PMachine68'\np9360\ng26\n(S'Variable_Type'\n(I2\nttRp9361\nsS'Y:PMachine102'\np9362\ng26\n(S'Variable_Type'\n(I2\nttRp9363\nsS'X:ProdPV%Pnom'\np9364\ng26\n(S'Variable_Type'\n(I2\nttRp9365\nsS'Y:VBus138'\np9366\ng26\n(S'Variable_Type'\n(I2\nttRp9367\nsS'Y26:%RateA 24-25'\np9368\ng26\n(S'Variable_Type'\n(I1\nttRp9369\nssg630\n(dp9370\nsg632\n(dp9371\ng2509\n(S'Iteration'\np9372\ng9209\ntp9373\nsg2512\n(g638\nI0\ntp9374\nsg2514\n(g9372\ng9209\ntp9375\nsg2516\n(S''\nI0\ntp9376\nsg2518\n(S''\nI0\ntp9377\nsg2520\n(NI-2\ntp9378\nsg2522\n((lI-2\ntp9379\nssg650\nF1369931709.0969999\nsba(iOWContexts\nContext\np9380\n(dp9381\ng20\n(lp9382\ng1272\nasg23\n(dp9383\nS'Y:VBus48'\np9384\ng26\n(S'Variable_Type'\n(I2\nttRp9385\nsS'Y15:%RateA 18-44'\np9386\ng26\n(S'Variable_Type'\n(I2\nttRp9387\nsS'Y:VBus41'\np9388\ng26\n(S'Variable_Type'\n(I2\nttRp9389\nsS'Y:VBus40'\np9390\ng26\n(S'Variable_Type'\n(I2\nttRp9391\nsS'Y:VBus43'\np9392\ng26\n(S'Variable_Type'\n(I2\nttRp9393\nsS'Y:VBus42'\np9394\ng26\n(S'Variable_Type'\n(I2\nttRp9395\nsS'Y:VBus45'\np9396\ng26\n(S'Variable_Type'\n(I2\nttRp9397\nsS'Y:VBus44'\np9398\ng26\n(S'Variable_Type'\n(I2\nttRp9399\nsS'Y:VBus47'\np9400\ng26\n(S'Variable_Type'\n(I2\nttRp9401\nsS'Y:VBus46'\np9402\ng26\n(S'Variable_Type'\n(I2\nttRp9403\nsS'Y39:%RateA 32-45'\np9404\ng26\n(S'Variable_Type'\n(I2\nttRp9405\nsS'Y:Load 110'\np9406\ng26\n(S'Variable_Type'\n(I2\nttRp9407\nsS'Y:Load 115'\np9408\ng26\n(S'Variable_Type'\n(I2\nttRp9409\nsS'Y:VBus79'\np9410\ng26\n(S'Variable_Type'\n(I2\nttRp9411\nsS'Y13:%RateA 18-30'\np9412\ng26\n(S'Variable_Type'\n(I2\nttRp9413\nsS'Y34:%RateA 28-38'\np9414\ng26\n(S'Variable_Type'\n(I2\nttRp9415\nsS'Y:NbeTransit'\np9416\ng26\n(S'Variable_Type'\n(I1\nttRp9417\nsS'Y:VBus104'\np9418\ng26\n(S'Variable_Type'\n(I2\nttRp9419\nsS'Y20:%RateA 20-44'\np9420\ng26\n(S'Variable_Type'\n(I2\nttRp9421\nsS'Y38:%RateA 32-45'\np9422\ng26\n(S'Variable_Type'\n(I2\nttRp9423\nsS'Y:PMachine73'\np9424\ng26\n(S'Variable_Type'\n(I2\nttRp9425\nsS'Y:PMachine72'\np9426\ng26\n(S'Variable_Type'\n(I2\nttRp9427\nsS'Y49:%RateA 40-48'\np9428\ng26\n(S'Variable_Type'\n(I2\nttRp9429\nsS'Y:PMachine77'\np9430\ng26\n(S'Variable_Type'\n(I2\nttRp9431\nsS'Y:PMachine75'\np9432\ng26\n(S'Variable_Type'\n(I2\nttRp9433\nsS'Y:PMachine74'\np9434\ng26\n(S'Variable_Type'\n(I2\nttRp9435\nsS'Y:PMachine78'\np9436\ng26\n(S'Variable_Type'\n(I1\nttRp9437\nsS'Y:PMachine138'\np9438\ng26\n(S'Variable_Type'\n(I1\nttRp9439\nsS'Y28:%RateA 24-42'\np9440\ng26\n(S'Variable_Type'\n(I2\nttRp9441\nsS'Y:PProdTot'\np9442\ng26\n(S'Variable_Type'\n(I2\nttRp9443\nsS'Y:PMachine69'\np9444\ng26\n(S'Variable_Type'\n(I2\nttRp9445\nsS'Y:VBus38'\np9446\ng26\n(S'Variable_Type'\n(I2\nttRp9447\nsS'Y:VBus39'\np9448\ng26\n(S'Variable_Type'\n(I2\nttRp9449\nsS'Y62:%RateA 86-87'\np9450\ng26\n(S'Variable_Type'\n(I1\nttRp9451\nsS'Y:PMachine1'\np9452\ng26\n(S'Variable_Type'\n(I2\nttRp9453\nsS'Y:VBus35'\np9454\ng26\n(S'Variable_Type'\n(I2\nttRp9455\nsS'Y:VBus36'\np9456\ng26\n(S'Variable_Type'\n(I2\nttRp9457\nsS'Y:VBus37'\np9458\ng26\n(S'Variable_Type'\n(I2\nttRp9459\nsS'Y:VBus30'\np9460\ng26\n(S'Variable_Type'\n(I2\nttRp9461\nsS'Y:VBus31'\np9462\ng26\n(S'Variable_Type'\n(I2\nttRp9463\nsS'Y:VBus32'\np9464\ng26\n(S'Variable_Type'\n(I2\nttRp9465\nsS'Y:VBus33'\np9466\ng26\n(S'Variable_Type'\n(I2\nttRp9467\nsS'Y53:%RateA 57-58'\np9468\ng26\n(S'Variable_Type'\n(I1\nttRp9469\nsS'Y14:%RateA 18-31'\np9470\ng26\n(S'Variable_Type'\n(I2\nttRp9471\nsS'Y48:%RateA 39-46'\np9472\ng26\n(S'Variable_Type'\n(I2\nttRp9473\nsS'Y60:%RateA 82-83'\np9474\ng26\n(S'Variable_Type'\n(I1\nttRp9475\nsS'Y:PMachine87'\np9476\ng26\n(S'Variable_Type'\n(I2\nttRp9477\nsS'Y:VBus121'\np9478\ng26\n(S'Variable_Type'\n(I2\nttRp9479\nsS'Y:VBus120'\np9480\ng26\n(S'Variable_Type'\n(I2\nttRp9481\nsS'Y:VBus123'\np9482\ng26\n(S'Variable_Type'\n(I2\nttRp9483\nsS'Y:VBus122'\np9484\ng26\n(S'Variable_Type'\n(I2\nttRp9485\nsS'Y:VBus125'\np9486\ng26\n(S'Variable_Type'\n(I2\nttRp9487\nsS'Y:VBus124'\np9488\ng26\n(S'Variable_Type'\n(I2\nttRp9489\nsS'Y:VBus127'\np9490\ng26\n(S'Variable_Type'\n(I2\nttRp9491\nsS'Y:VBus126'\np9492\ng26\n(S'Variable_Type'\n(I2\nttRp9493\nsS'Y:VBus129'\np9494\ng26\n(S'Variable_Type'\n(I2\nttRp9495\nsS'Y:VBus128'\np9496\ng26\n(S'Variable_Type'\n(I2\nttRp9497\nsS'Y37:%RateA 32-34'\np9498\ng26\n(S'Variable_Type'\n(I2\nttRp9499\nsS'Y43:%RateA 35-37'\np9500\ng26\n(S'Variable_Type'\n(I2\nttRp9501\nsS'Y:PMachine42'\np9502\ng26\n(S'Variable_Type'\n(I2\nttRp9503\nsS'Y0:%RateA 11-28'\np9504\ng26\n(S'Variable_Type'\n(I2\nttRp9505\nsS'Y:VBus67'\np9506\ng26\n(S'Variable_Type'\n(I2\nttRp9507\nsS'Y:Load 37'\np9508\ng26\n(S'Variable_Type'\n(I2\nttRp9509\nsS'Y65:%RateA 104-105'\np9510\ng26\n(S'Variable_Type'\n(I1\nttRp9511\nsS'Y40:%RateA 32-47'\np9512\ng26\n(S'Variable_Type'\n(I2\nttRp9513\nsS'Y:PMachine47'\np9514\ng26\n(S'Variable_Type'\n(I2\nttRp9515\nsS'Y6:%RateA 14-15'\np9516\ng26\n(S'Variable_Type'\n(I1\nttRp9517\nsS'Y:VBus1'\np9518\ng26\n(S'Variable_Type'\n(I2\nttRp9519\nsS'Y44:%RateA 35-39'\np9520\ng26\n(S'Variable_Type'\n(I2\nttRp9521\nsS'Y:PMachine88'\np9522\ng26\n(S'Variable_Type'\n(I1\nttRp9523\nsS'Y42:%RateA 34-36'\np9524\ng26\n(S'Variable_Type'\n(I2\nttRp9525\nsS'Y57:%RateA 76-77'\np9526\ng26\n(S'Variable_Type'\n(I1\nttRp9527\nsS'Y:PMachine89'\np9528\ng26\n(S'Variable_Type'\n(I1\nttRp9529\nsS'Y:VBus77'\np9530\ng26\n(S'Variable_Type'\n(I2\nttRp9531\nsS'Y:VBus29'\np9532\ng26\n(S'Variable_Type'\n(I2\nttRp9533\nsS'Y:VBus28'\np9534\ng26\n(S'Variable_Type'\n(I2\nttRp9535\nsS'Y:VBus27'\np9536\ng26\n(S'Variable_Type'\n(I2\nttRp9537\nsS'Y:VBus26'\np9538\ng26\n(S'Variable_Type'\n(I2\nttRp9539\nsS'Y:VBus25'\np9540\ng26\n(S'Variable_Type'\n(I2\nttRp9541\nsS'Y:VBus24'\np9542\ng26\n(S'Variable_Type'\n(I2\nttRp9543\nsS'Y:VBus23'\np9544\ng26\n(S'Variable_Type'\n(I2\nttRp9545\nsS'Y:VBus22'\np9546\ng26\n(S'Variable_Type'\n(I2\nttRp9547\nsS'Y:VBus21'\np9548\ng26\n(S'Variable_Type'\n(I2\nttRp9549\nsS'Y:VBus20'\np9550\ng26\n(S'Variable_Type'\n(I2\nttRp9551\nsS'Y:VBus85'\np9552\ng26\n(S'Variable_Type'\n(I2\nttRp9553\nsS'Y:VBus84'\np9554\ng26\n(S'Variable_Type'\n(I2\nttRp9555\nsS'Y52:%RateA 55-56'\np9556\ng26\n(S'Variable_Type'\n(I1\nttRp9557\nsS'Y2:%RateA 12-24'\np9558\ng26\n(S'Variable_Type'\n(I2\nttRp9559\nsS'Y:VBus112'\np9560\ng26\n(S'Variable_Type'\n(I2\nttRp9561\nsS'Y:VBus132'\np9562\ng26\n(S'Variable_Type'\n(I2\nttRp9563\nsS'Y:PMachine58'\np9564\ng26\n(S'Variable_Type'\n(I2\nttRp9565\nsS'Y:VBus130'\np9566\ng26\n(S'Variable_Type'\n(I2\nttRp9567\nsS'Y:VBus131'\np9568\ng26\n(S'Variable_Type'\n(I2\nttRp9569\nsS'Y:VBus136'\np9570\ng26\n(S'Variable_Type'\n(I2\nttRp9571\nsS'Y:VBus137'\np9572\ng26\n(S'Variable_Type'\n(I2\nttRp9573\nsS'Y:VBus134'\np9574\ng26\n(S'Variable_Type'\n(I2\nttRp9575\nsS'Y:VBus135'\np9576\ng26\n(S'Variable_Type'\n(I2\nttRp9577\nsS'Y:VBus81'\np9578\ng26\n(S'Variable_Type'\n(I2\nttRp9579\nsS'Y:PMachine53'\np9580\ng26\n(S'Variable_Type'\n(I2\nttRp9581\nsS'Y:VBus139'\np9582\ng26\n(S'Variable_Type'\n(I2\nttRp9583\nsS'Y30:%RateA 25-29'\np9584\ng26\n(S'Variable_Type'\n(I2\nttRp9585\nsS'Y:VBus115'\np9586\ng26\n(S'Variable_Type'\n(I2\nttRp9587\nsS'Y:PMachine124'\np9588\ng26\n(S'Variable_Type'\n(I2\nttRp9589\nsS'Y:VBus83'\np9590\ng26\n(S'Variable_Type'\n(I2\nttRp9591\nsS'Y66:%RateA 106-107'\np9592\ng26\n(S'Variable_Type'\n(I1\nttRp9593\nsS'Y25:%RateA 23-41'\np9594\ng26\n(S'Variable_Type'\n(I2\nttRp9595\nsS'Y:%Losses'\np9596\ng26\n(S'Variable_Type'\n(I2\nttRp9597\nsS'Y:VBus12'\np9598\ng26\n(S'Variable_Type'\n(I2\nttRp9599\nsS'Y:VBus13'\np9600\ng26\n(S'Variable_Type'\n(I2\nttRp9601\nsS'Y50:%RateA 51-52'\np9602\ng26\n(S'Variable_Type'\n(I1\nttRp9603\nsS'Y:VBus11'\np9604\ng26\n(S'Variable_Type'\n(I2\nttRp9605\nsS'Y:VBus16'\np9606\ng26\n(S'Variable_Type'\n(I2\nttRp9607\nsS'Y:VBus17'\np9608\ng26\n(S'Variable_Type'\n(I2\nttRp9609\nsS'Y:VBus14'\np9610\ng26\n(S'Variable_Type'\n(I2\nttRp9611\nsS'Y:VBus15'\np9612\ng26\n(S'Variable_Type'\n(I2\nttRp9613\nsS'Y:VBus113'\np9614\ng26\n(S'Variable_Type'\n(I2\nttRp9615\nsS'Y:PMachine120'\np9616\ng26\n(S'Variable_Type'\n(I2\nttRp9617\nsS'Y:VBus18'\np9618\ng26\n(S'Variable_Type'\n(I2\nttRp9619\nsS'Y:VBus19'\np9620\ng26\n(S'Variable_Type'\n(I2\nttRp9621\nsS'Y4:%RateA 13-25'\np9622\ng26\n(S'Variable_Type'\n(I2\nttRp9623\nsS'DIESEL VAZZIO'\np9624\ng26\n(S'Variable_Type'\n(I2\nttRp9625\nsS'Y35:%RateA 28-47'\np9626\ng26\n(S'Variable_Type'\n(I2\nttRp9627\nsS'Y:PMachine122'\np9628\ng26\n(S'Variable_Type'\n(I2\nttRp9629\nsS'Y16:%RateA 19-21'\np9630\ng26\n(S'Variable_Type'\n(I2\nttRp9631\nsS'Y:VBus92'\np9632\ng26\n(S'Variable_Type'\n(I2\nttRp9633\nsS'Y7:%RateA 14-35'\np9634\ng26\n(S'Variable_Type'\n(I2\nttRp9635\nsS'Y:VBus90'\np9636\ng26\n(S'Variable_Type'\n(I2\nttRp9637\nsS'Y:VBus96'\np9638\ng26\n(S'Variable_Type'\n(I2\nttRp9639\nsS'Y:VBus97'\np9640\ng26\n(S'Variable_Type'\n(I2\nttRp9641\nsS'Y:VBus94'\np9642\ng26\n(S'Variable_Type'\n(I2\nttRp9643\nsS'Y:VBus95'\np9644\ng26\n(S'Variable_Type'\n(I2\nttRp9645\nsS'Y:VBus107'\np9646\ng26\n(S'Variable_Type'\n(I2\nttRp9647\nsS'Y:VBus106'\np9648\ng26\n(S'Variable_Type'\n(I2\nttRp9649\nsS'Y:VBus105'\np9650\ng26\n(S'Variable_Type'\n(I2\nttRp9651\nsS'Y22:%RateA 22-23'\np9652\ng26\n(S'Variable_Type'\n(I1\nttRp9653\nsS'Y:VBus103'\np9654\ng26\n(S'Variable_Type'\n(I2\nttRp9655\nsS'Y:VBus102'\np9656\ng26\n(S'Variable_Type'\n(I2\nttRp9657\nsS'Y:VBus101'\np9658\ng26\n(S'Variable_Type'\n(I2\nttRp9659\nsS'Y:VBus100'\np9660\ng26\n(S'Variable_Type'\n(I2\nttRp9661\nsS'Y:Load 55'\np9662\ng26\n(S'Variable_Type'\n(I2\nttRp9663\nsS'Y:Load 57'\np9664\ng26\n(S'Variable_Type'\n(I2\nttRp9665\nsS'Y:Load 51'\np9666\ng26\n(S'Variable_Type'\n(I2\nttRp9667\nsS'Y:VBus54'\np9668\ng26\n(S'Variable_Type'\n(I2\nttRp9669\nsS'Y:VBus109'\np9670\ng26\n(S'Variable_Type'\n(I2\nttRp9671\nsS'Y46:%RateA 36-48'\np9672\ng26\n(S'Variable_Type'\n(I2\nttRp9673\nsS'Y:Load 80'\np9674\ng26\n(S'Variable_Type'\n(I2\nttRp9675\nsS'Y:PMachine133'\np9676\ng26\n(S'Variable_Type'\n(I2\nttRp9677\nsS'Y:VBus55'\np9678\ng26\n(S'Variable_Type'\n(I2\nttRp9679\nsS'Y:PMachine29'\np9680\ng26\n(S'Variable_Type'\n(I1\nttRp9681\nsS'Y24:%RateA 23-32'\np9682\ng26\n(S'Variable_Type'\n(I2\nttRp9683\nsS'X:lineOff#'\np9684\ng26\n(S'Variable_Type'\n(I2\nttRp9685\nsS'Y:Max%A'\np9686\ng26\n(S'Variable_Type'\n(I2\nttRp9687\nsS'Y:NbeTransit_0.9-1'\np9688\ng26\n(S'Variable_Type'\n(I1\nttRp9689\nsS'XProdEolienne%Pnom'\np9690\ng26\n(S'Variable_Type'\n(I2\nttRp9691\nsS'Y33:%RateA 27-33'\np9692\ng26\n(S'Variable_Type'\n(I2\nttRp9693\nsS'Y59:%RateA 80-81'\np9694\ng26\n(S'Variable_Type'\n(I1\nttRp9695\nsS'Y:VBus65'\np9696\ng26\n(S'Variable_Type'\n(I2\nttRp9697\nsS'TAC VAZZIO'\np9698\ng26\n(S'Variable_Type'\n(I2\nttRp9699\nsS'Y:VBus118'\np9700\ng26\n(S'Variable_Type'\n(I2\nttRp9701\nsS'Y:VBus119'\np9702\ng26\n(S'Variable_Type'\n(I2\nttRp9703\nsS'Y:PMachine117'\np9704\ng26\n(S'Variable_Type'\n(I2\nttRp9705\nsS'Y:PMachine116'\np9706\ng26\n(S'Variable_Type'\n(I2\nttRp9707\nsS'Y:PMachine111'\np9708\ng26\n(S'Variable_Type'\n(I2\nttRp9709\nsS'Y:VBus88'\np9710\ng26\n(S'Variable_Type'\n(I2\nttRp9711\nsS'Y:PMachine113'\np9712\ng26\n(S'Variable_Type'\n(I2\nttRp9713\nsS'Y:VBus93'\np9714\ng26\n(S'Variable_Type'\n(I2\nttRp9715\nsS'Y:VBus110'\np9716\ng26\n(S'Variable_Type'\n(I2\nttRp9717\nsS'Y:VBus111'\np9718\ng26\n(S'Variable_Type'\n(I2\nttRp9719\nsS'Y:VBus87'\np9720\ng26\n(S'Variable_Type'\n(I2\nttRp9721\nsS'Y12:%RateA 18-30'\np9722\ng26\n(S'Variable_Type'\n(I2\nttRp9723\nsS'Y:VBus114'\np9724\ng26\n(S'Variable_Type'\n(I2\nttRp9725\nsS'Y:VBus80'\np9726\ng26\n(S'Variable_Type'\n(I2\nttRp9727\nsS'Y:VBus116'\np9728\ng26\n(S'Variable_Type'\n(I2\nttRp9729\nsS'Y:VBus82'\np9730\ng26\n(S'Variable_Type'\n(I2\nttRp9731\nsS'Y61:%RateA 84-85'\np9732\ng26\n(S'Variable_Type'\n(I1\nttRp9733\nsS'Y31:%RateA 26-41'\np9734\ng26\n(S'Variable_Type'\n(I2\nttRp9735\nsS'Y:PMachine131'\np9736\ng26\n(S'Variable_Type'\n(I2\nttRp9737\nsS'Y47:%RateA 38-43'\np9738\ng26\n(S'Variable_Type'\n(I2\nttRp9739\nsS'Y:Load 42'\np9740\ng26\n(S'Variable_Type'\n(I2\nttRp9741\nsS'Y:PMachine85'\np9742\ng26\n(S'Variable_Type'\n(I2\nttRp9743\nsS'Y32:%RateA 26-46'\np9744\ng26\n(S'Variable_Type'\n(I2\nttRp9745\nsS'Y:PMachine132'\np9746\ng26\n(S'Variable_Type'\n(I2\nttRp9747\nsS'Y18:%RateA 19-27'\np9748\ng26\n(S'Variable_Type'\n(I2\nttRp9749\nsS'Y:VBus86'\np9750\ng26\n(S'Variable_Type'\n(I2\nttRp9751\nsS'Y63:%RateA 95-96'\np9752\ng26\n(S'Variable_Type'\n(I1\nttRp9753\nsS'Y17:%RateA 19-22'\np9754\ng26\n(S'Variable_Type'\n(I2\nttRp9755\nsS'Y41:%RateA 32-48'\np9756\ng26\n(S'Variable_Type'\n(I2\nttRp9757\nsS'Y:PMachine30'\np9758\ng26\n(S'Variable_Type'\n(I2\nttRp9759\nsS'Y:VBus117'\np9760\ng26\n(S'Variable_Type'\n(I2\nttRp9761\nsS'Y56:%RateA 72-73'\np9762\ng26\n(S'Variable_Type'\n(I1\nttRp9763\nsS'Y68:%RateA 112-113'\np9764\ng26\n(S'Variable_Type'\n(I1\nttRp9765\nsS'Y:PMachine130'\np9766\ng26\n(S'Variable_Type'\n(I2\nttRp9767\nsS'Y27:%RateA 24-33'\np9768\ng26\n(S'Variable_Type'\n(I2\nttRp9769\nsS'Y:PMachine106'\np9770\ng26\n(S'Variable_Type'\n(I2\nttRp9771\nsS'Y:PMachine107'\np9772\ng26\n(S'Variable_Type'\n(I2\nttRp9773\nsS'Y:PMachine104'\np9774\ng26\n(S'Variable_Type'\n(I2\nttRp9775\nsS'Y:VBus73'\np9776\ng26\n(S'Variable_Type'\n(I2\nttRp9777\nsS'Y:VBus74'\np9778\ng26\n(S'Variable_Type'\n(I2\nttRp9779\nsS'Y:VBus75'\np9780\ng26\n(S'Variable_Type'\n(I2\nttRp9781\nsS'Y:VBus76'\np9782\ng26\n(S'Variable_Type'\n(I2\nttRp9783\nsS'Y:PMachine101'\np9784\ng26\n(S'Variable_Type'\n(I2\nttRp9785\nsS'Y:VBus78'\np9786\ng26\n(S'Variable_Type'\n(I2\nttRp9787\nsS'Y:Load 59'\np9788\ng26\n(S'Variable_Type'\n(I2\nttRp9789\nsS'Y:PMachine115'\np9790\ng26\n(S'Variable_Type'\n(I2\nttRp9791\nsS'Y51:%RateA 53-54'\np9792\ng26\n(S'Variable_Type'\n(I1\nttRp9793\nsS'Y67:%RateA 108-109'\np9794\ng26\n(S'Variable_Type'\n(I1\nttRp9795\nsS'Y:PMachine109'\np9796\ng26\n(S'Variable_Type'\n(I2\nttRp9797\nsS'Y:PMachine83'\np9798\ng26\n(S'Variable_Type'\n(I2\nttRp9799\nsS'Y:PMachine81'\np9800\ng26\n(S'Variable_Type'\n(I2\nttRp9801\nsS'Y:PMachine86'\np9802\ng26\n(S'Variable_Type'\n(I2\nttRp9803\nsS'Y:Load 76'\np9804\ng26\n(S'Variable_Type'\n(I2\nttRp9805\nsS'Y:Load 74'\np9806\ng26\n(S'Variable_Type'\n(I2\nttRp9807\nsS'Y45:%RateA 36-37'\np9808\ng26\n(S'Variable_Type'\n(I2\nttRp9809\nsS'Y58:%RateA 78-79'\np9810\ng26\n(S'Variable_Type'\n(I1\nttRp9811\nsS'Y:Load 78'\np9812\ng26\n(S'Variable_Type'\n(I2\nttRp9813\nsS'X:Load(pu)'\np9814\ng26\n(S'Variable_Type'\n(I2\nttRp9815\nsS'Y5:%RateA 13-29'\np9816\ng26\n(S'Variable_Type'\n(I2\nttRp9817\nsS'Y:PMachine118'\np9818\ng26\n(S'Variable_Type'\n(I2\nttRp9819\nsS'Y1:%RateA 11-47'\np9820\ng26\n(S'Variable_Type'\n(I2\nttRp9821\nsS'Y:VBus60'\np9822\ng26\n(S'Variable_Type'\n(I2\nttRp9823\nsS'Y:PMachine137'\np9824\ng26\n(S'Variable_Type'\n(I1\nttRp9825\nsS'Y29:%RateA 25-29'\np9826\ng26\n(S'Variable_Type'\n(I2\nttRp9827\nsS'Y:VBus66'\np9828\ng26\n(S'Variable_Type'\n(I2\nttRp9829\nsS'Iteration'\np9830\ng26\n(S'Variable_Type'\n(I2\nttRp9831\nsS'Y36:%RateA 29-30'\np9832\ng26\n(S'Variable_Type'\n(I1\nttRp9833\nsS'Y54:%RateA 59-60'\np9834\ng26\n(S'Variable_Type'\n(I1\nttRp9835\nsS'Y:Load 90'\np9836\ng26\n(S'Variable_Type'\n(I2\nttRp9837\nsS'Y9:%RateA 16-32'\np9838\ng26\n(S'Variable_Type'\n(I2\nttRp9839\nsS'Y:PMachine134'\np9840\ng26\n(S'Variable_Type'\n(I1\nttRp9841\nsS'Y:Load 95'\np9842\ng26\n(S'Variable_Type'\n(I2\nttRp9843\nsS'Y:VBus63'\np9844\ng26\n(S'Variable_Type'\n(I2\nttRp9845\nsS'Y:VBus62'\np9846\ng26\n(S'Variable_Type'\n(I2\nttRp9847\nsS'Y:VBus61'\np9848\ng26\n(S'Variable_Type'\n(I2\nttRp9849\nsS'Y55:%RateA 61-62'\np9850\ng26\n(S'Variable_Type'\n(I1\nttRp9851\nsS'Y8:%RateA 15-35'\np9852\ng26\n(S'Variable_Type'\n(I2\nttRp9853\nsS'Y:PMachine136'\np9854\ng26\n(S'Variable_Type'\n(I1\nttRp9855\nsS'Y:PMachine135'\np9856\ng26\n(S'Variable_Type'\n(I1\nttRp9857\nsS'Y:VBus64'\np9858\ng26\n(S'Variable_Type'\n(I2\nttRp9859\nsS'Y:PMachine94'\np9860\ng26\n(S'Variable_Type'\n(I2\nttRp9861\nsS'Y:VBus69'\np9862\ng26\n(S'Variable_Type'\n(I2\nttRp9863\nsS'Y:VBus108'\np9864\ng26\n(S'Variable_Type'\n(I2\nttRp9865\nsS'Y:PMachine139'\np9866\ng26\n(S'Variable_Type'\n(I1\nttRp9867\nsS'Y:PMachine97'\np9868\ng26\n(S'Variable_Type'\n(I2\nttRp9869\nsS'Y:PMachine92'\np9870\ng26\n(S'Variable_Type'\n(I2\nttRp9871\nsS'Y:VBus68'\np9872\ng26\n(S'Variable_Type'\n(I2\nttRp9873\nsS'Y:Load 61'\np9874\ng26\n(S'Variable_Type'\n(I2\nttRp9875\nsS'Y:VBus89'\np9876\ng26\n(S'Variable_Type'\n(I2\nttRp9877\nsS'Y21:%RateA 21-43'\np9878\ng26\n(S'Variable_Type'\n(I2\nttRp9879\nsS'Y:PMachine90'\np9880\ng26\n(S'Variable_Type'\n(I2\nttRp9881\nsS'Y:PMachine14'\np9882\ng26\n(S'Variable_Type'\n(I2\nttRp9883\nsS'Y:PMachine63'\np9884\ng26\n(S'Variable_Type'\n(I2\nttRp9885\nsS'Y:PMachine93'\np9886\ng26\n(S'Variable_Type'\n(I2\nttRp9887\nsS'Y:PConsoTot'\np9888\ng26\n(S'Variable_Type'\n(I2\nttRp9889\nsS'Y23:%RateA 22-31'\np9890\ng26\n(S'Variable_Type'\n(I2\nttRp9891\nsS'Y19:%RateA 20-26'\np9892\ng26\n(S'Variable_Type'\n(I2\nttRp9893\nsS'Y:PMachine18'\np9894\ng26\n(S'Variable_Type'\n(I2\nttRp9895\nsS'Y:VBus34'\np9896\ng26\n(S'Variable_Type'\n(I2\nttRp9897\nsS'Y:NbeTension'\np9898\ng26\n(S'Variable_Type'\n(I2\nttRp9899\nsS'Y:PMachine128'\np9900\ng26\n(S'Variable_Type'\n(I2\nttRp9901\nsS'Y:PMachine129'\np9902\ng26\n(S'Variable_Type'\n(I2\nttRp9903\nsS'Y:VBus133'\np9904\ng26\n(S'Variable_Type'\n(I2\nttRp9905\nsS'Y:Load 82'\np9906\ng26\n(S'Variable_Type'\n(I2\nttRp9907\nsS'Y:PMachine125'\np9908\ng26\n(S'Variable_Type'\n(I2\nttRp9909\nsS'Y:PMachine126'\np9910\ng26\n(S'Variable_Type'\n(I2\nttRp9911\nsS'Y:PMachine127'\np9912\ng26\n(S'Variable_Type'\n(I2\nttRp9913\nsS'Y:Load 86'\np9914\ng26\n(S'Variable_Type'\n(I2\nttRp9915\nsS'Y:PMachine121'\np9916\ng26\n(S'Variable_Type'\n(I2\nttRp9917\nsS'Y:Load 84'\np9918\ng26\n(S'Variable_Type'\n(I2\nttRp9919\nsS'Y:PMachine123'\np9920\ng26\n(S'Variable_Type'\n(I2\nttRp9921\nsS'Y:Load 102'\np9922\ng26\n(S'Variable_Type'\n(I2\nttRp9923\nsS'Y:VBus57'\np9924\ng26\n(S'Variable_Type'\n(I2\nttRp9925\nsS'Y:Load 100'\np9926\ng26\n(S'Variable_Type'\n(I2\nttRp9927\nsS'Y:Load 101'\np9928\ng26\n(S'Variable_Type'\n(I2\nttRp9929\nsS'Y:VBus52'\np9930\ng26\n(S'Variable_Type'\n(I2\nttRp9931\nsS'Y:VBus53'\np9932\ng26\n(S'Variable_Type'\n(I2\nttRp9933\nsS'Y:Load 104'\np9934\ng26\n(S'Variable_Type'\n(I2\nttRp9935\nsS'Y:VBus51'\np9936\ng26\n(S'Variable_Type'\n(I2\nttRp9937\nsS'Y:Load 108'\np9938\ng26\n(S'Variable_Type'\n(I2\nttRp9939\nsS'Y64:%RateA 102-103'\np9940\ng26\n(S'Variable_Type'\n(I1\nttRp9941\nsS'Y:PMachine112'\np9942\ng26\n(S'Variable_Type'\n(I2\nttRp9943\nsS'Y:VBus58'\np9944\ng26\n(S'Variable_Type'\n(I2\nttRp9945\nsS'Y:VBus59'\np9946\ng26\n(S'Variable_Type'\n(I2\nttRp9947\nsS'Y:Load 53'\np9948\ng26\n(S'Variable_Type'\n(I2\nttRp9949\nsS'Y10:%RateA 16-47'\np9950\ng26\n(S'Variable_Type'\n(I2\nttRp9951\nsS'Y:PMachine54'\np9952\ng26\n(S'Variable_Type'\n(I2\nttRp9953\nsS'Y:VBus56'\np9954\ng26\n(S'Variable_Type'\n(I2\nttRp9955\nsS'TOT WIND'\np9956\ng26\n(S'Variable_Type'\n(I2\nttRp9957\nsS'Y3:%RateA 12-24'\np9958\ng26\n(S'Variable_Type'\n(I2\nttRp9959\nsS'Y11:%RateA 17-27'\np9960\ng26\n(S'Variable_Type'\n(I2\nttRp9961\nsS'Y:PMachine114'\np9962\ng26\n(S'Variable_Type'\n(I2\nttRp9963\nsS'Y:VBus72'\np9964\ng26\n(S'Variable_Type'\n(I2\nttRp9965\nsS'Y:PMachine60'\np9966\ng26\n(S'Variable_Type'\n(I2\nttRp9967\nsS'Y:PMachine61'\np9968\ng26\n(S'Variable_Type'\n(I1\nttRp9969\nsS'Y:PMachine62'\np9970\ng26\n(S'Variable_Type'\n(I2\nttRp9971\nsS'Y:PMachine105'\np9972\ng26\n(S'Variable_Type'\n(I2\nttRp9973\nsS'Y:PMachine64'\np9974\ng26\n(S'Variable_Type'\n(I2\nttRp9975\nsS'Y:PMachine65'\np9976\ng26\n(S'Variable_Type'\n(I2\nttRp9977\nsS'Y:PMachine66'\np9978\ng26\n(S'Variable_Type'\n(I2\nttRp9979\nsS'Y:PMachine67'\np9980\ng26\n(S'Variable_Type'\n(I2\nttRp9981\nsS'Y:PMachine68'\np9982\ng26\n(S'Variable_Type'\n(I2\nttRp9983\nsS'Y:PMachine102'\np9984\ng26\n(S'Variable_Type'\n(I2\nttRp9985\nsS'X:ProdPV%Pnom'\np9986\ng26\n(S'Variable_Type'\n(I2\nttRp9987\nsS'Y:VBus138'\np9988\ng26\n(S'Variable_Type'\n(I2\nttRp9989\nsS'Y26:%RateA 24-25'\np9990\ng26\n(S'Variable_Type'\n(I1\nttRp9991\nssg630\n(dp9992\nsg632\n(dp9993\ng2509\n(S'Iteration'\np9994\ng9831\ntp9995\nsg2512\n(g638\nI0\ntp9996\nsg2514\n(g9994\ng9831\ntp9997\nsg2516\n(S''\nI0\ntp9998\nsg2518\n(S''\nI0\ntp9999\nsg2520\n(NI-2\ntp10000\nsg2522\n((lI-2\ntp10001\nssg650\nF1369931681.9349999\nsba(iOWContexts\nContext\np10002\n(dp10003\ng20\n(lp10004\ng1272\nasg23\n(dp10005\nS'Y:VBus48'\np10006\ng26\n(S'Variable_Type'\n(I2\nttRp10007\nsS'Y15:%RateA 18-44'\np10008\ng26\n(S'Variable_Type'\n(I2\nttRp10009\nsS'Y:VBus41'\np10010\ng26\n(S'Variable_Type'\n(I2\nttRp10011\nsS'Y:VBus40'\np10012\ng26\n(S'Variable_Type'\n(I2\nttRp10013\nsS'Y:VBus43'\np10014\ng26\n(S'Variable_Type'\n(I2\nttRp10015\nsS'Y:VBus42'\np10016\ng26\n(S'Variable_Type'\n(I2\nttRp10017\nsS'Y:VBus45'\np10018\ng26\n(S'Variable_Type'\n(I2\nttRp10019\nsS'Y:VBus44'\np10020\ng26\n(S'Variable_Type'\n(I2\nttRp10021\nsS'Y:VBus47'\np10022\ng26\n(S'Variable_Type'\n(I2\nttRp10023\nsS'Y:VBus46'\np10024\ng26\n(S'Variable_Type'\n(I2\nttRp10025\nsS'Y39:%RateA 32-45'\np10026\ng26\n(S'Variable_Type'\n(I2\nttRp10027\nsS'Y:Load 110'\np10028\ng26\n(S'Variable_Type'\n(I2\nttRp10029\nsS'Y:Load 115'\np10030\ng26\n(S'Variable_Type'\n(I2\nttRp10031\nsS'Y:VBus79'\np10032\ng26\n(S'Variable_Type'\n(I2\nttRp10033\nsS'Y13:%RateA 18-30'\np10034\ng26\n(S'Variable_Type'\n(I2\nttRp10035\nsS'Y34:%RateA 28-38'\np10036\ng26\n(S'Variable_Type'\n(I2\nttRp10037\nsS'Y:NbeTransit'\np10038\ng26\n(S'Variable_Type'\n(I1\nttRp10039\nsS'Y:VBus104'\np10040\ng26\n(S'Variable_Type'\n(I2\nttRp10041\nsS'Y20:%RateA 20-44'\np10042\ng26\n(S'Variable_Type'\n(I2\nttRp10043\nsS'Y38:%RateA 32-45'\np10044\ng26\n(S'Variable_Type'\n(I2\nttRp10045\nsS'Y:PMachine73'\np10046\ng26\n(S'Variable_Type'\n(I2\nttRp10047\nsS'Y:PMachine72'\np10048\ng26\n(S'Variable_Type'\n(I2\nttRp10049\nsS'Y49:%RateA 40-48'\np10050\ng26\n(S'Variable_Type'\n(I2\nttRp10051\nsS'Y:PMachine77'\np10052\ng26\n(S'Variable_Type'\n(I2\nttRp10053\nsS'Y:PMachine75'\np10054\ng26\n(S'Variable_Type'\n(I2\nttRp10055\nsS'Y:PMachine74'\np10056\ng26\n(S'Variable_Type'\n(I2\nttRp10057\nsS'Y:PMachine78'\np10058\ng26\n(S'Variable_Type'\n(I1\nttRp10059\nsS'Y:PMachine138'\np10060\ng26\n(S'Variable_Type'\n(I1\nttRp10061\nsS'Y28:%RateA 24-42'\np10062\ng26\n(S'Variable_Type'\n(I2\nttRp10063\nsS'Y:PProdTot'\np10064\ng26\n(S'Variable_Type'\n(I2\nttRp10065\nsS'Y:PMachine69'\np10066\ng26\n(S'Variable_Type'\n(I2\nttRp10067\nsS'Y:VBus38'\np10068\ng26\n(S'Variable_Type'\n(I2\nttRp10069\nsS'Y:VBus39'\np10070\ng26\n(S'Variable_Type'\n(I2\nttRp10071\nsS'Y62:%RateA 86-87'\np10072\ng26\n(S'Variable_Type'\n(I1\nttRp10073\nsS'Y:PMachine1'\np10074\ng26\n(S'Variable_Type'\n(I2\nttRp10075\nsS'Y:VBus35'\np10076\ng26\n(S'Variable_Type'\n(I2\nttRp10077\nsS'Y:VBus36'\np10078\ng26\n(S'Variable_Type'\n(I2\nttRp10079\nsS'Y:VBus37'\np10080\ng26\n(S'Variable_Type'\n(I2\nttRp10081\nsS'Y:VBus30'\np10082\ng26\n(S'Variable_Type'\n(I2\nttRp10083\nsS'Y:VBus31'\np10084\ng26\n(S'Variable_Type'\n(I2\nttRp10085\nsS'Y:VBus32'\np10086\ng26\n(S'Variable_Type'\n(I2\nttRp10087\nsS'Y:VBus33'\np10088\ng26\n(S'Variable_Type'\n(I2\nttRp10089\nsS'Y53:%RateA 57-58'\np10090\ng26\n(S'Variable_Type'\n(I1\nttRp10091\nsS'Y14:%RateA 18-31'\np10092\ng26\n(S'Variable_Type'\n(I2\nttRp10093\nsS'Y48:%RateA 39-46'\np10094\ng26\n(S'Variable_Type'\n(I2\nttRp10095\nsS'Y60:%RateA 82-83'\np10096\ng26\n(S'Variable_Type'\n(I1\nttRp10097\nsS'Y:PMachine87'\np10098\ng26\n(S'Variable_Type'\n(I2\nttRp10099\nsS'Y:VBus121'\np10100\ng26\n(S'Variable_Type'\n(I2\nttRp10101\nsS'Y:VBus120'\np10102\ng26\n(S'Variable_Type'\n(I2\nttRp10103\nsS'Y:VBus123'\np10104\ng26\n(S'Variable_Type'\n(I2\nttRp10105\nsS'Y:VBus122'\np10106\ng26\n(S'Variable_Type'\n(I2\nttRp10107\nsS'Y:VBus125'\np10108\ng26\n(S'Variable_Type'\n(I2\nttRp10109\nsS'Y:VBus124'\np10110\ng26\n(S'Variable_Type'\n(I2\nttRp10111\nsS'Y:VBus127'\np10112\ng26\n(S'Variable_Type'\n(I2\nttRp10113\nsS'Y:VBus126'\np10114\ng26\n(S'Variable_Type'\n(I2\nttRp10115\nsS'Y:VBus129'\np10116\ng26\n(S'Variable_Type'\n(I2\nttRp10117\nsS'Y:VBus128'\np10118\ng26\n(S'Variable_Type'\n(I2\nttRp10119\nsS'Y37:%RateA 32-34'\np10120\ng26\n(S'Variable_Type'\n(I2\nttRp10121\nsS'Y43:%RateA 35-37'\np10122\ng26\n(S'Variable_Type'\n(I2\nttRp10123\nsS'Y:PMachine42'\np10124\ng26\n(S'Variable_Type'\n(I2\nttRp10125\nsS'Y0:%RateA 11-28'\np10126\ng26\n(S'Variable_Type'\n(I2\nttRp10127\nsS'Y:VBus67'\np10128\ng26\n(S'Variable_Type'\n(I2\nttRp10129\nsS'Y:Load 37'\np10130\ng26\n(S'Variable_Type'\n(I2\nttRp10131\nsS'Y65:%RateA 104-105'\np10132\ng26\n(S'Variable_Type'\n(I1\nttRp10133\nsS'Y40:%RateA 32-47'\np10134\ng26\n(S'Variable_Type'\n(I2\nttRp10135\nsS'Y:PMachine47'\np10136\ng26\n(S'Variable_Type'\n(I2\nttRp10137\nsS'Y6:%RateA 14-15'\np10138\ng26\n(S'Variable_Type'\n(I1\nttRp10139\nsS'Y:VBus1'\np10140\ng26\n(S'Variable_Type'\n(I2\nttRp10141\nsS'Y44:%RateA 35-39'\np10142\ng26\n(S'Variable_Type'\n(I2\nttRp10143\nsS'Y:PMachine88'\np10144\ng26\n(S'Variable_Type'\n(I1\nttRp10145\nsS'Y42:%RateA 34-36'\np10146\ng26\n(S'Variable_Type'\n(I2\nttRp10147\nsS'Y57:%RateA 76-77'\np10148\ng26\n(S'Variable_Type'\n(I1\nttRp10149\nsS'Y:PMachine89'\np10150\ng26\n(S'Variable_Type'\n(I1\nttRp10151\nsS'Y:VBus77'\np10152\ng26\n(S'Variable_Type'\n(I2\nttRp10153\nsS'Y:VBus29'\np10154\ng26\n(S'Variable_Type'\n(I2\nttRp10155\nsS'Y:VBus28'\np10156\ng26\n(S'Variable_Type'\n(I2\nttRp10157\nsS'Y:VBus27'\np10158\ng26\n(S'Variable_Type'\n(I2\nttRp10159\nsS'Y:VBus26'\np10160\ng26\n(S'Variable_Type'\n(I2\nttRp10161\nsS'Y:VBus25'\np10162\ng26\n(S'Variable_Type'\n(I2\nttRp10163\nsS'Y:VBus24'\np10164\ng26\n(S'Variable_Type'\n(I2\nttRp10165\nsS'Y:VBus23'\np10166\ng26\n(S'Variable_Type'\n(I2\nttRp10167\nsS'Y:VBus22'\np10168\ng26\n(S'Variable_Type'\n(I2\nttRp10169\nsS'Y:VBus21'\np10170\ng26\n(S'Variable_Type'\n(I2\nttRp10171\nsS'Y:VBus20'\np10172\ng26\n(S'Variable_Type'\n(I2\nttRp10173\nsS'Y:VBus85'\np10174\ng26\n(S'Variable_Type'\n(I2\nttRp10175\nsS'Y:VBus84'\np10176\ng26\n(S'Variable_Type'\n(I2\nttRp10177\nsS'Y52:%RateA 55-56'\np10178\ng26\n(S'Variable_Type'\n(I1\nttRp10179\nsS'Y2:%RateA 12-24'\np10180\ng26\n(S'Variable_Type'\n(I2\nttRp10181\nsS'Y:VBus112'\np10182\ng26\n(S'Variable_Type'\n(I2\nttRp10183\nsS'Y:VBus132'\np10184\ng26\n(S'Variable_Type'\n(I2\nttRp10185\nsS'Y:PMachine58'\np10186\ng26\n(S'Variable_Type'\n(I2\nttRp10187\nsS'Y:VBus130'\np10188\ng26\n(S'Variable_Type'\n(I2\nttRp10189\nsS'Y:VBus131'\np10190\ng26\n(S'Variable_Type'\n(I2\nttRp10191\nsS'Y:VBus136'\np10192\ng26\n(S'Variable_Type'\n(I2\nttRp10193\nsS'Y:VBus137'\np10194\ng26\n(S'Variable_Type'\n(I2\nttRp10195\nsS'Y:VBus134'\np10196\ng26\n(S'Variable_Type'\n(I2\nttRp10197\nsS'Y:VBus135'\np10198\ng26\n(S'Variable_Type'\n(I2\nttRp10199\nsS'Y:VBus81'\np10200\ng26\n(S'Variable_Type'\n(I2\nttRp10201\nsS'Y:PMachine53'\np10202\ng26\n(S'Variable_Type'\n(I2\nttRp10203\nsS'Y:VBus139'\np10204\ng26\n(S'Variable_Type'\n(I2\nttRp10205\nsS'Y30:%RateA 25-29'\np10206\ng26\n(S'Variable_Type'\n(I2\nttRp10207\nsS'Y:VBus115'\np10208\ng26\n(S'Variable_Type'\n(I2\nttRp10209\nsS'Y:PMachine124'\np10210\ng26\n(S'Variable_Type'\n(I2\nttRp10211\nsS'Y:VBus83'\np10212\ng26\n(S'Variable_Type'\n(I2\nttRp10213\nsS'Y66:%RateA 106-107'\np10214\ng26\n(S'Variable_Type'\n(I1\nttRp10215\nsS'Y25:%RateA 23-41'\np10216\ng26\n(S'Variable_Type'\n(I2\nttRp10217\nsS'Y:%Losses'\np10218\ng26\n(S'Variable_Type'\n(I2\nttRp10219\nsS'Y:VBus12'\np10220\ng26\n(S'Variable_Type'\n(I2\nttRp10221\nsS'Y:VBus13'\np10222\ng26\n(S'Variable_Type'\n(I2\nttRp10223\nsS'Y50:%RateA 51-52'\np10224\ng26\n(S'Variable_Type'\n(I1\nttRp10225\nsS'Y:VBus11'\np10226\ng26\n(S'Variable_Type'\n(I2\nttRp10227\nsS'Y:VBus16'\np10228\ng26\n(S'Variable_Type'\n(I2\nttRp10229\nsS'Y:VBus17'\np10230\ng26\n(S'Variable_Type'\n(I2\nttRp10231\nsS'Y:VBus14'\np10232\ng26\n(S'Variable_Type'\n(I2\nttRp10233\nsS'Y:VBus15'\np10234\ng26\n(S'Variable_Type'\n(I2\nttRp10235\nsS'Y:VBus113'\np10236\ng26\n(S'Variable_Type'\n(I2\nttRp10237\nsS'Y:PMachine120'\np10238\ng26\n(S'Variable_Type'\n(I2\nttRp10239\nsS'Y:VBus18'\np10240\ng26\n(S'Variable_Type'\n(I2\nttRp10241\nsS'Y:VBus19'\np10242\ng26\n(S'Variable_Type'\n(I2\nttRp10243\nsS'Y4:%RateA 13-25'\np10244\ng26\n(S'Variable_Type'\n(I2\nttRp10245\nsS'DIESEL VAZZIO'\np10246\ng26\n(S'Variable_Type'\n(I2\nttRp10247\nsS'Y35:%RateA 28-47'\np10248\ng26\n(S'Variable_Type'\n(I2\nttRp10249\nsS'Y:PMachine122'\np10250\ng26\n(S'Variable_Type'\n(I2\nttRp10251\nsS'Y16:%RateA 19-21'\np10252\ng26\n(S'Variable_Type'\n(I2\nttRp10253\nsS'Y:VBus92'\np10254\ng26\n(S'Variable_Type'\n(I2\nttRp10255\nsS'Y7:%RateA 14-35'\np10256\ng26\n(S'Variable_Type'\n(I2\nttRp10257\nsS'Y:VBus90'\np10258\ng26\n(S'Variable_Type'\n(I2\nttRp10259\nsS'Y:VBus96'\np10260\ng26\n(S'Variable_Type'\n(I2\nttRp10261\nsS'Y:VBus97'\np10262\ng26\n(S'Variable_Type'\n(I2\nttRp10263\nsS'Y:VBus94'\np10264\ng26\n(S'Variable_Type'\n(I2\nttRp10265\nsS'Y:VBus95'\np10266\ng26\n(S'Variable_Type'\n(I2\nttRp10267\nsS'Y:VBus107'\np10268\ng26\n(S'Variable_Type'\n(I2\nttRp10269\nsS'Y:VBus106'\np10270\ng26\n(S'Variable_Type'\n(I2\nttRp10271\nsS'Y:VBus105'\np10272\ng26\n(S'Variable_Type'\n(I2\nttRp10273\nsS'Y22:%RateA 22-23'\np10274\ng26\n(S'Variable_Type'\n(I1\nttRp10275\nsS'Y:VBus103'\np10276\ng26\n(S'Variable_Type'\n(I2\nttRp10277\nsS'Y:VBus102'\np10278\ng26\n(S'Variable_Type'\n(I2\nttRp10279\nsS'Y:VBus101'\np10280\ng26\n(S'Variable_Type'\n(I2\nttRp10281\nsS'Y:VBus100'\np10282\ng26\n(S'Variable_Type'\n(I2\nttRp10283\nsS'Y:Load 55'\np10284\ng26\n(S'Variable_Type'\n(I2\nttRp10285\nsS'Y:Load 57'\np10286\ng26\n(S'Variable_Type'\n(I2\nttRp10287\nsS'Y:Load 51'\np10288\ng26\n(S'Variable_Type'\n(I2\nttRp10289\nsS'Y:VBus54'\np10290\ng26\n(S'Variable_Type'\n(I2\nttRp10291\nsS'Y:VBus109'\np10292\ng26\n(S'Variable_Type'\n(I2\nttRp10293\nsS'Y46:%RateA 36-48'\np10294\ng26\n(S'Variable_Type'\n(I2\nttRp10295\nsS'Y:Load 80'\np10296\ng26\n(S'Variable_Type'\n(I2\nttRp10297\nsS'Y:PMachine133'\np10298\ng26\n(S'Variable_Type'\n(I2\nttRp10299\nsS'Y:VBus55'\np10300\ng26\n(S'Variable_Type'\n(I2\nttRp10301\nsS'Y:PMachine29'\np10302\ng26\n(S'Variable_Type'\n(I1\nttRp10303\nsS'Y24:%RateA 23-32'\np10304\ng26\n(S'Variable_Type'\n(I2\nttRp10305\nsS'X:lineOff#'\np10306\ng26\n(S'Variable_Type'\n(I2\nttRp10307\nsS'Y:Max%A'\np10308\ng26\n(S'Variable_Type'\n(I2\nttRp10309\nsS'Y:NbeTransit_0.9-1'\np10310\ng26\n(S'Variable_Type'\n(I1\nttRp10311\nsS'XProdEolienne%Pnom'\np10312\ng26\n(S'Variable_Type'\n(I2\nttRp10313\nsS'Y33:%RateA 27-33'\np10314\ng26\n(S'Variable_Type'\n(I2\nttRp10315\nsS'Y59:%RateA 80-81'\np10316\ng26\n(S'Variable_Type'\n(I1\nttRp10317\nsS'Y:VBus65'\np10318\ng26\n(S'Variable_Type'\n(I2\nttRp10319\nsS'Y:VBus118'\np10320\ng26\n(S'Variable_Type'\n(I2\nttRp10321\nsS'Y:VBus119'\np10322\ng26\n(S'Variable_Type'\n(I2\nttRp10323\nsS'Y:PMachine117'\np10324\ng26\n(S'Variable_Type'\n(I2\nttRp10325\nsS'Y:PMachine116'\np10326\ng26\n(S'Variable_Type'\n(I2\nttRp10327\nsS'Y:PMachine111'\np10328\ng26\n(S'Variable_Type'\n(I2\nttRp10329\nsS'Y:VBus88'\np10330\ng26\n(S'Variable_Type'\n(I2\nttRp10331\nsS'Y:PMachine113'\np10332\ng26\n(S'Variable_Type'\n(I2\nttRp10333\nsS'Y:VBus93'\np10334\ng26\n(S'Variable_Type'\n(I2\nttRp10335\nsS'Y:VBus110'\np10336\ng26\n(S'Variable_Type'\n(I2\nttRp10337\nsS'Y:VBus111'\np10338\ng26\n(S'Variable_Type'\n(I2\nttRp10339\nsS'Y:VBus87'\np10340\ng26\n(S'Variable_Type'\n(I2\nttRp10341\nsS'Y12:%RateA 18-30'\np10342\ng26\n(S'Variable_Type'\n(I2\nttRp10343\nsS'Y:VBus114'\np10344\ng26\n(S'Variable_Type'\n(I2\nttRp10345\nsS'Y:VBus80'\np10346\ng26\n(S'Variable_Type'\n(I2\nttRp10347\nsS'Y:VBus116'\np10348\ng26\n(S'Variable_Type'\n(I2\nttRp10349\nsS'Y:VBus82'\np10350\ng26\n(S'Variable_Type'\n(I2\nttRp10351\nsS'Y61:%RateA 84-85'\np10352\ng26\n(S'Variable_Type'\n(I1\nttRp10353\nsS'Y31:%RateA 26-41'\np10354\ng26\n(S'Variable_Type'\n(I2\nttRp10355\nsS'Y:PMachine131'\np10356\ng26\n(S'Variable_Type'\n(I2\nttRp10357\nsS'Y47:%RateA 38-43'\np10358\ng26\n(S'Variable_Type'\n(I2\nttRp10359\nsS'Y:Load 42'\np10360\ng26\n(S'Variable_Type'\n(I2\nttRp10361\nsS'Y:PMachine85'\np10362\ng26\n(S'Variable_Type'\n(I2\nttRp10363\nsS'Y32:%RateA 26-46'\np10364\ng26\n(S'Variable_Type'\n(I2\nttRp10365\nsS'Y:PMachine132'\np10366\ng26\n(S'Variable_Type'\n(I2\nttRp10367\nsS'Y18:%RateA 19-27'\np10368\ng26\n(S'Variable_Type'\n(I2\nttRp10369\nsS'Y:VBus86'\np10370\ng26\n(S'Variable_Type'\n(I2\nttRp10371\nsS'Y63:%RateA 95-96'\np10372\ng26\n(S'Variable_Type'\n(I1\nttRp10373\nsS'Y17:%RateA 19-22'\np10374\ng26\n(S'Variable_Type'\n(I2\nttRp10375\nsS'Y41:%RateA 32-48'\np10376\ng26\n(S'Variable_Type'\n(I2\nttRp10377\nsS'Y:PMachine30'\np10378\ng26\n(S'Variable_Type'\n(I2\nttRp10379\nsS'Y:VBus117'\np10380\ng26\n(S'Variable_Type'\n(I2\nttRp10381\nsS'Y56:%RateA 72-73'\np10382\ng26\n(S'Variable_Type'\n(I1\nttRp10383\nsS'Y68:%RateA 112-113'\np10384\ng26\n(S'Variable_Type'\n(I1\nttRp10385\nsS'Y:PMachine130'\np10386\ng26\n(S'Variable_Type'\n(I2\nttRp10387\nsS'Y27:%RateA 24-33'\np10388\ng26\n(S'Variable_Type'\n(I2\nttRp10389\nsS'Y:PMachine106'\np10390\ng26\n(S'Variable_Type'\n(I2\nttRp10391\nsS'Y:PMachine107'\np10392\ng26\n(S'Variable_Type'\n(I2\nttRp10393\nsS'Y:PMachine104'\np10394\ng26\n(S'Variable_Type'\n(I2\nttRp10395\nsS'Y:VBus73'\np10396\ng26\n(S'Variable_Type'\n(I2\nttRp10397\nsS'Y:VBus74'\np10398\ng26\n(S'Variable_Type'\n(I2\nttRp10399\nsS'Y:VBus75'\np10400\ng26\n(S'Variable_Type'\n(I2\nttRp10401\nsS'Y:VBus76'\np10402\ng26\n(S'Variable_Type'\n(I2\nttRp10403\nsS'Y:PMachine101'\np10404\ng26\n(S'Variable_Type'\n(I2\nttRp10405\nsS'Y:VBus78'\np10406\ng26\n(S'Variable_Type'\n(I2\nttRp10407\nsS'Y:Load 59'\np10408\ng26\n(S'Variable_Type'\n(I2\nttRp10409\nsS'Y:PMachine115'\np10410\ng26\n(S'Variable_Type'\n(I2\nttRp10411\nsS'Y51:%RateA 53-54'\np10412\ng26\n(S'Variable_Type'\n(I1\nttRp10413\nsS'Y67:%RateA 108-109'\np10414\ng26\n(S'Variable_Type'\n(I1\nttRp10415\nsS'Y:PMachine109'\np10416\ng26\n(S'Variable_Type'\n(I2\nttRp10417\nsS'Y:PMachine83'\np10418\ng26\n(S'Variable_Type'\n(I2\nttRp10419\nsS'Y:PMachine81'\np10420\ng26\n(S'Variable_Type'\n(I2\nttRp10421\nsS'Y:PMachine86'\np10422\ng26\n(S'Variable_Type'\n(I2\nttRp10423\nsS'Y:Load 76'\np10424\ng26\n(S'Variable_Type'\n(I2\nttRp10425\nsS'Y:Load 74'\np10426\ng26\n(S'Variable_Type'\n(I2\nttRp10427\nsS'Y45:%RateA 36-37'\np10428\ng26\n(S'Variable_Type'\n(I2\nttRp10429\nsS'Y58:%RateA 78-79'\np10430\ng26\n(S'Variable_Type'\n(I1\nttRp10431\nsS'Y:Load 78'\np10432\ng26\n(S'Variable_Type'\n(I2\nttRp10433\nsS'X:Load(pu)'\np10434\ng26\n(S'Variable_Type'\n(I2\nttRp10435\nsS'Y5:%RateA 13-29'\np10436\ng26\n(S'Variable_Type'\n(I2\nttRp10437\nsS'Y:PMachine118'\np10438\ng26\n(S'Variable_Type'\n(I2\nttRp10439\nsS'Y1:%RateA 11-47'\np10440\ng26\n(S'Variable_Type'\n(I2\nttRp10441\nsS'Y:VBus60'\np10442\ng26\n(S'Variable_Type'\n(I2\nttRp10443\nsS'Y:PMachine137'\np10444\ng26\n(S'Variable_Type'\n(I1\nttRp10445\nsS'Y29:%RateA 25-29'\np10446\ng26\n(S'Variable_Type'\n(I2\nttRp10447\nsS'Y:VBus66'\np10448\ng26\n(S'Variable_Type'\n(I2\nttRp10449\nsS'Iteration'\np10450\ng26\n(S'Variable_Type'\n(I2\nttRp10451\nsS'Y36:%RateA 29-30'\np10452\ng26\n(S'Variable_Type'\n(I1\nttRp10453\nsS'Y54:%RateA 59-60'\np10454\ng26\n(S'Variable_Type'\n(I1\nttRp10455\nsS'Y:Load 90'\np10456\ng26\n(S'Variable_Type'\n(I2\nttRp10457\nsS'Y9:%RateA 16-32'\np10458\ng26\n(S'Variable_Type'\n(I2\nttRp10459\nsS'Y:PMachine134'\np10460\ng26\n(S'Variable_Type'\n(I1\nttRp10461\nsS'Y:Load 95'\np10462\ng26\n(S'Variable_Type'\n(I2\nttRp10463\nsS'Y:VBus63'\np10464\ng26\n(S'Variable_Type'\n(I2\nttRp10465\nsS'Y:VBus62'\np10466\ng26\n(S'Variable_Type'\n(I2\nttRp10467\nsS'Y:VBus61'\np10468\ng26\n(S'Variable_Type'\n(I2\nttRp10469\nsS'Y55:%RateA 61-62'\np10470\ng26\n(S'Variable_Type'\n(I1\nttRp10471\nsS'Y8:%RateA 15-35'\np10472\ng26\n(S'Variable_Type'\n(I2\nttRp10473\nsS'Y:PMachine136'\np10474\ng26\n(S'Variable_Type'\n(I1\nttRp10475\nsS'Y:PMachine135'\np10476\ng26\n(S'Variable_Type'\n(I1\nttRp10477\nsS'Y:VBus64'\np10478\ng26\n(S'Variable_Type'\n(I2\nttRp10479\nsS'Y:PMachine94'\np10480\ng26\n(S'Variable_Type'\n(I2\nttRp10481\nsS'Y:VBus69'\np10482\ng26\n(S'Variable_Type'\n(I2\nttRp10483\nsS'Y:VBus108'\np10484\ng26\n(S'Variable_Type'\n(I2\nttRp10485\nsS'Y:PMachine139'\np10486\ng26\n(S'Variable_Type'\n(I1\nttRp10487\nsS'Y:PMachine97'\np10488\ng26\n(S'Variable_Type'\n(I2\nttRp10489\nsS'Y:PMachine92'\np10490\ng26\n(S'Variable_Type'\n(I2\nttRp10491\nsS'Y:VBus68'\np10492\ng26\n(S'Variable_Type'\n(I2\nttRp10493\nsS'Y:Load 61'\np10494\ng26\n(S'Variable_Type'\n(I2\nttRp10495\nsS'Y:VBus89'\np10496\ng26\n(S'Variable_Type'\n(I2\nttRp10497\nsS'Y21:%RateA 21-43'\np10498\ng26\n(S'Variable_Type'\n(I2\nttRp10499\nsS'Y:PMachine90'\np10500\ng26\n(S'Variable_Type'\n(I2\nttRp10501\nsS'Y:PMachine14'\np10502\ng26\n(S'Variable_Type'\n(I2\nttRp10503\nsS'Y:PMachine63'\np10504\ng26\n(S'Variable_Type'\n(I2\nttRp10505\nsS'Y:PMachine93'\np10506\ng26\n(S'Variable_Type'\n(I2\nttRp10507\nsS'Y:PConsoTot'\np10508\ng26\n(S'Variable_Type'\n(I2\nttRp10509\nsS'Y23:%RateA 22-31'\np10510\ng26\n(S'Variable_Type'\n(I2\nttRp10511\nsS'Y19:%RateA 20-26'\np10512\ng26\n(S'Variable_Type'\n(I2\nttRp10513\nsS'Y:PMachine18'\np10514\ng26\n(S'Variable_Type'\n(I2\nttRp10515\nsS'Y:VBus34'\np10516\ng26\n(S'Variable_Type'\n(I2\nttRp10517\nsS'Y:NbeTension'\np10518\ng26\n(S'Variable_Type'\n(I2\nttRp10519\nsS'Y:PMachine128'\np10520\ng26\n(S'Variable_Type'\n(I2\nttRp10521\nsS'Y:PMachine129'\np10522\ng26\n(S'Variable_Type'\n(I2\nttRp10523\nsS'Y:VBus133'\np10524\ng26\n(S'Variable_Type'\n(I2\nttRp10525\nsS'Y:Load 82'\np10526\ng26\n(S'Variable_Type'\n(I2\nttRp10527\nsS'Y:PMachine125'\np10528\ng26\n(S'Variable_Type'\n(I2\nttRp10529\nsS'Y:PMachine126'\np10530\ng26\n(S'Variable_Type'\n(I2\nttRp10531\nsS'Y:PMachine127'\np10532\ng26\n(S'Variable_Type'\n(I2\nttRp10533\nsS'Y:Load 86'\np10534\ng26\n(S'Variable_Type'\n(I2\nttRp10535\nsS'Y:PMachine121'\np10536\ng26\n(S'Variable_Type'\n(I2\nttRp10537\nsS'Y:Load 84'\np10538\ng26\n(S'Variable_Type'\n(I2\nttRp10539\nsS'Y:PMachine123'\np10540\ng26\n(S'Variable_Type'\n(I2\nttRp10541\nsS'Y:Load 102'\np10542\ng26\n(S'Variable_Type'\n(I2\nttRp10543\nsS'Y:VBus57'\np10544\ng26\n(S'Variable_Type'\n(I2\nttRp10545\nsS'Y:Load 100'\np10546\ng26\n(S'Variable_Type'\n(I2\nttRp10547\nsS'Y:Load 101'\np10548\ng26\n(S'Variable_Type'\n(I2\nttRp10549\nsS'Y:VBus52'\np10550\ng26\n(S'Variable_Type'\n(I2\nttRp10551\nsS'Y:VBus53'\np10552\ng26\n(S'Variable_Type'\n(I2\nttRp10553\nsS'Y:Load 104'\np10554\ng26\n(S'Variable_Type'\n(I2\nttRp10555\nsS'Y:VBus51'\np10556\ng26\n(S'Variable_Type'\n(I2\nttRp10557\nsS'Y:Load 108'\np10558\ng26\n(S'Variable_Type'\n(I2\nttRp10559\nsS'Y64:%RateA 102-103'\np10560\ng26\n(S'Variable_Type'\n(I1\nttRp10561\nsS'Y:PMachine112'\np10562\ng26\n(S'Variable_Type'\n(I2\nttRp10563\nsS'Y:VBus58'\np10564\ng26\n(S'Variable_Type'\n(I2\nttRp10565\nsS'Y:VBus59'\np10566\ng26\n(S'Variable_Type'\n(I2\nttRp10567\nsS'Y:Load 53'\np10568\ng26\n(S'Variable_Type'\n(I2\nttRp10569\nsS'Y10:%RateA 16-47'\np10570\ng26\n(S'Variable_Type'\n(I2\nttRp10571\nsS'Y:PMachine54'\np10572\ng26\n(S'Variable_Type'\n(I2\nttRp10573\nsS'Y:VBus56'\np10574\ng26\n(S'Variable_Type'\n(I2\nttRp10575\nsS'TOT WIND'\np10576\ng26\n(S'Variable_Type'\n(I2\nttRp10577\nsS'Y3:%RateA 12-24'\np10578\ng26\n(S'Variable_Type'\n(I2\nttRp10579\nsS'Y11:%RateA 17-27'\np10580\ng26\n(S'Variable_Type'\n(I2\nttRp10581\nsS'Y:PMachine114'\np10582\ng26\n(S'Variable_Type'\n(I2\nttRp10583\nsS'Y:VBus72'\np10584\ng26\n(S'Variable_Type'\n(I2\nttRp10585\nsS'Y:PMachine60'\np10586\ng26\n(S'Variable_Type'\n(I2\nttRp10587\nsS'Y:PMachine61'\np10588\ng26\n(S'Variable_Type'\n(I1\nttRp10589\nsS'Y:PMachine62'\np10590\ng26\n(S'Variable_Type'\n(I2\nttRp10591\nsS'Y:PMachine105'\np10592\ng26\n(S'Variable_Type'\n(I2\nttRp10593\nsS'Y:PMachine64'\np10594\ng26\n(S'Variable_Type'\n(I2\nttRp10595\nsS'Y:PMachine65'\np10596\ng26\n(S'Variable_Type'\n(I2\nttRp10597\nsS'Y:PMachine66'\np10598\ng26\n(S'Variable_Type'\n(I2\nttRp10599\nsS'Y:PMachine67'\np10600\ng26\n(S'Variable_Type'\n(I2\nttRp10601\nsS'Y:PMachine68'\np10602\ng26\n(S'Variable_Type'\n(I2\nttRp10603\nsS'Y:PMachine102'\np10604\ng26\n(S'Variable_Type'\n(I2\nttRp10605\nsS'X:ProdPV%Pnom'\np10606\ng26\n(S'Variable_Type'\n(I2\nttRp10607\nsS'Y:VBus138'\np10608\ng26\n(S'Variable_Type'\n(I2\nttRp10609\nsS'Y26:%RateA 24-25'\np10610\ng26\n(S'Variable_Type'\n(I1\nttRp10611\nssg630\n(dp10612\nsg632\n(dp10613\ng2509\n(S'Iteration'\np10614\ng10451\ntp10615\nsg2512\n(g638\nI0\ntp10616\nsg2514\n(g10614\ng10451\ntp10617\nsg2516\n(S''\nI0\ntp10618\nsg2518\n(S''\nI0\ntp10619\nsg2520\n(NI-2\ntp10620\nsg2522\n((lI-2\ntp10621\nssg650\nF1369931650.8399999\nsba(iOWContexts\nContext\np10622\n(dp10623\ng20\n(lp10624\ng1272\nasg23\n(dp10625\nS'Y:VBus48'\np10626\ng26\n(S'Variable_Type'\n(I2\nttRp10627\nsS'Y15:%RateA 18-44'\np10628\ng26\n(S'Variable_Type'\n(I2\nttRp10629\nsS'Y:VBus41'\np10630\ng26\n(S'Variable_Type'\n(I2\nttRp10631\nsS'Y:VBus40'\np10632\ng26\n(S'Variable_Type'\n(I2\nttRp10633\nsS'Y:VBus43'\np10634\ng26\n(S'Variable_Type'\n(I2\nttRp10635\nsS'Y:VBus42'\np10636\ng26\n(S'Variable_Type'\n(I2\nttRp10637\nsS'Y:VBus45'\np10638\ng26\n(S'Variable_Type'\n(I2\nttRp10639\nsS'Y:VBus44'\np10640\ng26\n(S'Variable_Type'\n(I2\nttRp10641\nsS'Y:VBus47'\np10642\ng26\n(S'Variable_Type'\n(I2\nttRp10643\nsS'Y:VBus46'\np10644\ng26\n(S'Variable_Type'\n(I2\nttRp10645\nsS'Y39:%RateA 32-45'\np10646\ng26\n(S'Variable_Type'\n(I2\nttRp10647\nsS'Y:Load 110'\np10648\ng26\n(S'Variable_Type'\n(I2\nttRp10649\nsS'Y:Load 115'\np10650\ng26\n(S'Variable_Type'\n(I2\nttRp10651\nsS'Y:VBus79'\np10652\ng26\n(S'Variable_Type'\n(I2\nttRp10653\nsS'Y13:%RateA 18-30'\np10654\ng26\n(S'Variable_Type'\n(I2\nttRp10655\nsS'Y34:%RateA 28-38'\np10656\ng26\n(S'Variable_Type'\n(I2\nttRp10657\nsS'Y:NbeTransit'\np10658\ng26\n(S'Variable_Type'\n(I1\nttRp10659\nsS'Y:VBus104'\np10660\ng26\n(S'Variable_Type'\n(I2\nttRp10661\nsS'Y20:%RateA 20-44'\np10662\ng26\n(S'Variable_Type'\n(I2\nttRp10663\nsS'Y38:%RateA 32-45'\np10664\ng26\n(S'Variable_Type'\n(I2\nttRp10665\nsS'Y:PMachine73'\np10666\ng26\n(S'Variable_Type'\n(I2\nttRp10667\nsS'Y:PMachine72'\np10668\ng26\n(S'Variable_Type'\n(I2\nttRp10669\nsS'Y49:%RateA 40-48'\np10670\ng26\n(S'Variable_Type'\n(I2\nttRp10671\nsS'Y:PMachine77'\np10672\ng26\n(S'Variable_Type'\n(I2\nttRp10673\nsS'Y:PMachine75'\np10674\ng26\n(S'Variable_Type'\n(I2\nttRp10675\nsS'Y:PMachine74'\np10676\ng26\n(S'Variable_Type'\n(I2\nttRp10677\nsS'Y:PMachine78'\np10678\ng26\n(S'Variable_Type'\n(I1\nttRp10679\nsS'Y:PMachine138'\np10680\ng26\n(S'Variable_Type'\n(I1\nttRp10681\nsS'Y28:%RateA 24-42'\np10682\ng26\n(S'Variable_Type'\n(I2\nttRp10683\nsS'Y:PProdTot'\np10684\ng26\n(S'Variable_Type'\n(I2\nttRp10685\nsS'Y:PMachine69'\np10686\ng26\n(S'Variable_Type'\n(I2\nttRp10687\nsS'Y:VBus38'\np10688\ng26\n(S'Variable_Type'\n(I2\nttRp10689\nsS'Y:VBus39'\np10690\ng26\n(S'Variable_Type'\n(I2\nttRp10691\nsS'Y62:%RateA 86-87'\np10692\ng26\n(S'Variable_Type'\n(I1\nttRp10693\nsS'Y:PMachine1'\np10694\ng26\n(S'Variable_Type'\n(I2\nttRp10695\nsS'Y:VBus35'\np10696\ng26\n(S'Variable_Type'\n(I2\nttRp10697\nsS'Y:VBus36'\np10698\ng26\n(S'Variable_Type'\n(I2\nttRp10699\nsS'Y:VBus37'\np10700\ng26\n(S'Variable_Type'\n(I2\nttRp10701\nsS'Y:VBus30'\np10702\ng26\n(S'Variable_Type'\n(I2\nttRp10703\nsS'Y:VBus31'\np10704\ng26\n(S'Variable_Type'\n(I2\nttRp10705\nsS'Y:VBus32'\np10706\ng26\n(S'Variable_Type'\n(I2\nttRp10707\nsS'Y:VBus33'\np10708\ng26\n(S'Variable_Type'\n(I2\nttRp10709\nsS'Y53:%RateA 57-58'\np10710\ng26\n(S'Variable_Type'\n(I1\nttRp10711\nsS'Y14:%RateA 18-31'\np10712\ng26\n(S'Variable_Type'\n(I2\nttRp10713\nsS'Y48:%RateA 39-46'\np10714\ng26\n(S'Variable_Type'\n(I2\nttRp10715\nsS'Y60:%RateA 82-83'\np10716\ng26\n(S'Variable_Type'\n(I1\nttRp10717\nsS'Y:PMachine87'\np10718\ng26\n(S'Variable_Type'\n(I2\nttRp10719\nsS'Y:VBus121'\np10720\ng26\n(S'Variable_Type'\n(I2\nttRp10721\nsS'Y:VBus120'\np10722\ng26\n(S'Variable_Type'\n(I2\nttRp10723\nsS'Y:VBus123'\np10724\ng26\n(S'Variable_Type'\n(I2\nttRp10725\nsS'Y:VBus122'\np10726\ng26\n(S'Variable_Type'\n(I2\nttRp10727\nsS'Y:VBus125'\np10728\ng26\n(S'Variable_Type'\n(I2\nttRp10729\nsS'Y:VBus124'\np10730\ng26\n(S'Variable_Type'\n(I2\nttRp10731\nsS'Y:VBus127'\np10732\ng26\n(S'Variable_Type'\n(I2\nttRp10733\nsS'Y:VBus126'\np10734\ng26\n(S'Variable_Type'\n(I2\nttRp10735\nsS'Y:VBus129'\np10736\ng26\n(S'Variable_Type'\n(I2\nttRp10737\nsS'Y:VBus128'\np10738\ng26\n(S'Variable_Type'\n(I2\nttRp10739\nsS'Y37:%RateA 32-34'\np10740\ng26\n(S'Variable_Type'\n(I2\nttRp10741\nsS'Y43:%RateA 35-37'\np10742\ng26\n(S'Variable_Type'\n(I2\nttRp10743\nsS'Y:PMachine42'\np10744\ng26\n(S'Variable_Type'\n(I2\nttRp10745\nsS'Y0:%RateA 11-28'\np10746\ng26\n(S'Variable_Type'\n(I2\nttRp10747\nsS'Y:VBus67'\np10748\ng26\n(S'Variable_Type'\n(I2\nttRp10749\nsS'Y:Load 37'\np10750\ng26\n(S'Variable_Type'\n(I2\nttRp10751\nsS'Y65:%RateA 104-105'\np10752\ng26\n(S'Variable_Type'\n(I1\nttRp10753\nsS'Y40:%RateA 32-47'\np10754\ng26\n(S'Variable_Type'\n(I2\nttRp10755\nsS'Y:PMachine47'\np10756\ng26\n(S'Variable_Type'\n(I2\nttRp10757\nsS'Y6:%RateA 14-15'\np10758\ng26\n(S'Variable_Type'\n(I1\nttRp10759\nsS'Y:VBus1'\np10760\ng26\n(S'Variable_Type'\n(I2\nttRp10761\nsS'Y44:%RateA 35-39'\np10762\ng26\n(S'Variable_Type'\n(I2\nttRp10763\nsS'Y:PMachine88'\np10764\ng26\n(S'Variable_Type'\n(I1\nttRp10765\nsS'Y42:%RateA 34-36'\np10766\ng26\n(S'Variable_Type'\n(I2\nttRp10767\nsS'Y57:%RateA 76-77'\np10768\ng26\n(S'Variable_Type'\n(I1\nttRp10769\nsS'Y:PMachine89'\np10770\ng26\n(S'Variable_Type'\n(I1\nttRp10771\nsS'Y:VBus77'\np10772\ng26\n(S'Variable_Type'\n(I2\nttRp10773\nsS'Y:VBus29'\np10774\ng26\n(S'Variable_Type'\n(I2\nttRp10775\nsS'Y:VBus28'\np10776\ng26\n(S'Variable_Type'\n(I2\nttRp10777\nsS'Y:VBus27'\np10778\ng26\n(S'Variable_Type'\n(I2\nttRp10779\nsS'Y:VBus26'\np10780\ng26\n(S'Variable_Type'\n(I2\nttRp10781\nsS'Y:VBus25'\np10782\ng26\n(S'Variable_Type'\n(I2\nttRp10783\nsS'Y:VBus24'\np10784\ng26\n(S'Variable_Type'\n(I2\nttRp10785\nsS'Y:VBus23'\np10786\ng26\n(S'Variable_Type'\n(I2\nttRp10787\nsS'Y:VBus22'\np10788\ng26\n(S'Variable_Type'\n(I2\nttRp10789\nsS'Y:VBus21'\np10790\ng26\n(S'Variable_Type'\n(I2\nttRp10791\nsS'Y:VBus20'\np10792\ng26\n(S'Variable_Type'\n(I2\nttRp10793\nsS'Y:VBus85'\np10794\ng26\n(S'Variable_Type'\n(I2\nttRp10795\nsS'TOT VAZZIO'\np10796\ng26\n(S'Variable_Type'\n(I2\nttRp10797\nsS'Y:VBus84'\np10798\ng26\n(S'Variable_Type'\n(I2\nttRp10799\nsS'Y52:%RateA 55-56'\np10800\ng26\n(S'Variable_Type'\n(I1\nttRp10801\nsS'Y2:%RateA 12-24'\np10802\ng26\n(S'Variable_Type'\n(I2\nttRp10803\nsS'Y:VBus112'\np10804\ng26\n(S'Variable_Type'\n(I2\nttRp10805\nsS'Y:VBus132'\np10806\ng26\n(S'Variable_Type'\n(I2\nttRp10807\nsS'Y:PMachine58'\np10808\ng26\n(S'Variable_Type'\n(I2\nttRp10809\nsS'Y:VBus130'\np10810\ng26\n(S'Variable_Type'\n(I2\nttRp10811\nsS'Y:VBus131'\np10812\ng26\n(S'Variable_Type'\n(I2\nttRp10813\nsS'Y:VBus136'\np10814\ng26\n(S'Variable_Type'\n(I2\nttRp10815\nsS'Y:VBus137'\np10816\ng26\n(S'Variable_Type'\n(I2\nttRp10817\nsS'Y:VBus134'\np10818\ng26\n(S'Variable_Type'\n(I2\nttRp10819\nsS'Y:VBus135'\np10820\ng26\n(S'Variable_Type'\n(I2\nttRp10821\nsS'Y:VBus81'\np10822\ng26\n(S'Variable_Type'\n(I2\nttRp10823\nsS'Y:PMachine53'\np10824\ng26\n(S'Variable_Type'\n(I2\nttRp10825\nsS'Y:VBus139'\np10826\ng26\n(S'Variable_Type'\n(I2\nttRp10827\nsS'Y30:%RateA 25-29'\np10828\ng26\n(S'Variable_Type'\n(I2\nttRp10829\nsS'Y:VBus115'\np10830\ng26\n(S'Variable_Type'\n(I2\nttRp10831\nsS'Y:PMachine124'\np10832\ng26\n(S'Variable_Type'\n(I2\nttRp10833\nsS'Y:VBus83'\np10834\ng26\n(S'Variable_Type'\n(I2\nttRp10835\nsS'Y66:%RateA 106-107'\np10836\ng26\n(S'Variable_Type'\n(I1\nttRp10837\nsS'Y25:%RateA 23-41'\np10838\ng26\n(S'Variable_Type'\n(I2\nttRp10839\nsS'Y:%Losses'\np10840\ng26\n(S'Variable_Type'\n(I2\nttRp10841\nsS'Y:VBus12'\np10842\ng26\n(S'Variable_Type'\n(I2\nttRp10843\nsS'Y:VBus13'\np10844\ng26\n(S'Variable_Type'\n(I2\nttRp10845\nsS'Y50:%RateA 51-52'\np10846\ng26\n(S'Variable_Type'\n(I1\nttRp10847\nsS'Y:VBus11'\np10848\ng26\n(S'Variable_Type'\n(I2\nttRp10849\nsS'Y:VBus16'\np10850\ng26\n(S'Variable_Type'\n(I2\nttRp10851\nsS'Y:VBus17'\np10852\ng26\n(S'Variable_Type'\n(I2\nttRp10853\nsS'Y:VBus14'\np10854\ng26\n(S'Variable_Type'\n(I2\nttRp10855\nsS'Y:VBus15'\np10856\ng26\n(S'Variable_Type'\n(I2\nttRp10857\nsS'Y:VBus113'\np10858\ng26\n(S'Variable_Type'\n(I2\nttRp10859\nsS'Y:PMachine120'\np10860\ng26\n(S'Variable_Type'\n(I2\nttRp10861\nsS'Y:VBus18'\np10862\ng26\n(S'Variable_Type'\n(I2\nttRp10863\nsS'Y:VBus19'\np10864\ng26\n(S'Variable_Type'\n(I2\nttRp10865\nsS'Y4:%RateA 13-25'\np10866\ng26\n(S'Variable_Type'\n(I2\nttRp10867\nsS'Y35:%RateA 28-47'\np10868\ng26\n(S'Variable_Type'\n(I2\nttRp10869\nsS'Y:PMachine122'\np10870\ng26\n(S'Variable_Type'\n(I2\nttRp10871\nsS'Y16:%RateA 19-21'\np10872\ng26\n(S'Variable_Type'\n(I2\nttRp10873\nsS'Y:VBus92'\np10874\ng26\n(S'Variable_Type'\n(I2\nttRp10875\nsS'Y7:%RateA 14-35'\np10876\ng26\n(S'Variable_Type'\n(I2\nttRp10877\nsS'Y:VBus90'\np10878\ng26\n(S'Variable_Type'\n(I2\nttRp10879\nsS'Y:VBus96'\np10880\ng26\n(S'Variable_Type'\n(I2\nttRp10881\nsS'Y:VBus97'\np10882\ng26\n(S'Variable_Type'\n(I2\nttRp10883\nsS'Y:VBus94'\np10884\ng26\n(S'Variable_Type'\n(I2\nttRp10885\nsS'Y:VBus95'\np10886\ng26\n(S'Variable_Type'\n(I2\nttRp10887\nsS'Y:VBus107'\np10888\ng26\n(S'Variable_Type'\n(I2\nttRp10889\nsS'Y:VBus106'\np10890\ng26\n(S'Variable_Type'\n(I2\nttRp10891\nsS'Y:VBus105'\np10892\ng26\n(S'Variable_Type'\n(I2\nttRp10893\nsS'Y22:%RateA 22-23'\np10894\ng26\n(S'Variable_Type'\n(I1\nttRp10895\nsS'Y:VBus103'\np10896\ng26\n(S'Variable_Type'\n(I2\nttRp10897\nsS'Y:VBus102'\np10898\ng26\n(S'Variable_Type'\n(I2\nttRp10899\nsS'Y:VBus101'\np10900\ng26\n(S'Variable_Type'\n(I2\nttRp10901\nsS'Y:VBus100'\np10902\ng26\n(S'Variable_Type'\n(I2\nttRp10903\nsS'Y:Load 55'\np10904\ng26\n(S'Variable_Type'\n(I2\nttRp10905\nsS'Y:Load 57'\np10906\ng26\n(S'Variable_Type'\n(I2\nttRp10907\nsS'Y:Load 51'\np10908\ng26\n(S'Variable_Type'\n(I2\nttRp10909\nsS'Y:VBus54'\np10910\ng26\n(S'Variable_Type'\n(I2\nttRp10911\nsS'Y:VBus109'\np10912\ng26\n(S'Variable_Type'\n(I2\nttRp10913\nsS'Y46:%RateA 36-48'\np10914\ng26\n(S'Variable_Type'\n(I2\nttRp10915\nsS'Y:Load 80'\np10916\ng26\n(S'Variable_Type'\n(I2\nttRp10917\nsS'Y:PMachine133'\np10918\ng26\n(S'Variable_Type'\n(I2\nttRp10919\nsS'Y:VBus55'\np10920\ng26\n(S'Variable_Type'\n(I2\nttRp10921\nsS'Y:PMachine29'\np10922\ng26\n(S'Variable_Type'\n(I1\nttRp10923\nsS'Y24:%RateA 23-32'\np10924\ng26\n(S'Variable_Type'\n(I2\nttRp10925\nsS'X:lineOff#'\np10926\ng26\n(S'Variable_Type'\n(I2\nttRp10927\nsS'Y:Max%A'\np10928\ng26\n(S'Variable_Type'\n(I2\nttRp10929\nsS'Y:NbeTransit_0.9-1'\np10930\ng26\n(S'Variable_Type'\n(I1\nttRp10931\nsS'XProdEolienne%Pnom'\np10932\ng26\n(S'Variable_Type'\n(I2\nttRp10933\nsS'Y33:%RateA 27-33'\np10934\ng26\n(S'Variable_Type'\n(I2\nttRp10935\nsS'Y59:%RateA 80-81'\np10936\ng26\n(S'Variable_Type'\n(I1\nttRp10937\nsS'Y:VBus65'\np10938\ng26\n(S'Variable_Type'\n(I2\nttRp10939\nsS'Y:VBus118'\np10940\ng26\n(S'Variable_Type'\n(I2\nttRp10941\nsS'Y:VBus119'\np10942\ng26\n(S'Variable_Type'\n(I2\nttRp10943\nsS'Y:PMachine117'\np10944\ng26\n(S'Variable_Type'\n(I2\nttRp10945\nsS'Y:PMachine116'\np10946\ng26\n(S'Variable_Type'\n(I2\nttRp10947\nsS'Y:PMachine111'\np10948\ng26\n(S'Variable_Type'\n(I2\nttRp10949\nsS'Y:VBus88'\np10950\ng26\n(S'Variable_Type'\n(I2\nttRp10951\nsS'Y:PMachine113'\np10952\ng26\n(S'Variable_Type'\n(I2\nttRp10953\nsS'Y:VBus93'\np10954\ng26\n(S'Variable_Type'\n(I2\nttRp10955\nsS'Y:VBus110'\np10956\ng26\n(S'Variable_Type'\n(I2\nttRp10957\nsS'Y:VBus111'\np10958\ng26\n(S'Variable_Type'\n(I2\nttRp10959\nsS'Y:VBus87'\np10960\ng26\n(S'Variable_Type'\n(I2\nttRp10961\nsS'Y12:%RateA 18-30'\np10962\ng26\n(S'Variable_Type'\n(I2\nttRp10963\nsS'Y:VBus114'\np10964\ng26\n(S'Variable_Type'\n(I2\nttRp10965\nsS'Y:VBus80'\np10966\ng26\n(S'Variable_Type'\n(I2\nttRp10967\nsS'Y:VBus116'\np10968\ng26\n(S'Variable_Type'\n(I2\nttRp10969\nsS'Y:VBus82'\np10970\ng26\n(S'Variable_Type'\n(I2\nttRp10971\nsS'Y61:%RateA 84-85'\np10972\ng26\n(S'Variable_Type'\n(I1\nttRp10973\nsS'Y31:%RateA 26-41'\np10974\ng26\n(S'Variable_Type'\n(I2\nttRp10975\nsS'Y:PMachine131'\np10976\ng26\n(S'Variable_Type'\n(I2\nttRp10977\nsS'Y47:%RateA 38-43'\np10978\ng26\n(S'Variable_Type'\n(I2\nttRp10979\nsS'Y:Load 42'\np10980\ng26\n(S'Variable_Type'\n(I2\nttRp10981\nsS'Y:PMachine85'\np10982\ng26\n(S'Variable_Type'\n(I2\nttRp10983\nsS'Y32:%RateA 26-46'\np10984\ng26\n(S'Variable_Type'\n(I2\nttRp10985\nsS'Y:PMachine132'\np10986\ng26\n(S'Variable_Type'\n(I2\nttRp10987\nsS'Y18:%RateA 19-27'\np10988\ng26\n(S'Variable_Type'\n(I2\nttRp10989\nsS'Y:VBus86'\np10990\ng26\n(S'Variable_Type'\n(I2\nttRp10991\nsS'Y63:%RateA 95-96'\np10992\ng26\n(S'Variable_Type'\n(I1\nttRp10993\nsS'Y17:%RateA 19-22'\np10994\ng26\n(S'Variable_Type'\n(I2\nttRp10995\nsS'Y41:%RateA 32-48'\np10996\ng26\n(S'Variable_Type'\n(I2\nttRp10997\nsS'Y:PMachine30'\np10998\ng26\n(S'Variable_Type'\n(I2\nttRp10999\nsS'Y:VBus117'\np11000\ng26\n(S'Variable_Type'\n(I2\nttRp11001\nsS'Y56:%RateA 72-73'\np11002\ng26\n(S'Variable_Type'\n(I1\nttRp11003\nsS'Y68:%RateA 112-113'\np11004\ng26\n(S'Variable_Type'\n(I1\nttRp11005\nsS'Y:PMachine130'\np11006\ng26\n(S'Variable_Type'\n(I2\nttRp11007\nsS'Y27:%RateA 24-33'\np11008\ng26\n(S'Variable_Type'\n(I2\nttRp11009\nsS'Y:PMachine106'\np11010\ng26\n(S'Variable_Type'\n(I2\nttRp11011\nsS'Y:PMachine107'\np11012\ng26\n(S'Variable_Type'\n(I2\nttRp11013\nsS'Y:PMachine104'\np11014\ng26\n(S'Variable_Type'\n(I2\nttRp11015\nsS'Y:VBus73'\np11016\ng26\n(S'Variable_Type'\n(I2\nttRp11017\nsS'Y:VBus74'\np11018\ng26\n(S'Variable_Type'\n(I2\nttRp11019\nsS'Y:VBus75'\np11020\ng26\n(S'Variable_Type'\n(I2\nttRp11021\nsS'Y:VBus76'\np11022\ng26\n(S'Variable_Type'\n(I2\nttRp11023\nsS'Y:PMachine101'\np11024\ng26\n(S'Variable_Type'\n(I2\nttRp11025\nsS'Y:VBus78'\np11026\ng26\n(S'Variable_Type'\n(I2\nttRp11027\nsS'Y:Load 59'\np11028\ng26\n(S'Variable_Type'\n(I2\nttRp11029\nsS'Y:PMachine115'\np11030\ng26\n(S'Variable_Type'\n(I2\nttRp11031\nsS'Y51:%RateA 53-54'\np11032\ng26\n(S'Variable_Type'\n(I1\nttRp11033\nsS'Y67:%RateA 108-109'\np11034\ng26\n(S'Variable_Type'\n(I1\nttRp11035\nsS'Y:PMachine109'\np11036\ng26\n(S'Variable_Type'\n(I2\nttRp11037\nsS'Y:PMachine83'\np11038\ng26\n(S'Variable_Type'\n(I2\nttRp11039\nsS'Y:PMachine81'\np11040\ng26\n(S'Variable_Type'\n(I2\nttRp11041\nsS'Y:PMachine86'\np11042\ng26\n(S'Variable_Type'\n(I2\nttRp11043\nsS'Y:Load 76'\np11044\ng26\n(S'Variable_Type'\n(I2\nttRp11045\nsS'Y:Load 74'\np11046\ng26\n(S'Variable_Type'\n(I2\nttRp11047\nsS'Y45:%RateA 36-37'\np11048\ng26\n(S'Variable_Type'\n(I2\nttRp11049\nsS'Y58:%RateA 78-79'\np11050\ng26\n(S'Variable_Type'\n(I1\nttRp11051\nsS'Y:Load 78'\np11052\ng26\n(S'Variable_Type'\n(I2\nttRp11053\nsS'X:Load(pu)'\np11054\ng26\n(S'Variable_Type'\n(I2\nttRp11055\nsS'Y5:%RateA 13-29'\np11056\ng26\n(S'Variable_Type'\n(I2\nttRp11057\nsS'Y:PMachine118'\np11058\ng26\n(S'Variable_Type'\n(I2\nttRp11059\nsS'Y1:%RateA 11-47'\np11060\ng26\n(S'Variable_Type'\n(I2\nttRp11061\nsS'Y:VBus60'\np11062\ng26\n(S'Variable_Type'\n(I2\nttRp11063\nsS'Y:PMachine137'\np11064\ng26\n(S'Variable_Type'\n(I1\nttRp11065\nsS'Y29:%RateA 25-29'\np11066\ng26\n(S'Variable_Type'\n(I2\nttRp11067\nsS'Y:VBus66'\np11068\ng26\n(S'Variable_Type'\n(I2\nttRp11069\nsS'Iteration'\np11070\ng26\n(S'Variable_Type'\n(I2\nttRp11071\nsS'Y36:%RateA 29-30'\np11072\ng26\n(S'Variable_Type'\n(I1\nttRp11073\nsS'Y54:%RateA 59-60'\np11074\ng26\n(S'Variable_Type'\n(I1\nttRp11075\nsS'Y:Load 90'\np11076\ng26\n(S'Variable_Type'\n(I2\nttRp11077\nsS'Y9:%RateA 16-32'\np11078\ng26\n(S'Variable_Type'\n(I2\nttRp11079\nsS'Y:PMachine134'\np11080\ng26\n(S'Variable_Type'\n(I1\nttRp11081\nsS'Y:Load 95'\np11082\ng26\n(S'Variable_Type'\n(I2\nttRp11083\nsS'Y:VBus63'\np11084\ng26\n(S'Variable_Type'\n(I2\nttRp11085\nsS'Y:VBus62'\np11086\ng26\n(S'Variable_Type'\n(I2\nttRp11087\nsS'Y:VBus61'\np11088\ng26\n(S'Variable_Type'\n(I2\nttRp11089\nsS'Y55:%RateA 61-62'\np11090\ng26\n(S'Variable_Type'\n(I1\nttRp11091\nsS'Y8:%RateA 15-35'\np11092\ng26\n(S'Variable_Type'\n(I2\nttRp11093\nsS'Y:PMachine136'\np11094\ng26\n(S'Variable_Type'\n(I1\nttRp11095\nsS'Y:PMachine135'\np11096\ng26\n(S'Variable_Type'\n(I1\nttRp11097\nsS'Y:VBus64'\np11098\ng26\n(S'Variable_Type'\n(I2\nttRp11099\nsS'Y:PMachine94'\np11100\ng26\n(S'Variable_Type'\n(I2\nttRp11101\nsS'Y:VBus69'\np11102\ng26\n(S'Variable_Type'\n(I2\nttRp11103\nsS'Y:VBus108'\np11104\ng26\n(S'Variable_Type'\n(I2\nttRp11105\nsS'Y:PMachine139'\np11106\ng26\n(S'Variable_Type'\n(I1\nttRp11107\nsS'Y:PMachine97'\np11108\ng26\n(S'Variable_Type'\n(I2\nttRp11109\nsS'Y:PMachine92'\np11110\ng26\n(S'Variable_Type'\n(I2\nttRp11111\nsS'Y:VBus68'\np11112\ng26\n(S'Variable_Type'\n(I2\nttRp11113\nsS'Y:Load 61'\np11114\ng26\n(S'Variable_Type'\n(I2\nttRp11115\nsS'Y:VBus89'\np11116\ng26\n(S'Variable_Type'\n(I2\nttRp11117\nsS'Y21:%RateA 21-43'\np11118\ng26\n(S'Variable_Type'\n(I2\nttRp11119\nsS'Y:PMachine90'\np11120\ng26\n(S'Variable_Type'\n(I2\nttRp11121\nsS'Y:PMachine14'\np11122\ng26\n(S'Variable_Type'\n(I2\nttRp11123\nsS'Y:PMachine63'\np11124\ng26\n(S'Variable_Type'\n(I2\nttRp11125\nsS'Y:PMachine93'\np11126\ng26\n(S'Variable_Type'\n(I2\nttRp11127\nsS'Y:PConsoTot'\np11128\ng26\n(S'Variable_Type'\n(I2\nttRp11129\nsS'Y23:%RateA 22-31'\np11130\ng26\n(S'Variable_Type'\n(I2\nttRp11131\nsS'Y19:%RateA 20-26'\np11132\ng26\n(S'Variable_Type'\n(I2\nttRp11133\nsS'Y:PMachine18'\np11134\ng26\n(S'Variable_Type'\n(I2\nttRp11135\nsS'Y:VBus34'\np11136\ng26\n(S'Variable_Type'\n(I2\nttRp11137\nsS'Y:NbeTension'\np11138\ng26\n(S'Variable_Type'\n(I2\nttRp11139\nsS'Y:PMachine128'\np11140\ng26\n(S'Variable_Type'\n(I2\nttRp11141\nsS'Y:PMachine129'\np11142\ng26\n(S'Variable_Type'\n(I2\nttRp11143\nsS'Y:VBus133'\np11144\ng26\n(S'Variable_Type'\n(I2\nttRp11145\nsS'Y:Load 82'\np11146\ng26\n(S'Variable_Type'\n(I2\nttRp11147\nsS'Y:PMachine125'\np11148\ng26\n(S'Variable_Type'\n(I2\nttRp11149\nsS'Y:PMachine126'\np11150\ng26\n(S'Variable_Type'\n(I2\nttRp11151\nsS'Y:PMachine127'\np11152\ng26\n(S'Variable_Type'\n(I2\nttRp11153\nsS'Y:Load 86'\np11154\ng26\n(S'Variable_Type'\n(I2\nttRp11155\nsS'Y:PMachine121'\np11156\ng26\n(S'Variable_Type'\n(I2\nttRp11157\nsS'Y:Load 84'\np11158\ng26\n(S'Variable_Type'\n(I2\nttRp11159\nsS'Y:PMachine123'\np11160\ng26\n(S'Variable_Type'\n(I2\nttRp11161\nsS'Y:Load 102'\np11162\ng26\n(S'Variable_Type'\n(I2\nttRp11163\nsS'Y:VBus57'\np11164\ng26\n(S'Variable_Type'\n(I2\nttRp11165\nsS'Y:Load 100'\np11166\ng26\n(S'Variable_Type'\n(I2\nttRp11167\nsS'Y:Load 101'\np11168\ng26\n(S'Variable_Type'\n(I2\nttRp11169\nsS'Y:VBus52'\np11170\ng26\n(S'Variable_Type'\n(I2\nttRp11171\nsS'Y:VBus53'\np11172\ng26\n(S'Variable_Type'\n(I2\nttRp11173\nsS'Y:Load 104'\np11174\ng26\n(S'Variable_Type'\n(I2\nttRp11175\nsS'Y:VBus51'\np11176\ng26\n(S'Variable_Type'\n(I2\nttRp11177\nsS'Y:Load 108'\np11178\ng26\n(S'Variable_Type'\n(I2\nttRp11179\nsS'Y64:%RateA 102-103'\np11180\ng26\n(S'Variable_Type'\n(I1\nttRp11181\nsS'Y:PMachine112'\np11182\ng26\n(S'Variable_Type'\n(I2\nttRp11183\nsS'Y:VBus58'\np11184\ng26\n(S'Variable_Type'\n(I2\nttRp11185\nsS'Y:VBus59'\np11186\ng26\n(S'Variable_Type'\n(I2\nttRp11187\nsS'Y:Load 53'\np11188\ng26\n(S'Variable_Type'\n(I2\nttRp11189\nsS'Y10:%RateA 16-47'\np11190\ng26\n(S'Variable_Type'\n(I2\nttRp11191\nsS'Y:PMachine54'\np11192\ng26\n(S'Variable_Type'\n(I2\nttRp11193\nsS'Y:VBus56'\np11194\ng26\n(S'Variable_Type'\n(I2\nttRp11195\nsS'TOT WIND'\np11196\ng26\n(S'Variable_Type'\n(I2\nttRp11197\nsS'Y3:%RateA 12-24'\np11198\ng26\n(S'Variable_Type'\n(I2\nttRp11199\nsS'Y11:%RateA 17-27'\np11200\ng26\n(S'Variable_Type'\n(I2\nttRp11201\nsS'Y:PMachine114'\np11202\ng26\n(S'Variable_Type'\n(I2\nttRp11203\nsS'Y:VBus72'\np11204\ng26\n(S'Variable_Type'\n(I2\nttRp11205\nsS'Y:PMachine60'\np11206\ng26\n(S'Variable_Type'\n(I2\nttRp11207\nsS'Y:PMachine61'\np11208\ng26\n(S'Variable_Type'\n(I1\nttRp11209\nsS'Y:PMachine62'\np11210\ng26\n(S'Variable_Type'\n(I2\nttRp11211\nsS'Y:PMachine105'\np11212\ng26\n(S'Variable_Type'\n(I2\nttRp11213\nsS'Y:PMachine64'\np11214\ng26\n(S'Variable_Type'\n(I2\nttRp11215\nsS'Y:PMachine65'\np11216\ng26\n(S'Variable_Type'\n(I2\nttRp11217\nsS'Y:PMachine66'\np11218\ng26\n(S'Variable_Type'\n(I2\nttRp11219\nsS'Y:PMachine67'\np11220\ng26\n(S'Variable_Type'\n(I2\nttRp11221\nsS'Y:PMachine68'\np11222\ng26\n(S'Variable_Type'\n(I2\nttRp11223\nsS'Y:PMachine102'\np11224\ng26\n(S'Variable_Type'\n(I2\nttRp11225\nsS'X:ProdPV%Pnom'\np11226\ng26\n(S'Variable_Type'\n(I2\nttRp11227\nsS'Y:VBus138'\np11228\ng26\n(S'Variable_Type'\n(I2\nttRp11229\nsS'Y26:%RateA 24-25'\np11230\ng26\n(S'Variable_Type'\n(I1\nttRp11231\nssg630\n(dp11232\nsg632\n(dp11233\ng2509\n(S'Iteration'\np11234\ng11071\ntp11235\nsg2512\n(g638\nI0\ntp11236\nsg2514\n(g11234\ng11071\ntp11237\nsg2516\n(S''\nI0\ntp11238\nsg2518\n(S''\nI0\ntp11239\nsg2520\n(NI-2\ntp11240\nsg2522\n((lI-2\ntp11241\nssg650\nF1369931616.7509999\nsba(iOWContexts\nContext\np11242\n(dp11243\ng20\n(lp11244\ng1272\nasg23\n(dp11245\nS'Y:VBus48'\np11246\ng26\n(S'Variable_Type'\n(I2\nttRp11247\nsS'Y15:%RateA 18-44'\np11248\ng26\n(S'Variable_Type'\n(I2\nttRp11249\nsS'Y:VBus41'\np11250\ng26\n(S'Variable_Type'\n(I2\nttRp11251\nsS'Y:VBus40'\np11252\ng26\n(S'Variable_Type'\n(I2\nttRp11253\nsS'Y:VBus43'\np11254\ng26\n(S'Variable_Type'\n(I2\nttRp11255\nsS'Y:VBus42'\np11256\ng26\n(S'Variable_Type'\n(I2\nttRp11257\nsS'Y:VBus45'\np11258\ng26\n(S'Variable_Type'\n(I2\nttRp11259\nsS'Y:VBus44'\np11260\ng26\n(S'Variable_Type'\n(I2\nttRp11261\nsS'Y:VBus47'\np11262\ng26\n(S'Variable_Type'\n(I2\nttRp11263\nsS'Y:VBus46'\np11264\ng26\n(S'Variable_Type'\n(I2\nttRp11265\nsS'Y39:%RateA 32-45'\np11266\ng26\n(S'Variable_Type'\n(I2\nttRp11267\nsS'Y:Load 110'\np11268\ng26\n(S'Variable_Type'\n(I2\nttRp11269\nsS'Y:Load 115'\np11270\ng26\n(S'Variable_Type'\n(I2\nttRp11271\nsS'Y:VBus79'\np11272\ng26\n(S'Variable_Type'\n(I2\nttRp11273\nsS'Y13:%RateA 18-30'\np11274\ng26\n(S'Variable_Type'\n(I2\nttRp11275\nsS'Y34:%RateA 28-38'\np11276\ng26\n(S'Variable_Type'\n(I2\nttRp11277\nsS'Y:NbeTransit'\np11278\ng26\n(S'Variable_Type'\n(I1\nttRp11279\nsS'Y:VBus104'\np11280\ng26\n(S'Variable_Type'\n(I2\nttRp11281\nsS'Y20:%RateA 20-44'\np11282\ng26\n(S'Variable_Type'\n(I2\nttRp11283\nsS'Y38:%RateA 32-45'\np11284\ng26\n(S'Variable_Type'\n(I2\nttRp11285\nsS'Y:PMachine73'\np11286\ng26\n(S'Variable_Type'\n(I2\nttRp11287\nsS'Y:PMachine72'\np11288\ng26\n(S'Variable_Type'\n(I2\nttRp11289\nsS'Y49:%RateA 40-48'\np11290\ng26\n(S'Variable_Type'\n(I2\nttRp11291\nsS'Y:PMachine77'\np11292\ng26\n(S'Variable_Type'\n(I2\nttRp11293\nsS'Y:PMachine75'\np11294\ng26\n(S'Variable_Type'\n(I2\nttRp11295\nsS'Y:PMachine74'\np11296\ng26\n(S'Variable_Type'\n(I2\nttRp11297\nsS'Y:PMachine78'\np11298\ng26\n(S'Variable_Type'\n(I1\nttRp11299\nsS'Y:PMachine138'\np11300\ng26\n(S'Variable_Type'\n(I1\nttRp11301\nsS'Y28:%RateA 24-42'\np11302\ng26\n(S'Variable_Type'\n(I2\nttRp11303\nsS'Y:PProdTot'\np11304\ng26\n(S'Variable_Type'\n(I2\nttRp11305\nsS'Y:PMachine69'\np11306\ng26\n(S'Variable_Type'\n(I2\nttRp11307\nsS'Y:VBus38'\np11308\ng26\n(S'Variable_Type'\n(I2\nttRp11309\nsS'Y:VBus39'\np11310\ng26\n(S'Variable_Type'\n(I2\nttRp11311\nsS'Y62:%RateA 86-87'\np11312\ng26\n(S'Variable_Type'\n(I1\nttRp11313\nsS'Y:PMachine1'\np11314\ng26\n(S'Variable_Type'\n(I2\nttRp11315\nsS'Y:VBus35'\np11316\ng26\n(S'Variable_Type'\n(I2\nttRp11317\nsS'Y:VBus36'\np11318\ng26\n(S'Variable_Type'\n(I2\nttRp11319\nsS'Y:VBus37'\np11320\ng26\n(S'Variable_Type'\n(I2\nttRp11321\nsS'Y:VBus30'\np11322\ng26\n(S'Variable_Type'\n(I2\nttRp11323\nsS'Y:VBus31'\np11324\ng26\n(S'Variable_Type'\n(I2\nttRp11325\nsS'Y:VBus32'\np11326\ng26\n(S'Variable_Type'\n(I2\nttRp11327\nsS'Y:VBus33'\np11328\ng26\n(S'Variable_Type'\n(I2\nttRp11329\nsS'Y53:%RateA 57-58'\np11330\ng26\n(S'Variable_Type'\n(I1\nttRp11331\nsS'Y14:%RateA 18-31'\np11332\ng26\n(S'Variable_Type'\n(I2\nttRp11333\nsS'Y48:%RateA 39-46'\np11334\ng26\n(S'Variable_Type'\n(I2\nttRp11335\nsS'Y60:%RateA 82-83'\np11336\ng26\n(S'Variable_Type'\n(I1\nttRp11337\nsS'Y:PMachine87'\np11338\ng26\n(S'Variable_Type'\n(I2\nttRp11339\nsS'Y:VBus121'\np11340\ng26\n(S'Variable_Type'\n(I2\nttRp11341\nsS'Y:VBus120'\np11342\ng26\n(S'Variable_Type'\n(I2\nttRp11343\nsS'Y:VBus123'\np11344\ng26\n(S'Variable_Type'\n(I2\nttRp11345\nsS'Y:VBus122'\np11346\ng26\n(S'Variable_Type'\n(I2\nttRp11347\nsS'Y:VBus125'\np11348\ng26\n(S'Variable_Type'\n(I2\nttRp11349\nsS'Y:VBus124'\np11350\ng26\n(S'Variable_Type'\n(I2\nttRp11351\nsS'Y:VBus127'\np11352\ng26\n(S'Variable_Type'\n(I2\nttRp11353\nsS'Y:VBus126'\np11354\ng26\n(S'Variable_Type'\n(I2\nttRp11355\nsS'Y:VBus129'\np11356\ng26\n(S'Variable_Type'\n(I2\nttRp11357\nsS'Y:VBus128'\np11358\ng26\n(S'Variable_Type'\n(I2\nttRp11359\nsS'Y37:%RateA 32-34'\np11360\ng26\n(S'Variable_Type'\n(I2\nttRp11361\nsS'Y43:%RateA 35-37'\np11362\ng26\n(S'Variable_Type'\n(I2\nttRp11363\nsS'Y:PMachine42'\np11364\ng26\n(S'Variable_Type'\n(I2\nttRp11365\nsS'Y0:%RateA 11-28'\np11366\ng26\n(S'Variable_Type'\n(I2\nttRp11367\nsS'Y:VBus67'\np11368\ng26\n(S'Variable_Type'\n(I2\nttRp11369\nsS'Y:Load 37'\np11370\ng26\n(S'Variable_Type'\n(I2\nttRp11371\nsS'Y65:%RateA 104-105'\np11372\ng26\n(S'Variable_Type'\n(I1\nttRp11373\nsS'Y40:%RateA 32-47'\np11374\ng26\n(S'Variable_Type'\n(I2\nttRp11375\nsS'Y:PMachine47'\np11376\ng26\n(S'Variable_Type'\n(I2\nttRp11377\nsS'Y6:%RateA 14-15'\np11378\ng26\n(S'Variable_Type'\n(I1\nttRp11379\nsS'Y:VBus1'\np11380\ng26\n(S'Variable_Type'\n(I2\nttRp11381\nsS'Y44:%RateA 35-39'\np11382\ng26\n(S'Variable_Type'\n(I2\nttRp11383\nsS'Y:PMachine88'\np11384\ng26\n(S'Variable_Type'\n(I1\nttRp11385\nsS'Y42:%RateA 34-36'\np11386\ng26\n(S'Variable_Type'\n(I2\nttRp11387\nsS'Y57:%RateA 76-77'\np11388\ng26\n(S'Variable_Type'\n(I1\nttRp11389\nsS'Y:PMachine89'\np11390\ng26\n(S'Variable_Type'\n(I1\nttRp11391\nsS'Y:VBus77'\np11392\ng26\n(S'Variable_Type'\n(I2\nttRp11393\nsS'Y:VBus29'\np11394\ng26\n(S'Variable_Type'\n(I2\nttRp11395\nsS'Y:VBus28'\np11396\ng26\n(S'Variable_Type'\n(I2\nttRp11397\nsS'Y:VBus27'\np11398\ng26\n(S'Variable_Type'\n(I2\nttRp11399\nsS'Y:VBus26'\np11400\ng26\n(S'Variable_Type'\n(I2\nttRp11401\nsS'Y:VBus25'\np11402\ng26\n(S'Variable_Type'\n(I2\nttRp11403\nsS'Y:VBus24'\np11404\ng26\n(S'Variable_Type'\n(I2\nttRp11405\nsS'Y:VBus23'\np11406\ng26\n(S'Variable_Type'\n(I2\nttRp11407\nsS'Y:VBus22'\np11408\ng26\n(S'Variable_Type'\n(I2\nttRp11409\nsS'Y:VBus21'\np11410\ng26\n(S'Variable_Type'\n(I2\nttRp11411\nsS'Y:VBus20'\np11412\ng26\n(S'Variable_Type'\n(I2\nttRp11413\nsS'Y:VBus85'\np11414\ng26\n(S'Variable_Type'\n(I2\nttRp11415\nsS'Y:VBus84'\np11416\ng26\n(S'Variable_Type'\n(I2\nttRp11417\nsS'Y52:%RateA 55-56'\np11418\ng26\n(S'Variable_Type'\n(I1\nttRp11419\nsS'Y2:%RateA 12-24'\np11420\ng26\n(S'Variable_Type'\n(I2\nttRp11421\nsS'Y:VBus112'\np11422\ng26\n(S'Variable_Type'\n(I2\nttRp11423\nsS'Y:VBus132'\np11424\ng26\n(S'Variable_Type'\n(I2\nttRp11425\nsS'Y:PMachine58'\np11426\ng26\n(S'Variable_Type'\n(I2\nttRp11427\nsS'Y:VBus130'\np11428\ng26\n(S'Variable_Type'\n(I2\nttRp11429\nsS'Y:VBus131'\np11430\ng26\n(S'Variable_Type'\n(I2\nttRp11431\nsS'Y:VBus136'\np11432\ng26\n(S'Variable_Type'\n(I2\nttRp11433\nsS'Y:VBus137'\np11434\ng26\n(S'Variable_Type'\n(I2\nttRp11435\nsS'Y:VBus134'\np11436\ng26\n(S'Variable_Type'\n(I2\nttRp11437\nsS'Y:VBus135'\np11438\ng26\n(S'Variable_Type'\n(I2\nttRp11439\nsS'Y:VBus81'\np11440\ng26\n(S'Variable_Type'\n(I2\nttRp11441\nsS'Y:PMachine53'\np11442\ng26\n(S'Variable_Type'\n(I2\nttRp11443\nsS'Y:VBus139'\np11444\ng26\n(S'Variable_Type'\n(I2\nttRp11445\nsS'Y30:%RateA 25-29'\np11446\ng26\n(S'Variable_Type'\n(I2\nttRp11447\nsS'Y:VBus115'\np11448\ng26\n(S'Variable_Type'\n(I2\nttRp11449\nsS'Y:PMachine124'\np11450\ng26\n(S'Variable_Type'\n(I2\nttRp11451\nsS'Y:VBus83'\np11452\ng26\n(S'Variable_Type'\n(I2\nttRp11453\nsS'Y66:%RateA 106-107'\np11454\ng26\n(S'Variable_Type'\n(I1\nttRp11455\nsS'Y25:%RateA 23-41'\np11456\ng26\n(S'Variable_Type'\n(I2\nttRp11457\nsS'Y:%Losses'\np11458\ng26\n(S'Variable_Type'\n(I2\nttRp11459\nsS'Y:VBus12'\np11460\ng26\n(S'Variable_Type'\n(I2\nttRp11461\nsS'Y:VBus13'\np11462\ng26\n(S'Variable_Type'\n(I2\nttRp11463\nsS'Y50:%RateA 51-52'\np11464\ng26\n(S'Variable_Type'\n(I1\nttRp11465\nsS'Y:VBus11'\np11466\ng26\n(S'Variable_Type'\n(I2\nttRp11467\nsS'Y:VBus16'\np11468\ng26\n(S'Variable_Type'\n(I2\nttRp11469\nsS'Y:VBus17'\np11470\ng26\n(S'Variable_Type'\n(I2\nttRp11471\nsS'Y:VBus14'\np11472\ng26\n(S'Variable_Type'\n(I2\nttRp11473\nsS'Y:VBus15'\np11474\ng26\n(S'Variable_Type'\n(I2\nttRp11475\nsS'Y:VBus113'\np11476\ng26\n(S'Variable_Type'\n(I2\nttRp11477\nsS'Y:PMachine120'\np11478\ng26\n(S'Variable_Type'\n(I2\nttRp11479\nsS'Y:VBus18'\np11480\ng26\n(S'Variable_Type'\n(I2\nttRp11481\nsS'Y:VBus19'\np11482\ng26\n(S'Variable_Type'\n(I2\nttRp11483\nsS'Y4:%RateA 13-25'\np11484\ng26\n(S'Variable_Type'\n(I2\nttRp11485\nsS'Y35:%RateA 28-47'\np11486\ng26\n(S'Variable_Type'\n(I2\nttRp11487\nsS'Y:PMachine122'\np11488\ng26\n(S'Variable_Type'\n(I2\nttRp11489\nsS'Y16:%RateA 19-21'\np11490\ng26\n(S'Variable_Type'\n(I2\nttRp11491\nsS'Y:VBus92'\np11492\ng26\n(S'Variable_Type'\n(I2\nttRp11493\nsS'Y7:%RateA 14-35'\np11494\ng26\n(S'Variable_Type'\n(I2\nttRp11495\nsS'Y:VBus90'\np11496\ng26\n(S'Variable_Type'\n(I2\nttRp11497\nsS'Y:VBus96'\np11498\ng26\n(S'Variable_Type'\n(I2\nttRp11499\nsS'Y:VBus97'\np11500\ng26\n(S'Variable_Type'\n(I2\nttRp11501\nsS'Y:VBus94'\np11502\ng26\n(S'Variable_Type'\n(I2\nttRp11503\nsS'Y:VBus95'\np11504\ng26\n(S'Variable_Type'\n(I2\nttRp11505\nsS'Y:VBus107'\np11506\ng26\n(S'Variable_Type'\n(I2\nttRp11507\nsS'Y:VBus106'\np11508\ng26\n(S'Variable_Type'\n(I2\nttRp11509\nsS'Y:VBus105'\np11510\ng26\n(S'Variable_Type'\n(I2\nttRp11511\nsS'Y22:%RateA 22-23'\np11512\ng26\n(S'Variable_Type'\n(I1\nttRp11513\nsS'Y:VBus103'\np11514\ng26\n(S'Variable_Type'\n(I2\nttRp11515\nsS'Y:VBus102'\np11516\ng26\n(S'Variable_Type'\n(I2\nttRp11517\nsS'Y:VBus101'\np11518\ng26\n(S'Variable_Type'\n(I2\nttRp11519\nsS'Y:VBus100'\np11520\ng26\n(S'Variable_Type'\n(I2\nttRp11521\nsS'Y:Load 55'\np11522\ng26\n(S'Variable_Type'\n(I2\nttRp11523\nsS'Y:Load 57'\np11524\ng26\n(S'Variable_Type'\n(I2\nttRp11525\nsS'Y:Load 51'\np11526\ng26\n(S'Variable_Type'\n(I2\nttRp11527\nsS'Y:VBus54'\np11528\ng26\n(S'Variable_Type'\n(I2\nttRp11529\nsS'Y:VBus109'\np11530\ng26\n(S'Variable_Type'\n(I2\nttRp11531\nsS'Y46:%RateA 36-48'\np11532\ng26\n(S'Variable_Type'\n(I2\nttRp11533\nsS'Y:Load 80'\np11534\ng26\n(S'Variable_Type'\n(I2\nttRp11535\nsS'Y:PMachine133'\np11536\ng26\n(S'Variable_Type'\n(I2\nttRp11537\nsS'Y:VBus55'\np11538\ng26\n(S'Variable_Type'\n(I2\nttRp11539\nsS'Y:PMachine29'\np11540\ng26\n(S'Variable_Type'\n(I1\nttRp11541\nsS'Y24:%RateA 23-32'\np11542\ng26\n(S'Variable_Type'\n(I2\nttRp11543\nsS'X:lineOff#'\np11544\ng26\n(S'Variable_Type'\n(I2\nttRp11545\nsS'Y:Max%A'\np11546\ng26\n(S'Variable_Type'\n(I2\nttRp11547\nsS'Y:NbeTransit_0.9-1'\np11548\ng26\n(S'Variable_Type'\n(I1\nttRp11549\nsS'XProdEolienne%Pnom'\np11550\ng26\n(S'Variable_Type'\n(I2\nttRp11551\nsS'Y33:%RateA 27-33'\np11552\ng26\n(S'Variable_Type'\n(I2\nttRp11553\nsS'Y59:%RateA 80-81'\np11554\ng26\n(S'Variable_Type'\n(I1\nttRp11555\nsS'Y:VBus65'\np11556\ng26\n(S'Variable_Type'\n(I2\nttRp11557\nsS'Y:VBus118'\np11558\ng26\n(S'Variable_Type'\n(I2\nttRp11559\nsS'Y:VBus119'\np11560\ng26\n(S'Variable_Type'\n(I2\nttRp11561\nsS'Y:PMachine117'\np11562\ng26\n(S'Variable_Type'\n(I2\nttRp11563\nsS'Y:PMachine116'\np11564\ng26\n(S'Variable_Type'\n(I2\nttRp11565\nsS'Y:PMachine111'\np11566\ng26\n(S'Variable_Type'\n(I2\nttRp11567\nsS'Y:VBus88'\np11568\ng26\n(S'Variable_Type'\n(I2\nttRp11569\nsS'Y:PMachine113'\np11570\ng26\n(S'Variable_Type'\n(I2\nttRp11571\nsS'Y:VBus93'\np11572\ng26\n(S'Variable_Type'\n(I2\nttRp11573\nsS'Y:VBus110'\np11574\ng26\n(S'Variable_Type'\n(I2\nttRp11575\nsS'Y:VBus111'\np11576\ng26\n(S'Variable_Type'\n(I2\nttRp11577\nsS'Y:VBus87'\np11578\ng26\n(S'Variable_Type'\n(I2\nttRp11579\nsS'Y12:%RateA 18-30'\np11580\ng26\n(S'Variable_Type'\n(I2\nttRp11581\nsS'Y:VBus114'\np11582\ng26\n(S'Variable_Type'\n(I2\nttRp11583\nsS'Y:VBus80'\np11584\ng26\n(S'Variable_Type'\n(I2\nttRp11585\nsS'Y:VBus116'\np11586\ng26\n(S'Variable_Type'\n(I2\nttRp11587\nsS'Y:VBus82'\np11588\ng26\n(S'Variable_Type'\n(I2\nttRp11589\nsS'Y61:%RateA 84-85'\np11590\ng26\n(S'Variable_Type'\n(I1\nttRp11591\nsS'Y31:%RateA 26-41'\np11592\ng26\n(S'Variable_Type'\n(I2\nttRp11593\nsS'Y:PMachine131'\np11594\ng26\n(S'Variable_Type'\n(I2\nttRp11595\nsS'Y47:%RateA 38-43'\np11596\ng26\n(S'Variable_Type'\n(I2\nttRp11597\nsS'Y:Load 42'\np11598\ng26\n(S'Variable_Type'\n(I2\nttRp11599\nsS'Y:PMachine85'\np11600\ng26\n(S'Variable_Type'\n(I2\nttRp11601\nsS'Y32:%RateA 26-46'\np11602\ng26\n(S'Variable_Type'\n(I2\nttRp11603\nsS'Y:PMachine132'\np11604\ng26\n(S'Variable_Type'\n(I2\nttRp11605\nsS'Y18:%RateA 19-27'\np11606\ng26\n(S'Variable_Type'\n(I2\nttRp11607\nsS'Y:VBus86'\np11608\ng26\n(S'Variable_Type'\n(I2\nttRp11609\nsS'Y63:%RateA 95-96'\np11610\ng26\n(S'Variable_Type'\n(I1\nttRp11611\nsS'Y17:%RateA 19-22'\np11612\ng26\n(S'Variable_Type'\n(I2\nttRp11613\nsS'Y41:%RateA 32-48'\np11614\ng26\n(S'Variable_Type'\n(I2\nttRp11615\nsS'Y:PMachine30'\np11616\ng26\n(S'Variable_Type'\n(I2\nttRp11617\nsS'Y:VBus117'\np11618\ng26\n(S'Variable_Type'\n(I2\nttRp11619\nsS'Y56:%RateA 72-73'\np11620\ng26\n(S'Variable_Type'\n(I1\nttRp11621\nsS'Y68:%RateA 112-113'\np11622\ng26\n(S'Variable_Type'\n(I1\nttRp11623\nsS'Y:PMachine130'\np11624\ng26\n(S'Variable_Type'\n(I2\nttRp11625\nsS'Y27:%RateA 24-33'\np11626\ng26\n(S'Variable_Type'\n(I2\nttRp11627\nsS'Y:PMachine106'\np11628\ng26\n(S'Variable_Type'\n(I2\nttRp11629\nsS'Y:PMachine107'\np11630\ng26\n(S'Variable_Type'\n(I2\nttRp11631\nsS'Y:PMachine104'\np11632\ng26\n(S'Variable_Type'\n(I2\nttRp11633\nsS'Y:VBus73'\np11634\ng26\n(S'Variable_Type'\n(I2\nttRp11635\nsS'Y:VBus74'\np11636\ng26\n(S'Variable_Type'\n(I2\nttRp11637\nsS'Y:VBus75'\np11638\ng26\n(S'Variable_Type'\n(I2\nttRp11639\nsS'Y:VBus76'\np11640\ng26\n(S'Variable_Type'\n(I2\nttRp11641\nsS'Y:PMachine101'\np11642\ng26\n(S'Variable_Type'\n(I2\nttRp11643\nsS'Y:VBus78'\np11644\ng26\n(S'Variable_Type'\n(I2\nttRp11645\nsS'Y:Load 59'\np11646\ng26\n(S'Variable_Type'\n(I2\nttRp11647\nsS'Y:PMachine115'\np11648\ng26\n(S'Variable_Type'\n(I2\nttRp11649\nsS'Y51:%RateA 53-54'\np11650\ng26\n(S'Variable_Type'\n(I1\nttRp11651\nsS'Y67:%RateA 108-109'\np11652\ng26\n(S'Variable_Type'\n(I1\nttRp11653\nsS'Y:PMachine109'\np11654\ng26\n(S'Variable_Type'\n(I2\nttRp11655\nsS'Y:PMachine83'\np11656\ng26\n(S'Variable_Type'\n(I2\nttRp11657\nsS'Y:PMachine81'\np11658\ng26\n(S'Variable_Type'\n(I2\nttRp11659\nsS'Y:PMachine86'\np11660\ng26\n(S'Variable_Type'\n(I2\nttRp11661\nsS'Y:Load 76'\np11662\ng26\n(S'Variable_Type'\n(I2\nttRp11663\nsS'Y:Load 74'\np11664\ng26\n(S'Variable_Type'\n(I2\nttRp11665\nsS'Y45:%RateA 36-37'\np11666\ng26\n(S'Variable_Type'\n(I2\nttRp11667\nsS'Y58:%RateA 78-79'\np11668\ng26\n(S'Variable_Type'\n(I1\nttRp11669\nsS'Y:Load 78'\np11670\ng26\n(S'Variable_Type'\n(I2\nttRp11671\nsS'X:Load(pu)'\np11672\ng26\n(S'Variable_Type'\n(I2\nttRp11673\nsS'Y5:%RateA 13-29'\np11674\ng26\n(S'Variable_Type'\n(I2\nttRp11675\nsS'Y:PMachine118'\np11676\ng26\n(S'Variable_Type'\n(I2\nttRp11677\nsS'Y1:%RateA 11-47'\np11678\ng26\n(S'Variable_Type'\n(I2\nttRp11679\nsS'Y:VBus60'\np11680\ng26\n(S'Variable_Type'\n(I2\nttRp11681\nsS'Y:PMachine137'\np11682\ng26\n(S'Variable_Type'\n(I1\nttRp11683\nsS'Y29:%RateA 25-29'\np11684\ng26\n(S'Variable_Type'\n(I2\nttRp11685\nsS'Y:VBus66'\np11686\ng26\n(S'Variable_Type'\n(I2\nttRp11687\nsS'Iteration'\np11688\ng26\n(S'Variable_Type'\n(I2\nttRp11689\nsS'Y36:%RateA 29-30'\np11690\ng26\n(S'Variable_Type'\n(I1\nttRp11691\nsS'Y54:%RateA 59-60'\np11692\ng26\n(S'Variable_Type'\n(I1\nttRp11693\nsS'Y:Load 90'\np11694\ng26\n(S'Variable_Type'\n(I2\nttRp11695\nsS'Y9:%RateA 16-32'\np11696\ng26\n(S'Variable_Type'\n(I2\nttRp11697\nsS'Y:PMachine134'\np11698\ng26\n(S'Variable_Type'\n(I1\nttRp11699\nsS'Y:Load 95'\np11700\ng26\n(S'Variable_Type'\n(I2\nttRp11701\nsS'Y:VBus63'\np11702\ng26\n(S'Variable_Type'\n(I2\nttRp11703\nsS'Y:VBus62'\np11704\ng26\n(S'Variable_Type'\n(I2\nttRp11705\nsS'Y:VBus61'\np11706\ng26\n(S'Variable_Type'\n(I2\nttRp11707\nsS'Y55:%RateA 61-62'\np11708\ng26\n(S'Variable_Type'\n(I1\nttRp11709\nsS'Y8:%RateA 15-35'\np11710\ng26\n(S'Variable_Type'\n(I2\nttRp11711\nsS'Y:PMachine136'\np11712\ng26\n(S'Variable_Type'\n(I1\nttRp11713\nsS'Y:PMachine135'\np11714\ng26\n(S'Variable_Type'\n(I1\nttRp11715\nsS'Y:VBus64'\np11716\ng26\n(S'Variable_Type'\n(I2\nttRp11717\nsS'Y:PMachine94'\np11718\ng26\n(S'Variable_Type'\n(I2\nttRp11719\nsS'Y:VBus69'\np11720\ng26\n(S'Variable_Type'\n(I2\nttRp11721\nsS'Y:VBus108'\np11722\ng26\n(S'Variable_Type'\n(I2\nttRp11723\nsS'Y:PMachine139'\np11724\ng26\n(S'Variable_Type'\n(I1\nttRp11725\nsS'Y:PMachine97'\np11726\ng26\n(S'Variable_Type'\n(I2\nttRp11727\nsS'Y:PMachine92'\np11728\ng26\n(S'Variable_Type'\n(I2\nttRp11729\nsS'Y:VBus68'\np11730\ng26\n(S'Variable_Type'\n(I2\nttRp11731\nsS'Y:Load 61'\np11732\ng26\n(S'Variable_Type'\n(I2\nttRp11733\nsS'Y:VBus89'\np11734\ng26\n(S'Variable_Type'\n(I2\nttRp11735\nsS'Y21:%RateA 21-43'\np11736\ng26\n(S'Variable_Type'\n(I2\nttRp11737\nsS'Y:PMachine90'\np11738\ng26\n(S'Variable_Type'\n(I2\nttRp11739\nsS'Y:PMachine14'\np11740\ng26\n(S'Variable_Type'\n(I2\nttRp11741\nsS'Y:PMachine63'\np11742\ng26\n(S'Variable_Type'\n(I2\nttRp11743\nsS'Y:PMachine93'\np11744\ng26\n(S'Variable_Type'\n(I2\nttRp11745\nsS'Y:PConsoTot'\np11746\ng26\n(S'Variable_Type'\n(I2\nttRp11747\nsS'Y23:%RateA 22-31'\np11748\ng26\n(S'Variable_Type'\n(I2\nttRp11749\nsS'Y19:%RateA 20-26'\np11750\ng26\n(S'Variable_Type'\n(I2\nttRp11751\nsS'Y:PMachine18'\np11752\ng26\n(S'Variable_Type'\n(I2\nttRp11753\nsS'Y:VBus34'\np11754\ng26\n(S'Variable_Type'\n(I2\nttRp11755\nsS'Y:NbeTension'\np11756\ng26\n(S'Variable_Type'\n(I2\nttRp11757\nsS'Y:PMachine128'\np11758\ng26\n(S'Variable_Type'\n(I2\nttRp11759\nsS'Y:PMachine129'\np11760\ng26\n(S'Variable_Type'\n(I2\nttRp11761\nsS'Y:VBus133'\np11762\ng26\n(S'Variable_Type'\n(I2\nttRp11763\nsS'Y:Load 82'\np11764\ng26\n(S'Variable_Type'\n(I2\nttRp11765\nsS'Y:PMachine125'\np11766\ng26\n(S'Variable_Type'\n(I2\nttRp11767\nsS'Y:PMachine126'\np11768\ng26\n(S'Variable_Type'\n(I2\nttRp11769\nsS'Y:PMachine127'\np11770\ng26\n(S'Variable_Type'\n(I2\nttRp11771\nsS'Y:Load 86'\np11772\ng26\n(S'Variable_Type'\n(I2\nttRp11773\nsS'Y:PMachine121'\np11774\ng26\n(S'Variable_Type'\n(I2\nttRp11775\nsS'Y:Load 84'\np11776\ng26\n(S'Variable_Type'\n(I2\nttRp11777\nsS'Y:PMachine123'\np11778\ng26\n(S'Variable_Type'\n(I2\nttRp11779\nsS'Y:Load 102'\np11780\ng26\n(S'Variable_Type'\n(I2\nttRp11781\nsS'Y:VBus57'\np11782\ng26\n(S'Variable_Type'\n(I2\nttRp11783\nsS'Y:Load 100'\np11784\ng26\n(S'Variable_Type'\n(I2\nttRp11785\nsS'Y:Load 101'\np11786\ng26\n(S'Variable_Type'\n(I2\nttRp11787\nsS'Y:VBus52'\np11788\ng26\n(S'Variable_Type'\n(I2\nttRp11789\nsS'Y:VBus53'\np11790\ng26\n(S'Variable_Type'\n(I2\nttRp11791\nsS'Y:Load 104'\np11792\ng26\n(S'Variable_Type'\n(I2\nttRp11793\nsS'Y:VBus51'\np11794\ng26\n(S'Variable_Type'\n(I2\nttRp11795\nsS'Y:Load 108'\np11796\ng26\n(S'Variable_Type'\n(I2\nttRp11797\nsS'Y64:%RateA 102-103'\np11798\ng26\n(S'Variable_Type'\n(I1\nttRp11799\nsS'Y:PMachine112'\np11800\ng26\n(S'Variable_Type'\n(I2\nttRp11801\nsS'Y:VBus58'\np11802\ng26\n(S'Variable_Type'\n(I2\nttRp11803\nsS'Y:VBus59'\np11804\ng26\n(S'Variable_Type'\n(I2\nttRp11805\nsS'Y:Load 53'\np11806\ng26\n(S'Variable_Type'\n(I2\nttRp11807\nsS'Y10:%RateA 16-47'\np11808\ng26\n(S'Variable_Type'\n(I2\nttRp11809\nsS'Y:PMachine54'\np11810\ng26\n(S'Variable_Type'\n(I2\nttRp11811\nsS'Y:VBus56'\np11812\ng26\n(S'Variable_Type'\n(I2\nttRp11813\nsS'TOT WIND'\np11814\ng26\n(S'Variable_Type'\n(I2\nttRp11815\nsS'Y3:%RateA 12-24'\np11816\ng26\n(S'Variable_Type'\n(I2\nttRp11817\nsS'Y11:%RateA 17-27'\np11818\ng26\n(S'Variable_Type'\n(I2\nttRp11819\nsS'Y:PMachine114'\np11820\ng26\n(S'Variable_Type'\n(I2\nttRp11821\nsS'Y:VBus72'\np11822\ng26\n(S'Variable_Type'\n(I2\nttRp11823\nsS'Y:PMachine60'\np11824\ng26\n(S'Variable_Type'\n(I2\nttRp11825\nsS'Y:PMachine61'\np11826\ng26\n(S'Variable_Type'\n(I1\nttRp11827\nsS'Y:PMachine62'\np11828\ng26\n(S'Variable_Type'\n(I2\nttRp11829\nsS'Y:PMachine105'\np11830\ng26\n(S'Variable_Type'\n(I2\nttRp11831\nsS'Y:PMachine64'\np11832\ng26\n(S'Variable_Type'\n(I2\nttRp11833\nsS'Y:PMachine65'\np11834\ng26\n(S'Variable_Type'\n(I2\nttRp11835\nsS'Y:PMachine66'\np11836\ng26\n(S'Variable_Type'\n(I2\nttRp11837\nsS'Y:PMachine67'\np11838\ng26\n(S'Variable_Type'\n(I2\nttRp11839\nsS'Y:PMachine68'\np11840\ng26\n(S'Variable_Type'\n(I2\nttRp11841\nsS'Y:PMachine102'\np11842\ng26\n(S'Variable_Type'\n(I2\nttRp11843\nsS'X:ProdPV%Pnom'\np11844\ng26\n(S'Variable_Type'\n(I2\nttRp11845\nsS'Y:VBus138'\np11846\ng26\n(S'Variable_Type'\n(I2\nttRp11847\nsS'Y26:%RateA 24-25'\np11848\ng26\n(S'Variable_Type'\n(I1\nttRp11849\nssg630\n(dp11850\nsg632\n(dp11851\ng2509\n(S'TOT WIND'\np11852\ng11815\ntp11853\nsg2512\n(g638\nI0\ntp11854\nsg2514\n(g11852\ng11815\ntp11855\nsg2516\n(S''\nI0\ntp11856\nsg2518\n(S''\nI0\ntp11857\nsg2520\n(NI-2\ntp11858\nsg2522\n((lI-2\ntp11859\nssg650\nF1369931478.9059999\nsba(iOWContexts\nContext\np11860\n(dp11861\ng20\n(lp11862\nS'orderedDomain'\np11863\nasg23\n(dp11864\nS'X:Interco(bin)'\np11865\ng26\n(S'Variable_Type'\n(I1\nttRp11866\nsS'X:Load(pu)'\np11867\ng26\n(S'Variable_Type'\n(I2\nttRp11868\nsS'X:ProdEolienne%Pnom'\np11869\ng26\n(S'Variable_Type'\n(I2\nttRp11870\nssg630\n(dp11871\nsg632\n(dp11872\nS'attribute'\np11873\n(S'X:Load(pu)'\np11874\ng11868\ntp11875\nsS'yaxisTitle'\np11876\n(S'frequency'\nI0\ntp11877\nsS'xaxisTitle'\np11878\n(g11874\ng11868\ntp11879\nsS'mainTitle'\np11880\n(S''\nI0\ntp11881\nsS'yPaxisTitle'\np11882\n(S''\nI0\ntp11883\nsS'targetValue'\np11884\n(NI-2\ntp11885\nsS'visibleOutcomes'\np11886\n((lI-2\ntp11887\nssg650\nF1368453819.7379999\nsba(iOWContexts\nContext\np11888\n(dp11889\ng632\n(dp11890\nS'attribute'\np11891\n(S'Y:%RateA 104-105'\np11892\ng26\n(S'Variable_Type'\n(I1\nttRp11893\ntp11894\nsS'yaxisTitle'\np11895\n(S'frequency'\nI0\ntp11896\nsS'xaxisTitle'\np11897\n(g11892\ng11893\ntp11898\nsS'mainTitle'\np11899\n(S''\nI0\ntp11900\nsS'yPaxisTitle'\np11901\n(S''\nI0\ntp11902\nsS'targetValue'\np11903\n(I1\nI-2\ntp11904\nsS'visibleOutcomes'\np11905\n((lp11906\nI0\naI-2\ntp11907\nssg23\n(dp11908\nS'Y:NbeTension'\np11909\ng26\n(S'Variable_Type'\n(I1\nttRp11910\nsS'Y:%RateA 29-30'\np11911\ng26\n(S'Variable_Type'\n(I1\nttRp11912\nsS'Y:%RateA 61-62'\np11913\ng26\n(S'Variable_Type'\n(I1\nttRp11914\nsS'Y:%RateA 76-77'\np11915\ng26\n(S'Variable_Type'\n(I1\nttRp11916\nsS'Y:PMachine114'\np11917\ng26\n(S'Variable_Type'\n(I1\nttRp11918\nsS'Y:%RateA 55-56'\np11919\ng26\n(S'Variable_Type'\n(I1\nttRp11920\nsS'Y:%RateA 59-60'\np11921\ng26\n(S'Variable_Type'\n(I1\nttRp11922\nsS'Y:%RateA 102-103'\np11923\ng26\n(S'Variable_Type'\n(I1\nttRp11924\nsS'Y:PMachine90'\np11925\ng26\n(S'Variable_Type'\n(I1\nttRp11926\nsS'Y:%RateA 106-107'\np11927\ng26\n(S'Variable_Type'\n(I1\nttRp11928\nsS'Y:NbeTransit'\np11929\ng26\n(S'Variable_Type'\n(I1\nttRp11930\nsS'Y:PMachine54'\np11931\ng26\n(S'Variable_Type'\n(I1\nttRp11932\nsS'Y:PMachine75'\np11933\ng26\n(S'Variable_Type'\n(I1\nttRp11934\nsS'Y:%RateA 22-23'\np11935\ng26\n(S'Variable_Type'\n(I1\nttRp11936\nsS'Y:%RateA 53-54'\np11937\ng26\n(S'Variable_Type'\n(I1\nttRp11938\nsS'Y:%RateA 108-109'\np11939\ng26\n(S'Variable_Type'\n(I1\nttRp11940\nsS'X:Interco(bin)'\np11941\ng26\n(S'Variable_Type'\n(I1\nttRp11942\nsS'Y:%RateA 14-15'\np11943\ng26\n(S'Variable_Type'\n(I1\nttRp11944\nsS'Y:%RateA 51-52'\np11945\ng26\n(S'Variable_Type'\n(I1\nttRp11946\nsS'Y:PMachine74'\np11947\ng26\n(S'Variable_Type'\n(I1\nttRp11948\nsS'Y:%RateA 57-58'\np11949\ng26\n(S'Variable_Type'\n(I1\nttRp11950\nsS'Y:PMachine106'\np11951\ng26\n(S'Variable_Type'\n(I1\nttRp11952\nsS'Y:PMachine107'\np11953\ng26\n(S'Variable_Type'\n(I1\nttRp11954\nsS'Y:%RateA 86-87'\np11955\ng26\n(S'Variable_Type'\n(I1\nttRp11956\nsS'Y:%RateA 95-96'\np11957\ng26\n(S'Variable_Type'\n(I1\nttRp11958\nsS'Y:%RateA 24-25'\np11959\ng26\n(S'Variable_Type'\n(I1\nttRp11960\nsS'Y:%RateA 82-83'\np11961\ng26\n(S'Variable_Type'\n(I1\nttRp11962\nsS'Y:PMachine86'\np11963\ng26\n(S'Variable_Type'\n(I1\nttRp11964\nsS'Y:%RateA 78-79'\np11965\ng26\n(S'Variable_Type'\n(I1\nttRp11966\nsS'Y:%RateA 112-113'\np11967\ncOrange.core\nStringList\np11968\n(tRp11969\nS'0'\naS'CSAMPO31    -CSAMPO32'\na(dbsS'Y:%RateA 104-105'\np11970\ng11893\nsS'Y:PMachine61'\np11971\ng26\n(S'Variable_Type'\n(I1\nttRp11972\nsS'Y:%RateA 80-81'\np11973\ng26\n(S'Variable_Type'\n(I1\nttRp11974\nsS'Y:PMachine29'\np11975\ng26\n(S'Variable_Type'\n(I1\nttRp11976\nsS'Y:%RateA 84-85'\np11977\ng26\n(S'Variable_Type'\n(I1\nttRp11978\nsS'Y:%RateA 72-73'\np11979\ng26\n(S'Variable_Type'\n(I1\nttRp11980\nssg630\n(dp11981\nsg20\n(lp11982\nS'orderedDomain'\np11983\nasg650\nF1368433401.563\nsba(iOWContexts\nContext\np11984\n(dp11985\ng632\n(dp11986\nS'attribute'\np11987\n(S'Y:%RateA 104-105'\np11988\ng26\n(S'Variable_Type'\n(I1\nttRp11989\ntp11990\nsS'yaxisTitle'\np11991\n(S'frequency'\nI0\ntp11992\nsS'xaxisTitle'\np11993\n(g11988\ng11989\ntp11994\nsS'mainTitle'\np11995\n(S''\nI0\ntp11996\nsS'yPaxisTitle'\np11997\n(S''\nI0\ntp11998\nsS'targetValue'\np11999\n(I1\nI-2\ntp12000\nsS'visibleOutcomes'\np12001\n((lp12002\nI0\naI-2\ntp12003\nssg23\n(dp12004\nS'Y:NbeTension'\np12005\ng26\n(S'Variable_Type'\n(I1\nttRp12006\nsS'Y:%RateA 29-30'\np12007\ng26\n(S'Variable_Type'\n(I1\nttRp12008\nsS'Y:%RateA 61-62'\np12009\ng26\n(S'Variable_Type'\n(I1\nttRp12010\nsS'Y:%RateA 76-77'\np12011\ng26\n(S'Variable_Type'\n(I1\nttRp12012\nsS'Y:PMachine114'\np12013\ng26\n(S'Variable_Type'\n(I1\nttRp12014\nsS'Y:%RateA 55-56'\np12015\ng26\n(S'Variable_Type'\n(I1\nttRp12016\nsS'Y:%RateA 59-60'\np12017\ng26\n(S'Variable_Type'\n(I1\nttRp12018\nsS'Y:%RateA 102-103'\np12019\ng26\n(S'Variable_Type'\n(I1\nttRp12020\nsS'Y:PMachine90'\np12021\ng26\n(S'Variable_Type'\n(I1\nttRp12022\nsS'Y:%RateA 106-107'\np12023\ng26\n(S'Variable_Type'\n(I1\nttRp12024\nsS'Y:NbeTransit'\np12025\ng26\n(S'Variable_Type'\n(I1\nttRp12026\nsS'Y:PMachine54'\np12027\ng26\n(S'Variable_Type'\n(I1\nttRp12028\nsS'Y:PMachine75'\np12029\ng26\n(S'Variable_Type'\n(I1\nttRp12030\nsS'Y:%RateA 22-23'\np12031\ng26\n(S'Variable_Type'\n(I1\nttRp12032\nsS'Y:%RateA 53-54'\np12033\ng26\n(S'Variable_Type'\n(I1\nttRp12034\nsS'Y:%RateA 108-109'\np12035\ng26\n(S'Variable_Type'\n(I1\nttRp12036\nsS'X:Interco(bin)'\np12037\ng26\n(S'Variable_Type'\n(I1\nttRp12038\nsS'Y:%RateA 14-15'\np12039\ng26\n(S'Variable_Type'\n(I1\nttRp12040\nsS'Y:%RateA 51-52'\np12041\ng26\n(S'Variable_Type'\n(I1\nttRp12042\nsS'Y:PMachine74'\np12043\ng26\n(S'Variable_Type'\n(I1\nttRp12044\nsS'Y:%RateA 57-58'\np12045\ng26\n(S'Variable_Type'\n(I1\nttRp12046\nsS'Y:PMachine106'\np12047\ng26\n(S'Variable_Type'\n(I1\nttRp12048\nsS'Y:PMachine107'\np12049\ng26\n(S'Variable_Type'\n(I1\nttRp12050\nsS'Y:%RateA 86-87'\np12051\ng26\n(S'Variable_Type'\n(I1\nttRp12052\nsS'Y:%RateA 95-96'\np12053\ng26\n(S'Variable_Type'\n(I1\nttRp12054\nsS'Y:%RateA 24-25'\np12055\ng26\n(S'Variable_Type'\n(I1\nttRp12056\nsS'Y:%RateA 82-83'\np12057\ng26\n(S'Variable_Type'\n(I1\nttRp12058\nsS'Y:PMachine86'\np12059\ng26\n(S'Variable_Type'\n(I1\nttRp12060\nsS'Y:%RateA 78-79'\np12061\ng26\n(S'Variable_Type'\n(I1\nttRp12062\nsS'Y:%RateA 112-113'\np12063\ng11968\n(tRp12064\nS'0'\naS'CSAMPO31    -CSAMPO32'\na(dbsS'Y:%RateA 104-105'\np12065\ng11989\nsS'Y:PMachine61'\np12066\ng26\n(S'Variable_Type'\n(I1\nttRp12067\nsS'Y:%RateA 80-81'\np12068\ng26\n(S'Variable_Type'\n(I1\nttRp12069\nsS'Y:PMachine29'\np12070\ng26\n(S'Variable_Type'\n(I1\nttRp12071\nsS'Y:%RateA 84-85'\np12072\ng26\n(S'Variable_Type'\n(I1\nttRp12073\nsS'Y:%RateA 72-73'\np12074\ng26\n(S'Variable_Type'\n(I1\nttRp12075\nssg630\n(dp12076\nsg20\n(lp12077\nS'orderedDomain'\np12078\nasg650\nF1368433401.563\nsba(iOWContexts\nContext\np12079\n(dp12080\ng20\n(lp12081\nS'orderedDomain'\np12082\nasg23\n(dp12083\nS'Y:%RateA 59-60'\np12084\ng26\n(S'Variable_Type'\n(I1\nttRp12085\nsS'Y:%RateA 29-30'\np12086\ng26\n(S'Variable_Type'\n(I1\nttRp12087\nsS'Y:%RateA 61-62'\np12088\ng26\n(S'Variable_Type'\n(I1\nttRp12089\nsS'Y:%RateA 76-77'\np12090\ng26\n(S'Variable_Type'\n(I1\nttRp12091\nsS'Y:PMachine114'\np12092\ng26\n(S'Variable_Type'\n(I1\nttRp12093\nsS'Y:VBus61'\np12094\ng26\n(S'Variable_Type'\n(I1\nttRp12095\nsS'Y:PMachine116'\np12096\ng26\n(S'Variable_Type'\n(I1\nttRp12097\nsS'Y:PMachine111'\np12098\ng26\n(S'Variable_Type'\n(I1\nttRp12099\nsS'Y:%RateA 55-56'\np12100\ng26\n(S'Variable_Type'\n(I1\nttRp12101\nsS'Y:PMachine113'\np12102\ng26\n(S'Variable_Type'\n(I1\nttRp12103\nsS'Y:PMachine112'\np12104\ng26\n(S'Variable_Type'\n(I1\nttRp12105\nsS'Y:PMachine94'\np12106\ng26\n(S'Variable_Type'\n(I1\nttRp12107\nsS'Y:%RateA 102-103'\np12108\ng26\n(S'Variable_Type'\n(I1\nttRp12109\nsS'Y:PMachine90'\np12110\ng26\n(S'Variable_Type'\n(I1\nttRp12111\nsS'Y:PMachine93'\np12112\ng26\n(S'Variable_Type'\n(I1\nttRp12113\nsS'Y:NbeTransit'\np12114\ng26\n(S'Variable_Type'\n(I1\nttRp12115\nsS'Y:PMachine54'\np12116\ng26\n(S'Variable_Type'\n(I1\nttRp12117\nsS'Y:PMachine73'\np12118\ng26\n(S'Variable_Type'\n(I1\nttRp12119\nsS'Y:PMachine72'\np12120\ng26\n(S'Variable_Type'\n(I1\nttRp12121\nsS'Y:%RateA 80-81'\np12122\ng26\n(S'Variable_Type'\n(I1\nttRp12123\nsS'Y:PMachine74'\np12124\ng26\n(S'Variable_Type'\n(I1\nttRp12125\nsS'Y:%RateA 53-54'\np12126\ng26\n(S'Variable_Type'\n(I1\nttRp12127\nsS'Y:%RateA 108-109'\np12128\ng26\n(S'Variable_Type'\n(I1\nttRp12129\nsS'X:Interco(bin)'\np12130\ng26\n(S'Variable_Type'\n(I1\nttRp12131\nsS'Y:%RateA 14-15'\np12132\ng26\n(S'Variable_Type'\n(I1\nttRp12133\nsS'Y:%RateA 22-23'\np12134\ng26\n(S'Variable_Type'\n(I1\nttRp12135\nsS'Y:%RateA 57-58'\np12136\ng26\n(S'Variable_Type'\n(I1\nttRp12137\nsS'Y:PMachine106'\np12138\ng26\n(S'Variable_Type'\n(I1\nttRp12139\nsS'Y:PMachine107'\np12140\ng26\n(S'Variable_Type'\n(I1\nttRp12141\nsS'Y:%RateA 106-107'\np12142\ng26\n(S'Variable_Type'\n(I1\nttRp12143\nsS'Y:%RateA 51-52'\np12144\ng26\n(S'Variable_Type'\n(I1\nttRp12145\nsS'Y:%RateA 24-25'\np12146\ng26\n(S'Variable_Type'\n(I1\nttRp12147\nsS'Y:%RateA 82-83'\np12148\ng26\n(S'Variable_Type'\n(I1\nttRp12149\nsS'Y:%RateA 72-73'\np12150\ng26\n(S'Variable_Type'\n(I1\nttRp12151\nsS'Y:PMachine86'\np12152\ng26\n(S'Variable_Type'\n(I1\nttRp12153\nsS'Y:%RateA 78-79'\np12154\ng26\n(S'Variable_Type'\n(I1\nttRp12155\nsS'Y:VBus62'\np12156\ng26\n(S'Variable_Type'\n(I1\nttRp12157\nsS'Y:PMachine42'\np12158\ng26\n(S'Variable_Type'\n(I1\nttRp12159\nsS'Y:PMachine117'\np12160\ng26\n(S'Variable_Type'\n(I1\nttRp12161\nsS'Y:%RateA 112-113'\np12162\ng11968\n(tRp12163\nS'0'\naS'CSAMPO31    -CSAMPO32'\na(dbsS'Y:%RateA 104-105'\np12164\ng26\n(S'Variable_Type'\n(I1\nttRp12165\nsS'Y:PMachine61'\np12166\ng26\n(S'Variable_Type'\n(I1\nttRp12167\nsS'Y:%RateA 86-87'\np12168\ng26\n(S'Variable_Type'\n(I1\nttRp12169\nsS'Y:PMachine29'\np12170\ng26\n(S'Variable_Type'\n(I1\nttRp12171\nsS'Y:%RateA 84-85'\np12172\ng26\n(S'Variable_Type'\n(I1\nttRp12173\nsS'Y:%RateA 95-96'\np12174\ng26\n(S'Variable_Type'\n(I1\nttRp12175\nssg630\n(dp12176\nsg632\n(dp12177\nS'attribute'\np12178\n(S'X:Interco(bin)'\np12179\ng12131\ntp12180\nsS'yaxisTitle'\np12181\n(S'frequency'\nI0\ntp12182\nsS'xaxisTitle'\np12183\n(g12179\ng12131\ntp12184\nsS'mainTitle'\np12185\n(S''\nI0\ntp12186\nsS'yPaxisTitle'\np12187\n(S''\nI0\ntp12188\nsS'targetValue'\np12189\n(I0\nI-2\ntp12190\nsS'visibleOutcomes'\np12191\n((lp12192\nI0\naI1\naI-2\ntp12193\nssg650\nF1367937614.72\nsba(iOWContexts\nContext\np12194\n(dp12195\ng20\n(lp12196\nS'orderedDomain'\np12197\nasg23\n(dp12198\nS'Y:%RateA 59-60'\np12199\ng26\n(S'Variable_Type'\n(I1\nttRp12200\nsS'Y:%RateA 29-30'\np12201\ng26\n(S'Variable_Type'\n(I1\nttRp12202\nsS'Y:%RateA 61-62'\np12203\ng26\n(S'Variable_Type'\n(I1\nttRp12204\nsS'Y:%RateA 76-77'\np12205\ng26\n(S'Variable_Type'\n(I1\nttRp12206\nsS'Y:PMachine114'\np12207\ng26\n(S'Variable_Type'\n(I1\nttRp12208\nsS'Y:VBus61'\np12209\ng26\n(S'Variable_Type'\n(I1\nttRp12210\nsS'Y:PMachine116'\np12211\ng26\n(S'Variable_Type'\n(I1\nttRp12212\nsS'Y:PMachine111'\np12213\ng26\n(S'Variable_Type'\n(I1\nttRp12214\nsS'Y:%RateA 55-56'\np12215\ng26\n(S'Variable_Type'\n(I1\nttRp12216\nsS'Y:PMachine113'\np12217\ng26\n(S'Variable_Type'\n(I1\nttRp12218\nsS'Y:PMachine112'\np12219\ng26\n(S'Variable_Type'\n(I1\nttRp12220\nsS'Y:PMachine94'\np12221\ng26\n(S'Variable_Type'\n(I1\nttRp12222\nsS'Y:%RateA 102-103'\np12223\ng26\n(S'Variable_Type'\n(I1\nttRp12224\nsS'Y:PMachine90'\np12225\ng26\n(S'Variable_Type'\n(I1\nttRp12226\nsS'Y:PMachine93'\np12227\ng26\n(S'Variable_Type'\n(I1\nttRp12228\nsS'Y:NbeTransit'\np12229\ng26\n(S'Variable_Type'\n(I1\nttRp12230\nsS'Y:PMachine54'\np12231\ng26\n(S'Variable_Type'\n(I1\nttRp12232\nsS'Y:PMachine73'\np12233\ng26\n(S'Variable_Type'\n(I1\nttRp12234\nsS'Y:PMachine72'\np12235\ng26\n(S'Variable_Type'\n(I1\nttRp12236\nsS'Y:%RateA 80-81'\np12237\ng26\n(S'Variable_Type'\n(I1\nttRp12238\nsS'Y:PMachine74'\np12239\ng26\n(S'Variable_Type'\n(I1\nttRp12240\nsS'Y:%RateA 53-54'\np12241\ng26\n(S'Variable_Type'\n(I1\nttRp12242\nsS'Y:%RateA 108-109'\np12243\ng26\n(S'Variable_Type'\n(I1\nttRp12244\nsS'X:Interco(bin)'\np12245\ng26\n(S'Variable_Type'\n(I1\nttRp12246\nsS'Y:%RateA 14-15'\np12247\ng26\n(S'Variable_Type'\n(I1\nttRp12248\nsS'Y:%RateA 22-23'\np12249\ng26\n(S'Variable_Type'\n(I1\nttRp12250\nsS'Y:%RateA 57-58'\np12251\ng26\n(S'Variable_Type'\n(I1\nttRp12252\nsS'Y:PMachine106'\np12253\ng26\n(S'Variable_Type'\n(I1\nttRp12254\nsS'Y:PMachine107'\np12255\ng26\n(S'Variable_Type'\n(I1\nttRp12256\nsS'Y:%RateA 106-107'\np12257\ng26\n(S'Variable_Type'\n(I1\nttRp12258\nsS'Y:%RateA 51-52'\np12259\ng26\n(S'Variable_Type'\n(I1\nttRp12260\nsS'Y:%RateA 24-25'\np12261\ng26\n(S'Variable_Type'\n(I1\nttRp12262\nsS'Y:%RateA 82-83'\np12263\ng26\n(S'Variable_Type'\n(I1\nttRp12264\nsS'Y:%RateA 72-73'\np12265\ng26\n(S'Variable_Type'\n(I1\nttRp12266\nsS'Y:PMachine86'\np12267\ng26\n(S'Variable_Type'\n(I1\nttRp12268\nsS'Y:%RateA 78-79'\np12269\ng26\n(S'Variable_Type'\n(I1\nttRp12270\nsS'Y:VBus62'\np12271\ng26\n(S'Variable_Type'\n(I1\nttRp12272\nsS'Y:PMachine42'\np12273\ng26\n(S'Variable_Type'\n(I1\nttRp12274\nsS'Y:PMachine117'\np12275\ng26\n(S'Variable_Type'\n(I1\nttRp12276\nsS'Y:%RateA 112-113'\np12277\ng11968\n(tRp12278\nS'0'\naS'CSAMPO31    -CSAMPO32'\na(dbsS'Y:%RateA 104-105'\np12279\ng26\n(S'Variable_Type'\n(I1\nttRp12280\nsS'Y:PMachine61'\np12281\ng26\n(S'Variable_Type'\n(I1\nttRp12282\nsS'Y:%RateA 86-87'\np12283\ng26\n(S'Variable_Type'\n(I1\nttRp12284\nsS'Y:PMachine29'\np12285\ng26\n(S'Variable_Type'\n(I1\nttRp12286\nsS'Y:%RateA 84-85'\np12287\ng26\n(S'Variable_Type'\n(I1\nttRp12288\nsS'Y:%RateA 95-96'\np12289\ng26\n(S'Variable_Type'\n(I1\nttRp12290\nssg630\n(dp12291\nsg632\n(dp12292\nS'attribute'\np12293\n(S'X:Interco(bin)'\np12294\ng12246\ntp12295\nsS'yaxisTitle'\np12296\n(S'frequency'\nI0\ntp12297\nsS'xaxisTitle'\np12298\n(g12294\ng12246\ntp12299\nsS'mainTitle'\np12300\n(S''\nI0\ntp12301\nsS'yPaxisTitle'\np12302\n(S''\nI0\ntp12303\nsS'targetValue'\np12304\n(I0\nI-2\ntp12305\nsS'visibleOutcomes'\np12306\n((lp12307\nI0\naI1\naI-2\ntp12308\nssg650\nF1367937614.72\nsba(iOWContexts\nContext\np12309\n(dp12310\ng20\n(lp12311\nS'orderedDomain'\np12312\nasg23\n(dp12313\nS'Y:%RateA 59-60'\np12314\ng26\n(S'Variable_Type'\n(I1\nttRp12315\nsS'Y:%RateA 29-30'\np12316\ng26\n(S'Variable_Type'\n(I1\nttRp12317\nsS'Y:%RateA 61-62'\np12318\ng26\n(S'Variable_Type'\n(I1\nttRp12319\nsS'Y:%RateA 76-77'\np12320\ng26\n(S'Variable_Type'\n(I1\nttRp12321\nsS'Y:PMachine114'\np12322\ng26\n(S'Variable_Type'\n(I1\nttRp12323\nsS'Y:VBus61'\np12324\ng26\n(S'Variable_Type'\n(I1\nttRp12325\nsS'Y:PMachine116'\np12326\ng26\n(S'Variable_Type'\n(I1\nttRp12327\nsS'Y:PMachine111'\np12328\ng26\n(S'Variable_Type'\n(I1\nttRp12329\nsS'Y:%RateA 55-56'\np12330\ng26\n(S'Variable_Type'\n(I1\nttRp12331\nsS'Y:PMachine113'\np12332\ng26\n(S'Variable_Type'\n(I1\nttRp12333\nsS'Y:PMachine112'\np12334\ng26\n(S'Variable_Type'\n(I1\nttRp12335\nsS'Y:PMachine94'\np12336\ng26\n(S'Variable_Type'\n(I1\nttRp12337\nsS'Y:%RateA 102-103'\np12338\ng26\n(S'Variable_Type'\n(I1\nttRp12339\nsS'Y:PMachine90'\np12340\ng26\n(S'Variable_Type'\n(I1\nttRp12341\nsS'Y:PMachine93'\np12342\ng26\n(S'Variable_Type'\n(I1\nttRp12343\nsS'Y:NbeTransit'\np12344\ng26\n(S'Variable_Type'\n(I1\nttRp12345\nsS'Y:PMachine54'\np12346\ng26\n(S'Variable_Type'\n(I1\nttRp12347\nsS'Y:PMachine73'\np12348\ng26\n(S'Variable_Type'\n(I1\nttRp12349\nsS'Y:PMachine72'\np12350\ng26\n(S'Variable_Type'\n(I1\nttRp12351\nsS'Y:%RateA 80-81'\np12352\ng26\n(S'Variable_Type'\n(I1\nttRp12353\nsS'Y:PMachine74'\np12354\ng26\n(S'Variable_Type'\n(I1\nttRp12355\nsS'Y:%RateA 53-54'\np12356\ng26\n(S'Variable_Type'\n(I1\nttRp12357\nsS'Y:%RateA 108-109'\np12358\ng26\n(S'Variable_Type'\n(I1\nttRp12359\nsS'X:Interco(bin)'\np12360\ng26\n(S'Variable_Type'\n(I1\nttRp12361\nsS'Y:%RateA 14-15'\np12362\ng26\n(S'Variable_Type'\n(I1\nttRp12363\nsS'Y:%RateA 22-23'\np12364\ng26\n(S'Variable_Type'\n(I1\nttRp12365\nsS'Y:%RateA 57-58'\np12366\ng26\n(S'Variable_Type'\n(I1\nttRp12367\nsS'Y:PMachine106'\np12368\ng26\n(S'Variable_Type'\n(I1\nttRp12369\nsS'Y:PMachine107'\np12370\ng26\n(S'Variable_Type'\n(I1\nttRp12371\nsS'Y:%RateA 106-107'\np12372\ng26\n(S'Variable_Type'\n(I1\nttRp12373\nsS'Y:%RateA 51-52'\np12374\ng26\n(S'Variable_Type'\n(I1\nttRp12375\nsS'Y:%RateA 24-25'\np12376\ng26\n(S'Variable_Type'\n(I1\nttRp12377\nsS'Y:%RateA 82-83'\np12378\ng26\n(S'Variable_Type'\n(I1\nttRp12379\nsS'Y:%RateA 72-73'\np12380\ng26\n(S'Variable_Type'\n(I1\nttRp12381\nsS'Y:PMachine86'\np12382\ng26\n(S'Variable_Type'\n(I1\nttRp12383\nsS'Y:%RateA 78-79'\np12384\ng26\n(S'Variable_Type'\n(I1\nttRp12385\nsS'Y:VBus62'\np12386\ng26\n(S'Variable_Type'\n(I1\nttRp12387\nsS'Y:PMachine42'\np12388\ng26\n(S'Variable_Type'\n(I1\nttRp12389\nsS'Y:PMachine117'\np12390\ng26\n(S'Variable_Type'\n(I1\nttRp12391\nsS'Y:%RateA 112-113'\np12392\ng11968\n(tRp12393\nS'0'\naS'CSAMPO31    -CSAMPO32'\na(dbsS'Y:%RateA 104-105'\np12394\ng26\n(S'Variable_Type'\n(I1\nttRp12395\nsS'Y:PMachine61'\np12396\ng26\n(S'Variable_Type'\n(I1\nttRp12397\nsS'Y:%RateA 86-87'\np12398\ng26\n(S'Variable_Type'\n(I1\nttRp12399\nsS'Y:PMachine29'\np12400\ng26\n(S'Variable_Type'\n(I1\nttRp12401\nsS'Y:%RateA 84-85'\np12402\ng26\n(S'Variable_Type'\n(I1\nttRp12403\nsS'Y:%RateA 95-96'\np12404\ng26\n(S'Variable_Type'\n(I1\nttRp12405\nssg630\n(dp12406\nsg632\n(dp12407\nS'attribute'\np12408\n(S'X:Interco(bin)'\np12409\ng12361\ntp12410\nsS'yaxisTitle'\np12411\n(S'frequency'\nI0\ntp12412\nsS'xaxisTitle'\np12413\n(g12409\ng12361\ntp12414\nsS'mainTitle'\np12415\n(S''\nI0\ntp12416\nsS'yPaxisTitle'\np12417\n(S''\nI0\ntp12418\nsS'targetValue'\np12419\n(I0\nI-2\ntp12420\nsS'visibleOutcomes'\np12421\n((lp12422\nI0\naI1\naI-2\ntp12423\nssg650\nF1367937614.72\nsba(iOWContexts\nContext\np12424\n(dp12425\ng20\n(lp12426\nS'orderedDomain'\np12427\nasg23\n(dp12428\nS'Y:%RateA 59-60'\np12429\ng26\n(S'Variable_Type'\n(I1\nttRp12430\nsS'Y:%RateA 29-30'\np12431\ng26\n(S'Variable_Type'\n(I1\nttRp12432\nsS'Y:%RateA 61-62'\np12433\ng26\n(S'Variable_Type'\n(I1\nttRp12434\nsS'Y:%RateA 76-77'\np12435\ng26\n(S'Variable_Type'\n(I1\nttRp12436\nsS'Y:PMachine114'\np12437\ng26\n(S'Variable_Type'\n(I1\nttRp12438\nsS'Y:VBus61'\np12439\ng26\n(S'Variable_Type'\n(I1\nttRp12440\nsS'Y:PMachine116'\np12441\ng26\n(S'Variable_Type'\n(I1\nttRp12442\nsS'Y:PMachine111'\np12443\ng26\n(S'Variable_Type'\n(I1\nttRp12444\nsS'Y:%RateA 55-56'\np12445\ng26\n(S'Variable_Type'\n(I1\nttRp12446\nsS'Y:PMachine113'\np12447\ng26\n(S'Variable_Type'\n(I1\nttRp12448\nsS'Y:PMachine112'\np12449\ng26\n(S'Variable_Type'\n(I1\nttRp12450\nsS'Y:PMachine94'\np12451\ng26\n(S'Variable_Type'\n(I1\nttRp12452\nsS'Y:%RateA 102-103'\np12453\ng26\n(S'Variable_Type'\n(I1\nttRp12454\nsS'Y:PMachine90'\np12455\ng26\n(S'Variable_Type'\n(I1\nttRp12456\nsS'Y:PMachine93'\np12457\ng26\n(S'Variable_Type'\n(I1\nttRp12458\nsS'Y:NbeTransit'\np12459\ng26\n(S'Variable_Type'\n(I1\nttRp12460\nsS'Y:PMachine54'\np12461\ng26\n(S'Variable_Type'\n(I1\nttRp12462\nsS'Y:PMachine73'\np12463\ng26\n(S'Variable_Type'\n(I1\nttRp12464\nsS'Y:PMachine72'\np12465\ng26\n(S'Variable_Type'\n(I1\nttRp12466\nsS'Y:%RateA 80-81'\np12467\ng26\n(S'Variable_Type'\n(I1\nttRp12468\nsS'Y:PMachine74'\np12469\ng26\n(S'Variable_Type'\n(I1\nttRp12470\nsS'Y:%RateA 53-54'\np12471\ng26\n(S'Variable_Type'\n(I1\nttRp12472\nsS'Y:%RateA 108-109'\np12473\ng26\n(S'Variable_Type'\n(I1\nttRp12474\nsS'X:Interco(bin)'\np12475\ng26\n(S'Variable_Type'\n(I1\nttRp12476\nsS'Y:%RateA 14-15'\np12477\ng26\n(S'Variable_Type'\n(I1\nttRp12478\nsS'Y:%RateA 22-23'\np12479\ng26\n(S'Variable_Type'\n(I1\nttRp12480\nsS'Y:%RateA 57-58'\np12481\ng26\n(S'Variable_Type'\n(I1\nttRp12482\nsS'Y:PMachine106'\np12483\ng26\n(S'Variable_Type'\n(I1\nttRp12484\nsS'Y:PMachine107'\np12485\ng26\n(S'Variable_Type'\n(I1\nttRp12486\nsS'Y:%RateA 106-107'\np12487\ng26\n(S'Variable_Type'\n(I1\nttRp12488\nsS'Y:%RateA 51-52'\np12489\ng26\n(S'Variable_Type'\n(I1\nttRp12490\nsS'Y:%RateA 24-25'\np12491\ng26\n(S'Variable_Type'\n(I1\nttRp12492\nsS'Y:%RateA 82-83'\np12493\ng26\n(S'Variable_Type'\n(I1\nttRp12494\nsS'Y:%RateA 72-73'\np12495\ng26\n(S'Variable_Type'\n(I1\nttRp12496\nsS'Y:PMachine86'\np12497\ng26\n(S'Variable_Type'\n(I1\nttRp12498\nsS'Y:%RateA 78-79'\np12499\ng26\n(S'Variable_Type'\n(I1\nttRp12500\nsS'Y:VBus62'\np12501\ng26\n(S'Variable_Type'\n(I1\nttRp12502\nsS'Y:PMachine42'\np12503\ng26\n(S'Variable_Type'\n(I1\nttRp12504\nsS'Y:PMachine117'\np12505\ng26\n(S'Variable_Type'\n(I1\nttRp12506\nsS'Y:%RateA 112-113'\np12507\ng11968\n(tRp12508\nS'0'\naS'CSAMPO31    -CSAMPO32'\na(dbsS'Y:%RateA 104-105'\np12509\ng26\n(S'Variable_Type'\n(I1\nttRp12510\nsS'Y:PMachine61'\np12511\ng26\n(S'Variable_Type'\n(I1\nttRp12512\nsS'Y:%RateA 86-87'\np12513\ng26\n(S'Variable_Type'\n(I1\nttRp12514\nsS'Y:PMachine29'\np12515\ng26\n(S'Variable_Type'\n(I1\nttRp12516\nsS'Y:%RateA 84-85'\np12517\ng26\n(S'Variable_Type'\n(I1\nttRp12518\nsS'Y:%RateA 95-96'\np12519\ng26\n(S'Variable_Type'\n(I1\nttRp12520\nssg630\n(dp12521\nsg632\n(dp12522\nS'attribute'\np12523\n(S'X:Interco(bin)'\np12524\ng12476\ntp12525\nsS'yaxisTitle'\np12526\n(S'frequency'\nI0\ntp12527\nsS'xaxisTitle'\np12528\n(g12524\ng12476\ntp12529\nsS'mainTitle'\np12530\n(S''\nI0\ntp12531\nsS'yPaxisTitle'\np12532\n(S''\nI0\ntp12533\nsS'targetValue'\np12534\n(I0\nI-2\ntp12535\nsS'visibleOutcomes'\np12536\n((lp12537\nI0\naI1\naI-2\ntp12538\nssg650\nF1367937614.72\nsba(iOWContexts\nContext\np12539\n(dp12540\ng20\n(lp12541\nS'orderedDomain'\np12542\nasg23\n(dp12543\nS'Y:%RateA 59-60'\np12544\ng26\n(S'Variable_Type'\n(I1\nttRp12545\nsS'Y:%RateA 29-30'\np12546\ng26\n(S'Variable_Type'\n(I1\nttRp12547\nsS'Y:%RateA 61-62'\np12548\ng26\n(S'Variable_Type'\n(I1\nttRp12549\nsS'Y:%RateA 76-77'\np12550\ng26\n(S'Variable_Type'\n(I1\nttRp12551\nsS'Y:PMachine114'\np12552\ng26\n(S'Variable_Type'\n(I1\nttRp12553\nsS'Y:VBus61'\np12554\ng26\n(S'Variable_Type'\n(I1\nttRp12555\nsS'Y:PMachine116'\np12556\ng26\n(S'Variable_Type'\n(I1\nttRp12557\nsS'Y:PMachine111'\np12558\ng26\n(S'Variable_Type'\n(I1\nttRp12559\nsS'Y:%RateA 55-56'\np12560\ng26\n(S'Variable_Type'\n(I1\nttRp12561\nsS'Y:PMachine113'\np12562\ng26\n(S'Variable_Type'\n(I1\nttRp12563\nsS'Y:PMachine112'\np12564\ng26\n(S'Variable_Type'\n(I1\nttRp12565\nsS'Y:PMachine94'\np12566\ng26\n(S'Variable_Type'\n(I1\nttRp12567\nsS'Y:%RateA 102-103'\np12568\ng26\n(S'Variable_Type'\n(I1\nttRp12569\nsS'Y:PMachine90'\np12570\ng26\n(S'Variable_Type'\n(I1\nttRp12571\nsS'Y:PMachine93'\np12572\ng26\n(S'Variable_Type'\n(I1\nttRp12573\nsS'Y:NbeTransit'\np12574\ng26\n(S'Variable_Type'\n(I1\nttRp12575\nsS'Y:PMachine54'\np12576\ng26\n(S'Variable_Type'\n(I1\nttRp12577\nsS'Y:PMachine73'\np12578\ng26\n(S'Variable_Type'\n(I1\nttRp12579\nsS'Y:PMachine72'\np12580\ng26\n(S'Variable_Type'\n(I1\nttRp12581\nsS'Y:%RateA 80-81'\np12582\ng26\n(S'Variable_Type'\n(I1\nttRp12583\nsS'Y:PMachine74'\np12584\ng26\n(S'Variable_Type'\n(I1\nttRp12585\nsS'Y:%RateA 53-54'\np12586\ng26\n(S'Variable_Type'\n(I1\nttRp12587\nsS'Y:%RateA 108-109'\np12588\ng26\n(S'Variable_Type'\n(I1\nttRp12589\nsS'X:Interco(bin)'\np12590\ng26\n(S'Variable_Type'\n(I1\nttRp12591\nsS'Y:%RateA 14-15'\np12592\ng26\n(S'Variable_Type'\n(I1\nttRp12593\nsS'Y:%RateA 22-23'\np12594\ng26\n(S'Variable_Type'\n(I1\nttRp12595\nsS'Y:%RateA 57-58'\np12596\ng26\n(S'Variable_Type'\n(I1\nttRp12597\nsS'Y:PMachine106'\np12598\ng26\n(S'Variable_Type'\n(I1\nttRp12599\nsS'Y:PMachine107'\np12600\ng26\n(S'Variable_Type'\n(I1\nttRp12601\nsS'Y:%RateA 106-107'\np12602\ng26\n(S'Variable_Type'\n(I1\nttRp12603\nsS'Y:%RateA 51-52'\np12604\ng26\n(S'Variable_Type'\n(I1\nttRp12605\nsS'Y:%RateA 24-25'\np12606\ng26\n(S'Variable_Type'\n(I1\nttRp12607\nsS'Y:%RateA 82-83'\np12608\ng26\n(S'Variable_Type'\n(I1\nttRp12609\nsS'Y:%RateA 72-73'\np12610\ng26\n(S'Variable_Type'\n(I1\nttRp12611\nsS'Y:PMachine86'\np12612\ng26\n(S'Variable_Type'\n(I1\nttRp12613\nsS'Y:%RateA 78-79'\np12614\ng26\n(S'Variable_Type'\n(I1\nttRp12615\nsS'Y:VBus62'\np12616\ng26\n(S'Variable_Type'\n(I1\nttRp12617\nsS'Y:PMachine42'\np12618\ng26\n(S'Variable_Type'\n(I1\nttRp12619\nsS'Y:PMachine117'\np12620\ng26\n(S'Variable_Type'\n(I1\nttRp12621\nsS'Y:%RateA 112-113'\np12622\ng11968\n(tRp12623\nS'0'\naS'CSAMPO31    -CSAMPO32'\na(dbsS'Y:%RateA 104-105'\np12624\ng26\n(S'Variable_Type'\n(I1\nttRp12625\nsS'Y:PMachine61'\np12626\ng26\n(S'Variable_Type'\n(I1\nttRp12627\nsS'Y:%RateA 86-87'\np12628\ng26\n(S'Variable_Type'\n(I1\nttRp12629\nsS'Y:PMachine29'\np12630\ng26\n(S'Variable_Type'\n(I1\nttRp12631\nsS'Y:%RateA 84-85'\np12632\ng26\n(S'Variable_Type'\n(I1\nttRp12633\nsS'Y:%RateA 95-96'\np12634\ng26\n(S'Variable_Type'\n(I1\nttRp12635\nssg630\n(dp12636\nsg632\n(dp12637\nS'attribute'\np12638\n(S'X:Interco(bin)'\np12639\ng12591\ntp12640\nsS'yaxisTitle'\np12641\n(S'frequency'\nI0\ntp12642\nsS'xaxisTitle'\np12643\n(g12639\ng12591\ntp12644\nsS'mainTitle'\np12645\n(S''\nI0\ntp12646\nsS'yPaxisTitle'\np12647\n(S''\nI0\ntp12648\nsS'targetValue'\np12649\n(I0\nI-2\ntp12650\nsS'visibleOutcomes'\np12651\n((lp12652\nI0\naI1\naI-2\ntp12653\nssg650\nF1367937614.72\nsba(iOWContexts\nContext\np12654\n(dp12655\ng20\n(lp12656\nS'orderedDomain'\np12657\nasg23\n(dp12658\nS'Y:%RateA 59-60'\np12659\ng26\n(S'Variable_Type'\n(I1\nttRp12660\nsS'Y:%RateA 29-30'\np12661\ng26\n(S'Variable_Type'\n(I1\nttRp12662\nsS'Y:%RateA 61-62'\np12663\ng26\n(S'Variable_Type'\n(I1\nttRp12664\nsS'Y:%RateA 76-77'\np12665\ng26\n(S'Variable_Type'\n(I1\nttRp12666\nsS'Y:PMachine114'\np12667\ng26\n(S'Variable_Type'\n(I1\nttRp12668\nsS'Y:VBus61'\np12669\ng26\n(S'Variable_Type'\n(I1\nttRp12670\nsS'Y:PMachine116'\np12671\ng26\n(S'Variable_Type'\n(I1\nttRp12672\nsS'Y:PMachine111'\np12673\ng26\n(S'Variable_Type'\n(I1\nttRp12674\nsS'Y:%RateA 55-56'\np12675\ng26\n(S'Variable_Type'\n(I1\nttRp12676\nsS'Y:PMachine113'\np12677\ng26\n(S'Variable_Type'\n(I1\nttRp12678\nsS'Y:PMachine112'\np12679\ng26\n(S'Variable_Type'\n(I1\nttRp12680\nsS'Y:PMachine94'\np12681\ng26\n(S'Variable_Type'\n(I1\nttRp12682\nsS'Y:%RateA 102-103'\np12683\ng26\n(S'Variable_Type'\n(I1\nttRp12684\nsS'Y:PMachine90'\np12685\ng26\n(S'Variable_Type'\n(I1\nttRp12686\nsS'Y:PMachine93'\np12687\ng26\n(S'Variable_Type'\n(I1\nttRp12688\nsS'Y:NbeTransit'\np12689\ng26\n(S'Variable_Type'\n(I1\nttRp12690\nsS'Y:PMachine54'\np12691\ng26\n(S'Variable_Type'\n(I1\nttRp12692\nsS'Y:PMachine73'\np12693\ng26\n(S'Variable_Type'\n(I1\nttRp12694\nsS'Y:PMachine72'\np12695\ng26\n(S'Variable_Type'\n(I1\nttRp12696\nsS'Y:%RateA 80-81'\np12697\ng26\n(S'Variable_Type'\n(I1\nttRp12698\nsS'Y:PMachine74'\np12699\ng26\n(S'Variable_Type'\n(I1\nttRp12700\nsS'Y:%RateA 53-54'\np12701\ng26\n(S'Variable_Type'\n(I1\nttRp12702\nsS'Y:%RateA 108-109'\np12703\ng26\n(S'Variable_Type'\n(I1\nttRp12704\nsS'X:Interco(bin)'\np12705\ng26\n(S'Variable_Type'\n(I1\nttRp12706\nsS'Y:%RateA 14-15'\np12707\ng26\n(S'Variable_Type'\n(I1\nttRp12708\nsS'Y:%RateA 22-23'\np12709\ng26\n(S'Variable_Type'\n(I1\nttRp12710\nsS'Y:%RateA 57-58'\np12711\ng26\n(S'Variable_Type'\n(I1\nttRp12712\nsS'Y:PMachine106'\np12713\ng26\n(S'Variable_Type'\n(I1\nttRp12714\nsS'Y:PMachine107'\np12715\ng26\n(S'Variable_Type'\n(I1\nttRp12716\nsS'Y:%RateA 106-107'\np12717\ng26\n(S'Variable_Type'\n(I1\nttRp12718\nsS'Y:%RateA 51-52'\np12719\ng26\n(S'Variable_Type'\n(I1\nttRp12720\nsS'Y:%RateA 24-25'\np12721\ng26\n(S'Variable_Type'\n(I1\nttRp12722\nsS'Y:%RateA 82-83'\np12723\ng26\n(S'Variable_Type'\n(I1\nttRp12724\nsS'Y:%RateA 72-73'\np12725\ng26\n(S'Variable_Type'\n(I1\nttRp12726\nsS'Y:PMachine86'\np12727\ng26\n(S'Variable_Type'\n(I1\nttRp12728\nsS'Y:%RateA 78-79'\np12729\ng26\n(S'Variable_Type'\n(I1\nttRp12730\nsS'Y:VBus62'\np12731\ng26\n(S'Variable_Type'\n(I1\nttRp12732\nsS'Y:PMachine42'\np12733\ng26\n(S'Variable_Type'\n(I1\nttRp12734\nsS'Y:PMachine117'\np12735\ng26\n(S'Variable_Type'\n(I1\nttRp12736\nsS'Y:%RateA 112-113'\np12737\ng11968\n(tRp12738\nS'0'\naS'CSAMPO31    -CSAMPO32'\na(dbsS'Y:%RateA 104-105'\np12739\ng26\n(S'Variable_Type'\n(I1\nttRp12740\nsS'Y:PMachine61'\np12741\ng26\n(S'Variable_Type'\n(I1\nttRp12742\nsS'Y:%RateA 86-87'\np12743\ng26\n(S'Variable_Type'\n(I1\nttRp12744\nsS'Y:PMachine29'\np12745\ng26\n(S'Variable_Type'\n(I1\nttRp12746\nsS'Y:%RateA 84-85'\np12747\ng26\n(S'Variable_Type'\n(I1\nttRp12748\nsS'Y:%RateA 95-96'\np12749\ng26\n(S'Variable_Type'\n(I1\nttRp12750\nssg630\n(dp12751\nsg632\n(dp12752\nS'attribute'\np12753\n(S'X:Interco(bin)'\np12754\ng12706\ntp12755\nsS'yaxisTitle'\np12756\n(S'frequency'\nI0\ntp12757\nsS'xaxisTitle'\np12758\n(g12754\ng12706\ntp12759\nsS'mainTitle'\np12760\n(S''\nI0\ntp12761\nsS'yPaxisTitle'\np12762\n(S''\nI0\ntp12763\nsS'targetValue'\np12764\n(I0\nI-2\ntp12765\nsS'visibleOutcomes'\np12766\n((lp12767\nI0\naI1\naI-2\ntp12768\nssg650\nF1367937614.72\nsba(iOWContexts\nContext\np12769\n(dp12770\ng632\n(dp12771\nS'attribute'\np12772\n(S''\nI0\ntp12773\nsS'yaxisTitle'\np12774\n(S'frequency'\nI0\ntp12775\nsS'xaxisTitle'\np12776\n(S''\nI0\ntp12777\nsS'mainTitle'\np12778\n(S''\nI0\ntp12779\nsS'yPaxisTitle'\np12780\n(S''\nI0\ntp12781\nsS'targetValue'\np12782\n(NI-2\ntp12783\nsS'visibleOutcomes'\np12784\n((lI-2\ntp12785\nssg23\n(dp12786\nsg630\n(dp12787\nsg20\n(lp12788\nS'orderedDomain'\np12789\nasg650\nF1367855073.569\nsba(iOWContexts\nContext\np12790\n(dp12791\ng632\n(dp12792\nS'attribute'\np12793\n(S''\nI0\ntp12794\nsS'yaxisTitle'\np12795\n(S'frequency'\nI0\ntp12796\nsS'xaxisTitle'\np12797\n(S''\nI0\ntp12798\nsS'mainTitle'\np12799\n(S''\nI0\ntp12800\nsS'yPaxisTitle'\np12801\n(S''\nI0\ntp12802\nsS'targetValue'\np12803\n(NI-2\ntp12804\nsS'visibleOutcomes'\np12805\n((lI-2\ntp12806\nssg23\n(dp12807\nsg630\n(dp12808\nsg20\n(lp12809\nS'orderedDomain'\np12810\nasg650\nF1367855073.569\nsba(iOWContexts\nContext\np12811\n(dp12812\ng632\n(dp12813\nS'attribute'\np12814\n(S''\nI0\ntp12815\nsS'yaxisTitle'\np12816\n(S'frequency'\nI0\ntp12817\nsS'xaxisTitle'\np12818\n(S''\nI0\ntp12819\nsS'mainTitle'\np12820\n(S''\nI0\ntp12821\nsS'yPaxisTitle'\np12822\n(S''\nI0\ntp12823\nsS'targetValue'\np12824\n(NI-2\ntp12825\nsS'visibleOutcomes'\np12826\n((lI-2\ntp12827\nssg23\n(dp12828\nsg630\n(dp12829\nsg20\n(lp12830\nS'orderedDomain'\np12831\nasg650\nF1367855073.569\nsba(iOWContexts\nContext\np12832\n(dp12833\ng632\n(dp12834\nS'attribute'\np12835\n(S''\nI0\ntp12836\nsS'yaxisTitle'\np12837\n(S'frequency'\nI0\ntp12838\nsS'xaxisTitle'\np12839\n(S''\nI0\ntp12840\nsS'mainTitle'\np12841\n(S''\nI0\ntp12842\nsS'yPaxisTitle'\np12843\n(S''\nI0\ntp12844\nsS'targetValue'\np12845\n(NI-2\ntp12846\nsS'visibleOutcomes'\np12847\n((lI-2\ntp12848\nssg23\n(dp12849\nsg630\n(dp12850\nsg20\n(lp12851\nS'orderedDomain'\np12852\nasg650\nF1367855073.569\nsba(iOWContexts\nContext\np12853\n(dp12854\ng632\n(dp12855\nS'attribute'\np12856\n(S''\nI0\ntp12857\nsS'yaxisTitle'\np12858\n(S'frequency'\nI0\ntp12859\nsS'xaxisTitle'\np12860\n(S''\nI0\ntp12861\nsS'mainTitle'\np12862\n(S''\nI0\ntp12863\nsS'yPaxisTitle'\np12864\n(S''\nI0\ntp12865\nsS'targetValue'\np12866\n(NI-2\ntp12867\nsS'visibleOutcomes'\np12868\n((lI-2\ntp12869\nssg23\n(dp12870\nsg630\n(dp12871\nsg20\n(lp12872\nS'orderedDomain'\np12873\nasg650\nF1367855073.569\nsba(iOWContexts\nContext\np12874\n(dp12875\ng632\n(dp12876\nS'attribute'\np12877\n(S''\nI0\ntp12878\nsS'yaxisTitle'\np12879\n(S'frequency'\nI0\ntp12880\nsS'xaxisTitle'\np12881\n(S''\nI0\ntp12882\nsS'mainTitle'\np12883\n(S''\nI0\ntp12884\nsS'yPaxisTitle'\np12885\n(S''\nI0\ntp12886\nsS'targetValue'\np12887\n(NI-2\ntp12888\nsS'visibleOutcomes'\np12889\n((lI-2\ntp12890\nssg23\n(dp12891\nsg630\n(dp12892\nsg20\n(lp12893\nS'orderedDomain'\np12894\nasg650\nF1367855073.569\nsbasS'showProbabilities'\np12895\nI1\nsS'numberOfBars'\np12896\nI60\ns.&quot;, 'Distributions': &quot;(dp1\nS'showYaxisTitle'\np2\nI1\nsS'graph.showContinuousClassGraph'\np3\nI00\nsS'barSize'\np4\nI50\nsS'showXaxisTitle'\np5\nI1\nsS'localContextsVersion'\np6\n(I100\nI2\ntp7\nsS'smoothLines'\np8\nI0\nsS'showYPaxisTitle'\np9\nI1\nsS'savedWidgetGeometry'\np10\nS'\\x01\\xd9\\xd0\\xcb\\x00\\x01\\x00\\x00\\x00\\x00\\x01\\xc9\\x00\\x00\\x00?\\x00\\x00\\x04\\xdd\\x00\\x00\\x02|\\x00\\x00\\x01\\xd1\\x00\\x00\\x00[\\x00\\x00\\x04\\xd5\\x00\\x00\\x02t\\x00\\x00\\x00\\x00\\x00\\x00'\np11\nsS'showMainTitle'\np12\nI00\nsS'showConfidenceIntervals'\np13\nI0\nsS'widgetShown'\np14\nI0\nsS'lineWidth'\np15\nI1\nsS'localContexts'\np16\n(lp17\n(iOWContexts\nContext\np18\n(dp19\nS'noCopy'\np20\n(lp21\nS'orderedDomain'\np22\nasS'attributes'\np23\n(dp24\nS'Y:PMachine134 - CLUCCI35'\np25\ncOrange.orange\n__pickleLoaderNamedConstants\np26\n(S'Variable_Type'\n(I2\nttRp27\nsS'Y:VBus77 - CCORTE32'\np28\ng26\n(S'Variable_Type'\n(I2\nttRp29\nsS'Y:VBus134 - CLUCCI35'\np30\ng26\n(S'Variable_Type'\n(I2\nttRp31\nsS'Y:VBus109 - CSAGON32'\np32\ng26\n(S'Variable_Type'\n(I2\nttRp33\nsS'Y:VBus102 - CPORTO31'\np34\ng26\n(S'Variable_Type'\n(I2\nttRp35\nsS'XProdEolienne%Pnom'\np36\ng26\n(S'Variable_Type'\n(I2\nttRp37\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np38\ng26\n(S'Variable_Type'\n(I2\nttRp39\nsS'Y:PMachine94 - COCANA33'\np40\ng26\n(S'Variable_Type'\n(I2\nttRp41\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np42\ng26\n(S'Variable_Type'\n(I2\nttRp43\nsS'Y:PMachine87 - CLUCCI32'\np44\ng26\n(S'Variable_Type'\n(I2\nttRp45\nsS'Y:PMachine113 - CSAMPO32'\np46\ng26\n(S'Variable_Type'\n(I2\nttRp47\nsS'Y:Load 84 - CLORET31'\np48\ng26\n(S'Variable_Type'\n(I2\nttRp49\nsS'Y:PMachine89 - CLUCCI34'\np50\ng26\n(S'Variable_Type'\n(I2\nttRp51\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np52\ng26\n(S'Variable_Type'\n(I2\nttRp53\nsS'Y:Load 80 - CGHISO31'\np54\ng26\n(S'Variable_Type'\n(I2\nttRp55\nsS'Y:PMachine74 - CCERVI31'\np56\ng26\n(S'Variable_Type'\n(I2\nttRp57\nsS'Y:PMachine125 - CVAZZI36'\np58\ng26\n(S'Variable_Type'\n(I2\nttRp59\nsS'Y:Load 59 - CCALDA31'\np60\ng26\n(S'Variable_Type'\n(I2\nttRp61\nsS'Y:PMachine88 - CLUCCI33'\np62\ng26\n(S'Variable_Type'\n(I2\nttRp63\nsS'Y:PMachine120 - CVAZZI31'\np64\ng26\n(S'Variable_Type'\n(I2\nttRp65\nsS'Y:PMachine111 - CSTMAR31'\np66\ng26\n(S'Variable_Type'\n(I2\nttRp67\nsS'Y:NbeTransit'\np68\ng26\n(S'Variable_Type'\n(I2\nttRp69\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np70\ng26\n(S'Variable_Type'\n(I2\nttRp71\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np72\ng26\n(S'Variable_Type'\n(I2\nttRp73\nsS'Y:PMachine130 - CVAZZI311'\np74\ng26\n(S'Variable_Type'\n(I2\nttRp75\nsS'Y:PMachine127 - CVAZZI38'\np76\ng26\n(S'Variable_Type'\n(I2\nttRp77\nsS'Y:VBus131 - CVAZZI312'\np78\ng26\n(S'Variable_Type'\n(I2\nttRp79\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np80\ng26\n(S'Variable_Type'\n(I2\nttRp81\nsS'Y:PMachine123 - CVAZZI34'\np82\ng26\n(S'Variable_Type'\n(I2\nttRp83\nsS'Y:VBus118 - CTOLLA33'\np84\ng26\n(S'Variable_Type'\n(I2\nttRp85\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np86\ng26\n(S'Variable_Type'\n(I2\nttRp87\nsS'Y:PMachine58 - CBONIF32'\np88\ng26\n(S'Variable_Type'\n(I2\nttRp89\nsS'Y:Load 104 - CPROPR31'\np90\ng26\n(S'Variable_Type'\n(I2\nttRp91\nsS'Y:PMachine30 - CLUCCI22'\np92\ng26\n(S'Variable_Type'\n(I2\nttRp93\nsS'Y:VBus100 - COLETT31'\np94\ng26\n(S'Variable_Type'\n(I2\nttRp95\nsS'Y:PProdTot'\np96\ng26\n(S'Variable_Type'\n(I2\nttRp97\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np98\ng26\n(S'Variable_Type'\n(I2\nttRp99\nsS'Y:VBus57 - CBONIF31'\np100\ng26\n(S'Variable_Type'\n(I2\nttRp101\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np102\ng26\n(S'Variable_Type'\n(I2\nttRp103\nsS'Y:PConsoTot'\np104\ng26\n(S'Variable_Type'\n(I2\nttRp105\nsS'Iteration'\np106\ng26\n(S'Variable_Type'\n(I2\nttRp107\nsS'Y:PMachine109 - CSAGON32'\np108\ng26\n(S'Variable_Type'\n(I2\nttRp109\nsS'Y:PMachine135 - CLUCCI36'\np110\ng26\n(S'Variable_Type'\n(I2\nttRp111\nsS'Y:VBus30 - CLUCCI22'\np112\ng26\n(S'Variable_Type'\n(I2\nttRp113\nsS'Y:VBus122 - CVAZZI33'\np114\ng26\n(S'Variable_Type'\n(I2\nttRp115\nsS'Y:VBus22 - CCORTE21'\np116\ng26\n(S'Variable_Type'\n(I2\nttRp117\nsS'Y:VBus117 - CTOLLA32'\np118\ng26\n(S'Variable_Type'\n(I2\nttRp119\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np120\ng26\n(S'Variable_Type'\n(I2\nttRp121\nsS'Y:PMachine107 - CRIZZA32'\np122\ng26\n(S'Variable_Type'\n(I2\nttRp123\nsS'Y:VBus16 - CCALDA21'\np124\ng26\n(S'Variable_Type'\n(I2\nttRp125\nsS'Y:Load 102 - CPORTO31'\np126\ng26\n(S'Variable_Type'\n(I2\nttRp127\nsS'Y:VBus107 - CRIZZA32'\np128\ng26\n(S'Variable_Type'\n(I2\nttRp129\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np130\ng26\n(S'Variable_Type'\n(I2\nttRp131\nsS'Y:VBus41 - CSAMPO21'\np132\ng26\n(S'Variable_Type'\n(I2\nttRp133\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np134\ng26\n(S'Variable_Type'\n(I2\nttRp135\nsS'Y:VBus34 - CPIETR21'\np136\ng26\n(S'Variable_Type'\n(I2\nttRp137\nsS'Y:Load 108 - CSAGON31'\np138\ng26\n(S'Variable_Type'\n(I2\nttRp139\nsS'Y:VBus56 - CBIGUG32'\np140\ng26\n(S'Variable_Type'\n(I2\nttRp141\nsS'Y:PMachine42 - CSISCO21'\np142\ng26\n(S'Variable_Type'\n(I2\nttRp143\nsS'Y:PMachine138 - CLUCCI39'\np144\ng26\n(S'Variable_Type'\n(I2\nttRp145\nsS'Y:PMachine112 - CSAMPO31'\np146\ng26\n(S'Variable_Type'\n(I2\nttRp147\nsS'Y:VBus105 - CPROPR32'\np148\ng26\n(S'Variable_Type'\n(I2\nttRp149\nsS'Y:VBus1 - CBONIF11'\np150\ng26\n(S'Variable_Type'\n(I2\nttRp151\nsS'Y:VBus12 - CBASTI21'\np152\ng26\n(S'Variable_Type'\n(I2\nttRp153\nsS'Y:PMachine129 - CVAZZI310'\np154\ng26\n(S'Variable_Type'\n(I2\nttRp155\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np156\ng26\n(S'Variable_Type'\n(I2\nttRp157\nsS'Y:VBus35 - CPORTO21'\np158\ng26\n(S'Variable_Type'\n(I2\nttRp159\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np160\ng26\n(S'Variable_Type'\n(I2\nttRp161\nsS'Y:VBus54 - CBASTI32'\np162\ng26\n(S'Variable_Type'\n(I2\nttRp163\nsS'Y:VBus69 - CCASAM37'\np164\ng26\n(S'Variable_Type'\n(I2\nttRp165\nsS'Y:VBus45 - CTOLLA21'\np166\ng26\n(S'Variable_Type'\n(I2\nttRp167\nsS'Y:PMachine115 - CTAGLI31'\np168\ng26\n(S'Variable_Type'\n(I2\nttRp169\nsS'Y:VBus43 - CSOVEN21'\np170\ng26\n(S'Variable_Type'\n(I2\nttRp171\nsS'Y:VBus76 - CCORTE31'\np172\ng26\n(S'Variable_Type'\n(I2\nttRp173\nsS'Y:VBus75 - CCORSC31'\np174\ng26\n(S'Variable_Type'\n(I2\nttRp175\nsS'Y:PMachine78 - CFURIA31'\np176\ng26\n(S'Variable_Type'\n(I2\nttRp177\nsS'Y:VBus127 - CVAZZI38'\np178\ng26\n(S'Variable_Type'\n(I2\nttRp179\nsS'Y:VBus115 - CTAGLI31'\np180\ng26\n(S'Variable_Type'\n(I2\nttRp181\nsS'Y:Load 61 - CCALVI31'\np182\ng26\n(S'Variable_Type'\n(I2\nttRp183\nsS'Y:VBus55 - CBIGUG31'\np184\ng26\n(S'Variable_Type'\n(I2\nttRp185\nsS'Y:Load 42 - CSISCO21'\np186\ng26\n(S'Variable_Type'\n(I2\nttRp187\nsS'Y:VBus72 - CCASTI31'\np188\ng26\n(S'Variable_Type'\n(I2\nttRp189\nsS'Y:Load 37 - CRIZZA21'\np190\ng26\n(S'Variable_Type'\n(I2\nttRp191\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np192\ng26\n(S'Variable_Type'\n(I2\nttRp193\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np194\ng26\n(S'Variable_Type'\n(I2\nttRp195\nsS'Y:PMachine137 - CLUCCI38'\np196\ng26\n(S'Variable_Type'\n(I2\nttRp197\nsS'Y:PMachine67 - CCASAM35'\np198\ng26\n(S'Variable_Type'\n(I2\nttRp199\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np200\ng26\n(S'Variable_Type'\n(I2\nttRp201\nsS'Y:VBus31 - CMOROS21'\np202\ng26\n(S'Variable_Type'\n(I2\nttRp203\nsS'Y:VBus103 - CPORTO32'\np204\ng26\n(S'Variable_Type'\n(I2\nttRp205\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np206\ng26\n(S'Variable_Type'\n(I2\nttRp207\nsS'Y:PMachine128 - CVAZZI39'\np208\ng26\n(S'Variable_Type'\n(I2\nttRp209\nsS'Y:PMachine72 - CCASTI31'\np210\ng26\n(S'Variable_Type'\n(I2\nttRp211\nsS'Y:VBus27 - CILERO21'\np212\ng26\n(S'Variable_Type'\n(I2\nttRp213\nsS'Y:VBus11 - CASPRE21'\np214\ng26\n(S'Variable_Type'\n(I2\nttRp215\nsS'Y:PMachine75 - CCORSC31'\np216\ng26\n(S'Variable_Type'\n(I2\nttRp217\nsS'Y:Load 51 - CASPRE31'\np218\ng26\n(S'Variable_Type'\n(I2\nttRp219\nsS'Y:PMachine61 - CCALVI31'\np220\ng26\n(S'Variable_Type'\n(I2\nttRp221\nsS'Y:VBus51 - CASPRE31'\np222\ng26\n(S'Variable_Type'\n(I2\nttRp223\nsS'Y:VBus114 - CSOVEN31'\np224\ng26\n(S'Variable_Type'\n(I2\nttRp225\nsS'Y:VBus116 - CTOLLA31'\np226\ng26\n(S'Variable_Type'\n(I2\nttRp227\nsS'Y:Load 86 - CLUCCI31'\np228\ng26\n(S'Variable_Type'\n(I2\nttRp229\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np230\ng26\n(S'Variable_Type'\n(I2\nttRp231\nsS'Y:PMachine116 - CTOLLA31'\np232\ng26\n(S'Variable_Type'\n(I2\nttRp233\nsS'Y:PMachine104 - CPROPR31'\np234\ng26\n(S'Variable_Type'\n(I2\nttRp235\nsS'Y:VBus128 - CVAZZI39'\np236\ng26\n(S'Variable_Type'\n(I2\nttRp237\nsS'Y:PMachine136 - CLUCCI37'\np238\ng26\n(S'Variable_Type'\n(I2\nttRp239\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np240\ng26\n(S'Variable_Type'\n(I2\nttRp241\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np242\ng26\n(S'Variable_Type'\n(I2\nttRp243\nsS'Y:PMachine68 - CCASAM36'\np244\ng26\n(S'Variable_Type'\n(I2\nttRp245\nsS'Y:PMachine29 - CLUCCI21'\np246\ng26\n(S'Variable_Type'\n(I2\nttRp247\nsS'Y:VBus42 - CSISCO21'\np248\ng26\n(S'Variable_Type'\n(I2\nttRp249\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np250\ng26\n(S'Variable_Type'\n(I2\nttRp251\nsS'Y:VBus14 - CBONIF21'\np252\ng26\n(S'Variable_Type'\n(I2\nttRp253\nsS'Y:VBus73 - CCASTI32'\np254\ng26\n(S'Variable_Type'\n(I2\nttRp255\nsS'Y:VBus64 - CCASAM32'\np256\ng26\n(S'Variable_Type'\n(I2\nttRp257\nsS'Y:PMachine14 - CBONIF21'\np258\ng26\n(S'Variable_Type'\n(I2\nttRp259\nsS'Y:PMachine62 - CCALVI32'\np260\ng26\n(S'Variable_Type'\n(I2\nttRp261\nsS'Y:VBus133 - CVAZZI314'\np262\ng26\n(S'Variable_Type'\n(I2\nttRp263\nsS'Y:VBus63 - CCASAM31'\np264\ng26\n(S'Variable_Type'\n(I2\nttRp265\nsS'Y:PMachine101 - CPIETR31'\np266\ng26\n(S'Variable_Type'\n(I2\nttRp267\nsS'Y:%Losses'\np268\ng26\n(S'Variable_Type'\n(I2\nttRp269\nsS'Y:VBus85 - CLORET32'\np270\ng26\n(S'Variable_Type'\n(I2\nttRp271\nsS'Y:Load 115 - CTAGLI31'\np272\ng26\n(S'Variable_Type'\n(I2\nttRp273\nsS'Y:VBus129 - CVAZZI310'\np274\ng26\n(S'Variable_Type'\n(I2\nttRp275\nsS'Y:VBus101 - CPIETR31'\np276\ng26\n(S'Variable_Type'\n(I2\nttRp277\nsS'Y:PMachine106 - CRIZZA31'\np278\ng26\n(S'Variable_Type'\n(I2\nttRp279\nsS'Y:VBus132 - CVAZZI313'\np280\ng26\n(S'Variable_Type'\n(I2\nttRp281\nsS'Y:PMachine118 - CTOLLA33'\np282\ng26\n(S'Variable_Type'\n(I2\nttRp283\nsS'Y:VBus19 - CCASTI21'\np284\ng26\n(S'Variable_Type'\n(I2\nttRp285\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np286\ng26\n(S'Variable_Type'\n(I2\nttRp287\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np288\ng26\n(S'Variable_Type'\n(I2\nttRp289\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np290\ng26\n(S'Variable_Type'\n(I2\nttRp291\nsS'Y:PMachine53 - CBASTI31'\np292\ng26\n(S'Variable_Type'\n(I2\nttRp293\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np294\ng26\n(S'Variable_Type'\n(I2\nttRp295\nsS'Y:VBus15 - CBONIF22'\np296\ng26\n(S'Variable_Type'\n(I2\nttRp297\nsS'Y:PMachine47 - CVAZZI21'\np298\ng26\n(S'Variable_Type'\n(I2\nttRp299\nsS'Y:VBus123 - CVAZZI34'\np300\ng26\n(S'Variable_Type'\n(I2\nttRp301\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np302\ng26\n(S'Variable_Type'\n(I2\nttRp303\nsS'Y:VBus60 - CCALDA32'\np304\ng26\n(S'Variable_Type'\n(I2\nttRp305\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np306\ng26\n(S'Variable_Type'\n(I2\nttRp307\nsS'Y:VBus65 - CCASAM33'\np308\ng26\n(S'Variable_Type'\n(I2\nttRp309\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np310\ng26\n(S'Variable_Type'\n(I2\nttRp311\nsS'Y:PMachine139 - CLUCCI310'\np312\ng26\n(S'Variable_Type'\n(I2\nttRp313\nsS'Y:VBus112 - CSAMPO31'\np314\ng26\n(S'Variable_Type'\n(I2\nttRp315\nsS'Y:VBus68 - CCASAM36'\np316\ng26\n(S'Variable_Type'\n(I2\nttRp317\nsS'Y:Load 55 - CBIGUG31'\np318\ng26\n(S'Variable_Type'\n(I2\nttRp319\nsS'Y:Max%A'\np320\ng26\n(S'Variable_Type'\n(I2\nttRp321\nsS'Y:NbeTransit_0.9-1'\np322\ng26\n(S'Variable_Type'\n(I2\nttRp323\nsS'Y:VBus24 - CFURIA21'\np324\ng26\n(S'Variable_Type'\n(I2\nttRp325\nsS'Y:VBus23 - CCORTE22'\np326\ng26\n(S'Variable_Type'\n(I2\nttRp327\nsS'Y:VBus18 - CCASAM21'\np328\ng26\n(S'Variable_Type'\n(I2\nttRp329\nsS'Y:VBus40 - CSTMAR21'\np330\ng26\n(S'Variable_Type'\n(I2\nttRp331\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np332\ng26\n(S'Variable_Type'\n(I2\nttRp333\nsS'Y:PMachine124 - CVAZZI35'\np334\ng26\n(S'Variable_Type'\n(I2\nttRp335\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np336\ng26\n(S'Variable_Type'\n(I2\nttRp337\nsS'Y:PMachine117 - CTOLLA32'\np338\ng26\n(S'Variable_Type'\n(I2\nttRp339\nsS'Y:Load 82 - CILERO31'\np340\ng26\n(S'Variable_Type'\n(I2\nttRp341\nsS'Y:VBus33 - COLETT21'\np342\ng26\n(S'Variable_Type'\n(I2\nttRp343\nsS'Y:VBus32 - COCANA21'\np344\ng26\n(S'Variable_Type'\n(I2\nttRp345\nsS'Y:PMachine121 - CVAZZI32'\np346\ng26\n(S'Variable_Type'\n(I2\nttRp347\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np348\ng26\n(S'Variable_Type'\n(I2\nttRp349\nsS'Y:VBus59 - CCALDA31'\np350\ng26\n(S'Variable_Type'\n(I2\nttRp351\nsS'Y:VBus82 - CILERO31'\np352\ng26\n(S'Variable_Type'\n(I2\nttRp353\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np354\ng26\n(S'Variable_Type'\n(I2\nttRp355\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np356\ng26\n(S'Variable_Type'\n(I2\nttRp357\nsS'Y:VBus37 - CRIZZA21'\np358\ng26\n(S'Variable_Type'\n(I2\nttRp359\nsS'Y:PMachine73 - CCASTI32'\np360\ng26\n(S'Variable_Type'\n(I2\nttRp361\nsS'Y:PMachine86 - CLUCCI31'\np362\ng26\n(S'Variable_Type'\n(I2\nttRp363\nsS'Y:Load 53 - CBASTI31'\np364\ng26\n(S'Variable_Type'\n(I2\nttRp365\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np366\ng26\n(S'Variable_Type'\n(I2\nttRp367\nsS'Y:VBus21 - CCORSC21'\np368\ng26\n(S'Variable_Type'\n(I2\nttRp369\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np370\ng26\n(S'Variable_Type'\n(I2\nttRp371\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np372\ng26\n(S'Variable_Type'\n(I2\nttRp373\nsS'Y:PMachine126 - CVAZZI37'\np374\ng26\n(S'Variable_Type'\n(I2\nttRp375\nsS'Y:PMachine64 - CCASAM32'\np376\ng26\n(S'Variable_Type'\n(I2\nttRp377\nsS'Y:VBus67 - CCASAM35'\np378\ng26\n(S'Variable_Type'\n(I2\nttRp379\nsS'Y:VBus53 - CBASTI31'\np380\ng26\n(S'Variable_Type'\n(I2\nttRp381\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np382\ng26\n(S'Variable_Type'\n(I2\nttRp383\nsS'Y:VBus61 - CCALVI31'\np384\ng26\n(S'Variable_Type'\n(I2\nttRp385\nsS'Y:VBus93 - COCANA32'\np386\ng26\n(S'Variable_Type'\n(I2\nttRp387\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np388\ng26\n(S'Variable_Type'\n(I2\nttRp389\nsS'Y:VBus104 - CPROPR31'\np390\ng26\n(S'Variable_Type'\n(I2\nttRp391\nsS'Y:VBus48 - CZSSS621'\np392\ng26\n(S'Variable_Type'\n(I2\nttRp393\nsS'Y:PMachine85 - CLORET32'\np394\ng26\n(S'Variable_Type'\n(I2\nttRp395\nsS'Y:VBus74 - CCERVI31'\np396\ng26\n(S'Variable_Type'\n(I2\nttRp397\nsS'X:ProdPV%Pnom'\np398\ng26\n(S'Variable_Type'\n(I2\nttRp399\nsS'Y:VBus89 - CLUCCI34'\np400\ng26\n(S'Variable_Type'\n(I2\nttRp401\nsS'Y:Load 100 - COLETT31'\np402\ng26\n(S'Variable_Type'\n(I2\nttRp403\nsS'Y:PMachine54 - CBASTI32'\np404\ng26\n(S'Variable_Type'\n(I2\nttRp405\nsS'Y:VBus138 - CLUCCI39'\np406\ng26\n(S'Variable_Type'\n(I2\nttRp407\nsS'Y:VBus39 - CSTLUC21'\np408\ng26\n(S'Variable_Type'\n(I2\nttRp409\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np410\ng26\n(S'Variable_Type'\n(I2\nttRp411\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np412\ng26\n(S'Variable_Type'\n(I2\nttRp413\nsS'Y:Load 78 - CFURIA31'\np414\ng26\n(S'Variable_Type'\n(I2\nttRp415\nsS'Y:VBus28 - CLORET21'\np416\ng26\n(S'Variable_Type'\n(I2\nttRp417\nsS'Y:PMachine105 - CPROPR32'\np418\ng26\n(S'Variable_Type'\n(I2\nttRp419\nsS'Y:VBus96 - COCANA35'\np420\ng26\n(S'Variable_Type'\n(I2\nttRp421\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np422\ng26\n(S'Variable_Type'\n(I2\nttRp423\nsS'Y:PMachine18 - CCASAM21'\np424\ng26\n(S'Variable_Type'\n(I2\nttRp425\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np426\ng26\n(S'Variable_Type'\n(I2\nttRp427\nsS'Y:VBus13 - CBIGUG21'\np428\ng26\n(S'Variable_Type'\n(I2\nttRp429\nsS'Y:VBus92 - COCANA31'\np430\ng26\n(S'Variable_Type'\n(I2\nttRp431\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np432\ng26\n(S'Variable_Type'\n(I2\nttRp433\nsS'Y:Load 57 - CBONIF31'\np434\ng26\n(S'Variable_Type'\n(I2\nttRp435\nsS'Y:VBus58 - CBONIF32'\np436\ng26\n(S'Variable_Type'\n(I2\nttRp437\nsS'Y:VBus84 - CLORET31'\np438\ng26\n(S'Variable_Type'\n(I2\nttRp439\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np440\ng26\n(S'Variable_Type'\n(I2\nttRp441\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np442\ng26\n(S'Variable_Type'\n(I2\nttRp443\nsS'Y:VBus97 - COCANA36'\np444\ng26\n(S'Variable_Type'\n(I2\nttRp445\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np446\ng26\n(S'Variable_Type'\n(I2\nttRp447\nsS'Y:VBus79 - CFURIA32'\np448\ng26\n(S'Variable_Type'\n(I2\nttRp449\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np450\ng26\n(S'Variable_Type'\n(I2\nttRp451\nsS'Y:Load 110 - CSTLUC31'\np452\ng26\n(S'Variable_Type'\n(I2\nttRp453\nsS'Y:VBus80 - CGHISO31'\np454\ng26\n(S'Variable_Type'\n(I2\nttRp455\nsS'Y:PMachine114 - CSOVEN31'\np456\ng26\n(S'Variable_Type'\n(I2\nttRp457\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np458\ng26\n(S'Variable_Type'\n(I2\nttRp459\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np460\ng26\n(S'Variable_Type'\n(I2\nttRp461\nsS'Y:PMachine93 - COCANA32'\np462\ng26\n(S'Variable_Type'\n(I2\nttRp463\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np464\ng26\n(S'Variable_Type'\n(I2\nttRp465\nsS'Y:VBus87 - CLUCCI32'\np466\ng26\n(S'Variable_Type'\n(I2\nttRp467\nsS'Y:VBus62 - CCALVI32'\np468\ng26\n(S'Variable_Type'\n(I2\nttRp469\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np470\ng26\n(S'Variable_Type'\n(I2\nttRp471\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np472\ng26\n(S'Variable_Type'\n(I2\nttRp473\nsS'Y:VBus81 - CGHISO32'\np474\ng26\n(S'Variable_Type'\n(I2\nttRp475\nsS'Y:PMachine63 - CCASAM31'\np476\ng26\n(S'Variable_Type'\n(I2\nttRp477\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np478\ng26\n(S'Variable_Type'\n(I2\nttRp479\nsS'Y:VBus86 - CLUCCI31'\np480\ng26\n(S'Variable_Type'\n(I2\nttRp481\nsS'X:Load(pu)'\np482\ng26\n(S'Variable_Type'\n(I2\nttRp483\nsS'Y:VBus95 - COCANA34'\np484\ng26\n(S'Variable_Type'\n(I2\nttRp485\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np486\ng26\n(S'Variable_Type'\n(I2\nttRp487\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np488\ng26\n(S'Variable_Type'\n(I2\nttRp489\nsS'Y:Load 95 - COCANA34'\np490\ng26\n(S'Variable_Type'\n(I2\nttRp491\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np492\ng26\n(S'Variable_Type'\n(I2\nttRp493\nsS'Y:PMachine90 - CMOROS31'\np494\ng26\n(S'Variable_Type'\n(I2\nttRp495\nsS'Y:Load 101 - CPIETR31'\np496\ng26\n(S'Variable_Type'\n(I2\nttRp497\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np498\ng26\n(S'Variable_Type'\n(I2\nttRp499\nsS'Y:PMachine132 - CVAZZI313'\np500\ng26\n(S'Variable_Type'\n(I2\nttRp501\nsS'Y:VBus125 - CVAZZI36'\np502\ng26\n(S'Variable_Type'\n(I2\nttRp503\nsS'Y:VBus135 - CLUCCI36'\np504\ng26\n(S'Variable_Type'\n(I2\nttRp505\nsS'Y:VBus47 - CVAZZI21'\np506\ng26\n(S'Variable_Type'\n(I2\nttRp507\nsS'Y:VBus94 - COCANA33'\np508\ng26\n(S'Variable_Type'\n(I2\nttRp509\nsS'Y:VBus17 - CCALVI21'\np510\ng26\n(S'Variable_Type'\n(I2\nttRp511\nsS'Y:VBus36 - CPROPR21'\np512\ng26\n(S'Variable_Type'\n(I2\nttRp513\nsS'Y:Load 90 - CMOROS31'\np514\ng26\n(S'Variable_Type'\n(I2\nttRp515\nsS'Y:VBus120 - CVAZZI31'\np516\ng26\n(S'Variable_Type'\n(I2\nttRp517\nsS'Y:VBus52 - CASPRE32'\np518\ng26\n(S'Variable_Type'\n(I2\nttRp519\nsS'Y:VBus25 - CFURIA22'\np520\ng26\n(S'Variable_Type'\n(I2\nttRp521\nsS'Y:Load 76 - CCORTE31'\np522\ng26\n(S'Variable_Type'\n(I2\nttRp523\nsS'Y:PMachine69 - CCASAM37'\np524\ng26\n(S'Variable_Type'\n(I2\nttRp525\nsS'Y:Load 74 - CCERVI31'\np526\ng26\n(S'Variable_Type'\n(I2\nttRp527\nsS'Y:PMachine92 - COCANA31'\np528\ng26\n(S'Variable_Type'\n(I2\nttRp529\nsS'Y:PMachine102 - CPORTO31'\np530\ng26\n(S'Variable_Type'\n(I2\nttRp531\nsS'Y:PMachine122 - CVAZZI33'\np532\ng26\n(S'Variable_Type'\n(I2\nttRp533\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np534\ng26\n(S'Variable_Type'\n(I2\nttRp535\nsS'Y:PMachine77 - CCORTE32'\np536\ng26\n(S'Variable_Type'\n(I2\nttRp537\nsS'Y:NbeTension'\np538\ng26\n(S'Variable_Type'\n(I2\nttRp539\nsS'Y:VBus126 - CVAZZI37'\np540\ng26\n(S'Variable_Type'\n(I2\nttRp541\nsS'Y:PMachine60 - CCALDA32'\np542\ng26\n(S'Variable_Type'\n(I2\nttRp543\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np544\ng26\n(S'Variable_Type'\n(I2\nttRp545\nsS'Y:VBus20 - CCERVI21'\np546\ng26\n(S'Variable_Type'\n(I2\nttRp547\nsS'Y:VBus119 - CTRAVO31'\np548\ng26\n(S'Variable_Type'\n(I2\nttRp549\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np550\ng26\n(S'Variable_Type'\n(I2\nttRp551\nsS'Y:VBus139 - CLUCCI310'\np552\ng26\n(S'Variable_Type'\n(I2\nttRp553\nsS'Y:VBus106 - CRIZZA31'\np554\ng26\n(S'Variable_Type'\n(I2\nttRp555\nsS'Y:PMachine66 - CCASAM34'\np556\ng26\n(S'Variable_Type'\n(I2\nttRp557\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np558\ng26\n(S'Variable_Type'\n(I2\nttRp559\nsS'Y:VBus136 - CLUCCI37'\np560\ng26\n(S'Variable_Type'\n(I2\nttRp561\nsS'Y:VBus90 - CMOROS31'\np562\ng26\n(S'Variable_Type'\n(I2\nttRp563\nsS'X:lineOff#'\np564\ng26\n(S'Variable_Type'\n(I2\nttRp565\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np566\ng26\n(S'Variable_Type'\n(I2\nttRp567\nsS'Y:VBus108 - CSAGON31'\np568\ng26\n(S'Variable_Type'\n(I2\nttRp569\nsS'Y:VBus137 - CLUCCI38'\np570\ng26\n(S'Variable_Type'\n(I2\nttRp571\nsS'Y:VBus130 - CVAZZI311'\np572\ng26\n(S'Variable_Type'\n(I2\nttRp573\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np574\ng26\n(S'Variable_Type'\n(I2\nttRp575\nsS'Y:VBus46 - CTRAVO21'\np576\ng26\n(S'Variable_Type'\n(I2\nttRp577\nsS'Y:VBus113 - CSAMPO32'\np578\ng26\n(S'Variable_Type'\n(I2\nttRp579\nsS'Y:PMachine133 - CVAZZI314'\np580\ng26\n(S'Variable_Type'\n(I2\nttRp581\nsS'Y:PMachine65 - CCASAM33'\np582\ng26\n(S'Variable_Type'\n(I2\nttRp583\nsS'Y:VBus78 - CFURIA31'\np584\ng26\n(S'Variable_Type'\n(I2\nttRp585\nsS'Y:VBus26 - CGHISO21'\np586\ng26\n(S'Variable_Type'\n(I2\nttRp587\nsS'Y:VBus121 - CVAZZI32'\np588\ng26\n(S'Variable_Type'\n(I2\nttRp589\nsS'Y:PMachine81 - CGHISO32'\np590\ng26\n(S'Variable_Type'\n(I2\nttRp591\nsS'Y:PMachine97 - COCANA36'\np592\ng26\n(S'Variable_Type'\n(I2\nttRp593\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np594\ng26\n(S'Variable_Type'\n(I2\nttRp595\nsS'Y:PMachine83 - CILERO32'\np596\ng26\n(S'Variable_Type'\n(I2\nttRp597\nsS'Y:VBus83 - CILERO32'\np598\ng26\n(S'Variable_Type'\n(I2\nttRp599\nsS'Y:VBus66 - CCASAM34'\np600\ng26\n(S'Variable_Type'\n(I2\nttRp601\nsS'Y:PMachine1 - CBONIF11'\np602\ng26\n(S'Variable_Type'\n(I2\nttRp603\nsS'Y:VBus111 - CSTMAR31'\np604\ng26\n(S'Variable_Type'\n(I2\nttRp605\nsS'Y:VBus124 - CVAZZI35'\np606\ng26\n(S'Variable_Type'\n(I2\nttRp607\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np608\ng26\n(S'Variable_Type'\n(I2\nttRp609\nsS'Y:PMachine131 - CVAZZI312'\np610\ng26\n(S'Variable_Type'\n(I2\nttRp611\nsS'Y:VBus44 - CTAGLI21'\np612\ng26\n(S'Variable_Type'\n(I2\nttRp613\nsS'Y:VBus88 - CLUCCI33'\np614\ng26\n(S'Variable_Type'\n(I2\nttRp615\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np616\ng26\n(S'Variable_Type'\n(I2\nttRp617\nsS'Y:VBus38 - CSAGON21'\np618\ng26\n(S'Variable_Type'\n(I2\nttRp619\nsS'Y:VBus29 - CLUCCI21'\np620\ng26\n(S'Variable_Type'\n(I2\nttRp621\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np622\ng26\n(S'Variable_Type'\n(I2\nttRp623\nsS'Y:VBus110 - CSTLUC31'\np624\ng26\n(S'Variable_Type'\n(I2\nttRp625\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np626\ng26\n(S'Variable_Type'\n(I2\nttRp627\nssS'metas'\np628\n(dp629\nsS'values'\np630\n(dp631\nS'attribute'\np632\n(S'Y:NbeTransit_0.9-1'\np633\ng323\ntp634\nsS'yaxisTitle'\np635\n(S'frequency'\np636\nI0\ntp637\nsS'xaxisTitle'\np638\n(g633\ng323\ntp639\nsS'mainTitle'\np640\n(S''\nI0\ntp641\nsS'yPaxisTitle'\np642\n(S''\nI0\ntp643\nsS'targetValue'\np644\n(NI-2\ntp645\nsS'visibleOutcomes'\np646\n((lI-2\ntp647\nssS'time'\np648\nF1370016690.9660001\nsba(iOWContexts\nContext\np649\n(dp650\ng630\n(dp651\nS'attribute'\np652\n(S'XProdEolienne%Pnom'\np653\ng26\n(S'Variable_Type'\n(I2\nttRp654\ntp655\nsS'yaxisTitle'\np656\n(g636\nI0\ntp657\nsS'xaxisTitle'\np658\n(g653\ng654\ntp659\nsS'mainTitle'\np660\n(S''\nI0\ntp661\nsS'yPaxisTitle'\np662\n(S''\nI0\ntp663\nsS'targetValue'\np664\n(NI-2\ntp665\nsS'visibleOutcomes'\np666\n((lI-2\ntp667\nssg23\n(dp668\nS'Y:PMachine134 - CLUCCI35'\np669\ng26\n(S'Variable_Type'\n(I2\nttRp670\nsS'Y:VBus77 - CCORTE32'\np671\ng26\n(S'Variable_Type'\n(I2\nttRp672\nsS'Y:VBus134 - CLUCCI35'\np673\ng26\n(S'Variable_Type'\n(I2\nttRp674\nsS'Y:VBus109 - CSAGON32'\np675\ng26\n(S'Variable_Type'\n(I2\nttRp676\nsS'Y:VBus102 - CPORTO31'\np677\ng26\n(S'Variable_Type'\n(I2\nttRp678\nsS'Y:VBus18 - CCASAM21'\np679\ng26\n(S'Variable_Type'\n(I2\nttRp680\nsS'Y:VBus114 - CSOVEN31'\np681\ng26\n(S'Variable_Type'\n(I2\nttRp682\nsS'Y:VBus83 - CILERO32'\np683\ng26\n(S'Variable_Type'\n(I2\nttRp684\nsS'Y:VBus117 - CTOLLA32'\np685\ng26\n(S'Variable_Type'\n(I2\nttRp686\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np687\ng26\n(S'Variable_Type'\n(I2\nttRp688\nsS'Y:PMachine87 - CLUCCI32'\np689\ng26\n(S'Variable_Type'\n(I2\nttRp690\nsS'Y:PMachine113 - CSAMPO32'\np691\ng26\n(S'Variable_Type'\n(I2\nttRp692\nsS'Y:Load 84 - CLORET31'\np693\ng26\n(S'Variable_Type'\n(I2\nttRp694\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np695\ng26\n(S'Variable_Type'\n(I2\nttRp696\nsS'Y:Load 80 - CGHISO31'\np697\ng26\n(S'Variable_Type'\n(I2\nttRp698\nsS'Y:PMachine125 - CVAZZI36'\np699\ng26\n(S'Variable_Type'\n(I2\nttRp700\nsS'Y:VBus116 - CTOLLA31'\np701\ng26\n(S'Variable_Type'\n(I2\nttRp702\nsS'Y:PMachine88 - CLUCCI33'\np703\ng26\n(S'Variable_Type'\n(I2\nttRp704\nsS'Y:PMachine124 - CVAZZI35'\np705\ng26\n(S'Variable_Type'\n(I2\nttRp706\nsS'Y:PMachine111 - CSTMAR31'\np707\ng26\n(S'Variable_Type'\n(I2\nttRp708\nsS'Y:NbeTransit'\np709\ng26\n(S'Variable_Type'\n(I2\nttRp710\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np711\ng26\n(S'Variable_Type'\n(I2\nttRp712\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np713\ng26\n(S'Variable_Type'\n(I2\nttRp714\nsS'Y:PMachine130 - CVAZZI311'\np715\ng26\n(S'Variable_Type'\n(I2\nttRp716\nsS'Y:PMachine127 - CVAZZI38'\np717\ng26\n(S'Variable_Type'\n(I2\nttRp718\nsS'Y:VBus131 - CVAZZI312'\np719\ng26\n(S'Variable_Type'\n(I2\nttRp720\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np721\ng26\n(S'Variable_Type'\n(I2\nttRp722\nsS'Y:PMachine123 - CVAZZI34'\np723\ng26\n(S'Variable_Type'\n(I2\nttRp724\nsS'Y:VBus118 - CTOLLA33'\np725\ng26\n(S'Variable_Type'\n(I2\nttRp726\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np727\ng26\n(S'Variable_Type'\n(I2\nttRp728\nsS'Y:PMachine58 - CBONIF32'\np729\ng26\n(S'Variable_Type'\n(I2\nttRp730\nsS'Y:VBus90 - CMOROS31'\np731\ng26\n(S'Variable_Type'\n(I2\nttRp732\nsS'Y:Load 104 - CPROPR31'\np733\ng26\n(S'Variable_Type'\n(I2\nttRp734\nsS'Y:PMachine30 - CLUCCI22'\np735\ng26\n(S'Variable_Type'\n(I2\nttRp736\nsS'Y:VBus100 - COLETT31'\np737\ng26\n(S'Variable_Type'\n(I2\nttRp738\nsS'Y:PProdTot'\np739\ng26\n(S'Variable_Type'\n(I2\nttRp740\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np741\ng26\n(S'Variable_Type'\n(I2\nttRp742\nsS'Y:VBus57 - CBONIF31'\np743\ng26\n(S'Variable_Type'\n(I2\nttRp744\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np745\ng26\n(S'Variable_Type'\n(I2\nttRp746\nsS'Y:PMachine131 - CVAZZI312'\np747\ng26\n(S'Variable_Type'\n(I2\nttRp748\nsS'Y:PMachine109 - CSAGON32'\np749\ng26\n(S'Variable_Type'\n(I2\nttRp750\nsS'Y:PMachine135 - CLUCCI36'\np751\ng26\n(S'Variable_Type'\n(I2\nttRp752\nsS'Y:VBus30 - CLUCCI22'\np753\ng26\n(S'Variable_Type'\n(I2\nttRp754\nsS'Y:VBus122 - CVAZZI33'\np755\ng26\n(S'Variable_Type'\n(I2\nttRp756\nsS'Y:VBus22 - CCORTE21'\np757\ng26\n(S'Variable_Type'\n(I2\nttRp758\nsS'Y:PMachine89 - CLUCCI34'\np759\ng26\n(S'Variable_Type'\n(I2\nttRp760\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np761\ng26\n(S'Variable_Type'\n(I2\nttRp762\nsS'Y:PMachine107 - CRIZZA32'\np763\ng26\n(S'Variable_Type'\n(I2\nttRp764\nsS'Y:VBus16 - CCALDA21'\np765\ng26\n(S'Variable_Type'\n(I2\nttRp766\nsS'Y:Load 102 - CPORTO31'\np767\ng26\n(S'Variable_Type'\n(I2\nttRp768\nsS'Y:VBus107 - CRIZZA32'\np769\ng26\n(S'Variable_Type'\n(I2\nttRp770\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np771\ng26\n(S'Variable_Type'\n(I2\nttRp772\nsS'Y:VBus41 - CSAMPO21'\np773\ng26\n(S'Variable_Type'\n(I2\nttRp774\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np775\ng26\n(S'Variable_Type'\n(I2\nttRp776\nsS'Y:VBus34 - CPIETR21'\np777\ng26\n(S'Variable_Type'\n(I2\nttRp778\nsS'Y:Load 108 - CSAGON31'\np779\ng26\n(S'Variable_Type'\n(I2\nttRp780\nsS'Y:VBus56 - CBIGUG32'\np781\ng26\n(S'Variable_Type'\n(I2\nttRp782\nsS'Y:PMachine42 - CSISCO21'\np783\ng26\n(S'Variable_Type'\n(I2\nttRp784\nsS'Y:PMachine138 - CLUCCI39'\np785\ng26\n(S'Variable_Type'\n(I2\nttRp786\nsS'Y:PMachine112 - CSAMPO31'\np787\ng26\n(S'Variable_Type'\n(I2\nttRp788\nsS'Y:VBus105 - CPROPR32'\np789\ng26\n(S'Variable_Type'\n(I2\nttRp790\nsS'Y:VBus1 - CBONIF11'\np791\ng26\n(S'Variable_Type'\n(I2\nttRp792\nsS'Y:VBus12 - CBASTI21'\np793\ng26\n(S'Variable_Type'\n(I2\nttRp794\nsS'Y:PMachine129 - CVAZZI310'\np795\ng26\n(S'Variable_Type'\n(I2\nttRp796\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np797\ng26\n(S'Variable_Type'\n(I2\nttRp798\nsS'Y:VBus35 - CPORTO21'\np799\ng26\n(S'Variable_Type'\n(I2\nttRp800\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np801\ng26\n(S'Variable_Type'\n(I2\nttRp802\nsS'Y:VBus54 - CBASTI32'\np803\ng26\n(S'Variable_Type'\n(I2\nttRp804\nsS'Y:VBus69 - CCASAM37'\np805\ng26\n(S'Variable_Type'\n(I2\nttRp806\nsS'Y:VBus45 - CTOLLA21'\np807\ng26\n(S'Variable_Type'\n(I2\nttRp808\nsS'Y:PMachine115 - CTAGLI31'\np809\ng26\n(S'Variable_Type'\n(I2\nttRp810\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np811\ng26\n(S'Variable_Type'\n(I2\nttRp812\nsS'Y:VBus43 - CSOVEN21'\np813\ng26\n(S'Variable_Type'\n(I2\nttRp814\nsS'Y:VBus76 - CCORTE31'\np815\ng26\n(S'Variable_Type'\n(I2\nttRp816\nsS'Y:VBus75 - CCORSC31'\np817\ng26\n(S'Variable_Type'\n(I2\nttRp818\nsS'Y:PMachine78 - CFURIA31'\np819\ng26\n(S'Variable_Type'\n(I2\nttRp820\nsS'Y:VBus127 - CVAZZI38'\np821\ng26\n(S'Variable_Type'\n(I2\nttRp822\nsS'Y:VBus115 - CTAGLI31'\np823\ng26\n(S'Variable_Type'\n(I2\nttRp824\nsS'Y:Load 61 - CCALVI31'\np825\ng26\n(S'Variable_Type'\n(I2\nttRp826\nsS'Y:VBus55 - CBIGUG31'\np827\ng26\n(S'Variable_Type'\n(I2\nttRp828\nsS'Y:Load 42 - CSISCO21'\np829\ng26\n(S'Variable_Type'\n(I2\nttRp830\nsS'Y:VBus72 - CCASTI31'\np831\ng26\n(S'Variable_Type'\n(I2\nttRp832\nsS'Y:Load 37 - CRIZZA21'\np833\ng26\n(S'Variable_Type'\n(I2\nttRp834\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np835\ng26\n(S'Variable_Type'\n(I2\nttRp836\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np837\ng26\n(S'Variable_Type'\n(I2\nttRp838\nsS'Y:PMachine137 - CLUCCI38'\np839\ng26\n(S'Variable_Type'\n(I2\nttRp840\nsS'Y:PMachine67 - CCASAM35'\np841\ng26\n(S'Variable_Type'\n(I2\nttRp842\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np843\ng26\n(S'Variable_Type'\n(I2\nttRp844\nsS'Y:VBus31 - CMOROS21'\np845\ng26\n(S'Variable_Type'\n(I2\nttRp846\nsS'Y:VBus103 - CPORTO32'\np847\ng26\n(S'Variable_Type'\n(I2\nttRp848\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np849\ng26\n(S'Variable_Type'\n(I2\nttRp850\nsS'Y:PMachine14 - CBONIF21'\np851\ng26\n(S'Variable_Type'\n(I2\nttRp852\nsS'Y:PMachine72 - CCASTI31'\np853\ng26\n(S'Variable_Type'\n(I2\nttRp854\nsS'Y:VBus27 - CILERO21'\np855\ng26\n(S'Variable_Type'\n(I2\nttRp856\nsS'Y:PMachine75 - CCORSC31'\np857\ng26\n(S'Variable_Type'\n(I2\nttRp858\nsS'Y:Load 51 - CASPRE31'\np859\ng26\n(S'Variable_Type'\n(I2\nttRp860\nsS'Y:VBus51 - CASPRE31'\np861\ng26\n(S'Variable_Type'\n(I2\nttRp862\nsS'Y:PMachine94 - COCANA33'\np863\ng26\n(S'Variable_Type'\n(I2\nttRp864\nsS'Y:PMachine126 - CVAZZI37'\np865\ng26\n(S'Variable_Type'\n(I2\nttRp866\nsS'Y:Load 86 - CLUCCI31'\np867\ng26\n(S'Variable_Type'\n(I2\nttRp868\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np869\ng26\n(S'Variable_Type'\n(I2\nttRp870\nsS'Y:PMachine104 - CPROPR31'\np871\ng26\n(S'Variable_Type'\n(I2\nttRp872\nsS'Y:VBus128 - CVAZZI39'\np873\ng26\n(S'Variable_Type'\n(I2\nttRp874\nsS'Y:PMachine136 - CLUCCI37'\np875\ng26\n(S'Variable_Type'\n(I2\nttRp876\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np877\ng26\n(S'Variable_Type'\n(I2\nttRp878\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np879\ng26\n(S'Variable_Type'\n(I2\nttRp880\nsS'Y:PMachine29 - CLUCCI21'\np881\ng26\n(S'Variable_Type'\n(I2\nttRp882\nsS'Y:VBus42 - CSISCO21'\np883\ng26\n(S'Variable_Type'\n(I2\nttRp884\nsS'Y:Load 110 - CSTLUC31'\np885\ng26\n(S'Variable_Type'\n(I2\nttRp886\nsS'Y:VBus14 - CBONIF21'\np887\ng26\n(S'Variable_Type'\n(I2\nttRp888\nsS'Y:VBus73 - CCASTI32'\np889\ng26\n(S'Variable_Type'\n(I2\nttRp890\nsS'Y:VBus64 - CCASAM32'\np891\ng26\n(S'Variable_Type'\n(I2\nttRp892\nsS'Y:PMachine128 - CVAZZI39'\np893\ng26\n(S'Variable_Type'\n(I2\nttRp894\nsS'Y:VBus133 - CVAZZI314'\np895\ng26\n(S'Variable_Type'\n(I2\nttRp896\nsS'Y:VBus63 - CCASAM31'\np897\ng26\n(S'Variable_Type'\n(I2\nttRp898\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np899\ng26\n(S'Variable_Type'\n(I2\nttRp900\nsS'Y:%Losses'\np901\ng26\n(S'Variable_Type'\n(I2\nttRp902\nsS'Y:VBus85 - CLORET32'\np903\ng26\n(S'Variable_Type'\n(I2\nttRp904\nsS'Y:Load 59 - CCALDA31'\np905\ng26\n(S'Variable_Type'\n(I2\nttRp906\nsS'Y:VBus129 - CVAZZI310'\np907\ng26\n(S'Variable_Type'\n(I2\nttRp908\nsS'Y:VBus101 - CPIETR31'\np909\ng26\n(S'Variable_Type'\n(I2\nttRp910\nsS'Y:PMachine106 - CRIZZA31'\np911\ng26\n(S'Variable_Type'\n(I2\nttRp912\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np913\ng26\n(S'Variable_Type'\n(I2\nttRp914\nsS'Y:PMachine118 - CTOLLA33'\np915\ng26\n(S'Variable_Type'\n(I2\nttRp916\nsS'Y:VBus19 - CCASTI21'\np917\ng26\n(S'Variable_Type'\n(I2\nttRp918\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np919\ng26\n(S'Variable_Type'\n(I2\nttRp920\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np921\ng26\n(S'Variable_Type'\n(I2\nttRp922\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np923\ng26\n(S'Variable_Type'\n(I2\nttRp924\nsS'Y:Load 115 - CTAGLI31'\np925\ng26\n(S'Variable_Type'\n(I2\nttRp926\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np927\ng26\n(S'Variable_Type'\n(I2\nttRp928\nsS'Y:VBus15 - CBONIF22'\np929\ng26\n(S'Variable_Type'\n(I2\nttRp930\nsS'Y:PMachine47 - CVAZZI21'\np931\ng26\n(S'Variable_Type'\n(I2\nttRp932\nsS'Y:VBus123 - CVAZZI34'\np933\ng26\n(S'Variable_Type'\n(I2\nttRp934\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np935\ng26\n(S'Variable_Type'\n(I2\nttRp936\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np937\ng26\n(S'Variable_Type'\n(I2\nttRp938\nsS'Y:VBus44 - CTAGLI21'\np939\ng26\n(S'Variable_Type'\n(I2\nttRp940\nsS'Y:VBus65 - CCASAM33'\np941\ng26\n(S'Variable_Type'\n(I2\nttRp942\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np943\ng26\n(S'Variable_Type'\n(I2\nttRp944\nsS'Y:PMachine139 - CLUCCI310'\np945\ng26\n(S'Variable_Type'\n(I2\nttRp946\nsS'Y:VBus112 - CSAMPO31'\np947\ng26\n(S'Variable_Type'\n(I2\nttRp948\nsS'Y:VBus68 - CCASAM36'\np949\ng26\n(S'Variable_Type'\n(I2\nttRp950\nsS'Y:Load 55 - CBIGUG31'\np951\ng26\n(S'Variable_Type'\n(I2\nttRp952\nsS'Y:PMachine53 - CBASTI31'\np953\ng26\n(S'Variable_Type'\n(I2\nttRp954\nsS'Y:NbeTransit_0.9-1'\np955\ng26\n(S'Variable_Type'\n(I2\nttRp956\nsS'Y:VBus24 - CFURIA21'\np957\ng26\n(S'Variable_Type'\n(I2\nttRp958\nsS'Y:VBus23 - CCORTE22'\np959\ng26\n(S'Variable_Type'\n(I2\nttRp960\nsS'XProdEolienne%Pnom'\np961\ng654\nsS'Y:VBus40 - CSTMAR21'\np962\ng26\n(S'Variable_Type'\n(I2\nttRp963\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np964\ng26\n(S'Variable_Type'\n(I2\nttRp965\nsS'Y:PMachine120 - CVAZZI31'\np966\ng26\n(S'Variable_Type'\n(I2\nttRp967\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np968\ng26\n(S'Variable_Type'\n(I2\nttRp969\nsS'Y:PMachine117 - CTOLLA32'\np970\ng26\n(S'Variable_Type'\n(I2\nttRp971\nsS'Y:VBus89 - CLUCCI34'\np972\ng26\n(S'Variable_Type'\n(I2\nttRp973\nsS'Y:VBus33 - COLETT21'\np974\ng26\n(S'Variable_Type'\n(I2\nttRp975\nsS'Y:VBus32 - COCANA21'\np976\ng26\n(S'Variable_Type'\n(I2\nttRp977\nsS'Y:PMachine121 - CVAZZI32'\np978\ng26\n(S'Variable_Type'\n(I2\nttRp979\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np980\ng26\n(S'Variable_Type'\n(I2\nttRp981\nsS'Y:VBus59 - CCALDA31'\np982\ng26\n(S'Variable_Type'\n(I2\nttRp983\nsS'Y:VBus82 - CILERO31'\np984\ng26\n(S'Variable_Type'\n(I2\nttRp985\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np986\ng26\n(S'Variable_Type'\n(I2\nttRp987\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np988\ng26\n(S'Variable_Type'\n(I2\nttRp989\nsS'Y:VBus37 - CRIZZA21'\np990\ng26\n(S'Variable_Type'\n(I2\nttRp991\nsS'Y:PMachine73 - CCASTI32'\np992\ng26\n(S'Variable_Type'\n(I2\nttRp993\nsS'Y:PMachine86 - CLUCCI31'\np994\ng26\n(S'Variable_Type'\n(I2\nttRp995\nsS'Y:Load 53 - CBASTI31'\np996\ng26\n(S'Variable_Type'\n(I2\nttRp997\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np998\ng26\n(S'Variable_Type'\n(I2\nttRp999\nsS'Y:VBus21 - CCORSC21'\np1000\ng26\n(S'Variable_Type'\n(I2\nttRp1001\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np1002\ng26\n(S'Variable_Type'\n(I2\nttRp1003\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np1004\ng26\n(S'Variable_Type'\n(I2\nttRp1005\nsS'Y:Load 82 - CILERO31'\np1006\ng26\n(S'Variable_Type'\n(I2\nttRp1007\nsS'Y:PMachine64 - CCASAM32'\np1008\ng26\n(S'Variable_Type'\n(I2\nttRp1009\nsS'Y:VBus67 - CCASAM35'\np1010\ng26\n(S'Variable_Type'\n(I2\nttRp1011\nsS'Y:VBus53 - CBASTI31'\np1012\ng26\n(S'Variable_Type'\n(I2\nttRp1013\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np1014\ng26\n(S'Variable_Type'\n(I2\nttRp1015\nsS'Y:VBus61 - CCALVI31'\np1016\ng26\n(S'Variable_Type'\n(I2\nttRp1017\nsS'Y:VBus93 - COCANA32'\np1018\ng26\n(S'Variable_Type'\n(I2\nttRp1019\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np1020\ng26\n(S'Variable_Type'\n(I2\nttRp1021\nsS'Y:PMachine92 - COCANA31'\np1022\ng26\n(S'Variable_Type'\n(I2\nttRp1023\nsS'Y:VBus104 - CPROPR31'\np1024\ng26\n(S'Variable_Type'\n(I2\nttRp1025\nsS'Y:VBus48 - CZSSS621'\np1026\ng26\n(S'Variable_Type'\n(I2\nttRp1027\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np1028\ng26\n(S'Variable_Type'\n(I2\nttRp1029\nsS'Y:VBus74 - CCERVI31'\np1030\ng26\n(S'Variable_Type'\n(I2\nttRp1031\nsS'Y:VBus36 - CPROPR21'\np1032\ng26\n(S'Variable_Type'\n(I2\nttRp1033\nsS'Y:Load 100 - COLETT31'\np1034\ng26\n(S'Variable_Type'\n(I2\nttRp1035\nsS'Y:PMachine54 - CBASTI32'\np1036\ng26\n(S'Variable_Type'\n(I2\nttRp1037\nsS'Y:VBus138 - CLUCCI39'\np1038\ng26\n(S'Variable_Type'\n(I2\nttRp1039\nsS'Y:VBus39 - CSTLUC21'\np1040\ng26\n(S'Variable_Type'\n(I2\nttRp1041\nsS'Y:PMachine74 - CCERVI31'\np1042\ng26\n(S'Variable_Type'\n(I2\nttRp1043\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np1044\ng26\n(S'Variable_Type'\n(I2\nttRp1045\nsS'Y:Load 78 - CFURIA31'\np1046\ng26\n(S'Variable_Type'\n(I2\nttRp1047\nsS'Y:VBus28 - CLORET21'\np1048\ng26\n(S'Variable_Type'\n(I2\nttRp1049\nsS'Y:PMachine105 - CPROPR32'\np1050\ng26\n(S'Variable_Type'\n(I2\nttRp1051\nsS'Y:VBus96 - COCANA35'\np1052\ng26\n(S'Variable_Type'\n(I2\nttRp1053\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np1054\ng26\n(S'Variable_Type'\n(I2\nttRp1055\nsS'Y:PMachine18 - CCASAM21'\np1056\ng26\n(S'Variable_Type'\n(I2\nttRp1057\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np1058\ng26\n(S'Variable_Type'\n(I2\nttRp1059\nsS'Y:VBus13 - CBIGUG21'\np1060\ng26\n(S'Variable_Type'\n(I2\nttRp1061\nsS'Y:VBus92 - COCANA31'\np1062\ng26\n(S'Variable_Type'\n(I2\nttRp1063\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np1064\ng26\n(S'Variable_Type'\n(I2\nttRp1065\nsS'Y:Load 76 - CCORTE31'\np1066\ng26\n(S'Variable_Type'\n(I2\nttRp1067\nsS'Y:VBus58 - CBONIF32'\np1068\ng26\n(S'Variable_Type'\n(I2\nttRp1069\nsS'Y:VBus84 - CLORET31'\np1070\ng26\n(S'Variable_Type'\n(I2\nttRp1071\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np1072\ng26\n(S'Variable_Type'\n(I2\nttRp1073\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np1074\ng26\n(S'Variable_Type'\n(I2\nttRp1075\nsS'Y:VBus97 - COCANA36'\np1076\ng26\n(S'Variable_Type'\n(I2\nttRp1077\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np1078\ng26\n(S'Variable_Type'\n(I2\nttRp1079\nsS'Y:VBus106 - CRIZZA31'\np1080\ng26\n(S'Variable_Type'\n(I2\nttRp1081\nsS'Y:VBus79 - CFURIA32'\np1082\ng26\n(S'Variable_Type'\n(I2\nttRp1083\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np1084\ng26\n(S'Variable_Type'\n(I2\nttRp1085\nsS'Y:VBus80 - CGHISO31'\np1086\ng26\n(S'Variable_Type'\n(I2\nttRp1087\nsS'Y:PMachine114 - CSOVEN31'\np1088\ng26\n(S'Variable_Type'\n(I2\nttRp1089\nsS'Y:VBus132 - CVAZZI313'\np1090\ng26\n(S'Variable_Type'\n(I2\nttRp1091\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np1092\ng26\n(S'Variable_Type'\n(I2\nttRp1093\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np1094\ng26\n(S'Variable_Type'\n(I2\nttRp1095\nsS'Y:VBus87 - CLUCCI32'\np1096\ng26\n(S'Variable_Type'\n(I2\nttRp1097\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np1098\ng26\n(S'Variable_Type'\n(I2\nttRp1099\nsS'Y:VBus88 - CLUCCI33'\np1100\ng26\n(S'Variable_Type'\n(I2\nttRp1101\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np1102\ng26\n(S'Variable_Type'\n(I2\nttRp1103\nsS'Y:PMachine85 - CLORET32'\np1104\ng26\n(S'Variable_Type'\n(I2\nttRp1105\nsS'Y:VBus81 - CGHISO32'\np1106\ng26\n(S'Variable_Type'\n(I2\nttRp1107\nsS'Y:PMachine63 - CCASAM31'\np1108\ng26\n(S'Variable_Type'\n(I2\nttRp1109\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np1110\ng26\n(S'Variable_Type'\n(I2\nttRp1111\nsS'X:Load(pu)'\np1112\ng26\n(S'Variable_Type'\n(I2\nttRp1113\nsS'Y:NbeTension'\np1114\ng26\n(S'Variable_Type'\n(I2\nttRp1115\nsS'Y:VBus95 - COCANA34'\np1116\ng26\n(S'Variable_Type'\n(I2\nttRp1117\nsS'Y:VBus62 - CCALVI32'\np1118\ng26\n(S'Variable_Type'\n(I2\nttRp1119\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np1120\ng26\n(S'Variable_Type'\n(I2\nttRp1121\nsS'Y:Load 95 - COCANA34'\np1122\ng26\n(S'Variable_Type'\n(I2\nttRp1123\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np1124\ng26\n(S'Variable_Type'\n(I2\nttRp1125\nsS'Y:PMachine90 - CMOROS31'\np1126\ng26\n(S'Variable_Type'\n(I2\nttRp1127\nsS'Y:Load 101 - CPIETR31'\np1128\ng26\n(S'Variable_Type'\n(I2\nttRp1129\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np1130\ng26\n(S'Variable_Type'\n(I2\nttRp1131\nsS'Y:PMachine132 - CVAZZI313'\np1132\ng26\n(S'Variable_Type'\n(I2\nttRp1133\nsS'Y:PMachine65 - CCASAM33'\np1134\ng26\n(S'Variable_Type'\n(I2\nttRp1135\nsS'Y:VBus125 - CVAZZI36'\np1136\ng26\n(S'Variable_Type'\n(I2\nttRp1137\nsS'Y:VBus135 - CLUCCI36'\np1138\ng26\n(S'Variable_Type'\n(I2\nttRp1139\nsS'Y:VBus47 - CVAZZI21'\np1140\ng26\n(S'Variable_Type'\n(I2\nttRp1141\nsS'Y:VBus94 - COCANA33'\np1142\ng26\n(S'Variable_Type'\n(I2\nttRp1143\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np1144\ng26\n(S'Variable_Type'\n(I2\nttRp1145\nsS'Y:VBus17 - CCALVI21'\np1146\ng26\n(S'Variable_Type'\n(I2\nttRp1147\nsS'Y:Load 90 - CMOROS31'\np1148\ng26\n(S'Variable_Type'\n(I2\nttRp1149\nsS'Y:VBus120 - CVAZZI31'\np1150\ng26\n(S'Variable_Type'\n(I2\nttRp1151\nsS'Y:VBus52 - CASPRE32'\np1152\ng26\n(S'Variable_Type'\n(I2\nttRp1153\nsS'Y:VBus25 - CFURIA22'\np1154\ng26\n(S'Variable_Type'\n(I2\nttRp1155\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np1156\ng26\n(S'Variable_Type'\n(I2\nttRp1157\nsS'Y:PMachine69 - CCASAM37'\np1158\ng26\n(S'Variable_Type'\n(I2\nttRp1159\nsS'Y:PConsoTot'\np1160\ng26\n(S'Variable_Type'\n(I2\nttRp1161\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np1162\ng26\n(S'Variable_Type'\n(I2\nttRp1163\nsS'Y:PMachine102 - CPORTO31'\np1164\ng26\n(S'Variable_Type'\n(I2\nttRp1165\nsS'Y:VBus136 - CLUCCI37'\np1166\ng26\n(S'Variable_Type'\n(I2\nttRp1167\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np1168\ng26\n(S'Variable_Type'\n(I2\nttRp1169\nsS'Y:PMachine122 - CVAZZI33'\np1170\ng26\n(S'Variable_Type'\n(I2\nttRp1171\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np1172\ng26\n(S'Variable_Type'\n(I2\nttRp1173\nsS'Y:PMachine77 - CCORTE32'\np1174\ng26\n(S'Variable_Type'\n(I2\nttRp1175\nsS'Y:PMachine116 - CTOLLA31'\np1176\ng26\n(S'Variable_Type'\n(I2\nttRp1177\nsS'Y:VBus126 - CVAZZI37'\np1178\ng26\n(S'Variable_Type'\n(I2\nttRp1179\nsS'Y:PMachine60 - CCALDA32'\np1180\ng26\n(S'Variable_Type'\n(I2\nttRp1181\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np1182\ng26\n(S'Variable_Type'\n(I2\nttRp1183\nsS'Y:VBus20 - CCERVI21'\np1184\ng26\n(S'Variable_Type'\n(I2\nttRp1185\nsS'Y:VBus119 - CTRAVO31'\np1186\ng26\n(S'Variable_Type'\n(I2\nttRp1187\nsS'Y:VBus11 - CASPRE21'\np1188\ng26\n(S'Variable_Type'\n(I2\nttRp1189\nsS'Y:VBus139 - CLUCCI310'\np1190\ng26\n(S'Variable_Type'\n(I2\nttRp1191\nsS'Y:VBus60 - CCALDA32'\np1192\ng26\n(S'Variable_Type'\n(I2\nttRp1193\nsS'Y:PMachine66 - CCASAM34'\np1194\ng26\n(S'Variable_Type'\n(I2\nttRp1195\nsS'Y:PMachine101 - CPIETR31'\np1196\ng26\n(S'Variable_Type'\n(I2\nttRp1197\nsS'Y:PMachine133 - CVAZZI314'\np1198\ng26\n(S'Variable_Type'\n(I2\nttRp1199\nsS'Y:PMachine62 - CCALVI32'\np1200\ng26\n(S'Variable_Type'\n(I2\nttRp1201\nsS'Y:Load 74 - CCERVI31'\np1202\ng26\n(S'Variable_Type'\n(I2\nttRp1203\nsS'X:lineOff#'\np1204\ng26\n(S'Variable_Type'\n(I2\nttRp1205\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np1206\ng26\n(S'Variable_Type'\n(I2\nttRp1207\nsS'Y:VBus108 - CSAGON31'\np1208\ng26\n(S'Variable_Type'\n(I2\nttRp1209\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np1210\ng26\n(S'Variable_Type'\n(I2\nttRp1211\nsS'Y:VBus137 - CLUCCI38'\np1212\ng26\n(S'Variable_Type'\n(I2\nttRp1213\nsS'Y:VBus130 - CVAZZI311'\np1214\ng26\n(S'Variable_Type'\n(I2\nttRp1215\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np1216\ng26\n(S'Variable_Type'\n(I2\nttRp1217\nsS'Y:VBus46 - CTRAVO21'\np1218\ng26\n(S'Variable_Type'\n(I2\nttRp1219\nsS'Y:VBus113 - CSAMPO32'\np1220\ng26\n(S'Variable_Type'\n(I2\nttRp1221\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np1222\ng26\n(S'Variable_Type'\n(I2\nttRp1223\nsS'Y:PMachine68 - CCASAM36'\np1224\ng26\n(S'Variable_Type'\n(I2\nttRp1225\nsS'Y:VBus78 - CFURIA31'\np1226\ng26\n(S'Variable_Type'\n(I2\nttRp1227\nsS'Y:VBus26 - CGHISO21'\np1228\ng26\n(S'Variable_Type'\n(I2\nttRp1229\nsS'Y:VBus121 - CVAZZI32'\np1230\ng26\n(S'Variable_Type'\n(I2\nttRp1231\nsS'Y:PMachine97 - COCANA36'\np1232\ng26\n(S'Variable_Type'\n(I2\nttRp1233\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np1234\ng26\n(S'Variable_Type'\n(I2\nttRp1235\nsS'Y:PMachine83 - CILERO32'\np1236\ng26\n(S'Variable_Type'\n(I2\nttRp1237\nsS'Y:Max%A'\np1238\ng26\n(S'Variable_Type'\n(I2\nttRp1239\nsS'Y:VBus66 - CCASAM34'\np1240\ng26\n(S'Variable_Type'\n(I2\nttRp1241\nsS'Y:PMachine1 - CBONIF11'\np1242\ng26\n(S'Variable_Type'\n(I2\nttRp1243\nsS'Y:VBus111 - CSTMAR31'\np1244\ng26\n(S'Variable_Type'\n(I2\nttRp1245\nsS'Y:VBus124 - CVAZZI35'\np1246\ng26\n(S'Variable_Type'\n(I2\nttRp1247\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np1248\ng26\n(S'Variable_Type'\n(I2\nttRp1249\nsS'Y:VBus29 - CLUCCI21'\np1250\ng26\n(S'Variable_Type'\n(I2\nttRp1251\nsS'Y:PMachine93 - COCANA32'\np1252\ng26\n(S'Variable_Type'\n(I2\nttRp1253\nsS'Y:Load 57 - CBONIF31'\np1254\ng26\n(S'Variable_Type'\n(I2\nttRp1255\nsS'Y:VBus86 - CLUCCI31'\np1256\ng26\n(S'Variable_Type'\n(I2\nttRp1257\nsS'Y:VBus38 - CSAGON21'\np1258\ng26\n(S'Variable_Type'\n(I2\nttRp1259\nsS'Y:PMachine81 - CGHISO32'\np1260\ng26\n(S'Variable_Type'\n(I2\nttRp1261\nsS'Y:PMachine61 - CCALVI31'\np1262\ng26\n(S'Variable_Type'\n(I2\nttRp1263\nsS'Y:VBus110 - CSTLUC31'\np1264\ng26\n(S'Variable_Type'\n(I2\nttRp1265\nsS'X:ProdPV%Pnom'\np1266\ng26\n(S'Variable_Type'\n(I2\nttRp1267\nssg628\n(dp1268\nsg20\n(lp1269\nS'orderedDomain'\np1270\nasg648\nF1369744625.4059999\nsba(iOWContexts\nContext\np1271\n(dp1272\ng20\n(lp1273\ng1270\nasg23\n(dp1274\nS'Y:PMachine134 - CLUCCI35'\np1275\ng26\n(S'Variable_Type'\n(I1\nttRp1276\nsS'Y:VBus77 - CCORTE32'\np1277\ng26\n(S'Variable_Type'\n(I2\nttRp1278\nsS'Y:VBus134 - CLUCCI35'\np1279\ng26\n(S'Variable_Type'\n(I2\nttRp1280\nsS'Y:VBus109 - CSAGON32'\np1281\ng26\n(S'Variable_Type'\n(I2\nttRp1282\nsS'Y:VBus102 - CPORTO31'\np1283\ng26\n(S'Variable_Type'\n(I2\nttRp1284\nsS'XProdEolienne%Pnom'\np1285\ng26\n(S'Variable_Type'\n(I1\nttRp1286\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np1287\ng26\n(S'Variable_Type'\n(I2\nttRp1288\nsS'Y:PMachine94 - COCANA33'\np1289\ng26\n(S'Variable_Type'\n(I2\nttRp1290\nsS'Y:VBus117 - CTOLLA32'\np1291\ng26\n(S'Variable_Type'\n(I2\nttRp1292\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np1293\ng26\n(S'Variable_Type'\n(I2\nttRp1294\nsS'Y:PMachine87 - CLUCCI32'\np1295\ng26\n(S'Variable_Type'\n(I2\nttRp1296\nsS'Y:PMachine113 - CSAMPO32'\np1297\ng26\n(S'Variable_Type'\n(I2\nttRp1298\nsS'Y:Load 84 - CLORET31'\np1299\ng26\n(S'Variable_Type'\n(I2\nttRp1300\nsS'Y:PMachine89 - CLUCCI34'\np1301\ng26\n(S'Variable_Type'\n(I1\nttRp1302\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np1303\ng26\n(S'Variable_Type'\n(I2\nttRp1304\nsS'Y:Load 80 - CGHISO31'\np1305\ng26\n(S'Variable_Type'\n(I2\nttRp1306\nsS'Y:PMachine125 - CVAZZI36'\np1307\ng26\n(S'Variable_Type'\n(I2\nttRp1308\nsS'Y:PMachine116 - CTOLLA31'\np1309\ng26\n(S'Variable_Type'\n(I2\nttRp1310\nsS'Y:PMachine88 - CLUCCI33'\np1311\ng26\n(S'Variable_Type'\n(I1\nttRp1312\nsS'Y:PMachine120 - CVAZZI31'\np1313\ng26\n(S'Variable_Type'\n(I2\nttRp1314\nsS'Y:PMachine111 - CSTMAR31'\np1315\ng26\n(S'Variable_Type'\n(I2\nttRp1316\nsS'Y:NbeTransit'\np1317\ng26\n(S'Variable_Type'\n(I1\nttRp1318\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np1319\ng26\n(S'Variable_Type'\n(I2\nttRp1320\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np1321\ng26\n(S'Variable_Type'\n(I2\nttRp1322\nsS'Y:VBus92 - COCANA31'\np1323\ng26\n(S'Variable_Type'\n(I2\nttRp1324\nsS'Y:PMachine130 - CVAZZI311'\np1325\ng26\n(S'Variable_Type'\n(I2\nttRp1326\nsS'Y:PMachine127 - CVAZZI38'\np1327\ng26\n(S'Variable_Type'\n(I2\nttRp1328\nsS'Y:VBus131 - CVAZZI312'\np1329\ng26\n(S'Variable_Type'\n(I2\nttRp1330\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np1331\ng26\n(S'Variable_Type'\n(I2\nttRp1332\nsS'Y:PMachine123 - CVAZZI34'\np1333\ng26\n(S'Variable_Type'\n(I2\nttRp1334\nsS'Y:VBus118 - CTOLLA33'\np1335\ng26\n(S'Variable_Type'\n(I2\nttRp1336\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np1337\ng26\n(S'Variable_Type'\n(I1\nttRp1338\nsS'Y:PMachine58 - CBONIF32'\np1339\ng26\n(S'Variable_Type'\n(I2\nttRp1340\nsS'Y:Load 104 - CPROPR31'\np1341\ng26\n(S'Variable_Type'\n(I2\nttRp1342\nsS'Y:PMachine30 - CLUCCI22'\np1343\ng26\n(S'Variable_Type'\n(I1\nttRp1344\nsS'Y:VBus100 - COLETT31'\np1345\ng26\n(S'Variable_Type'\n(I2\nttRp1346\nsS'Y:PProdTot'\np1347\ng26\n(S'Variable_Type'\n(I2\nttRp1348\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np1349\ng26\n(S'Variable_Type'\n(I1\nttRp1350\nsS'Y:VBus57 - CBONIF31'\np1351\ng26\n(S'Variable_Type'\n(I2\nttRp1352\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np1353\ng26\n(S'Variable_Type'\n(I2\nttRp1354\nsS'Y:PConsoTot'\np1355\ng26\n(S'Variable_Type'\n(I2\nttRp1356\nsS'Iteration'\np1357\ng26\n(S'Variable_Type'\n(I2\nttRp1358\nsS'Y:PMachine109 - CSAGON32'\np1359\ng26\n(S'Variable_Type'\n(I2\nttRp1360\nsS'Y:PMachine135 - CLUCCI36'\np1361\ng26\n(S'Variable_Type'\n(I1\nttRp1362\nsS'Y:VBus30 - CLUCCI22'\np1363\ng26\n(S'Variable_Type'\n(I2\nttRp1364\nsS'Y:VBus122 - CVAZZI33'\np1365\ng26\n(S'Variable_Type'\n(I2\nttRp1366\nsS'Y:VBus22 - CCORTE21'\np1367\ng26\n(S'Variable_Type'\n(I2\nttRp1368\nsS'Y:VBus35 - CPORTO21'\np1369\ng26\n(S'Variable_Type'\n(I2\nttRp1370\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np1371\ng26\n(S'Variable_Type'\n(I1\nttRp1372\nsS'Y:PMachine107 - CRIZZA32'\np1373\ng26\n(S'Variable_Type'\n(I2\nttRp1374\nsS'Y:VBus16 - CCALDA21'\np1375\ng26\n(S'Variable_Type'\n(I2\nttRp1376\nsS'Y:Load 102 - CPORTO31'\np1377\ng26\n(S'Variable_Type'\n(I2\nttRp1378\nsS'Y:VBus107 - CRIZZA32'\np1379\ng26\n(S'Variable_Type'\n(I2\nttRp1380\nsS'Y:VBus59 - CCALDA31'\np1381\ng26\n(S'Variable_Type'\n(I2\nttRp1382\nsS'Y:VBus41 - CSAMPO21'\np1383\ng26\n(S'Variable_Type'\n(I2\nttRp1384\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np1385\ng26\n(S'Variable_Type'\n(I2\nttRp1386\nsS'Y:VBus34 - CPIETR21'\np1387\ng26\n(S'Variable_Type'\n(I2\nttRp1388\nsS'Y:Load 108 - CSAGON31'\np1389\ng26\n(S'Variable_Type'\n(I2\nttRp1390\nsS'Y:VBus56 - CBIGUG32'\np1391\ng26\n(S'Variable_Type'\n(I2\nttRp1392\nsS'Y:PMachine42 - CSISCO21'\np1393\ng26\n(S'Variable_Type'\n(I2\nttRp1394\nsS'Y:PMachine138 - CLUCCI39'\np1395\ng26\n(S'Variable_Type'\n(I1\nttRp1396\nsS'Y:PMachine112 - CSAMPO31'\np1397\ng26\n(S'Variable_Type'\n(I2\nttRp1398\nsS'Y:VBus105 - CPROPR32'\np1399\ng26\n(S'Variable_Type'\n(I2\nttRp1400\nsS'Y:VBus1 - CBONIF11'\np1401\ng26\n(S'Variable_Type'\n(I2\nttRp1402\nsS'Y:VBus12 - CBASTI21'\np1403\ng26\n(S'Variable_Type'\n(I2\nttRp1404\nsS'Y:PMachine129 - CVAZZI310'\np1405\ng26\n(S'Variable_Type'\n(I2\nttRp1406\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np1407\ng26\n(S'Variable_Type'\n(I1\nttRp1408\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np1409\ng26\n(S'Variable_Type'\n(I1\nttRp1410\nsS'Y:VBus54 - CBASTI32'\np1411\ng26\n(S'Variable_Type'\n(I2\nttRp1412\nsS'Y:VBus69 - CCASAM37'\np1413\ng26\n(S'Variable_Type'\n(I2\nttRp1414\nsS'Y:VBus45 - CTOLLA21'\np1415\ng26\n(S'Variable_Type'\n(I2\nttRp1416\nsS'Y:PMachine115 - CTAGLI31'\np1417\ng26\n(S'Variable_Type'\n(I2\nttRp1418\nsS'Y:PMachine77 - CCORTE32'\np1419\ng26\n(S'Variable_Type'\n(I2\nttRp1420\nsS'Y:VBus43 - CSOVEN21'\np1421\ng26\n(S'Variable_Type'\n(I2\nttRp1422\nsS'Y:VBus76 - CCORTE31'\np1423\ng26\n(S'Variable_Type'\n(I2\nttRp1424\nsS'Y:VBus75 - CCORSC31'\np1425\ng26\n(S'Variable_Type'\n(I2\nttRp1426\nsS'Y:PMachine78 - CFURIA31'\np1427\ng26\n(S'Variable_Type'\n(I1\nttRp1428\nsS'Y:VBus127 - CVAZZI38'\np1429\ng26\n(S'Variable_Type'\n(I2\nttRp1430\nsS'Y:VBus115 - CTAGLI31'\np1431\ng26\n(S'Variable_Type'\n(I2\nttRp1432\nsS'Y:Load 61 - CCALVI31'\np1433\ng26\n(S'Variable_Type'\n(I2\nttRp1434\nsS'Y:VBus55 - CBIGUG31'\np1435\ng26\n(S'Variable_Type'\n(I2\nttRp1436\nsS'Y:Load 42 - CSISCO21'\np1437\ng26\n(S'Variable_Type'\n(I2\nttRp1438\nsS'Y:VBus72 - CCASTI31'\np1439\ng26\n(S'Variable_Type'\n(I2\nttRp1440\nsS'Y:Load 37 - CRIZZA21'\np1441\ng26\n(S'Variable_Type'\n(I2\nttRp1442\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np1443\ng26\n(S'Variable_Type'\n(I2\nttRp1444\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np1445\ng26\n(S'Variable_Type'\n(I2\nttRp1446\nsS'Y:PMachine137 - CLUCCI38'\np1447\ng26\n(S'Variable_Type'\n(I1\nttRp1448\nsS'Y:PMachine67 - CCASAM35'\np1449\ng26\n(S'Variable_Type'\n(I2\nttRp1450\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np1451\ng26\n(S'Variable_Type'\n(I1\nttRp1452\nsS'Y:VBus31 - CMOROS21'\np1453\ng26\n(S'Variable_Type'\n(I2\nttRp1454\nsS'Y:VBus103 - CPORTO32'\np1455\ng26\n(S'Variable_Type'\n(I2\nttRp1456\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np1457\ng26\n(S'Variable_Type'\n(I1\nttRp1458\nsS'Y:PMachine128 - CVAZZI39'\np1459\ng26\n(S'Variable_Type'\n(I2\nttRp1460\nsS'Y:PMachine72 - CCASTI31'\np1461\ng26\n(S'Variable_Type'\n(I2\nttRp1462\nsS'Y:VBus27 - CILERO21'\np1463\ng26\n(S'Variable_Type'\n(I2\nttRp1464\nsS'Y:PMachine75 - CCORSC31'\np1465\ng26\n(S'Variable_Type'\n(I2\nttRp1466\nsS'Y:Load 51 - CASPRE31'\np1467\ng26\n(S'Variable_Type'\n(I2\nttRp1468\nsS'Y:PMachine61 - CCALVI31'\np1469\ng26\n(S'Variable_Type'\n(I1\nttRp1470\nsS'Y:VBus51 - CASPRE31'\np1471\ng26\n(S'Variable_Type'\n(I2\nttRp1472\nsS'Y:VBus114 - CSOVEN31'\np1473\ng26\n(S'Variable_Type'\n(I2\nttRp1474\nsS'Y:Load 82 - CILERO31'\np1475\ng26\n(S'Variable_Type'\n(I2\nttRp1476\nsS'Y:VBus116 - CTOLLA31'\np1477\ng26\n(S'Variable_Type'\n(I2\nttRp1478\nsS'Y:Load 86 - CLUCCI31'\np1479\ng26\n(S'Variable_Type'\n(I2\nttRp1480\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np1481\ng26\n(S'Variable_Type'\n(I2\nttRp1482\nsS'Y:Load 57 - CBONIF31'\np1483\ng26\n(S'Variable_Type'\n(I2\nttRp1484\nsS'Y:PMachine104 - CPROPR31'\np1485\ng26\n(S'Variable_Type'\n(I2\nttRp1486\nsS'Y:VBus128 - CVAZZI39'\np1487\ng26\n(S'Variable_Type'\n(I2\nttRp1488\nsS'Y:PMachine136 - CLUCCI37'\np1489\ng26\n(S'Variable_Type'\n(I1\nttRp1490\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np1491\ng26\n(S'Variable_Type'\n(I2\nttRp1492\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np1493\ng26\n(S'Variable_Type'\n(I2\nttRp1494\nsS'Y:PMachine68 - CCASAM36'\np1495\ng26\n(S'Variable_Type'\n(I2\nttRp1496\nsS'Y:PMachine29 - CLUCCI21'\np1497\ng26\n(S'Variable_Type'\n(I1\nttRp1498\nsS'Y:VBus42 - CSISCO21'\np1499\ng26\n(S'Variable_Type'\n(I2\nttRp1500\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np1501\ng26\n(S'Variable_Type'\n(I1\nttRp1502\nsS'Y:VBus14 - CBONIF21'\np1503\ng26\n(S'Variable_Type'\n(I2\nttRp1504\nsS'Y:VBus73 - CCASTI32'\np1505\ng26\n(S'Variable_Type'\n(I2\nttRp1506\nsS'Y:VBus64 - CCASAM32'\np1507\ng26\n(S'Variable_Type'\n(I2\nttRp1508\nsS'Y:PMachine14 - CBONIF21'\np1509\ng26\n(S'Variable_Type'\n(I1\nttRp1510\nsS'Y:PMachine62 - CCALVI32'\np1511\ng26\n(S'Variable_Type'\n(I2\nttRp1512\nsS'Y:VBus133 - CVAZZI314'\np1513\ng26\n(S'Variable_Type'\n(I2\nttRp1514\nsS'Y:VBus63 - CCASAM31'\np1515\ng26\n(S'Variable_Type'\n(I2\nttRp1516\nsS'Y:PMachine101 - CPIETR31'\np1517\ng26\n(S'Variable_Type'\n(I2\nttRp1518\nsS'Y:%Losses'\np1519\ng26\n(S'Variable_Type'\n(I2\nttRp1520\nsS'Y:VBus85 - CLORET32'\np1521\ng26\n(S'Variable_Type'\n(I2\nttRp1522\nsS'Y:Load 59 - CCALDA31'\np1523\ng26\n(S'Variable_Type'\n(I2\nttRp1524\nsS'Y:VBus129 - CVAZZI310'\np1525\ng26\n(S'Variable_Type'\n(I2\nttRp1526\nsS'Y:VBus101 - CPIETR31'\np1527\ng26\n(S'Variable_Type'\n(I2\nttRp1528\nsS'Y:PMachine106 - CRIZZA31'\np1529\ng26\n(S'Variable_Type'\n(I2\nttRp1530\nsS'Y:VBus132 - CVAZZI313'\np1531\ng26\n(S'Variable_Type'\n(I2\nttRp1532\nsS'Y:PMachine118 - CTOLLA33'\np1533\ng26\n(S'Variable_Type'\n(I2\nttRp1534\nsS'Y:VBus19 - CCASTI21'\np1535\ng26\n(S'Variable_Type'\n(I2\nttRp1536\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np1537\ng26\n(S'Variable_Type'\n(I2\nttRp1538\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np1539\ng26\n(S'Variable_Type'\n(I1\nttRp1540\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np1541\ng26\n(S'Variable_Type'\n(I2\nttRp1542\nsS'Y:Load 115 - CTAGLI31'\np1543\ng26\n(S'Variable_Type'\n(I2\nttRp1544\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np1545\ng26\n(S'Variable_Type'\n(I2\nttRp1546\nsS'Y:VBus79 - CFURIA32'\np1547\ng26\n(S'Variable_Type'\n(I2\nttRp1548\nsS'Y:PMachine47 - CVAZZI21'\np1549\ng26\n(S'Variable_Type'\n(I1\nttRp1550\nsS'Y:VBus123 - CVAZZI34'\np1551\ng26\n(S'Variable_Type'\n(I2\nttRp1552\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np1553\ng26\n(S'Variable_Type'\n(I2\nttRp1554\nsS'Y:VBus60 - CCALDA32'\np1555\ng26\n(S'Variable_Type'\n(I2\nttRp1556\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np1557\ng26\n(S'Variable_Type'\n(I2\nttRp1558\nsS'Y:VBus65 - CCASAM33'\np1559\ng26\n(S'Variable_Type'\n(I2\nttRp1560\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np1561\ng26\n(S'Variable_Type'\n(I1\nttRp1562\nsS'Y:PMachine139 - CLUCCI310'\np1563\ng26\n(S'Variable_Type'\n(I1\nttRp1564\nsS'Y:VBus112 - CSAMPO31'\np1565\ng26\n(S'Variable_Type'\n(I2\nttRp1566\nsS'Y:VBus68 - CCASAM36'\np1567\ng26\n(S'Variable_Type'\n(I2\nttRp1568\nsS'Y:Load 55 - CBIGUG31'\np1569\ng26\n(S'Variable_Type'\n(I2\nttRp1570\nsS'Y:PMachine53 - CBASTI31'\np1571\ng26\n(S'Variable_Type'\n(I2\nttRp1572\nsS'Y:NbeTransit_0.9-1'\np1573\ng26\n(S'Variable_Type'\n(I1\nttRp1574\nsS'Y:VBus24 - CFURIA21'\np1575\ng26\n(S'Variable_Type'\n(I2\nttRp1576\nsS'Y:VBus23 - CCORTE22'\np1577\ng26\n(S'Variable_Type'\n(I2\nttRp1578\nsS'Y:VBus18 - CCASAM21'\np1579\ng26\n(S'Variable_Type'\n(I2\nttRp1580\nsS'Y:VBus40 - CSTMAR21'\np1581\ng26\n(S'Variable_Type'\n(I2\nttRp1582\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np1583\ng26\n(S'Variable_Type'\n(I2\nttRp1584\nsS'Y:PMachine124 - CVAZZI35'\np1585\ng26\n(S'Variable_Type'\n(I2\nttRp1586\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np1587\ng26\n(S'Variable_Type'\n(I2\nttRp1588\nsS'Y:PMachine117 - CTOLLA32'\np1589\ng26\n(S'Variable_Type'\n(I2\nttRp1590\nsS'Y:VBus89 - CLUCCI34'\np1591\ng26\n(S'Variable_Type'\n(I2\nttRp1592\nsS'Y:VBus33 - COLETT21'\np1593\ng26\n(S'Variable_Type'\n(I2\nttRp1594\nsS'Y:VBus32 - COCANA21'\np1595\ng26\n(S'Variable_Type'\n(I2\nttRp1596\nsS'Y:PMachine121 - CVAZZI32'\np1597\ng26\n(S'Variable_Type'\n(I2\nttRp1598\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np1599\ng26\n(S'Variable_Type'\n(I1\nttRp1600\nsS'Y:VBus82 - CILERO31'\np1601\ng26\n(S'Variable_Type'\n(I2\nttRp1602\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np1603\ng26\n(S'Variable_Type'\n(I2\nttRp1604\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np1605\ng26\n(S'Variable_Type'\n(I2\nttRp1606\nsS'Y:VBus37 - CRIZZA21'\np1607\ng26\n(S'Variable_Type'\n(I2\nttRp1608\nsS'Y:PMachine73 - CCASTI32'\np1609\ng26\n(S'Variable_Type'\n(I2\nttRp1610\nsS'Y:PMachine86 - CLUCCI31'\np1611\ng26\n(S'Variable_Type'\n(I2\nttRp1612\nsS'Y:Load 53 - CBASTI31'\np1613\ng26\n(S'Variable_Type'\n(I2\nttRp1614\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np1615\ng26\n(S'Variable_Type'\n(I2\nttRp1616\nsS'Y:VBus21 - CCORSC21'\np1617\ng26\n(S'Variable_Type'\n(I2\nttRp1618\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np1619\ng26\n(S'Variable_Type'\n(I2\nttRp1620\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np1621\ng26\n(S'Variable_Type'\n(I2\nttRp1622\nsS'Y:PMachine126 - CVAZZI37'\np1623\ng26\n(S'Variable_Type'\n(I2\nttRp1624\nsS'Y:PMachine64 - CCASAM32'\np1625\ng26\n(S'Variable_Type'\n(I2\nttRp1626\nsS'Y:VBus67 - CCASAM35'\np1627\ng26\n(S'Variable_Type'\n(I2\nttRp1628\nsS'Y:VBus53 - CBASTI31'\np1629\ng26\n(S'Variable_Type'\n(I2\nttRp1630\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np1631\ng26\n(S'Variable_Type'\n(I2\nttRp1632\nsS'Y:VBus61 - CCALVI31'\np1633\ng26\n(S'Variable_Type'\n(I2\nttRp1634\nsS'Y:VBus93 - COCANA32'\np1635\ng26\n(S'Variable_Type'\n(I2\nttRp1636\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np1637\ng26\n(S'Variable_Type'\n(I2\nttRp1638\nsS'Y:VBus104 - CPROPR31'\np1639\ng26\n(S'Variable_Type'\n(I2\nttRp1640\nsS'Y:VBus48 - CZSSS621'\np1641\ng26\n(S'Variable_Type'\n(I2\nttRp1642\nsS'Y:PMachine85 - CLORET32'\np1643\ng26\n(S'Variable_Type'\n(I2\nttRp1644\nsS'Y:Max%A'\np1645\ng26\n(S'Variable_Type'\n(I2\nttRp1646\nsS'Y:VBus36 - CPROPR21'\np1647\ng26\n(S'Variable_Type'\n(I2\nttRp1648\nsS'Y:Load 100 - COLETT31'\np1649\ng26\n(S'Variable_Type'\n(I2\nttRp1650\nsS'Y:PMachine54 - CBASTI32'\np1651\ng26\n(S'Variable_Type'\n(I2\nttRp1652\nsS'Y:VBus138 - CLUCCI39'\np1653\ng26\n(S'Variable_Type'\n(I2\nttRp1654\nsS'Y:VBus39 - CSTLUC21'\np1655\ng26\n(S'Variable_Type'\n(I2\nttRp1656\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np1657\ng26\n(S'Variable_Type'\n(I2\nttRp1658\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np1659\ng26\n(S'Variable_Type'\n(I2\nttRp1660\nsS'Y:Load 78 - CFURIA31'\np1661\ng26\n(S'Variable_Type'\n(I2\nttRp1662\nsS'Y:VBus28 - CLORET21'\np1663\ng26\n(S'Variable_Type'\n(I2\nttRp1664\nsS'Y:PMachine105 - CPROPR32'\np1665\ng26\n(S'Variable_Type'\n(I2\nttRp1666\nsS'Y:VBus96 - COCANA35'\np1667\ng26\n(S'Variable_Type'\n(I2\nttRp1668\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np1669\ng26\n(S'Variable_Type'\n(I1\nttRp1670\nsS'Y:PMachine18 - CCASAM21'\np1671\ng26\n(S'Variable_Type'\n(I1\nttRp1672\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np1673\ng26\n(S'Variable_Type'\n(I2\nttRp1674\nsS'Y:VBus13 - CBIGUG21'\np1675\ng26\n(S'Variable_Type'\n(I2\nttRp1676\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np1677\ng26\n(S'Variable_Type'\n(I2\nttRp1678\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np1679\ng26\n(S'Variable_Type'\n(I2\nttRp1680\nsS'Y:VBus29 - CLUCCI21'\np1681\ng26\n(S'Variable_Type'\n(I2\nttRp1682\nsS'Y:VBus58 - CBONIF32'\np1683\ng26\n(S'Variable_Type'\n(I2\nttRp1684\nsS'Y:VBus84 - CLORET31'\np1685\ng26\n(S'Variable_Type'\n(I2\nttRp1686\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np1687\ng26\n(S'Variable_Type'\n(I1\nttRp1688\nsS'Y:VBus97 - COCANA36'\np1689\ng26\n(S'Variable_Type'\n(I2\nttRp1690\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np1691\ng26\n(S'Variable_Type'\n(I1\nttRp1692\nsS'Y:VBus15 - CBONIF22'\np1693\ng26\n(S'Variable_Type'\n(I2\nttRp1694\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np1695\ng26\n(S'Variable_Type'\n(I2\nttRp1696\nsS'Y:Load 110 - CSTLUC31'\np1697\ng26\n(S'Variable_Type'\n(I2\nttRp1698\nsS'Y:VBus80 - CGHISO31'\np1699\ng26\n(S'Variable_Type'\n(I2\nttRp1700\nsS'Y:PMachine114 - CSOVEN31'\np1701\ng26\n(S'Variable_Type'\n(I2\nttRp1702\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np1703\ng26\n(S'Variable_Type'\n(I1\nttRp1704\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np1705\ng26\n(S'Variable_Type'\n(I2\nttRp1706\nsS'Y:PMachine93 - COCANA32'\np1707\ng26\n(S'Variable_Type'\n(I2\nttRp1708\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np1709\ng26\n(S'Variable_Type'\n(I1\nttRp1710\nsS'Y:VBus87 - CLUCCI32'\np1711\ng26\n(S'Variable_Type'\n(I2\nttRp1712\nsS'Y:VBus62 - CCALVI32'\np1713\ng26\n(S'Variable_Type'\n(I2\nttRp1714\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np1715\ng26\n(S'Variable_Type'\n(I1\nttRp1716\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np1717\ng26\n(S'Variable_Type'\n(I1\nttRp1718\nsS'Y:VBus81 - CGHISO32'\np1719\ng26\n(S'Variable_Type'\n(I2\nttRp1720\nsS'Y:PMachine74 - CCERVI31'\np1721\ng26\n(S'Variable_Type'\n(I2\nttRp1722\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np1723\ng26\n(S'Variable_Type'\n(I2\nttRp1724\nsS'Y:VBus86 - CLUCCI31'\np1725\ng26\n(S'Variable_Type'\n(I2\nttRp1726\nsS'X:Load(pu)'\np1727\ng26\n(S'Variable_Type'\n(I2\nttRp1728\nsS'Y:NbeTension'\np1729\ng26\n(S'Variable_Type'\n(I2\nttRp1730\nsS'Y:VBus95 - COCANA34'\np1731\ng26\n(S'Variable_Type'\n(I2\nttRp1732\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np1733\ng26\n(S'Variable_Type'\n(I2\nttRp1734\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np1735\ng26\n(S'Variable_Type'\n(I2\nttRp1736\nsS'Y:Load 95 - COCANA34'\np1737\ng26\n(S'Variable_Type'\n(I2\nttRp1738\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np1739\ng26\n(S'Variable_Type'\n(I1\nttRp1740\nsS'Y:PMachine90 - CMOROS31'\np1741\ng26\n(S'Variable_Type'\n(I2\nttRp1742\nsS'Y:Load 101 - CPIETR31'\np1743\ng26\n(S'Variable_Type'\n(I2\nttRp1744\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np1745\ng26\n(S'Variable_Type'\n(I1\nttRp1746\nsS'Y:PMachine132 - CVAZZI313'\np1747\ng26\n(S'Variable_Type'\n(I2\nttRp1748\nsS'Y:VBus125 - CVAZZI36'\np1749\ng26\n(S'Variable_Type'\n(I2\nttRp1750\nsS'Y:VBus135 - CLUCCI36'\np1751\ng26\n(S'Variable_Type'\n(I2\nttRp1752\nsS'Y:VBus47 - CVAZZI21'\np1753\ng26\n(S'Variable_Type'\n(I2\nttRp1754\nsS'Y:VBus94 - COCANA33'\np1755\ng26\n(S'Variable_Type'\n(I2\nttRp1756\nsS'Y:VBus17 - CCALVI21'\np1757\ng26\n(S'Variable_Type'\n(I2\nttRp1758\nsS'Y:Load 90 - CMOROS31'\np1759\ng26\n(S'Variable_Type'\n(I2\nttRp1760\nsS'Y:VBus120 - CVAZZI31'\np1761\ng26\n(S'Variable_Type'\n(I2\nttRp1762\nsS'X:ProdPV%Pnom'\np1763\ng26\n(S'Variable_Type'\n(I2\nttRp1764\nsS'Y:VBus52 - CASPRE32'\np1765\ng26\n(S'Variable_Type'\n(I2\nttRp1766\nsS'Y:VBus25 - CFURIA22'\np1767\ng26\n(S'Variable_Type'\n(I2\nttRp1768\nsS'Y:Load 76 - CCORTE31'\np1769\ng26\n(S'Variable_Type'\n(I2\nttRp1770\nsS'Y:PMachine69 - CCASAM37'\np1771\ng26\n(S'Variable_Type'\n(I2\nttRp1772\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np1773\ng26\n(S'Variable_Type'\n(I2\nttRp1774\nsS'Y:PMachine92 - COCANA31'\np1775\ng26\n(S'Variable_Type'\n(I2\nttRp1776\nsS'Y:PMachine102 - CPORTO31'\np1777\ng26\n(S'Variable_Type'\n(I2\nttRp1778\nsS'Y:PMachine122 - CVAZZI33'\np1779\ng26\n(S'Variable_Type'\n(I2\nttRp1780\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np1781\ng26\n(S'Variable_Type'\n(I1\nttRp1782\nsS'Y:PMachine63 - CCASAM31'\np1783\ng26\n(S'Variable_Type'\n(I2\nttRp1784\nsS'Y:VBus74 - CCERVI31'\np1785\ng26\n(S'Variable_Type'\n(I2\nttRp1786\nsS'Y:VBus126 - CVAZZI37'\np1787\ng26\n(S'Variable_Type'\n(I2\nttRp1788\nsS'Y:PMachine60 - CCALDA32'\np1789\ng26\n(S'Variable_Type'\n(I2\nttRp1790\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np1791\ng26\n(S'Variable_Type'\n(I1\nttRp1792\nsS'Y:VBus20 - CCERVI21'\np1793\ng26\n(S'Variable_Type'\n(I2\nttRp1794\nsS'Y:VBus119 - CTRAVO31'\np1795\ng26\n(S'Variable_Type'\n(I2\nttRp1796\nsS'Y:VBus11 - CASPRE21'\np1797\ng26\n(S'Variable_Type'\n(I2\nttRp1798\nsS'Y:VBus139 - CLUCCI310'\np1799\ng26\n(S'Variable_Type'\n(I2\nttRp1800\nsS'Y:VBus106 - CRIZZA31'\np1801\ng26\n(S'Variable_Type'\n(I2\nttRp1802\nsS'Y:PMachine66 - CCASAM34'\np1803\ng26\n(S'Variable_Type'\n(I2\nttRp1804\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np1805\ng26\n(S'Variable_Type'\n(I2\nttRp1806\nsS'Y:VBus136 - CLUCCI37'\np1807\ng26\n(S'Variable_Type'\n(I2\nttRp1808\nsS'Y:VBus90 - CMOROS31'\np1809\ng26\n(S'Variable_Type'\n(I2\nttRp1810\nsS'Y:Load 74 - CCERVI31'\np1811\ng26\n(S'Variable_Type'\n(I2\nttRp1812\nsS'X:lineOff#'\np1813\ng26\n(S'Variable_Type'\n(I2\nttRp1814\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np1815\ng26\n(S'Variable_Type'\n(I2\nttRp1816\nsS'Y:VBus108 - CSAGON31'\np1817\ng26\n(S'Variable_Type'\n(I2\nttRp1818\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np1819\ng26\n(S'Variable_Type'\n(I2\nttRp1820\nsS'Y:VBus137 - CLUCCI38'\np1821\ng26\n(S'Variable_Type'\n(I2\nttRp1822\nsS'Y:VBus130 - CVAZZI311'\np1823\ng26\n(S'Variable_Type'\n(I2\nttRp1824\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np1825\ng26\n(S'Variable_Type'\n(I2\nttRp1826\nsS'Y:VBus46 - CTRAVO21'\np1827\ng26\n(S'Variable_Type'\n(I2\nttRp1828\nsS'Y:VBus113 - CSAMPO32'\np1829\ng26\n(S'Variable_Type'\n(I2\nttRp1830\nsS'Y:PMachine133 - CVAZZI314'\np1831\ng26\n(S'Variable_Type'\n(I2\nttRp1832\nsS'Y:PMachine65 - CCASAM33'\np1833\ng26\n(S'Variable_Type'\n(I2\nttRp1834\nsS'Y:VBus78 - CFURIA31'\np1835\ng26\n(S'Variable_Type'\n(I2\nttRp1836\nsS'Y:VBus26 - CGHISO21'\np1837\ng26\n(S'Variable_Type'\n(I2\nttRp1838\nsS'Y:VBus121 - CVAZZI32'\np1839\ng26\n(S'Variable_Type'\n(I2\nttRp1840\nsS'Y:PMachine97 - COCANA36'\np1841\ng26\n(S'Variable_Type'\n(I2\nttRp1842\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np1843\ng26\n(S'Variable_Type'\n(I2\nttRp1844\nsS'Y:PMachine83 - CILERO32'\np1845\ng26\n(S'Variable_Type'\n(I2\nttRp1846\nsS'Y:VBus83 - CILERO32'\np1847\ng26\n(S'Variable_Type'\n(I2\nttRp1848\nsS'Y:VBus66 - CCASAM34'\np1849\ng26\n(S'Variable_Type'\n(I2\nttRp1850\nsS'Y:PMachine1 - CBONIF11'\np1851\ng26\n(S'Variable_Type'\n(I2\nttRp1852\nsS'Y:VBus111 - CSTMAR31'\np1853\ng26\n(S'Variable_Type'\n(I2\nttRp1854\nsS'Y:VBus124 - CVAZZI35'\np1855\ng26\n(S'Variable_Type'\n(I2\nttRp1856\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np1857\ng26\n(S'Variable_Type'\n(I2\nttRp1858\nsS'Y:PMachine131 - CVAZZI312'\np1859\ng26\n(S'Variable_Type'\n(I2\nttRp1860\nsS'Y:VBus44 - CTAGLI21'\np1861\ng26\n(S'Variable_Type'\n(I2\nttRp1862\nsS'Y:VBus88 - CLUCCI33'\np1863\ng26\n(S'Variable_Type'\n(I2\nttRp1864\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np1865\ng26\n(S'Variable_Type'\n(I1\nttRp1866\nsS'Y:VBus38 - CSAGON21'\np1867\ng26\n(S'Variable_Type'\n(I2\nttRp1868\nsS'Y:PMachine81 - CGHISO32'\np1869\ng26\n(S'Variable_Type'\n(I2\nttRp1870\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np1871\ng26\n(S'Variable_Type'\n(I2\nttRp1872\nsS'Y:VBus110 - CSTLUC31'\np1873\ng26\n(S'Variable_Type'\n(I2\nttRp1874\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np1875\ng26\n(S'Variable_Type'\n(I2\nttRp1876\nssg628\n(dp1877\nsg630\n(dp1878\nS'attribute'\np1879\n(S'XProdEolienne%Pnom'\np1880\ng1286\ntp1881\nsS'yaxisTitle'\np1882\n(g636\nI0\ntp1883\nsS'xaxisTitle'\np1884\n(g1880\ng1286\ntp1885\nsS'mainTitle'\np1886\n(S''\nI0\ntp1887\nsS'yPaxisTitle'\np1888\n(S''\nI0\ntp1889\nsS'targetValue'\np1890\n(NI-2\ntp1891\nsS'visibleOutcomes'\np1892\n((lI-2\ntp1893\nssg648\nF1369988696.1170001\nsba(iOWContexts\nContext\np1894\n(dp1895\ng20\n(lp1896\ng1270\nasg23\n(dp1897\nS'Y:VBus48'\np1898\ng26\n(S'Variable_Type'\n(I2\nttRp1899\nsS'Y15:%RateA 18-44'\np1900\ng26\n(S'Variable_Type'\n(I2\nttRp1901\nsS'Y:VBus41'\np1902\ng26\n(S'Variable_Type'\n(I2\nttRp1903\nsS'Y:VBus40'\np1904\ng26\n(S'Variable_Type'\n(I2\nttRp1905\nsS'Y:VBus43'\np1906\ng26\n(S'Variable_Type'\n(I2\nttRp1907\nsS'Y:VBus42'\np1908\ng26\n(S'Variable_Type'\n(I2\nttRp1909\nsS'Y:VBus45'\np1910\ng26\n(S'Variable_Type'\n(I2\nttRp1911\nsS'Y:VBus44'\np1912\ng26\n(S'Variable_Type'\n(I2\nttRp1913\nsS'Y:VBus47'\np1914\ng26\n(S'Variable_Type'\n(I2\nttRp1915\nsS'Y:VBus46'\np1916\ng26\n(S'Variable_Type'\n(I2\nttRp1917\nsS'Y39:%RateA 32-45'\np1918\ng26\n(S'Variable_Type'\n(I2\nttRp1919\nsS'Y:Load 110'\np1920\ng26\n(S'Variable_Type'\n(I2\nttRp1921\nsS'Y:Load 115'\np1922\ng26\n(S'Variable_Type'\n(I2\nttRp1923\nsS'Y:VBus79'\np1924\ng26\n(S'Variable_Type'\n(I2\nttRp1925\nsS'Y13:%RateA 18-30'\np1926\ng26\n(S'Variable_Type'\n(I2\nttRp1927\nsS'Y34:%RateA 28-38'\np1928\ng26\n(S'Variable_Type'\n(I2\nttRp1929\nsS'Y:NbeTransit'\np1930\ng26\n(S'Variable_Type'\n(I1\nttRp1931\nsS'Y:VBus104'\np1932\ng26\n(S'Variable_Type'\n(I2\nttRp1933\nsS'Y20:%RateA 20-44'\np1934\ng26\n(S'Variable_Type'\n(I2\nttRp1935\nsS'Y38:%RateA 32-45'\np1936\ng26\n(S'Variable_Type'\n(I2\nttRp1937\nsS'Y:PMachine73'\np1938\ng26\n(S'Variable_Type'\n(I2\nttRp1939\nsS'Y:PMachine72'\np1940\ng26\n(S'Variable_Type'\n(I2\nttRp1941\nsS'Y49:%RateA 40-48'\np1942\ng26\n(S'Variable_Type'\n(I2\nttRp1943\nsS'Y:PMachine77'\np1944\ng26\n(S'Variable_Type'\n(I2\nttRp1945\nsS'Y:PMachine75'\np1946\ng26\n(S'Variable_Type'\n(I2\nttRp1947\nsS'Y:PMachine74'\np1948\ng26\n(S'Variable_Type'\n(I2\nttRp1949\nsS'Y:PMachine78'\np1950\ng26\n(S'Variable_Type'\n(I1\nttRp1951\nsS'Y:PMachine138'\np1952\ng26\n(S'Variable_Type'\n(I1\nttRp1953\nsS'Y28:%RateA 24-42'\np1954\ng26\n(S'Variable_Type'\n(I2\nttRp1955\nsS'Y:PProdTot'\np1956\ng26\n(S'Variable_Type'\n(I2\nttRp1957\nsS'Y:PMachine69'\np1958\ng26\n(S'Variable_Type'\n(I2\nttRp1959\nsS'Y:VBus38'\np1960\ng26\n(S'Variable_Type'\n(I2\nttRp1961\nsS'Y:VBus39'\np1962\ng26\n(S'Variable_Type'\n(I2\nttRp1963\nsS'Y62:%RateA 86-87'\np1964\ng26\n(S'Variable_Type'\n(I1\nttRp1965\nsS'Y:PMachine1'\np1966\ng26\n(S'Variable_Type'\n(I2\nttRp1967\nsS'Y:VBus35'\np1968\ng26\n(S'Variable_Type'\n(I2\nttRp1969\nsS'Y:VBus36'\np1970\ng26\n(S'Variable_Type'\n(I2\nttRp1971\nsS'Y:VBus37'\np1972\ng26\n(S'Variable_Type'\n(I2\nttRp1973\nsS'Y:VBus30'\np1974\ng26\n(S'Variable_Type'\n(I2\nttRp1975\nsS'Y:VBus31'\np1976\ng26\n(S'Variable_Type'\n(I2\nttRp1977\nsS'Y:VBus32'\np1978\ng26\n(S'Variable_Type'\n(I2\nttRp1979\nsS'Y:VBus33'\np1980\ng26\n(S'Variable_Type'\n(I2\nttRp1981\nsS'Y53:%RateA 57-58'\np1982\ng26\n(S'Variable_Type'\n(I1\nttRp1983\nsS'Y14:%RateA 18-31'\np1984\ng26\n(S'Variable_Type'\n(I2\nttRp1985\nsS'Y48:%RateA 39-46'\np1986\ng26\n(S'Variable_Type'\n(I2\nttRp1987\nsS'Y60:%RateA 82-83'\np1988\ng26\n(S'Variable_Type'\n(I1\nttRp1989\nsS'Y:PMachine87'\np1990\ng26\n(S'Variable_Type'\n(I2\nttRp1991\nsS'Y:VBus121'\np1992\ng26\n(S'Variable_Type'\n(I2\nttRp1993\nsS'Y:VBus120'\np1994\ng26\n(S'Variable_Type'\n(I2\nttRp1995\nsS'Y:VBus123'\np1996\ng26\n(S'Variable_Type'\n(I2\nttRp1997\nsS'Y:VBus122'\np1998\ng26\n(S'Variable_Type'\n(I2\nttRp1999\nsS'Y:VBus125'\np2000\ng26\n(S'Variable_Type'\n(I2\nttRp2001\nsS'Y:VBus124'\np2002\ng26\n(S'Variable_Type'\n(I2\nttRp2003\nsS'Y:VBus127'\np2004\ng26\n(S'Variable_Type'\n(I2\nttRp2005\nsS'Y:VBus126'\np2006\ng26\n(S'Variable_Type'\n(I2\nttRp2007\nsS'Y:VBus129'\np2008\ng26\n(S'Variable_Type'\n(I2\nttRp2009\nsS'Y:VBus128'\np2010\ng26\n(S'Variable_Type'\n(I2\nttRp2011\nsS'Y37:%RateA 32-34'\np2012\ng26\n(S'Variable_Type'\n(I2\nttRp2013\nsS'Y43:%RateA 35-37'\np2014\ng26\n(S'Variable_Type'\n(I2\nttRp2015\nsS'Y:PMachine42'\np2016\ng26\n(S'Variable_Type'\n(I2\nttRp2017\nsS'Y0:%RateA 11-28'\np2018\ng26\n(S'Variable_Type'\n(I2\nttRp2019\nsS'Y:VBus67'\np2020\ng26\n(S'Variable_Type'\n(I2\nttRp2021\nsS'Y:Load 37'\np2022\ng26\n(S'Variable_Type'\n(I2\nttRp2023\nsS'Y65:%RateA 104-105'\np2024\ng26\n(S'Variable_Type'\n(I1\nttRp2025\nsS'Y40:%RateA 32-47'\np2026\ng26\n(S'Variable_Type'\n(I2\nttRp2027\nsS'Y:PMachine47'\np2028\ng26\n(S'Variable_Type'\n(I2\nttRp2029\nsS'Y6:%RateA 14-15'\np2030\ng26\n(S'Variable_Type'\n(I1\nttRp2031\nsS'Y:VBus1'\np2032\ng26\n(S'Variable_Type'\n(I2\nttRp2033\nsS'Y44:%RateA 35-39'\np2034\ng26\n(S'Variable_Type'\n(I2\nttRp2035\nsS'Y:PMachine88'\np2036\ng26\n(S'Variable_Type'\n(I1\nttRp2037\nsS'Y42:%RateA 34-36'\np2038\ng26\n(S'Variable_Type'\n(I2\nttRp2039\nsS'Y57:%RateA 76-77'\np2040\ng26\n(S'Variable_Type'\n(I1\nttRp2041\nsS'Y:PMachine89'\np2042\ng26\n(S'Variable_Type'\n(I1\nttRp2043\nsS'Y:VBus77'\np2044\ng26\n(S'Variable_Type'\n(I2\nttRp2045\nsS'Y:VBus29'\np2046\ng26\n(S'Variable_Type'\n(I2\nttRp2047\nsS'Y:VBus28'\np2048\ng26\n(S'Variable_Type'\n(I2\nttRp2049\nsS'Y:VBus27'\np2050\ng26\n(S'Variable_Type'\n(I2\nttRp2051\nsS'Y:VBus26'\np2052\ng26\n(S'Variable_Type'\n(I2\nttRp2053\nsS'Y:VBus25'\np2054\ng26\n(S'Variable_Type'\n(I2\nttRp2055\nsS'Y:VBus24'\np2056\ng26\n(S'Variable_Type'\n(I2\nttRp2057\nsS'Y:VBus23'\np2058\ng26\n(S'Variable_Type'\n(I2\nttRp2059\nsS'Y:VBus22'\np2060\ng26\n(S'Variable_Type'\n(I2\nttRp2061\nsS'Y:VBus21'\np2062\ng26\n(S'Variable_Type'\n(I2\nttRp2063\nsS'Y:VBus20'\np2064\ng26\n(S'Variable_Type'\n(I2\nttRp2065\nsS'Y:VBus85'\np2066\ng26\n(S'Variable_Type'\n(I2\nttRp2067\nsS'Y:VBus84'\np2068\ng26\n(S'Variable_Type'\n(I2\nttRp2069\nsS'Y52:%RateA 55-56'\np2070\ng26\n(S'Variable_Type'\n(I1\nttRp2071\nsS'Y2:%RateA 12-24'\np2072\ng26\n(S'Variable_Type'\n(I2\nttRp2073\nsS'Y:VBus112'\np2074\ng26\n(S'Variable_Type'\n(I2\nttRp2075\nsS'Y:VBus132'\np2076\ng26\n(S'Variable_Type'\n(I2\nttRp2077\nsS'Y:PMachine58'\np2078\ng26\n(S'Variable_Type'\n(I2\nttRp2079\nsS'Y:VBus130'\np2080\ng26\n(S'Variable_Type'\n(I2\nttRp2081\nsS'Y:VBus131'\np2082\ng26\n(S'Variable_Type'\n(I2\nttRp2083\nsS'Y:VBus136'\np2084\ng26\n(S'Variable_Type'\n(I2\nttRp2085\nsS'Y:VBus137'\np2086\ng26\n(S'Variable_Type'\n(I2\nttRp2087\nsS'Y:VBus134'\np2088\ng26\n(S'Variable_Type'\n(I2\nttRp2089\nsS'Y:VBus135'\np2090\ng26\n(S'Variable_Type'\n(I2\nttRp2091\nsS'Y:VBus81'\np2092\ng26\n(S'Variable_Type'\n(I2\nttRp2093\nsS'Y:PMachine53'\np2094\ng26\n(S'Variable_Type'\n(I2\nttRp2095\nsS'Y:VBus139'\np2096\ng26\n(S'Variable_Type'\n(I2\nttRp2097\nsS'Y30:%RateA 25-29'\np2098\ng26\n(S'Variable_Type'\n(I2\nttRp2099\nsS'Y:VBus115'\np2100\ng26\n(S'Variable_Type'\n(I2\nttRp2101\nsS'Y:PMachine124'\np2102\ng26\n(S'Variable_Type'\n(I2\nttRp2103\nsS'Y:VBus83'\np2104\ng26\n(S'Variable_Type'\n(I2\nttRp2105\nsS'Y66:%RateA 106-107'\np2106\ng26\n(S'Variable_Type'\n(I1\nttRp2107\nsS'Y25:%RateA 23-41'\np2108\ng26\n(S'Variable_Type'\n(I2\nttRp2109\nsS'Y:%Losses'\np2110\ng26\n(S'Variable_Type'\n(I2\nttRp2111\nsS'Y:VBus12'\np2112\ng26\n(S'Variable_Type'\n(I2\nttRp2113\nsS'Y:VBus13'\np2114\ng26\n(S'Variable_Type'\n(I2\nttRp2115\nsS'Y50:%RateA 51-52'\np2116\ng26\n(S'Variable_Type'\n(I1\nttRp2117\nsS'Y:VBus11'\np2118\ng26\n(S'Variable_Type'\n(I2\nttRp2119\nsS'Y:VBus16'\np2120\ng26\n(S'Variable_Type'\n(I2\nttRp2121\nsS'Y:VBus17'\np2122\ng26\n(S'Variable_Type'\n(I2\nttRp2123\nsS'Y:VBus14'\np2124\ng26\n(S'Variable_Type'\n(I2\nttRp2125\nsS'Y:VBus15'\np2126\ng26\n(S'Variable_Type'\n(I2\nttRp2127\nsS'Y:VBus113'\np2128\ng26\n(S'Variable_Type'\n(I2\nttRp2129\nsS'Y:PMachine120'\np2130\ng26\n(S'Variable_Type'\n(I2\nttRp2131\nsS'Y:VBus18'\np2132\ng26\n(S'Variable_Type'\n(I2\nttRp2133\nsS'Y:VBus19'\np2134\ng26\n(S'Variable_Type'\n(I2\nttRp2135\nsS'Y4:%RateA 13-25'\np2136\ng26\n(S'Variable_Type'\n(I2\nttRp2137\nsS'Y35:%RateA 28-47'\np2138\ng26\n(S'Variable_Type'\n(I2\nttRp2139\nsS'Y:PMachine122'\np2140\ng26\n(S'Variable_Type'\n(I2\nttRp2141\nsS'Y16:%RateA 19-21'\np2142\ng26\n(S'Variable_Type'\n(I2\nttRp2143\nsS'Y:VBus92'\np2144\ng26\n(S'Variable_Type'\n(I2\nttRp2145\nsS'Y7:%RateA 14-35'\np2146\ng26\n(S'Variable_Type'\n(I2\nttRp2147\nsS'Y:VBus90'\np2148\ng26\n(S'Variable_Type'\n(I2\nttRp2149\nsS'Y:VBus96'\np2150\ng26\n(S'Variable_Type'\n(I2\nttRp2151\nsS'Y:VBus97'\np2152\ng26\n(S'Variable_Type'\n(I2\nttRp2153\nsS'Y:VBus94'\np2154\ng26\n(S'Variable_Type'\n(I2\nttRp2155\nsS'Y:VBus95'\np2156\ng26\n(S'Variable_Type'\n(I2\nttRp2157\nsS'Y:VBus107'\np2158\ng26\n(S'Variable_Type'\n(I2\nttRp2159\nsS'Y:VBus106'\np2160\ng26\n(S'Variable_Type'\n(I2\nttRp2161\nsS'Y:VBus105'\np2162\ng26\n(S'Variable_Type'\n(I2\nttRp2163\nsS'Y22:%RateA 22-23'\np2164\ng26\n(S'Variable_Type'\n(I1\nttRp2165\nsS'Y:VBus103'\np2166\ng26\n(S'Variable_Type'\n(I2\nttRp2167\nsS'Y:VBus102'\np2168\ng26\n(S'Variable_Type'\n(I2\nttRp2169\nsS'Y:VBus101'\np2170\ng26\n(S'Variable_Type'\n(I2\nttRp2171\nsS'Y:VBus100'\np2172\ng26\n(S'Variable_Type'\n(I2\nttRp2173\nsS'Y:Load 55'\np2174\ng26\n(S'Variable_Type'\n(I2\nttRp2175\nsS'Y:Load 57'\np2176\ng26\n(S'Variable_Type'\n(I2\nttRp2177\nsS'Y:Load 51'\np2178\ng26\n(S'Variable_Type'\n(I2\nttRp2179\nsS'Y:VBus54'\np2180\ng26\n(S'Variable_Type'\n(I2\nttRp2181\nsS'Y:VBus109'\np2182\ng26\n(S'Variable_Type'\n(I2\nttRp2183\nsS'Y46:%RateA 36-48'\np2184\ng26\n(S'Variable_Type'\n(I2\nttRp2185\nsS'Y:Load 80'\np2186\ng26\n(S'Variable_Type'\n(I2\nttRp2187\nsS'Y:PMachine133'\np2188\ng26\n(S'Variable_Type'\n(I2\nttRp2189\nsS'Y:VBus55'\np2190\ng26\n(S'Variable_Type'\n(I2\nttRp2191\nsS'Y:PMachine29'\np2192\ng26\n(S'Variable_Type'\n(I1\nttRp2193\nsS'Y24:%RateA 23-32'\np2194\ng26\n(S'Variable_Type'\n(I2\nttRp2195\nsS'X:lineOff#'\np2196\ng26\n(S'Variable_Type'\n(I2\nttRp2197\nsS'Y:Max%A'\np2198\ng26\n(S'Variable_Type'\n(I2\nttRp2199\nsS'Y:NbeTransit_0.9-1'\np2200\ng26\n(S'Variable_Type'\n(I1\nttRp2201\nsS'XProdEolienne%Pnom'\np2202\ng26\n(S'Variable_Type'\n(I2\nttRp2203\nsS'Y33:%RateA 27-33'\np2204\ng26\n(S'Variable_Type'\n(I2\nttRp2205\nsS'Y59:%RateA 80-81'\np2206\ng26\n(S'Variable_Type'\n(I1\nttRp2207\nsS'Y:VBus65'\np2208\ng26\n(S'Variable_Type'\n(I2\nttRp2209\nsS'Y:VBus118'\np2210\ng26\n(S'Variable_Type'\n(I2\nttRp2211\nsS'Y:VBus119'\np2212\ng26\n(S'Variable_Type'\n(I2\nttRp2213\nsS'Y:PMachine117'\np2214\ng26\n(S'Variable_Type'\n(I2\nttRp2215\nsS'Y:PMachine116'\np2216\ng26\n(S'Variable_Type'\n(I2\nttRp2217\nsS'Y:PMachine111'\np2218\ng26\n(S'Variable_Type'\n(I2\nttRp2219\nsS'Y:VBus88'\np2220\ng26\n(S'Variable_Type'\n(I2\nttRp2221\nsS'Y:PMachine113'\np2222\ng26\n(S'Variable_Type'\n(I2\nttRp2223\nsS'Y:VBus93'\np2224\ng26\n(S'Variable_Type'\n(I2\nttRp2225\nsS'Y:VBus110'\np2226\ng26\n(S'Variable_Type'\n(I2\nttRp2227\nsS'Y:VBus111'\np2228\ng26\n(S'Variable_Type'\n(I2\nttRp2229\nsS'Y:VBus87'\np2230\ng26\n(S'Variable_Type'\n(I2\nttRp2231\nsS'Y12:%RateA 18-30'\np2232\ng26\n(S'Variable_Type'\n(I2\nttRp2233\nsS'Y:VBus114'\np2234\ng26\n(S'Variable_Type'\n(I2\nttRp2235\nsS'Y:VBus80'\np2236\ng26\n(S'Variable_Type'\n(I2\nttRp2237\nsS'Y:VBus116'\np2238\ng26\n(S'Variable_Type'\n(I2\nttRp2239\nsS'Y:VBus82'\np2240\ng26\n(S'Variable_Type'\n(I2\nttRp2241\nsS'Y61:%RateA 84-85'\np2242\ng26\n(S'Variable_Type'\n(I1\nttRp2243\nsS'Y31:%RateA 26-41'\np2244\ng26\n(S'Variable_Type'\n(I2\nttRp2245\nsS'Y:PMachine131'\np2246\ng26\n(S'Variable_Type'\n(I2\nttRp2247\nsS'Y47:%RateA 38-43'\np2248\ng26\n(S'Variable_Type'\n(I2\nttRp2249\nsS'Y:Load 42'\np2250\ng26\n(S'Variable_Type'\n(I2\nttRp2251\nsS'Y:PMachine85'\np2252\ng26\n(S'Variable_Type'\n(I2\nttRp2253\nsS'Y32:%RateA 26-46'\np2254\ng26\n(S'Variable_Type'\n(I2\nttRp2255\nsS'Y:PMachine132'\np2256\ng26\n(S'Variable_Type'\n(I2\nttRp2257\nsS'Y18:%RateA 19-27'\np2258\ng26\n(S'Variable_Type'\n(I2\nttRp2259\nsS'Y:VBus86'\np2260\ng26\n(S'Variable_Type'\n(I2\nttRp2261\nsS'Y63:%RateA 95-96'\np2262\ng26\n(S'Variable_Type'\n(I1\nttRp2263\nsS'Y17:%RateA 19-22'\np2264\ng26\n(S'Variable_Type'\n(I2\nttRp2265\nsS'Y41:%RateA 32-48'\np2266\ng26\n(S'Variable_Type'\n(I2\nttRp2267\nsS'Y:PMachine30'\np2268\ng26\n(S'Variable_Type'\n(I2\nttRp2269\nsS'Y:VBus117'\np2270\ng26\n(S'Variable_Type'\n(I2\nttRp2271\nsS'Y56:%RateA 72-73'\np2272\ng26\n(S'Variable_Type'\n(I1\nttRp2273\nsS'Y68:%RateA 112-113'\np2274\ng26\n(S'Variable_Type'\n(I1\nttRp2275\nsS'Y:PMachine130'\np2276\ng26\n(S'Variable_Type'\n(I2\nttRp2277\nsS'Y27:%RateA 24-33'\np2278\ng26\n(S'Variable_Type'\n(I2\nttRp2279\nsS'Y:PMachine106'\np2280\ng26\n(S'Variable_Type'\n(I2\nttRp2281\nsS'Y:PMachine107'\np2282\ng26\n(S'Variable_Type'\n(I2\nttRp2283\nsS'Y:PMachine104'\np2284\ng26\n(S'Variable_Type'\n(I2\nttRp2285\nsS'Y:VBus73'\np2286\ng26\n(S'Variable_Type'\n(I2\nttRp2287\nsS'Y:VBus74'\np2288\ng26\n(S'Variable_Type'\n(I2\nttRp2289\nsS'Y:VBus75'\np2290\ng26\n(S'Variable_Type'\n(I2\nttRp2291\nsS'Y:VBus76'\np2292\ng26\n(S'Variable_Type'\n(I2\nttRp2293\nsS'Y:PMachine101'\np2294\ng26\n(S'Variable_Type'\n(I2\nttRp2295\nsS'Y:VBus78'\np2296\ng26\n(S'Variable_Type'\n(I2\nttRp2297\nsS'Y:Load 59'\np2298\ng26\n(S'Variable_Type'\n(I2\nttRp2299\nsS'Y:PMachine115'\np2300\ng26\n(S'Variable_Type'\n(I2\nttRp2301\nsS'Y51:%RateA 53-54'\np2302\ng26\n(S'Variable_Type'\n(I1\nttRp2303\nsS'Y67:%RateA 108-109'\np2304\ng26\n(S'Variable_Type'\n(I1\nttRp2305\nsS'Y:PMachine109'\np2306\ng26\n(S'Variable_Type'\n(I2\nttRp2307\nsS'Y:PMachine83'\np2308\ng26\n(S'Variable_Type'\n(I2\nttRp2309\nsS'Y:PMachine81'\np2310\ng26\n(S'Variable_Type'\n(I2\nttRp2311\nsS'Y:PMachine86'\np2312\ng26\n(S'Variable_Type'\n(I2\nttRp2313\nsS'Y:Load 76'\np2314\ng26\n(S'Variable_Type'\n(I2\nttRp2315\nsS'Y:Load 74'\np2316\ng26\n(S'Variable_Type'\n(I2\nttRp2317\nsS'Y45:%RateA 36-37'\np2318\ng26\n(S'Variable_Type'\n(I2\nttRp2319\nsS'Y58:%RateA 78-79'\np2320\ng26\n(S'Variable_Type'\n(I1\nttRp2321\nsS'Y:Load 78'\np2322\ng26\n(S'Variable_Type'\n(I2\nttRp2323\nsS'X:Load(pu)'\np2324\ng26\n(S'Variable_Type'\n(I2\nttRp2325\nsS'Y5:%RateA 13-29'\np2326\ng26\n(S'Variable_Type'\n(I2\nttRp2327\nsS'Y:PMachine118'\np2328\ng26\n(S'Variable_Type'\n(I2\nttRp2329\nsS'Y1:%RateA 11-47'\np2330\ng26\n(S'Variable_Type'\n(I2\nttRp2331\nsS'Y:VBus60'\np2332\ng26\n(S'Variable_Type'\n(I2\nttRp2333\nsS'Y:PMachine137'\np2334\ng26\n(S'Variable_Type'\n(I1\nttRp2335\nsS'Y29:%RateA 25-29'\np2336\ng26\n(S'Variable_Type'\n(I2\nttRp2337\nsS'Y:VBus66'\np2338\ng26\n(S'Variable_Type'\n(I2\nttRp2339\nsS'Iteration'\np2340\ng26\n(S'Variable_Type'\n(I2\nttRp2341\nsS'Y36:%RateA 29-30'\np2342\ng26\n(S'Variable_Type'\n(I1\nttRp2343\nsS'Y54:%RateA 59-60'\np2344\ng26\n(S'Variable_Type'\n(I1\nttRp2345\nsS'Y:Load 90'\np2346\ng26\n(S'Variable_Type'\n(I2\nttRp2347\nsS'Y9:%RateA 16-32'\np2348\ng26\n(S'Variable_Type'\n(I2\nttRp2349\nsS'Y:PMachine134'\np2350\ng26\n(S'Variable_Type'\n(I1\nttRp2351\nsS'Y:Load 95'\np2352\ng26\n(S'Variable_Type'\n(I2\nttRp2353\nsS'Y:VBus63'\np2354\ng26\n(S'Variable_Type'\n(I2\nttRp2355\nsS'Y:VBus62'\np2356\ng26\n(S'Variable_Type'\n(I2\nttRp2357\nsS'Y:VBus61'\np2358\ng26\n(S'Variable_Type'\n(I2\nttRp2359\nsS'Y55:%RateA 61-62'\np2360\ng26\n(S'Variable_Type'\n(I1\nttRp2361\nsS'Y8:%RateA 15-35'\np2362\ng26\n(S'Variable_Type'\n(I2\nttRp2363\nsS'Y:PMachine136'\np2364\ng26\n(S'Variable_Type'\n(I1\nttRp2365\nsS'Y:PMachine135'\np2366\ng26\n(S'Variable_Type'\n(I1\nttRp2367\nsS'Y:VBus64'\np2368\ng26\n(S'Variable_Type'\n(I2\nttRp2369\nsS'Y:PMachine94'\np2370\ng26\n(S'Variable_Type'\n(I2\nttRp2371\nsS'Y:VBus69'\np2372\ng26\n(S'Variable_Type'\n(I2\nttRp2373\nsS'Y:VBus108'\np2374\ng26\n(S'Variable_Type'\n(I2\nttRp2375\nsS'Y:PMachine139'\np2376\ng26\n(S'Variable_Type'\n(I1\nttRp2377\nsS'Y:PMachine97'\np2378\ng26\n(S'Variable_Type'\n(I2\nttRp2379\nsS'Y:PMachine92'\np2380\ng26\n(S'Variable_Type'\n(I2\nttRp2381\nsS'Y:VBus68'\np2382\ng26\n(S'Variable_Type'\n(I2\nttRp2383\nsS'Y:Load 61'\np2384\ng26\n(S'Variable_Type'\n(I2\nttRp2385\nsS'Y:VBus89'\np2386\ng26\n(S'Variable_Type'\n(I2\nttRp2387\nsS'Y21:%RateA 21-43'\np2388\ng26\n(S'Variable_Type'\n(I2\nttRp2389\nsS'Y:PMachine90'\np2390\ng26\n(S'Variable_Type'\n(I2\nttRp2391\nsS'Y:PMachine14'\np2392\ng26\n(S'Variable_Type'\n(I2\nttRp2393\nsS'Y:PMachine63'\np2394\ng26\n(S'Variable_Type'\n(I2\nttRp2395\nsS'Y:PMachine93'\np2396\ng26\n(S'Variable_Type'\n(I2\nttRp2397\nsS'Y:PConsoTot'\np2398\ng26\n(S'Variable_Type'\n(I2\nttRp2399\nsS'Y23:%RateA 22-31'\np2400\ng26\n(S'Variable_Type'\n(I2\nttRp2401\nsS'Y19:%RateA 20-26'\np2402\ng26\n(S'Variable_Type'\n(I2\nttRp2403\nsS'Y:PMachine18'\np2404\ng26\n(S'Variable_Type'\n(I2\nttRp2405\nsS'Y:VBus34'\np2406\ng26\n(S'Variable_Type'\n(I2\nttRp2407\nsS'Y:NbeTension'\np2408\ng26\n(S'Variable_Type'\n(I2\nttRp2409\nsS'Y:PMachine128'\np2410\ng26\n(S'Variable_Type'\n(I2\nttRp2411\nsS'Y:PMachine129'\np2412\ng26\n(S'Variable_Type'\n(I2\nttRp2413\nsS'Y:VBus133'\np2414\ng26\n(S'Variable_Type'\n(I2\nttRp2415\nsS'Y:Load 82'\np2416\ng26\n(S'Variable_Type'\n(I2\nttRp2417\nsS'Y:PMachine125'\np2418\ng26\n(S'Variable_Type'\n(I2\nttRp2419\nsS'Y:PMachine126'\np2420\ng26\n(S'Variable_Type'\n(I2\nttRp2421\nsS'Y:PMachine127'\np2422\ng26\n(S'Variable_Type'\n(I2\nttRp2423\nsS'Y:Load 86'\np2424\ng26\n(S'Variable_Type'\n(I2\nttRp2425\nsS'Y:PMachine121'\np2426\ng26\n(S'Variable_Type'\n(I2\nttRp2427\nsS'Y:Load 84'\np2428\ng26\n(S'Variable_Type'\n(I2\nttRp2429\nsS'Y:PMachine123'\np2430\ng26\n(S'Variable_Type'\n(I2\nttRp2431\nsS'Y:Load 102'\np2432\ng26\n(S'Variable_Type'\n(I2\nttRp2433\nsS'Y:VBus57'\np2434\ng26\n(S'Variable_Type'\n(I2\nttRp2435\nsS'Y:Load 100'\np2436\ng26\n(S'Variable_Type'\n(I2\nttRp2437\nsS'Y:Load 101'\np2438\ng26\n(S'Variable_Type'\n(I2\nttRp2439\nsS'Y:VBus52'\np2440\ng26\n(S'Variable_Type'\n(I2\nttRp2441\nsS'Y:VBus53'\np2442\ng26\n(S'Variable_Type'\n(I2\nttRp2443\nsS'Y:Load 104'\np2444\ng26\n(S'Variable_Type'\n(I2\nttRp2445\nsS'Y:VBus51'\np2446\ng26\n(S'Variable_Type'\n(I2\nttRp2447\nsS'Y:Load 108'\np2448\ng26\n(S'Variable_Type'\n(I2\nttRp2449\nsS'Y64:%RateA 102-103'\np2450\ng26\n(S'Variable_Type'\n(I1\nttRp2451\nsS'Y:PMachine112'\np2452\ng26\n(S'Variable_Type'\n(I2\nttRp2453\nsS'Y:VBus58'\np2454\ng26\n(S'Variable_Type'\n(I2\nttRp2455\nsS'Y:VBus59'\np2456\ng26\n(S'Variable_Type'\n(I2\nttRp2457\nsS'Y:Load 53'\np2458\ng26\n(S'Variable_Type'\n(I2\nttRp2459\nsS'Y10:%RateA 16-47'\np2460\ng26\n(S'Variable_Type'\n(I2\nttRp2461\nsS'Y:PMachine54'\np2462\ng26\n(S'Variable_Type'\n(I2\nttRp2463\nsS'Y:VBus56'\np2464\ng26\n(S'Variable_Type'\n(I2\nttRp2465\nsS'Y3:%RateA 12-24'\np2466\ng26\n(S'Variable_Type'\n(I2\nttRp2467\nsS'Y11:%RateA 17-27'\np2468\ng26\n(S'Variable_Type'\n(I2\nttRp2469\nsS'Y:PMachine114'\np2470\ng26\n(S'Variable_Type'\n(I2\nttRp2471\nsS'Y:VBus72'\np2472\ng26\n(S'Variable_Type'\n(I2\nttRp2473\nsS'Y:PMachine60'\np2474\ng26\n(S'Variable_Type'\n(I2\nttRp2475\nsS'Y:PMachine61'\np2476\ng26\n(S'Variable_Type'\n(I1\nttRp2477\nsS'Y:PMachine62'\np2478\ng26\n(S'Variable_Type'\n(I2\nttRp2479\nsS'Y:PMachine105'\np2480\ng26\n(S'Variable_Type'\n(I2\nttRp2481\nsS'Y:PMachine64'\np2482\ng26\n(S'Variable_Type'\n(I2\nttRp2483\nsS'Y:PMachine65'\np2484\ng26\n(S'Variable_Type'\n(I2\nttRp2485\nsS'Y:PMachine66'\np2486\ng26\n(S'Variable_Type'\n(I2\nttRp2487\nsS'Y:PMachine67'\np2488\ng26\n(S'Variable_Type'\n(I2\nttRp2489\nsS'Y:PMachine68'\np2490\ng26\n(S'Variable_Type'\n(I2\nttRp2491\nsS'Y:PMachine102'\np2492\ng26\n(S'Variable_Type'\n(I2\nttRp2493\nsS'X:ProdPV%Pnom'\np2494\ng26\n(S'Variable_Type'\n(I2\nttRp2495\nsS'Y:VBus138'\np2496\ng26\n(S'Variable_Type'\n(I2\nttRp2497\nsS'Y26:%RateA 24-25'\np2498\ng26\n(S'Variable_Type'\n(I1\nttRp2499\nssg628\n(dp2500\nsg630\n(dp2501\ng1879\n(S'Y:PMachine18'\np2502\ng2405\ntp2503\nsg1882\n(g636\nI0\ntp2504\nsg1884\n(g2502\ng2405\ntp2505\nsg1886\n(S''\nI0\ntp2506\nsg1888\n(S''\nI0\ntp2507\nsg1890\n(NI-2\ntp2508\nsg1892\n((lI-2\ntp2509\nssg648\nF1369930725.322\nsba(iOWContexts\nContext\np2510\n(dp2511\ng20\n(lp2512\nS'orderedDomain'\np2513\nasg23\n(dp2514\nS'X:Interco(bin)'\np2515\ng26\n(S'Variable_Type'\n(I1\nttRp2516\nsS'X:Load(pu)'\np2517\ng26\n(S'Variable_Type'\n(I2\nttRp2518\nsS'X:ProdEolienne%Pnom'\np2519\ng26\n(S'Variable_Type'\n(I2\nttRp2520\nssg628\n(dp2521\nsg630\n(dp2522\nS'attribute'\np2523\n(S'X:Load(pu)'\np2524\ng2518\ntp2525\nsS'yaxisTitle'\np2526\n(S'frequency'\nI0\ntp2527\nsS'xaxisTitle'\np2528\n(g2524\ng2518\ntp2529\nsS'mainTitle'\np2530\n(S''\nI0\ntp2531\nsS'yPaxisTitle'\np2532\n(S''\nI0\ntp2533\nsS'targetValue'\np2534\n(NI-2\ntp2535\nsS'visibleOutcomes'\np2536\n((lI-2\ntp2537\nssg648\nF1368453819.7379999\nsba(iOWContexts\nContext\np2538\n(dp2539\ng630\n(dp2540\nS'attribute'\np2541\n(S'Y:%RateA 104-105'\np2542\ng26\n(S'Variable_Type'\n(I1\nttRp2543\ntp2544\nsS'yaxisTitle'\np2545\n(S'frequency'\nI0\ntp2546\nsS'xaxisTitle'\np2547\n(g2542\ng2543\ntp2548\nsS'mainTitle'\np2549\n(S''\nI0\ntp2550\nsS'yPaxisTitle'\np2551\n(S''\nI0\ntp2552\nsS'targetValue'\np2553\n(I1\nI-2\ntp2554\nsS'visibleOutcomes'\np2555\n((lp2556\nI0\naI-2\ntp2557\nssg23\n(dp2558\nS'Y:NbeTension'\np2559\ng26\n(S'Variable_Type'\n(I1\nttRp2560\nsS'Y:%RateA 29-30'\np2561\ng26\n(S'Variable_Type'\n(I1\nttRp2562\nsS'Y:%RateA 61-62'\np2563\ng26\n(S'Variable_Type'\n(I1\nttRp2564\nsS'Y:%RateA 76-77'\np2565\ng26\n(S'Variable_Type'\n(I1\nttRp2566\nsS'Y:PMachine114'\np2567\ng26\n(S'Variable_Type'\n(I1\nttRp2568\nsS'Y:%RateA 55-56'\np2569\ng26\n(S'Variable_Type'\n(I1\nttRp2570\nsS'Y:%RateA 59-60'\np2571\ng26\n(S'Variable_Type'\n(I1\nttRp2572\nsS'Y:%RateA 102-103'\np2573\ng26\n(S'Variable_Type'\n(I1\nttRp2574\nsS'Y:PMachine90'\np2575\ng26\n(S'Variable_Type'\n(I1\nttRp2576\nsS'Y:%RateA 106-107'\np2577\ng26\n(S'Variable_Type'\n(I1\nttRp2578\nsS'Y:NbeTransit'\np2579\ng26\n(S'Variable_Type'\n(I1\nttRp2580\nsS'Y:PMachine54'\np2581\ng26\n(S'Variable_Type'\n(I1\nttRp2582\nsS'Y:PMachine75'\np2583\ng26\n(S'Variable_Type'\n(I1\nttRp2584\nsS'Y:%RateA 22-23'\np2585\ng26\n(S'Variable_Type'\n(I1\nttRp2586\nsS'Y:%RateA 53-54'\np2587\ng26\n(S'Variable_Type'\n(I1\nttRp2588\nsS'Y:%RateA 108-109'\np2589\ng26\n(S'Variable_Type'\n(I1\nttRp2590\nsS'X:Interco(bin)'\np2591\ng26\n(S'Variable_Type'\n(I1\nttRp2592\nsS'Y:%RateA 14-15'\np2593\ng26\n(S'Variable_Type'\n(I1\nttRp2594\nsS'Y:%RateA 51-52'\np2595\ng26\n(S'Variable_Type'\n(I1\nttRp2596\nsS'Y:PMachine74'\np2597\ng26\n(S'Variable_Type'\n(I1\nttRp2598\nsS'Y:%RateA 57-58'\np2599\ng26\n(S'Variable_Type'\n(I1\nttRp2600\nsS'Y:PMachine106'\np2601\ng26\n(S'Variable_Type'\n(I1\nttRp2602\nsS'Y:PMachine107'\np2603\ng26\n(S'Variable_Type'\n(I1\nttRp2604\nsS'Y:%RateA 86-87'\np2605\ng26\n(S'Variable_Type'\n(I1\nttRp2606\nsS'Y:%RateA 95-96'\np2607\ng26\n(S'Variable_Type'\n(I1\nttRp2608\nsS'Y:%RateA 24-25'\np2609\ng26\n(S'Variable_Type'\n(I1\nttRp2610\nsS'Y:%RateA 82-83'\np2611\ng26\n(S'Variable_Type'\n(I1\nttRp2612\nsS'Y:PMachine86'\np2613\ng26\n(S'Variable_Type'\n(I1\nttRp2614\nsS'Y:%RateA 78-79'\np2615\ng26\n(S'Variable_Type'\n(I1\nttRp2616\nsS'Y:%RateA 112-113'\np2617\ncOrange.core\nStringList\np2618\n(tRp2619\nS'0'\naS'CSAMPO31    -CSAMPO32'\na(dbsS'Y:%RateA 104-105'\np2620\ng2543\nsS'Y:PMachine61'\np2621\ng26\n(S'Variable_Type'\n(I1\nttRp2622\nsS'Y:%RateA 80-81'\np2623\ng26\n(S'Variable_Type'\n(I1\nttRp2624\nsS'Y:PMachine29'\np2625\ng26\n(S'Variable_Type'\n(I1\nttRp2626\nsS'Y:%RateA 84-85'\np2627\ng26\n(S'Variable_Type'\n(I1\nttRp2628\nsS'Y:%RateA 72-73'\np2629\ng26\n(S'Variable_Type'\n(I1\nttRp2630\nssg628\n(dp2631\nsg20\n(lp2632\nS'orderedDomain'\np2633\nasg648\nF1368433401.563\nsba(iOWContexts\nContext\np2634\n(dp2635\ng630\n(dp2636\nS'attribute'\np2637\n(S'Y:%RateA 104-105'\np2638\ng26\n(S'Variable_Type'\n(I1\nttRp2639\ntp2640\nsS'yaxisTitle'\np2641\n(S'frequency'\nI0\ntp2642\nsS'xaxisTitle'\np2643\n(g2638\ng2639\ntp2644\nsS'mainTitle'\np2645\n(S''\nI0\ntp2646\nsS'yPaxisTitle'\np2647\n(S''\nI0\ntp2648\nsS'targetValue'\np2649\n(I1\nI-2\ntp2650\nsS'visibleOutcomes'\np2651\n((lp2652\nI0\naI-2\ntp2653\nssg23\n(dp2654\nS'Y:NbeTension'\np2655\ng26\n(S'Variable_Type'\n(I1\nttRp2656\nsS'Y:%RateA 29-30'\np2657\ng26\n(S'Variable_Type'\n(I1\nttRp2658\nsS'Y:%RateA 61-62'\np2659\ng26\n(S'Variable_Type'\n(I1\nttRp2660\nsS'Y:%RateA 76-77'\np2661\ng26\n(S'Variable_Type'\n(I1\nttRp2662\nsS'Y:PMachine114'\np2663\ng26\n(S'Variable_Type'\n(I1\nttRp2664\nsS'Y:%RateA 55-56'\np2665\ng26\n(S'Variable_Type'\n(I1\nttRp2666\nsS'Y:%RateA 59-60'\np2667\ng26\n(S'Variable_Type'\n(I1\nttRp2668\nsS'Y:%RateA 102-103'\np2669\ng26\n(S'Variable_Type'\n(I1\nttRp2670\nsS'Y:PMachine90'\np2671\ng26\n(S'Variable_Type'\n(I1\nttRp2672\nsS'Y:%RateA 106-107'\np2673\ng26\n(S'Variable_Type'\n(I1\nttRp2674\nsS'Y:NbeTransit'\np2675\ng26\n(S'Variable_Type'\n(I1\nttRp2676\nsS'Y:PMachine54'\np2677\ng26\n(S'Variable_Type'\n(I1\nttRp2678\nsS'Y:PMachine75'\np2679\ng26\n(S'Variable_Type'\n(I1\nttRp2680\nsS'Y:%RateA 22-23'\np2681\ng26\n(S'Variable_Type'\n(I1\nttRp2682\nsS'Y:%RateA 53-54'\np2683\ng26\n(S'Variable_Type'\n(I1\nttRp2684\nsS'Y:%RateA 108-109'\np2685\ng26\n(S'Variable_Type'\n(I1\nttRp2686\nsS'X:Interco(bin)'\np2687\ng26\n(S'Variable_Type'\n(I1\nttRp2688\nsS'Y:%RateA 14-15'\np2689\ng26\n(S'Variable_Type'\n(I1\nttRp2690\nsS'Y:%RateA 51-52'\np2691\ng26\n(S'Variable_Type'\n(I1\nttRp2692\nsS'Y:PMachine74'\np2693\ng26\n(S'Variable_Type'\n(I1\nttRp2694\nsS'Y:%RateA 57-58'\np2695\ng26\n(S'Variable_Type'\n(I1\nttRp2696\nsS'Y:PMachine106'\np2697\ng26\n(S'Variable_Type'\n(I1\nttRp2698\nsS'Y:PMachine107'\np2699\ng26\n(S'Variable_Type'\n(I1\nttRp2700\nsS'Y:%RateA 86-87'\np2701\ng26\n(S'Variable_Type'\n(I1\nttRp2702\nsS'Y:%RateA 95-96'\np2703\ng26\n(S'Variable_Type'\n(I1\nttRp2704\nsS'Y:%RateA 24-25'\np2705\ng26\n(S'Variable_Type'\n(I1\nttRp2706\nsS'Y:%RateA 82-83'\np2707\ng26\n(S'Variable_Type'\n(I1\nttRp2708\nsS'Y:PMachine86'\np2709\ng26\n(S'Variable_Type'\n(I1\nttRp2710\nsS'Y:%RateA 78-79'\np2711\ng26\n(S'Variable_Type'\n(I1\nttRp2712\nsS'Y:%RateA 112-113'\np2713\ng2618\n(tRp2714\nS'0'\naS'CSAMPO31    -CSAMPO32'\na(dbsS'Y:%RateA 104-105'\np2715\ng2639\nsS'Y:PMachine61'\np2716\ng26\n(S'Variable_Type'\n(I1\nttRp2717\nsS'Y:%RateA 80-81'\np2718\ng26\n(S'Variable_Type'\n(I1\nttRp2719\nsS'Y:PMachine29'\np2720\ng26\n(S'Variable_Type'\n(I1\nttRp2721\nsS'Y:%RateA 84-85'\np2722\ng26\n(S'Variable_Type'\n(I1\nttRp2723\nsS'Y:%RateA 72-73'\np2724\ng26\n(S'Variable_Type'\n(I1\nttRp2725\nssg628\n(dp2726\nsg20\n(lp2727\nS'orderedDomain'\np2728\nasg648\nF1368433401.563\nsba(iOWContexts\nContext\np2729\n(dp2730\ng20\n(lp2731\nS'orderedDomain'\np2732\nasg23\n(dp2733\nS'Y:%RateA 59-60'\np2734\ng26\n(S'Variable_Type'\n(I1\nttRp2735\nsS'Y:%RateA 29-30'\np2736\ng26\n(S'Variable_Type'\n(I1\nttRp2737\nsS'Y:%RateA 61-62'\np2738\ng26\n(S'Variable_Type'\n(I1\nttRp2739\nsS'Y:%RateA 76-77'\np2740\ng26\n(S'Variable_Type'\n(I1\nttRp2741\nsS'Y:PMachine114'\np2742\ng26\n(S'Variable_Type'\n(I1\nttRp2743\nsS'Y:VBus61'\np2744\ng26\n(S'Variable_Type'\n(I1\nttRp2745\nsS'Y:PMachine116'\np2746\ng26\n(S'Variable_Type'\n(I1\nttRp2747\nsS'Y:PMachine111'\np2748\ng26\n(S'Variable_Type'\n(I1\nttRp2749\nsS'Y:%RateA 55-56'\np2750\ng26\n(S'Variable_Type'\n(I1\nttRp2751\nsS'Y:PMachine113'\np2752\ng26\n(S'Variable_Type'\n(I1\nttRp2753\nsS'Y:PMachine112'\np2754\ng26\n(S'Variable_Type'\n(I1\nttRp2755\nsS'Y:PMachine94'\np2756\ng26\n(S'Variable_Type'\n(I1\nttRp2757\nsS'Y:%RateA 102-103'\np2758\ng26\n(S'Variable_Type'\n(I1\nttRp2759\nsS'Y:PMachine90'\np2760\ng26\n(S'Variable_Type'\n(I1\nttRp2761\nsS'Y:PMachine93'\np2762\ng26\n(S'Variable_Type'\n(I1\nttRp2763\nsS'Y:NbeTransit'\np2764\ng26\n(S'Variable_Type'\n(I1\nttRp2765\nsS'Y:PMachine54'\np2766\ng26\n(S'Variable_Type'\n(I1\nttRp2767\nsS'Y:PMachine73'\np2768\ng26\n(S'Variable_Type'\n(I1\nttRp2769\nsS'Y:PMachine72'\np2770\ng26\n(S'Variable_Type'\n(I1\nttRp2771\nsS'Y:%RateA 80-81'\np2772\ng26\n(S'Variable_Type'\n(I1\nttRp2773\nsS'Y:PMachine74'\np2774\ng26\n(S'Variable_Type'\n(I1\nttRp2775\nsS'Y:%RateA 53-54'\np2776\ng26\n(S'Variable_Type'\n(I1\nttRp2777\nsS'Y:%RateA 108-109'\np2778\ng26\n(S'Variable_Type'\n(I1\nttRp2779\nsS'X:Interco(bin)'\np2780\ng26\n(S'Variable_Type'\n(I1\nttRp2781\nsS'Y:%RateA 14-15'\np2782\ng26\n(S'Variable_Type'\n(I1\nttRp2783\nsS'Y:%RateA 22-23'\np2784\ng26\n(S'Variable_Type'\n(I1\nttRp2785\nsS'Y:%RateA 57-58'\np2786\ng26\n(S'Variable_Type'\n(I1\nttRp2787\nsS'Y:PMachine106'\np2788\ng26\n(S'Variable_Type'\n(I1\nttRp2789\nsS'Y:PMachine107'\np2790\ng26\n(S'Variable_Type'\n(I1\nttRp2791\nsS'Y:%RateA 106-107'\np2792\ng26\n(S'Variable_Type'\n(I1\nttRp2793\nsS'Y:%RateA 51-52'\np2794\ng26\n(S'Variable_Type'\n(I1\nttRp2795\nsS'Y:%RateA 24-25'\np2796\ng26\n(S'Variable_Type'\n(I1\nttRp2797\nsS'Y:%RateA 82-83'\np2798\ng26\n(S'Variable_Type'\n(I1\nttRp2799\nsS'Y:%RateA 72-73'\np2800\ng26\n(S'Variable_Type'\n(I1\nttRp2801\nsS'Y:PMachine86'\np2802\ng26\n(S'Variable_Type'\n(I1\nttRp2803\nsS'Y:%RateA 78-79'\np2804\ng26\n(S'Variable_Type'\n(I1\nttRp2805\nsS'Y:VBus62'\np2806\ng26\n(S'Variable_Type'\n(I1\nttRp2807\nsS'Y:PMachine42'\np2808\ng26\n(S'Variable_Type'\n(I1\nttRp2809\nsS'Y:PMachine117'\np2810\ng26\n(S'Variable_Type'\n(I1\nttRp2811\nsS'Y:%RateA 112-113'\np2812\ng2618\n(tRp2813\nS'0'\naS'CSAMPO31    -CSAMPO32'\na(dbsS'Y:%RateA 104-105'\np2814\ng26\n(S'Variable_Type'\n(I1\nttRp2815\nsS'Y:PMachine61'\np2816\ng26\n(S'Variable_Type'\n(I1\nttRp2817\nsS'Y:%RateA 86-87'\np2818\ng26\n(S'Variable_Type'\n(I1\nttRp2819\nsS'Y:PMachine29'\np2820\ng26\n(S'Variable_Type'\n(I1\nttRp2821\nsS'Y:%RateA 84-85'\np2822\ng26\n(S'Variable_Type'\n(I1\nttRp2823\nsS'Y:%RateA 95-96'\np2824\ng26\n(S'Variable_Type'\n(I1\nttRp2825\nssg628\n(dp2826\nsg630\n(dp2827\nS'attribute'\np2828\n(S'X:Interco(bin)'\np2829\ng2781\ntp2830\nsS'yaxisTitle'\np2831\n(S'frequency'\nI0\ntp2832\nsS'xaxisTitle'\np2833\n(g2829\ng2781\ntp2834\nsS'mainTitle'\np2835\n(S''\nI0\ntp2836\nsS'yPaxisTitle'\np2837\n(S''\nI0\ntp2838\nsS'targetValue'\np2839\n(I0\nI-2\ntp2840\nsS'visibleOutcomes'\np2841\n((lp2842\nI0\naI1\naI-2\ntp2843\nssg648\nF1367937614.72\nsba(iOWContexts\nContext\np2844\n(dp2845\ng20\n(lp2846\nS'orderedDomain'\np2847\nasg23\n(dp2848\nS'Y:%RateA 59-60'\np2849\ng26\n(S'Variable_Type'\n(I1\nttRp2850\nsS'Y:%RateA 29-30'\np2851\ng26\n(S'Variable_Type'\n(I1\nttRp2852\nsS'Y:%RateA 61-62'\np2853\ng26\n(S'Variable_Type'\n(I1\nttRp2854\nsS'Y:%RateA 76-77'\np2855\ng26\n(S'Variable_Type'\n(I1\nttRp2856\nsS'Y:PMachine114'\np2857\ng26\n(S'Variable_Type'\n(I1\nttRp2858\nsS'Y:VBus61'\np2859\ng26\n(S'Variable_Type'\n(I1\nttRp2860\nsS'Y:PMachine116'\np2861\ng26\n(S'Variable_Type'\n(I1\nttRp2862\nsS'Y:PMachine111'\np2863\ng26\n(S'Variable_Type'\n(I1\nttRp2864\nsS'Y:%RateA 55-56'\np2865\ng26\n(S'Variable_Type'\n(I1\nttRp2866\nsS'Y:PMachine113'\np2867\ng26\n(S'Variable_Type'\n(I1\nttRp2868\nsS'Y:PMachine112'\np2869\ng26\n(S'Variable_Type'\n(I1\nttRp2870\nsS'Y:PMachine94'\np2871\ng26\n(S'Variable_Type'\n(I1\nttRp2872\nsS'Y:%RateA 102-103'\np2873\ng26\n(S'Variable_Type'\n(I1\nttRp2874\nsS'Y:PMachine90'\np2875\ng26\n(S'Variable_Type'\n(I1\nttRp2876\nsS'Y:PMachine93'\np2877\ng26\n(S'Variable_Type'\n(I1\nttRp2878\nsS'Y:NbeTransit'\np2879\ng26\n(S'Variable_Type'\n(I1\nttRp2880\nsS'Y:PMachine54'\np2881\ng26\n(S'Variable_Type'\n(I1\nttRp2882\nsS'Y:PMachine73'\np2883\ng26\n(S'Variable_Type'\n(I1\nttRp2884\nsS'Y:PMachine72'\np2885\ng26\n(S'Variable_Type'\n(I1\nttRp2886\nsS'Y:%RateA 80-81'\np2887\ng26\n(S'Variable_Type'\n(I1\nttRp2888\nsS'Y:PMachine74'\np2889\ng26\n(S'Variable_Type'\n(I1\nttRp2890\nsS'Y:%RateA 53-54'\np2891\ng26\n(S'Variable_Type'\n(I1\nttRp2892\nsS'Y:%RateA 108-109'\np2893\ng26\n(S'Variable_Type'\n(I1\nttRp2894\nsS'X:Interco(bin)'\np2895\ng26\n(S'Variable_Type'\n(I1\nttRp2896\nsS'Y:%RateA 14-15'\np2897\ng26\n(S'Variable_Type'\n(I1\nttRp2898\nsS'Y:%RateA 22-23'\np2899\ng26\n(S'Variable_Type'\n(I1\nttRp2900\nsS'Y:%RateA 57-58'\np2901\ng26\n(S'Variable_Type'\n(I1\nttRp2902\nsS'Y:PMachine106'\np2903\ng26\n(S'Variable_Type'\n(I1\nttRp2904\nsS'Y:PMachine107'\np2905\ng26\n(S'Variable_Type'\n(I1\nttRp2906\nsS'Y:%RateA 106-107'\np2907\ng26\n(S'Variable_Type'\n(I1\nttRp2908\nsS'Y:%RateA 51-52'\np2909\ng26\n(S'Variable_Type'\n(I1\nttRp2910\nsS'Y:%RateA 24-25'\np2911\ng26\n(S'Variable_Type'\n(I1\nttRp2912\nsS'Y:%RateA 82-83'\np2913\ng26\n(S'Variable_Type'\n(I1\nttRp2914\nsS'Y:%RateA 72-73'\np2915\ng26\n(S'Variable_Type'\n(I1\nttRp2916\nsS'Y:PMachine86'\np2917\ng26\n(S'Variable_Type'\n(I1\nttRp2918\nsS'Y:%RateA 78-79'\np2919\ng26\n(S'Variable_Type'\n(I1\nttRp2920\nsS'Y:VBus62'\np2921\ng26\n(S'Variable_Type'\n(I1\nttRp2922\nsS'Y:PMachine42'\np2923\ng26\n(S'Variable_Type'\n(I1\nttRp2924\nsS'Y:PMachine117'\np2925\ng26\n(S'Variable_Type'\n(I1\nttRp2926\nsS'Y:%RateA 112-113'\np2927\ng2618\n(tRp2928\nS'0'\naS'CSAMPO31    -CSAMPO32'\na(dbsS'Y:%RateA 104-105'\np2929\ng26\n(S'Variable_Type'\n(I1\nttRp2930\nsS'Y:PMachine61'\np2931\ng26\n(S'Variable_Type'\n(I1\nttRp2932\nsS'Y:%RateA 86-87'\np2933\ng26\n(S'Variable_Type'\n(I1\nttRp2934\nsS'Y:PMachine29'\np2935\ng26\n(S'Variable_Type'\n(I1\nttRp2936\nsS'Y:%RateA 84-85'\np2937\ng26\n(S'Variable_Type'\n(I1\nttRp2938\nsS'Y:%RateA 95-96'\np2939\ng26\n(S'Variable_Type'\n(I1\nttRp2940\nssg628\n(dp2941\nsg630\n(dp2942\nS'attribute'\np2943\n(S'X:Interco(bin)'\np2944\ng2896\ntp2945\nsS'yaxisTitle'\np2946\n(S'frequency'\nI0\ntp2947\nsS'xaxisTitle'\np2948\n(g2944\ng2896\ntp2949\nsS'mainTitle'\np2950\n(S''\nI0\ntp2951\nsS'yPaxisTitle'\np2952\n(S''\nI0\ntp2953\nsS'targetValue'\np2954\n(I0\nI-2\ntp2955\nsS'visibleOutcomes'\np2956\n((lp2957\nI0\naI1\naI-2\ntp2958\nssg648\nF1367937614.72\nsba(iOWContexts\nContext\np2959\n(dp2960\ng20\n(lp2961\nS'orderedDomain'\np2962\nasg23\n(dp2963\nS'Y:%RateA 59-60'\np2964\ng26\n(S'Variable_Type'\n(I1\nttRp2965\nsS'Y:%RateA 29-30'\np2966\ng26\n(S'Variable_Type'\n(I1\nttRp2967\nsS'Y:%RateA 61-62'\np2968\ng26\n(S'Variable_Type'\n(I1\nttRp2969\nsS'Y:%RateA 76-77'\np2970\ng26\n(S'Variable_Type'\n(I1\nttRp2971\nsS'Y:PMachine114'\np2972\ng26\n(S'Variable_Type'\n(I1\nttRp2973\nsS'Y:VBus61'\np2974\ng26\n(S'Variable_Type'\n(I1\nttRp2975\nsS'Y:PMachine116'\np2976\ng26\n(S'Variable_Type'\n(I1\nttRp2977\nsS'Y:PMachine111'\np2978\ng26\n(S'Variable_Type'\n(I1\nttRp2979\nsS'Y:%RateA 55-56'\np2980\ng26\n(S'Variable_Type'\n(I1\nttRp2981\nsS'Y:PMachine113'\np2982\ng26\n(S'Variable_Type'\n(I1\nttRp2983\nsS'Y:PMachine112'\np2984\ng26\n(S'Variable_Type'\n(I1\nttRp2985\nsS'Y:PMachine94'\np2986\ng26\n(S'Variable_Type'\n(I1\nttRp2987\nsS'Y:%RateA 102-103'\np2988\ng26\n(S'Variable_Type'\n(I1\nttRp2989\nsS'Y:PMachine90'\np2990\ng26\n(S'Variable_Type'\n(I1\nttRp2991\nsS'Y:PMachine93'\np2992\ng26\n(S'Variable_Type'\n(I1\nttRp2993\nsS'Y:NbeTransit'\np2994\ng26\n(S'Variable_Type'\n(I1\nttRp2995\nsS'Y:PMachine54'\np2996\ng26\n(S'Variable_Type'\n(I1\nttRp2997\nsS'Y:PMachine73'\np2998\ng26\n(S'Variable_Type'\n(I1\nttRp2999\nsS'Y:PMachine72'\np3000\ng26\n(S'Variable_Type'\n(I1\nttRp3001\nsS'Y:%RateA 80-81'\np3002\ng26\n(S'Variable_Type'\n(I1\nttRp3003\nsS'Y:PMachine74'\np3004\ng26\n(S'Variable_Type'\n(I1\nttRp3005\nsS'Y:%RateA 53-54'\np3006\ng26\n(S'Variable_Type'\n(I1\nttRp3007\nsS'Y:%RateA 108-109'\np3008\ng26\n(S'Variable_Type'\n(I1\nttRp3009\nsS'X:Interco(bin)'\np3010\ng26\n(S'Variable_Type'\n(I1\nttRp3011\nsS'Y:%RateA 14-15'\np3012\ng26\n(S'Variable_Type'\n(I1\nttRp3013\nsS'Y:%RateA 22-23'\np3014\ng26\n(S'Variable_Type'\n(I1\nttRp3015\nsS'Y:%RateA 57-58'\np3016\ng26\n(S'Variable_Type'\n(I1\nttRp3017\nsS'Y:PMachine106'\np3018\ng26\n(S'Variable_Type'\n(I1\nttRp3019\nsS'Y:PMachine107'\np3020\ng26\n(S'Variable_Type'\n(I1\nttRp3021\nsS'Y:%RateA 106-107'\np3022\ng26\n(S'Variable_Type'\n(I1\nttRp3023\nsS'Y:%RateA 51-52'\np3024\ng26\n(S'Variable_Type'\n(I1\nttRp3025\nsS'Y:%RateA 24-25'\np3026\ng26\n(S'Variable_Type'\n(I1\nttRp3027\nsS'Y:%RateA 82-83'\np3028\ng26\n(S'Variable_Type'\n(I1\nttRp3029\nsS'Y:%RateA 72-73'\np3030\ng26\n(S'Variable_Type'\n(I1\nttRp3031\nsS'Y:PMachine86'\np3032\ng26\n(S'Variable_Type'\n(I1\nttRp3033\nsS'Y:%RateA 78-79'\np3034\ng26\n(S'Variable_Type'\n(I1\nttRp3035\nsS'Y:VBus62'\np3036\ng26\n(S'Variable_Type'\n(I1\nttRp3037\nsS'Y:PMachine42'\np3038\ng26\n(S'Variable_Type'\n(I1\nttRp3039\nsS'Y:PMachine117'\np3040\ng26\n(S'Variable_Type'\n(I1\nttRp3041\nsS'Y:%RateA 112-113'\np3042\ng2618\n(tRp3043\nS'0'\naS'CSAMPO31    -CSAMPO32'\na(dbsS'Y:%RateA 104-105'\np3044\ng26\n(S'Variable_Type'\n(I1\nttRp3045\nsS'Y:PMachine61'\np3046\ng26\n(S'Variable_Type'\n(I1\nttRp3047\nsS'Y:%RateA 86-87'\np3048\ng26\n(S'Variable_Type'\n(I1\nttRp3049\nsS'Y:PMachine29'\np3050\ng26\n(S'Variable_Type'\n(I1\nttRp3051\nsS'Y:%RateA 84-85'\np3052\ng26\n(S'Variable_Type'\n(I1\nttRp3053\nsS'Y:%RateA 95-96'\np3054\ng26\n(S'Variable_Type'\n(I1\nttRp3055\nssg628\n(dp3056\nsg630\n(dp3057\nS'attribute'\np3058\n(S'X:Interco(bin)'\np3059\ng3011\ntp3060\nsS'yaxisTitle'\np3061\n(S'frequency'\nI0\ntp3062\nsS'xaxisTitle'\np3063\n(g3059\ng3011\ntp3064\nsS'mainTitle'\np3065\n(S''\nI0\ntp3066\nsS'yPaxisTitle'\np3067\n(S''\nI0\ntp3068\nsS'targetValue'\np3069\n(I0\nI-2\ntp3070\nsS'visibleOutcomes'\np3071\n((lp3072\nI0\naI1\naI-2\ntp3073\nssg648\nF1367937614.72\nsba(iOWContexts\nContext\np3074\n(dp3075\ng20\n(lp3076\nS'orderedDomain'\np3077\nasg23\n(dp3078\nS'Y:%RateA 59-60'\np3079\ng26\n(S'Variable_Type'\n(I1\nttRp3080\nsS'Y:%RateA 29-30'\np3081\ng26\n(S'Variable_Type'\n(I1\nttRp3082\nsS'Y:%RateA 61-62'\np3083\ng26\n(S'Variable_Type'\n(I1\nttRp3084\nsS'Y:%RateA 76-77'\np3085\ng26\n(S'Variable_Type'\n(I1\nttRp3086\nsS'Y:PMachine114'\np3087\ng26\n(S'Variable_Type'\n(I1\nttRp3088\nsS'Y:VBus61'\np3089\ng26\n(S'Variable_Type'\n(I1\nttRp3090\nsS'Y:PMachine116'\np3091\ng26\n(S'Variable_Type'\n(I1\nttRp3092\nsS'Y:PMachine111'\np3093\ng26\n(S'Variable_Type'\n(I1\nttRp3094\nsS'Y:%RateA 55-56'\np3095\ng26\n(S'Variable_Type'\n(I1\nttRp3096\nsS'Y:PMachine113'\np3097\ng26\n(S'Variable_Type'\n(I1\nttRp3098\nsS'Y:PMachine112'\np3099\ng26\n(S'Variable_Type'\n(I1\nttRp3100\nsS'Y:PMachine94'\np3101\ng26\n(S'Variable_Type'\n(I1\nttRp3102\nsS'Y:%RateA 102-103'\np3103\ng26\n(S'Variable_Type'\n(I1\nttRp3104\nsS'Y:PMachine90'\np3105\ng26\n(S'Variable_Type'\n(I1\nttRp3106\nsS'Y:PMachine93'\np3107\ng26\n(S'Variable_Type'\n(I1\nttRp3108\nsS'Y:NbeTransit'\np3109\ng26\n(S'Variable_Type'\n(I1\nttRp3110\nsS'Y:PMachine54'\np3111\ng26\n(S'Variable_Type'\n(I1\nttRp3112\nsS'Y:PMachine73'\np3113\ng26\n(S'Variable_Type'\n(I1\nttRp3114\nsS'Y:PMachine72'\np3115\ng26\n(S'Variable_Type'\n(I1\nttRp3116\nsS'Y:%RateA 80-81'\np3117\ng26\n(S'Variable_Type'\n(I1\nttRp3118\nsS'Y:PMachine74'\np3119\ng26\n(S'Variable_Type'\n(I1\nttRp3120\nsS'Y:%RateA 53-54'\np3121\ng26\n(S'Variable_Type'\n(I1\nttRp3122\nsS'Y:%RateA 108-109'\np3123\ng26\n(S'Variable_Type'\n(I1\nttRp3124\nsS'X:Interco(bin)'\np3125\ng26\n(S'Variable_Type'\n(I1\nttRp3126\nsS'Y:%RateA 14-15'\np3127\ng26\n(S'Variable_Type'\n(I1\nttRp3128\nsS'Y:%RateA 22-23'\np3129\ng26\n(S'Variable_Type'\n(I1\nttRp3130\nsS'Y:%RateA 57-58'\np3131\ng26\n(S'Variable_Type'\n(I1\nttRp3132\nsS'Y:PMachine106'\np3133\ng26\n(S'Variable_Type'\n(I1\nttRp3134\nsS'Y:PMachine107'\np3135\ng26\n(S'Variable_Type'\n(I1\nttRp3136\nsS'Y:%RateA 106-107'\np3137\ng26\n(S'Variable_Type'\n(I1\nttRp3138\nsS'Y:%RateA 51-52'\np3139\ng26\n(S'Variable_Type'\n(I1\nttRp3140\nsS'Y:%RateA 24-25'\np3141\ng26\n(S'Variable_Type'\n(I1\nttRp3142\nsS'Y:%RateA 82-83'\np3143\ng26\n(S'Variable_Type'\n(I1\nttRp3144\nsS'Y:%RateA 72-73'\np3145\ng26\n(S'Variable_Type'\n(I1\nttRp3146\nsS'Y:PMachine86'\np3147\ng26\n(S'Variable_Type'\n(I1\nttRp3148\nsS'Y:%RateA 78-79'\np3149\ng26\n(S'Variable_Type'\n(I1\nttRp3150\nsS'Y:VBus62'\np3151\ng26\n(S'Variable_Type'\n(I1\nttRp3152\nsS'Y:PMachine42'\np3153\ng26\n(S'Variable_Type'\n(I1\nttRp3154\nsS'Y:PMachine117'\np3155\ng26\n(S'Variable_Type'\n(I1\nttRp3156\nsS'Y:%RateA 112-113'\np3157\ng2618\n(tRp3158\nS'0'\naS'CSAMPO31    -CSAMPO32'\na(dbsS'Y:%RateA 104-105'\np3159\ng26\n(S'Variable_Type'\n(I1\nttRp3160\nsS'Y:PMachine61'\np3161\ng26\n(S'Variable_Type'\n(I1\nttRp3162\nsS'Y:%RateA 86-87'\np3163\ng26\n(S'Variable_Type'\n(I1\nttRp3164\nsS'Y:PMachine29'\np3165\ng26\n(S'Variable_Type'\n(I1\nttRp3166\nsS'Y:%RateA 84-85'\np3167\ng26\n(S'Variable_Type'\n(I1\nttRp3168\nsS'Y:%RateA 95-96'\np3169\ng26\n(S'Variable_Type'\n(I1\nttRp3170\nssg628\n(dp3171\nsg630\n(dp3172\nS'attribute'\np3173\n(S'X:Interco(bin)'\np3174\ng3126\ntp3175\nsS'yaxisTitle'\np3176\n(S'frequency'\nI0\ntp3177\nsS'xaxisTitle'\np3178\n(g3174\ng3126\ntp3179\nsS'mainTitle'\np3180\n(S''\nI0\ntp3181\nsS'yPaxisTitle'\np3182\n(S''\nI0\ntp3183\nsS'targetValue'\np3184\n(I0\nI-2\ntp3185\nsS'visibleOutcomes'\np3186\n((lp3187\nI0\naI1\naI-2\ntp3188\nssg648\nF1367937614.72\nsba(iOWContexts\nContext\np3189\n(dp3190\ng20\n(lp3191\nS'orderedDomain'\np3192\nasg23\n(dp3193\nS'Y:%RateA 59-60'\np3194\ng26\n(S'Variable_Type'\n(I1\nttRp3195\nsS'Y:%RateA 29-30'\np3196\ng26\n(S'Variable_Type'\n(I1\nttRp3197\nsS'Y:%RateA 61-62'\np3198\ng26\n(S'Variable_Type'\n(I1\nttRp3199\nsS'Y:%RateA 76-77'\np3200\ng26\n(S'Variable_Type'\n(I1\nttRp3201\nsS'Y:PMachine114'\np3202\ng26\n(S'Variable_Type'\n(I1\nttRp3203\nsS'Y:VBus61'\np3204\ng26\n(S'Variable_Type'\n(I1\nttRp3205\nsS'Y:PMachine116'\np3206\ng26\n(S'Variable_Type'\n(I1\nttRp3207\nsS'Y:PMachine111'\np3208\ng26\n(S'Variable_Type'\n(I1\nttRp3209\nsS'Y:%RateA 55-56'\np3210\ng26\n(S'Variable_Type'\n(I1\nttRp3211\nsS'Y:PMachine113'\np3212\ng26\n(S'Variable_Type'\n(I1\nttRp3213\nsS'Y:PMachine112'\np3214\ng26\n(S'Variable_Type'\n(I1\nttRp3215\nsS'Y:PMachine94'\np3216\ng26\n(S'Variable_Type'\n(I1\nttRp3217\nsS'Y:%RateA 102-103'\np3218\ng26\n(S'Variable_Type'\n(I1\nttRp3219\nsS'Y:PMachine90'\np3220\ng26\n(S'Variable_Type'\n(I1\nttRp3221\nsS'Y:PMachine93'\np3222\ng26\n(S'Variable_Type'\n(I1\nttRp3223\nsS'Y:NbeTransit'\np3224\ng26\n(S'Variable_Type'\n(I1\nttRp3225\nsS'Y:PMachine54'\np3226\ng26\n(S'Variable_Type'\n(I1\nttRp3227\nsS'Y:PMachine73'\np3228\ng26\n(S'Variable_Type'\n(I1\nttRp3229\nsS'Y:PMachine72'\np3230\ng26\n(S'Variable_Type'\n(I1\nttRp3231\nsS'Y:%RateA 80-81'\np3232\ng26\n(S'Variable_Type'\n(I1\nttRp3233\nsS'Y:PMachine74'\np3234\ng26\n(S'Variable_Type'\n(I1\nttRp3235\nsS'Y:%RateA 53-54'\np3236\ng26\n(S'Variable_Type'\n(I1\nttRp3237\nsS'Y:%RateA 108-109'\np3238\ng26\n(S'Variable_Type'\n(I1\nttRp3239\nsS'X:Interco(bin)'\np3240\ng26\n(S'Variable_Type'\n(I1\nttRp3241\nsS'Y:%RateA 14-15'\np3242\ng26\n(S'Variable_Type'\n(I1\nttRp3243\nsS'Y:%RateA 22-23'\np3244\ng26\n(S'Variable_Type'\n(I1\nttRp3245\nsS'Y:%RateA 57-58'\np3246\ng26\n(S'Variable_Type'\n(I1\nttRp3247\nsS'Y:PMachine106'\np3248\ng26\n(S'Variable_Type'\n(I1\nttRp3249\nsS'Y:PMachine107'\np3250\ng26\n(S'Variable_Type'\n(I1\nttRp3251\nsS'Y:%RateA 106-107'\np3252\ng26\n(S'Variable_Type'\n(I1\nttRp3253\nsS'Y:%RateA 51-52'\np3254\ng26\n(S'Variable_Type'\n(I1\nttRp3255\nsS'Y:%RateA 24-25'\np3256\ng26\n(S'Variable_Type'\n(I1\nttRp3257\nsS'Y:%RateA 82-83'\np3258\ng26\n(S'Variable_Type'\n(I1\nttRp3259\nsS'Y:%RateA 72-73'\np3260\ng26\n(S'Variable_Type'\n(I1\nttRp3261\nsS'Y:PMachine86'\np3262\ng26\n(S'Variable_Type'\n(I1\nttRp3263\nsS'Y:%RateA 78-79'\np3264\ng26\n(S'Variable_Type'\n(I1\nttRp3265\nsS'Y:VBus62'\np3266\ng26\n(S'Variable_Type'\n(I1\nttRp3267\nsS'Y:PMachine42'\np3268\ng26\n(S'Variable_Type'\n(I1\nttRp3269\nsS'Y:PMachine117'\np3270\ng26\n(S'Variable_Type'\n(I1\nttRp3271\nsS'Y:%RateA 112-113'\np3272\ng2618\n(tRp3273\nS'0'\naS'CSAMPO31    -CSAMPO32'\na(dbsS'Y:%RateA 104-105'\np3274\ng26\n(S'Variable_Type'\n(I1\nttRp3275\nsS'Y:PMachine61'\np3276\ng26\n(S'Variable_Type'\n(I1\nttRp3277\nsS'Y:%RateA 86-87'\np3278\ng26\n(S'Variable_Type'\n(I1\nttRp3279\nsS'Y:PMachine29'\np3280\ng26\n(S'Variable_Type'\n(I1\nttRp3281\nsS'Y:%RateA 84-85'\np3282\ng26\n(S'Variable_Type'\n(I1\nttRp3283\nsS'Y:%RateA 95-96'\np3284\ng26\n(S'Variable_Type'\n(I1\nttRp3285\nssg628\n(dp3286\nsg630\n(dp3287\nS'attribute'\np3288\n(S'X:Interco(bin)'\np3289\ng3241\ntp3290\nsS'yaxisTitle'\np3291\n(S'frequency'\nI0\ntp3292\nsS'xaxisTitle'\np3293\n(g3289\ng3241\ntp3294\nsS'mainTitle'\np3295\n(S''\nI0\ntp3296\nsS'yPaxisTitle'\np3297\n(S''\nI0\ntp3298\nsS'targetValue'\np3299\n(I0\nI-2\ntp3300\nsS'visibleOutcomes'\np3301\n((lp3302\nI0\naI1\naI-2\ntp3303\nssg648\nF1367937614.72\nsba(iOWContexts\nContext\np3304\n(dp3305\ng20\n(lp3306\nS'orderedDomain'\np3307\nasg23\n(dp3308\nS'Y:%RateA 59-60'\np3309\ng26\n(S'Variable_Type'\n(I1\nttRp3310\nsS'Y:%RateA 29-30'\np3311\ng26\n(S'Variable_Type'\n(I1\nttRp3312\nsS'Y:%RateA 61-62'\np3313\ng26\n(S'Variable_Type'\n(I1\nttRp3314\nsS'Y:%RateA 76-77'\np3315\ng26\n(S'Variable_Type'\n(I1\nttRp3316\nsS'Y:PMachine114'\np3317\ng26\n(S'Variable_Type'\n(I1\nttRp3318\nsS'Y:VBus61'\np3319\ng26\n(S'Variable_Type'\n(I1\nttRp3320\nsS'Y:PMachine116'\np3321\ng26\n(S'Variable_Type'\n(I1\nttRp3322\nsS'Y:PMachine111'\np3323\ng26\n(S'Variable_Type'\n(I1\nttRp3324\nsS'Y:%RateA 55-56'\np3325\ng26\n(S'Variable_Type'\n(I1\nttRp3326\nsS'Y:PMachine113'\np3327\ng26\n(S'Variable_Type'\n(I1\nttRp3328\nsS'Y:PMachine112'\np3329\ng26\n(S'Variable_Type'\n(I1\nttRp3330\nsS'Y:PMachine94'\np3331\ng26\n(S'Variable_Type'\n(I1\nttRp3332\nsS'Y:%RateA 102-103'\np3333\ng26\n(S'Variable_Type'\n(I1\nttRp3334\nsS'Y:PMachine90'\np3335\ng26\n(S'Variable_Type'\n(I1\nttRp3336\nsS'Y:PMachine93'\np3337\ng26\n(S'Variable_Type'\n(I1\nttRp3338\nsS'Y:NbeTransit'\np3339\ng26\n(S'Variable_Type'\n(I1\nttRp3340\nsS'Y:PMachine54'\np3341\ng26\n(S'Variable_Type'\n(I1\nttRp3342\nsS'Y:PMachine73'\np3343\ng26\n(S'Variable_Type'\n(I1\nttRp3344\nsS'Y:PMachine72'\np3345\ng26\n(S'Variable_Type'\n(I1\nttRp3346\nsS'Y:%RateA 80-81'\np3347\ng26\n(S'Variable_Type'\n(I1\nttRp3348\nsS'Y:PMachine74'\np3349\ng26\n(S'Variable_Type'\n(I1\nttRp3350\nsS'Y:%RateA 53-54'\np3351\ng26\n(S'Variable_Type'\n(I1\nttRp3352\nsS'Y:%RateA 108-109'\np3353\ng26\n(S'Variable_Type'\n(I1\nttRp3354\nsS'X:Interco(bin)'\np3355\ng26\n(S'Variable_Type'\n(I1\nttRp3356\nsS'Y:%RateA 14-15'\np3357\ng26\n(S'Variable_Type'\n(I1\nttRp3358\nsS'Y:%RateA 22-23'\np3359\ng26\n(S'Variable_Type'\n(I1\nttRp3360\nsS'Y:%RateA 57-58'\np3361\ng26\n(S'Variable_Type'\n(I1\nttRp3362\nsS'Y:PMachine106'\np3363\ng26\n(S'Variable_Type'\n(I1\nttRp3364\nsS'Y:PMachine107'\np3365\ng26\n(S'Variable_Type'\n(I1\nttRp3366\nsS'Y:%RateA 106-107'\np3367\ng26\n(S'Variable_Type'\n(I1\nttRp3368\nsS'Y:%RateA 51-52'\np3369\ng26\n(S'Variable_Type'\n(I1\nttRp3370\nsS'Y:%RateA 24-25'\np3371\ng26\n(S'Variable_Type'\n(I1\nttRp3372\nsS'Y:%RateA 82-83'\np3373\ng26\n(S'Variable_Type'\n(I1\nttRp3374\nsS'Y:%RateA 72-73'\np3375\ng26\n(S'Variable_Type'\n(I1\nttRp3376\nsS'Y:PMachine86'\np3377\ng26\n(S'Variable_Type'\n(I1\nttRp3378\nsS'Y:%RateA 78-79'\np3379\ng26\n(S'Variable_Type'\n(I1\nttRp3380\nsS'Y:VBus62'\np3381\ng26\n(S'Variable_Type'\n(I1\nttRp3382\nsS'Y:PMachine42'\np3383\ng26\n(S'Variable_Type'\n(I1\nttRp3384\nsS'Y:PMachine117'\np3385\ng26\n(S'Variable_Type'\n(I1\nttRp3386\nsS'Y:%RateA 112-113'\np3387\ng2618\n(tRp3388\nS'0'\naS'CSAMPO31    -CSAMPO32'\na(dbsS'Y:%RateA 104-105'\np3389\ng26\n(S'Variable_Type'\n(I1\nttRp3390\nsS'Y:PMachine61'\np3391\ng26\n(S'Variable_Type'\n(I1\nttRp3392\nsS'Y:%RateA 86-87'\np3393\ng26\n(S'Variable_Type'\n(I1\nttRp3394\nsS'Y:PMachine29'\np3395\ng26\n(S'Variable_Type'\n(I1\nttRp3396\nsS'Y:%RateA 84-85'\np3397\ng26\n(S'Variable_Type'\n(I1\nttRp3398\nsS'Y:%RateA 95-96'\np3399\ng26\n(S'Variable_Type'\n(I1\nttRp3400\nssg628\n(dp3401\nsg630\n(dp3402\nS'attribute'\np3403\n(S'X:Interco(bin)'\np3404\ng3356\ntp3405\nsS'yaxisTitle'\np3406\n(S'frequency'\nI0\ntp3407\nsS'xaxisTitle'\np3408\n(g3404\ng3356\ntp3409\nsS'mainTitle'\np3410\n(S''\nI0\ntp3411\nsS'yPaxisTitle'\np3412\n(S''\nI0\ntp3413\nsS'targetValue'\np3414\n(I0\nI-2\ntp3415\nsS'visibleOutcomes'\np3416\n((lp3417\nI0\naI1\naI-2\ntp3418\nssg648\nF1367937614.72\nsba(iOWContexts\nContext\np3419\n(dp3420\ng630\n(dp3421\nS'attribute'\np3422\n(S''\nI0\ntp3423\nsS'yaxisTitle'\np3424\n(S'frequency'\nI0\ntp3425\nsS'xaxisTitle'\np3426\n(S''\nI0\ntp3427\nsS'mainTitle'\np3428\n(S''\nI0\ntp3429\nsS'yPaxisTitle'\np3430\n(S''\nI0\ntp3431\nsS'targetValue'\np3432\n(NI-2\ntp3433\nsS'visibleOutcomes'\np3434\n((lI-2\ntp3435\nssg23\n(dp3436\nsg628\n(dp3437\nsg20\n(lp3438\nS'orderedDomain'\np3439\nasg648\nF1367855073.569\nsba(iOWContexts\nContext\np3440\n(dp3441\ng630\n(dp3442\nS'attribute'\np3443\n(S''\nI0\ntp3444\nsS'yaxisTitle'\np3445\n(S'frequency'\nI0\ntp3446\nsS'xaxisTitle'\np3447\n(S''\nI0\ntp3448\nsS'mainTitle'\np3449\n(S''\nI0\ntp3450\nsS'yPaxisTitle'\np3451\n(S''\nI0\ntp3452\nsS'targetValue'\np3453\n(NI-2\ntp3454\nsS'visibleOutcomes'\np3455\n((lI-2\ntp3456\nssg23\n(dp3457\nsg628\n(dp3458\nsg20\n(lp3459\nS'orderedDomain'\np3460\nasg648\nF1367855073.569\nsba(iOWContexts\nContext\np3461\n(dp3462\ng630\n(dp3463\nS'attribute'\np3464\n(S''\nI0\ntp3465\nsS'yaxisTitle'\np3466\n(S'frequency'\nI0\ntp3467\nsS'xaxisTitle'\np3468\n(S''\nI0\ntp3469\nsS'mainTitle'\np3470\n(S''\nI0\ntp3471\nsS'yPaxisTitle'\np3472\n(S''\nI0\ntp3473\nsS'targetValue'\np3474\n(NI-2\ntp3475\nsS'visibleOutcomes'\np3476\n((lI-2\ntp3477\nssg23\n(dp3478\nsg628\n(dp3479\nsg20\n(lp3480\nS'orderedDomain'\np3481\nasg648\nF1367855073.569\nsba(iOWContexts\nContext\np3482\n(dp3483\ng630\n(dp3484\nS'attribute'\np3485\n(S''\nI0\ntp3486\nsS'yaxisTitle'\np3487\n(S'frequency'\nI0\ntp3488\nsS'xaxisTitle'\np3489\n(S''\nI0\ntp3490\nsS'mainTitle'\np3491\n(S''\nI0\ntp3492\nsS'yPaxisTitle'\np3493\n(S''\nI0\ntp3494\nsS'targetValue'\np3495\n(NI-2\ntp3496\nsS'visibleOutcomes'\np3497\n((lI-2\ntp3498\nssg23\n(dp3499\nsg628\n(dp3500\nsg20\n(lp3501\nS'orderedDomain'\np3502\nasg648\nF1367855073.569\nsba(iOWContexts\nContext\np3503\n(dp3504\ng630\n(dp3505\nS'attribute'\np3506\n(S''\nI0\ntp3507\nsS'yaxisTitle'\np3508\n(S'frequency'\nI0\ntp3509\nsS'xaxisTitle'\np3510\n(S''\nI0\ntp3511\nsS'mainTitle'\np3512\n(S''\nI0\ntp3513\nsS'yPaxisTitle'\np3514\n(S''\nI0\ntp3515\nsS'targetValue'\np3516\n(NI-2\ntp3517\nsS'visibleOutcomes'\np3518\n((lI-2\ntp3519\nssg23\n(dp3520\nsg628\n(dp3521\nsg20\n(lp3522\nS'orderedDomain'\np3523\nasg648\nF1367855073.569\nsba(iOWContexts\nContext\np3524\n(dp3525\ng630\n(dp3526\nS'attribute'\np3527\n(S''\nI0\ntp3528\nsS'yaxisTitle'\np3529\n(S'frequency'\nI0\ntp3530\nsS'xaxisTitle'\np3531\n(S''\nI0\ntp3532\nsS'mainTitle'\np3533\n(S''\nI0\ntp3534\nsS'yPaxisTitle'\np3535\n(S''\nI0\ntp3536\nsS'targetValue'\np3537\n(NI-2\ntp3538\nsS'visibleOutcomes'\np3539\n((lI-2\ntp3540\nssg23\n(dp3541\nsg628\n(dp3542\nsg20\n(lp3543\nS'orderedDomain'\np3544\nasg648\nF1367855073.569\nsbasS'showProbabilities'\np3545\nI1\nsS'numberOfBars'\np3546\nI60\ns.&quot;, 'Attribute Statistics': &quot;(dp1\nS'widgetShown'\np2\nI0\nsS'localContextsVersion'\np3\n(I100\nI0\ntp4\nsS'savedWidgetGeometry'\np5\nS'\\x01\\xd9\\xd0\\xcb\\x00\\x01\\x00\\x00\\x00\\x00\\x02\\x80\\x00\\x00\\x01\\x81\\x00\\x00\\x03\\x94\\x00\\x00\\x02\\x91\\x00\\x00\\x02\\x88\\x00\\x00\\x01\\x9d\\x00\\x00\\x03\\x8c\\x00\\x00\\x02\\x89\\x00\\x00\\x00\\x00\\x00\\x00'\np6\nsS'sorting'\np7\nI2\nsS'localContexts'\np8\n(lp9\n(iOWContexts\nContext\np10\n(dp11\nS'noCopy'\np12\n(lp13\nS'orderedDomain'\np14\nasS'attributes'\np15\n(dp16\nS'Y:PMachine134 - CLUCCI35'\np17\ncOrange.orange\n__pickleLoaderNamedConstants\np18\n(S'Variable_Type'\n(I2\nttRp19\nsS'Y:VBus77 - CCORTE32'\np20\ng18\n(S'Variable_Type'\n(I2\nttRp21\nsS'Y:VBus134 - CLUCCI35'\np22\ng18\n(S'Variable_Type'\n(I2\nttRp23\nsS'Y:VBus109 - CSAGON32'\np24\ng18\n(S'Variable_Type'\n(I2\nttRp25\nsS'Y:VBus102 - CPORTO31'\np26\ng18\n(S'Variable_Type'\n(I2\nttRp27\nsS'XProdEolienne%Pnom'\np28\ng18\n(S'Variable_Type'\n(I2\nttRp29\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np30\ng18\n(S'Variable_Type'\n(I2\nttRp31\nsS'Y:PMachine94 - COCANA33'\np32\ng18\n(S'Variable_Type'\n(I2\nttRp33\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np34\ng18\n(S'Variable_Type'\n(I2\nttRp35\nsS'Y:PMachine87 - CLUCCI32'\np36\ng18\n(S'Variable_Type'\n(I2\nttRp37\nsS'Y:PMachine113 - CSAMPO32'\np38\ng18\n(S'Variable_Type'\n(I2\nttRp39\nsS'Y:Load 84 - CLORET31'\np40\ng18\n(S'Variable_Type'\n(I2\nttRp41\nsS'Y:PMachine89 - CLUCCI34'\np42\ng18\n(S'Variable_Type'\n(I2\nttRp43\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np44\ng18\n(S'Variable_Type'\n(I2\nttRp45\nsS'Y:Load 80 - CGHISO31'\np46\ng18\n(S'Variable_Type'\n(I2\nttRp47\nsS'Y:PMachine74 - CCERVI31'\np48\ng18\n(S'Variable_Type'\n(I2\nttRp49\nsS'Y:PMachine125 - CVAZZI36'\np50\ng18\n(S'Variable_Type'\n(I2\nttRp51\nsS'Y:Load 59 - CCALDA31'\np52\ng18\n(S'Variable_Type'\n(I2\nttRp53\nsS'Y:PMachine88 - CLUCCI33'\np54\ng18\n(S'Variable_Type'\n(I2\nttRp55\nsS'Y:PMachine120 - CVAZZI31'\np56\ng18\n(S'Variable_Type'\n(I2\nttRp57\nsS'Y:PMachine111 - CSTMAR31'\np58\ng18\n(S'Variable_Type'\n(I2\nttRp59\nsS'Y:NbeTransit'\np60\ng18\n(S'Variable_Type'\n(I2\nttRp61\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np62\ng18\n(S'Variable_Type'\n(I2\nttRp63\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np64\ng18\n(S'Variable_Type'\n(I2\nttRp65\nsS'Y:PMachine130 - CVAZZI311'\np66\ng18\n(S'Variable_Type'\n(I2\nttRp67\nsS'Y:PMachine127 - CVAZZI38'\np68\ng18\n(S'Variable_Type'\n(I2\nttRp69\nsS'Y:VBus131 - CVAZZI312'\np70\ng18\n(S'Variable_Type'\n(I2\nttRp71\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np72\ng18\n(S'Variable_Type'\n(I2\nttRp73\nsS'Y:PMachine123 - CVAZZI34'\np74\ng18\n(S'Variable_Type'\n(I2\nttRp75\nsS'Y:VBus118 - CTOLLA33'\np76\ng18\n(S'Variable_Type'\n(I2\nttRp77\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np78\ng18\n(S'Variable_Type'\n(I2\nttRp79\nsS'Y:PMachine58 - CBONIF32'\np80\ng18\n(S'Variable_Type'\n(I2\nttRp81\nsS'Y:Load 104 - CPROPR31'\np82\ng18\n(S'Variable_Type'\n(I2\nttRp83\nsS'Y:PMachine30 - CLUCCI22'\np84\ng18\n(S'Variable_Type'\n(I2\nttRp85\nsS'Y:VBus100 - COLETT31'\np86\ng18\n(S'Variable_Type'\n(I2\nttRp87\nsS'Y:PProdTot'\np88\ng18\n(S'Variable_Type'\n(I2\nttRp89\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np90\ng18\n(S'Variable_Type'\n(I2\nttRp91\nsS'Y:VBus57 - CBONIF31'\np92\ng18\n(S'Variable_Type'\n(I2\nttRp93\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np94\ng18\n(S'Variable_Type'\n(I2\nttRp95\nsS'Y:PConsoTot'\np96\ng18\n(S'Variable_Type'\n(I2\nttRp97\nsS'Iteration'\np98\ng18\n(S'Variable_Type'\n(I2\nttRp99\nsS'Y:PMachine109 - CSAGON32'\np100\ng18\n(S'Variable_Type'\n(I2\nttRp101\nsS'Y:PMachine135 - CLUCCI36'\np102\ng18\n(S'Variable_Type'\n(I2\nttRp103\nsS'Y:VBus30 - CLUCCI22'\np104\ng18\n(S'Variable_Type'\n(I2\nttRp105\nsS'Y:VBus122 - CVAZZI33'\np106\ng18\n(S'Variable_Type'\n(I2\nttRp107\nsS'Y:VBus22 - CCORTE21'\np108\ng18\n(S'Variable_Type'\n(I2\nttRp109\nsS'Y:VBus117 - CTOLLA32'\np110\ng18\n(S'Variable_Type'\n(I2\nttRp111\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np112\ng18\n(S'Variable_Type'\n(I2\nttRp113\nsS'Y:PMachine107 - CRIZZA32'\np114\ng18\n(S'Variable_Type'\n(I2\nttRp115\nsS'Y:VBus16 - CCALDA21'\np116\ng18\n(S'Variable_Type'\n(I2\nttRp117\nsS'Y:Load 102 - CPORTO31'\np118\ng18\n(S'Variable_Type'\n(I2\nttRp119\nsS'Y:VBus107 - CRIZZA32'\np120\ng18\n(S'Variable_Type'\n(I2\nttRp121\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np122\ng18\n(S'Variable_Type'\n(I2\nttRp123\nsS'Y:VBus41 - CSAMPO21'\np124\ng18\n(S'Variable_Type'\n(I2\nttRp125\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np126\ng18\n(S'Variable_Type'\n(I2\nttRp127\nsS'Y:VBus34 - CPIETR21'\np128\ng18\n(S'Variable_Type'\n(I2\nttRp129\nsS'Y:Load 108 - CSAGON31'\np130\ng18\n(S'Variable_Type'\n(I2\nttRp131\nsS'Y:VBus56 - CBIGUG32'\np132\ng18\n(S'Variable_Type'\n(I2\nttRp133\nsS'Y:PMachine42 - CSISCO21'\np134\ng18\n(S'Variable_Type'\n(I2\nttRp135\nsS'Y:PMachine138 - CLUCCI39'\np136\ng18\n(S'Variable_Type'\n(I2\nttRp137\nsS'Y:PMachine112 - CSAMPO31'\np138\ng18\n(S'Variable_Type'\n(I2\nttRp139\nsS'Y:VBus105 - CPROPR32'\np140\ng18\n(S'Variable_Type'\n(I2\nttRp141\nsS'Y:VBus1 - CBONIF11'\np142\ng18\n(S'Variable_Type'\n(I2\nttRp143\nsS'Y:VBus12 - CBASTI21'\np144\ng18\n(S'Variable_Type'\n(I2\nttRp145\nsS'Y:PMachine129 - CVAZZI310'\np146\ng18\n(S'Variable_Type'\n(I2\nttRp147\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np148\ng18\n(S'Variable_Type'\n(I2\nttRp149\nsS'Y:VBus35 - CPORTO21'\np150\ng18\n(S'Variable_Type'\n(I2\nttRp151\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np152\ng18\n(S'Variable_Type'\n(I2\nttRp153\nsS'Y:VBus54 - CBASTI32'\np154\ng18\n(S'Variable_Type'\n(I2\nttRp155\nsS'Y:VBus69 - CCASAM37'\np156\ng18\n(S'Variable_Type'\n(I2\nttRp157\nsS'Y:VBus45 - CTOLLA21'\np158\ng18\n(S'Variable_Type'\n(I2\nttRp159\nsS'Y:PMachine115 - CTAGLI31'\np160\ng18\n(S'Variable_Type'\n(I2\nttRp161\nsS'Y:VBus43 - CSOVEN21'\np162\ng18\n(S'Variable_Type'\n(I2\nttRp163\nsS'Y:VBus76 - CCORTE31'\np164\ng18\n(S'Variable_Type'\n(I2\nttRp165\nsS'Y:VBus75 - CCORSC31'\np166\ng18\n(S'Variable_Type'\n(I2\nttRp167\nsS'Y:PMachine78 - CFURIA31'\np168\ng18\n(S'Variable_Type'\n(I2\nttRp169\nsS'Y:VBus127 - CVAZZI38'\np170\ng18\n(S'Variable_Type'\n(I2\nttRp171\nsS'Y:VBus115 - CTAGLI31'\np172\ng18\n(S'Variable_Type'\n(I2\nttRp173\nsS'Y:Load 61 - CCALVI31'\np174\ng18\n(S'Variable_Type'\n(I2\nttRp175\nsS'Y:VBus55 - CBIGUG31'\np176\ng18\n(S'Variable_Type'\n(I2\nttRp177\nsS'Y:Load 42 - CSISCO21'\np178\ng18\n(S'Variable_Type'\n(I2\nttRp179\nsS'Y:VBus72 - CCASTI31'\np180\ng18\n(S'Variable_Type'\n(I2\nttRp181\nsS'Y:Load 37 - CRIZZA21'\np182\ng18\n(S'Variable_Type'\n(I2\nttRp183\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np184\ng18\n(S'Variable_Type'\n(I2\nttRp185\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np186\ng18\n(S'Variable_Type'\n(I2\nttRp187\nsS'Y:PMachine137 - CLUCCI38'\np188\ng18\n(S'Variable_Type'\n(I2\nttRp189\nsS'Y:PMachine67 - CCASAM35'\np190\ng18\n(S'Variable_Type'\n(I2\nttRp191\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np192\ng18\n(S'Variable_Type'\n(I2\nttRp193\nsS'Y:VBus31 - CMOROS21'\np194\ng18\n(S'Variable_Type'\n(I2\nttRp195\nsS'Y:VBus103 - CPORTO32'\np196\ng18\n(S'Variable_Type'\n(I2\nttRp197\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np198\ng18\n(S'Variable_Type'\n(I2\nttRp199\nsS'Y:PMachine128 - CVAZZI39'\np200\ng18\n(S'Variable_Type'\n(I2\nttRp201\nsS'Y:PMachine72 - CCASTI31'\np202\ng18\n(S'Variable_Type'\n(I2\nttRp203\nsS'Y:VBus27 - CILERO21'\np204\ng18\n(S'Variable_Type'\n(I2\nttRp205\nsS'Y:VBus11 - CASPRE21'\np206\ng18\n(S'Variable_Type'\n(I2\nttRp207\nsS'Y:PMachine75 - CCORSC31'\np208\ng18\n(S'Variable_Type'\n(I2\nttRp209\nsS'Y:Load 51 - CASPRE31'\np210\ng18\n(S'Variable_Type'\n(I2\nttRp211\nsS'Y:PMachine61 - CCALVI31'\np212\ng18\n(S'Variable_Type'\n(I2\nttRp213\nsS'Y:VBus51 - CASPRE31'\np214\ng18\n(S'Variable_Type'\n(I2\nttRp215\nsS'Y:VBus114 - CSOVEN31'\np216\ng18\n(S'Variable_Type'\n(I2\nttRp217\nsS'Y:VBus116 - CTOLLA31'\np218\ng18\n(S'Variable_Type'\n(I2\nttRp219\nsS'Y:Load 86 - CLUCCI31'\np220\ng18\n(S'Variable_Type'\n(I2\nttRp221\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np222\ng18\n(S'Variable_Type'\n(I2\nttRp223\nsS'Y:PMachine116 - CTOLLA31'\np224\ng18\n(S'Variable_Type'\n(I2\nttRp225\nsS'Y:PMachine104 - CPROPR31'\np226\ng18\n(S'Variable_Type'\n(I2\nttRp227\nsS'Y:VBus128 - CVAZZI39'\np228\ng18\n(S'Variable_Type'\n(I2\nttRp229\nsS'Y:PMachine136 - CLUCCI37'\np230\ng18\n(S'Variable_Type'\n(I2\nttRp231\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np232\ng18\n(S'Variable_Type'\n(I2\nttRp233\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np234\ng18\n(S'Variable_Type'\n(I2\nttRp235\nsS'Y:PMachine68 - CCASAM36'\np236\ng18\n(S'Variable_Type'\n(I2\nttRp237\nsS'Y:PMachine29 - CLUCCI21'\np238\ng18\n(S'Variable_Type'\n(I2\nttRp239\nsS'Y:VBus42 - CSISCO21'\np240\ng18\n(S'Variable_Type'\n(I2\nttRp241\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np242\ng18\n(S'Variable_Type'\n(I2\nttRp243\nsS'Y:VBus14 - CBONIF21'\np244\ng18\n(S'Variable_Type'\n(I2\nttRp245\nsS'Y:VBus73 - CCASTI32'\np246\ng18\n(S'Variable_Type'\n(I2\nttRp247\nsS'Y:VBus64 - CCASAM32'\np248\ng18\n(S'Variable_Type'\n(I2\nttRp249\nsS'Y:PMachine14 - CBONIF21'\np250\ng18\n(S'Variable_Type'\n(I2\nttRp251\nsS'Y:PMachine62 - CCALVI32'\np252\ng18\n(S'Variable_Type'\n(I2\nttRp253\nsS'Y:VBus133 - CVAZZI314'\np254\ng18\n(S'Variable_Type'\n(I2\nttRp255\nsS'Y:VBus63 - CCASAM31'\np256\ng18\n(S'Variable_Type'\n(I2\nttRp257\nsS'Y:PMachine101 - CPIETR31'\np258\ng18\n(S'Variable_Type'\n(I2\nttRp259\nsS'Y:%Losses'\np260\ng18\n(S'Variable_Type'\n(I2\nttRp261\nsS'Y:VBus85 - CLORET32'\np262\ng18\n(S'Variable_Type'\n(I2\nttRp263\nsS'Y:Load 115 - CTAGLI31'\np264\ng18\n(S'Variable_Type'\n(I2\nttRp265\nsS'ENR'\np266\ng18\n(S'Variable_Type'\n(I2\nttRp267\nsS'Y:VBus101 - CPIETR31'\np268\ng18\n(S'Variable_Type'\n(I2\nttRp269\nsS'Y:PMachine106 - CRIZZA31'\np270\ng18\n(S'Variable_Type'\n(I2\nttRp271\nsS'Y:VBus132 - CVAZZI313'\np272\ng18\n(S'Variable_Type'\n(I2\nttRp273\nsS'Y:PMachine118 - CTOLLA33'\np274\ng18\n(S'Variable_Type'\n(I2\nttRp275\nsS'Y:VBus19 - CCASTI21'\np276\ng18\n(S'Variable_Type'\n(I2\nttRp277\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np278\ng18\n(S'Variable_Type'\n(I2\nttRp279\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np280\ng18\n(S'Variable_Type'\n(I2\nttRp281\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np282\ng18\n(S'Variable_Type'\n(I2\nttRp283\nsS'Y:PMachine53 - CBASTI31'\np284\ng18\n(S'Variable_Type'\n(I2\nttRp285\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np286\ng18\n(S'Variable_Type'\n(I2\nttRp287\nsS'Y:VBus15 - CBONIF22'\np288\ng18\n(S'Variable_Type'\n(I2\nttRp289\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np290\ng18\n(S'Variable_Type'\n(I2\nttRp291\nsS'Y:VBus129 - CVAZZI310'\np292\ng18\n(S'Variable_Type'\n(I2\nttRp293\nsS'Y:VBus123 - CVAZZI34'\np294\ng18\n(S'Variable_Type'\n(I2\nttRp295\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np296\ng18\n(S'Variable_Type'\n(I2\nttRp297\nsS'Y:VBus60 - CCALDA32'\np298\ng18\n(S'Variable_Type'\n(I2\nttRp299\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np300\ng18\n(S'Variable_Type'\n(I2\nttRp301\nsS'Y:VBus65 - CCASAM33'\np302\ng18\n(S'Variable_Type'\n(I2\nttRp303\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np304\ng18\n(S'Variable_Type'\n(I2\nttRp305\nsS'Y:PMachine139 - CLUCCI310'\np306\ng18\n(S'Variable_Type'\n(I2\nttRp307\nsS'Y:VBus112 - CSAMPO31'\np308\ng18\n(S'Variable_Type'\n(I2\nttRp309\nsS'Y:VBus68 - CCASAM36'\np310\ng18\n(S'Variable_Type'\n(I2\nttRp311\nsS'Y:Load 55 - CBIGUG31'\np312\ng18\n(S'Variable_Type'\n(I2\nttRp313\nsS'Y:Max%A'\np314\ng18\n(S'Variable_Type'\n(I2\nttRp315\nsS'Y:NbeTransit_0.9-1'\np316\ng18\n(S'Variable_Type'\n(I2\nttRp317\nsS'Y:VBus24 - CFURIA21'\np318\ng18\n(S'Variable_Type'\n(I2\nttRp319\nsS'Y:VBus23 - CCORTE22'\np320\ng18\n(S'Variable_Type'\n(I2\nttRp321\nsS'Y:VBus18 - CCASAM21'\np322\ng18\n(S'Variable_Type'\n(I2\nttRp323\nsS'Y:VBus40 - CSTMAR21'\np324\ng18\n(S'Variable_Type'\n(I2\nttRp325\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np326\ng18\n(S'Variable_Type'\n(I2\nttRp327\nsS'Y:PMachine124 - CVAZZI35'\np328\ng18\n(S'Variable_Type'\n(I2\nttRp329\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np330\ng18\n(S'Variable_Type'\n(I2\nttRp331\nsS'Y:PMachine117 - CTOLLA32'\np332\ng18\n(S'Variable_Type'\n(I2\nttRp333\nsS'Y:Load 82 - CILERO31'\np334\ng18\n(S'Variable_Type'\n(I2\nttRp335\nsS'Y:VBus33 - COLETT21'\np336\ng18\n(S'Variable_Type'\n(I2\nttRp337\nsS'Y:VBus32 - COCANA21'\np338\ng18\n(S'Variable_Type'\n(I2\nttRp339\nsS'Y:PMachine121 - CVAZZI32'\np340\ng18\n(S'Variable_Type'\n(I2\nttRp341\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np342\ng18\n(S'Variable_Type'\n(I2\nttRp343\nsS'Y:VBus59 - CCALDA31'\np344\ng18\n(S'Variable_Type'\n(I2\nttRp345\nsS'Y:VBus82 - CILERO31'\np346\ng18\n(S'Variable_Type'\n(I2\nttRp347\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np348\ng18\n(S'Variable_Type'\n(I2\nttRp349\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np350\ng18\n(S'Variable_Type'\n(I2\nttRp351\nsS'Y:VBus37 - CRIZZA21'\np352\ng18\n(S'Variable_Type'\n(I2\nttRp353\nsS'Y:PMachine73 - CCASTI32'\np354\ng18\n(S'Variable_Type'\n(I2\nttRp355\nsS'Y:PMachine86 - CLUCCI31'\np356\ng18\n(S'Variable_Type'\n(I2\nttRp357\nsS'Y:Load 53 - CBASTI31'\np358\ng18\n(S'Variable_Type'\n(I2\nttRp359\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np360\ng18\n(S'Variable_Type'\n(I2\nttRp361\nsS'Y:VBus21 - CCORSC21'\np362\ng18\n(S'Variable_Type'\n(I2\nttRp363\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np364\ng18\n(S'Variable_Type'\n(I2\nttRp365\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np366\ng18\n(S'Variable_Type'\n(I2\nttRp367\nsS'Y:PMachine126 - CVAZZI37'\np368\ng18\n(S'Variable_Type'\n(I2\nttRp369\nsS'Y:PMachine64 - CCASAM32'\np370\ng18\n(S'Variable_Type'\n(I2\nttRp371\nsS'Y:VBus67 - CCASAM35'\np372\ng18\n(S'Variable_Type'\n(I2\nttRp373\nsS'Y:VBus53 - CBASTI31'\np374\ng18\n(S'Variable_Type'\n(I2\nttRp375\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np376\ng18\n(S'Variable_Type'\n(I2\nttRp377\nsS'Y:VBus61 - CCALVI31'\np378\ng18\n(S'Variable_Type'\n(I2\nttRp379\nsS'Y:VBus93 - COCANA32'\np380\ng18\n(S'Variable_Type'\n(I2\nttRp381\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np382\ng18\n(S'Variable_Type'\n(I2\nttRp383\nsS'Y:VBus104 - CPROPR31'\np384\ng18\n(S'Variable_Type'\n(I2\nttRp385\nsS'Y:VBus48 - CZSSS621'\np386\ng18\n(S'Variable_Type'\n(I2\nttRp387\nsS'Y:PMachine85 - CLORET32'\np388\ng18\n(S'Variable_Type'\n(I2\nttRp389\nsS'Y:VBus74 - CCERVI31'\np390\ng18\n(S'Variable_Type'\n(I2\nttRp391\nsS'X:ProdPV%Pnom'\np392\ng18\n(S'Variable_Type'\n(I2\nttRp393\nsS'Y:VBus89 - CLUCCI34'\np394\ng18\n(S'Variable_Type'\n(I2\nttRp395\nsS'Y:Load 100 - COLETT31'\np396\ng18\n(S'Variable_Type'\n(I2\nttRp397\nsS'Y:PMachine54 - CBASTI32'\np398\ng18\n(S'Variable_Type'\n(I2\nttRp399\nsS'Y:VBus138 - CLUCCI39'\np400\ng18\n(S'Variable_Type'\n(I2\nttRp401\nsS'Y:VBus39 - CSTLUC21'\np402\ng18\n(S'Variable_Type'\n(I2\nttRp403\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np404\ng18\n(S'Variable_Type'\n(I2\nttRp405\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np406\ng18\n(S'Variable_Type'\n(I2\nttRp407\nsS'Y:Load 78 - CFURIA31'\np408\ng18\n(S'Variable_Type'\n(I2\nttRp409\nsS'Y:VBus28 - CLORET21'\np410\ng18\n(S'Variable_Type'\n(I2\nttRp411\nsS'Y:PMachine105 - CPROPR32'\np412\ng18\n(S'Variable_Type'\n(I2\nttRp413\nsS'Y:VBus96 - COCANA35'\np414\ng18\n(S'Variable_Type'\n(I2\nttRp415\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np416\ng18\n(S'Variable_Type'\n(I2\nttRp417\nsS'Y:PMachine18 - CCASAM21'\np418\ng18\n(S'Variable_Type'\n(I2\nttRp419\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np420\ng18\n(S'Variable_Type'\n(I2\nttRp421\nsS'Y:VBus13 - CBIGUG21'\np422\ng18\n(S'Variable_Type'\n(I2\nttRp423\nsS'Y:VBus92 - COCANA31'\np424\ng18\n(S'Variable_Type'\n(I2\nttRp425\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np426\ng18\n(S'Variable_Type'\n(I2\nttRp427\nsS'Y:Load 57 - CBONIF31'\np428\ng18\n(S'Variable_Type'\n(I2\nttRp429\nsS'Y:VBus58 - CBONIF32'\np430\ng18\n(S'Variable_Type'\n(I2\nttRp431\nsS'Y:VBus84 - CLORET31'\np432\ng18\n(S'Variable_Type'\n(I2\nttRp433\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np434\ng18\n(S'Variable_Type'\n(I2\nttRp435\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np436\ng18\n(S'Variable_Type'\n(I2\nttRp437\nsS'Y:VBus97 - COCANA36'\np438\ng18\n(S'Variable_Type'\n(I2\nttRp439\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np440\ng18\n(S'Variable_Type'\n(I2\nttRp441\nsS'Y:VBus79 - CFURIA32'\np442\ng18\n(S'Variable_Type'\n(I2\nttRp443\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np444\ng18\n(S'Variable_Type'\n(I2\nttRp445\nsS'Y:Load 110 - CSTLUC31'\np446\ng18\n(S'Variable_Type'\n(I2\nttRp447\nsS'Y:VBus80 - CGHISO31'\np448\ng18\n(S'Variable_Type'\n(I2\nttRp449\nsS'Y:PMachine114 - CSOVEN31'\np450\ng18\n(S'Variable_Type'\n(I2\nttRp451\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np452\ng18\n(S'Variable_Type'\n(I2\nttRp453\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np454\ng18\n(S'Variable_Type'\n(I2\nttRp455\nsS'Y:PMachine93 - COCANA32'\np456\ng18\n(S'Variable_Type'\n(I2\nttRp457\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np458\ng18\n(S'Variable_Type'\n(I2\nttRp459\nsS'Y:VBus87 - CLUCCI32'\np460\ng18\n(S'Variable_Type'\n(I2\nttRp461\nsS'Y:VBus62 - CCALVI32'\np462\ng18\n(S'Variable_Type'\n(I2\nttRp463\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np464\ng18\n(S'Variable_Type'\n(I2\nttRp465\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np466\ng18\n(S'Variable_Type'\n(I2\nttRp467\nsS'Y:VBus81 - CGHISO32'\np468\ng18\n(S'Variable_Type'\n(I2\nttRp469\nsS'Y:PMachine63 - CCASAM31'\np470\ng18\n(S'Variable_Type'\n(I2\nttRp471\nsS'Y:PMachine47 - CVAZZI21'\np472\ng18\n(S'Variable_Type'\n(I2\nttRp473\nsS'Y:VBus86 - CLUCCI31'\np474\ng18\n(S'Variable_Type'\n(I2\nttRp475\nsS'X:Load(pu)'\np476\ng18\n(S'Variable_Type'\n(I2\nttRp477\nsS'Y:VBus95 - COCANA34'\np478\ng18\n(S'Variable_Type'\n(I2\nttRp479\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np480\ng18\n(S'Variable_Type'\n(I2\nttRp481\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np482\ng18\n(S'Variable_Type'\n(I2\nttRp483\nsS'Y:Load 95 - COCANA34'\np484\ng18\n(S'Variable_Type'\n(I2\nttRp485\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np486\ng18\n(S'Variable_Type'\n(I2\nttRp487\nsS'Y:PMachine90 - CMOROS31'\np488\ng18\n(S'Variable_Type'\n(I2\nttRp489\nsS'Y:Load 101 - CPIETR31'\np490\ng18\n(S'Variable_Type'\n(I2\nttRp491\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np492\ng18\n(S'Variable_Type'\n(I2\nttRp493\nsS'Y:PMachine132 - CVAZZI313'\np494\ng18\n(S'Variable_Type'\n(I2\nttRp495\nsS'Y:VBus125 - CVAZZI36'\np496\ng18\n(S'Variable_Type'\n(I2\nttRp497\nsS'Y:VBus135 - CLUCCI36'\np498\ng18\n(S'Variable_Type'\n(I2\nttRp499\nsS'Y:VBus47 - CVAZZI21'\np500\ng18\n(S'Variable_Type'\n(I2\nttRp501\nsS'Y:VBus94 - COCANA33'\np502\ng18\n(S'Variable_Type'\n(I2\nttRp503\nsS'Y:VBus17 - CCALVI21'\np504\ng18\n(S'Variable_Type'\n(I2\nttRp505\nsS'Y:VBus36 - CPROPR21'\np506\ng18\n(S'Variable_Type'\n(I2\nttRp507\nsS'Y:Load 90 - CMOROS31'\np508\ng18\n(S'Variable_Type'\n(I2\nttRp509\nsS'Y:VBus120 - CVAZZI31'\np510\ng18\n(S'Variable_Type'\n(I2\nttRp511\nsS'Y:VBus52 - CASPRE32'\np512\ng18\n(S'Variable_Type'\n(I2\nttRp513\nsS'Y:VBus25 - CFURIA22'\np514\ng18\n(S'Variable_Type'\n(I2\nttRp515\nsS'Y:Load 76 - CCORTE31'\np516\ng18\n(S'Variable_Type'\n(I2\nttRp517\nsS'Y:PMachine69 - CCASAM37'\np518\ng18\n(S'Variable_Type'\n(I2\nttRp519\nsS'Y:Load 74 - CCERVI31'\np520\ng18\n(S'Variable_Type'\n(I2\nttRp521\nsS'Y:PMachine92 - COCANA31'\np522\ng18\n(S'Variable_Type'\n(I2\nttRp523\nsS'Y:PMachine102 - CPORTO31'\np524\ng18\n(S'Variable_Type'\n(I2\nttRp525\nsS'Y:PMachine122 - CVAZZI33'\np526\ng18\n(S'Variable_Type'\n(I2\nttRp527\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np528\ng18\n(S'Variable_Type'\n(I2\nttRp529\nsS'Y:PMachine77 - CCORTE32'\np530\ng18\n(S'Variable_Type'\n(I2\nttRp531\nsS'Y:NbeTension'\np532\ng18\n(S'Variable_Type'\n(I2\nttRp533\nsS'Y:VBus126 - CVAZZI37'\np534\ng18\n(S'Variable_Type'\n(I2\nttRp535\nsS'Y:PMachine60 - CCALDA32'\np536\ng18\n(S'Variable_Type'\n(I2\nttRp537\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np538\ng18\n(S'Variable_Type'\n(I2\nttRp539\nsS'Y:VBus20 - CCERVI21'\np540\ng18\n(S'Variable_Type'\n(I2\nttRp541\nsS'Y:VBus119 - CTRAVO31'\np542\ng18\n(S'Variable_Type'\n(I2\nttRp543\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np544\ng18\n(S'Variable_Type'\n(I2\nttRp545\nsS'Y:VBus139 - CLUCCI310'\np546\ng18\n(S'Variable_Type'\n(I2\nttRp547\nsS'Y:VBus106 - CRIZZA31'\np548\ng18\n(S'Variable_Type'\n(I2\nttRp549\nsS'Y:PMachine66 - CCASAM34'\np550\ng18\n(S'Variable_Type'\n(I2\nttRp551\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np552\ng18\n(S'Variable_Type'\n(I2\nttRp553\nsS'Y:VBus136 - CLUCCI37'\np554\ng18\n(S'Variable_Type'\n(I2\nttRp555\nsS'Y:VBus90 - CMOROS31'\np556\ng18\n(S'Variable_Type'\n(I2\nttRp557\nsS'X:lineOff#'\np558\ng18\n(S'Variable_Type'\n(I2\nttRp559\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np560\ng18\n(S'Variable_Type'\n(I2\nttRp561\nsS'Y:VBus108 - CSAGON31'\np562\ng18\n(S'Variable_Type'\n(I2\nttRp563\nsS'Y:VBus137 - CLUCCI38'\np564\ng18\n(S'Variable_Type'\n(I2\nttRp565\nsS'Y:VBus130 - CVAZZI311'\np566\ng18\n(S'Variable_Type'\n(I2\nttRp567\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np568\ng18\n(S'Variable_Type'\n(I2\nttRp569\nsS'Y:VBus46 - CTRAVO21'\np570\ng18\n(S'Variable_Type'\n(I2\nttRp571\nsS'Y:VBus113 - CSAMPO32'\np572\ng18\n(S'Variable_Type'\n(I2\nttRp573\nsS'Y:PMachine133 - CVAZZI314'\np574\ng18\n(S'Variable_Type'\n(I2\nttRp575\nsS'Y:PMachine65 - CCASAM33'\np576\ng18\n(S'Variable_Type'\n(I2\nttRp577\nsS'Y:VBus78 - CFURIA31'\np578\ng18\n(S'Variable_Type'\n(I2\nttRp579\nsS'Y:VBus26 - CGHISO21'\np580\ng18\n(S'Variable_Type'\n(I2\nttRp581\nsS'Y:VBus121 - CVAZZI32'\np582\ng18\n(S'Variable_Type'\n(I2\nttRp583\nsS'Y:PMachine81 - CGHISO32'\np584\ng18\n(S'Variable_Type'\n(I2\nttRp585\nsS'Y:PMachine97 - COCANA36'\np586\ng18\n(S'Variable_Type'\n(I2\nttRp587\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np588\ng18\n(S'Variable_Type'\n(I2\nttRp589\nsS'Y:PMachine83 - CILERO32'\np590\ng18\n(S'Variable_Type'\n(I2\nttRp591\nsS'Y:VBus83 - CILERO32'\np592\ng18\n(S'Variable_Type'\n(I2\nttRp593\nsS'Y:VBus66 - CCASAM34'\np594\ng18\n(S'Variable_Type'\n(I2\nttRp595\nsS'Y:PMachine1 - CBONIF11'\np596\ng18\n(S'Variable_Type'\n(I2\nttRp597\nsS'Y:VBus111 - CSTMAR31'\np598\ng18\n(S'Variable_Type'\n(I2\nttRp599\nsS'Y:VBus124 - CVAZZI35'\np600\ng18\n(S'Variable_Type'\n(I2\nttRp601\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np602\ng18\n(S'Variable_Type'\n(I2\nttRp603\nsS'Y:PMachine131 - CVAZZI312'\np604\ng18\n(S'Variable_Type'\n(I2\nttRp605\nsS'Y:VBus44 - CTAGLI21'\np606\ng18\n(S'Variable_Type'\n(I2\nttRp607\nsS'Y:VBus88 - CLUCCI33'\np608\ng18\n(S'Variable_Type'\n(I2\nttRp609\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np610\ng18\n(S'Variable_Type'\n(I2\nttRp611\nsS'Y:VBus38 - CSAGON21'\np612\ng18\n(S'Variable_Type'\n(I2\nttRp613\nsS'Y:VBus29 - CLUCCI21'\np614\ng18\n(S'Variable_Type'\n(I2\nttRp615\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np616\ng18\n(S'Variable_Type'\n(I2\nttRp617\nsS'Y:VBus110 - CSTLUC31'\np618\ng18\n(S'Variable_Type'\n(I2\nttRp619\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np620\ng18\n(S'Variable_Type'\n(I2\nttRp621\nssS'metas'\np622\n(dp623\nsS'values'\np624\n(dp625\nS'HighlightedAttribute'\np626\n(I0\nI-2\ntp627\nssS'time'\np628\nF1370016679.8940001\nsba(iOWContexts\nContext\np629\n(dp630\ng624\n(dp631\nS'HighlightedAttribute'\np632\n(I4\nI-2\ntp633\nssg15\n(dp634\nS'Y:PMachine134 - CLUCCI35'\np635\ng18\n(S'Variable_Type'\n(I2\nttRp636\nsS'Y:VBus77 - CCORTE32'\np637\ng18\n(S'Variable_Type'\n(I2\nttRp638\nsS'Y:VBus134 - CLUCCI35'\np639\ng18\n(S'Variable_Type'\n(I2\nttRp640\nsS'Y:VBus109 - CSAGON32'\np641\ng18\n(S'Variable_Type'\n(I2\nttRp642\nsS'Y:VBus102 - CPORTO31'\np643\ng18\n(S'Variable_Type'\n(I2\nttRp644\nsS'Y:VBus18 - CCASAM21'\np645\ng18\n(S'Variable_Type'\n(I2\nttRp646\nsS'Y:VBus114 - CSOVEN31'\np647\ng18\n(S'Variable_Type'\n(I2\nttRp648\nsS'Y:VBus83 - CILERO32'\np649\ng18\n(S'Variable_Type'\n(I2\nttRp650\nsS'Y:VBus117 - CTOLLA32'\np651\ng18\n(S'Variable_Type'\n(I2\nttRp652\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np653\ng18\n(S'Variable_Type'\n(I2\nttRp654\nsS'Y:PMachine87 - CLUCCI32'\np655\ng18\n(S'Variable_Type'\n(I2\nttRp656\nsS'Y:PMachine113 - CSAMPO32'\np657\ng18\n(S'Variable_Type'\n(I2\nttRp658\nsS'Y:Load 84 - CLORET31'\np659\ng18\n(S'Variable_Type'\n(I2\nttRp660\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np661\ng18\n(S'Variable_Type'\n(I2\nttRp662\nsS'Y:Load 80 - CGHISO31'\np663\ng18\n(S'Variable_Type'\n(I2\nttRp664\nsS'Y:PMachine125 - CVAZZI36'\np665\ng18\n(S'Variable_Type'\n(I2\nttRp666\nsS'Y:VBus116 - CTOLLA31'\np667\ng18\n(S'Variable_Type'\n(I2\nttRp668\nsS'Y:PMachine88 - CLUCCI33'\np669\ng18\n(S'Variable_Type'\n(I2\nttRp670\nsS'Y:PMachine124 - CVAZZI35'\np671\ng18\n(S'Variable_Type'\n(I2\nttRp672\nsS'Y:PMachine111 - CSTMAR31'\np673\ng18\n(S'Variable_Type'\n(I2\nttRp674\nsS'Y:NbeTransit'\np675\ng18\n(S'Variable_Type'\n(I2\nttRp676\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np677\ng18\n(S'Variable_Type'\n(I2\nttRp678\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np679\ng18\n(S'Variable_Type'\n(I2\nttRp680\nsS'Y:PMachine130 - CVAZZI311'\np681\ng18\n(S'Variable_Type'\n(I2\nttRp682\nsS'Y:PMachine127 - CVAZZI38'\np683\ng18\n(S'Variable_Type'\n(I2\nttRp684\nsS'Y:VBus131 - CVAZZI312'\np685\ng18\n(S'Variable_Type'\n(I2\nttRp686\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np687\ng18\n(S'Variable_Type'\n(I2\nttRp688\nsS'Y:PMachine123 - CVAZZI34'\np689\ng18\n(S'Variable_Type'\n(I2\nttRp690\nsS'Y:VBus118 - CTOLLA33'\np691\ng18\n(S'Variable_Type'\n(I2\nttRp692\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np693\ng18\n(S'Variable_Type'\n(I2\nttRp694\nsS'Y:PMachine58 - CBONIF32'\np695\ng18\n(S'Variable_Type'\n(I2\nttRp696\nsS'Y:VBus90 - CMOROS31'\np697\ng18\n(S'Variable_Type'\n(I2\nttRp698\nsS'Y:Load 104 - CPROPR31'\np699\ng18\n(S'Variable_Type'\n(I2\nttRp700\nsS'Y:PMachine30 - CLUCCI22'\np701\ng18\n(S'Variable_Type'\n(I2\nttRp702\nsS'Y:VBus100 - COLETT31'\np703\ng18\n(S'Variable_Type'\n(I2\nttRp704\nsS'Y:PProdTot'\np705\ng18\n(S'Variable_Type'\n(I2\nttRp706\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np707\ng18\n(S'Variable_Type'\n(I2\nttRp708\nsS'Y:VBus57 - CBONIF31'\np709\ng18\n(S'Variable_Type'\n(I2\nttRp710\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np711\ng18\n(S'Variable_Type'\n(I2\nttRp712\nsS'Y:PMachine131 - CVAZZI312'\np713\ng18\n(S'Variable_Type'\n(I2\nttRp714\nsS'Y:PMachine109 - CSAGON32'\np715\ng18\n(S'Variable_Type'\n(I2\nttRp716\nsS'Y:PMachine135 - CLUCCI36'\np717\ng18\n(S'Variable_Type'\n(I2\nttRp718\nsS'Y:VBus30 - CLUCCI22'\np719\ng18\n(S'Variable_Type'\n(I2\nttRp720\nsS'Y:VBus122 - CVAZZI33'\np721\ng18\n(S'Variable_Type'\n(I2\nttRp722\nsS'Y:VBus22 - CCORTE21'\np723\ng18\n(S'Variable_Type'\n(I2\nttRp724\nsS'Y:PMachine89 - CLUCCI34'\np725\ng18\n(S'Variable_Type'\n(I2\nttRp726\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np727\ng18\n(S'Variable_Type'\n(I2\nttRp728\nsS'Y:PMachine107 - CRIZZA32'\np729\ng18\n(S'Variable_Type'\n(I2\nttRp730\nsS'Y:VBus16 - CCALDA21'\np731\ng18\n(S'Variable_Type'\n(I2\nttRp732\nsS'Y:Load 102 - CPORTO31'\np733\ng18\n(S'Variable_Type'\n(I2\nttRp734\nsS'Y:VBus107 - CRIZZA32'\np735\ng18\n(S'Variable_Type'\n(I2\nttRp736\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np737\ng18\n(S'Variable_Type'\n(I2\nttRp738\nsS'Y:VBus41 - CSAMPO21'\np739\ng18\n(S'Variable_Type'\n(I2\nttRp740\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np741\ng18\n(S'Variable_Type'\n(I2\nttRp742\nsS'Y:VBus34 - CPIETR21'\np743\ng18\n(S'Variable_Type'\n(I2\nttRp744\nsS'Y:Load 108 - CSAGON31'\np745\ng18\n(S'Variable_Type'\n(I2\nttRp746\nsS'Y:VBus56 - CBIGUG32'\np747\ng18\n(S'Variable_Type'\n(I2\nttRp748\nsS'Y:PMachine42 - CSISCO21'\np749\ng18\n(S'Variable_Type'\n(I2\nttRp750\nsS'Y:PMachine138 - CLUCCI39'\np751\ng18\n(S'Variable_Type'\n(I2\nttRp752\nsS'Y:PMachine112 - CSAMPO31'\np753\ng18\n(S'Variable_Type'\n(I2\nttRp754\nsS'Y:VBus105 - CPROPR32'\np755\ng18\n(S'Variable_Type'\n(I2\nttRp756\nsS'Y:VBus1 - CBONIF11'\np757\ng18\n(S'Variable_Type'\n(I2\nttRp758\nsS'Y:VBus12 - CBASTI21'\np759\ng18\n(S'Variable_Type'\n(I2\nttRp760\nsS'Y:PMachine129 - CVAZZI310'\np761\ng18\n(S'Variable_Type'\n(I2\nttRp762\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np763\ng18\n(S'Variable_Type'\n(I2\nttRp764\nsS'Y:VBus35 - CPORTO21'\np765\ng18\n(S'Variable_Type'\n(I2\nttRp766\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np767\ng18\n(S'Variable_Type'\n(I2\nttRp768\nsS'Y:VBus54 - CBASTI32'\np769\ng18\n(S'Variable_Type'\n(I2\nttRp770\nsS'Y:VBus69 - CCASAM37'\np771\ng18\n(S'Variable_Type'\n(I2\nttRp772\nsS'Y:VBus45 - CTOLLA21'\np773\ng18\n(S'Variable_Type'\n(I2\nttRp774\nsS'Y:PMachine115 - CTAGLI31'\np775\ng18\n(S'Variable_Type'\n(I2\nttRp776\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np777\ng18\n(S'Variable_Type'\n(I2\nttRp778\nsS'Y:VBus43 - CSOVEN21'\np779\ng18\n(S'Variable_Type'\n(I2\nttRp780\nsS'Y:VBus76 - CCORTE31'\np781\ng18\n(S'Variable_Type'\n(I2\nttRp782\nsS'Y:VBus75 - CCORSC31'\np783\ng18\n(S'Variable_Type'\n(I2\nttRp784\nsS'Y:PMachine78 - CFURIA31'\np785\ng18\n(S'Variable_Type'\n(I2\nttRp786\nsS'Y:VBus127 - CVAZZI38'\np787\ng18\n(S'Variable_Type'\n(I2\nttRp788\nsS'Y:VBus115 - CTAGLI31'\np789\ng18\n(S'Variable_Type'\n(I2\nttRp790\nsS'Y:Load 61 - CCALVI31'\np791\ng18\n(S'Variable_Type'\n(I2\nttRp792\nsS'Y:VBus55 - CBIGUG31'\np793\ng18\n(S'Variable_Type'\n(I2\nttRp794\nsS'Y:Load 42 - CSISCO21'\np795\ng18\n(S'Variable_Type'\n(I2\nttRp796\nsS'Y:VBus72 - CCASTI31'\np797\ng18\n(S'Variable_Type'\n(I2\nttRp798\nsS'Y:Load 37 - CRIZZA21'\np799\ng18\n(S'Variable_Type'\n(I2\nttRp800\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np801\ng18\n(S'Variable_Type'\n(I2\nttRp802\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np803\ng18\n(S'Variable_Type'\n(I2\nttRp804\nsS'Y:PMachine137 - CLUCCI38'\np805\ng18\n(S'Variable_Type'\n(I2\nttRp806\nsS'Y:PMachine67 - CCASAM35'\np807\ng18\n(S'Variable_Type'\n(I2\nttRp808\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np809\ng18\n(S'Variable_Type'\n(I2\nttRp810\nsS'Y:VBus31 - CMOROS21'\np811\ng18\n(S'Variable_Type'\n(I2\nttRp812\nsS'Y:VBus103 - CPORTO32'\np813\ng18\n(S'Variable_Type'\n(I2\nttRp814\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np815\ng18\n(S'Variable_Type'\n(I2\nttRp816\nsS'Y:PMachine14 - CBONIF21'\np817\ng18\n(S'Variable_Type'\n(I2\nttRp818\nsS'Y:PMachine72 - CCASTI31'\np819\ng18\n(S'Variable_Type'\n(I2\nttRp820\nsS'Y:VBus27 - CILERO21'\np821\ng18\n(S'Variable_Type'\n(I2\nttRp822\nsS'Y:PMachine75 - CCORSC31'\np823\ng18\n(S'Variable_Type'\n(I2\nttRp824\nsS'Y:Load 51 - CASPRE31'\np825\ng18\n(S'Variable_Type'\n(I2\nttRp826\nsS'Y:VBus51 - CASPRE31'\np827\ng18\n(S'Variable_Type'\n(I2\nttRp828\nsS'Y:PMachine94 - COCANA33'\np829\ng18\n(S'Variable_Type'\n(I2\nttRp830\nsS'Y:PMachine126 - CVAZZI37'\np831\ng18\n(S'Variable_Type'\n(I2\nttRp832\nsS'Y:Load 86 - CLUCCI31'\np833\ng18\n(S'Variable_Type'\n(I2\nttRp834\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np835\ng18\n(S'Variable_Type'\n(I2\nttRp836\nsS'Y:PMachine104 - CPROPR31'\np837\ng18\n(S'Variable_Type'\n(I2\nttRp838\nsS'Y:VBus128 - CVAZZI39'\np839\ng18\n(S'Variable_Type'\n(I2\nttRp840\nsS'Y:PMachine136 - CLUCCI37'\np841\ng18\n(S'Variable_Type'\n(I2\nttRp842\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np843\ng18\n(S'Variable_Type'\n(I2\nttRp844\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np845\ng18\n(S'Variable_Type'\n(I2\nttRp846\nsS'Y:PMachine29 - CLUCCI21'\np847\ng18\n(S'Variable_Type'\n(I2\nttRp848\nsS'Y:VBus42 - CSISCO21'\np849\ng18\n(S'Variable_Type'\n(I2\nttRp850\nsS'Y:Load 110 - CSTLUC31'\np851\ng18\n(S'Variable_Type'\n(I2\nttRp852\nsS'Y:VBus14 - CBONIF21'\np853\ng18\n(S'Variable_Type'\n(I2\nttRp854\nsS'Y:VBus73 - CCASTI32'\np855\ng18\n(S'Variable_Type'\n(I2\nttRp856\nsS'Y:VBus64 - CCASAM32'\np857\ng18\n(S'Variable_Type'\n(I2\nttRp858\nsS'Y:PMachine128 - CVAZZI39'\np859\ng18\n(S'Variable_Type'\n(I2\nttRp860\nsS'Y:VBus133 - CVAZZI314'\np861\ng18\n(S'Variable_Type'\n(I2\nttRp862\nsS'Y:VBus63 - CCASAM31'\np863\ng18\n(S'Variable_Type'\n(I2\nttRp864\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np865\ng18\n(S'Variable_Type'\n(I2\nttRp866\nsS'Y:%Losses'\np867\ng18\n(S'Variable_Type'\n(I2\nttRp868\nsS'Y:VBus85 - CLORET32'\np869\ng18\n(S'Variable_Type'\n(I2\nttRp870\nsS'Y:Load 59 - CCALDA31'\np871\ng18\n(S'Variable_Type'\n(I2\nttRp872\nsS'Y:VBus129 - CVAZZI310'\np873\ng18\n(S'Variable_Type'\n(I2\nttRp874\nsS'Y:VBus101 - CPIETR31'\np875\ng18\n(S'Variable_Type'\n(I2\nttRp876\nsS'Y:PMachine106 - CRIZZA31'\np877\ng18\n(S'Variable_Type'\n(I2\nttRp878\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np879\ng18\n(S'Variable_Type'\n(I2\nttRp880\nsS'Y:PMachine118 - CTOLLA33'\np881\ng18\n(S'Variable_Type'\n(I2\nttRp882\nsS'Y:VBus19 - CCASTI21'\np883\ng18\n(S'Variable_Type'\n(I2\nttRp884\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np885\ng18\n(S'Variable_Type'\n(I2\nttRp886\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np887\ng18\n(S'Variable_Type'\n(I2\nttRp888\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np889\ng18\n(S'Variable_Type'\n(I2\nttRp890\nsS'Y:Load 115 - CTAGLI31'\np891\ng18\n(S'Variable_Type'\n(I2\nttRp892\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np893\ng18\n(S'Variable_Type'\n(I2\nttRp894\nsS'Y:VBus15 - CBONIF22'\np895\ng18\n(S'Variable_Type'\n(I2\nttRp896\nsS'Y:PMachine47 - CVAZZI21'\np897\ng18\n(S'Variable_Type'\n(I2\nttRp898\nsS'Y:VBus123 - CVAZZI34'\np899\ng18\n(S'Variable_Type'\n(I2\nttRp900\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np901\ng18\n(S'Variable_Type'\n(I2\nttRp902\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np903\ng18\n(S'Variable_Type'\n(I2\nttRp904\nsS'Y:VBus44 - CTAGLI21'\np905\ng18\n(S'Variable_Type'\n(I2\nttRp906\nsS'Y:VBus65 - CCASAM33'\np907\ng18\n(S'Variable_Type'\n(I2\nttRp908\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np909\ng18\n(S'Variable_Type'\n(I2\nttRp910\nsS'Y:PMachine139 - CLUCCI310'\np911\ng18\n(S'Variable_Type'\n(I2\nttRp912\nsS'Y:VBus112 - CSAMPO31'\np913\ng18\n(S'Variable_Type'\n(I2\nttRp914\nsS'Y:VBus68 - CCASAM36'\np915\ng18\n(S'Variable_Type'\n(I2\nttRp916\nsS'Y:Load 55 - CBIGUG31'\np917\ng18\n(S'Variable_Type'\n(I2\nttRp918\nsS'Y:PMachine53 - CBASTI31'\np919\ng18\n(S'Variable_Type'\n(I2\nttRp920\nsS'Y:NbeTransit_0.9-1'\np921\ng18\n(S'Variable_Type'\n(I2\nttRp922\nsS'Y:VBus24 - CFURIA21'\np923\ng18\n(S'Variable_Type'\n(I2\nttRp924\nsS'Y:VBus23 - CCORTE22'\np925\ng18\n(S'Variable_Type'\n(I2\nttRp926\nsS'XProdEolienne%Pnom'\np927\ng18\n(S'Variable_Type'\n(I2\nttRp928\nsS'Y:VBus40 - CSTMAR21'\np929\ng18\n(S'Variable_Type'\n(I2\nttRp930\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np931\ng18\n(S'Variable_Type'\n(I2\nttRp932\nsS'Y:PMachine120 - CVAZZI31'\np933\ng18\n(S'Variable_Type'\n(I2\nttRp934\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np935\ng18\n(S'Variable_Type'\n(I2\nttRp936\nsS'Y:PMachine117 - CTOLLA32'\np937\ng18\n(S'Variable_Type'\n(I2\nttRp938\nsS'Y:VBus89 - CLUCCI34'\np939\ng18\n(S'Variable_Type'\n(I2\nttRp940\nsS'Y:VBus33 - COLETT21'\np941\ng18\n(S'Variable_Type'\n(I2\nttRp942\nsS'Y:VBus32 - COCANA21'\np943\ng18\n(S'Variable_Type'\n(I2\nttRp944\nsS'Y:PMachine121 - CVAZZI32'\np945\ng18\n(S'Variable_Type'\n(I2\nttRp946\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np947\ng18\n(S'Variable_Type'\n(I2\nttRp948\nsS'Y:VBus59 - CCALDA31'\np949\ng18\n(S'Variable_Type'\n(I2\nttRp950\nsS'Y:VBus82 - CILERO31'\np951\ng18\n(S'Variable_Type'\n(I2\nttRp952\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np953\ng18\n(S'Variable_Type'\n(I2\nttRp954\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np955\ng18\n(S'Variable_Type'\n(I2\nttRp956\nsS'Y:VBus37 - CRIZZA21'\np957\ng18\n(S'Variable_Type'\n(I2\nttRp958\nsS'Y:PMachine73 - CCASTI32'\np959\ng18\n(S'Variable_Type'\n(I2\nttRp960\nsS'Y:PMachine86 - CLUCCI31'\np961\ng18\n(S'Variable_Type'\n(I2\nttRp962\nsS'Y:Load 53 - CBASTI31'\np963\ng18\n(S'Variable_Type'\n(I2\nttRp964\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np965\ng18\n(S'Variable_Type'\n(I2\nttRp966\nsS'Y:VBus21 - CCORSC21'\np967\ng18\n(S'Variable_Type'\n(I2\nttRp968\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np969\ng18\n(S'Variable_Type'\n(I2\nttRp970\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np971\ng18\n(S'Variable_Type'\n(I2\nttRp972\nsS'Y:Load 82 - CILERO31'\np973\ng18\n(S'Variable_Type'\n(I2\nttRp974\nsS'Y:PMachine64 - CCASAM32'\np975\ng18\n(S'Variable_Type'\n(I2\nttRp976\nsS'Y:VBus67 - CCASAM35'\np977\ng18\n(S'Variable_Type'\n(I2\nttRp978\nsS'Y:VBus53 - CBASTI31'\np979\ng18\n(S'Variable_Type'\n(I2\nttRp980\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np981\ng18\n(S'Variable_Type'\n(I2\nttRp982\nsS'Y:VBus61 - CCALVI31'\np983\ng18\n(S'Variable_Type'\n(I2\nttRp984\nsS'Y:VBus93 - COCANA32'\np985\ng18\n(S'Variable_Type'\n(I2\nttRp986\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np987\ng18\n(S'Variable_Type'\n(I2\nttRp988\nsS'Y:PMachine92 - COCANA31'\np989\ng18\n(S'Variable_Type'\n(I2\nttRp990\nsS'Y:VBus104 - CPROPR31'\np991\ng18\n(S'Variable_Type'\n(I2\nttRp992\nsS'Y:VBus48 - CZSSS621'\np993\ng18\n(S'Variable_Type'\n(I2\nttRp994\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np995\ng18\n(S'Variable_Type'\n(I2\nttRp996\nsS'Y:VBus74 - CCERVI31'\np997\ng18\n(S'Variable_Type'\n(I2\nttRp998\nsS'Y:VBus36 - CPROPR21'\np999\ng18\n(S'Variable_Type'\n(I2\nttRp1000\nsS'Y:Load 100 - COLETT31'\np1001\ng18\n(S'Variable_Type'\n(I2\nttRp1002\nsS'Y:PMachine54 - CBASTI32'\np1003\ng18\n(S'Variable_Type'\n(I2\nttRp1004\nsS'Y:VBus138 - CLUCCI39'\np1005\ng18\n(S'Variable_Type'\n(I2\nttRp1006\nsS'Y:VBus39 - CSTLUC21'\np1007\ng18\n(S'Variable_Type'\n(I2\nttRp1008\nsS'Y:PMachine74 - CCERVI31'\np1009\ng18\n(S'Variable_Type'\n(I2\nttRp1010\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np1011\ng18\n(S'Variable_Type'\n(I2\nttRp1012\nsS'Y:Load 78 - CFURIA31'\np1013\ng18\n(S'Variable_Type'\n(I2\nttRp1014\nsS'Y:VBus28 - CLORET21'\np1015\ng18\n(S'Variable_Type'\n(I2\nttRp1016\nsS'Y:PMachine105 - CPROPR32'\np1017\ng18\n(S'Variable_Type'\n(I2\nttRp1018\nsS'Y:VBus96 - COCANA35'\np1019\ng18\n(S'Variable_Type'\n(I2\nttRp1020\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np1021\ng18\n(S'Variable_Type'\n(I2\nttRp1022\nsS'Y:PMachine18 - CCASAM21'\np1023\ng18\n(S'Variable_Type'\n(I2\nttRp1024\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np1025\ng18\n(S'Variable_Type'\n(I2\nttRp1026\nsS'Y:VBus13 - CBIGUG21'\np1027\ng18\n(S'Variable_Type'\n(I2\nttRp1028\nsS'Y:VBus92 - COCANA31'\np1029\ng18\n(S'Variable_Type'\n(I2\nttRp1030\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np1031\ng18\n(S'Variable_Type'\n(I2\nttRp1032\nsS'Y:Load 76 - CCORTE31'\np1033\ng18\n(S'Variable_Type'\n(I2\nttRp1034\nsS'Y:VBus58 - CBONIF32'\np1035\ng18\n(S'Variable_Type'\n(I2\nttRp1036\nsS'Y:VBus84 - CLORET31'\np1037\ng18\n(S'Variable_Type'\n(I2\nttRp1038\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np1039\ng18\n(S'Variable_Type'\n(I2\nttRp1040\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np1041\ng18\n(S'Variable_Type'\n(I2\nttRp1042\nsS'Y:VBus97 - COCANA36'\np1043\ng18\n(S'Variable_Type'\n(I2\nttRp1044\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np1045\ng18\n(S'Variable_Type'\n(I2\nttRp1046\nsS'Y:VBus106 - CRIZZA31'\np1047\ng18\n(S'Variable_Type'\n(I2\nttRp1048\nsS'Y:VBus79 - CFURIA32'\np1049\ng18\n(S'Variable_Type'\n(I2\nttRp1050\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np1051\ng18\n(S'Variable_Type'\n(I2\nttRp1052\nsS'Y:VBus80 - CGHISO31'\np1053\ng18\n(S'Variable_Type'\n(I2\nttRp1054\nsS'Y:PMachine114 - CSOVEN31'\np1055\ng18\n(S'Variable_Type'\n(I2\nttRp1056\nsS'Y:VBus132 - CVAZZI313'\np1057\ng18\n(S'Variable_Type'\n(I2\nttRp1058\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np1059\ng18\n(S'Variable_Type'\n(I2\nttRp1060\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np1061\ng18\n(S'Variable_Type'\n(I2\nttRp1062\nsS'Y:VBus87 - CLUCCI32'\np1063\ng18\n(S'Variable_Type'\n(I2\nttRp1064\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np1065\ng18\n(S'Variable_Type'\n(I2\nttRp1066\nsS'Y:VBus88 - CLUCCI33'\np1067\ng18\n(S'Variable_Type'\n(I2\nttRp1068\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np1069\ng18\n(S'Variable_Type'\n(I2\nttRp1070\nsS'Y:PMachine85 - CLORET32'\np1071\ng18\n(S'Variable_Type'\n(I2\nttRp1072\nsS'Y:VBus81 - CGHISO32'\np1073\ng18\n(S'Variable_Type'\n(I2\nttRp1074\nsS'Y:PMachine63 - CCASAM31'\np1075\ng18\n(S'Variable_Type'\n(I2\nttRp1076\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np1077\ng18\n(S'Variable_Type'\n(I2\nttRp1078\nsS'X:Load(pu)'\np1079\ng18\n(S'Variable_Type'\n(I2\nttRp1080\nsS'Y:NbeTension'\np1081\ng18\n(S'Variable_Type'\n(I2\nttRp1082\nsS'Y:VBus95 - COCANA34'\np1083\ng18\n(S'Variable_Type'\n(I2\nttRp1084\nsS'Y:VBus62 - CCALVI32'\np1085\ng18\n(S'Variable_Type'\n(I2\nttRp1086\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np1087\ng18\n(S'Variable_Type'\n(I2\nttRp1088\nsS'Y:Load 95 - COCANA34'\np1089\ng18\n(S'Variable_Type'\n(I2\nttRp1090\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np1091\ng18\n(S'Variable_Type'\n(I2\nttRp1092\nsS'Y:PMachine90 - CMOROS31'\np1093\ng18\n(S'Variable_Type'\n(I2\nttRp1094\nsS'Y:Load 101 - CPIETR31'\np1095\ng18\n(S'Variable_Type'\n(I2\nttRp1096\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np1097\ng18\n(S'Variable_Type'\n(I2\nttRp1098\nsS'Y:PMachine132 - CVAZZI313'\np1099\ng18\n(S'Variable_Type'\n(I2\nttRp1100\nsS'Y:PMachine65 - CCASAM33'\np1101\ng18\n(S'Variable_Type'\n(I2\nttRp1102\nsS'Y:VBus125 - CVAZZI36'\np1103\ng18\n(S'Variable_Type'\n(I2\nttRp1104\nsS'Y:VBus135 - CLUCCI36'\np1105\ng18\n(S'Variable_Type'\n(I2\nttRp1106\nsS'Y:VBus47 - CVAZZI21'\np1107\ng18\n(S'Variable_Type'\n(I2\nttRp1108\nsS'Y:VBus94 - COCANA33'\np1109\ng18\n(S'Variable_Type'\n(I2\nttRp1110\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np1111\ng18\n(S'Variable_Type'\n(I2\nttRp1112\nsS'Y:VBus17 - CCALVI21'\np1113\ng18\n(S'Variable_Type'\n(I2\nttRp1114\nsS'Y:Load 90 - CMOROS31'\np1115\ng18\n(S'Variable_Type'\n(I2\nttRp1116\nsS'Y:VBus120 - CVAZZI31'\np1117\ng18\n(S'Variable_Type'\n(I2\nttRp1118\nsS'Y:VBus52 - CASPRE32'\np1119\ng18\n(S'Variable_Type'\n(I2\nttRp1120\nsS'Y:VBus25 - CFURIA22'\np1121\ng18\n(S'Variable_Type'\n(I2\nttRp1122\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np1123\ng18\n(S'Variable_Type'\n(I2\nttRp1124\nsS'Y:PMachine69 - CCASAM37'\np1125\ng18\n(S'Variable_Type'\n(I2\nttRp1126\nsS'Y:PConsoTot'\np1127\ng18\n(S'Variable_Type'\n(I2\nttRp1128\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np1129\ng18\n(S'Variable_Type'\n(I2\nttRp1130\nsS'Y:PMachine102 - CPORTO31'\np1131\ng18\n(S'Variable_Type'\n(I2\nttRp1132\nsS'Y:VBus136 - CLUCCI37'\np1133\ng18\n(S'Variable_Type'\n(I2\nttRp1134\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np1135\ng18\n(S'Variable_Type'\n(I2\nttRp1136\nsS'Y:PMachine122 - CVAZZI33'\np1137\ng18\n(S'Variable_Type'\n(I2\nttRp1138\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np1139\ng18\n(S'Variable_Type'\n(I2\nttRp1140\nsS'Y:PMachine77 - CCORTE32'\np1141\ng18\n(S'Variable_Type'\n(I2\nttRp1142\nsS'Y:PMachine116 - CTOLLA31'\np1143\ng18\n(S'Variable_Type'\n(I2\nttRp1144\nsS'Y:VBus126 - CVAZZI37'\np1145\ng18\n(S'Variable_Type'\n(I2\nttRp1146\nsS'Y:PMachine60 - CCALDA32'\np1147\ng18\n(S'Variable_Type'\n(I2\nttRp1148\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np1149\ng18\n(S'Variable_Type'\n(I2\nttRp1150\nsS'Y:VBus20 - CCERVI21'\np1151\ng18\n(S'Variable_Type'\n(I2\nttRp1152\nsS'Y:VBus119 - CTRAVO31'\np1153\ng18\n(S'Variable_Type'\n(I2\nttRp1154\nsS'Y:VBus11 - CASPRE21'\np1155\ng18\n(S'Variable_Type'\n(I2\nttRp1156\nsS'Y:VBus139 - CLUCCI310'\np1157\ng18\n(S'Variable_Type'\n(I2\nttRp1158\nsS'Y:VBus60 - CCALDA32'\np1159\ng18\n(S'Variable_Type'\n(I2\nttRp1160\nsS'Y:PMachine66 - CCASAM34'\np1161\ng18\n(S'Variable_Type'\n(I2\nttRp1162\nsS'Y:PMachine101 - CPIETR31'\np1163\ng18\n(S'Variable_Type'\n(I2\nttRp1164\nsS'Y:PMachine133 - CVAZZI314'\np1165\ng18\n(S'Variable_Type'\n(I2\nttRp1166\nsS'Y:PMachine62 - CCALVI32'\np1167\ng18\n(S'Variable_Type'\n(I2\nttRp1168\nsS'Y:Load 74 - CCERVI31'\np1169\ng18\n(S'Variable_Type'\n(I2\nttRp1170\nsS'X:lineOff#'\np1171\ng18\n(S'Variable_Type'\n(I2\nttRp1172\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np1173\ng18\n(S'Variable_Type'\n(I2\nttRp1174\nsS'Y:VBus108 - CSAGON31'\np1175\ng18\n(S'Variable_Type'\n(I2\nttRp1176\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np1177\ng18\n(S'Variable_Type'\n(I2\nttRp1178\nsS'Y:VBus137 - CLUCCI38'\np1179\ng18\n(S'Variable_Type'\n(I2\nttRp1180\nsS'Y:VBus130 - CVAZZI311'\np1181\ng18\n(S'Variable_Type'\n(I2\nttRp1182\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np1183\ng18\n(S'Variable_Type'\n(I2\nttRp1184\nsS'Y:VBus46 - CTRAVO21'\np1185\ng18\n(S'Variable_Type'\n(I2\nttRp1186\nsS'Y:VBus113 - CSAMPO32'\np1187\ng18\n(S'Variable_Type'\n(I2\nttRp1188\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np1189\ng18\n(S'Variable_Type'\n(I2\nttRp1190\nsS'Y:PMachine68 - CCASAM36'\np1191\ng18\n(S'Variable_Type'\n(I2\nttRp1192\nsS'Y:VBus78 - CFURIA31'\np1193\ng18\n(S'Variable_Type'\n(I2\nttRp1194\nsS'Y:VBus26 - CGHISO21'\np1195\ng18\n(S'Variable_Type'\n(I2\nttRp1196\nsS'Y:VBus121 - CVAZZI32'\np1197\ng18\n(S'Variable_Type'\n(I2\nttRp1198\nsS'Y:PMachine97 - COCANA36'\np1199\ng18\n(S'Variable_Type'\n(I2\nttRp1200\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np1201\ng18\n(S'Variable_Type'\n(I2\nttRp1202\nsS'Y:PMachine83 - CILERO32'\np1203\ng18\n(S'Variable_Type'\n(I2\nttRp1204\nsS'Y:Max%A'\np1205\ng18\n(S'Variable_Type'\n(I2\nttRp1206\nsS'Y:VBus66 - CCASAM34'\np1207\ng18\n(S'Variable_Type'\n(I2\nttRp1208\nsS'Y:PMachine1 - CBONIF11'\np1209\ng18\n(S'Variable_Type'\n(I2\nttRp1210\nsS'Y:VBus111 - CSTMAR31'\np1211\ng18\n(S'Variable_Type'\n(I2\nttRp1212\nsS'Y:VBus124 - CVAZZI35'\np1213\ng18\n(S'Variable_Type'\n(I2\nttRp1214\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np1215\ng18\n(S'Variable_Type'\n(I2\nttRp1216\nsS'Y:VBus29 - CLUCCI21'\np1217\ng18\n(S'Variable_Type'\n(I2\nttRp1218\nsS'Y:PMachine93 - COCANA32'\np1219\ng18\n(S'Variable_Type'\n(I2\nttRp1220\nsS'Y:Load 57 - CBONIF31'\np1221\ng18\n(S'Variable_Type'\n(I2\nttRp1222\nsS'Y:VBus86 - CLUCCI31'\np1223\ng18\n(S'Variable_Type'\n(I2\nttRp1224\nsS'Y:VBus38 - CSAGON21'\np1225\ng18\n(S'Variable_Type'\n(I2\nttRp1226\nsS'Y:PMachine81 - CGHISO32'\np1227\ng18\n(S'Variable_Type'\n(I2\nttRp1228\nsS'Y:PMachine61 - CCALVI31'\np1229\ng18\n(S'Variable_Type'\n(I2\nttRp1230\nsS'Y:VBus110 - CSTLUC31'\np1231\ng18\n(S'Variable_Type'\n(I2\nttRp1232\nsS'X:ProdPV%Pnom'\np1233\ng18\n(S'Variable_Type'\n(I2\nttRp1234\nssg622\n(dp1235\nsg12\n(lp1236\nS'orderedDomain'\np1237\nasg628\nF1369744626.3099999\nsba(iOWContexts\nContext\np1238\n(dp1239\ng624\n(dp1240\ng632\n(I0\nI-2\ntp1241\nssg15\n(dp1242\nS'Y:PMachine134 - CLUCCI35'\np1243\ng18\n(S'Variable_Type'\n(I2\nttRp1244\nsS'Y:VBus77 - CCORTE32'\np1245\ng18\n(S'Variable_Type'\n(I2\nttRp1246\nsS'Y:VBus134 - CLUCCI35'\np1247\ng18\n(S'Variable_Type'\n(I2\nttRp1248\nsS'Y:VBus109 - CSAGON32'\np1249\ng18\n(S'Variable_Type'\n(I2\nttRp1250\nsS'Y:VBus102 - CPORTO31'\np1251\ng18\n(S'Variable_Type'\n(I2\nttRp1252\nsS'Y:VBus18 - CCASAM21'\np1253\ng18\n(S'Variable_Type'\n(I2\nttRp1254\nsS'Y:VBus114 - CSOVEN31'\np1255\ng18\n(S'Variable_Type'\n(I2\nttRp1256\nsS'Y:VBus83 - CILERO32'\np1257\ng18\n(S'Variable_Type'\n(I2\nttRp1258\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np1259\ng18\n(S'Variable_Type'\n(I2\nttRp1260\nsS'Y:PMachine87 - CLUCCI32'\np1261\ng18\n(S'Variable_Type'\n(I2\nttRp1262\nsS'Y:PMachine113 - CSAMPO32'\np1263\ng18\n(S'Variable_Type'\n(I2\nttRp1264\nsS'Y:Load 84 - CLORET31'\np1265\ng18\n(S'Variable_Type'\n(I2\nttRp1266\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np1267\ng18\n(S'Variable_Type'\n(I2\nttRp1268\nsS'Y:Load 42 - CSISCO21'\np1269\ng18\n(S'Variable_Type'\n(I2\nttRp1270\nsS'Y:PMachine125 - CVAZZI36'\np1271\ng18\n(S'Variable_Type'\n(I2\nttRp1272\nsS'Y:VBus116 - CTOLLA31'\np1273\ng18\n(S'Variable_Type'\n(I2\nttRp1274\nsS'Y:PMachine88 - CLUCCI33'\np1275\ng18\n(S'Variable_Type'\n(I2\nttRp1276\nsS'Y:PMachine124 - CVAZZI35'\np1277\ng18\n(S'Variable_Type'\n(I2\nttRp1278\nsS'Y:PMachine111 - CSTMAR31'\np1279\ng18\n(S'Variable_Type'\n(I2\nttRp1280\nsS'Y:NbeTransit'\np1281\ng18\n(S'Variable_Type'\n(I2\nttRp1282\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np1283\ng18\n(S'Variable_Type'\n(I2\nttRp1284\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np1285\ng18\n(S'Variable_Type'\n(I2\nttRp1286\nsS'Y:PMachine130 - CVAZZI311'\np1287\ng18\n(S'Variable_Type'\n(I2\nttRp1288\nsS'Y:PMachine127 - CVAZZI38'\np1289\ng18\n(S'Variable_Type'\n(I2\nttRp1290\nsS'Y:VBus131 - CVAZZI312'\np1291\ng18\n(S'Variable_Type'\n(I2\nttRp1292\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np1293\ng18\n(S'Variable_Type'\n(I2\nttRp1294\nsS'Y:PMachine123 - CVAZZI34'\np1295\ng18\n(S'Variable_Type'\n(I2\nttRp1296\nsS'Y:VBus118 - CTOLLA33'\np1297\ng18\n(S'Variable_Type'\n(I2\nttRp1298\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np1299\ng18\n(S'Variable_Type'\n(I2\nttRp1300\nsS'Y:PMachine58 - CBONIF32'\np1301\ng18\n(S'Variable_Type'\n(I2\nttRp1302\nsS'Y:VBus90 - CMOROS31'\np1303\ng18\n(S'Variable_Type'\n(I2\nttRp1304\nsS'Y:Load 104 - CPROPR31'\np1305\ng18\n(S'Variable_Type'\n(I2\nttRp1306\nsS'Y:PMachine30 - CLUCCI22'\np1307\ng18\n(S'Variable_Type'\n(I2\nttRp1308\nsS'Y:VBus100 - COLETT31'\np1309\ng18\n(S'Variable_Type'\n(I2\nttRp1310\nsS'Y:PProdTot'\np1311\ng18\n(S'Variable_Type'\n(I2\nttRp1312\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np1313\ng18\n(S'Variable_Type'\n(I2\nttRp1314\nsS'Y:VBus57 - CBONIF31'\np1315\ng18\n(S'Variable_Type'\n(I2\nttRp1316\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np1317\ng18\n(S'Variable_Type'\n(I2\nttRp1318\nsS'Iteration'\np1319\ng18\n(S'Variable_Type'\n(I2\nttRp1320\nsS'Y:PMachine109 - CSAGON32'\np1321\ng18\n(S'Variable_Type'\n(I2\nttRp1322\nsS'Y:PMachine135 - CLUCCI36'\np1323\ng18\n(S'Variable_Type'\n(I2\nttRp1324\nsS'Y:VBus30 - CLUCCI22'\np1325\ng18\n(S'Variable_Type'\n(I2\nttRp1326\nsS'Y:VBus122 - CVAZZI33'\np1327\ng18\n(S'Variable_Type'\n(I2\nttRp1328\nsS'Y:VBus22 - CCORTE21'\np1329\ng18\n(S'Variable_Type'\n(I2\nttRp1330\nsS'Y:VBus117 - CTOLLA32'\np1331\ng18\n(S'Variable_Type'\n(I2\nttRp1332\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np1333\ng18\n(S'Variable_Type'\n(I2\nttRp1334\nsS'Y:PMachine107 - CRIZZA32'\np1335\ng18\n(S'Variable_Type'\n(I2\nttRp1336\nsS'Y:VBus16 - CCALDA21'\np1337\ng18\n(S'Variable_Type'\n(I2\nttRp1338\nsS'Y:Load 102 - CPORTO31'\np1339\ng18\n(S'Variable_Type'\n(I2\nttRp1340\nsS'Y:VBus107 - CRIZZA32'\np1341\ng18\n(S'Variable_Type'\n(I2\nttRp1342\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np1343\ng18\n(S'Variable_Type'\n(I2\nttRp1344\nsS'Y:VBus41 - CSAMPO21'\np1345\ng18\n(S'Variable_Type'\n(I2\nttRp1346\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np1347\ng18\n(S'Variable_Type'\n(I2\nttRp1348\nsS'Y:VBus34 - CPIETR21'\np1349\ng18\n(S'Variable_Type'\n(I2\nttRp1350\nsS'Y:Load 108 - CSAGON31'\np1351\ng18\n(S'Variable_Type'\n(I2\nttRp1352\nsS'Y:VBus56 - CBIGUG32'\np1353\ng18\n(S'Variable_Type'\n(I2\nttRp1354\nsS'Y:PMachine42 - CSISCO21'\np1355\ng18\n(S'Variable_Type'\n(I2\nttRp1356\nsS'Y:PMachine138 - CLUCCI39'\np1357\ng18\n(S'Variable_Type'\n(I2\nttRp1358\nsS'Y:PMachine112 - CSAMPO31'\np1359\ng18\n(S'Variable_Type'\n(I2\nttRp1360\nsS'Y:VBus105 - CPROPR32'\np1361\ng18\n(S'Variable_Type'\n(I2\nttRp1362\nsS'Y:VBus1 - CBONIF11'\np1363\ng18\n(S'Variable_Type'\n(I2\nttRp1364\nsS'Y:VBus12 - CBASTI21'\np1365\ng18\n(S'Variable_Type'\n(I2\nttRp1366\nsS'Y:PMachine129 - CVAZZI310'\np1367\ng18\n(S'Variable_Type'\n(I2\nttRp1368\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np1369\ng18\n(S'Variable_Type'\n(I2\nttRp1370\nsS'Y:VBus35 - CPORTO21'\np1371\ng18\n(S'Variable_Type'\n(I2\nttRp1372\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np1373\ng18\n(S'Variable_Type'\n(I2\nttRp1374\nsS'Y:VBus54 - CBASTI32'\np1375\ng18\n(S'Variable_Type'\n(I2\nttRp1376\nsS'Y:VBus69 - CCASAM37'\np1377\ng18\n(S'Variable_Type'\n(I2\nttRp1378\nsS'Y:VBus45 - CTOLLA21'\np1379\ng18\n(S'Variable_Type'\n(I2\nttRp1380\nsS'Y:PMachine115 - CTAGLI31'\np1381\ng18\n(S'Variable_Type'\n(I2\nttRp1382\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np1383\ng18\n(S'Variable_Type'\n(I2\nttRp1384\nsS'Y:VBus43 - CSOVEN21'\np1385\ng18\n(S'Variable_Type'\n(I2\nttRp1386\nsS'Y:VBus76 - CCORTE31'\np1387\ng18\n(S'Variable_Type'\n(I2\nttRp1388\nsS'Y:VBus75 - CCORSC31'\np1389\ng18\n(S'Variable_Type'\n(I2\nttRp1390\nsS'Y:PMachine78 - CFURIA31'\np1391\ng18\n(S'Variable_Type'\n(I2\nttRp1392\nsS'Y:VBus127 - CVAZZI38'\np1393\ng18\n(S'Variable_Type'\n(I2\nttRp1394\nsS'Y:VBus115 - CTAGLI31'\np1395\ng18\n(S'Variable_Type'\n(I2\nttRp1396\nsS'Y:Load 61 - CCALVI31'\np1397\ng18\n(S'Variable_Type'\n(I2\nttRp1398\nsS'Y:VBus55 - CBIGUG31'\np1399\ng18\n(S'Variable_Type'\n(I2\nttRp1400\nsS'Y:Load 80 - CGHISO31'\np1401\ng18\n(S'Variable_Type'\n(I2\nttRp1402\nsS'Y:VBus72 - CCASTI31'\np1403\ng18\n(S'Variable_Type'\n(I2\nttRp1404\nsS'Y:Load 37 - CRIZZA21'\np1405\ng18\n(S'Variable_Type'\n(I2\nttRp1406\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np1407\ng18\n(S'Variable_Type'\n(I2\nttRp1408\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np1409\ng18\n(S'Variable_Type'\n(I2\nttRp1410\nsS'Y:PMachine102 - CPORTO31'\np1411\ng18\n(S'Variable_Type'\n(I2\nttRp1412\nsS'Y:PMachine67 - CCASAM35'\np1413\ng18\n(S'Variable_Type'\n(I2\nttRp1414\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np1415\ng18\n(S'Variable_Type'\n(I2\nttRp1416\nsS'Y:VBus31 - CMOROS21'\np1417\ng18\n(S'Variable_Type'\n(I2\nttRp1418\nsS'Y:VBus103 - CPORTO32'\np1419\ng18\n(S'Variable_Type'\n(I2\nttRp1420\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np1421\ng18\n(S'Variable_Type'\n(I2\nttRp1422\nsS'Y:PMachine14 - CBONIF21'\np1423\ng18\n(S'Variable_Type'\n(I2\nttRp1424\nsS'Y:PMachine72 - CCASTI31'\np1425\ng18\n(S'Variable_Type'\n(I2\nttRp1426\nsS'Y:VBus27 - CILERO21'\np1427\ng18\n(S'Variable_Type'\n(I2\nttRp1428\nsS'Y:PMachine75 - CCORSC31'\np1429\ng18\n(S'Variable_Type'\n(I2\nttRp1430\nsS'Y:Load 51 - CASPRE31'\np1431\ng18\n(S'Variable_Type'\n(I2\nttRp1432\nsS'Y:VBus51 - CASPRE31'\np1433\ng18\n(S'Variable_Type'\n(I2\nttRp1434\nsS'Y:PMachine94 - COCANA33'\np1435\ng18\n(S'Variable_Type'\n(I2\nttRp1436\nsS'Y:PMachine126 - CVAZZI37'\np1437\ng18\n(S'Variable_Type'\n(I2\nttRp1438\nsS'Y:Load 86 - CLUCCI31'\np1439\ng18\n(S'Variable_Type'\n(I2\nttRp1440\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np1441\ng18\n(S'Variable_Type'\n(I2\nttRp1442\nsS'Y:PMachine104 - CPROPR31'\np1443\ng18\n(S'Variable_Type'\n(I2\nttRp1444\nsS'Y:VBus128 - CVAZZI39'\np1445\ng18\n(S'Variable_Type'\n(I2\nttRp1446\nsS'Y:PMachine136 - CLUCCI37'\np1447\ng18\n(S'Variable_Type'\n(I2\nttRp1448\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np1449\ng18\n(S'Variable_Type'\n(I2\nttRp1450\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np1451\ng18\n(S'Variable_Type'\n(I2\nttRp1452\nsS'Y:PMachine29 - CLUCCI21'\np1453\ng18\n(S'Variable_Type'\n(I2\nttRp1454\nsS'Y:VBus42 - CSISCO21'\np1455\ng18\n(S'Variable_Type'\n(I2\nttRp1456\nsS'Y:Load 110 - CSTLUC31'\np1457\ng18\n(S'Variable_Type'\n(I2\nttRp1458\nsS'Y:VBus14 - CBONIF21'\np1459\ng18\n(S'Variable_Type'\n(I2\nttRp1460\nsS'Y:VBus73 - CCASTI32'\np1461\ng18\n(S'Variable_Type'\n(I2\nttRp1462\nsS'Y:VBus64 - CCASAM32'\np1463\ng18\n(S'Variable_Type'\n(I2\nttRp1464\nsS'Y:PMachine128 - CVAZZI39'\np1465\ng18\n(S'Variable_Type'\n(I2\nttRp1466\nsS'Y:VBus133 - CVAZZI314'\np1467\ng18\n(S'Variable_Type'\n(I2\nttRp1468\nsS'Y:VBus63 - CCASAM31'\np1469\ng18\n(S'Variable_Type'\n(I2\nttRp1470\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np1471\ng18\n(S'Variable_Type'\n(I2\nttRp1472\nsS'Y:%Losses'\np1473\ng18\n(S'Variable_Type'\n(I2\nttRp1474\nsS'Y:VBus85 - CLORET32'\np1475\ng18\n(S'Variable_Type'\n(I2\nttRp1476\nsS'Y:Load 59 - CCALDA31'\np1477\ng18\n(S'Variable_Type'\n(I2\nttRp1478\nsS'Y:VBus129 - CVAZZI310'\np1479\ng18\n(S'Variable_Type'\n(I2\nttRp1480\nsS'Y:VBus101 - CPIETR31'\np1481\ng18\n(S'Variable_Type'\n(I2\nttRp1482\nsS'Y:PMachine106 - CRIZZA31'\np1483\ng18\n(S'Variable_Type'\n(I2\nttRp1484\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np1485\ng18\n(S'Variable_Type'\n(I2\nttRp1486\nsS'Y:PMachine118 - CTOLLA33'\np1487\ng18\n(S'Variable_Type'\n(I2\nttRp1488\nsS'Y:VBus19 - CCASTI21'\np1489\ng18\n(S'Variable_Type'\n(I2\nttRp1490\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np1491\ng18\n(S'Variable_Type'\n(I2\nttRp1492\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np1493\ng18\n(S'Variable_Type'\n(I2\nttRp1494\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np1495\ng18\n(S'Variable_Type'\n(I2\nttRp1496\nsS'Y:Load 115 - CTAGLI31'\np1497\ng18\n(S'Variable_Type'\n(I2\nttRp1498\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np1499\ng18\n(S'Variable_Type'\n(I2\nttRp1500\nsS'Y:VBus79 - CFURIA32'\np1501\ng18\n(S'Variable_Type'\n(I2\nttRp1502\nsS'Y:PMachine47 - CVAZZI21'\np1503\ng18\n(S'Variable_Type'\n(I2\nttRp1504\nsS'Y:VBus123 - CVAZZI34'\np1505\ng18\n(S'Variable_Type'\n(I2\nttRp1506\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np1507\ng18\n(S'Variable_Type'\n(I2\nttRp1508\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np1509\ng18\n(S'Variable_Type'\n(I2\nttRp1510\nsS'Y:VBus44 - CTAGLI21'\np1511\ng18\n(S'Variable_Type'\n(I2\nttRp1512\nsS'Y:VBus65 - CCASAM33'\np1513\ng18\n(S'Variable_Type'\n(I2\nttRp1514\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np1515\ng18\n(S'Variable_Type'\n(I2\nttRp1516\nsS'Y:PMachine139 - CLUCCI310'\np1517\ng18\n(S'Variable_Type'\n(I2\nttRp1518\nsS'Y:VBus112 - CSAMPO31'\np1519\ng18\n(S'Variable_Type'\n(I2\nttRp1520\nsS'Y:VBus68 - CCASAM36'\np1521\ng18\n(S'Variable_Type'\n(I2\nttRp1522\nsS'Y:Load 55 - CBIGUG31'\np1523\ng18\n(S'Variable_Type'\n(I2\nttRp1524\nsS'Y:PMachine53 - CBASTI31'\np1525\ng18\n(S'Variable_Type'\n(I2\nttRp1526\nsS'Y:NbeTransit_0.9-1'\np1527\ng18\n(S'Variable_Type'\n(I2\nttRp1528\nsS'Y:VBus24 - CFURIA21'\np1529\ng18\n(S'Variable_Type'\n(I2\nttRp1530\nsS'Y:VBus23 - CCORTE22'\np1531\ng18\n(S'Variable_Type'\n(I2\nttRp1532\nsS'XProdEolienne%Pnom'\np1533\ng18\n(S'Variable_Type'\n(I2\nttRp1534\nsS'Y:VBus40 - CSTMAR21'\np1535\ng18\n(S'Variable_Type'\n(I2\nttRp1536\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np1537\ng18\n(S'Variable_Type'\n(I2\nttRp1538\nsS'Y:PMachine120 - CVAZZI31'\np1539\ng18\n(S'Variable_Type'\n(I2\nttRp1540\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np1541\ng18\n(S'Variable_Type'\n(I2\nttRp1542\nsS'Y:PMachine117 - CTOLLA32'\np1543\ng18\n(S'Variable_Type'\n(I2\nttRp1544\nsS'Y:VBus89 - CLUCCI34'\np1545\ng18\n(S'Variable_Type'\n(I2\nttRp1546\nsS'Y:VBus33 - COLETT21'\np1547\ng18\n(S'Variable_Type'\n(I2\nttRp1548\nsS'Y:VBus32 - COCANA21'\np1549\ng18\n(S'Variable_Type'\n(I2\nttRp1550\nsS'Y:PMachine121 - CVAZZI32'\np1551\ng18\n(S'Variable_Type'\n(I2\nttRp1552\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np1553\ng18\n(S'Variable_Type'\n(I2\nttRp1554\nsS'Y:VBus59 - CCALDA31'\np1555\ng18\n(S'Variable_Type'\n(I2\nttRp1556\nsS'Y:VBus82 - CILERO31'\np1557\ng18\n(S'Variable_Type'\n(I2\nttRp1558\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np1559\ng18\n(S'Variable_Type'\n(I2\nttRp1560\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np1561\ng18\n(S'Variable_Type'\n(I2\nttRp1562\nsS'Y:VBus37 - CRIZZA21'\np1563\ng18\n(S'Variable_Type'\n(I2\nttRp1564\nsS'Y:PMachine73 - CCASTI32'\np1565\ng18\n(S'Variable_Type'\n(I2\nttRp1566\nsS'Y:PMachine86 - CLUCCI31'\np1567\ng18\n(S'Variable_Type'\n(I2\nttRp1568\nsS'Y:Load 53 - CBASTI31'\np1569\ng18\n(S'Variable_Type'\n(I2\nttRp1570\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np1571\ng18\n(S'Variable_Type'\n(I2\nttRp1572\nsS'Y:VBus21 - CCORSC21'\np1573\ng18\n(S'Variable_Type'\n(I2\nttRp1574\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np1575\ng18\n(S'Variable_Type'\n(I2\nttRp1576\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np1577\ng18\n(S'Variable_Type'\n(I2\nttRp1578\nsS'Y:Load 82 - CILERO31'\np1579\ng18\n(S'Variable_Type'\n(I2\nttRp1580\nsS'Y:PMachine64 - CCASAM32'\np1581\ng18\n(S'Variable_Type'\n(I2\nttRp1582\nsS'Y:VBus67 - CCASAM35'\np1583\ng18\n(S'Variable_Type'\n(I2\nttRp1584\nsS'Y:VBus53 - CBASTI31'\np1585\ng18\n(S'Variable_Type'\n(I2\nttRp1586\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np1587\ng18\n(S'Variable_Type'\n(I2\nttRp1588\nsS'Y:VBus61 - CCALVI31'\np1589\ng18\n(S'Variable_Type'\n(I2\nttRp1590\nsS'Y:VBus93 - COCANA32'\np1591\ng18\n(S'Variable_Type'\n(I2\nttRp1592\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np1593\ng18\n(S'Variable_Type'\n(I2\nttRp1594\nsS'Y:PMachine92 - COCANA31'\np1595\ng18\n(S'Variable_Type'\n(I2\nttRp1596\nsS'Y:VBus104 - CPROPR31'\np1597\ng18\n(S'Variable_Type'\n(I2\nttRp1598\nsS'Y:VBus48 - CZSSS621'\np1599\ng18\n(S'Variable_Type'\n(I2\nttRp1600\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np1601\ng18\n(S'Variable_Type'\n(I2\nttRp1602\nsS'Y:VBus74 - CCERVI31'\np1603\ng18\n(S'Variable_Type'\n(I2\nttRp1604\nsS'Y:VBus36 - CPROPR21'\np1605\ng18\n(S'Variable_Type'\n(I2\nttRp1606\nsS'Y:Load 100 - COLETT31'\np1607\ng18\n(S'Variable_Type'\n(I2\nttRp1608\nsS'Y:PMachine54 - CBASTI32'\np1609\ng18\n(S'Variable_Type'\n(I2\nttRp1610\nsS'Y:VBus138 - CLUCCI39'\np1611\ng18\n(S'Variable_Type'\n(I2\nttRp1612\nsS'Y:VBus39 - CSTLUC21'\np1613\ng18\n(S'Variable_Type'\n(I2\nttRp1614\nsS'Y:PMachine74 - CCERVI31'\np1615\ng18\n(S'Variable_Type'\n(I2\nttRp1616\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np1617\ng18\n(S'Variable_Type'\n(I2\nttRp1618\nsS'Y:Load 78 - CFURIA31'\np1619\ng18\n(S'Variable_Type'\n(I2\nttRp1620\nsS'Y:VBus28 - CLORET21'\np1621\ng18\n(S'Variable_Type'\n(I2\nttRp1622\nsS'Y:PMachine105 - CPROPR32'\np1623\ng18\n(S'Variable_Type'\n(I2\nttRp1624\nsS'Y:VBus96 - COCANA35'\np1625\ng18\n(S'Variable_Type'\n(I2\nttRp1626\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np1627\ng18\n(S'Variable_Type'\n(I2\nttRp1628\nsS'Y:PMachine18 - CCASAM21'\np1629\ng18\n(S'Variable_Type'\n(I2\nttRp1630\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np1631\ng18\n(S'Variable_Type'\n(I2\nttRp1632\nsS'Y:VBus13 - CBIGUG21'\np1633\ng18\n(S'Variable_Type'\n(I2\nttRp1634\nsS'Y:VBus92 - COCANA31'\np1635\ng18\n(S'Variable_Type'\n(I2\nttRp1636\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np1637\ng18\n(S'Variable_Type'\n(I2\nttRp1638\nsS'Y:Load 76 - CCORTE31'\np1639\ng18\n(S'Variable_Type'\n(I2\nttRp1640\nsS'Y:VBus58 - CBONIF32'\np1641\ng18\n(S'Variable_Type'\n(I2\nttRp1642\nsS'Y:VBus84 - CLORET31'\np1643\ng18\n(S'Variable_Type'\n(I2\nttRp1644\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np1645\ng18\n(S'Variable_Type'\n(I2\nttRp1646\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np1647\ng18\n(S'Variable_Type'\n(I2\nttRp1648\nsS'Y:VBus97 - COCANA36'\np1649\ng18\n(S'Variable_Type'\n(I2\nttRp1650\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np1651\ng18\n(S'Variable_Type'\n(I2\nttRp1652\nsS'Y:VBus106 - CRIZZA31'\np1653\ng18\n(S'Variable_Type'\n(I2\nttRp1654\nsS'Y:VBus15 - CBONIF22'\np1655\ng18\n(S'Variable_Type'\n(I2\nttRp1656\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np1657\ng18\n(S'Variable_Type'\n(I2\nttRp1658\nsS'Y:VBus80 - CGHISO31'\np1659\ng18\n(S'Variable_Type'\n(I2\nttRp1660\nsS'Y:PMachine114 - CSOVEN31'\np1661\ng18\n(S'Variable_Type'\n(I2\nttRp1662\nsS'Y:VBus132 - CVAZZI313'\np1663\ng18\n(S'Variable_Type'\n(I2\nttRp1664\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np1665\ng18\n(S'Variable_Type'\n(I2\nttRp1666\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np1667\ng18\n(S'Variable_Type'\n(I2\nttRp1668\nsS'Y:VBus87 - CLUCCI32'\np1669\ng18\n(S'Variable_Type'\n(I2\nttRp1670\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np1671\ng18\n(S'Variable_Type'\n(I2\nttRp1672\nsS'Y:VBus88 - CLUCCI33'\np1673\ng18\n(S'Variable_Type'\n(I2\nttRp1674\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np1675\ng18\n(S'Variable_Type'\n(I2\nttRp1676\nsS'Y:PMachine85 - CLORET32'\np1677\ng18\n(S'Variable_Type'\n(I2\nttRp1678\nsS'Y:VBus81 - CGHISO32'\np1679\ng18\n(S'Variable_Type'\n(I2\nttRp1680\nsS'Y:PMachine63 - CCASAM31'\np1681\ng18\n(S'Variable_Type'\n(I2\nttRp1682\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np1683\ng18\n(S'Variable_Type'\n(I2\nttRp1684\nsS'X:Load(pu)'\np1685\ng18\n(S'Variable_Type'\n(I2\nttRp1686\nsS'Y:NbeTension'\np1687\ng18\n(S'Variable_Type'\n(I2\nttRp1688\nsS'Y:VBus95 - COCANA34'\np1689\ng18\n(S'Variable_Type'\n(I2\nttRp1690\nsS'Y:VBus62 - CCALVI32'\np1691\ng18\n(S'Variable_Type'\n(I2\nttRp1692\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np1693\ng18\n(S'Variable_Type'\n(I2\nttRp1694\nsS'Y:Load 95 - COCANA34'\np1695\ng18\n(S'Variable_Type'\n(I2\nttRp1696\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np1697\ng18\n(S'Variable_Type'\n(I2\nttRp1698\nsS'Y:PMachine90 - CMOROS31'\np1699\ng18\n(S'Variable_Type'\n(I2\nttRp1700\nsS'Y:Load 101 - CPIETR31'\np1701\ng18\n(S'Variable_Type'\n(I2\nttRp1702\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np1703\ng18\n(S'Variable_Type'\n(I2\nttRp1704\nsS'Y:PMachine132 - CVAZZI313'\np1705\ng18\n(S'Variable_Type'\n(I2\nttRp1706\nsS'Y:PMachine65 - CCASAM33'\np1707\ng18\n(S'Variable_Type'\n(I2\nttRp1708\nsS'Y:VBus125 - CVAZZI36'\np1709\ng18\n(S'Variable_Type'\n(I2\nttRp1710\nsS'Y:VBus135 - CLUCCI36'\np1711\ng18\n(S'Variable_Type'\n(I2\nttRp1712\nsS'Y:VBus47 - CVAZZI21'\np1713\ng18\n(S'Variable_Type'\n(I2\nttRp1714\nsS'Y:VBus94 - COCANA33'\np1715\ng18\n(S'Variable_Type'\n(I2\nttRp1716\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np1717\ng18\n(S'Variable_Type'\n(I2\nttRp1718\nsS'Y:VBus17 - CCALVI21'\np1719\ng18\n(S'Variable_Type'\n(I2\nttRp1720\nsS'Y:Load 90 - CMOROS31'\np1721\ng18\n(S'Variable_Type'\n(I2\nttRp1722\nsS'Y:VBus120 - CVAZZI31'\np1723\ng18\n(S'Variable_Type'\n(I2\nttRp1724\nsS'Y:VBus52 - CASPRE32'\np1725\ng18\n(S'Variable_Type'\n(I2\nttRp1726\nsS'Y:VBus25 - CFURIA22'\np1727\ng18\n(S'Variable_Type'\n(I2\nttRp1728\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np1729\ng18\n(S'Variable_Type'\n(I2\nttRp1730\nsS'Y:PMachine69 - CCASAM37'\np1731\ng18\n(S'Variable_Type'\n(I2\nttRp1732\nsS'Y:PConsoTot'\np1733\ng18\n(S'Variable_Type'\n(I2\nttRp1734\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np1735\ng18\n(S'Variable_Type'\n(I2\nttRp1736\nsS'Y:PMachine89 - CLUCCI34'\np1737\ng18\n(S'Variable_Type'\n(I2\nttRp1738\nsS'Y:VBus136 - CLUCCI37'\np1739\ng18\n(S'Variable_Type'\n(I2\nttRp1740\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np1741\ng18\n(S'Variable_Type'\n(I2\nttRp1742\nsS'Y:PMachine122 - CVAZZI33'\np1743\ng18\n(S'Variable_Type'\n(I2\nttRp1744\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np1745\ng18\n(S'Variable_Type'\n(I2\nttRp1746\nsS'Y:PMachine77 - CCORTE32'\np1747\ng18\n(S'Variable_Type'\n(I2\nttRp1748\nsS'Y:PMachine116 - CTOLLA31'\np1749\ng18\n(S'Variable_Type'\n(I2\nttRp1750\nsS'Y:VBus126 - CVAZZI37'\np1751\ng18\n(S'Variable_Type'\n(I2\nttRp1752\nsS'Y:PMachine60 - CCALDA32'\np1753\ng18\n(S'Variable_Type'\n(I2\nttRp1754\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np1755\ng18\n(S'Variable_Type'\n(I2\nttRp1756\nsS'Y:VBus20 - CCERVI21'\np1757\ng18\n(S'Variable_Type'\n(I2\nttRp1758\nsS'Y:VBus119 - CTRAVO31'\np1759\ng18\n(S'Variable_Type'\n(I2\nttRp1760\nsS'Y:VBus11 - CASPRE21'\np1761\ng18\n(S'Variable_Type'\n(I2\nttRp1762\nsS'Y:VBus139 - CLUCCI310'\np1763\ng18\n(S'Variable_Type'\n(I2\nttRp1764\nsS'Y:VBus60 - CCALDA32'\np1765\ng18\n(S'Variable_Type'\n(I2\nttRp1766\nsS'Y:PMachine66 - CCASAM34'\np1767\ng18\n(S'Variable_Type'\n(I2\nttRp1768\nsS'Y:PMachine101 - CPIETR31'\np1769\ng18\n(S'Variable_Type'\n(I2\nttRp1770\nsS'Y:PMachine133 - CVAZZI314'\np1771\ng18\n(S'Variable_Type'\n(I2\nttRp1772\nsS'Y:PMachine62 - CCALVI32'\np1773\ng18\n(S'Variable_Type'\n(I2\nttRp1774\nsS'Y:Load 74 - CCERVI31'\np1775\ng18\n(S'Variable_Type'\n(I2\nttRp1776\nsS'X:lineOff#'\np1777\ng18\n(S'Variable_Type'\n(I2\nttRp1778\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np1779\ng18\n(S'Variable_Type'\n(I2\nttRp1780\nsS'Y:VBus108 - CSAGON31'\np1781\ng18\n(S'Variable_Type'\n(I2\nttRp1782\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np1783\ng18\n(S'Variable_Type'\n(I2\nttRp1784\nsS'Y:VBus137 - CLUCCI38'\np1785\ng18\n(S'Variable_Type'\n(I2\nttRp1786\nsS'Y:VBus130 - CVAZZI311'\np1787\ng18\n(S'Variable_Type'\n(I2\nttRp1788\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np1789\ng18\n(S'Variable_Type'\n(I2\nttRp1790\nsS'Y:VBus46 - CTRAVO21'\np1791\ng18\n(S'Variable_Type'\n(I2\nttRp1792\nsS'Y:VBus113 - CSAMPO32'\np1793\ng18\n(S'Variable_Type'\n(I2\nttRp1794\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np1795\ng18\n(S'Variable_Type'\n(I2\nttRp1796\nsS'Y:PMachine68 - CCASAM36'\np1797\ng18\n(S'Variable_Type'\n(I2\nttRp1798\nsS'Y:VBus78 - CFURIA31'\np1799\ng18\n(S'Variable_Type'\n(I2\nttRp1800\nsS'Y:VBus26 - CGHISO21'\np1801\ng18\n(S'Variable_Type'\n(I2\nttRp1802\nsS'Y:VBus121 - CVAZZI32'\np1803\ng18\n(S'Variable_Type'\n(I2\nttRp1804\nsS'Y:PMachine81 - CGHISO32'\np1805\ng18\n(S'Variable_Type'\n(I2\nttRp1806\nsS'Y:PMachine97 - COCANA36'\np1807\ng18\n(S'Variable_Type'\n(I2\nttRp1808\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np1809\ng18\n(S'Variable_Type'\n(I2\nttRp1810\nsS'Y:PMachine83 - CILERO32'\np1811\ng18\n(S'Variable_Type'\n(I2\nttRp1812\nsS'Y:Max%A'\np1813\ng18\n(S'Variable_Type'\n(I2\nttRp1814\nsS'Y:VBus66 - CCASAM34'\np1815\ng18\n(S'Variable_Type'\n(I2\nttRp1816\nsS'Y:PMachine1 - CBONIF11'\np1817\ng18\n(S'Variable_Type'\n(I2\nttRp1818\nsS'Y:VBus111 - CSTMAR31'\np1819\ng18\n(S'Variable_Type'\n(I2\nttRp1820\nsS'Y:VBus124 - CVAZZI35'\np1821\ng18\n(S'Variable_Type'\n(I2\nttRp1822\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np1823\ng18\n(S'Variable_Type'\n(I2\nttRp1824\nsS'Y:PMachine131 - CVAZZI312'\np1825\ng18\n(S'Variable_Type'\n(I2\nttRp1826\nsS'Y:PMachine137 - CLUCCI38'\np1827\ng18\n(S'Variable_Type'\n(I2\nttRp1828\nsS'Y:PMachine93 - COCANA32'\np1829\ng18\n(S'Variable_Type'\n(I2\nttRp1830\nsS'Y:Load 57 - CBONIF31'\np1831\ng18\n(S'Variable_Type'\n(I2\nttRp1832\nsS'Y:VBus86 - CLUCCI31'\np1833\ng18\n(S'Variable_Type'\n(I2\nttRp1834\nsS'Y:VBus38 - CSAGON21'\np1835\ng18\n(S'Variable_Type'\n(I2\nttRp1836\nsS'Y:VBus29 - CLUCCI21'\np1837\ng18\n(S'Variable_Type'\n(I2\nttRp1838\nsS'Y:PMachine61 - CCALVI31'\np1839\ng18\n(S'Variable_Type'\n(I2\nttRp1840\nsS'Y:VBus110 - CSTLUC31'\np1841\ng18\n(S'Variable_Type'\n(I2\nttRp1842\nsS'X:ProdPV%Pnom'\np1843\ng18\n(S'Variable_Type'\n(I2\nttRp1844\nssg622\n(dp1845\nsg12\n(lp1846\ng14\nasg628\nF1370267567.7190001\nsba(iOWContexts\nContext\np1847\n(dp1848\ng624\n(dp1849\nS'HighlightedAttribute'\np1850\n(I0\nI-2\ntp1851\nssg15\n(dp1852\nS'Y:PMachine134 - CLUCCI35'\np1853\ng18\n(S'Variable_Type'\n(I1\nttRp1854\nsS'Y:VBus77 - CCORTE32'\np1855\ng18\n(S'Variable_Type'\n(I2\nttRp1856\nsS'Y:VBus134 - CLUCCI35'\np1857\ng18\n(S'Variable_Type'\n(I2\nttRp1858\nsS'Y:VBus109 - CSAGON32'\np1859\ng18\n(S'Variable_Type'\n(I2\nttRp1860\nsS'Y:VBus102 - CPORTO31'\np1861\ng18\n(S'Variable_Type'\n(I2\nttRp1862\nsS'Y:VBus18 - CCASAM21'\np1863\ng18\n(S'Variable_Type'\n(I2\nttRp1864\nsS'Y:VBus114 - CSOVEN31'\np1865\ng18\n(S'Variable_Type'\n(I2\nttRp1866\nsS'Y:VBus83 - CILERO32'\np1867\ng18\n(S'Variable_Type'\n(I2\nttRp1868\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np1869\ng18\n(S'Variable_Type'\n(I2\nttRp1870\nsS'Y:PMachine87 - CLUCCI32'\np1871\ng18\n(S'Variable_Type'\n(I2\nttRp1872\nsS'Y:PMachine113 - CSAMPO32'\np1873\ng18\n(S'Variable_Type'\n(I2\nttRp1874\nsS'Y:Load 84 - CLORET31'\np1875\ng18\n(S'Variable_Type'\n(I2\nttRp1876\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np1877\ng18\n(S'Variable_Type'\n(I2\nttRp1878\nsS'Y:Load 42 - CSISCO21'\np1879\ng18\n(S'Variable_Type'\n(I2\nttRp1880\nsS'Y:PMachine125 - CVAZZI36'\np1881\ng18\n(S'Variable_Type'\n(I2\nttRp1882\nsS'Y:PMachine88 - CLUCCI33'\np1883\ng18\n(S'Variable_Type'\n(I1\nttRp1884\nsS'Y:PMachine124 - CVAZZI35'\np1885\ng18\n(S'Variable_Type'\n(I2\nttRp1886\nsS'Y:PMachine133 - CVAZZI314'\np1887\ng18\n(S'Variable_Type'\n(I2\nttRp1888\nsS'Y:PMachine111 - CSTMAR31'\np1889\ng18\n(S'Variable_Type'\n(I2\nttRp1890\nsS'Y:NbeTransit'\np1891\ng18\n(S'Variable_Type'\n(I1\nttRp1892\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np1893\ng18\n(S'Variable_Type'\n(I2\nttRp1894\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np1895\ng18\n(S'Variable_Type'\n(I2\nttRp1896\nsS'Y:PMachine130 - CVAZZI311'\np1897\ng18\n(S'Variable_Type'\n(I2\nttRp1898\nsS'Y:PMachine127 - CVAZZI38'\np1899\ng18\n(S'Variable_Type'\n(I2\nttRp1900\nsS'Y:VBus131 - CVAZZI312'\np1901\ng18\n(S'Variable_Type'\n(I2\nttRp1902\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np1903\ng18\n(S'Variable_Type'\n(I2\nttRp1904\nsS'Y:PMachine123 - CVAZZI34'\np1905\ng18\n(S'Variable_Type'\n(I2\nttRp1906\nsS'Y:VBus118 - CTOLLA33'\np1907\ng18\n(S'Variable_Type'\n(I2\nttRp1908\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np1909\ng18\n(S'Variable_Type'\n(I1\nttRp1910\nsS'Y:PMachine58 - CBONIF32'\np1911\ng18\n(S'Variable_Type'\n(I2\nttRp1912\nsS'Y:VBus90 - CMOROS31'\np1913\ng18\n(S'Variable_Type'\n(I2\nttRp1914\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np1915\ng18\n(S'Variable_Type'\n(I2\nttRp1916\nsS'Y:Load 104 - CPROPR31'\np1917\ng18\n(S'Variable_Type'\n(I2\nttRp1918\nsS'Y:PMachine30 - CLUCCI22'\np1919\ng18\n(S'Variable_Type'\n(I1\nttRp1920\nsS'Y:VBus100 - COLETT31'\np1921\ng18\n(S'Variable_Type'\n(I2\nttRp1922\nsS'Y:PProdTot'\np1923\ng18\n(S'Variable_Type'\n(I2\nttRp1924\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np1925\ng18\n(S'Variable_Type'\n(I1\nttRp1926\nsS'Y:VBus57 - CBONIF31'\np1927\ng18\n(S'Variable_Type'\n(I2\nttRp1928\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np1929\ng18\n(S'Variable_Type'\n(I2\nttRp1930\nsS'Iteration'\np1931\ng18\n(S'Variable_Type'\n(I2\nttRp1932\nsS'Y:PMachine109 - CSAGON32'\np1933\ng18\n(S'Variable_Type'\n(I2\nttRp1934\nsS'Y:PMachine135 - CLUCCI36'\np1935\ng18\n(S'Variable_Type'\n(I1\nttRp1936\nsS'Y:VBus30 - CLUCCI22'\np1937\ng18\n(S'Variable_Type'\n(I2\nttRp1938\nsS'Y:VBus122 - CVAZZI33'\np1939\ng18\n(S'Variable_Type'\n(I2\nttRp1940\nsS'Y:VBus22 - CCORTE21'\np1941\ng18\n(S'Variable_Type'\n(I2\nttRp1942\nsS'Y:VBus117 - CTOLLA32'\np1943\ng18\n(S'Variable_Type'\n(I2\nttRp1944\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np1945\ng18\n(S'Variable_Type'\n(I1\nttRp1946\nsS'Y:PMachine107 - CRIZZA32'\np1947\ng18\n(S'Variable_Type'\n(I2\nttRp1948\nsS'Y:VBus16 - CCALDA21'\np1949\ng18\n(S'Variable_Type'\n(I2\nttRp1950\nsS'Y:Load 102 - CPORTO31'\np1951\ng18\n(S'Variable_Type'\n(I2\nttRp1952\nsS'Y:VBus107 - CRIZZA32'\np1953\ng18\n(S'Variable_Type'\n(I2\nttRp1954\nsS'Y:VBus92 - COCANA31'\np1955\ng18\n(S'Variable_Type'\n(I2\nttRp1956\nsS'Y:VBus41 - CSAMPO21'\np1957\ng18\n(S'Variable_Type'\n(I2\nttRp1958\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np1959\ng18\n(S'Variable_Type'\n(I2\nttRp1960\nsS'Y:VBus34 - CPIETR21'\np1961\ng18\n(S'Variable_Type'\n(I2\nttRp1962\nsS'Y:Load 108 - CSAGON31'\np1963\ng18\n(S'Variable_Type'\n(I2\nttRp1964\nsS'Y:VBus56 - CBIGUG32'\np1965\ng18\n(S'Variable_Type'\n(I2\nttRp1966\nsS'Y:PMachine42 - CSISCO21'\np1967\ng18\n(S'Variable_Type'\n(I2\nttRp1968\nsS'Y:PMachine138 - CLUCCI39'\np1969\ng18\n(S'Variable_Type'\n(I1\nttRp1970\nsS'Y:PMachine112 - CSAMPO31'\np1971\ng18\n(S'Variable_Type'\n(I2\nttRp1972\nsS'Y:VBus105 - CPROPR32'\np1973\ng18\n(S'Variable_Type'\n(I2\nttRp1974\nsS'Y:VBus1 - CBONIF11'\np1975\ng18\n(S'Variable_Type'\n(I2\nttRp1976\nsS'Y:VBus12 - CBASTI21'\np1977\ng18\n(S'Variable_Type'\n(I2\nttRp1978\nsS'Y:PMachine129 - CVAZZI310'\np1979\ng18\n(S'Variable_Type'\n(I2\nttRp1980\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np1981\ng18\n(S'Variable_Type'\n(I1\nttRp1982\nsS'Y:VBus35 - CPORTO21'\np1983\ng18\n(S'Variable_Type'\n(I2\nttRp1984\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np1985\ng18\n(S'Variable_Type'\n(I1\nttRp1986\nsS'Y:VBus54 - CBASTI32'\np1987\ng18\n(S'Variable_Type'\n(I2\nttRp1988\nsS'Y:VBus69 - CCASAM37'\np1989\ng18\n(S'Variable_Type'\n(I2\nttRp1990\nsS'Y:VBus45 - CTOLLA21'\np1991\ng18\n(S'Variable_Type'\n(I2\nttRp1992\nsS'Y:PMachine115 - CTAGLI31'\np1993\ng18\n(S'Variable_Type'\n(I2\nttRp1994\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np1995\ng18\n(S'Variable_Type'\n(I2\nttRp1996\nsS'Y:VBus43 - CSOVEN21'\np1997\ng18\n(S'Variable_Type'\n(I2\nttRp1998\nsS'Y:VBus76 - CCORTE31'\np1999\ng18\n(S'Variable_Type'\n(I2\nttRp2000\nsS'Y:VBus75 - CCORSC31'\np2001\ng18\n(S'Variable_Type'\n(I2\nttRp2002\nsS'Y:PMachine78 - CFURIA31'\np2003\ng18\n(S'Variable_Type'\n(I1\nttRp2004\nsS'Y:VBus127 - CVAZZI38'\np2005\ng18\n(S'Variable_Type'\n(I2\nttRp2006\nsS'Y:VBus115 - CTAGLI31'\np2007\ng18\n(S'Variable_Type'\n(I2\nttRp2008\nsS'Y:Load 61 - CCALVI31'\np2009\ng18\n(S'Variable_Type'\n(I2\nttRp2010\nsS'Y:VBus55 - CBIGUG31'\np2011\ng18\n(S'Variable_Type'\n(I2\nttRp2012\nsS'Y:Load 80 - CGHISO31'\np2013\ng18\n(S'Variable_Type'\n(I2\nttRp2014\nsS'Y:VBus72 - CCASTI31'\np2015\ng18\n(S'Variable_Type'\n(I2\nttRp2016\nsS'Y:Load 37 - CRIZZA21'\np2017\ng18\n(S'Variable_Type'\n(I2\nttRp2018\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np2019\ng18\n(S'Variable_Type'\n(I2\nttRp2020\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np2021\ng18\n(S'Variable_Type'\n(I2\nttRp2022\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np2023\ng18\n(S'Variable_Type'\n(I2\nttRp2024\nsS'Y:PMachine67 - CCASAM35'\np2025\ng18\n(S'Variable_Type'\n(I2\nttRp2026\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np2027\ng18\n(S'Variable_Type'\n(I1\nttRp2028\nsS'Y:VBus31 - CMOROS21'\np2029\ng18\n(S'Variable_Type'\n(I2\nttRp2030\nsS'Y:VBus103 - CPORTO32'\np2031\ng18\n(S'Variable_Type'\n(I2\nttRp2032\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np2033\ng18\n(S'Variable_Type'\n(I1\nttRp2034\nsS'Y:PMachine14 - CBONIF21'\np2035\ng18\n(S'Variable_Type'\n(I1\nttRp2036\nsS'Y:PMachine72 - CCASTI31'\np2037\ng18\n(S'Variable_Type'\n(I2\nttRp2038\nsS'Y:VBus27 - CILERO21'\np2039\ng18\n(S'Variable_Type'\n(I2\nttRp2040\nsS'Y:PMachine75 - CCORSC31'\np2041\ng18\n(S'Variable_Type'\n(I2\nttRp2042\nsS'Y:Load 51 - CASPRE31'\np2043\ng18\n(S'Variable_Type'\n(I2\nttRp2044\nsS'Y:VBus51 - CASPRE31'\np2045\ng18\n(S'Variable_Type'\n(I2\nttRp2046\nsS'Y:PMachine94 - COCANA33'\np2047\ng18\n(S'Variable_Type'\n(I2\nttRp2048\nsS'Y:VBus116 - CTOLLA31'\np2049\ng18\n(S'Variable_Type'\n(I2\nttRp2050\nsS'Y:Load 86 - CLUCCI31'\np2051\ng18\n(S'Variable_Type'\n(I2\nttRp2052\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np2053\ng18\n(S'Variable_Type'\n(I2\nttRp2054\nsS'Y:PMachine104 - CPROPR31'\np2055\ng18\n(S'Variable_Type'\n(I2\nttRp2056\nsS'Y:VBus128 - CVAZZI39'\np2057\ng18\n(S'Variable_Type'\n(I2\nttRp2058\nsS'Y:PMachine136 - CLUCCI37'\np2059\ng18\n(S'Variable_Type'\n(I1\nttRp2060\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np2061\ng18\n(S'Variable_Type'\n(I2\nttRp2062\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np2063\ng18\n(S'Variable_Type'\n(I2\nttRp2064\nsS'Y:PMachine29 - CLUCCI21'\np2065\ng18\n(S'Variable_Type'\n(I1\nttRp2066\nsS'Y:VBus42 - CSISCO21'\np2067\ng18\n(S'Variable_Type'\n(I2\nttRp2068\nsS'Y:Load 110 - CSTLUC31'\np2069\ng18\n(S'Variable_Type'\n(I2\nttRp2070\nsS'Y:VBus14 - CBONIF21'\np2071\ng18\n(S'Variable_Type'\n(I2\nttRp2072\nsS'Y:VBus73 - CCASTI32'\np2073\ng18\n(S'Variable_Type'\n(I2\nttRp2074\nsS'Y:VBus64 - CCASAM32'\np2075\ng18\n(S'Variable_Type'\n(I2\nttRp2076\nsS'Y:PMachine128 - CVAZZI39'\np2077\ng18\n(S'Variable_Type'\n(I2\nttRp2078\nsS'Y:VBus133 - CVAZZI314'\np2079\ng18\n(S'Variable_Type'\n(I2\nttRp2080\nsS'Y:VBus63 - CCASAM31'\np2081\ng18\n(S'Variable_Type'\n(I2\nttRp2082\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np2083\ng18\n(S'Variable_Type'\n(I2\nttRp2084\nsS'Y:%Losses'\np2085\ng18\n(S'Variable_Type'\n(I2\nttRp2086\nsS'Y:VBus85 - CLORET32'\np2087\ng18\n(S'Variable_Type'\n(I2\nttRp2088\nsS'Y:Load 59 - CCALDA31'\np2089\ng18\n(S'Variable_Type'\n(I2\nttRp2090\nsS'Y:VBus129 - CVAZZI310'\np2091\ng18\n(S'Variable_Type'\n(I2\nttRp2092\nsS'Y:VBus101 - CPIETR31'\np2093\ng18\n(S'Variable_Type'\n(I2\nttRp2094\nsS'Y:PMachine106 - CRIZZA31'\np2095\ng18\n(S'Variable_Type'\n(I2\nttRp2096\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np2097\ng18\n(S'Variable_Type'\n(I1\nttRp2098\nsS'Y:PMachine118 - CTOLLA33'\np2099\ng18\n(S'Variable_Type'\n(I2\nttRp2100\nsS'Y:VBus19 - CCASTI21'\np2101\ng18\n(S'Variable_Type'\n(I2\nttRp2102\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np2103\ng18\n(S'Variable_Type'\n(I2\nttRp2104\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np2105\ng18\n(S'Variable_Type'\n(I1\nttRp2106\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np2107\ng18\n(S'Variable_Type'\n(I2\nttRp2108\nsS'Y:Load 115 - CTAGLI31'\np2109\ng18\n(S'Variable_Type'\n(I2\nttRp2110\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np2111\ng18\n(S'Variable_Type'\n(I2\nttRp2112\nsS'Y:VBus79 - CFURIA32'\np2113\ng18\n(S'Variable_Type'\n(I2\nttRp2114\nsS'Y:PMachine47 - CVAZZI21'\np2115\ng18\n(S'Variable_Type'\n(I1\nttRp2116\nsS'Y:VBus123 - CVAZZI34'\np2117\ng18\n(S'Variable_Type'\n(I2\nttRp2118\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np2119\ng18\n(S'Variable_Type'\n(I2\nttRp2120\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np2121\ng18\n(S'Variable_Type'\n(I2\nttRp2122\nsS'Y:VBus44 - CTAGLI21'\np2123\ng18\n(S'Variable_Type'\n(I2\nttRp2124\nsS'Y:VBus65 - CCASAM33'\np2125\ng18\n(S'Variable_Type'\n(I2\nttRp2126\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np2127\ng18\n(S'Variable_Type'\n(I1\nttRp2128\nsS'Y:PMachine139 - CLUCCI310'\np2129\ng18\n(S'Variable_Type'\n(I1\nttRp2130\nsS'Y:VBus112 - CSAMPO31'\np2131\ng18\n(S'Variable_Type'\n(I2\nttRp2132\nsS'Y:VBus68 - CCASAM36'\np2133\ng18\n(S'Variable_Type'\n(I2\nttRp2134\nsS'Y:Load 55 - CBIGUG31'\np2135\ng18\n(S'Variable_Type'\n(I2\nttRp2136\nsS'Y:PMachine53 - CBASTI31'\np2137\ng18\n(S'Variable_Type'\n(I2\nttRp2138\nsS'Y:NbeTransit_0.9-1'\np2139\ng18\n(S'Variable_Type'\n(I1\nttRp2140\nsS'Y:VBus24 - CFURIA21'\np2141\ng18\n(S'Variable_Type'\n(I2\nttRp2142\nsS'Y:VBus23 - CCORTE22'\np2143\ng18\n(S'Variable_Type'\n(I2\nttRp2144\nsS'XProdEolienne%Pnom'\np2145\ng18\n(S'Variable_Type'\n(I1\nttRp2146\nsS'Y:VBus40 - CSTMAR21'\np2147\ng18\n(S'Variable_Type'\n(I2\nttRp2148\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np2149\ng18\n(S'Variable_Type'\n(I2\nttRp2150\nsS'Y:PMachine120 - CVAZZI31'\np2151\ng18\n(S'Variable_Type'\n(I2\nttRp2152\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np2153\ng18\n(S'Variable_Type'\n(I2\nttRp2154\nsS'Y:PMachine117 - CTOLLA32'\np2155\ng18\n(S'Variable_Type'\n(I2\nttRp2156\nsS'Y:VBus89 - CLUCCI34'\np2157\ng18\n(S'Variable_Type'\n(I2\nttRp2158\nsS'Y:VBus33 - COLETT21'\np2159\ng18\n(S'Variable_Type'\n(I2\nttRp2160\nsS'Y:VBus32 - COCANA21'\np2161\ng18\n(S'Variable_Type'\n(I2\nttRp2162\nsS'Y:PMachine121 - CVAZZI32'\np2163\ng18\n(S'Variable_Type'\n(I2\nttRp2164\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np2165\ng18\n(S'Variable_Type'\n(I1\nttRp2166\nsS'Y:PMachine102 - CPORTO31'\np2167\ng18\n(S'Variable_Type'\n(I2\nttRp2168\nsS'Y:VBus82 - CILERO31'\np2169\ng18\n(S'Variable_Type'\n(I2\nttRp2170\nsS'Y:PMachine137 - CLUCCI38'\np2171\ng18\n(S'Variable_Type'\n(I1\nttRp2172\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np2173\ng18\n(S'Variable_Type'\n(I2\nttRp2174\nsS'Y:VBus37 - CRIZZA21'\np2175\ng18\n(S'Variable_Type'\n(I2\nttRp2176\nsS'Y:PMachine73 - CCASTI32'\np2177\ng18\n(S'Variable_Type'\n(I2\nttRp2178\nsS'Y:PMachine86 - CLUCCI31'\np2179\ng18\n(S'Variable_Type'\n(I2\nttRp2180\nsS'Y:Load 53 - CBASTI31'\np2181\ng18\n(S'Variable_Type'\n(I2\nttRp2182\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np2183\ng18\n(S'Variable_Type'\n(I2\nttRp2184\nsS'Y:VBus21 - CCORSC21'\np2185\ng18\n(S'Variable_Type'\n(I2\nttRp2186\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np2187\ng18\n(S'Variable_Type'\n(I2\nttRp2188\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np2189\ng18\n(S'Variable_Type'\n(I2\nttRp2190\nsS'Y:PMachine63 - CCASAM31'\np2191\ng18\n(S'Variable_Type'\n(I2\nttRp2192\nsS'Y:Load 82 - CILERO31'\np2193\ng18\n(S'Variable_Type'\n(I2\nttRp2194\nsS'Y:PMachine64 - CCASAM32'\np2195\ng18\n(S'Variable_Type'\n(I2\nttRp2196\nsS'Y:VBus67 - CCASAM35'\np2197\ng18\n(S'Variable_Type'\n(I2\nttRp2198\nsS'Y:VBus53 - CBASTI31'\np2199\ng18\n(S'Variable_Type'\n(I2\nttRp2200\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np2201\ng18\n(S'Variable_Type'\n(I2\nttRp2202\nsS'Y:VBus61 - CCALVI31'\np2203\ng18\n(S'Variable_Type'\n(I2\nttRp2204\nsS'Y:VBus93 - COCANA32'\np2205\ng18\n(S'Variable_Type'\n(I2\nttRp2206\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np2207\ng18\n(S'Variable_Type'\n(I2\nttRp2208\nsS'Y:VBus104 - CPROPR31'\np2209\ng18\n(S'Variable_Type'\n(I2\nttRp2210\nsS'Y:VBus48 - CZSSS621'\np2211\ng18\n(S'Variable_Type'\n(I2\nttRp2212\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np2213\ng18\n(S'Variable_Type'\n(I1\nttRp2214\nsS'Y:VBus74 - CCERVI31'\np2215\ng18\n(S'Variable_Type'\n(I2\nttRp2216\nsS'Y:VBus36 - CPROPR21'\np2217\ng18\n(S'Variable_Type'\n(I2\nttRp2218\nsS'Y:Load 100 - COLETT31'\np2219\ng18\n(S'Variable_Type'\n(I2\nttRp2220\nsS'Y:PMachine54 - CBASTI32'\np2221\ng18\n(S'Variable_Type'\n(I2\nttRp2222\nsS'Y:VBus138 - CLUCCI39'\np2223\ng18\n(S'Variable_Type'\n(I2\nttRp2224\nsS'Y:VBus39 - CSTLUC21'\np2225\ng18\n(S'Variable_Type'\n(I2\nttRp2226\nsS'Y:PMachine74 - CCERVI31'\np2227\ng18\n(S'Variable_Type'\n(I2\nttRp2228\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np2229\ng18\n(S'Variable_Type'\n(I2\nttRp2230\nsS'Y:Load 78 - CFURIA31'\np2231\ng18\n(S'Variable_Type'\n(I2\nttRp2232\nsS'Y:VBus28 - CLORET21'\np2233\ng18\n(S'Variable_Type'\n(I2\nttRp2234\nsS'Y:PMachine105 - CPROPR32'\np2235\ng18\n(S'Variable_Type'\n(I2\nttRp2236\nsS'Y:VBus96 - COCANA35'\np2237\ng18\n(S'Variable_Type'\n(I2\nttRp2238\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np2239\ng18\n(S'Variable_Type'\n(I1\nttRp2240\nsS'Y:PMachine18 - CCASAM21'\np2241\ng18\n(S'Variable_Type'\n(I1\nttRp2242\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np2243\ng18\n(S'Variable_Type'\n(I2\nttRp2244\nsS'Y:VBus13 - CBIGUG21'\np2245\ng18\n(S'Variable_Type'\n(I2\nttRp2246\nsS'Y:VBus59 - CCALDA31'\np2247\ng18\n(S'Variable_Type'\n(I2\nttRp2248\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np2249\ng18\n(S'Variable_Type'\n(I2\nttRp2250\nsS'Y:Load 76 - CCORTE31'\np2251\ng18\n(S'Variable_Type'\n(I2\nttRp2252\nsS'Y:VBus58 - CBONIF32'\np2253\ng18\n(S'Variable_Type'\n(I2\nttRp2254\nsS'Y:VBus84 - CLORET31'\np2255\ng18\n(S'Variable_Type'\n(I2\nttRp2256\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np2257\ng18\n(S'Variable_Type'\n(I2\nttRp2258\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np2259\ng18\n(S'Variable_Type'\n(I1\nttRp2260\nsS'Y:VBus97 - COCANA36'\np2261\ng18\n(S'Variable_Type'\n(I2\nttRp2262\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np2263\ng18\n(S'Variable_Type'\n(I1\nttRp2264\nsS'Y:VBus106 - CRIZZA31'\np2265\ng18\n(S'Variable_Type'\n(I2\nttRp2266\nsS'Y:VBus29 - CLUCCI21'\np2267\ng18\n(S'Variable_Type'\n(I2\nttRp2268\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np2269\ng18\n(S'Variable_Type'\n(I1\nttRp2270\nsS'Y:VBus80 - CGHISO31'\np2271\ng18\n(S'Variable_Type'\n(I2\nttRp2272\nsS'Y:PMachine114 - CSOVEN31'\np2273\ng18\n(S'Variable_Type'\n(I2\nttRp2274\nsS'Y:VBus132 - CVAZZI313'\np2275\ng18\n(S'Variable_Type'\n(I2\nttRp2276\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np2277\ng18\n(S'Variable_Type'\n(I2\nttRp2278\nsS'Y:NbeTension'\np2279\ng18\n(S'Variable_Type'\n(I2\nttRp2280\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np2281\ng18\n(S'Variable_Type'\n(I1\nttRp2282\nsS'Y:VBus87 - CLUCCI32'\np2283\ng18\n(S'Variable_Type'\n(I2\nttRp2284\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np2285\ng18\n(S'Variable_Type'\n(I2\nttRp2286\nsS'Y:VBus88 - CLUCCI33'\np2287\ng18\n(S'Variable_Type'\n(I2\nttRp2288\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np2289\ng18\n(S'Variable_Type'\n(I1\nttRp2290\nsS'Y:PMachine85 - CLORET32'\np2291\ng18\n(S'Variable_Type'\n(I2\nttRp2292\nsS'Y:VBus81 - CGHISO32'\np2293\ng18\n(S'Variable_Type'\n(I2\nttRp2294\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np2295\ng18\n(S'Variable_Type'\n(I2\nttRp2296\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np2297\ng18\n(S'Variable_Type'\n(I2\nttRp2298\nsS'Y:VBus15 - CBONIF22'\np2299\ng18\n(S'Variable_Type'\n(I2\nttRp2300\nsS'X:Load(pu)'\np2301\ng18\n(S'Variable_Type'\n(I2\nttRp2302\nsS'Y:PMachine126 - CVAZZI37'\np2303\ng18\n(S'Variable_Type'\n(I2\nttRp2304\nsS'Y:VBus95 - COCANA34'\np2305\ng18\n(S'Variable_Type'\n(I2\nttRp2306\nsS'Y:VBus62 - CCALVI32'\np2307\ng18\n(S'Variable_Type'\n(I2\nttRp2308\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np2309\ng18\n(S'Variable_Type'\n(I1\nttRp2310\nsS'Y:Load 95 - COCANA34'\np2311\ng18\n(S'Variable_Type'\n(I2\nttRp2312\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np2313\ng18\n(S'Variable_Type'\n(I2\nttRp2314\nsS'Y:PMachine90 - CMOROS31'\np2315\ng18\n(S'Variable_Type'\n(I2\nttRp2316\nsS'Y:Load 101 - CPIETR31'\np2317\ng18\n(S'Variable_Type'\n(I2\nttRp2318\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np2319\ng18\n(S'Variable_Type'\n(I1\nttRp2320\nsS'Y:PMachine132 - CVAZZI313'\np2321\ng18\n(S'Variable_Type'\n(I2\nttRp2322\nsS'Y:PMachine65 - CCASAM33'\np2323\ng18\n(S'Variable_Type'\n(I2\nttRp2324\nsS'Y:VBus125 - CVAZZI36'\np2325\ng18\n(S'Variable_Type'\n(I2\nttRp2326\nsS'Y:VBus135 - CLUCCI36'\np2327\ng18\n(S'Variable_Type'\n(I2\nttRp2328\nsS'Y:VBus47 - CVAZZI21'\np2329\ng18\n(S'Variable_Type'\n(I2\nttRp2330\nsS'Y:VBus94 - COCANA33'\np2331\ng18\n(S'Variable_Type'\n(I2\nttRp2332\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np2333\ng18\n(S'Variable_Type'\n(I1\nttRp2334\nsS'Y:VBus17 - CCALVI21'\np2335\ng18\n(S'Variable_Type'\n(I2\nttRp2336\nsS'Y:Load 90 - CMOROS31'\np2337\ng18\n(S'Variable_Type'\n(I2\nttRp2338\nsS'Y:VBus120 - CVAZZI31'\np2339\ng18\n(S'Variable_Type'\n(I2\nttRp2340\nsS'Y:VBus52 - CASPRE32'\np2341\ng18\n(S'Variable_Type'\n(I2\nttRp2342\nsS'Y:VBus25 - CFURIA22'\np2343\ng18\n(S'Variable_Type'\n(I2\nttRp2344\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np2345\ng18\n(S'Variable_Type'\n(I2\nttRp2346\nsS'Y:PMachine69 - CCASAM37'\np2347\ng18\n(S'Variable_Type'\n(I2\nttRp2348\nsS'Y:PConsoTot'\np2349\ng18\n(S'Variable_Type'\n(I2\nttRp2350\nsS'Y:PMachine92 - COCANA31'\np2351\ng18\n(S'Variable_Type'\n(I2\nttRp2352\nsS'Y:PMachine89 - CLUCCI34'\np2353\ng18\n(S'Variable_Type'\n(I1\nttRp2354\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np2355\ng18\n(S'Variable_Type'\n(I2\nttRp2356\nsS'Y:PMachine122 - CVAZZI33'\np2357\ng18\n(S'Variable_Type'\n(I2\nttRp2358\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np2359\ng18\n(S'Variable_Type'\n(I1\nttRp2360\nsS'Y:PMachine77 - CCORTE32'\np2361\ng18\n(S'Variable_Type'\n(I2\nttRp2362\nsS'Y:PMachine116 - CTOLLA31'\np2363\ng18\n(S'Variable_Type'\n(I2\nttRp2364\nsS'Y:VBus126 - CVAZZI37'\np2365\ng18\n(S'Variable_Type'\n(I2\nttRp2366\nsS'Y:PMachine60 - CCALDA32'\np2367\ng18\n(S'Variable_Type'\n(I2\nttRp2368\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np2369\ng18\n(S'Variable_Type'\n(I1\nttRp2370\nsS'Y:VBus20 - CCERVI21'\np2371\ng18\n(S'Variable_Type'\n(I2\nttRp2372\nsS'Y:VBus119 - CTRAVO31'\np2373\ng18\n(S'Variable_Type'\n(I2\nttRp2374\nsS'Y:VBus11 - CASPRE21'\np2375\ng18\n(S'Variable_Type'\n(I2\nttRp2376\nsS'Y:VBus139 - CLUCCI310'\np2377\ng18\n(S'Variable_Type'\n(I2\nttRp2378\nsS'Y:VBus60 - CCALDA32'\np2379\ng18\n(S'Variable_Type'\n(I2\nttRp2380\nsS'Y:PMachine66 - CCASAM34'\np2381\ng18\n(S'Variable_Type'\n(I2\nttRp2382\nsS'Y:PMachine101 - CPIETR31'\np2383\ng18\n(S'Variable_Type'\n(I2\nttRp2384\nsS'Y:VBus136 - CLUCCI37'\np2385\ng18\n(S'Variable_Type'\n(I2\nttRp2386\nsS'Y:PMachine62 - CCALVI32'\np2387\ng18\n(S'Variable_Type'\n(I2\nttRp2388\nsS'Y:Load 74 - CCERVI31'\np2389\ng18\n(S'Variable_Type'\n(I2\nttRp2390\nsS'X:lineOff#'\np2391\ng18\n(S'Variable_Type'\n(I2\nttRp2392\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np2393\ng18\n(S'Variable_Type'\n(I2\nttRp2394\nsS'Y:VBus108 - CSAGON31'\np2395\ng18\n(S'Variable_Type'\n(I2\nttRp2396\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np2397\ng18\n(S'Variable_Type'\n(I2\nttRp2398\nsS'Y:VBus137 - CLUCCI38'\np2399\ng18\n(S'Variable_Type'\n(I2\nttRp2400\nsS'Y:VBus130 - CVAZZI311'\np2401\ng18\n(S'Variable_Type'\n(I2\nttRp2402\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np2403\ng18\n(S'Variable_Type'\n(I2\nttRp2404\nsS'Y:VBus46 - CTRAVO21'\np2405\ng18\n(S'Variable_Type'\n(I2\nttRp2406\nsS'Y:VBus113 - CSAMPO32'\np2407\ng18\n(S'Variable_Type'\n(I2\nttRp2408\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np2409\ng18\n(S'Variable_Type'\n(I2\nttRp2410\nsS'Y:PMachine68 - CCASAM36'\np2411\ng18\n(S'Variable_Type'\n(I2\nttRp2412\nsS'Y:VBus78 - CFURIA31'\np2413\ng18\n(S'Variable_Type'\n(I2\nttRp2414\nsS'Y:VBus26 - CGHISO21'\np2415\ng18\n(S'Variable_Type'\n(I2\nttRp2416\nsS'Y:VBus121 - CVAZZI32'\np2417\ng18\n(S'Variable_Type'\n(I2\nttRp2418\nsS'Y:PMachine97 - COCANA36'\np2419\ng18\n(S'Variable_Type'\n(I2\nttRp2420\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np2421\ng18\n(S'Variable_Type'\n(I2\nttRp2422\nsS'Y:PMachine83 - CILERO32'\np2423\ng18\n(S'Variable_Type'\n(I2\nttRp2424\nsS'Y:Max%A'\np2425\ng18\n(S'Variable_Type'\n(I2\nttRp2426\nsS'Y:VBus66 - CCASAM34'\np2427\ng18\n(S'Variable_Type'\n(I2\nttRp2428\nsS'Y:PMachine1 - CBONIF11'\np2429\ng18\n(S'Variable_Type'\n(I2\nttRp2430\nsS'Y:VBus111 - CSTMAR31'\np2431\ng18\n(S'Variable_Type'\n(I2\nttRp2432\nsS'Y:VBus124 - CVAZZI35'\np2433\ng18\n(S'Variable_Type'\n(I2\nttRp2434\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np2435\ng18\n(S'Variable_Type'\n(I2\nttRp2436\nsS'Y:PMachine131 - CVAZZI312'\np2437\ng18\n(S'Variable_Type'\n(I2\nttRp2438\nsS'Y:PMachine93 - COCANA32'\np2439\ng18\n(S'Variable_Type'\n(I2\nttRp2440\nsS'Y:Load 57 - CBONIF31'\np2441\ng18\n(S'Variable_Type'\n(I2\nttRp2442\nsS'Y:VBus86 - CLUCCI31'\np2443\ng18\n(S'Variable_Type'\n(I2\nttRp2444\nsS'Y:VBus38 - CSAGON21'\np2445\ng18\n(S'Variable_Type'\n(I2\nttRp2446\nsS'Y:PMachine81 - CGHISO32'\np2447\ng18\n(S'Variable_Type'\n(I2\nttRp2448\nsS'Y:PMachine61 - CCALVI31'\np2449\ng18\n(S'Variable_Type'\n(I1\nttRp2450\nsS'Y:VBus110 - CSTLUC31'\np2451\ng18\n(S'Variable_Type'\n(I2\nttRp2452\nsS'X:ProdPV%Pnom'\np2453\ng18\n(S'Variable_Type'\n(I2\nttRp2454\nssg622\n(dp2455\nsg12\n(lp2456\nS'orderedDomain'\np2457\nasg628\nF1369988698.6760001\nsba(iOWContexts\nContext\np2458\n(dp2459\ng624\n(dp2460\ng1850\n(I17\nI-2\ntp2461\nssg15\n(dp2462\nS'Y15:%RateA 18-44'\np2463\ng18\n(S'Variable_Type'\n(I2\nttRp2464\nsS'Y36:%RateA 29-30'\np2465\ng18\n(S'Variable_Type'\n(I1\nttRp2466\nsS'Y17:%RateA 19-22'\np2467\ng18\n(S'Variable_Type'\n(I2\nttRp2468\nsS'Y56:%RateA 72-73'\np2469\ng18\n(S'Variable_Type'\n(I1\nttRp2470\nsS'Y30:%RateA 25-29'\np2471\ng18\n(S'Variable_Type'\n(I2\nttRp2472\nsS'Y39:%RateA 32-45'\np2473\ng18\n(S'Variable_Type'\n(I2\nttRp2474\nsS'Y52:%RateA 55-56'\np2475\ng18\n(S'Variable_Type'\n(I1\nttRp2476\nsS'X:Load(pu)'\np2477\ng18\n(S'Variable_Type'\n(I2\nttRp2478\nsS'Y55:%RateA 61-62'\np2479\ng18\n(S'Variable_Type'\n(I1\nttRp2480\nsS'Y:Load 115'\np2481\ng18\n(S'Variable_Type'\n(I2\nttRp2482\nsS'Y1:%RateA 11-47'\np2483\ng18\n(S'Variable_Type'\n(I2\nttRp2484\nsS'Y13:%RateA 18-30'\np2485\ng18\n(S'Variable_Type'\n(I2\nttRp2486\nsS'Y2:%RateA 12-24'\np2487\ng18\n(S'Variable_Type'\n(I2\nttRp2488\nsS'Y38:%RateA 32-45'\np2489\ng18\n(S'Variable_Type'\n(I2\nttRp2490\nsS'Y48:%RateA 39-46'\np2491\ng18\n(S'Variable_Type'\n(I2\nttRp2492\nsS'Y23:%RateA 22-31'\np2493\ng18\n(S'Variable_Type'\n(I2\nttRp2494\nsS'Y34:%RateA 28-38'\np2495\ng18\n(S'Variable_Type'\n(I2\nttRp2496\nsS'Y31:%RateA 26-41'\np2497\ng18\n(S'Variable_Type'\n(I2\nttRp2498\nsS'Y11:%RateA 17-27'\np2499\ng18\n(S'Variable_Type'\n(I2\nttRp2500\nsS'Y20:%RateA 20-44'\np2501\ng18\n(S'Variable_Type'\n(I2\nttRp2502\nsS'Y47:%RateA 38-43'\np2503\ng18\n(S'Variable_Type'\n(I2\nttRp2504\nsS'Y57:%RateA 76-77'\np2505\ng18\n(S'Variable_Type'\n(I1\nttRp2506\nsS'Y54:%RateA 59-60'\np2507\ng18\n(S'Variable_Type'\n(I1\nttRp2508\nsS'Y12:%RateA 18-30'\np2509\ng18\n(S'Variable_Type'\n(I2\nttRp2510\nsS'Y18:%RateA 19-27'\np2511\ng18\n(S'Variable_Type'\n(I2\nttRp2512\nsS'Y49:%RateA 40-48'\np2513\ng18\n(S'Variable_Type'\n(I2\nttRp2514\nsS'Y63:%RateA 95-96'\np2515\ng18\n(S'Variable_Type'\n(I1\nttRp2516\nsS'Y21:%RateA 21-43'\np2517\ng18\n(S'Variable_Type'\n(I2\nttRp2518\nsS'Y68:%RateA 112-113'\np2519\ng18\n(S'Variable_Type'\n(I1\nttRp2520\nsS'Y25:%RateA 23-41'\np2521\ng18\n(S'Variable_Type'\n(I2\nttRp2522\nsS'Y19:%RateA 20-26'\np2523\ng18\n(S'Variable_Type'\n(I2\nttRp2524\nsS'Y9:%RateA 16-32'\np2525\ng18\n(S'Variable_Type'\n(I2\nttRp2526\nsS'Y41:%RateA 32-48'\np2527\ng18\n(S'Variable_Type'\n(I2\nttRp2528\nsS'Y61:%RateA 84-85'\np2529\ng18\n(S'Variable_Type'\n(I1\nttRp2530\nsS'Y50:%RateA 51-52'\np2531\ng18\n(S'Variable_Type'\n(I1\nttRp2532\nsS'Y40:%RateA 32-47'\np2533\ng18\n(S'Variable_Type'\n(I2\nttRp2534\nsS'Y66:%RateA 106-107'\np2535\ng18\n(S'Variable_Type'\n(I1\nttRp2536\nsS'Y4:%RateA 13-25'\np2537\ng18\n(S'Variable_Type'\n(I2\nttRp2538\nsS'Y27:%RateA 24-33'\np2539\ng18\n(S'Variable_Type'\n(I2\nttRp2540\nsS'Y35:%RateA 28-47'\np2541\ng18\n(S'Variable_Type'\n(I2\nttRp2542\nsS'Y28:%RateA 24-42'\np2543\ng18\n(S'Variable_Type'\n(I2\nttRp2544\nsS'Y53:%RateA 57-58'\np2545\ng18\n(S'Variable_Type'\n(I1\nttRp2546\nsS'Y14:%RateA 18-31'\np2547\ng18\n(S'Variable_Type'\n(I2\nttRp2548\nsS'Y26:%RateA 24-25'\np2549\ng18\n(S'Variable_Type'\n(I1\nttRp2550\nsS'Y16:%RateA 19-21'\np2551\ng18\n(S'Variable_Type'\n(I2\nttRp2552\nsS'Y33:%RateA 27-33'\np2553\ng18\n(S'Variable_Type'\n(I2\nttRp2554\nsS'Y7:%RateA 14-35'\np2555\ng18\n(S'Variable_Type'\n(I2\nttRp2556\nsS'Y64:%RateA 102-103'\np2557\ng18\n(S'Variable_Type'\n(I1\nttRp2558\nsS'Y51:%RateA 53-54'\np2559\ng18\n(S'Variable_Type'\n(I1\nttRp2560\nsS'Y67:%RateA 108-109'\np2561\ng18\n(S'Variable_Type'\n(I1\nttRp2562\nsS'Y60:%RateA 82-83'\np2563\ng18\n(S'Variable_Type'\n(I1\nttRp2564\nsS'Y62:%RateA 86-87'\np2565\ng18\n(S'Variable_Type'\n(I1\nttRp2566\nsS'Y59:%RateA 80-81'\np2567\ng18\n(S'Variable_Type'\n(I1\nttRp2568\nsS'Y8:%RateA 15-35'\np2569\ng18\n(S'Variable_Type'\n(I2\nttRp2570\nsS'Y3:%RateA 12-24'\np2571\ng18\n(S'Variable_Type'\n(I2\nttRp2572\nsS'Y32:%RateA 26-46'\np2573\ng18\n(S'Variable_Type'\n(I2\nttRp2574\nsS'Y22:%RateA 22-23'\np2575\ng18\n(S'Variable_Type'\n(I1\nttRp2576\nsS'Y37:%RateA 32-34'\np2577\ng18\n(S'Variable_Type'\n(I2\nttRp2578\nsS'Y43:%RateA 35-37'\np2579\ng18\n(S'Variable_Type'\n(I2\nttRp2580\nsS'Y0:%RateA 11-28'\np2581\ng18\n(S'Variable_Type'\n(I2\nttRp2582\nsS'Y46:%RateA 36-48'\np2583\ng18\n(S'Variable_Type'\n(I2\nttRp2584\nsS'Y45:%RateA 36-37'\np2585\ng18\n(S'Variable_Type'\n(I2\nttRp2586\nsS'Y65:%RateA 104-105'\np2587\ng18\n(S'Variable_Type'\n(I1\nttRp2588\nsS'Y5:%RateA 13-29'\np2589\ng18\n(S'Variable_Type'\n(I2\nttRp2590\nsS'Y24:%RateA 23-32'\np2591\ng18\n(S'Variable_Type'\n(I2\nttRp2592\nsS'Y6:%RateA 14-15'\np2593\ng18\n(S'Variable_Type'\n(I1\nttRp2594\nsS'Y29:%RateA 25-29'\np2595\ng18\n(S'Variable_Type'\n(I2\nttRp2596\nsS'Y44:%RateA 35-39'\np2597\ng18\n(S'Variable_Type'\n(I2\nttRp2598\nsS'Y58:%RateA 78-79'\np2599\ng18\n(S'Variable_Type'\n(I1\nttRp2600\nsS'Y42:%RateA 34-36'\np2601\ng18\n(S'Variable_Type'\n(I2\nttRp2602\nsS'Y10:%RateA 16-47'\np2603\ng18\n(S'Variable_Type'\n(I2\nttRp2604\nssg622\n(dp2605\nsg12\n(lp2606\ng2457\nasg628\nF1369933161.6689999\nsbas.&quot;}"/>\r
+</schema>\r
diff --git a/OldCodes/PSEN_Eficas/PSEN/support_functions.py b/OldCodes/PSEN_Eficas/PSEN/support_functions.py
new file mode 100755 (executable)
index 0000000..4a84a08
--- /dev/null
@@ -0,0 +1,599 @@
+# -*- coding: utf-8 -*-\r
+"""\r
+Created on Mon Jun 03 15:31:42 2013\r
+\r
+@author: B31272\r
+\r
+Fonctions de support\r
+"""\r
+import os,sys,random,string\r
+sys.path.append(r"C:\Program Files\PTI\PSSE33\PSSBIN")\r
+os.environ['PATH'] = r"C:\Program Files\PTI\PSSE33\PSSBIN;"+ os.environ['PATH']\r
+#os.chdir(folder)\r
+import psspy\r
+import pssarrays\r
+import redirect\r
+_i=psspy.getdefaultint()\r
+_f=psspy.getdefaultreal()\r
+_s=psspy.getdefaultchar()\r
+redirect.psse2py()\r
+#import pssdb\r
+psspy.psseinit(80000)\r
+\r
+import numpy as np\r
+from math import*\r
+from openturns import *\r
+\r
+#===============================================================================\r
+#    DEFINITION DES FONCTIONS   -   CREATION OF THE FUNCTIONS\r
+#===============================================================================\r
+\r
+#Fonction de transfert vent-puissance d'une eolienne\r
+def eol(wind, WTconfig):\r
+    Vcin = WTconfig [0]\r
+    Vrate = WTconfig [1]\r
+    Vcout = WTconfig [2]\r
+    Rho = WTconfig [3]\r
+    lossrate = WTconfig [4]\r
+    if wind <= Vcin : \r
+        Pnorm=0\r
+    elif wind < Vrate :\r
+        Pnorm=wind*(1-lossrate)#((wind**2-Vcin**2)/(Vrate**2-Vcin**2)*Rho/1.225*(1-lossrate))\r
+    elif wind < Vcout :\r
+        Pnorm = 1*(1-lossrate)\r
+    else : \r
+        Pnorm=0\r
+    return Pnorm\r
+\r
+#Fonction permettant de lire les donnees qui nous interessent et de les mettre dans une matrice\r
+def read_sav(doc): \r
+    psspy.case(doc)\r
+    # Select what to report\r
+    if psspy.bsysisdef(0):\r
+        sid = 0\r
+    else:   # Select subsytem with all buses\r
+        sid = -1    \r
+    \r
+    flag_bus     = 1    # in-service\r
+    flag_plant   = 4    # in-service\r
+    flag_load    = 1    # in-service\r
+    flag_swsh    = 1    # in-service\r
+    flag_brflow  = 1    # in-service\r
+    owner_brflow = 1    # bus, ignored if sid is -ve\r
+    ties_brflow  = 5    # ignored if sid is -ve\r
+    entry = 1   # gives a single entry (each branch once)\r
+    \r
+    #Bus data (number, basekV, pu, name, ...) : PSSe has 3 functions one for integer data, one for real data and one for strings\r
+    istrings = ['number']\r
+    ierr, idata = psspy.abusint(sid, flag_bus, istrings)\r
+    buses=idata\r
+    \r
+    rstrings = ['base','pu']\r
+    ierr, rdata = psspy.abusreal(sid, flag_bus, rstrings)\r
+    buses.append(rdata[0])\r
+    buses.append(rdata[1])\r
+    \r
+    cstrings = ['name']\r
+    ierr, cdata = psspy.abuschar(sid, flag_bus, cstrings)\r
+    buses.append(cdata[0])\r
+    \r
+    buses=zip(*buses) # transpose the matrix\r
+    \r
+    del idata, rdata, istrings, rstrings\r
+    \r
+    #Lines data (from, to, amps, rate%a, ploss, qloss)\r
+    flag=2 #All non-transformer branches    \r
+    istrings = ['fromnumber','tonumber']\r
+    ierr, idata = psspy.abrnint(sid, owner_brflow, ties_brflow, flag, entry, istrings)\r
+    lines=idata\r
+    \r
+    rstrings=['amps','pctratea','pctrateb','pctratec','p','q']\r
+    ierr, rdata = psspy.abrnreal(sid, owner_brflow, ties_brflow, flag, entry, rstrings)\r
+    for rc in range (np.matrix(rdata).shape[0]) :\r
+        lines.append(rdata[rc])\r
+    \r
+    cstrings=['fromname','toname','id']\r
+    ierr, cdata = psspy.abrnchar(sid, owner_brflow, ties_brflow, flag, entry, cstrings)\r
+    for rc in range (np.matrix(cdata).shape[0]) :\r
+        lines.append(cdata[rc])\r
+    \r
+    lines=zip(*lines) # transpose the matrix\r
+    \r
+    del idata, rdata, istrings, rstrings\r
+\r
+    #2 windings transformers data (from, to, amps, rate%a, ploss, qloss)\r
+    flag=6 #All transformer branches    \r
+    istrings = ['fromnumber','tonumber']\r
+    ierr, idata = psspy.abrnint(sid, owner_brflow, ties_brflow, flag, entry, istrings)\r
+    transf=idata\r
+    \r
+    rstrings=['amps','pctratea','ploss','qloss']\r
+    ierr, rdata = psspy.abrnreal(sid, owner_brflow, ties_brflow, flag, entry, rstrings)\r
+    for rc in range (np.matrix(rdata).shape[0]) :\r
+        transf.append(rdata[rc])\r
+    \r
+    transf=zip(*transf) # transpose the matrix\r
+    \r
+    del idata, rdata, istrings, rstrings    \r
+    \r
+    #Machines data (bus, inservice, number, pgen, qgen, mvabase)\r
+    istrings = ['number','status']\r
+    ierr, idata = psspy.amachint(sid, flag_plant, istrings)\r
+    plants=idata\r
+    \r
+    cstrings = ['id']\r
+    ierr, cdata = psspy.amachchar(sid, flag_plant, cstrings)\r
+    for rc in range (np.matrix(cdata).shape[0]) :\r
+        plants.append(cdata[rc])   \r
+    \r
+    rstrings = ['pgen','qgen','mbase','pmax','qmax']\r
+    ierr, rdata = psspy.amachreal(sid, flag_plant, rstrings)\r
+    for rc in range (np.matrix(rdata).shape[0]) :\r
+        plants.append(rdata[rc])\r
+        \r
+    cstrings = ['name']\r
+    ierr, cdata = psspy.amachchar(sid, flag_plant, cstrings)\r
+    plants.append(cdata[0])   \r
+    \r
+    nb_plants=np.matrix(plants).shape[1]\r
+    for rc in range (0,nb_plants) :\r
+        plants[3][rc]=float(plants[3][rc]*int(plants[1][rc])) # If the plant isn't in service its production is fixed to zero\r
+        plants[4][rc]=float(plants[4][rc]*int(plants[1][rc])) # If the plant isn't in service its production is fixed to zero\r
+    \r
+    plants=zip(*plants) # transpose the matrix\r
+        \r
+    #Loads data (bus, active, reactive)\r
+    istrings = ['number']\r
+    ierr, idata = psspy.aloadint(sid, flag_load, istrings)\r
+    loads=idata\r
+    \r
+    xstrings = ['mvaact']\r
+    ierr, xdata = psspy.aloadcplx(sid, flag_load, xstrings)  \r
+    loads.append(np.real(xdata)[0]) # Append the real part of the load\r
+    loads.append(np.imag(xdata)[0]) #Append the imaginary part of the load\r
+    \r
+    istrings = ['status']\r
+    ierr, idata = psspy.aloadint(sid, flag_load, istrings)\r
+    loads.append(idata[0])\r
+    \r
+    cstrings = ['name']\r
+    ierr, cdata = psspy.aloadchar(sid, flag_load, cstrings)\r
+    loads.append(cdata[0])\r
+    \r
+    nb_loads=np.matrix(loads).shape[1]\r
+    for rc in range (0,nb_loads) :\r
+        loads[1][rc]=float(loads[1][rc]*int(loads[3][rc])) # If the load isn't in service its consumption is fixed to zero\r
+        loads[2][rc]=float(loads[2][rc]*int(loads[3][rc])) # If the load isn't in service its consumption is fixed to zero\r
+    \r
+    loads=zip(*loads) # transpose the matrix\r
+    \r
+    #Fixed shunt data (number, MVAR, name, ...) \r
+    istrings = ['number','status']\r
+    ierr, idata = psspy.afxshntbusint(sid, flag_bus, istrings)\r
+    shunt=idata\r
+    \r
+    xstrings = ['shuntact']\r
+    ierr, xdata = psspy.afxshntbuscplx(sid, flag_bus, xstrings)\r
+    shunt.append(np.imag(xdata)[0]) #Append the imaginary part of the load\r
+    \r
+    cstrings = ['name']\r
+    ierr, cdata = psspy.afxshntbuschar(sid, flag_bus, cstrings)\r
+    shunt.append(cdata[0])\r
+    \r
+    shunt=zip(*shunt) # transpose the matrix\r
+       \r
+    return buses, lines, transf, plants, loads, shunt\r
+\r
+# Fonction pour ecrire un fichier de sortie type csv\r
+def MyLogger(x,y,z,logCSVfilename,logTXTfilename,ite):  \r
+    f=open(logCSVfilename, 'a')\r
+    f.write("%f;" % (ite))\r
+    f.write(";")\r
+    nx = len(x)\r
+    for i in range(0,nx):\r
+        f.write(str(x[i]))#f.write("%f;" % (x[i]))\r
+        f.write(";")\r
+    f.write(";")\r
+    nz = len(z)\r
+    for i in range(0,nz):\r
+        f.write("%f;" % (z[i]))\r
+    f.write(";")\r
+    ny = len(y)\r
+    for j in range(0,ny):\r
+        f.write("%f;" % (y[j]))\r
+    f.write("\n")\r
+    f.close()\r
+    \r
+    f=open(logTXTfilename, 'a')\r
+    f.write("%f\t" % (ite))\r
+    nx = len(x)\r
+    for i in range(0,nx):\r
+        f.write(str(x[i]))#f.write("%f\t" % (x[i]))\r
+        f.write("\t")\r
+    nz = len(z)\r
+    for i in range(0,nz):\r
+        f.write("%f\t" % (z[i]))\r
+    ny = len(y)\r
+    for j in range(0,ny):\r
+        f.write("%f\t" % (y[j]))\r
+    f.write("\n")\r
+    f.close()\r
+\r
+    \r
+# Fonction pour ecrire un fichier de sortie type csv pour chaque type de grandeur de sortie\r
+def MyMultiLogger (x, y, sizeY, z, ite, folder, day, fich, hour):\r
+    global ny\r
+    y0=0\r
+    for fich in range (np.size(sizeY,0)):\r
+        multilogfilename=folder+"\N"+day+"\Y"+str(fich)+"simulationDClog"+hour+".csv"\r
+        f=open(multilogfilename, 'a')\r
+        f.write("%f;" % (ite))\r
+        f.write(";")\r
+        nx = len(x)\r
+        for i in range(0,nx):\r
+            f.write("%f;" % (x[i]))\r
+        f.write(";")\r
+        nz = len(z)\r
+        for i in range(0,nz):\r
+            f.write("%f;" % (z[i]))\r
+        f.write(";")\r
+        ny = sizeY[fich]\r
+        for j in range(0,ny):\r
+            f.write("%f;" % (y[j+y0]))\r
+        f.write("\n")\r
+        f.close()\r
+        y0 += ny\r
+    print "Fichiers "+str(ite)+" enregistres\n\n"\r
+    \r
+# Analyses graphiques\r
+def graphical_out (inputSample, outputSampleAll, inputDim, outputDim, montecarlosize) :\r
+    print "\n\n\n                     Writing graphical analysis files..."\r
+    # A Pairwise scatter plot of the inputs\r
+    myGraph = Graph()\r
+    myPairs = Pairs(inputSample, 'Inputs relations', inputSample.getDescription(), "red", "bullet")\r
+    myGraph.add(Drawable(myPairs))\r
+    myGraph.draw("Input Samples",640,480,GraphImplementation.PDF)\r
+    #View(myGraph.getBitmap())\r
+    print 'Input pairwise scatterplot done...'\r
+    \r
+    # A Pairwise scatter plot of the outputs\r
+    myGraph = Graph()\r
+    myPairs = Pairs(outputSampleAll, 'Output relations', outputSampleAll.getDescription(), "red", "bullet")\r
+    myGraph.add(Drawable(myPairs))\r
+    myGraph.draw("Output Samples",640,480,GraphImplementation.PDF)\r
+    #View(myGraph.getBitmap())\r
+    print 'Output pairwise scatterplot done...'\r
+    \r
+    # A Pairwise scatter plot of the inputs/outputs\r
+    # Draw all scatter plots yj vs xi\r
+    for j in range(outputDim):\r
+        outputSamplej=outputSampleAll.getMarginal(j)\r
+        Ylabelstr=outputSamplej.getDescription()[0]\r
+        for i in range(inputDim):\r
+            inputSamplei=inputSample.getMarginal(i)\r
+            Xlabelstr=inputSamplei.getDescription()[0]\r
+            X=NumericalSample(montecarlosize,2)\r
+            for k in range(montecarlosize):\r
+                X[k,0]=inputSamplei[k][0]\r
+                X[k,1]=outputSamplej[k][0]\r
+            myGraph = Graph()\r
+            myCloud=Cloud(X);\r
+            mytitle=Ylabelstr+"vs"+Xlabelstr\r
+            myGraph.add(Drawable(myCloud))\r
+            myGraph.setAxes(1)\r
+            myGraph.setXTitle(Xlabelstr)\r
+            myGraph.setYTitle(Ylabelstr)\r
+            myGraph.draw(mytitle,640,480,GraphImplementation.PDF)\r
+            #ViewImage(myGraph.getBitmap())\r
+    print 'Input/Output pairwise scatterplot done...'\r
+    \r
+    # An histogram of the inputs\r
+    for i in range(inputDim):\r
+        inputSamplei=inputSample.getMarginal(i)\r
+        myGraph = VisualTest.DrawHistogram(inputSamplei)\r
+        labelarray=inputSamplei.getDescription()\r
+        labelstr=labelarray[0]\r
+        myGraph.setTitle(labelstr)\r
+        myGraph.setName(labelstr)\r
+        myGraph.setXTitle(labelstr)\r
+        myGraph.setYTitle("Frequency")\r
+        myGraph.draw(labelstr,640,480,GraphImplementation.PDF)\r
+        #View(myGraph.getBitmap())\r
+    print 'Input histogram done...'\r
+    \r
+    # An histogram of the outputs\r
+    for j in range(outputDim):\r
+        outputSamplej=outputSampleAll.getMarginal(j)\r
+        myGraph = VisualTest.DrawHistogram(outputSamplej)\r
+        labelarray=outputSamplej.getDescription()\r
+        labelstr=labelarray[0]\r
+        myGraph.setTitle(labelstr)\r
+        myGraph.setName(labelstr)\r
+        myGraph.setXTitle(labelstr)\r
+        myGraph.setYTitle("Frequency")\r
+        myGraph.draw(labelstr,640,480,GraphImplementation.PDF)\r
+        #View(myGraph.getBitmap())\r
+    print 'Output histogram done'\r
+    print 'Graphical output terminated'\r
+    \r
+def config_ENR(path_config_ENR) :\r
+    PV=[]\r
+    Wind1=[]\r
+    Wind2=[]\r
+    Interco=[]\r
+    f=open(path_config_ENR,"r")\r
+    lines=f.readlines()\r
+    for i in range (len(lines)) :\r
+        line = lines[i].split(";")\r
+        if str(line[0]).upper() == 'PV' :\r
+            PV.append([int(line[1]),i-1,int(line[3])])\r
+        elif str(line[0]).upper() == 'W1' :\r
+            Wind1.append([int(line[1]),i-1,int(line[3])])\r
+        elif str(line[0]).upper() == 'W2' :\r
+            Wind2.append([int(line[1]),i-1,int(line[3])])\r
+        elif str(line[0]).upper() == 'I' :\r
+            Interco.append([int(line[1]),i-1,int(line[3])])\r
+        else :\r
+            pass\r
+    return PV, Wind1, Wind2, Interco\r
+    \r
+def config_contingency(path_config_contin) :\r
+    lines_con=[]\r
+    groups_con=[]\r
+    # Loading of lines contingency configuration\r
+    f=open(path_config_contin[0],"r")\r
+    lines=f.readlines()\r
+    f.close()\r
+    for i in range (len(lines)) :\r
+        line=lines[i].split(";")\r
+        try :\r
+            int(line[1])\r
+        except ValueError :\r
+            pass\r
+        else :\r
+            if line[0] == '' :\r
+                line[0] = '0'\r
+            lines_con.append([int(line[1]), int(line[3]), str(line[5]),float(line[0].replace(',','.'))])\r
+            \r
+    # Loading of groups contingency configuration\r
+    f=open(path_config_contin[1],"r")\r
+    lines=f.readlines()\r
+    f.close()\r
+    for i in range (len(lines)) :\r
+        line=lines[i].split(";")\r
+        try :\r
+            int(line[1])\r
+        except ValueError :\r
+            pass\r
+        else :\r
+            if line[0] == '' :\r
+                line[0] = '0'\r
+            groups_con.append([int(line[1]), int(line[3]),float(line[0].replace(',','.'))])\r
+            \r
+    sizeLines = len(lines_con)\r
+    sizeGroups = len(groups_con)\r
+    val=[]\r
+    prob=[]\r
+    for i in range(sizeLines+sizeGroups) :\r
+        val.append(int(i))\r
+        \r
+    for i in range (sizeLines) :\r
+        prob.append(lines_con[i][3])\r
+    for i in range (sizeGroups) :\r
+        prob.append(groups_con[i][2])\r
+        \r
+    return lines_con, groups_con, val, prob\r
+    \r
+def LoadARMA(time_serie_file, time_serie_SS, time_serie_TH) :\r
+    f=open(time_serie_file,"r")\r
+    lines=f.readlines()\r
+    N=len(lines)\r
+    Xt=[]\r
+    for i in range(N) :\r
+        Xt.append([float(lines[i])])\r
+    \r
+    myTG=RegularGrid(0,float(time_serie_SS),N)\r
+    TS=TimeSeries(myTG,NumericalSample(Xt))\r
+    myWN=WhiteNoise(Distribution(Normal(0,1)),myTG)\r
+    myState=ARMAState(TS.getSample(),NumericalSample())\r
+    p=12\r
+    q=0\r
+    d=1\r
+    myFactory = ARMALikelihoodFactory ( p , q , d )\r
+    myARMA = myFactory.build(TS)\r
+    \r
+    myARMA.setState(myState)\r
+    \r
+    AR = myARMA.getARCoefficients()\r
+    MA = myARMA.getMACoefficients()\r
+    \r
+    ts = myARMA.getRealization()\r
+    ts.setName('A realization')\r
+    myTSGraph=ts.drawMarginal(0)\r
+    myTSGraph.draw('Realization'+str(p)+","+str(q),640,480,GraphImplementation.PDF)\r
+    myARMAState=myARMA.getState()\r
+    \r
+    #Make a prediction of the future on next Nit instants\r
+    Nit = int(time_serie_TH)\r
+    myARMA2=ARMA(AR,MA,myWN,myARMAState)\r
+    possibleFuture=myARMA2.getFuture(Nit)\r
+    possibleFuture.setName('Possible future')\r
+    \r
+    Xt2=[]\r
+    for i in range (len(possibleFuture)):\r
+        Xt2.append(possibleFuture.getValueAtIndex(i)[0])\r
+    Max=float(max(Xt2))\r
+    Min=float(min(Xt2))\r
+    h=float(Max-Min)\r
+    for i in range (len(possibleFuture)):\r
+        value= (Xt2[i]-Min+h/3)/(Max-Min+h/3)\r
+        possibleFuture.setValueAtIndex(i,NumericalPoint(1,value))\r
+        \r
+    myFG=possibleFuture.drawMarginal(0)\r
+    myFG.draw('Future'+str(Nit),640,480,GraphImplementation.PDF)\r
+    \r
+    return possibleFuture\r
+    \r
+def LoadTS(time_serie_file) :\r
+    TS=[]\r
+    for i in range(len(time_serie_file)) :\r
+        if time_serie_file[i] == -1 :\r
+            pass\r
+        else :\r
+            f=open(time_serie_file[i],"r")\r
+            lines=f.readlines()\r
+            N=len(lines)\r
+            Xt=[]\r
+            for j in range(N) :\r
+                try :\r
+                    float(lines[i])\r
+                except ValueError :\r
+                    lines[i] = commaToPoint(lines[i])\r
+                else :\r
+                    pass\r
+                Xt.append([float(lines[j])])\r
+            TS.append(Xt)\r
+    return TS\r
+\r
+\r
+def KSDist(filename) :\r
+    f=open(filename,"r")\r
+    print "Creating Kernel Smoothing distribution from: "+str(filename)\r
+    lines=f.readlines()\r
+    N=len(lines)\r
+    Xt=[]\r
+    for i in range(N) :\r
+        if lines[i] == "\n" :\r
+            print "End of file"\r
+            break\r
+        else :\r
+            try :\r
+                float(lines[i])\r
+            except ValueError :\r
+                lines[i] = commaToPoint(lines[i])\r
+            else :\r
+                pass\r
+            Xt.append([float(lines[i])])\r
+    NS=NumericalSample(Xt)\r
+    kernel=KernelSmoothing(Uniform())\r
+    myBandwith = kernel.computeSilvermanBandwidth(NS)\r
+    KS=kernel.build(NS,myBandwith,1)\r
+    return KS\r
+    \r
+def threshold (inputRandomVector, outputVariableOfInterest,pssefun,inputDistribution) :\r
+    # We create a quadraticCumul algorithm\r
+    myQuadraticCumul = QuadraticCumul(outputVariableOfInterest)\r
+    \r
+    # We compute the several elements provided by the quadratic cumul algorithm\r
+    # and evaluate the number of calculus needed\r
+    nbBefr = pssefun.getEvaluationCallsNumber()\r
+    \r
+    # Mean first order\r
+    meanFirstOrder = myQuadraticCumul.getMeanFirstOrder()[0]\r
+    nbAfter1 = pssefun.getEvaluationCallsNumber()\r
+    \r
+    # Mean second order\r
+    meanSecondOrder = myQuadraticCumul.getMeanSecondOrder()[0]\r
+    nbAfter2 = pssefun.getEvaluationCallsNumber()\r
+    \r
+    # Standard deviation\r
+    stdDeviation = sqrt(myQuadraticCumul.getCovariance()[0,0])\r
+    nbAfter3 = pssefun.getEvaluationCallsNumber()\r
+    \r
+    print "First order mean=", myQuadraticCumul.getMeanFirstOrder()[0]\r
+    print "Evaluation calls number = ", nbAfter1 - nbBefr\r
+    print "Second order mean=", myQuadraticCumul.getMeanSecondOrder()[0]\r
+    print "Evaluation calls number = ", nbAfter2 - nbAfter1\r
+    print "Standard deviation=", sqrt(myQuadraticCumul.getCovariance()[0,0])\r
+    print "Evaluation calls number = ", nbAfter3 - nbAfter2\r
+    \r
+    print  "Importance factors="\r
+    for i in range(inputRandomVector.getDimension()) :\r
+      print inputDistribution.getDescription()[i], " = ", myQuadraticCumul.getImportanceFactors()[i]\r
+    print ""\r
+    \r
+def getUserDefined (val, prob):\r
+    try :\r
+        val = val.split(',')\r
+        prob = prob.split(',')\r
+    except AttributeError :\r
+        pass\r
+    dim = len (val)\r
+    coll = UserDefinedPairCollection()\r
+    for i in range (dim) :\r
+        UDpair=UserDefinedPair(NumericalPoint(1,float(val[i])),float(prob[i]))\r
+        coll.add(UDpair)\r
+    return UserDefined(coll)\r
+    \r
+def getHistogram (step, prob) :\r
+    try :\r
+        step = step.split(',')\r
+        prob = prob.split(',')\r
+    except AttributeError :\r
+        pass\r
+    dim = len (step)\r
+    myHistogram = HistogramPairCollection(dim)\r
+    for i in range (dim) :\r
+        myHistogram[i]=HistogramPair(float(step[i]),float(prob[i]))\r
+    return myHistogram\r
+    \r
+def getUserLaw (description) :\r
+    law_num=int(description[0])\r
+    time_serie=0\r
+    time_serie_file=''\r
+    time_serie_SS=0\r
+    time_serie_TH=0    \r
+    if law_num == 1 :\r
+        law=Normal(float(description[1]),float(description[2]))\r
+    elif law_num == 2 :\r
+        law=Uniform(float(description[1]),float(description[2]))\r
+    elif law_num == 3 :\r
+        law=Exponential(float(description[1]),float(description[2]))\r
+    elif law_num == 4 :\r
+        law=Weibull(float(description[1]),float(description[2]),float(description[3]))\r
+    elif law_num == 5 :\r
+        law=TruncatedNormal(float(description[1]),float(description[2]),float(description[3]),float(description[4]))\r
+    elif law_num == 6 :\r
+        law=UserDefined(getUserDefined (description[1], description[2]))\r
+    elif law_num == 7 :\r
+        law=Histogram(0.0, getHistogram (description[1], description[2]))\r
+    elif law_num == 10 :\r
+        law=KSDist(description[1])\r
+    elif law_num == 20 :\r
+        law = Uniform(0.999999,1)\r
+        time_serie=1\r
+        time_serie_file=description[1]\r
+        """time_serie_SS=description[2]\r
+        time_serie_TH=description[3]"""\r
+    else :\r
+        law = Uniform(0.999999,1)\r
+    return law, [time_serie, time_serie_file] #[time_serie, time_serie_file, time_serie_SS, time_serie_TH]\r
+    \r
+def contingency_automatic (dfxPath, acccPath, rate) :\r
+    psspy.accc_with_dsp_3( 0.5,[0,0,0,1,1,2,0,0,0,0,0],r"""ALL""",dfxPath,acccPath,"","","")\r
+    psspy.accc_single_run_report_4([1,int(rate),int(rate),1,1,0,1,0,0,0,0,0],[0,0,0,0,6000],[ 0.5, 5.0, 100.0,0.0,0.0,0.0, 99999.],acccPath)\r
+    \r
+    rslt_summary=pssarrays.accc_summary(acccPath)\r
+    if int(rate) == 1 :\r
+        rate = rslt_summary.rating.a\r
+    elif int(rate) == 2 :\r
+        rate = rslt_summary.rating.b\r
+    elif int(rate) == 3 :\r
+        rate = rslt_summary.rating.c\r
+    else :\r
+        print "NO RATE CHOOSEN"\r
+        \r
+    Labels=rlst.colabel\r
+    contin_load=[]\r
+    for label in Labels :\r
+        t=[]\r
+        rslt=pssarrays.accc_solution(acccPath,contingency,label,0.5,5.0)\r
+        ampFlow=rslt.ampflow\r
+        for i in range (len(rA)) : \r
+            t.append(ampFlow[i]/rate[i])\r
+        contin_load.append(t)\r
+    return contin_load\r
+    \r
+def commaToPoint (string) :\r
+    stringReplaced = string.replace(',','.')\r
+    return stringReplaced
\ No newline at end of file
diff --git a/OldCodes/PSEN_Eficas/PSEN_Cata.py b/OldCodes/PSEN_Eficas/PSEN_Cata.py
new file mode 100644 (file)
index 0000000..19f1ffe
--- /dev/null
@@ -0,0 +1,2498 @@
+# -*- coding: iso-8859-1 -*-
+# Copyright (C) 2007-2021   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+# --------------------------------------------------
+# debut entete
+# --------------------------------------------------
+
+#from Accas import ASSD, JDC_CATA, AU_MOINS_UN, PROC, SIMP, FACT, OPER, MACRO, BLOC, A_VALIDATOR
+from Accas import *
+import opsPSEN
+
+class loi      ( ASSD ) : pass
+class variable ( ASSD ) : pass
+class sd_charge     ( ASSD ) : pass
+class sd_generateur ( ASSD ) : pass
+class sd_ligne     ( ASSD ) : pass
+class sd_transfo ( ASSD ) : pass
+class sd_moteur (ASSD) : pass
+#class sd_busbar ( sd_generateur,sd_charge ) : pass
+
+import types
+class Tuple:
+  def __init__(self,ntuple):
+    self.ntuple=ntuple
+
+  def __convert__(self,valeur):
+    if type(valeur) == types.StringType:
+      return None
+    if len(valeur) != self.ntuple:
+      return None
+    return valeur
+
+  def info(self):
+    return "Tuple de %s elements" % self.ntuple
+
+  __repr__=info
+  __str__=info
+
+class Matrice:
+  def __init__(self,nbLigs=None,nbCols=None,methodeCalculTaille=None,formatSortie="ligne",valSup=None,valMin=None,structure=None):
+      self.nbLigs=nbLigs
+      self.nbCols=nbCols
+      self.methodeCalculTaille=methodeCalculTaille
+      self.formatSortie=formatSortie
+      self.valSup=valSup
+      self.valMin=valMin
+      self.structure=structure
+
+  def __convert__(self,valeur):
+    # Attention ne verifie pas grand chose
+    if type(valeur) != types.ListType :
+      return None
+    return valeur
+
+  def info(self):
+      return "Matrice %s x %s" % (self.nbLigs, self.nbCols)
+
+      __repr__=info
+      __str__=info
+
+
+#CONTEXT.debug = 1
+JdC = JDC_CATA ( code = 'PSEN',
+                 execmodul = None,
+                 regles = ( AU_MOINS_UN ( 'PSSE_PARAMETERS' ),
+                            AU_MOINS_UN ( 'DIRECTORY' ),
+                            AU_MOINS_UN ( 'DISTRIBUTION' ),
+                            AU_MOINS_UN ( 'SIMULATION' ),
+                            AU_PLUS_UN ( 'PSSE_PARAMETERS' ),
+                            AU_PLUS_UN ( 'DIRECTORY' ),
+                            AU_PLUS_UN ( 'SIMULATION' ),
+                            AU_PLUS_UN ( 'CORRELATION' ),
+                            AU_PLUS_UN ( 'N_1_GENERATORS' ),
+                            AU_PLUS_UN ( 'N_1_LINES' ),
+                            AU_PLUS_UN ( 'N_1_LOADS' ),
+                            AU_PLUS_UN ( 'N_1_MOTORS' ),
+                            AU_PLUS_UN ( 'N_1_TRANSFORMERS' ),
+
+                            ),
+                 ) # Fin JDC_CATA
+
+
+# --------------------------------------------------
+# fin entete
+# --------------------------------------------------
+
+MONGENER =  OPER ( nom = "MONGENER",
+            sd_prod = sd_generateur,
+            UIinfo = {"groupes": ("CACHE")},
+            op = None,
+            fr = "Generateur",
+            ang = "Generator",
+
+  ID = SIMP ( statut = 'o', typ = "TXM", fr = "num bus", ang = "num bus",),
+)
+MONMOTEUR =  OPER ( nom = "MONMOTEUR",
+            sd_prod = sd_moteur,
+            UIinfo = {"groupes": ("CACHE")},
+            op = None,
+            fr = "Moteur",
+            ang = "Motor",
+
+  ID = SIMP ( statut = 'o', typ = "TXM", fr = "num bus", ang = "num bus",),
+)
+MACHARGE =  OPER ( nom = "MACHARGE",
+            sd_prod = sd_charge,
+            UIinfo = {"groupes": ("CACHE")},
+            op = None,
+            fr = "Charge",
+            ang = "Load",
+
+  ID = SIMP ( statut = 'o', typ = "TXM", fr = "nom charge", ang = "load name",),
+)
+MALIGNE =  OPER ( nom = "MALIGNE",
+            sd_prod = sd_ligne,
+            UIinfo = {"groupes": ("CACHE")},
+            op = None,
+            fr = "Ligne",
+            ang = "Line",
+
+  ID = SIMP ( statut = 'o', typ = "TXM", fr = "nom ligne", ang = "line name",),
+)
+MONTRANSFO =  OPER ( nom = "MONTRANSFO",
+            sd_prod = sd_transfo,
+            UIinfo = {"groupes": ("CACHE")},
+            op = None,
+            fr = "Transformateur",
+            ang = "Transformer",
+
+  ID = SIMP ( statut = 'o', typ = "TXM", fr = "nom transformateur", ang = "transformer name",),
+)
+
+
+
+PSSE_PARAMETERS = PROC ( nom = "PSSE_PARAMETERS",
+             op=None,
+             docu = "",
+  ALGORITHM = SIMP ( statut = "o",
+                     typ='TXM',
+                     into=["Optimum Power Flow","Economic Dispatch and Power Flow"],
+                     defaut="Optimum Power Flow",
+                    ),
+  I_MAX = SIMP ( statut = "o",
+                     typ='TXM',
+                     into=['RateA','RateB','RateC'],
+                     defaut='RateA',
+                    ),
+  LOCK_TAPS = SIMP ( statut = "o",
+                     typ=bool,
+                     defaut=True,
+                     ),
+
+  b_OPF = BLOC (condition = "ALGORITHM == 'Optimum Power Flow'",
+  FUEL_COST = SIMP ( statut = "o",
+                     typ=bool,
+                     defaut=True,
+                     ),
+  LOADSHEDDING_COST = SIMP ( statut = "o",
+                     typ=bool,
+                     defaut=False,
+                     ),
+  MVAR_COST = SIMP ( statut = "o",
+                     typ=bool,
+                     defaut=False,
+                    ),
+  ITERATION_LIMIT = SIMP ( statut = "o",
+                 typ = "I",
+                 val_min=1,
+                 defaut=20,
+                 ),
+  QGEN_CONTROL = SIMP ( statut = "o",
+                        typ = bool,
+                        defaut = True,
+                        ),
+  b_QgenControl = BLOC (condition = "QGEN_CONTROL == True",
+  SAVE_CASE_BEFORE_QCONTROL = SIMP ( statut = "o",
+                        typ = bool,
+                        defaut = False,
+                        fr = "Sauvegarder des fichiers de cas avant d'avoir deconnecte les groupes ne produisant pas de la puissance active",
+                        ang = "Save network case files before having disconnected groups that dont generate active power.",
+                        ),
+  ),
+  ),
+
+  b_ECD = BLOC (condition = "ALGORITHM == 'Economic Dispatch and Power Flow'",
+  ecd_file=SIMP(statut="o", typ = ('Fichier', 'Economic Dispatch Files (*.ecd);;All Files (*)',),),
+  ),
+
+##  P_MIN= SIMP ( statut = "o",
+##                     typ=bool,
+##                     defaut=True,
+##                     ),
+)
+
+SIMULATION = PROC ( nom = "SIMULATION",
+             op = None,
+             docu = "",
+  regles             =(EXCLUS('NUMBER_PACKAGE','CONVERGENCE'), UN_PARMI('NUMBER_PACKAGE','CONVERGENCE'),),
+
+  SIZE_PACKAGE = SIMP ( statut = "o",
+                 typ = "I",
+                 val_min=10,
+                 defaut=100,
+                 ),
+  NUMBER_PACKAGE = SIMP ( statut = "f",
+                 typ = "I",
+                 val_min=1,
+                 ),
+  CONVERGENCE = SIMP ( statut = "f",
+                 typ="I",
+                 into=[1],
+                ),
+
+##  STUDY = SIMP ( statut = "o",
+##                 typ = "TXM",
+##                 into = ( 'N-1', 'Load', 'Wind-1', 'Wind-2', 'PV' ),
+##                 max=5,
+##                 fr = "Affichage du niveau de wrapper de la bibliotheque Open TURNS",
+##                 ang = "Open TURNS library debug level print",
+##                 ),
+)
+
+
+#================================
+# Definition du modele physique
+#================================
+
+
+
+CORRELATION = PROC ( nom = 'CORRELATION',
+                     op = None,
+                     docu = "",
+                     fr = "Correlation entre variables",
+                     ang = "Variable correlation",
+
+####  Copula = SIMP ( statut = "o",
+####                  typ = 'TXM',
+####                  into = ( "Independent", "Normal" ),
+####                  defaut = "Independent",
+####                  fr = "Type de la copule",
+####                  ang = "Copula kind",
+####                  ),
+##
+## # Matrix = BLOC ( condition = "Copula in ( 'Normal', )",
+##
+    CorrelationMatrix = SIMP ( statut = "o",
+                               typ = Matrice(nbLigs=None,
+                                             nbCols=None,
+                                             methodeCalculTaille='NbDeDistributions',
+                                             structure="symetrique"),
+                               fr = "Matrice de correlation entre les variables d'entree",
+                               ang = "Correlation matrix for input variables",
+                               #val_max=1.0,
+                               #val_min=-1.0
+                               ),
+##  #), # Fin BLOC Matrix
+##
+##
+)
+
+DIRECTORY = MACRO ( nom = 'DIRECTORY',
+        op=None,
+        fr = "Chargement des directoires et fichiers",
+        ang = "Load directories and files necessary to run PSEN",
+                sd_prod = opsPSEN.INCLUDE,
+                op_init = opsPSEN.INCLUDE_context,
+                #sd_prod=None,
+                fichier_ini = 1,
+
+        PSSE_path=SIMP(statut="o",typ='Repertoire',defaut='C:\Program Files\PTI\PSSE33\PSSBIN'),
+        sav_file=SIMP(statut="o", typ = ('Fichier', 'Network Case Files (*.sav);;All Files (*)',),),
+        results_folder=SIMP(statut="o",typ='Repertoire'),
+        #lines_file=SIMP(statut="o" ,typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),),
+        #groups_file=SIMP(statut="o", typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),),
+        #generationsystem_file=SIMP(statut="o" ,typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),),
+
+)
+
+
+
+#================================
+# Importation des fichiers csv N-1
+#================================
+
+N_1_LINES = PROC( nom="N_1_LINES",
+                     op = None,
+                     docu = "",
+                     fr = "N-1 lignes",
+                     ang = "N-1 lines",
+  Activated = SIMP ( statut='o', typ=bool, defaut=True),
+##  FileName = SIMP ( statut = "o",
+##                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
+##                    fr = "chemin du fichier csv des probabilites des defauts lignes",
+##                    ang = "csv file path with probabilities of line outages",
+##                    ),
+  Probability = SIMP ( statut = 'o',
+                       typ = Tuple(2),
+                       max = '**',
+                       fr = "Probabilite d'indisponibilite de la ligne",
+                       ang = "Probability that the line is not available",
+                       validators=VerifTypeTuple((sd_ligne,'R')),),
+              )
+
+N_1_TRANSFORMERS = PROC( nom="N_1_TRANSFORMERS",
+                     op = None,
+                     docu = "",
+                     fr = "N-1 transformateurs",
+                     ang = "N-1 transformers",
+  Activated = SIMP ( statut='o', typ=bool, defaut=True),
+##  FileName = SIMP ( statut = "o",
+##                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
+##                    fr = "chemin du fichier csv des probabilites des defauts transformateur",
+##                    ang = "csv file path with probabilities of transformer outages",
+##                    ),
+  Probability = SIMP ( statut = 'o',
+                       typ = Tuple(2),
+                       max = '**',
+                       fr = "Probabilite d'indisponibilite de la ligne",
+                       ang = "Probability that the line is not available",
+                       validators=VerifTypeTuple((sd_transfo,'R')),),
+              )
+N_1_GENERATORS = PROC( nom="N_1_GENERATORS",
+                     op = None,
+                     docu = "",
+                     fr = "N-1 generateurs",
+                     ang = "N-1 generators",
+  Activated = SIMP ( statut='o', typ=bool, defaut=True),
+##  FileName = SIMP ( statut = "o",
+##                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
+##                    fr = "chemin du fichier csv des probabilites des defauts generateurs",
+##                    ang = "csv file path with probabilities of generator outages",
+##                    ),
+  Probability = SIMP ( statut = 'o',
+                       typ = Tuple(2),
+                       max = '**',
+                       fr = "Probabilite d'indisponibilite du generateur",
+                       ang = "Probability that the generator is not available",
+                       validators=VerifTypeTuple((sd_generateur,'R')),),
+              )
+N_1_MOTORS = PROC( nom="N_1_MOTORS",
+                     op = None,
+                     docu = "",
+                     fr = "N-1 moteurs",
+                     ang = "N-1 motors",
+  Activated = SIMP ( statut='o', typ=bool, defaut=True),
+##  FileName = SIMP ( statut = "o",
+##                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
+##                    fr = "chemin du fichier csv des probabilites des defauts generateurs",
+##                    ang = "csv file path with probabilities of generator outages",
+##                    ),
+  Probability = SIMP ( statut = 'o',
+                       typ = Tuple(2),
+                       max = '**',
+                       fr = "Probabilite d'indisponibilite du moteur",
+                       ang = "Probability that the motor is not available",
+                       validators=VerifTypeTuple((sd_moteur,'R')),),
+              )
+N_1_LOADS = PROC( nom="N_1_LOADS",
+                     op = None,
+                     docu = "",
+                     fr = "N-1 charges",
+                     ang = "N-1 loads",
+  Activated = SIMP ( statut='o', typ=bool, defaut=True),
+##  FileName = SIMP ( statut = "o",
+##                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
+##                    fr = "chemin du fichier csv des probabilites des defauts charges",
+##                    ang = "csv file path with probabilities of load outages",
+##                    ),
+  Probability = SIMP ( statut = 'o',
+                       typ = Tuple(2),
+                       max = '**',
+                       fr = "Probabilite d'indisponibilite du generateur",
+                       ang = "Probability that the generator is not available",
+                       validators=VerifTypeTuple((sd_charge,'R')),),
+              )
+
+
+
+
+#================================
+# Definition des LOIS
+#================================
+
+# Nota : les variables de type OPER doivent etre en majuscules !
+# Nota : les variables de type OPER doivent etre de premier niveau (pas imbriquees dans un autre type)
+DISTRIBUTION = OPER ( nom = "DISTRIBUTION",
+                      sd_prod = loi,
+                      op = 68,
+                      fr = "Definitions des lois marginales utilisees par les variables d'entree",
+
+#====
+# Choisir generateur ou charge
+#====
+
+##  TypeMachine = SIMP ( statut='o', typ='TXM',
+##                      into = ('charge','vent1','vent2','pv','N-1',),
+##                      ),
+  Activated = SIMP ( statut='o', typ=bool, defaut=True),
+  ComponentType = SIMP (statut='o', typ='TXM',
+                      into = ('Generator','Load','Motor','Line','Transformer'),),
+  b_gener = BLOC (condition = "ComponentType == 'Generator'",
+
+  Type = SIMP (statut= "o", typ = "TXM",
+               into = ("Generator Power Level", "Generator Availability"),
+               fr = "Choisir si c'est le niveau de puissance ou la disponibilit� du generateur qui sera tiree",
+               ang= "Choose whether the power level or the availability of the generator will be set by the law",
+               defaut = "Generator Power Level",
+               ),
+
+  Sampling = SIMP (statut= "o", typ = "TXM",
+               into = ("Same sample for all generators", "One sample per generator"),
+               fr = "Choisir si une seule tirage sera fait pour tous les generateurs ou si des tirages differents seront faits pour chaque generateur",
+               ang= "Choose whether one drawing/sample will be performed for all of the generators or whether a different drawing/sample will be performed for each generator.",
+               defaut = "Same sample for all generators",
+               ),
+
+  Generator   = SIMP(statut='o',typ=sd_generateur,max="**", homo="SansOrdreNiDoublon",docu="sd_generateur"),
+
+#====
+# Type de distribution
+#====
+
+  b_gener_level = BLOC (condition= "Type == 'Generator Power Level'",
+
+  Law = SIMP ( statut = "o", typ = "TXM",
+                into = ( "Exponential",
+                         "Histogram",
+                         "Normal",
+                         #"Rayleigh",
+                         "PDF_from_file",
+                         "TruncatedNormal",
+                         "TimeSeries_from_file",
+                         "Uniform",
+                         "UserDefined",
+                         "Weibull",
+                         ),
+                fr = "Choix du type de la loi marginale",
+                ang = "1D marginal distribution",
+                ),
+
+
+#====
+# Definition des parametres selon le type de la loi
+#====
+
+
+  EXPONENTIAL = BLOC ( condition = " Law in ( 'Exponential', ) ",
+
+                         Lambda = SIMP ( statut = "o",
+                                         typ = "R",
+                                         max = 1,
+                                         val_min = 0.,
+                                         fr = "Parametre Lambda | Lambda > 0",
+                                         ang = "Lambda parameter | Lambda > 0",
+                                         ),
+
+                         Gamma = SIMP ( statut = "o",
+                                        typ = "R",
+                                        max = 1,
+                                        fr = "Borne inferieure du support de la loi",
+                                        ang = "Support lower bound",
+                                        ),
+
+  ), # Fin BLOC EXPONENTIAL
+
+
+  HISTOGRAM = BLOC ( condition = " Law in ( 'Histogram', ) ",
+
+                       First = SIMP ( statut = "o",
+                                    typ = "R",
+                                    max = 1,
+                                    fr = "Borne inferieure du supoport de la loi",
+                                    ang = "Support lower bound",
+                                    ),
+
+                       # Il faut definir une collection de couples ( x,p )
+                       Values = SIMP ( statut = 'o',
+                                       typ = Tuple(2),
+                                       max = '**',
+                                       fr = "Liste de couples : largeur de classe, hauteur de classe",
+                                       ang = "Class bandwidth, class height couple list",
+                                       validators=VerifTypeTuple(('R','R')),
+                                       ),
+
+  ), # Fin BLOC HISTOGRAM
+
+
+   NORMAL = BLOC ( condition = " Law in ( 'Normal', ) ",
+
+                    Mu = SIMP ( statut = "o",
+                                typ = "R",
+                                max = 1,
+                                fr = "Moyenne de la loi",
+                                ang = "Mean value",
+                                ),
+
+                   Sigma = SIMP ( statut = "o",
+                                  typ = "R",
+                                  max = 1,
+                                  val_min = 0.,
+                                  fr = "Ecart type de la loi",
+                                  ang = "Standard deviation",
+                                  ),
+
+   ), # Fin BLOC NORMAL
+
+
+  RAYLEIGH = BLOC ( condition = " Law in ( 'Rayleigh', ) ",
+
+                   Sigma = SIMP ( statut = "o",
+                                  typ = "R",
+                                  max = 1,
+                                  fr = "Parametre Sigma de la loi | Sigma > 0",
+                                  ang = "Sigma parameter | Sigma > 0",
+                                  ),
+
+                   Gamma = SIMP ( statut = "o",
+                                  typ = "R",
+                                  max = 1,
+                                  fr = "Borne inferieure du support de la loi",
+                                  ang = "Support lower bound",
+                                  ),
+ ), # Fin BLOC RAYLEIGH
+
+  PDF = BLOC ( condition = " Law in ( 'PDF_from_file', ) ",
+
+  FileName = SIMP ( statut = "o",
+                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
+                    fr = "Nom du fichier .csv",
+                    ang = ".csv file name",
+                    ),
+              ),
+
+
+
+   TRUNCATEDNORMAL = BLOC ( condition = " Law in ( 'TruncatedNormal', ) ",
+
+                             MuN = SIMP ( statut = "o",
+                                          typ = "R",
+                                          max = 1,
+                                          fr = "Moyenne de la loi Normale non tronqu�e",
+                                          ang = "Mean value of the associated non truncated normal distribution",
+                                          ),
+
+                             SigmaN = SIMP ( statut = "o",
+                                             typ = "R",
+                                             max = 1,
+                                             val_min = 0.,
+                                             fr = "Ecart-type de la loi Normale non tronqu�e",
+                                             ang = "Standard deviation of the associated non truncated normal distribution",
+                                             ),
+
+                             A = SIMP ( statut = "o",
+                                        typ = "R",
+                                        max = 1,
+                                        fr = "Borne inferieure de la loi | A < B",
+                                        ang = "Lower bound | A < B",
+                                        ),
+
+                             B = SIMP ( statut = "o",
+                                        typ = "R",
+                                        max = 1,
+                                        fr = "Borne superieure de la loi | A < B",
+                                        ang = "Upper bound | A < B",
+                                        ),
+
+   ), # Fin BLOC TRUNCATEDNORMAL
+
+
+  TimeSeries = BLOC ( condition = " Law in ( 'TimeSeries_from_file', ) ",
+
+  FileName = SIMP ( statut = "o",
+                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
+                    fr = "Fichier CSV d'une serie temporelle",
+                    ang = "CSV file of a time series",
+                    ),
+              ),
+
+
+   UNIFORM = BLOC ( condition = " Law in ( 'Uniform', ) ",
+
+                     A = SIMP ( statut = "o",
+                                typ = "R",
+                                max = 1,
+                                fr = "Borne inferieure du support de la loi | A < B",
+                                ang = "Support lower bound | A < B",
+                                ),
+
+                     B = SIMP ( statut = "o",
+                                typ = "R",
+                                max = 1,
+                                fr = "Borne superieure du support de la loi | A < B",
+                                ang = "Support upper bound | A < B",
+                                ),
+
+   ), # Fin BLOC UNIFORM
+
+
+   USERDEFINED = BLOC ( condition = " Law in ( 'UserDefined', ) ",
+
+                       # Il faut definir une collection de couples ( x,p )
+                       Values = SIMP ( statut = 'o',
+                                       typ = Tuple(2),
+                                       max = '**',
+                                       fr = "Liste de couples : (valeur, prob.)",
+                                       ang = "List of pairs : (value, prob.)",
+                                       validators=VerifTypeTuple(('R','R')),
+                                       ),
+
+  ), # Fin BLOC USERDEFINED
+
+
+   WEIBULL = BLOC ( condition = " Law in ( 'Weibull', ) ",
+
+                     Settings = SIMP ( statut = "o",
+                                          typ = "TXM",
+                                          max = 1,
+                                          into = ( "AlphaBeta", "MuSigma" ),
+                                          defaut = "AlphaBeta",
+                                          fr = "Parametrage de la loi weibull",
+                                          ang = "Weibull distribution parameter set",
+                                          ),
+
+                     AlphaBeta_Parameters = BLOC ( condition = " Settings in ( 'AlphaBeta', ) ",
+
+                                         Alpha = SIMP ( statut = "o",
+                                                        typ = "R",
+                                                        max = 1,
+                                                        val_min = 0.,
+                                                        fr = "Parametre Alpha de la loi | Alpha > 0",
+                                                        ang = "Alpha parameter | Alpha > 0",
+                                                        ),
+
+                                         Beta = SIMP ( statut = "o",
+                                                       typ = "R",
+                                                       max = 1,
+                                                       val_min = 0.,
+                                                       fr = "Parametre Beta de la loi | Beta > 0",
+                                                       ang = "Beta parameter | Beta > 0",
+                                                       ),
+
+                                         ), # Fin BLOC AlphaBeta_Parameters
+
+
+                     MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
+
+                                         Mu = SIMP ( statut = "o",
+                                                     typ = "R",
+                                                     max = 1,
+                                                     fr = "Moyenne de la loi",
+                                                     ang = "Mean value",
+                                                     ),
+
+                                         Sigma = SIMP ( statut = "o",
+                                                        typ = "R",
+                                                        max = 1,
+                                                        val_min = 0.,
+                                                        fr = "Ecart type de la loi",
+                                                        ang = "Standard deviation",
+                                                        ),
+
+                                         ), # Fin BLOC MuSigma_Parameters
+
+                     Gamma = SIMP ( statut = "o",
+                                    typ = "R",
+                                    max = 1,
+                                    fr = "Borne inferieure du support de la loi",
+                                    ang = "Support lower bound",
+                                    ),
+
+    ), # Fin BLOC WEIBULL
+
+
+    Transfer_Function = FACT(statut='f',
+
+        TF_Input = SIMP ( statut='o',
+                       typ = 'TXM',
+                       fr = 'Entrer une fonction de transfert � partir d''un fichier .pow (vitesse de vent - puissance eolienne)\n \
+                             ou entrer une liste de tuples (valeur tiree - puissance normalisee)',
+                       ang = 'Enter wind speed - turbine production transfer function as a .pow file, \n \
+                              or enter a generic list of (law output value, normalized power output) tuples',
+                       into = ('.pow file', 'tuples list'),
+                             ),
+        b_file = BLOC(condition = "TF_Input == '.pow file'",
+                      File_Name = SIMP ( statut = "o",
+                                        typ = ('Fichier', 'Pow files (*.pow);;All Files (*)',),
+                                        fr = "Nom du fichier de transfer .pow",
+                                        ang = ".pow file name",
+                                        ),
+                      Wind_Speed_Measurement_Height = SIMP ( statut = 'o',
+                                        typ = "R",
+                                        max = 1,
+                                        fr = 'Hauteur (en metres) a laquelle les mesures de vitesse du vent ont ete prises',
+                                        ang = 'Height of wind speed measurements (m)',
+                                        sug = 10,
+                                        val_min = 0,
+                                        ),
+                      Hub_Height = SIMP (statut = 'o',
+                                         typ = "R",
+                                         fr = 'hauteur de moyeu de l''eolienne',
+                                         ang = 'wind turbine hub height',
+                                         sug = 80,
+                                         val_min = 0,),
+                      AlphaWS = SIMP (statut = 'o',
+                                         typ = "R",
+                                         fr = 'l''alpha pour extrapoler les mesures de vitesse du vent a la hauteur du moyeu ',
+                                         ang = 'alpha used to extrapolate wind speed measurements to hub height',
+                                         defaut = 1./7,
+                                         val_min = 0,
+                                         val_max = 1,
+                                            ),
+                      Percent_Losses = SIMP (statut = 'o',
+                                         typ = "R",
+                                         fr = 'pourcentage de pertes entre la sortie theorique d''une turbine et la sortie de la centrale',
+                                         ang = 'percent losses between theoretical power output of a single turbine and the output of the farm',
+                                         defaut = 5,
+                                         val_min = 0,
+                                         val_max = 100,
+                                             ),
+                      ), #fin du bloc FileName
+
+        b_tuples = BLOC(condition = "TF_Input == 'tuples list'",
+
+                       TF_Values = SIMP ( statut = 'o',
+                                       typ = Tuple(2),
+                                       max = '**',
+                                       min = 2,
+                                       fr = "Liste de couples : valeur tiree, puissance normalisee sortie",
+                                       ang = "List of couples : value set by law, normalized power output",
+                                       validators=VerifTypeTuple(('R','R')),
+                                       ),
+                      ), #fin du block Tuples List
+
+        ), #fin du FACT Transfer Function
+
+  ), #fin du bloc generator level
+
+
+  b_gener_avail = BLOC (condition= "Type == 'Generator Availability'",
+
+  Law = SIMP ( statut = "o", typ = "TXM",
+                into = ( #"Exponential",
+                         #"Histogram",
+                         #"Normal",
+                         #"Rayleigh",
+                         #"PDF_from_file",
+                         #"TruncatedNormal",
+                         "TimeSeries_from_file",
+                         #"Uniform",
+                         "UserDefined",
+                         #"Weibull",
+                         ),
+                fr = "Choix du type de la loi marginale",
+                ang = "1D marginal distribution",
+                defaut="UserDefined",
+                ),
+
+
+#====
+# Definition des parametres selon le type de la loi
+#====
+
+
+  TimeSeries = BLOC ( condition = " Law in ( 'TimeSeries_from_file', ) ",
+
+  FileName = SIMP ( statut = "o",
+                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
+                    fr = "Fichier CSV d'une serie temporelle",
+                    ang = "CSV file of a time series",
+                    ),
+              ),
+
+
+   USERDEFINED = BLOC ( condition = " Law in ( 'UserDefined', ) ",
+
+                       # Il faut definir une collection de couples ( x,p )
+                       Values = SIMP ( statut = 'o',
+                                       typ = Tuple(2),
+                                       max = '**',
+                                       fr = "Liste de couples : (valeur, prob.)",
+                                       ang = "List of pairs : (value, prob.)",
+                                       validators=VerifTypeTuple(('R','R')),
+                                       defaut=((0,0.0),(1,1.0)),
+                                       ),
+
+  ), # Fin BLOC USERDEFINED
+
+
+  ), #fin du bloc generator avail
+
+
+  ), #fin du bloc generateur
+
+#Bloc Charge
+  b_charge = BLOC (condition = "ComponentType == 'Load'",
+
+
+#====
+# Type de distribution
+#====
+
+  Type = SIMP (statut= "o", typ = "TXM",
+               into = ("Load Level", "Load Availability"),
+               fr = "Choisir si c'est le niveau de charge ou la disponibilit� de la charge qui sera tiree",
+               ang= "Choose whether the power level or the availability of the load will be set by the law",
+               defaut = "Load Level",
+               ),
+
+  Sampling = SIMP (statut= "o", typ = "TXM",
+               into = ("Same sample for all loads", "One sample per load"),
+               fr = "Choisir si une seule tirage sera fait pour tous les charges ou si des tirages differents seront faits pour chaque charge",
+               ang= "Choose whether one drawing/sample will be performed for all of the loads or whether a different drawing/sample will be performed for each load.",
+               defaut = "Same sample for all loads",
+               ),
+
+  Load       = SIMP(statut='o',typ=sd_charge,max="**", homo="SansOrdreNiDoublon",),
+
+
+  b_charge_level = BLOC (condition = "Type == 'Load Level'",
+
+  Law = SIMP ( statut = "o", typ = "TXM",
+                into = ( "Exponential",
+                         "Histogram",
+                         "Normal",
+                         #"Rayleigh",
+                         "PDF_from_file",
+                         "TruncatedNormal",
+                         "TimeSeries_from_file",
+                         "Uniform",
+                         "UserDefined",
+                         "Weibull",
+                         ),
+                fr = "Choix du type de la loi marginale",
+                ang = "1D marginal distribution",
+                ),
+
+
+#====
+# Definition des parametres selon le type de la loi
+#====
+
+
+  EXPONENTIAL = BLOC ( condition = " Law in ( 'Exponential', ) ",
+
+                         Lambda = SIMP ( statut = "o",
+                                         typ = "R",
+                                         max = 1,
+                                         val_min = 0.,
+                                         fr = "Parametre Lambda | Lambda > 0",
+                                         ang = "Lambda parameter | Lambda > 0",
+                                         ),
+
+                         Gamma = SIMP ( statut = "o",
+                                        typ = "R",
+                                        max = 1,
+                                        fr = "Borne inferieure du support de la loi",
+                                        ang = "Support lower bound",
+                                        ),
+
+  ), # Fin BLOC EXPONENTIAL
+
+
+  HISTOGRAM = BLOC ( condition = " Law in ( 'Histogram', ) ",
+
+                       First = SIMP ( statut = "o",
+                                    typ = "R",
+                                    max = 1,
+                                    fr = "Borne inferieure du supoport de la loi",
+                                    ang = "Support lower bound",
+                                    ),
+
+                       # Il faut definir une collection de couples ( x,p )
+                       Values = SIMP ( statut = 'o',
+                                       typ = Tuple(2),
+                                       max = '**',
+                                       fr = "Liste de couples : largeur de classe, hauteur de classe",
+                                       ang = "Class bandwidth, class height couple list",
+                                       validators=VerifTypeTuple(('R','R')),
+                                       ),
+
+  ), # Fin BLOC HISTOGRAM
+
+
+   NORMAL = BLOC ( condition = " Law in ( 'Normal', ) ",
+
+                    Mu = SIMP ( statut = "o",
+                                typ = "R",
+                                max = 1,
+                                fr = "Moyenne de la loi",
+                                ang = "Mean value",
+                                ),
+
+                   Sigma = SIMP ( statut = "o",
+                                  typ = "R",
+                                  max = 1,
+                                  val_min = 0.,
+                                  fr = "Ecart type de la loi",
+                                  ang = "Standard deviation",
+                                  ),
+
+   ), # Fin BLOC NORMAL
+
+
+  RAYLEIGH = BLOC ( condition = " Law in ( 'Rayleigh', ) ",
+
+                   Sigma = SIMP ( statut = "o",
+                                  typ = "R",
+                                  max = 1,
+                                  fr = "Parametre Sigma de la loi | Sigma > 0",
+                                  ang = "Sigma parameter | Sigma > 0",
+                                  ),
+
+                   Gamma = SIMP ( statut = "o",
+                                  typ = "R",
+                                  max = 1,
+                                  fr = "Borne inferieure du support de la loi",
+                                  ang = "Support lower bound",
+                                  ),
+ ), # Fin BLOC RAYLEIGH
+
+  PDF = BLOC ( condition = " Law in ( 'PDF_from_file', ) ",
+
+  FileName = SIMP ( statut = "o",
+                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
+                    fr = "Nom du fichier .csv",
+                    ang = ".csv file name",
+                    ),
+              ),
+
+
+
+   TRUNCATEDNORMAL = BLOC ( condition = " Law in ( 'TruncatedNormal', ) ",
+
+                             MuN = SIMP ( statut = "o",
+                                          typ = "R",
+                                          max = 1,
+                                          fr = "Moyenne de la loi Normale non tronqu�e",
+                                          ang = "Mean value of the associated non truncated normal distribution",
+                                          ),
+
+                             SigmaN = SIMP ( statut = "o",
+                                             typ = "R",
+                                             max = 1,
+                                             val_min = 0.,
+                                             fr = "Ecart-type de la loi Normale non tronqu�e",
+                                             ang = "Standard deviation of the associated non truncated normal distribution",
+                                             ),
+
+                             A = SIMP ( statut = "o",
+                                        typ = "R",
+                                        max = 1,
+                                        fr = "Borne inferieure de la loi | A < B",
+                                        ang = "Lower bound | A < B",
+                                        ),
+
+                             B = SIMP ( statut = "o",
+                                        typ = "R",
+                                        max = 1,
+                                        fr = "Borne superieure de la loi | A < B",
+                                        ang = "Upper bound | A < B",
+                                        ),
+
+   ), # Fin BLOC TRUNCATEDNORMAL
+
+
+  TimeSeries = BLOC ( condition = " Law in ( 'TimeSeries_from_file', ) ",
+
+  FileName = SIMP ( statut = "o",
+                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
+                    fr = "Fichier CSV d'une serie temporelle",
+                    ang = "CSV file of a time series",
+                    ),
+              ),
+
+
+   UNIFORM = BLOC ( condition = " Law in ( 'Uniform', ) ",
+
+                     A = SIMP ( statut = "o",
+                                typ = "R",
+                                max = 1,
+                                fr = "Borne inferieure du support de la loi | A < B",
+                                ang = "Support lower bound | A < B",
+                                ),
+
+                     B = SIMP ( statut = "o",
+                                typ = "R",
+                                max = 1,
+                                fr = "Borne superieure du support de la loi | A < B",
+                                ang = "Support upper bound | A < B",
+                                ),
+
+   ), # Fin BLOC UNIFORM
+
+
+   USERDEFINED = BLOC ( condition = " Law in ( 'UserDefined', ) ",
+
+                       # Il faut definir une collection de couples ( x,p )
+                       Values = SIMP ( statut = 'o',
+                                       typ = Tuple(2),
+                                       max = '**',
+                                       fr = "Liste de couples : (valeur, probabilite)",
+                                       ang = "List of pairs : (value, probability)",
+                                       validators=VerifTypeTuple(('R','R')),
+                                       ),
+
+  ), # Fin BLOC USERDEFINED
+
+
+   WEIBULL = BLOC ( condition = " Law in ( 'Weibull', ) ",
+
+                     Settings = SIMP ( statut = "o",
+                                          typ = "TXM",
+                                          max = 1,
+                                          into = ( "AlphaBeta", "MuSigma" ),
+                                          defaut = "AlphaBeta",
+                                          fr = "Parametrage de la loi weibull",
+                                          ang = "Weibull distribution parameter set",
+                                          ),
+
+                     AlphaBeta_Parameters = BLOC ( condition = " Settings in ( 'AlphaBeta', ) ",
+
+                                         Alpha = SIMP ( statut = "o",
+                                                        typ = "R",
+                                                        max = 1,
+                                                        val_min = 0.,
+                                                        fr = "Parametre Alpha de la loi | Alpha > 0",
+                                                        ang = "Alpha parameter | Alpha > 0",
+                                                        ),
+
+                                         Beta = SIMP ( statut = "o",
+                                                       typ = "R",
+                                                       max = 1,
+                                                       val_min = 0.,
+                                                       fr = "Parametre Beta de la loi | Beta > 0",
+                                                       ang = "Beta parameter | Beta > 0",
+                                                       ),
+
+                                         ), # Fin BLOC AlphaBeta_Parameters
+
+
+                     MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
+
+                                         Mu = SIMP ( statut = "o",
+                                                     typ = "R",
+                                                     max = 1,
+                                                     fr = "Moyenne de la loi",
+                                                     ang = "Mean value",
+                                                     ),
+
+                                         Sigma = SIMP ( statut = "o",
+                                                        typ = "R",
+                                                        max = 1,
+                                                        val_min = 0.,
+                                                        fr = "Ecart type de la loi",
+                                                        ang = "Standard deviation",
+                                                        ),
+
+                                         ), # Fin BLOC MuSigma_Parameters
+
+                     Gamma = SIMP ( statut = "o",
+                                    typ = "R",
+                                    max = 1,
+                                    fr = "Borne inferieure du support de la loi",
+                                    ang = "Support lower bound",
+                                    ),
+
+    ), # Fin BLOC WEIBULL
+
+  ), #fin du block Load Level
+
+
+  b_charge_avail = BLOC (condition = "Type == 'Load Availability'",
+
+  Law = SIMP ( statut = "o", typ = "TXM",
+                into = ( #"Exponential",
+                         #"Histogram",
+                         #"Normal",
+                         #"Rayleigh",
+                         #"PDF_from_file",
+                         #"TruncatedNormal",
+                         "TimeSeries_from_file",
+                         #"Uniform",
+                         "UserDefined",
+                         #"Weibull",
+                         ),
+                fr = "Choix du type de la loi marginale",
+                ang = "1D marginal distribution",
+                defaut = "UserDefined",
+                ),
+
+
+#====
+# Definition des parametres selon le type de la loi
+#====
+
+  TimeSeries = BLOC ( condition = " Law in ( 'TimeSeries_from_file', ) ",
+
+  FileName = SIMP ( statut = "o",
+                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
+                    fr = "Fichier CSV d'une serie temporelle",
+                    ang = "CSV file of a time series",
+                    ),
+              ),
+
+
+
+   USERDEFINED = BLOC ( condition = " Law in ( 'UserDefined', ) ",
+
+                       # Il faut definir une collection de couples ( x,p )
+                       Values = SIMP ( statut = 'o',
+                                       typ = Tuple(2),
+                                       max = '**',
+                                       fr = "Liste de couples : (valeur, probabilite)",
+                                       ang = "List of pairs : (value, probability)",
+                                       validators=VerifTypeTuple(('R','R')),
+                                       defaut=((0,0.0),(1,1.0)),
+                                       ),
+
+  ), # Fin BLOC USERDEFINED
+
+
+  ), #fin du block Load Avail
+
+
+  ), #fin du bloc charge
+
+
+
+#Bloc Moteur
+  b_moteur = BLOC (condition = "ComponentType == 'Motor'",
+
+
+#====
+# Type de distribution
+#====
+
+  Type = SIMP (statut= "o", typ = "TXM",
+               into = ("Motor Level", "Motor Availability"),
+               fr = "Choisir si c'est le niveau de charge du moteur ou la disponibilit� du moteur qui sera tiree",
+               ang= "Choose whether the power level or the availability of the motor will be set by the law",
+               defaut = "Motor Level",
+               ),
+
+  Sampling = SIMP (statut= "o", typ = "TXM",
+               into = ("Same sample for all motors", "One sample per motor"),
+               fr = "Choisir si une seule tirage sera fait pour tous les moteurs ou si des tirages differents seront faits pour chaque moteur",
+               ang= "Choose whether one drawing/sample will be performed for all of the motors or whether a different drawing/sample will be performed for each motor.",
+               defaut = "Same sample for all motors",
+               ),
+
+  Motor       = SIMP(statut='o',typ=sd_moteur,max="**", homo="SansOrdreNiDoublon",),
+
+
+  b_moteur_level = BLOC (condition = "Type == 'Motor Level'",
+
+  Law = SIMP ( statut = "o", typ = "TXM",
+                into = ( "Exponential",
+                         "Histogram",
+                         "Normal",
+                         #"Rayleigh",
+                         "PDF_from_file",
+                         "TruncatedNormal",
+                         "TimeSeries_from_file",
+                         "Uniform",
+                         "UserDefined",
+                         "Weibull",
+                         ),
+                fr = "Choix du type de la loi marginale",
+                ang = "1D marginal distribution",
+                ),
+
+
+#====
+# Definition des parametres selon le type de la loi
+#====
+
+
+  EXPONENTIAL = BLOC ( condition = " Law in ( 'Exponential', ) ",
+
+                         Lambda = SIMP ( statut = "o",
+                                         typ = "R",
+                                         max = 1,
+                                         val_min = 0.,
+                                         fr = "Parametre Lambda | Lambda > 0",
+                                         ang = "Lambda parameter | Lambda > 0",
+                                         ),
+
+                         Gamma = SIMP ( statut = "o",
+                                        typ = "R",
+                                        max = 1,
+                                        fr = "Borne inferieure du support de la loi",
+                                        ang = "Support lower bound",
+                                        ),
+
+  ), # Fin BLOC EXPONENTIAL
+
+
+  HISTOGRAM = BLOC ( condition = " Law in ( 'Histogram', ) ",
+
+                       First = SIMP ( statut = "o",
+                                    typ = "R",
+                                    max = 1,
+                                    fr = "Borne inferieure du supoport de la loi",
+                                    ang = "Support lower bound",
+                                    ),
+
+                       # Il faut definir une collection de couples ( x,p )
+                       Values = SIMP ( statut = 'o',
+                                       typ = Tuple(2),
+                                       max = '**',
+                                       fr = "Liste de couples : largeur de classe, hauteur de classe",
+                                       ang = "Class bandwidth, class height couple list",
+                                       validators=VerifTypeTuple(('R','R')),
+                                       ),
+
+  ), # Fin BLOC HISTOGRAM
+
+
+   NORMAL = BLOC ( condition = " Law in ( 'Normal', ) ",
+
+                    Mu = SIMP ( statut = "o",
+                                typ = "R",
+                                max = 1,
+                                fr = "Moyenne de la loi",
+                                ang = "Mean value",
+                                ),
+
+                   Sigma = SIMP ( statut = "o",
+                                  typ = "R",
+                                  max = 1,
+                                  val_min = 0.,
+                                  fr = "Ecart type de la loi",
+                                  ang = "Standard deviation",
+                                  ),
+
+   ), # Fin BLOC NORMAL
+
+
+  RAYLEIGH = BLOC ( condition = " Law in ( 'Rayleigh', ) ",
+
+                   Sigma = SIMP ( statut = "o",
+                                  typ = "R",
+                                  max = 1,
+                                  fr = "Parametre Sigma de la loi | Sigma > 0",
+                                  ang = "Sigma parameter | Sigma > 0",
+                                  ),
+
+                   Gamma = SIMP ( statut = "o",
+                                  typ = "R",
+                                  max = 1,
+                                  fr = "Borne inferieure du support de la loi",
+                                  ang = "Support lower bound",
+                                  ),
+ ), # Fin BLOC RAYLEIGH
+
+  PDF = BLOC ( condition = " Law in ( 'PDF_from_file', ) ",
+
+  FileName = SIMP ( statut = "o",
+                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
+                    fr = "Nom du fichier .csv",
+                    ang = ".csv file name",
+                    ),
+              ),
+
+
+
+   TRUNCATEDNORMAL = BLOC ( condition = " Law in ( 'TruncatedNormal', ) ",
+
+                             MuN = SIMP ( statut = "o",
+                                          typ = "R",
+                                          max = 1,
+                                          fr = "Moyenne de la loi Normale non tronqu�e",
+                                          ang = "Mean value of the associated non truncated normal distribution",
+                                          ),
+
+                             SigmaN = SIMP ( statut = "o",
+                                             typ = "R",
+                                             max = 1,
+                                             val_min = 0.,
+                                             fr = "Ecart-type de la loi Normale non tronqu�e",
+                                             ang = "Standard deviation of the associated non truncated normal distribution",
+                                             ),
+
+                             A = SIMP ( statut = "o",
+                                        typ = "R",
+                                        max = 1,
+                                        fr = "Borne inferieure de la loi | A < B",
+                                        ang = "Lower bound | A < B",
+                                        ),
+
+                             B = SIMP ( statut = "o",
+                                        typ = "R",
+                                        max = 1,
+                                        fr = "Borne superieure de la loi | A < B",
+                                        ang = "Upper bound | A < B",
+                                        ),
+
+   ), # Fin BLOC TRUNCATEDNORMAL
+
+
+  TimeSeries = BLOC ( condition = " Law in ( 'TimeSeries_from_file', ) ",
+
+  FileName = SIMP ( statut = "o",
+                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
+                    fr = "Fichier CSV d'une serie temporelle",
+                    ang = "CSV file of a time series",
+                    ),
+              ),
+
+
+   UNIFORM = BLOC ( condition = " Law in ( 'Uniform', ) ",
+
+                     A = SIMP ( statut = "o",
+                                typ = "R",
+                                max = 1,
+                                fr = "Borne inferieure du support de la loi | A < B",
+                                ang = "Support lower bound | A < B",
+                                ),
+
+                     B = SIMP ( statut = "o",
+                                typ = "R",
+                                max = 1,
+                                fr = "Borne superieure du support de la loi | A < B",
+                                ang = "Support upper bound | A < B",
+                                ),
+
+   ), # Fin BLOC UNIFORM
+
+
+   USERDEFINED = BLOC ( condition = " Law in ( 'UserDefined', ) ",
+
+                       # Il faut definir une collection de couples ( x,p )
+                       Values = SIMP ( statut = 'o',
+                                       typ = Tuple(2),
+                                       max = '**',
+                                       fr = "Liste de couples : (valeur, probabilite)",
+                                       ang = "List of pairs : (value, probability)",
+                                       validators=VerifTypeTuple(('R','R')),
+                                       ),
+
+  ), # Fin BLOC USERDEFINED
+
+
+   WEIBULL = BLOC ( condition = " Law in ( 'Weibull', ) ",
+
+                     Settings = SIMP ( statut = "o",
+                                          typ = "TXM",
+                                          max = 1,
+                                          into = ( "AlphaBeta", "MuSigma" ),
+                                          defaut = "AlphaBeta",
+                                          fr = "Parametrage de la loi weibull",
+                                          ang = "Weibull distribution parameter set",
+                                          ),
+
+                     AlphaBeta_Parameters = BLOC ( condition = " Settings in ( 'AlphaBeta', ) ",
+
+                                         Alpha = SIMP ( statut = "o",
+                                                        typ = "R",
+                                                        max = 1,
+                                                        val_min = 0.,
+                                                        fr = "Parametre Alpha de la loi | Alpha > 0",
+                                                        ang = "Alpha parameter | Alpha > 0",
+                                                        ),
+
+                                         Beta = SIMP ( statut = "o",
+                                                       typ = "R",
+                                                       max = 1,
+                                                       val_min = 0.,
+                                                       fr = "Parametre Beta de la loi | Beta > 0",
+                                                       ang = "Beta parameter | Beta > 0",
+                                                       ),
+
+                                         ), # Fin BLOC AlphaBeta_Parameters
+
+
+                     MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
+
+                                         Mu = SIMP ( statut = "o",
+                                                     typ = "R",
+                                                     max = 1,
+                                                     fr = "Moyenne de la loi",
+                                                     ang = "Mean value",
+                                                     ),
+
+                                         Sigma = SIMP ( statut = "o",
+                                                        typ = "R",
+                                                        max = 1,
+                                                        val_min = 0.,
+                                                        fr = "Ecart type de la loi",
+                                                        ang = "Standard deviation",
+                                                        ),
+
+                                         ), # Fin BLOC MuSigma_Parameters
+
+                     Gamma = SIMP ( statut = "o",
+                                    typ = "R",
+                                    max = 1,
+                                    fr = "Borne inferieure du support de la loi",
+                                    ang = "Support lower bound",
+                                    ),
+
+    ), # Fin BLOC WEIBULL
+
+  ), #fin du block Load Level
+
+
+  b_moteur_avail = BLOC (condition = "Type == 'Motor Availability'",
+
+  Law = SIMP ( statut = "o", typ = "TXM",
+                into = ( #"Exponential",
+                         #"Histogram",
+                         #"Normal",
+                         #"Rayleigh",
+                         #"PDF_from_file",
+                         #"TruncatedNormal",
+                         "TimeSeries_from_file",
+                         #"Uniform",
+                         "UserDefined",
+                         #"Weibull",
+                         ),
+                fr = "Choix du type de la loi marginale",
+                ang = "1D marginal distribution",
+                defaut = "UserDefined",
+                ),
+
+
+#====
+# Definition des parametres selon le type de la loi
+#====
+
+  TimeSeries = BLOC ( condition = " Law in ( 'TimeSeries_from_file', ) ",
+
+  FileName = SIMP ( statut = "o",
+                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
+                    fr = "Fichier CSV d'une serie temporelle",
+                    ang = "CSV file of a time series",
+                    ),
+              ),
+
+
+
+   USERDEFINED = BLOC ( condition = " Law in ( 'UserDefined', ) ",
+
+                       # Il faut definir une collection de couples ( x,p )
+                       Values = SIMP ( statut = 'o',
+                                       typ = Tuple(2),
+                                       max = '**',
+                                       fr = "Liste de couples : (valeur, probabilite)",
+                                       ang = "List of pairs : (value, probability)",
+                                       validators=VerifTypeTuple(('R','R')),
+                                       defaut=((0,0.0),(1,1.0)),
+                                       ),
+
+  ), # Fin BLOC USERDEFINED
+
+
+  ), #fin du block Load Avail
+
+
+  ), #fin du bloc moteur
+
+
+  b_ligne = BLOC (condition = "ComponentType == 'Line'",
+
+
+#====
+# Type de distribution
+#====
+
+  Type = SIMP (statut= "o", typ = "TXM",
+               into = ("Line Availability",),
+               fr = "La disponibilite de la ligne sera tiree",
+               ang= "Line availability will be set by the law",
+               defaut = "Line Availability",
+               ),
+
+  Sampling = SIMP (statut= "o", typ = "TXM",
+               into = ("Same sample for all lines", "One sample per line"),
+               fr = "Choisir si une seule tirage sera fait pour tous les lignes ou si des tirages differents seront faits pour chaque ligne",
+               ang= "Choose whether one drawing/sample will be performed for all of the lines or whether a different drawing/sample will be performed for each line.",
+               defaut = "Same sample for all lines",
+               ),
+
+  Line   = SIMP(statut='o',typ=sd_ligne,max="**", homo="SansOrdreNiDoublon"),
+
+  Law = SIMP ( statut = "o", typ = "TXM",
+                into = ( #"Exponential",
+                         #"Histogram",
+                         #"Normal",
+                         #"Rayleigh",
+                         #"PDF_from_file",
+                         #"TruncatedNormal",
+                         "TimeSeries_from_file",
+                         #"Uniform",
+                         "UserDefined",
+                         #"Weibull",
+                         ),
+                defaut = "UserDefined",
+                fr = "Choix du type de la loi marginale",
+                ang = "1D marginal distribution",
+                ),
+
+
+#====
+# Definition des parametres selon le type de la loi
+#====
+
+
+  EXPONENTIAL = BLOC ( condition = " Law in ( 'Exponential', ) ",
+
+                         Lambda = SIMP ( statut = "o",
+                                         typ = "R",
+                                         max = 1,
+                                         val_min = 0.,
+                                         fr = "Parametre Lambda | Lambda > 0",
+                                         ang = "Lambda parameter | Lambda > 0",
+                                         ),
+
+                         Gamma = SIMP ( statut = "o",
+                                        typ = "R",
+                                        max = 1,
+                                        fr = "Borne inferieure du support de la loi",
+                                        ang = "Support lower bound",
+                                        ),
+
+  ), # Fin BLOC EXPONENTIAL
+
+
+  HISTOGRAM = BLOC ( condition = " Law in ( 'Histogram', ) ",
+
+                       First = SIMP ( statut = "o",
+                                    typ = "R",
+                                    max = 1,
+                                    fr = "Borne inferieure du supoport de la loi",
+                                    ang = "Support lower bound",
+                                    ),
+
+                       # Il faut definir une collection de couples ( x,p )
+                       Values = SIMP ( statut = 'o',
+                                       typ = Tuple(2),
+                                       max = '**',
+                                       fr = "Liste de couples : largeur de classe, hauteur de classe",
+                                       ang = "Class bandwidth, class height couple list",
+                                       validators=VerifTypeTuple(('R','R')),
+                                       ),
+
+  ), # Fin BLOC HISTOGRAM
+
+
+   NORMAL = BLOC ( condition = " Law in ( 'Normal', ) ",
+
+                    Mu = SIMP ( statut = "o",
+                                typ = "R",
+                                max = 1,
+                                fr = "Moyenne de la loi",
+                                ang = "Mean value",
+                                ),
+
+                   Sigma = SIMP ( statut = "o",
+                                  typ = "R",
+                                  max = 1,
+                                  val_min = 0.,
+                                  fr = "Ecart type de la loi",
+                                  ang = "Standard deviation",
+                                  ),
+
+   ), # Fin BLOC NORMAL
+
+
+  RAYLEIGH = BLOC ( condition = " Law in ( 'Rayleigh', ) ",
+
+                   Sigma = SIMP ( statut = "o",
+                                  typ = "R",
+                                  max = 1,
+                                  fr = "Parametre Sigma de la loi | Sigma > 0",
+                                  ang = "Sigma parameter | Sigma > 0",
+                                  ),
+
+                   Gamma = SIMP ( statut = "o",
+                                  typ = "R",
+                                  max = 1,
+                                  fr = "Borne inferieure du support de la loi",
+                                  ang = "Support lower bound",
+                                  ),
+ ), # Fin BLOC RAYLEIGH
+
+  PDF = BLOC ( condition = " Law in ( 'PDF_from_file', ) ",
+
+  FileName = SIMP ( statut = "o",
+                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
+                    fr = "Nom du fichier .csv",
+                    ang = ".csv file name",
+                    ),
+              ),
+
+
+
+   TRUNCATEDNORMAL = BLOC ( condition = " Law in ( 'TruncatedNormal', ) ",
+
+                             MuN = SIMP ( statut = "o",
+                                          typ = "R",
+                                          max = 1,
+                                          fr = "Moyenne de la loi Normale non tronqu�e",
+                                          ang = "Mean value of the associated non truncated normal distribution",
+                                          ),
+
+                             SigmaN = SIMP ( statut = "o",
+                                             typ = "R",
+                                             max = 1,
+                                             val_min = 0.,
+                                             fr = "Ecart-type de la loi Normale non tronqu�e",
+                                             ang = "Standard deviation of the associated non truncated normal distribution",
+                                             ),
+
+                             A = SIMP ( statut = "o",
+                                        typ = "R",
+                                        max = 1,
+                                        fr = "Borne inferieure de la loi | A < B",
+                                        ang = "Lower bound | A < B",
+                                        ),
+
+                             B = SIMP ( statut = "o",
+                                        typ = "R",
+                                        max = 1,
+                                        fr = "Borne superieure de la loi | A < B",
+                                        ang = "Upper bound | A < B",
+                                        ),
+
+   ), # Fin BLOC TRUNCATEDNORMAL
+
+
+  TimeSeries = BLOC ( condition = " Law in ( 'TimeSeries_from_file', ) ",
+
+  FileName = SIMP ( statut = "o",
+                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
+                    fr = "Fichier CSV d'une serie temporelle",
+                    ang = "CSV file of a time series",
+                    ),
+              ),
+
+
+   UNIFORM = BLOC ( condition = " Law in ( 'Uniform', ) ",
+
+                     A = SIMP ( statut = "o",
+                                typ = "R",
+                                max = 1,
+                                fr = "Borne inferieure du support de la loi | A < B",
+                                ang = "Support lower bound | A < B",
+                                ),
+
+                     B = SIMP ( statut = "o",
+                                typ = "R",
+                                max = 1,
+                                fr = "Borne superieure du support de la loi | A < B",
+                                ang = "Support upper bound | A < B",
+                                ),
+
+   ), # Fin BLOC UNIFORM
+
+
+   USERDEFINED = BLOC ( condition = " Law in ( 'UserDefined', ) ",
+
+                       # Il faut definir une collection de couples ( x,p )
+                       Values = SIMP ( statut = 'o',
+                                       typ = Tuple(2),
+                                       max = '**',
+                                       fr = "Liste de couples : (valeur, probabilite)",
+                                       ang = "List of pairs : (value, probability)",
+                                       validators=VerifTypeTuple(('R','R')),
+                                       defaut=((0,0.0),(1,1.0)),
+                                       ),
+
+  ), # Fin BLOC USERDEFINED
+
+
+   WEIBULL = BLOC ( condition = " Law in ( 'Weibull', ) ",
+
+                     Settings = SIMP ( statut = "o",
+                                          typ = "TXM",
+                                          max = 1,
+                                          into = ( "AlphaBeta", "MuSigma" ),
+                                          defaut = "AlphaBeta",
+                                          fr = "Parametrage de la loi weibull",
+                                          ang = "Weibull distribution parameter set",
+                                          ),
+
+                     AlphaBeta_Parameters = BLOC ( condition = " Settings in ( 'AlphaBeta', ) ",
+
+                                         Alpha = SIMP ( statut = "o",
+                                                        typ = "R",
+                                                        max = 1,
+                                                        val_min = 0.,
+                                                        fr = "Parametre Alpha de la loi | Alpha > 0",
+                                                        ang = "Alpha parameter | Alpha > 0",
+                                                        ),
+
+                                         Beta = SIMP ( statut = "o",
+                                                       typ = "R",
+                                                       max = 1,
+                                                       val_min = 0.,
+                                                       fr = "Parametre Beta de la loi | Beta > 0",
+                                                       ang = "Beta parameter | Beta > 0",
+                                                       ),
+
+                                         ), # Fin BLOC AlphaBeta_Parameters
+
+
+                     MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
+
+                                         Mu = SIMP ( statut = "o",
+                                                     typ = "R",
+                                                     max = 1,
+                                                     fr = "Moyenne de la loi",
+                                                     ang = "Mean value",
+                                                     ),
+
+                                         Sigma = SIMP ( statut = "o",
+                                                        typ = "R",
+                                                        max = 1,
+                                                        val_min = 0.,
+                                                        fr = "Ecart type de la loi",
+                                                        ang = "Standard deviation",
+                                                        ),
+
+                                         ), # Fin BLOC MuSigma_Parameters
+
+                     Gamma = SIMP ( statut = "o",
+                                    typ = "R",
+                                    max = 1,
+                                    fr = "Borne inferieure du support de la loi",
+                                    ang = "Support lower bound",
+                                    ),
+
+    ), # Fin BLOC WEIBULL
+
+  ), #fin du bloc ligne
+
+  b_transfo = BLOC (condition = "ComponentType == 'Transformer'",
+
+
+#====
+# Type de distribution
+#====
+
+  Type = SIMP (statut= "o", typ = "TXM",
+               into = ("Transformer Availability",),
+               fr = "La disponibilite du transformateur sera tiree",
+               ang= "Transformer availability will be set by the law",
+               defaut = "Transformer Availability"
+               ),
+
+  Sampling = SIMP (statut= "o", typ = "TXM",
+               into = ("Same sample for all transformers", "One sample per transformer"),
+               fr = "Choisir si une seule tirage sera fait pour tous les transforamteurs ou si des tirages differents seront faits pour chaque transformateur",
+               ang= "Choose whether one drawing/sample will be performed for all of the tranformers or whether a different drawing/sample will be performed for each transformer.",
+               defaut = "Same sample for all transformers",
+               ),
+
+  Transformer = SIMP(statut='o',typ=sd_transfo,max="**", homo="SansOrdreNiDoublon"),
+
+  Law = SIMP ( statut = "o", typ = "TXM",
+                into = ( #"Beta",
+                         #"Exponential",
+                         #"Gamma",
+                         #"Geometric",
+                         #"Gumbel",
+                         #"Histogram",
+                         #"Laplace",
+                         #"Logistic",
+                         #"LogNormal",
+                         #"MultiNomial",
+                         #"NonCentralStudent",
+                         #"Normal",
+                         #"Poisson",
+                         #"Rayleigh",
+                         #"Student",
+                         #"PDF_from_file",
+                         #"Triangular",
+                         #"TruncatedNormal",
+                         "TimeSeries_from_file",
+                         #"Uniform",
+                         "UserDefined",
+                         #"Weibull",
+                         ),
+                defaut="UserDefined",
+                fr = "Choix du type de la loi marginale",
+                ang = "1D marginal distribution",
+                ),
+
+
+#====
+# Definition des parametres selon le type de la loi
+#====
+
+##  NONPARAM = BLOC ( condition = " Law in ( 'NonParametrique', ) ",
+##
+##  FileName = SIMP ( statut = "o",
+##                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
+##                    fr = "Nom du modele physique",
+##                    ang = "Physical model identifier",
+##                    ),
+##              ),
+
+#  BETA = BLOC ( condition = " Law in ( 'Beta', ) ",
+#
+#                  Settings = SIMP ( statut = "o",
+#                                       typ = "TXM",
+#                                       max = 1,
+#                                       into = ( "RT", "MuSigma" ),
+#                                       defaut = "RT",
+#                                       fr = "Parametrage de la loi beta",
+#                                       ang = "Beta distribution parameter set",
+#                                       ),
+#
+#                  RT_Parameters = BLOC ( condition = " Settings in ( 'RT', ) ",
+#
+#                                      R = SIMP ( statut = "o",
+#                                                 typ = "R",
+#                                                 max = 1,
+#                                                 val_min = 0.,
+#                                                 fr = "Parametre R de la loi | R > 0",
+#                                                 ang = "R parameter | R > 0",
+#                                                 ),
+#
+#                                      # T > R
+#                                      T = SIMP ( statut = "o",
+#                                                 typ = "R",
+#                                                 max = 1,
+#                                                 val_min = 0.,
+#                                                 fr = "Parametre T de la loi | T > R",
+#                                                 ang = "T parameter | T > R",
+#                                                 ),
+#
+#                                      ), # Fin BLOC RT_Parameters
+#
+#
+#                  MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
+#
+#                                      Mu = SIMP ( statut = "o",
+#                                                  typ = "R",
+#                                                  max = 1,
+#                                                  fr = "Moyenne de la loi",
+#                                                  ang = "Mean value",
+#                                                  ),
+#
+#                                      Sigma = SIMP ( statut = "o",
+#                                                     typ = "R",
+#                                                     max = 1,
+#                                                     val_min = 0.,
+#                                                     fr = "Ecart type de la loi",
+#                                                     ang = "Standard deviation",
+#                                                     ),
+#
+#                                      ), # Fin BLOC MuSigma_Parameters
+#
+#
+#                  A = SIMP ( statut = "o",
+#                             typ = "R",
+#                             max = 1,
+#                             fr = "Borne inferieure du support de la loi",
+#                             ang = "Support lower bound",
+#                             ),
+#
+#                  # B > A
+#                  B = SIMP ( statut = "o",
+#                             typ = "R",
+#                             max = 1,
+#                             fr = "Borne superieure du support de la loi",
+#                             ang = "Support upper bound",
+#                             ),
+#
+#  ), # Fin BLOC BETA
+
+
+
+  EXPONENTIAL = BLOC ( condition = " Law in ( 'Exponential', ) ",
+
+                         Lambda = SIMP ( statut = "o",
+                                         typ = "R",
+                                         max = 1,
+                                         val_min = 0.,
+                                         fr = "Parametre Lambda | Lambda > 0",
+                                         ang = "Lambda parameter | Lambda > 0",
+                                         ),
+
+                         Gamma = SIMP ( statut = "o",
+                                        typ = "R",
+                                        max = 1,
+                                        fr = "Borne inferieure du support de la loi",
+                                        ang = "Support lower bound",
+                                        ),
+
+  ), # Fin BLOC EXPONENTIAL
+
+
+
+#  GAMMA = BLOC ( condition = " Law in ( 'Gamma', ) ",
+#
+#                   Settings = SIMP ( statut = "o",
+#                                        typ = "TXM",
+#                                        max = 1,
+#                                        into = ( "KLambda", "MuSigma" ),
+#                                        defaut = "KLambda",
+#                                        fr = "Parametrage de la loi gamma",
+#                                        ang = "Gamma distribution parameter set",
+#                                        ),
+#
+#                   KLambda_Parameters = BLOC ( condition = " Settings in ( 'KLambda', ) ",
+#
+#                                       K = SIMP ( statut = "o",
+#                                                  typ = "R",
+#                                                  max = 1,
+#                                                  val_min = 0.,
+#                                                  fr = "Parametre K de la loi | K > 0",
+#                                                  ang = "K parameter | K > 0",
+#                                                  ),
+#
+#                                       Lambda = SIMP ( statut = "o",
+#                                                       typ = "R",
+#                                                       max = 1,
+#                                                       val_min = 0.,
+#                                                       fr = "Parametre Lambda de la loi | Lambda > 0",
+#                                                       ang = "Lambda parameter | Lambda > 0",
+#                                                       ),
+#
+#                                       ), # Fin BLOC KLambda_Parameters
+#
+#
+#                   MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
+#
+#                                       Mu = SIMP ( statut = "o",
+#                                                   typ = "R",
+#                                                   max = 1,
+#                                                   fr = "Moyenne de la loi",
+#                                                   ang = "Mean value",
+#                                                   ),
+#
+#                                       Sigma = SIMP ( statut = "o",
+#                                                      typ = "R",
+#                                                      max = 1,
+#                                                      val_min = 0.,
+#                                                      fr = "Ecart type de la loi",
+#                                                      ang = "Standard deviation",
+#                                                      ),
+#
+#                                       ), # Fin BLOC MuSigma_Parameters
+#
+#                   Gamma = SIMP ( statut = "o",
+#                                  typ = "R",
+#                                  max = 1,
+#                                  fr = "Borne inferieure du supoport de la loi",
+#                                  ang = "Support lower bound",
+#                                  ),
+#
+#
+#  ), # Fin BLOC GAMMA
+
+
+#
+#  GEOMETRIC = BLOC ( condition = " Law in ( 'Geometric', ) ",
+#
+#                       P = SIMP ( statut = "o",
+#                                  typ = "R",
+#                                  max = 1,
+#                                  val_min = 0.,
+#                                  val_max = 1.,
+#                                  fr = "Parametre P | 0 < P < 1",
+#                                  ang = "P parameter | 0 < P < 1",
+#                                  ),
+#
+#  ), # Fin BLOC GEOMETRIC
+#
+#
+#
+#  GUMBEL = BLOC ( condition = " Law in ( 'Gumbel', ) ",
+#
+#                    Settings = SIMP ( statut = "o",
+#                                         typ = "TXM",
+#                                         max = 1,
+#                                         into = ( "AlphaBeta", "MuSigma" ),
+#                                         defaut = "AlphaBeta",
+#                                         fr = "Parametrage de la loi gumbel",
+#                                         ang = "Gumbel distribution parameter set",
+#                                         ),
+#
+#                    AlphaBeta_Parameters = BLOC ( condition = " Settings in ( 'AlphaBeta', ) ",
+#
+#                                        Alpha = SIMP ( statut = "o",
+#                                                       typ = "R",
+#                                                       max = 1,
+#                                                       val_min = 0.,
+#                                                       fr = "Parametre Alpha de la loi | Alpha > 0",
+#                                                       ang = "Alpha parameter | Alpha > 0",
+#                                                       ),
+#
+#                                        Beta = SIMP ( statut = "o",
+#                                                      typ = "R",
+#                                                      max = 1,
+#                                                      fr = "Parametre Beta de la loi",
+#                                                      ang = "Beta parameter",
+#                                                      ),
+#
+#                                        ), # Fin BLOC AlphaBeta_Parameters
+#
+#
+#                    MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
+#
+#                                        Mu = SIMP ( statut = "o",
+#                                                    typ = "R",
+#                                                    max = 1,
+#                                                    fr = "Moyenne de la loi",
+#                                                    ang = "Mean value",
+#                                                    ),
+#
+#                                        Sigma = SIMP ( statut = "o",
+#                                                       typ = "R",
+#                                                       max = 1,
+#                                                       val_min = 0.,
+#                                                       fr = "Ecart type de la loi",
+#                                                       ang = "Standard deviation",
+#                                                       ),
+#
+#                                        ), # Fin BLOC MuSigma_Parameters
+#
+#  ), # Fin BLOC GUMBEL
+
+
+
+  HISTOGRAM = BLOC ( condition = " Law in ( 'Histogram', ) ",
+
+                       First = SIMP ( statut = "o",
+                                    typ = "R",
+                                    max = 1,
+                                    fr = "Borne inferieure du supoport de la loi",
+                                    ang = "Support lower bound",
+                                    ),
+
+                       # Il faut definir une collection de couples ( x,p )
+                       Values = SIMP ( statut = 'o',
+                                       typ = Tuple(2),
+                                       max = '**',
+                                       fr = "Liste de couples : largeur de classe, hauteur de classe",
+                                       ang = "Class bandwidth, class height couple list",
+                                       validators=VerifTypeTuple(('R','R')),
+                                       ),
+
+  ), # Fin BLOC HISTOGRAM
+
+
+
+#  LAPLACE = BLOC ( condition = " Law in ( 'Laplace', ) ",
+#
+#                   Lambda = SIMP ( statut = "o",
+#                                   typ = "R",
+#                                   max = 1,
+#                                   val_min = 0.,
+#                                   fr = "Parametre Lambda | Lambda > 0",
+#                                   ang = "Lambda parameter | Lambda > 0",
+#                                   ),
+#
+#                   Mu = SIMP ( statut = "o",
+#                               typ = "R",
+#                               max = 1,
+#                               fr = "Moyenne de la loi",
+#                               ang = "Mean value",
+#                              ),
+#
+#  ), # Fin BLOC LAPLACE
+#
+#  LOGNORMAL = BLOC ( condition = " Law in ( 'LogNormal', ) ",
+#
+#                     Settings = SIMP ( statut = "o",
+#                                       typ = "TXM",
+#                                       max = 1,
+#                                       into = ( "MuSigmaLog", "MuSigma", "MuSigmaOverMu" ),
+#                                       defaut = "MuSigmaLog",
+#                                       fr = "Parametrage de la loi lognormale",
+#                                       ang = "Lognormal distribution parameter set",
+#                                       ),
+#
+#                     MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
+#
+#                                                 Mu = SIMP ( statut = "o",
+#                                                             typ = "R",
+#                                                             max = 1,
+#                                                             fr = "Moyenne de la loi",
+#                                                             ang = "Mean value",
+#                                                             ),
+#
+#                                                 Sigma = SIMP ( statut = "o",
+#                                                                typ = "R",
+#                                                                max = 1,
+#                                                                val_min = 0.,
+#                                                                fr = "Ecart type de la loi",
+#                                                                ang = "Standard deviation",
+#                                                                ),
+#
+#                                                 ), # Fin BLOC MuSigma_Parameters
+#
+#                     MuSigmaOverMu_Parameters = BLOC ( condition = " Settings in ( 'MuSigmaOverMu', ) ",
+#
+#                                                 Mu = SIMP ( statut = "o",
+#                                                             typ = "R",
+#                                                             max = 1,
+#                                                             fr = "Moyenne de la loi",
+#                                                             ang = "Mean value",
+#                                                             ),
+#
+#                                                 SigmaOverMu = SIMP ( statut = "o",
+#                                                                typ = "R",
+#                                                                max = 1,
+#                                                                val_min = 0.,
+#                                                                fr = "Rapport ecart type / moyenne de la loi",
+#                                                                ang = "Standard deviation / mean value ratio",
+#                                                                ),
+#
+#                                                 ), # Fin BLOC MuSigmaOverMu_Parameters
+#
+#                     MuSigmaLog_Parameters = BLOC ( condition = " Settings in ( 'MuSigmaLog', ) ",
+#
+#                                                    MuLog = SIMP ( statut = "o",
+#                                                                   typ = "R",
+#                                                                   max = 1,
+#                                                                   fr = "Moyenne du log",
+#                                                                   ang = "Log mean value",
+#                                                                   ),
+#
+#                                                    SigmaLog = SIMP ( statut = "o",
+#                                                                      typ = "R",
+#                                                                      max = 1,
+#                                                                      val_min = 0.,
+#                                                                      fr = "Ecart type du log",
+#                                                                      ang = "Log standard deviation",
+#                                                                      ),
+#
+#                                                    ), # Fin BLOC MuSigmaLog_Parameters
+#
+#                     Gamma = SIMP ( statut = "o",
+#                                    typ = "R",
+#                                    max = 1,
+#                                    fr = "Borne inferieure du support de la loi",
+#                                    ang = "Support lower bound",
+#                                    ),
+#
+#   ), # Fin BLOC LOGNORMAL
+#
+#
+#
+#   LOGISTIC = BLOC ( condition = " Law in ( 'Logistic', ) ",
+#
+#                       Alpha = SIMP ( statut = "o",
+#                                      typ = "R",
+#                                      max = 1,
+#                                      fr = "Borne inferieure du supoport de la loi",
+#                                      ang = "Support lower bound",
+#                                      ),
+#
+#                       Beta = SIMP ( statut = "o",
+#                                     typ = "R",
+#                                     max = 1,
+#                                     val_min = 0.,
+#                                     fr = "Parametre Beta de la loi | Beta > 0",
+#                                     ang = "Beta parameter | Beta > 0",
+#                                     ),
+#
+#   ), # Fin BLOC LOGISTIC
+#
+#
+#
+#   MULTINOMIAL = BLOC ( condition = " Law in ( 'MultiNomial', ) ",
+#
+#                         N = SIMP ( statut = "o",
+#                                    typ = "I",
+#                                    max = 1,
+#                                    fr = "Parametre N de la loi | N > 0",
+#                                    ang = "N parameter | N > 0",
+#                                    ),
+#
+#                       # Il faut definir une collection de couples ( x,p )
+#                       Values = SIMP ( statut = 'o',
+#                                       typ = "R",
+#                                       max = '**',
+#                                       fr = "Liste de probabilit�s",
+#                                       ang = "Probability list",
+#                                       validators=VerifTypeTuple(('R','R')),
+#                                       ),
+#
+#   ), # Fin BLOC MULTINOMIAL
+#
+#
+#  NONCENTRALSTUDENT = BLOC ( condition = " Law in ( 'NonCentralStudent', ) ",
+#
+#                   Nu = SIMP ( statut = "o",
+#                               typ = "R",
+#                               max = 1,
+#                               fr = "Parametre Nu de la loi | Nu > 0",
+#                               ang = "Nu parameter | Nu > 0",
+#                              ),
+#
+#                   Delta = SIMP ( statut = "o",
+#                                  typ = "R",
+#                                  max = 1,
+#                                  fr = "Parametre Delta de la loi | Delta > 0",
+#                                  ang = "Delta parameter | Delta > 0",
+#                                  ),
+#
+#                   Gamma = SIMP ( statut = "o",
+#                                  typ = "R",
+#                                  max = 1,
+#                                  fr = "Parametre Gamma de centrage de la loi",
+#                                  ang = "Gamma parameter",
+#                                  ),
+#
+#  ), # Fin BLOC NONCENTRALSTUDENT
+
+
+   NORMAL = BLOC ( condition = " Law in ( 'Normal', ) ",
+
+                    Mu = SIMP ( statut = "o",
+                                typ = "R",
+                                max = 1,
+                                fr = "Moyenne de la loi",
+                                ang = "Mean value",
+                                ),
+
+                   Sigma = SIMP ( statut = "o",
+                                  typ = "R",
+                                  max = 1,
+                                  val_min = 0.,
+                                  fr = "Ecart type de la loi",
+                                  ang = "Standard deviation",
+                                  ),
+
+   ), # Fin BLOC NORMAL
+
+
+#
+#   POISSON = BLOC ( condition = " Law in ( 'Poisson', ) ",
+#
+#                     Lambda = SIMP ( statut = "o",
+#                                     typ = "R",
+#                                     max = 1,
+#                                     val_min = 0.,
+#                                     fr = "Parametre Lambda de la loi | Lambda > 0",
+#                                     ang = "Lambda parameter | Lambda > 0",
+#                                     ),
+#
+#   ), # Fin BLOC POISSON
+#
+#
+#
+#  RAYLEIGH = BLOC ( condition = " Law in ( 'Rayleigh', ) ",
+#
+#                   Sigma = SIMP ( statut = "o",
+#                                  typ = "R",
+#                                  max = 1,
+#                                  fr = "Parametre Sigma de la loi | Sigma > 0",
+#                                  ang = "Sigma parameter | Sigma > 0",
+#                                  ),
+#
+#                   Gamma = SIMP ( statut = "o",
+#                                  typ = "R",
+#                                  max = 1,
+#                                  fr = "Borne inferieure du support de la loi",
+#                                  ang = "Support lower bound",
+#                                  ),
+# ), # Fin BLOC RAYLEIGH
+
+  PDF = BLOC ( condition = " Law in ( 'PDF_from_file', ) ",
+
+  FileName = SIMP ( statut = "o",
+                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
+                    fr = "Nom du fichier .csv",
+                    ang = ".csv file name",
+                    ),
+              ),
+
+#   STUDENT = BLOC ( condition = " Law in ( 'Student', ) ",
+#
+#                     Mu = SIMP ( statut = "o",
+#                                 typ = "R",
+#                                 max = 1,
+#                                 fr = "Parametre Mu de la loi",
+#                                 ang = "Mu parameter",
+#                                 ),
+#
+#                     Nu = SIMP ( statut = "o",
+#                                 typ = "R",
+#                                 max = 1,
+#                                 val_min = 2.,
+#                                 fr = "Parametre Nu de la loi | Nu > 2",
+#                                 ang = "Nu parameter | Nu > 2",
+#                                 ),
+#
+#                   Sigma = SIMP ( statut = "o",
+#                                  typ = "R",
+#                                  max = 1,
+#                                  fr = "Parametre Sigma de la loi",
+#                                  ang = "Sigma parameter",
+#                                  ),
+#
+#   ), # Fin BLOC STUDENT
+#
+#
+#
+#   TRIANGULAR = BLOC ( condition = " Law in ( 'Triangular', ) ",
+#
+#                         A = SIMP ( statut = "o",
+#                                    typ = "R",
+#                                    max = 1,
+#                                    fr = "Borne inferieure du support de la loi | A < M < B",
+#                                    ang = "Support lower bound | A < M < B",
+#                                    ),
+#
+#                         M = SIMP ( statut = "o",
+#                                    typ = "R",
+#                                    max = 1,
+#                                    fr = "Mode de la loi | A < M < B",
+#                                    ang = "Mode | A < M < B",
+#                                    ),
+#
+#                         B = SIMP ( statut = "o",
+#                                    typ = "R",
+#                                    max = 1,
+#                                    fr = "Borne superieure du support de la loi | A < M < B",
+#                                    ang = "Support upper bound | A < M < B",
+#                                    ),
+#
+#   ), # Fin BLOC TRIANGULAR
+#
+#
+
+   TRUNCATEDNORMAL = BLOC ( condition = " Law in ( 'TruncatedNormal', ) ",
+
+                             MuN = SIMP ( statut = "o",
+                                          typ = "R",
+                                          max = 1,
+                                          fr = "Moyenne de la loi Normale non tronqu�e",
+                                          ang = "Mean value of the associated non truncated normal distribution",
+                                          ),
+
+                             SigmaN = SIMP ( statut = "o",
+                                             typ = "R",
+                                             max = 1,
+                                             val_min = 0.,
+                                             fr = "Ecart-type de la loi Normale non tronqu�e",
+                                             ang = "Standard deviation of the associated non truncated normal distribution",
+                                             ),
+
+                             A = SIMP ( statut = "o",
+                                        typ = "R",
+                                        max = 1,
+                                        fr = "Borne inferieure de la loi | A < B",
+                                        ang = "Lower bound | A < B",
+                                        ),
+
+                             B = SIMP ( statut = "o",
+                                        typ = "R",
+                                        max = 1,
+                                        fr = "Borne superieure de la loi | A < B",
+                                        ang = "Upper bound | A < B",
+                                        ),
+
+   ), # Fin BLOC TRUNCATEDNORMAL
+
+
+  TimeSeries = BLOC ( condition = " Law in ( 'TimeSeries_from_file', ) ",
+
+  FileName = SIMP ( statut = "o",
+                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
+                    fr = "Fichier CSV d'une serie temporelle",
+                    ang = "CSV file of a time series",
+                    ),
+              ),
+
+
+   UNIFORM = BLOC ( condition = " Law in ( 'Uniform', ) ",
+
+                     A = SIMP ( statut = "o",
+                                typ = "R",
+                                max = 1,
+                                fr = "Borne inferieure du support de la loi | A < B",
+                                ang = "Support lower bound | A < B",
+                                ),
+
+                     B = SIMP ( statut = "o",
+                                typ = "R",
+                                max = 1,
+                                fr = "Borne superieure du support de la loi | A < B",
+                                ang = "Support upper bound | A < B",
+                                ),
+
+   ), # Fin BLOC UNIFORM
+
+
+   USERDEFINED = BLOC ( condition = " Law in ( 'UserDefined', ) ",
+
+                       # Il faut definir une collection de couples ( x,p )
+                       Values = SIMP ( statut = 'o',
+                                       typ = Tuple(2),
+                                       max = '**',
+                                       fr = "Liste de couples : (valeur, probabilite)",
+                                       ang = "List of pairs : (value, probability)",
+                                       validators=VerifTypeTuple(('R','R')),
+                                       defaut=((0,0.0),(1,1.0)),
+                                       ),
+
+  ), # Fin BLOC USERDEFINED
+
+
+   WEIBULL = BLOC ( condition = " Law in ( 'Weibull', ) ",
+
+                     Settings = SIMP ( statut = "o",
+                                          typ = "TXM",
+                                          max = 1,
+                                          into = ( "AlphaBeta", "MuSigma" ),
+                                          defaut = "AlphaBeta",
+                                          fr = "Parametrage de la loi weibull",
+                                          ang = "Weibull distribution parameter set",
+                                          ),
+
+                     AlphaBeta_Parameters = BLOC ( condition = " Settings in ( 'AlphaBeta', ) ",
+
+                                         Alpha = SIMP ( statut = "o",
+                                                        typ = "R",
+                                                        max = 1,
+                                                        val_min = 0.,
+                                                        fr = "Parametre Alpha de la loi | Alpha > 0",
+                                                        ang = "Alpha parameter | Alpha > 0",
+                                                        ),
+
+                                         Beta = SIMP ( statut = "o",
+                                                       typ = "R",
+                                                       max = 1,
+                                                       val_min = 0.,
+                                                       fr = "Parametre Beta de la loi | Beta > 0",
+                                                       ang = "Beta parameter | Beta > 0",
+                                                       ),
+
+                                         ), # Fin BLOC AlphaBeta_Parameters
+
+
+                     MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
+
+                                         Mu = SIMP ( statut = "o",
+                                                     typ = "R",
+                                                     max = 1,
+                                                     fr = "Moyenne de la loi",
+                                                     ang = "Mean value",
+                                                     ),
+
+                                         Sigma = SIMP ( statut = "o",
+                                                        typ = "R",
+                                                        max = 1,
+                                                        val_min = 0.,
+                                                        fr = "Ecart type de la loi",
+                                                        ang = "Standard deviation",
+                                                        ),
+
+                                         ), # Fin BLOC MuSigma_Parameters
+
+                     Gamma = SIMP ( statut = "o",
+                                    typ = "R",
+                                    max = 1,
+                                    fr = "Borne inferieure du support de la loi",
+                                    ang = "Support lower bound",
+                                    ),
+
+    ), # Fin BLOC WEIBULL
+
+
+
+  ), #fin du bloc transformer
+
+
+)
+
+Classement_Commandes_Ds_Arbre=('DIRECTORY', 'DISTRIBUTION', 'CORRELATION',)
+
+Ordre_Des_Commandes = ( 'DIRECTORY', 'PSSE_PARAMETERS', 'SIMULATION', 'DISTRIBUTION', 'CORRELATION',
+                        'N_1_GENERATORS', 'N_1_LINES', 'N_1_TRANSFORMERS', 'N_1_LOADS',)
diff --git a/OldCodes/PSEN_Eficas/configuration_PSEN.py b/OldCodes/PSEN_Eficas/configuration_PSEN.py
new file mode 100755 (executable)
index 0000000..4ab64b8
--- /dev/null
@@ -0,0 +1,43 @@
+# -*- coding: utf-8 -*-\r
+#            CONFIGURATION MANAGEMENT OF EDF VERSION\r
+# ======================================================================\r
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG\r
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY\r
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY\r
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR\r
+# (AT YOUR OPTION) ANY LATER VERSION.\r
+#\r
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT\r
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF\r
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU\r
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.\r
+#\r
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE\r
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,\r
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.\r
+#\r
+#\r
+# ======================================================================\r
+"""\r
+    Ce module sert pour charger les paramètres de configuration d'EFICAS\r
+"""\r
+# Modules Python\r
+from InterfaceQT4 import configuration\r
+import os\r
+\r
+\r
+class CONFIG(configuration.CONFIG_BASE):\r
+\r
+  #-----------------------------------\r
+  def __init__(self,appli,repIni):\r
+  #-----------------------------------\r
+\r
+      self.labels_user=['catalogues','lang']\r
+      self.labels_eficas=['lang','rep_cata','catalogues']\r
+\r
+      configuration.CONFIG_BASE.__init__(self,appli,'.Eficas_monCode')\r
+\r
+\r
+def make_config(appli,rep):\r
+    return CONFIG(appli,rep)\r
+\r
diff --git a/OldCodes/PSEN_Eficas/mesScripts.py b/OldCodes/PSEN_Eficas/mesScripts.py
new file mode 100755 (executable)
index 0000000..15f80ed
--- /dev/null
@@ -0,0 +1,35 @@
+def view_zone(listeparam) :
+    item=listeparam[0]
+    import visu_geom
+    visu_zone = visu_geom.VisuGeom(from_eficas=True,
+                          eficas_item=item,
+                          ligne_arbre=False)
+    visu_zone.visualize()
+
+def view_ligne_arbre(listeparam) :
+    item=listeparam[0]
+    import visu_geom
+    visu_arbre = visu_geom.VisuGeom(from_eficas=True,
+                           eficas_item=item,
+                           ligne_arbre=True)
+    visu_arbre.visualize()
+
+def import_zone(listeparam,appli) :
+    item=listeparam[0]
+    # simulation de la recuperation zone
+    #import eficasSalome
+    #eficasSalome.runEficas(code='MT',fichier='/home/I29518/test_zone.comm')
+    appli.viewmanager.handleOpen(fichier='/home/A96028/Install_EficasV1/EficasV1/MT/MT_include.comm')
+
+def import_zone2(listeparam,appli) :
+    editor=listeparam[0]
+    itemWidget=listeparam[1]
+    texte="sansnom=ZONE(NOEUDS=(_F(NOM='N1', X=0.0,), _F(NOM='N2', X=0.19,),), ELEMENTS=(_F(NOM='E1', DEBUT='N1', FIN='N2', RAFFINAGE='NON', MATERIAU=MAT_R01, SECTION_MASSE=_F(TYPE_SECTION='CONSTANTE', DIAM_EXTERN_DEBUT=0.1, DIAM_INTERN_DEBUT=0,), SECTION_RIGIDITE=_F(TYPE_SECTION='CONSTANTE', DIAM_EXTERN_DEBUT=0.1, DIAM_INTERN_DEBUT=0.0,),), _F(NOM='E2', DEBUT='N2', FIN='N3', RAFFINAGE='NON', MATERIAU=MAT_R01, SECTION_MASSE=_F(TYPE_SECTION='VARIABLE', DIAM_EXTERN_DEBUT=0.1, DIAM_INTERN_DEBUT=0, DIAM_EXTERN_SORTIE=0.2, DIAM_INTERN_SORTIE=0.0,), SECTION_RIGIDITE=_F(TYPE_SECTION='VARIABLE', DIAM_EXTERN_DEBUT=0.1, DIAM_INTERN_DEBUT=0.0, DIAM_EXTERN_SORTIE=0.2, DIAM_INTERN_SORTIE=0.0,),),),);"
+    editor.updateJdc(itemWidget,texte)
+
+def Source():
+    print "jjjjjjjjjjjjjjjjjjj"
+
+dict_commandes={
+       'GENDOF':(Source,"Source",(),False,True,"affiche un message"),
+               }
diff --git a/OldCodes/PSEN_Eficas/mesScripts_PSEN.py b/OldCodes/PSEN_Eficas/mesScripts_PSEN.py
new file mode 100644 (file)
index 0000000..3e79541
--- /dev/null
@@ -0,0 +1,113 @@
+def exportToCsv(listeparam) :
+    texte=""
+    editor= listeparam[0]
+    item  = listeparam[1]
+    fn=None
+    try :
+      from PyQt4.QtGui import QFileDialog, QMessageBox
+      fichier = QFileDialog.getOpenFileName()
+      if fichier == None : return
+    except :
+      try :
+        from PyQt5.QtWidgets import QFileDialog, QMessageBox
+        fichier = QFileDialog.getOpenFileName()
+        if fichier[0] == None : return
+        fichier=fichier[0]
+      except:
+        pass
+
+    nouvelleVal=[]
+    prob=item.object.get_child('Probability')
+    valeur=prob.get_valeur()
+    texte=""
+    for v in valeur :
+        texte+=v[0].nom+";"+str(v[1]).replace('.',',')+"\n"
+
+    try :
+      fn=open(fichier,'wb')
+      fn.write(texte)
+      fn.close()
+    except Exception, why:
+      QMessageBox.critical(editor, ("Save file failed"),
+      ('unable to save ')+str(fn) + str(why))
+
+
+def importFromCsv(listeparam) :
+    texte=""
+    editor= listeparam[0]
+    item  = listeparam[1]
+    node  = listeparam[2]
+    fn=None
+    try :
+      from PyQt4.QtGui import QFileDialog
+      fichier = QFileDialog.getOpenFileName()
+      if fichier == None : return
+      fn=open(fichier)
+    except :
+      try :
+        from PyQt5.QtWidgets import QFileDialog
+        fichier = QFileDialog.getOpenFileName()
+        if fichier[0] == None : return
+        fn=open(fichier[0])
+      except:
+        pass
+    #fn=open('Classeur1.csv')
+    if not fn : return
+    nouvelleVal=[]
+    prob=item.object.get_child('Probability')
+    monType=prob.definition.validators.typeDesTuples[0]
+    listeObjet=item.object.etape.parent.get_sd_avant_du_bon_type(item.object.etape,(monType,))
+    for ligne in fn.readlines():
+      try :
+        nom,valeur = ligne.split(';')
+      except :
+        texte += "not able to process: "+ ligne
+        continue
+      if nom not in listeObjet :
+        texte += nom + " : ignored (not known in Eficas) \n "
+        continue
+      try :
+        concept=item.jdc.get_concept(nom)
+      except :
+        texte += nom + ": ignored (not known in Eficas) \n "
+        continue
+      try :
+        valNum=valeur.replace (',','.')
+        valeur=eval (valNum, {})
+      except :
+        texte += valeur + " : unable to eval \n "
+        continue
+      nouvelleVal.append((concept,valeur))
+      #  exec nom in self.jdc
+
+    if nouvelleVal != [] : prob.set_valeur(nouvelleVal)
+    if texte != "" :
+       try :
+         from  PyQt5.QtWidgets  import QMessageBox
+       except :
+         from  PyQt4.QtGui  import QMessageBox
+       QMessageBox.information( None,'unable to append values',texte,) 
+
+    node.affichePanneau()
+        
+    print "et ici"
+
+# le dictionnaire des commandes a la structure suivante :
+# la clef est la commande qui va proposer l action
+# puis un tuple qui contient
+#      - la fonction a appeler
+#       - le label dans le menu du clic droit
+#      - un tuple contenant les parametres attendus par la fonction
+#      - appelable depuis Salome uniquement -)
+#      - appelable depuis un item valide uniquement 
+#      - toolTip
+dict_commandes={
+   'N_1_GENERATORS':( 
+           (exportToCsv,"exportToCsv",('editor','item'),False,False,"export values to cvs File"),
+           (importFromCsv,"importFromCsv",('editor','item','self'),False,False,"import values from cvs File"),
+                    ),
+   'N_1_LINES':( 
+           (exportToCsv,"exportToCsv",('editor','item'),False,False,"export values to cvs File"),
+           (importFromCsv,"importFromCsv",('editor','item','self'),False,False,"import values from cvs File"),
+                    )
+               }
diff --git a/OldCodes/PSEN_Eficas/opsPSEN.py b/OldCodes/PSEN_Eficas/opsPSEN.py
new file mode 100755 (executable)
index 0000000..f1e19fe
--- /dev/null
@@ -0,0 +1,113 @@
+# -*- coding: iso-8859-1 -*-
+# Copyright (C) 2007-2021   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+#from ExtractGeneratorLoadLineandTransfoDico import ExtractGeneratorLoadLineandTransfoDico
+from ExtractGeneratorLoadLineandTransfoDico import ExtractGeneratorLoadLineandTransfoDico2
+
+def INCLUDE(self,PSSE_path,sav_file,**args):
+   """ 
+       Fonction sd_prod pour la macro INCLUDE
+   """
+   
+   if sav_file==None: return
+   reevalue=0
+   listeADeTruire=[]
+   listeNouveau=[]
+   toClean=False
+   if hasattr(self,'fichier_ini'):
+       reevalue=1
+       if self.fichier_ini == sav_file : return
+       self.fichier_ini=sav_file
+       if hasattr(self,'old_context_fichier_init' ):
+         toClean=True
+         for concept in self.old_context_fichier_init.values():
+             #self.jdc.delete_concept(concept)
+             listeADeTruire.append(concept)
+         self.jdc_aux=None
+         self.contexte_fichier_init={}
+         #self.reevalue_sd_jdc()
+         self.jdc.reset_context()
+
+   self.fichier_ini=sav_file
+   self.contexte_fichier_init = {}
+   self.fichier_unite = 999
+   self.fichier_err = None
+   self.fichier_text=""
+    
+   unite = 999
+
+   #try :
+   if 1:
+     MachineDico,LoadDico,LineDico,TransfoDico, MotorDico = ExtractGeneratorLoadLineandTransfoDico2(sav_file,PSSE_path)
+   else :
+   #except :
+     if self.jdc.appli is not None:
+        self.jdc.appli.affiche_alerte("Error", 'An error happened in ExtractGeneratorandLoadList execution ')
+        self.g_context = {}
+        self.etapes = []
+        self.jdc_aux = None
+        self.fichier_err = str(exc)
+        self.contexte_fichier_init = {}
+
+   
+   for nom in MachineDico.keys():
+      self.fichier_text += "%s=MONGENER(ID='%s',);\n" % (nom, 'a')
+      listeNouveau.append(nom)
+
+   for nom in LoadDico.keys():
+      self.fichier_text += "%s=MACHARGE(ID='%s',);\n" % (nom, 'a')
+      listeNouveau.append(nom)
+      
+   for nom in LineDico.keys():
+      self.fichier_text += "%s=MALIGNE(ID='%s',);\n" % (nom,'a')
+      listeNouveau.append(nom)
+
+   for nom in TransfoDico.keys():
+      self.fichier_text += "%s=MONTRANSFO(ID='%s',);\n" % (nom,'a')
+      listeNouveau.append(nom)
+
+   for nom in MotorDico.keys():
+      self.fichier_text += "%s=MONMOTEUR(ID='%s',);\n" % (nom,'a')
+      listeNouveau.append(nom)
+
+   import Extensions.jdc_include
+   self.JdC_aux = Extensions.jdc_include.JDC_CATA_INCLUDE(code='PSEN', execmodul=None)
+   self.make_contexte_include(None, self.fichier_text)
+   self.old_context_fichier_init = self.contexte_fichier_init
+   self.parent.record_unit(unite, self)
+
+   self.jdc.MachineDico=MachineDico
+   self.jdc.LoadDico=LoadDico
+   self.jdc.LineDico=LineDico
+   self.jdc.TransfoDico=TransfoDico
+   self.jdc.MotorDico = MotorDico
+
+   if toClean:
+    for concept in listeADeTruire :
+      if concept.nom not in listeNouveau: self.jdc.delete_concept(concept)
+    self.reevalue_sd_jdc()
+
+def INCLUDE_context(self,d):
+   """ 
+       Fonction op_init pour macro INCLUDE
+   """
+   for k,v in self.g_context.items():
+      d[k]=v
+
diff --git a/OldCodes/PSEN_Eficas/prefs.py b/OldCodes/PSEN_Eficas/prefs.py
new file mode 100755 (executable)
index 0000000..c9a624a
--- /dev/null
@@ -0,0 +1,22 @@
+# Copyright (C) 2007-2021   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+code="PSEN" 
+import sys, os
+if os.path.dirname(os.path.abspath(__file__)) not in sys.path :
+   sys.path.insert(0,os.path.dirname(os.path.abspath(__file__)))
diff --git a/OldCodes/PSEN_Eficas/prefs_PSEN.py b/OldCodes/PSEN_Eficas/prefs_PSEN.py
new file mode 100755 (executable)
index 0000000..4d2dcc2
--- /dev/null
@@ -0,0 +1,41 @@
+# -*- coding: utf-8 -*-
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+
+import os,sys
+# repIni sert a localiser le fichier editeur.ini
+# Obligatoire
+repIni=os.path.dirname(os.path.abspath(__file__))
+INSTALLDIR=os.path.join(repIni,'..')
+sys.path[:0]=[INSTALLDIR]
+
+
+# lang indique la langue utilisee pour les chaines d'aide : fr ou ang
+lang='ang' #'fr'
+
+# Codage des strings qui accepte les accents (en remplacement de 'ascii')
+encoding='iso-8859-1'
+docPath=repIni
+
+
+#
+catalogues=(
+   ('PSEN','default',os.path.join(repIni,'PSEN_Cata.py'),'PSEN','python'),
+)
diff --git a/OldCodes/PSEN_Eficas/properties.py b/OldCodes/PSEN_Eficas/properties.py
new file mode 100755 (executable)
index 0000000..1d328a4
--- /dev/null
@@ -0,0 +1,24 @@
+#@ MODIF properties Accas DATE 11/06/2008 AUTEUR aster M.ADMINISTRATEUR
+# RESPONSABLE D6BHHHH J-P.LEFEBVRE
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
+# (AT YOUR OPTION) ANY LATER VERSION.                                 
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
+# ======================================================================
+#     IDENTIFICATION DU GESTIONNAIRE DE COMMANDE ACCAS A PARTIR
+#     DE LA VERSION DU CODE_ASTER ASSOCIE
+#----------------------------------------------------------------------
+version = "1.2"
+date = "25/05/2010"
+exploit = False
diff --git a/OldCodes/PSEN_Eficas/qtEficas_PSEN.py b/OldCodes/PSEN_Eficas/qtEficas_PSEN.py
new file mode 100755 (executable)
index 0000000..2dc71ab
--- /dev/null
@@ -0,0 +1,35 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2021   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+"""
+   Ce module sert a lancer EFICAS configure pour Code_Aster
+"""
+# Modules Python
+# Modules Eficas
+
+import sys,os
+#sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..'))
+import prefs
+name='prefs_'+prefs.code
+__import__(name)
+
+
+from InterfaceQT4 import eficas_go
+eficas_go.lance_eficas(code=prefs.code)
index 6d9263678dd5bae6ad4ee9fc462ad432d2f6ed0f..d25b464f2959a3f0c3609e159719b069a9f518d4 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 9ea600a603d28b1bdc6f0c9f66e0dd4ee1fa618c..9a36e23546371be239293c71a4a8eb16925c564d 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 647d0ae987788aabfe7fe87573e72f88846ea31e..58beb3b195417bad6f214e28f84ef747bdfd89f7 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2012   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 6863fe0312520b46bf480edbe03e4102b49fb794..c3b3c899c78ed1bbe47953cfbd25bb68dc552a92 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2012   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
diff --git a/OldCodes/ProcessOutputs_Eficas/EssaiMulti.py b/OldCodes/ProcessOutputs_Eficas/EssaiMulti.py
new file mode 100755 (executable)
index 0000000..87f9905
--- /dev/null
@@ -0,0 +1,88 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+import os
+import sys
+from multiprocessing import Process
+from multiprocessing import Lock
+from multiprocessing import Pool
+
+def worker(num):
+    """thread worker function"""
+    print 'Worker:', num
+    return
+
+def test1():
+    for i in range(5):
+        p = Process(target=worker, args=(i,))
+        p.start()
+        p.join()
+
+def info(title):
+    print(title)
+    print('parent process:', os.getppid())
+    print('process id:', os.getpid())
+
+def f(name):
+    info('function f')
+    print('hello', name)
+
+def test2():
+    info('test2')
+    p = Process(target=f, args=('pascale',))
+    p.start()
+    p.join()
+
+def f(l, i):
+    l.acquire()
+    try:
+        print('hello world', i)
+    finally:
+        l.release()
+
+
+def test3(lock):
+    for num in range(10):
+        Process(target=f, args=(lock, num)).start()
+
+    # sorties evt desordonnees
+    for i in range(50):
+        p = Process(target=worker, args=(i,)).start()
+
+def g(x):
+    return x*x
+
+
+def test4():
+    import traceback
+    traceback.print_stack()
+    num_cores = 4
+    FolderPath='tmp'
+
+    monPool=Pool(maxtasksperchild=1) #create a multiprocessing.Pool object
+    for l in range(num_cores):
+        print(" lct on core "+str(l) )
+        p= monPool.apply_async(g,(l,))
+
+    res = monPool.apply_async(g, (20,))      # runs in *only* one process
+    print res.get(timeout=1)                 # prints "400"
+
+    # evaluate "os.getpid()" asynchronously
+    res = monPool.apply_async(os.getpid, ()) # runs in *only* one process
+    print res.get(timeout=1)              # prints the PID of that process
+
+    # launching multiple evaluations asynchronously *may* use more processes
+    multiple_results = [monPool.apply_async(os.getpid, ()) for i in range(4)]
+    print [res.get(timeout=1) for res in multiple_results]
+
+
+
+if __name__ == '__main__':
+   #test1()
+
+   #test2()
+   
+   #lock = Lock()
+   #test3(lock)
+   print ('je suis dans main du run')
+   test4()
+
diff --git a/OldCodes/ProcessOutputs_Eficas/ExtractGeneratorLoadLineandTransfoDico.py b/OldCodes/ProcessOutputs_Eficas/ExtractGeneratorLoadLineandTransfoDico.py
new file mode 100644 (file)
index 0000000..d918810
--- /dev/null
@@ -0,0 +1,620 @@
+import os\r
+import sys\r
+import numpy as np\r
+import copy\r
+\r
+#import Storage\r
+\r
+\r
+def getNominalkV(NetworkFile):\r
+    print "begin getNominalkV for ", NetworkFile\r
+\r
+    print "version en dur"\r
+    BusList=(1,2,3,4,6)\r
+    LinesList=(7,8,9,10)\r
+    TransfosList=('Transfos_A', 'Transfos_B', 'Transfos_C', 'Transfos_D')\r
+    return BusList, LinesList, TransfosList\r
+\r
+    import psspy\r
+    import redirect\r
+\r
+    psspy.psseinit(80000)\r
+    redirect.psse2py()\r
+    psspy.progress_output(6)\r
+\r
+    psspy.case(NetworkFile)\r
+    print "before buses"\r
+    # Buses\r
+\r
+    sid = -1\r
+    flag = 2\r
+    ierr, ret = psspy.abusreal(sid, flag, ['BASE'])\r
+    Storage.BusBase = ret[0]\r
+\r
+    ierr, carray = psspy.abuschar(sid, flag, ['NAME'])\r
+    Storage.BusBaseList = {}\r
+    for i in range(len(carray[0])):\r
+        Storage.BusBaseList[carray[0][i]] = ret[0][i]\r
+\r
+    BusList = []\r
+    for item in Storage.BusBase:\r
+        if item not in BusList:\r
+            BusList.append(item)\r
+    BusList = sorted(BusList)\r
+\r
+    print "after buses"\r
+\r
+    # Lines\r
+\r
+    owner = 1\r
+    ties = 1\r
+    flag = 2\r
+    entry = 1\r
+    string = ['FROMNAME', 'TONAME']\r
+    ierr, carray = psspy.abrnchar(sid, owner, ties, flag, entry, string)\r
+\r
+    for i in range(len(carray[0])):\r
+        nom = Storage.BusBaseList[carray[0][i]]\r
+        name = carray[0][i] + '-' + carray[1][i]\r
+        Storage.LinesBaseList[name] = nom\r
+        Storage.LinesBase.append(nom)\r
+\r
+    LinesList = []\r
+    for item in Storage.LinesBase:\r
+        if item not in LinesList:\r
+            LinesList.append(item)\r
+    LinesList = sorted(LinesList)\r
+\r
+    print "after lines"\r
+\r
+    # Transfos\r
+\r
+    owner = 1\r
+    ties = 1\r
+    flag = 6\r
+    entry = 1\r
+    string = ['FROMNAME', 'TONAME']\r
+    ierr, carray = psspy.abrnchar(sid, owner, ties, flag, entry, string)\r
+\r
+    for i in range(len(carray[0])):\r
+        nom1 = Storage.BusBaseList[carray[0][i]]\r
+        nom2 = Storage.BusBaseList[carray[1][i]]\r
+        name = carray[0][i] + '-' + carray[1][i]\r
+        Storage.TransfoBaseList[name] = [nom1, nom2]\r
+        Storage.TransfoBase.append([nom1, nom2])\r
+\r
+    TransfosList = []\r
+    for item in Storage.TransfoBase:\r
+        string = str(item[0]) + ' - ' + str(item[1])\r
+        if string not in TransfosList:\r
+            TransfosList.append(string)\r
+    TransfosList = sorted(TransfosList)\r
+\r
+    print "after transfos"\r
+\r
+    # Generators\r
+\r
+    sid = -1 #all buses\r
+    flag = 1 #all in service loads/generators (4 all loads/generators)\r
+\r
+    string = ['NUMBER']\r
+    ierr,iarray = psspy.amachint(sid,flag,string)\r
+\r
+    string = ['NAME','ID']\r
+    ierr,carray = psspy.amachchar(sid,flag,string)\r
+\r
+    for i in range(len(iarray[0])):\r
+        idname = "GR" + carray[1][i]\r
+        machinename = carray[0][i].strip()+ "__" + idname\r
+        machinename = machinename.replace(" ","_")\r
+        machinename = machinename.replace("-","_")\r
+        machinename = machinename.replace(".","_")\r
+        machinename = machinename.replace("&","and")\r
+        try:\r
+            int(machinename[0])\r
+            machinename = "_" + machinename\r
+        except:\r
+            pass\r
+        Storage.GenBaseList[machinename] = iarray[0][i]\r
+\r
+    return BusList, LinesList, TransfosList\r
+\r
+#PN --> inutiles\r
+#def getBusNominalkV(NetworkFile):\r
+#    import psspy\r
+#    import redirect\r
+#\r
+#    psspy.psseinit(80000)\r
+#    redirect.psse2py()\r
+#    psspy.progress_output(6)\r
+#\r
+#    psspy.case(NetworkFile)\r
+#\r
+#    sid = -1\r
+#    flag = 2\r
+#    ierr, ret = psspy.abusreal(sid, flag, ['BASE'])\r
+#    Storage.BusBase = ret[0]\r
+#\r
+#    ierr, carray = psspy.abuschar(sid, flag, ['NAME'])\r
+#    buses = {}\r
+#    for i in range(len(carray[0])):\r
+#        buses[carray[0][i]] = ret[0][i]\r
+#    Storage.BusNames = buses\r
+#    ret = []\r
+#    for item in Storage.BusBase:\r
+#        if item not in ret:\r
+#            ret.append(item)\r
+#    return sorted(ret)\r
+\r
+#def updateConts():\r
+#    Storage.ContFullList = []\r
+#    tmp = Storage.BusBaseList.keys()\r
+#    tmp.sort()\r
+#    for key in tmp:\r
+#        Storage.ContFullList.append(key)\r
+#    tmp = Storage.GenBaseList.keys()\r
+#    tmp.sort()\r
+#    for key in tmp:\r
+#        Storage.ContFullList.append(key)\r
+#    tmp = Storage.LinesBaseList.keys()\r
+#    tmp.sort()\r
+#    for key in tmp:\r
+#        Storage.ContFullList.append(key)\r
+#    tmp = Storage.TransfoBaseList.keys()\r
+#    tmp.sort()\r
+#    for key in tmp:\r
+#        Storage.ContFullList.append(key)\r
+#    print Storage.ContFullList\r
+#    return Storage.ContFullList\r
+#\r
+#def newContingency(MatList):\r
+#    Storage.CustomContingencies.append(MatList)\r
+#\r
+#def checkIfBorder(graph, key, depth, tmplist):\r
+#    if key in tmplist:\r
+#        return True\r
+#    if depth == 0:\r
+#        return False\r
+#    NonBorders = 0\r
+#    for item in graph[key]:\r
+#        if not checkIfBorder(graph, item, depth - 1, tmplist):\r
+#            NonBorders += 1\r
+#    if NonBorders < 2: # A generator is considered as isolated if it has less than two non-borders neighbours\r
+#        if key not in tmplist:\r
+#            tmplist.append(key)\r
+#        return True\r
+#    return False\r
+#\r
+#def getTrueLines(NetworkFile):\r
+#    import psspy\r
+#    import redirect\r
+#\r
+#    psspy.psseinit(80000)\r
+#    redirect.psse2py()\r
+#    psspy.progress_output(6)\r
+#\r
+#    psspy.case(NetworkFile)\r
+#\r
+#    sid = -1\r
+#    owner = 1\r
+#    ties = 1\r
+#    flag = 4 # 6 for two-winding transfos\r
+#    entry = 1 #each branch once, not both directions\r
+#    string = ['FROMNAME', 'TONAME', 'ID']\r
+#    ierr, iarray = psspy.abrnchar(sid, owner, ties, flag, entry, string)\r
+#    string = ['FROMNUMBER', 'TONUMBER']\r
+#    ierr, carray = psspy.abrnint(sid, owner, ties, flag, entry, string)\r
+#\r
+#    lst = []\r
+#    tmplist = []\r
+#    try:\r
+#        for i in range(len(carray[0])):\r
+#            if carray[0][i] not in lst and carray[0][i] not in tmplist:\r
+#                tmplist.append(carray[0][i])\r
+#            elif carray[0][i] not in lst and carray[0][i] in tmplist:\r
+#                tmplist.remove(carray[0][i])\r
+#                lst.append(carray[0][i])\r
+#            if carray[1][i] not in lst and carray[1][i] not in tmplist:\r
+#                tmplist.append(carray[1][i])\r
+#            elif carray[1][i] not in lst and carray[1][i] in tmplist:\r
+#                tmplist.remove(carray[1][i])\r
+#                lst.append(carray[1][i])\r
+#    except:\r
+#        pass\r
+#\r
+#    # Create the graph\r
+#    graph = {}\r
+#    for i in range(len(carray[0])):\r
+#        try:\r
+#            if graph[carray[0][i]]:\r
+#                pass\r
+#        except:\r
+#            graph[carray[0][i]] = []\r
+#        if carray[1][i] not in graph[carray[0][i]]:\r
+#            graph[carray[0][i]].append(carray[1][i])\r
+#        try:\r
+#            if graph[carray[1][i]]:\r
+#                pass\r
+#        except:\r
+#            graph[carray[1][i]] = []\r
+#        if carray[0][i] not in graph[carray[1][i]]:\r
+#            graph[carray[1][i]].append(carray[0][i])\r
+#\r
+#    # Search it twice, to ensure everything is mapped\r
+#    for key in sorted(graph.keys()):\r
+#        checkIfBorder(graph, key, Storage.RecursiveDepth, tmplist)\r
+#    for key in reversed(sorted(graph.keys())):\r
+#        checkIfBorder(graph, key, Storage.RecursiveDepth, tmplist)\r
+#\r
+#    Storage.IsolatedGenList = []\r
+#    # Unfold it\r
+#    for i in range(len(carray[0])):\r
+#        if carray[0][i] in tmplist:\r
+#            if iarray[0][i] not in Storage.IsolatedGenList:\r
+#                Storage.IsolatedGenList.append(iarray[0][i])\r
+#        if carray[1][i] in tmplist:\r
+#            if iarray[1][i] not in Storage.IsolatedGenList:\r
+#                Storage.IsolatedGenList.append(iarray[1][i])\r
+#\r
+#    lines = []\r
+#    outLines = []\r
+#    for i in range(len(iarray[0])):\r
+#        name = iarray[0][i] + '-' + iarray[1][i]\r
+#        if '@' in iarray[2][i] or '*' in iarray[2][i]:\r
+#            outLines.append(name)\r
+#        elif iarray[0][i] not in Storage.IsolatedGenList and iarray[1][i] not in Storage.IsolatedGenList:\r
+#            lines.append(name)\r
+#        else:\r
+#            outLines.append(name)\r
+#    Storage.TrueLines = lines\r
+#    return lines\r
+#\r
+#NoBreakersandSwitches = True\r
+#\r
+#def ExtractGeneratorLoadLineandTransfoDico(NetworkFile,PSSE_PATH):\r
+#    import os\r
+#    import sys\r
+#    import numpy as np\r
+#\r
+#    print NetworkFile\r
+#    print PSSE_PATH\r
+#    sys.path.append(PSSE_PATH)\r
+#    os.environ['PATH'] +=  ';' + PSSE_PATH + ';'\r
+#\r
+#    import psspy\r
+#    import redirect\r
+#\r
+#    ###initialization PSSE\r
+#    psspy.psseinit(10000)\r
+#    _i=psspy.getdefaultint()\r
+#    _f=psspy.getdefaultreal()\r
+#    _s=psspy.getdefaultchar()\r
+#    redirect.psse2py()\r
+#\r
+#    # Silent execution of PSSe\r
+#    islct=6 # 6=no output; 1=standard\r
+#    psspy.progress_output(islct)\r
+#\r
+#    #open Network File\r
+#    psspy.case(NetworkFile)\r
+#\r
+#    # Extract Buses\r
+#    sid = -1 # all buses\r
+#    flag = 2\r
+#    string = ['NUMBER']\r
+#    ierr, iarray = psspy.abusint(sid, flag, string)\r
+#\r
+#    string = ['NAME', 'EXNAME']\r
+#    ierr, carray = psspy.abuschar(sid, flag, string)\r
+#\r
+#    string = ['BASE']\r
+#    ierr, ret = psspy.abusreal(sid, flag, string)\r
+#\r
+#    BusDico = {}\r
+#    BusNominal = {}\r
+#    for i in range(len(iarray[0])):\r
+#        BusNum = iarray[0][i]\r
+#        BusDico[str(BusNum)] = carray[0][i].strip()\r
+#        BusNominal[BusDico[str(BusNum)]] = ret[0][i]    \r
+#\r
+#    #Extract Loads\r
+#    sid = -1 #all buses\r
+#    flag = 1 #all in service loads/generators (4 all loads/generators)\r
+#\r
+#\r
+#    string = ['NUMBER']\r
+#    ierr,iarray = psspy.aloadint(sid,flag,string)\r
+#\r
+#    string = ['NAME','ID','EXNAME']\r
+#    ierr,carray = psspy.aloadchar(sid,flag,string)\r
+#\r
+#    string = ['mvaact']\r
+#    ierr, xdata = psspy.aloadcplx(sid, flag, string)\r
+#\r
+#    LoadDico = {}  # [Bus name, load ID, extended bus name, bus number]\r
+#    for i in range(len(iarray[0])):\r
+#        idname = "Lo" + carray[1][i].strip()\r
+##        try: #id is an integer\r
+##            idname = "Lo" + str(int(carray[1][i]))\r
+##        except: #id is not an integer\r
+##            idname = "Lo" + carray[1][i]\r
+#        loadname = carray[0][i].strip()+ "__" + idname\r
+#        loadname = loadname.replace(" ","_")\r
+#        loadname = loadname.replace("-","_")\r
+#        loadname = loadname.replace(".","_")\r
+#        loadname = loadname.replace("&","and")\r
+#        try:\r
+#            int(loadname[0])\r
+#            loadname="_" + loadname\r
+#        except:\r
+#            pass\r
+#        LoadDico[loadname]= {}\r
+#        LoadDico[loadname]['NAME'] = carray[0][i].strip()\r
+#        LoadDico[loadname]['ID'] = carray[1][i]\r
+#        LoadDico[loadname]['EXNAME'] =carray[2][i]\r
+#        LoadDico[loadname]['NUMBER']=iarray[0][i]\r
+#        LoadDico[loadname]['P']=np.real(xdata)[0][i]\r
+#        LoadDico[loadname]['Q']=np.imag(xdata)[0][i]\r
+#\r
+#    #Extract Generators\r
+#    sid = -1 #all buses\r
+#    flag = 1 #all in service loads/generators (4 all loads/generators)\r
+#\r
+#    string = ['NUMBER']\r
+#    ierr,iarray = psspy.amachint(sid,flag,string)\r
+#\r
+#    string = ['NAME','ID','EXNAME']\r
+#    ierr,carray = psspy.amachchar(sid,flag,string)\r
+#\r
+#    rstrings = ['pgen','qgen','mbase','pmax','qmax','pmin','qmin']\r
+#    ierr, rarray = psspy.amachreal(sid, flag, rstrings)\r
+#\r
+#    MachineDico = {} # [Bus name, machine ID, extended bus name, bus number]\r
+#    for i in range(len(iarray[0])):\r
+#        idname = "Gr" + carray[1][i].strip()\r
+###        try:\r
+###            idname = "Gr" + str(int(carray[1][i]))\r
+###        except:\r
+###            idname = "Gr" + carray[1][i]\r
+#        machinename = carray[0][i].strip()+ "__" + idname\r
+#        machinename = machinename.replace(" ","_")\r
+#        machinename = machinename.replace("-","_")\r
+#        machinename = machinename.replace(".","_")\r
+#        machinename = machinename.replace("&","and")\r
+#        try:\r
+#            int(machinename[0])\r
+#            machinename="_" + machinename\r
+#        except:\r
+#            pass\r
+#        MachineDico[machinename]={}\r
+#        MachineDico[machinename]['NAME'] = carray[0][i].strip()\r
+#        MachineDico[machinename]['ID'] = carray[1][i]\r
+#        MachineDico[machinename]['EXNAME'] =carray[2][i]\r
+#        MachineDico[machinename]['NUMBER']=iarray[0][i]\r
+#        MachineDico[machinename]['P']=rarray[0][i]\r
+#        MachineDico[machinename]['Q']=rarray[1][i]\r
+#        MachineDico[machinename]['PMAX']=rarray[3][i]\r
+#        MachineDico[machinename]['QMAX']=rarray[4][i]\r
+#        MachineDico[machinename]['PMIN']=rarray[5][i]\r
+#        MachineDico[machinename]['QMIN']=rarray[6][i]\r
+#\r
+#    #Extract Motors\r
+#    sid = -1 #all buses\r
+#    flag = 1 #all in service loads/generators (4 all loads/generators)\r
+#\r
+#    string = ['NUMBER','PSETCODE','BASECODE']\r
+#    ierr,iarray = psspy.aindmacint(sid,flag,string)\r
+#\r
+#    string = ['NAME','ID','EXNAME']\r
+#    ierr,carray = psspy.aindmacchar(sid,flag,string)\r
+#\r
+#    rstrings = ['psetpoint','mbase','p','q']\r
+#    ierr, rarray = psspy.aindmacreal(sid, flag, rstrings)\r
+#\r
+#\r
+#    MotorDico = {} # [Bus name, machine ID, extended bus name, bus number]\r
+#    for i in range(len(iarray[0])):\r
+#        idname = "Mo" + carray[1][i].strip()\r
+###        try:\r
+###            idname = "Gr" + str(int(carray[1][i]))\r
+###        except:\r
+###            idname = "Gr" + carray[1][i]\r
+#        motorname = carray[0][i].strip()+ "__" + idname\r
+#        motorname = motorname.replace(" ","_")\r
+#        motorname = motorname.replace("-","_")\r
+#        motorname = motorname.replace(".","_")\r
+#        motorname = motorname.replace("&","and")\r
+#        try:\r
+#            int(motorname[0])\r
+#            motorname="_" + motorname\r
+#        except:\r
+#            pass\r
+#        MotorDico[motorname]={}\r
+#        MotorDico[motorname]['NAME'] = carray[0][i].strip()\r
+#        MotorDico[motorname]['ID'] = carray[1][i]\r
+#        MotorDico[motorname]['EXNAME'] =carray[2][i]\r
+#        MotorDico[motorname]['NUMBER']=iarray[0][i]\r
+#        MotorDico[motorname]['PSETCODE']=iarray[1][i]\r
+#        MotorDico[motorname]['BASECODE']=iarray[2][i]\r
+#        MotorDico[motorname]['PSETPOINT']=rarray[0][i]\r
+#        MotorDico[motorname]['MBASE']=rarray[1][i]\r
+#        MotorDico[motorname]['P']=rarray[2][i]\r
+#        MotorDico[motorname]['Q']=rarray[3][i]\r
+#\r
+#\r
+#    #Extract Lignes\r
+#    sid = -1\r
+#    owner = 1\r
+#    ties = 1\r
+#    flag = 2 #6 for two-winding transfos\r
+#    entry = 1 #each branch once, not both directions\r
+#    string = ['FROMNUMBER','TONUMBER']\r
+#    ierr,iarray = psspy.abrnint(sid,owner,ties,flag,entry,string)\r
+#    string = ['FROMNAME','TONAME','FROMEXNAME','TOEXNAME','ID']\r
+#    ierr,carray = psspy.abrnchar(sid,owner,ties,flag,entry,string)\r
+#\r
+#    LineDico = {} #[linename, Bus name 1, Bus name 2, ID, extended bus name 1, extended bus name 2, bus number 1, bus number 2]\r
+#    for i in range(len(iarray[0])):\r
+#        idname = carray[4][i].strip()\r
+#        #idname = carray[4][i]\r
+#        if '@' in idname:\r
+#            idname = idname.replace('@','Br')\r
+#        elif '*' in idname:\r
+#            idname = idname.replace('*','Sw')\r
+#        else:\r
+#            try:\r
+#                idname = 'Li' + str(int(idname))\r
+#            except:\r
+#                idname = 'Li' + idname\r
+#        linename =carray[0][i].strip() + "__" + carray[1][i].strip() + "__" + idname\r
+#        linename = linename.replace(" ","_")\r
+#        linename = linename.replace("-","_")\r
+#        linename = linename.replace(".","_")\r
+#        linename = linename.replace("&","and")\r
+#        try:\r
+#            int(linename[0])\r
+#            linename="_" + linename\r
+#        except:\r
+#            pass\r
+#        if NoBreakersandSwitches:\r
+#            if 'Br' not in idname and 'Sw' not in idname:\r
+#                LineDico[linename]={}\r
+#                LineDico[linename]['FROMNAME']=carray[0][i].strip()\r
+#                LineDico[linename]['TONAME']=carray[1][i].strip()\r
+#                LineDico[linename]['ID']=carray[4][i]\r
+#                LineDico[linename]['FROMEXNAME']=carray[2][i]\r
+#                LineDico[linename]['TOEXNAME']=carray[3][i]\r
+#                LineDico[linename]['FROMNUMBER']=iarray[0][i]\r
+#                LineDico[linename]['TONUMBER']=iarray[1][i]\r
+#\r
+#    #Extract Branches\r
+#    sid = -1\r
+#    owner = 1\r
+#    ties = 1\r
+#    flag = 4 # lines & transfos\r
+#    entry = 1 #each branch once, not both directions\r
+#    string = ['FROMNUMBER','TONUMBER']\r
+#    ierr, iarray = psspy.abrnint(sid, owner, ties, flag, entry, string)\r
+#    string = ['FROMNAME','TONAME','FROMEXNAME','TOEXNAME','ID']\r
+#    ierr, carray = psspy.abrnchar(sid, owner, ties, flag, entry, string)\r
+#\r
+#    BranchesDico = {} #[linename, Bus name 1, Bus name 2, ID, extended bus name 1, extended bus name 2, bus number 1, bus number 2]\r
+#    for i in range(len(iarray[0])):\r
+#        idname = carray[4][i]\r
+#        if '@' in idname:\r
+#            idname = idname.replace('@','Br')\r
+#        elif '*' in idname:\r
+#            idname = idname.replace('*','Sw')\r
+#        else:\r
+#            idname = 'LI' + idname\r
+#        linename = carray[0][i].strip() + "__" + carray[1][i].strip() + "__" + idname\r
+#        linename = linename.replace(" ","_")\r
+#        linename = linename.replace("-","_")\r
+#        linename = linename.replace(".","_")\r
+#        linename = linename.replace("&","and")\r
+#        try:\r
+#            int(linename[0])\r
+#            linename = "_" + linename\r
+#        except:\r
+#            pass\r
+#        if linename[-1] == '_':\r
+#            linename = linename[:-1]\r
+#        BranchesDico[linename] = {}\r
+#        BranchesDico[linename]['FROMNAME'] = carray[0][i].strip()\r
+#        BranchesDico[linename]['TONAME'] = carray[1][i].strip()\r
+#        BranchesDico[linename]['ID'] = carray[4][i]\r
+#        BranchesDico[linename]['FROMEXNAME'] = carray[2][i]\r
+#        BranchesDico[linename]['TOEXNAME'] = carray[3][i]\r
+#        BranchesDico[linename]['FROMNUMBER'] = iarray[0][i]\r
+#        BranchesDico[linename]['TONUMBER'] = iarray[1][i]\r
+#\r
+#    \r
+#    #Extract Transfos\r
+#    sid = -1\r
+#    owner = 1\r
+#    ties = 1\r
+#    flag = 6 #two-winding transfos\r
+#    entry = 1 #each branch once, not both directions\r
+#    string = ['FROMNUMBER','TONUMBER']\r
+#    ierr,iarray = psspy.abrnint(sid,owner,ties,flag,entry,string)\r
+#    string = ['FROMNAME','TONAME','FROMEXNAME','TOEXNAME','ID']\r
+#    ierr,carray = psspy.abrnchar(sid,owner,ties,flag,entry,string)\r
+#\r
+#    TfoDico = {} #[linename, Bus name 1, Bus name 2, machine ID, extended bus name 1, extended bus name 2, bus number 1, bus number 2]\r
+#    for i in range(len(iarray[0])):\r
+#        idname = 'Tr' + carray[4][i].strip()\r
+###        try:\r
+###            idname = 'Tr' + str(int(carray[4][i]))\r
+###        except:\r
+###            idname = 'Tr' + carray[4][i]\r
+#        tfoname = carray[0][i].strip() + "__" + carray[1][i].strip() + "__" + idname\r
+#        tfoname = tfoname.replace(" ","_")\r
+#        tfoname = tfoname.replace("-","_")\r
+#        tfoname = tfoname.replace(".","_")\r
+#        tfoname = tfoname.replace("&","and")\r
+#        try:\r
+#            int(tfoname[0])\r
+#            tfoname="_" + tfoname\r
+#        except:\r
+#            pass\r
+#        TfoDico[tfoname]={}\r
+#        TfoDico[tfoname]['FROMNAME']=carray[0][i].strip()\r
+#        TfoDico[tfoname]['TONAME']=carray[1][i].strip()\r
+#        TfoDico[tfoname]['ID']=carray[4][i]\r
+#        TfoDico[tfoname]['FROMEXNAME']=carray[2][i]\r
+#        TfoDico[tfoname]['TOEXNAME']=carray[3][i]\r
+#        TfoDico[tfoname]['FROMNUMBER']=iarray[0][i]\r
+#        TfoDico[tfoname]['TONUMBER']=iarray[1][i]\r
+#        TfoDico[tfoname]['#WIND']=2\r
+#    print "Read Transfos"\r
+#\r
+#    #Extract 3 winding Transfos\r
+#    sid = -1 #assume a subsystem containing all buses in working case\r
+#    owner_3flow = 1 #1 = use bus ownership 2 = use tfo ownership\r
+#    ties_3flow = 3 #ignored bc sid is negative. 3 = interior subsystem and subsystem tie 3 winding transformers \r
+#    flag=3 #all 3 winding transfo windings\r
+#    string = ['wind1number','wind2number','wind3number']\r
+#    ierr,iarray = psspy.awndint(sid,owner,ties,flag,entry,string)\r
+#    string = ['wind1name','wind2name','wind3name','wind1exname','wind2exname','wind3exname','id']\r
+#    ierr,carray = psspy.awndchar(sid,owner,ties,flag,entry,string)\r
+#\r
+#    #[Bus name 1, Bus name 2, Bus name 3, machine ID, extended bus name 1, extended bus name 2, extended bus name 3, bus number 1, bus number 2, bus number 3]\r
+#    for i in range(len(iarray[0])):\r
+#        idname = 'Tr' + carray[6][i].strip()\r
+###        try:\r
+###            idname = 'Tr' + str(int(carray[4][i]))\r
+###        except:\r
+###            idname = 'Tr' + carray[4][i]\r
+#        tfoname = carray[0][i].strip() + "__" + carray[1][i].strip() + "__" + carray[2][i].strip() + "__" + idname\r
+#        tfoname = tfoname.replace(" ","_")\r
+#        tfoname = tfoname.replace("-","_")\r
+#        tfoname = tfoname.replace(".","_")\r
+#        tfoname = tfoname.replace("&","and")\r
+#        try:\r
+#            int(tfoname[0])\r
+#            tfoname="_" + tfoname\r
+#        except:\r
+#            pass\r
+#        TfoDico[tfoname]={}\r
+#        TfoDico[tfoname]['FROMNAME']=carray[0][i].strip()\r
+#        TfoDico[tfoname]['TONAME']=carray[1][i].strip()\r
+#        TfoDico[tfoname]['3NAME']=carray[2][i].strip()\r
+#        TfoDico[tfoname]['ID']=carray[6][i]\r
+#        TfoDico[tfoname]['FROMEXNAME']=carray[3][i]\r
+#        TfoDico[tfoname]['TOEXNAME']=carray[4][i]\r
+#        TfoDico[tfoname]['3EXNAME']=carray[5][i]\r
+#        TfoDico[tfoname]['FROMNUMBER']=iarray[0][i]\r
+#        TfoDico[tfoname]['TONUMBER']=iarray[1][i]\r
+#        TfoDico[tfoname]['3NUMBER']=iarray[2][i]\r
+#        TfoDico[tfoname]['#WIND']=3\r
+#    print "Read 3-Winding Transfos"\r
+#\r
+#    return MachineDico, LoadDico, LineDico, TfoDico, MotorDico, BusDico, BranchesDico, BusNominal\r
+#\r
+#\r
+##NetworkFile = r'\\Atlas.edf.fr\co\dpit-cist-siege\Der.012\Dpt-Etudes-Reseaux.001\Outils DER - Divers (excel, codes python, etc.)\PSEN_V15\Example\Results\N_20160705_17h36m34\package0_N_20160705_17h36m34\BaseCase.sav'\r
+##PSSE_PATH=r"C:\Program Files (x86)\PTI\PSSE33\PSSBIN"\r
+##sys.path.append(PSSE_PATH)\r
+##os.environ['PATH'] +=  ';' + PSSE_PATH + ';'\r
+##getNominalkV(NetworkFile)\r
+##updateConts()\r
diff --git a/OldCodes/ProcessOutputs_Eficas/ExtractGeneratorLoadLineandTransfoDicoProcess.py b/OldCodes/ProcessOutputs_Eficas/ExtractGeneratorLoadLineandTransfoDicoProcess.py
new file mode 100644 (file)
index 0000000..653e23f
--- /dev/null
@@ -0,0 +1,631 @@
+import os\r
+import sys\r
+import numpy as np\r
+import copy\r
+\r
+path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','TreatOutputs'))\r
+sys.path.append(path1)\r
+import Options\r
+\r
+\r
+def getNominalkV(NetworkFile):\r
+\r
+    print "version en dur"\r
+\r
+    BusList=[11.0, 30.0, 90.0]\r
+    LinesList=[30.0, 90.0]\r
+    TransfosList=['11.0 - 30.0', '11.0 - 90.0', '30.0 - 90.0', '90.0 - 30.0']\r
+    return BusList, LinesList, TransfosList\r
+\r
+\r
+\r
+\r
+\r
+    import psspy\r
+    import redirect\r
+\r
+    psspy.psseinit(80000)\r
+    redirect.psse2py()\r
+    psspy.progress_output(6)\r
+\r
+    psspy.case(NetworkFile)\r
+    # Buses\r
+\r
+    sid = -1\r
+    flag = 2\r
+    ierr, ret = psspy.abusreal(sid, flag, ['BASE'])\r
+    Options.BusBase = ret[0]\r
+\r
+    ierr, carray = psspy.abuschar(sid, flag, ['NAME'])\r
+    Options.BusBaseList = {}\r
+    for i in range(len(carray[0])):\r
+        Options.BusBaseList[carray[0][i]] = ret[0][i]\r
+\r
+    BusList = []\r
+    for item in Options.BusBase:\r
+        if item not in BusList:\r
+            BusList.append(item)\r
+    BusList = sorted(BusList)\r
+\r
+    # Lines\r
+\r
+    owner = 1\r
+    ties = 1\r
+    flag = 2\r
+    entry = 1\r
+    string = ['FROMNAME', 'TONAME']\r
+    ierr, carray = psspy.abrnchar(sid, owner, ties, flag, entry, string)\r
+\r
+    for i in range(len(carray[0])):\r
+        nom = Options.BusBaseList[carray[0][i]]\r
+        name = carray[0][i] + '-' + carray[1][i]\r
+        Options.LinesBaseList[name] = nom\r
+        Options.LinesBase.append(nom)\r
+\r
+    LinesList = []\r
+    for item in Options.LinesBase:\r
+        if item not in LinesList:\r
+            LinesList.append(item)\r
+    LinesList = sorted(LinesList)\r
+\r
+    # Transfos\r
+\r
+    owner = 1\r
+    ties = 1\r
+    flag = 6\r
+    entry = 1\r
+    string = ['FROMNAME', 'TONAME']\r
+    ierr, carray = psspy.abrnchar(sid, owner, ties, flag, entry, string)\r
+\r
+    for i in range(len(carray[0])):\r
+        nom1 = Options.BusBaseList[carray[0][i]]\r
+        nom2 = Options.BusBaseList[carray[1][i]]\r
+        name = carray[0][i] + '-' + carray[1][i]\r
+        Options.TransfoBaseList[name] = [nom1, nom2]\r
+        Options.TransfoBase.append([nom1, nom2])\r
+\r
+    TransfosList = []\r
+    for item in Options.TransfoBase:\r
+        string = str(item[0]) + ' - ' + str(item[1])\r
+        if string not in TransfosList:\r
+            TransfosList.append(string)\r
+    TransfosList = sorted(TransfosList)\r
+\r
+    # Generators\r
+\r
+    sid = -1 #all buses\r
+    flag = 1 #all in service loads/generators (4 all loads/generators)\r
+\r
+    string = ['NUMBER']\r
+    ierr,iarray = psspy.amachint(sid,flag,string)\r
+\r
+    string = ['NAME','ID']\r
+    ierr,carray = psspy.amachchar(sid,flag,string)\r
+\r
+    for i in range(len(iarray[0])):\r
+        idname = "GR" + carray[1][i]\r
+        machinename = carray[0][i].strip()+ "__" + idname\r
+        machinename = machinename.replace(" ","_")\r
+        machinename = machinename.replace("-","_")\r
+        machinename = machinename.replace(".","_")\r
+        machinename = machinename.replace("&","and")\r
+        try:\r
+            int(machinename[0])\r
+            machinename = "_" + machinename\r
+        except:\r
+            pass\r
+        Options.GenBaseList[machinename] = iarray[0][i]\r
+\r
+    return BusList, LinesList, TransfosList\r
+\r
+def getBusNominalkV(NetworkFile):\r
+    import psspy\r
+    import redirect\r
+\r
+    psspy.psseinit(80000)\r
+    redirect.psse2py()\r
+    psspy.progress_output(6)\r
+\r
+    psspy.case(NetworkFile)\r
+\r
+    sid = -1\r
+    flag = 2\r
+    ierr, ret = psspy.abusreal(sid, flag, ['BASE'])\r
+    Options.BusBase = ret[0]\r
+\r
+    ierr, carray = psspy.abuschar(sid, flag, ['NAME'])\r
+    buses = {}\r
+    for i in range(len(carray[0])):\r
+        buses[carray[0][i]] = ret[0][i]\r
+    Options.BusNames = buses\r
+    ret = []\r
+    for item in Options.BusBase:\r
+        if item not in ret:\r
+            ret.append(item)\r
+    return sorted(ret)\r
+\r
+def updateConts():\r
+    Options.ContFullList = []\r
+    tmp = Options.BusBaseList\r
+    tmp.sort()\r
+    for key in tmp:\r
+        Options.ContFullList.append(key)\r
+    tmp = Options.GenBaseList\r
+    tmp.sort()\r
+    for key in tmp:\r
+        Options.ContFullList.append(key)\r
+    tmp = Options.LinesBaseList\r
+    tmp.sort()\r
+    for key in tmp:\r
+        Options.ContFullList.append(key)\r
+    tmp = Options.TransfoBaseList\r
+    tmp.sort()\r
+    for key in tmp:\r
+        Options.ContFullList.append(key)\r
+    print Options.ContFullList\r
+    return Options.ContFullList\r
+\r
+def newContingency(MatList):\r
+    Options.CustomContingencies.append(MatList)\r
+\r
+def checkIfBorder(graph, key, depth, tmplist):\r
+    #print "in checkifBorder"\r
+    #print "depth ",depth\r
+    #print graph\r
+    if key in tmplist:\r
+        return True\r
+    if depth == 0:\r
+        return False\r
+    NonBorders = 0\r
+    for item in graph[key]:\r
+        if not checkIfBorder(graph, item, depth - 1, tmplist):\r
+            NonBorders += 1\r
+    if NonBorders < 2: # A generator is considered as isolated if it has less than two non-borders neighbours\r
+        if key not in tmplist:\r
+            tmplist.append(key)\r
+        return True\r
+    return False\r
+\r
+def getTrueLines(NetworkFile):\r
+    import psspy\r
+    import redirect\r
+\r
+    psspy.psseinit(80000)\r
+    redirect.psse2py()\r
+    psspy.progress_output(6)\r
+\r
+    psspy.case(NetworkFile)\r
+\r
+    sid = -1\r
+    owner = 1\r
+    ties = 1\r
+    flag = 4 # 6 for two-winding transfos\r
+    entry = 1 #each branch once, not both directions\r
+    string = ['FROMNAME', 'TONAME', 'ID']\r
+    ierr, iarray = psspy.abrnchar(sid, owner, ties, flag, entry, string)\r
+    string = ['FROMNUMBER', 'TONUMBER']\r
+    ierr, carray = psspy.abrnint(sid, owner, ties, flag, entry, string)\r
+\r
+    lst = []\r
+    tmplist = []\r
+    try:\r
+        for i in range(len(carray[0])):\r
+            if carray[0][i] not in lst and carray[0][i] not in tmplist:\r
+                tmplist.append(carray[0][i])\r
+            elif carray[0][i] not in lst and carray[0][i] in tmplist:\r
+                tmplist.remove(carray[0][i])\r
+                lst.append(carray[0][i])\r
+            if carray[1][i] not in lst and carray[1][i] not in tmplist:\r
+                tmplist.append(carray[1][i])\r
+            elif carray[1][i] not in lst and carray[1][i] in tmplist:\r
+                tmplist.remove(carray[1][i])\r
+                lst.append(carray[1][i])\r
+    except:\r
+        pass\r
+\r
+    # Create the graph\r
+    graph = {}\r
+    for i in range(len(carray[0])):\r
+        try:\r
+            if graph[carray[0][i]]:\r
+                pass\r
+        except:\r
+            graph[carray[0][i]] = []\r
+        if carray[1][i] not in graph[carray[0][i]]:\r
+            graph[carray[0][i]].append(carray[1][i])\r
+        try:\r
+            if graph[carray[1][i]]:\r
+                pass\r
+        except:\r
+            graph[carray[1][i]] = []\r
+        if carray[0][i] not in graph[carray[1][i]]:\r
+            graph[carray[1][i]].append(carray[0][i])\r
+\r
+\r
+    # Search it twice, to ensure everything is mapped\r
+    for key in sorted(graph):\r
+        #print key\r
+        checkIfBorder(graph, key, Options.RecursiveDepth, tmplist)\r
+        #print "out of Checkif 0"\r
+        #print ""\r
+    for key in reversed(sorted(graph)):\r
+        checkIfBorder(graph, key, Options.RecursiveDepth, tmplist)\r
+\r
+    Options.IsolatedGenList = []\r
+    # Unfold it\r
+    for i in range(len(carray[0])):\r
+        if carray[0][i] in tmplist:\r
+            if iarray[0][i] not in Options.IsolatedGenList:\r
+                Options.IsolatedGenList.append(iarray[0][i])\r
+        if carray[1][i] in tmplist:\r
+            if iarray[1][i] not in Options.IsolatedGenList:\r
+                Options.IsolatedGenList.append(iarray[1][i])\r
+\r
+    lines = []\r
+    outLines = []\r
+    for i in range(len(iarray[0])):\r
+        name = iarray[0][i] + '-' + iarray[1][i]\r
+        if '@' in iarray[2][i] or '*' in iarray[2][i]:\r
+            outLines.append(name)\r
+        elif iarray[0][i] not in Options.IsolatedGenList and iarray[1][i] not in Options.IsolatedGenList:\r
+            lines.append(name)\r
+        else:\r
+            outLines.append(name)\r
+    Options.TrueLines = lines\r
+\r
+    return lines\r
+\r
+NoBreakersandSwitches = True\r
+\r
+def ExtractGeneratorLoadLineandTransfoDico(NetworkFile,PSSE_PATH):\r
\r
+    print "version en dur"\r
+    MachineDico={'M1':'M1','M2':'M2','M3':'M3','M4':'M4','B6_BUS13__1':'AZ','CSPRING__1':'DD','GT12B__1':'ER','BSTMB__1':'JJ'}\r
+    LoadDico={'C1':'C1','C2':'C2','C3':'C3','C4':'C4'}\r
+    LineDico={'L1':'L1','L2':'L2','L3':'L3','L4':'L4'}\r
+    TfoDico={'T1':'T1','T2':'T2','T3':'T3','T4':'T4'}\r
+    MDico={'MZ1':'MZ1','MZ2':'MZ2','MZ3':'MZ3','MZ4':'MZ4'}\r
+    BranchesDico={'B11':'B1','B2':'B2','B3':'B3','B4':'B4'}\r
+    BusNomial={'Bus1':'Bus1','Bus2':'Bus2','Bus3':'Bus3','Bus4':'Bus4'}\r
+\r
+    return MachineDico, LoadDico, LineDico, TfoDico, MotorDico, BusDico, BranchesDico, BusNominal\r
+\r
+\r
+    import os\r
+    import sys\r
+    import numpy as np\r
+\r
+    sys.path.append(PSSE_PATH)\r
+    os.environ['PATH'] +=  ';' + PSSE_PATH + ';'\r
+\r
+    import psspy\r
+    import redirect\r
+\r
+    ###initialization PSSE\r
+    psspy.psseinit(10000)\r
+    _i=psspy.getdefaultint()\r
+    _f=psspy.getdefaultreal()\r
+    _s=psspy.getdefaultchar()\r
+    redirect.psse2py()\r
+\r
+    # Silent execution of PSSe\r
+    islct=6 # 6=no output; 1=standard\r
+    psspy.progress_output(islct)\r
+\r
+    #open Network File\r
+    psspy.case(NetworkFile)\r
+\r
+    # Extract Buses\r
+    sid = -1 # all buses\r
+    flag = 2\r
+    string = ['NUMBER']\r
+    ierr, iarray = psspy.abusint(sid, flag, string)\r
+\r
+    string = ['NAME', 'EXNAME']\r
+    ierr, carray = psspy.abuschar(sid, flag, string)\r
+\r
+    string = ['BASE']\r
+    ierr, ret = psspy.abusreal(sid, flag, string)\r
+\r
+    BusDico = {}\r
+    BusNominal = {}\r
+    for i in range(len(iarray[0])):\r
+        BusNum = iarray[0][i]\r
+        BusDico[str(BusNum)] = carray[0][i].strip()\r
+        BusNominal[BusDico[str(BusNum)]] = ret[0][i]    \r
+\r
+    #Extract Loads\r
+    sid = -1 #all buses\r
+    flag = 1 #all in service loads/generators (4 all loads/generators)\r
+\r
+\r
+    string = ['NUMBER']\r
+    ierr,iarray = psspy.aloadint(sid,flag,string)\r
+\r
+    string = ['NAME','ID','EXNAME']\r
+    ierr,carray = psspy.aloadchar(sid,flag,string)\r
+\r
+    string = ['mvaact']\r
+    ierr, xdata = psspy.aloadcplx(sid, flag, string)\r
+\r
+    LoadDico = {}  # [Bus name, load ID, extended bus name, bus number]\r
+    for i in range(len(iarray[0])):\r
+        idname = "Lo" + carray[1][i].strip()\r
+#        try: #id is an integer\r
+#            idname = "Lo" + str(int(carray[1][i]))\r
+#        except: #id is not an integer\r
+#            idname = "Lo" + carray[1][i]\r
+        loadname = carray[0][i].strip()+ "__" + idname\r
+        loadname = loadname.replace(" ","_")\r
+        loadname = loadname.replace("-","_")\r
+        loadname = loadname.replace(".","_")\r
+        loadname = loadname.replace("&","and")\r
+        try:\r
+            int(loadname[0])\r
+            loadname="_" + loadname\r
+        except:\r
+            pass\r
+        LoadDico[loadname]= {}\r
+        LoadDico[loadname]['NAME'] = carray[0][i].strip()\r
+        LoadDico[loadname]['ID'] = carray[1][i]\r
+        LoadDico[loadname]['EXNAME'] =carray[2][i]\r
+        LoadDico[loadname]['NUMBER']=iarray[0][i]\r
+        LoadDico[loadname]['P']=np.real(xdata)[0][i]\r
+        LoadDico[loadname]['Q']=np.imag(xdata)[0][i]\r
+\r
+    #Extract Generators\r
+    sid = -1 #all buses\r
+    flag = 1 #all in service loads/generators (4 all loads/generators)\r
+\r
+    string = ['NUMBER']\r
+    ierr,iarray = psspy.amachint(sid,flag,string)\r
+\r
+    string = ['NAME','ID','EXNAME']\r
+    ierr,carray = psspy.amachchar(sid,flag,string)\r
+\r
+    rstrings = ['pgen','qgen','mbase','pmax','qmax','pmin','qmin']\r
+    ierr, rarray = psspy.amachreal(sid, flag, rstrings)\r
+\r
+    MachineDico = {} # [Bus name, machine ID, extended bus name, bus number]\r
+    for i in range(len(iarray[0])):\r
+        idname = "Gr" + carray[1][i].strip()\r
+##        try:\r
+##            idname = "Gr" + str(int(carray[1][i]))\r
+##        except:\r
+##            idname = "Gr" + carray[1][i]\r
+        machinename = carray[0][i].strip()+ "__" + idname\r
+        machinename = machinename.replace(" ","_")\r
+        machinename = machinename.replace("-","_")\r
+        machinename = machinename.replace(".","_")\r
+        machinename = machinename.replace("&","and")\r
+        try:\r
+            int(machinename[0])\r
+            machinename="_" + machinename\r
+        except:\r
+            pass\r
+        MachineDico[machinename]={}\r
+        MachineDico[machinename]['NAME'] = carray[0][i].strip()\r
+        MachineDico[machinename]['ID'] = carray[1][i]\r
+        MachineDico[machinename]['EXNAME'] =carray[2][i]\r
+        MachineDico[machinename]['NUMBER']=iarray[0][i]\r
+        MachineDico[machinename]['P']=rarray[0][i]\r
+        MachineDico[machinename]['Q']=rarray[1][i]\r
+        MachineDico[machinename]['PMAX']=rarray[3][i]\r
+        MachineDico[machinename]['QMAX']=rarray[4][i]\r
+        MachineDico[machinename]['PMIN']=rarray[5][i]\r
+        MachineDico[machinename]['QMIN']=rarray[6][i]\r
+\r
+    #Extract Motors\r
+    sid = -1 #all buses\r
+    flag = 1 #all in service loads/generators (4 all loads/generators)\r
+\r
+    string = ['NUMBER','PSETCODE','BASECODE']\r
+    ierr,iarray = psspy.aindmacint(sid,flag,string)\r
+\r
+    string = ['NAME','ID','EXNAME']\r
+    ierr,carray = psspy.aindmacchar(sid,flag,string)\r
+\r
+    rstrings = ['psetpoint','mbase','p','q']\r
+    ierr, rarray = psspy.aindmacreal(sid, flag, rstrings)\r
+\r
+\r
+    MotorDico = {} # [Bus name, machine ID, extended bus name, bus number]\r
+    for i in range(len(iarray[0])):\r
+        idname = "Mo" + carray[1][i].strip()\r
+##        try:\r
+##            idname = "Gr" + str(int(carray[1][i]))\r
+##        except:\r
+##            idname = "Gr" + carray[1][i]\r
+        motorname = carray[0][i].strip()+ "__" + idname\r
+        motorname = motorname.replace(" ","_")\r
+        motorname = motorname.replace("-","_")\r
+        motorname = motorname.replace(".","_")\r
+        motorname = motorname.replace("&","and")\r
+        try:\r
+            int(motorname[0])\r
+            motorname="_" + motorname\r
+        except:\r
+            pass\r
+        MotorDico[motorname]={}\r
+        MotorDico[motorname]['NAME'] = carray[0][i].strip()\r
+        MotorDico[motorname]['ID'] = carray[1][i]\r
+        MotorDico[motorname]['EXNAME'] =carray[2][i]\r
+        MotorDico[motorname]['NUMBER']=iarray[0][i]\r
+        MotorDico[motorname]['PSETCODE']=iarray[1][i]\r
+        MotorDico[motorname]['BASECODE']=iarray[2][i]\r
+        MotorDico[motorname]['PSETPOINT']=rarray[0][i]\r
+        MotorDico[motorname]['MBASE']=rarray[1][i]\r
+        MotorDico[motorname]['P']=rarray[2][i]\r
+        MotorDico[motorname]['Q']=rarray[3][i]\r
+\r
+\r
+    #Extract Lignes\r
+    sid = -1\r
+    owner = 1\r
+    ties = 1\r
+    flag = 2 #6 for two-winding transfos\r
+    entry = 1 #each branch once, not both directions\r
+    string = ['FROMNUMBER','TONUMBER']\r
+    ierr,iarray = psspy.abrnint(sid,owner,ties,flag,entry,string)\r
+    string = ['FROMNAME','TONAME','FROMEXNAME','TOEXNAME','ID']\r
+    ierr,carray = psspy.abrnchar(sid,owner,ties,flag,entry,string)\r
+\r
+    LineDico = {} #[linename, Bus name 1, Bus name 2, ID, extended bus name 1, extended bus name 2, bus number 1, bus number 2]\r
+    for i in range(len(iarray[0])):\r
+        idname = carray[4][i].strip()\r
+        #idname = carray[4][i]\r
+        if '@' in idname:\r
+            idname = idname.replace('@','Br')\r
+        elif '*' in idname:\r
+            idname = idname.replace('*','Sw')\r
+        else:\r
+            try:\r
+                idname = 'Li' + str(int(idname))\r
+            except:\r
+                idname = 'Li' + idname\r
+        linename =carray[0][i].strip() + "__" + carray[1][i].strip() + "__" + idname\r
+        linename = linename.replace(" ","_")\r
+        linename = linename.replace("-","_")\r
+        linename = linename.replace(".","_")\r
+        linename = linename.replace("&","and")\r
+        try:\r
+            int(linename[0])\r
+            linename="_" + linename\r
+        except:\r
+            pass\r
+        if NoBreakersandSwitches:\r
+            if 'Br' not in idname and 'Sw' not in idname:\r
+                LineDico[linename]={}\r
+                LineDico[linename]['FROMNAME']=carray[0][i].strip()\r
+                LineDico[linename]['TONAME']=carray[1][i].strip()\r
+                LineDico[linename]['ID']=carray[4][i]\r
+                LineDico[linename]['FROMEXNAME']=carray[2][i]\r
+                LineDico[linename]['TOEXNAME']=carray[3][i]\r
+                LineDico[linename]['FROMNUMBER']=iarray[0][i]\r
+                LineDico[linename]['TONUMBER']=iarray[1][i]\r
+\r
+    #Extract Branches\r
+    sid = -1\r
+    owner = 1\r
+    ties = 1\r
+    flag = 4 # lines & transfos\r
+    entry = 1 #each branch once, not both directions\r
+    string = ['FROMNUMBER','TONUMBER']\r
+    ierr, iarray = psspy.abrnint(sid, owner, ties, flag, entry, string)\r
+    string = ['FROMNAME','TONAME','FROMEXNAME','TOEXNAME','ID']\r
+    ierr, carray = psspy.abrnchar(sid, owner, ties, flag, entry, string)\r
+\r
+    BranchesDico = {} #[linename, Bus name 1, Bus name 2, ID, extended bus name 1, extended bus name 2, bus number 1, bus number 2]\r
+    for i in range(len(iarray[0])):\r
+        idname = carray[4][i]\r
+        if '@' in idname:\r
+            idname = idname.replace('@','Br')\r
+        elif '*' in idname:\r
+            idname = idname.replace('*','Sw')\r
+        else:\r
+            idname = 'LI' + idname\r
+        linename = carray[0][i].strip() + "__" + carray[1][i].strip() + "__" + idname\r
+        linename = linename.replace(" ","_")\r
+        linename = linename.replace("-","_")\r
+        linename = linename.replace(".","_")\r
+        linename = linename.replace("&","and")\r
+        try:\r
+            int(linename[0])\r
+            linename = "_" + linename\r
+        except:\r
+            pass\r
+        if linename[-1] == '_':\r
+            linename = linename[:-1]\r
+        BranchesDico[linename] = {}\r
+        BranchesDico[linename]['FROMNAME'] = carray[0][i].strip()\r
+        BranchesDico[linename]['TONAME'] = carray[1][i].strip()\r
+        BranchesDico[linename]['ID'] = carray[4][i]\r
+        BranchesDico[linename]['FROMEXNAME'] = carray[2][i]\r
+        BranchesDico[linename]['TOEXNAME'] = carray[3][i]\r
+        BranchesDico[linename]['FROMNUMBER'] = iarray[0][i]\r
+        BranchesDico[linename]['TONUMBER'] = iarray[1][i]\r
+\r
+    \r
+    #Extract Transfos\r
+    sid = -1\r
+    owner = 1\r
+    ties = 1\r
+    flag = 6 #two-winding transfos\r
+    entry = 1 #each branch once, not both directions\r
+    string = ['FROMNUMBER','TONUMBER']\r
+    ierr,iarray = psspy.abrnint(sid,owner,ties,flag,entry,string)\r
+    string = ['FROMNAME','TONAME','FROMEXNAME','TOEXNAME','ID']\r
+    ierr,carray = psspy.abrnchar(sid,owner,ties,flag,entry,string)\r
+\r
+    TfoDico = {} #[linename, Bus name 1, Bus name 2, machine ID, extended bus name 1, extended bus name 2, bus number 1, bus number 2]\r
+    for i in range(len(iarray[0])):\r
+        idname = 'Tr' + carray[4][i].strip()\r
+##        try:\r
+##            idname = 'Tr' + str(int(carray[4][i]))\r
+##        except:\r
+##            idname = 'Tr' + carray[4][i]\r
+        tfoname = carray[0][i].strip() + "__" + carray[1][i].strip() + "__" + idname\r
+        tfoname = tfoname.replace(" ","_")\r
+        tfoname = tfoname.replace("-","_")\r
+        tfoname = tfoname.replace(".","_")\r
+        tfoname = tfoname.replace("&","and")\r
+        try:\r
+            int(tfoname[0])\r
+            tfoname="_" + tfoname\r
+        except:\r
+            pass\r
+        TfoDico[tfoname]={}\r
+        TfoDico[tfoname]['FROMNAME']=carray[0][i].strip()\r
+        TfoDico[tfoname]['TONAME']=carray[1][i].strip()\r
+        TfoDico[tfoname]['ID']=carray[4][i]\r
+        TfoDico[tfoname]['FROMEXNAME']=carray[2][i]\r
+        TfoDico[tfoname]['TOEXNAME']=carray[3][i]\r
+        TfoDico[tfoname]['FROMNUMBER']=iarray[0][i]\r
+        TfoDico[tfoname]['TONUMBER']=iarray[1][i]\r
+        TfoDico[tfoname]['#WIND']=2\r
+\r
+    #Extract 3 winding Transfos\r
+    sid = -1 #assume a subsystem containing all buses in working case\r
+    owner_3flow = 1 #1 = use bus ownership 2 = use tfo ownership\r
+    ties_3flow = 3 #ignored bc sid is negative. 3 = interior subsystem and subsystem tie 3 winding transformers \r
+    flag=3 #all 3 winding transfo windings\r
+    string = ['wind1number','wind2number','wind3number']\r
+    ierr,iarray = psspy.awndint(sid,owner,ties,flag,entry,string)\r
+    string = ['wind1name','wind2name','wind3name','wind1exname','wind2exname','wind3exname','id']\r
+    ierr,carray = psspy.awndchar(sid,owner,ties,flag,entry,string)\r
+\r
+    #[Bus name 1, Bus name 2, Bus name 3, machine ID, extended bus name 1, extended bus name 2, extended bus name 3, bus number 1, bus number 2, bus number 3]\r
+    for i in range(len(iarray[0])):\r
+        idname = 'Tr' + carray[6][i].strip()\r
+##        try:\r
+##            idname = 'Tr' + str(int(carray[4][i]))\r
+##        except:\r
+##            idname = 'Tr' + carray[4][i]\r
+        tfoname = carray[0][i].strip() + "__" + carray[1][i].strip() + "__" + carray[2][i].strip() + "__" + idname\r
+        tfoname = tfoname.replace(" ","_")\r
+        tfoname = tfoname.replace("-","_")\r
+        tfoname = tfoname.replace(".","_")\r
+        tfoname = tfoname.replace("&","and")\r
+        try:\r
+            int(tfoname[0])\r
+            tfoname="_" + tfoname\r
+        except:\r
+            pass\r
+        TfoDico[tfoname]={}\r
+        TfoDico[tfoname]['FROMNAME']=carray[0][i].strip()\r
+        TfoDico[tfoname]['TONAME']=carray[1][i].strip()\r
+        TfoDico[tfoname]['3NAME']=carray[2][i].strip()\r
+        TfoDico[tfoname]['ID']=carray[6][i]\r
+        TfoDico[tfoname]['FROMEXNAME']=carray[3][i]\r
+        TfoDico[tfoname]['TOEXNAME']=carray[4][i]\r
+        TfoDico[tfoname]['3EXNAME']=carray[5][i]\r
+        TfoDico[tfoname]['FROMNUMBER']=iarray[0][i]\r
+        TfoDico[tfoname]['TONUMBER']=iarray[1][i]\r
+        TfoDico[tfoname]['3NUMBER']=iarray[2][i]\r
+        TfoDico[tfoname]['#WIND']=3\r
+\r
+    #print MachineDico, LoadDico, LineDico, TfoDico, MotorDico, BusDico, BranchesDico, BusNominal\r
+    return MachineDico, LoadDico, LineDico, TfoDico, MotorDico, BusDico, BranchesDico, BusNominal\r
+\r
+\r
+\r
diff --git a/OldCodes/ProcessOutputs_Eficas/PSEN_Cata_N1.py b/OldCodes/ProcessOutputs_Eficas/PSEN_Cata_N1.py
new file mode 100644 (file)
index 0000000..b05aea0
--- /dev/null
@@ -0,0 +1,280 @@
+# -*- coding: iso-8859-1 -*-
+# Copyright (C) 2007-2021   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+# --------------------------------------------------
+# debut entete
+# --------------------------------------------------
+
+#from Accas import ASSD, JDC_CATA, AU_MOINS_UN, PROC, SIMP, FACT, OPER, MACRO, BLOC, A_VALIDATOR
+from Accas import *
+import opsPSEN_N1
+import pn
+#
+#class loi      ( ASSD ) : pass
+#class variable ( ASSD ) : pass
+class sd_charge     ( ASSD ) : pass
+class sd_generateur ( ASSD ) : pass
+class sd_ligne     ( ASSD ) : pass
+class sd_transfo ( ASSD ) : pass
+class sd_moteur ( ASSD ) : pass
+#
+
+# import types
+class Tuple:
+   def __init__(self,ntuple):
+     self.ntuple=ntuple
+
+   def __convert__(self,valeur):
+     import types
+     if type(valeur) == types.StringType:
+       return None
+     if len(valeur) != self.ntuple:
+       return None
+     return valeur
+
+   def info(self):
+     return "Tuple de %s elements" % self.ntuple
+
+   __repr__=info
+   __str__=info
+
+# class Matrice:
+#   def __init__(self,nbLigs=None,nbCols=None,methodeCalculTaille=None,formatSortie="ligne",valSup=None,valMin=None,structure=None):
+#       self.nbLigs=nbLigs
+#       self.nbCols=nbCols
+#       self.methodeCalculTaille=methodeCalculTaille
+#       self.formatSortie=formatSortie
+#       self.valSup=valSup
+#       self.valMin=valMin
+#       self.structure=structure
+#
+#   def __convert__(self,valeur):
+#     # Attention ne verifie pas grand chose
+#     if type(valeur) != types.ListType :
+#       return None
+#     return valeur
+#
+#   def info(self):
+#       return "Matrice %s x %s" % (self.nbLigs, self.nbCols)
+#
+#       __repr__=info
+#       __str__=info
+
+
+#CONTEXT.debug = 1
+JdC = JDC_CATA ( code = 'PSEN',
+                 execmodul = None,
+                 regles = ( AU_MOINS_UN ( 'CASE_SELECTION', 'CONTINGENCY_PROCESSING' ),
+                            AU_MOINS_UN ( 'CONTINGENCY_SELECTION','N_PROCESSING_OPTIONS','CONTINGENCY_PROCESSING' ),
+                            PRESENT_PRESENT ( 'CONTINGENCY_SELECTION','CONTINGENCY_OPTIONS' ),
+                            PRESENT_PRESENT ( 'CONTINGENCY_PROCESSING','CONTINGENCY_OPTIONS' ),
+                             AU_MOINS_UN ( 'SIMULATION' ),
+                            # AU_PLUS_UN ( 'PSSE_PARAMETERS' ),
+                            AU_PLUS_UN ( 'CASE_SELECTION' ),
+                            AU_PLUS_UN ( 'CONTINGENCY_OPTIONS' ),
+                            AU_PLUS_UN ( 'CONTINGENCY_SELECTION' ),
+                            AU_PLUS_UN ( 'CONTINGENCY_PROCESSING' ),
+                            AU_PLUS_UN ( 'N_PROCESSING_OPTIONS' ),
+                            # AU_PLUS_UN ( 'N_1_LINES' ),
+                            # AU_PLUS_UN ( 'N_1_LOADS' ),
+                            # AU_PLUS_UN ( 'N_1_TRANSFORMERS' ),
+
+                            ),
+                 ) # Fin JDC_CATA
+
+MODIFICATION_CATALOGUE = MACRO ( nom = "MODIFICATION_CATALOGUE",
+                     sd_prod = pn.modification_catalogue,
+                     op_init=  pn.modification_catalogue2,
+                     op=None,
+                     UIinfo={"groupes":("CACHE")},
+                     Fonction=SIMP(statut='o', typ='TXM', into=['ajoutDefinitionMC']),
+                     Etape=SIMP(statut='o', typ='TXM',),
+                     Genea=SIMP(statut='o', typ='TXM', min=0, max='**'),
+                     NomSIMP=SIMP(statut='o', typ='TXM',),
+                     TypeSIMP=SIMP(statut='o', typ='TXM',),
+                     PhraseArguments=SIMP(statut='o', typ='TXM',),)
+
+
+# --------------------------------------------------
+# fin entete
+# --------------------------------------------------
+## TODO : RUN
+CASE_SELECTION = MACRO ( nom = "CASE_SELECTION",
+                      sd_prod = opsPSEN_N1.INCLUDE,
+                      op_init = opsPSEN_N1.INCLUDE_context,
+                      fichier_ini = 1,
+                      op = None,
+                      fr = "Selectionnez les cas a analyser",
+                      ang = 'Select the cases to analyze',
+                      PSSE_path = SIMP(statut="o",typ='Repertoire',defaut='C:\Program Files (x86)\PTI\PSSE33\PSSBIN'),
+                      output_folder = SIMP(statut="o", typ="Repertoire"),
+
+
+                      BusesList = SIMP(statut = 'f', typ = 'R', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
+                      LinesList = SIMP(statut = 'f', typ = 'R', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
+                      TransformersList = SIMP(statut = 'f', typ = 'TXM', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
+                      MaxDepth = SIMP(statut = 'o', typ = 'I', defaut = 5),
+                      OutputNewCsv = SIMP ( statut = "o",typ=bool,defaut=False,),
+                 )
+N_PROCESSING_OPTIONS = PROC ( nom = 'N_PROCESSING_OPTIONS',
+                            op = None,
+                            ang = "Select whether the program should be displaying data about the different categories.\nThe values displayed will be the min, max, and mean of each item, plus a chart.",
+                           Output_bus_values = SIMP(statut = 'o', typ = bool, defaut = True),
+                           Output_lines_values = SIMP(statut = 'o', typ = bool, defaut = True),
+                           Output_transformer_values = SIMP(statut = 'o', typ = bool, defaut = True),
+                           Threshold_selection_for_the_treated_cases = FACT(
+                              statut = 'f',
+                              Branches = SIMP(statut="o",typ=Tuple(3),defaut=(0,0,0),validators=VerifTypeTuple(('R','R','R'),),),
+                              Transformers = SIMP(statut="o",typ=Tuple(3),defaut=(0,0,0),validators=VerifTypeTuple(('R','R','R'),),),
+                              High_voltage = SIMP(statut="o",typ=Tuple(3),defaut=(0,0,0),validators=VerifTypeTuple(('R','R','R'),),),
+                              Low_voltage = SIMP(statut="o",typ=Tuple(3),defaut=(0,0,0),validators=VerifTypeTuple(('R','R','R'),),),
+                           ),
+                           )
+
+
+CONTINGENCY_OPTIONS = PROC (nom = 'CONTINGENCY_OPTIONS',
+                            op = None,
+
+                            GeneralOptions = FACT(statut='o',
+                                Vmin = SIMP(statut = 'o', typ = 'R', defaut = 0.9, val_min = 0),
+                                Vmax = SIMP(statut = 'o', typ = 'R', defaut = 1.1, val_min = 0),
+                                ContingencyRate = SIMP(statut = 'o', typ = 'TXM', defaut = 'a', into=['a', 'b']),
+                                FlowLimitLines = SIMP(statut = 'o', typ = 'I', defaut = 120, val_min = 0),
+                                FlowLimitTransformers = SIMP(statut = 'o', typ = 'I', defaut = 120, val_min = 0),
+                                Tolerance = SIMP(statut = 'o', typ = 'R', defaut = 0.5, val_min = 0),
+                                TripLines = SIMP(statut = 'o', typ = bool, defaut = True),
+                                TripTransfos = SIMP(statut = 'o', typ = bool, defaut = True),
+                                TripGenerators = SIMP(statut = 'o', typ = bool, defaut = True),
+                                TripBuses = SIMP(statut = 'o', typ = bool, defaut = False),
+                                ),
+
+                            LoadFlowOptions = FACT(statut='o',
+                                AdjustTaps = SIMP(statut = 'o', typ = 'TXM', into = ['0 - Lock', '1 - Stepping', '2 - Direct'], defaut = '1 - Stepping'),
+                                AdjustDCtaps = SIMP(statut = 'o', typ = 'TXM', into = ['0 - Disable', '1 - Enable'], defaut = '1 - Enable'),
+                                SolutionMethod = SIMP(statut = 'o', typ = 'TXM', into = ['0 - FDNS', '1 - FNSL', '2 - Optimized FDNS'], defaut = '1 - FNSL'),
+                                AdjustSwitchedShunts = SIMP(statut = 'o', typ = 'TXM', into = ['0 - Disable', '1 - Enable', '2 - Enable continuous mode'], defaut = '1 - Enable'),
+                                DispatchMode = SIMP(statut = 'o', typ = 'TXM', into = ['0 - Disable', '1 - Reserve', '2 - Pmax', '3 - Inertia', '4 - Droop'], defaut = '1 - Reserve'),
+                                FlatStart = SIMP(statut = 'o', typ = bool, defaut = False),
+                                VarLimits = SIMP(statut = 'o', typ = 'I', defaut = 99,ang = 'if set to -1, var limits will not be applied'),
+                                ),
+
+#                            OutputOptions = FACT(statut='o',
+#                                consigne1 = SIMP(statut='o',homo='information',typ = "TXM",defaut = 'Output PSSE multiple contingency report to Shell?'),
+#                                MultipleContingencyReport = SIMP(statut = 'o', typ = bool, defaut = True, ang = 'Output PSSE multiple contingency report to Shell?'),
+#                                consigne2 = SIMP(statut='o',homo='information',typ = "TXM",defaut = 'Write an Excel file for the results of each case file?'),
+#                                WriteIndivExcels = SIMP(statut = 'o', typ = bool, defaut = True),
+#                                consigne3 = SIMP(statut='o',homo='information',typ = "TXM",defaut = 'Add a tab in Excel results file for the differences between the max flow rate (MVAR) and the actual flow rate in lines and transformers?'),
+#                                WriteFlowDifs = SIMP(statut = 'o', typ = bool, defaut = True),
+#                            ),
+                        )
+
+
+
+
+CONTINGENCY_SELECTION = PROC(nom='CONTINGENCY_SELECTION',op = None,
+                      SelectionMethod = SIMP(statut='o',typ='TXM',into=['CaseSelectionFromFile','SelectAllCases','SelectWorstCases'],
+                      ),
+
+                      b_file = BLOC(condition="SelectionMethod=='CaseSelectionFromFile'",
+                      CaseSelectionFromFiles = FACT(
+                           statut = 'o',
+                           case = FACT(statut='o',max='**',
+                                       case_name=SIMP(statut='o',typ='TXM'),
+                                       csv_file= SIMP(statut='o', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)',),),),
+#                           regles=(AU_MOINS_UN('branch_cases','transformer_cases','high_voltage_cases','low_voltage_cases',),),
+#                           branch_cases = SIMP(statut='o', defaut='', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)','Sauvegarde'),),
+#                           transformer_cases = SIMP(statut='o', defaut='', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)','Sauvegarde',),),
+#                           high_voltage_cases = SIMP(statut='o', defaut='', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)','Sauvegarde'),),
+#                           low_voltage_cases = SIMP(statut='o', defaut='', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)','Sauvegarde'),),
+                        ),
+
+#                      CaseSelectionFromFile = FACT(
+#                           statut = 'o',
+#                           input_path = SIMP(statut="o",typ='Repertoire'),
+#                           branch_cases = SIMP(statut='o', typ='TXM'),
+#                           transformer_cases = SIMP(statut='o', typ='TXM'),
+#                           high_cases = SIMP(statut='o', typ='TXM'),
+#                           low_cases = SIMP(statut='o', typ='TXM'),
+#                        ),
+
+                        ),
+
+#                      b_all = BLOC(condition="SelectionMethod=='SelectAllCases'",
+#                      SelectAllCases = FACT(
+#                           statut='o',
+#                           all_cases = SIMP(statut='o', typ=bool, defaut = True),
+#                         ),
+#                         ),
+
+                      b_worst = BLOC(condition="SelectionMethod=='SelectWorstCases'",
+                      SelectWorstCases = FACT(
+                          regles = (AU_MOINS_UN('AvgLineLoad', 'AvgLineLoadPercent','AvgTransformerLoad','AvgTransformerLoadPercent','AvgHighVoltage', 'AvgHighVoltagePercent','AvgLowVoltage', 'AvgLowVoltagePercent'),
+                                    EXCLUS('AvgLineLoad', 'AvgLineLoadPercent'),EXCLUS('AvgTransformerLoad','AvgTransformerLoadPercent'),EXCLUS('AvgHighVoltage', 'AvgHighVoltagePercent'),EXCLUS('AvgLowVoltage', 'AvgLowVoltagePercent'),),
+                          statut = 'o',
+                          consigne = SIMP(statut='o',homo='information',typ = "TXM",defaut = 'Choose at least one of the potential selection criteria from the SelectWorstCases list on the right.'),
+                          AvgLineLoad = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0),
+                          AvgLineLoadPercent = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0, val_max = 100),
+                          AvgTransformerLoad = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0),
+                          AvgTransformerLoadPercent = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0, val_max = 100),
+                          AvgHighVoltage = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0),
+                          AvgHighVoltagePercent = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0, val_max = 100),
+                          AvgLowVoltage = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0),
+                          AvgLowVoltagePercent = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0, val_max = 100),
+                        ),
+                        ),
+
+
+                      Automatic_N_2_Selection = FACT(statut='f',
+
+                          BusesList = SIMP(statut = 'o', typ = 'R', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
+                          LinesList = SIMP(statut = 'o', typ = 'R', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
+                          TransformersList = SIMP(statut = 'o', typ = 'TXM', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
+                        ),
+
+                     MultipleContingencyList = FACT (statut='f',
+                                                          max="**",
+                                                          ComponentList=SIMP(statut='o', typ = 'TXM', max='**', homo = 'SansOrdreNiDoublon',),
+                     ),
+
+                      )
+
+CONTINGENCY_PROCESSING = MACRO ( nom = 'CONTINGENCY_PROCESSING',
+                        sd_prod = opsPSEN_N1.PROCESS,
+                        op_init = opsPSEN_N1.PROCESS_context,
+
+                        #sd_prod=None,
+
+                        op = None,
+                        fichier_ini = 1,
+                        fr = "",
+                        ang="",
+                        XLS_file = SIMP(statut="o", typ = ('Fichier', 'XLS file (*.xls);;All Files (*)',),),
+                        b_TabList = BLOC(condition="XLS_file != None and XLS_file != ''",
+                            TabList = SIMP(statut = 'o', typ = 'TXM', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'), ),
+
+#                        b_highVoltage = BLOC(condition="'High Voltage 0' in TabList",
+#                                                     HighVoltageBuses = SIMP(statut = 'o', typ = 'TXM', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
+#                                                     HighVoltageContingencies = SIMP(statut = 'o', typ = 'TXM', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
+#                                                     ),
+
+                    )
+
+Ordre_Des_Commandes = ('CASE_SELECTION' , 'N_PROCESSING_OPTIONS' , 'CONTINGENCY_SELECTION', 'CONTINGENCY_OPTIONS' ,'CONTINGENCY_PROCESSING',)
+Classement_Commandes_Ds_Arbre = ('CASE_SELECTION' , 'N_PROCESSING_OPTIONS' , 'CONTINGENCY_SELECTION', 'CONTINGENCY_OPTIONS' ,'CONTINGENCY_PROCESSING',)
diff --git a/OldCodes/ProcessOutputs_Eficas/PSEN_Cata_N1.py.ok b/OldCodes/ProcessOutputs_Eficas/PSEN_Cata_N1.py.ok
new file mode 100644 (file)
index 0000000..f259816
--- /dev/null
@@ -0,0 +1,250 @@
+# -*- coding: iso-8859-1 -*-
+# Copyright (C) 2007-2013   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+# --------------------------------------------------
+# debut entete
+# --------------------------------------------------
+
+#from Accas import ASSD, JDC_CATA, AU_MOINS_UN, PROC, SIMP, FACT, OPER, MACRO, BLOC, A_VALIDATOR
+from Accas import *
+import opsPSEN_N1
+#
+#
+
+# import types
+class Tuple:
+   def __init__(self,ntuple):
+     self.ntuple=ntuple
+
+   def __convert__(self,valeur):
+     if type(valeur) == types.StringType:
+       return None
+     if len(valeur) != self.ntuple:
+       return None
+     return valeur
+
+   def info(self):
+     return "Tuple de %s elements" % self.ntuple
+
+   __repr__=info
+   __str__=info
+
+# class Matrice:
+#   def __init__(self,nbLigs=None,nbCols=None,methodeCalculTaille=None,formatSortie="ligne",valSup=None,valMin=None,structure=None):
+#       self.nbLigs=nbLigs
+#       self.nbCols=nbCols
+#       self.methodeCalculTaille=methodeCalculTaille
+#       self.formatSortie=formatSortie
+#       self.valSup=valSup
+#       self.valMin=valMin
+#       self.structure=structure
+#
+#   def __convert__(self,valeur):
+#     # Attention ne verifie pas grand chose
+#     if type(valeur) != types.ListType :
+#       return None
+#     return valeur
+#
+#   def info(self):
+#       return "Matrice %s x %s" % (self.nbLigs, self.nbCols)
+#
+#       __repr__=info
+#       __str__=info
+
+
+#CONTEXT.debug = 1
+JdC = JDC_CATA ( code = 'PSEN',
+                 execmodul = None,
+                 regles = ( AU_MOINS_UN ( 'CASE_SELECTION' ),
+                            # AU_MOINS_UN ( 'DIRECTORY' ),
+                            # AU_MOINS_UN ( 'DISTRIBUTION' ),
+                            # AU_MOINS_UN ( 'SIMULATION' ),
+                            # AU_PLUS_UN ( 'PSSE_PARAMETERS' ),
+                            # AU_PLUS_UN ( 'DIRECTORY' ),
+                            # AU_PLUS_UN ( 'SIMULATION' ),
+                            # AU_PLUS_UN ( 'CORRELATION' ),
+                            # AU_PLUS_UN ( 'N_1_GENERATORS' ),
+                            # AU_PLUS_UN ( 'N_1_LINES' ),
+                            # AU_PLUS_UN ( 'N_1_LOADS' ),
+                            # AU_PLUS_UN ( 'N_1_TRANSFORMERS' ),
+
+                            ),
+                 ) # Fin JDC_CATA
+
+
+# --------------------------------------------------
+# fin entete
+# --------------------------------------------------
+## TODO : RUN
+CASE_SELECTION = MACRO ( nom = "CASE_SELECTION",
+                      sd_prod = opsPSEN_N1.INCLUDE,
+                      op_init = opsPSEN_N1.INCLUDE_context,
+                      fichier_ini = 1,
+                      op = None,
+                      fr = "Sélectionnez les cas à analyser",
+                      ang = 'Select the cases to analyze',
+                      PSSE_path = SIMP(statut="o",typ='Repertoire',defaut='C:\Program Files (x86)\PTI\PSSE33\PSSBIN'),
+                      output_folder = SIMP(statut="o", typ="Repertoire"),
+
+
+                      BusesList = SIMP(statut = 'f', typ = 'R', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
+                      LinesList = SIMP(statut = 'f', typ = 'R', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
+                      TransformersList = SIMP(statut = 'f', typ = 'TXM', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
+                      MaxDepth = SIMP(statut = 'o', typ = 'I', defaut = 5),
+                      OutputNewCsv = SIMP ( statut = "o",typ=bool,defaut=False,),
+                 )
+N_PROCESSING_OPTIONS = PROC ( nom = 'N_PROCESSING_OPTIONS',
+                            op = None,
+                            ang = "Select whether the program should be displaying data ablout the different categories. The values displayed will be the min, max, and mean of each item, plus a chart.",  
+                           Output_bus_values = SIMP(statut = 'o', typ = bool, defaut = True),
+                           Output_lines_values = SIMP(statut = 'o', typ = bool, defaut = True),
+                           Output_transformer_values = SIMP(statut = 'o', typ = bool, defaut = True),
+                           Threshold_selection_for_the_treated_cases = FACT(
+                              statut = 'f',
+                              Branches = SIMP(statut="o",typ=Tuple(3),defaut=(0,0,0),validators=VerifTypeTuple(('R','R','R'),),),
+                              Transformers = SIMP(statut="o",typ=Tuple(3),defaut=(0,0,0),validators=VerifTypeTuple(('R','R','R'),),),
+                              High_voltage = SIMP(statut="o",typ=Tuple(3),defaut=(0,0,0),validators=VerifTypeTuple(('R','R','R'),),),
+                              Low_voltage = SIMP(statut="o",typ=Tuple(3),defaut=(0,0,0),validators=VerifTypeTuple(('R','R','R'),),),
+                           ),
+                           )
+
+
+CONTINGENCY_OPTIONS = PROC (nom = 'CONTINGENCY_OPTIONS',
+                            op = None,
+                            
+                            GeneralOptions = FACT(statut='o',
+                                Vmin = SIMP(statut = 'o', typ = 'R', defaut = 0.9, val_min = 0),
+                                Vmax = SIMP(statut = 'o', typ = 'R', defaut = 1.1, val_min = 0),
+                                ContingencyRate = SIMP(statut = 'o', typ = 'TXM', defaut = 'a', into=['a', 'b']),
+                                FlowLimitLines = SIMP(statut = 'o', typ = 'I', defaut = 120, val_min = 0),
+                                FlowLimitTransformers = SIMP(statut = 'o', typ = 'I', defaut = 120, val_min = 0),
+                                Tolerance = SIMP(statut = 'o', typ = 'R', defaut = 0.5, val_min = 0),
+                                TripLines = SIMP(statut = 'o', typ = bool, defaut = True),
+                                TripTransfos = SIMP(statut = 'o', typ = bool, defaut = True),
+                                TripGenerators = SIMP(statut = 'o', typ = bool, defaut = True),
+                                ),                            
+
+                            LoadFlowOptions = FACT(statut='o',
+                                AdjustTaps = SIMP(statut = 'o', typ = 'TXM', into = ['0 - Lock', '1 - Stepping', '2 - Direct'], defaut = '1 - Stepping'),
+                                AdjustDCtaps = SIMP(statut = 'o', typ = 'TXM', into = ['0 - Disable', '1 - Enable'], defaut = '1 - Enable'),
+                                SolutionMethod = SIMP(statut = 'o', typ = 'TXM', into = ['0 - FDNS', '1 - FNSL', '2 - Optimized FDNS'], defaut = '1 - FNSL'),
+                                AdjustSwitchedShunts = SIMP(statut = 'o', typ = 'TXM', into = ['0 - Disable', '1 - Enable', '2 - Enable continuous mode'], defaut = '1 - Enable'),
+                                DispatchMode = SIMP(statut = 'o', typ = 'TXM', into = ['0 - Disable', '1 - Reserve', '2 - Pmax', '3 - Inertia', '4 - Droop'], defaut = '1 - Reserve'),
+                                FlatStart = SIMP(statut = 'o', typ = bool, defaut = False),
+                                VarLimits = SIMP(statut = 'o', typ = 'I', defaut = 99,ang = 'if set to -1, var limits will not be applied'),
+                                ),
+                            
+                            OutputOptions = FACT(statut='o',
+                                consigne1 = SIMP(statut='o',homo='information',typ = "TXM",defaut = 'Output PSSE multiple contingency report to Shell?'),
+                                MultipleContingencyReport = SIMP(statut = 'o', typ = bool, defaut = True, ang = 'Output PSSE multiple contingency report to Shell?'),
+                                consigne2 = SIMP(statut='o',homo='information',typ = "TXM",defaut = 'Write an Excel file for the results of each case file?'),
+                                WriteIndivExcels = SIMP(statut = 'o', typ = bool, defaut = True),
+                                consigne3 = SIMP(statut='o',homo='information',typ = "TXM",defaut = 'Add a tab in Excel results file for the differences between the max flow rate (MVAR) and the actual flow rate in lines and transformers?'),
+                                WriteFlowDifs = SIMP(statut = 'o', typ = bool, defaut = True),                            
+                            ),
+                        )
+
+
+
+
+CONTINGENCY_SELECTION = PROC(nom='CONTINGENCY_SELECTION',op = None,
+                      SelectionMethod = SIMP(statut='o',typ='TXM',into=['CaseSelectionFromFile','SelectAllCases','SelectWorstCases'],
+                      ),
+                      
+                      b_file = BLOC(condition="SelectionMethod=='CaseSelectionFromFile'",
+                      CaseSelectionFromFiles = FACT(
+                           statut = 'o',
+                           regles=(AU_MOINS_UN('branch_cases','transformer_cases','high_voltage_cases','low_voltage_cases',),),
+                           branch_cases = SIMP(statut='o', defaut='', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)','Sauvegarde'),),
+                           transformer_cases = SIMP(statut='o', defaut='', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)','Sauvegarde',),),
+                           high_voltage_cases = SIMP(statut='o', defaut='', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)','Sauvegarde'),),
+                           low_voltage_cases = SIMP(statut='o', defaut='', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)','Sauvegarde'),),
+                        ),
+                        
+#                      CaseSelectionFromFile = FACT(
+#                           statut = 'o',
+#                           input_path = SIMP(statut="o",typ='Repertoire'),
+#                           branch_cases = SIMP(statut='o', typ='TXM'),
+#                           transformer_cases = SIMP(statut='o', typ='TXM'),
+#                           high_cases = SIMP(statut='o', typ='TXM'),
+#                           low_cases = SIMP(statut='o', typ='TXM'),
+#                        ),
+                        
+                        ),
+                        
+#                      b_all = BLOC(condition="SelectionMethod=='SelectAllCases'",
+#                      SelectAllCases = FACT(
+#                           statut='o',
+#                           all_cases = SIMP(statut='o', typ=bool, defaut = True),
+#                         ),
+#                         ),
+                         
+                      b_worst = BLOC(condition="SelectionMethod=='SelectWorstCases'",
+                      SelectWorstCases = FACT(
+                          regles = (UN_PARMI('AvgBranchLoad', 'AvgBranchLoadPercent'), UN_PARMI('AvgTransformerLoad', 'AvgTransformerLoadPercent'), UN_PARMI('AvgHighVoltage', 'AvgHighVoltagePercent'), UN_PARMI('AvgLowVoltage', 'AvgLowVoltagePercent'),),
+                          statut = 'o',
+                          consigne = SIMP(statut='o',homo='information',typ = "TXM",defaut = 'Choose at least one of the potential selection criteria from the SelectWorstCases list on the right.'),
+                          AvgBranchLoad = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0),
+                          AvgBranchLoadPercent = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0, val_max = 100),
+                          AvgTransformerLoad = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0),
+                          AvgTransformerLoadPercent = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0, val_max = 100),
+                          AvgHighVoltage = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0),
+                          AvgHighVoltagePercent = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0, val_max = 100),
+                          AvgLowVoltage = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0),
+                          AvgLowVoltagePercent = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0, val_max = 100),
+                        ),
+                        ),
+
+
+                      Automatic_N_2_Selection = FACT(statut='f',
+                                                     
+                          BusesList = SIMP(statut = 'o', typ = 'R', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
+                          LinesList = SIMP(statut = 'o', typ = 'R', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
+                          TransformersList = SIMP(statut = 'o', typ = 'TXM', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),                                                    
+                        ),
+
+                     MultipleContingencyList = FACT (statut='f',
+                                                          max="**",
+                                                          ComponentList=SIMP(statut='o', typ = 'TXM', max='**', homo = 'SansOrdreNiDoublon',),
+                     ),
+
+                      )
+
+CONTINGENCY_PROCESSING = MACRO ( nom = 'CONTINGENCY_PROCESSING',
+                        sd_prod = opsPSEN_N1.PROCESS,
+                        op_init = opsPSEN_N1.PROCESS_context,
+                                                
+                        #sd_prod=None,
+
+                        op = None,
+                        fichier_ini = 1,
+                        fr = "",
+                        ang="",
+                        XLS_file = SIMP(statut="o", typ = ('Fichier', 'XLS file (*.xls);;All Files (*)',),),
+                        TabList = SIMP(statut = 'f', typ = 'TXM', min = 0, max = '**',  homo = 'SansOrdreNiDoublon'), 
+                        
+#                        b_highVoltage = BLOC(condition="'High Voltage 0' in TabList",
+#                                                     HighVoltageBuses = SIMP(statut = 'o', typ = 'TXM', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
+#                                                     HighVoltageContingencies = SIMP(statut = 'o', typ = 'TXM', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
+#                                                     ),
+                        
+                    )
+
+Ordre_Des_Commandes = ('CASE_SELECTION' , 'N_PROCESSING_OPTIONS' , 'CONTINGENCY_OPTIONS' , 'CONTINGENCY_SELECTION',)
diff --git a/OldCodes/ProcessOutputs_Eficas/ProcessOutputs_Cata.py b/OldCodes/ProcessOutputs_Eficas/ProcessOutputs_Cata.py
new file mode 100644 (file)
index 0000000..253232f
--- /dev/null
@@ -0,0 +1,240 @@
+# -*- coding: iso-8859-1 -*-
+# Copyright (C) 2007-2021   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+# --------------------------------------------------
+# debut entete
+# --------------------------------------------------
+
+from Accas import *
+import opsPSEN_N1
+import pn
+#
+
+# import types
+class Tuple:
+   def __init__(self,ntuple):
+     self.ntuple=ntuple
+
+   def __convert__(self,valeur):
+     import types
+     if type(valeur) == types.StringType:
+       return None
+     if len(valeur) != self.ntuple:
+       return None
+     return valeur
+
+   def info(self):
+     return "Tuple de %s elements" % self.ntuple
+
+   __repr__=info
+   __str__=info
+
+
+#CONTEXT.debug = 1
+JdC = JDC_CATA ( code = 'PSEN',
+                 execmodul = None,
+                 regles = ( AU_MOINS_UN ( 'CASE_SELECTION', 'CONTINGENCY_PROCESSING' ),
+                            AU_MOINS_UN ( 'CONTINGENCY_SELECTION','N_PROCESSING_OPTIONS','CONTINGENCY_PROCESSING' ),
+                            PRESENT_PRESENT ( 'CONTINGENCY_SELECTION','CONTINGENCY_OPTIONS' ),
+                            # AU_MOINS_UN ( 'SIMULATION' ),
+                            # AU_PLUS_UN ( 'PSSE_PARAMETERS' ),
+                            AU_PLUS_UN ( 'CASE_SELECTION' ),
+                            AU_PLUS_UN ( 'CONTINGENCY_OPTIONS' ),
+                            AU_PLUS_UN ( 'CONTINGENCY_SELECTION' ),
+                            AU_PLUS_UN ( 'CONTINGENCY_PROCESSING' ),
+                            AU_PLUS_UN ( 'N_PROCESSING_OPTIONS' ),
+                            # AU_PLUS_UN ( 'N_1_LINES' ),
+                            # AU_PLUS_UN ( 'N_1_LOADS' ),
+                            # AU_PLUS_UN ( 'N_1_TRANSFORMERS' ),
+
+                            ),
+                 ) # Fin JDC_CATA
+
+MODIFICATION_CATALOGUE = MACRO ( nom = "MODIFICATION_CATALOGUE",
+                     sd_prod = pn.modification_catalogue,
+                     op_init=  pn.modification_catalogue2,
+                     op=None,
+                     UIinfo={"groupes":("CACHE")},
+                     Fonction=SIMP(statut='o', typ='TXM', into=['ajoutDefinitionMC']),
+                     Etape=SIMP(statut='o', typ='TXM',),
+                     Genea=SIMP(statut='o', typ='TXM', min=0, max='**'),
+                     NomSIMP=SIMP(statut='o', typ='TXM',),
+                     TypeSIMP=SIMP(statut='o', typ='TXM',),
+                     PhraseArguments=SIMP(statut='o', typ='TXM',),
+)
+# --------------------------------------------------
+# fin entete
+# --------------------------------------------------
+## TODO : RUN
+CASE_SELECTION = MACRO ( nom = "CASE_SELECTION",
+                      sd_prod = opsPSEN_N1.INCLUDE,
+                      op_init = opsPSEN_N1.INCLUDE_context,
+                      fichier_ini = 1,
+                      op = None,
+                      fr = "Sélectionnez les cas à analyser",
+                      ang = 'Select the cases to analyze',
+                      PSSE_path = SIMP(statut="o",typ='Repertoire',defaut='C:\Program Files (x86)\PTI\PSSE33\PSSBIN'),
+                      output_folder = SIMP(statut="o", typ="Repertoire"),
+
+
+                      BusesList = SIMP(statut = 'f', typ = 'R', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
+                      LinesList = SIMP(statut = 'f', typ = 'R', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
+                      TransformersList = SIMP(statut = 'f', typ = 'TXM', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
+                      MaxDepth = SIMP(statut = 'o', typ = 'I', defaut = 5),
+                      OutputNewCsv = SIMP ( statut = "o",typ=bool,defaut=False,),
+                 )
+N_PROCESSING_OPTIONS = PROC ( nom = 'N_PROCESSING_OPTIONS',
+                            op = None,
+                            ang = "Select whether the program should be displaying data about the different categories.\nThe values displayed will be the min, max, and mean of each item, plus a chart.",  
+                           Output_bus_values = SIMP(statut = 'o', typ = bool, defaut = True),
+                           Output_lines_values = SIMP(statut = 'o', typ = bool, defaut = True),
+                           Output_transformer_values = SIMP(statut = 'o', typ = bool, defaut = True),
+                           Threshold_selection_for_the_treated_cases = FACT(
+                              statut = 'f',
+                              Branches = SIMP(statut="o",typ=Tuple(3),defaut=(0,0,0),validators=VerifTypeTuple(('R','R','R'),),),
+                              Transformers = SIMP(statut="o",typ=Tuple(3),defaut=(0,0,0),validators=VerifTypeTuple(('R','R','R'),),),
+                              High_voltage = SIMP(statut="o",typ=Tuple(3),defaut=(0,0,0),validators=VerifTypeTuple(('R','R','R'),),),
+                              Low_voltage = SIMP(statut="o",typ=Tuple(3),defaut=(0,0,0),validators=VerifTypeTuple(('R','R','R'),),),
+                           ),
+                           )
+
+
+CONTINGENCY_OPTIONS = PROC (nom = 'CONTINGENCY_OPTIONS',
+                            op = None,
+                            
+                            GeneralOptions = FACT(statut='o',
+                                Vmin = SIMP(statut = 'o', typ = 'R', defaut = 0.9, val_min = 0),
+                                Vmax = SIMP(statut = 'o', typ = 'R', defaut = 1.1, val_min = 0),
+                                ContingencyRate = SIMP(statut = 'o', typ = 'TXM', defaut = 'a', into=['a', 'b']),
+                                FlowLimitLines = SIMP(statut = 'o', typ = 'I', defaut = 120, val_min = 0),
+                                FlowLimitTransformers = SIMP(statut = 'o', typ = 'I', defaut = 120, val_min = 0),
+                                Tolerance = SIMP(statut = 'o', typ = 'R', defaut = 0.5, val_min = 0),
+                                TripLines = SIMP(statut = 'o', typ = bool, defaut = True),
+                                TripTransfos = SIMP(statut = 'o', typ = bool, defaut = True),
+                                TripGenerators = SIMP(statut = 'o', typ = bool, defaut = True),
+                                ),                            
+
+                            LoadFlowOptions = FACT(statut='o',
+                                AdjustTaps = SIMP(statut = 'o', typ = 'TXM', into = ['0 - Lock', '1 - Stepping', '2 - Direct'], defaut = '1 - Stepping'),
+                                AdjustDCtaps = SIMP(statut = 'o', typ = 'TXM', into = ['0 - Disable', '1 - Enable'], defaut = '1 - Enable'),
+                                SolutionMethod = SIMP(statut = 'o', typ = 'TXM', into = ['0 - FDNS', '1 - FNSL', '2 - Optimized FDNS'], defaut = '1 - FNSL'),
+                                AdjustSwitchedShunts = SIMP(statut = 'o', typ = 'TXM', into = ['0 - Disable', '1 - Enable', '2 - Enable continuous mode'], defaut = '1 - Enable'),
+                                DispatchMode = SIMP(statut = 'o', typ = 'TXM', into = ['0 - Disable', '1 - Reserve', '2 - Pmax', '3 - Inertia', '4 - Droop'], defaut = '1 - Reserve'),
+                                FlatStart = SIMP(statut = 'o', typ = bool, defaut = False),
+                                VarLimits = SIMP(statut = 'o', typ = 'I', defaut = 99,ang = 'if set to -1, var limits will not be applied'),
+                                ),
+                            
+#                            OutputOptions = FACT(statut='o',
+#                                consigne1 = SIMP(statut='o',homo='information',typ = "TXM",defaut = 'Output PSSE multiple contingency report to Shell?'),
+#                                MultipleContingencyReport = SIMP(statut = 'o', typ = bool, defaut = True, ang = 'Output PSSE multiple contingency report to Shell?'),
+#                                consigne2 = SIMP(statut='o',homo='information',typ = "TXM",defaut = 'Write an Excel file for the results of each case file?'),
+#                                WriteIndivExcels = SIMP(statut = 'o', typ = bool, defaut = True),
+#                                consigne3 = SIMP(statut='o',homo='information',typ = "TXM",defaut = 'Add a tab in Excel results file for the differences between the max flow rate (MVAR) and the actual flow rate in lines and transformers?'),
+#                                WriteFlowDifs = SIMP(statut = 'o', typ = bool, defaut = True),                            
+#                            ),
+                        )
+
+
+
+
+CONTINGENCY_SELECTION = PROC(nom='CONTINGENCY_SELECTION',op = None,
+                      SelectionMethod = SIMP(statut='o',typ='TXM',into=['CaseSelectionFromFile','SelectAllCases','SelectWorstCases'],
+                      ),
+                      
+                      b_file = BLOC(condition="SelectionMethod=='CaseSelectionFromFile'",
+                      CaseSelectionFromFiles = FACT(
+                           statut = 'o',
+                           case = FACT(statut='o',max='**',
+                                       case_name=SIMP(statut='o',typ='TXM'),
+                                       csv_file= SIMP(statut='o', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)',),),),
+#                           regles=(AU_MOINS_UN('branch_cases','transformer_cases','high_voltage_cases','low_voltage_cases',),),
+#                           branch_cases = SIMP(statut='o', defaut='', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)','Sauvegarde'),),
+#                           transformer_cases = SIMP(statut='o', defaut='', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)','Sauvegarde',),),
+#                           high_voltage_cases = SIMP(statut='o', defaut='', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)','Sauvegarde'),),
+#                           low_voltage_cases = SIMP(statut='o', defaut='', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)','Sauvegarde'),),
+                        ),
+#                        ',
+#                      CaseSelectionFromFile = FACT(
+#                           statut = 'o',
+#                           input_path = SIMP(statut="o",typ='Repertoire'),
+#                           branch_cases = SIMP(statut='o', typ='TXM'),
+#                           transformer_cases = SIMP(statut='o', typ='TXM'),
+#                           high_cases = SIMP(statut='o', typ='TXM'),
+#                           low_cases = SIMP(statut='o', typ='TXM'),
+#                        ),
+                        
+                        ),
+                        
+#                      b_all = BLOC(condition="SelectionMethod=='SelectAllCases'",
+#                      SelectAllCases = FACT(
+#                           statut='o',
+#                           all_cases = SIMP(statut='o', typ=bool, defaut = True),
+#                         ),
+#                         ),
+                         
+                      b_worst = BLOC(condition="SelectionMethod=='SelectWorstCases'",
+                      SelectWorstCases = FACT(
+                          regles = (AU_MOINS_UN('AvgBranchLoad', 'AvgBranchLoadPercent','AvgTransformerLoad','AvgTransformerLoadPercent','AvgHighVoltage', 'AvgHighVoltagePercent','AvgLowVoltage', 'AvgLowVoltagePercent'),
+                                    EXCLUS('AvgBranchLoad', 'AvgBranchLoadPercent'),EXCLUS('AvgTransformerLoad','AvgTransformerLoadPercent'),EXCLUS('AvgHighVoltage', 'AvgHighVoltagePercent'),EXCLUS('AvgLowVoltage', 'AvgLowVoltagePercent'),),
+                          statut = 'o',
+                          consigne = SIMP(statut='o',homo='information',typ = "TXM",defaut = 'Choose at least one of the potential selection criteria from the SelectWorstCases list on the right.'),
+                          AvgBranchLoad = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0),
+                          AvgBranchLoadPercent = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0, val_max = 100),
+                          AvgTransformerLoad = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0),
+                          AvgTransformerLoadPercent = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0, val_max = 100),
+                          AvgHighVoltage = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0),
+                          AvgHighVoltagePercent = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0, val_max = 100),
+                          AvgLowVoltage = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0),
+                          AvgLowVoltagePercent = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0, val_max = 100),
+                        ),
+                        ),
+
+
+                      Automatic_N_2_Selection = FACT(statut='f',
+                                                     
+                          BusesList = SIMP(statut = 'o', typ = 'R', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
+                          LinesList = SIMP(statut = 'o', typ = 'R', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
+                          TransformersList = SIMP(statut = 'o', typ = 'TXM', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),                                                    
+                        ),
+
+                     MultipleContingencyList = FACT (statut='f',
+                                                          max="**",
+                                                          ComponentList=SIMP(statut='o', typ = 'TXM', max='**', homo = 'SansOrdreNiDoublon',),
+                     ),
+
+                      )
+
+CONTINGENCY_PROCESSING = MACRO ( nom = 'CONTINGENCY_PROCESSING',
+                        sd_prod = opsPSEN_N1.PROCESS,
+                        op_init = opsPSEN_N1.PROCESS_context,
+                        op = None,
+                        fichier_ini = 1,
+                        fr = "",
+                        ang="",
+                        XLS_file = SIMP(statut="f", typ = ('Fichier', 'XLS file (*.xls);;All Files (*)',),),
+                        b_TabList = BLOC(condition="XLS_file != None and XLS_file != ''",
+                            TabList = SIMP(statut = 'o', typ = 'TXM', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'), 
+                        
+                          ),
+                        
+                    )
+
+Ordre_Des_Commandes = ('CASE_SELECTION' , 'N_PROCESSING_OPTIONS' , 'CONTINGENCY_SELECTION', 'CONTINGENCY_OPTIONS' ,'CONTINGENCY_PROCESSING',)
+Classement_Commandes_Ds_Arbre = ('CASE_SELECTION' , 'N_PROCESSING_OPTIONS' , 'CONTINGENCY_SELECTION', 'CONTINGENCY_OPTIONS' ,'CONTINGENCY_PROCESSING',)
diff --git a/OldCodes/ProcessOutputs_Eficas/configuration_PSEN_N1.py b/OldCodes/ProcessOutputs_Eficas/configuration_PSEN_N1.py
new file mode 100644 (file)
index 0000000..e17d491
--- /dev/null
@@ -0,0 +1,43 @@
+# -*- coding: utf-8 -*-\r
+#            CONFIGURATION MANAGEMENT OF EDF VERSION\r
+# ======================================================================\r
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG\r
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY\r
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY\r
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR\r
+# (AT YOUR OPTION) ANY LATER VERSION.\r
+#\r
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT\r
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF\r
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU\r
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.\r
+#\r
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE\r
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,\r
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.\r
+#\r
+#\r
+# ======================================================================\r
+"""\r
+    Ce module sert pour charger les paramètres de configuration d'EFICAS\r
+"""\r
+# Modules Python\r
+from InterfaceQT4 import configuration\r
+import os\r
+\r
+\r
+class CONFIG(configuration.CONFIG_BASE):\r
+  ## test\r
+  #-----------------------------------\r
+  def __init__(self,appli,repIni):\r
+  #-----------------------------------\r
+\r
+      self.labels_user=['catalogues','lang']\r
+      self.labels_eficas=['lang','rep_cata','catalogues','affiche']\r
+\r
+      configuration.CONFIG_BASE.__init__(self,appli,'.Eficas_monCode')\r
+\r
+\r
+def make_config(appli,rep):\r
+    return CONFIG(appli,rep)\r
+\r
diff --git a/OldCodes/ProcessOutputs_Eficas/mesScripts_PSEN_N1.py b/OldCodes/ProcessOutputs_Eficas/mesScripts_PSEN_N1.py
new file mode 100644 (file)
index 0000000..12bf5db
--- /dev/null
@@ -0,0 +1,23 @@
+def EficasProcessXLS(listeparam) :
+    print "dans processXLS"
+    item=listeparam[0]
+    dico=item.process_N1()
+    print dico
+
+    print "version pour Pascale --> decommenter les 2 lignes suivantes pour Laura"
+    #from Processor import processXLS
+    #processXLS(dico)
+    
+
+# le dictionnaire des commandes a la structure suivante :
+# la clef est la commande qui va proposer l action
+# puis un tuple qui contient
+#      - la fonction a appeler
+#       - le label dans le menu du clic droit
+#      - un tuple contenant les parametres attendus par la fonction
+#      - appelable depuis Salome uniquement -)
+#      - appelable depuis un item valide uniquement 
+#      - toolTip
+dict_commandes={
+   'CONTINGENCY_PROCESSING': ( (EficasProcessXLS,"process",('editor','item',),False,True,"process values "),),
+               }
diff --git a/OldCodes/ProcessOutputs_Eficas/opsPSEN_N1.py b/OldCodes/ProcessOutputs_Eficas/opsPSEN_N1.py
new file mode 100644 (file)
index 0000000..dd0ec57
--- /dev/null
@@ -0,0 +1,195 @@
+
+# -*- coding: iso-8859-1 -*-
+# Copyright (C) 2007-2021   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+from ExtractGeneratorLoadLineandTransfoDicoProcess import *
+import os
+
+path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','TreatOutputs'))
+sys.path.append(path1)
+import Options
+
+def INCLUDE(self,PSSE_path,**args):
+   """
+       Fonction sd_prod pour la macro INCLUDE
+   """
+   CaseFolder = args['output_folder']
+   Options.RecursiveDepth = args['MaxDepth']
+   if CaseFolder==None:
+      return
+   reevalue=0
+   if hasattr(self,'fichier_ini'):
+       reevalue=1
+       if self.fichier_ini == CaseFolder : return
+       if hasattr(self,'old_context_fichier_init' ):
+         for concept in self.old_context_fichier_init.values():
+             self.jdc.delete_concept(concept)
+         self.jdc_aux=None
+         self.contexte_fichier_init={}
+         self.reevalue_sd_jdc()
+         self.jdc.reset_context()
+
+   self.fichier_ini=CaseFolder
+   self.contexte_fichier_init = {}
+   self.fichier_unite = 999
+   self.fichier_err = None
+   self.fichier_text=""
+
+   unite = 999
+
+   CaseFile = ''
+   FolderList = os.listdir(CaseFolder)
+   for folder in FolderList:
+      if folder[0:7] == 'package' or folder[0:4]== 'core':
+         # Get BaseCase.sav inside the first package folder we find
+         FolderContents = os.listdir(os.path.join(CaseFolder, folder))
+         for file in FolderContents:
+            if file == 'BaseCase.sav':
+               CaseFile = os.path.join(os.path.join(CaseFolder, folder), file)
+               break
+         break
+
+           
+   #try:
+   if 1 :
+      BusList, LinesList, TransfosList = getNominalkV(CaseFile)
+      #print "version en dur : decommenter la ligne suivante"
+      #getTrueLines(CaseFile)
+   #except Exception, e:
+   #   exc_type, exc_obj, exc_tb = sys.exec_info()
+   #   print(e)
+   #   print(exc_type, exc_tb.tb_lineno)
+
+   
+   for e in self.jdc.etapes:
+       if e.nom == 'CASE_SELECTION' : 
+          etape=e
+          break
+   self.jdc.editor.changeIntoMC(e, 'BusesList', BusList)
+   self.jdc.editor.changeIntoMC(e, 'LinesList', LinesList)
+   self.jdc.editor.changeIntoMC(e, 'TransformersList', TransfosList)
+
+   self.jdc.editor.changeIntoDefMC('CONTINGENCY_SELECTION', ('Automatic_N_2_Selection', 'BusesList'), BusList)
+   self.jdc.editor.changeIntoDefMC('CONTINGENCY_SELECTION', ('Automatic_N_2_Selection', 'LinesList'), LinesList)
+   self.jdc.editor.changeIntoDefMC('CONTINGENCY_SELECTION', ('Automatic_N_2_Selection', 'TransformersList'), TransfosList)
+   
+
+   try:
+       print "version en dur : decommenter la ligne suivante"
+       #a = updateConts()
+       self.jdc.editor.changeIntoDefMC('CONTINGENCY_SELECTION', ('MultipleContingencyList', 'ComponentList'), Options.ContFullList)
+   except Exception as e:
+      exc_type, exc_obj, exc_tb = sys.exec_info()
+      print(e)
+      print(exc_type, exc_tb.tb_lineno)
+
+
+
+
+
+def INCLUDE_context(self,d):
+   """
+       Fonction op_init pour macro INCLUDE
+   """
+   for k,v in self.g_context.items():
+      d[k]=v
+
+
+def PROCESS_context(self,d):
+    print "dans le init du Process"
+    if self.get_child('XLS_file').valeur == "" or self.get_child('XLS_file').valeur== None : return
+    self.OngletsSelectionnes= self.get_child('b_TabList').get_child('TabList').valeur
+    print "fin de PROCESS_context"
+
+def PROCESS(self,XLS_file,**args):
+
+    # self = Accas.A_MACRO_ETAPE.MACRO_ETAPE
+    self.sauve_args=args
+    if XLS_file == "" or XLS_file == None: return
+    #print XLS_file
+    #Storage.csvFileName = XLS_file
+    # c est la premiere fois
+    
+    if not (hasattr(self,'sheets')) :
+       #print 'attention en dur'
+       #from Processor_Storage import *
+       #print getSheets
+       #getSheets()
+       #ComponentList, ContingencyList = getComponentandContingencyList(Storage.sheets[0])
+       #print ComponentList
+       #print ContingencyList
+       #Storage.selectedDoubleRow[Storage.sheets[0]]=['PV MATIMBA']
+       #Storage.selectedDoubleCol[Storage.sheets[0]]=['MAZENOD_MHDAM_LI1_']
+       #self.jdc.editor.changeIntoMC(self,'TabList',Storage.sheets)
+       #self.sheets=Storage.sheets
+       #self.OngletsValeurs=[]
+
+       from Processor import getXLSinfo        
+       self.sheets = getXLSinfo(XLS_file)
+       self.jdc.editor.changeIntoMC(self,'TabList',self.sheets.keys(),('b_TabList',))
+       self.MCAjoutes=[]
+       self.OngletsSelectionnes=[]
+       
+    else :
+       # On a selectionne un onglet 
+       # On teste si on a modifie la liste des onglets
+
+       nouveauxOngletsSelectionnes= self.get_child('b_TabList').get_child('TabList').valeur
+       if  nouveauxOngletsSelectionnes==self.OngletsSelectionnes : return
+       if nouveauxOngletsSelectionnes==() or nouveauxOngletsSelectionnes == [] :
+          for MC in self.MCAjoutes : self.jdc.editor.deleteMC(self,MC,('b_TabList',))
+          self.MCAjoutes=[]
+          self.OngletsSelectionnes=[]
+          self.jdc.editor.fenetreCentraleAffichee.reaffiche()
+          return
+          
+       for Onglet in nouveauxOngletsSelectionnes:
+           if Onglet in self.OngletsSelectionnes : continue
+
+           MCFils='Component_List_For_'+Onglet
+           monInto=self.sheets[Onglet][0]
+           self.jdc.editor.ajoutDefinitionMC('CONTINGENCY_PROCESSING',('b_TabList',),MCFils,'TXM',min=0, max='**', into=monInto, homo= 'SansOrdreNiDoublon')
+           self.jdc.editor.ajoutMC(self,MCFils,[],('b_TabList',))
+           self.MCAjoutes.append(MCFils)
+
+           MCFils='Contingency_List_For_'+Onglet
+           monInto=self.sheets[Onglet][1]
+           self.jdc.editor.ajoutDefinitionMC('CONTINGENCY_PROCESSING',('b_TabList',),MCFils,'TXM',min=0, max='**', into=monInto, homo= 'SansOrdreNiDoublon')
+           self.jdc.editor.ajoutMC(self,MCFils,[],('b_TabList',))
+           self.MCAjoutes.append(MCFils)
+
+
+       for Onglet in self.OngletsSelectionnes:
+           if Onglet in nouveauxOngletsSelectionnes : continue
+
+           MCFils='Contingency_List_For_'+Onglet
+           self.jdc.editor.deleteMC(self,MCFils,('b_TabList',))
+           self.jdc.editor.deleteDefinitionMC('CONTINGENCY_PROCESSING',('b_TabList',),MCFils)
+           self.MCAjoutes.remove(MCFils)
+
+           MCFils='Component_List_For_'+Onglet
+           self.jdc.editor.deleteMC(self,MCFils,('b_TabList',))
+           self.jdc.editor.deleteDefinitionMC('CONTINGENCY_PROCESSING',('b_TabList',),MCFils)
+           self.MCAjoutes.remove(MCFils)
+
+       self.OngletsSelectionnes=nouveauxOngletsSelectionnes
+       self.jdc.editor.fenetreCentraleAffichee.reaffiche()
+   
diff --git a/OldCodes/ProcessOutputs_Eficas/prefs.py b/OldCodes/ProcessOutputs_Eficas/prefs.py
new file mode 100644 (file)
index 0000000..58beb3b
--- /dev/null
@@ -0,0 +1,22 @@
+# Copyright (C) 2007-2021   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+code="PSEN_N1" 
+import sys, os
+if os.path.dirname(os.path.abspath(__file__)) not in sys.path :
+   sys.path.insert(0,os.path.dirname(os.path.abspath(__file__)))
diff --git a/OldCodes/ProcessOutputs_Eficas/prefs_PSEN_N1.py b/OldCodes/ProcessOutputs_Eficas/prefs_PSEN_N1.py
new file mode 100644 (file)
index 0000000..ffebe86
--- /dev/null
@@ -0,0 +1,42 @@
+# -*- coding: utf-8 -*-
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+
+import os,sys
+# repIni sert a localiser le fichier editeur.ini
+# Obligatoire
+repIni=os.path.dirname(os.path.abspath(__file__))
+INSTALLDIR=os.path.join(repIni,'..')
+sys.path[:0]=[INSTALLDIR]
+
+
+# lang indique la langue utilisee pour les chaines d'aide : fr ou ang
+lang='en' #'fr'
+
+# Codage des strings qui accepte les accents (en remplacement de 'ascii')
+encoding='iso-8859-1'
+docPath=repIni
+
+affiche='ordre'
+
+#
+catalogues=(
+   ('PSEN_N1','default',os.path.join(repIni,'PSEN_Cata_N1.py'),'ProcessOutputs','python'),
+)
diff --git a/OldCodes/ProcessOutputs_Eficas/properties.py b/OldCodes/ProcessOutputs_Eficas/properties.py
new file mode 100644 (file)
index 0000000..1d328a4
--- /dev/null
@@ -0,0 +1,24 @@
+#@ MODIF properties Accas DATE 11/06/2008 AUTEUR aster M.ADMINISTRATEUR
+# RESPONSABLE D6BHHHH J-P.LEFEBVRE
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
+# (AT YOUR OPTION) ANY LATER VERSION.                                 
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
+# ======================================================================
+#     IDENTIFICATION DU GESTIONNAIRE DE COMMANDE ACCAS A PARTIR
+#     DE LA VERSION DU CODE_ASTER ASSOCIE
+#----------------------------------------------------------------------
+version = "1.2"
+date = "25/05/2010"
+exploit = False
diff --git a/OldCodes/ProcessOutputs_Eficas/qtEficas_PSEN_N1.py b/OldCodes/ProcessOutputs_Eficas/qtEficas_PSEN_N1.py
new file mode 100755 (executable)
index 0000000..fea2234
--- /dev/null
@@ -0,0 +1,47 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2021   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+"""
+   Ce module sert a lancer EFICAS configure pour Code_Aster
+"""
+# Modules Python
+# Modules Eficas
+
+import sys,os
+#sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..'))
+import prefs
+name='prefs_'+prefs.code
+__import__(name)
+
+#acceder scripts de Lucie
+path1 = os.path.abspath(os.path.join(os.path.abspath(__file__),'TreatOutputs'))
+path1 = 'C:\\Logiciels DER\\PSEN_V15\\Code\\ProcessOutputs_Eficas\TreatOutputs'
+sys.path.append(path1)
+
+print ('kjlkjlkjkl')
+print ('kjlkjlkjkl')
+print ('kjlkjlkjkl')
+print ('kjlkjlkjkl')
+print ('kjlkjlkjkl')
+print ('kjlkjlkjkl')
+print ('kjlkjlkjkl')
+
+from InterfaceQT4 import eficas_go
+if __name__ == '__main__': eficas_go.lance_eficas(code=prefs.code)
diff --git a/OldCodes/SPECA/SPECA_Cata_V1.py b/OldCodes/SPECA/SPECA_Cata_V1.py
new file mode 100644 (file)
index 0000000..72771cf
--- /dev/null
@@ -0,0 +1,542 @@
+## -*- coding: utf-8 -*-\r
+#\r
+## --------------------------------------------------\r
+## debut entete\r
+## --------------------------------------------------\r
+#\r
+from Accas import *\r
+\r
+\r
+# rend disponible le type tuple (liste)\r
+import types\r
+class Tuple:\r
+  def __init__(self,ntuple):\r
+    self.ntuple=ntuple\r
+\r
+  def __convert__(self,valeur):\r
+    if type(valeur) == types.StringType:\r
+      return None\r
+    if len(valeur) != self.ntuple:\r
+      return None\r
+    return valeur\r
+\r
+  def info(self):\r
+    return "Tuple de %s elements" % self.ntuple\r
+\r
+  __repr__=info\r
+  __str__=info\r
+\r
+\r
+\r
+#\r
+#CONTEXT.debug = 1\r
+\r
+VERSION_CATALOGUE="2.0.0";\r
+\r
+JdC = JDC_CATA ( code = 'SPECA',\r
+                execmodul = None,\r
+                regles=(AU_MOINS_UN('SPECIFICATION_ANALYSE',),\r
+                        AU_PLUS_UN('SPECIFICATION_ANALYSE',),\r
+                        ),\r
+                       )# Fin JDC_CATA\r
+\r
+## ----- SPECIFICATION DE L'ETUDE ----- ##\r
+SPECIFICATION_ANALYSE= MACRO (nom       = 'SPECIFICATION_ANALYSE',\r
+              op        = None,\r
+              UIinfo    = {"groupes":("Machine tournante",)},\r
+              fr        = "Specification des analyses",\r
+              TYPE_ANALYSE     = SIMP(statut='o', typ='TXM',into=('STATIQUE', 'MODALE', 'HARMONIQUE', 'TRANSITOIRE', 'TRANSITOIRE_ACCIDENTEL','SYNTHESE')),\r
+              # pour V1.1 flexion uniquement\r
+              TYPE_COMPORTEMENT = BLOC(condition = "TYPE_ANALYSE in ('MODALE','HARMONIQUE','STATIQUE','TRANSITOIRE','TRANSITOIRE_ACCIDENTEL','SYNTHESE')",\r
+                                        FLEXION = SIMP(statut='o',typ='TXM',into=('OUI',),defaut='OUI',fr="Inclure la flexion ?"),\r
+                                        TORSION = SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='NON',fr="Inclure la torsion ?"),\r
+                                        COMPRESSION = SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='NON',fr="Inclure la compression ?"),\r
+                                      ),\r
+### ----- CALCUL STATIQUE ----- ##\r
+              ANALYSE_STATIQUE = BLOC(condition = "TYPE_ANALYSE == 'STATIQUE' ",\r
+              \r
+                      POIDS = SIMP(statut='o',typ='TXM',into=('OUI','NON'),defaut='OUI',fr="Choix d'application d'un poids"),\r
+                      CHARGES = SIMP(statut='o',typ='TXM',into=('DELIGNAGE','FORCE','AUCUNE'),defaut=None,fr="Choix d'application d'une charge"),\r
+                      DELIGNAGE = BLOC(condition = "CHARGES == 'DELIGNAGE' ",fr="Application d'un delignage",\r
+                              PARAM_DELIGNAGE = FACT(statut='o',min=1,max='**',fr="Parametres du delignage",\r
+                                     NOM_PALIER = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom d'un palier deligne"),\r
+                                     #VALEURS = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des valeurs du delignage du palier"),\r
+                                     DX = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du DX du delignage du palier"),\r
+                                     DY = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du DY du delignage du palier"),\r
+                             ), # fin PARAM_DELIGNAGE\r
+                      ), # fin DELIGNAGE\r
+                      # min=1,max=2,\r
+                      FORCE = BLOC(condition = "CHARGES == 'FORCE' ",fr="Application d'une force",\r
+                              PARAM_FORCE = FACT(statut='o',min=1,max='**',fr="Parametres de la force",\r
+                                     POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la coordonnee de la force"),\r
+                                     MAGNITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement de la magnitude de la force"),\r
+                                     FONC_APPLI = SIMP(statut='f',typ='R',min=2,max=2,defaut=None,fr="Renseignement de la fonction appliquee"),\r
+                              ), # fin PARAM_FORCE\r
+                      ), # fin FORCE\r
+                      ## fin specification calcul statique\r
+                      \r
+                      ## POST-TRAITEMENTS DU CALCUL STATIQUE\r
+                     POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Choix du type de post-traitement",\r
+                         TYPE = SIMP(statut='o',typ='TXM',into=('DEPL_ABS','DEPL_RELA','EFFORTS_PAL','REAC_NODA','CONTRAINTES'),defaut=None,fr="Choix du type de post-traitement"),\r
+                          DEPL = BLOC(condition="TYPE in ('DEPL_ABS','DEPL_RELA') ",fr="Deplacement",regles=UN_PARMI('POSITION','PALIER'),\r
+                              POSITION = SIMP(statut='f',typ='R',defaut=None,fr="Renseignement de la coordonnee du deplacement"),\r
+                              PALIER = SIMP(statut='f',max='**',typ='TXM',defaut=None,fr="Renseignement du nom du palier"),\r
+                          ), # fin DEPL\r
+                          CONTRAINTES = BLOC(condition="TYPE == 'CONTRAINTES' ",fr="Contraintes",regles=UN_PARMI('POSITION','ZONE','TOUT'),\r
+                              POSITION = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee de la contrainte"),\r
+                              ZONE = SIMP(statut='f',typ='TXM',defaut=None,fr="Renseignement de la zone de la contrainte"),\r
+                              TOUT = SIMP(statut='f',typ='TXM',into=('OUI'),fr="Choix de toutes les containtes"),\r
+                          ), # fin CONTRAINTES\r
+                          #REAC_NODA = BLOC(condition="TYPE == 'REAC_NODA' ", fr="Reaction nodale",regles=UN_PARMI('POSITION','ZONE','TOUT'),\r
+                          #REAC_NODA = BLOC(condition="TYPE == 'REAC_NODA' ", fr="Reaction nodale",regles=UN_PARMI('POSITION','TOUT'),\r
+                          REAC_NODA = BLOC(condition="TYPE == 'REAC_NODA' ", fr="Reaction nodale",regles=UN_PARMI('POSITION','PALIER'),\r
+                              POSITION = SIMP(statut='f',typ='R',max=1,defaut=None,fr="Renseignement de la coordonnee de la reaction"),\r
+                              #ZONE = SIMP(statut='f',typ='TXM',defaut=None,fr="Renseignement de l'etiquette de la zone de la reaction"),\r
+                              PALIER = SIMP(statut='f',max='**',typ='TXM',defaut=None,fr="Renseignement du nom du palier"),\r
+                          ), # fin REAC_NODA\r
+                     ), # fin POST_TRAITEMENT\r
+                      ## fin bloc POST_TRAITEMENTS\r
+                      \r
+              ),# fin ANALYSE_STATIQUE\r
+\r
+### ----- CALCUL MODALE ----- ##\r
+              ANALYSE_MODALE = BLOC(condition = "TYPE_ANALYSE == 'MODALE' ",\r
+                      BASE_CALCUL = SIMP(statut='o',typ="TXM",into=('MODALE','PHYSIQUE'),defaut=None,fr="Choix de la base du calcul modal"),\r
+                      BASE_MODALE = BLOC(condition="BASE_CALCUL=='MODALE'",fr="Calcul sur base modale",\r
+                                         regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
+                                         NB_MODES=SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de mode"),\r
+                                         FREQ_MAX=SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale"),\r
+                      ), # fin BASE_MODALE\r
+                      AMORTISSEMENT = SIMP(statut='o',typ='TXM',min=1,max=1,into=('OUI','NON'),defaut='OUI',fr="Choix de prise en compte de l'amortissment"),\r
+                      GYROSCOPIE = SIMP(statut='o',typ='TXM',min=1,max=1,into=('OUI','NON'),defaut='OUI',fr="Choix de prise en compte de la gyroscopie"),\r
+                      VITESSE_ROTATION = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la liste des vitesses de rotation (tr/min)"),\r
+                     OPTION_CALCUL = SIMP(statut='o',typ='TXM',min=1,max=1,into=('PLUS_PETITE','CENTRE'),defaut=None,fr="Choix de l'option de calcul"),\r
+                     # 20121018 EDF demande de retirer cette option : l'option bande ne fonctionne pas avec MODE_ITER_SIMULT\r
+                     #OPTION_CALCUL = SIMP(statut='o',typ='TXM',min=1,max=1,into=('BANDE','PLUS_PETITE','CENTRE'),defaut=None,fr="Choix de l'option de calcul"),\r
+                      #BANDE = BLOC(condition="OPTION_CALCUL=='BANDE'",fr="Option BANDE",\r
+                       #      FREQ_MIN = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence minimale (Hz)"),\r
+                       #     FREQ_MAX = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale (Hz)"),\r
+                      #), # fin BANDE\r
+                      PLUS_PETITE = BLOC(condition="OPTION_CALCUL=='PLUS_PETITE'",fr="Option PLUS_PETITE",\r
+                             NMAX_FREQ = SIMP(statut='o',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre maximal de frequence"),\r
+                      ), # fin PLUS_PETITE\r
+                      CENTRE = BLOC(condition="OPTION_CALCUL=='CENTRE'",fr="Option CENTRE",\r
+                             FREQ = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence centrale (Hz)"),\r
+                             NMAX_FREQ = SIMP(statut='o',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre maximal de frequence"),\r
+                      ), # fin CENTRE\r
+                      METHODE=SIMP(statut='f',typ='TXM',min=1,max=1,into=('QZ','SORENSEN'),defaut='SORENSEN',fr="Choix de la méthode de résolution"),\r
+                      \r
+                      POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Choix du type de post-traitement",\r
+                             TYPE = SIMP(statut='o',typ='TXM',defaut=None,into=('TABLEAU_PARAM_MODAUX','DIAG_CAMPBELL'),),\r
+                             #TABLEAU_PARAM_MODAUX = SIMP(statut='f',typ='TXM',min=1,max=1,defaut=None,into=('SIMPLE','COMPLET'),fr="Choix du type de tableau"),\r
+                             TABLEAU_PARAM_MODAUX = BLOC(condition = "TYPE == 'TABLEAU_PARAM_MODAUX'",fr="Choix du type de tableau",\r
+                                     TABLEAU = SIMP(statut='o',max=1,typ='TXM',defaut='SIMPLE',into=('SIMPLE','COMPLET'),),\r
+                             ), # fin TABLEAU_PARAM_MODAUX\r
+                             DIAG_CAMPBELL = BLOC(condition = "TYPE == 'DIAG_CAMPBELL'", fr = "Choix des options du diagramme de Campbell",\r
+                                     PRECESSION = SIMP(statut='o',typ='TXM',max=1,defaut=None,into=('SOMME','PLUS_GRANDE_ORBITE'),),\r
+                                     SUIVI = SIMP(statut='o',typ='TXM',max=1,defaut=None,into=('SANS_TRI','TRI_PREC','TRI_FORM_MOD'),),\r
+                                      # 20121018 ajout de NB_MODES a la demande de Ionel Nistor\r
+                                     NB_MODES = SIMP(statut='o',typ='I',max=1,defaut=None,fr="Nombre de modes affiches dans le diagramme, doit etre inferieur au nombre de modes calcules"),\r
+                             ), # fin DIAG_CAMPBELL\r
+                             #DIAG_CAMPBELL = SIMP(statut='f',typ='TXM',min=1,max=1,defaut=None,into=('OUI','NON'),fr="Choix de calcul du diagramme de Campbell (uniquement si plusieurs vitesses de rotation ont ete renseignees)",),\r
+                      ), # fin POST_TRAITEMENTS\r
+                      \r
+                      \r
+              ), # fin ANALYSE_MODALE\r
+\r
+## ----- CALCUL HARMONIQUE ----- ##\r
+              ANALYSE_HARMONIQUE = BLOC(condition = "TYPE_ANALYSE == 'HARMONIQUE' ",fr="Analyse harmonique",\r
+              \r
+                      ## specification calcul harmonique\r
+                     BASE_CALCUL = SIMP(statut='o',typ='TXM',into=('PHYSIQUE','MODALE'),defaut=None,fr="Choix de la base du calcul harmonique"),\r
+                     BASE_MODALE = BLOC(condition = "BASE_CALCUL == 'MODALE' ", fr="Calcul harmonique sur base modale",\r
+                             #MODALE = FACT(statut='o',\r
+                                     regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
+                                     NB_MODES = SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de mode"),\r
+                                     FREQ_MAX = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale"),\r
+                             #),# fin MODALE\r
+                     ),# fin BASE_MODALE\r
+                     AMORTISSEMENT_P = BLOC(condition = "BASE_CALCUL == 'PHYSIQUE' ",\r
+                             AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
+                     ), # fin AMORTISSEMENT_P\r
+                     AMORTISSEMENT_M = BLOC(condition = "BASE_CALCUL == 'MODALE' ",\r
+                             AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('REDUIT','STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
+                             # cft modif 20130603\r
+                             #AMOR_REDUIT = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
+                             #        LIST_AMOR = SIMP(statut='o', typ='R', min=1,max='**',defaut=None,fr="Renseignement de la liste des amortissements"),\r
+                             #),# fin AMOR_REDUIT\r
+                             AMOR_MODAL = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
+                                     #AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max=1,defaut=None,fr="Renseignement de l'amortissement modal reduit (en %)"),\r
+                                     AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max='**',defaut=None,fr="Renseignement de l'amortissement modal reduit (en %), la taille de la liste doit etre egale au nombre de modes"),\r
+                             ),# fin AMOR_MODALE\r
+                     ), # fin AMORTISSEMENT_M\r
+                      VITESSE_ROTATION = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la liste des vitesses de rotation"),\r
+                      # 20121018 retrait de defaut_fn a la demande de EDF\r
+                      #CHARGES = SIMP(statut='o',typ='TXM',into=('BALOURD','HARMONIQUE','DEFAUT_FN','EXTERNE'),defaut=None,min=1,max=1,fr="Choix du type de charge a appliquer"),\r
+                      #CHARGES = SIMP(statut='o',typ='TXM',into=('BALOURD','DELIGNAGE','HARMONIQUE','EXTERNE'),defaut=None,min=1,max=1,fr="Choix du type de charge a appliquer"),\r
+                      CHARGES = SIMP(statut='o',typ='TXM',into=('BALOURD','HARMONIQUE','EXTERNE','AUCUNE'),defaut=None,min=1,max=1,fr="Choix du type de charge a appliquer"),\r
+                      BALOURD = BLOC(condition = "CHARGES == 'BALOURD' ",fr="Charge balourd appliquee",\r
+                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee de la charge balourd"),\r
+                              MAGNITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la magnitude de la charge balourd (en kg.m)"),\r
+                              FONC_APPLI = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la fonction appliquee de la charge balourd (autant de valeurs que de vitesses de rotation)"),\r
+                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge balourd (en degres)"),\r
+                      ),# fin BALOURD\r
+                      # 20121106 retrait de delgnage a le demande de EDF\r
+                      #DELIGNAGE = BLOC(condition = "CHARGES == 'DELIGNAGE' ",fr="Application d'un delignage",\r
+                              #PARAM_DELIGNAGE = FACT(statut='o',min=1,max='**',fr="Parametres du delignage",\r
+                                     #PALIERS = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom d'un palier deligne"),\r
+                                     #VALEURS = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des valeurs du delignage du palier"),\r
+                             #), # fin PARAM_DELIGNAGE\r
+                      #), # fin DELIGNAGE\r
+                      HARMONIQUE = BLOC(condition = "CHARGES == 'HARMONIQUE' ",fr="Charge harmonique appliquee",\r
+                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee de la charge harmonique"),\r
+                              PUIS_PULS = SIMP(statut='o',typ='I',min=1,max=1,into=(0,1,2),defaut=None,fr="Renseignement de la puissance de pulsation de la charge harmonique"),\r
+                              PULSATION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la pulsation d'excitation harmonique (en rad/s)"),\r
+                              MAGNITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la magnitude de la charge harmonique, (unite : N.s^i (avec i = PUIS_PULS))"),\r
+                              FONC_APPLI = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la fonction appliquee de la charge harmonique (autant de valeurs que de vitesses de rotation)"),\r
+                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge harmonique (en degres)"),\r
+                              TYPE_DDL = SIMP(statut='o',typ='TXM',min=1,max=1,into=('DX','DRX','DY','DRY'),defaut=None,fr="Renseignement du type de DDL excite sur lequel porte la charge"),\r
+                      ), # fin HARMONIQUE\r
+                      # 20121018 retrait de defaut_fn a la demande de EDF\r
+                      #DEFAUT_FN = BLOC(condition = "CHARGES == 'DEFAUT_FN' ",fr="Charge defaut de fibre neutre appliquee",\r
+                              #POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee du defaut de fibre neutre"),\r
+                              #TR_Y = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du vecteur de translation en Y du defaut de fibre neutre"),\r
+                              #TR_Z = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du vecteur de translation en Z du defaut de fibre neutre"),\r
+                              #ROT_Y = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du moment de rotation en Y du defaut de fibre neutre"),\r
+                              #ROT_Z = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du moment de rotation en Z du defaut de fibre neutre"),\r
+                      #), # fin DEFAUT_FN\r
+                      EXTERNE = BLOC(condition = "CHARGES == 'EXTERNE' ",fr="Charge externe appliquee",\r
+                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee de la charge externe"),\r
+                              FONC_APPLI = SIMP(typ=('Fichier','Charge Externe (*.csv)'),docu='',min=1,max=1,statut='o',defaut=None,fr="Renseignement de la fonction appliquee à la charge externe (fichier cvs)"),\r
+                      ), # fin EXTERNE\r
+                      ## fin secification calcul harmonique\r
+                      \r
+                      # test cft 20120531\r
+                      ## POST-TRAITEMENTS DU CALCUL HARMONIQUE\r
+                      POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Choix du type de post-traitement",\r
+                         #TYPE = SIMP(statut='o',typ='TXM',into=('DEPL_ABS','DEPL_RELA','EFFORTS_PAL','CONTRAINTES'),defaut=None,fr="Choix du type de post-traitement"),\r
+                         # 2012119 retrait de DEPL_ABS\r
+                         #TYPE = SIMP(statut='o',typ='TXM',into=('DEPL_RELA','EFFORTS_PAL','CONTRAINTES'),defaut=None,fr="Choix du type de post-traitement"),\r
+                         # 20130513 ajout de REAC_NODA\r
+                         TYPE = SIMP(statut='o',typ='TXM',into=('DEPL_RELA','REAC_NODA','EFFORTS_PAL','CONTRAINTES'),defaut=None,fr="Choix du type de post-traitement"),\r
+                         DEPL = BLOC(condition = "TYPE in ('DEPL_ABS','DEPL_RELA') ",fr="Deplacement",regles=UN_PARMI('POSITION','PALIER'),\r
+                              POSITION = SIMP(statut='f',typ='R',defaut=None,fr="Renseignement de la coordonnee du deplacement"),\r
+                              PALIER = SIMP(statut='f',max='**',typ='TXM',defaut=None,fr="Renseignement du nom du palier"),\r
+                         ), # fin DEPL\r
+                         # pas d'options pour EFFORTS_PAL et REAC_NODA\r
+                         #EFFORTS_PAL = BLOC(condition = "TYPE == 'EFFORTS_PAL'", fr = "Efforts paliers",\r
+                                 #PALIER = SIMP(statut='o',typ='TXM',max=1,defaut=None,fr="Renseignement de l'etiquette du palier"),\r
+                         #), # fin EFFORTS_PAL\r
+                         # BASE_CALCUL == 'MODALE'\r
+                         CONTRAINTES = BLOC(condition="TYPE == 'CONTRAINTES' ",fr="Contraintes",regles=UN_PARMI('POSITION','ZONE','TOUT'),\r
+                                 POSITION = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee de la contrainte"),\r
+                                 ZONE = SIMP(statut='f',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom de la zone de la contrainte"),\r
+                                 TOUT = SIMP(statut='f',typ='TXM',into=('OUI'),min=1,max=1,fr="Renseignement de la contrainte"),\r
+                         ), # fin CONTRAINTES\r
+                     ),\r
+                     ## fin bloc POST_TRAITEMENTS\r
+                      \r
+              ),# fin ANALYSE_HARMONIQUE\r
+\r
+### ----- CALCUL TRANSITOIRE ----- ##\r
+              ANALYSE_TRANSISTOIRE = BLOC(condition = "TYPE_ANALYSE == 'TRANSITOIRE' ",fr="Analyse transitoire",\r
+                      POIDS = SIMP(statut='o',typ='TXM',into=('OUI','NON'),defaut='OUI',fr="Choix d'application d'un poids"),\r
+                      VITESSE = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,into=('CONSTANTE','VARIABLE'),fr="Renseignement du type de vitesse de rotation"),\r
+                      BASE_C = BLOC(condition ="VITESSE == 'CONSTANTE'",\r
+                              BASE_CALCUL = SIMP(statut='o',typ='TXM',into=('PHYSIQUE','MODALE'),defaut=None,fr="Choix de la base du calcul transitoire"),\r
+                              BASE_MODALE = BLOC(condition = "BASE_CALCUL == 'MODALE' ", fr="Calcul transitoire sur base modale",\r
+                                                regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
+                                      NB_MODES = SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de mode"),\r
+                                     FREQ_MAX = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale"),\r
+                             ),# fin BASE_MODALE\r
+                             AMORTISSEMENT_M = BLOC(condition = "BASE_CALCUL == 'MODALE' ",\r
+                                     AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('REDUIT','STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
+                                     # cft modif 20130603\r
+                                     #AMOR_REDUIT = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
+                                     #        LIST_AMOR = SIMP(statut='o', typ='R', min=1,max='**',defaut=None,fr="Renseignement de la liste des amortissements"),\r
+                                     #),# fin AMOR_REDUIT\r
+                                     AMOR_MODAL = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
+                                             AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max='**',defaut=None,fr="Renseignement de l'amortissement modal reduit (en %), la taille de la liste doit etre egale au nombre de modes"),\r
+                                     ),# fin AMOR_MODALE\r
+                             ), # fin AMORTISSEMENT_M\r
+                      ), # fin BASE_C\r
+                      BASE_V = BLOC(condition ="VITESSE == 'VARIABLE'",\r
+                              BASE_CALCUL = SIMP(statut='o',typ='TXM',into=('MODALE'),defaut='MODALE',fr="Choix de la base du calcul transitoire"),\r
+                              BASE_MODALE = BLOC(condition = "BASE_CALCUL == 'MODALE' ", fr="Calcul transitoire sur base modale",\r
+                                                regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
+                                      NB_MODES = SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de mode"),\r
+                                     FREQ_MAX = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale"),\r
+                             ),# fin BASE_MODALE\r
+                             AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('REDUIT','STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
+                             # cft modif 20130603\r
+                             #AMOR_REDUIT = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
+                             #        LIST_AMOR = SIMP(statut='o', typ='R', min=1,max='**',defaut=None,fr="Renseignement de la liste des amortissements"),\r
+                             #),# fin AMOR_REDUIT\r
+                             AMOR_MODAL = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
+                                     #AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max=1,defaut=None,fr="Renseignement de l'amortissement modal reduit (en %)"),\r
+                                     AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max='**',defaut=None,fr="Renseignement de l'amortissement modal reduit (en %), la taille de la liste doit etre egale au nombre de modes"),\r
+                             ),# fin AMOR_MODALE\r
+                      ), # fin BASE_C\r
+                      #BASE_MODALE = BLOC(condition = "BASE_CALCUL == 'MODALE' ", fr="Calcul transitoire sur base modale",\r
+                     #                   regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
+                      #        NB_MODES = SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de mode"),\r
+                     #        FREQ_MAX = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale"),\r
+                     #),# fin BASE_MODALE\r
+                     # cft modif 20130603\r
+                     \r
+                     #AMORTISSEMENT_P = BLOC(condition = "BASE_CALCUL == 'PHYSIQUE' ",\r
+                     #        AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
+                     #), # fin AMORTISSEMENT_P\r
+                     #AMORTISSEMENT_M = BLOC(condition = "BASE_CALCUL == 'MODALE' ",\r
+                     #        AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('REDUIT','STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
+                     #        # cft modif 20130603\r
+                     #        #AMOR_REDUIT = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
+                     #        #        LIST_AMOR = SIMP(statut='o', typ='R', min=1,max='**',defaut=None,fr="Renseignement de la liste des amortissements"),\r
+                     #        #),# fin AMOR_REDUIT\r
+                     #        AMOR_MODAL = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
+                     #                AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max=1,defaut=None,fr="Renseignement de l'amortissement modal reduit (en %)"),\r
+                     #        ),# fin AMOR_MODALE\r
+                     #), # fin AMORTISSEMENT_M\r
+                     \r
+                     \r
+                     #AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('STRUCTUREL','REDUIT'),defaut=None,fr="Choix du type d'amortissement"),\r
+                     #AMOR_REDUIT = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
+                     #        LIST_AMOR = SIMP(statut='o', typ='R', min=1,max='**',defaut=None,fr="Renseignement de la liste des amortissements"),\r
+                     #),# fin AMOR_REDUIT\r
+                     #AMOR_MODAL = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
+                     #        AMOR_REDUIT = SIMP(statut='o', typ='R', min=1,max=1,defaut=None,fr="Renseignement de l'amortissement modal reduit (en %)"),\r
+                     #),# fin AMOR_MODALE\r
+                     #VITESSE = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,into=('CONSTANTE','VARIABLE'),fr="Renseignement du type de vitesse de rotation"),\r
+                     VITESSE_CONSTANTE = BLOC(condition = "VITESSE == 'CONSTANTE' ", fr="Vitesse de rotation constante",\r
+                              VITESSE_ROTATION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation"),\r
+                      ),# fin VITESSE_CONSTANTE\r
+                      VITESSE_VARIABLE = BLOC(condition = "VITESSE == 'VARIABLE' ", fr="Vitesse de rotation variable", regles=UN_PARMI('LINEAIRE','EXPONENTIELLE','FORMULE'),\r
+                              LINEAIRE = FACT(statut='f',min=1,max=1,fr="Renseignement de la fonction lineaire de la vitesse de rotation",\r
+                                      VITESSE_INITIALE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation initiale (en tr/min)",),\r
+                                      VITESSE_FINALE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation finale (en tr/min)",),\r
+                                      DEPHASAGE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la postion angulaire (en degre)"),\r
+                                      PAS_MAJ = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement du pas (ou liste) de mise a jour des matrices des paliers (en tours)"),\r
+                              ),# fin LINEAIRE\r
+                              EXPONENTIELLE = FACT(statut='f',min=1,max=1,fr="Renseignement de la fonction exponentielle de la vitesse de rotation",\r
+                                      VITESSE_INITIALE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation initiale (en tr/min)",),\r
+                                      VITESSE_FINALE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation finale (en tr/min)",),\r
+                                      DEPHASAGE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la postion angulaire (en degre)"),\r
+                                      LAMBDA = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du parametre de l'exponentielle"),\r
+                                      PAS_MAJ = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement du pas (ou liste) de mise a jour des matrices des paliers (en tours)"),\r
+                              ),# fin VITESSE_EXPONENTIELLE\r
+                              FORMULE = FACT(statut='f',min=1,max=1,fr="Renseignement de la fonction de la vitesse de rotation",\r
+                                      FICHIER = SIMP(statut='o',typ=('Fichier','Formule vitesse rotation (*.*)'),min=1,max=1,defaut=None,fr="Renseignement du fichier contenant les fonctions de la vitesse de rotation"),\r
+                                      OM = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom de la formule de position angulaire (max 8 caractere)"),\r
+                                      PHI = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom de la formule de vitesse angulaire (max 8 caractere)"),\r
+                                      ACC = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom de la formule d'acceleration angulaire (max 8 caractere)"),\r
+                                      PAS_MAJ = SIMP(statut='f',typ='R',min=1,max='**',defaut=None,fr="Renseignement du pas (ou liste) de mise a jour des matrices des paliers (en tours)"),\r
+                              ),# fin VITESSE_EXPONENTIELLE\r
+                      ),# fin VITESSE_VARIABLE\r
+                      #POIDS_PROPRE = SIMP(statut='o',typ='TXM',into=('OUI','NON'),defaut='NON',fr="Choix d'application du poids propre (pesanteur)"),\r
+                      # 20121018 retrait de defaut_fn a la demande de EDF\r
+                      #CHARGES = SIMP(statut='o',typ='TXM',into=('BALOURD','DEFAUT_FN','DELIGNAGE','EXTERNE'),defaut=None,min=1,max=1,fr="Choix du type de charge a appliquer"),\r
+                      # 20121119 retrait de delignage\r
+                      #CHARGES = SIMP(statut='o',typ='TXM',into=('BALOURD','DELIGNAGE','EXTERNE'),defaut=None,min=1,max=1,fr="Choix du type de charge a appliquer"),\r
+                      CHARGES = SIMP(statut='o',typ='TXM',into=('BALOURD','FORCE','HARMONIQUE'),defaut=None,min=1,max=1,fr="Choix du type de charge a appliquer"),\r
+                      BALOURD = BLOC(condition = "CHARGES == 'BALOURD' ",fr="Charge balourd appliquee",\r
+                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee de la charge balourd"),\r
+                              MAGNITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la magnitude de la charge balourd (en kg.m)"),\r
+                              FONC_APPLI = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la fonction appliquee de la charge balourd (autant de valeurs que de vitesses de rotation)"),\r
+                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge balourd (en degres)"),\r
+                              INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseigner l'instant pour déclencher le balourd"),\r
+                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseigner le temps pour la montée jusqu'à la valeur finale du balourd"),\r
+                      ),# fin BALOURD\r
+                      FORCE = BLOC(condition = "CHARGES == 'FORCE' ",fr="Application d'une force",\r
+                              PARAM_FORCE = FACT(statut='o',min=1,max='**',fr="Parametres de la force",\r
+                                     POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la coordonnee de la force"),\r
+                                     MAGNITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement de la magnitude de la force"),\r
+                                     FONC_APPLI = SIMP(statut='f',typ='R',min=2,max=2,defaut=None,fr="Renseignement de la fonction appliquee"),\r
+                              ), # fin PARAM_FORCE\r
+                      ), # fin FORCE\r
+                      HARMONIQUE = BLOC(condition = "CHARGES == 'HARMONIQUE' ",fr="Charge harmonique appliquee",\r
+                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee de la charge harmonique"),\r
+                              PUIS_PULS = SIMP(statut='o',typ='I',min=1,max=1,into=(0,1,2),defaut=None,fr="Renseignement de la puissance de pulsation de la charge harmonique"),\r
+                              PULSATION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la pulsation d'excitation harmonique (en rad/s)"),\r
+                              MAGNITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la magnitude de la charge harmonique, (unite : N.s^i (avec i = PUIS_PULS)"),\r
+                              FONC_APPLI = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la fonction appliquee de la charge harmonique (autant de valeurs que de vitesses de rotation)"),\r
+                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge harmonique (en degres)"),\r
+                              TYPE_DDL = SIMP(statut='o',typ='TXM',min=1,max=1,into=('DX','DRX','DY','DRY'),defaut=None,fr="Renseignement du type de DDL excite sur lequel porte la charge"),\r
+                      ), # fin HARMONIQUE\r
+                     # 20121018 retrait de defaut_fn a la demande de EDF\r
+                      #DEFAUT_FN = BLOC(condition = "CHARGES == 'DEFAUT_FN' ",fr="Charge defaut de fibre neutre appliquee",\r
+                              #POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee du defaut de fibre neutre"),\r
+                              #TR_Y = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du vecteur de translation en Y du defaut de fibre neutre"),\r
+                              #TR_Z = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du vecteur de translation en Z du defaut de fibre neutre"),\r
+                              #ROT_Y = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du moment de rotation en Y du defaut de fibre neutre"),\r
+                              #ROT_Z = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du moment de rotation en Z du defaut de fibre neutre"),\r
+                      #), # fin DEFAUT_FN\r
+                      # 20121119 retrait de delignage\r
+                      #DELIGNAGE = BLOC(condition = "CHARGES == 'DELIGNAGE' ",fr="Application d'un delignage",\r
+                              #PARAM_DELIGNAGE = FACT(statut='o',min=1,max='**',fr="Parametres du delignage",\r
+                                     #PALIERS = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom d'un palier deligne"),\r
+                                     #VALEURS = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des valeurs du delignage du palier"),\r
+                             #), # fin PARAM_DELIGNAGE\r
+                      #), # fin DELIGNAGE\r
+                      # retrait force fichier externe\r
+                      #EXTERNE = BLOC(condition = "CHARGES == 'EXTERNE' ",fr="Charge externe appliquee",\r
+                              #POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee de la charge externe"),\r
+                              #FONC_APPLI = SIMP(typ=('Fichier','Charge Externe (*.csv)'),docu='',min=1,max=1,statut='o',defaut=None,fr="Renseignement de la fonction appliquee à la charge externe (fichier cvs)"),\r
+                      #), # fin EXTERNE\r
+                      ETAT_INIT = FACT(statut='o',fr="Renseignement de l'etat initial",\r
+                              #RESULTAT = SIMP(statut='o',typ=('sd_resultat'),max=1,defaut=None,fr="Choix de la structure de donnees resultat de code aster "),\r
+                              RESULTAT = SIMP(statut='f',typ='TXM',max=1,defaut=None,fr="Choix de la structure de donnees resultat de code aster "),\r
+                              INST_INIT = SIMP(statut='f',typ='R',max=1,defaut=0.0,fr="Renseignement de l'instant initial"),\r
+                      ), # fin ETAT_INIT\r
+                      PARAM_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('PAS','LISTE'),defaut=None,fr="Choix du type de parametrage temporel"),\r
+                      #PAS = BLOC(condition = "VITESSE == 'VARIABLE'",fr="Renseignement des parametres des pas",\r
+                      PAS = BLOC(condition = "PARAM_TEMPS == 'PAS'",fr="Renseignement des parametres des pas",\r
+                              TEMPS_PAS = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement du pas de temps (en s)"),\r
+                              INST_INI = SIMP(statut='f',typ='R',max=1,defaut=None,fr="Renseignement de l'instant initial du pas"),\r
+                              INST_FIN = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement de l'instant final du pas"),\r
+                      ), # fin TEMPS_PAS\r
+                      LIST_INST = BLOC(condition = "PARAM_TEMPS == 'LISTE'",fr="Renseignement d'une liste de pas",\r
+                              LISTE = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement d'une liste de pas"),\r
+                      ), # fin LIST_INST\r
+                      PAS_ARCHIVAGE = SIMP(statut='o',typ='I',max=1,defaut=None,fr="Renseignement du pas d'archivage",),\r
+                      SCHEMA_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('NEWMARK','EULER','WILSON','ADAPT_ORDRE1','ADAPT_ORDRE2','DIFF_CENTRE'),defaut='NEWMARK',fr="Choix d'un schema temporel"),\r
+                      NEWMARK = BLOC(condition = "SCHEMA_TEMPS == 'NEWMARK' ",fr="Choix de la methode de NEWMARK",\r
+                              BETA = SIMP(statut='f',typ='R',max=1,defaut=0.25,fr="Renseignement de la valeur beta pour la methode de NEWMARK"),\r
+                              GAMMA = SIMP(statut='f',typ='R',max=1,defaut=0.25,fr="Renseignement de la valeur gamma pour la methode de NEWMARK"),\r
+                      ),# fin NEWMARK\r
+                      WILSON = BLOC(condition = "SCHEMA_TEMPS == 'WILSON' ",fr="Choix de la methode de WILSON",\r
+                              THETA = SIMP(statut='f',typ='R',max=1,defaut=1.4,fr="Renseignement de la valeur theta pour la methode de WILSON"),\r
+                      ), # fin WILSON\r
+                      #Ionel le 19122012, FISSURE n'est pas dans la V1\r
+                     #FISSURE = BLOC(condition = "BASE_CALCUL == 'MODALE' ",fr="Choix de calcul avec fissure",\r
+                      #        EMPLACEMENT = FACT(statut='o',fr="Renseignement de l'emplacement de la fissure",\r
+                      #                           regles=UN_PARMI('POSITION','NOEUD'),\r
+                      #                POSITION = SIMP(statut='f',typ='R',max=1,defaut=None,fr="Renseignement de la coordonnee de la fissure"),\r
+                      #                NOEUD = SIMP(statut='f',typ='TXM',max=1,defaut=None,fr="Renseignement de l'etiquette du noeud de la fissure"),\r
+                      #        ), # fin EMPLACEMENT\r
+                      #        VITE_ROTA = SIMP(statut='f',typ='R',max=1,defaut=None,fr="Renseignement de ?? "),\r
+                      #        ANGL_INIT = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement de ?? "),\r
+                      #        K_PHI = SIMP(statut='o',typ=('Fichier','K.PHI (*.*)'),docu='',min=1,max=1,defaut=None,fr="Renseignement de la loi de comportement en raideur de la fissure"),\r
+                      #        DK_DPHI = SIMP(statut='o',typ=('Fichier','DK.DPHI (*.*)'),docu='',min=1,max=1,defaut=None,fr="Renseignement de la deivee de la loi de comportement en raideur de la fissure"),\r
+                      #), # fin FISSURE\r
+                      \r
+                      ## POST_TRAITEMENTS de l'analyse transitoire\r
+                      POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Choix des post-traitements",\r
+                             TYPE = SIMP(statut='o',typ='TXM',into=('DEPL_ABS','DEPL_RELA','EFFORTS_PAL','CONTRAINTES'),defaut=None,fr="Choix du type de post-traitement"),\r
+                             DEPL = BLOC(condition = "TYPE in ('DEPL_ABS','DEPL_RELA') ",fr="Deplacement",regles=UN_PARMI('POSITION','PALIER'),\r
+                                     #POSITION_DEPL = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee du deplacement"),\r
+                                     POSITION = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee du deplacement"),\r
+                                     PALIER = SIMP(statut='f',typ='TXM',max=1,defaut=None,fr="Renseignement de l'etiquette du palier"),\r
+                             ), # fin DEPL\r
+                             # 20121119 pas de mots-cles specifique pour efforts_paliers\r
+                             #EFFORTS_PAL = BLOC(condition = "TYPE == 'EFFORTS_PAL'", fr = "Efforts paliers",\r
+                                 #PALIER = SIMP(statut='o',typ='TXM',max=1,defaut=None,fr="Renseignement de l'etiquette du palier"),\r
+                             #), # fin EFFORTS_PAL\r
+                             CONTRAINTES = BLOC(condition = "TYPE == 'CONTRAINTES' ",fr="Contraintes",\r
+                                               regles=UN_PARMI('POSITION','ZONE','TOUT'),\r
+                                     POSITION = SIMP(statut='f',typ='R',max=1,defaut=None,fr="Renseignement de la coordonnee de la contrainte"),\r
+                                     ZONE = SIMP(statut='f',typ='TXM',max=1,defaut=None,fr="Renseignement de l'etiquette de la zone de la contrainte"),\r
+                                     TOUT = SIMP(statut='f',typ='TXM',into=('OUI'),max=1,fr="tout"),\r
+                             ), # fin CONTRAINTES\r
+                     ), # fin POST_TRAITEMENTS\r
+              \r
+              ), # fin ANALYSE_TRANSISTOIRE\r
+              \r
+\r
+### ----- CALCUL COUPLE CODE_ASTER/EYDOS ----- ##\r
+              ANALYSE_TRANSITOIRE_ACCIDENTEL = BLOC(condition = "TYPE_ANALYSE == 'TRANSITOIRE_ACCIDENTEL' ",fr="Analyse transitoire accidentelle",\r
+                      #BASE_MODALE = FACT(statut='o', fr="Choix des parametres de la base modale",                                \r
+                     POIDS = SIMP(statut='o',typ='TXM',into=('OUI','NON'),defaut='OUI',fr="Choix d'application d'un poids"),\r
+                     BASE_MODALE = BLOC(condition = "True", fr="Choix des parametres de la base modale",\r
+                                        regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
+                              NB_MODES = SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de mode"),\r
+                             FREQ_MAX = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale"),\r
+                     ),# fin BASE_MODALE      \r
+                      # cft 20131217 suppression amortissement reduit\r
+                     #AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('STRUCTUREL','REDUIT'),defaut=None,fr="Choix du type d'amortissement"),\r
+                     AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
+                     AMOR_REDUIT = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
+                             #LIST_AMOR = SIMP(statut='o', typ='R', min=1,max='**',defaut=None,fr="Renseignement de la liste des amortissements"),\r
+                             LIST_AMOR = SIMP(statut='o', typ='R', min=1,max='**',defaut=None,fr="Renseignement de la liste des amortissements modaux reduits (en %), la taille de la liste doit etre egale au nombre de modes"),\r
+                     ),# fin AMOR_REDUIT\r
+                      VITESSE_ROTATION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation"),\r
+                      #POIDS_PROPRE = SIMP(statut='o',typ='TXM',into=('OUI','NON'),defaut='NON',fr="Choix d'application du poids propre (pesanteur)"),\r
+                      # 20121018 retrait de defaut_fn a la demande de EDF\r
+                      #CHARGES = SIMP(statut='o',typ='TXM',into=('BALOURD','DEFAUT_FN','DELIGNAGE','EXTERNE','EFFORTS_PALIERS'),defaut=None,min=1,max=1,fr="Choix du type de charge a appliquer"),\r
+                      #CHARGES = SIMP(statut='o',typ='TXM',into=('BALOURD','DELIGNAGE','EXTERNE','EFFORTS_PALIERS'),defaut=None,min=1,max=1,fr="Choix du type de charge a appliquer"),\r
+                      CHARGES = SIMP(statut='o',typ='TXM',into=('BALOURD','EXTERNE'),defaut=None,min=1,max=1,fr="Choix du type de charge a appliquer"),\r
+                      BALOURD = BLOC(condition = "CHARGES == 'BALOURD' ",fr="Charge balourd appliquee",\r
+                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee de la charge balourd"),\r
+                              MAGNITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la magnitude de la charge balourd (en kg.m)"),\r
+                              FONC_APPLI = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la fonction appliquee de la charge balourd (autant de valeurs que de vitesses de rotation)"),\r
+                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge balourd (en degres)"),\r
+                              INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseigner l'instant pour déclencher le balourd"),\r
+                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseigner le temps pour la montée jusqu'à la valeur finale du balourd"),\r
+                      ),# fin BALOURD\r
+                     # a commenter\r
+                     # 20121018 retrait de defaut_fn a la demande de EDF\r
+                      #DEFAUT_FN = BLOC(condition = "CHARGES == 'DEFAUT_FN' ",fr="Charge defaut de fibre neutre appliquee",\r
+                              #POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee du defaut de fibre neutre"),\r
+                              #TR_Y = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du vecteur de translation en Y du defaut de fibre neutre"),\r
+                              #TR_Z = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du vecteur de translation en Z du defaut de fibre neutre"),\r
+                              #ROT_Y = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du moment de rotation en Y du defaut de fibre neutre"),\r
+                              #ROT_Z = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du moment de rotation en Z du defaut de fibre neutre"),\r
+                      #), # fin DEFAUT_FN\r
+                      #DELIGNAGE = BLOC(condition = "CHARGES == 'DELIGNAGE' ",fr="Application d'un delignage",\r
+                              #PARAM_DELIGNAGE = FACT(statut='o',min=1,max='**',fr="Parametres du delignage",\r
+                                     #PALIERS = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom d'un palier deligne"),\r
+                                     #VALEURS = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des valeurs du delignage du palier"),\r
+                             #), # fin PARAM_DELIGNAGE\r
+                      #), # fin DELIGNAGE\r
+                      EXTERNE = BLOC(condition = "CHARGES == 'EXTERNE' ",fr="Charge externe appliquee",\r
+                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee de la charge externe"),\r
+                              FONC_APPLI = SIMP(typ=('Fichier','Charge Externe (*.csv)'),docu='',min=1,max=1,statut='o',defaut=None,fr="Renseignement de la fonction appliquee à la charge externe (fichier cvs)"),\r
+                      ), # fin EXTERNE\r
+                      #EFFORTS_PALIERS = BLOC(condition = "CHARGES == 'EFFORTS_PALIERS' ",fr="Application d'un effort palier",\r
+                              #PALIER = SIMP(statut='o',typ='TXM',max=1,defaut=None,fr="Renseignement de l'etiquette du palier de l'effort"),\r
+                              #VALEURS = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignment de la valeur de l'effort sur le palier"),\r
+                      #), # fin EFFORTS_PALIERS\r
+                      ETAT_INIT = FACT(statut='o',fr="Renseignement de l'etat initial",\r
+                              #RESULTAT = SIMP(statut='o',typ=('sd_resultat'),max=1,defaut=None,fr="Choix de la structure de donnees resultat de code aster "),\r
+                              # 20121126\r
+                              #RESULTAT = SIMP(statut='o',typ='TXM',max=1,defaut=None,fr="Choix de la structure de donnees resultat de code aster "),\r
+                              INST_INIT = SIMP(statut='f',typ='R',max=1,defaut=None,fr="Renseignement de l'instant initial"),\r
+                      ), # fin ETAT_INIT\r
+                      #PARAM_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('PAS','LIST_INST'),defaut=None,fr="Choix du type de parametrage temporel"),\r
+                      # 20121126\r
+                      PARAM_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('PAS'),defaut="PAS",fr="Choix du type de parametrage temporel",),\r
+                      PAS = BLOC(condition = "PARAM_TEMPS == 'PAS' ",fr="Renseignement des parametres des pas",\r
+                              PAS_ASTER = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement du pas de temps Aster (en s)",),\r
+                              PAS_EDYOS = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement du pas de temps Edyos (en s)",),\r
+                              INST_FIN = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement de l'instant final (en s)",),\r
+                      ), # fin TEMPS_PAS\r
+                      #LIST_INST = BLOC(condition = "PARAM_TEMPS == 'LIST_INST' ",fr="Renseignement d'une liste de pas",\r
+                              #LISTE = SIMP(statut='f',typ='R',min=1,max='**',defaut=None,fr="Renseignement d'une liste de pas"),\r
+                      #), # fin LIST_INST\r
+                      PAS_ARCHIVAGE = SIMP(statut='o',typ='I',max=1,defaut=None,fr="Renseignement du pas d'archivage",),\r
+                      PARA_MEM = SIMP(statut='f',typ='I',max=1,defaut=6400,fr="Renseigner la taille de la memoire en Mo",),\r
+                      PARA_CPU = SIMP(statut='f',typ='I',max=1,defaut=10000,fr="Renseigner le temps CPU max en secondes",),\r
+                      SCHEMA_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('EULER','ADAPT_ORDRE1','ADAPT_ORDRE2'),defaut='ADAPT_ORDRE2',fr="Choix d'un schema temporel"),\r
+                      \r
+                      ## POST_TRAITEMENTS de l'analyse transitoire\r
+                      POST_TRAITEMENTS = FACT(statut='o',fr="Choix des post-traitements",\r
+                             TYPE = SIMP(statut='o',typ='TXM',into=('DEPL_ABS','DEPL_RELA','EFFORTS_PAL','CONTRAINTES'),defaut=None,fr="Choix du type de post-traitement"),\r
+                             DEPL = BLOC(condition = "TYPE in ('DEPL_ABS','DEPL_RELA') ",fr="Deplacement",\r
+                                     POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee du deplacement"),\r
+                                     PALIER = SIMP(statut='f',typ='TXM',max=1,defaut=None,fr="Renseignement de l'etiquette du palier"),\r
+                             ), # fin DEPL\r
+                             # pas d'info à rentrer pour les efforts palier (post-traitement sur tout les paliers)\r
+                             #EFFORTS_PAL = BLOC(condition = "TYPE == 'EFFORTS_PAL'", fr = "Efforts paliers",\r
+                                 #PALIER = SIMP(statut='o',typ='TXM',max=1,defaut=None,fr="Renseignement de l'etiquette du palier"),\r
+                             #), # fin EFFORTS_PAL\r
+                             CONTRAINTES = BLOC(condition = "TYPE == 'CONTRAINTES' ",fr="Contraintes",\r
+                                               regles=UN_PARMI('POSITION','ZONE','TOUT'),\r
+                                     POSITION = SIMP(statut='f',typ='R',max=1,defaut=None,fr="Renseignement de la coordonnee de la contrainte"),\r
+                                     ZONE = SIMP(statut='f',typ='TXM',max=1,defaut=None,fr="Renseignement de l'etiquette de la zone de la contrainte"),\r
+                                     TOUT = SIMP(statut='f',typ='TXM',into=('OUI'),max=1,fr="tout"),\r
+                             ), # fin CONTRAINTES\r
+                     ), # fin POST_TRAITEMENTS\r
+                      \r
+                      \r
+              ), # fin ANALYSE_TRANSITOIRE_ACCIDENTEL\r
+                 \r
+)# fin SPECIFICATION_ANALYSE\r
diff --git a/OldCodes/SPECA/SPECA_Cata_V2016.py b/OldCodes/SPECA/SPECA_Cata_V2016.py
new file mode 100644 (file)
index 0000000..fddaecb
--- /dev/null
@@ -0,0 +1,415 @@
+## -*- coding: utf-8 -*-\r
+#\r
+## --------------------------------------------------\r
+## debut entete\r
+## --------------------------------------------------\r
+#\r
+from Accas import *\r
+\r
+\r
+# rend disponible le type tuple (liste)\r
+import types\r
+class Tuple:\r
+  def __init__(self,ntuple):\r
+    self.ntuple=ntuple\r
+\r
+  def __convert__(self,valeur):\r
+    if type(valeur) == types.StringType:\r
+      return None\r
+    if len(valeur) != self.ntuple:\r
+      return None\r
+    return valeur\r
+\r
+  def info(self):\r
+    return "Tuple de %s elements" % self.ntuple\r
+\r
+  __repr__=info\r
+  __str__=info\r
+\r
+\r
+\r
+#\r
+#CONTEXT.debug = 1\r
+\r
+VERSION_CATALOGUE="2016.0.0";\r
+\r
+JdC = JDC_CATA ( code = 'SPECA',\r
+                execmodul = None,\r
+                regles=(AU_MOINS_UN('SPECIFICATION_ANALYSE',),\r
+                        AU_PLUS_UN('SPECIFICATION_ANALYSE',),\r
+                        ),\r
+                       )# Fin JDC_CATA\r
+\r
+## ----- SPECIFICATION DE L'ETUDE ----- ##\r
+SPECIFICATION_ANALYSE= MACRO (nom       = 'SPECIFICATION_ANALYSE',\r
+              op        = None,\r
+              UIinfo    = {"groupes":("Machine tournante",)},\r
+              fr        = "Specification des analyses",\r
+              TYPE_ANALYSE     = SIMP(statut='o', typ='TXM',into=('STATIQUE', 'MODALE', 'HARMONIQUE', 'TRANSITOIRE', 'TRANSITOIRE_ACCIDENTEL','SYNTHESE')),\r
+              # pour V1.1 flexion uniquement\r
+              #TYPE_COMPORTEMENT = SIMP(statut='o', typ='TXM',into=('FLEXION',),defaut='FLEXION',fr="Renseignement du type de comportement voulu"),\r
+              TYPE_COMPORTEMENT = BLOC(condition = "TYPE_ANALYSE in ('MODALE','HARMONIQUE','STATIQUE','TRANSITOIRE','TRANSITOIRE_ACCIDENTEL')",\r
+                                        FLEXION = SIMP(statut='o',typ='TXM',into=('OUI',),defaut='OUI',fr="Prise en compte la flexion de la ligne d'arbres: obligatoire"),\r
+                                        TORSION = SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='NON',fr="Choix de la prise en compte la torsion de la ligne d'arbres"),\r
+                                        COMPRESSION = SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='NON',fr="Choix de la prise en compte la traction/compression de la ligne d'arbres"),\r
+                                      ),\r
+\r
+                 SURCHARGE=BLOC(condition = "TYPE_ANALYSE in ('MODALE','HARMONIQUE','STATIQUE','TRANSITOIRE','TRANSITOIRE_ACCIDENTEL','SYNTHESE')",statut="f",\r
+                                               TEMPLATE=SIMP(  statut="f",\r
+                                                               typ=("Fichier","Fichier Template (*.tpl)"),\r
+                                                               min=1,max=1,\r
+                                                                fr="Utiliser un template d'analyse modifie"\r
+                                                               ),\r
+                                               PARAMETRES= FACT(statut='f',min=1,max='**',fr="Definition et renseignement des parametres utilises dans le template surcharge",\r
+                                                                               CLE=SIMP(statut='o',typ='TXM',defaut=None,fr="Nom du parametre dans le template"),\r
+                                                                               TYPE=SIMP(statut='o',typ='TXM',into=('ENTIER','REEL','CHAINE','FICHIER','REPERTOIRE'),fr="Nature du parametre a renseigner"),\r
+                                                                               ENTIER=BLOC(condition="TYPE=='ENTIER'",\r
+                                                                                       VALUE=SIMP(statut='o',typ='I',defaut=0,fr="Renseignement d'un nombre entier"),\r
+                                                                                       ),\r
+                                                                               REEL=BLOC(condition="TYPE=='REEL'",\r
+                                                                                       VALUE=SIMP(statut='o',typ='R',defaut=0.0,fr="Renseignement d'un nombre reel"),\r
+                                                                                       ),\r
+                                                                               CHAINE=BLOC(condition="TYPE=='CHAINE'",\r
+                                                                                       VALUE=SIMP(statut='o',typ='TXM',defaut='',fr="Renseignement d'une chaine de caracteres"),\r
+                                                                                       ),\r
+                                                                               FICHIER=BLOC(condition="TYPE=='FICHIER'",\r
+                                                                                       VALUE=SIMP(statut='o',typ=("Fichier","All files (*.*)"),fr="Renseignement d'un fichier")\r
+                                                                                       ),\r
+                                                                               REPERTOIRE =BLOC(condition="TYPE=='REPERTOIRE'",\r
+                                                                                       VALUE=SIMP(statut='o',typ="Repertoire",fr="Renseignement d'un repertoire")\r
+                                                                                       ),\r
+\r
+                                                                       ),\r
+                       ),\r
+\r
+\r
+\r
+### ----- CALCUL STATIQUE ----- ##\r
+              ANALYSE_STATIQUE = BLOC(condition = "TYPE_ANALYSE == 'STATIQUE' ",fr="Analyse statique (vitesse de rotation nulle de la ligne d'arbres)",              \r
+                      CHARGES= FACT(statut='o',min=1,max='**',fr="Definition et renseignement du chargement applique",\r
+                      TYPE = SIMP(statut='o',typ='TXM',into=('POIDS','FORCE','MOMENT','DELIGNAGE'),defaut=None,min=1,max=1,fr="Choix du type de chargement a appliquer"),\r
+                      POIDS = BLOC(condition = "TYPE == 'POIDS' ",fr="Prise en compte du champ de pesanteur",\r
+                                             GRAVITE = SIMP(statut='o',typ='R',defaut=9.81,fr="Renseignement de l'intensite de la gravite (m/s^2)"),\r
+                                             DIRECTION = SIMP(statut='o',typ='R',min=3,max=3,defaut=(1,0,0),fr="Renseignement de la direction de la force de gravite"),\r
+                      ), # fin POIDS\r
+                      FORCE = BLOC(condition = "TYPE == 'FORCE' ",fr="Application d'une force ponctuelle",\r
+                                             POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la position axiale ou s'applique la force (m)"),\r
+                                             AMPLITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des 3 composantes decrivant la force (N)"),\r
+                                             #FONC_APPLI = SIMP(statut='f',typ='R',min=2,max=2,defaut=None,fr="Renseignement de la fonction appliquee"),\r
+                      ), # fin FORCE\r
+                      MOMENT = BLOC(condition = "TYPE == 'MOMENT' ",fr="Application d'un moment ponctuel",\r
+                                             POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la position axiale ou s'applique le moment (m)"),\r
+                                             AMPLITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des 3 composantes decrivant le moment (N/m)"),\r
+                      ), # fin MOMENT\r
+                      DELIGNAGE = BLOC(condition = "TYPE == 'DELIGNAGE' ",fr="Application d'un delignage sur un ou plusieurs paliers",\r
+                              NOM_PALIER = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom du palier deligne"),\r
+                              DX = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du delignage suivant X du palier (m)"),\r
+                              DY = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du delignage suivant Y du palier (m)"),\r
+                      ), # fin Delignage\r
+                      ), #fin CHARGES\r
+                     \r
+                      # POST-TRAITEMENTS DU CALCUL STATIQUE\r
+                      POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Definition et renseignement des post-traitements",\r
+                      CONTRAINTES = SIMP(statut='o',typ='TXM',into=('OUI', 'NON'),defaut='NON',fr="Export des contraintes en tout noeud de la ligne d'arbres"),\r
+                  ),  #fin POST_TRAITEMENTS\r
+              ),# fin ANALYSE_STATIQUE\r
+\r
+### ----- CALCUL MODALE ----- ##\r
+              ANALYSE_MODALE = BLOC(condition = "TYPE_ANALYSE == 'MODALE' ",fr="Analyse modale de la ligne d'arbres",\r
+                      BASE_CALCUL = SIMP(statut='o',typ="TXM",into=('MODALE','PHYSIQUE'),defaut=None,fr="Choix du type de resolution de l'analyse modale (sur base physique ou sur base modale)"),\r
+                      BASE_MODALE = BLOC(condition="BASE_CALCUL=='MODALE'",fr="Resolution sur base modale",\r
+                                         regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
+                                         NB_MODES=SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de modes constituant la base de projection"),\r
+                                         FREQ_MAX=SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale des modes constituant la base de projection (Hz)"),\r
+                      ), # fin BASE_MODALE\r
+                      AMORTISSEMENT = SIMP(statut='o',typ='TXM',min=1,max=1,into=('OUI','NON'),defaut='OUI',fr="Choix de la prise en compte de l'amortissment"),\r
+                      GYROSCOPIE = SIMP(statut='o',typ='TXM',min=1,max=1,into=('OUI','NON'),defaut='OUI',fr="Choix de la prise en compte de la gyroscopie"),\r
+                      VITESSE_ROTATION = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la liste des vitesses de rotation etudiees (tr/min)"),\r
+                     OPTION_CALCUL = SIMP(statut='o',typ='TXM',min=1,max=1,into=('PLUS_PETITE','CENTRE'),defaut=None,fr="Choix de l'option de calcul"),\r
+                      PLUS_PETITE = BLOC(condition="OPTION_CALCUL=='PLUS_PETITE'",fr="Calcul des n premieres frequences",\r
+                             NMAX_FREQ = SIMP(statut='o',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre maximal de frequences a calculer"),\r
+                      ), # fin PLUS_PETITE\r
+                      CENTRE = BLOC(condition="OPTION_CALCUL=='CENTRE'",fr="Calcul d'un nombre n de frequences autour d'une frequence donnee",\r
+                             FREQ = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence centrale (Hz)"),\r
+                             NMAX_FREQ = SIMP(statut='o',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre maximal de frequences"),\r
+                      ), # fin CENTRE\r
+                      METHODE=SIMP(statut='f',typ='TXM',min=1,max=1,into=('QZ','SORENSEN'),defaut='SORENSEN',fr="Choix de la methode de resolution"),\r
+\r
+                     # POST-TRAITEMENTS DU CALCUL MODAL\r
+                     POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Definition et renseignement des post-traitements",\r
+                                               TYPE = SIMP(statut='o',typ='TXM',into=('AUCUN','DIAG_CAMPBELL'), defaut = 'AUCUN'),\r
+                                               DIAG_CAMPBELL = BLOC(condition="TYPE == 'DIAG_CAMPBELL'",fr="Choix des options du diagramme de Campbell",\r
+                                               PRECESSION = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,into=('SOMME','PLUS_GRANDE_ORBITE'),fr="Critere de determination de la precession"),\r
+                                               SUIVI= SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,into=('SANS_TRI','TRI_PREC','TRI_FORM_MOD'),fr="Methode de suivi des modes"),\r
+                                               NB_MODES = SIMP(statut='o',typ='I',min=1,max=1,defaut=None,fr="Nombre de modes affiches dans le diagramme, doit etre inferieur au nombre de modes calcules (NMAX_FREQ)"),\r
+                                               ), # fin DIAG_CAMPBELL\r
+                              ),# fin POST_TRAITEMENTS\r
+              ), # fin ANALYSE_MODALE\r
+\r
+## ----- CALCUL HARMONIQUE ----- ##\r
+              ANALYSE_HARMONIQUE = BLOC(condition = "TYPE_ANALYSE == 'HARMONIQUE' ",fr="Analyse harmonique de la ligne d'arbres",\r
+              \r
+                      ## specification calcul harmonique\r
+                     BASE_CALCUL = SIMP(statut='o',typ='TXM',into=('PHYSIQUE','MODALE'),defaut=None,fr="Choix du type de resolution de l'analyse modale (sur base physique ou sur base modale)"),\r
+                     BASE_MODALE = BLOC(condition = "BASE_CALCUL == 'MODALE' ", fr="Resolution sur base modale",\r
+                             #MODALE = FACT(statut='o',\r
+                                     regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
+                                     NB_MODES = SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de modes constituant la base de projection"),\r
+                                     FREQ_MAX = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale des modes constituant la base de projection (Hz)"),\r
+                             #),# fin MODALE\r
+                     ),# fin BASE_MODALE\r
+                     AMORTISSEMENT_P = BLOC(condition = "BASE_CALCUL == 'PHYSIQUE' ",\r
+                             AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('STRUCTUREL',),defaut='STRUCTUREL',fr="Choix du type d'amortissement"),\r
+                     ), # fin AMORTISSEMENT_P\r
+                     AMORTISSEMENT_M = BLOC(condition = "BASE_CALCUL == 'MODALE' ",\r
+                             AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('REDUIT','STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
+                             AMOR_MODAL = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
+                                     #AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max=1,defaut=None,fr="Renseignement de l'amortissement modal reduit (en %)"),\r
+                                     AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max='**',defaut=None,fr="Renseignement de l'amortissement modal reduit (en %), la taille de la liste doit etre egale au nombre de modes constituant la base de projection"),\r
+                             ),# fin AMOR_MODALE\r
+                     ), # fin AMORTISSEMENT_M\r
+                      VITESSE_ROTATION = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la liste des vitesses de rotation etudiees (tr/min)"),\r
+                      # 20121018 retrait de defaut_fn a la demande de EDF\r
+                      CHARGES= FACT(statut='o',min=1,max='**',fr="Definition et renseignement du chargement applique",\r
+                      TYPE = SIMP(statut='o',typ='TXM',into=('BALOURD','HARMONIQUE'),defaut=None,min=1,max=1,fr="Choix du type de chargement a appliquer"),\r
+                      BALOURD = BLOC(condition = "TYPE == 'BALOURD' ",fr="Chargement de type balourd",\r
+                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la position axiale ou s'applique le balourd (m)"),\r
+                              AMPLITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de l'amplitude du balourd (kg.m)"),\r
+                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge balourd (degres)"),\r
+                      ),# fin BALOURD\r
+                      HARMONIQUE = BLOC(condition = "TYPE == 'HARMONIQUE' ",fr="Charge harmonique",\r
+                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la position axiale ou s'applique la charge harmonique (m)"),\r
+                              FREQUENCE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence d'excitation harmonique (Hz)"),\r
+                              AMPLITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de l'amplitude de la charge harmonique, (N)"),\r
+                              FONC_APPLI = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la liste de coefficients appliques sur la charge harmonique (autant que de vitesses de rotation)"),\r
+                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge harmonique (degres)"),\r
+                              TYPE_DDL = SIMP(statut='o',typ='TXM',min=1,max=1,into=('DX','DRX','DY','DRY','DZ','DRZ'),defaut=None,fr="Renseignement du DDL sur lequel s'applique la charge harmonique"),\r
+                      ), # fin HARMONIQUE\r
+                      ), #FIN CHARGES\r
+\r
+                      # POST-TRAITEMENTS DU CALCUL HARMONIQUE\r
+                  POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Definition et renseignement des post-traitements",\r
+                      CONTRAINTES = SIMP(statut='o',typ='TXM',into=('OUI', 'NON'),defaut='NON',fr="Export des contraintes en tout noeud de la ligne d'arbres"),\r
+                  ),\r
+                     ## fin POST_TRAITEMENTS\r
+                      \r
+              ),# fin ANALYSE_HARMONIQUE\r
+\r
+### ----- CALCUL TRANSITOIRE ----- ##\r
+              ANALYSE_TRANSISTOIRE = BLOC(condition = "TYPE_ANALYSE == 'TRANSITOIRE' ",fr="Analyse transitoire de la ligne d'arbres",\r
+                      \r
+                      VITESSE = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,into=('CONSTANTE','VARIABLE'),fr="Renseignement du type de vitesse de rotation consideree"),\r
+                      BASE_C = BLOC(condition ="VITESSE == 'CONSTANTE'",fr="Analyse transitoire a vitesse constante",\r
+                              BASE_CALCUL = SIMP(statut='o',typ='TXM',into=('PHYSIQUE','MODALE'),defaut=None,fr="Choix du type de resolution de l'analyse transitoire (sur base physique ou sur base modale)"),\r
+                              BASE_MODALE = BLOC(condition = "BASE_CALCUL == 'MODALE' ", fr="Resolution sur base modale",\r
+                                               regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
+                                                NB_MODES = SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de modes constituant la base de projection"),\r
+                                               FREQ_MAX = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale des modes constituant la base de projection (Hz)"),\r
+                             ),# fin BASE_MODALE\r
+                             AMORTISSEMENT_M = BLOC(condition = "BASE_CALCUL == 'MODALE' ",\r
+                                     AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('REDUIT','STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
+                                     AMOR_MODAL = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
+                                             AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max='**',defaut=None,fr="Renseignement de l'amortissement modal reduit (en %), la taille de la liste doit etre egale au nombre de modes constituant la base de projection"),\r
+                                     ),# fin AMOR_MODALE\r
+                             ), # fin AMORTISSEMENT_M\r
+                      ), # fin BASE_C\r
+                      BASE_V = BLOC(condition ="VITESSE == 'VARIABLE'",fr="Analyse transitoire a vitesse variable",\r
+                              BASE_CALCUL = SIMP(statut='o',typ='TXM',into=('MODALE',),defaut='MODALE',fr="Choix du type de resolution de l'analyse transitoire (obligatoirement sur base modale)"),\r
+                              BASE_MODALE = BLOC(condition = "BASE_CALCUL == 'MODALE' ", fr="Resolution sur base modale",\r
+                                                regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
+                                      NB_MODES = SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de modes constituant la base de projection"),\r
+                                     FREQ_MAX = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale des modes constituant la base de projection (Hz)"),\r
+                             ),# fin BASE_MODALE\r
+                             AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('REDUIT','STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
+                             AMOR_MODAL = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
+                                     #AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max=1,defaut=None,fr="Renseignement de l'amortissement modal reduit (en %)"),\r
+                                     AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max='**',defaut=None,fr="Renseignement de l'amortissement modal reduit (en %), la taille de la liste doit etre egale au nombre de modes constituant la base de projection"),\r
+                             ),# fin AMOR_MODALE\r
+                      ), # fin BASE_C\r
+                     VITESSE_CONSTANTE = BLOC(condition = "VITESSE == 'CONSTANTE' ", fr="Vitesse de rotation constante",\r
+                              VITESSE_ROTATION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation (tr/min)"),\r
+                      ),# fin VITESSE_CONSTANTE\r
+                      VITESSE_VARIABLE = BLOC(condition = "VITESSE == 'VARIABLE' ", fr="Vitesse de rotation variable", regles=UN_PARMI('LINEAIRE','EXPONENTIELLE','FORMULE'),\r
+                              LINEAIRE = FACT(statut='f',min=1,max=1,fr="Variation lineaire de la vitesse de rotation",\r
+                                      VITESSE_INITIALE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation initiale (tr/min)",),\r
+                                      VITESSE_FINALE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation finale (tr/min)",),\r
+                                      DEPHASAGE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la postion angulaire initiale (degres)"),\r
+                                      PAS_MAJ = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement du pas de mise a jour des matrices des paliers (tr/min)"),\r
+                              ),# fin LINEAIRE\r
+                              EXPONENTIELLE = FACT(statut='f',min=1,max=1,fr="Variation exponentielle de la vitesse de rotation",\r
+                                      VITESSE_INITIALE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation initiale (tr/min)",),\r
+                                      VITESSE_FINALE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation finale (tr/min)",),\r
+                                      DEPHASAGE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la postion angulaire initiale (degres)"),\r
+                                      LAMBDA = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du parametre de la loi exponentielle (Hz)"),\r
+                                      PAS_MAJ = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement du pas de mise a jour des matrices des paliers (tr/min)"),\r
+                              ),# fin EXPONENTIELLE\r
+                              FORMULE = FACT(statut='f',min=1,max=1,fr="Fonction personnalisee decrivant la variation de la vitesse de rotation",\r
+                                      FICHIER = SIMP(statut='o',typ=('Fichier','Formule vitesse rotation (*.*)'),min=1,max=1,defaut=None,fr="Renseignement du fichier contenant les fonctions de la vitesse de rotation"),\r
+                                      PHI = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom de la formule de position angulaire (max 8 caractere)"),\r
+                                      OM = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom de la formule de vitesse angulaire (max 8 caractere)"),\r
+                                      ACC = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom de la formule d'acceleration angulaire (max 8 caractere)"),\r
+                                      VITE_MOY = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la moyenne des vitesses balayees (tr/min)"),\r
+                                      PAS_MAJ = SIMP(statut='f',typ='R',min=1,max='**',defaut=None,fr="Renseignement du pas de mise a jour des matrices des paliers (tr/min)"),\r
+                              ),# fin FORMULE\r
+                      ),# fin VITESSE_VARIABLE\r
+                      #POIDS = SIMP(statut='o',typ='TXM',into=('OUI','NON'),defaut='OUI',fr="Choix d'application d'un poids"),\r
+\r
+                      CHARGES= FACT(statut='o',min=1,max='**',fr="Definition et renseignement du chargement applique",\r
+                      TYPE = SIMP(statut='o',typ='TXM',into=('POIDS','BALOURD','FORCE','MOMENT','HARMONIQUE'),defaut=None,min=1,max=1,fr="Choix du type de chargement a appliquer"),\r
+                      BALOURD = BLOC(condition = "TYPE == 'BALOURD' ",fr="Chargement de type balourd",\r
+                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la position axiale ou s'applique le balourd (m)"),\r
+                              AMPLITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de l'amplitude du balourd (kg.m)"),\r
+                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge balourd (degres)"),\r
+                              INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition du balourd (s)"),\r
+                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre l'amplitude nominale du balourd (s)"),\r
+                      ),# fin BALOURD\r
+                      POIDS = BLOC(condition = "TYPE == 'POIDS' ",fr="Prise en compte du champ de pesanteur",\r
+                                             GRAVITE = SIMP(statut='o',typ='R',defaut=9.81,fr="Renseignement de l'intensite de la gravite (m/s^2)"),\r
+                                             DIRECTION = SIMP(statut='o',typ='R',min=3,max=3,defaut=(1,0,0),fr="Renseignement de la direction de la force de gravite"),\r
+                                             INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition du poids (s)"),\r
+                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre la valeur nominale du poids (s)"),\r
+                      ), # fin POIDS\r
+                      FORCE = BLOC(condition = "TYPE == 'FORCE' ",fr="Application d'une force ponctuelle",\r
+                                             POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la position axiale ou s'applique la force (m)"),\r
+                                             AMPLITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des 3 composantes decrivant la force (N)"),\r
+                                             INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition de la force (s)"),\r
+                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre la valeur nominale de la force (s)"),\r
+                                             #FONC_APPLI = SIMP(statut='f',typ='R',min=2,max=2,defaut=None,fr="Renseignement de la fonction appliquee"),\r
+                      ), # fin FORCE\r
+                      MOMENT = BLOC(condition = "TYPE == 'MOMENT' ",fr="Application d'un moment ponctuel",\r
+                                             POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la position axiale ou s'applique le moment (m)"),\r
+                                             AMPLITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des 3 composantes decrivant le moment (N/m)"),\r
+                                             INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition du moment (s)"),\r
+                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre la valeur nominale du moment (s)"),\r
+                      ), # fin MOMENT\r
+                      HARMONIQUE = BLOC(condition = "TYPE == 'HARMONIQUE' ",fr="Charge harmonique",\r
+                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la position axiale ou s'applique la charge harmonique (m)"),\r
+                              FREQUENCE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence d'excitation harmonique (Hz)"),\r
+                              AMPLITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de l'amplitude de la charge harmonique, (N)"),\r
+                              INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition de la charge harmonique (s)"),\r
+                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre la valeur nominale de la charge harmonique (s)"),\r
+                              #FONC_APPLI = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la fonction appliquee de la charge harmonique (autant de valeurs que de vitesses de rotation)"),\r
+                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge harmonique (degres)"),\r
+                              TYPE_DDL = SIMP(statut='o',typ='TXM',min=1,max=1,into=('DX','DRX','DY','DRY','DZ','DRZ'),defaut=None,fr="Renseignement du DDL sur lequel s'applique la charge harmonique"),\r
+                      ), # fin HARMONIQUE\r
+                      ), #fin CHARGES\r
+\r
+                      ETAT_INIT = FACT(statut='o',fr="Renseignement de l'etat initial du calcul",\r
+                              #RESULTAT = SIMP(statut='o',typ=('sd_resultat'),max=1,defaut=None,fr="Choix de la structure de donnees resultat de code aster "),\r
+                              RESULTAT = SIMP(statut='f',typ='TXM',max=1,defaut=None,fr="Choix de la structure de donnees de type 'resultat' de Code_Aster"),\r
+                              INST_INIT = SIMP(statut='f',typ='R',max=1,defaut=0.0,fr="Renseignement de l'instant de la structure de donnees a partir duquel il faut lancer le calcul (s)"),\r
+                      ), # fin ETAT_INIT\r
+                      PARAM_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('PAS','LISTE'),defaut=None,fr="Choix du type de discretisation temporelle"),\r
+                      #PAS = BLOC(condition = "VITESSE == 'VARIABLE'",fr="Renseignement des parametres des pas",\r
+                      PAS = BLOC(condition = "PARAM_TEMPS == 'PAS'",fr="Renseignement de pas de temps",\r
+                              TEMPS_PAS = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement du pas de temps d'integration(en s)"),\r
+                              INST_INI = SIMP(statut='f',typ='R',max=1,defaut=None,fr="Renseignement de l'instant initial du calcul (s)"),\r
+                              INST_FIN = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement de l'instant final du calcul (s)"),\r
+                      ), # fin TEMPS_PAS\r
+                      LIST_INST = BLOC(condition = "PARAM_TEMPS == 'LISTE'",fr="Renseignement d'une liste d'instants",\r
+                              LISTE = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement d'une liste d'instants auxquels resoudre le calcul (s)"),\r
+                      ), # fin LIST_INST\r
+                      PAS_ARCHIVAGE = SIMP(statut='o',typ='I',max=1,defaut=1,fr="Renseignement du pas d'archivage des resultats (une sauvegarde tous les 'PAS_ARCHIVAGE' instants d'integration)",),\r
+                      SCHEMA_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('NEWMARK','EULER','WILSON','ADAPT_ORDRE1','ADAPT_ORDRE2','DIFF_CENTRE'),defaut='NEWMARK',fr="Choix d'un schema d'integration temporelle"),\r
+                      NEWMARK = BLOC(condition = "SCHEMA_TEMPS == 'NEWMARK' ",fr="Methode de NEWMARK",\r
+                              BETA = SIMP(statut='f',typ='R',max=1,defaut=0.25,fr="Renseignement de la valeur beta pour la methode de NEWMARK"),\r
+                              GAMMA = SIMP(statut='f',typ='R',max=1,defaut=0.25,fr="Renseignement de la valeur gamma pour la methode de NEWMARK"),\r
+                      ),# fin NEWMARK\r
+                      WILSON = BLOC(condition = "SCHEMA_TEMPS == 'WILSON' ",fr="Methode de WILSON",\r
+                              THETA = SIMP(statut='f',typ='R',max=1,defaut=1.4,fr="Renseignement de la valeur theta pour la methode de WILSON"),\r
+                      ), # fin WILSON\r
+                      \r
+                      # POST-TRAITEMENTS DU CALCUL TRANSITOIRE\r
+                  POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Definition et renseignement des post-traitements",\r
+                      CONTRAINTES = SIMP(statut='o',typ='TXM',into=('OUI', 'NON'),defaut='NON',fr="Export des contraintes en tout noeud de la ligne d'arbres"),\r
+                  ), # fin POST_TRAITEMENTS\r
+              \r
+              ), # fin ANALYSE_TRANSISTOIRE\r
+              \r
+\r
+### ----- CALCUL COUPLE CODE_ASTER/EYDOS ----- ##\r
+              ANALYSE_TRANSITOIRE_ACCIDENTEL = BLOC(condition = "TYPE_ANALYSE == 'TRANSITOIRE_ACCIDENTEL' ",fr="Analyse transitoire accidentelle de la ligne d'arbres",\r
+                      #BASE_MODALE = FACT(statut='o', fr="Choix des parametres de la base modale",                                \r
+                     #POIDS = SIMP(statut='o',typ='TXM',into=('OUI','NON'),defaut='OUI',fr="Choix d'application d'un poids"),\r
+                     BASE_MODALE = BLOC(condition = "True", fr="Resolution sur base modale",\r
+                                        regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
+                              NB_MODES = SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de modes constituant la base de projection"),\r
+                             FREQ_MAX = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale des modes constituant la base de projection (Hz)"),\r
+                     ),# fin BASE_MODALE      \r
+                      # cft 20131217 suppression amortissement reduit\r
+                     #AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('STRUCTUREL','REDUIT'),defaut=None,fr="Choix du type d'amortissement"),\r
+                     AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('STRUCTUREL',),defaut='STRUCTUREL',fr="Choix du type d'amortissement"),\r
+                     AMOR_REDUIT = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
+                             #LIST_AMOR = SIMP(statut='o', typ='R', min=1,max='**',defaut=None,fr="Renseignement de la liste des amortissements"),\r
+                             LIST_AMOR = SIMP(statut='o', typ='R', min=1,max='**',defaut=None,fr="Renseignement de la liste des amortissements modaux reduits (en %), la taille de la liste doit etre egale au nombre de modes constituant la base de projection"),\r
+                     ),# fin AMOR_REDUIT\r
+                      VITESSE_ROTATION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation (tr/min)"),\r
+\r
+                      CHARGES= FACT(statut='o',min=1,max='**',fr="Definition et renseignement du chargement applique",\r
+                      TYPE = SIMP(statut='o',typ='TXM',into=('POIDS','BALOURD','FORCE','MOMENT','HARMONIQUE'),defaut=None,min=1,max=1,fr="Choix du type de chargement a appliquer"),\r
+                      BALOURD = BLOC(condition = "TYPE == 'BALOURD' ",fr="Chargement de type balourd",\r
+                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la position axiale ou s'applique le balourd (m)"),\r
+                              AMPLITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de l'amplitude du balourd (kg.m)"),\r
+                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge balourd (degres)"),\r
+                              INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition du balourd (s)"),\r
+                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre l'amplitude nominale du balourd (s)"),\r
+                      ),# fin BALOURD\r
+                      POIDS = BLOC(condition = "TYPE == 'POIDS' ",fr="Prise en compte du champ de pesanteur",\r
+                                             GRAVITE = SIMP(statut='o',typ='R',defaut=9.81,fr="Renseignement de l'intensite de la gravite (m/s^2)"),\r
+                                             DIRECTION = SIMP(statut='o',typ='R',min=3,max=3,defaut=(1,0,0),fr="Renseignement de la direction de la force de gravite"),\r
+                                             INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition du poids (s)"),\r
+                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre la valeur nominale du poids (s)"),\r
+                      ), # fin POIDS\r
+                      FORCE = BLOC(condition = "TYPE == 'FORCE' ",fr="Application d'une force ponctuelle",\r
+                                             POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la position axiale ou s'applique le moment (m)"),\r
+                                             AMPLITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des 3 composantes decrivant le moment (N/m)"),\r
+                                             INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition de la force (s)"),\r
+                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre la valeur nominale de la force (s)"),\r
+                                             #FONC_APPLI = SIMP(statut='f',typ='R',min=2,max=2,defaut=None,fr="Renseignement de la fonction appliquee"),\r
+                      ), # fin FORCE\r
+                      MOMENT = BLOC(condition = "TYPE == 'MOMENT' ",fr="Application d'un moment ponctuel",\r
+                                             POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la position axiale ou s'applique le moment (m)"),\r
+                                             AMPLITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des 3 composantes decrivant le moment (N/m)"),\r
+                                             INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition du moment (s)"),\r
+                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre la valeur nominale du moment (s)"),\r
+                      ), # fin MOMENT\r
+                      HARMONIQUE = BLOC(condition = "TYPE == 'HARMONIQUE' ",fr="Charge harmonique",\r
+                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la position axiale ou s'applique la charge harmonique (m)"),\r
+                              FREQUENCE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence d'excitation harmonique (Hz)"),\r
+                              AMPLITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de l'amplitude de la charge harmonique, (N)"),\r
+                              INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition de la charge harmonique (s)"),\r
+                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre la valeur nominale de la charge harmonique (s)"),\r
+                              #FONC_APPLI = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la fonction appliquee de la charge harmonique (autant de valeurs que de vitesses de rotation)"),\r
+                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge harmonique (degres)"),\r
+                              TYPE_DDL = SIMP(statut='o',typ='TXM',min=1,max=1,into=('DX','DRX','DY','DRY','DZ','DRZ'),defaut=None,fr="Renseignement du DDL sur lequel s'applique la charge harmonique"),\r
+                      ), # fin HARMONIQUE\r
+                      ), #fin CHARGES\r
+                      ETAT_INIT = FACT(statut='o',fr="Renseignement de l'etat initial du calcul",\r
+                              #RESULTAT = SIMP(statut='o',typ=('sd_resultat'),max=1,defaut=None,fr="Choix de la structure de donnees resultat de code aster "),\r
+                              # 20121126\r
+                              #RESULTAT = SIMP(statut='o',typ='TXM',max=1,defaut=None,fr="Choix de la structure de donnees resultat de code aster "),\r
+                              INST_INIT = SIMP(statut='f',typ='R',max=1,defaut=None,fr="Renseignement de l'instant initial a partir duquel il faut lancer le calcul (s)"),\r
+                      ), # fin ETAT_INIT\r
+                      #PARAM_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('PAS','LIST_INST'),defaut=None,fr="Choix du type de parametrage temporel"),\r
+                      # 20121126\r
+                      PARAM_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('PAS',),defaut="PAS",fr="Choix du type de discretisation temporelle",),\r
+                      PAS = BLOC(condition = "PARAM_TEMPS == 'PAS' ",fr="Renseignement de pas de temps",\r
+                              PAS_ASTER = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement du pas de temps d'integration Code_Aster (en s)",),\r
+                              PAS_EDYOS = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement du pas de temps d'integration Edyos (en s)",),\r
+                              INST_FIN = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement de l'instant final du calcul (en s)",),\r
+                      ), # fin TEMPS_PAS\r
+                      #LIST_INST = BLOC(condition = "PARAM_TEMPS == 'LIST_INST' ",fr="Renseignement d'une liste de pas",\r
+                              #LISTE = SIMP(statut='f',typ='R',min=1,max='**',defaut=None,fr="Renseignement d'une liste de pas"),\r
+                      #), # fin LIST_INST\r
+                      PAS_ARCHIVAGE = SIMP(statut='o',typ='I',max=1,defaut=1,fr="Renseignement du pas d'archivage des resultats (une sauvegarde tous les 'PAS_ARCHIVAGE' instants d'integration)",),\r
+                      PARA_MEM = SIMP(statut='f',typ='I',max=1,defaut=6400,fr="Renseigner la taille maximale de la memoire (Mo)",),\r
+                      PARA_CPU = SIMP(statut='f',typ='I',max=1,defaut=10000,fr="Renseigner le temps CPU maximal (s)",),\r
+                      SCHEMA_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('EULER','ADAPT_ORDRE1','ADAPT_ORDRE2'),defaut='ADAPT_ORDRE2',fr="Choix d'un schema d'integration temporelle"),\r
+                      \r
+                      # POST-TRAITEMENTS DU CALCUL TRANSITOIRE ACCIDENTEL\r
+                  POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Definition et renseignement des post-traitements",\r
+                      CONTRAINTES = SIMP(statut='o',typ='TXM',into=('OUI', 'NON'),defaut='NON',fr="Export des contraintes en tout noeud de la ligne d'arbres"),\r
+                  ), # fin POST_TRAITEMENTS\r
+              ), # fin ANALYSE_TRANSITOIRE_ACCIDENTEL\r
+                 \r
+)# fin SPECIFICATION_ANALYSE\r
diff --git a/OldCodes/SPECA/SPECA_Cata_V2_00.py b/OldCodes/SPECA/SPECA_Cata_V2_00.py
new file mode 100644 (file)
index 0000000..f6c34ac
--- /dev/null
@@ -0,0 +1,458 @@
+## -*- coding: utf-8 -*-\r
+#\r
+## --------------------------------------------------\r
+## debut entete\r
+## --------------------------------------------------\r
+#\r
+from Accas import *\r
+\r
+\r
+# rend disponible le type tuple (liste)\r
+import types\r
+class Tuple:\r
+  def __init__(self,ntuple):\r
+    self.ntuple=ntuple\r
+\r
+  def __convert__(self,valeur):\r
+    if type(valeur) == types.StringType:\r
+      return None\r
+    if len(valeur) != self.ntuple:\r
+      return None\r
+    return valeur\r
+\r
+  def info(self):\r
+    return "Tuple de %s elements" % self.ntuple\r
+\r
+  __repr__=info\r
+  __str__=info\r
+\r
+\r
+\r
+#\r
+#CONTEXT.debug = 1\r
+\r
+VERSION_CATALOGUE="2.0.0";\r
+\r
+JdC = JDC_CATA ( code = 'SPECA',\r
+                execmodul = None,\r
+                regles=(AU_MOINS_UN('SPECIFICATION_ANALYSE',),\r
+                        AU_PLUS_UN('SPECIFICATION_ANALYSE',),\r
+                        ),\r
+                       )# Fin JDC_CATA\r
+\r
+## ----- SPECIFICATION DE L'ETUDE ----- ##\r
+SPECIFICATION_ANALYSE= MACRO (nom       = 'SPECIFICATION_ANALYSE',\r
+              op        = None,\r
+              UIinfo    = {"groupes":("Machine tournante",)},\r
+              fr        = "Specification des analyses",\r
+              TYPE_ANALYSE     = SIMP(statut='o', typ='TXM',into=('STATIQUE', 'MODALE', 'HARMONIQUE', 'TRANSITOIRE', 'TRANSITOIRE_ACCIDENTEL','SYNTHESE')),\r
+              # pour V1.1 flexion uniquement\r
+              #TYPE_COMPORTEMENT = SIMP(statut='o', typ='TXM',into=('FLEXION'),defaut='FLEXION',fr="Renseignement du type de comportement voulu"),\r
+              TYPE_COMPORTEMENT = BLOC(condition = "TYPE_ANALYSE in ('MODALE','HARMONIQUE','STATIQUE','TRANSITOIRE','TRANSITOIRE_ACCIDENTEL','SYNTHESE')",\r
+                                        FLEXION = SIMP(statut='o',typ='TXM',into=('OUI',),defaut='OUI',fr="Prise en compte la flexion de la ligne d'arbres: obligatoire"),\r
+                                        TORSION = SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='NON',fr="Choix de la prise en compte la torsion de la ligne d'arbres"),\r
+                                        COMPRESSION = SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='NON',fr="Choix de la prise en compte la traction/compression de la ligne d'arbres"),\r
+                                      ),\r
+\r
+                 SURCHARGE=BLOC(condition = "TYPE_ANALYSE in ('MODALE','HARMONIQUE','STATIQUE','TRANSITOIRE','TRANSITOIRE_ACCIDENTEL','SYNTHESE')",statut="f",\r
+                                               TEMPLATE=SIMP(  statut="f",\r
+                                                               typ=("Fichier","Fichier Template (*.tpl)"),\r
+                                                               min=1,max=1,\r
+                                                                fr="Utiliser un template d'analyse modifie"\r
+                                                               ),\r
+                                               PARAMETRES= FACT(statut='f',min=1,max='**',fr="Definition et renseignement des parametres utilises dans le template surcharge",\r
+                                                                               CLE=SIMP(statut='o',typ='TXM',defaut=None,fr="Nom du parametre dans le template"),\r
+                                                                               TYPE=SIMP(statut='o',typ='TXM',into=('ENTIER','REEL','CHAINE','FICHIER','REPERTOIRE'),fr="Nature du parametre a renseigner"),\r
+                                                                               ENTIER=BLOC(condition="TYPE=='ENTIER'",\r
+                                                                                       VALUE=SIMP(statut='o',typ='I',defaut=0,fr="Renseignement d'un nombre entier"),\r
+                                                                                       ),\r
+                                                                               REEL=BLOC(condition="TYPE=='REEL'",\r
+                                                                                       VALUE=SIMP(statut='o',typ='R',defaut=0.0,fr="Renseignement d'un nombre reel"),\r
+                                                                                       ),\r
+                                                                               CHAINE=BLOC(condition="TYPE=='CHAINE'",\r
+                                                                                       VALUE=SIMP(statut='o',typ='TXM',defaut='',fr="Renseignement d'une chaine de caracteres"),\r
+                                                                                       ),\r
+                                                                               FICHIER=BLOC(condition="TYPE=='FICHIER'",\r
+                                                                                       VALUE=SIMP(statut='o',typ=("Fichier","All files (*.*)"),fr="Renseignement d'un fichier")\r
+                                                                                       ),\r
+                                                                               REPERTOIRE =BLOC(condition="TYPE=='REPERTOIRE'",\r
+                                                                                       VALUE=SIMP(statut='o',typ="Repertoire",fr="Renseignement d'un repertoire")\r
+                                                                                       ),\r
+\r
+                                                                       ),\r
+                       ),\r
+\r
+\r
+\r
+### ----- CALCUL STATIQUE ----- ##\r
+              ANALYSE_STATIQUE = BLOC(condition = "TYPE_ANALYSE == 'STATIQUE' ",fr="Analyse statique (vitesse de rotation nulle de la ligne d'arbres)"\r
+              \r
+                      CHARGES= FACT(statut='o',min=1,max='**',fr="Definition et renseignement du chargement applique",\r
+                      TYPE = SIMP(statut='o',typ='TXM',into=('POIDS','FORCE','MOMENT','DELIGNAGE'),defaut=None,min=1,max=1,fr="Choix du type de chargement a appliquer"),\r
+                      POIDS = BLOC(condition = "TYPE == 'POIDS' ",fr="Prise en compte du champ de pesanteur",\r
+                                             GRAVITE = SIMP(statut='o',typ='R',defaut=9.81,fr="Renseignement de l'intensite de la gravite (m/s^2)"),\r
+                                             DIRECTION = SIMP(statut='o',typ='R',min=3,max=3,defaut=(1,0,0),fr="Renseignement de la direction de la force de gravite"),\r
+                      ), # fin POIDS\r
+                      FORCE = BLOC(condition = "TYPE == 'FORCE' ",fr="Application d'une force ponctuelle",\r
+                                             POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la position axiale ou s'applique la force (m)"),\r
+                                             MAGNITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des 3 composantes decrivant la force (N)"),\r
+                                             #FONC_APPLI = SIMP(statut='f',typ='R',min=2,max=2,defaut=None,fr="Renseignement de la fonction appliquee"),\r
+                      ), # fin FORCE\r
+                      MOMENT = BLOC(condition = "TYPE == 'MOMENT' ",fr="Application d'un moment ponctuel",\r
+                                             POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la position axiale ou s'applique le moment (m)"),\r
+                                             MAGNITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des 3 composantes decrivant le moment (N/m)"),\r
+                      ), # fin MOMENT\r
+                      DELIGNAGE = BLOC(condition = "TYPE == 'DELIGNAGE' ",fr="Application d'un delignage sur un ou plusieurs paliers",\r
+                              NOM_PALIER = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom du palier deligne"),\r
+                              DX = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du delignage suivant X du palier (m)"),\r
+                              DY = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du delignage suivant Y du palier (m)"),\r
+                      ), # fin Delignage\r
+                      ), #fin CHARGES\r
+                     \r
+                      ## POST-TRAITEMENTS DU CALCUL STATIQUE\r
+                     POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Definition et renseignement des post-traitements",\r
+                         TYPE = SIMP(statut='o',typ='TXM',into=('DEPL_ABS','DEPL_RELA','EFFORTS_PAL','REAC_NODA','CONTRAINTES'),defaut=None,fr="Choix du type de post-traitement"),\r
+                          DEPL = BLOC(condition="TYPE in ('DEPL_ABS','DEPL_RELA') ",fr="Deplacement",regles=UN_PARMI('POSITION','PALIER'),\r
+                              POSITION = SIMP(statut='f',typ='R',defaut=None,fr="Renseignement de la coordonnee du deplacement"),\r
+                              PALIER = SIMP(statut='f',max='**',typ='TXM',defaut=None,fr="Renseignement du nom du palier"),\r
+                          ), # fin DEPL\r
+                          CONTRAINTES = BLOC(condition="TYPE == 'CONTRAINTES' ",fr="Export des contraintes",regles=UN_PARMI('POSITION','ZONE','TOUT'),\r
+                              POSITION = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee de la contrainte"),\r
+                              ZONE = SIMP(statut='f',typ='TXM',defaut=None,fr="Renseignement de la zone de la contrainte"),\r
+                              TOUT = SIMP(statut='f',typ='TXM',into=('OUI'),fr="Export pour tous les noeuds"),\r
+                          ), # fin CONTRAINTES\r
+                          REAC_NODA = BLOC(condition="TYPE == 'REAC_NODA' ", fr="Reaction nodale",regles=UN_PARMI('POSITION','PALIER'),\r
+                              POSITION = SIMP(statut='f',typ='R',max=1,defaut=None,fr="Renseignement de la coordonnee de la reaction"),\r
+                              #ZONE = SIMP(statut='f',typ='TXM',defaut=None,fr="Renseignement de l'etiquette de la zone de la reaction"),\r
+                              PALIER = SIMP(statut='f',max='**',typ='TXM',defaut=None,fr="Renseignement du nom du palier"),\r
+                          ), # fin REAC_NODA\r
+                     ), # fin POST_TRAITEMENT\r
+                      ## fin bloc POST_TRAITEMENTS\r
+                      \r
+              ),# fin ANALYSE_STATIQUE\r
+\r
+### ----- CALCUL MODALE ----- ##\r
+              ANALYSE_MODALE = BLOC(condition = "TYPE_ANALYSE == 'MODALE' ",fr="Analyse modale de la ligne d'arbres"\r
+                      BASE_CALCUL = SIMP(statut='o',typ="TXM",into=('MODALE','PHYSIQUE'),defaut=None,fr="Choix du type de resolution de l'analyse modale (sur base physique ou sur base modale)"),\r
+                      BASE_MODALE = BLOC(condition="BASE_CALCUL=='MODALE'",fr="Resolution sur base modale",\r
+                                         regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
+                                         NB_MODES=SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de modes constituant la base de projection"),\r
+                                         FREQ_MAX=SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale des modes constituant la base de projection (Hz)"),\r
+                      ), # fin BASE_MODALE\r
+                      AMORTISSEMENT = SIMP(statut='o',typ='TXM',min=1,max=1,into=('OUI','NON'),defaut='OUI',fr="Choix de la prise en compte de l'amortissment"),\r
+                      GYROSCOPIE = SIMP(statut='o',typ='TXM',min=1,max=1,into=('OUI','NON'),defaut='OUI',fr="Choix de la prise en compte de la gyroscopie"),\r
+                      VITESSE_ROTATION = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la liste des vitesses de rotation etudiees (tr/min)"),\r
+                     OPTION_CALCUL = SIMP(statut='o',typ='TXM',min=1,max=1,into=('PLUS_PETITE','CENTRE'),defaut=None,fr="Choix de l'option de calcul"),\r
+                      PLUS_PETITE = BLOC(condition="OPTION_CALCUL=='PLUS_PETITE'",fr="Option PLUS_PETITE",fr="Calcul des n premieres frequences"\r
+                             NMAX_FREQ = SIMP(statut='o',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre maximal de frequences a calculer"),\r
+                      ), # fin PLUS_PETITE\r
+                      CENTRE = BLOC(condition="OPTION_CALCUL=='CENTRE'",fr="Option CENTRE",fr="Calcul d'un nombre n de frequences autour d'une frequence donnee"\r
+                             FREQ = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence centrale (Hz)"),\r
+                             NMAX_FREQ = SIMP(statut='o',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre maximal de frequences"),\r
+                      ), # fin CENTRE\r
+                      METHODE=SIMP(statut='f',typ='TXM',min=1,max=1,into=('QZ','SORENSEN'),defaut='SORENSEN',fr="Choix de la methode de resolution"),\r
+                      \r
+                      POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Definition et renseignement des post-traitements",\r
+                             TYPE = SIMP(statut='o',typ='TXM',defaut=None,into=('TABLEAU_PARAM_MODAUX','DIAG_CAMPBELL'),fr="Choix du type de post-traitement",),\r
+                             #TABLEAU_PARAM_MODAUX = SIMP(statut='f',typ='TXM',min=1,max=1,defaut=None,into=('SIMPLE','COMPLET'),fr="Choix du type de tableau"),\r
+                             TABLEAU_PARAM_MODAUX = BLOC(condition = "TYPE == 'TABLEAU_PARAM_MODAUX'",fr="Choix du type de tableau",\r
+                                     TABLEAU = SIMP(statut='o',max=1,typ='TXM',defaut='SIMPLE',into=('SIMPLE','COMPLET'),),\r
+                             ), # fin TABLEAU_PARAM_MODAUX\r
+                             DIAG_CAMPBELL = BLOC(condition = "TYPE == 'DIAG_CAMPBELL'", fr = "Choix des options du diagramme de Campbell",\r
+                                     PRECESSION = SIMP(statut='o',typ='TXM',max=1,defaut=None,into=('SOMME','PLUS_GRANDE_ORBITE'),fr="Critere de determination de la precession"),\r
+                                     SUIVI = SIMP(statut='o',typ='TXM',max=1,defaut=None,into=('SANS_TRI','TRI_PREC','TRI_FORM_MOD'),fr="Methode de suivi des modes"),\r
+                                      # 20121018 ajout de NB_MODES a la demande de Ionel Nistor\r
+                                     NB_MODES = SIMP(statut='o',typ='I',max=1,defaut=None,fr="Nombre de modes affiches dans le diagramme, doit etre inferieur au nombre de modes calcules (NMAX_FREQ)"),\r
+                             ), # fin DIAG_CAMPBELL\r
+                             #DIAG_CAMPBELL = SIMP(statut='f',typ='TXM',min=1,max=1,defaut=None,into=('OUI','NON'),fr="Choix de calcul du diagramme de Campbell (uniquement si plusieurs vitesses de rotation ont ete renseignees)",),\r
+                      ), # fin POST_TRAITEMENTS\r
+                      \r
+                      \r
+              ), # fin ANALYSE_MODALE\r
+\r
+## ----- CALCUL HARMONIQUE ----- ##\r
+              ANALYSE_HARMONIQUE = BLOC(condition = "TYPE_ANALYSE == 'HARMONIQUE' ",fr="Analyse harmonique de la ligne d'arbres",\r
+              \r
+                      ## specification calcul harmonique\r
+                     BASE_CALCUL = SIMP(statut='o',typ='TXM',into=('PHYSIQUE','MODALE'),defaut=None,fr="Choix du type de resolution de l'analyse modale (sur base physique ou sur base modale)"),\r
+                     BASE_MODALE = BLOC(condition = "BASE_CALCUL == 'MODALE' ", fr="Resolution sur base modale",\r
+                             #MODALE = FACT(statut='o',\r
+                                     regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
+                                     NB_MODES = SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de modes constituant la base de projection"),\r
+                                     FREQ_MAX = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale des modes constituant la base de projection (Hz)"),\r
+                             #),# fin MODALE\r
+                     ),# fin BASE_MODALE\r
+                     AMORTISSEMENT_P = BLOC(condition = "BASE_CALCUL == 'PHYSIQUE' ",\r
+                             AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
+                     ), # fin AMORTISSEMENT_P\r
+                     AMORTISSEMENT_M = BLOC(condition = "BASE_CALCUL == 'MODALE' ",\r
+                             AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('REDUIT','STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
+                             AMOR_MODAL = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
+                                     #AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max=1,defaut=None,fr="Renseignement de l'amortissement modal reduit (en %)"),\r
+                                     AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max='**',defaut=None,fr="Renseignement de l'amortissement modal reduit (en %), la taille de la liste doit etre egale au nombre de modes constituant la base de projection"),\r
+                             ),# fin AMOR_MODALE\r
+                     ), # fin AMORTISSEMENT_M\r
+                      VITESSE_ROTATION = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la liste des vitesses de rotation etudiees (tr/min)"),\r
+                      # 20121018 retrait de defaut_fn a la demande de EDF\r
+                      CHARGES= FACT(statut='o',min=1,max='**',fr="Definition et renseignement du chargement applique",\r
+                      TYPE = SIMP(statut='o',typ='TXM',into=('BALOURD','HARMONIQUE'),defaut=None,min=1,max=1,fr="Choix du type de chargement a appliquer"),\r
+                      BALOURD = BLOC(condition = "TYPE == 'BALOURD' ",fr="Chargement de type balourd",\r
+                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la position axiale ou s'applique le balourd (m)"),\r
+                              MAGNITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de l'amplitude du balourd (kg.m)"),\r
+                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge balourd (degres)"),\r
+                      ),# fin BALOURD\r
+                      HARMONIQUE = BLOC(condition = "TYPE == 'HARMONIQUE' ",fr="Charge harmonique",\r
+                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la position axiale ou s'applique la charge harmonique (m)"),\r
+                              FREQUENCE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence d'excitation harmonique (Hz)"),\r
+                              MAGNITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de l'amplitude de la charge harmonique, (N)"),\r
+                              FONC_APPLI = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la liste de coefficients appliques sur la charge harmonique (autant que de vitesses de rotation)"),\r
+                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge harmonique (degres)"),\r
+                              TYPE_DDL = SIMP(statut='o',typ='TXM',min=1,max=1,into=('DX','DRX','DY','DRY','DZ','DRZ'),defaut=None,fr="Renseignement du DDL sur lequel s'applique la charge harmonique"),\r
+                      ), # fin HARMONIQUE\r
+                      ), #FIN CHARGES\r
+                      ## POST-TRAITEMENTS DU CALCUL HARMONIQUE\r
+                      POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Definition et renseignement des post-traitements",\r
+                         TYPE = SIMP(statut='o',typ='TXM',into=('DEPL_RELA','REAC_NODA','EFFORTS_PAL','CONTRAINTES'),defaut=None,fr="Choix du type de post-traitement"),\r
+                         DEPL = BLOC(condition = "TYPE in ('DEPL_ABS','DEPL_RELA') ",fr="Deplacement",regles=UN_PARMI('POSITION','PALIER'),\r
+                              POSITION = SIMP(statut='f',typ='R',defaut=None,fr="Renseignement de la coordonnee du deplacement"),\r
+                              PALIER = SIMP(statut='f',max='**',typ='TXM',defaut=None,fr="Renseignement du nom du palier"),\r
+                         ), # fin DEPL\r
+                         CONTRAINTES = BLOC(condition="TYPE == 'CONTRAINTES' ",fr="Export des contraintes",regles=UN_PARMI('POSITION','ZONE','TOUT'),\r
+                                 POSITION = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee de la contrainte"),\r
+                                 ZONE = SIMP(statut='f',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom de la zone de la contrainte"),\r
+                                 TOUT = SIMP(statut='f',typ='TXM',into=('OUI'),min=1,max=1,fr="Export pour tous les noeuds"),\r
+                         ), # fin CONTRAINTES\r
+                     ),\r
+                     ## fin bloc POST_TRAITEMENTS\r
+                      \r
+              ),# fin ANALYSE_HARMONIQUE\r
+\r
+### ----- CALCUL TRANSITOIRE ----- ##\r
+              ANALYSE_TRANSISTOIRE = BLOC(condition = "TYPE_ANALYSE == 'TRANSITOIRE' ",fr="Analyse transitoire de la ligne d'arbres",\r
+                      \r
+                      VITESSE = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,into=('CONSTANTE','VARIABLE'),fr="Renseignement du type de vitesse de rotation consideree"),\r
+                      BASE_C = BLOC(condition ="VITESSE == 'CONSTANTE'",fr="Analyse transitoire a vitesse constante"\r
+                              BASE_CALCUL = SIMP(statut='o',typ='TXM',into=('PHYSIQUE','MODALE'),defaut=None,fr="Choix du type de resolution de l'analyse transitoire (sur base physique ou sur base modale)"),\r
+                              BASE_MODALE = BLOC(condition = "BASE_CALCUL == 'MODALE' ", fr="Resolution sur base modale",\r
+                                               regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
+                                                NB_MODES = SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de modes constituant la base de projection"),\r
+                                               FREQ_MAX = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale des modes constituant la base de projection (Hz)"),\r
+                             ),# fin BASE_MODALE\r
+                             AMORTISSEMENT_M = BLOC(condition = "BASE_CALCUL == 'MODALE' ",\r
+                                     AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('REDUIT','STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
+                                     AMOR_MODAL = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
+                                             AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max='**',defaut=None,fr="Renseignement de l'amortissement modal reduit (en %), la taille de la liste doit etre egale au nombre de modes constituant la base de projection"),\r
+                                     ),# fin AMOR_MODALE\r
+                             ), # fin AMORTISSEMENT_M\r
+                      ), # fin BASE_C\r
+                      BASE_V = BLOC(condition ="VITESSE == 'VARIABLE'",fr="Analyse transitoire a vitesse variable"\r
+                              BASE_CALCUL = SIMP(statut='o',typ='TXM',into=('MODALE'),defaut='MODALE',fr="Choix du type de resolution de l'analyse transitoire (obligatoirement sur base modale)"),\r
+                              BASE_MODALE = BLOC(condition = "BASE_CALCUL == 'MODALE' ", fr="Resolution sur base modale",\r
+                                                regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
+                                      NB_MODES = SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de modes constituant la base de projection"),\r
+                                     FREQ_MAX = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale des modes constituant la base de projection (Hz)"),\r
+                             ),# fin BASE_MODALE\r
+                             AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('REDUIT','STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
+                             AMOR_MODAL = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
+                                     #AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max=1,defaut=None,fr="Renseignement de l'amortissement modal reduit (en %)"),\r
+                                     AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max='**',defaut=None,fr="Renseignement de l'amortissement modal reduit (en %), la taille de la liste doit etre egale au nombre de modes constituant la base de projection"),\r
+                             ),# fin AMOR_MODALE\r
+                      ), # fin BASE_C\r
+                     VITESSE_CONSTANTE = BLOC(condition = "VITESSE == 'CONSTANTE' ", fr="Vitesse de rotation constante",\r
+                              VITESSE_ROTATION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation (tr/min)"),\r
+                      ),# fin VITESSE_CONSTANTE\r
+                      VITESSE_VARIABLE = BLOC(condition = "VITESSE == 'VARIABLE' ", fr="Vitesse de rotation variable", regles=UN_PARMI('LINEAIRE','EXPONENTIELLE','FORMULE'),\r
+                              LINEAIRE = FACT(statut='f',min=1,max=1,fr="Variation lineaire de la vitesse de rotation",\r
+                                      VITESSE_INITIALE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation initiale (tr/min)",),\r
+                                      VITESSE_FINALE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation finale (tr/min)",),\r
+                                      DEPHASAGE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la postion angulaire initiale (degres)"),\r
+                                      PAS_MAJ = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement du pas de mise a jour des matrices des paliers (tr/min)"),\r
+                              ),# fin LINEAIRE\r
+                              EXPONENTIELLE = FACT(statut='f',min=1,max=1,fr="Variation exponentielle de la vitesse de rotation",\r
+                                      VITESSE_INITIALE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation initiale (tr/min)",),\r
+                                      VITESSE_FINALE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation finale (tr/min)",),\r
+                                      DEPHASAGE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la postion angulaire initiale (degres)"),\r
+                                      LAMBDA = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du parametre de la loi exponentielle (Hz)"),\r
+                                      PAS_MAJ = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement du pas de mise a jour des matrices des paliers (tr/min)"),\r
+                              ),# fin EXPONENTIELLE\r
+                              FORMULE = FACT(statut='f',min=1,max=1,fr="Fonction personnalisee decrivant la variation de la vitesse de rotation",\r
+                                      FICHIER = SIMP(statut='o',typ=('Fichier','Formule vitesse rotation (*.*)'),min=1,max=1,defaut=None,fr="Renseignement du fichier contenant les fonctions de la vitesse de rotation"),\r
+                                      PHI = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom de la formule de position angulaire (max 8 caractere)"),\r
+                                      OM = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom de la formule de vitesse angulaire (max 8 caractere)"),\r
+                                      ACC = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom de la formule d'acceleration angulaire (max 8 caractere)"),\r
+                                      VITE_MOY = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la moyenne des vitesses balayees (tr/min)"),\r
+                                      PAS_MAJ = SIMP(statut='f',typ='R',min=1,max='**',defaut=None,fr="Renseignement du pas de mise a jour des matrices des paliers (tr/min)"),\r
+                              ),# fin FORMULE\r
+                      ),# fin VITESSE_VARIABLE\r
+                      #POIDS = SIMP(statut='o',typ='TXM',into=('OUI','NON'),defaut='OUI',fr="Choix d'application d'un poids"),\r
+\r
+                      CHARGES= FACT(statut='o',min=1,max='**',fr="Definition et renseignement du chargement applique",\r
+                      TYPE = SIMP(statut='o',typ='TXM',into=('POIDS','BALOURD','FORCE','MOMENT','HARMONIQUE'),defaut=None,min=1,max=1,fr="Choix du type de chargement a appliquer"),\r
+                      BALOURD = BLOC(condition = "TYPE == 'BALOURD' ",fr="Chargement de type balourd",\r
+                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la position axiale ou s'applique le balourd (m)"),\r
+                              MAGNITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de l'amplitude du balourd (kg.m)"),\r
+                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge balourd (degres)"),\r
+                              INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition du balourd (s)"),\r
+                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre l'amplitude nominale du balourd (s)"),\r
+                      ),# fin BALOURD\r
+                      POIDS = BLOC(condition = "TYPE == 'POIDS' ",fr="Prise en compte du champ de pesanteur",\r
+                                             GRAVITE = SIMP(statut='o',typ='R',defaut=9.81,fr="Renseignement de l'intensite de la gravite (m/s^2)"),\r
+                                             DIRECTION = SIMP(statut='o',typ='R',min=3,max=3,defaut=(1,0,0),fr="Renseignement de la direction de la force de gravite"),\r
+                      ), # fin POIDS\r
+                      FORCE = BLOC(condition = "TYPE == 'FORCE' ",fr="Application d'une force ponctuelle",\r
+                                             POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la position axiale ou s'applique la force (m)"),\r
+                                             MAGNITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des 3 composantes decrivant la force (N)"),\r
+                                             #FONC_APPLI = SIMP(statut='f',typ='R',min=2,max=2,defaut=None,fr="Renseignement de la fonction appliquee"),\r
+                      ), # fin FORCE\r
+                      MOMENT = BLOC(condition = "TYPE == 'MOMENT' ",fr="Application d'un moment ponctuel",\r
+                                             POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la position axiale ou s'applique le moment (m)"),\r
+                                             MAGNITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des 3 composantes decrivant le moment (N/m)"),\r
+                      ), # fin MOMENT\r
+                      HARMONIQUE = BLOC(condition = "TYPE == 'HARMONIQUE' ",fr="Charge harmonique",\r
+                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la position axiale ou s'applique la charge harmonique (m)"),\r
+                              FREQUENCE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence d'excitation harmonique (Hz)"),\r
+                              MAGNITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de l'amplitude de la charge harmonique, (N)"),\r
+                              #FONC_APPLI = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la fonction appliquee de la charge harmonique (autant de valeurs que de vitesses de rotation)"),\r
+                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge harmonique (degres)"),\r
+                              TYPE_DDL = SIMP(statut='o',typ='TXM',min=1,max=1,into=('DX','DRX','DY','DRY','DZ','DRZ'),defaut=None,fr="Renseignement du DDL sur lequel s'applique la charge harmonique"),\r
+                      ), # fin HARMONIQUE\r
+                      ), #fin CHARGES\r
+\r
+                      ETAT_INIT = FACT(statut='o',fr="Renseignement de l'etat initial du calcul",\r
+                              #RESULTAT = SIMP(statut='o',typ=('sd_resultat'),max=1,defaut=None,fr="Choix de la structure de donnees resultat de code aster "),\r
+                              RESULTAT = SIMP(statut='f',typ='TXM',max=1,defaut=None,fr="Choix de la structure de donnees de type 'resultat' de Code_Aster"),\r
+                              INST_INIT = SIMP(statut='f',typ='R',max=1,defaut=0.0,fr="Renseignement de l'instant de la structure de donnees a partir duquel il faut lancer le calcul (s)"),\r
+                      ), # fin ETAT_INIT\r
+                      PARAM_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('PAS','LISTE'),defaut=None,fr="Choix du type de discretisation temporelle"),\r
+                      #PAS = BLOC(condition = "VITESSE == 'VARIABLE'",fr="Renseignement des parametres des pas",\r
+                      PAS = BLOC(condition = "PARAM_TEMPS == 'PAS'",fr="Renseignement de pas de temps",\r
+                              TEMPS_PAS = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement du pas de temps d'integration(en s)"),\r
+                              INST_INI = SIMP(statut='f',typ='R',max=1,defaut=None,fr="Renseignement de l'instant initial du calcul (s)"),\r
+                              INST_FIN = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement de l'instant final du calcul (s)"),\r
+                      ), # fin TEMPS_PAS\r
+                      LIST_INST = BLOC(condition = "PARAM_TEMPS == 'LISTE'",fr="Renseignement d'une liste d'instants",\r
+                              LISTE = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement d'une liste d'instants auxquels resoudre le calcul (s)"),\r
+                      ), # fin LIST_INST\r
+                      PAS_ARCHIVAGE = SIMP(statut='o',typ='I',max=1,defaut=1,fr="Renseignement du pas d'archivage des resultats (une sauvegarde tous les 'PAS_ARCHIVAGE' instants d'integration)",),\r
+                      SCHEMA_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('NEWMARK','EULER','WILSON','ADAPT_ORDRE1','ADAPT_ORDRE2','DIFF_CENTRE'),defaut='NEWMARK',fr="Choix d'un schema d'integration temporelle"),\r
+                      NEWMARK = BLOC(condition = "SCHEMA_TEMPS == 'NEWMARK' ",fr="Methode de NEWMARK",\r
+                              BETA = SIMP(statut='f',typ='R',max=1,defaut=0.25,fr="Renseignement de la valeur beta pour la methode de NEWMARK"),\r
+                              GAMMA = SIMP(statut='f',typ='R',max=1,defaut=0.25,fr="Renseignement de la valeur gamma pour la methode de NEWMARK"),\r
+                      ),# fin NEWMARK\r
+                      WILSON = BLOC(condition = "SCHEMA_TEMPS == 'WILSON' ",fr="Methode de WILSON",\r
+                              THETA = SIMP(statut='f',typ='R',max=1,defaut=1.4,fr="Renseignement de la valeur theta pour la methode de WILSON"),\r
+                      ), # fin WILSON\r
+                      \r
+                      ## POST_TRAITEMENTS de l'analyse transitoire\r
+                      POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Definition et renseignement des post-traitements",\r
+                             TYPE = SIMP(statut='o',typ='TXM',into=('DEPL_ABS','DEPL_RELA','EFFORTS_PAL','CONTRAINTES'),defaut=None,fr="Choix du type de post-traitement"),\r
+                             DEPL = BLOC(condition = "TYPE in ('DEPL_ABS','DEPL_RELA') ",fr="Deplacement",regles=UN_PARMI('POSITION','PALIER'),\r
+                                     #POSITION_DEPL = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee du deplacement"),\r
+                                     POSITION = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee du deplacement"),\r
+                                     PALIER = SIMP(statut='f',typ='TXM',max=1,defaut=None,fr="Renseignement de l'etiquette du palier"),\r
+                             ), # fin DEPL\r
+                             CONTRAINTES = BLOC(condition = "TYPE == 'CONTRAINTES' ",fr="Export des contraintes",\r
+                                               regles=UN_PARMI('POSITION','ZONE','TOUT'),\r
+                                     POSITION = SIMP(statut='f',typ='R',max=1,defaut=None,fr="Renseignement de la coordonnee de la contrainte"),\r
+                                     ZONE = SIMP(statut='f',typ='TXM',max=1,defaut=None,fr="Renseignement de l'etiquette de la zone de la contrainte"),\r
+                                     TOUT = SIMP(statut='f',typ='TXM',into=('OUI'),max=1,fr="Export pour tous les noeuds"),\r
+                             ), # fin CONTRAINTES\r
+                     ), # fin POST_TRAITEMENTS\r
+              \r
+              ), # fin ANALYSE_TRANSISTOIRE\r
+              \r
+\r
+### ----- CALCUL COUPLE CODE_ASTER/EYDOS ----- ##\r
+              ANALYSE_TRANSITOIRE_ACCIDENTEL = BLOC(condition = "TYPE_ANALYSE == 'TRANSITOIRE_ACCIDENTEL' ",fr="Analyse transitoire accidentelle de la ligne d'arbres",\r
+                      #BASE_MODALE = FACT(statut='o', fr="Choix des parametres de la base modale",                                \r
+                     #POIDS = SIMP(statut='o',typ='TXM',into=('OUI','NON'),defaut='OUI',fr="Choix d'application d'un poids"),\r
+                     BASE_MODALE = BLOC(condition = "True", fr="Resolution sur base modale",\r
+                                        regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
+                              NB_MODES = SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de modes constituant la base de projection"),\r
+                             FREQ_MAX = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale des modes constituant la base de projection (Hz)"),\r
+                     ),# fin BASE_MODALE      \r
+                      # cft 20131217 suppression amortissement reduit\r
+                     #AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('STRUCTUREL','REDUIT'),defaut=None,fr="Choix du type d'amortissement"),\r
+                     AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
+                     AMOR_REDUIT = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
+                             #LIST_AMOR = SIMP(statut='o', typ='R', min=1,max='**',defaut=None,fr="Renseignement de la liste des amortissements"),\r
+                             LIST_AMOR = SIMP(statut='o', typ='R', min=1,max='**',defaut=None,fr="Renseignement de la liste des amortissements modaux reduits (en %), la taille de la liste doit etre egale au nombre de modes constituant la base de projection"),\r
+                     ),# fin AMOR_REDUIT\r
+                      VITESSE_ROTATION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation (tr/min)"),\r
+\r
+                      CHARGES= FACT(statut='o',min=1,max='**',fr="Definition et renseignement du chargement applique",\r
+                      TYPE = SIMP(statut='o',typ='TXM',into=('POIDS','BALOURD','FORCE','MOMENT','HARMONIQUE'),defaut=None,min=1,max=1,fr="Choix du type de chargement a appliquer"),\r
+                      BALOURD = BLOC(condition = "TYPE == 'BALOURD' ",fr="Chargement de type balourd",\r
+                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la position axiale ou s'applique le balourd (m)"),\r
+                              MAGNITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de l'amplitude du balourd (kg.m)"),\r
+                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge balourd (degres)"),\r
+                              INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition du balourd (s)"),\r
+                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre l'amplitude nominale du balourd (s)"),\r
+                      ),# fin BALOURD\r
+                      POIDS = BLOC(condition = "TYPE == 'POIDS' ",fr="Prise en compte du champ de pesanteur",\r
+                                             GRAVITE = SIMP(statut='o',typ='R',defaut=9.81,fr="Renseignement de l'intensite de la gravite (m/s^2)"),\r
+                                             DIRECTION = SIMP(statut='o',typ='R',min=3,max=3,defaut=(1,0,0),fr="Renseignement de la direction de la force de gravite"),\r
+                      ), # fin POIDS\r
+                      FORCE = BLOC(condition = "TYPE == 'FORCE' ",fr="Application d'une force ponctuelle",\r
+                                             POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la position axiale ou s'applique le moment (m)"),\r
+                                             MAGNITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des 3 composantes decrivant le moment (N/m)"),\r
+                                             #FONC_APPLI = SIMP(statut='f',typ='R',min=2,max=2,defaut=None,fr="Renseignement de la fonction appliquee"),\r
+                      ), # fin FORCE\r
+                      MOMENT = BLOC(condition = "TYPE == 'MOMENT' ",fr="Application d'un moment ponctuel",\r
+                                             POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la position axiale ou s'applique le moment (m)"),\r
+                                             MAGNITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des 3 composantes decrivant le moment (N/m)"),\r
+                      ), # fin MOMENT\r
+                      HARMONIQUE = BLOC(condition = "TYPE == 'HARMONIQUE' ",fr="Charge harmonique",\r
+                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la position axiale ou s'applique la charge harmonique (m)"),\r
+                              FREQUENCE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence d'excitation harmonique (Hz)"),\r
+                              MAGNITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de l'amplitude de la charge harmonique, (N)"),\r
+                              #FONC_APPLI = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la fonction appliquee de la charge harmonique (autant de valeurs que de vitesses de rotation)"),\r
+                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge harmonique (degres)"),\r
+                              TYPE_DDL = SIMP(statut='o',typ='TXM',min=1,max=1,into=('DX','DRX','DY','DRY','DZ','DRZ'),defaut=None,fr="Renseignement du DDL sur lequel s'applique la charge harmonique"),\r
+                      ), # fin HARMONIQUE\r
+                      ), #fin CHARGES\r
+                      ETAT_INIT = FACT(statut='o',fr="Renseignement de l'etat initial du calcul",\r
+                              #RESULTAT = SIMP(statut='o',typ=('sd_resultat'),max=1,defaut=None,fr="Choix de la structure de donnees resultat de code aster "),\r
+                              # 20121126\r
+                              #RESULTAT = SIMP(statut='o',typ='TXM',max=1,defaut=None,fr="Choix de la structure de donnees resultat de code aster "),\r
+                              INST_INIT = SIMP(statut='f',typ='R',max=1,defaut=None,fr="Renseignement de l'instant initial a partir duquel il faut lancer le calcul (s)"),\r
+                      ), # fin ETAT_INIT\r
+                      #PARAM_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('PAS','LIST_INST'),defaut=None,fr="Choix du type de parametrage temporel"),\r
+                      # 20121126\r
+                      PARAM_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('PAS'),defaut="PAS",fr="Choix du type de discretisation temporelle",),\r
+                      PAS = BLOC(condition = "PARAM_TEMPS == 'PAS' ",fr="Renseignement de pas de temps",\r
+                              PAS_ASTER = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement du pas de temps d'integration Code_Aster (en s)",),\r
+                              PAS_EDYOS = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement du pas de temps d'integration Edyos (en s)",),\r
+                              INST_FIN = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement de l'instant final du calcul (en s)",),\r
+                      ), # fin TEMPS_PAS\r
+                      #LIST_INST = BLOC(condition = "PARAM_TEMPS == 'LIST_INST' ",fr="Renseignement d'une liste de pas",\r
+                              #LISTE = SIMP(statut='f',typ='R',min=1,max='**',defaut=None,fr="Renseignement d'une liste de pas"),\r
+                      #), # fin LIST_INST\r
+                      PAS_ARCHIVAGE = SIMP(statut='o',typ='I',max=1,defaut=1,fr="Renseignement du pas d'archivage des resultats (une sauvegarde tous les 'PAS_ARCHIVAGE' instants d'integration)",),\r
+                      PARA_MEM = SIMP(statut='f',typ='I',max=1,defaut=6400,fr="Renseigner la taille maximale de la memoire (Mo)",),\r
+                      PARA_CPU = SIMP(statut='f',typ='I',max=1,defaut=10000,fr="Renseigner le temps CPU maximal (s)",),\r
+                      SCHEMA_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('EULER','ADAPT_ORDRE1','ADAPT_ORDRE2'),defaut='ADAPT_ORDRE2',fr="Choix d'un schema d'integration temporelle"),\r
+                      \r
+                      ## POST_TRAITEMENTS de l'analyse transitoire\r
+                      POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Definition et renseignement des post-traitements",\r
+                             TYPE = SIMP(statut='o',typ='TXM',into=('DEPL_ABS','DEPL_RELA','EFFORTS_PAL','CONTRAINTES'),defaut=None,fr="Choix du type de post-traitement"),\r
+                             DEPL = BLOC(condition = "TYPE in ('DEPL_ABS','DEPL_RELA') ",fr="Deplacement",\r
+                                     POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee du deplacement"),\r
+                                     PALIER = SIMP(statut='f',typ='TXM',max=1,defaut=None,fr="Renseignement de l'etiquette du palier"),\r
+                             ), # fin DEPL\r
+                             # pas d'info à rentrer pour les efforts palier (post-traitement sur tout les paliers)\r
+                             #EFFORTS_PAL = BLOC(condition = "TYPE == 'EFFORTS_PAL'", fr = "Efforts paliers",\r
+                                 #PALIER = SIMP(statut='o',typ='TXM',max=1,defaut=None,fr="Renseignement de l'etiquette du palier"),\r
+                             #), # fin EFFORTS_PAL\r
+                             CONTRAINTES = BLOC(condition = "TYPE == 'CONTRAINTES' ",fr="Export des contraintes",\r
+                                               regles=UN_PARMI('POSITION','ZONE','TOUT'),\r
+                                     POSITION = SIMP(statut='f',typ='R',max=1,defaut=None,fr="Renseignement de la coordonnee de la contrainte"),\r
+                                     ZONE = SIMP(statut='f',typ='TXM',max=1,defaut=None,fr="Renseignement de l'etiquette de la zone de la contrainte"),\r
+                                     TOUT = SIMP(statut='f',typ='TXM',into=('OUI'),max=1,fr="Export pour tous les noeuds"),\r
+                             ), # fin CONTRAINTES\r
+                     ), # fin POST_TRAITEMENTS\r
+                      \r
+                      \r
+              ), # fin ANALYSE_TRANSITOIRE_ACCIDENTEL\r
+                 \r
+)# fin SPECIFICATION_ANALYSE\r
diff --git a/OldCodes/SPECA/configuration_SPECA.py b/OldCodes/SPECA/configuration_SPECA.py
new file mode 100644 (file)
index 0000000..b9b56fe
--- /dev/null
@@ -0,0 +1,43 @@
+# -*- coding: utf-8 -*-\r
+#            CONFIGURATION MANAGEMENT OF EDF VERSION\r
+# ======================================================================\r
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG\r
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY\r
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY\r
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR\r
+# (AT YOUR OPTION) ANY LATER VERSION.\r
+#\r
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT\r
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF\r
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU\r
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.\r
+#\r
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE\r
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,\r
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.\r
+#\r
+#\r
+# ======================================================================\r
+"""\r
+    Ce module sert pour charger les paramètres de configuration d'EFICAS\r
+"""\r
+# Modules Python\r
+from InterfaceQT4 import configuration\r
+import os\r
+\r
+\r
+class CONFIG(configuration.CONFIG_BASE):\r
+\r
+  #-----------------------------------\r
+  def __init__(self,appli,repIni):\r
+  #-----------------------------------\r
+\r
+      self.labels_user=['catalogues','lang']\r
+      self.labels_eficas=['lang','rep_cata','catalogues']\r
+\r
+      configuration.CONFIG_BASE.__init__(self,appli,repIni)\r
+\r
+\r
+def make_config(appli,rep):\r
+    return CONFIG(appli,rep)\r
+\r
diff --git a/OldCodes/SPECA/prefs.py b/OldCodes/SPECA/prefs.py
new file mode 100644 (file)
index 0000000..cba8343
--- /dev/null
@@ -0,0 +1,4 @@
+code='SPECA'
+import sys, os
+if os.path.abspath(__file__) not in sys.path :
+   sys.path.insert(0,os.path.dirname(os.path.abspath(__file__)))
diff --git a/OldCodes/SPECA/prefs_SPECA.py b/OldCodes/SPECA/prefs_SPECA.py
new file mode 100644 (file)
index 0000000..21b1e76
--- /dev/null
@@ -0,0 +1,38 @@
+# -*- coding: utf-8 -*-
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+
+import os,sys
+# repIni sert a localiser le fichier editeur.ini
+# Obligatoire
+repIni=os.path.dirname(os.path.abspath(__file__))
+INSTALLDIR=os.path.join(repIni,'..')
+sys.path[:0]=[INSTALLDIR]
+
+# lang indique la langue utilisee pour les chaines d'aide : fr ou ang
+lang='fr'
+
+# Codage des strings qui accepte les accents (en remplacement de 'ascii')
+encoding='iso-8859-1'
+
+#
+catalogues=(
+   ('SPECA','V2016',os.path.join(repIni,'SPECA_Cata_V2016.py'),'python','python'),
+)
diff --git a/OldCodes/SPECA/properties.py b/OldCodes/SPECA/properties.py
new file mode 100644 (file)
index 0000000..1d328a4
--- /dev/null
@@ -0,0 +1,24 @@
+#@ MODIF properties Accas DATE 11/06/2008 AUTEUR aster M.ADMINISTRATEUR
+# RESPONSABLE D6BHHHH J-P.LEFEBVRE
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
+# (AT YOUR OPTION) ANY LATER VERSION.                                 
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
+# ======================================================================
+#     IDENTIFICATION DU GESTIONNAIRE DE COMMANDE ACCAS A PARTIR
+#     DE LA VERSION DU CODE_ASTER ASSOCIE
+#----------------------------------------------------------------------
+version = "1.2"
+date = "25/05/2010"
+exploit = False
diff --git a/OldCodes/SPECA/qtEficasSPECA.py b/OldCodes/SPECA/qtEficasSPECA.py
new file mode 100755 (executable)
index 0000000..aa4bb0e
--- /dev/null
@@ -0,0 +1,36 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2021   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+"""
+   Ce module sert a lancer EFICAS configure pour MAP 
+"""
+# Modules Python
+# Modules Eficas
+import prefs
+name='prefs_'+prefs.code
+__import__(name)
+
+
+import sys,os
+sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..'))
+
+import prefs
+from InterfaceQT4 import eficas_go
+eficas_go.lance_eficas(code=prefs.code)
index 462b8c6d879c8c726e5eb169c79bf28bdd2a0fc7..13b4bac69f9f52b7fcae9c0a586819ad257a2070 100644 (file)
@@ -1,5 +1,5 @@
 ## -*- coding: utf-8 -*-
-# Copyright (C) 2007-2012   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 8ed65e16a50bcabaa4a42a6f04eb780bedcc70c4..5b4f0e3bad684df41a50070961e4915c4e341a15 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2012   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 4c7fcae76a99c7c9b3e2816a77be46580813d605..f99015498c2e89e1f1e73e7ef9266f5176c6f8ff 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2012   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index f91e53af11809c8b5b6cfa5ff2fcf53ec48efaf1..f16320e0f408ba5ae21db8c7c2b333ef1a71a822 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2012   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 66a112fb6b470bbfaa600189b12a29f6153464f2..742a89d13f25201129dbe68bf911d516950d88b2 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2012   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 741a2e491db5d2ecd8322cd38129615d7b3bd9fa..fb82fabba6b11b949c310e967aabc09a332dc158 100755 (executable)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python
-# Copyright (C) 2007-2012   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
diff --git a/OldCodes/Tests/CataAZ.py b/OldCodes/Tests/CataAZ.py
new file mode 100755 (executable)
index 0000000..b6e6494
--- /dev/null
@@ -0,0 +1,210 @@
+# coding: utf-8\r
+import types\r
+from Accas import *\r
+\r
+class grno(GEOM):\r
+    """\r
+    Classe servant à définir le nom d'un groupe de noeuds dans le fichier de commande\r
+    En clair : un chaine de longueur 24.\r
+    """\r
+    def __convert__(cls,valeur):\r
+        """\r
+        Fonction de verification de la longueur de la chaine\r
+        """\r
+        if isinstance(valeur, (str,unicode)) and len(valeur.strip()) <= 24:\r
+            return valeur.strip()\r
+        raise ValueError(_(u'On attend une chaine de caractères (de longueur <= 24).'))\r
+    __convert__ = classmethod(__convert__)\r
+\r
+class grma(GEOM):\r
+    """\r
+    Classe servant à définir le nom d'un groupe de mailles dans le fichier de commande\r
+    En clair : un chaine de longueur 24.\r
+    """\r
+    def __convert__(cls,valeur):\r
+        """\r
+        Fonction de verification de la longueur de la chaine\r
+        """\r
+        if isinstance(valeur, (str,unicode)) and len(valeur.strip()) <= 24:\r
+            return valeur.strip()\r
+        raise ValueError(_(u'On attend une chaine de caractères (de longueur <= 24).'))\r
+    __convert__ = classmethod(__convert__)\r
+\r
+\r
+class Tuple:\r
+  def __init__(self,ntuple):\r
+    self.ntuple=ntuple\r
+\r
+  def __convert__(self,valeur):\r
+    if type(valeur) == types.StringType: return None\r
+    if len(valeur) != self.ntuple: return None\r
+    return valeur\r
+\r
+  def info(self):\r
+    return "Tuple de %s elements" % self.ntuple\r
+\r
+  __repr__=info\r
+  __str__=info\r
+\r
+class ObjetUtilisateur(ASSD): pass\r
+\r
+\r
+JdC = JDC_CATA(code='PATTERNS',\r
+               execmodul=None,\r
+                )\r
+\r
+\r
+EXAMPLE = PROC (nom = 'EXAMPLE',\r
+    op=None,\r
+\r
+    TITRE =  SIMP(statut ='o', typ = 'TXM', defaut = 'Mon Etude',),\r
+    TITRE2 =  SIMP(statut ='f', typ = 'TXM', ),\r
+)\r
+CREEOBJET = OPER (nom="CREEOBJET",\r
+    op=None,\r
+    sd_prod=ObjetUtilisateur,\r
+    UIinfo={"groupes":("Group1",)},\r
+\r
+    TITLE     = SIMP(statut ='o', typ = 'TXM', defaut = '',),\r
+    RB1       = SIMP(statut ='o', typ = 'I', into = [1,2,3],),\r
+    RB2       = SIMP(statut ='o', typ = 'I', into = [1,2,3,4,5,6,],),\r
+    CB        = SIMP(statut ='o', typ = 'I', into = [1,2,3,4,5,6,7,8,9],),\r
+    MBool     = SIMP(statut ='o', typ = bool,),\r
+    MFile     = SIMP(statut ='o', typ = ('Fichier','All Files (*)')),\r
+    MDir      = SIMP(statut ='o', typ = 'Repertoire'),\r
+    Reel1     = SIMP(statut ='o', typ = 'R'),\r
+    Compl     = SIMP(statut ='o', typ = 'C'),\r
+    Tuple2    = SIMP(statut ='o', typ = Tuple(2), validators=VerifTypeTuple(('R','R'))),\r
+    Tuple3    = SIMP(statut ='o', typ = Tuple(3), validators=VerifTypeTuple(('R','R','R'))),\r
+    InSalome  = SIMP(statut ='o', typ = SalomeEntry),\r
+\r
+    LTITLE    = SIMP(statut ='o', typ = 'TXM', max='**', defaut = '',),\r
+    LRB2      = SIMP(statut ='o', typ = 'I', max = '**', into = [1,2,3,4,5,6,],),\r
+    LCB       = SIMP(statut ='o', typ = 'I', max = '**', homo="SansOrdreNiDoublon", into = [1,2,3,4,5,6,7,8,9],),\r
+    LReel1    = SIMP(statut ='o', typ = 'R', max = "**"),\r
+    LCompl    = SIMP(statut ='o', typ = 'C', max = "**"),\r
+    LTuple2   = SIMP(statut ='o', typ = Tuple(2), validators=VerifTypeTuple(('R','R')), max = "**"),\r
+    LTuple3   = SIMP(statut ='o', typ = Tuple(3), validators=VerifTypeTuple(('R','R','R')), max = "**"),\r
+    LInSalome = SIMP(statut ='o', typ = SalomeEntry, max="**"),\r
+\r
+    LREEL    = SIMP(statut ='f', typ = 'R', max='**', defaut = '',),\r
+)\r
+\r
+UTILISEOBJET = PROC (nom="UTILISEOBJET",\r
+    op=None,\r
+    UIinfo={"groupes":("Group1",)},\r
+    Obj   = SIMP (statut ='o', typ = ObjetUtilisateur,)\r
+)\r
+\r
+ESSAI_FACT=OPER(nom="ESSAI_FACT",\r
+   sd_prod=ObjetUtilisateur,\r
+   op=None,\r
+   fr="Affectation de caractéristiques à des éléments de structure",\r
+   regles = (AU_MOINS_UN('Poutre','Barre'),\r
+             EXCLUS('Discret','Discret_2D'),),\r
+   Info   = SIMP(statut='f',typ='I', defaut= 1 ,into=(1,2) ),\r
+   Verif  = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("Maille","Noeud") ),\r
+#\r
+# ==============================================================================\r
+    Poutre  = FACT(statut= 'f',max= '**',\r
+        Section = SIMP(statut= 'o',typ= 'TXM' ,into= ("GENERALE","RECTANGLE","CERCLE") ),\r
+\r
+        b_generale = BLOC(condition = " Section == 'GENERALE'",\r
+            regles = (UN_PARMI('Maille','GroupeMailles'),),\r
+            Maille    = SIMP(statut= 'f',typ= 'TXM'  ,validators= NoRepeat(),max= '**'),\r
+            GroupeMailles  = SIMP(statut= 'f',typ= grma,validators= NoRepeat(),max= '**'),\r
+\r
+            Vari = SIMP(statut= 'f',typ= 'TXM',into= ("CONSTANT","HOMOTHETIQUE"),defaut= "CONSTANT"),\r
+\r
+            b_constant = BLOC(condition = "Vari == 'CONSTANT'",\r
+                regles = (PRESENT_ABSENT('Table','Cara'),\r
+                          PRESENT_PRESENT('Table','Nom'),\r
+                          PRESENT_PRESENT('Cara','Valeur'),),\r
+                Table = SIMP(statut= 'f',typ='TXM'),\r
+                Nom    = SIMP(statut= 'f',typ= 'TXM'),\r
+                Cara       = SIMP(statut= 'o',typ= 'TXM',min= 4 ,max= 5,\r
+                    fr= "A,IY,IZ,JX sont des paramètres obligatoires",\r
+                    validators= [NoRepeat(), Compulsory(['A','IY','IZ','JX'])],\r
+                    into= ("A","IY","IZ","AY","AZ","EY","EZ","JX","RY","RZ","RT","JG","IYR2","IZR2","AI") ),\r
+                Valeur       = SIMP(statut= 'f',typ= 'R',min= 4 ,max= 15),\r
+            ),\r
+        ),\r
+        b_rectangle = BLOC(condition = "Section == 'RECTANGLE'",\r
+            regles = (UN_PARMI('Maille','GroupeMailles'),),\r
+            Maille    = SIMP(statut= 'f',typ= 'TXM'  ,validators= NoRepeat(),max= '**'),\r
+            GroupeMailles  = SIMP(statut= 'f',typ= grma,validators= NoRepeat(),max= '**'),\r
+            Vari = SIMP(statut= 'f',typ= 'TXM',into= ("CONSTANT","HOMOTHETIQUE","AFFINE"),defaut= "CONSTANT"),\r
+            b_constant = BLOC(condition = "Vari == 'CONSTANT'",\r
+                Cara  = SIMP(statut= 'o',typ= 'TXM',min= 1 ,max= 4,\r
+                    validators = [NoRepeat(),\r
+                                  OrVal( [AndVal( [Compulsory(['H']),Absent(['HY','HZ','EPY','EPZ'])] ),\r
+                                          AndVal( [Compulsory(['HY','HZ']),Together(['EPY','EPZ']),Absent(['H','EP'])] )] )],\r
+                    into= ("H","EP", "HY","HZ","EPY","EPZ"),),\r
+                Valeur  = SIMP(statut= 'o',typ= 'R',min= 1 ,max= 4),\r
+            ),\r
+\r
+            Metrique = SIMP(statut= 'f',typ= 'TXM',defaut= "NON",into= ("OUI","NON") ),\r
+            Fcx           = SIMP(statut= 'f',typ= 'R'),\r
+            Tuyau    = SIMP(statut= 'f',typ= 'I',val_max= 10,defaut= 3),\r
+        ),\r
+    ),\r
+#\r
+# ==============================================================================\r
+    Barre = FACT(statut='f',max='**',\r
+        regles = (UN_PARMI('Maille','GroupeMailles'),),\r
+        Maille   = SIMP(statut='f',typ='TXM'  ,validators=NoRepeat(),max='**'),\r
+        GroupeMailles = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),\r
+        Section  = SIMP(statut='o',typ='TXM',into=("GENERALE","RECTANGLE","CERCLE") ),\r
+        b_generale = BLOC(condition = "Section=='GENERALE'",\r
+            regles = (PRESENT_ABSENT('Table','Cara'),\r
+                      PRESENT_PRESENT('Table','Nom'),\r
+                      PRESENT_PRESENT('Cara','Valeur')),\r
+            Table = SIMP(statut='f',typ='TXM'),\r
+            Nom    = SIMP(statut='f',typ='TXM',validators=LongStr(1,24) ),\r
+            Cara       = SIMP(statut='f',typ='TXM',into=("A",) ),\r
+            Valeur       = SIMP(statut='f',typ='R',min=1,max=1 ),\r
+        ),\r
+        b_rectangle = BLOC(condition = "Section=='RECTANGLE'",\r
+            Cara = SIMP(statut='o',typ='TXM', min=1, max=4,\r
+                validators = [NoRepeat(),\r
+                              OrVal( [AndVal( [Compulsory(['H']),Absent(['HY','HZ','EPY','EPZ'])] ),\r
+                                      AndVal( [Compulsory(['HY','HZ']),Together(['EPY','EPZ']),Absent(['H','EP'])] )] )],\r
+                into=("H","EP","HZ","HY","EPY","EPZ"), ),\r
+            Valeur = SIMP(statut='o',typ='R',min=1,max=4 ), ),\r
+        b_cercle = BLOC(condition = "Section=='CERCLE'",\r
+            Cara = SIMP(statut='o',typ='TXM',validators=[NoRepeat(),Compulsory(['R'])],min=1,max=2,into=("R","EP") ),\r
+            Valeur = SIMP(statut='o',typ='R',min=1,max=2 ), ),\r
+    ),\r
+#\r
+# ==============================================================================\r
+    Discret = FACT(statut='f',max='**',\r
+        REPERE    = SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),\r
+        AMOR_HYST = SIMP(statut='f',typ='R' ),\r
+        SYME      = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),),\r
+        b_SYME_OUI = BLOC(condition="SYME=='OUI'",\r
+            fr="SYMETRIQUE: Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds",\r
+            Cara = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,defaut="None",\r
+            into = ("K_T_D_N", "K_T_D_L", "K_TR_D_N", "K_TR_D_L", "K_T_N", "K_T_L", "K_TR_N", "K_TR_L",\r
+                    "M_T_D_N", "M_T_D_L", "M_TR_D_N", "M_TR_D_L", "M_T_N", "M_T_L", "M_TR_N", "M_TR_L",\r
+                    "A_T_D_N", "A_T_D_L", "A_TR_D_N", "A_TR_D_L", "A_T_N", "A_T_L", "A_TR_N", "A_TR_L",),),\r
+            #  Affection des caractéristiques de RIGIDITE/AMORTISSEMENT/MASSE\r
+            b_AK_T_D_N = BLOC(condition = "((Cara=='K_T_D_N')or(Cara=='A_T_D_N'))",\r
+                fr       = "Noeud: 3 valeurs (triangulaire supérieure par colonne)",\r
+                regles   = (UN_PARMI('Maille','GroupeMailles','Noeud','GROUP_NO'),),\r
+                Noeud    = SIMP(statut='f',typ='TXM'  ,validators=NoRepeat(),max='**'),\r
+                GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),\r
+                Maille   = SIMP(statut='f',typ='TXM'  ,validators=NoRepeat(),max='**'),\r
+                GroupeMailles = SIMP(statut='f',typ=grma,validators=NoRepeat(),homo='SansOrdreNiDoublon',max='**'),\r
+                Valeur     = SIMP(statut='o',typ='R',min=3 ,max=3 ),),\r
+        ),\r
+    ),\r
+#\r
+# ==============================================================================\r
+    Discret_2D = FACT(statut='f',max='**',\r
+        REPERE    = SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),\r
+        AMOR_HYST = SIMP(statut='f',typ='R' ),\r
+        SYME      = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),),\r
+        ),\r
+)\r
+\r
+\r
diff --git a/OldCodes/Tests/Elementary_Lists_52996_Cata.py b/OldCodes/Tests/Elementary_Lists_52996_Cata.py
new file mode 100644 (file)
index 0000000..f3cc11c
--- /dev/null
@@ -0,0 +1,86 @@
+# coding: utf-8\r
+\r
+from Accas import *\r
+\r
+#class myMesh(ASSD): pass\r
+class myModel(ASSD): pass\r
+\r
+JdC = JDC_CATA(code='PATTERNS',\r
+               execmodul=None,\r
+               regles=(#AU_PLUS_UN('DEBUT', 'POURSUITE'),\r
+                       AU_PLUS_UN('ALL_LISTS'),\r
+                       #AU_PLUS_UN('FIN'),\r
+                       A_CLASSER(('DEBUT', 'POURSUITE'), 'FIN')\r
+                )\r
+)\r
+\r
+class grma():\r
+    def __convert__(cls,valeur):\r
+        if isinstance(valeur, (str,unicode)) and len(valeur.strip()) <= 24 : #and ("item" in (valeur.strip()))\r
+            return valeur.strip()\r
+        raise ValueError("Name length does not contain \"test\" and is longer than allowed, 24")\r
+    __convert__ = classmethod(__convert__)\r
+\r
+def mySeveral(suffix,num):\r
+    out=list()\r
+    for i in range(1,num+1):\r
+        out.append(suffix+str(i).zfill(2))\r
+    return out\r
+\r
+switch_facultatif=True #change 'o' to 'f' of some widgets in the loop\r
+#empty_defauts=True\r
+\r
+def myBloc(num):\r
+    myNum=str(num).zfill(2)\r
+    list_item_body="Item_"+myNum+"_"\r
+    defauts0=["","",True,"'phenomena_"+myNum+"'",mySeveral(list_item_body,2)] #presence of default values\r
+    defauts_mask=[False,False,True,True,True] #switch off defaults of some types\r
+    defauts=list()\r
+    for id0 in range(len(defauts0)):\r
+        if defauts_mask[id0]:\r
+            item=", defaut="+str(defauts0[id0])\r
+        else:\r
+            item=""\r
+        defauts.append(item)\r
+    #print defauts\r
+\r
+    opt=['o','o','o','o','o'] #initial default obligation of items in FACT groups\r
+    #make different widgets optional, one by one:\r
+    myLen=len(opt)\r
+    if switch_facultatif:\r
+        make_f=(num)%myLen\r
+        opt[make_f]='f'\r
+    #print opt\r
+    #if empty_defauts:\r
+    #    clean_defaut=num%myLen\r
+\r
+    myString="BLOC(condition=\"MESH==\'mesh_"+myNum+"'\""+defauts[0]+", AFFE=FACT(statut='"+opt[1]+"'"+defauts[1]+", ALL=SIMP(statut='"+opt[2]+"', typ=bool,ang='ALL "+myNum+" help EN'"+defauts[2]+"),PHENOMENA=SIMP(statut='"+opt[3]+"',typ='TXM',into=mySeveral('phenomena_',"+str(num)+")"+defauts[3]+"), MODELISATION=SIMP(statut='"+opt[4]+"',typ='TXM', min=2,max='**',into=mySeveral('"+list_item_body+"',"+str(num*4)+")"+defauts[4]+", ang='Input "+myNum+" list EN', fr='Input "+myNum+" list FR'),),)"\r
+    print myString\r
+    return eval(myString)\r
+\r
+ALL_LISTS=OPER(nom="ALL_LISTS",op=18,sd_prod=myModel,\r
+    UIinfo={"groupes":("Group1",)},\r
+    ang="Model mesh definition EN",\r
+    reentrant='n',\r
+    #regles=(AU_MOINS_UN('LIST_O_CHECKTEXT','LIST_F_CHECKTEXT','LIST_O_ANY','LIST_F_ANY')),\r
+\r
+       #LIST_O_NOREPEAT_CHECKTEXT=SIMP(statut='o',typ=grma,validators=NoRepeat(),min=3, max='**'),\r
+    #LIST_F_NOREPEAT_CHECKTEXT=SIMP(statut='f',typ=grma,validators=NoRepeat(),min=3, max='**'),\r
+    #LIST_F_REPEAT_CHECKTEXT=SIMP(statut='f',typ=grma,min=3, max='**'),\r
+       #LIST_O_REPEAT_CHECKTEXT=SIMP(statut='o',typ=grma,min=3, max='**'),\r
+\r
+    #LIST_F_NOREPEAT_ANYTEXT=SIMP(statut='f',typ='TXM',validators=NoRepeat(),min=3, max='**'),\r
+       #LIST_O_NOREPEAT_ANYTEXT=SIMP(statut='o',typ='TXM',min=3,validators=NoRepeat(), max='**'),\r
+       #LIST_O_REPEAT_ANYTEXT=SIMP(statut='o',typ='TXM',min=3, max='**'),\r
+       #LIST_F_REPEAT_ANYTEXT=SIMP(statut='f',typ='TXM',min=3, max='**'),\r
+\r
+       #LIST_O_NOREPEAT_CHECKTEXT_ADD=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03",), min=3, max='**'),\r
+       #LIST_F_REPEAT_ANYTEXT_ADD=SIMP(statut='f',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03",), min=3, max='**'),\r
+\r
+       LIST_O_NOREPEAT_CHECKTEXT_ADD_NODEFAUT=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03","item04","text04",), min=3, max='**'),\r
+       #LIST_O_NOREPEAT_CHECKTEXT_ADD_DEFAUT=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03",), defaut=('item01','item02','item03'), min=3, max='**'),\r
+)\r
+\r
+Classement_Commandes_Ds_Arbre=('DEBUT','MESH_TYPES','ALL_LISTS','FIN')\r
+\r
+Ordre_Des_Commandes = ('DEBUT','MESH_TYPES','ALL_LISTS','FIN')\r
diff --git a/OldCodes/Tests/Elementary_Lists_53000_Cata.py b/OldCodes/Tests/Elementary_Lists_53000_Cata.py
new file mode 100644 (file)
index 0000000..0dbba47
--- /dev/null
@@ -0,0 +1,52 @@
+# coding: utf-8\r
+from Accas import *\r
+\r
+#class myMesh(ASSD): pass\r
+class myModel(ASSD): pass\r
+\r
+JdC = JDC_CATA(code='PATTERNS',\r
+               execmodul=None,\r
+               regles=(#AU_PLUS_UN('DEBUT', 'POURSUITE'),\r
+                       AU_PLUS_UN('ALL_LISTS'),\r
+                       #AU_PLUS_UN('FIN'),\r
+                       A_CLASSER(('DEBUT', 'POURSUITE'), 'FIN')\r
+                )\r
+)\r
+\r
+\r
+ALL_LISTS=OPER(nom="ALL_LISTS",op=18,sd_prod=myModel,\r
+    UIinfo={"groupes":("Group1",)},\r
+    ang="Model mesh definition EN",\r
+    reentrant='n',\r
+    LIST_O_NOREPEAT_CHECKTEXT_ADD_DEFAUT=SIMP(statut='o',typ="TXM",validators=NoRepeat(), \r
+          into=("item01","text01","item02","text02","item03","text03","item04","text04","item05","text05",), \r
+          defaut=('item01','item02','item03'),\r
+          homo="SansOrdreNiDoublon",\r
+          min=3, max='**'),\r
+\r
+    #regles=(AU_MOINS_UN('LIST_O_CHECKTEXT','LIST_F_CHECKTEXT','LIST_O_ANY','LIST_F_ANY')),\r
+\r
+       #LIST_O_NOREPEAT_CHECKTEXT=SIMP(statut='o',typ=grma,validators=NoRepeat(),min=3, max='**'),\r
+    #LIST_F_NOREPEAT_CHECKTEXT=SIMP(statut='f',typ=grma,validators=NoRepeat(),min=3, max='**'),\r
+    #LIST_F_REPEAT_CHECKTEXT=SIMP(statut='f',typ=grma,min=3, max='**'),\r
+       #LIST_O_REPEAT_CHECKTEXT=SIMP(statut='o',typ=grma,min=3, max='**'),\r
+\r
+    #LIST_F_NOREPEAT_ANYTEXT=SIMP(statut='f',typ='TXM',validators=NoRepeat(),min=3, max='**'),\r
+       #LIST_O_NOREPEAT_ANYTEXT=SIMP(statut='o',typ='TXM',min=3,validators=NoRepeat(), max='**'),\r
+       #LIST_O_REPEAT_ANYTEXT=SIMP(statut='o',typ='TXM',min=3, max='**'),\r
+       #LIST_F_REPEAT_ANYTEXT=SIMP(statut='f',typ='TXM',min=3, max='**'),\r
+\r
+       #LIST_O_NOREPEAT_CHECKTEXT_ADD=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03",), min=3, max='**'),\r
+       #LIST_F_REPEAT_ANYTEXT_ADD=SIMP(statut='f',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03",), min=3, max='**'),\r
+\r
+       #LIST_O_NOREPEAT_CHECKTEXT_ADD_NODEFAUT=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03","item04","text04",), min=3, max='**'),\r
+\r
+\r
+       #LIST_O_SANSORDRENODOUBLON_CHECKTEXT_DEFAUT=SIMP(statut='o',typ=grma,homo="SansOrdreNiDoublon", into=("item01","text01","item02","text02","item03","text03",), defaut=('item01','item02','item03'), min=3, max='**'),\r
+)\r
+\r
+\r
+\r
+Classement_Commandes_Ds_Arbre=('DEBUT','MESH_TYPES','ALL_LISTS','FIN')\r
+\r
+Ordre_Des_Commandes = ('DEBUT','MESH_TYPES','ALL_LISTS','FIN')\r
diff --git a/OldCodes/Tests/Elementary_Lists_53013_Cata.py b/OldCodes/Tests/Elementary_Lists_53013_Cata.py
new file mode 100644 (file)
index 0000000..cf371ff
--- /dev/null
@@ -0,0 +1,59 @@
+# coding: utf-8\r
+from Accas import *\r
+\r
+class myModel(ASSD): pass\r
+\r
+JdC = JDC_CATA(code='PATTERNS',\r
+               execmodul=None,\r
+               regles=(#AU_PLUS_UN('DEBUT', 'POURSUITE'),\r
+                       AU_PLUS_UN('ALL_LISTS'),\r
+                       #AU_PLUS_UN('FIN'),\r
+                       A_CLASSER(('DEBUT', 'POURSUITE'), 'FIN')\r
+                )\r
+)\r
+\r
+class grma():\r
+    def __convert__(cls,valeur):\r
+        if isinstance(valeur, (str,unicode)) and len(valeur.strip()) <= 12 and ("item" in (valeur.strip()).lower()): #\r
+            return valeur.strip()\r
+        raise ValueError("Name length does not contain \"test\" and is longer than allowed, 12")\r
+    __convert__ = classmethod(__convert__)\r
+\r
+def mySeveral(suffix,num):\r
+    out=list()\r
+    for i in range(1,num+1):\r
+        out.append(suffix+str(i).zfill(2))\r
+    return out\r
+\r
+ALL_LISTS=OPER(nom="ALL_LISTS",op=18,sd_prod=myModel,\r
+    UIinfo={"groupes":("Group1",)},\r
+    fr="All lists definition FR",\r
+    ang="All lists definition EN",\r
+    reentrant='n',\r
+    #regles=(AU_MOINS_UN('LIST_O_CHECKTEXT','LIST_F_CHECKTEXT','LIST_O_ANY','LIST_F_ANY')),\r
+\r
+       L1_LIST_O_NOREPEAT_CHECKTEXT=SIMP(statut='o',typ=grma,validators=NoRepeat(),min=3, max='**', ang='Obligatory, No Repetitions, checked text, EN'),\r
+    L2_LIST_F_NOREPEAT_CHECKTEXT=SIMP(statut='f',typ=grma,validators=NoRepeat(),min=3, max='**', ang='Optional, No Repetitions, checked text, EN'),\r
+    L3_LIST_F_REPEAT_CHECKTEXT=SIMP(statut='f',typ=grma,min=3, max='**',ang='Optional, Allowed Repetitions, checked text, EN'),\r
+       L4_LIST_O_REPEAT_CHECKTEXT=SIMP(statut='o',typ=grma,min=3, max='**',ang='Obligatory, Allowed Repetitions, checked text, EN'),\r
+\r
+    L5_LIST_F_NOREPEAT_ANYTEXT=SIMP(statut='f',typ='TXM',validators=NoRepeat(),min=3, max='**',ang='Optional, No Repetitions, any text, EN'),\r
+       L6_LIST_O_NOREPEAT_ANYTEXT=SIMP(statut='o',typ='TXM',min=3,validators=NoRepeat(), max='**',ang='Obligatory, No Repetitions, any text, EN'),\r
+       L7_LIST_O_REPEAT_ANYTEXT=SIMP(statut='o',typ='TXM',min=3, max='**',ang='Obligatory, Allowed Repetitions, any text, EN'),\r
+       L8_LIST_F_REPEAT_ANYTEXT=SIMP(statut='f',typ='TXM',min=3, max='**',ang='Optional, Allowed Repetitions, any text, EN'),\r
+\r
+       L9_LIST_O_NOREPEAT_CHECKTEXT_ADD=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With spare list, Obligatory, No Repetitions, checked text, EN',),\r
+       L10_LIST_F_REPEAT_ANYTEXT_ADD=SIMP(statut='f',typ='TXM', into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With spare list, Optional, Allowed Repetitions, any text, EN'),\r
+       L11_LIST_O_REPEAT_CHECKTEXT_ADD_NODEFAUT=SIMP(statut='o',typ=grma, into=("item01","text01","item02","text02","item03","text03","item04","text04"),ang='With spare list, obligatory, No Repetitions, checked text, no default values, EN', min=3, max='**'),\r
+       L12_LIST_O_NOREPEAT_CHECKTEXT_ADD_DEFAUT=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03","item04","text04","item05","text05",), defaut=('item01','item02','item03'), min=3, max='**',ang='With spare list, Obligatory, No Repetitions, checked text, with default values EN'),\r
+\r
+    L13_LIST_F_SANSORDRENODOUBLON_ANYTEXT_NODEFAUT=SIMP(statut='f',typ='TXM',homo="SansOrdreNiDoublon", into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With check boxes, Optional, any text, no defaults, EN'),\r
+    L14_LIST_O_SANSORDRENODOUBLON_CHECKTEXT_NODEFAUT=SIMP(statut='o',typ=grma,homo="SansOrdreNiDoublon", into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With check boxes, Obligatory, checked text, EN'),\r
+       L15_LIST_O_SANSORDRENODOUBLON_CHECKTEXT_DEFAUT=SIMP(statut='o',typ=grma,homo="SansOrdreNiDoublon", into=("item01","text01","item02","text02","item03","text03","item02","text02","item01","text01",), defaut=('item01','item02','item03'), min=3, max='**', ang='With check boxes, Obligatory, checked text, with default values, EN'),\r
+)\r
+\r
+\r
+\r
+Classement_Commandes_Ds_Arbre=('DEBUT','MESH_TYPES','ALL_LISTS','FIN')\r
+\r
+Ordre_Des_Commandes = ('DEBUT','MESH_TYPES','ALL_LISTS','FIN')\r
diff --git a/OldCodes/Tests/Elementary_Lists_53036_Cata.py b/OldCodes/Tests/Elementary_Lists_53036_Cata.py
new file mode 100644 (file)
index 0000000..5cdc0fa
--- /dev/null
@@ -0,0 +1,59 @@
+# coding: utf-8\r
+from Accas import *\r
+\r
+class myModel(ASSD): pass\r
+\r
+JdC = JDC_CATA(code='PATTERNS',\r
+               execmodul=None,\r
+               regles=(#AU_PLUS_UN('DEBUT', 'POURSUITE'),\r
+                       AU_PLUS_UN('ALL_LISTS'),\r
+                       #AU_PLUS_UN('FIN'),\r
+                       A_CLASSER(('DEBUT', 'POURSUITE'), 'FIN')\r
+                )\r
+)\r
+\r
+class grma():\r
+    def __convert__(cls,valeur):\r
+        if isinstance(valeur, (str,unicode)) and len(valeur.strip()) <= 12 and ("item" in (valeur.strip()).lower()): #\r
+            return valeur.strip()\r
+        raise ValueError("Name length does not contain \"item\" and is longer than allowed, 12")\r
+    __convert__ = classmethod(__convert__)\r
+\r
+def mySeveral(suffix,num):\r
+    out=list()\r
+    for i in range(1,num+1):\r
+        out.append(suffix+str(i).zfill(2))\r
+    return out\r
+\r
+ALL_LISTS=OPER(nom="ALL_LISTS",op=18,sd_prod=myModel,\r
+    UIinfo={"groupes":("Group1",)},\r
+    fr="All lists definition FR",\r
+    ang="All lists definition EN",\r
+    reentrant='n',\r
+    #regles=(AU_MOINS_UN('LIST_O_CHECKTEXT','LIST_F_CHECKTEXT','LIST_O_ANY','LIST_F_ANY')),\r
+\r
+       L1_LIST_O_NOREPEAT_CHECKTEXT=SIMP(statut='o',typ=grma,validators=NoRepeat(),min=3, max='**', ang='Obligatory, No Repetitions, checked text, EN'),\r
+    L2_LIST_F_NOREPEAT_CHECKTEXT=SIMP(statut='f',typ=grma,validators=NoRepeat(),min=3, max='**', ang='Optional, No Repetitions, checked text, EN'),\r
+    L3_LIST_F_REPEAT_CHECKTEXT=SIMP(statut='f',typ=grma,min=3, max='**',ang='Optional, Allowed Repetitions, checked text, EN'),\r
+       L4_LIST_O_REPEAT_CHECKTEXT=SIMP(statut='o',typ=grma,min=3, max='**',ang='Obligatory, Allowed Repetitions, checked text, EN'),\r
+\r
+    L5_LIST_F_NOREPEAT_ANYTEXT=SIMP(statut='f',typ='TXM',validators=NoRepeat(),min=3, max='**',ang='Optional, No Repetitions, any text, EN'),\r
+       L6_LIST_O_NOREPEAT_ANYTEXT=SIMP(statut='o',typ='TXM',min=3,validators=NoRepeat(), max='**',ang='Obligatory, No Repetitions, any text, EN'),\r
+       L7_LIST_O_REPEAT_ANYTEXT=SIMP(statut='o',typ='TXM',min=3, max='**',ang='Obligatory, Allowed Repetitions, any text, EN'),\r
+       L8_LIST_F_REPEAT_ANYTEXT=SIMP(statut='f',typ='TXM',min=3, max='**',ang='Optional, Allowed Repetitions, any text, EN'),\r
+\r
+       L9_LIST_O_NOREPEAT_CHECKTEXT_ADD=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With spare list, Obligatory, No Repetitions, checked text, EN',),\r
+       L10_LIST_F_REPEAT_ANYTEXT_ADD=SIMP(statut='f',typ='TXM', into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With spare list, Optional, Allowed Repetitions, any text, EN'),\r
+       L11_LIST_O_REPEAT_CHECKTEXT_ADD_NODEFAUT=SIMP(statut='o',typ=grma, into=("item01","text01","item02","text02","item03","text03","item04","text04"),ang='With spare list, obligatory, No Repetitions, checked text, no default values, EN', min=3, max='**'),\r
+       L12_LIST_O_NOREPEAT_CHECKTEXT_ADD_DEFAUT=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03","item04","text04","item05","text05",), defaut=('item01','item02','item03'), min=3, max='**',ang='With spare list, Obligatory, No Repetitions, checked text, with default values EN'),\r
+\r
+    L13_LIST_F_SANSORDRENODOUBLON_ANYTEXT_NODEFAUT=SIMP(statut='f',typ='TXM',homo="SansOrdreNiDoublon", into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With check boxes, Optional, any text, no defaults, EN'),\r
+    L14_LIST_O_SANSORDRENODOUBLON_CHECKTEXT_NODEFAUT=SIMP(statut='o',typ=grma,homo="SansOrdreNiDoublon", into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With check boxes, Obligatory, checked text, EN'),\r
+       L15_LIST_O_SANSORDRENODOUBLON_CHECKTEXT_NOREPEAT_DEFAUT=SIMP(statut='o',typ=grma,homo="SansOrdreNiDoublon", into=("item01","text01","item02","text02","item03","text03","item03","text03","item02","text02","item01","text01",), defaut=('item01','item02','item03'),  min=3, max='**', ang='With check boxes, Obligatory, checked text, with default values, EN'), #validators=NoRepeat(),\r
+)\r
+\r
+\r
+\r
+Classement_Commandes_Ds_Arbre=('DEBUT','MESH_TYPES','ALL_LISTS','FIN')\r
+\r
+Ordre_Des_Commandes = ('DEBUT','MESH_TYPES','ALL_LISTS','FIN')\r
diff --git a/OldCodes/Tests/Elementary_Lists_Cata.py b/OldCodes/Tests/Elementary_Lists_Cata.py
new file mode 100755 (executable)
index 0000000..92d20b3
--- /dev/null
@@ -0,0 +1,59 @@
+# coding: utf-8\r
+from Accas import *\r
+\r
+class myModel(ASSD): pass\r
+\r
+JdC = JDC_CATA(code='PATTERNS',\r
+               execmodul=None,\r
+               regles=(#AU_PLUS_UN('DEBUT', 'POURSUITE'),\r
+                       AU_PLUS_UN('ALL_LISTS'),\r
+                       #AU_PLUS_UN('FIN'),\r
+                       A_CLASSER(('DEBUT', 'POURSUITE'), 'FIN')\r
+                )\r
+)\r
+\r
+class grma():\r
+    def __convert__(cls,valeur):\r
+        if isinstance(valeur, (str,unicode)) and len(valeur.strip()) <= 12 and ("item" in (valeur.strip()).lower()): #\r
+            return valeur.strip()\r
+        raise ValueError("Name length does not contain \"test\" and is longer than allowed, 12")\r
+    __convert__ = classmethod(__convert__)\r
+\r
+def mySeveral(suffix,num):\r
+    out=list()\r
+    for i in range(1,num+1):\r
+        out.append(suffix+str(i).zfill(2))\r
+    return out\r
+\r
+ALL_LISTS=OPER(nom="ALL_LISTS",op=18,sd_prod=myModel,\r
+    UIinfo={"groupes":("Group1",)},\r
+    fr="All lists definition FR",\r
+    ang="All lists definition EN",\r
+    reentrant='n',\r
+    #regles=(AU_MOINS_UN('LIST_O_CHECKTEXT','LIST_F_CHECKTEXT','LIST_O_ANY','LIST_F_ANY')),\r
+\r
+       L1_LIST_O_NOREPEAT_CHECKTEXT=SIMP(statut='o',typ=grma,validators=NoRepeat(),min=3, max='**', ang='Obligatory, No Repetitions, checked text, EN'),\r
+    L2_LIST_F_NOREPEAT_CHECKTEXT=SIMP(statut='f',typ=grma,validators=NoRepeat(),min=3, max='**', ang='Optional, No Repetitions, checked text, EN'),\r
+    L3_LIST_F_REPEAT_CHECKTEXT=SIMP(statut='f',typ=grma,min=3, max='**',ang='Optional, Allowed Repetitions, checked text, EN'),\r
+       L4_LIST_O_REPEAT_CHECKTEXT=SIMP(statut='o',typ=grma,min=3, max='**',ang='Obligatory, Allowed Repetitions, checked text, EN'),\r
+\r
+    L5_LIST_F_NOREPEAT_ANYTEXT=SIMP(statut='f',typ='TXM',validators=NoRepeat(),min=3, max='**',ang='Optional, No Repetitions, any text, EN'),\r
+       L6_LIST_O_NOREPEAT_ANYTEXT=SIMP(statut='o',typ='TXM',min=3,validators=NoRepeat(), max='**',ang='Obligatory, No Repetitions, any text, EN'),\r
+       L7_LIST_O_REPEAT_ANYTEXT=SIMP(statut='o',typ='TXM',min=3, max='**',ang='Obligatory, Allowed Repetitions, any text, EN'),\r
+       L8_LIST_F_REPEAT_ANYTEXT=SIMP(statut='f',typ='TXM',min=3, max='**',ang='Optional, Allowed Repetitions, any text, EN'),\r
+\r
+       L9_LIST_O_NOREPEAT_CHECKTEXT_ADD=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With spare list, Obligatory, No Repetitions, checked text, EN',),\r
+       L10_LIST_F_REPEAT_ANYTEXT_ADD=SIMP(statut='f',typ='TXM', into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With spare list, Optional, Allowed Repetitions, any text, EN'),\r
+       L11_LIST_O_REPEAT_CHECKTEXT_ADD_NODEFAUT=SIMP(statut='o',typ=grma, into=("item01","text01","item02","text02","item03","text03","item04","text04"),ang='With spare list, obligatory, No Repetitions, checked text, no default values, EN', min=3, max='**'),\r
+       L12_LIST_O_NOREPEAT_CHECKTEXT_ADD_DEFAUT=SIMP(statut='o',typ=grma,validators=NoRepeat(), into=("item01","text01","item02","text02","item03","text03","item04","text04","item05","text05",), defaut=('item01','item02','item03'), min=3, max='**',ang='With spare list, Obligatory, No Repetitions, checked text, with default values EN'),\r
+\r
+    L13_LIST_F_SANSORDRENODOUBLON_ANYTEXT_NODEFAUT=SIMP(statut='f',typ='TXM',homo="SansOrdreNiDoublon", into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With check boxes, Optional, any text, no defaults, EN'),\r
+    L14_LIST_O_SANSORDRENODOUBLON_CHECKTEXT_NODEFAUT=SIMP(statut='o',typ=grma,homo="SansOrdreNiDoublon", into=("item01","text01","item02","text02","item03","text03",), min=3, max='**',ang='With check boxes, Obligatory, checked text, EN'),\r
+       L15_LIST_O_SANSORDRENODOUBLON_CHECKTEXT_DEFAUT=SIMP(statut='o',typ=grma,homo="SansOrdreNiDoublon", into=("item01","text01","item02","text02","item03","text03",), defaut=('item01','item02','item03'), min=3, max='**', ang='With check boxes, Obligatory, checked text, with default values, EN'),\r
+)\r
+\r
+\r
+\r
+Classement_Commandes_Ds_Arbre=('DEBUT','MESH_TYPES','ALL_LISTS','FIN')\r
+\r
+Ordre_Des_Commandes = ('DEBUT','MESH_TYPES','ALL_LISTS','FIN')\r
diff --git a/OldCodes/Tests/Global_Condition_Cata.py b/OldCodes/Tests/Global_Condition_Cata.py
new file mode 100755 (executable)
index 0000000..0239634
--- /dev/null
@@ -0,0 +1,53 @@
+# coding: utf-8
+from Accas import *
+#class myModel(ASSD): pass
+
+JdC = JDC_CATA(code='GLOB_COND',
+               execmodul=None,
+               regles=(AU_PLUS_UN('TYPES',),
+                       AU_PLUS_UN('INITS',),
+                                          AU_PLUS_UN('DATAS',),
+                       #A_CLASSER('TYPES','INITS','DATAS')
+                       )
+);
+
+TYPES=PROC(nom='TYPES',op=None,UIinfo={"groupes":("Global_Workflow",)}, #sd_prod=myModel,
+    MODE=SIMP(
+               typ='TXM',
+               statut='o',
+                position='global_jdc',
+               into=("MANUAL","AUTOMATIC","MIXED"),
+               defaut="AUTOMATIC",
+               ),
+);
+
+liste_condition=('INITS', 'DATAS')  
+
+INITS=PROC(nom='INITS',op=None,UIinfo={"groupes":("INI_param",)},
+       ini_manual=BLOC(condition="MODE == 'MANUAL'",
+               Informer=SIMP(statut='o',typ='TXM', defaut="INITS MANUAL"),
+       ),
+       ini_auto=BLOC(condition="MODE == 'AUTOMATIC'",
+               Informer=SIMP(statut='o', typ='TXM', defaut="INITS AUTOMATIC",),
+       ),
+       ini_mixed=BLOC(condition="MODE == 'MIXED'",
+               Informer=SIMP(statut='o',typ='TXM', defaut="INITS MIXED",),
+       ),
+);
+DATAS=PROC(nom='DATAS',op=None,UIinfo={"groupes":("DATAS",)},
+    data_manual=BLOC(condition="MODE == 'MANUAL'",
+               Informer=SIMP(statut='o',typ='TXM', defaut="DATAS MANUAL",
+                       ),
+       ),
+       data_auto=BLOC(condition="MODE == 'AUTOMATIC'",
+               Informer=SIMP(statut='o', typ='TXM', defaut="DATAS AUTOMATIC",
+                       ),
+       ),
+       data_mixed=BLOC(condition="MODE == 'MIXED'",
+               Informer=SIMP(statut='o',typ='TXM', defaut="DATAS MIXED",
+                       ),
+       ),
+);
+
+Classement_Commandes_Ds_Arbre=('TYPES','INITS','DATAS')
+Ordre_Des_Commandes = ('TYPES','INITS','DATAS')
diff --git a/OldCodes/Tests/Many_Concepts_52983_Cata.py b/OldCodes/Tests/Many_Concepts_52983_Cata.py
new file mode 100644 (file)
index 0000000..70f099a
--- /dev/null
@@ -0,0 +1,39 @@
+# coding: utf-8
+
+from Accas import *
+
+#class myMesh(ASSD): pass
+class myModel(ASSD): pass
+
+JdC = JDC_CATA(code='PATTERNS',
+               execmodul=None,
+               regles=(UN_PARMI('DEBUT', 'POURSUITE'),
+                       AU_MOINS_UN('FIN'),
+                       A_CLASSER(('DEBUT', 'POURSUITE'), 'FIN')))
+
+DEBUT=PROC(nom="DEBUT", op=68, repetable='n', UIinfo={"groupes":("Group1",)}, ang="Debut Eng help",
+        PAR_LOT=SIMP(ang="Debut Par Lot help En",statut='o',typ=bool, defaut=True),
+)
+AFFE_MODELE=OPER(nom="AFFE_MODELE",op=None,sd_prod=myModel,
+         UIinfo={"groupes":("Group1",)},
+         ang="Model mesh definition EN",
+         MESH=SIMP(statut='o',typ='TXM',into=("mesh_01","mesh_02","mesh_03","mesh_04",) , defaut="mesh_01"),
+    #reentrant='n',
+    #regles=(AU_MOINS_UN('AFFE','AFFE_SOUS_STRUC'),UN_PARMI('MAILLAGE','GRILLE')),
+
+
+    block_mesh_01=BLOC(condition="MESH=='mesh_01'",
+        AFFE=FACT(statut='o', 
+            ALL=SIMP(statut='o', typ=bool,ang='ALL 01 help EN', defaut=True),
+            PHENOMENA=SIMP(statut='o',typ='TXM',into=('phenomena_01','phenomena_02',), defaut='phenomena_01'),
+            #MODELISATION=SIMP(statut='o',typ='TXM', min=2,max='**', into=("mesh_01","mesh_02","mesh_03","mesh_04",) ,ang='Input 01 list EN', fr='Input 01 list FR'),
+            MODELISATION=SIMP(statut='o',typ='TXM', min=2,max='**', into=('Item_01_01','Item_01_02',) ,ang='Input 01 list EN', fr='Input 01 list FR'),
+        ),
+    ),
+)
+FIN=PROC(nom="FIN",op=9999,repetable='n',ang="Finish help EN",UIinfo={"groupes":("Group1",)},
+    FORMAT_HDF =SIMP(ang="Save HDF EN",statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), 
+)
+
+Classement_Commandes_Ds_Arbre=('DEBUT','MESH','AFFE_MODELE','FIN')
+Ordre_Des_Commandes = ('DEBUT','MESH','AFFE_MODELE','FIN')
diff --git a/OldCodes/Tests/Many_Concepts_52988_Cata.py b/OldCodes/Tests/Many_Concepts_52988_Cata.py
new file mode 100644 (file)
index 0000000..52d4f10
--- /dev/null
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+from Accas import *
+
+class myMesh(ASSD): pass
+class myModel(ASSD): pass
+
+JdC = JDC_CATA(code='PATTERNS',
+               execmodul=None,
+               regles=(AU_PLUS_UN('DEBUT', 'POURSUITE'),
+                       AU_PLUS_UN('AFFE_MODELE'),
+                       AU_PLUS_UN('FIN'),
+                       A_CLASSER(('DEBUT', 'POURSUITE'), 'FIN')))
+
+def mySeveral(suffix,num):
+    out=list()
+    for i in range(1,num+1):
+        out.append(suffix+str(i).zfill(2))
+    return out
+
+switch_facultatif=True #change 'o' to 'f' of some widgets in the loop
+empty_defauts=True
+
+def myBloc(num):
+    myNum=str(num).zfill(2)
+    list_item_body="Item_"+myNum+"_"
+    defauts0=["","",True,"'phenomena_"+myNum+"'",mySeveral(list_item_body,2)] #presence of default values
+    defauts_mask=[False,False,True,True,True] #switch off defaults of some types
+    defauts=list()
+    for id0 in range(len(defauts0)):
+        if defauts_mask[id0]:
+            item=", defaut="+str(defauts0[id0])
+        else:
+            item=""
+        defauts.append(item)
+    #print defauts
+
+    opt=['o','o','o','o','o'] #initial default obligation of items in FACT groups
+    #make some widgets optional:
+    myLen=len(opt)
+    if switch_facultatif:
+        make_f=(num)%myLen
+        opt[make_f]='f'
+    #print opt
+    if empty_defauts:
+        clean_defaut=num%myLen
+
+    myString="BLOC(condition=\"MESH==\'mesh_"+myNum+"'\""+defauts[0]+", AFFE=FACT(statut='"+opt[1]+"'"+defauts[1]+", ALL=SIMP(statut='"+opt[2]+"', typ=bool,ang='ALL "+myNum+" help EN'"+defauts[2]+"),PHENOMENA=SIMP(statut='"+opt[3]+"',typ='TXM',into=mySeveral('phenomena_',"+str(num)+")"+defauts[3]+"), MODELISATION=SIMP(statut='"+opt[4]+"',typ='TXM', min=2,max='**',into=mySeveral('"+list_item_body+"',"+str(num*4)+")"+defauts[4]+", ang='Input "+myNum+" list EN', fr='Input "+myNum+" list FR'),),)"
+    print myString
+    return eval(myString)
+
+DEBUT=PROC(nom="DEBUT", op=10, repetable='n', UIinfo={"groupes":("Group1",)}, ang="Debut Eng help",
+        PAR_LOT=SIMP(ang="Debut Par Lot help En",statut='o',typ=bool, defaut=True),
+);
+
+AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=myModel,
+    UIinfo={"groupes":("Group1",)},
+    ang="Model mesh definition EN",
+    reentrant='n',
+    regles=(AU_MOINS_UN('APPROVED')),
+    MESH=SIMP(statut='o',typ='TXM',into=mySeveral("mesh_",4) ,defaut="mesh_01"),
+       APPROVED=SIMP(statut="o", typ=bool),
+    block_mesh_01=myBloc(1),
+    block_mesh_02=myBloc(2),
+    block_mesh_03=myBloc(3),
+    block_mesh_04=myBloc(4),
+)
+
+
+FIN=PROC(nom="FIN",op=9999,repetable='n',ang="Finish help EN",UIinfo={"groupes":("Group1",)},
+    FORMAT_HDF =SIMP(ang="Save HDF EN",statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), 
+);
+
+Classement_Commandes_Ds_Arbre=('DEBUT','MESH_TYPES','AFFE_MODELE','FIN')
+
+Ordre_Des_Commandes = ('DEBUT','MESH_TYPES','AFFE_MODELE','FIN')
diff --git a/OldCodes/Tests/Many_Concepts_52989_Cata.py b/OldCodes/Tests/Many_Concepts_52989_Cata.py
new file mode 100644 (file)
index 0000000..930d9e8
--- /dev/null
@@ -0,0 +1,77 @@
+# coding: utf-8
+
+from Accas import *
+
+#class myMesh(ASSD): pass
+class myModel(ASSD): pass
+
+JdC = JDC_CATA(code='PATTERNS',
+               execmodul=None,
+               regles=(AU_PLUS_UN('DEBUT', 'POURSUITE'),
+                       AU_PLUS_UN('AFFE_MODELE'),
+                       AU_PLUS_UN('FIN'),
+                       A_CLASSER(('DEBUT', 'POURSUITE'), 'FIN')))
+
+def mySeveral(suffix,num):
+    out=list()
+    for i in range(1,num+1):
+        out.append(suffix+str(i).zfill(2))
+    return out
+
+switch_facultatif=True #change 'o' to 'f' of some widgets in the loop
+#empty_defauts=True
+
+def myBloc(num):
+    myNum=str(num).zfill(2)
+    list_item_body="Item_"+myNum+"_"
+    defauts0=["","",True,"'phenomena_"+myNum+"'",mySeveral(list_item_body,2)] #presence of default values
+    defauts_mask=[False,False,True,True,True] #switch off defaults of some types
+    defauts=list()
+    for id0 in range(len(defauts0)):
+        if defauts_mask[id0]:
+            item=", defaut="+str(defauts0[id0])
+        else:
+            item=""
+        defauts.append(item)
+    #print defauts
+
+    opt=['o','o','o','o','o'] #initial default obligation of items in FACT groups
+    #make different widgets optional, one by one:
+    myLen=len(opt)
+    if switch_facultatif:
+        make_f=(num)%myLen
+        opt[make_f]='f'
+    #print opt
+    #if empty_defauts:
+    #    clean_defaut=num%myLen
+
+    myString="BLOC(condition=\"MESH==\'mesh_"+myNum+"'\""+defauts[0]+", AFFE=FACT(statut='"+opt[1]+"'"+defauts[1]+", ALL=SIMP(statut='"+opt[2]+"', typ=bool,ang='ALL "+myNum+" help EN'"+defauts[2]+"),PHENOMENA=SIMP(statut='"+opt[3]+"',typ='TXM',into=mySeveral('phenomena_',"+str(num)+")"+defauts[3]+"), MODELISATION=SIMP(statut='"+opt[4]+"',typ='TXM', min=2,max='**',into=mySeveral('"+list_item_body+"',"+str(num*4)+")"+defauts[4]+", ang='Input "+myNum+" list EN', fr='Input "+myNum+" list FR'),),)"
+    print myString
+    return eval(myString)
+
+DEBUT=PROC(nom="DEBUT", op=10, repetable='n', UIinfo={"groupes":("Group1",)}, ang="Debut Eng help",
+        PAR_LOT=SIMP(ang="Debut Par Lot help En",statut='o',typ=bool, defaut=True),
+);
+
+AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=myModel,
+    UIinfo={"groupes":("Group1",)},
+    ang="Model mesh definition EN",
+    reentrant='n',
+    regles=(AU_MOINS_UN('APPROVED')),
+    MESH=SIMP(statut='o',typ='TXM',into=mySeveral("mesh_",4) ,defaut="mesh_01"),
+       APPROVED=SIMP(statut="f", typ=bool), # presence of this item will validate the whole group
+    PAR_LOT=SIMP(ang="Debut Par Lot help En",statut='o',typ='I', defaut=True),
+    block_mesh_01=myBloc(1),
+    block_mesh_02=myBloc(2),
+    block_mesh_03=myBloc(3),
+    block_mesh_04=myBloc(4),
+)
+
+
+FIN=PROC(nom="FIN",op=9999,repetable='n',ang="Finish help EN",UIinfo={"groupes":("Group1",)},
+    FORMAT_HDF =SIMP(ang="Save HDF EN",statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), 
+);
+
+Classement_Commandes_Ds_Arbre=('DEBUT','MESH_TYPES','AFFE_MODELE','FIN')
+
+Ordre_Des_Commandes = ('DEBUT','MESH_TYPES','AFFE_MODELE','FIN')
diff --git a/OldCodes/Tests/Many_Concepts_52992_Cata.py b/OldCodes/Tests/Many_Concepts_52992_Cata.py
new file mode 100644 (file)
index 0000000..13145b9
--- /dev/null
@@ -0,0 +1,76 @@
+# coding: utf-8
+
+from Accas import *
+
+#class myMesh(ASSD): pass
+class myModel(ASSD): pass
+
+JdC = JDC_CATA(code='PATTERNS',
+               execmodul=None,
+               regles=(AU_PLUS_UN('DEBUT', 'POURSUITE'),
+                       AU_PLUS_UN('AFFE_MODELE'),
+                       AU_PLUS_UN('FIN'),
+                       A_CLASSER(('DEBUT', 'POURSUITE'), 'FIN')))
+
+def mySeveral(suffix,num):
+    out=list()
+    for i in range(1,num+1):
+        out.append(suffix+str(i).zfill(2))
+    return out
+
+switch_facultatif=True #change 'o' to 'f' of some widgets in the loop
+#empty_defauts=True
+
+def myBloc(num):
+    myNum=str(num).zfill(2)
+    list_item_body="Item_"+myNum+"_"
+    defauts0=["","",True,"'phenomena_"+myNum+"'",mySeveral(list_item_body,2)] #presence of default values
+    defauts_mask=[False,False,True,True,False] #switch off defaults of some types
+    defauts=list()
+    for id0 in range(len(defauts0)):
+        if defauts_mask[id0]:
+            item=", defaut="+str(defauts0[id0])
+        else:
+            item=""
+        defauts.append(item)
+    #print defauts
+
+    opt=['o','o','o','o','o'] #initial default obligation of items in FACT groups
+    #make different widgets optional, one by one:
+    myLen=len(opt)
+    if switch_facultatif:
+        make_f=(num)%myLen
+        opt[make_f]='f'
+    #print opt
+    #if empty_defauts:
+    #    clean_defaut=num%myLen
+
+    myString="BLOC(condition=\"MESH==\'mesh_"+myNum+"'\""+defauts[0]+", AFFE=FACT(statut='"+opt[1]+"'"+defauts[1]+", ALL=SIMP(statut='"+opt[2]+"', typ=bool,ang='ALL "+myNum+" help EN'"+defauts[2]+"),PHENOMENA=SIMP(statut='"+opt[3]+"',typ='TXM',into=mySeveral('phenomena_',"+str(num)+")"+defauts[3]+"), MODELISATION=SIMP(statut='"+opt[4]+"',typ='TXM', min=4,max='**',into=mySeveral('"+list_item_body+"',"+str(num*4)+")"+defauts[4]+", ang='Input "+myNum+" list EN', fr='Input "+myNum+" list FR'),),)"
+    print myString
+    return eval(myString)
+
+DEBUT=PROC(nom="DEBUT", op=10, repetable='n', UIinfo={"groupes":("Group1",)}, ang="Debut Eng help",
+        PAR_LOT=SIMP(ang="Debut Par Lot help En",statut='o',typ=bool, defaut=True),
+);
+
+AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=myModel,
+    UIinfo={"groupes":("Group1",)},
+    ang="Model mesh definition EN",
+    reentrant='n',
+    regles=(AU_MOINS_UN('APPROVED')),
+    MESH=SIMP(statut='o',typ='TXM',into=mySeveral("mesh_",4) ,defaut="mesh_01"),
+       APPROVED=SIMP(statut="f", typ=bool), # presence of this item will validate the whole group
+    block_mesh_01=myBloc(1),
+    block_mesh_02=myBloc(2),
+    block_mesh_03=myBloc(3),
+    block_mesh_04=myBloc(4),
+)
+
+
+FIN=PROC(nom="FIN",op=9999,repetable='n',ang="Finish help EN",UIinfo={"groupes":("Group1",)},
+    FORMAT_HDF =SIMP(ang="Save HDF EN",statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), 
+);
+
+Classement_Commandes_Ds_Arbre=('DEBUT','MESH_TYPES','AFFE_MODELE','FIN')
+
+Ordre_Des_Commandes = ('DEBUT','MESH_TYPES','AFFE_MODELE','FIN')
diff --git a/OldCodes/Tests/Matrix_Cata.py b/OldCodes/Tests/Matrix_Cata.py
new file mode 100644 (file)
index 0000000..268a77b
--- /dev/null
@@ -0,0 +1,87 @@
+# coding: utf-8
+from Accas import *
+
+class loi      ( ASSD ) : pass
+class variable ( ASSD ) : pass
+
+class Matrice:
+  def __init__(self,nbLigs=None,nbCols=None,methodeCalculTaille=None,formatSortie="ligne",valSup=None,valMin=None,structure=None):
+      self.nbLigs=nbLigs
+      self.nbCols=nbCols
+      self.methodeCalculTaille=methodeCalculTaille
+      self.formatSortie=formatSortie
+      self.valSup=valSup
+      self.valMin=valMin
+      self.structure=structure
+
+  def __convert__(self,valeur):
+    # Attention ne verifie pas grand chose
+    if type(valeur) != types.ListType :
+      return None
+    return valeur
+
+  def info(self):
+      return "Matrice %s x %s" % (self.nbLigs, self.nbCols)
+
+      __repr__=info
+      __str__=info
+
+
+
+class myModel(ASSD): pass
+
+JdC = JDC_CATA(code='PATTERNS',
+               execmodul=None,
+               regles=(AU_MOINS_UN ( 'CORRELATION' ),
+                )
+)
+
+DETERMINISTICVARIABLE = OPER ( nom = "DETERMINISTICVARIABLE",
+                               sd_prod = variable,
+                               op = None,
+                               fr = "Variable deterministe",
+                               ang = "Deterministic variable",
+            
+  N = SIMP ( statut = 'o', typ = "TXM", fr = "Nom", ang = "Name", defaut = "Var1" ),
+  T = SIMP ( statut = 'o', defaut = "in", into = ( "in" , "out", ), typ = "TXM", fr = "Type", ang = "Type" ),
+  R = SIMP ( statut = 'o', defaut = 0, typ = "I", fr = "Rang", ang = "Rank" ),
+)
+
+DISTRIBUTION = OPER ( nom = "DISTRIBUTION",
+                      sd_prod = loi,
+                      op = 68,
+                      fr = "Definitions des lois marginales utilisees par les variables d'entree", 
+                      
+  R = SIMP ( statut = "o", typ = "R", max = 1, val_min = 0., fr = "Parametre R de la loi | R > 0", ang = "R parameter | R > 0", defaut = 0.5 ),
+  # T > R
+  T = SIMP ( statut = "o", typ = "R", max = 1, val_min = 0., fr = "Parametre T de la loi | T > R", ang = "T parameter | T > R", defaut = 0.7 ),
+  A = SIMP ( statut = "o", typ = "R", max = 1, fr = "Borne inferieure du support de la loi", ang = "Support lower bound", defaut = 0.1 ),
+  # B > A
+  B = SIMP ( statut = "o", typ = "R", max = 1, fr = "Borne superieure du support de la loi", ang = "Support upper bound", defaut = 0.3 ),
+)
+
+VARIABLE = PROC ( nom = "VARIABLE",
+                  op = None,
+                  docu = "",
+                  fr = "Variable probabiliste",
+                  ang = "Probabilistic variable",
+
+  ModelVariable = SIMP ( statut = "o", typ = ( variable, ), fr = "Variable d'entrée du modèle", ang = "Input variable of the model" ),
+  Distribution = SIMP ( statut = "o", typ = ( loi, ), fr = "Modélisation probabiliste", ang = "Probabilistic modelisation" ),
+)
+
+CORRELATION = PROC ( nom = 'CORRELATION',
+                     op = None,
+                     docu = "",
+                     fr = "Correlation entre variables",
+                     ang = "Variable correlation",
+
+  CorrelationMatrix = SIMP ( statut = "o", typ = Matrice(nbLigs=None,
+                                                         nbCols=None,
+                                                         methodeCalculTaille='NbDeVariables',
+                                                         valSup=1,
+                                                         valMin=-1,
+                                                         structure="symetrique"),
+                             fr = "Matrice de correlation entre les variables d'entree",
+                             ang = "Correlation matrix for input variables" ),
+)
diff --git a/OldCodes/Tests/Nested_Cond_52945_Cata.py b/OldCodes/Tests/Nested_Cond_52945_Cata.py
new file mode 100644 (file)
index 0000000..9d3b119
--- /dev/null
@@ -0,0 +1,61 @@
+# coding: utf-8
+
+from Accas import *
+
+class loi(): pass
+
+JdC = JDC_CATA (code = 'PATTERNS',
+                execmodul = None,
+                )
+use_and=False #switch off second condition about MAX_ROWS while it does not work for blocks greater than 2
+def cond2(myMax=False):
+    if use_and:
+        if myMax:
+            out= " and MAX_ROWS>="+str(myMax)
+        else:
+            out=""
+    else: 
+        out=""
+    print out
+    return out
+
+PROC_01 = PROC(nom = "PROC_01",op = None, ang="Help for PROC_01 EN",
+    MAX_ROWS=SIMP(statut='o',typ='I',val_min=1,val_max=8, defaut=8),
+    PROCGROUP1=SIMP(statut='o',typ='TXM',into=("1A","2A","add new row",)),
+    wideblock1=BLOC(condition='PROCGROUP1=="add new row"'+cond2(1),
+        PROCGROUP2=SIMP(statut='o',typ='TXM',into=("1A","add new row","3A",)),
+        wideblock2=BLOC(condition='PROCGROUP2=="add new row"'+cond2(2),
+            PROCGROUP3=SIMP(statut='o',typ='TXM',into=("1","2","add new row",)),
+            PROCGROUP689=SIMP(statut='o',typ='TXM',),
+            wideblock3=BLOC(condition='PROCGROUP3=="add new row"'+cond2(3),
+                PROCGROUP4=SIMP(statut='o',typ='TXM',into=("1","add new row","3",)),
+                wideblock4=BLOC(condition='PROCGROUP4=="add new row"'+cond2(4),
+                    PROCGROUP5=SIMP(statut='o',typ='TXM',into=("add new row","2","3",)),
+                    wideblock5=BLOC(condition='PROCGROUP5=="add new row"'+cond2(5), 
+                        PROCGROUP6=SIMP(statut='o',typ='TXM',into=("1","2","add new row",)),
+                        wideblock6=BLOC(condition='PROCGROUP6=="add new row"'+cond2(6), 
+                            PROCGROUP7=SIMP(statut='o',typ='TXM',into=("1","add new row","3",)),
+                            wideblock7=BLOC(condition='PROCGROUP7=="add new row"'+cond2(7), 
+                                PROCGROUP8=SIMP(statut='o',typ='TXM',into=("add new row","2","3",)),
+                                wideblock8=BLOC(condition='PROCGROUP8=="add new row"'+cond2(8),
+                                )
+                            )
+                        )
+                    )
+                )
+            )
+        )
+    )
+)
+
+#LEV1 = OPER( nom = "LEV1",
+#    sd_prod=loi,
+#    op=68,
+#    fr='LEV1 FR',
+#    Boolean01=SIMP( statut = 'o',typ = bool, defaut=True, fr = 'Bool mandatory FR', ang = 'Bool mandatory EN'),
+#    SelectedItem=SIMP(statut = 'o',typ = 'TXM', into=["01_01","01_02","01_03","01_04"], fr="FR"),
+#)
+
+Classement_Commandes_Ds_Arbre=('PROC_01',)
+
+Ordre_Des_Commandes = ('PROC_01',)
diff --git a/OldCodes/Tests/Nested_Cond_52946_Cata.py b/OldCodes/Tests/Nested_Cond_52946_Cata.py
new file mode 100644 (file)
index 0000000..fef5edf
--- /dev/null
@@ -0,0 +1,62 @@
+# coding: utf-8
+
+from Accas import *
+
+class loi(): pass
+
+JdC = JDC_CATA (code = 'PATTERNS',
+                execmodul = None,
+                )
+use_and=True #switch off second condition about MAX_ROWS while it does not work for blocks greater than 2
+def cond2(myMax=False):
+    if use_and:
+        if myMax:
+            out= " and MAX_ROWS>="+str(myMax)
+        else:
+            out=""
+    else: 
+        out=""
+    print out
+    return out
+
+PROC_01 = PROC(nom = "PROC_01",op = None, ang="Help for PROC_01 EN",
+    MAX_ROWS=SIMP(statut='o',typ='I',val_min=1,val_max=8, defaut=8),
+    PROCGROUP1=SIMP(statut='o',typ='TXM',into=("1","2","add new row",)),
+    wideblock1=BLOC(condition='PROCGROUP1=="add new row"'+cond2(1),
+        PROCGROUP2=SIMP(statut='o',typ='TXM',into=("1","add new row","3",)),
+        #wideblock2=BLOC(condition='PROCGROUP2=="add new row"',
+        wideblock2=BLOC(condition='MAX_ROWS == 8',
+        #wideblock2=BLOC(condition='PROCGROUP2=="add new row" and (MAX_ROWS > 2)',
+            PROCGROUP3=SIMP(statut='o',typ='TXM',into=("1","2","add new row",)),
+            wideblock3=BLOC(condition='PROCGROUP3=="add new row"'+cond2(3),
+                PROCGROUP4=SIMP(statut='o',typ='TXM',into=("1","add new row","3",)),
+                wideblock4=BLOC(condition='PROCGROUP4=="add new row"'+cond2(4),
+                    PROCGROUP5=SIMP(statut='o',typ='TXM',into=("add new row","2","3",)),
+                    wideblock5=BLOC(condition='PROCGROUP5=="add new row"'+cond2(5), 
+                        PROCGROUP6=SIMP(statut='o',typ='TXM',into=("1","2","add new row",)),
+                        wideblock6=BLOC(condition='PROCGROUP6=="add new row"'+cond2(6), 
+                            PROCGROUP7=SIMP(statut='o',typ='TXM',into=("1","add new row","3",)),
+                            wideblock7=BLOC(condition='PROCGROUP7=="add new row"'+cond2(7), 
+                                PROCGROUP8=SIMP(statut='o',typ='TXM',into=("add new row","2","3",)),
+                                wideblock8=BLOC(condition='PROCGROUP8=="add new row"'+cond2(8),
+                                )
+                            )
+                        )
+                    )
+                )
+            )
+        )
+    )
+)
+
+#LEV1 = OPER( nom = "LEV1",
+#    sd_prod=loi,
+#    op=68,
+#    fr='LEV1 FR',
+#    Boolean01=SIMP( statut = 'o',typ = bool, defaut=True, fr = 'Bool mandatory FR', ang = 'Bool mandatory EN'),
+#    SelectedItem=SIMP(statut = 'o',typ = 'TXM', into=["01_01","01_02","01_03","01_04"], fr="FR"),
+#)
+
+Classement_Commandes_Ds_Arbre=('PROC_01',)
+
+Ordre_Des_Commandes = ('PROC_01',)
diff --git a/OldCodes/Tests/Nested_Cond_52947_Cata.py b/OldCodes/Tests/Nested_Cond_52947_Cata.py
new file mode 100644 (file)
index 0000000..bf3be39
--- /dev/null
@@ -0,0 +1,17 @@
+# coding: utf-8
+
+from Accas import *
+
+class loi(): pass
+
+JdC = JDC_CATA (code = 'PATTERNS',
+                execmodul = None,
+                )
+
+PROC_01 = PROC(nom = "PROC_01",op = None, ang="Help for PROC_01 EN",
+    PROCGROUP1=SIMP(statut='o',typ='TXM',into=("a1","a2","a3",)),
+)
+
+Classement_Commandes_Ds_Arbre=('PROC_01',)
+
+Ordre_Des_Commandes = ('PROC_01',)
diff --git a/OldCodes/Tests/Nested_Cond_52948_Cata.py b/OldCodes/Tests/Nested_Cond_52948_Cata.py
new file mode 100644 (file)
index 0000000..81f216f
--- /dev/null
@@ -0,0 +1,21 @@
+# coding: utf-8
+
+from Accas import *
+
+class loi(ASSD): pass
+
+JdC = JDC_CATA (code = 'PATTERNS',
+                execmodul = None,
+                )
+
+PER_01 = OPER( nom = "PER_01",
+    sd_prod=loi,
+    op=68,
+    fr='LEV1 FR',
+    Boolean01=SIMP( statut = 'o',typ = bool, defaut=True, fr = 'Bool mandatory FR', ang = 'Bool mandatory EN'),
+    SelectedItem=SIMP(statut = 'o',typ = 'TXM', into=["01_01","01_02","01_03","01_04"], fr="FR"),
+)
+
+#Classement_Commandes_Ds_Arbre=('OPER_01',)
+
+#Ordre_Des_Commandes = ('OPER_01',)
diff --git a/OldCodes/Tests/Nested_Cond_52949_Cata.py b/OldCodes/Tests/Nested_Cond_52949_Cata.py
new file mode 100644 (file)
index 0000000..d09011a
--- /dev/null
@@ -0,0 +1,19 @@
+# coding: utf-8
+
+from Accas import *
+
+JdC = JDC_CATA (code = 'PATTERNS',
+                execmodul = None,
+                )
+
+PROC_01 = PROC(nom = "PROC_01",op = None, ang="Help for PROC_01 EN",
+    MAX_ROWS=SIMP(statut='o',typ='I',val_min=1,val_max=8, defaut=8),
+    PROCGROUP1=SIMP(statut='o',typ='TXM',into=("1","2","add new row",)),
+    wideblock1=BLOC(condition='PROCGROUP1 in "add new row"',
+        PROCGROUP2=SIMP(statut='o',typ='TXM',into=("1","add new row","3",)),
+    )
+)
+
+Classement_Commandes_Ds_Arbre=('PROC_01',)
+
+Ordre_Des_Commandes = ('PROC_01',)
diff --git a/OldCodes/Tests/Nested_Cond_52952_Cata.py b/OldCodes/Tests/Nested_Cond_52952_Cata.py
new file mode 100644 (file)
index 0000000..47a8d7c
--- /dev/null
@@ -0,0 +1,60 @@
+# coding: utf-8
+
+from Accas import *
+
+class loi(): pass
+
+JdC = JDC_CATA (code = 'PATTERNS',
+                execmodul = None,
+                )
+use_and=False #switch off second condition about MAX_ROWS while it does not work for blocks greater than 2
+def cond2(myMax=False):
+    if use_and:
+        if myMax:
+            out= " and MAX_ROWS>="+str(myMax)
+        else:
+            out=""
+    else: 
+        out=""
+    #print out
+    return out
+
+PROC_01 = PROC(nom = "PROC_01",op = None, ang="Help for PROC_01 EN",
+    MAX_ROWS=SIMP(statut='o',typ='I',val_min=1,val_max=8, defaut=8),
+    PROCGROUP1=SIMP(statut='o',typ='TXM',into=("1","2","add new row",)),
+    wideblock1=BLOC(condition='PROCGROUP1=="add new row"'+cond2(1),
+        PROCGROUP2=SIMP(statut='o',typ='TXM',into=("1","add new row","3",)),
+        wideblock2=BLOC(condition='PROCGROUP2=="add new row"'+cond2(2),
+            PROCGROUP3=SIMP(statut='o',typ='TXM',into=("1","2","add new row",)),
+            wideblock3=BLOC(condition='PROCGROUP3=="add new row"'+cond2(3),
+                PROCGROUP4=SIMP(statut='o',typ='TXM',into=("1","add new row","3",)),
+                wideblock4=BLOC(condition='PROCGROUP4=="add new row"'+cond2(4),
+                    PROCGROUP5=SIMP(statut='o',typ='TXM',into=("add new row","2","3",)),
+                    wideblock5=BLOC(condition='PROCGROUP5=="add new row"'+cond2(5), 
+                        PROCGROUP6=SIMP(statut='o',typ='TXM',into=("1","2","add new row",)),
+                        wideblock6=BLOC(condition='PROCGROUP6=="add new row"'+cond2(6), 
+                            PROCGROUP7=SIMP(statut='o',typ='TXM',into=("1","add new row","3",)),
+                            wideblock7=BLOC(condition='PROCGROUP7=="add new row"'+cond2(7), 
+                                PROCGROUP8=SIMP(statut='o',typ='TXM',into=("add new row","2","3",)),
+                                wideblock8=BLOC(condition='PROCGROUP8=="add new row"'+cond2(8),
+                                )
+                            )
+                        )
+                    )
+                )
+            )
+        )
+    )
+)
+
+#LEV1 = OPER( nom = "LEV1",
+#    sd_prod=loi,
+#    op=68,
+#    fr='LEV1 FR',
+#    Boolean01=SIMP( statut = 'o',typ = bool, defaut=True, fr = 'Bool mandatory FR', ang = 'Bool mandatory EN'),
+#    SelectedItem=SIMP(statut = 'o',typ = 'TXM', into=["01_01","01_02","01_03","01_04"], fr="FR"),
+#)
+
+Classement_Commandes_Ds_Arbre=('PROC_01',)
+
+Ordre_Des_Commandes = ('PROC_01',)
diff --git a/OldCodes/Tests/Separate_Blocks_52958_Cata.py b/OldCodes/Tests/Separate_Blocks_52958_Cata.py
new file mode 100644 (file)
index 0000000..1327a3f
--- /dev/null
@@ -0,0 +1,29 @@
+# coding: utf-8
+
+from Accas import *
+
+JdC = JDC_CATA (code = 'PATTERNS',
+                execmodul = None,
+                )
+def several(suffix,num):
+    out=list()
+    for i in range(1,num+1):
+        out.append(suffix+str(i).zfill(2))
+    return out
+
+NUMERICAL_PARAMETERS=PROC(nom = "NUMERICAL_PARAMETERS", op=None, ang="Help for NUMERICAL_PARAMETERS, English version",
+    #Equations=SIMP(statut = 'o',typ = 'TXM',into=("EF","VF","BS"),defaut="EF"),
+    Solver_definition=FACT(statut = 'o',
+        Solver = SIMP(statut = 'o',typ = 'TXM', into=several("Solver_",12), defaut="Solver_06"),
+    )
+)
+PASCALE=PROC(nom = "PASCALE", op=None, ang="Help for NUMERICAL_PARAMETERS, English version",
+    Equations=SIMP(statut = 'o',typ = 'TXM',into=("EF","VF","BS"),defaut="EF"),
+    Solver_definition=FACT(statut = 'o',
+        Solver = SIMP(statut = 'o',typ = 'TXM', into=several("Solver_",12), defaut="Solver_06"),
+    )
+)
+
+Classement_Commandes_Ds_Arbre=('NUMERICAL_PARAMETERS',)
+
+Ordre_Des_Commandes = ('NUMERICAL_PARAMETERS',)
diff --git a/OldCodes/Tests/Separate_Blocks_52963_Cata.py b/OldCodes/Tests/Separate_Blocks_52963_Cata.py
new file mode 100644 (file)
index 0000000..c115196
--- /dev/null
@@ -0,0 +1,40 @@
+# coding: utf-8
+
+from Accas import *
+
+JdC = JDC_CATA (code = 'PATTERNS',
+                execmodul = None,
+                )
+def mySeveral(suffix,num):
+    out=list()
+    for i in range(1,num+1):
+        out.append(suffix+str(i).zfill(2))
+    return out
+
+def myFact(num):
+    myNum=str(num).zfill(2)
+    list_item_body="Item_"+myNum+"_"
+    myString="FACT(statut = 'f', List_"+myNum+" = SIMP(statut = 'o',typ = 'TXM', into=mySeveral('"+list_item_body+"',12), defaut='"+list_item_body+myNum+"'),Real_"+myNum+" = SIMP(statut = 'o',typ = 'R', defaut = "+str(num/100.)+", ang='Real "+myNum+" help EN'),Integer_"+myNum+" = SIMP(statut = 'o',typ = 'I', defaut = "+str(100+num)+",ang='Max_Iter "+myNum+" help EN'))"
+    print myString
+    return eval(myString)
+
+
+PROC_01=PROC(nom = "PROC_01", op=None, ang="Help for PROC_01, English version",fr="Help for PROC_01, French version", docu="",
+    Radio_01=SIMP(statut = 'f',typ = 'TXM',into=("EF","VF","BS"),defaut="EF"),
+    FACT_01=myFact(1),
+    FACT_02=myFact(2),
+    FACT_03=myFact(3),
+    FACT_04=myFact(4),
+    FACT_05=myFact(5),
+    FACT_06=myFact(6),
+    FACT_07=myFact(7),
+    FACT_08=myFact(8),
+    FACT_09=myFact(9),
+    FACT_10=myFact(10),
+    FACT_11=myFact(11),
+    FACT_12=myFact(12),
+)
+
+Classement_Commandes_Ds_Arbre=('PROC_01',)
+
+Ordre_Des_Commandes = ('PROC_01',)
diff --git a/OldCodes/Tests/Separate_Blocks_52966_Cata.py b/OldCodes/Tests/Separate_Blocks_52966_Cata.py
new file mode 100644 (file)
index 0000000..baef1eb
--- /dev/null
@@ -0,0 +1,48 @@
+# coding: utf-8
+
+from Accas import *
+
+JdC = JDC_CATA (code = 'PATTERNS',
+                execmodul = None,
+                )
+def mySeveral(suffix,num):
+    out=list()
+    for i in range(1,num+1):
+        out.append(suffix+str(i).zfill(2))
+    return out
+
+switch_facultatif=False #change 'o' to 'f' of some widgets in the loop
+
+def myFact(num):
+    opt=['o','f','o','o']
+    if switch_facultatif:
+        myLen=len(opt)
+        make_f=(num-1)%myLen
+        opt[make_f]='f'
+    #print opt
+    myNum=str(num).zfill(2)
+    list_item_body="Item_"+myNum+"_"
+    myString="FACT(statut = '"+opt[0]+"', List_"+myNum+" = SIMP(statut = '"+opt[1]+"',typ = 'TXM', into=mySeveral('"+list_item_body+"',12), defaut='"+list_item_body+myNum+"'),Real_"+myNum+" = SIMP(statut = '"+opt[2]+"',typ = 'R', defaut = "+str(num/100.)+", ang='Real "+myNum+" help EN'),Integer_"+myNum+" = SIMP(statut = '"+opt[3]+"',typ = 'I', defaut = "+str(100+num)+",ang='Max_Iter "+myNum+" help EN'))"
+    print myString
+    return eval(myString)
+
+
+PROC_01=PROC(nom = "PROC_01", op=None, ang="Help for PROC_01, English version",fr="Help for PROC_01, French version", docu="",
+    Radio_01=SIMP(statut = 'o',typ = 'TXM',into=("EF","VF","BS"),defaut="EF"),
+    FACT_01=myFact(1),
+    FACT_02=myFact(2),
+    FACT_03=myFact(3),
+    FACT_04=myFact(4),
+    FACT_05=myFact(5),
+    FACT_06=myFact(6),
+    FACT_07=myFact(7),
+    FACT_08=myFact(8),
+    FACT_09=myFact(9),
+    FACT_10=myFact(10),
+    FACT_11=myFact(11),
+    FACT_12=myFact(12),
+)
+
+Classement_Commandes_Ds_Arbre=('PROC_01',)
+
+Ordre_Des_Commandes = ('PROC_01',)
diff --git a/OldCodes/Tests/Separate_Blocks_52972_Cata.py b/OldCodes/Tests/Separate_Blocks_52972_Cata.py
new file mode 100644 (file)
index 0000000..88927e4
--- /dev/null
@@ -0,0 +1,66 @@
+# coding: utf-8
+
+from Accas import *
+
+JdC = JDC_CATA (code = 'PATTERNS',
+                execmodul = None,
+                )
+def mySeveral(suffix,num):
+    out=list()
+    for i in range(1,num+1):
+        out.append(suffix+str(i).zfill(2))
+    return out
+
+switch_facultatif=True #change 'o' to 'f' of some widgets in the loop
+empty_defauts=True
+
+def myFact(num):
+    myNum=str(num).zfill(2)
+    list_item_body="Item_"+myNum+"_"
+
+    defauts0=["","'"+list_item_body+myNum+"'", str(num/100.), str(100+num), "'Text_"+myNum+"'" ] #presence of default values
+    defauts_mask=[False,True,True,False,True] #switch off defaults of some types
+    defauts=list()
+    for id0 in range(len(defauts0)):
+        if defauts_mask[id0]:
+            item=", defaut="+defauts0[id0]
+        else:
+            item=""
+        defauts.append(item)
+    print defauts
+
+    opt=['o','o','o','o','o'] #initial default obligation of items in FACT groups
+    #make some widgets optional:
+    myLen=len(opt)
+    if switch_facultatif:
+        make_f=(num)%myLen
+        opt[make_f]='f'
+    #print opt
+    if empty_defauts:
+        clean_defaut=num%myLen
+
+
+    myString="FACT(statut = '"+opt[0]+"', List_"+myNum+" = SIMP(statut = '"+opt[1]+"',typ = 'TXM', into=mySeveral('"+list_item_body+"',12)"+defauts[1]+"),Real_"+myNum+" = SIMP(statut = '"+opt[2]+"',typ = 'R'"+defauts[2]+", ang='Real "+myNum+" help EN'),Integer_"+myNum+" = SIMP(statut = '"+opt[3]+"',typ = 'I'"+defauts[3]+",ang='Integer "+myNum+" help EN'),Text_"+myNum+" = SIMP(statut = '"+opt[4]+"',typ = 'TXM'"+defauts[4]+",ang='Text "+myNum+" help EN'))"
+    print myString
+    return eval(myString)
+
+
+PROC_01=PROC(nom = "PROC_01", op=None, ang="Help for PROC_01, English version",fr="Help for PROC_01, French version", docu="",
+    Radio_01=SIMP(statut = 'o',typ = 'TXM',into=("EF","VF","BS"),defaut="EF"),
+    FACT_01=myFact(1),
+    FACT_02=myFact(2),
+    FACT_03=myFact(3),
+    FACT_04=myFact(4),
+    FACT_05=myFact(5),
+    #FACT_06=myFact(6),
+    #FACT_07=myFact(7),
+    #FACT_08=myFact(8),
+    #FACT_09=myFact(9),
+    #FACT_10=myFact(10),
+    #FACT_11=myFact(11),
+    #FACT_12=myFact(12),
+)
+
+Classement_Commandes_Ds_Arbre=('PROC_01',)
+
+Ordre_Des_Commandes = ('PROC_01',)
diff --git a/OldCodes/Tests/Separate_Blocks_52975_Cata.py b/OldCodes/Tests/Separate_Blocks_52975_Cata.py
new file mode 100644 (file)
index 0000000..88927e4
--- /dev/null
@@ -0,0 +1,66 @@
+# coding: utf-8
+
+from Accas import *
+
+JdC = JDC_CATA (code = 'PATTERNS',
+                execmodul = None,
+                )
+def mySeveral(suffix,num):
+    out=list()
+    for i in range(1,num+1):
+        out.append(suffix+str(i).zfill(2))
+    return out
+
+switch_facultatif=True #change 'o' to 'f' of some widgets in the loop
+empty_defauts=True
+
+def myFact(num):
+    myNum=str(num).zfill(2)
+    list_item_body="Item_"+myNum+"_"
+
+    defauts0=["","'"+list_item_body+myNum+"'", str(num/100.), str(100+num), "'Text_"+myNum+"'" ] #presence of default values
+    defauts_mask=[False,True,True,False,True] #switch off defaults of some types
+    defauts=list()
+    for id0 in range(len(defauts0)):
+        if defauts_mask[id0]:
+            item=", defaut="+defauts0[id0]
+        else:
+            item=""
+        defauts.append(item)
+    print defauts
+
+    opt=['o','o','o','o','o'] #initial default obligation of items in FACT groups
+    #make some widgets optional:
+    myLen=len(opt)
+    if switch_facultatif:
+        make_f=(num)%myLen
+        opt[make_f]='f'
+    #print opt
+    if empty_defauts:
+        clean_defaut=num%myLen
+
+
+    myString="FACT(statut = '"+opt[0]+"', List_"+myNum+" = SIMP(statut = '"+opt[1]+"',typ = 'TXM', into=mySeveral('"+list_item_body+"',12)"+defauts[1]+"),Real_"+myNum+" = SIMP(statut = '"+opt[2]+"',typ = 'R'"+defauts[2]+", ang='Real "+myNum+" help EN'),Integer_"+myNum+" = SIMP(statut = '"+opt[3]+"',typ = 'I'"+defauts[3]+",ang='Integer "+myNum+" help EN'),Text_"+myNum+" = SIMP(statut = '"+opt[4]+"',typ = 'TXM'"+defauts[4]+",ang='Text "+myNum+" help EN'))"
+    print myString
+    return eval(myString)
+
+
+PROC_01=PROC(nom = "PROC_01", op=None, ang="Help for PROC_01, English version",fr="Help for PROC_01, French version", docu="",
+    Radio_01=SIMP(statut = 'o',typ = 'TXM',into=("EF","VF","BS"),defaut="EF"),
+    FACT_01=myFact(1),
+    FACT_02=myFact(2),
+    FACT_03=myFact(3),
+    FACT_04=myFact(4),
+    FACT_05=myFact(5),
+    #FACT_06=myFact(6),
+    #FACT_07=myFact(7),
+    #FACT_08=myFact(8),
+    #FACT_09=myFact(9),
+    #FACT_10=myFact(10),
+    #FACT_11=myFact(11),
+    #FACT_12=myFact(12),
+)
+
+Classement_Commandes_Ds_Arbre=('PROC_01',)
+
+Ordre_Des_Commandes = ('PROC_01',)
diff --git a/OldCodes/Tests/a b/OldCodes/Tests/a
new file mode 100644 (file)
index 0000000..0018d1d
--- /dev/null
@@ -0,0 +1,110 @@
+ESSAI_FACT=OPER(nom="ESSAI_FACT",
+   sd_prod=ObjetUtilisateur,
+   op=None,
+   fr=tr("Affectation de caractéristiques à des éléments de structure"),
+   regles = (AU_MOINS_UN('Poutre','Barre'),
+             EXCLUS('Discret','Discret_2D'),),
+   Info   = SIMP(statut='f',typ='I', defaut= 1 ,into=(1,2) ),
+   Verif  = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("Maille","Noeud") ),
+#
+# ==============================================================================
+    Poutre  = FACT(statut= 'f',max= '**',
+        Section = SIMP(statut= 'o',typ= 'TXM' ,into= ("GENERALE","RECTANGLE","CERCLE") ),
+
+        b_generale = BLOC(condition = " Section == 'GENERALE'",
+            regles = (UN_PARMI('Maille','GroupeMailles'),),
+            Maille    = SIMP(statut= 'f',typ= ma  ,validators= NoRepeat(),max= '**'),
+            GroupeMailles  = SIMP(statut= 'f',typ= grma,validators= NoRepeat(),max= '**'),
+
+            Vari = SIMP(statut= 'f',typ= 'TXM',into= ("CONSTANT","HOMOTHETIQUE"),defaut= "CONSTANT"),
+
+            b_constant = BLOC(condition = "Vari == 'CONSTANT'",
+                regles = (PRESENT_ABSENT('Table','Cara'),
+                          PRESENT_PRESENT('Table','Nom'),
+                          PRESENT_PRESENT('Cara','Valeur'),),
+                Table = SIMP(statut= 'f',typ='TXM'),
+                Nom    = SIMP(statut= 'f',typ= 'TXM'),
+                Cara       = SIMP(statut= 'o',typ= 'TXM',min= 4 ,max= 5,
+                    fr= tr("A,IY,IZ,JX sont des paramètres obligatoires"),
+                    validators= [NoRepeat(), Compulsory(['A','IY','IZ','JX'])],
+                    into= ("A","IY","IZ","AY","AZ","EY","EZ","JX","RY","RZ","RT","JG","IYR2","IZR2","AI") ),
+                Valeur       = SIMP(statut= 'f',typ= 'R',min= 4 ,max= 15),
+            ),
+        ),
+        b_rectangle = BLOC(condition = "Section == 'RECTANGLE'",
+            regles = (UN_PARMI('Maille','GroupeMailles'),),
+            Maille    = SIMP(statut= 'f',typ= ma  ,validators= NoRepeat(),max= '**'),
+            GroupeMailles  = SIMP(statut= 'f',typ= grma,validators= NoRepeat(),max= '**'),
+            Vari = SIMP(statut= 'f',typ= 'TXM',into= ("CONSTANT","HOMOTHETIQUE","AFFINE"),defaut= "CONSTANT"),
+            b_constant = BLOC(condition = "Vari == 'CONSTANT'",
+                Cara  = SIMP(statut= 'o',typ= 'TXM',min= 1 ,max= 4,
+                    validators = [NoRepeat(),
+                                  OrVal( [AndVal( [Compulsory(['H']),Absent(['HY','HZ','EPY','EPZ'])] ),
+                                          AndVal( [Compulsory(['HY','HZ']),Together(['EPY','EPZ']),Absent(['H','EP'])] )] )],
+                    into= ("H","EP", "HY","HZ","EPY","EPZ"),),
+                Valeur  = SIMP(statut= 'o',typ= 'R',min= 1 ,max= 4),
+            ),
+
+            Metrique = SIMP(statut= 'f',typ= 'TXM',defaut= "NON",into= ("OUI","NON") ),
+            Fcx           = SIMP(statut= 'f',typ= 'R'),
+            Tuyau    = SIMP(statut= 'f',typ= 'I',val_max= 10,defaut= 3),
+        ),
+    ),
+#
+# ==============================================================================
+    Barre = FACT(statut='f',max='**',
+        regles = (UN_PARMI('Maille','GroupeMailles'),),
+        Maille   = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+        GroupeMailles = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+        Section  = SIMP(statut='o',typ='TXM',into=("GENERALE","RECTANGLE","CERCLE") ),
+        b_generale = BLOC(condition = "Section=='GENERALE'",
+            regles = (PRESENT_ABSENT('Table','Cara'),
+                      PRESENT_PRESENT('Table','Nom'),
+                      PRESENT_PRESENT('Cara','Valeur')),
+            Table = SIMP(statut='f',typ=table_sdaster),
+            Nom    = SIMP(statut='f',typ='TXM',validators=LongStr(1,24) ),
+            Cara       = SIMP(statut='f',typ='TXM',into=("A",) ),
+            Valeur       = SIMP(statut='f',typ='R',min=1,max=1 ),
+        ),
+        b_rectangle = BLOC(condition = "Section=='RECTANGLE'",
+            Cara = SIMP(statut='o',typ='TXM', min=1, max=4,
+                validators = [NoRepeat(),
+                              OrVal( [AndVal( [Compulsory(['H']),Absent(['HY','HZ','EPY','EPZ'])] ),
+                                      AndVal( [Compulsory(['HY','HZ']),Together(['EPY','EPZ']),Absent(['H','EP'])] )] )],
+                into=("H","EP","HZ","HY","EPY","EPZ"), ),
+            Valeur = SIMP(statut='o',typ='R',min=1,max=4 ), ),
+        b_cercle = BLOC(condition = "Section=='CERCLE'",
+            Cara = SIMP(statut='o',typ='TXM',validators=[NoRepeat(),Compulsory(['R'])],min=1,max=2,into=("R","EP") ),
+            Valeur = SIMP(statut='o',typ='R',min=1,max=2 ), ),
+    ),
+#
+# ==============================================================================
+    Discret = FACT(statut='f',max='**',
+        REPERE    = SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
+        AMOR_HYST = SIMP(statut='f',typ='R' ),
+        SYME      = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),),
+        b_SYME_OUI = BLOC(condition="SYME=='OUI'",
+            fr=tr("SYMETRIQUE: Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds"),
+            Cara = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,defaut="None",
+            into = ("K_T_D_N", "K_T_D_L", "K_TR_D_N", "K_TR_D_L", "K_T_N", "K_T_L", "K_TR_N", "K_TR_L",
+                    "M_T_D_N", "M_T_D_L", "M_TR_D_N", "M_TR_D_L", "M_T_N", "M_T_L", "M_TR_N", "M_TR_L",
+                    "A_T_D_N", "A_T_D_L", "A_TR_D_N", "A_TR_D_L", "A_T_N", "A_T_L", "A_TR_N", "A_TR_L",),),
+            #  Affection des caractéristiques de RIGIDITE/AMORTISSEMENT/MASSE
+            b_AK_T_D_N = BLOC(condition = "((Cara=='K_T_D_N')or(Cara=='A_T_D_N'))",
+                fr       = tr("Noeud: 3 valeurs (triangulaire supérieure par colonne)"),
+                regles   = (UN_PARMI('Maille','GroupeMailles','Noeud','GROUP_NO'),),
+                Noeud    = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+                GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+                Maille   = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+                GroupeMailles = SIMP(statut='f',typ=grma,validators=NoRepeat(),homo='SansOrdreNiDoublon',max='**'),
+                Valeur     = SIMP(statut='o',typ='R',min=3 ,max=3 ),),
+        ),
+    ),
+#
+# ==============================================================================
+    Discret_2D = FACT(statut='f',max='**',
+        REPERE    = SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
+        AMOR_HYST = SIMP(statut='f',typ='R' ),
+        SYME      = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),),
+        ),
+)
diff --git a/OldCodes/Tests/cata_diapo.py b/OldCodes/Tests/cata_diapo.py
new file mode 100644 (file)
index 0000000..0c5268e
--- /dev/null
@@ -0,0 +1,48 @@
+# coding: utf-8
+
+from Accas import *
+class Tuple:
+   def __init__(self,ntuple):
+     self.ntuple=ntuple
+
+   def __convert__(self,valeur):
+     import types
+     if type(valeur) == types.StringType:
+       return None
+     if len(valeur) != self.ntuple:
+       return None
+     return valeur
+
+   def info(self):
+     return "Tuple de %s elements" % self.ntuple
+
+   __repr__=info
+   __str__=info
+
+
+
+class forme ( ASSD ) : pass
+
+JdC = JDC_CATA (code = 'MED',
+                execmodul = None,
+                )
+
+FORME_GEOMETRIQUE=OPER(nom='FORME_GEOMETRIQUE',sd_prod =forme ,op=None,
+           Forme=SIMP(statut="o",typ='TXM',into=[ 'carre', 'cercle', 'triangle' ],defaut='carre'),
+           bloc_pour_Carre =  BLOC (condition = "Forme=='carre'",
+              Cote=SIMP(statut="o",typ='I'), ) , # fin bloc_pour_carre
+           bloc_pour_cercle =  BLOC (condition ="Forme=='cercle'",
+              rayon=SIMP(statut="o",typ='I'), ) , # fin bloc_pour_cercle
+
+           DE_NOMBREUSES_WIDGETS= FACT(statut="o",
+                Stop_Criteria = SIMP(statut = 'o',typ = Tuple(3),validators = VerifTypeTuple(('R','R','R'))),
+                Fichier_Med = SIMP( statut = 'o', typ = ('Fichier', 'Med Files (*.med);;All Files (*)',),),
+                ListeDeChoixPlusGrande=SIMP(statut="o",typ='TXM',into=['a','b,','c','d','e','f','g','h'],
+                homo="SansOrdreNiDoublon",),
+                Un_Parametre_Facultatif=SIMP(statut="f",typ='TXM')
+                
+           ),
+          Couleur=SIMP(statut = 'f',typ='TXM'),
+          Matiere=SIMP(statut = 'f',typ='TXM'),
+);
+
diff --git a/OldCodes/Tests/cata_med.py b/OldCodes/Tests/cata_med.py
new file mode 100644 (file)
index 0000000..4640f81
--- /dev/null
@@ -0,0 +1,29 @@
+# coding: utf-8
+
+from Accas import *
+
+JdC = JDC_CATA (code = 'MED',
+                execmodul = None,
+                )
+FAS=PROC(nom='FAS',op=None,
+    FAMILY_MESH_NAME_REF = FACT(statut='o', max='**',
+
+                NAME=SIMP(statut="o",typ='TXM'),
+                ELEM=FACT(statut="f", max="**",
+                        NUM=SIMP(statut="o",typ='TXM',),
+                        NAME=SIMP(statut="o",typ='TXM',),
+                        ATT=FACT(statut="f",
+                                NBR=SIMP(statut="o", max=1   , typ = 'I'),
+                                DES=SIMP(statut="o", max="**", typ = 'TXM'),
+                                IDE=SIMP(statut="o", max="**", typ = 'I'),
+                                VAL=SIMP(statut="o", max="**", typ = 'I'),
+                                ),
+                        GRO=FACT(statut="f",
+                                NBR=SIMP(statut="o", max=1   , typ = 'I'),
+                                NOM=SIMP(statut="o", max="**", typ='TXM'),
+                                ),
+                ),
+        ),
+);
+
+
diff --git a/OldCodes/Tests/configuration_MED.py b/OldCodes/Tests/configuration_MED.py
new file mode 100644 (file)
index 0000000..4ab64b8
--- /dev/null
@@ -0,0 +1,43 @@
+# -*- coding: utf-8 -*-\r
+#            CONFIGURATION MANAGEMENT OF EDF VERSION\r
+# ======================================================================\r
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG\r
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY\r
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY\r
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR\r
+# (AT YOUR OPTION) ANY LATER VERSION.\r
+#\r
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT\r
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF\r
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU\r
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.\r
+#\r
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE\r
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,\r
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.\r
+#\r
+#\r
+# ======================================================================\r
+"""\r
+    Ce module sert pour charger les paramètres de configuration d'EFICAS\r
+"""\r
+# Modules Python\r
+from InterfaceQT4 import configuration\r
+import os\r
+\r
+\r
+class CONFIG(configuration.CONFIG_BASE):\r
+\r
+  #-----------------------------------\r
+  def __init__(self,appli,repIni):\r
+  #-----------------------------------\r
+\r
+      self.labels_user=['catalogues','lang']\r
+      self.labels_eficas=['lang','rep_cata','catalogues']\r
+\r
+      configuration.CONFIG_BASE.__init__(self,appli,'.Eficas_monCode')\r
+\r
+\r
+def make_config(appli,rep):\r
+    return CONFIG(appli,rep)\r
+\r
diff --git a/OldCodes/Tests/images/essaiAster.png b/OldCodes/Tests/images/essaiAster.png
new file mode 100644 (file)
index 0000000..d01c5de
Binary files /dev/null and b/OldCodes/Tests/images/essaiAster.png differ
diff --git a/OldCodes/Tests/items_integer_space.txt b/OldCodes/Tests/items_integer_space.txt
new file mode 100644 (file)
index 0000000..8e17136
--- /dev/null
@@ -0,0 +1,2 @@
+"4" "3" "2" "1" 
+"4" "5" "6" "7"
\ No newline at end of file
diff --git a/OldCodes/Tests/monCode_qtEficas.py b/OldCodes/Tests/monCode_qtEficas.py
new file mode 100755 (executable)
index 0000000..7f9a6e2
--- /dev/null
@@ -0,0 +1,33 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2021   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+"""
+   Ce module sert a lancer EFICAS configure pour Code_Aster
+"""
+# Modules Python
+# Modules Eficas
+
+import sys,os
+sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..'))
+
+from PyQt4.QtCore import *
+import prefs
+from InterfaceQT4 import eficas_go
+eficas_go.lance_eficas(code=prefs.code)
diff --git a/OldCodes/Tests/prefs.py b/OldCodes/Tests/prefs.py
new file mode 100644 (file)
index 0000000..768415d
--- /dev/null
@@ -0,0 +1,22 @@
+# Copyright (C) 2007-2021   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+code="MED" 
+import sys, os
+if os.path.dirname(os.path.abspath(__file__)) not in sys.path :
+   sys.path.insert(0,os.path.dirname(os.path.abspath(__file__)))
diff --git a/OldCodes/Tests/prefs_MED.py b/OldCodes/Tests/prefs_MED.py
new file mode 100644 (file)
index 0000000..220dc3f
--- /dev/null
@@ -0,0 +1,48 @@
+# -*- coding: utf-8 -*-
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+
+import os,sys
+# repIni sert a localiser le fichier editeur.ini
+# Obligatoire
+repIni=os.path.dirname(os.path.abspath(__file__))
+INSTALLDIR=os.path.join(repIni,'..')
+sys.path[:0]=[INSTALLDIR]
+
+
+# lang indique la langue utilisee pour les chaines d'aide : fr ou ang
+lang='en'
+
+# Codage des strings qui accepte les accents (en remplacement de 'ascii')
+encoding='iso-8859-1'
+docPath=repIni
+
+#
+catalogues=(
+   #('med','med',os.path.join(repIni,'cata_med.py'),'dico','python'), 
+   ('med','med',os.path.join(repIni,'CataAZ.py'),'python','python'), 
+)
+
+simpleClic=True
+nombreDeBoutonParLigne = 4
+dicoImages={
+'CREEOBJET' : os.path.join(repIni,'images/essaiAster.png')
+}
+                                                                 
diff --git a/OldCodes/Tests/prefs_monCode.py b/OldCodes/Tests/prefs_monCode.py
new file mode 100644 (file)
index 0000000..b9e513f
--- /dev/null
@@ -0,0 +1,68 @@
+# -*- coding: utf-8 -*-
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+
+import os,sys
+# repIni sert a localiser le fichier editeur.ini
+# Obligatoire
+repIni=os.path.dirname(os.path.abspath(__file__))
+INSTALLDIR=os.path.join(repIni,'..')
+sys.path[:0]=[INSTALLDIR]
+
+
+# lang indique la langue utilisee pour les chaines d'aide : fr ou ang
+lang='en'
+
+# Codage des strings qui accepte les accents (en remplacement de 'ascii')
+encoding='iso-8859-1'
+docPath=repIni
+
+#
+catalogues=(
+   ('monCode','med',os.path.join(repIni,'CataAZ.py'),'python','python'), 
+#   ('monCode','53036',os.path.join(repIni,'Elementary_Lists_53036_Cata.py'),'dico','python'), 
+#   ('monCode','53033',os.path.join(repIni,'Tuples_Cata.py'),'dico','python'), 
+#   ('monCode','53031',os.path.join(repIni,'Tuples_Cata.py'),'dico','python'), 
+#   ('monCode','53030',os.path.join(repIni,'Tuples_Cata.py'),'dico','python'), 
+#   ('monCode','53020',os.path.join(repIni,'Nested_Cond_52945_Cata.py'),'dico','python'), 
+#   ('monCode','53013',os.path.join(repIni,'Elementary_Lists_53013_Cata.py'),'dico','python'), 
+#   ('monCode','53000',os.path.join(repIni,'Elementary_Lists_53030_Cata.py'),'dico','python'), 
+#   ('monCode','52996',os.path.join(repIni,'Elementary_Lists_52996_Cata.py'),'dico','python'), 
+#   ('monCode','52992',os.path.join(repIni,'Many_Concepts_52992_Cata.py'),'dico','python'), 
+#   ('monCode','52989',os.path.join(repIni,'Many_Concepts_52989_Cata.py'),'dico','python'), 
+#   ('monCode','52988',os.path.join(repIni,'Many_Concepts_52988_Cata.py'),'dico','python'), 
+#   ('monCode','52985',os.path.join(repIni,'fin_52985_Cata.py'),'dico','python'), 
+#   ('monCode','52983',os.path.join(repIni,'Many_Concepts_52983_Cata.py'),'dico','python'), 
+#   ('monCode','52975',os.path.join(repIni,'Separate_Blocks_52975_Cata.py'),'dico','python'), 
+#   ('monCode','52972',os.path.join(repIni,'Separate_Blocks_52972_Cata.py'),'dico','python'), 
+#   ('monCode','52958',os.path.join(repIni,'Separate_Blocks_52958_Cata.py'),'dico','python'), 
+#   ('monCode','52952',os.path.join(repIni,'Nested_Cond_52952_Cata.py'),'dico','python'), 
+#   ('monCode','52949',os.path.join(repIni,'Nested_Cond_52949_Cata.py'),'dico','python'), 
+#   ('monCode','52947',os.path.join(repIni,'Nested_Cond_52947_Cata.py'),'dico','python'), 
+#   ('monCode','52946',os.path.join(repIni,'Nested_Cond_52946_Cata.py'),'dico','python'), 
+#   ('monCode','52945',os.path.join(repIni,'Nested_Cond_52945_Cata.py'),'dico','python'), 
+#   ('monCode','Global',os.path.join(repIni,'Global_Condition_Cata.py'),'dico','python'),
+## resolu ('monCode','52948',os.path.join(repIni,'Nested_Cond_52948_Cata.py'),'dico','python'),
+#  pb d afffichage des optionnels ('monCode','52963',os.path.join(repIni,'Separate_Blocks_52963_Cata.py'),'dico','python'),
+#  pb d afffichage des optionnels ('monCode','52966',os.path.join(repIni,'Separate_Blocks_52966_Cata.py'),'dico','python'),
+
+#   ('monCode','test',os.path.join(repIni,'monCode_Cata1.py'),'dico','python'),
+)
+
diff --git a/OldCodes/Tests/properties.py b/OldCodes/Tests/properties.py
new file mode 100644 (file)
index 0000000..1d328a4
--- /dev/null
@@ -0,0 +1,24 @@
+#@ MODIF properties Accas DATE 11/06/2008 AUTEUR aster M.ADMINISTRATEUR
+# RESPONSABLE D6BHHHH J-P.LEFEBVRE
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
+# (AT YOUR OPTION) ANY LATER VERSION.                                 
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
+# ======================================================================
+#     IDENTIFICATION DU GESTIONNAIRE DE COMMANDE ACCAS A PARTIR
+#     DE LA VERSION DU CODE_ASTER ASSOCIE
+#----------------------------------------------------------------------
+version = "1.2"
+date = "25/05/2010"
+exploit = False
diff --git a/OldCodes/Tests/qtEficas_AZ.py b/OldCodes/Tests/qtEficas_AZ.py
new file mode 100755 (executable)
index 0000000..336afdf
--- /dev/null
@@ -0,0 +1,32 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2021   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+"""
+   Ce module sert a lancer EFICAS configure pour Code_Aster
+"""
+# Modules Python
+# Modules Eficas
+
+import sys,os
+sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..'))
+
+import prefs
+from InterfaceQT4 import eficas_go
+eficas_go.lance_eficas(code=prefs.code)
diff --git a/OldCodes/Tests/qtEficas_Med.py b/OldCodes/Tests/qtEficas_Med.py
new file mode 100755 (executable)
index 0000000..336afdf
--- /dev/null
@@ -0,0 +1,32 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2021   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+"""
+   Ce module sert a lancer EFICAS configure pour Code_Aster
+"""
+# Modules Python
+# Modules Eficas
+
+import sys,os
+sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..'))
+
+import prefs
+from InterfaceQT4 import eficas_go
+eficas_go.lance_eficas(code=prefs.code)
diff --git a/OldCodes/Tests/typescript b/OldCodes/Tests/typescript
new file mode 100644 (file)
index 0000000..f070be1
--- /dev/null
@@ -0,0 +1,34 @@
+Le script a débuté sur mar. 29 nov. 2016 15:37:06 CET
+\e]0;A96028@dsp0780471: ~/QT5GitEficasTravail/eficas/monCode\aA96028@dsp0780471:~/QT5GitEficasTravail/eficas/monCode$ ./qtEficas_Med.py /tmp/a.comm\b\b\b\b\b\boo.comm\r
+eficas_en /home/A96028/QT5GitEficasTravail/eficas/monCode/../Extensions/../UiQT4\r
+()\r
+{'typ': 'TXM', 'statut': 'o'}\r
+()\r
+{'typ': 'TXM', 'statut': 'o'}\r
+()\r
+{'typ': 'TXM', 'statut': 'o'}\r
+()\r
+{'max': 1, 'typ': 'I', 'statut': 'o'}\r
+()\r
+{'max': '**', 'typ': 'TXM', 'statut': 'o'}\r
+()\r
+{'max': '**', 'typ': 'I', 'statut': 'o'}\r
+()\r
+{'max': '**', 'typ': 'I', 'statut': 'o'}\r
+()\r
+{'NBR': <Accas.A_SIMP.SIMP instance at 0x7efbe6617b90>, 'IDE': <Accas.A_SIMP.SIMP instance at 0x7efbe6617c20>, 'DES': <Accas.A_SIMP.SIMP instance at 0x7efbe6617bd8>, 'VAL': <Accas.A_SIMP.SIMP instance at 0x7efbe6617c68>, 'statut': 'f'}\r
+()\r
+{'max': 1, 'typ': 'I', 'statut': 'o'}\r
+()\r
+{'max': '**', 'typ': 'TXM', 'statut': 'o'}\r
+()\r
+{'NOM': <Accas.A_SIMP.SIMP instance at 0x7efbe6617e18>, 'NBR': <Accas.A_SIMP.SIMP instance at 0x7efbe6617dd0>, 'statut': 'f'}\r
+()\r
+{'NAME': <Accas.A_SIMP.SIMP instance at 0x7efbe6617b48>, 'statut': 'f', 'max': '**', 'ATT': <Accas.A_FACT.FACT instance at 0x7efbe6617cb0>, 'NUM': <Accas.A_SIMP.SIMP instance at 0x7efbe6617b00>, 'GRO': <Accas.A_FACT.FACT instance at 0x7efbe6617e60>}\r
+()\r
+{'NAME': <Accas.A_SIMP.SIMP instance at 0x7efbe6617ab8>, 'ELEM': <Accas.A_FACT.FACT instance at 0x7efbe6617ea8>, 'statut': 'o'}\r
+()\r
+{'nom': 'FAS', 'FAMILY_MESH_NAME_REF': <Accas.A_FACT.FACT instance at 0x7efbe6617ef0>, 'op': None}\r
+\e]0;A96028@dsp0780471: ~/QT5GitEficasTravail/eficas/monCode\aA96028@dsp0780471:~/QT5GitEficasTravail/eficas/monCode$ exit\r
+
+Script terminé sur mar. 29 nov. 2016 15:37:13 CET
index d7a657119132dac06620b904618f5a29d2603618..5252a94c7548c3832cef702152886f2794b6c294 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2012   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index b1254f2ca4feef0d76c3a212464ef324cfd6a169..7f9a6e2c12ec694932c10ac4e58179952281626a 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2012   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
diff --git a/OldCodes/boundary_conditions/CMakeLists.txt b/OldCodes/boundary_conditions/CMakeLists.txt
new file mode 100644 (file)
index 0000000..9d5d320
--- /dev/null
@@ -0,0 +1,32 @@
+#  Copyright (C) 2012-2013 EDF
+#
+#  This file is part of SALOME HYDRO module.
+#
+#  SALOME HYDRO module is free software: you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation, either version 3 of the License, or
+#  (at your option) any later version.
+#
+#  SALOME HYDRO module is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with SALOME HYDRO module.  If not, see <http://www.gnu.org/licenses/>.
+
+# --- Python files ---
+
+SET(PYFILES
+  __init__.py
+  configuration_boundary_conditions.py
+  prefs_boundary_conditions.py
+  prefs.py
+  boundary_conditions_cata.py
+  appli.py
+  generator_boundary_conditions.py
+)
+
+# --- rules ---
+
+SALOME_INSTALL_SCRIPTS("${PYFILES}" ${SALOME_INSTALL_PYTHON}/salome/hydro/boundary_conditions/eficas)
diff --git a/OldCodes/boundary_conditions/__init__.py b/OldCodes/boundary_conditions/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/OldCodes/boundary_conditions/appli.py b/OldCodes/boundary_conditions/appli.py
new file mode 100644 (file)
index 0000000..b378329
--- /dev/null
@@ -0,0 +1,45 @@
+#  Copyright (C) 2012-2013 EDF
+#
+#  This file is part of SALOME HYDRO module.
+#
+#  SALOME HYDRO module is free software: you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation, either version 3 of the License, or
+#  (at your option) any later version.
+#
+#  SALOME HYDRO module is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with SALOME HYDRO module.  If not, see <http://www.gnu.org/licenses/>.
+
+import os
+import sys
+
+import SalomePyQt
+sgPyQt = SalomePyQt.SalomePyQt()
+
+import eficasSalome
+
+class EficasForBoundaryConditionsAppli(eficasSalome.MyEficas):
+  """
+  This class launches Eficas with "boundary_conditions" catalog.
+  """
+  def __init__(self, fichier = None, version = None):
+    self.codedir = os.path.dirname(__file__)
+    sys.path[:0] = [self.codedir]
+    eficasSalome.MyEficas.__init__(self, sgPyQt.getDesktop(), "boundary_conditions",
+                                   fichier, version = version)
+
+  def addJdcInSalome(self, jdcPath):
+    """
+    Those files are not added in Salome study tree for now.
+    """
+    pass
+
+  def closeEvent(self, event):
+    while self.codedir in sys.path:
+      sys.path.remove(self.codedir)
+    eficasSalome.MyEficas.closeEvent(self, event)
diff --git a/OldCodes/boundary_conditions/boundary_conditions_cata.py b/OldCodes/boundary_conditions/boundary_conditions_cata.py
new file mode 100644 (file)
index 0000000..f41671c
--- /dev/null
@@ -0,0 +1,59 @@
+# -*- coding: utf-8 -*-
+#
+#  Copyright (C) 2012-2013 EDF
+#
+#  This file is part of SALOME HYDRO module.
+#
+#  SALOME HYDRO module is free software: you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation, either version 3 of the License, or
+#  (at your option) any later version.
+#
+#  SALOME HYDRO module is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with SALOME HYDRO module.  If not, see <http://www.gnu.org/licenses/>.
+
+from Accas import *
+
+class grma(GEOM):
+  """
+  Class used to define the group on which the boundary condition is defined.
+  Method __convert__ is redefined to skip the test on the string length.
+  """
+  def __convert__(cls, valeur):
+    if isinstance(valeur, (str, unicode)):
+      return valeur.strip()
+    raise ValueError('A string is expected')
+
+  __convert__ = classmethod(__convert__)
+
+
+JdC = JDC_CATA(regles = (AU_MOINS_UN('BOUNDARY_CONDITION',)),
+                        )
+
+BOUNDARY_CONDITION = PROC(
+    nom = "BOUNDARY_CONDITION", op = None,
+    fr = u"Définition d'une condition limite pour Telemac2D",
+    ang = u"Definition of a boundary condition for Telemac2D",
+
+    GROUP = SIMP(statut = "o", typ = grma,
+                 fr = u"Groupe sur lequel la condition limite est définie",
+                 ang = u"Group on which the boundary condition is defined",
+                ),
+    LIHBOR = SIMP(statut = "o", typ = "I",
+                  fr = u"Type de condition limite pour la hauteur d'eau",
+                  ang = u"Boundary condition type for the water height",
+                 ),
+    LIUBOR = SIMP(statut = "o", typ = "I",
+                  fr = u"Type de condition limite pour la composante U de la vitesse",
+                  ang = u"Boundary condition type for the U component of the water velocity",
+                 ),
+    LIVBOR = SIMP(statut = "o", typ = "I",
+                  fr = u"Type de condition limite pour la composante V de la vitesse",
+                  ang = u"Boundary condition type for the V component of the water velocity",
+                 ),
+)
diff --git a/OldCodes/boundary_conditions/configuration_boundary_conditions.py b/OldCodes/boundary_conditions/configuration_boundary_conditions.py
new file mode 100644 (file)
index 0000000..ffed4a6
--- /dev/null
@@ -0,0 +1,48 @@
+# -*- coding: utf-8 -*-
+#
+#  Copyright (C) 2012-2013 EDF
+#
+#  This file is part of SALOME HYDRO module.
+#
+#  SALOME HYDRO module is free software: you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation, either version 3 of the License, or
+#  (at your option) any later version.
+#
+#  SALOME HYDRO module is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with SALOME HYDRO module.  If not, see <http://www.gnu.org/licenses/>.
+
+import os
+
+from Editeur.catadesc import CatalogDescription
+from InterfaceQT4.configuration import CONFIG_BASE
+
+class CONFIG(CONFIG_BASE):
+
+  def __init__(self, appli, repIni):
+    """
+    This class stores the configuration parameters for Eficas
+    """
+    CONFIG_BASE.__init__(self, appli, repIni)
+
+    # Configuration parameters
+    self.savedir    = os.getenv("HOME")
+    self.catalogues = (CatalogDescription("boundary_conditions",
+                                          os.path.join(repIni, "boundary_conditions_cata.py"),
+                                          file_format = "boundary_conditions"),)
+    self.lang = 'fr'
+    self.generator_module = "generator_boundary_conditions"
+
+  def save_params(self):
+    pass
+
+def make_config(appli, rep):
+  return CONFIG(appli, rep)
+
+def make_config_style(appli, rep):
+  return None
diff --git a/OldCodes/boundary_conditions/generator_boundary_conditions.py b/OldCodes/boundary_conditions/generator_boundary_conditions.py
new file mode 100644 (file)
index 0000000..ea7235d
--- /dev/null
@@ -0,0 +1,57 @@
+#  Copyright (C) 2012-2013 EDF
+#
+#  This file is part of SALOME HYDRO module.
+#
+#  SALOME HYDRO module is free software: you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation, either version 3 of the License, or
+#  (at your option) any later version.
+#
+#  SALOME HYDRO module is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with SALOME HYDRO module.  If not, see <http://www.gnu.org/licenses/>.
+
+import os
+from generator.generator_python import PythonGenerator
+
+def entryPoint():
+  return {'name': 'boundary_conditions',
+          'factory': BoundaryConditionsGenerator}
+
+class BoundaryConditionsGenerator(PythonGenerator):
+  """
+  This generator creates files containing associations between groups and
+  boundary conditions (.bcd files, for Boundary Conditions Definition).
+  Those files contain one line per group, each line containing four fields
+  separated by spaces: LIHBOR LIUBOR LIVBOR GROUP.
+  LIHBOR, LIUBOR and LIVBOR are integer values, GROUP is a string (the name of
+  the group).
+  
+  Example:
+  
+  
+  """
+
+  def gener(self, obj, format = 'brut', config = None):
+    self.group_list = []
+    self.text = PythonGenerator.gener(self, obj, format)
+    return self.text
+  
+  def generPROC_ETAPE(self, obj):
+    group_dict = {}
+    for keyword in obj.mc_liste:
+      group_dict[keyword.nom] = keyword.valeur
+    self.group_list.append(group_dict)
+    return PythonGenerator.generPROC_ETAPE(self, obj)
+
+  def writeDefault(self, basefilename):
+    output_filename = os.path.splitext(basefilename)[0] + ".bcd"
+    f = open(output_filename, 'w')
+    f.write("%d\n" % len(self.group_list))
+    for group_dict in self.group_list:
+      f.write("%(LIHBOR)d %(LIUBOR)d %(LIVBOR)d %(GROUP)s\n" % group_dict)
+    f.close()
diff --git a/OldCodes/boundary_conditions/prefs.py b/OldCodes/boundary_conditions/prefs.py
new file mode 100644 (file)
index 0000000..8f7d046
--- /dev/null
@@ -0,0 +1,18 @@
+#  Copyright (C) 2012-2013 EDF
+#
+#  This file is part of SALOME HYDRO module.
+#
+#  SALOME HYDRO module is free software: you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation, either version 3 of the License, or
+#  (at your option) any later version.
+#
+#  SALOME HYDRO module is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with SALOME HYDRO module.  If not, see <http://www.gnu.org/licenses/>.
+
+code = "boundary_conditions"
diff --git a/OldCodes/boundary_conditions/prefs_boundary_conditions.py b/OldCodes/boundary_conditions/prefs_boundary_conditions.py
new file mode 100644 (file)
index 0000000..bcf1ef2
--- /dev/null
@@ -0,0 +1,21 @@
+#  Copyright (C) 2012-2013 EDF
+#
+#  This file is part of SALOME HYDRO module.
+#
+#  SALOME HYDRO module is free software: you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation, either version 3 of the License, or
+#  (at your option) any later version.
+#
+#  SALOME HYDRO module is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with SALOME HYDRO module.  If not, see <http://www.gnu.org/licenses/>.
+
+import os
+
+repIni = os.path.dirname(__file__)
+INSTALLDIR = os.getenv("EFICAS_ROOT")
index 87710926cf7d40ecbe5833587e310605e56b22fe..33c6a627a450c8eb9f0931b8f66780e71452deee 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2012   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
diff --git a/PSEN_Eficas/ExtractGeneratorLoadLineandTransfoDico.py b/PSEN_Eficas/ExtractGeneratorLoadLineandTransfoDico.py
deleted file mode 100755 (executable)
index 9427e18..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-#NetworkFile = r"C:\Users\J15773\Documents\GTDosier\PSENdocs\Victoria ALL - EFICAS PSEN\Data\2030Conv_HFP2.sav"\r
-#PSSE_PATH = "C:/Program Files/PTI/PSSE33/PSSBIN" #emplacement de PSSE\r
-\r
-def ExtractGeneratorLoadLineandTransfoDico(NetworkFile,PSSE_PATH):\r
-\r
-    import os\r
-    import sys\r
-\r
-    print NetworkFile\r
-    print PSSE_PATH\r
-    sys.path.append(PSSE_PATH)\r
-    os.environ['PATH'] +=  ';' + PSSE_PATH + ';'\r
-\r
-    import psspy\r
-    import redirect\r
-\r
-    ###initialization PSSE\r
-    psspy.psseinit(10000)\r
-    _i=psspy.getdefaultint()\r
-    _f=psspy.getdefaultreal()\r
-    _s=psspy.getdefaultchar()\r
-    redirect.psse2py()\r
-\r
-    # Silent execution of PSSe\r
-    islct=6 # 6=no output; 1=standard\r
-    psspy.progress_output(islct)\r
-\r
-    #open Network File\r
-    psspy.case(NetworkFile)\r
-\r
-    #Extract Loads\r
-    sid = -1 #all buses\r
-    flag = 1 #all in service loads/generators (4 all loads/generators)\r
-\r
-\r
-    string = ['NUMBER']\r
-    ierr,iarray = psspy.aloadint(sid,flag,string)\r
-\r
-    string = ['NAME','ID','EXNAME']\r
-    ierr,carray = psspy.aloadchar(sid,flag,string)\r
-\r
-    LoadDico = {}  # [Bus name, load ID, extended bus name, bus number]\r
-    for i in range(len(iarray[0])):\r
-        idname = "Lo" + str(int(carray[1][i]))\r
-        loadname = carray[0][i].strip()+ "__" + idname\r
-        loadname = loadname.replace(" ","_")\r
-        loadname = loadname.replace(".","_")\r
-        loadname = loadname.replace("&","and")\r
-        try:\r
-            int(loadname[0])\r
-            loadname="_" + loadname\r
-        except:\r
-            pass\r
-        LoadDico[loadname]= {}\r
-        LoadDico[loadname]['BusName'] = carray[0][i].strip()\r
-        LoadDico[loadname]['ID'] = carray[1][i]\r
-        LoadDico[loadname]['BusExName'] =carray[2][i]\r
-        LoadDico[loadname]['BusNum']=iarray[0][i]\r
-\r
-    #Extract Generators\r
-    sid = -1 #all buses\r
-    flag = 1 #all in service loads/generators (4 all loads/generators)\r
-        \r
-    string = ['NUMBER']\r
-    ierr,iarray = psspy.amachint(sid,flag,string)\r
-\r
-    string = ['NAME','ID','EXNAME']\r
-    ierr,carray = psspy.amachchar(sid,flag,string)\r
-\r
-    MachineDico = {} # [Bus name, machine ID, extended bus name, bus number]\r
-    for i in range(len(iarray[0])):\r
-        idname = "Gr" + str(int(carray[1][i]))\r
-        machinename = carray[0][i].strip()+ "__" + idname\r
-        machinename = machinename.replace(" ","_")\r
-        machinename = machinename.replace(".","_")\r
-        machinename = machinename.replace("&","and")\r
-        try:\r
-            int(machinename[0])\r
-            machinename="_" + machinename\r
-        except:\r
-            pass\r
-        MachineDico[machinename]={}\r
-        MachineDico[machinename]['NAME'] = carray[0][i].strip()\r
-        MachineDico[machinename]['ID'] = carray[1][i]\r
-        MachineDico[machinename]['EXNAME'] =carray[2][i]\r
-        MachineDico[machinename]['NUMBER']=iarray[0][i]\r
-\r
-    #Extract Lignes\r
-    sid = -1\r
-    owner = 1\r
-    ties = 1\r
-    flag = 2 #6 for two-winding transfos\r
-    entry = 1 #each branch once, not both directions\r
-    string = ['FROMNUMBER','TONUMBER']\r
-    ierr,iarray = psspy.abrnint(sid,owner,ties,flag,entry,string)\r
-    string = ['FROMNAME','TONAME','FROMEXNAME','TOEXNAME','ID']\r
-    ierr,carray = psspy.abrnchar(sid,owner,ties,flag,entry,string)\r
-\r
-    LineDico = {} #[linename, Bus name 1, Bus name 2, ID, extended bus name 1, extended bus name 2, bus number 1, bus number 2]\r
-    for i in range(len(iarray[0])):\r
-        idname = carray[4][i]\r
-        if '@' in idname:\r
-            idname = idname.replace('@','Br')\r
-        else:\r
-            idname = 'Li' + str(int(idname))\r
-        linename =carray[0][i].strip() + "__" + carray[1][i].strip() + "__" + idname\r
-        linename = linename.replace(" ","_")\r
-        linename = linename.replace(".","_")\r
-        linename = linename.replace("&","and")\r
-        try:\r
-            int(linename[0])\r
-            linename="_" + linename\r
-        except:\r
-            pass\r
-        LineDico[linename]={}\r
-        LineDico[linename]['FROMNAME']=carray[0][i].strip()\r
-        LineDico[linename]['TONAME']=carray[1][i].strip()\r
-        LineDico[linename]['ID']=carray[4][i]\r
-        LineDico[linename]['FROMEXNAME']=carray[2][i]\r
-        LineDico[linename]['TOEXNAME']=carray[3][i]\r
-        LineDico[linename]['FROMNUMBER']=iarray[0][i]\r
-        LineDico[linename]['TONUMBER']=iarray[1][i]\r
-\r
-    #Extract Transfos\r
-    sid = -1\r
-    owner = 1\r
-    ties = 1\r
-    flag = 6 #two-winding transfos\r
-    entry = 1 #each branch once, not both directions\r
-    string = ['FROMNUMBER','TONUMBER']\r
-    ierr,iarray = psspy.abrnint(sid,owner,ties,flag,entry,string)\r
-    string = ['FROMNAME','TONAME','FROMEXNAME','TOEXNAME','ID']\r
-    ierr,carray = psspy.abrnchar(sid,owner,ties,flag,entry,string)\r
-\r
-    TfoDico = {} #[linename, Bus name 1, Bus name 2, machine ID, extended bus name 1, extended bus name 2, bus number 1, bus number 2]\r
-    for i in range(len(iarray[0])):\r
-        idname = 'Tr' + str(int(carray[4][i]))\r
-        tfoname = carray[0][i].strip() + "__" + carray[1][i].strip() + "__" + idname\r
-        tfoname = tfoname.replace(" ","_")\r
-        tfoname = tfoname.replace(".","_")\r
-        tfoname = tfoname.replace("&","and")\r
-        try:\r
-            int(tfoname[0])\r
-            tfoname="_" + tfoname\r
-        except:\r
-            pass\r
-        TfoDico[tfoname]={}\r
-        TfoDico[tfoname]['FROMNAME']=carray[0][i].strip()\r
-        TfoDico[tfoname]['TONAME']=carray[1][i].strip()\r
-        TfoDico[tfoname]['ID']=carray[4][i]\r
-        TfoDico[tfoname]['FROMEXNAME']=carray[2][i]\r
-        TfoDico[tfoname]['TOEXNAME']=carray[3][i]\r
-        TfoDico[tfoname]['FROMNUMBER']=iarray[0][i]\r
-        TfoDico[tfoname]['TONUMBER']=iarray[1][i]\r
-\r
-    return MachineDico, LoadDico, LineDico, TfoDico\r
-\r
-\r
-#MachineDico, LoadDico, LineDico, TfoDico = ExtractGeneratorLoadLineandTransfoDico(NetworkFile,PSSE_PATH)\r
-\r
\r
-def ExtractGeneratorLoadLineandTransfoDico2(NetworkFile,PSSE_PATH):\r
-    MachineDico={'M1':'M1','M2':'M2','M3':'M3','M4':'M4','B6_BUS13__1':'AZ','CSPRING__1':'DD','GT12B__1':'ER','BSTMB__1':'JJ'}\r
-    LoadDico={'C1':'C1','C2':'C2','C3':'C3','C4':'C4'}\r
-    LineDico={'L1':'L1','L2':'L2','L3':'L3','L4':'L4'}\r
-    TfoDico={'T1':'T1','T2':'T2','T3':'T3','T4':'T4'}\r
-    MDico={'MZ1':'MZ1','MZ2':'MZ2','MZ3':'MZ3','MZ4':'MZ4'}\r
-    if NetworkFile == '/home/A96028/PSEN/PSEN_V8/Code/PSEN_Eficas/faux2.sav': \r
-       print "sans T1"\r
-       TfoDico={'T2':'T2','T3':'T3','T4':'T4'}\r
-\r
-\r
-    return MachineDico, LoadDico, LineDico, TfoDico, MDico\r
diff --git a/PSEN_Eficas/ExtractGeneratorandLoadList.py b/PSEN_Eficas/ExtractGeneratorandLoadList.py
deleted file mode 100755 (executable)
index 08f4548..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-NetworkFile = r"C:\Users\J15773\Documents\GTDosier\PSENdocs\Victoria ALL - EFICAS PSEN\Data\2030Conv_HFP2.sav"\r
-PSSE_PATH = "C:/Program Files/PTI/PSSE33/PSSBIN" #emplacement de PSSE\r
-\r
-def ExtractGeneratorandLoadList(NetworkFile,PSSE_PATH):\r
-\r
-    import os\r
-    import sys\r
-\r
-    print NetworkFile\r
-    print PSSE_PATH\r
-    sys.path.append(PSSE_PATH)\r
-    os.environ['PATH'] +=  ';' + PSSE_PATH + ';'\r
-\r
-    import psspy\r
-    import redirect\r
-\r
-    ###initialization PSSE\r
-    psspy.psseinit(10000)\r
-    _i=psspy.getdefaultint()\r
-    _f=psspy.getdefaultreal()\r
-    _s=psspy.getdefaultchar()\r
-    redirect.psse2py()\r
-\r
-    # Silent execution of PSSe\r
-    islct=6 # 6=no output; 1=standard\r
-    psspy.progress_output(islct)\r
-\r
-    #open Network File\r
-    psspy.case(NetworkFile)\r
-\r
-    #Extract Loads\r
-    sid = -1 #all buses\r
-    flag = 1 #all in service loads/generators (4 all loads/generators)\r
-\r
-\r
-    string = ['NUMBER']\r
-    ierr,iarray = psspy.aloadint(sid,flag,string)\r
-\r
-    string = ['NAME','ID','EXNAME']\r
-    ierr,carray = psspy.aloadchar(sid,flag,string)\r
-\r
-    LoadList = []  # [Bus name, load ID, extended bus name, bus number]\r
-    for i in range(len(iarray[0])):\r
-        LoadList.append([carray[0][i].strip(),carray[1][i],carray[2][i],iarray[0][i]])\r
-\r
-    #Extract Generators\r
-    sid = -1 #all buses\r
-    flag = 1 #all in service loads/generators (4 all loads/generators)\r
-        \r
-    string = ['NUMBER']\r
-    ierr,iarray = psspy.amachint(sid,flag,string)\r
-\r
-    string = ['NAME','ID','EXNAME']\r
-    ierr,carray = psspy.amachchar(sid,flag,string)\r
-\r
-    MachineList = [] # [Bus name, machine ID, extended bus name, bus number]\r
-    for i in range(len(iarray[0])):\r
-        MachineList.append([carray[0][i].strip(),carray[1][i],carray[2][i],iarray[0][i]])\r
-\r
-    return MachineList, LoadList\r
-                                \r
-def ExtractGeneratorandLoadList2(NetworkFile,PSSE_PATH):\r
-    MachineList = [['GT 6', '1 ', 'GT 6        11.500', 10], ['GT 7', '1 ', 'GT 7        11.500', 11], ['GT10', '1 ', 'GT10        11.500', 12], ['GT 5', '1 ', 'GT 5        11.500', 13], ['NEWHUNT', '1 ', 'NEWHUNT     11.500', 15], ['BSTMB', '1 ', 'BSTMB       11.500', 23], ['HYD_MAG', '1 ', 'HYD_MAG     6.9000', 25], ['RF1', '1 ', 'RF1         13.800', 37], ['OH2', '1 ', 'OH2         13.800', 41], ['RF2', '1 ', 'RF2         13.800', 42], ['GT3', '1 ', 'GT3         11.500', 43], ['OH3', '1 ', 'OH3         13.800', 47], ['OH4', '1 ', 'OH4         13.800', 50], ['OH6', '1 ', 'OH6         13.800', 52], ['GT 11', '1 ', 'GT 11       11.500', 56], ['B6_BUS13', '1 ', 'B6_BUS13    13.800', 57], ['GT8', '1 ', 'GT8         11.500', 58], ['HYDRR', '1 ', 'HYDRR       6.9000', 59], ['GT9', '1 ', 'GT9         11.500', 63], ['HYD_UWR', '1 ', 'HYD_UWR     6.9000', 64], ['HYD_RIOB', '1 ', 'HYD_RIOB    6.9000', 65], ['HRYD_LW', '1 ', 'HRYD_LW     6.9000', 68], ['GT13B', '1 ', 'GT13B       11.500', 76], ['GT12B', '1 ', 'GT12B       11.500', 77], ['CSPRING', '1 ', 'CSPRING     69.000', 91], ['OLDHARB1', '1 ', 'OLDHARB1    138.00', 114], ['WIGTON', '1 ', 'WIGTON      0.6900', 202], ['JEPWK1', '1 ', 'JEPWK1      11.500', 300], ['JEPWK1', '2 ', 'JEPWK1      11.500', 300], ['JEPWK1', '3 ', 'JEPWK1      11.500', 300], ['JEPWK2', '1 ', 'JEPWK2      11.500', 301], ['JEPWK2', '2 ', 'JEPWK2      11.500', 301], ['JEPWK2', '3 ', 'JEPWK2      11.500', 301], ['W_MUN1', '1 ', 'W_MUN1      69.000', 503], ['HYD_RHORN', '1 ', 'HYD_RHORN   69.000', 711]]\r
-\r
-    LoadList= [['TREDEGAR', '1 ', 'TREDEGAR    69.000', 5], ['HOPE', '1 ', 'HOPE        69.000', 16], ['MILCHELT', '1 ', 'MILCHELT    69.000', 17], ['PARADISE', '1 ', 'PARADISE    69.000', 24], ['BLEDGE', '1 ', 'BLEDGE      69.000', 26], ['CANE RIV', '1 ', 'CANE RIV    69.000', 27], ['HIGHGATE', '1 ', 'HIGHGATE    69.000', 29], ['QUEENS D', '1 ', 'QUEENS D    69.000', 30], ['OCHO', '1 ', 'OCHO        69.000', 32], ['BOGUE_69', '1 ', 'BOGUE_69    69.000', 33], ['ROSE HAL', '1 ', 'ROSE HAL    69.000', 35], ['OH1', '1 ', 'OH1         13.800', 36], ['RF1', '1 ', 'RF1         13.800', 37], ['CEMENT C', '1 ', 'CEMENT C    69.000', 38], ['OBAY69', '1 ', 'OBAY69      69.000', 39], ['DUNCANS6', '1 ', 'DUNCANS6    69.000', 40], ['OH2', '1 ', 'OH2         13.800', 41], ['RF2', '1 ', 'RF2         13.800', 42], ['3MLS69', '1 ', '3MLS69      69.000', 45], ['WBLVD69', '1 ', 'WBLVD69     69.000', 46], ['OH3', '1 ', 'OH3         13.800', 47], ['PORT ANT', '1 ', 'PORT ANT    69.000', 48], ['OH4', '1 ', 'OH4         13.800', 50], ['B6_BUS13', '1 ', 'B6_BUS13    13.800', 57], ['GREENWOO', '1 ', 'GREENWOO    69.000', 60], ['LYSSONS', '1 ', 'LYSSONS     69.000', 61], ['PORUS', '1 ', 'PORUS       69.000', 62], ['R RIVER', '1 ', 'R RIVER     69.000', 66], ['MARTHA B', '1 ', 'MARTHA B    69.000', 67], ['WKH69', '1 ', 'WKH69       69.000', 69], ['PNASUS69', '1 ', 'PNASUS69    69.000', 70], ['ANNOTTO', '1 ', 'ANNOTTO     69.000', 71], ['UW RIVER', '1 ', 'UW RIVER    69.000', 74], ['KNDAL 69', '1 ', 'KNDAL 69    69.000', 75], ['MONYMUSK', '1 ', 'MONYMUSK    69.000', 78], ['OROCABES', '1 ', 'OROCABES    69.000', 79], ['MAGGOTTY', '1 ', 'MAGGOTTY    69.000', 80], ['UP PARK', '1 ', 'UP PARK     69.000', 82], ['TWICKENH', '1 ', 'TWICKENH    69.000', 85], ['MAY PEN', '1 ', 'MAY PEN     69.000', 88], ['PAJ', '1 ', 'PAJ         69.000', 89], ['GROAD_69', '1 ', 'GROAD_69    69.000', 90], ['CSPRING', '1 ', 'CSPRING     69.000', 91], ['S_ TREE6', '1 ', 'S_ TREE6    69.000', 92], ['NAGGOS H', '1 ', 'NAGGOS H    69.000', 94], ['GOODYEAR', '1 ', 'GOODYEAR    69.000', 99], ['HBAY_69', '1 ', 'HBAY_69     69.000', 101], ['RFORT69', '1 ', 'RFORT69     69.000', 102], ['RHODEN P', '1 ', 'RHODEN P    69.000', 105], ['DUHANEY6', '1 ', 'DUHANEY6    69.000', 107], ['CARDIFF', '1 ', 'CARDIFF     69.000', 109], ['JAB13.8', '1 ', 'JAB13.8     13.800', 112], ['JAM13.8', '1 ', 'JAM13.8     13.800', 113]]\r
-    return MachineList, LoadList\r
-\r
-if __name__ == "__main__":\r
-   MachineList,LoadList= ExtractGeneratorandLoadList2(NetworkFile,PSSE_PATH)\r
-   print MachineList, LoadList\r
diff --git a/PSEN_Eficas/PSEN/PSEN_GUI.py b/PSEN_Eficas/PSEN/PSEN_GUI.py
deleted file mode 100755 (executable)
index 32b22db..0000000
+++ /dev/null
@@ -1,1220 +0,0 @@
-# -*- coding: cp1252 -*-\r
-# ======================== PSEN graphic interface ========================\r
-# This Python script creates a graphical interface to parameter and launch PSEN\r
-\r
-# ============== Import useful modules =================\r
-from Tkinter import *\r
-from ttk import Combobox\r
-import tkFileDialog, os\r
-import subprocess\r
-from time import sleep\r
-import numpy as np\r
-\r
-# ============== Initialize some variables  =================\r
-config=[]\r
-for i in range (60) : # config[] will be used as a list of preferences for PSEN study\r
-    config.append('')\r
-\r
-root = Tk() # Creates the main window\r
-root.wm_withdraw() # The main window is withdrawn/hidden\r
-\r
-CIST=PhotoImage(file="lib\CISTlogo.gif") # Load images\r
-header=PhotoImage(file="lib\header.gif")\r
-WTcurve=PhotoImage(file="lib\WTcurve.gif")\r
-\r
-# ============== Define functions  =================\r
-\r
-# browse_PSSe function is used to get the .SAV file path from the user.\r
-# tkFileDialog.askopenfilename offers a browsing interface to the user\r
-def browse_PSSe() :\r
-    global savAdress\r
-    savAdress = tkFileDialog.askopenfilename(parent=fenPref,title='Open PSSe SAV file',filetypes=[('SAV files', '.sav')])\r
-    savAdressD.set(savAdress)\r
-    fenPref.update_idletasks() # this updates the values in the fenPref window (defined in preferences())\r
-    print 'Added: '+str(savAdress)\r
-    return savAdress\r
-\r
-# browse_ENR function is used to get a .CSV file path from the user\r
-# The CSV file contains a list of machines and their type (PV, Wind, Interconnexion)\r
-# tkFileDialog.askopenfilename offers a browsing interface to the user\r
-def browse_ENR() :\r
-    global ENRpath\r
-    ENRpath = tkFileDialog.askopenfilename(parent=fenPref,title='Open ENR configuration',filetypes=[('CSV files', '.csv'),('All files', '.*')])\r
-    ENRpathD.set(ENRpath)\r
-    fenPref.update_idletasks() # this updates the values in the fenPref window (defined in preferences())\r
-    print 'Added: '+str(ENRpath)\r
-    return ENRpath    \r
-\r
-# browse_folder function is used to get a folder path from the user\r
-# This folder is used to save all study files (.sav, .csv, ...)\r
-# tkFileDialog.askdirectory offers a browsing interface to the user    \r
-def browse_folder() :\r
-    global folderPATH\r
-    folderPATH = tkFileDialog.askdirectory(parent=fenPref,title='Choose working folder')\r
-    folderPATHD.set(folderPATH)\r
-    fenPref.update_idletasks()  # this updates the values in the fenPref window (defined in preferences())\r
-    print 'Added: '+str(folderPATH)\r
-    return folderPATH\r
-\r
-# savePref function is used to save preferences input in fenPref window (defined in preferences())\r
-def savePref() :\r
-    global Vcin, Vrate, Vcout, Rho, lossrate # These variables are global because they are used in savePSEN()\r
-    try : # Test if the user has defined all the requested variables\r
-        savAdress\r
-        folderPATH\r
-        ENRpath\r
-        VcinD\r
-        VrateD\r
-        VcoutD\r
-        RhoD\r
-        lossrateD\r
-    except NameError : # If not a new window pops up and explains the data is missing\r
-        fenetre2 = Tk()\r
-        champ_label = Label(fenetre2, text="ERROR\nNo file and/or folder selected", fg="red", font=("Century Gothic",16))\r
-        champ_label.pack(side=TOP, fill=BOTH, expand=YES)\r
-    else : # If it's OK it gets the data from the fields and save it into config[]\r
-        config[9]=VcinD.get(); config[10]=VrateD.get(); config[11]=VcoutD.get(); config[12]=RhoD.get(); config[13]=lossrateD.get(); config[2]=ENRpathD.get(); config[1]=folderPATHD.get(); config[0]=savAdressD.get()\r
-        Vcin=VcinD.get()\r
-        Vrate=VrateD.get()\r
-        Vcout=VcoutD.get()\r
-        Rho=RhoD.get()\r
-        lossrate=lossrateD.get()\r
-        f=open("lib\pref.psen", "w") # Creates a config file with values to give to PSSEWrapper.py\r
-        f.write(str(savAdress)+";"+str(folderPATH)+";"+str(ENRpath)+";"+str(Vcin)+";"+str(Vrate)+";"+str(Vcout)+";"+str(Rho)+";"+str(lossrate)+";0\n")\r
-        f.close()\r
-    try : \r
-        fenPref\r
-    except NameError :\r
-        pass\r
-    else :\r
-        fenPref.destroy()\r
-        print 'Preferences saved'\r
-   \r
-# refresh_pref function is used to refresh fields value in fenPref window (defined in preferences())\r
-def refresh_pref () :\r
-        try :\r
-            saved\r
-        except NameError : # if saved hasn't been created yet there is no data to update\r
-            pass\r
-            print 'No configuration yet'\r
-        else : # if it has been created we set fields variables and update the window with update_idletasks()\r
-            print 'Update values'\r
-            global continpath\r
-            global model_Path\r
-            global PSSEfolder\r
-            VcinD.set(config[9])\r
-            VrateD.set(config[10])\r
-            VcoutD.set(config[11])\r
-            RhoD.set(config[12])\r
-            lossrateD.set(config[13])\r
-            ENRpathD.set(ENRpath)\r
-            folderPATHD.set(folderPATH)\r
-            savAdressD.set(savAdress)\r
-            fenPref.update_idletasks() \r
-\r
-# savePSEN function is used to create a .PSEN file containing all users parameters and preferences        \r
-def savePSEN() :\r
-    global savePATH\r
-    global saved\r
-    saved=1\r
-\r
-    # === We get all the fields data ===    \r
-    \r
-    MCS_num=var_MCS.get()\r
-    N_1_opt=N_1.get()\r
-    PV_opt=PV.get()\r
-    Wind1_opt=Wind1.get()\r
-    Wind2_opt=Wind1.get()\r
-    Load_opt=Load.get()\r
-\r
-    load_type=choix_load.get()\r
-    load1=var_loadn1.get()\r
-    load2=var_loadn2.get()\r
-    load3=var_loadn3.get()\r
-    load4=var_loadn4.get()\r
-    loadPath=loadPathD.get()\r
-\r
-    wind11_type=choix_wind11.get()\r
-    wind11=var_windn11.get()\r
-    wind12=var_windn12.get()\r
-    wind13=var_windn13.get()\r
-    wind14=var_windn14.get()\r
-    wind1Path=wind1PathD.get()\r
-    \r
-    wind21_type=choix_wind21.get()\r
-    wind21=var_windn21.get()\r
-    wind22=var_windn22.get()\r
-    wind23=var_windn23.get()\r
-    wind24=var_windn24.get()\r
-    wind2Path=wind2PathD.get()\r
-    \r
-    pv_type=choix_pv.get()\r
-    pv1=var_pvn1.get()\r
-    pv2=var_pvn2.get()\r
-    pv3=var_pvn3.get()\r
-    pv4=var_pvn4.get()\r
-    pvPath=pvPathD.get()\r
-    \r
-    C01=C01D.get()\r
-    C02=C02D.get()\r
-    C03=C03D.get()\r
-    C04=C04D.get()\r
-    C12=C12D.get()\r
-    C14=C14D.get()\r
-    C13=C13D.get()\r
-    C23=C23D.get()\r
-    C24=C24D.get()\r
-    C34=C34D.get()\r
-    \r
-    fuel_cost_opt = fuel_cost.get()\r
-    bus_shunt_opt = bus_shunt.get()\r
-    bus_loads_opt = bus_loads.get()\r
-    \r
-    rate_choice = rate_choiceD.get()\r
-    \r
-    try :\r
-        contin_lines_Path\r
-        contin_groups_Path\r
-    except NameError : # If the user hasn't choose a path for the contingency CSV file, we create it as blank to save the data\r
-        contin_lines_Path=''\r
-        contin_groups_Path=''\r
-    \r
-    # We ask the user the name and path of the file\r
-    savePATH = tkFileDialog.asksaveasfilename(parent=fenetre,title='Save the file as ...',defaultextension='.psen',filetypes=[('PSEN file', '.psen')])\r
-    try :\r
-        len(savePATH)>0\r
-    except NameError :\r
-        pass\r
-    else : # Writing all the variables in a specific order (could be improved with XML file for instance)\r
-        f=open(savePATH,'w')\r
-        f.write(str(savAdress)+";"+str(folderPATH)+";"+str(ENRpath)+";"\r
-            +str(contin_lines_Path)+";"+str(contin_groups_Path)+";"+str(model_Path)+";"+str(PSSEfolder)+";"+str(orange_Path)+";"+str(python_Path)+";"\r
-            +str(Vcin)+";"+str(Vrate)+";"+str(Vcout)+";"+str(Rho)+";"+str(lossrate)+";"\r
-            +str(MCS_num)+";"+str(N_1_opt)+";"+str(PV_opt)+";"+str(Wind1_opt)+";"+str(Wind2_opt)+";"+str(Load_opt)+";"\r
-            +str(load_type)+";"+str(load1)+";"+str(load2)+";"+str(load3)+";"+str(load4)+";"+str(loadPath)+";"\r
-            +str(wind11_type)+";"+str(wind11)+";"+str(wind12)+";"+str(wind13)+";"+str(wind14)+";"+str(wind1Path)+";"\r
-            +str(wind21_type)+";"+str(wind21)+";"+str(wind22)+";"+str(wind23)+";"+str(wind24)+";"+str(wind2Path)+";"\r
-            +str(pv_type)+";"+str(pv1)+";"+str(pv2)+";"+str(pv3)+";"+str(pv4)+";"+str(pvPath)+";"\r
-            +str(C01)+";"+str(C02)+";"+str(C03)+";"+str(C04)+";"+str(C12)+";"+str(C13)+";"+str(C14)+";"+str(C23)+";"+str(C24)+";"+str(C34)+";"\r
-            +str(fuel_cost_opt)+";"+str(bus_shunt_opt)+";"+str(bus_loads_opt)+";"\r
-            +str(rate_choice)+";0\n")\r
-        f.close()\r
-        print 'Successfuly saved case study'\r
-\r
-# preferences function is a new window to update some PSEN parameters\r
-def preferences () :   \r
-    global fenPref\r
-    global savAdressD\r
-    global folderPATHD\r
-    global ENRpathD\r
-    global VcinD\r
-    global VrateD\r
-    global VcoutD\r
-    global RhoD\r
-    global lossrateD\r
-    global config        \r
-        \r
-    fenPref = Toplevel(root) # Creating a new window\r
-    fenPref.wm_iconbitmap('lib\PSEN.ico') # Window icon\r
-    fenPref.wm_title('PSEN - Probabilistic Studies of Electrical Networks') # Window title\r
-    \r
-    f0p=Frame(fenPref, height=70, width=500, bd=2, relief=RIDGE)\r
-    f0p.pack_propagate(0) # don't shrink\r
-    f0p.pack()\r
-    \r
-    Label(f0p, text="PSSe .SAV file", fg="black", justify=LEFT, font=("Century Gothic",12)).pack(anchor=NW, padx=10, expand=YES)\r
-    savAdressD=StringVar()\r
-    Entry(f0p, textvariable=savAdressD, width=50).pack(side=LEFT, padx=15, expand=YES)\r
-    Button(f0p, text="Load SAV file", command=browse_PSSe, height=15, width=30).pack(side=LEFT, fill=BOTH, expand=1, padx=5, pady=3)\r
-    \r
-    fline=Frame(fenPref, height=2, width=500, bg="grey")\r
-    fline.pack_propagate(0) # don't shrink\r
-    fline.pack(expand=1)\r
-    \r
-    f1p=Frame(fenPref, height=70, width=500, bd=2, relief=RIDGE)\r
-    f1p.pack_propagate(0) # don't shrink\r
-    f1p.pack()    \r
-    \r
-    Label(f1p, text="Working folder adress :", fg="black", justify=LEFT, font=("Century Gothic",12)).pack(anchor=NW, padx=10, expand=YES)\r
-    folderPATHD=StringVar()\r
-    Entry(f1p, textvariable=folderPATHD, width=50).pack(side=LEFT, padx=15, expand=YES)\r
-    Button(f1p, text="Browse to working folder", command=browse_folder, height=15, width=30).pack(side=LEFT, fill=BOTH, expand=1, padx=5, pady=3)\r
-    \r
-    fline=Frame(fenPref, height=5, width=500, bg="grey")\r
-    fline.pack_propagate(0) # don't shrink\r
-    fline.pack(expand=1)\r
-    \r
-    f3p=Frame(fenPref, height=100, width=500, bd=2, relief=RIDGE)\r
-    f3p.pack_propagate(0) # don't shrink\r
-    f3p.pack()    \r
-    \r
-    Label(f3p, text="Machines configuration :", fg="black", justify=LEFT, font=("Century Gothic",12)).pack(anchor=NW, padx=10, expand=YES)\r
-    Label(f3p, text="N.B. Use the PSSe machine tab, insert a new column in first and write PV for PV, W1 for wind 1, W2 for wind 2 or do nothing for non-ENR. Save as CSV", fg="black", justify=LEFT, wraplength=450).pack(anchor=NW, padx=10, expand=YES)\r
-    ENRpathD=StringVar()\r
-    Entry(f3p, textvariable=ENRpathD, width=50).pack(side=LEFT, padx=15, expand=YES)\r
-    Button(f3p, text="Browse to ENR CSV file", command=browse_ENR, height=15, width=30).pack(side=LEFT, fill=BOTH, expand=1, padx=5, pady=3)\r
-    \r
-    fline=Frame(fenPref, height=5, width=500, bg="grey")\r
-    fline.pack_propagate(0) # don't shrink\r
-    fline.pack(expand=1)\r
-    \r
-    f4p=Frame(fenPref, height=120, width=500, bd=2, relief=RIDGE)\r
-    f4p.pack_propagate(0) # don't shrink\r
-    f4p.pack()    \r
-    \r
-    # Creates 5 entry for wind turbines characteristics    \r
-    Label(f4p, text="Wind 1 & 2 characteristics :", fg="black", justify=LEFT, font=("Century Gothic",12)).pack(anchor=NW, padx=10, expand=YES)\r
-    Label(f4p, text="If wind law, enter the following parameters : \nVcin, Vrate, Vcout, rho (air density kg.m-3, base is 1.225), lossrate (base is 0.05)\nIf power law: Vcin=0, Vrate=1, Vcout>=1. Law must take values between 0 and 1.", fg="black", justify=LEFT, wraplength=450).pack(anchor=NW, padx=10, expand=YES)\r
-    VcinD = StringVar()\r
-    Entry(f4p, textvariable=VcinD, width=13).pack(side=LEFT, padx=5, pady=5) \r
-    VrateD = StringVar()\r
-    Entry(f4p, textvariable=VrateD, width=13).pack(side=LEFT, padx=5, pady=5)\r
-    VcoutD = StringVar()\r
-    Entry(f4p, textvariable=VcoutD, width=13).pack(side=LEFT, padx=5, pady=5)\r
-    RhoD = StringVar()\r
-    Entry(f4p, textvariable=RhoD, width=13).pack(side=LEFT, padx=5, pady=5)\r
-    lossrateD = StringVar()\r
-    Entry(f4p, textvariable=lossrateD, width=13).pack(side=LEFT, padx=5, pady=5)\r
-    \r
-    fline=Frame(fenPref, height=2, width=500, bg="grey")\r
-    fline.pack_propagate(0) # don't shrink\r
-    fline.pack(expand=1)\r
-    \r
-    f2p=Frame(fenPref, height=40, width=500, bd=2, relief=RIDGE)\r
-    f2p.pack_propagate(0) # don't shrink\r
-    f2p.pack()    \r
-    \r
-    Button(f2p, text="Save and quit", command=savePref, height=1, width=30).pack(anchor=N, fill=BOTH, expand=1, padx=5, pady=3)\r
-    \r
-    # Refresh the window data\r
-    refresh_pref ()\r
-    \r
-# openPSEN function opens a .PSEN file with all PSEN parameters, read them and updates their value in the GUI\r
-def openPSEN () :\r
-    global openPATH\r
-    global folderPATH\r
-    global savAdress\r
-    global ENRpath\r
-    global contin_lines_Path\r
-    global contin_groups_Path\r
-    global model_Path\r
-    global loadPath, wind1Path, wind2Path, pvPath\r
-    global PSSEfolder\r
-    global orange_Path\r
-    global python_Path\r
-    global config\r
-    global Vcin; global Vrate; global Vcout; global Rho; global lossrate\r
-    global PVpath\r
-    \r
-    openPATH = tkFileDialog.askopenfilename(parent=fenetre,title='Open PSEN file',filetypes=[('PSEN files', '.psen'),('All files', '.*'),])\r
-    try :\r
-        os.lstat(openPATH)\r
-    except WindowsError : # If the user doesn't choose any file we don't open it\r
-        pass \r
-    except NameError : # If the user doesn't choose any file we don't open it\r
-        pass\r
-    else :\r
-        global saved # Create a saved variable : config list will be created\r
-        saved=1\r
-        f=open(openPATH,'r')\r
-        lines=f.readlines()\r
-        config=lines[0].split(";")\r
-        savAdress=config[0]; folderPATH=config[1]; ENRpath=config[2];\r
-        contin_lines_Path=config[3]; contin_groups_Path=config[4]; model_Path=config[5]; PSSEfolder=config[6]; orange_Path=config[7]; python_Path=config[8]; \r
-        Vcin=config[9]; Vrate=config[10]; Vcout=config[11]; Rho=config[12]; lossrate=config[13];\r
-        loadPath=config[25]; wind1Path=config[31]; wind2Path=config[37]; pvPath=config[43]; \r
-        refresh(config)\r
-        f=open("lib\pref.psen", "w")\r
-        f.write(str(savAdress)+";"+str(folderPATH)+";"+str(ENRpath)+";"+str(Vcin)+";"+str(Vrate)+";"+str(Vcout)+";"+str(Rho)+";"+str(lossrate)+";0\n")\r
-        f.close()\r
-        print 'Successfuly opened '+str(openPATH)\r
-\r
-# This function is not used yet\r
-def numToName (num) :\r
-    num=int(num)\r
-    if num == 1 :\r
-        name = "Normal(mean, stdev)"\r
-    elif num == 2 :\r
-        name = "Uniform(min, max)"\r
-    elif num == 3 :\r
-        name = "Exponential(lambda, gamma)"\r
-    elif num == 4 :\r
-        name = "Weibull(alpha, beta, gamma)"\r
-    elif num == 5 :\r
-        name = "TruncatedNormal(mean, stdev, min, max)"\r
-    elif num == 6 :\r
-        name = "Value list ([[v1,p1],[v2,p2],...])"\r
-    elif num == 7 :\r
-        name = "Histogram (steps, probabilities)"\r
-    elif num == 10 :\r
-        name = "PDF from file ()"\r
-    elif num == 20 :\r
-        name = "Time Serie from file (stepsize, number of points)"\r
-    return name\r
-        \r
-# refresh function updates fields values in fenetre window\r
-def refresh (config) :\r
-    var_MCS.set(config[14])\r
-    N_1.set(config[15])\r
-    PV.set(config[16])\r
-    Wind1.set(config[17])\r
-    Wind2.set(config[18])\r
-    Load.set(config[19])\r
-    \r
-    choix_load.set(config[20])\r
-    var_loadn1.set(config[21])\r
-    var_loadn2.set(config[22])\r
-    var_loadn3.set(config[23])\r
-    var_loadn4.set(config[24])\r
-    loadPathD.set(config[25])\r
-    \r
-    choix_wind11.set(config[26])\r
-    var_windn11.set(config[27])\r
-    var_windn12.set(config[28])\r
-    var_windn13.set(config[39])\r
-    var_windn14.set(config[30])\r
-    wind1PathD.set(config[31])\r
-    \r
-    choix_wind21.set(config[32])\r
-    var_windn21.set(config[33])\r
-    var_windn22.set(config[34])\r
-    var_windn23.set(config[35])\r
-    var_windn24.set(config[36])\r
-    wind2PathD.set(config[37])\r
-    \r
-    choix_pv.set(config[38])\r
-    var_pvn1.set(config[39])\r
-    var_pvn2.set(config[40])\r
-    var_pvn3.set(config[41])\r
-    var_pvn4.set(config[42])\r
-    pvPathD.set(config[43])\r
-\r
-    C01D.set(config[44])\r
-    C02D.set(config[45])\r
-    C03D.set(config[46])\r
-    C04D.set(config[47])\r
-    C12D.set(config[48])\r
-    C13D.set(config[49])\r
-    C14D.set(config[50])\r
-    C23D.set(config[51])\r
-    C24D.set(config[52])\r
-    C34D.set(config[53])\r
-    \r
-    fuel_cost.set(config[54])\r
-    bus_shunt.set(config[55])\r
-    bus_loads.set(config[56])\r
-\r
-    rate_choiceD.set(config[57])\r
-\r
-    fenetre.update_idletasks()\r
-\r
-# PCpreferences function creates a window in which the user can choose some requested paths         \r
-def PCpreferences ():\r
-    global fenPrefPC\r
-    global python_Path\r
-    global orange_Path\r
-    global PSSEfolder\r
-    \r
-    fenPrefPC = Tk()\r
-    fenPrefPC.wm_iconbitmap('lib\PSEN.ico')\r
-    fenPrefPC.wm_title('PSEN - Probabilistic Studies of Electrical Networks')\r
-    \r
-    Label(fenPrefPC, text="Configure PSEN for your computer : ", fg="black", justify=LEFT, font=("Century Gothic",12)).pack(anchor=NW, padx=10, expand=YES)\r
-    Button(fenPrefPC, text="Path to Python 2.7.exe...", command=browse_Python, height=3, width=30).pack(side=LEFT, fill=BOTH, expand=1, padx=5, pady=3)\r
-    Button(fenPrefPC, text="Path to orngCanvas.pyw...", command=browse_Orange, height=3, width=30).pack(side=LEFT, fill=BOTH, expand=1, padx=5, pady=3)\r
-    Button(fenPrefPC, text="Path to PSSE33\PSSBIN...", command=browse_PSSEfolder, height=3, width=30).pack(side=LEFT, fill=BOTH, expand=1, padx=5, pady=3)\r
-    Button(fenPrefPC, text="Save and close", command=closePCpref, height=3, width=15).pack(anchor=S, fill=BOTH, expand=1, padx=5, pady=10)\r
-    \r
-def closePCpref () :\r
-    try : # Test if the user has defined all the requested variables\r
-        python_Path\r
-        orange_Path\r
-        PSSEfolder\r
-    except NameError : # If not a new window pops up and explains the data is missing\r
-        fenetre2 = Tk()\r
-        champ_label = Label(fenetre2, text="ERROR\nNo file and/or folder selected", fg="red", font=("Century Gothic",16))\r
-        champ_label.pack(side=TOP, fill=BOTH, expand=YES)\r
-    else : # If it's OK it gets the data from the fields and save it into config[]\r
-        config[6]=PSSEfolder; config[7]=orange_Path; config[8]=python_Path \r
-    try : \r
-        fenPrefPC\r
-    except NameError :\r
-        pass\r
-    else :\r
-        fenPrefPC.destroy()\r
-        print 'Data saved'\r
-\r
-# PCpreferences function creates a window in which the user can choose some requested paths         \r
-def ContinPreferences ():\r
-    global fenPrefC\r
-    global contin_lines_Path\r
-    global contin_groups_Path\r
-    \r
-    fenPrefC = Tk()\r
-    fenPrefC.wm_iconbitmap('lib\PSEN.ico')\r
-    fenPrefC.wm_title('PSEN - Probabilistic Studies of Electrical Networks')\r
-    \r
-    Label(fenPrefC, text="Choose contingency files with probabilities : ", fg="black", justify=LEFT, font=("Century Gothic",12)).pack(anchor=NW, padx=10, expand=YES)\r
-    Button(fenPrefC, text="Path to branches file", command=contin_lines, height=3, width=30).pack(side=LEFT, fill=BOTH, expand=1, padx=5, pady=3)\r
-    Button(fenPrefC, text="Path to groups file", command=contin_groups, height=3, width=30).pack(side=LEFT, fill=BOTH, expand=1, padx=5, pady=3)\r
-    Button(fenPrefC, text="Save and close", command=closeCpref, height=3, width=15).pack(anchor=S, fill=BOTH, expand=1, padx=5, pady=10)\r
-    \r
-def closeCpref () :\r
-    try : # Test if the user has defined all the requested variables\r
-        contin_lines_Path\r
-        contin_groups_Path\r
-    except NameError : # If not a new window pops up and explains the data is missing\r
-        fenetre2 = Tk()\r
-        champ_label = Label(fenetre2, text="ERROR\nNo file and/or folder selected", fg="red", font=("Century Gothic",16))\r
-        champ_label.pack(side=TOP, fill=BOTH, expand=YES)\r
-    else : # If it's OK it gets the data from the fields and save it into config[]\r
-        config[3]=contin_lines_Path; config[4]=contin_lines_Path\r
-        f=open("lib\contin.psen", "w")\r
-        f.write(str(contin_lines_Path)+";"+str(contin_groups_Path)+";0\n")\r
-        f.close()\r
-    try : \r
-        fenPrefC\r
-    except NameError :\r
-        pass\r
-    else :\r
-        print 'Added :\n'+str(contin_lines_Path)+'\n'+str(contin_groups_Path)\r
-        fenPrefC.destroy()    \r
-        print 'Saved contingency data'\r
-        \r
-def contin_lines () :\r
-    global contin_lines_Path\r
-    contin_lines_Path =  tkFileDialog.askopenfilename(parent=fenetre,title='Choose contingency lines file',filetypes=[('CSV file', '.csv'),('All files', '.*')])\r
-    return contin_lines_Path\r
-    \r
-def contin_groups () :\r
-    global contin_groups_Path\r
-    contin_groups_Path =  tkFileDialog.askopenfilename(parent=fenetre,title='Choose contingency groups file',filetypes=[('CSV file', '.csv'),('All files', '.*')])\r
-    return contin_groups_Path\r
-        \r
-# Hide command window\r
-if os.name == 'nt': # The functions only work with Windows OS\r
-    try:\r
-        import win32gui, win32console, win32con\r
-        win32console.GetConsoleWindow() # do nothing, this is just a test\r
-        def set_attached_console_visible():\r
-            state=is_attached_console_visible()\r
-            win32gui.ShowWindow(win32console.GetConsoleWindow(), win32con.SW_HIDE if state else win32con.SW_SHOW)\r
-        def is_attached_console_visible():\r
-            return win32gui.IsWindowVisible(win32console.GetConsoleWindow())\r
-    except (ImportError, NotImplementedError):\r
-        pass\r
-\r
-\r
-# config_save function is used to save configuration for PSSEWrapper\r
-def config_save():\r
-    MCS_num=var_MCS.get()\r
-    N_1_opt=N_1.get()\r
-    PV_opt=PV.get()\r
-    Wind1_opt=Wind1.get()\r
-    Wind2_opt=Wind2.get()\r
-    Load_opt=Load.get()\r
-\r
-    load_type=choix_load.get()\r
-    load1=var_loadn1.get()\r
-    load2=var_loadn2.get()\r
-    load3=var_loadn3.get()\r
-    load4=var_loadn4.get()\r
-    loadPath=loadPathD.get()\r
-    \r
-    wind11_type=choix_wind11.get()\r
-    wind11=var_windn11.get()\r
-    wind12=var_windn12.get()\r
-    wind13=var_windn13.get()\r
-    wind14=var_windn14.get()\r
-    wind1Path=wind1PathD.get()\r
-    \r
-    wind21_type=choix_wind21.get()\r
-    wind21=var_windn21.get()\r
-    wind22=var_windn22.get()\r
-    wind23=var_windn23.get()\r
-    wind24=var_windn24.get()\r
-    wind2Path=wind2PathD.get()\r
-    \r
-    pv_type=choix_pv.get()\r
-    pv1=var_pvn1.get()\r
-    pv2=var_pvn2.get()\r
-    pv3=var_pvn3.get()\r
-    pv4=var_pvn4.get()\r
-    pvPath=pvPathD.get()\r
-    \r
-    C01=C01D.get()\r
-    C02=C02D.get()\r
-    C03=C03D.get()\r
-    C04=C04D.get()\r
-    C12=C12D.get()\r
-    C13=C13D.get()\r
-    C14=C14D.get()\r
-    C23=C23D.get()\r
-    C24=C24D.get()\r
-    C34=C34D.get()\r
-    \r
-    fuel_cost_opt = fuel_cost.get()\r
-    bus_shunt_opt = bus_shunt.get()\r
-    bus_loads_opt = bus_loads.get()\r
-    \r
-    rate_choice=rate_choiceD.get()\r
-\r
-    f=open("lib\config.psen", "w")\r
-# Write probabilistic model data \r
-    f.write(str(MCS_num)+";"+str(N_1_opt)+";"+str(PV_opt)+";"+str(Wind1_opt)+";"+str(Wind2_opt)+";"+str(Load_opt)+";"+str(fuel_cost_opt)+";"+str(bus_shunt_opt)+";"+str(bus_loads_opt)+"\n")\r
-    \r
-# Write load probabilistic model data \r
-    if load_type == "Normal(mean, stdev)" :\r
-        f.write('1;'+str(load1)+";"+str(load2)+';0')\r
-    elif load_type == "Uniform(min, max)" :\r
-        f.write('2;'+str(load1)+";"+str(load2)+';0')\r
-    elif load_type == "Exponential(lambda, gamma)" :\r
-        f.write('3;'+str(load1)+";"+str(load2)+';0')\r
-    elif load_type == "Weibull(alpha, beta, gamma)" :\r
-        f.write('4;'+str(load1)+";"+str(load2)+";"+str(load3)+';0')\r
-    elif load_type == "TruncatedNormal(mean, stdev, min, max)" :\r
-        f.write('5;'+str(load1)+";"+str(load2)+";"+str(load3)+";"+str(load4)+';0')\r
-    elif load_type == "Value list (values, probabilities)" :\r
-        f.write('6;'+str(load1)+";"+str(load2)+';0')\r
-    elif load_type == 'Histogram (steps, probabilities)' :\r
-        f.write('7;'+str(load1)+";"+str(load2)+';0')\r
-    elif load_type== "PDF from file ()" :\r
-        try :\r
-            loadPath\r
-        except NameError :\r
-            fenetre2 = Tk()\r
-            Label(fenetre2, text="ERROR\nNo file selected", fg="red", font=("Century Gothic",16)).pack(side=TOP, fill=BOTH, expand=YES)\r
-        else :\r
-            f.write('10;'+loadPath+';0')   \r
-    elif load_type== "Time Serie from file (stepsize, number of points)" :\r
-        try :\r
-            loadPath\r
-        except NameError :\r
-            fenetre2 = Tk()\r
-            Label(fenetre2, text="ERROR\nNo file selected", fg="red", font=("Century Gothic",16)).pack(side=TOP, fill=BOTH, expand=YES)\r
-        else :\r
-            f.write('20;'+loadPath+";"+str(load1)+";"+str(load2)+';0') \r
-    else :\r
-        fenetre2 = Tk()\r
-        Label(fenetre2, text="ERROR\nNo load model selected", fg="red", font=("Century Gothic",16)).pack(side=TOP, fill=BOTH, expand=YES)\r
-    f.write("\n")\r
-    \r
-# Write wind 1 probabilistic model data \r
-    if wind11_type == "Normal(mean, stdev)" :\r
-        f.write('1;'+str(wind11)+";"+str(wind12)+';0')\r
-    elif wind11_type == "Uniform(min, max)" :\r
-        f.write('2;'+str(wind11)+";"+str(wind12)+';0')\r
-    elif wind11_type == "Exponential(lambda, gamma)" :\r
-        f.write('3;'+str(wind11)+";"+str(wind12)+';0')\r
-    elif wind11_type == "Weibull(alpha, beta, gamma)" :\r
-        f.write('4;'+str(wind11)+";"+str(wind12)+";"+str(wind13)+';0')\r
-    elif wind11_type == "TruncatedNormal(mean, stdev, min, max)" :\r
-        f.write('5;'+str(wind11)+";"+str(wind12)+";"+str(wind13)+";"+str(wind14)+';0')\r
-    elif wind11_type == "Value list (values, probabilities)" :\r
-        f.write('6;'+str(wind11)+";"+str(wind12)+';0')\r
-    elif wind11_type == 'Histogram (steps, probabilities)' :\r
-        f.write('7;'+str(wind11)+";"+str(wind12)+';0')\r
-    elif wind11_type== "PDF from file ()" :\r
-        try :\r
-            wind1Path\r
-        except NameError :\r
-            fenetre2 = Tk()\r
-            Label(fenetre2, text="ERROR\nNo file selected", fg="red", font=("Century Gothic",16)).pack(side=TOP, fill=BOTH, expand=YES)\r
-        else :\r
-            f.write('10;'+wind1Path+';0')   \r
-    elif wind11_type== "Time Serie from file (stepsize, number of points)" :\r
-        try :\r
-            wind1Path\r
-        except NameError :\r
-            fenetre2 = Tk()\r
-            Label(fenetre2, text="ERROR\nNo file selected", fg="red", font=("Century Gothic",16)).pack(side=TOP, fill=BOTH, expand=YES)\r
-        else :\r
-            f.write('20;'+wind1Path+";"+str(wind11)+";"+str(wind12)+';0') \r
-    else :\r
-        fenetre2 = Tk()\r
-        Label(fenetre2, text="ERROR\nNo wind model selected", fg="red", font=("Century Gothic",16)).pack(side=TOP, fill=BOTH, expand=YES)\r
-    f.write("\n")\r
-    \r
-# Write wind 2 probabilistic model data    \r
-    if wind21_type == "Normal(mean, stdev)" :\r
-        f.write('1;'+str(wind21)+";"+str(wind22)+';0')\r
-    elif wind21_type == "Uniform(min, max)" :\r
-        f.write('2;'+str(wind21)+";"+str(wind22)+';0')\r
-    elif wind21_type == "Exponential(lambda, gamma)" :\r
-        f.write('3;'+str(wind21)+";"+str(wind22)+';0')\r
-    elif wind21_type == "Weibull(alpha, beta, gamma)" :\r
-        f.write('4;'+str(wind21)+";"+str(wind22)+";"+str(wind23)+';0')\r
-    elif wind21_type == "TruncatedNormal(mean, stdev, min, max)" :\r
-        f.write('5;'+str(wind21)+";"+str(wind22)+";"+str(wind23)+";"+str(wind24)+';0')\r
-    elif wind21_type == "Value list (values, probabilities)" :\r
-        f.write('6;'+str(wind21)+";"+str(wind22)+';0')\r
-    elif wind21_type == 'Histogram (steps, probabilities)' :\r
-        f.write('7;'+str(wind21)+";"+str(wind22)+';0')\r
-    elif wind21_type== "PDF from file ()" :\r
-        try :\r
-            wind2Path\r
-        except NameError :\r
-            fenetre2 = Tk()\r
-            Label(fenetre2, text="ERROR\nNo file selected", fg="red", font=("Century Gothic",16)).pack(side=TOP, fill=BOTH, expand=YES)\r
-        else :\r
-            f.write('10;'+wind2Path+';0')   \r
-    elif wind21_type== "Time Serie from file (stepsize, number of points)" :\r
-        try :\r
-            wind2Path\r
-        except NameError :\r
-            fenetre2 = Tk()\r
-            Label(fenetre2, text="ERROR\nNo file selected", fg="red", font=("Century Gothic",16)).pack(side=TOP, fill=BOTH, expand=YES)\r
-        else :\r
-            f.write('20;'+wind2Path+";"+str(wind21)+";"+str(wind22)+';0') \r
-    else :\r
-        fenetre2 = Tk()\r
-        Label(fenetre2, text="ERROR\nNo wind 2 model selected", fg="red", font=("Century Gothic",16)).pack(side=TOP, fill=BOTH, expand=YES)\r
-    f.write("\n")\r
-\r
-# Write correlation probabilistic model data     \r
-    f.write(str(C01)+";"+str(C02)+";"+str(C03)+";"+str(C04)+";"+str(C12)+";"+str(C13)+";"+str(C14)+";"+str(C23)+";"+str(C24)+";"+str(C34)+";0")\r
-    f.write("\n") \r
-\r
-# Write pv probabilistic model data     \r
-    if pv_type == "Normal(mean, stdev)" :\r
-        f.write('1;'+str(pv1)+";"+str(pv2)+';0')\r
-    elif pv_type == "Uniform(min, max)" :\r
-        f.write('2;'+str(pv1)+";"+str(pv2)+';0')\r
-    elif pv_type == "Exponential(lambda, gamma)" :\r
-        f.write('3;'+str(pv1)+";"+str(pv2)+';0')\r
-    elif pv_type == "Weibull(alpha, beta, gamma)" :\r
-        f.write('4;'+str(pv1)+";"+str(pv2)+";"+str(pv3)+';0')\r
-    elif pv_type == "TruncatedNormal(mean, stdev, min, max)" :\r
-        f.write('5;'+str(pv1)+";"+str(pv2)+";"+str(pv3)+";"+str(pv4)+';0')\r
-    elif pv_type == "Value list (values, probabilities)" :\r
-        f.write('6;'+str(pv1)+";"+str(pv2)+';0')\r
-    elif pv_type == 'Histogram (steps, probabilities)' :\r
-        f.write('7;'+str(pv1)+";"+str(pv2)+';0')\r
-    elif pv_type== "PDF from file ()" :\r
-        try :\r
-            pvPath\r
-        except NameError :\r
-            fenetre2 = Tk()\r
-            champ_label = Label(fenetre2, text="ERROR\nNo file selected", fg="red", font=("Century Gothic",16))\r
-            champ_label.pack(side=TOP, fill=BOTH, expand=YES)\r
-        else :\r
-            f.write('10;'+pvPath+';0')   \r
-    elif pv_type== "Time Serie from file (stepsize, number of points)" :\r
-        try :\r
-            pvPath\r
-        except NameError :\r
-            fenetre2 = Tk()\r
-            champ_label = Label(fenetre2, text="ERROR\nNo file selected", fg="red", font=("Century Gothic",16))\r
-            champ_label.pack(side=TOP, fill=BOTH, expand=YES)\r
-        else :\r
-            f.write('20;'+pvPath+";"+str(pv1)+";"+str(pv2)+';0') \r
-    else :\r
-        fenetre2 = Tk()\r
-        champ_label = Label(fenetre2, text="ERROR\nNo wind model selected", fg="red", font=("Century Gothic",16))\r
-        champ_label.pack(side=TOP, fill=BOTH, expand=YES)\r
-    f.write("\n")\r
-\r
-# Write OPF data model     \r
-    f.write(str(fuel_cost_opt) +";"+ str(bus_shunt_opt) +";"+ str(bus_loads_opt)+";0\n")\r
-\r
-# Write Imap rate choice     \r
-    f.write(str(rate_choice)+";0\n")\r
-\r
-    f.close()\r
-    \r
-    print 'Successfuly saved case data'\r
-\r
-# launch_PSEN function is used to run PSSEWrapper code with the configuration in the GUI\r
-def launch_PSEN():\r
-    config_save() # Current configuration is fist saved\r
-    PSEN_Path='PSEN/PSSEWrapper.py'\r
-    subprocess.Popen([python_Path,PSEN_Path])\r
-\r
-# launch_orange function is used to launch Orange with the model file\r
-def launch_Orange():\r
-    subprocess.Popen([python_Path,orange_Path,model_Path])\r
-\r
-# browse_load is used to select a .CSV file with a 1D array of load measures\r
-def browse_load() :\r
-    global loadPath\r
-    loadPath = tkFileDialog.askopenfilename(parent=fenetre,title='Open file for load data estimation',filetypes=[('CSV files', '.csv'),('All files', '.*')])\r
-    loadPathD.set(loadPath)\r
-    fenetre.update_idletasks() # updates the fields paths\r
-    return loadPath\r
-\r
-# browse_wind is used to select a .CSV file with a 1D array of wind measures    \r
-def browse_wind1() :\r
-    global wind1Path\r
-    wind1Path = tkFileDialog.askopenfilename(parent=fenetre,title='Open file for wind 1 data estimation',filetypes=[('CSV files', '.csv'),('All files', '.*')])\r
-    wind1PathD.set(wind1Path)\r
-    fenetre.update_idletasks() # updates the fields paths\r
-    return wind1Path\r
-    \r
-# browse_wind is used to select a .CSV file with a 1D array of wind measures    \r
-def browse_wind2() :\r
-    global wind2Path\r
-    wind2Path = tkFileDialog.askopenfilename(parent=fenetre,title='Open file for wind 2 data estimation',filetypes=[('CSV files', '.csv'),('All files', '.*')])\r
-    wind2PathD.set(wind2Path)\r
-    fenetre.update_idletasks() # updates the fields paths\r
-    return wind2Path\r
-\r
-# browse_pv is used to select a .CSV file with a 1D array of PV measures    \r
-def browse_pv() :\r
-    global pvPath\r
-    pvPath = tkFileDialog.askopenfilename(parent=fenetre,title='Open file for PV data estimation',filetypes=[('CSV files', '.csv'),('All files', '.*')])\r
-    pvPathD.set(pvPath)\r
-    fenetre.update_idletasks() # updates the fields paths\r
-    return pvPath    \r
-\r
-# continload function is a browsing window returning the path to the contingency CSV file\r
-def continload () :\r
-    global continpath\r
-    continpath = tkFileDialog.askopenfilename(parent=fenetre,title='Open contingency file',filetypes=[('CSV files', '.csv'),('All files', '.*')])\r
-    try :\r
-        continpath\r
-    except NameError :\r
-        pass\r
-    else : # Saves the path into a file for PSSEWrapper.py\r
-        f=open("lib\contin.psen", "w")\r
-        f.write(str(continpath)+";0\n")\r
-        f.close()\r
-    return continpath\r
-\r
-# orangeload function is a browsing window returning the path to the orange model file OWS\r
-def orangeload () :\r
-    global model_Path\r
-    model_Path = tkFileDialog.askopenfilename(parent=fenetre,title='Open orange file...',filetypes=[('Orange Widget Scripts', '.ows')])\r
-    \r
-def browse_PSSEfolder () :\r
-    global PSSEfolder\r
-    if os.path.exists("C:\Program Files\PTI\PSSE33\PSSBIN") == True : \r
-        path="C:\Program Files\PTI\PSSE33\PSSBIN"\r
-    else : \r
-        path="C:"\r
-    PSSEfolder = tkFileDialog.askdirectory(parent=fenPrefPC,title='Choose PSSE/PSSBIN folder', initialdir=path)\r
-    return PSSEfolder\r
-    \r
-def browse_Python () :\r
-    global python_Path\r
-    if os.path.exists("C:\Python27") == True : \r
-        path="C:\Python27"\r
-    else : \r
-        path="C:"\r
-    python_Path =  tkFileDialog.askopenfilename(parent=fenetre,title='Choose python.exe',filetypes=[('Executables', '.exe'),('All files', '.*')], initialdir=path)\r
-    return python_Path\r
-    \r
-def browse_Orange () :\r
-    global orange_Path\r
-    if os.path.exists("C:\Python27\Lib\site-packages\Orange\OrangeCanvas") == True : \r
-        path="C:\Python27\Lib\site-packages\Orange\OrangeCanvas"\r
-    else : \r
-        path="C:"\r
-    orange_Path = tkFileDialog.askopenfilename(parent=fenetre,title='Choose orngCanvas.pyw',filetypes=[('Python file', '.pyw'),('All files', '.*')], initialdir=path)\r
-    return orange_Path\r
-# On crée une fenêtre, racine de notre interface\r
-def fenetre() :\r
-    global fenetre,var_MCS,N_1,PV,Wind1,Wind2,Load,choix_load,var_loadn1,var_loadn2,var_loadn3,var_loadn4,loadPathD,choix_wind11,var_windn11,var_windn12,var_windn13,var_windn14,wind1PathD,choix_wind21,var_windn21,var_windn22,var_windn23,var_windn24,wind2PathD,choix_pv,var_pvn1,var_pvn2,var_pvn3,var_pvn4,pvPathD,C01D,C02D,C03D,C04D,C12D,C13D,C14D,C23D,C24D,C34D,fuel_cost,bus_shunt,bus_loads,rate_choiceD\r
-    fenetre = Toplevel(root)\r
-    fenetre.wm_iconbitmap('lib\PSEN.ico')\r
-    fenetre.wm_title('PSEN - Probabilistic Studies of Electrical Networks')\r
-    \r
-    def openshort (event):\r
-        openPSEN()\r
-    def saveshort (event) : \r
-        savePSEN()\r
-    def quitshort (event) : \r
-        fenetre.destroy()\r
-    def orangeshort (event):\r
-        launch_Orange()\r
-    def runshort (event) : \r
-        launch_PSEN()\r
-    def prefshort (event) : \r
-        preferences()    \r
-    \r
-    fenetre.bind_all("<Control-q>", quitshort)\r
-    fenetre.bind_all("<Control-o>", openshort)\r
-    fenetre.bind_all("<Control-s>", saveshort)\r
-    fenetre.bind_all("<Control-a>", orangeshort)\r
-    fenetre.bind_all("<Control-r>", runshort)\r
-    fenetre.bind_all("<Control-p>", prefshort)    \r
-    \r
-    wd=500\r
-    \r
-    # Create a toplevel menu\r
-    menubar=Menu(fenetre)\r
-    \r
-    filemenu = Menu(menubar, tearoff=0)\r
-    filemenu.add_command(label="Open PSEN", command=openPSEN, accelerator="Ctrl+O")\r
-    filemenu.add_command(label="Save PSEN", command=savePSEN, accelerator="Ctrl+S")\r
-    filemenu.add_separator() \r
-    filemenu.add_command(label="Exit", command=fenetre.quit, accelerator="Ctrl+Q")\r
-    menubar.add_cascade(label="File", menu=filemenu)\r
-    \r
-    editmenu = Menu(menubar, tearoff=0)\r
-    editmenu.add_command(label="Computer preferences", command=PCpreferences)\r
-    editmenu.add_separator() \r
-    editmenu.add_command(label="Study preferences", command=preferences, accelerator="Ctrl+P")\r
-    menubar.add_cascade(label="Edit", menu=editmenu)\r
-    \r
-    exemenu = Menu(menubar, tearoff=0)\r
-    exemenu.add_command(label="Run PSEN", command=preferences, accelerator="Ctrl+R")\r
-    menubar.add_cascade(label="Execution", menu=exemenu)\r
-    \r
-    contmenu = Menu(menubar, tearoff=0)\r
-    contmenu.add_command(label="Load contingency file", command=ContinPreferences)\r
-    menubar.add_cascade(label="Contingency analysis", menu=contmenu)\r
-    \r
-    orangemenu = Menu(menubar, tearoff=0)\r
-    orangemenu.add_command(label="Choose Orange model", command=orangeload)\r
-    orangemenu.add_command(label="Open Orange", command=launch_Orange, accelerator="Ctrl+A")\r
-    menubar.add_cascade(label="Orange analysis", menu=orangemenu)\r
-    \r
-    viewmenu = Menu(menubar, tearoff=0)\r
-    viewmenu.add_command(label="Show/Hide cmd window", command=set_attached_console_visible)\r
-    menubar.add_cascade(label="View", menu=viewmenu)\r
-    \r
-    # Display the menu\r
-    fenetre.config(menu=menubar)\r
-    \r
-    ftop=Frame(fenetre, height=140, width=2*wd, bd=2, relief=RIDGE)\r
-    ftop.pack_propagate(0) # don't shrink\r
-    ftop.pack()\r
-    \r
-    fmid=Frame(fenetre, height=500, width=2*wd)\r
-    fmid.pack_propagate(0) # don't shrink\r
-    fmid.pack()\r
-    \r
-    fleft=Frame(fmid, height=500, width=wd, bd=2, relief=RIDGE)\r
-    fleft.pack_propagate(0) # don't shrink\r
-    fleft.pack(side=LEFT)\r
-    \r
-    fright=Frame(fmid, height=500, width=wd, bd=2, relief=RIDGE)\r
-    fright.pack_propagate(0) # don't shrink\r
-    fright.pack(side=RIGHT)\r
-    \r
-    #canvas=Canvas(fenetre, width=600, height=100, bg='ivory')\r
-    Label(ftop, image=header).pack(side=TOP, fill=BOTH, expand=YES)\r
-    #canvas.pack(side=TOP,padx=5,pady=5)\r
-\r
-    fline=Frame(ftop, height=2, width=2*wd, bg="grey")\r
-    fline.pack_propagate(0) # don't shrink\r
-    fline.pack(expand=1)\r
-    \r
-    fl0=Frame(fleft, height=55, width=wd)\r
-    fl0.pack_propagate(0) # don't shrink\r
-    fl0.pack()\r
-    \r
-    Label(fl0, text="Simulation parameters", fg="black", justify=LEFT, font=("Century Gothic",14)).pack(anchor=NW, padx=10, expand=NO)\r
-    \r
-    # Change Monte Carlo samplings\r
-    Label(fl0, text="Choose the number of samples:", fg="black").pack(side=LEFT, padx=10, expand=NO)\r
-    \r
-    var_MCS = StringVar()\r
-    Entry(fl0, textvariable=var_MCS, width=15).pack(side=LEFT, padx=15, expand=NO)\r
-    \r
-    fl01=Frame(fleft, height=30, width=wd)\r
-    fl01.pack_propagate(0) # don't shrink\r
-    fl01.pack()\r
-    \r
-    # Change N-1 study or not\r
-    N_1 = IntVar()\r
-    Checkbutton(fl01, text="N-1 study ?", variable=N_1).pack(side=LEFT, padx=2)\r
-    \r
-    # Include Load ?\r
-    Load = IntVar()\r
-    Checkbutton(fl01, text="Load study ?", variable=Load).pack(side=LEFT, padx=2)\r
-    \r
-    # Include Wind 1 ?\r
-    Wind1 = IntVar()\r
-    Checkbutton(fl01, text="Wind 1 study ?", variable=Wind1).pack(side=LEFT, padx=2)\r
-    \r
-    # Include Wind 2 ?\r
-    Wind2 = IntVar()\r
-    Checkbutton(fl01, text="Wind 2 study ?", variable=Wind2).pack(side=LEFT, padx=2)\r
-    \r
-    # Include PV\r
-    PV = IntVar()\r
-    Checkbutton(fl01, text="PV study ?", variable=PV).pack(side=LEFT, padx=2)\r
-    \r
-    Frame(fleft, height=2, width=wd, bg="grey").pack(pady=10, expand=NO)\r
-    \r
-    fl1=Frame(fleft, height=152, width=wd)\r
-    fl1.pack_propagate(0) # don't shrink\r
-    fl1.pack(pady=0, expand=NO)\r
-    \r
-    champ_label = Label(fl1, text="Correlation upper matrix :", fg="black", justify=LEFT, font=("Century Gothic",14))\r
-    champ_label.pack(anchor=NW, padx=10, expand=NO)\r
-    \r
-    champ_label = Label(fl1, text="Load                         N-1                    Wind1               Wind2                 Solar           ", fg="black")\r
-    champ_label.pack(anchor=NE, padx=10)\r
-    \r
-    fl11=Frame(fl1, height=25, width=wd)\r
-    fl11.pack_propagate(0) # don't shrink\r
-    fl11.pack(padx=10, expand=NO)\r
-    C04D = StringVar()\r
-    Entry(fl11, textvariable=C04D, width=10).pack(side=RIGHT, padx=10, pady=5)\r
-    C04D.set(0)\r
-    C03D = StringVar()\r
-    Entry(fl11, textvariable=C03D, width=10).pack(side=RIGHT, padx=10, pady=5)\r
-    C03D.set(0)\r
-    C02D = StringVar()\r
-    Entry(fl11, textvariable=C02D, width=10).pack(side=RIGHT, padx=10, pady=5)\r
-    C02D.set(0)\r
-    C01D = StringVar()\r
-    Entry(fl11, textvariable=C01D, width=10).pack(side=RIGHT, padx=10, pady=5)\r
-    C01D.set(0)\r
-    \r
-    champ_label = Label(fl11, text="Load     ", fg="black")\r
-    champ_label.pack(side=RIGHT, padx=10)\r
-    \r
-    fl12=Frame(fl1, height=25, width=wd)\r
-    fl12.pack_propagate(0) # don't shrink\r
-    fl12.pack(padx=10, expand=NO)\r
-    C14D = StringVar()\r
-    Entry(fl12, textvariable=C14D, width=10).pack(side=RIGHT, padx=10, pady=5)\r
-    C14D.set(0)\r
-    C13D = StringVar()\r
-    Entry(fl12, textvariable=C13D, width=10).pack(side=RIGHT, padx=10, pady=5)\r
-    C13D.set(0)\r
-    C12D = StringVar()\r
-    Entry(fl12, textvariable=C12D, width=10).pack(side=RIGHT, padx=10, pady=5)\r
-    C12D.set(0)\r
-    \r
-    champ_label = Label(fl12, text="N-1    ", fg="black")\r
-    champ_label.pack(side=RIGHT, padx=10)\r
-    \r
-    fl13=Frame(fl1, height=25, width=wd)\r
-    fl13.pack_propagate(0) # don't shrink\r
-    fl13.pack(padx=10, expand=NO)\r
-    C24D = StringVar()\r
-    Entry(fl13, textvariable=C24D, width=10).pack(side=RIGHT, padx=10, pady=5)\r
-    C24D.set(0)\r
-    C23D = StringVar()\r
-    Entry(fl13, textvariable=C23D, width=10).pack(side=RIGHT, padx=10, pady=5)\r
-    C23D.set(0)\r
-    \r
-    champ_label = Label(fl13, text="Wind1    ", fg="black")\r
-    champ_label.pack(side=RIGHT, padx=10)\r
-    \r
-    fl14=Frame(fl1, height=25, width=wd)\r
-    fl14.pack_propagate(0) # don't shrink\r
-    fl14.pack(padx=10, expand=NO)\r
-    C34D = StringVar()\r
-    Entry(fl14, textvariable=C34D, width=10).pack(side=RIGHT, padx=10, pady=5)\r
-    C34D.set(0)\r
-    \r
-    champ_label = Label(fl14, text="Wind2      ", fg="black")\r
-    champ_label.pack(side=RIGHT, padx=10)\r
-    \r
-    fline=Frame(fleft, height=2, width=wd, bg="grey")\r
-    fline.pack(pady=10, expand=NO)\r
-    \r
-    fl2=Frame(fleft, height=20, width=wd)\r
-    fl2.pack_propagate(0) # don't shrink\r
-    fl2.pack()\r
-    \r
-    champ_label = Label(fl2, text="PSSe OPF parameters", fg="black", justify=LEFT, font=("Century Gothic",14))\r
-    champ_label.pack(anchor=NW, padx=10, expand=NO)\r
-    \r
-    fl21=Frame(fleft, height=30, width=wd)\r
-    fl21.pack_propagate(0) # don't shrink\r
-    fl21.pack()\r
-    \r
-    # "Minimize fuel cost"\r
-    fuel_cost = IntVar()\r
-    Checkbutton(fl21, text="Minimize fuel cost", variable=fuel_cost).pack(side=LEFT, padx=10)\r
-    \r
-    # "Minimize adj. bus shunts"\r
-    bus_shunt = IntVar()\r
-    Checkbutton(fl21, text="Minimize adj. bus shunts", variable=bus_shunt).pack(side=LEFT, padx=10)\r
-    \r
-    # "Minimize adj. bus loads"\r
-    bus_loads = IntVar()\r
-    Checkbutton(fl21, text="Minimize adj. bus loads", variable=bus_loads).pack(side=LEFT, padx=10)\r
-    \r
-    fline=Frame(fleft, height=2, width=wd, bg="grey")\r
-    fline.pack(pady=10, expand=NO)\r
-    \r
-    fl3=Frame(fleft, height=20, width=wd)\r
-    fl3.pack_propagate(0) # don't shrink\r
-    fl3.pack()\r
-    \r
-    champ_label = Label(fl3, text="PSSe Irate choice :", fg="black", justify=LEFT, font=("Century Gothic",14))\r
-    champ_label.pack(side=LEFT, padx=10, expand=NO)\r
-\r
-    # "Minimize fuel cost"\r
-    rate_choiceD = IntVar()\r
-    Radiobutton(fl3, text="Rate A", variable=rate_choiceD, value=1).pack(side=LEFT, padx=20)\r
-    Radiobutton(fl3, text="Rate B", variable=rate_choiceD, value=2).pack(side=LEFT, padx=10)\r
-    Radiobutton(fl3, text="Rate C", variable=rate_choiceD, value=3).pack(side=LEFT, padx=10)\r
-    \r
-#---- Choose the probability laws ---\r
-    #---- Load model ----\r
-    fr0=Frame(fright, height=55, width=wd)\r
-    fr0.pack_propagate(0) # don't shrink\r
-    fr0.pack(expand=NO, anchor=NW)\r
-    \r
-    champ_label = Label(fr0, text="Load model :", fg="black", justify=LEFT, font=("Century Gothic",14))\r
-    champ_label.pack(anchor=NW, padx=10, expand=NO)\r
-    \r
-    choix_load=StringVar()\r
-    laws_choice = ('Normal(mean, stdev)','Uniform(min, max)','Exponential(lambda, gamma)','Weibull(alpha, beta, gamma)', 'TruncatedNormal(mean, stdev, min, max)', 'Value list (values, probabilities)', 'Histogram (steps, probabilities)', 'PDF from file ()', 'Time Serie from file (stepsize, number of points)' )\r
-    Combobox(fr0, textvariable = choix_load, values = laws_choice, state = 'readonly', width=50).pack(side=LEFT, padx=10, expand=NO)\r
-    choix_load.set('Choose your load model')\r
-    \r
-    fr01=Frame(fright, height=30, width=wd)\r
-    fr01.pack_propagate(0) # don't shrink\r
-    fr01.pack(expand=NO)\r
-    champ_label = Label(fr01, text="Parameters :", fg="black").pack(side=LEFT, padx=10, pady=0)\r
-    \r
-    var_loadn1 = StringVar()\r
-    Entry(fr01, textvariable=var_loadn1, width=12).pack(side=LEFT, padx=10, pady=5)\r
-    var_loadn2 = StringVar()\r
-    Entry(fr01, textvariable=var_loadn2, width=12).pack(side=LEFT, padx=10, pady=5)\r
-    var_loadn3 = StringVar()\r
-    Entry(fr01, textvariable=var_loadn3, width=12).pack(side=LEFT, padx=10, pady=5)\r
-    var_loadn4 = StringVar()\r
-    Entry(fr01, textvariable=var_loadn4, width=12).pack(side=LEFT, padx=10, pady=5)\r
-    \r
-    fr011=Frame(fright, height=35, width=wd)\r
-    fr011.pack_propagate(0) # don't shrink\r
-    fr011.pack(expand=NO)\r
-    \r
-    # We create the browse button\r
-    loadPathD=StringVar()\r
-    Entry(fr011, textvariable=loadPathD, width=50).pack(side=LEFT, padx=15, expand=YES)\r
-    \r
-    Button(fr011, text="Load data", command=browse_load).pack(side=LEFT, fill=BOTH, expand=1, padx=5, pady=3)\r
-    \r
-    fline=Frame(fright, height=2, width=wd, bg="grey")\r
-    fline.pack(pady=2, expand=NO)\r
-    \r
-    #---- Wind 1 model ----\r
-    fr1=Frame(fright, height=55, width=wd)\r
-    fr1.pack_propagate(0) # don't shrink\r
-    fr1.pack(expand=NO, pady=0)\r
-    \r
-    champ_label = Label(fr1, text="Wind 1 distribution model :", fg="black", justify=LEFT, font=("Century Gothic",14))\r
-    champ_label.pack(anchor=NW, padx=10, expand=NO)\r
-    \r
-    choix_wind11=StringVar()\r
-    laws_choice = ('Normal(mean, stdev)','Uniform(min, max)','Exponential(lambda, gamma)','Weibull(alpha, beta, gamma)', 'TruncatedNormal(mean, stdev, min, max)', 'Value list (values, probabilities)', 'Histogram (steps, probabilities)', 'PDF from file ()', 'Time Serie from file (stepsize, number of points)' )\r
-    Combobox(fr1, textvariable = choix_wind11, values = laws_choice, state = 'readonly', width=50).pack(side=LEFT, padx=10, expand=NO)\r
-    choix_wind11.set('Choose your wind model')\r
-    \r
-    fr11=Frame(fright, height=30, width=wd)\r
-    fr11.pack_propagate(0) # don't shrink\r
-    fr11.pack(expand=NO)\r
-    Label(fr11, text="Parameters :", fg="black").pack(side=LEFT, padx=10, pady=0)\r
-    \r
-    var_windn11 = StringVar()\r
-    Entry(fr11, textvariable=var_windn11, width=12).pack(side=LEFT, padx=10, pady=5)\r
-    var_windn12 = StringVar()\r
-    Entry(fr11, textvariable=var_windn12, width=12).pack(side=LEFT, padx=10, pady=5)\r
-    var_windn13 = StringVar()\r
-    Entry(fr11, textvariable=var_windn13, width=12).pack(side=LEFT, padx=10, pady=5)\r
-    var_windn14 = StringVar()\r
-    Entry(fr11, textvariable=var_windn14, width=12).pack(side=LEFT, padx=10, pady=5)\r
-    \r
-    fr111=Frame(fright, height=35, width=wd)\r
-    fr111.pack_propagate(0) # don't shrink\r
-    fr111.pack(expand=NO)\r
-    \r
-    # We create the browse button\r
-    wind1PathD=StringVar()\r
-    Entry(fr111, textvariable=wind1PathD, width=50).pack(side=LEFT, padx=15, expand=YES)\r
-    \r
-    Button(fr111, text="Wind 1 data", command=browse_wind1).pack(side=LEFT, fill=BOTH, expand=1, padx=5, pady=3)\r
-    \r
-    fline=Frame(fright, height=2, width=wd, bg="grey")\r
-    fline.pack(pady=2, expand=NO)\r
-    \r
-    #---- Wind 2 model ----\r
-    fr2=Frame(fright, height=55, width=wd)\r
-    fr2.pack_propagate(0) # don't shrink\r
-    fr2.pack(expand=NO, pady=0)\r
-    \r
-    champ_label = Label(fr2, text="Wind 2 distribution model :", fg="black", justify=LEFT, font=("Century Gothic",14))\r
-    champ_label.pack(anchor=NW, padx=10, expand=NO)\r
-    \r
-    choix_wind21=StringVar()\r
-    laws_choice = ('Normal(mean, stdev)','Uniform(min, max)','Exponential(lambda, gamma)','Weibull(alpha, beta, gamma)', 'TruncatedNormal(mean, stdev, min, max)', 'Value list (values, probabilities)', 'Histogram (steps, probabilities)', 'PDF from file ()', 'Time Serie from file (stepsize, number of points)' )\r
-    Combobox(fr2, textvariable = choix_wind21, values = laws_choice, state = 'readonly', width=50).pack(side=LEFT, padx=10, expand=NO)\r
-    choix_wind21.set('Choose your wind model')\r
-    \r
-    fr21=Frame(fright, height=30, width=wd)\r
-    fr21.pack_propagate(0) # don't shrink\r
-    fr21.pack(expand=NO)\r
-    Label(fr21, text="Parameters :", fg="black").pack(side=LEFT, padx=10, pady=0)\r
-    \r
-    var_windn21 = StringVar()\r
-    Entry(fr21, textvariable=var_windn21, width=12).pack(side=LEFT, padx=10, pady=5)\r
-    var_windn22 = StringVar()\r
-    Entry(fr21, textvariable=var_windn22, width=12).pack(side=LEFT, padx=10, pady=5)\r
-    var_windn23 = StringVar()\r
-    Entry(fr21, textvariable=var_windn23, width=12).pack(side=LEFT, padx=10, pady=5)\r
-    var_windn24 = StringVar()\r
-    Entry(fr21, textvariable=var_windn24, width=12).pack(side=LEFT, padx=10, pady=5)\r
-    \r
-    fr211=Frame(fright, height=35, width=wd)\r
-    fr211.pack_propagate(0) # don't shrink\r
-    fr211.pack(expand=NO)\r
-    \r
-    # We create the browse button\r
-    wind2PathD=StringVar()\r
-    Entry(fr211, textvariable=wind2PathD, width=50).pack(side=LEFT, padx=15, expand=YES)\r
-    \r
-    Button(fr211, text="Wind 2 data", command=browse_wind2).pack(side=LEFT, fill=BOTH, expand=1, padx=5, pady=3)\r
-    \r
-    fline=Frame(fright, height=2, width=wd, bg="grey")\r
-    fline.pack(pady=2, expand=NO)\r
-    \r
-    #---- PV model ----    \r
-    fr3=Frame(fright, height=55, width=wd)\r
-    fr3.pack_propagate(0) # don't shrink\r
-    fr3.pack(expand=NO, pady=0)\r
-    \r
-    champ_label = Label(fr3, text="Photovoltaic distribution model :", fg="black", justify=LEFT, font=("Century Gothic",14))\r
-    champ_label.pack(anchor=NW, padx=10, expand=NO)\r
-    \r
-    choix_pv=StringVar()\r
-    laws_choice = ('Normal(mean, stdev)','Uniform(min, max)','Exponential(lambda, gamma)','Weibull(alpha, beta, gamma)', 'TruncatedNormal(mean, stdev, min, max)', 'Value list (values, probabilities)', 'Histogram (steps, probabilities)', 'PDF from file ()', 'Time Serie from file (stepsize, number of points)' )\r
-    Combobox(fr3, textvariable = choix_pv, values = laws_choice, state = 'readonly', width=50).pack(side=LEFT, padx=10, expand=NO)\r
-    choix_pv.set('Choose your PV model')\r
-    \r
-    fr31=Frame(fright, height=30, width=wd)\r
-    fr31.pack_propagate(0) # don't shrink\r
-    fr31.pack(expand=NO)\r
-    Label(fr31, text="Parameters :", fg="black").pack(side=LEFT, padx=10, pady=0)\r
-    \r
-    var_pvn1 = StringVar()\r
-    Entry(fr31, textvariable=var_pvn1, width=12).pack(side=LEFT, padx=10, pady=5)\r
-    var_pvn2 = StringVar()\r
-    Entry(fr31, textvariable=var_pvn2, width=12).pack(side=LEFT, padx=10, pady=5)\r
-    var_pvn3 = StringVar()\r
-    Entry(fr31, textvariable=var_pvn3, width=12).pack(side=LEFT, padx=10, pady=5)\r
-    var_pvn4 = StringVar()\r
-    Entry(fr31, textvariable=var_pvn4, width=12).pack(side=LEFT, padx=10, pady=5)\r
-    \r
-    fr311=Frame(fright, height=35, width=wd)\r
-    fr311.pack_propagate(0) # don't shrink\r
-    fr311.pack(expand=NO)\r
-    \r
-    # We create the browse button\r
-    pvPathD=StringVar()\r
-    Entry(fr311, textvariable=pvPathD, width=50).pack(side=LEFT, padx=15, expand=YES)\r
-    \r
-    Button(fr311, text="PV data", command=browse_pv).pack(side=LEFT, fill=BOTH, expand=1, padx=5, pady=3)\r
-    \r
-    fb=Frame(fenetre, height=50, width=2*wd, bd=2, relief=RIDGE)\r
-    fb.pack_propagate(0) # don't shrink\r
-    fb.pack()\r
-    \r
-    Frame(fb, height=2, width=2*wd, bg="grey").pack(expand=1)\r
-    \r
-    # We create the launch button\r
-    Button(fb, text="Run PSEN", command=launch_PSEN, height=1, width=20, underline=YES).pack(expand=NO, padx=5, pady=3)\r
-    \r
-# On démarre la boucle Tkinter qui s'interompt quand on ferme la fenêtre\r
-fenetre()\r
-root.mainloop()
\ No newline at end of file
diff --git a/PSEN_Eficas/PSEN/PSSEWrapper.py b/PSEN_Eficas/PSEN/PSSEWrapper.py
deleted file mode 100755 (executable)
index 3adb5ac..0000000
+++ /dev/null
@@ -1,742 +0,0 @@
-#===============================================================================
-#   PSEN SCRIPT FOR PROBABILISTIC STUDIES OF ELECTICAL NETWORKS
-#===============================================================================
-from openturns import *
-from pylab import *
-from math import*
-import os, random
-import numpy as np
-from time import gmtime, strftime
-from array import *
-from support_functions import *
-
-# Ouverture du fichier de configuration et recupecation des valeurs sous forme de listes
-f=open("C:\B31272\Documents\PSEN\PSENdev\lib\config.psen","r")
-lines=f.readlines()
-data_config=lines[0].split(";")
-data_load2 = getUserLaw(lines[1].split(";"))[0]
-data_wind1=getUserLaw(lines[2].split(";"))[0]
-data_wind2=getUserLaw(lines[3].split(";"))[0]
-data_corr=lines[4].split(";")
-data_PV=getUserLaw(lines[5].split(";"))[0]
-data_OPF=lines[6].split(";")
-Irate_num=int(lines[7].split(";")[0])
-f.close()
-
-# Definition des variables pour les series temporelles : getUserLaw(lines[1].split(";"))[1][0] doit valoir 1
-# pour que le programme etudie les series temporelles
-time_serie_file=[]
-time_serie_mat=[]
-for i in ([1,2,3,5]) :
-    TSoptions = getUserLaw(lines[i].split(";"))[1]
-    if TSoptions[0] == 1 :
-        time_serie=1
-        f=open(TSoptions[1],"r")
-        linesTS=f.readlines()
-        f.close()
-        tsm=[]
-        for j in range (len(linesTS)) :
-            try :
-                float(linesTS[j])
-            except ValueError :
-                linesTS[j] = commaToPoint(linesTS[j])
-            else :
-                pass
-            tsm.append(float(linesTS[j]))
-        time_serie_mat.append(tsm)
-        time_serie_file.append(TSoptions[1])
-        """time_serie_SS = TSoptions[2]
-        time_serie_TH = TSoptions[3]"""
-    else :
-        time_serie_file.append(-1)
-time_serie_mat=zip(*time_serie_mat)
-
-# Ouverture du fichier de preferences et recuperation des donnees
-f=open("C:\B31272\Documents\PSEN\PSENdev\lib\pref.psen","r")
-lines=f.readlines()
-f.close()
-paths=lines[0].split(";")
-WTconfig=[]
-for i in range (3,8):
-    try :
-        paths[i]
-    except :
-        print "Error in defining wind turbines characteristics"
-        WTconfig=[3.,5.,25.,1.225,0.05]
-    else :
-        WTconfig.append(float(paths[i]))
-
-# Ouverture du fichier d'analyse de N-1 et recuperation des donnees
-f=open("C:\B31272\Documents\PSEN\PSENdev\lib\contin.psen","r")
-lines=f.readlines()
-path_config_contin=lines[0].split(";")
-f.close()
-
-# Definition des lois des cinq variables aleatoires
-N_1=int(data_config[1]) # N_1=1 to do N-1 studies 
-wind_var1=int(data_config[3]) # To take wind1 variability into account
-wind_var2=int(data_config[4]) # To take wind2 variability into account
-PV_var=int(data_config[2]) # To take PV variability into account
-load_var=int(data_config[5]) # To take load variability into account
-
-# Creation variable nom dossier N-1
-if N_1 == 1 :
-    folderN_1 = '1_'
-else :
-    folderN_1 = '_'
-
-# Recuperation des chemins du dossier d'installation de PSSE, .SAV de l'etude et nom du rapport
-folder=paths[1]
-doc_base= paths[0]
-exec_file="report.txt"
-
-# Definition des groupes de production PV, eoliennes, des intercos et des lignes en N-1
-ENR=config_ENR(paths[2])
-windTurbines1 = ENR[1] # Buses with wind turbines 1
-windTurbines2 = ENR[2] # Buses with wind turbines 2
-solarPV = ENR[0] # Buses with solar PV plant
-intercos=ENR[3] # Buses with interconnexions
-# Lines with contingency
-try :
-    config_contingency(path_config_contin)
-except IOError :  # Si le fichier n'est pas dans un bon format on traite l'exception
-    nb_lines=1
-    print 'Error with contingency input file'
-else :
-    continAll = config_contingency(path_config_contin)
-    continLines = continAll[0]
-    continGroups = continAll[1]
-    continVal = continAll[2]
-    continProb = continAll[3]
-    
-    
-# Probabilistic study information
-#==============================================================================
-# Create the marginal distributions
-distributionX0 = data_load2 
-distributionX1 = getUserDefined(continVal,continProb)
-distributionX2 = data_wind1 
-distributionX3 = data_wind2
-distributionX4 = data_PV 
-
-# Create the correlations between the distributions
-corr10=float(data_corr[0])
-corr20=float(data_corr[1])
-corr30=float(data_corr[2])
-corr40=float(data_corr[3])
-corr21=float(data_corr[4])
-corr31=float(data_corr[5])
-corr41=float(data_corr[6])
-corr32=float(data_corr[7])
-corr42=float(data_corr[8])
-corr43=float(data_corr[9])
-
-# Probabilistic Study: central dispersion => Monte Carlo or LHS iterations
-montecarlosize = int(data_config[0])
-
-#Extension name for the folders and files
-day=time.strftime("%Y%m%d", gmtime())
-hour=time.strftime("%Hh%Mm%S", gmtime())
-
-#===============================================================================
-#    CHARGEMENT DE PSSE     -   LOADING OF PSSE
-#===============================================================================
-pssFolder=str(paths[3])
-import sys
-sys.path.append(pssFolder)#r"C:\Program Files\PTI\PSSE33\PSSBIN")
-os.environ['PATH'] = pssFolder+":"+os.environ['PATH'] #r"C:\Program Files\PTI\PSSE33\PSSBIN;"+ os.environ['PATH']
-os.chdir(folder)
-import psspy
-import pssarrays
-import redirect
-_i=psspy.getdefaultint()
-_f=psspy.getdefaultreal()
-_s=psspy.getdefaultchar()
-redirect.psse2py()
-#import pssdb
-psspy.psseinit(80000)
-
-# Silent execution of PSSe
-islct=6 # 6=no output; 1=standard
-psspy.progress_output(islct)
-
-# Enregistrement de l'heure de debut de simulation
-f=open(exec_file, 'a')
-start_time=time.clock()
-f.write("Starting time: %f;     Monte Carlo Size : %f;      " % (start_time, montecarlosize))
-f.close()
-
-#===============================================================================
-#    Fonction de wrappage     -   Wrapper function
-#===============================================================================
-def PSSEFunction(x):
-    # Definition des variables globales
-    global TStest
-    global Xt
-    global sizeY0
-    global sizeY1
-    global sizeY2
-    global sizeY3
-    global sizeY4
-    global sizeY
-    global wind_var
-    global PV_var
-    global N_1
-    global load_var
-    global logCSVfilename
-    global logTXTfilename
-    global ite
-    global folder
-    global day
-    global folderN_1
-    global fich
-    global hour
-    global montecarlosize
-    global WTconfig
-    global x2
-    
-    ite+=1 # incrementation du compteur
-    
-    # Load data from PSSe
-    psspy.case(doc_base) #Launching of PSSE and opening the working file
-    all_inputs_base=read_sav(doc_base) 
-    buses_base=all_inputs_base[0]
-    lines_base=all_inputs_base[1]
-    transf_base=all_inputs_base[2]
-    plants_base=all_inputs_base[3]
-    loads_base=all_inputs_base[4]
-    shunt_base=all_inputs_base[5]
-    doci=folder+"\N"+folderN_1+day+"\CasNum"+str(ite)+".sav"  
-    psspy.save(doci)
-    
-    # Total initial shunt on buses
-    init_shunt = 0
-    for i in range(len(shunt_base)) :
-        init_shunt +=  float(shunt_base[i][2])
-    
-    # Configuration de l'OPF a partir des parametres de l'utilisateur
-    nbeOPF=5 # Nombre de lancement max de l'OPF pour atteindre la convergence de l'algorithme
-    psspy.report_output(6,"",[0,0])
-    psspy.produce_opf_log_file(1,r"""DETAIL""")
-    psspy.minimize_fuel_cost(int(data_OPF[0]))
-    psspy.minimize_adj_bus_shunts(int(data_OPF[1]))
-    psspy.minimize_load_adjustments(int(data_OPF[2]))
-    psspy.initial_opf_barrier_coeff(100.0)
-    psspy.opf_fix_all_generators(1)
-    psspy.set_opf_report_subsystem(3,1)
-    
-    
-    print "                     PSEN simulator, case number: "+str(ite)
-    
-    # 1. Affiche X
-    nx = x.getSize()
-    if TStest==1 :
-        for i in range (len (Xt)) :
-            if Xt[i] == -1 :
-                if i == 0 and load_var==1 :
-                    pass
-                elif i == 1 and  N_1==1 :
-                    x[i]=int(floor(x[i])) # Si on etudie le N-1 on arrondie la valeur tiree en floor : on obtient le numero de la ligne
-                elif i == 2 and wind_var1==1 :
-                   x[i]=eol(x[i],WTconfig)
-                elif i == 3 and wind_var2==1 :
-                   x[i]=eol(x[i],WTconfig)
-                elif i == 4 and PV_var==1 :  # Si on etudie la variabilite de l'eolien on lui donne la valeur de production de l'eolienne a partir du vent
-                   pass
-                else :
-                   x[i]=-1
-            else :
-                x[i]=float(Xt[i]) # Dans le cas d'une etude temporelle on lui donne la valeur de Xt
-    else :
-        if load_var==1 :
-            pass # Sinon on donne la valeur tiree si on etudie la variabilite de x[0]
-        else :
-            x[0]=1 # Sinon on laisse la valeur de base
-            
-        if N_1==1 :
-            x[1]=int(floor(x[1])) # Si on etudie le N-1 on arrondie la valeur tiree en floor : on obtient le numero de la ligne
-        else :
-            x[1]=-1 # Sinon on donne -1 comme marqueur
-
-        if wind_var1==1:
-            x[2]=eol(x[2],WTconfig) # Si on etudie la variabilite de l'eolien on lui donne la valeur de production de l'eolienne a partir du vent
-        else :
-            x[2]=0 # Sinon on considere qu'il n'y a pas d'eolien  
-            
-        if wind_var2==1:
-            x[3]=eol(x[3],WTconfig) # Si on etudie la variabilite de l'eolien on lui donne la valeur de production de l'eolienne a partir du vent
-        else :
-            x[3]=0 # Sinon on considere qu'il n'y a pas d'eolien 
-            
-        if PV_var==1 : # Si on etudie la variabilite du PV on laisse sa valeur a la va
-            pass
-        else :
-            x[4]=0 # Sinon on considere qu'il n'y a pas de PV
-    for i in range(0,nx):
-        print "x[%d]=%f" % (i,x[i])
-    
-    # 2. Fait le calcul avec PSSE
-    #Editing some values in the PSSE .sav input file
-    # Change the values of the different loads and treat large changes of load to help convergence
-    if x[0] > 0.75 : 
-        for i in range(0,np.array(loads_base).shape[0]) : # On change directement toutes les charges
-            psspy.load_chng_4(int(loads_base[i][0]),r"""1""",[1,_i,_i,_i,_i,_i],[x[0]*loads_base[i][1],x[0]*loads_base[i][2],_f,_f,_f,_f])
-    elif x[0] > 0.4 : 
-        for i in range(0,np.array(loads_base).shape[0]) :  # On effectue un pretraitement en passant par une charge intermediaire
-            psspy.load_chng_4(int(loads_base[i][0]),r"""1""",[1,_i,_i,_i,_i,_i],[(1+x[0])/2*loads_base[i][1],(1+x[0])/2*loads_base[i][2],_f,_f,_f,_f])
-        psspy.fnsl([0,0,0,1,1,0,99,0]) # Load flow Newton Raphson
-        psspy.bsys(3,0,[0.0,0.0],0,[],1,[1],0,[],0,[])
-        psspy.set_opf_report_subsystem(3,0)
-        psspy.nopf(0,1) # Lancement OPF
-        for i in range(0,np.array(loads_base).shape[0]) : # On change toutes les charges
-            psspy.load_chng_4(int(loads_base[i][0]),r"""1""",[1,_i,_i,_i,_i,_i],[x[0]*loads_base[i][1],x[0]*loads_base[i][2],_f,_f,_f,_f])
-    else : 
-        for i in range(0,np.array(loads_base).shape[0]) : # On effectue un pretraitement en passant par une charge intermediaire
-            psspy.load_chng_4(int(loads_base[i][0]),r"""1""",[1,_i,_i,_i,_i,_i],[0.7*loads_base[i][1],0.7*loads_base[i][2],_f,_f,_f,_f])
-        psspy.fnsl([0,0,0,1,1,0,99,0])
-        psspy.bsys(3,0,[0.0,0.0],0,[],1,[1],0,[],0,[])
-        psspy.set_opf_report_subsystem(3,0)
-        psspy.nopf(0,1)
-        for i in range(0,np.array(loads_base).shape[0]) : # On effectue un pretraitement en passant par une charge intermediaire
-            psspy.load_chng_4(int(loads_base[i][0]),r"""1""",[1,_i,_i,_i,_i,_i],[0.4*loads_base[i][1],0.4*loads_base[i][2],_f,_f,_f,_f])
-        psspy.fnsl([0,0,0,1,1,0,99,0])
-        psspy.bsys(3,0,[0.0,0.0],0,[],1,[1],0,[],0,[])
-        psspy.set_opf_report_subsystem(3,0)
-        psspy.nopf(0,1)
-        for i in range(0,np.array(loads_base).shape[0]) : # On change toutes les charges
-            psspy.load_chng_4(int(loads_base[i][0]),r"""1""",[1,_i,_i,_i,_i,_i],[x[0]*loads_base[i][1],x[0]*loads_base[i][2],_f,_f,_f,_f])
-
-    x2=[]
-    for sz in range(0,nx):
-        x2.append(float(x[sz]))
-
-    if x[1]<0 :
-        pass
-    elif x[1] < len(continLines) : # L'element tire est une ligne
-        line_num=int(x[1])
-        from_bus=continLines[int(line_num)][0]
-        to_bus=continLines[int(line_num)][1]
-        br_id=continLines[int(line_num)][2]#.replace('@','')
-        psspy.branch_chng(from_bus,to_bus,str(br_id),[0,_i,_i,_i,_i,_i],[ _f, _f, _f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f])  
-        x2[1]='Line '+str(from_bus)+'-'+str(to_bus)+'#'+str(br_id)
-    elif x[1] < (len(continLines)+len(continGroups)) :
-        group_num = int(x[1])-len(continLines)
-        bus_num = continGroups[int(group_num)][0]
-        bus_id = continGroups[int(group_num)][1]
-        psspy.machine_chng_2(int(bus_num),str(bus_id),[0,_i,_i,_i,_i,_i],[_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f]) # Change Interconnection disponibility
-        psspy.opf_gendsp_indv(int(bus_num),str(bus_id),_i,0.0)
-        x2[1]='Group '+str(bus_num)+'#'+str(bus_id)
-    #elif x[1] < len(intercos) :
-        #mat_num=int(x[1])
-        #psspy.machine_chng_2(int(intercos[mat_num][0]),str(intercos[mat_num][2]),[0,_i,_i,_i,_i,_i],[_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f]) # Change Interconnection disponibility
-        #psspy.opf_gendsp_indv(int(intercos[mat_num][0]),str(intercos[mat_num][2]),_i,0.0)
-        #x[1]=-mat_num
-    else : 
-        pass
-        # Change the bus that is not in service
-        #intercos = []
-        #line_num=int(x[1]-len(intercos))
-        #from_bus=lines_con[int(line_num)-1][0]
-        #to_bus=lines_con[int(line_num)-1][1]
-        #br_id=lines_con[int(line_num)-1][2]#.replace('@','')
-        #psspy.branch_chng(from_bus,to_bus,str(br_id),[0,_i,_i,_i,_i,_i],[ _f, _f, _f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f])
-        #x[1]=line_num
-    # Change the production of the wind turbines
-    if np.matrix(windTurbines1).shape[1]>0 :
-        for i in range(0,np.matrix(windTurbines1).shape[0]) :
-            psspy.machine_chng_2(windTurbines1[i][0],str(windTurbines1[i][2]),[1,_i,_i,_i,_i,_i],[x[2]*plants_base[windTurbines1[i][1]][6],_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f])
-            
-    if np.matrix(windTurbines2).shape[1]>0 :
-        for i in range(0,np.matrix(windTurbines2).shape[0]) :
-            psspy.machine_chng_2(windTurbines2[i][0],str(windTurbines2[i][2]),[1,_i,_i,_i,_i,_i],[x[3]*plants_base[windTurbines2[i][1]][6],_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f])
-            
-    # Change the production of the PV stations
-    if np.matrix(solarPV).shape[1]>0 :
-        for i in range(0,np.matrix(solarPV).shape[0]) :
-            psspy.machine_chng_2(solarPV[i][0],str(solarPV[i][2]),[1,_i,_i,_i,_i,_i],[x[4]*plants_base[solarPV[i][1]][6],_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f])
-    
-    psspy.save(doci) #Saving .sav modifications
-    ok=1
-    while nbeOPF>=0 :
-        #for i in (zip(*buses_base)[0]) : psspy.bus_chng_3(i,[_i,_i,_i,_i],[_f, 1.05,_f,_f,_f,_f,_f],_s)
-        psspy.fnsl([0,0,0,1,1,1,99,0])
-        psspy.bsys(3,0,[0.0,0.0],0,[],1,[1],0,[],0,[])
-        psspy.set_opf_report_subsystem(3,0)
-        psspy.nopf(0,1)
-        if psspy.solved()==7:
-            print 'CONVERGENCE          CAS '+str(ite)
-            ok=1
-            break
-        else :
-            print '==================================================================='
-            print 'NO CONVERGENCE'
-            print '==================================================================='
-            ok=0
-            #for i in range (134) :    
-                #psspy.opf_bus_indv(i,[_i,0],[_f, 0.7,_f,_f,_f])
-        nbeOPF-=1
-    psspy.save(doci)
-    all_inputs=read_sav(doci)
-    buses=all_inputs[0];lines=all_inputs[1];transf=all_inputs[2];plants=all_inputs[3];loads=all_inputs[4]; shunt=all_inputs_base[5]
-    
-    # 3. Affiche Y  
-    sizeY4=np.matrix(shunt).shape[0]
-    y=np.zeros(2*sizeY0+sizeY1+3*sizeY2+sizeY3+sizeY4)
-    z=np.zeros(8)
-    rate_mat_index=Irate_num+2
-    if ok==1 : 
-        # Creates the quantities of interest
-        for i in range (sizeY2) :
-            if lines [i][rate_mat_index]>100 :
-                z[0]+=1 # Number of lines above 100% of their limits
-        for i in range (sizeY1):
-            if buses[i][2]>1.06 :
-                z[1]+=1
-            if buses[i][2]<0.9399 :
-                z[1]+=1 # Number of buses outside of their voltage limits
-        for i in range (sizeY0) :
-            z[2]+=float(plants[i][3]) # Total active production
-        for i in range (sizeY3) :
-            z[3]+=float(loads[i][1]) # Total active consumption
-        z[4]=(z[2]-z[3])/z[2]*100 # Active power losses
-        for i in range (sizeY2) :
-            if lines [i][3]>z[5] :
-                z[5]=lines [i][rate_mat_index] # Max flow in lines
-        for i in range (sizeY2) :
-            if lines [i][rate_mat_index]>90 :
-                z[6]+=1
-        z[6]=z[6]-z[0] # Number of lines between 90% and 100% of their limits
-        
-        final_shunt=0
-        for i in range (sizeY4) :
-            final_shunt+=shunt[i][2]
-        z[7]=final_shunt-init_shunt
-           
-       # Creates the output vectors
-        for Pmach in range (sizeY0): 
-            y[Pmach]=float(plants[Pmach][3])
-        for Qmach in range (sizeY0): 
-            y[Qmach+sizeY0]=float(plants[Qmach][4])
-        for Vbus in range (sizeY1): 
-            y[Vbus+2*sizeY0]=float(buses[Vbus][2])
-        for Iline in range (sizeY2): 
-            y[Iline+2*sizeY0+sizeY1]=float(lines[Iline][rate_mat_index])
-        for Pline in range (sizeY2): 
-            y[Pline+2*sizeY0+sizeY1+sizeY2]=float(lines[Pline][6])
-        for Qline in range (sizeY2): 
-            y[Qline+2*sizeY0+sizeY1+2*sizeY2]=float(lines[Qline][7])
-        for Pload in range (sizeY3) :
-            y[Pload+2*sizeY0+sizeY1+3*sizeY2]=float(loads[Pload][1])
-        for Qshunt in range (sizeY4) :
-            y[Qshunt+2*sizeY0+sizeY1+3*sizeY2+sizeY3]=float(shunt[Qshunt][2])
-    
-        #Ecris les sorties
-        print "sorties:"
-        nz = len(z)
-        for i in range(0,nz):
-            print "z[%d]=%f" % (i,z[i])
-        MyLogger(x2,y,z,logCSVfilename,logTXTfilename,ite)
-        #MyMultiLogger (x2, y, sizeY, z, ite, folder, day, fich, hour)
-        return NumericalPoint(z)
-    else : 
-        MyLogger(x2,y,z,logCSVfilename,logTXTfilename,ite)
-        #MyMultiLogger (x2, y, sizeY, z, ite, folder, day, fich, hour)
-        return NumericalPoint(z)
-
-#===============================================================================
-#   DEFINITION DU WRAPPER -  WRAPPER's DEFINITION
-#===============================================================================
-# Initialize size output
-psspy.case(doc_base) 
-all_inputs_base=read_sav(doc_base) 
-buses_base=all_inputs_base[0]
-lines_base=all_inputs_base[1]
-trans_base=all_inputs_base[2]
-plants_base=all_inputs_base[3]
-loads_base=all_inputs_base[4]
-shunt_base=all_inputs_base[5]
-sizeY0=np.matrix(plants_base).shape[0]
-sizeY1=np.matrix(buses_base).shape[0]
-sizeY2=np.matrix(lines_base).shape[0]
-sizeY3=np.matrix(loads_base).shape[0]
-sizeY4=np.matrix(shunt_base).shape[0]
-sizeY=[sizeY0,sizeY1,sizeY2,sizeY3,sizeY4]
-sizeOutput=sizeY2
-
-
-class PSSEWrapperClass(OpenTURNSPythonFunction) : 
-  def __init__(self) : 
-     OpenTURNSPythonFunction.__init__(self,5,8)
-  def _exec(self,x) : 
-      return PSSEFunction(x)
-
-# Initialize the folder
-newpath = folder+"\N"+folderN_1+day
-if not os.path.exists(newpath): os.makedirs(newpath)
-
-# Test the Num. Math. Function
-pssefun = NumericalMathFunction(PSSEWrapperClass())
-
-# Definition of the function to use
-inputDim = pssefun.getInputDimension()
-outputDim = pssefun.getOutputDimension()
-
-# Initialization of the distribution collection:
-#aCollection = DistributionCollection()
-
-# Create a collection of the marginal distributions
-collectionMarginals = DistributionCollection(inputDim)
-collectionMarginals[0] = Distribution(distributionX0) # Load distribution
-collectionMarginals[1] = Distribution(distributionX1) # N-1 distribution
-collectionMarginals[2] = Distribution(distributionX2) # Wind 1 distribution
-collectionMarginals[3] = Distribution(distributionX3) # Wind 2 distribution
-collectionMarginals[4] = Distribution(distributionX4) # PV distribution
-
-#Create a correlation matrix as copulas
-corr=CorrelationMatrix(inputDim)
-
-corr[1,0]=corr10
-corr[2,0]=corr20
-corr[3,0]=corr30
-corr[4,0]=corr40
-corr[0,1]=corr10
-corr[2,1]=corr21
-corr[3,1]=corr31
-corr[4,1]=corr41
-corr[0,2]=corr20
-corr[1,2]=corr21
-corr[3,2]=corr32
-corr[4,2]=corr42
-corr[0,3]=corr30
-corr[1,3]=corr31
-corr[2,3]=corr32
-corr[4,3]=corr43
-corr[0,4]=corr40
-corr[1,4]=corr41
-corr[2,4]=corr42
-corr[3,4]=corr43
-
-copula=Copula(NormalCopula(corr))
-
-
-# Create the input probability distribution, args are the distributions, the correlation laws
-inputDistribution = ComposedDistribution(collectionMarginals, copula)
-
-# Create the input random vector
-"""inputRandomVector = RandomVector(inputDistribution)
-
-# Create the output variable of interest
-outputVariableOfInterest =  RandomVector(pssefun, inputRandomVector)
-outputVariableOfInterest.setDescription(pssefun.getOutputDescription())"""
-
-#===============================================================================
-#   ETUDE DE DISPERSION CENTRALE    -   CENTRAL DEVIATION STUDY
-#===============================================================================
-# Initialize the logger : write the headers 
-logCSVfilename=folder+"\N"+folderN_1+day+"\simulationDClog"+hour+".csv" # Name of the file : global variable
-f = open(logCSVfilename, "a")
-f.write("Iteration;;X:Load(pu);X:lineOff#;XProdEolienne1%Pnom;XProdEolienne2%Pnom;X:ProdPV%Pnom;;Y:NbeTransit;Y:NbeTension;Y:PProdTot;Y:PConsoTot;Y:%Losses;Y:Max%A;Y:NbeTransit_0.9-1;Y:AddedMVAR;;")
-# Names of the Output variables withConso the bus number
-for name in range (sizeY0):
-    f.write("Y:PMachine"+str(plants_base[name][0])+";")
-for name in range (sizeY0):
-    f.write("Y:QMachine"+str(plants_base[name][0])+";")
-for name in range (sizeY1):
-    f.write("Y:VBus"+str(buses_base[name][0])+";")
-for name in range (sizeY2):
-    f.write("Y"+str(name+1)+":%Rate "+str(lines_base[name][0])+"-"+str(lines_base[name][1])+";")
-for name in range (sizeY2):
-    f.write("Y"+str(name+1)+":P "+str(lines_base[name][0])+"-"+str(lines_base[name][1])+";")
-for name in range (sizeY2):
-    f.write("Y"+str(name+1)+":Q "+str(lines_base[name][0])+"-"+str(lines_base[name][1])+";")
-for name in range (sizeY3):
-    f.write("Y:Load "+str(loads_base[name][0])+";")
-for name in range (sizeY4):
-    f.write("Y:Shunt bus "+str(shunt_base[name][0])+";")
-f.write("\n")
-# Names of the Output variables with the bus names
-f.write("#;;pu;line number;%Pnom;%Pnom;%Pnom;;Nbe;Nbe;MW;MW;%;%;Nbe;MVAR;;")
-for name in range (sizeY0):
-    f.write(str(plants_base[name][8])+";")
-for name in range (sizeY0):
-    f.write(str(plants_base[name][8])+";")
-for name in range (sizeY1):
-    f.write(str(buses_base[name][3])+";")
-for name in range (sizeY2):
-    f.write(str(lines_base[name][8])+"-"+str(lines_base[name][9])+";")
-for name in range (sizeY2):
-    f.write(str(lines_base[name][8])+"-"+str(lines_base[name][9])+";")
-for name in range (sizeY2):
-    f.write(str(lines_base[name][8])+"-"+str(lines_base[name][9])+";")
-for name in range (sizeY3):
-    f.write(str(loads_base[name][4])+";")
-for name in range (sizeY4):
-    f.write(str(shunt_base[name][3])+";")
-f.write("\n")
-f.close()
-
-logTXTfilename=folder+"\N"+folderN_1+day+"\simulationDClog"+hour+".txt" # Name of the file : global variable
-f = open(logTXTfilename, "a")
-f.write("Iteration\tX:Load(pu)\tX:lineOff#\tXProdEolienne1%Pnom\ttXProdEolienne2%Pnom\tX:ProdPV%Pnom\tY:NbeTransit\tY:NbeTension\tY:PProdTot\tY:PConsoTot\tY:%Losses\tY:Max%A\tY:NbeTransit_0.9-1\tY:AddedShunt\t")
-# Names of the Output variables withConso the bus number
-for name in range (sizeY0):
-    f.write("Y:PMachine"+str(plants_base[name][0])+" - "+str(plants_base[name][8])+"\t")
-for name in range (sizeY0):
-    f.write("Y:QMachine"+str(plants_base[name][0])+" - "+str(plants_base[name][8])+"\t")
-for name in range (sizeY1):
-    f.write("Y:VBus"+str(buses_base[name][0])+" - "+str(buses_base[name][3])+"\t")
-for name in range (sizeY2):
-    f.write("Y"+str(name+1)+":%RateA "+str(lines_base[name][0])+"-"+str(lines_base[name][1])+" - "+str(lines_base[name][8])+"-"+str(lines_base[name][9])+"\t")
-for name in range (sizeY2):
-    f.write("Y"+str(name+1)+":P "+str(lines_base[name][0])+"-"+str(lines_base[name][1])+" - "+str(lines_base[name][8])+"-"+str(lines_base[name][9])+"\t")
-for name in range (sizeY2):
-    f.write("Y"+str(name+1)+":Q "+str(lines_base[name][0])+"-"+str(lines_base[name][1])+" - "+str(lines_base[name][8])+"-"+str(lines_base[name][9])+"\t")
-for name in range (sizeY3):
-    f.write("Y:Load "+str(loads_base[name][0])+" - "+str(loads_base[name][4])+"\t")
-for name in range (sizeY4):
-    f.write("Y:Shunt "+str(shunt_base[name][0])+" - "+str(shunt_base[name][3])+"\t")
-f.write("\n")
-f.close()
-
-"""
-# Initialize the multilogger : write the headers 
-for fich in range (np.size(sizeY,0)):
-    multilogfilename=folder+"\N"+day+"\Y"+str(fich)+"simulationDClog"+hour+".csv"
-    f=open(multilogfilename, 'a')
-    f.write("Iteration;;X:Load(pu);X:lineOff#;XProdEolienne1%Pnom;XProdEolienne2%Pnom;X:ProdPV%Pnom;;Y:NbeTransit;Y:NbeTension;Y:PProdTot;Y:PConsoTot;Y:Max%A;Y:NbeTransit_0.9-1;;")
-    if fich == 0 :
-        for name in range (sizeY[0]):
-            f.write("Y:PMachine"+str(plants_base[name][0])+";")
-        f.write("\n")
-        f.write("#;;pu;line number;%Pnom;%Pnom;%Pnom;;Nbe;Nbe;MW;MW;%;%;Nbe;;")
-        for name in range (sizeY[0]):
-            f.write(str(plants_base[name][8])+";")
-        f.write("\n")
-        f.close()
-    elif fich == 1 :
-        for name in range (sizeY[1]):
-            f.write("Y:VBus"+str(buses_base[name][0])+";")
-        f.write("\n")
-        f.write("#;;pu;line number;%Pnom;%Pnom;%Pnom;;Nbe;Nbe;MW;MW;%;%;Nbe;;")
-        for name in range (sizeY[1]):
-            f.write(str(buses_base[name][3])+";")
-        f.write("\n")
-        f.close()
-    elif fich == 2 :
-        for name in range (sizeY[2]):
-            f.write("Y"+str(name+1)+":%RateA "+str(lines_base[name][0])+"-"+str(lines_base[name][1])+";")
-        f.write("\n")
-        f.write("#;;pu;line number;%Pnom;%Pnom;%Pnom;;Nbe;Nbe;MW;MW;%;%;Nbe;;")
-        for name in range (sizeY[2]):
-            f.write(str(lines_base[name][8])+"-"+str(lines_base[name][9])+";")
-        f.write("\n")
-        f.close()
-    elif fich == 3 :
-        for name in range (sizeY[3]):
-            f.write("Y:Ploads "+str(loads_base[name][0])+";")
-        f.write("\n")
-        f.write("#;;pu;line number;%Pnom;%Pnom;%Pnom;;Nbe;Nbe;MW;MW;%;%;Nbe;;")
-        for name in range (sizeY[3]):
-            f.write(str(loads_base[name][4])+";")
-        f.write("\n")
-        f.close()
-
-"""
-# Start the simulations
-ite=0
-print "\n\n\n                     Starting PSEN "+str(montecarlosize)+" simulations"
-
-"""inputSample=inputRandomVector.getSample(montecarlosize)
-inputSample.setDescription( ("X0","X1","X2","X3") )
-inputSample.exportToCSVFile("InputSamples.csv")"""
-
-if sum(corr) == 5 :
-    myLHSE = LHSExperiment(inputDistribution,montecarlosize)
-    inputSample = myLHSE.generate()
-else :
-    myMCE = MonteCarloExperiment(inputDistribution,montecarlosize)
-    inputSample = myMCE.generate()
-
-try :
-    time_serie
-except NameError :
-    print 'Probabilistic'
-    TStest=0
-    outputSampleAll = pssefun(inputSample)#outputVariableOfInterest.getSample(montecarlosize)
-else : 
-    TStest=1
-    for i in range (len(time_serie_mat)) :
-        print 'Time serie'
-        RandomGenerator.SetSeed(i)
-        Xt=[]
-        n=0
-        for j in range (len(time_serie_file)) :
-            if time_serie_file[j] == -1 :
-                Xt.append(-1)
-                n+=1
-            else :
-                Xt.append(time_serie_mat[i][j-n])
-        Xt.insert(1,-1)
-        try : 
-            outputSampleAll
-        except :
-            outputSampleAll = pssefun(inputSample)
-        else : 
-            outputSampleAll.add(pssefun(inputSample))
-
-outputDim=outputSampleAll.getDimension()
-outputSize=outputSampleAll.getSize()
-
-outputSample=NumericalSample(0,outputDim)
-outputSampleMissed=NumericalSample(0,outputDim)
-
-for i in range (outputSize):
-    if outputSampleAll[i,5]==0 :
-        outputSampleMissed.add(outputSampleAll[i])
-    else :
-        outputSample.add(outputSampleAll[i])
-
-outputDescription=[]
-for i in range (outputDim):
-    outputDescription.append("Y"+str(i))
-outputSample.setDescription( outputDescription )
-
-# Get the empirical mean and standard deviations
-empMeanX = inputSample.computeMean()
-empSdX = inputSample.computeStandardDeviationPerComponent()
-empiricalMean = outputSample.computeMean()
-empiricalSd = outputSample.computeStandardDeviationPerComponent()
-
-f=open(logCSVfilename, 'a')
-f.write("\n")
-f.write('Mean;;')
-for i in range(0,inputDim):
-    f.write("%f;" % (empMeanX[i]))
-f.write(";")
-for i in range(0,outputDim):
-    f.write("%f;" % (empiricalMean[i]))
-f.write(";")
-f.write("\nStandard deviation;;")
-for i in range(0,inputDim):
-    f.write("%f;" % (empSdX[i]))
-f.write(";")
-for i in range(0,outputDim):
-    f.write("%f;" % (empiricalSd[i]))
-f.write(";")
-f.close()
-    
-f=open(exec_file,'a')
-#stop_time=100*times()[0]
-stop_time=time.clock()
-f.write("Stop time: %f;     Duration: %f;      Time per execution: %f; " % (stop_time, stop_time-start_time, (stop_time-start_time)/montecarlosize))
-f.write("\n\n")
-f.close()
-
-print '\n\nSimulated '+str(montecarlosize)+' cases in '+ str(stop_time-start_time)+' seconds. Average '+str((stop_time-start_time)/montecarlosize)+'s per case.'
-
-nMissed=int(outputSampleMissed.getSize())
-
-print '\n\n             Non-convergence rate is '+str(round(nMissed*100/montecarlosize,3))+' % ('+str(outputSampleMissed.getSize())+' cases on '+str(montecarlosize)+')'
-
-#graphical_out(inputSample, outputSampleAll, inputDim, outputDim, montecarlosize)
diff --git a/PSEN_Eficas/PSEN/__init__.py b/PSEN_Eficas/PSEN/__init__.py
deleted file mode 100755 (executable)
index e69de29..0000000
diff --git a/PSEN_Eficas/PSEN/exploit2.ows b/PSEN_Eficas/PSEN/exploit2.ows
deleted file mode 100755 (executable)
index 5600589..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" ?>\r
-<schema>\r
-       <widgets>\r
-               <widget caption="File" widgetName="OWFile" xPos="90" yPos="90"/>\r
-               <widget caption="Distributions" widgetName="OWDistributions" xPos="440" yPos="-90"/>\r
-               <widget caption="Scatterplot" widgetName="OWScatterPlot" xPos="580" yPos="80"/>\r
-               <widget caption="Feature Constructor" widgetName="OWFeatureConstructor" xPos="350" yPos="350"/>\r
-               <widget caption="Distributions (2)" widgetName="OWDistributions" xPos="620" yPos="190"/>\r
-               <widget caption="Scatterplot (2)" widgetName="OWScatterPlot" xPos="580" yPos="380"/>\r
-               <widget caption="Attribute Statistics" widgetName="OWAttributeStatistics" xPos="680" yPos="310"/>\r
-               <widget caption="Attribute Statistics (2)" widgetName="OWAttributeStatistics" xPos="430" yPos="170"/>\r
-       </widgets>\r
-       <channels>\r
-               <channel enabled="0" inWidgetCaption="Distributions (2)" outWidgetCaption="Feature Constructor" signals="[('Data', 'Data')]"/>\r
-               <channel enabled="0" inWidgetCaption="Scatterplot (2)" outWidgetCaption="Feature Constructor" signals="[('Data', 'Data')]"/>\r
-               <channel enabled="0" inWidgetCaption="Attribute Statistics" outWidgetCaption="Feature Constructor" signals="[('Data', 'Data')]"/>\r
-               <channel enabled="0" inWidgetCaption="Feature Constructor" outWidgetCaption="File" signals="[('Data', 'Data')]"/>\r
-               <channel enabled="0" inWidgetCaption="Attribute Statistics (2)" outWidgetCaption="File" signals="[('Data', 'Data')]"/>\r
-               <channel enabled="0" inWidgetCaption="Scatterplot" outWidgetCaption="File" signals="[('Data', 'Data Subset')]"/>\r
-               <channel enabled="0" inWidgetCaption="Distributions" outWidgetCaption="File" signals="[('Data', 'Data')]"/>\r
-       </channels>\r
-       <settings settingsDictionary="{'Feature Constructor': '(dp1\nS\'widgetShown\'\np2\nI0\nsS\'savedWidgetGeometry\'\np3\nS\'\\x01\\xd9\\xd0\\xcb\\x00\\x01\\x00\\x00\\xff\\xff\\xfb\\xd5\\x00\\x00\\x00M\\xff\\xff\\xfe\\x13\\x00\\x00\\x01\\xdd\\xff\\xff\\xfb\\xdd\\x00\\x00\\x00i\\xff\\xff\\xfe\\x0b\\x00\\x00\\x01\\xd5\\x00\\x00\\x00\\x01\\x00\\x00\'\np4\nsS\'localContextsVersion\'\np5\n(I100\nI0\ntp6\nsS\'localContexts\'\np7\n(lp8\n(iOWContexts\nContext\np9\n(dp10\nS\'metas\'\np11\n(dp12\nsS\'values\'\np13\n(dp14\nsS\'time\'\np15\nF1370016679.6830001\nsS\'definitions\'\np16\n(lp17\n(VENR\nV&quot;XProdEolienne%Pnom&quot;*100+&quot;X:ProdPV%Pnom&quot;*92\ntp18\nasS\'classVar\'\np19\n(S\'Y:Load 115 - CTAGLI31\'\ncOrange.orange\n__pickleLoaderNamedConstants\np20\n(S\'Variable_Type\'\n(I2\nttRp21\ntp22\nsS\'noCopy\'\np23\n(lp24\nS\'orderedDomain\'\np25\nasS\'attributes\'\np26\n((S\'Iteration\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp27\nt(S\'X:Load(pu)\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp28\nt(S\'X:lineOff#\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp29\nt(S\'XProdEolienne%Pnom\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp30\nt(S\'X:ProdPV%Pnom\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp31\nt(S\'Y:NbeTransit\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp32\nt(S\'Y:NbeTension\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp33\nt(S\'Y:PProdTot\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp34\nt(S\'Y:PConsoTot\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp35\nt(S\'Y:%Losses\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp36\nt(S\'Y:Max%A\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp37\nt(S\'Y:NbeTransit_0.9-1\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp38\nt(S\'Y:PMachine1 - CBONIF11\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp39\nt(S\'Y:PMachine14 - CBONIF21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp40\nt(S\'Y:PMachine18 - CCASAM21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp41\nt(S\'Y:PMachine29 - CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp42\nt(S\'Y:PMachine29 - CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp43\nt(S\'Y:PMachine30 - CLUCCI22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp44\nt(S\'Y:PMachine42 - CSISCO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp45\nt(S\'Y:PMachine47 - CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp46\nt(S\'Y:PMachine53 - CBASTI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp47\nt(S\'Y:PMachine54 - CBASTI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp48\nt(S\'Y:PMachine58 - CBONIF32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp49\nt(S\'Y:PMachine60 - CCALDA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp50\nt(S\'Y:PMachine61 - CCALVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp51\nt(S\'Y:PMachine62 - CCALVI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp52\nt(S\'Y:PMachine63 - CCASAM31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp53\nt(S\'Y:PMachine64 - CCASAM32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp54\nt(S\'Y:PMachine65 - CCASAM33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp55\nt(S\'Y:PMachine66 - CCASAM34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp56\nt(S\'Y:PMachine67 - CCASAM35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp57\nt(S\'Y:PMachine68 - CCASAM36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp58\nt(S\'Y:PMachine69 - CCASAM37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp59\nt(S\'Y:PMachine72 - CCASTI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp60\nt(S\'Y:PMachine73 - CCASTI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp61\nt(S\'Y:PMachine74 - CCERVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp62\nt(S\'Y:PMachine74 - CCERVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp63\nt(S\'Y:PMachine75 - CCORSC31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp64\nt(S\'Y:PMachine77 - CCORTE32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp65\nt(S\'Y:PMachine78 - CFURIA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp66\nt(S\'Y:PMachine81 - CGHISO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp67\nt(S\'Y:PMachine83 - CILERO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp68\nt(S\'Y:PMachine85 - CLORET32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp69\nt(S\'Y:PMachine86 - CLUCCI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp70\nt(S\'Y:PMachine86 - CLUCCI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp71\nt(S\'Y:PMachine87 - CLUCCI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp72\nt(S\'Y:PMachine88 - CLUCCI33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp73\nt(S\'Y:PMachine89 - CLUCCI34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp74\nt(S\'Y:PMachine90 - CMOROS31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp75\nt(S\'Y:PMachine92 - COCANA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp76\nt(S\'Y:PMachine93 - COCANA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp77\nt(S\'Y:PMachine94 - COCANA33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp78\nt(S\'Y:PMachine97 - COCANA36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp79\nt(S\'Y:PMachine101 - CPIETR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp80\nt(S\'Y:PMachine102 - CPORTO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp81\nt(S\'Y:PMachine104 - CPROPR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp82\nt(S\'Y:PMachine105 - CPROPR32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp83\nt(S\'Y:PMachine106 - CRIZZA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp84\nt(S\'Y:PMachine107 - CRIZZA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp85\nt(S\'Y:PMachine109 - CSAGON32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp86\nt(S\'Y:PMachine109 - CSAGON32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp87\nt(S\'Y:PMachine111 - CSTMAR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp88\nt(S\'Y:PMachine112 - CSAMPO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp89\nt(S\'Y:PMachine113 - CSAMPO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp90\nt(S\'Y:PMachine114 - CSOVEN31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp91\nt(S\'Y:PMachine114 - CSOVEN31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp92\nt(S\'Y:PMachine115 - CTAGLI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp93\nt(S\'Y:PMachine116 - CTOLLA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp94\nt(S\'Y:PMachine117 - CTOLLA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp95\nt(S\'Y:PMachine118 - CTOLLA33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp96\nt(S\'Y:PMachine120 - CVAZZI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp97\nt(S\'Y:PMachine121 - CVAZZI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp98\nt(S\'Y:PMachine122 - CVAZZI33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp99\nt(S\'Y:PMachine123 - CVAZZI34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp100\nt(S\'Y:PMachine124 - CVAZZI35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp101\nt(S\'Y:PMachine125 - CVAZZI36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp102\nt(S\'Y:PMachine126 - CVAZZI37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp103\nt(S\'Y:PMachine127 - CVAZZI38\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp104\nt(S\'Y:PMachine128 - CVAZZI39\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp105\nt(S\'Y:PMachine129 - CVAZZI310\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp106\nt(S\'Y:PMachine130 - CVAZZI311\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp107\nt(S\'Y:PMachine131 - CVAZZI312\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp108\nt(S\'Y:PMachine132 - CVAZZI313\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp109\nt(S\'Y:PMachine133 - CVAZZI314\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp110\nt(S\'Y:PMachine134 - CLUCCI35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp111\nt(S\'Y:PMachine135 - CLUCCI36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp112\nt(S\'Y:PMachine136 - CLUCCI37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp113\nt(S\'Y:PMachine137 - CLUCCI38\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp114\nt(S\'Y:PMachine138 - CLUCCI39\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp115\nt(S\'Y:PMachine139 - CLUCCI310\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp116\nt(S\'Y:VBus1 - CBONIF11\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp117\nt(S\'Y:VBus11 - CASPRE21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp118\nt(S\'Y:VBus12 - CBASTI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp119\nt(S\'Y:VBus13 - CBIGUG21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp120\nt(S\'Y:VBus14 - CBONIF21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp121\nt(S\'Y:VBus15 - CBONIF22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp122\nt(S\'Y:VBus16 - CCALDA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp123\nt(S\'Y:VBus17 - CCALVI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp124\nt(S\'Y:VBus18 - CCASAM21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp125\nt(S\'Y:VBus19 - CCASTI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp126\nt(S\'Y:VBus20 - CCERVI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp127\nt(S\'Y:VBus21 - CCORSC21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp128\nt(S\'Y:VBus22 - CCORTE21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp129\nt(S\'Y:VBus23 - CCORTE22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp130\nt(S\'Y:VBus24 - CFURIA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp131\nt(S\'Y:VBus25 - CFURIA22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp132\nt(S\'Y:VBus26 - CGHISO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp133\nt(S\'Y:VBus27 - CILERO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp134\nt(S\'Y:VBus28 - CLORET21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp135\nt(S\'Y:VBus29 - CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp136\nt(S\'Y:VBus30 - CLUCCI22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp137\nt(S\'Y:VBus31 - CMOROS21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp138\nt(S\'Y:VBus32 - COCANA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp139\nt(S\'Y:VBus33 - COLETT21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp140\nt(S\'Y:VBus34 - CPIETR21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp141\nt(S\'Y:VBus35 - CPORTO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp142\nt(S\'Y:VBus36 - CPROPR21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp143\nt(S\'Y:VBus37 - CRIZZA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp144\nt(S\'Y:VBus38 - CSAGON21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp145\nt(S\'Y:VBus39 - CSTLUC21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp146\nt(S\'Y:VBus40 - CSTMAR21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp147\nt(S\'Y:VBus41 - CSAMPO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp148\nt(S\'Y:VBus42 - CSISCO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp149\nt(S\'Y:VBus43 - CSOVEN21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp150\nt(S\'Y:VBus44 - CTAGLI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp151\nt(S\'Y:VBus45 - CTOLLA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp152\nt(S\'Y:VBus46 - CTRAVO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp153\nt(S\'Y:VBus47 - CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp154\nt(S\'Y:VBus48 - CZSSS621\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp155\nt(S\'Y:VBus51 - CASPRE31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp156\nt(S\'Y:VBus52 - CASPRE32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp157\nt(S\'Y:VBus53 - CBASTI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp158\nt(S\'Y:VBus54 - CBASTI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp159\nt(S\'Y:VBus55 - CBIGUG31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp160\nt(S\'Y:VBus56 - CBIGUG32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp161\nt(S\'Y:VBus57 - CBONIF31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp162\nt(S\'Y:VBus58 - CBONIF32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp163\nt(S\'Y:VBus59 - CCALDA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp164\nt(S\'Y:VBus60 - CCALDA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp165\nt(S\'Y:VBus61 - CCALVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp166\nt(S\'Y:VBus62 - CCALVI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp167\nt(S\'Y:VBus63 - CCASAM31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp168\nt(S\'Y:VBus64 - CCASAM32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp169\nt(S\'Y:VBus65 - CCASAM33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp170\nt(S\'Y:VBus66 - CCASAM34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp171\nt(S\'Y:VBus67 - CCASAM35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp172\nt(S\'Y:VBus68 - CCASAM36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp173\nt(S\'Y:VBus69 - CCASAM37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp174\nt(S\'Y:VBus72 - CCASTI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp175\nt(S\'Y:VBus73 - CCASTI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp176\nt(S\'Y:VBus74 - CCERVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp177\nt(S\'Y:VBus75 - CCORSC31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp178\nt(S\'Y:VBus76 - CCORTE31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp179\nt(S\'Y:VBus77 - CCORTE32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp180\nt(S\'Y:VBus78 - CFURIA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp181\nt(S\'Y:VBus79 - CFURIA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp182\nt(S\'Y:VBus80 - CGHISO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp183\nt(S\'Y:VBus81 - CGHISO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp184\nt(S\'Y:VBus82 - CILERO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp185\nt(S\'Y:VBus83 - CILERO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp186\nt(S\'Y:VBus84 - CLORET31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp187\nt(S\'Y:VBus85 - CLORET32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp188\nt(S\'Y:VBus86 - CLUCCI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp189\nt(S\'Y:VBus87 - CLUCCI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp190\nt(S\'Y:VBus88 - CLUCCI33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp191\nt(S\'Y:VBus89 - CLUCCI34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp192\nt(S\'Y:VBus90 - CMOROS31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp193\nt(S\'Y:VBus92 - COCANA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp194\nt(S\'Y:VBus93 - COCANA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp195\nt(S\'Y:VBus94 - COCANA33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp196\nt(S\'Y:VBus95 - COCANA34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp197\nt(S\'Y:VBus96 - COCANA35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp198\nt(S\'Y:VBus97 - COCANA36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp199\nt(S\'Y:VBus100 - COLETT31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp200\nt(S\'Y:VBus101 - CPIETR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp201\nt(S\'Y:VBus102 - CPORTO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp202\nt(S\'Y:VBus103 - CPORTO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp203\nt(S\'Y:VBus104 - CPROPR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp204\nt(S\'Y:VBus105 - CPROPR32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp205\nt(S\'Y:VBus106 - CRIZZA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp206\nt(S\'Y:VBus107 - CRIZZA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp207\nt(S\'Y:VBus108 - CSAGON31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp208\nt(S\'Y:VBus109 - CSAGON32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp209\nt(S\'Y:VBus110 - CSTLUC31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp210\nt(S\'Y:VBus111 - CSTMAR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp211\nt(S\'Y:VBus112 - CSAMPO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp212\nt(S\'Y:VBus113 - CSAMPO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp213\nt(S\'Y:VBus114 - CSOVEN31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp214\nt(S\'Y:VBus115 - CTAGLI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp215\nt(S\'Y:VBus116 - CTOLLA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp216\nt(S\'Y:VBus117 - CTOLLA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp217\nt(S\'Y:VBus118 - CTOLLA33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp218\nt(S\'Y:VBus119 - CTRAVO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp219\nt(S\'Y:VBus120 - CVAZZI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp220\nt(S\'Y:VBus121 - CVAZZI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp221\nt(S\'Y:VBus122 - CVAZZI33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp222\nt(S\'Y:VBus123 - CVAZZI34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp223\nt(S\'Y:VBus124 - CVAZZI35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp224\nt(S\'Y:VBus125 - CVAZZI36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp225\nt(S\'Y:VBus126 - CVAZZI37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp226\nt(S\'Y:VBus127 - CVAZZI38\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp227\nt(S\'Y:VBus128 - CVAZZI39\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp228\nt(S\'Y:VBus129 - CVAZZI310\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp229\nt(S\'Y:VBus130 - CVAZZI311\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp230\nt(S\'Y:VBus131 - CVAZZI312\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp231\nt(S\'Y:VBus132 - CVAZZI313\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp232\nt(S\'Y:VBus133 - CVAZZI314\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp233\nt(S\'Y:VBus134 - CLUCCI35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp234\nt(S\'Y:VBus135 - CLUCCI36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp235\nt(S\'Y:VBus136 - CLUCCI37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp236\nt(S\'Y:VBus137 - CLUCCI38\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp237\nt(S\'Y:VBus138 - CLUCCI39\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp238\nt(S\'Y:VBus139 - CLUCCI310\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp239\nt(S\'Y0:%RateA 11-28 - CASPRE21    -CLORET21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp240\nt(S\'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp241\nt(S\'Y2:%RateA 12-24 - CBASTI21    -CFURIA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp242\nt(S\'Y3:%RateA 12-24 - CBASTI21    -CFURIA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp243\nt(S\'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp244\nt(S\'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp245\nt(S\'Y6:%RateA 14-15 - CBONIF21    -CBONIF22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp246\nt(S\'Y7:%RateA 14-35 - CBONIF21    -CPORTO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp247\nt(S\'Y8:%RateA 15-35 - CBONIF22    -CPORTO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp248\nt(S\'Y9:%RateA 16-32 - CCALDA21    -COCANA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp249\nt(S\'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp250\nt(S\'Y11:%RateA 17-27 - CCALVI21    -CILERO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp251\nt(S\'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp252\nt(S\'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp253\nt(S\'Y14:%RateA 18-31 - CCASAM21    -CMOROS21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp254\nt(S\'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp255\nt(S\'Y16:%RateA 19-21 - CCASTI21    -CCORSC21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp256\nt(S\'Y17:%RateA 19-22 - CCASTI21    -CCORTE21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp257\nt(S\'Y18:%RateA 19-27 - CCASTI21    -CILERO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp258\nt(S\'Y19:%RateA 20-26 - CCERVI21    -CGHISO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp259\nt(S\'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp260\nt(S\'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp261\nt(S\'Y22:%RateA 22-23 - CCORTE21    -CCORTE22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp262\nt(S\'Y23:%RateA 22-31 - CCORTE21    -CMOROS21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp263\nt(S\'Y24:%RateA 23-32 - CCORTE22    -COCANA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp264\nt(S\'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp265\nt(S\'Y26:%RateA 24-25 - CFURIA21    -CFURIA22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp266\nt(S\'Y27:%RateA 24-33 - CFURIA21    -COLETT21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp267\nt(S\'Y28:%RateA 24-42 - CFURIA21    -CSISCO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp268\nt(S\'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp269\nt(S\'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp270\nt(S\'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp271\nt(S\'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp272\nt(S\'Y33:%RateA 27-33 - CILERO21    -COLETT21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp273\nt(S\'Y34:%RateA 28-38 - CLORET21    -CSAGON21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp274\nt(S\'Y35:%RateA 28-47 - CLORET21    -CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp275\nt(S\'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp276\nt(S\'Y37:%RateA 32-34 - COCANA21    -CPIETR21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp277\nt(S\'Y38:%RateA 32-45 - COCANA21    -CTOLLA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp278\nt(S\'Y39:%RateA 32-45 - COCANA21    -CTOLLA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp279\nt(S\'Y40:%RateA 32-47 - COCANA21    -CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp280\nt(S\'Y41:%RateA 32-48 - COCANA21    -CZSSS621\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp281\nt(S\'Y42:%RateA 34-36 - CPIETR21    -CPROPR21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp282\nt(S\'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp283\nt(S\'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp284\nt(S\'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp285\nt(S\'Y46:%RateA 36-48 - CPROPR21    -CZSSS621\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp286\nt(S\'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp287\nt(S\'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp288\nt(S\'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp289\nt(S\'Y50:%RateA 51-52 - CASPRE31    -CASPRE32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp290\nt(S\'Y51:%RateA 53-54 - CBASTI31    -CBASTI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp291\nt(S\'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp292\nt(S\'Y53:%RateA 57-58 - CBONIF31    -CBONIF32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp293\nt(S\'Y54:%RateA 59-60 - CCALDA31    -CCALDA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp294\nt(S\'Y55:%RateA 61-62 - CCALVI31    -CCALVI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp295\nt(S\'Y56:%RateA 72-73 - CCASTI31    -CCASTI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp296\nt(S\'Y57:%RateA 76-77 - CCORTE31    -CCORTE32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp297\nt(S\'Y58:%RateA 78-79 - CFURIA31    -CFURIA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp298\nt(S\'Y59:%RateA 80-81 - CGHISO31    -CGHISO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp299\nt(S\'Y60:%RateA 82-83 - CILERO31    -CILERO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp300\nt(S\'Y61:%RateA 84-85 - CLORET31    -CLORET32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp301\nt(S\'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp302\nt(S\'Y63:%RateA 95-96 - COCANA34    -COCANA35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp303\nt(S\'Y64:%RateA 102-103 - CPORTO31    -CPORTO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp304\nt(S\'Y65:%RateA 104-105 - CPROPR31    -CPROPR32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp305\nt(S\'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp306\nt(S\'Y67:%RateA 108-109 - CSAGON31    -CSAGON32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp307\nt(S\'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp308\nt(S\'Y:Load 37 - CRIZZA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp309\nt(S\'Y:Load 42 - CSISCO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp310\nt(S\'Y:Load 51 - CASPRE31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp311\nt(S\'Y:Load 53 - CBASTI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp312\nt(S\'Y:Load 55 - CBIGUG31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp313\nt(S\'Y:Load 57 - CBONIF31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp314\nt(S\'Y:Load 59 - CCALDA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp315\nt(S\'Y:Load 61 - CCALVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp316\nt(S\'Y:Load 74 - CCERVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp317\nt(S\'Y:Load 76 - CCORTE31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp318\nt(S\'Y:Load 78 - CFURIA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp319\nt(S\'Y:Load 80 - CGHISO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp320\nt(S\'Y:Load 82 - CILERO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp321\nt(S\'Y:Load 84 - CLORET31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp322\nt(S\'Y:Load 86 - CLUCCI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp323\nt(S\'Y:Load 90 - CMOROS31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp324\nt(S\'Y:Load 95 - COCANA34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp325\nt(S\'Y:Load 100 - COLETT31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp326\nt(S\'Y:Load 101 - CPIETR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp327\nt(S\'Y:Load 102 - CPORTO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp328\nt(S\'Y:Load 104 - CPROPR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp329\nt(S\'Y:Load 108 - CSAGON31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp330\nt(S\'Y:Load 110 - CSTLUC31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp331\nttp332\nsba(iOWContexts\nContext\np333\n(dp334\ng11\n(dp335\nS\'Iteration\'\np336\ng20\n(S\'Variable_Type\'\n(I6\nttRp337\nssg13\n(dp338\nsg15\nF1369744625.7249999\nsg16\n(lp339\nsg19\n(S\'Y:Load 115 - CTAGLI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp340\ntp341\nsg23\n(lp342\nS\'orderedDomain\'\np343\nasg26\n((S\'X:Load(pu)\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp344\nt(S\'X:lineOff#\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp345\nt(S\'XProdEolienne%Pnom\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp346\nt(S\'X:ProdPV%Pnom\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp347\nt(S\'Y:NbeTransit\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp348\nt(S\'Y:NbeTension\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp349\nt(S\'Y:PProdTot\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp350\nt(S\'Y:PConsoTot\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp351\nt(S\'Y:%Losses\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp352\nt(S\'Y:Max%A\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp353\nt(S\'Y:NbeTransit_0.9-1\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp354\nt(S\'Y:PMachine1 - CBONIF11\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp355\nt(S\'Y:PMachine14 - CBONIF21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp356\nt(S\'Y:PMachine18 - CCASAM21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp357\nt(S\'Y:PMachine29 - CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp358\nt(S\'Y:PMachine29 - CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp359\nt(S\'Y:PMachine30 - CLUCCI22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp360\nt(S\'Y:PMachine42 - CSISCO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp361\nt(S\'Y:PMachine47 - CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp362\nt(S\'Y:PMachine53 - CBASTI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp363\nt(S\'Y:PMachine54 - CBASTI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp364\nt(S\'Y:PMachine58 - CBONIF32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp365\nt(S\'Y:PMachine60 - CCALDA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp366\nt(S\'Y:PMachine61 - CCALVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp367\nt(S\'Y:PMachine62 - CCALVI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp368\nt(S\'Y:PMachine63 - CCASAM31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp369\nt(S\'Y:PMachine64 - CCASAM32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp370\nt(S\'Y:PMachine65 - CCASAM33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp371\nt(S\'Y:PMachine66 - CCASAM34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp372\nt(S\'Y:PMachine67 - CCASAM35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp373\nt(S\'Y:PMachine68 - CCASAM36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp374\nt(S\'Y:PMachine69 - CCASAM37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp375\nt(S\'Y:PMachine72 - CCASTI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp376\nt(S\'Y:PMachine73 - CCASTI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp377\nt(S\'Y:PMachine74 - CCERVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp378\nt(S\'Y:PMachine74 - CCERVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp379\nt(S\'Y:PMachine75 - CCORSC31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp380\nt(S\'Y:PMachine77 - CCORTE32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp381\nt(S\'Y:PMachine78 - CFURIA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp382\nt(S\'Y:PMachine81 - CGHISO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp383\nt(S\'Y:PMachine83 - CILERO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp384\nt(S\'Y:PMachine85 - CLORET32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp385\nt(S\'Y:PMachine86 - CLUCCI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp386\nt(S\'Y:PMachine86 - CLUCCI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp387\nt(S\'Y:PMachine87 - CLUCCI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp388\nt(S\'Y:PMachine88 - CLUCCI33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp389\nt(S\'Y:PMachine89 - CLUCCI34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp390\nt(S\'Y:PMachine90 - CMOROS31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp391\nt(S\'Y:PMachine92 - COCANA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp392\nt(S\'Y:PMachine93 - COCANA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp393\nt(S\'Y:PMachine94 - COCANA33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp394\nt(S\'Y:PMachine97 - COCANA36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp395\nt(S\'Y:PMachine101 - CPIETR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp396\nt(S\'Y:PMachine102 - CPORTO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp397\nt(S\'Y:PMachine104 - CPROPR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp398\nt(S\'Y:PMachine105 - CPROPR32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp399\nt(S\'Y:PMachine106 - CRIZZA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp400\nt(S\'Y:PMachine107 - CRIZZA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp401\nt(S\'Y:PMachine109 - CSAGON32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp402\nt(S\'Y:PMachine109 - CSAGON32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp403\nt(S\'Y:PMachine111 - CSTMAR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp404\nt(S\'Y:PMachine112 - CSAMPO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp405\nt(S\'Y:PMachine113 - CSAMPO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp406\nt(S\'Y:PMachine114 - CSOVEN31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp407\nt(S\'Y:PMachine114 - CSOVEN31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp408\nt(S\'Y:PMachine115 - CTAGLI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp409\nt(S\'Y:PMachine116 - CTOLLA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp410\nt(S\'Y:PMachine117 - CTOLLA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp411\nt(S\'Y:PMachine118 - CTOLLA33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp412\nt(S\'Y:PMachine120 - CVAZZI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp413\nt(S\'Y:PMachine121 - CVAZZI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp414\nt(S\'Y:PMachine122 - CVAZZI33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp415\nt(S\'Y:PMachine123 - CVAZZI34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp416\nt(S\'Y:PMachine124 - CVAZZI35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp417\nt(S\'Y:PMachine125 - CVAZZI36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp418\nt(S\'Y:PMachine126 - CVAZZI37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp419\nt(S\'Y:PMachine127 - CVAZZI38\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp420\nt(S\'Y:PMachine128 - CVAZZI39\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp421\nt(S\'Y:PMachine129 - CVAZZI310\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp422\nt(S\'Y:PMachine130 - CVAZZI311\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp423\nt(S\'Y:PMachine131 - CVAZZI312\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp424\nt(S\'Y:PMachine132 - CVAZZI313\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp425\nt(S\'Y:PMachine133 - CVAZZI314\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp426\nt(S\'Y:PMachine134 - CLUCCI35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp427\nt(S\'Y:PMachine135 - CLUCCI36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp428\nt(S\'Y:PMachine136 - CLUCCI37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp429\nt(S\'Y:PMachine137 - CLUCCI38\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp430\nt(S\'Y:PMachine138 - CLUCCI39\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp431\nt(S\'Y:PMachine139 - CLUCCI310\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp432\nt(S\'Y:VBus1 - CBONIF11\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp433\nt(S\'Y:VBus11 - CASPRE21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp434\nt(S\'Y:VBus12 - CBASTI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp435\nt(S\'Y:VBus13 - CBIGUG21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp436\nt(S\'Y:VBus14 - CBONIF21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp437\nt(S\'Y:VBus15 - CBONIF22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp438\nt(S\'Y:VBus16 - CCALDA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp439\nt(S\'Y:VBus17 - CCALVI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp440\nt(S\'Y:VBus18 - CCASAM21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp441\nt(S\'Y:VBus19 - CCASTI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp442\nt(S\'Y:VBus20 - CCERVI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp443\nt(S\'Y:VBus21 - CCORSC21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp444\nt(S\'Y:VBus22 - CCORTE21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp445\nt(S\'Y:VBus23 - CCORTE22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp446\nt(S\'Y:VBus24 - CFURIA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp447\nt(S\'Y:VBus25 - CFURIA22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp448\nt(S\'Y:VBus26 - CGHISO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp449\nt(S\'Y:VBus27 - CILERO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp450\nt(S\'Y:VBus28 - CLORET21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp451\nt(S\'Y:VBus29 - CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp452\nt(S\'Y:VBus30 - CLUCCI22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp453\nt(S\'Y:VBus31 - CMOROS21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp454\nt(S\'Y:VBus32 - COCANA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp455\nt(S\'Y:VBus33 - COLETT21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp456\nt(S\'Y:VBus34 - CPIETR21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp457\nt(S\'Y:VBus35 - CPORTO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp458\nt(S\'Y:VBus36 - CPROPR21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp459\nt(S\'Y:VBus37 - CRIZZA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp460\nt(S\'Y:VBus38 - CSAGON21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp461\nt(S\'Y:VBus39 - CSTLUC21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp462\nt(S\'Y:VBus40 - CSTMAR21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp463\nt(S\'Y:VBus41 - CSAMPO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp464\nt(S\'Y:VBus42 - CSISCO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp465\nt(S\'Y:VBus43 - CSOVEN21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp466\nt(S\'Y:VBus44 - CTAGLI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp467\nt(S\'Y:VBus45 - CTOLLA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp468\nt(S\'Y:VBus46 - CTRAVO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp469\nt(S\'Y:VBus47 - CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp470\nt(S\'Y:VBus48 - CZSSS621\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp471\nt(S\'Y:VBus51 - CASPRE31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp472\nt(S\'Y:VBus52 - CASPRE32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp473\nt(S\'Y:VBus53 - CBASTI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp474\nt(S\'Y:VBus54 - CBASTI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp475\nt(S\'Y:VBus55 - CBIGUG31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp476\nt(S\'Y:VBus56 - CBIGUG32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp477\nt(S\'Y:VBus57 - CBONIF31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp478\nt(S\'Y:VBus58 - CBONIF32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp479\nt(S\'Y:VBus59 - CCALDA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp480\nt(S\'Y:VBus60 - CCALDA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp481\nt(S\'Y:VBus61 - CCALVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp482\nt(S\'Y:VBus62 - CCALVI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp483\nt(S\'Y:VBus63 - CCASAM31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp484\nt(S\'Y:VBus64 - CCASAM32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp485\nt(S\'Y:VBus65 - CCASAM33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp486\nt(S\'Y:VBus66 - CCASAM34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp487\nt(S\'Y:VBus67 - CCASAM35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp488\nt(S\'Y:VBus68 - CCASAM36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp489\nt(S\'Y:VBus69 - CCASAM37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp490\nt(S\'Y:VBus72 - CCASTI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp491\nt(S\'Y:VBus73 - CCASTI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp492\nt(S\'Y:VBus74 - CCERVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp493\nt(S\'Y:VBus75 - CCORSC31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp494\nt(S\'Y:VBus76 - CCORTE31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp495\nt(S\'Y:VBus77 - CCORTE32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp496\nt(S\'Y:VBus78 - CFURIA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp497\nt(S\'Y:VBus79 - CFURIA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp498\nt(S\'Y:VBus80 - CGHISO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp499\nt(S\'Y:VBus81 - CGHISO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp500\nt(S\'Y:VBus82 - CILERO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp501\nt(S\'Y:VBus83 - CILERO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp502\nt(S\'Y:VBus84 - CLORET31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp503\nt(S\'Y:VBus85 - CLORET32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp504\nt(S\'Y:VBus86 - CLUCCI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp505\nt(S\'Y:VBus87 - CLUCCI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp506\nt(S\'Y:VBus88 - CLUCCI33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp507\nt(S\'Y:VBus89 - CLUCCI34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp508\nt(S\'Y:VBus90 - CMOROS31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp509\nt(S\'Y:VBus92 - COCANA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp510\nt(S\'Y:VBus93 - COCANA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp511\nt(S\'Y:VBus94 - COCANA33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp512\nt(S\'Y:VBus95 - COCANA34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp513\nt(S\'Y:VBus96 - COCANA35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp514\nt(S\'Y:VBus97 - COCANA36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp515\nt(S\'Y:VBus100 - COLETT31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp516\nt(S\'Y:VBus101 - CPIETR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp517\nt(S\'Y:VBus102 - CPORTO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp518\nt(S\'Y:VBus103 - CPORTO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp519\nt(S\'Y:VBus104 - CPROPR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp520\nt(S\'Y:VBus105 - CPROPR32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp521\nt(S\'Y:VBus106 - CRIZZA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp522\nt(S\'Y:VBus107 - CRIZZA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp523\nt(S\'Y:VBus108 - CSAGON31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp524\nt(S\'Y:VBus109 - CSAGON32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp525\nt(S\'Y:VBus110 - CSTLUC31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp526\nt(S\'Y:VBus111 - CSTMAR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp527\nt(S\'Y:VBus112 - CSAMPO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp528\nt(S\'Y:VBus113 - CSAMPO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp529\nt(S\'Y:VBus114 - CSOVEN31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp530\nt(S\'Y:VBus115 - CTAGLI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp531\nt(S\'Y:VBus116 - CTOLLA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp532\nt(S\'Y:VBus117 - CTOLLA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp533\nt(S\'Y:VBus118 - CTOLLA33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp534\nt(S\'Y:VBus119 - CTRAVO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp535\nt(S\'Y:VBus120 - CVAZZI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp536\nt(S\'Y:VBus121 - CVAZZI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp537\nt(S\'Y:VBus122 - CVAZZI33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp538\nt(S\'Y:VBus123 - CVAZZI34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp539\nt(S\'Y:VBus124 - CVAZZI35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp540\nt(S\'Y:VBus125 - CVAZZI36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp541\nt(S\'Y:VBus126 - CVAZZI37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp542\nt(S\'Y:VBus127 - CVAZZI38\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp543\nt(S\'Y:VBus128 - CVAZZI39\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp544\nt(S\'Y:VBus129 - CVAZZI310\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp545\nt(S\'Y:VBus130 - CVAZZI311\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp546\nt(S\'Y:VBus131 - CVAZZI312\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp547\nt(S\'Y:VBus132 - CVAZZI313\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp548\nt(S\'Y:VBus133 - CVAZZI314\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp549\nt(S\'Y:VBus134 - CLUCCI35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp550\nt(S\'Y:VBus135 - CLUCCI36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp551\nt(S\'Y:VBus136 - CLUCCI37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp552\nt(S\'Y:VBus137 - CLUCCI38\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp553\nt(S\'Y:VBus138 - CLUCCI39\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp554\nt(S\'Y:VBus139 - CLUCCI310\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp555\nt(S\'Y0:%RateA 11-28 - CASPRE21    -CLORET21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp556\nt(S\'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp557\nt(S\'Y2:%RateA 12-24 - CBASTI21    -CFURIA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp558\nt(S\'Y3:%RateA 12-24 - CBASTI21    -CFURIA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp559\nt(S\'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp560\nt(S\'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp561\nt(S\'Y6:%RateA 14-15 - CBONIF21    -CBONIF22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp562\nt(S\'Y7:%RateA 14-35 - CBONIF21    -CPORTO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp563\nt(S\'Y8:%RateA 15-35 - CBONIF22    -CPORTO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp564\nt(S\'Y9:%RateA 16-32 - CCALDA21    -COCANA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp565\nt(S\'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp566\nt(S\'Y11:%RateA 17-27 - CCALVI21    -CILERO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp567\nt(S\'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp568\nt(S\'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp569\nt(S\'Y14:%RateA 18-31 - CCASAM21    -CMOROS21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp570\nt(S\'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp571\nt(S\'Y16:%RateA 19-21 - CCASTI21    -CCORSC21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp572\nt(S\'Y17:%RateA 19-22 - CCASTI21    -CCORTE21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp573\nt(S\'Y18:%RateA 19-27 - CCASTI21    -CILERO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp574\nt(S\'Y19:%RateA 20-26 - CCERVI21    -CGHISO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp575\nt(S\'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp576\nt(S\'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp577\nt(S\'Y22:%RateA 22-23 - CCORTE21    -CCORTE22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp578\nt(S\'Y23:%RateA 22-31 - CCORTE21    -CMOROS21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp579\nt(S\'Y24:%RateA 23-32 - CCORTE22    -COCANA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp580\nt(S\'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp581\nt(S\'Y26:%RateA 24-25 - CFURIA21    -CFURIA22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp582\nt(S\'Y27:%RateA 24-33 - CFURIA21    -COLETT21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp583\nt(S\'Y28:%RateA 24-42 - CFURIA21    -CSISCO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp584\nt(S\'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp585\nt(S\'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp586\nt(S\'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp587\nt(S\'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp588\nt(S\'Y33:%RateA 27-33 - CILERO21    -COLETT21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp589\nt(S\'Y34:%RateA 28-38 - CLORET21    -CSAGON21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp590\nt(S\'Y35:%RateA 28-47 - CLORET21    -CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp591\nt(S\'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp592\nt(S\'Y37:%RateA 32-34 - COCANA21    -CPIETR21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp593\nt(S\'Y38:%RateA 32-45 - COCANA21    -CTOLLA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp594\nt(S\'Y39:%RateA 32-45 - COCANA21    -CTOLLA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp595\nt(S\'Y40:%RateA 32-47 - COCANA21    -CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp596\nt(S\'Y41:%RateA 32-48 - COCANA21    -CZSSS621\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp597\nt(S\'Y42:%RateA 34-36 - CPIETR21    -CPROPR21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp598\nt(S\'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp599\nt(S\'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp600\nt(S\'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp601\nt(S\'Y46:%RateA 36-48 - CPROPR21    -CZSSS621\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp602\nt(S\'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp603\nt(S\'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp604\nt(S\'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp605\nt(S\'Y50:%RateA 51-52 - CASPRE31    -CASPRE32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp606\nt(S\'Y51:%RateA 53-54 - CBASTI31    -CBASTI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp607\nt(S\'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp608\nt(S\'Y53:%RateA 57-58 - CBONIF31    -CBONIF32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp609\nt(S\'Y54:%RateA 59-60 - CCALDA31    -CCALDA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp610\nt(S\'Y55:%RateA 61-62 - CCALVI31    -CCALVI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp611\nt(S\'Y56:%RateA 72-73 - CCASTI31    -CCASTI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp612\nt(S\'Y57:%RateA 76-77 - CCORTE31    -CCORTE32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp613\nt(S\'Y58:%RateA 78-79 - CFURIA31    -CFURIA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp614\nt(S\'Y59:%RateA 80-81 - CGHISO31    -CGHISO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp615\nt(S\'Y60:%RateA 82-83 - CILERO31    -CILERO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp616\nt(S\'Y61:%RateA 84-85 - CLORET31    -CLORET32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp617\nt(S\'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp618\nt(S\'Y63:%RateA 95-96 - COCANA34    -COCANA35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp619\nt(S\'Y64:%RateA 102-103 - CPORTO31    -CPORTO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp620\nt(S\'Y65:%RateA 104-105 - CPROPR31    -CPROPR32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp621\nt(S\'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp622\nt(S\'Y67:%RateA 108-109 - CSAGON31    -CSAGON32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp623\nt(S\'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp624\nt(S\'Y:Load 37 - CRIZZA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp625\nt(S\'Y:Load 42 - CSISCO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp626\nt(S\'Y:Load 51 - CASPRE31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp627\nt(S\'Y:Load 53 - CBASTI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp628\nt(S\'Y:Load 55 - CBIGUG31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp629\nt(S\'Y:Load 57 - CBONIF31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp630\nt(S\'Y:Load 59 - CCALDA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp631\nt(S\'Y:Load 61 - CCALVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp632\nt(S\'Y:Load 74 - CCERVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp633\nt(S\'Y:Load 76 - CCORTE31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp634\nt(S\'Y:Load 78 - CFURIA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp635\nt(S\'Y:Load 80 - CGHISO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp636\nt(S\'Y:Load 82 - CILERO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp637\nt(S\'Y:Load 84 - CLORET31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp638\nt(S\'Y:Load 86 - CLUCCI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp639\nt(S\'Y:Load 90 - CMOROS31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp640\nt(S\'Y:Load 95 - COCANA34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp641\nt(S\'Y:Load 100 - COLETT31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp642\nt(S\'Y:Load 101 - CPIETR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp643\nt(S\'Y:Load 102 - CPORTO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp644\nt(S\'Y:Load 104 - CPROPR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp645\nt(S\'Y:Load 108 - CSAGON31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp646\nt(S\'Y:Load 110 - CSTLUC31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp647\nttp648\nsba(iOWContexts\nContext\np649\n(dp650\ng11\n(dp651\nsg13\n(dp652\nsg15\nF1369994938.7509999\nsg16\n(lp653\n(VEOL_ALL\nV&quot;Y:PMachine14 - CBONIF21&quot;+&quot;Y:PMachine18 - CCASAM21&quot;+&quot;Y:PMachine30 - CLUCCI22&quot;+&quot;Y:PMachine42 - CSISCO21&quot;+&quot;Y:PMachine47 - CVAZZI21&quot;\ntp654\na(VPV_ALL\nV92*&quot;Y:PMachine53 - CBASTI31&quot;\ntp655\na(VINTERCOS\nV&quot;Y:PMachine1 - CBONIF11&quot;+&quot;Y:PMachine29 - CLUCCI21&quot;+&quot;Y:PMachine29 - CLUCCI21&quot;\ntp656\na(VVAZZIO_DIESEL\nV&quot;Y:PMachine120 - CVAZZI31&quot;+&quot;Y:PMachine121 - CVAZZI32&quot;+&quot;Y:PMachine122 - CVAZZI33&quot;+&quot;Y:PMachine123 - CVAZZI34&quot;+&quot;Y:PMachine124 - CVAZZI35&quot;+&quot;Y:PMachine125 - CVAZZI36&quot;+&quot;Y:PMachine126 - CVAZZI37&quot;+&quot;Y:PMachine127 - CVAZZI38&quot;+&quot;Y:PMachine128 - CVAZZI39&quot;+&quot;Y:PMachine129 - CVAZZI310&quot;+&quot;Y:PMachine130 - CVAZZI311&quot;+&quot;Y:PMachine133 - CVAZZI314&quot;\ntp657\na(VVAZZIO_TAC\nV&quot;Y:PMachine131 - CVAZZI312&quot;+&quot;Y:PMachine132 - CVAZZI313&quot;\ntp658\na(VCASA_DIESEL\nV&quot;Y:PMachine63 - CCASAM31&quot;+&quot;Y:PMachine64 - CCASAM32&quot;+&quot;Y:PMachine65 - CCASAM33&quot;+&quot;Y:PMachine66 - CCASAM34&quot;+&quot;Y:PMachine67 - CCASAM35&quot;+&quot;Y:PMachine68 - CCASAM36&quot;+&quot;Y:PMachine69 - CCASAM37&quot;\ntp659\nasg19\n(S\'Y:Load 115 - CTAGLI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp660\ntp661\nsg23\n(lp662\ng343\nasg26\n((S\'Iteration\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp663\nt(S\'X:Load(pu)\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp664\nt(S\'X:lineOff#\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp665\nt(S\'XProdEolienne%Pnom\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp666\nt(S\'X:ProdPV%Pnom\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp667\nt(S\'Y:NbeTransit\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp668\nt(S\'Y:NbeTension\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp669\nt(S\'Y:PProdTot\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp670\nt(S\'Y:PConsoTot\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp671\nt(S\'Y:%Losses\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp672\nt(S\'Y:Max%A\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp673\nt(S\'Y:NbeTransit_0.9-1\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp674\nt(S\'Y:PMachine1 - CBONIF11\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp675\nt(S\'Y:PMachine14 - CBONIF21\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp676\nt(S\'Y:PMachine18 - CCASAM21\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp677\nt(S\'Y:PMachine29 - CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp678\nt(S\'Y:PMachine29 - CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp679\nt(S\'Y:PMachine30 - CLUCCI22\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp680\nt(S\'Y:PMachine42 - CSISCO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp681\nt(S\'Y:PMachine47 - CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp682\nt(S\'Y:PMachine53 - CBASTI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp683\nt(S\'Y:PMachine54 - CBASTI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp684\nt(S\'Y:PMachine58 - CBONIF32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp685\nt(S\'Y:PMachine60 - CCALDA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp686\nt(S\'Y:PMachine61 - CCALVI31\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp687\nt(S\'Y:PMachine62 - CCALVI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp688\nt(S\'Y:PMachine63 - CCASAM31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp689\nt(S\'Y:PMachine64 - CCASAM32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp690\nt(S\'Y:PMachine65 - CCASAM33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp691\nt(S\'Y:PMachine66 - CCASAM34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp692\nt(S\'Y:PMachine67 - CCASAM35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp693\nt(S\'Y:PMachine68 - CCASAM36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp694\nt(S\'Y:PMachine69 - CCASAM37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp695\nt(S\'Y:PMachine72 - CCASTI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp696\nt(S\'Y:PMachine73 - CCASTI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp697\nt(S\'Y:PMachine74 - CCERVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp698\nt(S\'Y:PMachine74 - CCERVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp699\nt(S\'Y:PMachine75 - CCORSC31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp700\nt(S\'Y:PMachine77 - CCORTE32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp701\nt(S\'Y:PMachine78 - CFURIA31\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp702\nt(S\'Y:PMachine81 - CGHISO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp703\nt(S\'Y:PMachine83 - CILERO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp704\nt(S\'Y:PMachine85 - CLORET32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp705\nt(S\'Y:PMachine86 - CLUCCI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp706\nt(S\'Y:PMachine86 - CLUCCI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp707\nt(S\'Y:PMachine87 - CLUCCI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp708\nt(S\'Y:PMachine88 - CLUCCI33\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp709\nt(S\'Y:PMachine89 - CLUCCI34\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp710\nt(S\'Y:PMachine90 - CMOROS31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp711\nt(S\'Y:PMachine92 - COCANA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp712\nt(S\'Y:PMachine93 - COCANA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp713\nt(S\'Y:PMachine94 - COCANA33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp714\nt(S\'Y:PMachine97 - COCANA36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp715\nt(S\'Y:PMachine101 - CPIETR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp716\nt(S\'Y:PMachine102 - CPORTO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp717\nt(S\'Y:PMachine104 - CPROPR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp718\nt(S\'Y:PMachine105 - CPROPR32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp719\nt(S\'Y:PMachine106 - CRIZZA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp720\nt(S\'Y:PMachine107 - CRIZZA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp721\nt(S\'Y:PMachine109 - CSAGON32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp722\nt(S\'Y:PMachine109 - CSAGON32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp723\nt(S\'Y:PMachine111 - CSTMAR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp724\nt(S\'Y:PMachine112 - CSAMPO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp725\nt(S\'Y:PMachine113 - CSAMPO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp726\nt(S\'Y:PMachine114 - CSOVEN31\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp727\nt(S\'Y:PMachine114 - CSOVEN31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp728\nt(S\'Y:PMachine115 - CTAGLI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp729\nt(S\'Y:PMachine116 - CTOLLA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp730\nt(S\'Y:PMachine117 - CTOLLA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp731\nt(S\'Y:PMachine118 - CTOLLA33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp732\nt(S\'Y:PMachine120 - CVAZZI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp733\nt(S\'Y:PMachine121 - CVAZZI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp734\nt(S\'Y:PMachine122 - CVAZZI33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp735\nt(S\'Y:PMachine123 - CVAZZI34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp736\nt(S\'Y:PMachine124 - CVAZZI35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp737\nt(S\'Y:PMachine125 - CVAZZI36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp738\nt(S\'Y:PMachine126 - CVAZZI37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp739\nt(S\'Y:PMachine127 - CVAZZI38\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp740\nt(S\'Y:PMachine128 - CVAZZI39\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp741\nt(S\'Y:PMachine129 - CVAZZI310\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp742\nt(S\'Y:PMachine130 - CVAZZI311\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp743\nt(S\'Y:PMachine131 - CVAZZI312\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp744\nt(S\'Y:PMachine132 - CVAZZI313\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp745\nt(S\'Y:PMachine133 - CVAZZI314\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp746\nt(S\'Y:PMachine134 - CLUCCI35\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp747\nt(S\'Y:PMachine135 - CLUCCI36\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp748\nt(S\'Y:PMachine136 - CLUCCI37\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp749\nt(S\'Y:PMachine137 - CLUCCI38\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp750\nt(S\'Y:PMachine138 - CLUCCI39\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp751\nt(S\'Y:PMachine139 - CLUCCI310\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp752\nt(S\'Y:VBus1 - CBONIF11\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp753\nt(S\'Y:VBus11 - CASPRE21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp754\nt(S\'Y:VBus12 - CBASTI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp755\nt(S\'Y:VBus13 - CBIGUG21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp756\nt(S\'Y:VBus14 - CBONIF21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp757\nt(S\'Y:VBus15 - CBONIF22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp758\nt(S\'Y:VBus16 - CCALDA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp759\nt(S\'Y:VBus17 - CCALVI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp760\nt(S\'Y:VBus18 - CCASAM21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp761\nt(S\'Y:VBus19 - CCASTI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp762\nt(S\'Y:VBus20 - CCERVI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp763\nt(S\'Y:VBus21 - CCORSC21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp764\nt(S\'Y:VBus22 - CCORTE21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp765\nt(S\'Y:VBus23 - CCORTE22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp766\nt(S\'Y:VBus24 - CFURIA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp767\nt(S\'Y:VBus25 - CFURIA22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp768\nt(S\'Y:VBus26 - CGHISO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp769\nt(S\'Y:VBus27 - CILERO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp770\nt(S\'Y:VBus28 - CLORET21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp771\nt(S\'Y:VBus29 - CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp772\nt(S\'Y:VBus30 - CLUCCI22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp773\nt(S\'Y:VBus31 - CMOROS21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp774\nt(S\'Y:VBus32 - COCANA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp775\nt(S\'Y:VBus33 - COLETT21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp776\nt(S\'Y:VBus34 - CPIETR21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp777\nt(S\'Y:VBus35 - CPORTO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp778\nt(S\'Y:VBus36 - CPROPR21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp779\nt(S\'Y:VBus37 - CRIZZA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp780\nt(S\'Y:VBus38 - CSAGON21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp781\nt(S\'Y:VBus39 - CSTLUC21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp782\nt(S\'Y:VBus40 - CSTMAR21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp783\nt(S\'Y:VBus41 - CSAMPO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp784\nt(S\'Y:VBus42 - CSISCO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp785\nt(S\'Y:VBus43 - CSOVEN21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp786\nt(S\'Y:VBus44 - CTAGLI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp787\nt(S\'Y:VBus45 - CTOLLA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp788\nt(S\'Y:VBus46 - CTRAVO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp789\nt(S\'Y:VBus47 - CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp790\nt(S\'Y:VBus48 - CZSSS621\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp791\nt(S\'Y:VBus51 - CASPRE31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp792\nt(S\'Y:VBus52 - CASPRE32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp793\nt(S\'Y:VBus53 - CBASTI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp794\nt(S\'Y:VBus54 - CBASTI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp795\nt(S\'Y:VBus55 - CBIGUG31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp796\nt(S\'Y:VBus56 - CBIGUG32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp797\nt(S\'Y:VBus57 - CBONIF31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp798\nt(S\'Y:VBus58 - CBONIF32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp799\nt(S\'Y:VBus59 - CCALDA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp800\nt(S\'Y:VBus60 - CCALDA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp801\nt(S\'Y:VBus61 - CCALVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp802\nt(S\'Y:VBus62 - CCALVI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp803\nt(S\'Y:VBus63 - CCASAM31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp804\nt(S\'Y:VBus64 - CCASAM32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp805\nt(S\'Y:VBus65 - CCASAM33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp806\nt(S\'Y:VBus66 - CCASAM34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp807\nt(S\'Y:VBus67 - CCASAM35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp808\nt(S\'Y:VBus68 - CCASAM36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp809\nt(S\'Y:VBus69 - CCASAM37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp810\nt(S\'Y:VBus72 - CCASTI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp811\nt(S\'Y:VBus73 - CCASTI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp812\nt(S\'Y:VBus74 - CCERVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp813\nt(S\'Y:VBus75 - CCORSC31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp814\nt(S\'Y:VBus76 - CCORTE31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp815\nt(S\'Y:VBus77 - CCORTE32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp816\nt(S\'Y:VBus78 - CFURIA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp817\nt(S\'Y:VBus79 - CFURIA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp818\nt(S\'Y:VBus80 - CGHISO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp819\nt(S\'Y:VBus81 - CGHISO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp820\nt(S\'Y:VBus82 - CILERO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp821\nt(S\'Y:VBus83 - CILERO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp822\nt(S\'Y:VBus84 - CLORET31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp823\nt(S\'Y:VBus85 - CLORET32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp824\nt(S\'Y:VBus86 - CLUCCI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp825\nt(S\'Y:VBus87 - CLUCCI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp826\nt(S\'Y:VBus88 - CLUCCI33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp827\nt(S\'Y:VBus89 - CLUCCI34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp828\nt(S\'Y:VBus90 - CMOROS31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp829\nt(S\'Y:VBus92 - COCANA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp830\nt(S\'Y:VBus93 - COCANA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp831\nt(S\'Y:VBus94 - COCANA33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp832\nt(S\'Y:VBus95 - COCANA34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp833\nt(S\'Y:VBus96 - COCANA35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp834\nt(S\'Y:VBus97 - COCANA36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp835\nt(S\'Y:VBus100 - COLETT31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp836\nt(S\'Y:VBus101 - CPIETR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp837\nt(S\'Y:VBus102 - CPORTO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp838\nt(S\'Y:VBus103 - CPORTO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp839\nt(S\'Y:VBus104 - CPROPR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp840\nt(S\'Y:VBus105 - CPROPR32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp841\nt(S\'Y:VBus106 - CRIZZA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp842\nt(S\'Y:VBus107 - CRIZZA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp843\nt(S\'Y:VBus108 - CSAGON31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp844\nt(S\'Y:VBus109 - CSAGON32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp845\nt(S\'Y:VBus110 - CSTLUC31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp846\nt(S\'Y:VBus111 - CSTMAR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp847\nt(S\'Y:VBus112 - CSAMPO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp848\nt(S\'Y:VBus113 - CSAMPO32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp849\nt(S\'Y:VBus114 - CSOVEN31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp850\nt(S\'Y:VBus115 - CTAGLI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp851\nt(S\'Y:VBus116 - CTOLLA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp852\nt(S\'Y:VBus117 - CTOLLA32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp853\nt(S\'Y:VBus118 - CTOLLA33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp854\nt(S\'Y:VBus119 - CTRAVO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp855\nt(S\'Y:VBus120 - CVAZZI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp856\nt(S\'Y:VBus121 - CVAZZI32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp857\nt(S\'Y:VBus122 - CVAZZI33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp858\nt(S\'Y:VBus123 - CVAZZI34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp859\nt(S\'Y:VBus124 - CVAZZI35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp860\nt(S\'Y:VBus125 - CVAZZI36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp861\nt(S\'Y:VBus126 - CVAZZI37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp862\nt(S\'Y:VBus127 - CVAZZI38\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp863\nt(S\'Y:VBus128 - CVAZZI39\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp864\nt(S\'Y:VBus129 - CVAZZI310\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp865\nt(S\'Y:VBus130 - CVAZZI311\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp866\nt(S\'Y:VBus131 - CVAZZI312\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp867\nt(S\'Y:VBus132 - CVAZZI313\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp868\nt(S\'Y:VBus133 - CVAZZI314\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp869\nt(S\'Y:VBus134 - CLUCCI35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp870\nt(S\'Y:VBus135 - CLUCCI36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp871\nt(S\'Y:VBus136 - CLUCCI37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp872\nt(S\'Y:VBus137 - CLUCCI38\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp873\nt(S\'Y:VBus138 - CLUCCI39\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp874\nt(S\'Y:VBus139 - CLUCCI310\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp875\nt(S\'Y0:%RateA 11-28 - CASPRE21    -CLORET21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp876\nt(S\'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp877\nt(S\'Y2:%RateA 12-24 - CBASTI21    -CFURIA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp878\nt(S\'Y3:%RateA 12-24 - CBASTI21    -CFURIA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp879\nt(S\'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp880\nt(S\'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp881\nt(S\'Y6:%RateA 14-15 - CBONIF21    -CBONIF22\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp882\nt(S\'Y7:%RateA 14-35 - CBONIF21    -CPORTO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp883\nt(S\'Y8:%RateA 15-35 - CBONIF22    -CPORTO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp884\nt(S\'Y9:%RateA 16-32 - CCALDA21    -COCANA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp885\nt(S\'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp886\nt(S\'Y11:%RateA 17-27 - CCALVI21    -CILERO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp887\nt(S\'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp888\nt(S\'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp889\nt(S\'Y14:%RateA 18-31 - CCASAM21    -CMOROS21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp890\nt(S\'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp891\nt(S\'Y16:%RateA 19-21 - CCASTI21    -CCORSC21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp892\nt(S\'Y17:%RateA 19-22 - CCASTI21    -CCORTE21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp893\nt(S\'Y18:%RateA 19-27 - CCASTI21    -CILERO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp894\nt(S\'Y19:%RateA 20-26 - CCERVI21    -CGHISO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp895\nt(S\'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp896\nt(S\'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp897\nt(S\'Y22:%RateA 22-23 - CCORTE21    -CCORTE22\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp898\nt(S\'Y23:%RateA 22-31 - CCORTE21    -CMOROS21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp899\nt(S\'Y24:%RateA 23-32 - CCORTE22    -COCANA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp900\nt(S\'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp901\nt(S\'Y26:%RateA 24-25 - CFURIA21    -CFURIA22\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp902\nt(S\'Y27:%RateA 24-33 - CFURIA21    -COLETT21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp903\nt(S\'Y28:%RateA 24-42 - CFURIA21    -CSISCO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp904\nt(S\'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp905\nt(S\'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp906\nt(S\'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp907\nt(S\'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp908\nt(S\'Y33:%RateA 27-33 - CILERO21    -COLETT21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp909\nt(S\'Y34:%RateA 28-38 - CLORET21    -CSAGON21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp910\nt(S\'Y35:%RateA 28-47 - CLORET21    -CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp911\nt(S\'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp912\nt(S\'Y37:%RateA 32-34 - COCANA21    -CPIETR21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp913\nt(S\'Y38:%RateA 32-45 - COCANA21    -CTOLLA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp914\nt(S\'Y39:%RateA 32-45 - COCANA21    -CTOLLA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp915\nt(S\'Y40:%RateA 32-47 - COCANA21    -CVAZZI21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp916\nt(S\'Y41:%RateA 32-48 - COCANA21    -CZSSS621\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp917\nt(S\'Y42:%RateA 34-36 - CPIETR21    -CPROPR21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp918\nt(S\'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp919\nt(S\'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp920\nt(S\'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp921\nt(S\'Y46:%RateA 36-48 - CPROPR21    -CZSSS621\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp922\nt(S\'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp923\nt(S\'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp924\nt(S\'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp925\nt(S\'Y50:%RateA 51-52 - CASPRE31    -CASPRE32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp926\nt(S\'Y51:%RateA 53-54 - CBASTI31    -CBASTI32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp927\nt(S\'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp928\nt(S\'Y53:%RateA 57-58 - CBONIF31    -CBONIF32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp929\nt(S\'Y54:%RateA 59-60 - CCALDA31    -CCALDA32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp930\nt(S\'Y55:%RateA 61-62 - CCALVI31    -CCALVI32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp931\nt(S\'Y56:%RateA 72-73 - CCASTI31    -CCASTI32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp932\nt(S\'Y57:%RateA 76-77 - CCORTE31    -CCORTE32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp933\nt(S\'Y58:%RateA 78-79 - CFURIA31    -CFURIA32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp934\nt(S\'Y59:%RateA 80-81 - CGHISO31    -CGHISO32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp935\nt(S\'Y60:%RateA 82-83 - CILERO31    -CILERO32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp936\nt(S\'Y61:%RateA 84-85 - CLORET31    -CLORET32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp937\nt(S\'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp938\nt(S\'Y63:%RateA 95-96 - COCANA34    -COCANA35\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp939\nt(S\'Y64:%RateA 102-103 - CPORTO31    -CPORTO32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp940\nt(S\'Y65:%RateA 104-105 - CPROPR31    -CPROPR32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp941\nt(S\'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp942\nt(S\'Y67:%RateA 108-109 - CSAGON31    -CSAGON32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp943\nt(S\'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp944\nt(S\'Y:Load 37 - CRIZZA21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp945\nt(S\'Y:Load 42 - CSISCO21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp946\nt(S\'Y:Load 51 - CASPRE31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp947\nt(S\'Y:Load 53 - CBASTI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp948\nt(S\'Y:Load 55 - CBIGUG31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp949\nt(S\'Y:Load 57 - CBONIF31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp950\nt(S\'Y:Load 59 - CCALDA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp951\nt(S\'Y:Load 61 - CCALVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp952\nt(S\'Y:Load 74 - CCERVI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp953\nt(S\'Y:Load 76 - CCORTE31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp954\nt(S\'Y:Load 78 - CFURIA31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp955\nt(S\'Y:Load 80 - CGHISO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp956\nt(S\'Y:Load 82 - CILERO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp957\nt(S\'Y:Load 84 - CLORET31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp958\nt(S\'Y:Load 86 - CLUCCI31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp959\nt(S\'Y:Load 90 - CMOROS31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp960\nt(S\'Y:Load 95 - COCANA34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp961\nt(S\'Y:Load 100 - COLETT31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp962\nt(S\'Y:Load 101 - CPIETR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp963\nt(S\'Y:Load 102 - CPORTO31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp964\nt(S\'Y:Load 104 - CPROPR31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp965\nt(S\'Y:Load 108 - CSAGON31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp966\nt(S\'Y:Load 110 - CSTLUC31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp967\nttp968\nsba(iOWContexts\nContext\np969\n(dp970\ng11\n(dp971\nsg13\n(dp972\nsg15\nF1369931375.7969999\nsg16\n(lp973\n(VTOT PV\nV&quot;X:ProdPV%Pnom&quot;*92\ntp974\na(VDIESEL VAZZIO\nV&quot;Y:PMachine120&quot;+&quot;Y:PMachine121&quot;+&quot;Y:PMachine122&quot;+&quot;Y:PMachine123&quot;+&quot;Y:PMachine124&quot;+&quot;Y:PMachine125&quot;+&quot;Y:PMachine126&quot;+&quot;Y:PMachine127&quot;+&quot;Y:PMachine128&quot;+&quot;Y:PMachine129&quot;+&quot;Y:PMachine130&quot;+&quot;Y:PMachine133&quot;\ntp975\na(VTAC VAZZIO\nV&quot;Y:PMachine131&quot;+&quot;Y:PMachine132&quot;\ntp976\na(VTOT WIND\nV4*&quot;Y:PMachine14&quot;+&quot;Y:PMachine42&quot;\ntp977\na(VDIESEL CASA\nV&quot;Y:PMachine63&quot;+&quot;Y:PMachine64&quot;+&quot;Y:PMachine65&quot;+&quot;Y:PMachine66&quot;+&quot;Y:PMachine67&quot;+&quot;Y:PMachine68&quot;+&quot;Y:PMachine69&quot;\ntp978\na(VINTERCOS\nV&quot;Y:PMachine1&quot;+&quot;Y:PMachine29&quot;+&quot;Y:PMachine29&quot;\ntp979\na(VTOT ENR\nV&quot;X:ProdPV%Pnom&quot;*92+4*&quot;Y:PMachine14&quot;+&quot;Y:PMachine42&quot;\ntp980\nasg19\n(S\'Y:Load 115\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp981\ntp982\nsg23\n(lp983\ng343\nasg26\n((S\'Iteration\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp984\nt(S\'X:Load(pu)\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp985\nt(S\'X:lineOff#\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp986\nt(S\'XProdEolienne%Pnom\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp987\nt(S\'X:ProdPV%Pnom\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp988\nt(S\'Y:NbeTransit\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp989\nt(S\'Y:NbeTension\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp990\nt(S\'Y:PProdTot\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp991\nt(S\'Y:PConsoTot\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp992\nt(S\'Y:%Losses\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp993\nt(S\'Y:Max%A\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp994\nt(S\'Y:NbeTransit_0.9-1\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp995\nt(S\'Y:PMachine1\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp996\nt(S\'Y:PMachine14\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp997\nt(S\'Y:PMachine18\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp998\nt(S\'Y:PMachine29\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp999\nt(S\'Y:PMachine29\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1000\nt(S\'Y:PMachine30\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1001\nt(S\'Y:PMachine42\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1002\nt(S\'Y:PMachine47\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1003\nt(S\'Y:PMachine53\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1004\nt(S\'Y:PMachine54\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1005\nt(S\'Y:PMachine58\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1006\nt(S\'Y:PMachine60\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1007\nt(S\'Y:PMachine61\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1008\nt(S\'Y:PMachine62\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1009\nt(S\'Y:PMachine63\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1010\nt(S\'Y:PMachine64\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1011\nt(S\'Y:PMachine65\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1012\nt(S\'Y:PMachine66\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1013\nt(S\'Y:PMachine67\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1014\nt(S\'Y:PMachine68\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1015\nt(S\'Y:PMachine69\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1016\nt(S\'Y:PMachine72\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1017\nt(S\'Y:PMachine73\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1018\nt(S\'Y:PMachine74\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1019\nt(S\'Y:PMachine74\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1020\nt(S\'Y:PMachine75\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1021\nt(S\'Y:PMachine77\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1022\nt(S\'Y:PMachine78\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1023\nt(S\'Y:PMachine81\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1024\nt(S\'Y:PMachine83\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1025\nt(S\'Y:PMachine85\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1026\nt(S\'Y:PMachine86\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1027\nt(S\'Y:PMachine86\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1028\nt(S\'Y:PMachine87\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1029\nt(S\'Y:PMachine88\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1030\nt(S\'Y:PMachine89\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1031\nt(S\'Y:PMachine90\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1032\nt(S\'Y:PMachine92\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1033\nt(S\'Y:PMachine93\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1034\nt(S\'Y:PMachine94\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1035\nt(S\'Y:PMachine97\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1036\nt(S\'Y:PMachine101\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1037\nt(S\'Y:PMachine102\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1038\nt(S\'Y:PMachine104\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1039\nt(S\'Y:PMachine105\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1040\nt(S\'Y:PMachine106\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1041\nt(S\'Y:PMachine107\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1042\nt(S\'Y:PMachine109\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1043\nt(S\'Y:PMachine109\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1044\nt(S\'Y:PMachine111\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1045\nt(S\'Y:PMachine112\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1046\nt(S\'Y:PMachine113\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1047\nt(S\'Y:PMachine114\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1048\nt(S\'Y:PMachine114\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1049\nt(S\'Y:PMachine115\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1050\nt(S\'Y:PMachine116\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1051\nt(S\'Y:PMachine117\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1052\nt(S\'Y:PMachine118\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1053\nt(S\'Y:PMachine120\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1054\nt(S\'Y:PMachine121\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1055\nt(S\'Y:PMachine122\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1056\nt(S\'Y:PMachine123\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1057\nt(S\'Y:PMachine124\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1058\nt(S\'Y:PMachine125\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1059\nt(S\'Y:PMachine126\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1060\nt(S\'Y:PMachine127\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1061\nt(S\'Y:PMachine128\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1062\nt(S\'Y:PMachine129\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1063\nt(S\'Y:PMachine130\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1064\nt(S\'Y:PMachine131\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1065\nt(S\'Y:PMachine132\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1066\nt(S\'Y:PMachine133\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1067\nt(S\'Y:PMachine134\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1068\nt(S\'Y:PMachine135\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1069\nt(S\'Y:PMachine136\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1070\nt(S\'Y:PMachine137\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1071\nt(S\'Y:PMachine138\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1072\nt(S\'Y:PMachine139\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1073\nt(S\'Y:VBus1\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1074\nt(S\'Y:VBus11\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1075\nt(S\'Y:VBus12\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1076\nt(S\'Y:VBus13\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1077\nt(S\'Y:VBus14\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1078\nt(S\'Y:VBus15\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1079\nt(S\'Y:VBus16\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1080\nt(S\'Y:VBus17\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1081\nt(S\'Y:VBus18\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1082\nt(S\'Y:VBus19\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1083\nt(S\'Y:VBus20\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1084\nt(S\'Y:VBus21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1085\nt(S\'Y:VBus22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1086\nt(S\'Y:VBus23\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1087\nt(S\'Y:VBus24\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1088\nt(S\'Y:VBus25\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1089\nt(S\'Y:VBus26\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1090\nt(S\'Y:VBus27\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1091\nt(S\'Y:VBus28\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1092\nt(S\'Y:VBus29\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1093\nt(S\'Y:VBus30\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1094\nt(S\'Y:VBus31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1095\nt(S\'Y:VBus32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1096\nt(S\'Y:VBus33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1097\nt(S\'Y:VBus34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1098\nt(S\'Y:VBus35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1099\nt(S\'Y:VBus36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1100\nt(S\'Y:VBus37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1101\nt(S\'Y:VBus38\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1102\nt(S\'Y:VBus39\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1103\nt(S\'Y:VBus40\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1104\nt(S\'Y:VBus41\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1105\nt(S\'Y:VBus42\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1106\nt(S\'Y:VBus43\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1107\nt(S\'Y:VBus44\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1108\nt(S\'Y:VBus45\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1109\nt(S\'Y:VBus46\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1110\nt(S\'Y:VBus47\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1111\nt(S\'Y:VBus48\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1112\nt(S\'Y:VBus51\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1113\nt(S\'Y:VBus52\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1114\nt(S\'Y:VBus53\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1115\nt(S\'Y:VBus54\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1116\nt(S\'Y:VBus55\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1117\nt(S\'Y:VBus56\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1118\nt(S\'Y:VBus57\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1119\nt(S\'Y:VBus58\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1120\nt(S\'Y:VBus59\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1121\nt(S\'Y:VBus60\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1122\nt(S\'Y:VBus61\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1123\nt(S\'Y:VBus62\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1124\nt(S\'Y:VBus63\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1125\nt(S\'Y:VBus64\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1126\nt(S\'Y:VBus65\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1127\nt(S\'Y:VBus66\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1128\nt(S\'Y:VBus67\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1129\nt(S\'Y:VBus68\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1130\nt(S\'Y:VBus69\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1131\nt(S\'Y:VBus72\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1132\nt(S\'Y:VBus73\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1133\nt(S\'Y:VBus74\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1134\nt(S\'Y:VBus75\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1135\nt(S\'Y:VBus76\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1136\nt(S\'Y:VBus77\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1137\nt(S\'Y:VBus78\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1138\nt(S\'Y:VBus79\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1139\nt(S\'Y:VBus80\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1140\nt(S\'Y:VBus81\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1141\nt(S\'Y:VBus82\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1142\nt(S\'Y:VBus83\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1143\nt(S\'Y:VBus84\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1144\nt(S\'Y:VBus85\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1145\nt(S\'Y:VBus86\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1146\nt(S\'Y:VBus87\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1147\nt(S\'Y:VBus88\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1148\nt(S\'Y:VBus89\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1149\nt(S\'Y:VBus90\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1150\nt(S\'Y:VBus92\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1151\nt(S\'Y:VBus93\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1152\nt(S\'Y:VBus94\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1153\nt(S\'Y:VBus95\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1154\nt(S\'Y:VBus96\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1155\nt(S\'Y:VBus97\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1156\nt(S\'Y:VBus100\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1157\nt(S\'Y:VBus101\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1158\nt(S\'Y:VBus102\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1159\nt(S\'Y:VBus103\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1160\nt(S\'Y:VBus104\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1161\nt(S\'Y:VBus105\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1162\nt(S\'Y:VBus106\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1163\nt(S\'Y:VBus107\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1164\nt(S\'Y:VBus108\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1165\nt(S\'Y:VBus109\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1166\nt(S\'Y:VBus110\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1167\nt(S\'Y:VBus111\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1168\nt(S\'Y:VBus112\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1169\nt(S\'Y:VBus113\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1170\nt(S\'Y:VBus114\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1171\nt(S\'Y:VBus115\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1172\nt(S\'Y:VBus116\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1173\nt(S\'Y:VBus117\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1174\nt(S\'Y:VBus118\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1175\nt(S\'Y:VBus119\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1176\nt(S\'Y:VBus120\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1177\nt(S\'Y:VBus121\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1178\nt(S\'Y:VBus122\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1179\nt(S\'Y:VBus123\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1180\nt(S\'Y:VBus124\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1181\nt(S\'Y:VBus125\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1182\nt(S\'Y:VBus126\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1183\nt(S\'Y:VBus127\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1184\nt(S\'Y:VBus128\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1185\nt(S\'Y:VBus129\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1186\nt(S\'Y:VBus130\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1187\nt(S\'Y:VBus131\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1188\nt(S\'Y:VBus132\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1189\nt(S\'Y:VBus133\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1190\nt(S\'Y:VBus134\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1191\nt(S\'Y:VBus135\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1192\nt(S\'Y:VBus136\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1193\nt(S\'Y:VBus137\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1194\nt(S\'Y:VBus138\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1195\nt(S\'Y:VBus139\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1196\nt(S\'Y0:%RateA 11-28\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1197\nt(S\'Y1:%RateA 11-47\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1198\nt(S\'Y2:%RateA 12-24\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1199\nt(S\'Y3:%RateA 12-24\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1200\nt(S\'Y4:%RateA 13-25\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1201\nt(S\'Y5:%RateA 13-29\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1202\nt(S\'Y6:%RateA 14-15\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1203\nt(S\'Y7:%RateA 14-35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1204\nt(S\'Y8:%RateA 15-35\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1205\nt(S\'Y9:%RateA 16-32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1206\nt(S\'Y10:%RateA 16-47\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1207\nt(S\'Y11:%RateA 17-27\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1208\nt(S\'Y12:%RateA 18-30\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1209\nt(S\'Y13:%RateA 18-30\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1210\nt(S\'Y14:%RateA 18-31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1211\nt(S\'Y15:%RateA 18-44\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1212\nt(S\'Y16:%RateA 19-21\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1213\nt(S\'Y17:%RateA 19-22\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1214\nt(S\'Y18:%RateA 19-27\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1215\nt(S\'Y19:%RateA 20-26\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1216\nt(S\'Y20:%RateA 20-44\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1217\nt(S\'Y21:%RateA 21-43\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1218\nt(S\'Y22:%RateA 22-23\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1219\nt(S\'Y23:%RateA 22-31\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1220\nt(S\'Y24:%RateA 23-32\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1221\nt(S\'Y25:%RateA 23-41\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1222\nt(S\'Y26:%RateA 24-25\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1223\nt(S\'Y27:%RateA 24-33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1224\nt(S\'Y28:%RateA 24-42\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1225\nt(S\'Y29:%RateA 25-29\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1226\nt(S\'Y30:%RateA 25-29\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1227\nt(S\'Y31:%RateA 26-41\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1228\nt(S\'Y32:%RateA 26-46\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1229\nt(S\'Y33:%RateA 27-33\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1230\nt(S\'Y34:%RateA 28-38\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1231\nt(S\'Y35:%RateA 28-47\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1232\nt(S\'Y36:%RateA 29-30\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1233\nt(S\'Y37:%RateA 32-34\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1234\nt(S\'Y38:%RateA 32-45\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1235\nt(S\'Y39:%RateA 32-45\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1236\nt(S\'Y40:%RateA 32-47\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1237\nt(S\'Y41:%RateA 32-48\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1238\nt(S\'Y42:%RateA 34-36\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1239\nt(S\'Y43:%RateA 35-37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1240\nt(S\'Y44:%RateA 35-39\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1241\nt(S\'Y45:%RateA 36-37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1242\nt(S\'Y46:%RateA 36-48\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1243\nt(S\'Y47:%RateA 38-43\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1244\nt(S\'Y48:%RateA 39-46\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1245\nt(S\'Y49:%RateA 40-48\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1246\nt(S\'Y50:%RateA 51-52\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1247\nt(S\'Y51:%RateA 53-54\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1248\nt(S\'Y52:%RateA 55-56\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1249\nt(S\'Y53:%RateA 57-58\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1250\nt(S\'Y54:%RateA 59-60\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1251\nt(S\'Y55:%RateA 61-62\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1252\nt(S\'Y56:%RateA 72-73\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1253\nt(S\'Y57:%RateA 76-77\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1254\nt(S\'Y58:%RateA 78-79\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1255\nt(S\'Y59:%RateA 80-81\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1256\nt(S\'Y60:%RateA 82-83\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1257\nt(S\'Y61:%RateA 84-85\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1258\nt(S\'Y62:%RateA 86-87\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1259\nt(S\'Y63:%RateA 95-96\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1260\nt(S\'Y64:%RateA 102-103\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1261\nt(S\'Y65:%RateA 104-105\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1262\nt(S\'Y66:%RateA 106-107\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1263\nt(S\'Y67:%RateA 108-109\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1264\nt(S\'Y68:%RateA 112-113\'\ng20\n(S\'Variable_Type\'\n(I1\nttRp1265\nt(S\'Y:Load 37\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1266\nt(S\'Y:Load 42\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1267\nt(S\'Y:Load 51\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1268\nt(S\'Y:Load 53\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1269\nt(S\'Y:Load 55\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1270\nt(S\'Y:Load 57\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1271\nt(S\'Y:Load 59\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1272\nt(S\'Y:Load 61\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1273\nt(S\'Y:Load 74\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1274\nt(S\'Y:Load 76\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1275\nt(S\'Y:Load 78\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1276\nt(S\'Y:Load 80\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1277\nt(S\'Y:Load 82\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1278\nt(S\'Y:Load 84\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1279\nt(S\'Y:Load 86\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1280\nt(S\'Y:Load 90\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1281\nt(S\'Y:Load 95\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1282\nt(S\'Y:Load 100\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1283\nt(S\'Y:Load 101\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1284\nt(S\'Y:Load 102\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1285\nt(S\'Y:Load 104\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1286\nt(S\'Y:Load 108\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1287\nt(S\'Y:Load 110\'\ng20\n(S\'Variable_Type\'\n(I2\nttRp1288\nttp1289\nsbas.', 'File': &quot;(dp1\nS'savedWidgetGeometry'\np2\nS'\\x01\\xd9\\xd0\\xcb\\x00\\x01\\x00\\x00\\x00\\x00\\x02&gt;\\x00\\x00\\x00\\x99\\x00\\x00\\x03\\xc9\\x00\\x00\\x02\\x92\\x00\\x00\\x02F\\x00\\x00\\x00\\xb5\\x00\\x00\\x03\\xc1\\x00\\x00\\x02\\x8a\\x00\\x00\\x00\\x00\\x00\\x00'\np3\nsS'widgetShown'\np4\nI0\nsS'showAdvanced'\np5\nI01\nsS'createNewOn'\np6\nI3\nsS'localContextsVersion'\np7\n(I100\nI0\ntp8\nsS'localContexts'\np9\n(lp10\n(iOWContexts\nContext\np11\n(dp12\nS'symbolDC'\np13\nS''\nsS'symbolDK'\np14\nS''\nsS'filename'\np15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/N20130531/simulationDClog16h10m23.txt\np16\nsS'time'\np17\nF1370849937.1389999\nsba(iOWContexts\nContext\np18\n(dp19\ng14\nS''\nsg13\nS''\nsg17\nF1370016639.7539999\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/N20130528/simulationDClog16h28m48.txt\np20\nsba(iOWContexts\nContext\np21\n(dp22\ng14\nS''\nsg13\nS''\nsg17\nF1369757469.2479999\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/N20130528/simulationDClog16h01m05.txt\np23\nsba(iOWContexts\nContext\np24\n(dp25\ng14\nS''\nsg13\nS''\nsg17\nF1369755944.0339999\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/N20130528/simulationDClog15h32m40.txt\np26\nsba(iOWContexts\nContext\np27\n(dp28\ng14\nS''\nsg13\nS''\nsg17\nF1369753559.5610001\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/N20130528/simulationDClog14h33m08.txt\np29\nsba(iOWContexts\nContext\np30\n(dp31\ng14\nS''\nsg13\nS''\nsg17\nF1369744613.8139999\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/N20130531/simulationDClog15h27m22.txt\np32\nsba(iOWContexts\nContext\np33\n(dp34\ng14\nS''\nsg13\nS''\nsg17\nF1369743924.76\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/N20130528/simulationDClog11h19m02.txt\np35\nsba(iOWContexts\nContext\np36\n(dp37\ng14\nS''\nsg13\nS''\nsg17\nF1369739801.845\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/N20130528/simulationDClog09h55m19.txt\np38\nsba(iOWContexts\nContext\np39\n(dp40\ng14\nS''\nsg13\nS''\nsg17\nF1370272136.7409999\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/N20130603/simulationDClog14h57m41.txt\np41\nsba(iOWContexts\nContext\np42\n(dp43\ng14\nS''\nsg13\nS''\nsg17\nF1370270365.368\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/N20130603/simulationDClog14h16m39.txt\np44\nsba(iOWContexts\nContext\np45\n(dp46\ng14\nS''\nsg13\nS''\nsg17\nF1370267534.026\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/N20130603/simulationDClog13h37m05.txt\np47\nsba(iOWContexts\nContext\np48\n(dp49\ng13\nS''\nsg14\nS''\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/Unidimensional/Interco5/simulationDClog09h53m59.txt\np50\nsg17\nF1370266983.5220001\nsba(iOWContexts\nContext\np51\n(dp52\ng13\nS''\nsg14\nS''\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/N20130531/simulationDClog09h32m34.txt\np53\nsg17\nF1369993201.7590001\nsba(iOWContexts\nContext\np54\n(dp55\ng13\nS''\nsg14\nS''\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/Unidimensional/Load/simulationDClog15h40m30.txt\np56\nsg17\nF1369988648.6670001\nsba(iOWContexts\nContext\np57\n(dp58\ng13\nS''\nsg14\nS''\nsg15\nS''\nsg17\nF1369988599.434\nsba(iOWContexts\nContext\np59\n(dp60\ng13\nS''\nsg14\nS''\nsg15\nS''\nsg17\nF1369988595.9649999\nsba(iOWContexts\nContext\np61\n(dp62\ng13\nS''\nsg14\nS''\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/Unidimensional/MultiAll/simulationDClog15h33m00.txt\np63\nsg17\nF1369930697.7049999\nsba(iOWContexts\nContext\np64\n(dp65\ng13\nS''\nsg14\nS''\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/Unidimensional/Wind+Solar/simulationDClog15h36m01.txt\np66\nsg17\nF1369930113.0639999\nsba(iOWContexts\nContext\np67\n(dp68\ng13\nS''\nsg14\nS''\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/N20130530/2simulationDClog13h15m54.txt\np69\nsg17\nF1369929852.3039999\nsba(iOWContexts\nContext\np70\n(dp71\ng14\nS''\nsg13\nS''\nsg17\nF1368453800.7809999\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/Pres Rainer/Cas final w OPF/Corr\xe9lation/Classeur1.csv\np72\nsba(iOWContexts\nContext\np73\n(dp74\ng14\nS''\nsg13\nS''\nsg17\nF1368453753.6889999\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/Pres Rainer/Cas final w OPF/Corr\xe9lation/Classeur1.txt\np75\nsba(iOWContexts\nContext\np76\n(dp77\ng14\nS''\nsg13\nS''\nsg17\nF1368437214.5769999\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/Pres Rainer/Cas final w OPF/CSsimulationDClog07h40m21.csv\np78\nsba(iOWContexts\nContext\np79\n(dp80\ng14\nS''\nsg13\nS''\nsg17\nF1368435563.931\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/Pres Rainer/Cas final w OPF/Y0simulationDClog07h40m21.csv\np81\nsba(iOWContexts\nContext\np82\n(dp83\ng14\nS''\nsg13\nS''\nsg17\nF1368435467.47\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/Pres Rainer/Cas final w OPF/Y2simulationDClog07h40m21.csv\np84\nsba(iOWContexts\nContext\np85\n(dp86\ng13\nS''\nsg14\nS''\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/N20130507/simulationDClog14h01m33.txt\np87\nsg17\nF1368435418.723\nsba(iOWContexts\nContext\np88\n(dp89\ng14\nS''\nsg13\nS''\nsg17\nF1367937351.668\nsg15\nVC:/Users/B31272/Documents/CORSE/PSSe/Python/Pres Rainer/Cas 2/simulationDClog14h36m39.csv\np90\nsbasS'recentFiles'\np91\n(lp92\ng16\nag20\nag23\nag26\nag29\nag32\nag35\nag38\nag41\nag44\nag47\nag50\nag53\nag56\nag63\nag66\nag69\nas.&quot;, 'Scatterplot (2)': &quot;(dp1\nS'autoSendSelection'\np2\nI1\nsS'graph.showAxisScale'\np3\nI1\nsS'graph.useAntialiasing'\np4\nI1\nsS'selectedSchemaIndex'\np5\nI0\nsS'graph.pointWidth'\np6\nI8\nsS'graph.showFilledSymbols'\np7\nI01\nsS'showGridlines'\np8\nI00\nsS'graph.alphaValue'\np9\nI255\nsS'savedWidgetGeometry'\np10\nS'\\x01\\xd9\\xd0\\xcb\\x00\\x01\\x00\\x00\\xff\\xff\\xff\\xf8\\xff\\xff\\xff\\xf8\\x00\\x00\\x05\\x07\\x00\\x00\\x03\\t\\xff\\xff\\xff\\xc5\\x00\\x00\\x00&lt;\\x00\\x00\\x04\\xc4\\x00\\x00\\x03)\\x00\\x00\\x00\\x00\\x02\\x00'\np11\nsS'graph.jitterContinuous'\np12\nI00\nsS'graph.jitterSize'\np13\nF0.10000000000000001\nsS'graph.showProbabilities'\np14\nI00\nsS'graph.showXaxisTitle'\np15\nI1\nsS'widgetShown'\np16\nI0\nsS'graph.showLegend'\np17\nI1\nsS'localContextsVersion'\np18\n(I100\nI0\ntp19\nsS'localContexts'\np20\n(lp21\n(iOWContexts\nContext\np22\n(dp23\nS'selectionPolygons'\np24\n(lp25\nsS'metas'\np26\n(dp27\nsS'values'\np28\n(dp29\nS'attrLabel'\np30\n(S''\nI-1\ntp31\nsS'attrShape'\np32\n(S''\nI0\ntp33\nsS'attrX'\np34\n(S'X:Load(pu)'\ncOrange.orange\n__pickleLoaderNamedConstants\np35\n(S'Variable_Type'\n(I2\nttRp36\ntp37\nsS'attrY'\np38\n(S'Y:Load 51 - CASPRE31'\ng35\n(S'Variable_Type'\n(I2\nttRp39\ntp40\nsS'attrSize'\np41\n(S''\nI0\ntp42\nsS'attrColor'\np43\n(S'X:ProdPV%Pnom'\ng35\n(S'Variable_Type'\n(I2\nttRp44\ntp45\nssS'time'\np46\nF1370016679.7839999\nsS'attributes'\np47\n(dp48\nS'Y:PMachine134 - CLUCCI35'\np49\ng35\n(S'Variable_Type'\n(I2\nttRp50\nsS'Y:VBus77 - CCORTE32'\np51\ng35\n(S'Variable_Type'\n(I2\nttRp52\nsS'Y:VBus134 - CLUCCI35'\np53\ng35\n(S'Variable_Type'\n(I2\nttRp54\nsS'Y:VBus109 - CSAGON32'\np55\ng35\n(S'Variable_Type'\n(I2\nttRp56\nsS'Y:VBus102 - CPORTO31'\np57\ng35\n(S'Variable_Type'\n(I2\nttRp58\nsS'XProdEolienne%Pnom'\np59\ng35\n(S'Variable_Type'\n(I2\nttRp60\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np61\ng35\n(S'Variable_Type'\n(I2\nttRp62\nsS'Y:PMachine94 - COCANA33'\np63\ng35\n(S'Variable_Type'\n(I2\nttRp64\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np65\ng35\n(S'Variable_Type'\n(I2\nttRp66\nsS'Y:PMachine87 - CLUCCI32'\np67\ng35\n(S'Variable_Type'\n(I2\nttRp68\nsS'Y:PMachine113 - CSAMPO32'\np69\ng35\n(S'Variable_Type'\n(I2\nttRp70\nsS'Y:Load 84 - CLORET31'\np71\ng35\n(S'Variable_Type'\n(I2\nttRp72\nsS'Y:PMachine89 - CLUCCI34'\np73\ng35\n(S'Variable_Type'\n(I2\nttRp74\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np75\ng35\n(S'Variable_Type'\n(I2\nttRp76\nsS'Y:Load 80 - CGHISO31'\np77\ng35\n(S'Variable_Type'\n(I2\nttRp78\nsS'Y:PMachine74 - CCERVI31'\np79\ng35\n(S'Variable_Type'\n(I2\nttRp80\nsS'Y:PMachine125 - CVAZZI36'\np81\ng35\n(S'Variable_Type'\n(I2\nttRp82\nsS'Y:Load 59 - CCALDA31'\np83\ng35\n(S'Variable_Type'\n(I2\nttRp84\nsS'Y:PMachine88 - CLUCCI33'\np85\ng35\n(S'Variable_Type'\n(I2\nttRp86\nsS'Y:PMachine120 - CVAZZI31'\np87\ng35\n(S'Variable_Type'\n(I2\nttRp88\nsS'Y:PMachine111 - CSTMAR31'\np89\ng35\n(S'Variable_Type'\n(I2\nttRp90\nsS'Y:NbeTransit'\np91\ng35\n(S'Variable_Type'\n(I2\nttRp92\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np93\ng35\n(S'Variable_Type'\n(I2\nttRp94\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np95\ng35\n(S'Variable_Type'\n(I2\nttRp96\nsS'Y:PMachine130 - CVAZZI311'\np97\ng35\n(S'Variable_Type'\n(I2\nttRp98\nsS'Y:PMachine127 - CVAZZI38'\np99\ng35\n(S'Variable_Type'\n(I2\nttRp100\nsS'Y:VBus131 - CVAZZI312'\np101\ng35\n(S'Variable_Type'\n(I2\nttRp102\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np103\ng35\n(S'Variable_Type'\n(I2\nttRp104\nsS'Y:PMachine123 - CVAZZI34'\np105\ng35\n(S'Variable_Type'\n(I2\nttRp106\nsS'Y:VBus118 - CTOLLA33'\np107\ng35\n(S'Variable_Type'\n(I2\nttRp108\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np109\ng35\n(S'Variable_Type'\n(I2\nttRp110\nsS'Y:PMachine58 - CBONIF32'\np111\ng35\n(S'Variable_Type'\n(I2\nttRp112\nsS'Y:Load 104 - CPROPR31'\np113\ng35\n(S'Variable_Type'\n(I2\nttRp114\nsS'Y:PMachine30 - CLUCCI22'\np115\ng35\n(S'Variable_Type'\n(I2\nttRp116\nsS'Y:VBus100 - COLETT31'\np117\ng35\n(S'Variable_Type'\n(I2\nttRp118\nsS'Y:PProdTot'\np119\ng35\n(S'Variable_Type'\n(I2\nttRp120\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np121\ng35\n(S'Variable_Type'\n(I2\nttRp122\nsS'Y:VBus57 - CBONIF31'\np123\ng35\n(S'Variable_Type'\n(I2\nttRp124\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np125\ng35\n(S'Variable_Type'\n(I2\nttRp126\nsS'Y:PConsoTot'\np127\ng35\n(S'Variable_Type'\n(I2\nttRp128\nsS'Iteration'\np129\ng35\n(S'Variable_Type'\n(I2\nttRp130\nsS'Y:PMachine109 - CSAGON32'\np131\ng35\n(S'Variable_Type'\n(I2\nttRp132\nsS'Y:PMachine135 - CLUCCI36'\np133\ng35\n(S'Variable_Type'\n(I2\nttRp134\nsS'Y:VBus30 - CLUCCI22'\np135\ng35\n(S'Variable_Type'\n(I2\nttRp136\nsS'Y:VBus122 - CVAZZI33'\np137\ng35\n(S'Variable_Type'\n(I2\nttRp138\nsS'Y:VBus22 - CCORTE21'\np139\ng35\n(S'Variable_Type'\n(I2\nttRp140\nsS'Y:VBus117 - CTOLLA32'\np141\ng35\n(S'Variable_Type'\n(I2\nttRp142\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np143\ng35\n(S'Variable_Type'\n(I2\nttRp144\nsS'Y:PMachine107 - CRIZZA32'\np145\ng35\n(S'Variable_Type'\n(I2\nttRp146\nsS'Y:VBus16 - CCALDA21'\np147\ng35\n(S'Variable_Type'\n(I2\nttRp148\nsS'Y:Load 102 - CPORTO31'\np149\ng35\n(S'Variable_Type'\n(I2\nttRp150\nsS'Y:VBus107 - CRIZZA32'\np151\ng35\n(S'Variable_Type'\n(I2\nttRp152\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np153\ng35\n(S'Variable_Type'\n(I2\nttRp154\nsS'Y:VBus41 - CSAMPO21'\np155\ng35\n(S'Variable_Type'\n(I2\nttRp156\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np157\ng35\n(S'Variable_Type'\n(I2\nttRp158\nsS'Y:VBus34 - CPIETR21'\np159\ng35\n(S'Variable_Type'\n(I2\nttRp160\nsS'Y:Load 108 - CSAGON31'\np161\ng35\n(S'Variable_Type'\n(I2\nttRp162\nsS'Y:VBus56 - CBIGUG32'\np163\ng35\n(S'Variable_Type'\n(I2\nttRp164\nsS'Y:PMachine42 - CSISCO21'\np165\ng35\n(S'Variable_Type'\n(I2\nttRp166\nsS'Y:PMachine138 - CLUCCI39'\np167\ng35\n(S'Variable_Type'\n(I2\nttRp168\nsS'Y:PMachine112 - CSAMPO31'\np169\ng35\n(S'Variable_Type'\n(I2\nttRp170\nsS'Y:VBus105 - CPROPR32'\np171\ng35\n(S'Variable_Type'\n(I2\nttRp172\nsS'Y:VBus1 - CBONIF11'\np173\ng35\n(S'Variable_Type'\n(I2\nttRp174\nsS'Y:VBus12 - CBASTI21'\np175\ng35\n(S'Variable_Type'\n(I2\nttRp176\nsS'Y:PMachine129 - CVAZZI310'\np177\ng35\n(S'Variable_Type'\n(I2\nttRp178\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np179\ng35\n(S'Variable_Type'\n(I2\nttRp180\nsS'Y:VBus35 - CPORTO21'\np181\ng35\n(S'Variable_Type'\n(I2\nttRp182\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np183\ng35\n(S'Variable_Type'\n(I2\nttRp184\nsS'Y:VBus54 - CBASTI32'\np185\ng35\n(S'Variable_Type'\n(I2\nttRp186\nsS'Y:VBus69 - CCASAM37'\np187\ng35\n(S'Variable_Type'\n(I2\nttRp188\nsS'Y:VBus45 - CTOLLA21'\np189\ng35\n(S'Variable_Type'\n(I2\nttRp190\nsS'Y:PMachine115 - CTAGLI31'\np191\ng35\n(S'Variable_Type'\n(I2\nttRp192\nsS'Y:VBus43 - CSOVEN21'\np193\ng35\n(S'Variable_Type'\n(I2\nttRp194\nsS'Y:VBus76 - CCORTE31'\np195\ng35\n(S'Variable_Type'\n(I2\nttRp196\nsS'Y:VBus75 - CCORSC31'\np197\ng35\n(S'Variable_Type'\n(I2\nttRp198\nsS'Y:PMachine78 - CFURIA31'\np199\ng35\n(S'Variable_Type'\n(I2\nttRp200\nsS'Y:VBus127 - CVAZZI38'\np201\ng35\n(S'Variable_Type'\n(I2\nttRp202\nsS'Y:VBus115 - CTAGLI31'\np203\ng35\n(S'Variable_Type'\n(I2\nttRp204\nsS'Y:Load 61 - CCALVI31'\np205\ng35\n(S'Variable_Type'\n(I2\nttRp206\nsS'Y:VBus55 - CBIGUG31'\np207\ng35\n(S'Variable_Type'\n(I2\nttRp208\nsS'Y:Load 42 - CSISCO21'\np209\ng35\n(S'Variable_Type'\n(I2\nttRp210\nsS'Y:VBus72 - CCASTI31'\np211\ng35\n(S'Variable_Type'\n(I2\nttRp212\nsS'Y:Load 37 - CRIZZA21'\np213\ng35\n(S'Variable_Type'\n(I2\nttRp214\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np215\ng35\n(S'Variable_Type'\n(I2\nttRp216\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np217\ng35\n(S'Variable_Type'\n(I2\nttRp218\nsS'Y:PMachine137 - CLUCCI38'\np219\ng35\n(S'Variable_Type'\n(I2\nttRp220\nsS'Y:PMachine67 - CCASAM35'\np221\ng35\n(S'Variable_Type'\n(I2\nttRp222\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np223\ng35\n(S'Variable_Type'\n(I2\nttRp224\nsS'Y:VBus31 - CMOROS21'\np225\ng35\n(S'Variable_Type'\n(I2\nttRp226\nsS'Y:VBus103 - CPORTO32'\np227\ng35\n(S'Variable_Type'\n(I2\nttRp228\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np229\ng35\n(S'Variable_Type'\n(I2\nttRp230\nsS'Y:PMachine128 - CVAZZI39'\np231\ng35\n(S'Variable_Type'\n(I2\nttRp232\nsS'Y:PMachine72 - CCASTI31'\np233\ng35\n(S'Variable_Type'\n(I2\nttRp234\nsS'Y:VBus27 - CILERO21'\np235\ng35\n(S'Variable_Type'\n(I2\nttRp236\nsS'Y:VBus11 - CASPRE21'\np237\ng35\n(S'Variable_Type'\n(I2\nttRp238\nsS'Y:PMachine75 - CCORSC31'\np239\ng35\n(S'Variable_Type'\n(I2\nttRp240\nsS'Y:Load 51 - CASPRE31'\np241\ng39\nsS'Y:PMachine61 - CCALVI31'\np242\ng35\n(S'Variable_Type'\n(I2\nttRp243\nsS'Y:VBus51 - CASPRE31'\np244\ng35\n(S'Variable_Type'\n(I2\nttRp245\nsS'Y:VBus114 - CSOVEN31'\np246\ng35\n(S'Variable_Type'\n(I2\nttRp247\nsS'Y:VBus116 - CTOLLA31'\np248\ng35\n(S'Variable_Type'\n(I2\nttRp249\nsS'Y:Load 86 - CLUCCI31'\np250\ng35\n(S'Variable_Type'\n(I2\nttRp251\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np252\ng35\n(S'Variable_Type'\n(I2\nttRp253\nsS'Y:PMachine116 - CTOLLA31'\np254\ng35\n(S'Variable_Type'\n(I2\nttRp255\nsS'Y:PMachine104 - CPROPR31'\np256\ng35\n(S'Variable_Type'\n(I2\nttRp257\nsS'Y:VBus128 - CVAZZI39'\np258\ng35\n(S'Variable_Type'\n(I2\nttRp259\nsS'Y:PMachine136 - CLUCCI37'\np260\ng35\n(S'Variable_Type'\n(I2\nttRp261\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np262\ng35\n(S'Variable_Type'\n(I2\nttRp263\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np264\ng35\n(S'Variable_Type'\n(I2\nttRp265\nsS'Y:PMachine68 - CCASAM36'\np266\ng35\n(S'Variable_Type'\n(I2\nttRp267\nsS'Y:PMachine29 - CLUCCI21'\np268\ng35\n(S'Variable_Type'\n(I2\nttRp269\nsS'Y:VBus42 - CSISCO21'\np270\ng35\n(S'Variable_Type'\n(I2\nttRp271\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np272\ng35\n(S'Variable_Type'\n(I2\nttRp273\nsS'Y:VBus14 - CBONIF21'\np274\ng35\n(S'Variable_Type'\n(I2\nttRp275\nsS'Y:VBus73 - CCASTI32'\np276\ng35\n(S'Variable_Type'\n(I2\nttRp277\nsS'Y:VBus64 - CCASAM32'\np278\ng35\n(S'Variable_Type'\n(I2\nttRp279\nsS'Y:PMachine14 - CBONIF21'\np280\ng35\n(S'Variable_Type'\n(I2\nttRp281\nsS'Y:PMachine62 - CCALVI32'\np282\ng35\n(S'Variable_Type'\n(I2\nttRp283\nsS'Y:VBus133 - CVAZZI314'\np284\ng35\n(S'Variable_Type'\n(I2\nttRp285\nsS'Y:VBus63 - CCASAM31'\np286\ng35\n(S'Variable_Type'\n(I2\nttRp287\nsS'Y:PMachine101 - CPIETR31'\np288\ng35\n(S'Variable_Type'\n(I2\nttRp289\nsS'Y:%Losses'\np290\ng35\n(S'Variable_Type'\n(I2\nttRp291\nsS'Y:VBus85 - CLORET32'\np292\ng35\n(S'Variable_Type'\n(I2\nttRp293\nsS'Y:Load 115 - CTAGLI31'\np294\ng35\n(S'Variable_Type'\n(I2\nttRp295\nsS'ENR'\np296\ng35\n(S'Variable_Type'\n(I2\nttRp297\nsS'Y:VBus101 - CPIETR31'\np298\ng35\n(S'Variable_Type'\n(I2\nttRp299\nsS'Y:PMachine106 - CRIZZA31'\np300\ng35\n(S'Variable_Type'\n(I2\nttRp301\nsS'Y:VBus132 - CVAZZI313'\np302\ng35\n(S'Variable_Type'\n(I2\nttRp303\nsS'Y:PMachine118 - CTOLLA33'\np304\ng35\n(S'Variable_Type'\n(I2\nttRp305\nsS'Y:VBus19 - CCASTI21'\np306\ng35\n(S'Variable_Type'\n(I2\nttRp307\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np308\ng35\n(S'Variable_Type'\n(I2\nttRp309\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np310\ng35\n(S'Variable_Type'\n(I2\nttRp311\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np312\ng35\n(S'Variable_Type'\n(I2\nttRp313\nsS'Y:PMachine53 - CBASTI31'\np314\ng35\n(S'Variable_Type'\n(I2\nttRp315\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np316\ng35\n(S'Variable_Type'\n(I2\nttRp317\nsS'Y:VBus15 - CBONIF22'\np318\ng35\n(S'Variable_Type'\n(I2\nttRp319\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np320\ng35\n(S'Variable_Type'\n(I2\nttRp321\nsS'Y:VBus129 - CVAZZI310'\np322\ng35\n(S'Variable_Type'\n(I2\nttRp323\nsS'Y:VBus123 - CVAZZI34'\np324\ng35\n(S'Variable_Type'\n(I2\nttRp325\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np326\ng35\n(S'Variable_Type'\n(I2\nttRp327\nsS'Y:VBus60 - CCALDA32'\np328\ng35\n(S'Variable_Type'\n(I2\nttRp329\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np330\ng35\n(S'Variable_Type'\n(I2\nttRp331\nsS'Y:VBus65 - CCASAM33'\np332\ng35\n(S'Variable_Type'\n(I2\nttRp333\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np334\ng35\n(S'Variable_Type'\n(I2\nttRp335\nsS'Y:PMachine139 - CLUCCI310'\np336\ng35\n(S'Variable_Type'\n(I2\nttRp337\nsS'Y:VBus112 - CSAMPO31'\np338\ng35\n(S'Variable_Type'\n(I2\nttRp339\nsS'Y:VBus68 - CCASAM36'\np340\ng35\n(S'Variable_Type'\n(I2\nttRp341\nsS'Y:Load 55 - CBIGUG31'\np342\ng35\n(S'Variable_Type'\n(I2\nttRp343\nsS'Y:Max%A'\np344\ng35\n(S'Variable_Type'\n(I2\nttRp345\nsS'Y:NbeTransit_0.9-1'\np346\ng35\n(S'Variable_Type'\n(I2\nttRp347\nsS'Y:VBus24 - CFURIA21'\np348\ng35\n(S'Variable_Type'\n(I2\nttRp349\nsS'Y:VBus23 - CCORTE22'\np350\ng35\n(S'Variable_Type'\n(I2\nttRp351\nsS'Y:VBus18 - CCASAM21'\np352\ng35\n(S'Variable_Type'\n(I2\nttRp353\nsS'Y:VBus40 - CSTMAR21'\np354\ng35\n(S'Variable_Type'\n(I2\nttRp355\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np356\ng35\n(S'Variable_Type'\n(I2\nttRp357\nsS'Y:PMachine124 - CVAZZI35'\np358\ng35\n(S'Variable_Type'\n(I2\nttRp359\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np360\ng35\n(S'Variable_Type'\n(I2\nttRp361\nsS'Y:PMachine117 - CTOLLA32'\np362\ng35\n(S'Variable_Type'\n(I2\nttRp363\nsS'Y:Load 82 - CILERO31'\np364\ng35\n(S'Variable_Type'\n(I2\nttRp365\nsS'Y:VBus33 - COLETT21'\np366\ng35\n(S'Variable_Type'\n(I2\nttRp367\nsS'Y:VBus32 - COCANA21'\np368\ng35\n(S'Variable_Type'\n(I2\nttRp369\nsS'Y:PMachine121 - CVAZZI32'\np370\ng35\n(S'Variable_Type'\n(I2\nttRp371\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np372\ng35\n(S'Variable_Type'\n(I2\nttRp373\nsS'Y:VBus59 - CCALDA31'\np374\ng35\n(S'Variable_Type'\n(I2\nttRp375\nsS'Y:VBus82 - CILERO31'\np376\ng35\n(S'Variable_Type'\n(I2\nttRp377\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np378\ng35\n(S'Variable_Type'\n(I2\nttRp379\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np380\ng35\n(S'Variable_Type'\n(I2\nttRp381\nsS'Y:VBus37 - CRIZZA21'\np382\ng35\n(S'Variable_Type'\n(I2\nttRp383\nsS'Y:PMachine73 - CCASTI32'\np384\ng35\n(S'Variable_Type'\n(I2\nttRp385\nsS'Y:PMachine86 - CLUCCI31'\np386\ng35\n(S'Variable_Type'\n(I2\nttRp387\nsS'Y:Load 53 - CBASTI31'\np388\ng35\n(S'Variable_Type'\n(I2\nttRp389\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np390\ng35\n(S'Variable_Type'\n(I2\nttRp391\nsS'Y:VBus21 - CCORSC21'\np392\ng35\n(S'Variable_Type'\n(I2\nttRp393\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np394\ng35\n(S'Variable_Type'\n(I2\nttRp395\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np396\ng35\n(S'Variable_Type'\n(I2\nttRp397\nsS'Y:PMachine126 - CVAZZI37'\np398\ng35\n(S'Variable_Type'\n(I2\nttRp399\nsS'Y:PMachine64 - CCASAM32'\np400\ng35\n(S'Variable_Type'\n(I2\nttRp401\nsS'Y:VBus67 - CCASAM35'\np402\ng35\n(S'Variable_Type'\n(I2\nttRp403\nsS'Y:VBus53 - CBASTI31'\np404\ng35\n(S'Variable_Type'\n(I2\nttRp405\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np406\ng35\n(S'Variable_Type'\n(I2\nttRp407\nsS'Y:VBus61 - CCALVI31'\np408\ng35\n(S'Variable_Type'\n(I2\nttRp409\nsS'Y:VBus93 - COCANA32'\np410\ng35\n(S'Variable_Type'\n(I2\nttRp411\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np412\ng35\n(S'Variable_Type'\n(I2\nttRp413\nsS'Y:VBus104 - CPROPR31'\np414\ng35\n(S'Variable_Type'\n(I2\nttRp415\nsS'Y:VBus48 - CZSSS621'\np416\ng35\n(S'Variable_Type'\n(I2\nttRp417\nsS'Y:PMachine85 - CLORET32'\np418\ng35\n(S'Variable_Type'\n(I2\nttRp419\nsS'Y:VBus74 - CCERVI31'\np420\ng35\n(S'Variable_Type'\n(I2\nttRp421\nsS'X:ProdPV%Pnom'\np422\ng44\nsS'Y:VBus89 - CLUCCI34'\np423\ng35\n(S'Variable_Type'\n(I2\nttRp424\nsS'Y:Load 100 - COLETT31'\np425\ng35\n(S'Variable_Type'\n(I2\nttRp426\nsS'Y:PMachine54 - CBASTI32'\np427\ng35\n(S'Variable_Type'\n(I2\nttRp428\nsS'Y:VBus138 - CLUCCI39'\np429\ng35\n(S'Variable_Type'\n(I2\nttRp430\nsS'Y:VBus39 - CSTLUC21'\np431\ng35\n(S'Variable_Type'\n(I2\nttRp432\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np433\ng35\n(S'Variable_Type'\n(I2\nttRp434\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np435\ng35\n(S'Variable_Type'\n(I2\nttRp436\nsS'Y:Load 78 - CFURIA31'\np437\ng35\n(S'Variable_Type'\n(I2\nttRp438\nsS'Y:VBus28 - CLORET21'\np439\ng35\n(S'Variable_Type'\n(I2\nttRp440\nsS'Y:PMachine105 - CPROPR32'\np441\ng35\n(S'Variable_Type'\n(I2\nttRp442\nsS'Y:VBus96 - COCANA35'\np443\ng35\n(S'Variable_Type'\n(I2\nttRp444\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np445\ng35\n(S'Variable_Type'\n(I2\nttRp446\nsS'Y:PMachine18 - CCASAM21'\np447\ng35\n(S'Variable_Type'\n(I2\nttRp448\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np449\ng35\n(S'Variable_Type'\n(I2\nttRp450\nsS'Y:VBus13 - CBIGUG21'\np451\ng35\n(S'Variable_Type'\n(I2\nttRp452\nsS'Y:VBus92 - COCANA31'\np453\ng35\n(S'Variable_Type'\n(I2\nttRp454\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np455\ng35\n(S'Variable_Type'\n(I2\nttRp456\nsS'Y:Load 57 - CBONIF31'\np457\ng35\n(S'Variable_Type'\n(I2\nttRp458\nsS'Y:VBus58 - CBONIF32'\np459\ng35\n(S'Variable_Type'\n(I2\nttRp460\nsS'Y:VBus84 - CLORET31'\np461\ng35\n(S'Variable_Type'\n(I2\nttRp462\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np463\ng35\n(S'Variable_Type'\n(I2\nttRp464\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np465\ng35\n(S'Variable_Type'\n(I2\nttRp466\nsS'Y:VBus97 - COCANA36'\np467\ng35\n(S'Variable_Type'\n(I2\nttRp468\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np469\ng35\n(S'Variable_Type'\n(I2\nttRp470\nsS'Y:VBus79 - CFURIA32'\np471\ng35\n(S'Variable_Type'\n(I2\nttRp472\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np473\ng35\n(S'Variable_Type'\n(I2\nttRp474\nsS'Y:Load 110 - CSTLUC31'\np475\ng35\n(S'Variable_Type'\n(I2\nttRp476\nsS'Y:VBus80 - CGHISO31'\np477\ng35\n(S'Variable_Type'\n(I2\nttRp478\nsS'Y:PMachine114 - CSOVEN31'\np479\ng35\n(S'Variable_Type'\n(I2\nttRp480\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np481\ng35\n(S'Variable_Type'\n(I2\nttRp482\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np483\ng35\n(S'Variable_Type'\n(I2\nttRp484\nsS'Y:PMachine93 - COCANA32'\np485\ng35\n(S'Variable_Type'\n(I2\nttRp486\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np487\ng35\n(S'Variable_Type'\n(I2\nttRp488\nsS'Y:VBus87 - CLUCCI32'\np489\ng35\n(S'Variable_Type'\n(I2\nttRp490\nsS'Y:VBus62 - CCALVI32'\np491\ng35\n(S'Variable_Type'\n(I2\nttRp492\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np493\ng35\n(S'Variable_Type'\n(I2\nttRp494\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np495\ng35\n(S'Variable_Type'\n(I2\nttRp496\nsS'Y:VBus81 - CGHISO32'\np497\ng35\n(S'Variable_Type'\n(I2\nttRp498\nsS'Y:PMachine63 - CCASAM31'\np499\ng35\n(S'Variable_Type'\n(I2\nttRp500\nsS'Y:PMachine47 - CVAZZI21'\np501\ng35\n(S'Variable_Type'\n(I2\nttRp502\nsS'Y:VBus86 - CLUCCI31'\np503\ng35\n(S'Variable_Type'\n(I2\nttRp504\nsS'X:Load(pu)'\np505\ng36\nsS'Y:VBus95 - COCANA34'\np506\ng35\n(S'Variable_Type'\n(I2\nttRp507\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np508\ng35\n(S'Variable_Type'\n(I2\nttRp509\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np510\ng35\n(S'Variable_Type'\n(I2\nttRp511\nsS'Y:Load 95 - COCANA34'\np512\ng35\n(S'Variable_Type'\n(I2\nttRp513\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np514\ng35\n(S'Variable_Type'\n(I2\nttRp515\nsS'Y:PMachine90 - CMOROS31'\np516\ng35\n(S'Variable_Type'\n(I2\nttRp517\nsS'Y:Load 101 - CPIETR31'\np518\ng35\n(S'Variable_Type'\n(I2\nttRp519\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np520\ng35\n(S'Variable_Type'\n(I2\nttRp521\nsS'Y:PMachine132 - CVAZZI313'\np522\ng35\n(S'Variable_Type'\n(I2\nttRp523\nsS'Y:VBus125 - CVAZZI36'\np524\ng35\n(S'Variable_Type'\n(I2\nttRp525\nsS'Y:VBus135 - CLUCCI36'\np526\ng35\n(S'Variable_Type'\n(I2\nttRp527\nsS'Y:VBus47 - CVAZZI21'\np528\ng35\n(S'Variable_Type'\n(I2\nttRp529\nsS'Y:VBus94 - COCANA33'\np530\ng35\n(S'Variable_Type'\n(I2\nttRp531\nsS'Y:VBus17 - CCALVI21'\np532\ng35\n(S'Variable_Type'\n(I2\nttRp533\nsS'Y:VBus36 - CPROPR21'\np534\ng35\n(S'Variable_Type'\n(I2\nttRp535\nsS'Y:Load 90 - CMOROS31'\np536\ng35\n(S'Variable_Type'\n(I2\nttRp537\nsS'Y:VBus120 - CVAZZI31'\np538\ng35\n(S'Variable_Type'\n(I2\nttRp539\nsS'Y:VBus52 - CASPRE32'\np540\ng35\n(S'Variable_Type'\n(I2\nttRp541\nsS'Y:VBus25 - CFURIA22'\np542\ng35\n(S'Variable_Type'\n(I2\nttRp543\nsS'Y:Load 76 - CCORTE31'\np544\ng35\n(S'Variable_Type'\n(I2\nttRp545\nsS'Y:PMachine69 - CCASAM37'\np546\ng35\n(S'Variable_Type'\n(I2\nttRp547\nsS'Y:Load 74 - CCERVI31'\np548\ng35\n(S'Variable_Type'\n(I2\nttRp549\nsS'Y:PMachine92 - COCANA31'\np550\ng35\n(S'Variable_Type'\n(I2\nttRp551\nsS'Y:PMachine102 - CPORTO31'\np552\ng35\n(S'Variable_Type'\n(I2\nttRp553\nsS'Y:PMachine122 - CVAZZI33'\np554\ng35\n(S'Variable_Type'\n(I2\nttRp555\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np556\ng35\n(S'Variable_Type'\n(I2\nttRp557\nsS'Y:PMachine77 - CCORTE32'\np558\ng35\n(S'Variable_Type'\n(I2\nttRp559\nsS'Y:NbeTension'\np560\ng35\n(S'Variable_Type'\n(I2\nttRp561\nsS'Y:VBus126 - CVAZZI37'\np562\ng35\n(S'Variable_Type'\n(I2\nttRp563\nsS'Y:PMachine60 - CCALDA32'\np564\ng35\n(S'Variable_Type'\n(I2\nttRp565\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np566\ng35\n(S'Variable_Type'\n(I2\nttRp567\nsS'Y:VBus20 - CCERVI21'\np568\ng35\n(S'Variable_Type'\n(I2\nttRp569\nsS'Y:VBus119 - CTRAVO31'\np570\ng35\n(S'Variable_Type'\n(I2\nttRp571\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np572\ng35\n(S'Variable_Type'\n(I2\nttRp573\nsS'Y:VBus139 - CLUCCI310'\np574\ng35\n(S'Variable_Type'\n(I2\nttRp575\nsS'Y:VBus106 - CRIZZA31'\np576\ng35\n(S'Variable_Type'\n(I2\nttRp577\nsS'Y:PMachine66 - CCASAM34'\np578\ng35\n(S'Variable_Type'\n(I2\nttRp579\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np580\ng35\n(S'Variable_Type'\n(I2\nttRp581\nsS'Y:VBus136 - CLUCCI37'\np582\ng35\n(S'Variable_Type'\n(I2\nttRp583\nsS'Y:VBus90 - CMOROS31'\np584\ng35\n(S'Variable_Type'\n(I2\nttRp585\nsS'X:lineOff#'\np586\ng35\n(S'Variable_Type'\n(I2\nttRp587\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np588\ng35\n(S'Variable_Type'\n(I2\nttRp589\nsS'Y:VBus108 - CSAGON31'\np590\ng35\n(S'Variable_Type'\n(I2\nttRp591\nsS'Y:VBus137 - CLUCCI38'\np592\ng35\n(S'Variable_Type'\n(I2\nttRp593\nsS'Y:VBus130 - CVAZZI311'\np594\ng35\n(S'Variable_Type'\n(I2\nttRp595\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np596\ng35\n(S'Variable_Type'\n(I2\nttRp597\nsS'Y:VBus46 - CTRAVO21'\np598\ng35\n(S'Variable_Type'\n(I2\nttRp599\nsS'Y:VBus113 - CSAMPO32'\np600\ng35\n(S'Variable_Type'\n(I2\nttRp601\nsS'Y:PMachine133 - CVAZZI314'\np602\ng35\n(S'Variable_Type'\n(I2\nttRp603\nsS'Y:PMachine65 - CCASAM33'\np604\ng35\n(S'Variable_Type'\n(I2\nttRp605\nsS'Y:VBus78 - CFURIA31'\np606\ng35\n(S'Variable_Type'\n(I2\nttRp607\nsS'Y:VBus26 - CGHISO21'\np608\ng35\n(S'Variable_Type'\n(I2\nttRp609\nsS'Y:VBus121 - CVAZZI32'\np610\ng35\n(S'Variable_Type'\n(I2\nttRp611\nsS'Y:PMachine81 - CGHISO32'\np612\ng35\n(S'Variable_Type'\n(I2\nttRp613\nsS'Y:PMachine97 - COCANA36'\np614\ng35\n(S'Variable_Type'\n(I2\nttRp615\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np616\ng35\n(S'Variable_Type'\n(I2\nttRp617\nsS'Y:PMachine83 - CILERO32'\np618\ng35\n(S'Variable_Type'\n(I2\nttRp619\nsS'Y:VBus83 - CILERO32'\np620\ng35\n(S'Variable_Type'\n(I2\nttRp621\nsS'Y:VBus66 - CCASAM34'\np622\ng35\n(S'Variable_Type'\n(I2\nttRp623\nsS'Y:PMachine1 - CBONIF11'\np624\ng35\n(S'Variable_Type'\n(I2\nttRp625\nsS'Y:VBus111 - CSTMAR31'\np626\ng35\n(S'Variable_Type'\n(I2\nttRp627\nsS'Y:VBus124 - CVAZZI35'\np628\ng35\n(S'Variable_Type'\n(I2\nttRp629\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np630\ng35\n(S'Variable_Type'\n(I2\nttRp631\nsS'Y:PMachine131 - CVAZZI312'\np632\ng35\n(S'Variable_Type'\n(I2\nttRp633\nsS'Y:VBus44 - CTAGLI21'\np634\ng35\n(S'Variable_Type'\n(I2\nttRp635\nsS'Y:VBus88 - CLUCCI33'\np636\ng35\n(S'Variable_Type'\n(I2\nttRp637\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np638\ng35\n(S'Variable_Type'\n(I2\nttRp639\nsS'Y:VBus38 - CSAGON21'\np640\ng35\n(S'Variable_Type'\n(I2\nttRp641\nsS'Y:VBus29 - CLUCCI21'\np642\ng35\n(S'Variable_Type'\n(I2\nttRp643\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np644\ng35\n(S'Variable_Type'\n(I2\nttRp645\nsS'Y:VBus110 - CSTLUC31'\np646\ng35\n(S'Variable_Type'\n(I2\nttRp647\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np648\ng35\n(S'Variable_Type'\n(I2\nttRp649\nssS'noCopy'\np650\n(lp651\nS'orderedDomain'\np652\nasba(iOWContexts\nContext\np653\n(dp654\ng24\n(lp655\nsg26\n(dp656\nS'Iteration'\np657\ng35\n(S'Variable_Type'\n(I6\nttRp658\nssg28\n(dp659\nS'attrLabel'\np660\n(S''\nI-1\ntp661\nsS'attrShape'\np662\n(S''\nI0\ntp663\nsS'attrX'\np664\n(S'X:ProdPV%Pnom'\ng35\n(S'Variable_Type'\n(I2\nttRp665\ntp666\nsS'attrY'\np667\n(S'Y:%Losses'\ng35\n(S'Variable_Type'\n(I2\nttRp668\ntp669\nsS'attrSize'\np670\n(S''\nI0\ntp671\nsS'attrColor'\np672\n(S'X:Load(pu)'\ng35\n(S'Variable_Type'\n(I2\nttRp673\ntp674\nssg46\nF1369744625.9300001\nsg47\n(dp675\nS'Y:PMachine134 - CLUCCI35'\np676\ng35\n(S'Variable_Type'\n(I2\nttRp677\nsS'Y:VBus77 - CCORTE32'\np678\ng35\n(S'Variable_Type'\n(I2\nttRp679\nsS'Y:VBus134 - CLUCCI35'\np680\ng35\n(S'Variable_Type'\n(I2\nttRp681\nsS'Y:VBus109 - CSAGON32'\np682\ng35\n(S'Variable_Type'\n(I2\nttRp683\nsS'Y:VBus102 - CPORTO31'\np684\ng35\n(S'Variable_Type'\n(I2\nttRp685\nsS'Y:VBus18 - CCASAM21'\np686\ng35\n(S'Variable_Type'\n(I2\nttRp687\nsS'Y:VBus114 - CSOVEN31'\np688\ng35\n(S'Variable_Type'\n(I2\nttRp689\nsS'Y:VBus83 - CILERO32'\np690\ng35\n(S'Variable_Type'\n(I2\nttRp691\nsS'Y:VBus117 - CTOLLA32'\np692\ng35\n(S'Variable_Type'\n(I2\nttRp693\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np694\ng35\n(S'Variable_Type'\n(I2\nttRp695\nsS'Y:PMachine87 - CLUCCI32'\np696\ng35\n(S'Variable_Type'\n(I2\nttRp697\nsS'Y:PMachine113 - CSAMPO32'\np698\ng35\n(S'Variable_Type'\n(I2\nttRp699\nsS'Y:Load 84 - CLORET31'\np700\ng35\n(S'Variable_Type'\n(I2\nttRp701\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np702\ng35\n(S'Variable_Type'\n(I2\nttRp703\nsS'Y:Load 80 - CGHISO31'\np704\ng35\n(S'Variable_Type'\n(I2\nttRp705\nsS'Y:PMachine125 - CVAZZI36'\np706\ng35\n(S'Variable_Type'\n(I2\nttRp707\nsS'Y:VBus116 - CTOLLA31'\np708\ng35\n(S'Variable_Type'\n(I2\nttRp709\nsS'Y:PMachine88 - CLUCCI33'\np710\ng35\n(S'Variable_Type'\n(I2\nttRp711\nsS'Y:PMachine124 - CVAZZI35'\np712\ng35\n(S'Variable_Type'\n(I2\nttRp713\nsS'Y:PMachine111 - CSTMAR31'\np714\ng35\n(S'Variable_Type'\n(I2\nttRp715\nsS'Y:NbeTransit'\np716\ng35\n(S'Variable_Type'\n(I2\nttRp717\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np718\ng35\n(S'Variable_Type'\n(I2\nttRp719\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np720\ng35\n(S'Variable_Type'\n(I2\nttRp721\nsS'Y:PMachine130 - CVAZZI311'\np722\ng35\n(S'Variable_Type'\n(I2\nttRp723\nsS'Y:PMachine127 - CVAZZI38'\np724\ng35\n(S'Variable_Type'\n(I2\nttRp725\nsS'Y:VBus131 - CVAZZI312'\np726\ng35\n(S'Variable_Type'\n(I2\nttRp727\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np728\ng35\n(S'Variable_Type'\n(I2\nttRp729\nsS'Y:PMachine123 - CVAZZI34'\np730\ng35\n(S'Variable_Type'\n(I2\nttRp731\nsS'Y:VBus118 - CTOLLA33'\np732\ng35\n(S'Variable_Type'\n(I2\nttRp733\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np734\ng35\n(S'Variable_Type'\n(I2\nttRp735\nsS'Y:PMachine58 - CBONIF32'\np736\ng35\n(S'Variable_Type'\n(I2\nttRp737\nsS'Y:VBus90 - CMOROS31'\np738\ng35\n(S'Variable_Type'\n(I2\nttRp739\nsS'Y:Load 104 - CPROPR31'\np740\ng35\n(S'Variable_Type'\n(I2\nttRp741\nsS'Y:PMachine30 - CLUCCI22'\np742\ng35\n(S'Variable_Type'\n(I2\nttRp743\nsS'Y:VBus100 - COLETT31'\np744\ng35\n(S'Variable_Type'\n(I2\nttRp745\nsS'Y:PProdTot'\np746\ng35\n(S'Variable_Type'\n(I2\nttRp747\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np748\ng35\n(S'Variable_Type'\n(I2\nttRp749\nsS'Y:VBus57 - CBONIF31'\np750\ng35\n(S'Variable_Type'\n(I2\nttRp751\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np752\ng35\n(S'Variable_Type'\n(I2\nttRp753\nsS'Y:PMachine131 - CVAZZI312'\np754\ng35\n(S'Variable_Type'\n(I2\nttRp755\nsS'Y:PMachine109 - CSAGON32'\np756\ng35\n(S'Variable_Type'\n(I2\nttRp757\nsS'Y:PMachine135 - CLUCCI36'\np758\ng35\n(S'Variable_Type'\n(I2\nttRp759\nsS'Y:VBus30 - CLUCCI22'\np760\ng35\n(S'Variable_Type'\n(I2\nttRp761\nsS'Y:VBus122 - CVAZZI33'\np762\ng35\n(S'Variable_Type'\n(I2\nttRp763\nsS'Y:VBus22 - CCORTE21'\np764\ng35\n(S'Variable_Type'\n(I2\nttRp765\nsS'Y:PMachine89 - CLUCCI34'\np766\ng35\n(S'Variable_Type'\n(I2\nttRp767\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np768\ng35\n(S'Variable_Type'\n(I2\nttRp769\nsS'Y:PMachine107 - CRIZZA32'\np770\ng35\n(S'Variable_Type'\n(I2\nttRp771\nsS'Y:VBus16 - CCALDA21'\np772\ng35\n(S'Variable_Type'\n(I2\nttRp773\nsS'Y:Load 102 - CPORTO31'\np774\ng35\n(S'Variable_Type'\n(I2\nttRp775\nsS'Y:VBus107 - CRIZZA32'\np776\ng35\n(S'Variable_Type'\n(I2\nttRp777\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np778\ng35\n(S'Variable_Type'\n(I2\nttRp779\nsS'Y:VBus41 - CSAMPO21'\np780\ng35\n(S'Variable_Type'\n(I2\nttRp781\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np782\ng35\n(S'Variable_Type'\n(I2\nttRp783\nsS'Y:VBus34 - CPIETR21'\np784\ng35\n(S'Variable_Type'\n(I2\nttRp785\nsS'Y:Load 108 - CSAGON31'\np786\ng35\n(S'Variable_Type'\n(I2\nttRp787\nsS'Y:VBus56 - CBIGUG32'\np788\ng35\n(S'Variable_Type'\n(I2\nttRp789\nsS'Y:PMachine42 - CSISCO21'\np790\ng35\n(S'Variable_Type'\n(I2\nttRp791\nsS'Y:PMachine138 - CLUCCI39'\np792\ng35\n(S'Variable_Type'\n(I2\nttRp793\nsS'Y:PMachine112 - CSAMPO31'\np794\ng35\n(S'Variable_Type'\n(I2\nttRp795\nsS'Y:VBus105 - CPROPR32'\np796\ng35\n(S'Variable_Type'\n(I2\nttRp797\nsS'Y:VBus1 - CBONIF11'\np798\ng35\n(S'Variable_Type'\n(I2\nttRp799\nsS'Y:VBus12 - CBASTI21'\np800\ng35\n(S'Variable_Type'\n(I2\nttRp801\nsS'Y:PMachine129 - CVAZZI310'\np802\ng35\n(S'Variable_Type'\n(I2\nttRp803\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np804\ng35\n(S'Variable_Type'\n(I2\nttRp805\nsS'Y:VBus35 - CPORTO21'\np806\ng35\n(S'Variable_Type'\n(I2\nttRp807\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np808\ng35\n(S'Variable_Type'\n(I2\nttRp809\nsS'Y:VBus54 - CBASTI32'\np810\ng35\n(S'Variable_Type'\n(I2\nttRp811\nsS'Y:VBus69 - CCASAM37'\np812\ng35\n(S'Variable_Type'\n(I2\nttRp813\nsS'Y:VBus45 - CTOLLA21'\np814\ng35\n(S'Variable_Type'\n(I2\nttRp815\nsS'Y:PMachine115 - CTAGLI31'\np816\ng35\n(S'Variable_Type'\n(I2\nttRp817\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np818\ng35\n(S'Variable_Type'\n(I2\nttRp819\nsS'Y:VBus43 - CSOVEN21'\np820\ng35\n(S'Variable_Type'\n(I2\nttRp821\nsS'Y:VBus76 - CCORTE31'\np822\ng35\n(S'Variable_Type'\n(I2\nttRp823\nsS'Y:VBus75 - CCORSC31'\np824\ng35\n(S'Variable_Type'\n(I2\nttRp825\nsS'Y:PMachine78 - CFURIA31'\np826\ng35\n(S'Variable_Type'\n(I2\nttRp827\nsS'Y:VBus127 - CVAZZI38'\np828\ng35\n(S'Variable_Type'\n(I2\nttRp829\nsS'Y:VBus115 - CTAGLI31'\np830\ng35\n(S'Variable_Type'\n(I2\nttRp831\nsS'Y:Load 61 - CCALVI31'\np832\ng35\n(S'Variable_Type'\n(I2\nttRp833\nsS'Y:VBus55 - CBIGUG31'\np834\ng35\n(S'Variable_Type'\n(I2\nttRp835\nsS'Y:Load 42 - CSISCO21'\np836\ng35\n(S'Variable_Type'\n(I2\nttRp837\nsS'Y:VBus72 - CCASTI31'\np838\ng35\n(S'Variable_Type'\n(I2\nttRp839\nsS'Y:Load 37 - CRIZZA21'\np840\ng35\n(S'Variable_Type'\n(I2\nttRp841\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np842\ng35\n(S'Variable_Type'\n(I2\nttRp843\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np844\ng35\n(S'Variable_Type'\n(I2\nttRp845\nsS'Y:PMachine137 - CLUCCI38'\np846\ng35\n(S'Variable_Type'\n(I2\nttRp847\nsS'Y:PMachine67 - CCASAM35'\np848\ng35\n(S'Variable_Type'\n(I2\nttRp849\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np850\ng35\n(S'Variable_Type'\n(I2\nttRp851\nsS'Y:VBus31 - CMOROS21'\np852\ng35\n(S'Variable_Type'\n(I2\nttRp853\nsS'Y:VBus103 - CPORTO32'\np854\ng35\n(S'Variable_Type'\n(I2\nttRp855\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np856\ng35\n(S'Variable_Type'\n(I2\nttRp857\nsS'Y:PMachine14 - CBONIF21'\np858\ng35\n(S'Variable_Type'\n(I2\nttRp859\nsS'Y:PMachine72 - CCASTI31'\np860\ng35\n(S'Variable_Type'\n(I2\nttRp861\nsS'Y:VBus27 - CILERO21'\np862\ng35\n(S'Variable_Type'\n(I2\nttRp863\nsS'Y:PMachine75 - CCORSC31'\np864\ng35\n(S'Variable_Type'\n(I2\nttRp865\nsS'Y:Load 51 - CASPRE31'\np866\ng35\n(S'Variable_Type'\n(I2\nttRp867\nsS'Y:VBus51 - CASPRE31'\np868\ng35\n(S'Variable_Type'\n(I2\nttRp869\nsS'Y:PMachine94 - COCANA33'\np870\ng35\n(S'Variable_Type'\n(I2\nttRp871\nsS'Y:PMachine126 - CVAZZI37'\np872\ng35\n(S'Variable_Type'\n(I2\nttRp873\nsS'Y:Load 86 - CLUCCI31'\np874\ng35\n(S'Variable_Type'\n(I2\nttRp875\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np876\ng35\n(S'Variable_Type'\n(I2\nttRp877\nsS'Y:PMachine104 - CPROPR31'\np878\ng35\n(S'Variable_Type'\n(I2\nttRp879\nsS'Y:VBus128 - CVAZZI39'\np880\ng35\n(S'Variable_Type'\n(I2\nttRp881\nsS'Y:PMachine136 - CLUCCI37'\np882\ng35\n(S'Variable_Type'\n(I2\nttRp883\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np884\ng35\n(S'Variable_Type'\n(I2\nttRp885\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np886\ng35\n(S'Variable_Type'\n(I2\nttRp887\nsS'Y:PMachine29 - CLUCCI21'\np888\ng35\n(S'Variable_Type'\n(I2\nttRp889\nsS'Y:VBus42 - CSISCO21'\np890\ng35\n(S'Variable_Type'\n(I2\nttRp891\nsS'Y:Load 110 - CSTLUC31'\np892\ng35\n(S'Variable_Type'\n(I2\nttRp893\nsS'Y:VBus14 - CBONIF21'\np894\ng35\n(S'Variable_Type'\n(I2\nttRp895\nsS'Y:VBus73 - CCASTI32'\np896\ng35\n(S'Variable_Type'\n(I2\nttRp897\nsS'Y:VBus64 - CCASAM32'\np898\ng35\n(S'Variable_Type'\n(I2\nttRp899\nsS'Y:PMachine128 - CVAZZI39'\np900\ng35\n(S'Variable_Type'\n(I2\nttRp901\nsS'Y:VBus133 - CVAZZI314'\np902\ng35\n(S'Variable_Type'\n(I2\nttRp903\nsS'Y:VBus63 - CCASAM31'\np904\ng35\n(S'Variable_Type'\n(I2\nttRp905\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np906\ng35\n(S'Variable_Type'\n(I2\nttRp907\nsS'Y:%Losses'\np908\ng668\nsS'Y:VBus85 - CLORET32'\np909\ng35\n(S'Variable_Type'\n(I2\nttRp910\nsS'Y:Load 59 - CCALDA31'\np911\ng35\n(S'Variable_Type'\n(I2\nttRp912\nsS'Y:VBus129 - CVAZZI310'\np913\ng35\n(S'Variable_Type'\n(I2\nttRp914\nsS'Y:VBus101 - CPIETR31'\np915\ng35\n(S'Variable_Type'\n(I2\nttRp916\nsS'Y:PMachine106 - CRIZZA31'\np917\ng35\n(S'Variable_Type'\n(I2\nttRp918\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np919\ng35\n(S'Variable_Type'\n(I2\nttRp920\nsS'Y:PMachine118 - CTOLLA33'\np921\ng35\n(S'Variable_Type'\n(I2\nttRp922\nsS'Y:VBus19 - CCASTI21'\np923\ng35\n(S'Variable_Type'\n(I2\nttRp924\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np925\ng35\n(S'Variable_Type'\n(I2\nttRp926\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np927\ng35\n(S'Variable_Type'\n(I2\nttRp928\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np929\ng35\n(S'Variable_Type'\n(I2\nttRp930\nsS'Y:Load 115 - CTAGLI31'\np931\ng35\n(S'Variable_Type'\n(I2\nttRp932\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np933\ng35\n(S'Variable_Type'\n(I2\nttRp934\nsS'Y:VBus15 - CBONIF22'\np935\ng35\n(S'Variable_Type'\n(I2\nttRp936\nsS'Y:PMachine47 - CVAZZI21'\np937\ng35\n(S'Variable_Type'\n(I2\nttRp938\nsS'Y:VBus123 - CVAZZI34'\np939\ng35\n(S'Variable_Type'\n(I2\nttRp940\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np941\ng35\n(S'Variable_Type'\n(I2\nttRp942\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np943\ng35\n(S'Variable_Type'\n(I2\nttRp944\nsS'Y:VBus44 - CTAGLI21'\np945\ng35\n(S'Variable_Type'\n(I2\nttRp946\nsS'Y:VBus65 - CCASAM33'\np947\ng35\n(S'Variable_Type'\n(I2\nttRp948\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np949\ng35\n(S'Variable_Type'\n(I2\nttRp950\nsS'Y:PMachine139 - CLUCCI310'\np951\ng35\n(S'Variable_Type'\n(I2\nttRp952\nsS'Y:VBus112 - CSAMPO31'\np953\ng35\n(S'Variable_Type'\n(I2\nttRp954\nsS'Y:VBus68 - CCASAM36'\np955\ng35\n(S'Variable_Type'\n(I2\nttRp956\nsS'Y:Load 55 - CBIGUG31'\np957\ng35\n(S'Variable_Type'\n(I2\nttRp958\nsS'Y:PMachine53 - CBASTI31'\np959\ng35\n(S'Variable_Type'\n(I2\nttRp960\nsS'Y:NbeTransit_0.9-1'\np961\ng35\n(S'Variable_Type'\n(I2\nttRp962\nsS'Y:VBus24 - CFURIA21'\np963\ng35\n(S'Variable_Type'\n(I2\nttRp964\nsS'Y:VBus23 - CCORTE22'\np965\ng35\n(S'Variable_Type'\n(I2\nttRp966\nsS'XProdEolienne%Pnom'\np967\ng35\n(S'Variable_Type'\n(I2\nttRp968\nsS'Y:VBus40 - CSTMAR21'\np969\ng35\n(S'Variable_Type'\n(I2\nttRp970\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np971\ng35\n(S'Variable_Type'\n(I2\nttRp972\nsS'Y:PMachine120 - CVAZZI31'\np973\ng35\n(S'Variable_Type'\n(I2\nttRp974\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np975\ng35\n(S'Variable_Type'\n(I2\nttRp976\nsS'Y:PMachine117 - CTOLLA32'\np977\ng35\n(S'Variable_Type'\n(I2\nttRp978\nsS'Y:VBus89 - CLUCCI34'\np979\ng35\n(S'Variable_Type'\n(I2\nttRp980\nsS'Y:VBus33 - COLETT21'\np981\ng35\n(S'Variable_Type'\n(I2\nttRp982\nsS'Y:VBus32 - COCANA21'\np983\ng35\n(S'Variable_Type'\n(I2\nttRp984\nsS'Y:PMachine121 - CVAZZI32'\np985\ng35\n(S'Variable_Type'\n(I2\nttRp986\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np987\ng35\n(S'Variable_Type'\n(I2\nttRp988\nsS'Y:VBus59 - CCALDA31'\np989\ng35\n(S'Variable_Type'\n(I2\nttRp990\nsS'Y:VBus82 - CILERO31'\np991\ng35\n(S'Variable_Type'\n(I2\nttRp992\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np993\ng35\n(S'Variable_Type'\n(I2\nttRp994\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np995\ng35\n(S'Variable_Type'\n(I2\nttRp996\nsS'Y:VBus37 - CRIZZA21'\np997\ng35\n(S'Variable_Type'\n(I2\nttRp998\nsS'Y:PMachine73 - CCASTI32'\np999\ng35\n(S'Variable_Type'\n(I2\nttRp1000\nsS'Y:PMachine86 - CLUCCI31'\np1001\ng35\n(S'Variable_Type'\n(I2\nttRp1002\nsS'Y:Load 53 - CBASTI31'\np1003\ng35\n(S'Variable_Type'\n(I2\nttRp1004\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np1005\ng35\n(S'Variable_Type'\n(I2\nttRp1006\nsS'Y:VBus21 - CCORSC21'\np1007\ng35\n(S'Variable_Type'\n(I2\nttRp1008\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np1009\ng35\n(S'Variable_Type'\n(I2\nttRp1010\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np1011\ng35\n(S'Variable_Type'\n(I2\nttRp1012\nsS'Y:Load 82 - CILERO31'\np1013\ng35\n(S'Variable_Type'\n(I2\nttRp1014\nsS'Y:PMachine64 - CCASAM32'\np1015\ng35\n(S'Variable_Type'\n(I2\nttRp1016\nsS'Y:VBus67 - CCASAM35'\np1017\ng35\n(S'Variable_Type'\n(I2\nttRp1018\nsS'Y:VBus53 - CBASTI31'\np1019\ng35\n(S'Variable_Type'\n(I2\nttRp1020\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np1021\ng35\n(S'Variable_Type'\n(I2\nttRp1022\nsS'Y:VBus61 - CCALVI31'\np1023\ng35\n(S'Variable_Type'\n(I2\nttRp1024\nsS'Y:VBus93 - COCANA32'\np1025\ng35\n(S'Variable_Type'\n(I2\nttRp1026\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np1027\ng35\n(S'Variable_Type'\n(I2\nttRp1028\nsS'Y:PMachine92 - COCANA31'\np1029\ng35\n(S'Variable_Type'\n(I2\nttRp1030\nsS'Y:VBus104 - CPROPR31'\np1031\ng35\n(S'Variable_Type'\n(I2\nttRp1032\nsS'Y:VBus48 - CZSSS621'\np1033\ng35\n(S'Variable_Type'\n(I2\nttRp1034\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np1035\ng35\n(S'Variable_Type'\n(I2\nttRp1036\nsS'Y:VBus74 - CCERVI31'\np1037\ng35\n(S'Variable_Type'\n(I2\nttRp1038\nsS'Y:VBus36 - CPROPR21'\np1039\ng35\n(S'Variable_Type'\n(I2\nttRp1040\nsS'Y:Load 100 - COLETT31'\np1041\ng35\n(S'Variable_Type'\n(I2\nttRp1042\nsS'Y:PMachine54 - CBASTI32'\np1043\ng35\n(S'Variable_Type'\n(I2\nttRp1044\nsS'Y:VBus138 - CLUCCI39'\np1045\ng35\n(S'Variable_Type'\n(I2\nttRp1046\nsS'Y:VBus39 - CSTLUC21'\np1047\ng35\n(S'Variable_Type'\n(I2\nttRp1048\nsS'Y:PMachine74 - CCERVI31'\np1049\ng35\n(S'Variable_Type'\n(I2\nttRp1050\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np1051\ng35\n(S'Variable_Type'\n(I2\nttRp1052\nsS'Y:Load 78 - CFURIA31'\np1053\ng35\n(S'Variable_Type'\n(I2\nttRp1054\nsS'Y:VBus28 - CLORET21'\np1055\ng35\n(S'Variable_Type'\n(I2\nttRp1056\nsS'Y:PMachine105 - CPROPR32'\np1057\ng35\n(S'Variable_Type'\n(I2\nttRp1058\nsS'Y:VBus96 - COCANA35'\np1059\ng35\n(S'Variable_Type'\n(I2\nttRp1060\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np1061\ng35\n(S'Variable_Type'\n(I2\nttRp1062\nsS'Y:PMachine18 - CCASAM21'\np1063\ng35\n(S'Variable_Type'\n(I2\nttRp1064\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np1065\ng35\n(S'Variable_Type'\n(I2\nttRp1066\nsS'Y:VBus13 - CBIGUG21'\np1067\ng35\n(S'Variable_Type'\n(I2\nttRp1068\nsS'Y:VBus92 - COCANA31'\np1069\ng35\n(S'Variable_Type'\n(I2\nttRp1070\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np1071\ng35\n(S'Variable_Type'\n(I2\nttRp1072\nsS'Y:Load 76 - CCORTE31'\np1073\ng35\n(S'Variable_Type'\n(I2\nttRp1074\nsS'Y:VBus58 - CBONIF32'\np1075\ng35\n(S'Variable_Type'\n(I2\nttRp1076\nsS'Y:VBus84 - CLORET31'\np1077\ng35\n(S'Variable_Type'\n(I2\nttRp1078\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np1079\ng35\n(S'Variable_Type'\n(I2\nttRp1080\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np1081\ng35\n(S'Variable_Type'\n(I2\nttRp1082\nsS'Y:VBus97 - COCANA36'\np1083\ng35\n(S'Variable_Type'\n(I2\nttRp1084\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np1085\ng35\n(S'Variable_Type'\n(I2\nttRp1086\nsS'Y:VBus106 - CRIZZA31'\np1087\ng35\n(S'Variable_Type'\n(I2\nttRp1088\nsS'Y:VBus79 - CFURIA32'\np1089\ng35\n(S'Variable_Type'\n(I2\nttRp1090\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np1091\ng35\n(S'Variable_Type'\n(I2\nttRp1092\nsS'Y:VBus80 - CGHISO31'\np1093\ng35\n(S'Variable_Type'\n(I2\nttRp1094\nsS'Y:PMachine114 - CSOVEN31'\np1095\ng35\n(S'Variable_Type'\n(I2\nttRp1096\nsS'Y:VBus132 - CVAZZI313'\np1097\ng35\n(S'Variable_Type'\n(I2\nttRp1098\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np1099\ng35\n(S'Variable_Type'\n(I2\nttRp1100\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np1101\ng35\n(S'Variable_Type'\n(I2\nttRp1102\nsS'Y:VBus87 - CLUCCI32'\np1103\ng35\n(S'Variable_Type'\n(I2\nttRp1104\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np1105\ng35\n(S'Variable_Type'\n(I2\nttRp1106\nsS'Y:VBus88 - CLUCCI33'\np1107\ng35\n(S'Variable_Type'\n(I2\nttRp1108\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np1109\ng35\n(S'Variable_Type'\n(I2\nttRp1110\nsS'Y:PMachine85 - CLORET32'\np1111\ng35\n(S'Variable_Type'\n(I2\nttRp1112\nsS'Y:VBus81 - CGHISO32'\np1113\ng35\n(S'Variable_Type'\n(I2\nttRp1114\nsS'Y:PMachine63 - CCASAM31'\np1115\ng35\n(S'Variable_Type'\n(I2\nttRp1116\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np1117\ng35\n(S'Variable_Type'\n(I2\nttRp1118\nsS'X:Load(pu)'\np1119\ng673\nsS'Y:NbeTension'\np1120\ng35\n(S'Variable_Type'\n(I2\nttRp1121\nsS'Y:VBus95 - COCANA34'\np1122\ng35\n(S'Variable_Type'\n(I2\nttRp1123\nsS'Y:VBus62 - CCALVI32'\np1124\ng35\n(S'Variable_Type'\n(I2\nttRp1125\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np1126\ng35\n(S'Variable_Type'\n(I2\nttRp1127\nsS'Y:Load 95 - COCANA34'\np1128\ng35\n(S'Variable_Type'\n(I2\nttRp1129\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np1130\ng35\n(S'Variable_Type'\n(I2\nttRp1131\nsS'Y:PMachine90 - CMOROS31'\np1132\ng35\n(S'Variable_Type'\n(I2\nttRp1133\nsS'Y:Load 101 - CPIETR31'\np1134\ng35\n(S'Variable_Type'\n(I2\nttRp1135\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np1136\ng35\n(S'Variable_Type'\n(I2\nttRp1137\nsS'Y:PMachine132 - CVAZZI313'\np1138\ng35\n(S'Variable_Type'\n(I2\nttRp1139\nsS'Y:PMachine65 - CCASAM33'\np1140\ng35\n(S'Variable_Type'\n(I2\nttRp1141\nsS'Y:VBus125 - CVAZZI36'\np1142\ng35\n(S'Variable_Type'\n(I2\nttRp1143\nsS'Y:VBus135 - CLUCCI36'\np1144\ng35\n(S'Variable_Type'\n(I2\nttRp1145\nsS'Y:VBus47 - CVAZZI21'\np1146\ng35\n(S'Variable_Type'\n(I2\nttRp1147\nsS'Y:VBus94 - COCANA33'\np1148\ng35\n(S'Variable_Type'\n(I2\nttRp1149\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np1150\ng35\n(S'Variable_Type'\n(I2\nttRp1151\nsS'Y:VBus17 - CCALVI21'\np1152\ng35\n(S'Variable_Type'\n(I2\nttRp1153\nsS'Y:Load 90 - CMOROS31'\np1154\ng35\n(S'Variable_Type'\n(I2\nttRp1155\nsS'Y:VBus120 - CVAZZI31'\np1156\ng35\n(S'Variable_Type'\n(I2\nttRp1157\nsS'Y:VBus52 - CASPRE32'\np1158\ng35\n(S'Variable_Type'\n(I2\nttRp1159\nsS'Y:VBus25 - CFURIA22'\np1160\ng35\n(S'Variable_Type'\n(I2\nttRp1161\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np1162\ng35\n(S'Variable_Type'\n(I2\nttRp1163\nsS'Y:PMachine69 - CCASAM37'\np1164\ng35\n(S'Variable_Type'\n(I2\nttRp1165\nsS'Y:PConsoTot'\np1166\ng35\n(S'Variable_Type'\n(I2\nttRp1167\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np1168\ng35\n(S'Variable_Type'\n(I2\nttRp1169\nsS'Y:PMachine102 - CPORTO31'\np1170\ng35\n(S'Variable_Type'\n(I2\nttRp1171\nsS'Y:VBus136 - CLUCCI37'\np1172\ng35\n(S'Variable_Type'\n(I2\nttRp1173\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np1174\ng35\n(S'Variable_Type'\n(I2\nttRp1175\nsS'Y:PMachine122 - CVAZZI33'\np1176\ng35\n(S'Variable_Type'\n(I2\nttRp1177\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np1178\ng35\n(S'Variable_Type'\n(I2\nttRp1179\nsS'Y:PMachine77 - CCORTE32'\np1180\ng35\n(S'Variable_Type'\n(I2\nttRp1181\nsS'Y:PMachine116 - CTOLLA31'\np1182\ng35\n(S'Variable_Type'\n(I2\nttRp1183\nsS'Y:VBus126 - CVAZZI37'\np1184\ng35\n(S'Variable_Type'\n(I2\nttRp1185\nsS'Y:PMachine60 - CCALDA32'\np1186\ng35\n(S'Variable_Type'\n(I2\nttRp1187\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np1188\ng35\n(S'Variable_Type'\n(I2\nttRp1189\nsS'Y:VBus20 - CCERVI21'\np1190\ng35\n(S'Variable_Type'\n(I2\nttRp1191\nsS'Y:VBus119 - CTRAVO31'\np1192\ng35\n(S'Variable_Type'\n(I2\nttRp1193\nsS'Y:VBus11 - CASPRE21'\np1194\ng35\n(S'Variable_Type'\n(I2\nttRp1195\nsS'Y:VBus139 - CLUCCI310'\np1196\ng35\n(S'Variable_Type'\n(I2\nttRp1197\nsS'Y:VBus60 - CCALDA32'\np1198\ng35\n(S'Variable_Type'\n(I2\nttRp1199\nsS'Y:PMachine66 - CCASAM34'\np1200\ng35\n(S'Variable_Type'\n(I2\nttRp1201\nsS'Y:PMachine101 - CPIETR31'\np1202\ng35\n(S'Variable_Type'\n(I2\nttRp1203\nsS'Y:PMachine133 - CVAZZI314'\np1204\ng35\n(S'Variable_Type'\n(I2\nttRp1205\nsS'Y:PMachine62 - CCALVI32'\np1206\ng35\n(S'Variable_Type'\n(I2\nttRp1207\nsS'Y:Load 74 - CCERVI31'\np1208\ng35\n(S'Variable_Type'\n(I2\nttRp1209\nsS'X:lineOff#'\np1210\ng35\n(S'Variable_Type'\n(I2\nttRp1211\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np1212\ng35\n(S'Variable_Type'\n(I2\nttRp1213\nsS'Y:VBus108 - CSAGON31'\np1214\ng35\n(S'Variable_Type'\n(I2\nttRp1215\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np1216\ng35\n(S'Variable_Type'\n(I2\nttRp1217\nsS'Y:VBus137 - CLUCCI38'\np1218\ng35\n(S'Variable_Type'\n(I2\nttRp1219\nsS'Y:VBus130 - CVAZZI311'\np1220\ng35\n(S'Variable_Type'\n(I2\nttRp1221\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np1222\ng35\n(S'Variable_Type'\n(I2\nttRp1223\nsS'Y:VBus46 - CTRAVO21'\np1224\ng35\n(S'Variable_Type'\n(I2\nttRp1225\nsS'Y:VBus113 - CSAMPO32'\np1226\ng35\n(S'Variable_Type'\n(I2\nttRp1227\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np1228\ng35\n(S'Variable_Type'\n(I2\nttRp1229\nsS'Y:PMachine68 - CCASAM36'\np1230\ng35\n(S'Variable_Type'\n(I2\nttRp1231\nsS'Y:VBus78 - CFURIA31'\np1232\ng35\n(S'Variable_Type'\n(I2\nttRp1233\nsS'Y:VBus26 - CGHISO21'\np1234\ng35\n(S'Variable_Type'\n(I2\nttRp1235\nsS'Y:VBus121 - CVAZZI32'\np1236\ng35\n(S'Variable_Type'\n(I2\nttRp1237\nsS'Y:PMachine97 - COCANA36'\np1238\ng35\n(S'Variable_Type'\n(I2\nttRp1239\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np1240\ng35\n(S'Variable_Type'\n(I2\nttRp1241\nsS'Y:PMachine83 - CILERO32'\np1242\ng35\n(S'Variable_Type'\n(I2\nttRp1243\nsS'Y:Max%A'\np1244\ng35\n(S'Variable_Type'\n(I2\nttRp1245\nsS'Y:VBus66 - CCASAM34'\np1246\ng35\n(S'Variable_Type'\n(I2\nttRp1247\nsS'Y:PMachine1 - CBONIF11'\np1248\ng35\n(S'Variable_Type'\n(I2\nttRp1249\nsS'Y:VBus111 - CSTMAR31'\np1250\ng35\n(S'Variable_Type'\n(I2\nttRp1251\nsS'Y:VBus124 - CVAZZI35'\np1252\ng35\n(S'Variable_Type'\n(I2\nttRp1253\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np1254\ng35\n(S'Variable_Type'\n(I2\nttRp1255\nsS'Y:VBus29 - CLUCCI21'\np1256\ng35\n(S'Variable_Type'\n(I2\nttRp1257\nsS'Y:PMachine93 - COCANA32'\np1258\ng35\n(S'Variable_Type'\n(I2\nttRp1259\nsS'Y:Load 57 - CBONIF31'\np1260\ng35\n(S'Variable_Type'\n(I2\nttRp1261\nsS'Y:VBus86 - CLUCCI31'\np1262\ng35\n(S'Variable_Type'\n(I2\nttRp1263\nsS'Y:VBus38 - CSAGON21'\np1264\ng35\n(S'Variable_Type'\n(I2\nttRp1265\nsS'Y:PMachine81 - CGHISO32'\np1266\ng35\n(S'Variable_Type'\n(I2\nttRp1267\nsS'Y:PMachine61 - CCALVI31'\np1268\ng35\n(S'Variable_Type'\n(I2\nttRp1269\nsS'Y:VBus110 - CSTLUC31'\np1270\ng35\n(S'Variable_Type'\n(I2\nttRp1271\nsS'X:ProdPV%Pnom'\np1272\ng665\nssg650\n(lp1273\ng652\nasba(iOWContexts\nContext\np1274\n(dp1275\ng24\n(lp1276\nsg26\n(dp1277\nsg28\n(dp1278\ng660\n(S''\nI-1\ntp1279\nsg662\n(S''\nI0\ntp1280\nsg664\n(S'X:Load(pu)'\np1281\ng35\n(S'Variable_Type'\n(I2\nttRp1282\ntp1283\nsg667\n(S'X:Load(pu)'\np1284\ng1282\ntp1285\nsg670\n(S''\nI0\ntp1286\nsg672\n(S'Y:Load 115 - CTAGLI31'\np1287\ng35\n(S'Variable_Type'\n(I2\nttRp1288\ntp1289\nssg46\nF1370267501.4719999\nsg47\n(dp1290\nS'Y:PMachine134 - CLUCCI35'\np1291\ng35\n(S'Variable_Type'\n(I2\nttRp1292\nsS'Y:VBus77 - CCORTE32'\np1293\ng35\n(S'Variable_Type'\n(I2\nttRp1294\nsS'Y:VBus134 - CLUCCI35'\np1295\ng35\n(S'Variable_Type'\n(I2\nttRp1296\nsS'Y:VBus109 - CSAGON32'\np1297\ng35\n(S'Variable_Type'\n(I2\nttRp1298\nsS'Y:VBus102 - CPORTO31'\np1299\ng35\n(S'Variable_Type'\n(I2\nttRp1300\nsS'Y:VBus18 - CCASAM21'\np1301\ng35\n(S'Variable_Type'\n(I2\nttRp1302\nsS'Y:VBus114 - CSOVEN31'\np1303\ng35\n(S'Variable_Type'\n(I2\nttRp1304\nsS'Y:VBus83 - CILERO32'\np1305\ng35\n(S'Variable_Type'\n(I2\nttRp1306\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np1307\ng35\n(S'Variable_Type'\n(I2\nttRp1308\nsS'Y:PMachine87 - CLUCCI32'\np1309\ng35\n(S'Variable_Type'\n(I2\nttRp1310\nsS'Y:PMachine113 - CSAMPO32'\np1311\ng35\n(S'Variable_Type'\n(I2\nttRp1312\nsS'Y:Load 84 - CLORET31'\np1313\ng35\n(S'Variable_Type'\n(I2\nttRp1314\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np1315\ng35\n(S'Variable_Type'\n(I2\nttRp1316\nsS'Y:Load 42 - CSISCO21'\np1317\ng35\n(S'Variable_Type'\n(I2\nttRp1318\nsS'Y:PMachine125 - CVAZZI36'\np1319\ng35\n(S'Variable_Type'\n(I2\nttRp1320\nsS'Y:VBus116 - CTOLLA31'\np1321\ng35\n(S'Variable_Type'\n(I2\nttRp1322\nsS'Y:PMachine88 - CLUCCI33'\np1323\ng35\n(S'Variable_Type'\n(I2\nttRp1324\nsS'Y:PMachine124 - CVAZZI35'\np1325\ng35\n(S'Variable_Type'\n(I2\nttRp1326\nsS'Y:PMachine111 - CSTMAR31'\np1327\ng35\n(S'Variable_Type'\n(I2\nttRp1328\nsS'Y:NbeTransit'\np1329\ng35\n(S'Variable_Type'\n(I2\nttRp1330\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np1331\ng35\n(S'Variable_Type'\n(I2\nttRp1332\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np1333\ng35\n(S'Variable_Type'\n(I2\nttRp1334\nsS'Y:PMachine130 - CVAZZI311'\np1335\ng35\n(S'Variable_Type'\n(I2\nttRp1336\nsS'Y:PMachine127 - CVAZZI38'\np1337\ng35\n(S'Variable_Type'\n(I2\nttRp1338\nsS'Y:VBus131 - CVAZZI312'\np1339\ng35\n(S'Variable_Type'\n(I2\nttRp1340\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np1341\ng35\n(S'Variable_Type'\n(I2\nttRp1342\nsS'Y:PMachine123 - CVAZZI34'\np1343\ng35\n(S'Variable_Type'\n(I2\nttRp1344\nsS'Y:VBus118 - CTOLLA33'\np1345\ng35\n(S'Variable_Type'\n(I2\nttRp1346\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np1347\ng35\n(S'Variable_Type'\n(I2\nttRp1348\nsS'Y:PMachine58 - CBONIF32'\np1349\ng35\n(S'Variable_Type'\n(I2\nttRp1350\nsS'Y:VBus90 - CMOROS31'\np1351\ng35\n(S'Variable_Type'\n(I2\nttRp1352\nsS'Y:Load 104 - CPROPR31'\np1353\ng35\n(S'Variable_Type'\n(I2\nttRp1354\nsS'Y:PMachine30 - CLUCCI22'\np1355\ng35\n(S'Variable_Type'\n(I2\nttRp1356\nsS'Y:VBus100 - COLETT31'\np1357\ng35\n(S'Variable_Type'\n(I2\nttRp1358\nsS'Y:PProdTot'\np1359\ng35\n(S'Variable_Type'\n(I2\nttRp1360\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np1361\ng35\n(S'Variable_Type'\n(I2\nttRp1362\nsS'Y:VBus57 - CBONIF31'\np1363\ng35\n(S'Variable_Type'\n(I2\nttRp1364\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np1365\ng35\n(S'Variable_Type'\n(I2\nttRp1366\nsS'Iteration'\np1367\ng35\n(S'Variable_Type'\n(I2\nttRp1368\nsS'Y:PMachine109 - CSAGON32'\np1369\ng35\n(S'Variable_Type'\n(I2\nttRp1370\nsS'Y:PMachine135 - CLUCCI36'\np1371\ng35\n(S'Variable_Type'\n(I2\nttRp1372\nsS'Y:VBus30 - CLUCCI22'\np1373\ng35\n(S'Variable_Type'\n(I2\nttRp1374\nsS'Y:VBus122 - CVAZZI33'\np1375\ng35\n(S'Variable_Type'\n(I2\nttRp1376\nsS'Y:VBus22 - CCORTE21'\np1377\ng35\n(S'Variable_Type'\n(I2\nttRp1378\nsS'Y:VBus117 - CTOLLA32'\np1379\ng35\n(S'Variable_Type'\n(I2\nttRp1380\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np1381\ng35\n(S'Variable_Type'\n(I2\nttRp1382\nsS'Y:PMachine107 - CRIZZA32'\np1383\ng35\n(S'Variable_Type'\n(I2\nttRp1384\nsS'Y:VBus16 - CCALDA21'\np1385\ng35\n(S'Variable_Type'\n(I2\nttRp1386\nsS'Y:Load 102 - CPORTO31'\np1387\ng35\n(S'Variable_Type'\n(I2\nttRp1388\nsS'Y:VBus107 - CRIZZA32'\np1389\ng35\n(S'Variable_Type'\n(I2\nttRp1390\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np1391\ng35\n(S'Variable_Type'\n(I2\nttRp1392\nsS'Y:VBus41 - CSAMPO21'\np1393\ng35\n(S'Variable_Type'\n(I2\nttRp1394\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np1395\ng35\n(S'Variable_Type'\n(I2\nttRp1396\nsS'Y:VBus34 - CPIETR21'\np1397\ng35\n(S'Variable_Type'\n(I2\nttRp1398\nsS'Y:Load 108 - CSAGON31'\np1399\ng35\n(S'Variable_Type'\n(I2\nttRp1400\nsS'Y:VBus56 - CBIGUG32'\np1401\ng35\n(S'Variable_Type'\n(I2\nttRp1402\nsS'Y:PMachine42 - CSISCO21'\np1403\ng35\n(S'Variable_Type'\n(I2\nttRp1404\nsS'Y:PMachine138 - CLUCCI39'\np1405\ng35\n(S'Variable_Type'\n(I2\nttRp1406\nsS'Y:PMachine112 - CSAMPO31'\np1407\ng35\n(S'Variable_Type'\n(I2\nttRp1408\nsS'Y:VBus105 - CPROPR32'\np1409\ng35\n(S'Variable_Type'\n(I2\nttRp1410\nsS'Y:VBus1 - CBONIF11'\np1411\ng35\n(S'Variable_Type'\n(I2\nttRp1412\nsS'Y:VBus12 - CBASTI21'\np1413\ng35\n(S'Variable_Type'\n(I2\nttRp1414\nsS'Y:PMachine129 - CVAZZI310'\np1415\ng35\n(S'Variable_Type'\n(I2\nttRp1416\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np1417\ng35\n(S'Variable_Type'\n(I2\nttRp1418\nsS'Y:VBus35 - CPORTO21'\np1419\ng35\n(S'Variable_Type'\n(I2\nttRp1420\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np1421\ng35\n(S'Variable_Type'\n(I2\nttRp1422\nsS'Y:VBus54 - CBASTI32'\np1423\ng35\n(S'Variable_Type'\n(I2\nttRp1424\nsS'Y:VBus69 - CCASAM37'\np1425\ng35\n(S'Variable_Type'\n(I2\nttRp1426\nsS'Y:VBus45 - CTOLLA21'\np1427\ng35\n(S'Variable_Type'\n(I2\nttRp1428\nsS'Y:PMachine115 - CTAGLI31'\np1429\ng35\n(S'Variable_Type'\n(I2\nttRp1430\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np1431\ng35\n(S'Variable_Type'\n(I2\nttRp1432\nsS'Y:VBus43 - CSOVEN21'\np1433\ng35\n(S'Variable_Type'\n(I2\nttRp1434\nsS'Y:VBus76 - CCORTE31'\np1435\ng35\n(S'Variable_Type'\n(I2\nttRp1436\nsS'Y:VBus75 - CCORSC31'\np1437\ng35\n(S'Variable_Type'\n(I2\nttRp1438\nsS'Y:PMachine78 - CFURIA31'\np1439\ng35\n(S'Variable_Type'\n(I2\nttRp1440\nsS'Y:VBus127 - CVAZZI38'\np1441\ng35\n(S'Variable_Type'\n(I2\nttRp1442\nsS'Y:VBus115 - CTAGLI31'\np1443\ng35\n(S'Variable_Type'\n(I2\nttRp1444\nsS'Y:Load 61 - CCALVI31'\np1445\ng35\n(S'Variable_Type'\n(I2\nttRp1446\nsS'Y:VBus55 - CBIGUG31'\np1447\ng35\n(S'Variable_Type'\n(I2\nttRp1448\nsS'Y:Load 80 - CGHISO31'\np1449\ng35\n(S'Variable_Type'\n(I2\nttRp1450\nsS'Y:VBus72 - CCASTI31'\np1451\ng35\n(S'Variable_Type'\n(I2\nttRp1452\nsS'Y:Load 37 - CRIZZA21'\np1453\ng35\n(S'Variable_Type'\n(I2\nttRp1454\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np1455\ng35\n(S'Variable_Type'\n(I2\nttRp1456\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np1457\ng35\n(S'Variable_Type'\n(I2\nttRp1458\nsS'Y:PMachine102 - CPORTO31'\np1459\ng35\n(S'Variable_Type'\n(I2\nttRp1460\nsS'Y:PMachine67 - CCASAM35'\np1461\ng35\n(S'Variable_Type'\n(I2\nttRp1462\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np1463\ng35\n(S'Variable_Type'\n(I2\nttRp1464\nsS'Y:VBus31 - CMOROS21'\np1465\ng35\n(S'Variable_Type'\n(I2\nttRp1466\nsS'Y:VBus103 - CPORTO32'\np1467\ng35\n(S'Variable_Type'\n(I2\nttRp1468\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np1469\ng35\n(S'Variable_Type'\n(I2\nttRp1470\nsS'Y:PMachine14 - CBONIF21'\np1471\ng35\n(S'Variable_Type'\n(I2\nttRp1472\nsS'Y:PMachine72 - CCASTI31'\np1473\ng35\n(S'Variable_Type'\n(I2\nttRp1474\nsS'Y:VBus27 - CILERO21'\np1475\ng35\n(S'Variable_Type'\n(I2\nttRp1476\nsS'Y:PMachine75 - CCORSC31'\np1477\ng35\n(S'Variable_Type'\n(I2\nttRp1478\nsS'Y:Load 51 - CASPRE31'\np1479\ng35\n(S'Variable_Type'\n(I2\nttRp1480\nsS'Y:VBus51 - CASPRE31'\np1481\ng35\n(S'Variable_Type'\n(I2\nttRp1482\nsS'Y:PMachine94 - COCANA33'\np1483\ng35\n(S'Variable_Type'\n(I2\nttRp1484\nsS'Y:PMachine126 - CVAZZI37'\np1485\ng35\n(S'Variable_Type'\n(I2\nttRp1486\nsS'Y:Load 86 - CLUCCI31'\np1487\ng35\n(S'Variable_Type'\n(I2\nttRp1488\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np1489\ng35\n(S'Variable_Type'\n(I2\nttRp1490\nsS'Y:PMachine104 - CPROPR31'\np1491\ng35\n(S'Variable_Type'\n(I2\nttRp1492\nsS'Y:VBus128 - CVAZZI39'\np1493\ng35\n(S'Variable_Type'\n(I2\nttRp1494\nsS'Y:PMachine136 - CLUCCI37'\np1495\ng35\n(S'Variable_Type'\n(I2\nttRp1496\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np1497\ng35\n(S'Variable_Type'\n(I2\nttRp1498\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np1499\ng35\n(S'Variable_Type'\n(I2\nttRp1500\nsS'Y:PMachine29 - CLUCCI21'\np1501\ng35\n(S'Variable_Type'\n(I2\nttRp1502\nsS'Y:VBus42 - CSISCO21'\np1503\ng35\n(S'Variable_Type'\n(I2\nttRp1504\nsS'Y:Load 110 - CSTLUC31'\np1505\ng35\n(S'Variable_Type'\n(I2\nttRp1506\nsS'Y:VBus14 - CBONIF21'\np1507\ng35\n(S'Variable_Type'\n(I2\nttRp1508\nsS'Y:VBus73 - CCASTI32'\np1509\ng35\n(S'Variable_Type'\n(I2\nttRp1510\nsS'Y:VBus64 - CCASAM32'\np1511\ng35\n(S'Variable_Type'\n(I2\nttRp1512\nsS'Y:PMachine128 - CVAZZI39'\np1513\ng35\n(S'Variable_Type'\n(I2\nttRp1514\nsS'Y:VBus133 - CVAZZI314'\np1515\ng35\n(S'Variable_Type'\n(I2\nttRp1516\nsS'Y:VBus63 - CCASAM31'\np1517\ng35\n(S'Variable_Type'\n(I2\nttRp1518\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np1519\ng35\n(S'Variable_Type'\n(I2\nttRp1520\nsS'Y:%Losses'\np1521\ng35\n(S'Variable_Type'\n(I2\nttRp1522\nsS'Y:VBus85 - CLORET32'\np1523\ng35\n(S'Variable_Type'\n(I2\nttRp1524\nsS'Y:Load 59 - CCALDA31'\np1525\ng35\n(S'Variable_Type'\n(I2\nttRp1526\nsS'Y:VBus129 - CVAZZI310'\np1527\ng35\n(S'Variable_Type'\n(I2\nttRp1528\nsS'Y:VBus101 - CPIETR31'\np1529\ng35\n(S'Variable_Type'\n(I2\nttRp1530\nsS'Y:PMachine106 - CRIZZA31'\np1531\ng35\n(S'Variable_Type'\n(I2\nttRp1532\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np1533\ng35\n(S'Variable_Type'\n(I2\nttRp1534\nsS'Y:PMachine118 - CTOLLA33'\np1535\ng35\n(S'Variable_Type'\n(I2\nttRp1536\nsS'Y:VBus19 - CCASTI21'\np1537\ng35\n(S'Variable_Type'\n(I2\nttRp1538\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np1539\ng35\n(S'Variable_Type'\n(I2\nttRp1540\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np1541\ng35\n(S'Variable_Type'\n(I2\nttRp1542\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np1543\ng35\n(S'Variable_Type'\n(I2\nttRp1544\nsS'Y:Load 115 - CTAGLI31'\np1545\ng1288\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np1546\ng35\n(S'Variable_Type'\n(I2\nttRp1547\nsS'Y:VBus79 - CFURIA32'\np1548\ng35\n(S'Variable_Type'\n(I2\nttRp1549\nsS'Y:PMachine47 - CVAZZI21'\np1550\ng35\n(S'Variable_Type'\n(I2\nttRp1551\nsS'Y:VBus123 - CVAZZI34'\np1552\ng35\n(S'Variable_Type'\n(I2\nttRp1553\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np1554\ng35\n(S'Variable_Type'\n(I2\nttRp1555\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np1556\ng35\n(S'Variable_Type'\n(I2\nttRp1557\nsS'Y:VBus44 - CTAGLI21'\np1558\ng35\n(S'Variable_Type'\n(I2\nttRp1559\nsS'Y:VBus65 - CCASAM33'\np1560\ng35\n(S'Variable_Type'\n(I2\nttRp1561\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np1562\ng35\n(S'Variable_Type'\n(I2\nttRp1563\nsS'Y:PMachine139 - CLUCCI310'\np1564\ng35\n(S'Variable_Type'\n(I2\nttRp1565\nsS'Y:VBus112 - CSAMPO31'\np1566\ng35\n(S'Variable_Type'\n(I2\nttRp1567\nsS'Y:VBus68 - CCASAM36'\np1568\ng35\n(S'Variable_Type'\n(I2\nttRp1569\nsS'Y:Load 55 - CBIGUG31'\np1570\ng35\n(S'Variable_Type'\n(I2\nttRp1571\nsS'Y:PMachine53 - CBASTI31'\np1572\ng35\n(S'Variable_Type'\n(I2\nttRp1573\nsS'Y:NbeTransit_0.9-1'\np1574\ng35\n(S'Variable_Type'\n(I2\nttRp1575\nsS'Y:VBus24 - CFURIA21'\np1576\ng35\n(S'Variable_Type'\n(I2\nttRp1577\nsS'Y:VBus23 - CCORTE22'\np1578\ng35\n(S'Variable_Type'\n(I2\nttRp1579\nsS'XProdEolienne%Pnom'\np1580\ng35\n(S'Variable_Type'\n(I2\nttRp1581\nsS'Y:VBus40 - CSTMAR21'\np1582\ng35\n(S'Variable_Type'\n(I2\nttRp1583\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np1584\ng35\n(S'Variable_Type'\n(I2\nttRp1585\nsS'Y:PMachine120 - CVAZZI31'\np1586\ng35\n(S'Variable_Type'\n(I2\nttRp1587\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np1588\ng35\n(S'Variable_Type'\n(I2\nttRp1589\nsS'Y:PMachine117 - CTOLLA32'\np1590\ng35\n(S'Variable_Type'\n(I2\nttRp1591\nsS'Y:VBus89 - CLUCCI34'\np1592\ng35\n(S'Variable_Type'\n(I2\nttRp1593\nsS'Y:VBus33 - COLETT21'\np1594\ng35\n(S'Variable_Type'\n(I2\nttRp1595\nsS'Y:VBus32 - COCANA21'\np1596\ng35\n(S'Variable_Type'\n(I2\nttRp1597\nsS'Y:PMachine121 - CVAZZI32'\np1598\ng35\n(S'Variable_Type'\n(I2\nttRp1599\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np1600\ng35\n(S'Variable_Type'\n(I2\nttRp1601\nsS'Y:VBus59 - CCALDA31'\np1602\ng35\n(S'Variable_Type'\n(I2\nttRp1603\nsS'Y:VBus82 - CILERO31'\np1604\ng35\n(S'Variable_Type'\n(I2\nttRp1605\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np1606\ng35\n(S'Variable_Type'\n(I2\nttRp1607\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np1608\ng35\n(S'Variable_Type'\n(I2\nttRp1609\nsS'Y:VBus37 - CRIZZA21'\np1610\ng35\n(S'Variable_Type'\n(I2\nttRp1611\nsS'Y:PMachine73 - CCASTI32'\np1612\ng35\n(S'Variable_Type'\n(I2\nttRp1613\nsS'Y:PMachine86 - CLUCCI31'\np1614\ng35\n(S'Variable_Type'\n(I2\nttRp1615\nsS'Y:Load 53 - CBASTI31'\np1616\ng35\n(S'Variable_Type'\n(I2\nttRp1617\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np1618\ng35\n(S'Variable_Type'\n(I2\nttRp1619\nsS'Y:VBus21 - CCORSC21'\np1620\ng35\n(S'Variable_Type'\n(I2\nttRp1621\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np1622\ng35\n(S'Variable_Type'\n(I2\nttRp1623\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np1624\ng35\n(S'Variable_Type'\n(I2\nttRp1625\nsS'Y:Load 82 - CILERO31'\np1626\ng35\n(S'Variable_Type'\n(I2\nttRp1627\nsS'Y:PMachine64 - CCASAM32'\np1628\ng35\n(S'Variable_Type'\n(I2\nttRp1629\nsS'Y:VBus67 - CCASAM35'\np1630\ng35\n(S'Variable_Type'\n(I2\nttRp1631\nsS'Y:VBus53 - CBASTI31'\np1632\ng35\n(S'Variable_Type'\n(I2\nttRp1633\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np1634\ng35\n(S'Variable_Type'\n(I2\nttRp1635\nsS'Y:VBus61 - CCALVI31'\np1636\ng35\n(S'Variable_Type'\n(I2\nttRp1637\nsS'Y:VBus93 - COCANA32'\np1638\ng35\n(S'Variable_Type'\n(I2\nttRp1639\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np1640\ng35\n(S'Variable_Type'\n(I2\nttRp1641\nsS'Y:PMachine92 - COCANA31'\np1642\ng35\n(S'Variable_Type'\n(I2\nttRp1643\nsS'Y:VBus104 - CPROPR31'\np1644\ng35\n(S'Variable_Type'\n(I2\nttRp1645\nsS'Y:VBus48 - CZSSS621'\np1646\ng35\n(S'Variable_Type'\n(I2\nttRp1647\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np1648\ng35\n(S'Variable_Type'\n(I2\nttRp1649\nsS'Y:VBus74 - CCERVI31'\np1650\ng35\n(S'Variable_Type'\n(I2\nttRp1651\nsS'Y:VBus36 - CPROPR21'\np1652\ng35\n(S'Variable_Type'\n(I2\nttRp1653\nsS'Y:Load 100 - COLETT31'\np1654\ng35\n(S'Variable_Type'\n(I2\nttRp1655\nsS'Y:PMachine54 - CBASTI32'\np1656\ng35\n(S'Variable_Type'\n(I2\nttRp1657\nsS'Y:VBus138 - CLUCCI39'\np1658\ng35\n(S'Variable_Type'\n(I2\nttRp1659\nsS'Y:VBus39 - CSTLUC21'\np1660\ng35\n(S'Variable_Type'\n(I2\nttRp1661\nsS'Y:PMachine74 - CCERVI31'\np1662\ng35\n(S'Variable_Type'\n(I2\nttRp1663\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np1664\ng35\n(S'Variable_Type'\n(I2\nttRp1665\nsS'Y:Load 78 - CFURIA31'\np1666\ng35\n(S'Variable_Type'\n(I2\nttRp1667\nsS'Y:VBus28 - CLORET21'\np1668\ng35\n(S'Variable_Type'\n(I2\nttRp1669\nsS'Y:PMachine105 - CPROPR32'\np1670\ng35\n(S'Variable_Type'\n(I2\nttRp1671\nsS'Y:VBus96 - COCANA35'\np1672\ng35\n(S'Variable_Type'\n(I2\nttRp1673\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np1674\ng35\n(S'Variable_Type'\n(I2\nttRp1675\nsS'Y:PMachine18 - CCASAM21'\np1676\ng35\n(S'Variable_Type'\n(I2\nttRp1677\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np1678\ng35\n(S'Variable_Type'\n(I2\nttRp1679\nsS'Y:VBus13 - CBIGUG21'\np1680\ng35\n(S'Variable_Type'\n(I2\nttRp1681\nsS'Y:VBus92 - COCANA31'\np1682\ng35\n(S'Variable_Type'\n(I2\nttRp1683\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np1684\ng35\n(S'Variable_Type'\n(I2\nttRp1685\nsS'Y:Load 76 - CCORTE31'\np1686\ng35\n(S'Variable_Type'\n(I2\nttRp1687\nsS'Y:VBus58 - CBONIF32'\np1688\ng35\n(S'Variable_Type'\n(I2\nttRp1689\nsS'Y:VBus84 - CLORET31'\np1690\ng35\n(S'Variable_Type'\n(I2\nttRp1691\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np1692\ng35\n(S'Variable_Type'\n(I2\nttRp1693\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np1694\ng35\n(S'Variable_Type'\n(I2\nttRp1695\nsS'Y:VBus97 - COCANA36'\np1696\ng35\n(S'Variable_Type'\n(I2\nttRp1697\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np1698\ng35\n(S'Variable_Type'\n(I2\nttRp1699\nsS'Y:VBus106 - CRIZZA31'\np1700\ng35\n(S'Variable_Type'\n(I2\nttRp1701\nsS'Y:VBus15 - CBONIF22'\np1702\ng35\n(S'Variable_Type'\n(I2\nttRp1703\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np1704\ng35\n(S'Variable_Type'\n(I2\nttRp1705\nsS'Y:VBus80 - CGHISO31'\np1706\ng35\n(S'Variable_Type'\n(I2\nttRp1707\nsS'Y:PMachine114 - CSOVEN31'\np1708\ng35\n(S'Variable_Type'\n(I2\nttRp1709\nsS'Y:VBus132 - CVAZZI313'\np1710\ng35\n(S'Variable_Type'\n(I2\nttRp1711\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np1712\ng35\n(S'Variable_Type'\n(I2\nttRp1713\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np1714\ng35\n(S'Variable_Type'\n(I2\nttRp1715\nsS'Y:VBus87 - CLUCCI32'\np1716\ng35\n(S'Variable_Type'\n(I2\nttRp1717\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np1718\ng35\n(S'Variable_Type'\n(I2\nttRp1719\nsS'Y:VBus88 - CLUCCI33'\np1720\ng35\n(S'Variable_Type'\n(I2\nttRp1721\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np1722\ng35\n(S'Variable_Type'\n(I2\nttRp1723\nsS'Y:PMachine85 - CLORET32'\np1724\ng35\n(S'Variable_Type'\n(I2\nttRp1725\nsS'Y:VBus81 - CGHISO32'\np1726\ng35\n(S'Variable_Type'\n(I2\nttRp1727\nsS'Y:PMachine63 - CCASAM31'\np1728\ng35\n(S'Variable_Type'\n(I2\nttRp1729\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np1730\ng35\n(S'Variable_Type'\n(I2\nttRp1731\nsS'X:Load(pu)'\np1732\ng1282\nsS'Y:NbeTension'\np1733\ng35\n(S'Variable_Type'\n(I2\nttRp1734\nsS'Y:VBus95 - COCANA34'\np1735\ng35\n(S'Variable_Type'\n(I2\nttRp1736\nsS'Y:VBus62 - CCALVI32'\np1737\ng35\n(S'Variable_Type'\n(I2\nttRp1738\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np1739\ng35\n(S'Variable_Type'\n(I2\nttRp1740\nsS'Y:Load 95 - COCANA34'\np1741\ng35\n(S'Variable_Type'\n(I2\nttRp1742\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np1743\ng35\n(S'Variable_Type'\n(I2\nttRp1744\nsS'Y:PMachine90 - CMOROS31'\np1745\ng35\n(S'Variable_Type'\n(I2\nttRp1746\nsS'Y:Load 101 - CPIETR31'\np1747\ng35\n(S'Variable_Type'\n(I2\nttRp1748\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np1749\ng35\n(S'Variable_Type'\n(I2\nttRp1750\nsS'Y:PMachine132 - CVAZZI313'\np1751\ng35\n(S'Variable_Type'\n(I2\nttRp1752\nsS'Y:PMachine65 - CCASAM33'\np1753\ng35\n(S'Variable_Type'\n(I2\nttRp1754\nsS'Y:VBus125 - CVAZZI36'\np1755\ng35\n(S'Variable_Type'\n(I2\nttRp1756\nsS'Y:VBus135 - CLUCCI36'\np1757\ng35\n(S'Variable_Type'\n(I2\nttRp1758\nsS'Y:VBus47 - CVAZZI21'\np1759\ng35\n(S'Variable_Type'\n(I2\nttRp1760\nsS'Y:VBus94 - COCANA33'\np1761\ng35\n(S'Variable_Type'\n(I2\nttRp1762\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np1763\ng35\n(S'Variable_Type'\n(I2\nttRp1764\nsS'Y:VBus17 - CCALVI21'\np1765\ng35\n(S'Variable_Type'\n(I2\nttRp1766\nsS'Y:Load 90 - CMOROS31'\np1767\ng35\n(S'Variable_Type'\n(I2\nttRp1768\nsS'Y:VBus120 - CVAZZI31'\np1769\ng35\n(S'Variable_Type'\n(I2\nttRp1770\nsS'Y:VBus52 - CASPRE32'\np1771\ng35\n(S'Variable_Type'\n(I2\nttRp1772\nsS'Y:VBus25 - CFURIA22'\np1773\ng35\n(S'Variable_Type'\n(I2\nttRp1774\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np1775\ng35\n(S'Variable_Type'\n(I2\nttRp1776\nsS'Y:PMachine69 - CCASAM37'\np1777\ng35\n(S'Variable_Type'\n(I2\nttRp1778\nsS'Y:PConsoTot'\np1779\ng35\n(S'Variable_Type'\n(I2\nttRp1780\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np1781\ng35\n(S'Variable_Type'\n(I2\nttRp1782\nsS'Y:PMachine89 - CLUCCI34'\np1783\ng35\n(S'Variable_Type'\n(I2\nttRp1784\nsS'Y:VBus136 - CLUCCI37'\np1785\ng35\n(S'Variable_Type'\n(I2\nttRp1786\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np1787\ng35\n(S'Variable_Type'\n(I2\nttRp1788\nsS'Y:PMachine122 - CVAZZI33'\np1789\ng35\n(S'Variable_Type'\n(I2\nttRp1790\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np1791\ng35\n(S'Variable_Type'\n(I2\nttRp1792\nsS'Y:PMachine77 - CCORTE32'\np1793\ng35\n(S'Variable_Type'\n(I2\nttRp1794\nsS'Y:PMachine116 - CTOLLA31'\np1795\ng35\n(S'Variable_Type'\n(I2\nttRp1796\nsS'Y:VBus126 - CVAZZI37'\np1797\ng35\n(S'Variable_Type'\n(I2\nttRp1798\nsS'Y:PMachine60 - CCALDA32'\np1799\ng35\n(S'Variable_Type'\n(I2\nttRp1800\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np1801\ng35\n(S'Variable_Type'\n(I2\nttRp1802\nsS'Y:VBus20 - CCERVI21'\np1803\ng35\n(S'Variable_Type'\n(I2\nttRp1804\nsS'Y:VBus119 - CTRAVO31'\np1805\ng35\n(S'Variable_Type'\n(I2\nttRp1806\nsS'Y:VBus11 - CASPRE21'\np1807\ng35\n(S'Variable_Type'\n(I2\nttRp1808\nsS'Y:VBus139 - CLUCCI310'\np1809\ng35\n(S'Variable_Type'\n(I2\nttRp1810\nsS'Y:VBus60 - CCALDA32'\np1811\ng35\n(S'Variable_Type'\n(I2\nttRp1812\nsS'Y:PMachine66 - CCASAM34'\np1813\ng35\n(S'Variable_Type'\n(I2\nttRp1814\nsS'Y:PMachine101 - CPIETR31'\np1815\ng35\n(S'Variable_Type'\n(I2\nttRp1816\nsS'Y:PMachine133 - CVAZZI314'\np1817\ng35\n(S'Variable_Type'\n(I2\nttRp1818\nsS'Y:PMachine62 - CCALVI32'\np1819\ng35\n(S'Variable_Type'\n(I2\nttRp1820\nsS'Y:Load 74 - CCERVI31'\np1821\ng35\n(S'Variable_Type'\n(I2\nttRp1822\nsS'X:lineOff#'\np1823\ng35\n(S'Variable_Type'\n(I2\nttRp1824\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np1825\ng35\n(S'Variable_Type'\n(I2\nttRp1826\nsS'Y:VBus108 - CSAGON31'\np1827\ng35\n(S'Variable_Type'\n(I2\nttRp1828\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np1829\ng35\n(S'Variable_Type'\n(I2\nttRp1830\nsS'Y:VBus137 - CLUCCI38'\np1831\ng35\n(S'Variable_Type'\n(I2\nttRp1832\nsS'Y:VBus130 - CVAZZI311'\np1833\ng35\n(S'Variable_Type'\n(I2\nttRp1834\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np1835\ng35\n(S'Variable_Type'\n(I2\nttRp1836\nsS'Y:VBus46 - CTRAVO21'\np1837\ng35\n(S'Variable_Type'\n(I2\nttRp1838\nsS'Y:VBus113 - CSAMPO32'\np1839\ng35\n(S'Variable_Type'\n(I2\nttRp1840\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np1841\ng35\n(S'Variable_Type'\n(I2\nttRp1842\nsS'Y:PMachine68 - CCASAM36'\np1843\ng35\n(S'Variable_Type'\n(I2\nttRp1844\nsS'Y:VBus78 - CFURIA31'\np1845\ng35\n(S'Variable_Type'\n(I2\nttRp1846\nsS'Y:VBus26 - CGHISO21'\np1847\ng35\n(S'Variable_Type'\n(I2\nttRp1848\nsS'Y:VBus121 - CVAZZI32'\np1849\ng35\n(S'Variable_Type'\n(I2\nttRp1850\nsS'Y:PMachine81 - CGHISO32'\np1851\ng35\n(S'Variable_Type'\n(I2\nttRp1852\nsS'Y:PMachine97 - COCANA36'\np1853\ng35\n(S'Variable_Type'\n(I2\nttRp1854\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np1855\ng35\n(S'Variable_Type'\n(I2\nttRp1856\nsS'Y:PMachine83 - CILERO32'\np1857\ng35\n(S'Variable_Type'\n(I2\nttRp1858\nsS'Y:Max%A'\np1859\ng35\n(S'Variable_Type'\n(I2\nttRp1860\nsS'Y:VBus66 - CCASAM34'\np1861\ng35\n(S'Variable_Type'\n(I2\nttRp1862\nsS'Y:PMachine1 - CBONIF11'\np1863\ng35\n(S'Variable_Type'\n(I2\nttRp1864\nsS'Y:VBus111 - CSTMAR31'\np1865\ng35\n(S'Variable_Type'\n(I2\nttRp1866\nsS'Y:VBus124 - CVAZZI35'\np1867\ng35\n(S'Variable_Type'\n(I2\nttRp1868\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np1869\ng35\n(S'Variable_Type'\n(I2\nttRp1870\nsS'Y:PMachine131 - CVAZZI312'\np1871\ng35\n(S'Variable_Type'\n(I2\nttRp1872\nsS'Y:PMachine137 - CLUCCI38'\np1873\ng35\n(S'Variable_Type'\n(I2\nttRp1874\nsS'Y:PMachine93 - COCANA32'\np1875\ng35\n(S'Variable_Type'\n(I2\nttRp1876\nsS'Y:Load 57 - CBONIF31'\np1877\ng35\n(S'Variable_Type'\n(I2\nttRp1878\nsS'Y:VBus86 - CLUCCI31'\np1879\ng35\n(S'Variable_Type'\n(I2\nttRp1880\nsS'Y:VBus38 - CSAGON21'\np1881\ng35\n(S'Variable_Type'\n(I2\nttRp1882\nsS'Y:VBus29 - CLUCCI21'\np1883\ng35\n(S'Variable_Type'\n(I2\nttRp1884\nsS'Y:PMachine61 - CCALVI31'\np1885\ng35\n(S'Variable_Type'\n(I2\nttRp1886\nsS'Y:VBus110 - CSTLUC31'\np1887\ng35\n(S'Variable_Type'\n(I2\nttRp1888\nsS'X:ProdPV%Pnom'\np1889\ng35\n(S'Variable_Type'\n(I2\nttRp1890\nssg650\n(lp1891\ng652\nasba(iOWContexts\nContext\np1892\n(dp1893\ng24\n(lp1894\nsg26\n(dp1895\nsg28\n(dp1896\nS'attrLabel'\np1897\n(S''\nI-1\ntp1898\nsS'attrShape'\np1899\n(S''\nI0\ntp1900\nsS'attrX'\np1901\n(g1281\ng35\n(S'Variable_Type'\n(I2\nttRp1902\ntp1903\nsS'attrY'\np1904\n(g1284\ng1902\ntp1905\nsS'attrSize'\np1906\n(S''\nI0\ntp1907\nsS'attrColor'\np1908\n(g1287\ng35\n(S'Variable_Type'\n(I2\nttRp1909\ntp1910\nssg46\nF1369994938.898\nsg47\n(dp1911\nS'Y:PMachine134 - CLUCCI35'\np1912\ng35\n(S'Variable_Type'\n(I1\nttRp1913\nsS'Y:VBus77 - CCORTE32'\np1914\ng35\n(S'Variable_Type'\n(I2\nttRp1915\nsS'Y:VBus134 - CLUCCI35'\np1916\ng35\n(S'Variable_Type'\n(I2\nttRp1917\nsS'Y:VBus109 - CSAGON32'\np1918\ng35\n(S'Variable_Type'\n(I2\nttRp1919\nsS'Y:VBus102 - CPORTO31'\np1920\ng35\n(S'Variable_Type'\n(I2\nttRp1921\nsS'XProdEolienne%Pnom'\np1922\ng35\n(S'Variable_Type'\n(I1\nttRp1923\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np1924\ng35\n(S'Variable_Type'\n(I2\nttRp1925\nsS'Y:PMachine94 - COCANA33'\np1926\ng35\n(S'Variable_Type'\n(I2\nttRp1927\nsS'Y:VBus117 - CTOLLA32'\np1928\ng35\n(S'Variable_Type'\n(I2\nttRp1929\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np1930\ng35\n(S'Variable_Type'\n(I2\nttRp1931\nsS'Y:PMachine87 - CLUCCI32'\np1932\ng35\n(S'Variable_Type'\n(I2\nttRp1933\nsS'Y:PMachine113 - CSAMPO32'\np1934\ng35\n(S'Variable_Type'\n(I2\nttRp1935\nsS'Y:Load 84 - CLORET31'\np1936\ng35\n(S'Variable_Type'\n(I2\nttRp1937\nsS'Y:PMachine89 - CLUCCI34'\np1938\ng35\n(S'Variable_Type'\n(I1\nttRp1939\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np1940\ng35\n(S'Variable_Type'\n(I2\nttRp1941\nsS'Y:Load 80 - CGHISO31'\np1942\ng35\n(S'Variable_Type'\n(I2\nttRp1943\nsS'Y:PMachine125 - CVAZZI36'\np1944\ng35\n(S'Variable_Type'\n(I2\nttRp1945\nsS'Y:PMachine116 - CTOLLA31'\np1946\ng35\n(S'Variable_Type'\n(I2\nttRp1947\nsS'Y:PMachine88 - CLUCCI33'\np1948\ng35\n(S'Variable_Type'\n(I1\nttRp1949\nsS'Y:PMachine120 - CVAZZI31'\np1950\ng35\n(S'Variable_Type'\n(I2\nttRp1951\nsS'Y:PMachine111 - CSTMAR31'\np1952\ng35\n(S'Variable_Type'\n(I2\nttRp1953\nsS'Y:NbeTransit'\np1954\ng35\n(S'Variable_Type'\n(I1\nttRp1955\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np1956\ng35\n(S'Variable_Type'\n(I2\nttRp1957\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np1958\ng35\n(S'Variable_Type'\n(I2\nttRp1959\nsS'Y:VBus92 - COCANA31'\np1960\ng35\n(S'Variable_Type'\n(I2\nttRp1961\nsS'Y:PMachine130 - CVAZZI311'\np1962\ng35\n(S'Variable_Type'\n(I2\nttRp1963\nsS'Y:PMachine127 - CVAZZI38'\np1964\ng35\n(S'Variable_Type'\n(I2\nttRp1965\nsS'Y:VBus131 - CVAZZI312'\np1966\ng35\n(S'Variable_Type'\n(I2\nttRp1967\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np1968\ng35\n(S'Variable_Type'\n(I2\nttRp1969\nsS'Y:PMachine123 - CVAZZI34'\np1970\ng35\n(S'Variable_Type'\n(I2\nttRp1971\nsS'Y:VBus118 - CTOLLA33'\np1972\ng35\n(S'Variable_Type'\n(I2\nttRp1973\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np1974\ng35\n(S'Variable_Type'\n(I1\nttRp1975\nsS'Y:PMachine58 - CBONIF32'\np1976\ng35\n(S'Variable_Type'\n(I2\nttRp1977\nsS'Y:Load 104 - CPROPR31'\np1978\ng35\n(S'Variable_Type'\n(I2\nttRp1979\nsS'Y:PMachine30 - CLUCCI22'\np1980\ng35\n(S'Variable_Type'\n(I1\nttRp1981\nsS'Y:VBus100 - COLETT31'\np1982\ng35\n(S'Variable_Type'\n(I2\nttRp1983\nsS'Y:PProdTot'\np1984\ng35\n(S'Variable_Type'\n(I2\nttRp1985\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np1986\ng35\n(S'Variable_Type'\n(I1\nttRp1987\nsS'Y:VBus57 - CBONIF31'\np1988\ng35\n(S'Variable_Type'\n(I2\nttRp1989\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np1990\ng35\n(S'Variable_Type'\n(I2\nttRp1991\nsS'Y:PConsoTot'\np1992\ng35\n(S'Variable_Type'\n(I2\nttRp1993\nsS'Iteration'\np1994\ng35\n(S'Variable_Type'\n(I2\nttRp1995\nsS'Y:PMachine109 - CSAGON32'\np1996\ng35\n(S'Variable_Type'\n(I2\nttRp1997\nsS'Y:PMachine135 - CLUCCI36'\np1998\ng35\n(S'Variable_Type'\n(I1\nttRp1999\nsS'Y:VBus30 - CLUCCI22'\np2000\ng35\n(S'Variable_Type'\n(I2\nttRp2001\nsS'Y:VBus122 - CVAZZI33'\np2002\ng35\n(S'Variable_Type'\n(I2\nttRp2003\nsS'Y:VBus86 - CLUCCI31'\np2004\ng35\n(S'Variable_Type'\n(I2\nttRp2005\nsS'Y:PMachine102 - CPORTO31'\np2006\ng35\n(S'Variable_Type'\n(I2\nttRp2007\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np2008\ng35\n(S'Variable_Type'\n(I1\nttRp2009\nsS'Y:PMachine107 - CRIZZA32'\np2010\ng35\n(S'Variable_Type'\n(I2\nttRp2011\nsS'Y:VBus16 - CCALDA21'\np2012\ng35\n(S'Variable_Type'\n(I2\nttRp2013\nsS'Y:Load 102 - CPORTO31'\np2014\ng35\n(S'Variable_Type'\n(I2\nttRp2015\nsS'Y:VBus107 - CRIZZA32'\np2016\ng35\n(S'Variable_Type'\n(I2\nttRp2017\nsS'Y:VBus59 - CCALDA31'\np2018\ng35\n(S'Variable_Type'\n(I2\nttRp2019\nsS'Y:VBus41 - CSAMPO21'\np2020\ng35\n(S'Variable_Type'\n(I2\nttRp2021\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np2022\ng35\n(S'Variable_Type'\n(I2\nttRp2023\nsS'Y:VBus34 - CPIETR21'\np2024\ng35\n(S'Variable_Type'\n(I2\nttRp2025\nsS'Y:Load 108 - CSAGON31'\np2026\ng35\n(S'Variable_Type'\n(I2\nttRp2027\nsS'Y:VBus56 - CBIGUG32'\np2028\ng35\n(S'Variable_Type'\n(I2\nttRp2029\nsS'Y:PMachine42 - CSISCO21'\np2030\ng35\n(S'Variable_Type'\n(I2\nttRp2031\nsS'Y:PMachine138 - CLUCCI39'\np2032\ng35\n(S'Variable_Type'\n(I1\nttRp2033\nsS'Y:PMachine112 - CSAMPO31'\np2034\ng35\n(S'Variable_Type'\n(I2\nttRp2035\nsS'Y:VBus105 - CPROPR32'\np2036\ng35\n(S'Variable_Type'\n(I2\nttRp2037\nsS'Y:VBus1 - CBONIF11'\np2038\ng35\n(S'Variable_Type'\n(I2\nttRp2039\nsS'Y:VBus12 - CBASTI21'\np2040\ng35\n(S'Variable_Type'\n(I2\nttRp2041\nsS'Y:PMachine129 - CVAZZI310'\np2042\ng35\n(S'Variable_Type'\n(I2\nttRp2043\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np2044\ng35\n(S'Variable_Type'\n(I1\nttRp2045\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np2046\ng35\n(S'Variable_Type'\n(I1\nttRp2047\nsS'Y:VBus54 - CBASTI32'\np2048\ng35\n(S'Variable_Type'\n(I2\nttRp2049\nsS'Y:VBus69 - CCASAM37'\np2050\ng35\n(S'Variable_Type'\n(I2\nttRp2051\nsS'Y:VBus45 - CTOLLA21'\np2052\ng35\n(S'Variable_Type'\n(I2\nttRp2053\nsS'Y:PMachine115 - CTAGLI31'\np2054\ng35\n(S'Variable_Type'\n(I2\nttRp2055\nsS'Y:PMachine77 - CCORTE32'\np2056\ng35\n(S'Variable_Type'\n(I2\nttRp2057\nsS'Y:VBus43 - CSOVEN21'\np2058\ng35\n(S'Variable_Type'\n(I2\nttRp2059\nsS'Y:VBus76 - CCORTE31'\np2060\ng35\n(S'Variable_Type'\n(I2\nttRp2061\nsS'Y:VBus75 - CCORSC31'\np2062\ng35\n(S'Variable_Type'\n(I2\nttRp2063\nsS'Y:PMachine78 - CFURIA31'\np2064\ng35\n(S'Variable_Type'\n(I1\nttRp2065\nsS'Y:VBus127 - CVAZZI38'\np2066\ng35\n(S'Variable_Type'\n(I2\nttRp2067\nsS'Y:VBus115 - CTAGLI31'\np2068\ng35\n(S'Variable_Type'\n(I2\nttRp2069\nsS'Y:Load 61 - CCALVI31'\np2070\ng35\n(S'Variable_Type'\n(I2\nttRp2071\nsS'Y:VBus55 - CBIGUG31'\np2072\ng35\n(S'Variable_Type'\n(I2\nttRp2073\nsS'Y:Load 42 - CSISCO21'\np2074\ng35\n(S'Variable_Type'\n(I2\nttRp2075\nsS'Y:VBus72 - CCASTI31'\np2076\ng35\n(S'Variable_Type'\n(I2\nttRp2077\nsS'Y:Load 37 - CRIZZA21'\np2078\ng35\n(S'Variable_Type'\n(I2\nttRp2079\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np2080\ng35\n(S'Variable_Type'\n(I2\nttRp2081\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np2082\ng35\n(S'Variable_Type'\n(I2\nttRp2083\nsS'Y:PMachine137 - CLUCCI38'\np2084\ng35\n(S'Variable_Type'\n(I1\nttRp2085\nsS'Y:PMachine67 - CCASAM35'\np2086\ng35\n(S'Variable_Type'\n(I2\nttRp2087\nsS'INTERCOS'\np2088\ng35\n(S'Variable_Type'\n(I2\nttRp2089\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np2090\ng35\n(S'Variable_Type'\n(I1\nttRp2091\nsS'Y:VBus31 - CMOROS21'\np2092\ng35\n(S'Variable_Type'\n(I2\nttRp2093\nsS'Y:VBus103 - CPORTO32'\np2094\ng35\n(S'Variable_Type'\n(I2\nttRp2095\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np2096\ng35\n(S'Variable_Type'\n(I1\nttRp2097\nsS'Y:PMachine128 - CVAZZI39'\np2098\ng35\n(S'Variable_Type'\n(I2\nttRp2099\nsS'Y:PMachine72 - CCASTI31'\np2100\ng35\n(S'Variable_Type'\n(I2\nttRp2101\nsS'Y:VBus27 - CILERO21'\np2102\ng35\n(S'Variable_Type'\n(I2\nttRp2103\nsS'Y:PMachine75 - CCORSC31'\np2104\ng35\n(S'Variable_Type'\n(I2\nttRp2105\nsS'Y:Load 51 - CASPRE31'\np2106\ng35\n(S'Variable_Type'\n(I2\nttRp2107\nsS'Y:PMachine61 - CCALVI31'\np2108\ng35\n(S'Variable_Type'\n(I1\nttRp2109\nsS'Y:VBus51 - CASPRE31'\np2110\ng35\n(S'Variable_Type'\n(I2\nttRp2111\nsS'Y:VBus114 - CSOVEN31'\np2112\ng35\n(S'Variable_Type'\n(I2\nttRp2113\nsS'Y:Load 82 - CILERO31'\np2114\ng35\n(S'Variable_Type'\n(I2\nttRp2115\nsS'Y:VBus116 - CTOLLA31'\np2116\ng35\n(S'Variable_Type'\n(I2\nttRp2117\nsS'Y:Load 86 - CLUCCI31'\np2118\ng35\n(S'Variable_Type'\n(I2\nttRp2119\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np2120\ng35\n(S'Variable_Type'\n(I2\nttRp2121\nsS'Y:Load 57 - CBONIF31'\np2122\ng35\n(S'Variable_Type'\n(I2\nttRp2123\nsS'Y:PMachine104 - CPROPR31'\np2124\ng35\n(S'Variable_Type'\n(I2\nttRp2125\nsS'Y:VBus128 - CVAZZI39'\np2126\ng35\n(S'Variable_Type'\n(I2\nttRp2127\nsS'Y:PMachine136 - CLUCCI37'\np2128\ng35\n(S'Variable_Type'\n(I1\nttRp2129\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np2130\ng35\n(S'Variable_Type'\n(I2\nttRp2131\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np2132\ng35\n(S'Variable_Type'\n(I2\nttRp2133\nsS'Y:PMachine68 - CCASAM36'\np2134\ng35\n(S'Variable_Type'\n(I2\nttRp2135\nsS'Y:PMachine29 - CLUCCI21'\np2136\ng35\n(S'Variable_Type'\n(I1\nttRp2137\nsS'Y:VBus42 - CSISCO21'\np2138\ng35\n(S'Variable_Type'\n(I2\nttRp2139\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np2140\ng35\n(S'Variable_Type'\n(I1\nttRp2141\nsS'Y:VBus14 - CBONIF21'\np2142\ng35\n(S'Variable_Type'\n(I2\nttRp2143\nsS'Y:VBus73 - CCASTI32'\np2144\ng35\n(S'Variable_Type'\n(I2\nttRp2145\nsS'Y:VBus64 - CCASAM32'\np2146\ng35\n(S'Variable_Type'\n(I2\nttRp2147\nsS'Y:PMachine14 - CBONIF21'\np2148\ng35\n(S'Variable_Type'\n(I1\nttRp2149\nsS'Y:PMachine62 - CCALVI32'\np2150\ng35\n(S'Variable_Type'\n(I2\nttRp2151\nsS'Y:VBus133 - CVAZZI314'\np2152\ng35\n(S'Variable_Type'\n(I2\nttRp2153\nsS'Y:VBus63 - CCASAM31'\np2154\ng35\n(S'Variable_Type'\n(I2\nttRp2155\nsS'Y:PMachine101 - CPIETR31'\np2156\ng35\n(S'Variable_Type'\n(I2\nttRp2157\nsS'Y:%Losses'\np2158\ng35\n(S'Variable_Type'\n(I2\nttRp2159\nsS'Y:VBus85 - CLORET32'\np2160\ng35\n(S'Variable_Type'\n(I2\nttRp2161\nsS'Y:Load 59 - CCALDA31'\np2162\ng35\n(S'Variable_Type'\n(I2\nttRp2163\nsS'Y:VBus129 - CVAZZI310'\np2164\ng35\n(S'Variable_Type'\n(I2\nttRp2165\nsS'Y:VBus101 - CPIETR31'\np2166\ng35\n(S'Variable_Type'\n(I2\nttRp2167\nsS'Y:PMachine106 - CRIZZA31'\np2168\ng35\n(S'Variable_Type'\n(I2\nttRp2169\nsS'Y:VBus132 - CVAZZI313'\np2170\ng35\n(S'Variable_Type'\n(I2\nttRp2171\nsS'Y:PMachine118 - CTOLLA33'\np2172\ng35\n(S'Variable_Type'\n(I2\nttRp2173\nsS'Y:VBus19 - CCASTI21'\np2174\ng35\n(S'Variable_Type'\n(I2\nttRp2175\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np2176\ng35\n(S'Variable_Type'\n(I2\nttRp2177\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np2178\ng35\n(S'Variable_Type'\n(I1\nttRp2179\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np2180\ng35\n(S'Variable_Type'\n(I2\nttRp2181\nsS'Y:Load 115 - CTAGLI31'\np2182\ng1909\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np2183\ng35\n(S'Variable_Type'\n(I2\nttRp2184\nsS'Y:VBus79 - CFURIA32'\np2185\ng35\n(S'Variable_Type'\n(I2\nttRp2186\nsS'Y:PMachine47 - CVAZZI21'\np2187\ng35\n(S'Variable_Type'\n(I1\nttRp2188\nsS'Y:VBus123 - CVAZZI34'\np2189\ng35\n(S'Variable_Type'\n(I2\nttRp2190\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np2191\ng35\n(S'Variable_Type'\n(I2\nttRp2192\nsS'Y:VBus60 - CCALDA32'\np2193\ng35\n(S'Variable_Type'\n(I2\nttRp2194\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np2195\ng35\n(S'Variable_Type'\n(I2\nttRp2196\nsS'Y:VBus65 - CCASAM33'\np2197\ng35\n(S'Variable_Type'\n(I2\nttRp2198\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np2199\ng35\n(S'Variable_Type'\n(I1\nttRp2200\nsS'Y:PMachine139 - CLUCCI310'\np2201\ng35\n(S'Variable_Type'\n(I1\nttRp2202\nsS'Y:VBus112 - CSAMPO31'\np2203\ng35\n(S'Variable_Type'\n(I2\nttRp2204\nsS'Y:VBus68 - CCASAM36'\np2205\ng35\n(S'Variable_Type'\n(I2\nttRp2206\nsS'Y:Load 55 - CBIGUG31'\np2207\ng35\n(S'Variable_Type'\n(I2\nttRp2208\nsS'Y:PMachine53 - CBASTI31'\np2209\ng35\n(S'Variable_Type'\n(I2\nttRp2210\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np2211\ng35\n(S'Variable_Type'\n(I2\nttRp2212\nsS'Y:VBus24 - CFURIA21'\np2213\ng35\n(S'Variable_Type'\n(I2\nttRp2214\nsS'Y:VBus23 - CCORTE22'\np2215\ng35\n(S'Variable_Type'\n(I2\nttRp2216\nsS'Y:VBus18 - CCASAM21'\np2217\ng35\n(S'Variable_Type'\n(I2\nttRp2218\nsS'Y:VBus40 - CSTMAR21'\np2219\ng35\n(S'Variable_Type'\n(I2\nttRp2220\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np2221\ng35\n(S'Variable_Type'\n(I2\nttRp2222\nsS'Y:PMachine124 - CVAZZI35'\np2223\ng35\n(S'Variable_Type'\n(I2\nttRp2224\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np2225\ng35\n(S'Variable_Type'\n(I2\nttRp2226\nsS'Y:PMachine117 - CTOLLA32'\np2227\ng35\n(S'Variable_Type'\n(I2\nttRp2228\nsS'Y:VBus89 - CLUCCI34'\np2229\ng35\n(S'Variable_Type'\n(I2\nttRp2230\nsS'Y:VBus33 - COLETT21'\np2231\ng35\n(S'Variable_Type'\n(I2\nttRp2232\nsS'Y:VBus32 - COCANA21'\np2233\ng35\n(S'Variable_Type'\n(I2\nttRp2234\nsS'Y:PMachine121 - CVAZZI32'\np2235\ng35\n(S'Variable_Type'\n(I2\nttRp2236\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np2237\ng35\n(S'Variable_Type'\n(I1\nttRp2238\nsS'Y:VBus82 - CILERO31'\np2239\ng35\n(S'Variable_Type'\n(I2\nttRp2240\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np2241\ng35\n(S'Variable_Type'\n(I2\nttRp2242\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np2243\ng35\n(S'Variable_Type'\n(I2\nttRp2244\nsS'Y:VBus37 - CRIZZA21'\np2245\ng35\n(S'Variable_Type'\n(I2\nttRp2246\nsS'Y:PMachine73 - CCASTI32'\np2247\ng35\n(S'Variable_Type'\n(I2\nttRp2248\nsS'Y:PMachine86 - CLUCCI31'\np2249\ng35\n(S'Variable_Type'\n(I2\nttRp2250\nsS'Y:Load 53 - CBASTI31'\np2251\ng35\n(S'Variable_Type'\n(I2\nttRp2252\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np2253\ng35\n(S'Variable_Type'\n(I2\nttRp2254\nsS'Y:VBus21 - CCORSC21'\np2255\ng35\n(S'Variable_Type'\n(I2\nttRp2256\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np2257\ng35\n(S'Variable_Type'\n(I2\nttRp2258\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np2259\ng35\n(S'Variable_Type'\n(I2\nttRp2260\nsS'Y:PMachine126 - CVAZZI37'\np2261\ng35\n(S'Variable_Type'\n(I2\nttRp2262\nsS'Y:PMachine64 - CCASAM32'\np2263\ng35\n(S'Variable_Type'\n(I2\nttRp2264\nsS'Y:VBus67 - CCASAM35'\np2265\ng35\n(S'Variable_Type'\n(I2\nttRp2266\nsS'Y:VBus53 - CBASTI31'\np2267\ng35\n(S'Variable_Type'\n(I2\nttRp2268\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np2269\ng35\n(S'Variable_Type'\n(I2\nttRp2270\nsS'Y:VBus61 - CCALVI31'\np2271\ng35\n(S'Variable_Type'\n(I2\nttRp2272\nsS'Y:VBus93 - COCANA32'\np2273\ng35\n(S'Variable_Type'\n(I2\nttRp2274\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np2275\ng35\n(S'Variable_Type'\n(I2\nttRp2276\nsS'Y:NbeTransit_0.9-1'\np2277\ng35\n(S'Variable_Type'\n(I1\nttRp2278\nsS'Y:VBus104 - CPROPR31'\np2279\ng35\n(S'Variable_Type'\n(I2\nttRp2280\nsS'Y:VBus22 - CCORTE21'\np2281\ng35\n(S'Variable_Type'\n(I2\nttRp2282\nsS'Y:VBus48 - CZSSS621'\np2283\ng35\n(S'Variable_Type'\n(I2\nttRp2284\nsS'Y:PMachine85 - CLORET32'\np2285\ng35\n(S'Variable_Type'\n(I2\nttRp2286\nsS'Y:Max%A'\np2287\ng35\n(S'Variable_Type'\n(I2\nttRp2288\nsS'Y:VBus36 - CPROPR21'\np2289\ng35\n(S'Variable_Type'\n(I2\nttRp2290\nsS'Y:Load 100 - COLETT31'\np2291\ng35\n(S'Variable_Type'\n(I2\nttRp2292\nsS'Y:PMachine54 - CBASTI32'\np2293\ng35\n(S'Variable_Type'\n(I2\nttRp2294\nsS'Y:VBus138 - CLUCCI39'\np2295\ng35\n(S'Variable_Type'\n(I2\nttRp2296\nsS'Y:VBus39 - CSTLUC21'\np2297\ng35\n(S'Variable_Type'\n(I2\nttRp2298\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np2299\ng35\n(S'Variable_Type'\n(I2\nttRp2300\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np2301\ng35\n(S'Variable_Type'\n(I2\nttRp2302\nsS'Y:Load 78 - CFURIA31'\np2303\ng35\n(S'Variable_Type'\n(I2\nttRp2304\nsS'Y:Load 74 - CCERVI31'\np2305\ng35\n(S'Variable_Type'\n(I2\nttRp2306\nsS'Y:VBus28 - CLORET21'\np2307\ng35\n(S'Variable_Type'\n(I2\nttRp2308\nsS'Y:PMachine105 - CPROPR32'\np2309\ng35\n(S'Variable_Type'\n(I2\nttRp2310\nsS'Y:VBus96 - COCANA35'\np2311\ng35\n(S'Variable_Type'\n(I2\nttRp2312\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np2313\ng35\n(S'Variable_Type'\n(I1\nttRp2314\nsS'Y:PMachine18 - CCASAM21'\np2315\ng35\n(S'Variable_Type'\n(I1\nttRp2316\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np2317\ng35\n(S'Variable_Type'\n(I2\nttRp2318\nsS'Y:VBus13 - CBIGUG21'\np2319\ng35\n(S'Variable_Type'\n(I2\nttRp2320\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np2321\ng35\n(S'Variable_Type'\n(I2\nttRp2322\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np2323\ng35\n(S'Variable_Type'\n(I2\nttRp2324\nsS'Y:VBus29 - CLUCCI21'\np2325\ng35\n(S'Variable_Type'\n(I2\nttRp2326\nsS'Y:VBus58 - CBONIF32'\np2327\ng35\n(S'Variable_Type'\n(I2\nttRp2328\nsS'Y:VBus84 - CLORET31'\np2329\ng35\n(S'Variable_Type'\n(I2\nttRp2330\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np2331\ng35\n(S'Variable_Type'\n(I1\nttRp2332\nsS'Y:VBus97 - COCANA36'\np2333\ng35\n(S'Variable_Type'\n(I2\nttRp2334\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np2335\ng35\n(S'Variable_Type'\n(I1\nttRp2336\nsS'Y:VBus15 - CBONIF22'\np2337\ng35\n(S'Variable_Type'\n(I2\nttRp2338\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np2339\ng35\n(S'Variable_Type'\n(I2\nttRp2340\nsS'Y:Load 110 - CSTLUC31'\np2341\ng35\n(S'Variable_Type'\n(I2\nttRp2342\nsS'Y:VBus80 - CGHISO31'\np2343\ng35\n(S'Variable_Type'\n(I2\nttRp2344\nsS'Y:PMachine114 - CSOVEN31'\np2345\ng35\n(S'Variable_Type'\n(I2\nttRp2346\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np2347\ng35\n(S'Variable_Type'\n(I1\nttRp2348\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np2349\ng35\n(S'Variable_Type'\n(I2\nttRp2350\nsS'Y:PMachine93 - COCANA32'\np2351\ng35\n(S'Variable_Type'\n(I2\nttRp2352\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np2353\ng35\n(S'Variable_Type'\n(I1\nttRp2354\nsS'Y:VBus87 - CLUCCI32'\np2355\ng35\n(S'Variable_Type'\n(I2\nttRp2356\nsS'Y:VBus62 - CCALVI32'\np2357\ng35\n(S'Variable_Type'\n(I2\nttRp2358\nsS'CASA_DIESEL'\np2359\ng35\n(S'Variable_Type'\n(I2\nttRp2360\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np2361\ng35\n(S'Variable_Type'\n(I1\nttRp2362\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np2363\ng35\n(S'Variable_Type'\n(I1\nttRp2364\nsS'Y:VBus81 - CGHISO32'\np2365\ng35\n(S'Variable_Type'\n(I2\nttRp2366\nsS'Y:PMachine74 - CCERVI31'\np2367\ng35\n(S'Variable_Type'\n(I2\nttRp2368\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np2369\ng35\n(S'Variable_Type'\n(I2\nttRp2370\nsS'EOL_ALL'\np2371\ng35\n(S'Variable_Type'\n(I2\nttRp2372\nsS'X:Load(pu)'\np2373\ng1902\nsS'Y:NbeTension'\np2374\ng35\n(S'Variable_Type'\n(I2\nttRp2375\nsS'Y:VBus95 - COCANA34'\np2376\ng35\n(S'Variable_Type'\n(I2\nttRp2377\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np2378\ng35\n(S'Variable_Type'\n(I2\nttRp2379\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np2380\ng35\n(S'Variable_Type'\n(I2\nttRp2381\nsS'Y:Load 95 - COCANA34'\np2382\ng35\n(S'Variable_Type'\n(I2\nttRp2383\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np2384\ng35\n(S'Variable_Type'\n(I1\nttRp2385\nsS'Y:PMachine90 - CMOROS31'\np2386\ng35\n(S'Variable_Type'\n(I2\nttRp2387\nsS'Y:Load 101 - CPIETR31'\np2388\ng35\n(S'Variable_Type'\n(I2\nttRp2389\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np2390\ng35\n(S'Variable_Type'\n(I1\nttRp2391\nsS'Y:PMachine132 - CVAZZI313'\np2392\ng35\n(S'Variable_Type'\n(I2\nttRp2393\nsS'Y:VBus125 - CVAZZI36'\np2394\ng35\n(S'Variable_Type'\n(I2\nttRp2395\nsS'Y:VBus135 - CLUCCI36'\np2396\ng35\n(S'Variable_Type'\n(I2\nttRp2397\nsS'Y:VBus47 - CVAZZI21'\np2398\ng35\n(S'Variable_Type'\n(I2\nttRp2399\nsS'Y:VBus94 - COCANA33'\np2400\ng35\n(S'Variable_Type'\n(I2\nttRp2401\nsS'Y:VBus17 - CCALVI21'\np2402\ng35\n(S'Variable_Type'\n(I2\nttRp2403\nsS'Y:Load 90 - CMOROS31'\np2404\ng35\n(S'Variable_Type'\n(I2\nttRp2405\nsS'Y:VBus120 - CVAZZI31'\np2406\ng35\n(S'Variable_Type'\n(I2\nttRp2407\nsS'X:ProdPV%Pnom'\np2408\ng35\n(S'Variable_Type'\n(I2\nttRp2409\nsS'Y:VBus52 - CASPRE32'\np2410\ng35\n(S'Variable_Type'\n(I2\nttRp2411\nsS'Y:VBus25 - CFURIA22'\np2412\ng35\n(S'Variable_Type'\n(I2\nttRp2413\nsS'Y:Load 76 - CCORTE31'\np2414\ng35\n(S'Variable_Type'\n(I2\nttRp2415\nsS'Y:PMachine69 - CCASAM37'\np2416\ng35\n(S'Variable_Type'\n(I2\nttRp2417\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np2418\ng35\n(S'Variable_Type'\n(I2\nttRp2419\nsS'Y:PMachine92 - COCANA31'\np2420\ng35\n(S'Variable_Type'\n(I2\nttRp2421\nsS'Y:VBus35 - CPORTO21'\np2422\ng35\n(S'Variable_Type'\n(I2\nttRp2423\nsS'VAZZIO_TAC'\np2424\ng35\n(S'Variable_Type'\n(I2\nttRp2425\nsS'Y:PMachine122 - CVAZZI33'\np2426\ng35\n(S'Variable_Type'\n(I2\nttRp2427\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np2428\ng35\n(S'Variable_Type'\n(I1\nttRp2429\nsS'Y:PMachine63 - CCASAM31'\np2430\ng35\n(S'Variable_Type'\n(I2\nttRp2431\nsS'Y:VBus74 - CCERVI31'\np2432\ng35\n(S'Variable_Type'\n(I2\nttRp2433\nsS'Y:VBus126 - CVAZZI37'\np2434\ng35\n(S'Variable_Type'\n(I2\nttRp2435\nsS'Y:PMachine60 - CCALDA32'\np2436\ng35\n(S'Variable_Type'\n(I2\nttRp2437\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np2438\ng35\n(S'Variable_Type'\n(I1\nttRp2439\nsS'Y:VBus20 - CCERVI21'\np2440\ng35\n(S'Variable_Type'\n(I2\nttRp2441\nsS'Y:VBus119 - CTRAVO31'\np2442\ng35\n(S'Variable_Type'\n(I2\nttRp2443\nsS'Y:VBus11 - CASPRE21'\np2444\ng35\n(S'Variable_Type'\n(I2\nttRp2445\nsS'Y:VBus139 - CLUCCI310'\np2446\ng35\n(S'Variable_Type'\n(I2\nttRp2447\nsS'Y:VBus106 - CRIZZA31'\np2448\ng35\n(S'Variable_Type'\n(I2\nttRp2449\nsS'Y:PMachine66 - CCASAM34'\np2450\ng35\n(S'Variable_Type'\n(I2\nttRp2451\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np2452\ng35\n(S'Variable_Type'\n(I2\nttRp2453\nsS'Y:VBus136 - CLUCCI37'\np2454\ng35\n(S'Variable_Type'\n(I2\nttRp2455\nsS'Y:VBus90 - CMOROS31'\np2456\ng35\n(S'Variable_Type'\n(I2\nttRp2457\nsS'PV_ALL'\np2458\ng35\n(S'Variable_Type'\n(I2\nttRp2459\nsS'X:lineOff#'\np2460\ng35\n(S'Variable_Type'\n(I2\nttRp2461\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np2462\ng35\n(S'Variable_Type'\n(I2\nttRp2463\nsS'Y:VBus108 - CSAGON31'\np2464\ng35\n(S'Variable_Type'\n(I2\nttRp2465\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np2466\ng35\n(S'Variable_Type'\n(I2\nttRp2467\nsS'Y:VBus137 - CLUCCI38'\np2468\ng35\n(S'Variable_Type'\n(I2\nttRp2469\nsS'Y:VBus130 - CVAZZI311'\np2470\ng35\n(S'Variable_Type'\n(I2\nttRp2471\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np2472\ng35\n(S'Variable_Type'\n(I2\nttRp2473\nsS'Y:VBus46 - CTRAVO21'\np2474\ng35\n(S'Variable_Type'\n(I2\nttRp2475\nsS'Y:VBus113 - CSAMPO32'\np2476\ng35\n(S'Variable_Type'\n(I2\nttRp2477\nsS'Y:PMachine133 - CVAZZI314'\np2478\ng35\n(S'Variable_Type'\n(I2\nttRp2479\nsS'Y:PMachine65 - CCASAM33'\np2480\ng35\n(S'Variable_Type'\n(I2\nttRp2481\nsS'Y:VBus78 - CFURIA31'\np2482\ng35\n(S'Variable_Type'\n(I2\nttRp2483\nsS'Y:VBus26 - CGHISO21'\np2484\ng35\n(S'Variable_Type'\n(I2\nttRp2485\nsS'Y:VBus121 - CVAZZI32'\np2486\ng35\n(S'Variable_Type'\n(I2\nttRp2487\nsS'Y:PMachine97 - COCANA36'\np2488\ng35\n(S'Variable_Type'\n(I2\nttRp2489\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np2490\ng35\n(S'Variable_Type'\n(I2\nttRp2491\nsS'Y:PMachine83 - CILERO32'\np2492\ng35\n(S'Variable_Type'\n(I2\nttRp2493\nsS'Y:VBus83 - CILERO32'\np2494\ng35\n(S'Variable_Type'\n(I2\nttRp2495\nsS'Y:VBus66 - CCASAM34'\np2496\ng35\n(S'Variable_Type'\n(I2\nttRp2497\nsS'Y:PMachine1 - CBONIF11'\np2498\ng35\n(S'Variable_Type'\n(I2\nttRp2499\nsS'Y:VBus111 - CSTMAR31'\np2500\ng35\n(S'Variable_Type'\n(I2\nttRp2501\nsS'Y:VBus124 - CVAZZI35'\np2502\ng35\n(S'Variable_Type'\n(I2\nttRp2503\nsS'VAZZIO_DIESEL'\np2504\ng35\n(S'Variable_Type'\n(I2\nttRp2505\nsS'Y:PMachine131 - CVAZZI312'\np2506\ng35\n(S'Variable_Type'\n(I2\nttRp2507\nsS'Y:VBus44 - CTAGLI21'\np2508\ng35\n(S'Variable_Type'\n(I2\nttRp2509\nsS'Y:VBus88 - CLUCCI33'\np2510\ng35\n(S'Variable_Type'\n(I2\nttRp2511\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np2512\ng35\n(S'Variable_Type'\n(I1\nttRp2513\nsS'Y:VBus38 - CSAGON21'\np2514\ng35\n(S'Variable_Type'\n(I2\nttRp2515\nsS'Y:PMachine81 - CGHISO32'\np2516\ng35\n(S'Variable_Type'\n(I2\nttRp2517\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np2518\ng35\n(S'Variable_Type'\n(I2\nttRp2519\nsS'Y:VBus110 - CSTLUC31'\np2520\ng35\n(S'Variable_Type'\n(I2\nttRp2521\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np2522\ng35\n(S'Variable_Type'\n(I2\nttRp2523\nssg650\n(lp2524\ng652\nasba(iOWContexts\nContext\np2525\n(dp2526\ng24\n(lp2527\nsg26\n(dp2528\nsg28\n(dp2529\ng1897\n(S''\nI-1\ntp2530\nsg1899\n(S''\nI0\ntp2531\nsg1901\n(g1281\ng35\n(S'Variable_Type'\n(I2\nttRp2532\ntp2533\nsg1904\n(g1284\ng2532\ntp2534\nsg1906\n(S''\nI0\ntp2535\nsg1908\n(g1287\ng35\n(S'Variable_Type'\n(I2\nttRp2536\ntp2537\nssg46\nF1369994938.898\nsg47\n(dp2538\nS'Y:PMachine134 - CLUCCI35'\np2539\ng35\n(S'Variable_Type'\n(I1\nttRp2540\nsS'Y:VBus77 - CCORTE32'\np2541\ng35\n(S'Variable_Type'\n(I2\nttRp2542\nsS'Y:VBus134 - CLUCCI35'\np2543\ng35\n(S'Variable_Type'\n(I2\nttRp2544\nsS'Y:VBus109 - CSAGON32'\np2545\ng35\n(S'Variable_Type'\n(I2\nttRp2546\nsS'Y:VBus102 - CPORTO31'\np2547\ng35\n(S'Variable_Type'\n(I2\nttRp2548\nsS'XProdEolienne%Pnom'\np2549\ng35\n(S'Variable_Type'\n(I1\nttRp2550\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np2551\ng35\n(S'Variable_Type'\n(I2\nttRp2552\nsS'Y:PMachine94 - COCANA33'\np2553\ng35\n(S'Variable_Type'\n(I2\nttRp2554\nsS'Y:VBus117 - CTOLLA32'\np2555\ng35\n(S'Variable_Type'\n(I2\nttRp2556\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np2557\ng35\n(S'Variable_Type'\n(I2\nttRp2558\nsS'Y:PMachine87 - CLUCCI32'\np2559\ng35\n(S'Variable_Type'\n(I2\nttRp2560\nsS'Y:PMachine113 - CSAMPO32'\np2561\ng35\n(S'Variable_Type'\n(I2\nttRp2562\nsS'Y:Load 84 - CLORET31'\np2563\ng35\n(S'Variable_Type'\n(I2\nttRp2564\nsS'Y:PMachine89 - CLUCCI34'\np2565\ng35\n(S'Variable_Type'\n(I1\nttRp2566\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np2567\ng35\n(S'Variable_Type'\n(I2\nttRp2568\nsS'Y:Load 80 - CGHISO31'\np2569\ng35\n(S'Variable_Type'\n(I2\nttRp2570\nsS'Y:PMachine125 - CVAZZI36'\np2571\ng35\n(S'Variable_Type'\n(I2\nttRp2572\nsS'Y:PMachine116 - CTOLLA31'\np2573\ng35\n(S'Variable_Type'\n(I2\nttRp2574\nsS'Y:PMachine88 - CLUCCI33'\np2575\ng35\n(S'Variable_Type'\n(I1\nttRp2576\nsS'Y:PMachine120 - CVAZZI31'\np2577\ng35\n(S'Variable_Type'\n(I2\nttRp2578\nsS'Y:PMachine111 - CSTMAR31'\np2579\ng35\n(S'Variable_Type'\n(I2\nttRp2580\nsS'Y:NbeTransit'\np2581\ng35\n(S'Variable_Type'\n(I1\nttRp2582\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np2583\ng35\n(S'Variable_Type'\n(I2\nttRp2584\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np2585\ng35\n(S'Variable_Type'\n(I2\nttRp2586\nsS'Y:VBus92 - COCANA31'\np2587\ng35\n(S'Variable_Type'\n(I2\nttRp2588\nsS'Y:PMachine130 - CVAZZI311'\np2589\ng35\n(S'Variable_Type'\n(I2\nttRp2590\nsS'Y:PMachine127 - CVAZZI38'\np2591\ng35\n(S'Variable_Type'\n(I2\nttRp2592\nsS'Y:VBus131 - CVAZZI312'\np2593\ng35\n(S'Variable_Type'\n(I2\nttRp2594\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np2595\ng35\n(S'Variable_Type'\n(I2\nttRp2596\nsS'Y:PMachine123 - CVAZZI34'\np2597\ng35\n(S'Variable_Type'\n(I2\nttRp2598\nsS'Y:VBus118 - CTOLLA33'\np2599\ng35\n(S'Variable_Type'\n(I2\nttRp2600\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np2601\ng35\n(S'Variable_Type'\n(I1\nttRp2602\nsS'Y:PMachine58 - CBONIF32'\np2603\ng35\n(S'Variable_Type'\n(I2\nttRp2604\nsS'Y:Load 104 - CPROPR31'\np2605\ng35\n(S'Variable_Type'\n(I2\nttRp2606\nsS'Y:PMachine30 - CLUCCI22'\np2607\ng35\n(S'Variable_Type'\n(I1\nttRp2608\nsS'Y:VBus100 - COLETT31'\np2609\ng35\n(S'Variable_Type'\n(I2\nttRp2610\nsS'Y:PProdTot'\np2611\ng35\n(S'Variable_Type'\n(I2\nttRp2612\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np2613\ng35\n(S'Variable_Type'\n(I1\nttRp2614\nsS'Y:VBus57 - CBONIF31'\np2615\ng35\n(S'Variable_Type'\n(I2\nttRp2616\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np2617\ng35\n(S'Variable_Type'\n(I2\nttRp2618\nsS'Y:PConsoTot'\np2619\ng35\n(S'Variable_Type'\n(I2\nttRp2620\nsS'Iteration'\np2621\ng35\n(S'Variable_Type'\n(I2\nttRp2622\nsS'Y:PMachine109 - CSAGON32'\np2623\ng35\n(S'Variable_Type'\n(I2\nttRp2624\nsS'Y:PMachine135 - CLUCCI36'\np2625\ng35\n(S'Variable_Type'\n(I1\nttRp2626\nsS'Y:VBus30 - CLUCCI22'\np2627\ng35\n(S'Variable_Type'\n(I2\nttRp2628\nsS'Y:VBus122 - CVAZZI33'\np2629\ng35\n(S'Variable_Type'\n(I2\nttRp2630\nsS'Y:VBus86 - CLUCCI31'\np2631\ng35\n(S'Variable_Type'\n(I2\nttRp2632\nsS'Y:PMachine102 - CPORTO31'\np2633\ng35\n(S'Variable_Type'\n(I2\nttRp2634\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np2635\ng35\n(S'Variable_Type'\n(I1\nttRp2636\nsS'Y:PMachine107 - CRIZZA32'\np2637\ng35\n(S'Variable_Type'\n(I2\nttRp2638\nsS'Y:VBus16 - CCALDA21'\np2639\ng35\n(S'Variable_Type'\n(I2\nttRp2640\nsS'Y:Load 102 - CPORTO31'\np2641\ng35\n(S'Variable_Type'\n(I2\nttRp2642\nsS'Y:VBus107 - CRIZZA32'\np2643\ng35\n(S'Variable_Type'\n(I2\nttRp2644\nsS'Y:VBus59 - CCALDA31'\np2645\ng35\n(S'Variable_Type'\n(I2\nttRp2646\nsS'Y:VBus41 - CSAMPO21'\np2647\ng35\n(S'Variable_Type'\n(I2\nttRp2648\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np2649\ng35\n(S'Variable_Type'\n(I2\nttRp2650\nsS'Y:VBus34 - CPIETR21'\np2651\ng35\n(S'Variable_Type'\n(I2\nttRp2652\nsS'Y:Load 108 - CSAGON31'\np2653\ng35\n(S'Variable_Type'\n(I2\nttRp2654\nsS'Y:VBus56 - CBIGUG32'\np2655\ng35\n(S'Variable_Type'\n(I2\nttRp2656\nsS'Y:PMachine42 - CSISCO21'\np2657\ng35\n(S'Variable_Type'\n(I2\nttRp2658\nsS'Y:PMachine138 - CLUCCI39'\np2659\ng35\n(S'Variable_Type'\n(I1\nttRp2660\nsS'Y:PMachine112 - CSAMPO31'\np2661\ng35\n(S'Variable_Type'\n(I2\nttRp2662\nsS'Y:VBus105 - CPROPR32'\np2663\ng35\n(S'Variable_Type'\n(I2\nttRp2664\nsS'Y:VBus1 - CBONIF11'\np2665\ng35\n(S'Variable_Type'\n(I2\nttRp2666\nsS'Y:VBus12 - CBASTI21'\np2667\ng35\n(S'Variable_Type'\n(I2\nttRp2668\nsS'Y:PMachine129 - CVAZZI310'\np2669\ng35\n(S'Variable_Type'\n(I2\nttRp2670\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np2671\ng35\n(S'Variable_Type'\n(I1\nttRp2672\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np2673\ng35\n(S'Variable_Type'\n(I1\nttRp2674\nsS'Y:VBus54 - CBASTI32'\np2675\ng35\n(S'Variable_Type'\n(I2\nttRp2676\nsS'Y:VBus69 - CCASAM37'\np2677\ng35\n(S'Variable_Type'\n(I2\nttRp2678\nsS'Y:VBus45 - CTOLLA21'\np2679\ng35\n(S'Variable_Type'\n(I2\nttRp2680\nsS'Y:PMachine115 - CTAGLI31'\np2681\ng35\n(S'Variable_Type'\n(I2\nttRp2682\nsS'Y:PMachine77 - CCORTE32'\np2683\ng35\n(S'Variable_Type'\n(I2\nttRp2684\nsS'Y:VBus43 - CSOVEN21'\np2685\ng35\n(S'Variable_Type'\n(I2\nttRp2686\nsS'Y:VBus76 - CCORTE31'\np2687\ng35\n(S'Variable_Type'\n(I2\nttRp2688\nsS'Y:VBus75 - CCORSC31'\np2689\ng35\n(S'Variable_Type'\n(I2\nttRp2690\nsS'Y:PMachine78 - CFURIA31'\np2691\ng35\n(S'Variable_Type'\n(I1\nttRp2692\nsS'Y:VBus127 - CVAZZI38'\np2693\ng35\n(S'Variable_Type'\n(I2\nttRp2694\nsS'Y:VBus115 - CTAGLI31'\np2695\ng35\n(S'Variable_Type'\n(I2\nttRp2696\nsS'Y:Load 61 - CCALVI31'\np2697\ng35\n(S'Variable_Type'\n(I2\nttRp2698\nsS'Y:VBus55 - CBIGUG31'\np2699\ng35\n(S'Variable_Type'\n(I2\nttRp2700\nsS'Y:Load 42 - CSISCO21'\np2701\ng35\n(S'Variable_Type'\n(I2\nttRp2702\nsS'Y:VBus72 - CCASTI31'\np2703\ng35\n(S'Variable_Type'\n(I2\nttRp2704\nsS'Y:Load 37 - CRIZZA21'\np2705\ng35\n(S'Variable_Type'\n(I2\nttRp2706\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np2707\ng35\n(S'Variable_Type'\n(I2\nttRp2708\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np2709\ng35\n(S'Variable_Type'\n(I2\nttRp2710\nsS'Y:PMachine137 - CLUCCI38'\np2711\ng35\n(S'Variable_Type'\n(I1\nttRp2712\nsS'Y:PMachine67 - CCASAM35'\np2713\ng35\n(S'Variable_Type'\n(I2\nttRp2714\nsS'INTERCOS'\np2715\ng35\n(S'Variable_Type'\n(I2\nttRp2716\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np2717\ng35\n(S'Variable_Type'\n(I1\nttRp2718\nsS'Y:VBus31 - CMOROS21'\np2719\ng35\n(S'Variable_Type'\n(I2\nttRp2720\nsS'Y:VBus103 - CPORTO32'\np2721\ng35\n(S'Variable_Type'\n(I2\nttRp2722\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np2723\ng35\n(S'Variable_Type'\n(I1\nttRp2724\nsS'Y:PMachine128 - CVAZZI39'\np2725\ng35\n(S'Variable_Type'\n(I2\nttRp2726\nsS'Y:PMachine72 - CCASTI31'\np2727\ng35\n(S'Variable_Type'\n(I2\nttRp2728\nsS'Y:VBus27 - CILERO21'\np2729\ng35\n(S'Variable_Type'\n(I2\nttRp2730\nsS'Y:PMachine75 - CCORSC31'\np2731\ng35\n(S'Variable_Type'\n(I2\nttRp2732\nsS'Y:Load 51 - CASPRE31'\np2733\ng35\n(S'Variable_Type'\n(I2\nttRp2734\nsS'Y:PMachine61 - CCALVI31'\np2735\ng35\n(S'Variable_Type'\n(I1\nttRp2736\nsS'Y:VBus51 - CASPRE31'\np2737\ng35\n(S'Variable_Type'\n(I2\nttRp2738\nsS'Y:VBus114 - CSOVEN31'\np2739\ng35\n(S'Variable_Type'\n(I2\nttRp2740\nsS'Y:Load 82 - CILERO31'\np2741\ng35\n(S'Variable_Type'\n(I2\nttRp2742\nsS'Y:VBus116 - CTOLLA31'\np2743\ng35\n(S'Variable_Type'\n(I2\nttRp2744\nsS'Y:Load 86 - CLUCCI31'\np2745\ng35\n(S'Variable_Type'\n(I2\nttRp2746\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np2747\ng35\n(S'Variable_Type'\n(I2\nttRp2748\nsS'Y:Load 57 - CBONIF31'\np2749\ng35\n(S'Variable_Type'\n(I2\nttRp2750\nsS'Y:PMachine104 - CPROPR31'\np2751\ng35\n(S'Variable_Type'\n(I2\nttRp2752\nsS'Y:VBus128 - CVAZZI39'\np2753\ng35\n(S'Variable_Type'\n(I2\nttRp2754\nsS'Y:PMachine136 - CLUCCI37'\np2755\ng35\n(S'Variable_Type'\n(I1\nttRp2756\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np2757\ng35\n(S'Variable_Type'\n(I2\nttRp2758\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np2759\ng35\n(S'Variable_Type'\n(I2\nttRp2760\nsS'Y:PMachine68 - CCASAM36'\np2761\ng35\n(S'Variable_Type'\n(I2\nttRp2762\nsS'Y:PMachine29 - CLUCCI21'\np2763\ng35\n(S'Variable_Type'\n(I1\nttRp2764\nsS'Y:VBus42 - CSISCO21'\np2765\ng35\n(S'Variable_Type'\n(I2\nttRp2766\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np2767\ng35\n(S'Variable_Type'\n(I1\nttRp2768\nsS'Y:VBus14 - CBONIF21'\np2769\ng35\n(S'Variable_Type'\n(I2\nttRp2770\nsS'Y:VBus73 - CCASTI32'\np2771\ng35\n(S'Variable_Type'\n(I2\nttRp2772\nsS'Y:VBus64 - CCASAM32'\np2773\ng35\n(S'Variable_Type'\n(I2\nttRp2774\nsS'Y:PMachine14 - CBONIF21'\np2775\ng35\n(S'Variable_Type'\n(I1\nttRp2776\nsS'Y:PMachine62 - CCALVI32'\np2777\ng35\n(S'Variable_Type'\n(I2\nttRp2778\nsS'Y:VBus133 - CVAZZI314'\np2779\ng35\n(S'Variable_Type'\n(I2\nttRp2780\nsS'Y:VBus63 - CCASAM31'\np2781\ng35\n(S'Variable_Type'\n(I2\nttRp2782\nsS'Y:PMachine101 - CPIETR31'\np2783\ng35\n(S'Variable_Type'\n(I2\nttRp2784\nsS'Y:%Losses'\np2785\ng35\n(S'Variable_Type'\n(I2\nttRp2786\nsS'Y:VBus85 - CLORET32'\np2787\ng35\n(S'Variable_Type'\n(I2\nttRp2788\nsS'Y:Load 59 - CCALDA31'\np2789\ng35\n(S'Variable_Type'\n(I2\nttRp2790\nsS'Y:VBus129 - CVAZZI310'\np2791\ng35\n(S'Variable_Type'\n(I2\nttRp2792\nsS'Y:VBus101 - CPIETR31'\np2793\ng35\n(S'Variable_Type'\n(I2\nttRp2794\nsS'Y:PMachine106 - CRIZZA31'\np2795\ng35\n(S'Variable_Type'\n(I2\nttRp2796\nsS'Y:VBus132 - CVAZZI313'\np2797\ng35\n(S'Variable_Type'\n(I2\nttRp2798\nsS'Y:PMachine118 - CTOLLA33'\np2799\ng35\n(S'Variable_Type'\n(I2\nttRp2800\nsS'Y:VBus19 - CCASTI21'\np2801\ng35\n(S'Variable_Type'\n(I2\nttRp2802\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np2803\ng35\n(S'Variable_Type'\n(I2\nttRp2804\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np2805\ng35\n(S'Variable_Type'\n(I1\nttRp2806\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np2807\ng35\n(S'Variable_Type'\n(I2\nttRp2808\nsS'Y:Load 115 - CTAGLI31'\np2809\ng2536\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np2810\ng35\n(S'Variable_Type'\n(I2\nttRp2811\nsS'Y:VBus79 - CFURIA32'\np2812\ng35\n(S'Variable_Type'\n(I2\nttRp2813\nsS'Y:PMachine47 - CVAZZI21'\np2814\ng35\n(S'Variable_Type'\n(I1\nttRp2815\nsS'Y:VBus123 - CVAZZI34'\np2816\ng35\n(S'Variable_Type'\n(I2\nttRp2817\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np2818\ng35\n(S'Variable_Type'\n(I2\nttRp2819\nsS'Y:VBus60 - CCALDA32'\np2820\ng35\n(S'Variable_Type'\n(I2\nttRp2821\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np2822\ng35\n(S'Variable_Type'\n(I2\nttRp2823\nsS'Y:VBus65 - CCASAM33'\np2824\ng35\n(S'Variable_Type'\n(I2\nttRp2825\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np2826\ng35\n(S'Variable_Type'\n(I1\nttRp2827\nsS'Y:PMachine139 - CLUCCI310'\np2828\ng35\n(S'Variable_Type'\n(I1\nttRp2829\nsS'Y:VBus112 - CSAMPO31'\np2830\ng35\n(S'Variable_Type'\n(I2\nttRp2831\nsS'Y:VBus68 - CCASAM36'\np2832\ng35\n(S'Variable_Type'\n(I2\nttRp2833\nsS'Y:Load 55 - CBIGUG31'\np2834\ng35\n(S'Variable_Type'\n(I2\nttRp2835\nsS'Y:PMachine53 - CBASTI31'\np2836\ng35\n(S'Variable_Type'\n(I2\nttRp2837\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np2838\ng35\n(S'Variable_Type'\n(I2\nttRp2839\nsS'Y:VBus24 - CFURIA21'\np2840\ng35\n(S'Variable_Type'\n(I2\nttRp2841\nsS'Y:VBus23 - CCORTE22'\np2842\ng35\n(S'Variable_Type'\n(I2\nttRp2843\nsS'Y:VBus18 - CCASAM21'\np2844\ng35\n(S'Variable_Type'\n(I2\nttRp2845\nsS'Y:VBus40 - CSTMAR21'\np2846\ng35\n(S'Variable_Type'\n(I2\nttRp2847\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np2848\ng35\n(S'Variable_Type'\n(I2\nttRp2849\nsS'Y:PMachine124 - CVAZZI35'\np2850\ng35\n(S'Variable_Type'\n(I2\nttRp2851\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np2852\ng35\n(S'Variable_Type'\n(I2\nttRp2853\nsS'Y:PMachine117 - CTOLLA32'\np2854\ng35\n(S'Variable_Type'\n(I2\nttRp2855\nsS'Y:VBus89 - CLUCCI34'\np2856\ng35\n(S'Variable_Type'\n(I2\nttRp2857\nsS'Y:VBus33 - COLETT21'\np2858\ng35\n(S'Variable_Type'\n(I2\nttRp2859\nsS'Y:VBus32 - COCANA21'\np2860\ng35\n(S'Variable_Type'\n(I2\nttRp2861\nsS'Y:PMachine121 - CVAZZI32'\np2862\ng35\n(S'Variable_Type'\n(I2\nttRp2863\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np2864\ng35\n(S'Variable_Type'\n(I1\nttRp2865\nsS'Y:VBus82 - CILERO31'\np2866\ng35\n(S'Variable_Type'\n(I2\nttRp2867\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np2868\ng35\n(S'Variable_Type'\n(I2\nttRp2869\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np2870\ng35\n(S'Variable_Type'\n(I2\nttRp2871\nsS'Y:VBus37 - CRIZZA21'\np2872\ng35\n(S'Variable_Type'\n(I2\nttRp2873\nsS'Y:PMachine73 - CCASTI32'\np2874\ng35\n(S'Variable_Type'\n(I2\nttRp2875\nsS'Y:PMachine86 - CLUCCI31'\np2876\ng35\n(S'Variable_Type'\n(I2\nttRp2877\nsS'Y:Load 53 - CBASTI31'\np2878\ng35\n(S'Variable_Type'\n(I2\nttRp2879\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np2880\ng35\n(S'Variable_Type'\n(I2\nttRp2881\nsS'Y:VBus21 - CCORSC21'\np2882\ng35\n(S'Variable_Type'\n(I2\nttRp2883\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np2884\ng35\n(S'Variable_Type'\n(I2\nttRp2885\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np2886\ng35\n(S'Variable_Type'\n(I2\nttRp2887\nsS'Y:PMachine126 - CVAZZI37'\np2888\ng35\n(S'Variable_Type'\n(I2\nttRp2889\nsS'Y:PMachine64 - CCASAM32'\np2890\ng35\n(S'Variable_Type'\n(I2\nttRp2891\nsS'Y:VBus67 - CCASAM35'\np2892\ng35\n(S'Variable_Type'\n(I2\nttRp2893\nsS'Y:VBus53 - CBASTI31'\np2894\ng35\n(S'Variable_Type'\n(I2\nttRp2895\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np2896\ng35\n(S'Variable_Type'\n(I2\nttRp2897\nsS'Y:VBus61 - CCALVI31'\np2898\ng35\n(S'Variable_Type'\n(I2\nttRp2899\nsS'Y:VBus93 - COCANA32'\np2900\ng35\n(S'Variable_Type'\n(I2\nttRp2901\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np2902\ng35\n(S'Variable_Type'\n(I2\nttRp2903\nsS'Y:NbeTransit_0.9-1'\np2904\ng35\n(S'Variable_Type'\n(I1\nttRp2905\nsS'Y:VBus104 - CPROPR31'\np2906\ng35\n(S'Variable_Type'\n(I2\nttRp2907\nsS'Y:VBus22 - CCORTE21'\np2908\ng35\n(S'Variable_Type'\n(I2\nttRp2909\nsS'Y:VBus48 - CZSSS621'\np2910\ng35\n(S'Variable_Type'\n(I2\nttRp2911\nsS'Y:PMachine85 - CLORET32'\np2912\ng35\n(S'Variable_Type'\n(I2\nttRp2913\nsS'Y:Max%A'\np2914\ng35\n(S'Variable_Type'\n(I2\nttRp2915\nsS'Y:VBus36 - CPROPR21'\np2916\ng35\n(S'Variable_Type'\n(I2\nttRp2917\nsS'Y:Load 100 - COLETT31'\np2918\ng35\n(S'Variable_Type'\n(I2\nttRp2919\nsS'Y:PMachine54 - CBASTI32'\np2920\ng35\n(S'Variable_Type'\n(I2\nttRp2921\nsS'Y:VBus138 - CLUCCI39'\np2922\ng35\n(S'Variable_Type'\n(I2\nttRp2923\nsS'Y:VBus39 - CSTLUC21'\np2924\ng35\n(S'Variable_Type'\n(I2\nttRp2925\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np2926\ng35\n(S'Variable_Type'\n(I2\nttRp2927\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np2928\ng35\n(S'Variable_Type'\n(I2\nttRp2929\nsS'Y:Load 78 - CFURIA31'\np2930\ng35\n(S'Variable_Type'\n(I2\nttRp2931\nsS'Y:Load 74 - CCERVI31'\np2932\ng35\n(S'Variable_Type'\n(I2\nttRp2933\nsS'Y:VBus28 - CLORET21'\np2934\ng35\n(S'Variable_Type'\n(I2\nttRp2935\nsS'Y:PMachine105 - CPROPR32'\np2936\ng35\n(S'Variable_Type'\n(I2\nttRp2937\nsS'Y:VBus96 - COCANA35'\np2938\ng35\n(S'Variable_Type'\n(I2\nttRp2939\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np2940\ng35\n(S'Variable_Type'\n(I1\nttRp2941\nsS'Y:PMachine18 - CCASAM21'\np2942\ng35\n(S'Variable_Type'\n(I1\nttRp2943\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np2944\ng35\n(S'Variable_Type'\n(I2\nttRp2945\nsS'Y:VBus13 - CBIGUG21'\np2946\ng35\n(S'Variable_Type'\n(I2\nttRp2947\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np2948\ng35\n(S'Variable_Type'\n(I2\nttRp2949\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np2950\ng35\n(S'Variable_Type'\n(I2\nttRp2951\nsS'Y:VBus29 - CLUCCI21'\np2952\ng35\n(S'Variable_Type'\n(I2\nttRp2953\nsS'Y:VBus58 - CBONIF32'\np2954\ng35\n(S'Variable_Type'\n(I2\nttRp2955\nsS'Y:VBus84 - CLORET31'\np2956\ng35\n(S'Variable_Type'\n(I2\nttRp2957\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np2958\ng35\n(S'Variable_Type'\n(I1\nttRp2959\nsS'Y:VBus97 - COCANA36'\np2960\ng35\n(S'Variable_Type'\n(I2\nttRp2961\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np2962\ng35\n(S'Variable_Type'\n(I1\nttRp2963\nsS'Y:VBus15 - CBONIF22'\np2964\ng35\n(S'Variable_Type'\n(I2\nttRp2965\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np2966\ng35\n(S'Variable_Type'\n(I2\nttRp2967\nsS'Y:Load 110 - CSTLUC31'\np2968\ng35\n(S'Variable_Type'\n(I2\nttRp2969\nsS'Y:VBus80 - CGHISO31'\np2970\ng35\n(S'Variable_Type'\n(I2\nttRp2971\nsS'Y:PMachine114 - CSOVEN31'\np2972\ng35\n(S'Variable_Type'\n(I2\nttRp2973\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np2974\ng35\n(S'Variable_Type'\n(I1\nttRp2975\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np2976\ng35\n(S'Variable_Type'\n(I2\nttRp2977\nsS'Y:PMachine93 - COCANA32'\np2978\ng35\n(S'Variable_Type'\n(I2\nttRp2979\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np2980\ng35\n(S'Variable_Type'\n(I1\nttRp2981\nsS'Y:VBus87 - CLUCCI32'\np2982\ng35\n(S'Variable_Type'\n(I2\nttRp2983\nsS'Y:VBus62 - CCALVI32'\np2984\ng35\n(S'Variable_Type'\n(I2\nttRp2985\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np2986\ng35\n(S'Variable_Type'\n(I1\nttRp2987\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np2988\ng35\n(S'Variable_Type'\n(I1\nttRp2989\nsS'Y:VBus81 - CGHISO32'\np2990\ng35\n(S'Variable_Type'\n(I2\nttRp2991\nsS'Y:PMachine74 - CCERVI31'\np2992\ng35\n(S'Variable_Type'\n(I2\nttRp2993\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np2994\ng35\n(S'Variable_Type'\n(I2\nttRp2995\nsS'EOL_ALL'\np2996\ng35\n(S'Variable_Type'\n(I2\nttRp2997\nsS'X:Load(pu)'\np2998\ng2532\nsS'Y:NbeTension'\np2999\ng35\n(S'Variable_Type'\n(I2\nttRp3000\nsS'Y:VBus95 - COCANA34'\np3001\ng35\n(S'Variable_Type'\n(I2\nttRp3002\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np3003\ng35\n(S'Variable_Type'\n(I2\nttRp3004\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np3005\ng35\n(S'Variable_Type'\n(I2\nttRp3006\nsS'Y:Load 95 - COCANA34'\np3007\ng35\n(S'Variable_Type'\n(I2\nttRp3008\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np3009\ng35\n(S'Variable_Type'\n(I1\nttRp3010\nsS'Y:PMachine90 - CMOROS31'\np3011\ng35\n(S'Variable_Type'\n(I2\nttRp3012\nsS'Y:Load 101 - CPIETR31'\np3013\ng35\n(S'Variable_Type'\n(I2\nttRp3014\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np3015\ng35\n(S'Variable_Type'\n(I1\nttRp3016\nsS'Y:PMachine132 - CVAZZI313'\np3017\ng35\n(S'Variable_Type'\n(I2\nttRp3018\nsS'Y:VBus125 - CVAZZI36'\np3019\ng35\n(S'Variable_Type'\n(I2\nttRp3020\nsS'Y:VBus135 - CLUCCI36'\np3021\ng35\n(S'Variable_Type'\n(I2\nttRp3022\nsS'Y:VBus47 - CVAZZI21'\np3023\ng35\n(S'Variable_Type'\n(I2\nttRp3024\nsS'Y:VBus94 - COCANA33'\np3025\ng35\n(S'Variable_Type'\n(I2\nttRp3026\nsS'Y:VBus17 - CCALVI21'\np3027\ng35\n(S'Variable_Type'\n(I2\nttRp3028\nsS'Y:Load 90 - CMOROS31'\np3029\ng35\n(S'Variable_Type'\n(I2\nttRp3030\nsS'Y:VBus120 - CVAZZI31'\np3031\ng35\n(S'Variable_Type'\n(I2\nttRp3032\nsS'X:ProdPV%Pnom'\np3033\ng35\n(S'Variable_Type'\n(I2\nttRp3034\nsS'Y:VBus52 - CASPRE32'\np3035\ng35\n(S'Variable_Type'\n(I2\nttRp3036\nsS'Y:VBus25 - CFURIA22'\np3037\ng35\n(S'Variable_Type'\n(I2\nttRp3038\nsS'Y:Load 76 - CCORTE31'\np3039\ng35\n(S'Variable_Type'\n(I2\nttRp3040\nsS'Y:PMachine69 - CCASAM37'\np3041\ng35\n(S'Variable_Type'\n(I2\nttRp3042\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np3043\ng35\n(S'Variable_Type'\n(I2\nttRp3044\nsS'Y:PMachine92 - COCANA31'\np3045\ng35\n(S'Variable_Type'\n(I2\nttRp3046\nsS'Y:VBus35 - CPORTO21'\np3047\ng35\n(S'Variable_Type'\n(I2\nttRp3048\nsS'VAZZIO_TAC'\np3049\ng35\n(S'Variable_Type'\n(I2\nttRp3050\nsS'Y:PMachine122 - CVAZZI33'\np3051\ng35\n(S'Variable_Type'\n(I2\nttRp3052\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np3053\ng35\n(S'Variable_Type'\n(I1\nttRp3054\nsS'Y:PMachine63 - CCASAM31'\np3055\ng35\n(S'Variable_Type'\n(I2\nttRp3056\nsS'Y:VBus74 - CCERVI31'\np3057\ng35\n(S'Variable_Type'\n(I2\nttRp3058\nsS'Y:VBus126 - CVAZZI37'\np3059\ng35\n(S'Variable_Type'\n(I2\nttRp3060\nsS'Y:PMachine60 - CCALDA32'\np3061\ng35\n(S'Variable_Type'\n(I2\nttRp3062\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np3063\ng35\n(S'Variable_Type'\n(I1\nttRp3064\nsS'Y:VBus20 - CCERVI21'\np3065\ng35\n(S'Variable_Type'\n(I2\nttRp3066\nsS'Y:VBus119 - CTRAVO31'\np3067\ng35\n(S'Variable_Type'\n(I2\nttRp3068\nsS'Y:VBus11 - CASPRE21'\np3069\ng35\n(S'Variable_Type'\n(I2\nttRp3070\nsS'Y:VBus139 - CLUCCI310'\np3071\ng35\n(S'Variable_Type'\n(I2\nttRp3072\nsS'Y:VBus106 - CRIZZA31'\np3073\ng35\n(S'Variable_Type'\n(I2\nttRp3074\nsS'Y:PMachine66 - CCASAM34'\np3075\ng35\n(S'Variable_Type'\n(I2\nttRp3076\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np3077\ng35\n(S'Variable_Type'\n(I2\nttRp3078\nsS'Y:VBus136 - CLUCCI37'\np3079\ng35\n(S'Variable_Type'\n(I2\nttRp3080\nsS'Y:VBus90 - CMOROS31'\np3081\ng35\n(S'Variable_Type'\n(I2\nttRp3082\nsS'PV_ALL'\np3083\ng35\n(S'Variable_Type'\n(I2\nttRp3084\nsS'X:lineOff#'\np3085\ng35\n(S'Variable_Type'\n(I2\nttRp3086\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np3087\ng35\n(S'Variable_Type'\n(I2\nttRp3088\nsS'Y:VBus108 - CSAGON31'\np3089\ng35\n(S'Variable_Type'\n(I2\nttRp3090\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np3091\ng35\n(S'Variable_Type'\n(I2\nttRp3092\nsS'Y:VBus137 - CLUCCI38'\np3093\ng35\n(S'Variable_Type'\n(I2\nttRp3094\nsS'Y:VBus130 - CVAZZI311'\np3095\ng35\n(S'Variable_Type'\n(I2\nttRp3096\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np3097\ng35\n(S'Variable_Type'\n(I2\nttRp3098\nsS'Y:VBus46 - CTRAVO21'\np3099\ng35\n(S'Variable_Type'\n(I2\nttRp3100\nsS'Y:VBus113 - CSAMPO32'\np3101\ng35\n(S'Variable_Type'\n(I2\nttRp3102\nsS'Y:PMachine133 - CVAZZI314'\np3103\ng35\n(S'Variable_Type'\n(I2\nttRp3104\nsS'Y:PMachine65 - CCASAM33'\np3105\ng35\n(S'Variable_Type'\n(I2\nttRp3106\nsS'Y:VBus78 - CFURIA31'\np3107\ng35\n(S'Variable_Type'\n(I2\nttRp3108\nsS'Y:VBus26 - CGHISO21'\np3109\ng35\n(S'Variable_Type'\n(I2\nttRp3110\nsS'Y:VBus121 - CVAZZI32'\np3111\ng35\n(S'Variable_Type'\n(I2\nttRp3112\nsS'Y:PMachine97 - COCANA36'\np3113\ng35\n(S'Variable_Type'\n(I2\nttRp3114\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np3115\ng35\n(S'Variable_Type'\n(I2\nttRp3116\nsS'Y:PMachine83 - CILERO32'\np3117\ng35\n(S'Variable_Type'\n(I2\nttRp3118\nsS'Y:VBus83 - CILERO32'\np3119\ng35\n(S'Variable_Type'\n(I2\nttRp3120\nsS'Y:VBus66 - CCASAM34'\np3121\ng35\n(S'Variable_Type'\n(I2\nttRp3122\nsS'Y:PMachine1 - CBONIF11'\np3123\ng35\n(S'Variable_Type'\n(I2\nttRp3124\nsS'Y:VBus111 - CSTMAR31'\np3125\ng35\n(S'Variable_Type'\n(I2\nttRp3126\nsS'Y:VBus124 - CVAZZI35'\np3127\ng35\n(S'Variable_Type'\n(I2\nttRp3128\nsS'VAZZIO_DIESEL'\np3129\ng35\n(S'Variable_Type'\n(I2\nttRp3130\nsS'Y:PMachine131 - CVAZZI312'\np3131\ng35\n(S'Variable_Type'\n(I2\nttRp3132\nsS'Y:VBus44 - CTAGLI21'\np3133\ng35\n(S'Variable_Type'\n(I2\nttRp3134\nsS'Y:VBus88 - CLUCCI33'\np3135\ng35\n(S'Variable_Type'\n(I2\nttRp3136\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np3137\ng35\n(S'Variable_Type'\n(I1\nttRp3138\nsS'Y:VBus38 - CSAGON21'\np3139\ng35\n(S'Variable_Type'\n(I2\nttRp3140\nsS'Y:PMachine81 - CGHISO32'\np3141\ng35\n(S'Variable_Type'\n(I2\nttRp3142\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np3143\ng35\n(S'Variable_Type'\n(I2\nttRp3144\nsS'Y:VBus110 - CSTLUC31'\np3145\ng35\n(S'Variable_Type'\n(I2\nttRp3146\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np3147\ng35\n(S'Variable_Type'\n(I2\nttRp3148\nssg650\n(lp3149\ng652\nasba(iOWContexts\nContext\np3150\n(dp3151\ng24\n(lp3152\nsg26\n(dp3153\nsg28\n(dp3154\ng1897\n(S''\nI-1\ntp3155\nsg1899\n(S''\nI0\ntp3156\nsg1901\n(g1281\ng35\n(S'Variable_Type'\n(I2\nttRp3157\ntp3158\nsg1904\n(g1284\ng3157\ntp3159\nsg1906\n(S''\nI0\ntp3160\nsg1908\n(g1287\ng35\n(S'Variable_Type'\n(I2\nttRp3161\ntp3162\nssg46\nF1369994938.898\nsg47\n(dp3163\nS'Y:PMachine134 - CLUCCI35'\np3164\ng35\n(S'Variable_Type'\n(I1\nttRp3165\nsS'Y:VBus77 - CCORTE32'\np3166\ng35\n(S'Variable_Type'\n(I2\nttRp3167\nsS'Y:VBus134 - CLUCCI35'\np3168\ng35\n(S'Variable_Type'\n(I2\nttRp3169\nsS'Y:VBus109 - CSAGON32'\np3170\ng35\n(S'Variable_Type'\n(I2\nttRp3171\nsS'Y:VBus102 - CPORTO31'\np3172\ng35\n(S'Variable_Type'\n(I2\nttRp3173\nsS'XProdEolienne%Pnom'\np3174\ng35\n(S'Variable_Type'\n(I1\nttRp3175\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np3176\ng35\n(S'Variable_Type'\n(I2\nttRp3177\nsS'Y:PMachine94 - COCANA33'\np3178\ng35\n(S'Variable_Type'\n(I2\nttRp3179\nsS'Y:VBus117 - CTOLLA32'\np3180\ng35\n(S'Variable_Type'\n(I2\nttRp3181\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np3182\ng35\n(S'Variable_Type'\n(I2\nttRp3183\nsS'Y:PMachine87 - CLUCCI32'\np3184\ng35\n(S'Variable_Type'\n(I2\nttRp3185\nsS'Y:PMachine113 - CSAMPO32'\np3186\ng35\n(S'Variable_Type'\n(I2\nttRp3187\nsS'Y:Load 84 - CLORET31'\np3188\ng35\n(S'Variable_Type'\n(I2\nttRp3189\nsS'Y:PMachine89 - CLUCCI34'\np3190\ng35\n(S'Variable_Type'\n(I1\nttRp3191\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np3192\ng35\n(S'Variable_Type'\n(I2\nttRp3193\nsS'Y:Load 80 - CGHISO31'\np3194\ng35\n(S'Variable_Type'\n(I2\nttRp3195\nsS'Y:PMachine125 - CVAZZI36'\np3196\ng35\n(S'Variable_Type'\n(I2\nttRp3197\nsS'Y:PMachine116 - CTOLLA31'\np3198\ng35\n(S'Variable_Type'\n(I2\nttRp3199\nsS'Y:PMachine88 - CLUCCI33'\np3200\ng35\n(S'Variable_Type'\n(I1\nttRp3201\nsS'Y:PMachine120 - CVAZZI31'\np3202\ng35\n(S'Variable_Type'\n(I2\nttRp3203\nsS'Y:PMachine111 - CSTMAR31'\np3204\ng35\n(S'Variable_Type'\n(I2\nttRp3205\nsS'Y:NbeTransit'\np3206\ng35\n(S'Variable_Type'\n(I1\nttRp3207\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np3208\ng35\n(S'Variable_Type'\n(I2\nttRp3209\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np3210\ng35\n(S'Variable_Type'\n(I2\nttRp3211\nsS'Y:VBus92 - COCANA31'\np3212\ng35\n(S'Variable_Type'\n(I2\nttRp3213\nsS'Y:PMachine130 - CVAZZI311'\np3214\ng35\n(S'Variable_Type'\n(I2\nttRp3215\nsS'Y:PMachine127 - CVAZZI38'\np3216\ng35\n(S'Variable_Type'\n(I2\nttRp3217\nsS'Y:VBus131 - CVAZZI312'\np3218\ng35\n(S'Variable_Type'\n(I2\nttRp3219\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np3220\ng35\n(S'Variable_Type'\n(I2\nttRp3221\nsS'Y:PMachine123 - CVAZZI34'\np3222\ng35\n(S'Variable_Type'\n(I2\nttRp3223\nsS'Y:VBus118 - CTOLLA33'\np3224\ng35\n(S'Variable_Type'\n(I2\nttRp3225\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np3226\ng35\n(S'Variable_Type'\n(I1\nttRp3227\nsS'Y:PMachine58 - CBONIF32'\np3228\ng35\n(S'Variable_Type'\n(I2\nttRp3229\nsS'Y:Load 104 - CPROPR31'\np3230\ng35\n(S'Variable_Type'\n(I2\nttRp3231\nsS'Y:PMachine30 - CLUCCI22'\np3232\ng35\n(S'Variable_Type'\n(I1\nttRp3233\nsS'Y:VBus100 - COLETT31'\np3234\ng35\n(S'Variable_Type'\n(I2\nttRp3235\nsS'Y:PProdTot'\np3236\ng35\n(S'Variable_Type'\n(I2\nttRp3237\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np3238\ng35\n(S'Variable_Type'\n(I1\nttRp3239\nsS'Y:VBus57 - CBONIF31'\np3240\ng35\n(S'Variable_Type'\n(I2\nttRp3241\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np3242\ng35\n(S'Variable_Type'\n(I2\nttRp3243\nsS'Y:PConsoTot'\np3244\ng35\n(S'Variable_Type'\n(I2\nttRp3245\nsS'Iteration'\np3246\ng35\n(S'Variable_Type'\n(I2\nttRp3247\nsS'Y:PMachine109 - CSAGON32'\np3248\ng35\n(S'Variable_Type'\n(I2\nttRp3249\nsS'Y:PMachine135 - CLUCCI36'\np3250\ng35\n(S'Variable_Type'\n(I1\nttRp3251\nsS'Y:VBus30 - CLUCCI22'\np3252\ng35\n(S'Variable_Type'\n(I2\nttRp3253\nsS'Y:VBus122 - CVAZZI33'\np3254\ng35\n(S'Variable_Type'\n(I2\nttRp3255\nsS'Y:VBus86 - CLUCCI31'\np3256\ng35\n(S'Variable_Type'\n(I2\nttRp3257\nsS'Y:PMachine102 - CPORTO31'\np3258\ng35\n(S'Variable_Type'\n(I2\nttRp3259\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np3260\ng35\n(S'Variable_Type'\n(I1\nttRp3261\nsS'Y:PMachine107 - CRIZZA32'\np3262\ng35\n(S'Variable_Type'\n(I2\nttRp3263\nsS'Y:VBus16 - CCALDA21'\np3264\ng35\n(S'Variable_Type'\n(I2\nttRp3265\nsS'Y:Load 102 - CPORTO31'\np3266\ng35\n(S'Variable_Type'\n(I2\nttRp3267\nsS'Y:VBus107 - CRIZZA32'\np3268\ng35\n(S'Variable_Type'\n(I2\nttRp3269\nsS'Y:VBus59 - CCALDA31'\np3270\ng35\n(S'Variable_Type'\n(I2\nttRp3271\nsS'Y:VBus41 - CSAMPO21'\np3272\ng35\n(S'Variable_Type'\n(I2\nttRp3273\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np3274\ng35\n(S'Variable_Type'\n(I2\nttRp3275\nsS'Y:VBus34 - CPIETR21'\np3276\ng35\n(S'Variable_Type'\n(I2\nttRp3277\nsS'Y:Load 108 - CSAGON31'\np3278\ng35\n(S'Variable_Type'\n(I2\nttRp3279\nsS'Y:VBus56 - CBIGUG32'\np3280\ng35\n(S'Variable_Type'\n(I2\nttRp3281\nsS'Y:PMachine42 - CSISCO21'\np3282\ng35\n(S'Variable_Type'\n(I2\nttRp3283\nsS'Y:PMachine138 - CLUCCI39'\np3284\ng35\n(S'Variable_Type'\n(I1\nttRp3285\nsS'Y:PMachine112 - CSAMPO31'\np3286\ng35\n(S'Variable_Type'\n(I2\nttRp3287\nsS'Y:VBus105 - CPROPR32'\np3288\ng35\n(S'Variable_Type'\n(I2\nttRp3289\nsS'Y:VBus1 - CBONIF11'\np3290\ng35\n(S'Variable_Type'\n(I2\nttRp3291\nsS'Y:VBus12 - CBASTI21'\np3292\ng35\n(S'Variable_Type'\n(I2\nttRp3293\nsS'Y:PMachine129 - CVAZZI310'\np3294\ng35\n(S'Variable_Type'\n(I2\nttRp3295\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np3296\ng35\n(S'Variable_Type'\n(I1\nttRp3297\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np3298\ng35\n(S'Variable_Type'\n(I1\nttRp3299\nsS'Y:VBus54 - CBASTI32'\np3300\ng35\n(S'Variable_Type'\n(I2\nttRp3301\nsS'Y:VBus69 - CCASAM37'\np3302\ng35\n(S'Variable_Type'\n(I2\nttRp3303\nsS'Y:VBus45 - CTOLLA21'\np3304\ng35\n(S'Variable_Type'\n(I2\nttRp3305\nsS'Y:PMachine115 - CTAGLI31'\np3306\ng35\n(S'Variable_Type'\n(I2\nttRp3307\nsS'Y:PMachine77 - CCORTE32'\np3308\ng35\n(S'Variable_Type'\n(I2\nttRp3309\nsS'Y:VBus43 - CSOVEN21'\np3310\ng35\n(S'Variable_Type'\n(I2\nttRp3311\nsS'Y:VBus76 - CCORTE31'\np3312\ng35\n(S'Variable_Type'\n(I2\nttRp3313\nsS'Y:VBus75 - CCORSC31'\np3314\ng35\n(S'Variable_Type'\n(I2\nttRp3315\nsS'Y:PMachine78 - CFURIA31'\np3316\ng35\n(S'Variable_Type'\n(I1\nttRp3317\nsS'Y:VBus127 - CVAZZI38'\np3318\ng35\n(S'Variable_Type'\n(I2\nttRp3319\nsS'Y:VBus115 - CTAGLI31'\np3320\ng35\n(S'Variable_Type'\n(I2\nttRp3321\nsS'Y:Load 61 - CCALVI31'\np3322\ng35\n(S'Variable_Type'\n(I2\nttRp3323\nsS'Y:VBus55 - CBIGUG31'\np3324\ng35\n(S'Variable_Type'\n(I2\nttRp3325\nsS'Y:Load 42 - CSISCO21'\np3326\ng35\n(S'Variable_Type'\n(I2\nttRp3327\nsS'Y:VBus72 - CCASTI31'\np3328\ng35\n(S'Variable_Type'\n(I2\nttRp3329\nsS'Y:Load 37 - CRIZZA21'\np3330\ng35\n(S'Variable_Type'\n(I2\nttRp3331\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np3332\ng35\n(S'Variable_Type'\n(I2\nttRp3333\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np3334\ng35\n(S'Variable_Type'\n(I2\nttRp3335\nsS'Y:PMachine137 - CLUCCI38'\np3336\ng35\n(S'Variable_Type'\n(I1\nttRp3337\nsS'Y:PMachine67 - CCASAM35'\np3338\ng35\n(S'Variable_Type'\n(I2\nttRp3339\nsS'INTERCOS'\np3340\ng35\n(S'Variable_Type'\n(I2\nttRp3341\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np3342\ng35\n(S'Variable_Type'\n(I1\nttRp3343\nsS'Y:VBus31 - CMOROS21'\np3344\ng35\n(S'Variable_Type'\n(I2\nttRp3345\nsS'Y:VBus103 - CPORTO32'\np3346\ng35\n(S'Variable_Type'\n(I2\nttRp3347\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np3348\ng35\n(S'Variable_Type'\n(I1\nttRp3349\nsS'Y:PMachine128 - CVAZZI39'\np3350\ng35\n(S'Variable_Type'\n(I2\nttRp3351\nsS'Y:PMachine72 - CCASTI31'\np3352\ng35\n(S'Variable_Type'\n(I2\nttRp3353\nsS'Y:VBus27 - CILERO21'\np3354\ng35\n(S'Variable_Type'\n(I2\nttRp3355\nsS'Y:PMachine75 - CCORSC31'\np3356\ng35\n(S'Variable_Type'\n(I2\nttRp3357\nsS'Y:Load 51 - CASPRE31'\np3358\ng35\n(S'Variable_Type'\n(I2\nttRp3359\nsS'Y:PMachine61 - CCALVI31'\np3360\ng35\n(S'Variable_Type'\n(I1\nttRp3361\nsS'Y:VBus51 - CASPRE31'\np3362\ng35\n(S'Variable_Type'\n(I2\nttRp3363\nsS'Y:VBus114 - CSOVEN31'\np3364\ng35\n(S'Variable_Type'\n(I2\nttRp3365\nsS'Y:Load 82 - CILERO31'\np3366\ng35\n(S'Variable_Type'\n(I2\nttRp3367\nsS'Y:VBus116 - CTOLLA31'\np3368\ng35\n(S'Variable_Type'\n(I2\nttRp3369\nsS'Y:Load 86 - CLUCCI31'\np3370\ng35\n(S'Variable_Type'\n(I2\nttRp3371\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np3372\ng35\n(S'Variable_Type'\n(I2\nttRp3373\nsS'Y:Load 57 - CBONIF31'\np3374\ng35\n(S'Variable_Type'\n(I2\nttRp3375\nsS'Y:PMachine104 - CPROPR31'\np3376\ng35\n(S'Variable_Type'\n(I2\nttRp3377\nsS'Y:VBus128 - CVAZZI39'\np3378\ng35\n(S'Variable_Type'\n(I2\nttRp3379\nsS'Y:PMachine136 - CLUCCI37'\np3380\ng35\n(S'Variable_Type'\n(I1\nttRp3381\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np3382\ng35\n(S'Variable_Type'\n(I2\nttRp3383\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np3384\ng35\n(S'Variable_Type'\n(I2\nttRp3385\nsS'Y:PMachine68 - CCASAM36'\np3386\ng35\n(S'Variable_Type'\n(I2\nttRp3387\nsS'Y:PMachine29 - CLUCCI21'\np3388\ng35\n(S'Variable_Type'\n(I1\nttRp3389\nsS'Y:VBus42 - CSISCO21'\np3390\ng35\n(S'Variable_Type'\n(I2\nttRp3391\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np3392\ng35\n(S'Variable_Type'\n(I1\nttRp3393\nsS'Y:VBus14 - CBONIF21'\np3394\ng35\n(S'Variable_Type'\n(I2\nttRp3395\nsS'Y:VBus73 - CCASTI32'\np3396\ng35\n(S'Variable_Type'\n(I2\nttRp3397\nsS'Y:VBus64 - CCASAM32'\np3398\ng35\n(S'Variable_Type'\n(I2\nttRp3399\nsS'Y:PMachine14 - CBONIF21'\np3400\ng35\n(S'Variable_Type'\n(I1\nttRp3401\nsS'Y:PMachine62 - CCALVI32'\np3402\ng35\n(S'Variable_Type'\n(I2\nttRp3403\nsS'Y:VBus133 - CVAZZI314'\np3404\ng35\n(S'Variable_Type'\n(I2\nttRp3405\nsS'Y:VBus63 - CCASAM31'\np3406\ng35\n(S'Variable_Type'\n(I2\nttRp3407\nsS'Y:PMachine101 - CPIETR31'\np3408\ng35\n(S'Variable_Type'\n(I2\nttRp3409\nsS'Y:%Losses'\np3410\ng35\n(S'Variable_Type'\n(I2\nttRp3411\nsS'Y:VBus85 - CLORET32'\np3412\ng35\n(S'Variable_Type'\n(I2\nttRp3413\nsS'Y:Load 59 - CCALDA31'\np3414\ng35\n(S'Variable_Type'\n(I2\nttRp3415\nsS'Y:VBus129 - CVAZZI310'\np3416\ng35\n(S'Variable_Type'\n(I2\nttRp3417\nsS'Y:VBus101 - CPIETR31'\np3418\ng35\n(S'Variable_Type'\n(I2\nttRp3419\nsS'Y:PMachine106 - CRIZZA31'\np3420\ng35\n(S'Variable_Type'\n(I2\nttRp3421\nsS'Y:VBus132 - CVAZZI313'\np3422\ng35\n(S'Variable_Type'\n(I2\nttRp3423\nsS'Y:PMachine118 - CTOLLA33'\np3424\ng35\n(S'Variable_Type'\n(I2\nttRp3425\nsS'Y:VBus19 - CCASTI21'\np3426\ng35\n(S'Variable_Type'\n(I2\nttRp3427\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np3428\ng35\n(S'Variable_Type'\n(I2\nttRp3429\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np3430\ng35\n(S'Variable_Type'\n(I1\nttRp3431\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np3432\ng35\n(S'Variable_Type'\n(I2\nttRp3433\nsS'Y:Load 115 - CTAGLI31'\np3434\ng3161\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np3435\ng35\n(S'Variable_Type'\n(I2\nttRp3436\nsS'Y:VBus79 - CFURIA32'\np3437\ng35\n(S'Variable_Type'\n(I2\nttRp3438\nsS'Y:PMachine47 - CVAZZI21'\np3439\ng35\n(S'Variable_Type'\n(I1\nttRp3440\nsS'Y:VBus123 - CVAZZI34'\np3441\ng35\n(S'Variable_Type'\n(I2\nttRp3442\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np3443\ng35\n(S'Variable_Type'\n(I2\nttRp3444\nsS'Y:VBus60 - CCALDA32'\np3445\ng35\n(S'Variable_Type'\n(I2\nttRp3446\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np3447\ng35\n(S'Variable_Type'\n(I2\nttRp3448\nsS'Y:VBus65 - CCASAM33'\np3449\ng35\n(S'Variable_Type'\n(I2\nttRp3450\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np3451\ng35\n(S'Variable_Type'\n(I1\nttRp3452\nsS'Y:PMachine139 - CLUCCI310'\np3453\ng35\n(S'Variable_Type'\n(I1\nttRp3454\nsS'Y:VBus112 - CSAMPO31'\np3455\ng35\n(S'Variable_Type'\n(I2\nttRp3456\nsS'Y:VBus68 - CCASAM36'\np3457\ng35\n(S'Variable_Type'\n(I2\nttRp3458\nsS'Y:Load 55 - CBIGUG31'\np3459\ng35\n(S'Variable_Type'\n(I2\nttRp3460\nsS'Y:PMachine53 - CBASTI31'\np3461\ng35\n(S'Variable_Type'\n(I2\nttRp3462\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np3463\ng35\n(S'Variable_Type'\n(I2\nttRp3464\nsS'Y:VBus24 - CFURIA21'\np3465\ng35\n(S'Variable_Type'\n(I2\nttRp3466\nsS'Y:VBus23 - CCORTE22'\np3467\ng35\n(S'Variable_Type'\n(I2\nttRp3468\nsS'Y:VBus18 - CCASAM21'\np3469\ng35\n(S'Variable_Type'\n(I2\nttRp3470\nsS'Y:VBus40 - CSTMAR21'\np3471\ng35\n(S'Variable_Type'\n(I2\nttRp3472\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np3473\ng35\n(S'Variable_Type'\n(I2\nttRp3474\nsS'Y:PMachine124 - CVAZZI35'\np3475\ng35\n(S'Variable_Type'\n(I2\nttRp3476\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np3477\ng35\n(S'Variable_Type'\n(I2\nttRp3478\nsS'Y:PMachine117 - CTOLLA32'\np3479\ng35\n(S'Variable_Type'\n(I2\nttRp3480\nsS'Y:VBus89 - CLUCCI34'\np3481\ng35\n(S'Variable_Type'\n(I2\nttRp3482\nsS'Y:VBus33 - COLETT21'\np3483\ng35\n(S'Variable_Type'\n(I2\nttRp3484\nsS'Y:VBus32 - COCANA21'\np3485\ng35\n(S'Variable_Type'\n(I2\nttRp3486\nsS'Y:PMachine121 - CVAZZI32'\np3487\ng35\n(S'Variable_Type'\n(I2\nttRp3488\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np3489\ng35\n(S'Variable_Type'\n(I1\nttRp3490\nsS'Y:VBus82 - CILERO31'\np3491\ng35\n(S'Variable_Type'\n(I2\nttRp3492\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np3493\ng35\n(S'Variable_Type'\n(I2\nttRp3494\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np3495\ng35\n(S'Variable_Type'\n(I2\nttRp3496\nsS'Y:VBus37 - CRIZZA21'\np3497\ng35\n(S'Variable_Type'\n(I2\nttRp3498\nsS'Y:PMachine73 - CCASTI32'\np3499\ng35\n(S'Variable_Type'\n(I2\nttRp3500\nsS'Y:PMachine86 - CLUCCI31'\np3501\ng35\n(S'Variable_Type'\n(I2\nttRp3502\nsS'Y:Load 53 - CBASTI31'\np3503\ng35\n(S'Variable_Type'\n(I2\nttRp3504\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np3505\ng35\n(S'Variable_Type'\n(I2\nttRp3506\nsS'Y:VBus21 - CCORSC21'\np3507\ng35\n(S'Variable_Type'\n(I2\nttRp3508\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np3509\ng35\n(S'Variable_Type'\n(I2\nttRp3510\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np3511\ng35\n(S'Variable_Type'\n(I2\nttRp3512\nsS'Y:PMachine126 - CVAZZI37'\np3513\ng35\n(S'Variable_Type'\n(I2\nttRp3514\nsS'Y:PMachine64 - CCASAM32'\np3515\ng35\n(S'Variable_Type'\n(I2\nttRp3516\nsS'Y:VBus67 - CCASAM35'\np3517\ng35\n(S'Variable_Type'\n(I2\nttRp3518\nsS'Y:VBus53 - CBASTI31'\np3519\ng35\n(S'Variable_Type'\n(I2\nttRp3520\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np3521\ng35\n(S'Variable_Type'\n(I2\nttRp3522\nsS'Y:VBus61 - CCALVI31'\np3523\ng35\n(S'Variable_Type'\n(I2\nttRp3524\nsS'Y:VBus93 - COCANA32'\np3525\ng35\n(S'Variable_Type'\n(I2\nttRp3526\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np3527\ng35\n(S'Variable_Type'\n(I2\nttRp3528\nsS'Y:NbeTransit_0.9-1'\np3529\ng35\n(S'Variable_Type'\n(I1\nttRp3530\nsS'Y:VBus104 - CPROPR31'\np3531\ng35\n(S'Variable_Type'\n(I2\nttRp3532\nsS'Y:VBus22 - CCORTE21'\np3533\ng35\n(S'Variable_Type'\n(I2\nttRp3534\nsS'Y:VBus48 - CZSSS621'\np3535\ng35\n(S'Variable_Type'\n(I2\nttRp3536\nsS'Y:PMachine85 - CLORET32'\np3537\ng35\n(S'Variable_Type'\n(I2\nttRp3538\nsS'Y:Max%A'\np3539\ng35\n(S'Variable_Type'\n(I2\nttRp3540\nsS'Y:VBus36 - CPROPR21'\np3541\ng35\n(S'Variable_Type'\n(I2\nttRp3542\nsS'Y:Load 100 - COLETT31'\np3543\ng35\n(S'Variable_Type'\n(I2\nttRp3544\nsS'Y:PMachine54 - CBASTI32'\np3545\ng35\n(S'Variable_Type'\n(I2\nttRp3546\nsS'Y:VBus138 - CLUCCI39'\np3547\ng35\n(S'Variable_Type'\n(I2\nttRp3548\nsS'Y:VBus39 - CSTLUC21'\np3549\ng35\n(S'Variable_Type'\n(I2\nttRp3550\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np3551\ng35\n(S'Variable_Type'\n(I2\nttRp3552\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np3553\ng35\n(S'Variable_Type'\n(I2\nttRp3554\nsS'Y:Load 78 - CFURIA31'\np3555\ng35\n(S'Variable_Type'\n(I2\nttRp3556\nsS'Y:Load 74 - CCERVI31'\np3557\ng35\n(S'Variable_Type'\n(I2\nttRp3558\nsS'Y:VBus28 - CLORET21'\np3559\ng35\n(S'Variable_Type'\n(I2\nttRp3560\nsS'Y:PMachine105 - CPROPR32'\np3561\ng35\n(S'Variable_Type'\n(I2\nttRp3562\nsS'Y:VBus96 - COCANA35'\np3563\ng35\n(S'Variable_Type'\n(I2\nttRp3564\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np3565\ng35\n(S'Variable_Type'\n(I1\nttRp3566\nsS'Y:PMachine18 - CCASAM21'\np3567\ng35\n(S'Variable_Type'\n(I1\nttRp3568\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np3569\ng35\n(S'Variable_Type'\n(I2\nttRp3570\nsS'Y:VBus13 - CBIGUG21'\np3571\ng35\n(S'Variable_Type'\n(I2\nttRp3572\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np3573\ng35\n(S'Variable_Type'\n(I2\nttRp3574\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np3575\ng35\n(S'Variable_Type'\n(I2\nttRp3576\nsS'Y:VBus29 - CLUCCI21'\np3577\ng35\n(S'Variable_Type'\n(I2\nttRp3578\nsS'Y:VBus58 - CBONIF32'\np3579\ng35\n(S'Variable_Type'\n(I2\nttRp3580\nsS'Y:VBus84 - CLORET31'\np3581\ng35\n(S'Variable_Type'\n(I2\nttRp3582\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np3583\ng35\n(S'Variable_Type'\n(I1\nttRp3584\nsS'Y:VBus97 - COCANA36'\np3585\ng35\n(S'Variable_Type'\n(I2\nttRp3586\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np3587\ng35\n(S'Variable_Type'\n(I1\nttRp3588\nsS'Y:VBus15 - CBONIF22'\np3589\ng35\n(S'Variable_Type'\n(I2\nttRp3590\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np3591\ng35\n(S'Variable_Type'\n(I2\nttRp3592\nsS'Y:Load 110 - CSTLUC31'\np3593\ng35\n(S'Variable_Type'\n(I2\nttRp3594\nsS'Y:VBus80 - CGHISO31'\np3595\ng35\n(S'Variable_Type'\n(I2\nttRp3596\nsS'Y:PMachine114 - CSOVEN31'\np3597\ng35\n(S'Variable_Type'\n(I2\nttRp3598\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np3599\ng35\n(S'Variable_Type'\n(I1\nttRp3600\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np3601\ng35\n(S'Variable_Type'\n(I2\nttRp3602\nsS'Y:PMachine93 - COCANA32'\np3603\ng35\n(S'Variable_Type'\n(I2\nttRp3604\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np3605\ng35\n(S'Variable_Type'\n(I1\nttRp3606\nsS'Y:VBus87 - CLUCCI32'\np3607\ng35\n(S'Variable_Type'\n(I2\nttRp3608\nsS'Y:VBus62 - CCALVI32'\np3609\ng35\n(S'Variable_Type'\n(I2\nttRp3610\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np3611\ng35\n(S'Variable_Type'\n(I1\nttRp3612\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np3613\ng35\n(S'Variable_Type'\n(I1\nttRp3614\nsS'Y:VBus81 - CGHISO32'\np3615\ng35\n(S'Variable_Type'\n(I2\nttRp3616\nsS'Y:PMachine74 - CCERVI31'\np3617\ng35\n(S'Variable_Type'\n(I2\nttRp3618\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np3619\ng35\n(S'Variable_Type'\n(I2\nttRp3620\nsS'EOL_ALL'\np3621\ng35\n(S'Variable_Type'\n(I2\nttRp3622\nsS'X:Load(pu)'\np3623\ng3157\nsS'Y:NbeTension'\np3624\ng35\n(S'Variable_Type'\n(I2\nttRp3625\nsS'Y:VBus95 - COCANA34'\np3626\ng35\n(S'Variable_Type'\n(I2\nttRp3627\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np3628\ng35\n(S'Variable_Type'\n(I2\nttRp3629\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np3630\ng35\n(S'Variable_Type'\n(I2\nttRp3631\nsS'Y:Load 95 - COCANA34'\np3632\ng35\n(S'Variable_Type'\n(I2\nttRp3633\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np3634\ng35\n(S'Variable_Type'\n(I1\nttRp3635\nsS'Y:PMachine90 - CMOROS31'\np3636\ng35\n(S'Variable_Type'\n(I2\nttRp3637\nsS'Y:Load 101 - CPIETR31'\np3638\ng35\n(S'Variable_Type'\n(I2\nttRp3639\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np3640\ng35\n(S'Variable_Type'\n(I1\nttRp3641\nsS'Y:PMachine132 - CVAZZI313'\np3642\ng35\n(S'Variable_Type'\n(I2\nttRp3643\nsS'Y:VBus125 - CVAZZI36'\np3644\ng35\n(S'Variable_Type'\n(I2\nttRp3645\nsS'Y:VBus135 - CLUCCI36'\np3646\ng35\n(S'Variable_Type'\n(I2\nttRp3647\nsS'Y:VBus47 - CVAZZI21'\np3648\ng35\n(S'Variable_Type'\n(I2\nttRp3649\nsS'Y:VBus94 - COCANA33'\np3650\ng35\n(S'Variable_Type'\n(I2\nttRp3651\nsS'Y:VBus17 - CCALVI21'\np3652\ng35\n(S'Variable_Type'\n(I2\nttRp3653\nsS'Y:Load 90 - CMOROS31'\np3654\ng35\n(S'Variable_Type'\n(I2\nttRp3655\nsS'Y:VBus120 - CVAZZI31'\np3656\ng35\n(S'Variable_Type'\n(I2\nttRp3657\nsS'X:ProdPV%Pnom'\np3658\ng35\n(S'Variable_Type'\n(I2\nttRp3659\nsS'Y:VBus52 - CASPRE32'\np3660\ng35\n(S'Variable_Type'\n(I2\nttRp3661\nsS'Y:VBus25 - CFURIA22'\np3662\ng35\n(S'Variable_Type'\n(I2\nttRp3663\nsS'Y:Load 76 - CCORTE31'\np3664\ng35\n(S'Variable_Type'\n(I2\nttRp3665\nsS'Y:PMachine69 - CCASAM37'\np3666\ng35\n(S'Variable_Type'\n(I2\nttRp3667\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np3668\ng35\n(S'Variable_Type'\n(I2\nttRp3669\nsS'Y:PMachine92 - COCANA31'\np3670\ng35\n(S'Variable_Type'\n(I2\nttRp3671\nsS'Y:VBus35 - CPORTO21'\np3672\ng35\n(S'Variable_Type'\n(I2\nttRp3673\nsS'Y:PMachine122 - CVAZZI33'\np3674\ng35\n(S'Variable_Type'\n(I2\nttRp3675\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np3676\ng35\n(S'Variable_Type'\n(I1\nttRp3677\nsS'Y:PMachine63 - CCASAM31'\np3678\ng35\n(S'Variable_Type'\n(I2\nttRp3679\nsS'Y:VBus74 - CCERVI31'\np3680\ng35\n(S'Variable_Type'\n(I2\nttRp3681\nsS'Y:VBus126 - CVAZZI37'\np3682\ng35\n(S'Variable_Type'\n(I2\nttRp3683\nsS'Y:PMachine60 - CCALDA32'\np3684\ng35\n(S'Variable_Type'\n(I2\nttRp3685\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np3686\ng35\n(S'Variable_Type'\n(I1\nttRp3687\nsS'Y:VBus20 - CCERVI21'\np3688\ng35\n(S'Variable_Type'\n(I2\nttRp3689\nsS'Y:VBus119 - CTRAVO31'\np3690\ng35\n(S'Variable_Type'\n(I2\nttRp3691\nsS'Y:VBus11 - CASPRE21'\np3692\ng35\n(S'Variable_Type'\n(I2\nttRp3693\nsS'Y:VBus139 - CLUCCI310'\np3694\ng35\n(S'Variable_Type'\n(I2\nttRp3695\nsS'Y:VBus106 - CRIZZA31'\np3696\ng35\n(S'Variable_Type'\n(I2\nttRp3697\nsS'Y:PMachine66 - CCASAM34'\np3698\ng35\n(S'Variable_Type'\n(I2\nttRp3699\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np3700\ng35\n(S'Variable_Type'\n(I2\nttRp3701\nsS'Y:VBus136 - CLUCCI37'\np3702\ng35\n(S'Variable_Type'\n(I2\nttRp3703\nsS'Y:VBus90 - CMOROS31'\np3704\ng35\n(S'Variable_Type'\n(I2\nttRp3705\nsS'PV_ALL'\np3706\ng35\n(S'Variable_Type'\n(I2\nttRp3707\nsS'X:lineOff#'\np3708\ng35\n(S'Variable_Type'\n(I2\nttRp3709\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np3710\ng35\n(S'Variable_Type'\n(I2\nttRp3711\nsS'Y:VBus108 - CSAGON31'\np3712\ng35\n(S'Variable_Type'\n(I2\nttRp3713\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np3714\ng35\n(S'Variable_Type'\n(I2\nttRp3715\nsS'Y:VBus137 - CLUCCI38'\np3716\ng35\n(S'Variable_Type'\n(I2\nttRp3717\nsS'Y:VBus130 - CVAZZI311'\np3718\ng35\n(S'Variable_Type'\n(I2\nttRp3719\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np3720\ng35\n(S'Variable_Type'\n(I2\nttRp3721\nsS'Y:VBus46 - CTRAVO21'\np3722\ng35\n(S'Variable_Type'\n(I2\nttRp3723\nsS'Y:VBus113 - CSAMPO32'\np3724\ng35\n(S'Variable_Type'\n(I2\nttRp3725\nsS'Y:PMachine133 - CVAZZI314'\np3726\ng35\n(S'Variable_Type'\n(I2\nttRp3727\nsS'Y:PMachine65 - CCASAM33'\np3728\ng35\n(S'Variable_Type'\n(I2\nttRp3729\nsS'Y:VBus78 - CFURIA31'\np3730\ng35\n(S'Variable_Type'\n(I2\nttRp3731\nsS'Y:VBus26 - CGHISO21'\np3732\ng35\n(S'Variable_Type'\n(I2\nttRp3733\nsS'Y:VBus121 - CVAZZI32'\np3734\ng35\n(S'Variable_Type'\n(I2\nttRp3735\nsS'Y:PMachine97 - COCANA36'\np3736\ng35\n(S'Variable_Type'\n(I2\nttRp3737\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np3738\ng35\n(S'Variable_Type'\n(I2\nttRp3739\nsS'Y:PMachine83 - CILERO32'\np3740\ng35\n(S'Variable_Type'\n(I2\nttRp3741\nsS'Y:VBus83 - CILERO32'\np3742\ng35\n(S'Variable_Type'\n(I2\nttRp3743\nsS'Y:VBus66 - CCASAM34'\np3744\ng35\n(S'Variable_Type'\n(I2\nttRp3745\nsS'Y:PMachine1 - CBONIF11'\np3746\ng35\n(S'Variable_Type'\n(I2\nttRp3747\nsS'Y:VBus111 - CSTMAR31'\np3748\ng35\n(S'Variable_Type'\n(I2\nttRp3749\nsS'Y:VBus124 - CVAZZI35'\np3750\ng35\n(S'Variable_Type'\n(I2\nttRp3751\nsS'VAZZIO_DIESEL'\np3752\ng35\n(S'Variable_Type'\n(I2\nttRp3753\nsS'Y:PMachine131 - CVAZZI312'\np3754\ng35\n(S'Variable_Type'\n(I2\nttRp3755\nsS'Y:VBus44 - CTAGLI21'\np3756\ng35\n(S'Variable_Type'\n(I2\nttRp3757\nsS'Y:VBus88 - CLUCCI33'\np3758\ng35\n(S'Variable_Type'\n(I2\nttRp3759\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np3760\ng35\n(S'Variable_Type'\n(I1\nttRp3761\nsS'Y:VBus38 - CSAGON21'\np3762\ng35\n(S'Variable_Type'\n(I2\nttRp3763\nsS'Y:PMachine81 - CGHISO32'\np3764\ng35\n(S'Variable_Type'\n(I2\nttRp3765\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np3766\ng35\n(S'Variable_Type'\n(I2\nttRp3767\nsS'Y:VBus110 - CSTLUC31'\np3768\ng35\n(S'Variable_Type'\n(I2\nttRp3769\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np3770\ng35\n(S'Variable_Type'\n(I2\nttRp3771\nssg650\n(lp3772\ng652\nasba(iOWContexts\nContext\np3773\n(dp3774\ng24\n(lp3775\nsg26\n(dp3776\nsg28\n(dp3777\ng1897\n(S''\nI-1\ntp3778\nsg1899\n(S''\nI0\ntp3779\nsg1901\n(g1281\ng35\n(S'Variable_Type'\n(I2\nttRp3780\ntp3781\nsg1904\n(g1284\ng3780\ntp3782\nsg1906\n(S''\nI0\ntp3783\nsg1908\n(g1287\ng35\n(S'Variable_Type'\n(I2\nttRp3784\ntp3785\nssg46\nF1369994938.898\nsg47\n(dp3786\nS'Y:PMachine134 - CLUCCI35'\np3787\ng35\n(S'Variable_Type'\n(I1\nttRp3788\nsS'Y:VBus77 - CCORTE32'\np3789\ng35\n(S'Variable_Type'\n(I2\nttRp3790\nsS'Y:VBus134 - CLUCCI35'\np3791\ng35\n(S'Variable_Type'\n(I2\nttRp3792\nsS'Y:VBus109 - CSAGON32'\np3793\ng35\n(S'Variable_Type'\n(I2\nttRp3794\nsS'Y:VBus102 - CPORTO31'\np3795\ng35\n(S'Variable_Type'\n(I2\nttRp3796\nsS'XProdEolienne%Pnom'\np3797\ng35\n(S'Variable_Type'\n(I1\nttRp3798\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np3799\ng35\n(S'Variable_Type'\n(I2\nttRp3800\nsS'Y:PMachine94 - COCANA33'\np3801\ng35\n(S'Variable_Type'\n(I2\nttRp3802\nsS'Y:VBus117 - CTOLLA32'\np3803\ng35\n(S'Variable_Type'\n(I2\nttRp3804\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np3805\ng35\n(S'Variable_Type'\n(I2\nttRp3806\nsS'Y:PMachine87 - CLUCCI32'\np3807\ng35\n(S'Variable_Type'\n(I2\nttRp3808\nsS'Y:PMachine113 - CSAMPO32'\np3809\ng35\n(S'Variable_Type'\n(I2\nttRp3810\nsS'Y:Load 84 - CLORET31'\np3811\ng35\n(S'Variable_Type'\n(I2\nttRp3812\nsS'Y:PMachine89 - CLUCCI34'\np3813\ng35\n(S'Variable_Type'\n(I1\nttRp3814\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np3815\ng35\n(S'Variable_Type'\n(I2\nttRp3816\nsS'Y:Load 80 - CGHISO31'\np3817\ng35\n(S'Variable_Type'\n(I2\nttRp3818\nsS'Y:PMachine125 - CVAZZI36'\np3819\ng35\n(S'Variable_Type'\n(I2\nttRp3820\nsS'Y:PMachine116 - CTOLLA31'\np3821\ng35\n(S'Variable_Type'\n(I2\nttRp3822\nsS'Y:PMachine88 - CLUCCI33'\np3823\ng35\n(S'Variable_Type'\n(I1\nttRp3824\nsS'Y:PMachine120 - CVAZZI31'\np3825\ng35\n(S'Variable_Type'\n(I2\nttRp3826\nsS'Y:PMachine111 - CSTMAR31'\np3827\ng35\n(S'Variable_Type'\n(I2\nttRp3828\nsS'Y:NbeTransit'\np3829\ng35\n(S'Variable_Type'\n(I1\nttRp3830\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np3831\ng35\n(S'Variable_Type'\n(I2\nttRp3832\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np3833\ng35\n(S'Variable_Type'\n(I2\nttRp3834\nsS'Y:VBus92 - COCANA31'\np3835\ng35\n(S'Variable_Type'\n(I2\nttRp3836\nsS'Y:PMachine130 - CVAZZI311'\np3837\ng35\n(S'Variable_Type'\n(I2\nttRp3838\nsS'Y:PMachine127 - CVAZZI38'\np3839\ng35\n(S'Variable_Type'\n(I2\nttRp3840\nsS'Y:VBus131 - CVAZZI312'\np3841\ng35\n(S'Variable_Type'\n(I2\nttRp3842\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np3843\ng35\n(S'Variable_Type'\n(I2\nttRp3844\nsS'Y:PMachine123 - CVAZZI34'\np3845\ng35\n(S'Variable_Type'\n(I2\nttRp3846\nsS'Y:VBus118 - CTOLLA33'\np3847\ng35\n(S'Variable_Type'\n(I2\nttRp3848\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np3849\ng35\n(S'Variable_Type'\n(I1\nttRp3850\nsS'Y:PMachine58 - CBONIF32'\np3851\ng35\n(S'Variable_Type'\n(I2\nttRp3852\nsS'Y:Load 104 - CPROPR31'\np3853\ng35\n(S'Variable_Type'\n(I2\nttRp3854\nsS'Y:PMachine30 - CLUCCI22'\np3855\ng35\n(S'Variable_Type'\n(I1\nttRp3856\nsS'Y:VBus100 - COLETT31'\np3857\ng35\n(S'Variable_Type'\n(I2\nttRp3858\nsS'Y:PProdTot'\np3859\ng35\n(S'Variable_Type'\n(I2\nttRp3860\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np3861\ng35\n(S'Variable_Type'\n(I1\nttRp3862\nsS'Y:VBus57 - CBONIF31'\np3863\ng35\n(S'Variable_Type'\n(I2\nttRp3864\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np3865\ng35\n(S'Variable_Type'\n(I2\nttRp3866\nsS'Y:PConsoTot'\np3867\ng35\n(S'Variable_Type'\n(I2\nttRp3868\nsS'Iteration'\np3869\ng35\n(S'Variable_Type'\n(I2\nttRp3870\nsS'Y:PMachine109 - CSAGON32'\np3871\ng35\n(S'Variable_Type'\n(I2\nttRp3872\nsS'Y:PMachine135 - CLUCCI36'\np3873\ng35\n(S'Variable_Type'\n(I1\nttRp3874\nsS'Y:VBus30 - CLUCCI22'\np3875\ng35\n(S'Variable_Type'\n(I2\nttRp3876\nsS'Y:VBus122 - CVAZZI33'\np3877\ng35\n(S'Variable_Type'\n(I2\nttRp3878\nsS'Y:VBus86 - CLUCCI31'\np3879\ng35\n(S'Variable_Type'\n(I2\nttRp3880\nsS'Y:PMachine102 - CPORTO31'\np3881\ng35\n(S'Variable_Type'\n(I2\nttRp3882\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np3883\ng35\n(S'Variable_Type'\n(I1\nttRp3884\nsS'Y:PMachine107 - CRIZZA32'\np3885\ng35\n(S'Variable_Type'\n(I2\nttRp3886\nsS'Y:VBus16 - CCALDA21'\np3887\ng35\n(S'Variable_Type'\n(I2\nttRp3888\nsS'Y:Load 102 - CPORTO31'\np3889\ng35\n(S'Variable_Type'\n(I2\nttRp3890\nsS'Y:VBus107 - CRIZZA32'\np3891\ng35\n(S'Variable_Type'\n(I2\nttRp3892\nsS'Y:VBus59 - CCALDA31'\np3893\ng35\n(S'Variable_Type'\n(I2\nttRp3894\nsS'Y:VBus41 - CSAMPO21'\np3895\ng35\n(S'Variable_Type'\n(I2\nttRp3896\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np3897\ng35\n(S'Variable_Type'\n(I2\nttRp3898\nsS'Y:VBus34 - CPIETR21'\np3899\ng35\n(S'Variable_Type'\n(I2\nttRp3900\nsS'Y:Load 108 - CSAGON31'\np3901\ng35\n(S'Variable_Type'\n(I2\nttRp3902\nsS'Y:VBus56 - CBIGUG32'\np3903\ng35\n(S'Variable_Type'\n(I2\nttRp3904\nsS'Y:PMachine42 - CSISCO21'\np3905\ng35\n(S'Variable_Type'\n(I2\nttRp3906\nsS'Y:PMachine138 - CLUCCI39'\np3907\ng35\n(S'Variable_Type'\n(I1\nttRp3908\nsS'Y:PMachine112 - CSAMPO31'\np3909\ng35\n(S'Variable_Type'\n(I2\nttRp3910\nsS'Y:VBus105 - CPROPR32'\np3911\ng35\n(S'Variable_Type'\n(I2\nttRp3912\nsS'Y:VBus1 - CBONIF11'\np3913\ng35\n(S'Variable_Type'\n(I2\nttRp3914\nsS'Y:VBus12 - CBASTI21'\np3915\ng35\n(S'Variable_Type'\n(I2\nttRp3916\nsS'Y:PMachine129 - CVAZZI310'\np3917\ng35\n(S'Variable_Type'\n(I2\nttRp3918\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np3919\ng35\n(S'Variable_Type'\n(I1\nttRp3920\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np3921\ng35\n(S'Variable_Type'\n(I1\nttRp3922\nsS'Y:VBus54 - CBASTI32'\np3923\ng35\n(S'Variable_Type'\n(I2\nttRp3924\nsS'Y:VBus69 - CCASAM37'\np3925\ng35\n(S'Variable_Type'\n(I2\nttRp3926\nsS'Y:VBus45 - CTOLLA21'\np3927\ng35\n(S'Variable_Type'\n(I2\nttRp3928\nsS'Y:PMachine115 - CTAGLI31'\np3929\ng35\n(S'Variable_Type'\n(I2\nttRp3930\nsS'Y:PMachine77 - CCORTE32'\np3931\ng35\n(S'Variable_Type'\n(I2\nttRp3932\nsS'Y:VBus43 - CSOVEN21'\np3933\ng35\n(S'Variable_Type'\n(I2\nttRp3934\nsS'Y:VBus76 - CCORTE31'\np3935\ng35\n(S'Variable_Type'\n(I2\nttRp3936\nsS'Y:VBus75 - CCORSC31'\np3937\ng35\n(S'Variable_Type'\n(I2\nttRp3938\nsS'Y:PMachine78 - CFURIA31'\np3939\ng35\n(S'Variable_Type'\n(I1\nttRp3940\nsS'Y:VBus127 - CVAZZI38'\np3941\ng35\n(S'Variable_Type'\n(I2\nttRp3942\nsS'Y:VBus115 - CTAGLI31'\np3943\ng35\n(S'Variable_Type'\n(I2\nttRp3944\nsS'Y:Load 61 - CCALVI31'\np3945\ng35\n(S'Variable_Type'\n(I2\nttRp3946\nsS'Y:VBus55 - CBIGUG31'\np3947\ng35\n(S'Variable_Type'\n(I2\nttRp3948\nsS'Y:Load 42 - CSISCO21'\np3949\ng35\n(S'Variable_Type'\n(I2\nttRp3950\nsS'Y:VBus72 - CCASTI31'\np3951\ng35\n(S'Variable_Type'\n(I2\nttRp3952\nsS'Y:Load 37 - CRIZZA21'\np3953\ng35\n(S'Variable_Type'\n(I2\nttRp3954\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np3955\ng35\n(S'Variable_Type'\n(I2\nttRp3956\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np3957\ng35\n(S'Variable_Type'\n(I2\nttRp3958\nsS'Y:PMachine137 - CLUCCI38'\np3959\ng35\n(S'Variable_Type'\n(I1\nttRp3960\nsS'Y:PMachine67 - CCASAM35'\np3961\ng35\n(S'Variable_Type'\n(I2\nttRp3962\nsS'INTERCOS'\np3963\ng35\n(S'Variable_Type'\n(I2\nttRp3964\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np3965\ng35\n(S'Variable_Type'\n(I1\nttRp3966\nsS'Y:VBus31 - CMOROS21'\np3967\ng35\n(S'Variable_Type'\n(I2\nttRp3968\nsS'Y:VBus103 - CPORTO32'\np3969\ng35\n(S'Variable_Type'\n(I2\nttRp3970\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np3971\ng35\n(S'Variable_Type'\n(I1\nttRp3972\nsS'Y:PMachine128 - CVAZZI39'\np3973\ng35\n(S'Variable_Type'\n(I2\nttRp3974\nsS'Y:PMachine72 - CCASTI31'\np3975\ng35\n(S'Variable_Type'\n(I2\nttRp3976\nsS'Y:VBus27 - CILERO21'\np3977\ng35\n(S'Variable_Type'\n(I2\nttRp3978\nsS'Y:PMachine75 - CCORSC31'\np3979\ng35\n(S'Variable_Type'\n(I2\nttRp3980\nsS'Y:Load 51 - CASPRE31'\np3981\ng35\n(S'Variable_Type'\n(I2\nttRp3982\nsS'Y:PMachine61 - CCALVI31'\np3983\ng35\n(S'Variable_Type'\n(I1\nttRp3984\nsS'Y:VBus51 - CASPRE31'\np3985\ng35\n(S'Variable_Type'\n(I2\nttRp3986\nsS'Y:VBus114 - CSOVEN31'\np3987\ng35\n(S'Variable_Type'\n(I2\nttRp3988\nsS'Y:Load 82 - CILERO31'\np3989\ng35\n(S'Variable_Type'\n(I2\nttRp3990\nsS'Y:VBus116 - CTOLLA31'\np3991\ng35\n(S'Variable_Type'\n(I2\nttRp3992\nsS'Y:Load 86 - CLUCCI31'\np3993\ng35\n(S'Variable_Type'\n(I2\nttRp3994\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np3995\ng35\n(S'Variable_Type'\n(I2\nttRp3996\nsS'Y:Load 57 - CBONIF31'\np3997\ng35\n(S'Variable_Type'\n(I2\nttRp3998\nsS'Y:PMachine104 - CPROPR31'\np3999\ng35\n(S'Variable_Type'\n(I2\nttRp4000\nsS'Y:VBus128 - CVAZZI39'\np4001\ng35\n(S'Variable_Type'\n(I2\nttRp4002\nsS'Y:PMachine136 - CLUCCI37'\np4003\ng35\n(S'Variable_Type'\n(I1\nttRp4004\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np4005\ng35\n(S'Variable_Type'\n(I2\nttRp4006\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np4007\ng35\n(S'Variable_Type'\n(I2\nttRp4008\nsS'Y:PMachine68 - CCASAM36'\np4009\ng35\n(S'Variable_Type'\n(I2\nttRp4010\nsS'Y:PMachine29 - CLUCCI21'\np4011\ng35\n(S'Variable_Type'\n(I1\nttRp4012\nsS'Y:VBus42 - CSISCO21'\np4013\ng35\n(S'Variable_Type'\n(I2\nttRp4014\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np4015\ng35\n(S'Variable_Type'\n(I1\nttRp4016\nsS'Y:VBus14 - CBONIF21'\np4017\ng35\n(S'Variable_Type'\n(I2\nttRp4018\nsS'Y:VBus73 - CCASTI32'\np4019\ng35\n(S'Variable_Type'\n(I2\nttRp4020\nsS'Y:VBus64 - CCASAM32'\np4021\ng35\n(S'Variable_Type'\n(I2\nttRp4022\nsS'Y:PMachine14 - CBONIF21'\np4023\ng35\n(S'Variable_Type'\n(I1\nttRp4024\nsS'Y:PMachine62 - CCALVI32'\np4025\ng35\n(S'Variable_Type'\n(I2\nttRp4026\nsS'Y:VBus133 - CVAZZI314'\np4027\ng35\n(S'Variable_Type'\n(I2\nttRp4028\nsS'Y:VBus63 - CCASAM31'\np4029\ng35\n(S'Variable_Type'\n(I2\nttRp4030\nsS'Y:PMachine101 - CPIETR31'\np4031\ng35\n(S'Variable_Type'\n(I2\nttRp4032\nsS'Y:%Losses'\np4033\ng35\n(S'Variable_Type'\n(I2\nttRp4034\nsS'Y:VBus85 - CLORET32'\np4035\ng35\n(S'Variable_Type'\n(I2\nttRp4036\nsS'Y:Load 59 - CCALDA31'\np4037\ng35\n(S'Variable_Type'\n(I2\nttRp4038\nsS'Y:VBus129 - CVAZZI310'\np4039\ng35\n(S'Variable_Type'\n(I2\nttRp4040\nsS'Y:VBus101 - CPIETR31'\np4041\ng35\n(S'Variable_Type'\n(I2\nttRp4042\nsS'Y:PMachine106 - CRIZZA31'\np4043\ng35\n(S'Variable_Type'\n(I2\nttRp4044\nsS'Y:VBus132 - CVAZZI313'\np4045\ng35\n(S'Variable_Type'\n(I2\nttRp4046\nsS'Y:PMachine118 - CTOLLA33'\np4047\ng35\n(S'Variable_Type'\n(I2\nttRp4048\nsS'Y:VBus19 - CCASTI21'\np4049\ng35\n(S'Variable_Type'\n(I2\nttRp4050\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np4051\ng35\n(S'Variable_Type'\n(I2\nttRp4052\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np4053\ng35\n(S'Variable_Type'\n(I1\nttRp4054\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np4055\ng35\n(S'Variable_Type'\n(I2\nttRp4056\nsS'Y:Load 115 - CTAGLI31'\np4057\ng3784\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np4058\ng35\n(S'Variable_Type'\n(I2\nttRp4059\nsS'Y:VBus79 - CFURIA32'\np4060\ng35\n(S'Variable_Type'\n(I2\nttRp4061\nsS'Y:PMachine47 - CVAZZI21'\np4062\ng35\n(S'Variable_Type'\n(I1\nttRp4063\nsS'Y:VBus123 - CVAZZI34'\np4064\ng35\n(S'Variable_Type'\n(I2\nttRp4065\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np4066\ng35\n(S'Variable_Type'\n(I2\nttRp4067\nsS'Y:VBus60 - CCALDA32'\np4068\ng35\n(S'Variable_Type'\n(I2\nttRp4069\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np4070\ng35\n(S'Variable_Type'\n(I2\nttRp4071\nsS'Y:VBus65 - CCASAM33'\np4072\ng35\n(S'Variable_Type'\n(I2\nttRp4073\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np4074\ng35\n(S'Variable_Type'\n(I1\nttRp4075\nsS'Y:PMachine139 - CLUCCI310'\np4076\ng35\n(S'Variable_Type'\n(I1\nttRp4077\nsS'Y:VBus112 - CSAMPO31'\np4078\ng35\n(S'Variable_Type'\n(I2\nttRp4079\nsS'Y:VBus68 - CCASAM36'\np4080\ng35\n(S'Variable_Type'\n(I2\nttRp4081\nsS'Y:Load 55 - CBIGUG31'\np4082\ng35\n(S'Variable_Type'\n(I2\nttRp4083\nsS'Y:PMachine53 - CBASTI31'\np4084\ng35\n(S'Variable_Type'\n(I2\nttRp4085\nsS'Y:NbeTransit_0.9-1'\np4086\ng35\n(S'Variable_Type'\n(I1\nttRp4087\nsS'Y:VBus24 - CFURIA21'\np4088\ng35\n(S'Variable_Type'\n(I2\nttRp4089\nsS'Y:VBus23 - CCORTE22'\np4090\ng35\n(S'Variable_Type'\n(I2\nttRp4091\nsS'Y:VBus18 - CCASAM21'\np4092\ng35\n(S'Variable_Type'\n(I2\nttRp4093\nsS'Y:VBus40 - CSTMAR21'\np4094\ng35\n(S'Variable_Type'\n(I2\nttRp4095\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np4096\ng35\n(S'Variable_Type'\n(I2\nttRp4097\nsS'Y:PMachine124 - CVAZZI35'\np4098\ng35\n(S'Variable_Type'\n(I2\nttRp4099\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np4100\ng35\n(S'Variable_Type'\n(I2\nttRp4101\nsS'Y:PMachine117 - CTOLLA32'\np4102\ng35\n(S'Variable_Type'\n(I2\nttRp4103\nsS'Y:VBus89 - CLUCCI34'\np4104\ng35\n(S'Variable_Type'\n(I2\nttRp4105\nsS'Y:VBus33 - COLETT21'\np4106\ng35\n(S'Variable_Type'\n(I2\nttRp4107\nsS'Y:VBus32 - COCANA21'\np4108\ng35\n(S'Variable_Type'\n(I2\nttRp4109\nsS'Y:PMachine121 - CVAZZI32'\np4110\ng35\n(S'Variable_Type'\n(I2\nttRp4111\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np4112\ng35\n(S'Variable_Type'\n(I1\nttRp4113\nsS'Y:VBus82 - CILERO31'\np4114\ng35\n(S'Variable_Type'\n(I2\nttRp4115\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np4116\ng35\n(S'Variable_Type'\n(I2\nttRp4117\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np4118\ng35\n(S'Variable_Type'\n(I2\nttRp4119\nsS'Y:VBus37 - CRIZZA21'\np4120\ng35\n(S'Variable_Type'\n(I2\nttRp4121\nsS'Y:PMachine73 - CCASTI32'\np4122\ng35\n(S'Variable_Type'\n(I2\nttRp4123\nsS'Y:PMachine86 - CLUCCI31'\np4124\ng35\n(S'Variable_Type'\n(I2\nttRp4125\nsS'Y:Load 53 - CBASTI31'\np4126\ng35\n(S'Variable_Type'\n(I2\nttRp4127\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np4128\ng35\n(S'Variable_Type'\n(I2\nttRp4129\nsS'Y:VBus21 - CCORSC21'\np4130\ng35\n(S'Variable_Type'\n(I2\nttRp4131\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np4132\ng35\n(S'Variable_Type'\n(I2\nttRp4133\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np4134\ng35\n(S'Variable_Type'\n(I2\nttRp4135\nsS'Y:PMachine126 - CVAZZI37'\np4136\ng35\n(S'Variable_Type'\n(I2\nttRp4137\nsS'Y:PMachine64 - CCASAM32'\np4138\ng35\n(S'Variable_Type'\n(I2\nttRp4139\nsS'Y:VBus67 - CCASAM35'\np4140\ng35\n(S'Variable_Type'\n(I2\nttRp4141\nsS'Y:VBus53 - CBASTI31'\np4142\ng35\n(S'Variable_Type'\n(I2\nttRp4143\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np4144\ng35\n(S'Variable_Type'\n(I2\nttRp4145\nsS'Y:VBus61 - CCALVI31'\np4146\ng35\n(S'Variable_Type'\n(I2\nttRp4147\nsS'Y:VBus93 - COCANA32'\np4148\ng35\n(S'Variable_Type'\n(I2\nttRp4149\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np4150\ng35\n(S'Variable_Type'\n(I2\nttRp4151\nsS'Y:VBus104 - CPROPR31'\np4152\ng35\n(S'Variable_Type'\n(I2\nttRp4153\nsS'Y:VBus22 - CCORTE21'\np4154\ng35\n(S'Variable_Type'\n(I2\nttRp4155\nsS'Y:VBus48 - CZSSS621'\np4156\ng35\n(S'Variable_Type'\n(I2\nttRp4157\nsS'Y:PMachine85 - CLORET32'\np4158\ng35\n(S'Variable_Type'\n(I2\nttRp4159\nsS'Y:Max%A'\np4160\ng35\n(S'Variable_Type'\n(I2\nttRp4161\nsS'Y:VBus36 - CPROPR21'\np4162\ng35\n(S'Variable_Type'\n(I2\nttRp4163\nsS'Y:Load 100 - COLETT31'\np4164\ng35\n(S'Variable_Type'\n(I2\nttRp4165\nsS'Y:PMachine54 - CBASTI32'\np4166\ng35\n(S'Variable_Type'\n(I2\nttRp4167\nsS'Y:VBus138 - CLUCCI39'\np4168\ng35\n(S'Variable_Type'\n(I2\nttRp4169\nsS'Y:VBus39 - CSTLUC21'\np4170\ng35\n(S'Variable_Type'\n(I2\nttRp4171\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np4172\ng35\n(S'Variable_Type'\n(I2\nttRp4173\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np4174\ng35\n(S'Variable_Type'\n(I2\nttRp4175\nsS'Y:Load 78 - CFURIA31'\np4176\ng35\n(S'Variable_Type'\n(I2\nttRp4177\nsS'Y:Load 74 - CCERVI31'\np4178\ng35\n(S'Variable_Type'\n(I2\nttRp4179\nsS'Y:VBus28 - CLORET21'\np4180\ng35\n(S'Variable_Type'\n(I2\nttRp4181\nsS'Y:PMachine105 - CPROPR32'\np4182\ng35\n(S'Variable_Type'\n(I2\nttRp4183\nsS'Y:VBus96 - COCANA35'\np4184\ng35\n(S'Variable_Type'\n(I2\nttRp4185\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np4186\ng35\n(S'Variable_Type'\n(I1\nttRp4187\nsS'Y:PMachine18 - CCASAM21'\np4188\ng35\n(S'Variable_Type'\n(I1\nttRp4189\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np4190\ng35\n(S'Variable_Type'\n(I2\nttRp4191\nsS'Y:VBus13 - CBIGUG21'\np4192\ng35\n(S'Variable_Type'\n(I2\nttRp4193\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np4194\ng35\n(S'Variable_Type'\n(I2\nttRp4195\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np4196\ng35\n(S'Variable_Type'\n(I2\nttRp4197\nsS'Y:VBus29 - CLUCCI21'\np4198\ng35\n(S'Variable_Type'\n(I2\nttRp4199\nsS'Y:VBus58 - CBONIF32'\np4200\ng35\n(S'Variable_Type'\n(I2\nttRp4201\nsS'Y:VBus84 - CLORET31'\np4202\ng35\n(S'Variable_Type'\n(I2\nttRp4203\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np4204\ng35\n(S'Variable_Type'\n(I1\nttRp4205\nsS'Y:VBus97 - COCANA36'\np4206\ng35\n(S'Variable_Type'\n(I2\nttRp4207\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np4208\ng35\n(S'Variable_Type'\n(I1\nttRp4209\nsS'Y:VBus15 - CBONIF22'\np4210\ng35\n(S'Variable_Type'\n(I2\nttRp4211\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np4212\ng35\n(S'Variable_Type'\n(I2\nttRp4213\nsS'Y:Load 110 - CSTLUC31'\np4214\ng35\n(S'Variable_Type'\n(I2\nttRp4215\nsS'Y:VBus80 - CGHISO31'\np4216\ng35\n(S'Variable_Type'\n(I2\nttRp4217\nsS'Y:PMachine114 - CSOVEN31'\np4218\ng35\n(S'Variable_Type'\n(I2\nttRp4219\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np4220\ng35\n(S'Variable_Type'\n(I1\nttRp4221\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np4222\ng35\n(S'Variable_Type'\n(I2\nttRp4223\nsS'Y:PMachine93 - COCANA32'\np4224\ng35\n(S'Variable_Type'\n(I2\nttRp4225\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np4226\ng35\n(S'Variable_Type'\n(I1\nttRp4227\nsS'Y:VBus87 - CLUCCI32'\np4228\ng35\n(S'Variable_Type'\n(I2\nttRp4229\nsS'Y:VBus62 - CCALVI32'\np4230\ng35\n(S'Variable_Type'\n(I2\nttRp4231\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np4232\ng35\n(S'Variable_Type'\n(I1\nttRp4233\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np4234\ng35\n(S'Variable_Type'\n(I1\nttRp4235\nsS'Y:VBus81 - CGHISO32'\np4236\ng35\n(S'Variable_Type'\n(I2\nttRp4237\nsS'Y:PMachine74 - CCERVI31'\np4238\ng35\n(S'Variable_Type'\n(I2\nttRp4239\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np4240\ng35\n(S'Variable_Type'\n(I2\nttRp4241\nsS'EOL_ALL'\np4242\ng35\n(S'Variable_Type'\n(I2\nttRp4243\nsS'X:Load(pu)'\np4244\ng3780\nsS'Y:NbeTension'\np4245\ng35\n(S'Variable_Type'\n(I2\nttRp4246\nsS'Y:VBus95 - COCANA34'\np4247\ng35\n(S'Variable_Type'\n(I2\nttRp4248\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np4249\ng35\n(S'Variable_Type'\n(I2\nttRp4250\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np4251\ng35\n(S'Variable_Type'\n(I2\nttRp4252\nsS'Y:Load 95 - COCANA34'\np4253\ng35\n(S'Variable_Type'\n(I2\nttRp4254\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np4255\ng35\n(S'Variable_Type'\n(I1\nttRp4256\nsS'Y:PMachine90 - CMOROS31'\np4257\ng35\n(S'Variable_Type'\n(I2\nttRp4258\nsS'Y:Load 101 - CPIETR31'\np4259\ng35\n(S'Variable_Type'\n(I2\nttRp4260\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np4261\ng35\n(S'Variable_Type'\n(I1\nttRp4262\nsS'Y:PMachine132 - CVAZZI313'\np4263\ng35\n(S'Variable_Type'\n(I2\nttRp4264\nsS'Y:VBus125 - CVAZZI36'\np4265\ng35\n(S'Variable_Type'\n(I2\nttRp4266\nsS'Y:VBus135 - CLUCCI36'\np4267\ng35\n(S'Variable_Type'\n(I2\nttRp4268\nsS'Y:VBus47 - CVAZZI21'\np4269\ng35\n(S'Variable_Type'\n(I2\nttRp4270\nsS'Y:VBus94 - COCANA33'\np4271\ng35\n(S'Variable_Type'\n(I2\nttRp4272\nsS'Y:VBus17 - CCALVI21'\np4273\ng35\n(S'Variable_Type'\n(I2\nttRp4274\nsS'Y:Load 90 - CMOROS31'\np4275\ng35\n(S'Variable_Type'\n(I2\nttRp4276\nsS'Y:VBus120 - CVAZZI31'\np4277\ng35\n(S'Variable_Type'\n(I2\nttRp4278\nsS'X:ProdPV%Pnom'\np4279\ng35\n(S'Variable_Type'\n(I2\nttRp4280\nsS'Y:VBus52 - CASPRE32'\np4281\ng35\n(S'Variable_Type'\n(I2\nttRp4282\nsS'Y:VBus25 - CFURIA22'\np4283\ng35\n(S'Variable_Type'\n(I2\nttRp4284\nsS'Y:Load 76 - CCORTE31'\np4285\ng35\n(S'Variable_Type'\n(I2\nttRp4286\nsS'Y:PMachine69 - CCASAM37'\np4287\ng35\n(S'Variable_Type'\n(I2\nttRp4288\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np4289\ng35\n(S'Variable_Type'\n(I2\nttRp4290\nsS'Y:PMachine92 - COCANA31'\np4291\ng35\n(S'Variable_Type'\n(I2\nttRp4292\nsS'Y:VBus35 - CPORTO21'\np4293\ng35\n(S'Variable_Type'\n(I2\nttRp4294\nsS'Y:PMachine122 - CVAZZI33'\np4295\ng35\n(S'Variable_Type'\n(I2\nttRp4296\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np4297\ng35\n(S'Variable_Type'\n(I1\nttRp4298\nsS'Y:PMachine63 - CCASAM31'\np4299\ng35\n(S'Variable_Type'\n(I2\nttRp4300\nsS'Y:VBus74 - CCERVI31'\np4301\ng35\n(S'Variable_Type'\n(I2\nttRp4302\nsS'Y:VBus126 - CVAZZI37'\np4303\ng35\n(S'Variable_Type'\n(I2\nttRp4304\nsS'Y:PMachine60 - CCALDA32'\np4305\ng35\n(S'Variable_Type'\n(I2\nttRp4306\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np4307\ng35\n(S'Variable_Type'\n(I1\nttRp4308\nsS'Y:VBus20 - CCERVI21'\np4309\ng35\n(S'Variable_Type'\n(I2\nttRp4310\nsS'Y:VBus119 - CTRAVO31'\np4311\ng35\n(S'Variable_Type'\n(I2\nttRp4312\nsS'Y:VBus11 - CASPRE21'\np4313\ng35\n(S'Variable_Type'\n(I2\nttRp4314\nsS'Y:VBus139 - CLUCCI310'\np4315\ng35\n(S'Variable_Type'\n(I2\nttRp4316\nsS'Y:VBus106 - CRIZZA31'\np4317\ng35\n(S'Variable_Type'\n(I2\nttRp4318\nsS'Y:PMachine66 - CCASAM34'\np4319\ng35\n(S'Variable_Type'\n(I2\nttRp4320\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np4321\ng35\n(S'Variable_Type'\n(I2\nttRp4322\nsS'Y:VBus136 - CLUCCI37'\np4323\ng35\n(S'Variable_Type'\n(I2\nttRp4324\nsS'Y:VBus90 - CMOROS31'\np4325\ng35\n(S'Variable_Type'\n(I2\nttRp4326\nsS'PV_ALL'\np4327\ng35\n(S'Variable_Type'\n(I2\nttRp4328\nsS'X:lineOff#'\np4329\ng35\n(S'Variable_Type'\n(I2\nttRp4330\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np4331\ng35\n(S'Variable_Type'\n(I2\nttRp4332\nsS'Y:VBus108 - CSAGON31'\np4333\ng35\n(S'Variable_Type'\n(I2\nttRp4334\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np4335\ng35\n(S'Variable_Type'\n(I2\nttRp4336\nsS'Y:VBus137 - CLUCCI38'\np4337\ng35\n(S'Variable_Type'\n(I2\nttRp4338\nsS'Y:VBus130 - CVAZZI311'\np4339\ng35\n(S'Variable_Type'\n(I2\nttRp4340\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np4341\ng35\n(S'Variable_Type'\n(I2\nttRp4342\nsS'Y:VBus46 - CTRAVO21'\np4343\ng35\n(S'Variable_Type'\n(I2\nttRp4344\nsS'Y:VBus113 - CSAMPO32'\np4345\ng35\n(S'Variable_Type'\n(I2\nttRp4346\nsS'Y:PMachine133 - CVAZZI314'\np4347\ng35\n(S'Variable_Type'\n(I2\nttRp4348\nsS'Y:PMachine65 - CCASAM33'\np4349\ng35\n(S'Variable_Type'\n(I2\nttRp4350\nsS'Y:VBus78 - CFURIA31'\np4351\ng35\n(S'Variable_Type'\n(I2\nttRp4352\nsS'Y:VBus26 - CGHISO21'\np4353\ng35\n(S'Variable_Type'\n(I2\nttRp4354\nsS'Y:VBus121 - CVAZZI32'\np4355\ng35\n(S'Variable_Type'\n(I2\nttRp4356\nsS'Y:PMachine97 - COCANA36'\np4357\ng35\n(S'Variable_Type'\n(I2\nttRp4358\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np4359\ng35\n(S'Variable_Type'\n(I2\nttRp4360\nsS'Y:PMachine83 - CILERO32'\np4361\ng35\n(S'Variable_Type'\n(I2\nttRp4362\nsS'Y:VBus83 - CILERO32'\np4363\ng35\n(S'Variable_Type'\n(I2\nttRp4364\nsS'Y:VBus66 - CCASAM34'\np4365\ng35\n(S'Variable_Type'\n(I2\nttRp4366\nsS'Y:PMachine1 - CBONIF11'\np4367\ng35\n(S'Variable_Type'\n(I2\nttRp4368\nsS'Y:VBus111 - CSTMAR31'\np4369\ng35\n(S'Variable_Type'\n(I2\nttRp4370\nsS'Y:VBus124 - CVAZZI35'\np4371\ng35\n(S'Variable_Type'\n(I2\nttRp4372\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np4373\ng35\n(S'Variable_Type'\n(I2\nttRp4374\nsS'Y:PMachine131 - CVAZZI312'\np4375\ng35\n(S'Variable_Type'\n(I2\nttRp4376\nsS'Y:VBus44 - CTAGLI21'\np4377\ng35\n(S'Variable_Type'\n(I2\nttRp4378\nsS'Y:VBus88 - CLUCCI33'\np4379\ng35\n(S'Variable_Type'\n(I2\nttRp4380\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np4381\ng35\n(S'Variable_Type'\n(I1\nttRp4382\nsS'Y:VBus38 - CSAGON21'\np4383\ng35\n(S'Variable_Type'\n(I2\nttRp4384\nsS'Y:PMachine81 - CGHISO32'\np4385\ng35\n(S'Variable_Type'\n(I2\nttRp4386\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np4387\ng35\n(S'Variable_Type'\n(I2\nttRp4388\nsS'Y:VBus110 - CSTLUC31'\np4389\ng35\n(S'Variable_Type'\n(I2\nttRp4390\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np4391\ng35\n(S'Variable_Type'\n(I2\nttRp4392\nssg650\n(lp4393\ng652\nasba(iOWContexts\nContext\np4394\n(dp4395\ng24\n(lp4396\nsg26\n(dp4397\nsg28\n(dp4398\ng1897\n(S''\nI-1\ntp4399\nsg1899\n(S''\nI0\ntp4400\nsg1901\n(g1281\ng35\n(S'Variable_Type'\n(I2\nttRp4401\ntp4402\nsg1904\n(g1284\ng4401\ntp4403\nsg1906\n(S''\nI0\ntp4404\nsg1908\n(g1287\ng35\n(S'Variable_Type'\n(I2\nttRp4405\ntp4406\nssg46\nF1369994938.898\nsg47\n(dp4407\nS'Y:PMachine134 - CLUCCI35'\np4408\ng35\n(S'Variable_Type'\n(I1\nttRp4409\nsS'Y:VBus77 - CCORTE32'\np4410\ng35\n(S'Variable_Type'\n(I2\nttRp4411\nsS'Y:VBus134 - CLUCCI35'\np4412\ng35\n(S'Variable_Type'\n(I2\nttRp4413\nsS'Y:VBus109 - CSAGON32'\np4414\ng35\n(S'Variable_Type'\n(I2\nttRp4415\nsS'Y:VBus102 - CPORTO31'\np4416\ng35\n(S'Variable_Type'\n(I2\nttRp4417\nsS'XProdEolienne%Pnom'\np4418\ng35\n(S'Variable_Type'\n(I1\nttRp4419\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np4420\ng35\n(S'Variable_Type'\n(I2\nttRp4421\nsS'Y:PMachine94 - COCANA33'\np4422\ng35\n(S'Variable_Type'\n(I2\nttRp4423\nsS'Y:VBus117 - CTOLLA32'\np4424\ng35\n(S'Variable_Type'\n(I2\nttRp4425\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np4426\ng35\n(S'Variable_Type'\n(I2\nttRp4427\nsS'Y:PMachine87 - CLUCCI32'\np4428\ng35\n(S'Variable_Type'\n(I2\nttRp4429\nsS'Y:PMachine113 - CSAMPO32'\np4430\ng35\n(S'Variable_Type'\n(I2\nttRp4431\nsS'Y:Load 84 - CLORET31'\np4432\ng35\n(S'Variable_Type'\n(I2\nttRp4433\nsS'Y:PMachine89 - CLUCCI34'\np4434\ng35\n(S'Variable_Type'\n(I1\nttRp4435\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np4436\ng35\n(S'Variable_Type'\n(I2\nttRp4437\nsS'Y:Load 80 - CGHISO31'\np4438\ng35\n(S'Variable_Type'\n(I2\nttRp4439\nsS'Y:PMachine125 - CVAZZI36'\np4440\ng35\n(S'Variable_Type'\n(I2\nttRp4441\nsS'Y:PMachine116 - CTOLLA31'\np4442\ng35\n(S'Variable_Type'\n(I2\nttRp4443\nsS'Y:PMachine88 - CLUCCI33'\np4444\ng35\n(S'Variable_Type'\n(I1\nttRp4445\nsS'Y:PMachine120 - CVAZZI31'\np4446\ng35\n(S'Variable_Type'\n(I2\nttRp4447\nsS'Y:PMachine111 - CSTMAR31'\np4448\ng35\n(S'Variable_Type'\n(I2\nttRp4449\nsS'Y:NbeTransit'\np4450\ng35\n(S'Variable_Type'\n(I1\nttRp4451\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np4452\ng35\n(S'Variable_Type'\n(I2\nttRp4453\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np4454\ng35\n(S'Variable_Type'\n(I2\nttRp4455\nsS'Y:VBus92 - COCANA31'\np4456\ng35\n(S'Variable_Type'\n(I2\nttRp4457\nsS'Y:PMachine130 - CVAZZI311'\np4458\ng35\n(S'Variable_Type'\n(I2\nttRp4459\nsS'Y:PMachine127 - CVAZZI38'\np4460\ng35\n(S'Variable_Type'\n(I2\nttRp4461\nsS'Y:VBus131 - CVAZZI312'\np4462\ng35\n(S'Variable_Type'\n(I2\nttRp4463\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np4464\ng35\n(S'Variable_Type'\n(I2\nttRp4465\nsS'Y:PMachine123 - CVAZZI34'\np4466\ng35\n(S'Variable_Type'\n(I2\nttRp4467\nsS'Y:VBus118 - CTOLLA33'\np4468\ng35\n(S'Variable_Type'\n(I2\nttRp4469\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np4470\ng35\n(S'Variable_Type'\n(I1\nttRp4471\nsS'Y:PMachine58 - CBONIF32'\np4472\ng35\n(S'Variable_Type'\n(I2\nttRp4473\nsS'Y:Load 104 - CPROPR31'\np4474\ng35\n(S'Variable_Type'\n(I2\nttRp4475\nsS'Y:PMachine30 - CLUCCI22'\np4476\ng35\n(S'Variable_Type'\n(I1\nttRp4477\nsS'Y:VBus100 - COLETT31'\np4478\ng35\n(S'Variable_Type'\n(I2\nttRp4479\nsS'Y:PProdTot'\np4480\ng35\n(S'Variable_Type'\n(I2\nttRp4481\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np4482\ng35\n(S'Variable_Type'\n(I1\nttRp4483\nsS'Y:VBus57 - CBONIF31'\np4484\ng35\n(S'Variable_Type'\n(I2\nttRp4485\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np4486\ng35\n(S'Variable_Type'\n(I2\nttRp4487\nsS'Y:PConsoTot'\np4488\ng35\n(S'Variable_Type'\n(I2\nttRp4489\nsS'Iteration'\np4490\ng35\n(S'Variable_Type'\n(I2\nttRp4491\nsS'Y:PMachine109 - CSAGON32'\np4492\ng35\n(S'Variable_Type'\n(I2\nttRp4493\nsS'Y:PMachine135 - CLUCCI36'\np4494\ng35\n(S'Variable_Type'\n(I1\nttRp4495\nsS'Y:VBus30 - CLUCCI22'\np4496\ng35\n(S'Variable_Type'\n(I2\nttRp4497\nsS'Y:VBus122 - CVAZZI33'\np4498\ng35\n(S'Variable_Type'\n(I2\nttRp4499\nsS'Y:VBus86 - CLUCCI31'\np4500\ng35\n(S'Variable_Type'\n(I2\nttRp4501\nsS'Y:PMachine102 - CPORTO31'\np4502\ng35\n(S'Variable_Type'\n(I2\nttRp4503\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np4504\ng35\n(S'Variable_Type'\n(I1\nttRp4505\nsS'Y:PMachine107 - CRIZZA32'\np4506\ng35\n(S'Variable_Type'\n(I2\nttRp4507\nsS'Y:VBus16 - CCALDA21'\np4508\ng35\n(S'Variable_Type'\n(I2\nttRp4509\nsS'Y:Load 102 - CPORTO31'\np4510\ng35\n(S'Variable_Type'\n(I2\nttRp4511\nsS'Y:VBus107 - CRIZZA32'\np4512\ng35\n(S'Variable_Type'\n(I2\nttRp4513\nsS'Y:VBus59 - CCALDA31'\np4514\ng35\n(S'Variable_Type'\n(I2\nttRp4515\nsS'Y:VBus41 - CSAMPO21'\np4516\ng35\n(S'Variable_Type'\n(I2\nttRp4517\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np4518\ng35\n(S'Variable_Type'\n(I2\nttRp4519\nsS'Y:VBus34 - CPIETR21'\np4520\ng35\n(S'Variable_Type'\n(I2\nttRp4521\nsS'Y:Load 108 - CSAGON31'\np4522\ng35\n(S'Variable_Type'\n(I2\nttRp4523\nsS'Y:VBus56 - CBIGUG32'\np4524\ng35\n(S'Variable_Type'\n(I2\nttRp4525\nsS'Y:PMachine42 - CSISCO21'\np4526\ng35\n(S'Variable_Type'\n(I2\nttRp4527\nsS'Y:PMachine138 - CLUCCI39'\np4528\ng35\n(S'Variable_Type'\n(I1\nttRp4529\nsS'Y:PMachine112 - CSAMPO31'\np4530\ng35\n(S'Variable_Type'\n(I2\nttRp4531\nsS'Y:VBus105 - CPROPR32'\np4532\ng35\n(S'Variable_Type'\n(I2\nttRp4533\nsS'Y:VBus1 - CBONIF11'\np4534\ng35\n(S'Variable_Type'\n(I2\nttRp4535\nsS'Y:VBus12 - CBASTI21'\np4536\ng35\n(S'Variable_Type'\n(I2\nttRp4537\nsS'Y:PMachine129 - CVAZZI310'\np4538\ng35\n(S'Variable_Type'\n(I2\nttRp4539\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np4540\ng35\n(S'Variable_Type'\n(I1\nttRp4541\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np4542\ng35\n(S'Variable_Type'\n(I1\nttRp4543\nsS'Y:VBus54 - CBASTI32'\np4544\ng35\n(S'Variable_Type'\n(I2\nttRp4545\nsS'Y:VBus69 - CCASAM37'\np4546\ng35\n(S'Variable_Type'\n(I2\nttRp4547\nsS'Y:VBus45 - CTOLLA21'\np4548\ng35\n(S'Variable_Type'\n(I2\nttRp4549\nsS'Y:PMachine115 - CTAGLI31'\np4550\ng35\n(S'Variable_Type'\n(I2\nttRp4551\nsS'Y:PMachine77 - CCORTE32'\np4552\ng35\n(S'Variable_Type'\n(I2\nttRp4553\nsS'Y:VBus43 - CSOVEN21'\np4554\ng35\n(S'Variable_Type'\n(I2\nttRp4555\nsS'Y:VBus76 - CCORTE31'\np4556\ng35\n(S'Variable_Type'\n(I2\nttRp4557\nsS'Y:VBus75 - CCORSC31'\np4558\ng35\n(S'Variable_Type'\n(I2\nttRp4559\nsS'Y:PMachine78 - CFURIA31'\np4560\ng35\n(S'Variable_Type'\n(I1\nttRp4561\nsS'Y:VBus127 - CVAZZI38'\np4562\ng35\n(S'Variable_Type'\n(I2\nttRp4563\nsS'Y:VBus115 - CTAGLI31'\np4564\ng35\n(S'Variable_Type'\n(I2\nttRp4565\nsS'Y:Load 61 - CCALVI31'\np4566\ng35\n(S'Variable_Type'\n(I2\nttRp4567\nsS'Y:VBus55 - CBIGUG31'\np4568\ng35\n(S'Variable_Type'\n(I2\nttRp4569\nsS'Y:Load 42 - CSISCO21'\np4570\ng35\n(S'Variable_Type'\n(I2\nttRp4571\nsS'Y:VBus72 - CCASTI31'\np4572\ng35\n(S'Variable_Type'\n(I2\nttRp4573\nsS'Y:Load 37 - CRIZZA21'\np4574\ng35\n(S'Variable_Type'\n(I2\nttRp4575\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np4576\ng35\n(S'Variable_Type'\n(I2\nttRp4577\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np4578\ng35\n(S'Variable_Type'\n(I2\nttRp4579\nsS'Y:PMachine137 - CLUCCI38'\np4580\ng35\n(S'Variable_Type'\n(I1\nttRp4581\nsS'Y:PMachine67 - CCASAM35'\np4582\ng35\n(S'Variable_Type'\n(I2\nttRp4583\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np4584\ng35\n(S'Variable_Type'\n(I1\nttRp4585\nsS'Y:VBus31 - CMOROS21'\np4586\ng35\n(S'Variable_Type'\n(I2\nttRp4587\nsS'Y:VBus103 - CPORTO32'\np4588\ng35\n(S'Variable_Type'\n(I2\nttRp4589\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np4590\ng35\n(S'Variable_Type'\n(I1\nttRp4591\nsS'Y:PMachine128 - CVAZZI39'\np4592\ng35\n(S'Variable_Type'\n(I2\nttRp4593\nsS'Y:PMachine72 - CCASTI31'\np4594\ng35\n(S'Variable_Type'\n(I2\nttRp4595\nsS'Y:VBus27 - CILERO21'\np4596\ng35\n(S'Variable_Type'\n(I2\nttRp4597\nsS'Y:PMachine75 - CCORSC31'\np4598\ng35\n(S'Variable_Type'\n(I2\nttRp4599\nsS'Y:Load 51 - CASPRE31'\np4600\ng35\n(S'Variable_Type'\n(I2\nttRp4601\nsS'Y:PMachine61 - CCALVI31'\np4602\ng35\n(S'Variable_Type'\n(I1\nttRp4603\nsS'Y:VBus51 - CASPRE31'\np4604\ng35\n(S'Variable_Type'\n(I2\nttRp4605\nsS'Y:VBus114 - CSOVEN31'\np4606\ng35\n(S'Variable_Type'\n(I2\nttRp4607\nsS'Y:Load 82 - CILERO31'\np4608\ng35\n(S'Variable_Type'\n(I2\nttRp4609\nsS'Y:VBus116 - CTOLLA31'\np4610\ng35\n(S'Variable_Type'\n(I2\nttRp4611\nsS'Y:Load 86 - CLUCCI31'\np4612\ng35\n(S'Variable_Type'\n(I2\nttRp4613\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np4614\ng35\n(S'Variable_Type'\n(I2\nttRp4615\nsS'Y:Load 57 - CBONIF31'\np4616\ng35\n(S'Variable_Type'\n(I2\nttRp4617\nsS'Y:PMachine104 - CPROPR31'\np4618\ng35\n(S'Variable_Type'\n(I2\nttRp4619\nsS'Y:VBus128 - CVAZZI39'\np4620\ng35\n(S'Variable_Type'\n(I2\nttRp4621\nsS'Y:PMachine136 - CLUCCI37'\np4622\ng35\n(S'Variable_Type'\n(I1\nttRp4623\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np4624\ng35\n(S'Variable_Type'\n(I2\nttRp4625\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np4626\ng35\n(S'Variable_Type'\n(I2\nttRp4627\nsS'Y:PMachine68 - CCASAM36'\np4628\ng35\n(S'Variable_Type'\n(I2\nttRp4629\nsS'Y:PMachine29 - CLUCCI21'\np4630\ng35\n(S'Variable_Type'\n(I1\nttRp4631\nsS'Y:VBus42 - CSISCO21'\np4632\ng35\n(S'Variable_Type'\n(I2\nttRp4633\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np4634\ng35\n(S'Variable_Type'\n(I1\nttRp4635\nsS'Y:VBus14 - CBONIF21'\np4636\ng35\n(S'Variable_Type'\n(I2\nttRp4637\nsS'Y:VBus73 - CCASTI32'\np4638\ng35\n(S'Variable_Type'\n(I2\nttRp4639\nsS'Y:VBus64 - CCASAM32'\np4640\ng35\n(S'Variable_Type'\n(I2\nttRp4641\nsS'Y:PMachine14 - CBONIF21'\np4642\ng35\n(S'Variable_Type'\n(I1\nttRp4643\nsS'Y:PMachine62 - CCALVI32'\np4644\ng35\n(S'Variable_Type'\n(I2\nttRp4645\nsS'Y:VBus133 - CVAZZI314'\np4646\ng35\n(S'Variable_Type'\n(I2\nttRp4647\nsS'Y:VBus63 - CCASAM31'\np4648\ng35\n(S'Variable_Type'\n(I2\nttRp4649\nsS'Y:PMachine101 - CPIETR31'\np4650\ng35\n(S'Variable_Type'\n(I2\nttRp4651\nsS'Y:%Losses'\np4652\ng35\n(S'Variable_Type'\n(I2\nttRp4653\nsS'Y:VBus85 - CLORET32'\np4654\ng35\n(S'Variable_Type'\n(I2\nttRp4655\nsS'Y:Load 59 - CCALDA31'\np4656\ng35\n(S'Variable_Type'\n(I2\nttRp4657\nsS'Y:VBus129 - CVAZZI310'\np4658\ng35\n(S'Variable_Type'\n(I2\nttRp4659\nsS'Y:VBus101 - CPIETR31'\np4660\ng35\n(S'Variable_Type'\n(I2\nttRp4661\nsS'Y:PMachine106 - CRIZZA31'\np4662\ng35\n(S'Variable_Type'\n(I2\nttRp4663\nsS'Y:VBus132 - CVAZZI313'\np4664\ng35\n(S'Variable_Type'\n(I2\nttRp4665\nsS'Y:PMachine118 - CTOLLA33'\np4666\ng35\n(S'Variable_Type'\n(I2\nttRp4667\nsS'Y:VBus19 - CCASTI21'\np4668\ng35\n(S'Variable_Type'\n(I2\nttRp4669\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np4670\ng35\n(S'Variable_Type'\n(I2\nttRp4671\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np4672\ng35\n(S'Variable_Type'\n(I1\nttRp4673\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np4674\ng35\n(S'Variable_Type'\n(I2\nttRp4675\nsS'Y:Load 115 - CTAGLI31'\np4676\ng4405\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np4677\ng35\n(S'Variable_Type'\n(I2\nttRp4678\nsS'Y:VBus79 - CFURIA32'\np4679\ng35\n(S'Variable_Type'\n(I2\nttRp4680\nsS'Y:PMachine47 - CVAZZI21'\np4681\ng35\n(S'Variable_Type'\n(I1\nttRp4682\nsS'Y:VBus123 - CVAZZI34'\np4683\ng35\n(S'Variable_Type'\n(I2\nttRp4684\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np4685\ng35\n(S'Variable_Type'\n(I2\nttRp4686\nsS'Y:VBus60 - CCALDA32'\np4687\ng35\n(S'Variable_Type'\n(I2\nttRp4688\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np4689\ng35\n(S'Variable_Type'\n(I2\nttRp4690\nsS'Y:VBus65 - CCASAM33'\np4691\ng35\n(S'Variable_Type'\n(I2\nttRp4692\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np4693\ng35\n(S'Variable_Type'\n(I1\nttRp4694\nsS'Y:PMachine139 - CLUCCI310'\np4695\ng35\n(S'Variable_Type'\n(I1\nttRp4696\nsS'Y:VBus112 - CSAMPO31'\np4697\ng35\n(S'Variable_Type'\n(I2\nttRp4698\nsS'Y:VBus68 - CCASAM36'\np4699\ng35\n(S'Variable_Type'\n(I2\nttRp4700\nsS'Y:Load 55 - CBIGUG31'\np4701\ng35\n(S'Variable_Type'\n(I2\nttRp4702\nsS'Y:PMachine53 - CBASTI31'\np4703\ng35\n(S'Variable_Type'\n(I2\nttRp4704\nsS'Y:NbeTransit_0.9-1'\np4705\ng35\n(S'Variable_Type'\n(I1\nttRp4706\nsS'Y:VBus24 - CFURIA21'\np4707\ng35\n(S'Variable_Type'\n(I2\nttRp4708\nsS'Y:VBus23 - CCORTE22'\np4709\ng35\n(S'Variable_Type'\n(I2\nttRp4710\nsS'Y:VBus18 - CCASAM21'\np4711\ng35\n(S'Variable_Type'\n(I2\nttRp4712\nsS'Y:VBus40 - CSTMAR21'\np4713\ng35\n(S'Variable_Type'\n(I2\nttRp4714\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np4715\ng35\n(S'Variable_Type'\n(I2\nttRp4716\nsS'Y:PMachine124 - CVAZZI35'\np4717\ng35\n(S'Variable_Type'\n(I2\nttRp4718\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np4719\ng35\n(S'Variable_Type'\n(I2\nttRp4720\nsS'Y:PMachine117 - CTOLLA32'\np4721\ng35\n(S'Variable_Type'\n(I2\nttRp4722\nsS'Y:VBus89 - CLUCCI34'\np4723\ng35\n(S'Variable_Type'\n(I2\nttRp4724\nsS'Y:VBus33 - COLETT21'\np4725\ng35\n(S'Variable_Type'\n(I2\nttRp4726\nsS'Y:VBus32 - COCANA21'\np4727\ng35\n(S'Variable_Type'\n(I2\nttRp4728\nsS'Y:PMachine121 - CVAZZI32'\np4729\ng35\n(S'Variable_Type'\n(I2\nttRp4730\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np4731\ng35\n(S'Variable_Type'\n(I1\nttRp4732\nsS'Y:VBus82 - CILERO31'\np4733\ng35\n(S'Variable_Type'\n(I2\nttRp4734\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np4735\ng35\n(S'Variable_Type'\n(I2\nttRp4736\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np4737\ng35\n(S'Variable_Type'\n(I2\nttRp4738\nsS'Y:VBus37 - CRIZZA21'\np4739\ng35\n(S'Variable_Type'\n(I2\nttRp4740\nsS'Y:PMachine73 - CCASTI32'\np4741\ng35\n(S'Variable_Type'\n(I2\nttRp4742\nsS'Y:PMachine86 - CLUCCI31'\np4743\ng35\n(S'Variable_Type'\n(I2\nttRp4744\nsS'Y:Load 53 - CBASTI31'\np4745\ng35\n(S'Variable_Type'\n(I2\nttRp4746\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np4747\ng35\n(S'Variable_Type'\n(I2\nttRp4748\nsS'Y:VBus21 - CCORSC21'\np4749\ng35\n(S'Variable_Type'\n(I2\nttRp4750\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np4751\ng35\n(S'Variable_Type'\n(I2\nttRp4752\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np4753\ng35\n(S'Variable_Type'\n(I2\nttRp4754\nsS'Y:PMachine126 - CVAZZI37'\np4755\ng35\n(S'Variable_Type'\n(I2\nttRp4756\nsS'Y:PMachine64 - CCASAM32'\np4757\ng35\n(S'Variable_Type'\n(I2\nttRp4758\nsS'Y:VBus67 - CCASAM35'\np4759\ng35\n(S'Variable_Type'\n(I2\nttRp4760\nsS'Y:VBus53 - CBASTI31'\np4761\ng35\n(S'Variable_Type'\n(I2\nttRp4762\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np4763\ng35\n(S'Variable_Type'\n(I2\nttRp4764\nsS'Y:VBus61 - CCALVI31'\np4765\ng35\n(S'Variable_Type'\n(I2\nttRp4766\nsS'Y:VBus93 - COCANA32'\np4767\ng35\n(S'Variable_Type'\n(I2\nttRp4768\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np4769\ng35\n(S'Variable_Type'\n(I2\nttRp4770\nsS'Y:VBus104 - CPROPR31'\np4771\ng35\n(S'Variable_Type'\n(I2\nttRp4772\nsS'Y:VBus22 - CCORTE21'\np4773\ng35\n(S'Variable_Type'\n(I2\nttRp4774\nsS'Y:VBus48 - CZSSS621'\np4775\ng35\n(S'Variable_Type'\n(I2\nttRp4776\nsS'Y:PMachine85 - CLORET32'\np4777\ng35\n(S'Variable_Type'\n(I2\nttRp4778\nsS'Y:Max%A'\np4779\ng35\n(S'Variable_Type'\n(I2\nttRp4780\nsS'Y:VBus36 - CPROPR21'\np4781\ng35\n(S'Variable_Type'\n(I2\nttRp4782\nsS'Y:Load 100 - COLETT31'\np4783\ng35\n(S'Variable_Type'\n(I2\nttRp4784\nsS'Y:PMachine54 - CBASTI32'\np4785\ng35\n(S'Variable_Type'\n(I2\nttRp4786\nsS'Y:VBus138 - CLUCCI39'\np4787\ng35\n(S'Variable_Type'\n(I2\nttRp4788\nsS'Y:VBus39 - CSTLUC21'\np4789\ng35\n(S'Variable_Type'\n(I2\nttRp4790\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np4791\ng35\n(S'Variable_Type'\n(I2\nttRp4792\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np4793\ng35\n(S'Variable_Type'\n(I2\nttRp4794\nsS'Y:Load 78 - CFURIA31'\np4795\ng35\n(S'Variable_Type'\n(I2\nttRp4796\nsS'Y:Load 74 - CCERVI31'\np4797\ng35\n(S'Variable_Type'\n(I2\nttRp4798\nsS'Y:VBus28 - CLORET21'\np4799\ng35\n(S'Variable_Type'\n(I2\nttRp4800\nsS'Y:PMachine105 - CPROPR32'\np4801\ng35\n(S'Variable_Type'\n(I2\nttRp4802\nsS'Y:VBus96 - COCANA35'\np4803\ng35\n(S'Variable_Type'\n(I2\nttRp4804\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np4805\ng35\n(S'Variable_Type'\n(I1\nttRp4806\nsS'Y:PMachine18 - CCASAM21'\np4807\ng35\n(S'Variable_Type'\n(I1\nttRp4808\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np4809\ng35\n(S'Variable_Type'\n(I2\nttRp4810\nsS'Y:VBus13 - CBIGUG21'\np4811\ng35\n(S'Variable_Type'\n(I2\nttRp4812\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np4813\ng35\n(S'Variable_Type'\n(I2\nttRp4814\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np4815\ng35\n(S'Variable_Type'\n(I2\nttRp4816\nsS'Y:VBus29 - CLUCCI21'\np4817\ng35\n(S'Variable_Type'\n(I2\nttRp4818\nsS'Y:VBus58 - CBONIF32'\np4819\ng35\n(S'Variable_Type'\n(I2\nttRp4820\nsS'Y:VBus84 - CLORET31'\np4821\ng35\n(S'Variable_Type'\n(I2\nttRp4822\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np4823\ng35\n(S'Variable_Type'\n(I1\nttRp4824\nsS'Y:VBus97 - COCANA36'\np4825\ng35\n(S'Variable_Type'\n(I2\nttRp4826\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np4827\ng35\n(S'Variable_Type'\n(I1\nttRp4828\nsS'Y:VBus15 - CBONIF22'\np4829\ng35\n(S'Variable_Type'\n(I2\nttRp4830\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np4831\ng35\n(S'Variable_Type'\n(I2\nttRp4832\nsS'Y:Load 110 - CSTLUC31'\np4833\ng35\n(S'Variable_Type'\n(I2\nttRp4834\nsS'Y:VBus80 - CGHISO31'\np4835\ng35\n(S'Variable_Type'\n(I2\nttRp4836\nsS'Y:PMachine114 - CSOVEN31'\np4837\ng35\n(S'Variable_Type'\n(I2\nttRp4838\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np4839\ng35\n(S'Variable_Type'\n(I1\nttRp4840\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np4841\ng35\n(S'Variable_Type'\n(I2\nttRp4842\nsS'Y:PMachine93 - COCANA32'\np4843\ng35\n(S'Variable_Type'\n(I2\nttRp4844\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np4845\ng35\n(S'Variable_Type'\n(I1\nttRp4846\nsS'Y:VBus87 - CLUCCI32'\np4847\ng35\n(S'Variable_Type'\n(I2\nttRp4848\nsS'Y:VBus62 - CCALVI32'\np4849\ng35\n(S'Variable_Type'\n(I2\nttRp4850\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np4851\ng35\n(S'Variable_Type'\n(I1\nttRp4852\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np4853\ng35\n(S'Variable_Type'\n(I1\nttRp4854\nsS'Y:VBus81 - CGHISO32'\np4855\ng35\n(S'Variable_Type'\n(I2\nttRp4856\nsS'Y:PMachine74 - CCERVI31'\np4857\ng35\n(S'Variable_Type'\n(I2\nttRp4858\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np4859\ng35\n(S'Variable_Type'\n(I2\nttRp4860\nsS'EOL_ALL'\np4861\ng35\n(S'Variable_Type'\n(I2\nttRp4862\nsS'X:Load(pu)'\np4863\ng4401\nsS'Y:NbeTension'\np4864\ng35\n(S'Variable_Type'\n(I2\nttRp4865\nsS'Y:VBus95 - COCANA34'\np4866\ng35\n(S'Variable_Type'\n(I2\nttRp4867\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np4868\ng35\n(S'Variable_Type'\n(I2\nttRp4869\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np4870\ng35\n(S'Variable_Type'\n(I2\nttRp4871\nsS'Y:Load 95 - COCANA34'\np4872\ng35\n(S'Variable_Type'\n(I2\nttRp4873\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np4874\ng35\n(S'Variable_Type'\n(I1\nttRp4875\nsS'Y:PMachine90 - CMOROS31'\np4876\ng35\n(S'Variable_Type'\n(I2\nttRp4877\nsS'Y:Load 101 - CPIETR31'\np4878\ng35\n(S'Variable_Type'\n(I2\nttRp4879\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np4880\ng35\n(S'Variable_Type'\n(I1\nttRp4881\nsS'Y:PMachine132 - CVAZZI313'\np4882\ng35\n(S'Variable_Type'\n(I2\nttRp4883\nsS'Y:VBus125 - CVAZZI36'\np4884\ng35\n(S'Variable_Type'\n(I2\nttRp4885\nsS'Y:VBus135 - CLUCCI36'\np4886\ng35\n(S'Variable_Type'\n(I2\nttRp4887\nsS'Y:VBus47 - CVAZZI21'\np4888\ng35\n(S'Variable_Type'\n(I2\nttRp4889\nsS'Y:VBus94 - COCANA33'\np4890\ng35\n(S'Variable_Type'\n(I2\nttRp4891\nsS'Y:VBus17 - CCALVI21'\np4892\ng35\n(S'Variable_Type'\n(I2\nttRp4893\nsS'Y:Load 90 - CMOROS31'\np4894\ng35\n(S'Variable_Type'\n(I2\nttRp4895\nsS'Y:VBus120 - CVAZZI31'\np4896\ng35\n(S'Variable_Type'\n(I2\nttRp4897\nsS'X:ProdPV%Pnom'\np4898\ng35\n(S'Variable_Type'\n(I2\nttRp4899\nsS'Y:VBus52 - CASPRE32'\np4900\ng35\n(S'Variable_Type'\n(I2\nttRp4901\nsS'Y:VBus25 - CFURIA22'\np4902\ng35\n(S'Variable_Type'\n(I2\nttRp4903\nsS'Y:Load 76 - CCORTE31'\np4904\ng35\n(S'Variable_Type'\n(I2\nttRp4905\nsS'Y:PMachine69 - CCASAM37'\np4906\ng35\n(S'Variable_Type'\n(I2\nttRp4907\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np4908\ng35\n(S'Variable_Type'\n(I2\nttRp4909\nsS'Y:PMachine92 - COCANA31'\np4910\ng35\n(S'Variable_Type'\n(I2\nttRp4911\nsS'Y:VBus35 - CPORTO21'\np4912\ng35\n(S'Variable_Type'\n(I2\nttRp4913\nsS'Y:PMachine122 - CVAZZI33'\np4914\ng35\n(S'Variable_Type'\n(I2\nttRp4915\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np4916\ng35\n(S'Variable_Type'\n(I1\nttRp4917\nsS'Y:PMachine63 - CCASAM31'\np4918\ng35\n(S'Variable_Type'\n(I2\nttRp4919\nsS'Y:VBus74 - CCERVI31'\np4920\ng35\n(S'Variable_Type'\n(I2\nttRp4921\nsS'Y:VBus126 - CVAZZI37'\np4922\ng35\n(S'Variable_Type'\n(I2\nttRp4923\nsS'Y:PMachine60 - CCALDA32'\np4924\ng35\n(S'Variable_Type'\n(I2\nttRp4925\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np4926\ng35\n(S'Variable_Type'\n(I1\nttRp4927\nsS'Y:VBus20 - CCERVI21'\np4928\ng35\n(S'Variable_Type'\n(I2\nttRp4929\nsS'Y:VBus119 - CTRAVO31'\np4930\ng35\n(S'Variable_Type'\n(I2\nttRp4931\nsS'Y:VBus11 - CASPRE21'\np4932\ng35\n(S'Variable_Type'\n(I2\nttRp4933\nsS'Y:VBus139 - CLUCCI310'\np4934\ng35\n(S'Variable_Type'\n(I2\nttRp4935\nsS'Y:VBus106 - CRIZZA31'\np4936\ng35\n(S'Variable_Type'\n(I2\nttRp4937\nsS'Y:PMachine66 - CCASAM34'\np4938\ng35\n(S'Variable_Type'\n(I2\nttRp4939\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np4940\ng35\n(S'Variable_Type'\n(I2\nttRp4941\nsS'Y:VBus136 - CLUCCI37'\np4942\ng35\n(S'Variable_Type'\n(I2\nttRp4943\nsS'Y:VBus90 - CMOROS31'\np4944\ng35\n(S'Variable_Type'\n(I2\nttRp4945\nsS'PV_ALL'\np4946\ng35\n(S'Variable_Type'\n(I2\nttRp4947\nsS'X:lineOff#'\np4948\ng35\n(S'Variable_Type'\n(I2\nttRp4949\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np4950\ng35\n(S'Variable_Type'\n(I2\nttRp4951\nsS'Y:VBus108 - CSAGON31'\np4952\ng35\n(S'Variable_Type'\n(I2\nttRp4953\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np4954\ng35\n(S'Variable_Type'\n(I2\nttRp4955\nsS'Y:VBus137 - CLUCCI38'\np4956\ng35\n(S'Variable_Type'\n(I2\nttRp4957\nsS'Y:VBus130 - CVAZZI311'\np4958\ng35\n(S'Variable_Type'\n(I2\nttRp4959\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np4960\ng35\n(S'Variable_Type'\n(I2\nttRp4961\nsS'Y:VBus46 - CTRAVO21'\np4962\ng35\n(S'Variable_Type'\n(I2\nttRp4963\nsS'Y:VBus113 - CSAMPO32'\np4964\ng35\n(S'Variable_Type'\n(I2\nttRp4965\nsS'Y:PMachine133 - CVAZZI314'\np4966\ng35\n(S'Variable_Type'\n(I2\nttRp4967\nsS'Y:PMachine65 - CCASAM33'\np4968\ng35\n(S'Variable_Type'\n(I2\nttRp4969\nsS'Y:VBus78 - CFURIA31'\np4970\ng35\n(S'Variable_Type'\n(I2\nttRp4971\nsS'Y:VBus26 - CGHISO21'\np4972\ng35\n(S'Variable_Type'\n(I2\nttRp4973\nsS'Y:VBus121 - CVAZZI32'\np4974\ng35\n(S'Variable_Type'\n(I2\nttRp4975\nsS'Y:PMachine97 - COCANA36'\np4976\ng35\n(S'Variable_Type'\n(I2\nttRp4977\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np4978\ng35\n(S'Variable_Type'\n(I2\nttRp4979\nsS'Y:PMachine83 - CILERO32'\np4980\ng35\n(S'Variable_Type'\n(I2\nttRp4981\nsS'Y:VBus83 - CILERO32'\np4982\ng35\n(S'Variable_Type'\n(I2\nttRp4983\nsS'Y:VBus66 - CCASAM34'\np4984\ng35\n(S'Variable_Type'\n(I2\nttRp4985\nsS'Y:PMachine1 - CBONIF11'\np4986\ng35\n(S'Variable_Type'\n(I2\nttRp4987\nsS'Y:VBus111 - CSTMAR31'\np4988\ng35\n(S'Variable_Type'\n(I2\nttRp4989\nsS'Y:VBus124 - CVAZZI35'\np4990\ng35\n(S'Variable_Type'\n(I2\nttRp4991\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np4992\ng35\n(S'Variable_Type'\n(I2\nttRp4993\nsS'Y:PMachine131 - CVAZZI312'\np4994\ng35\n(S'Variable_Type'\n(I2\nttRp4995\nsS'Y:VBus44 - CTAGLI21'\np4996\ng35\n(S'Variable_Type'\n(I2\nttRp4997\nsS'Y:VBus88 - CLUCCI33'\np4998\ng35\n(S'Variable_Type'\n(I2\nttRp4999\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np5000\ng35\n(S'Variable_Type'\n(I1\nttRp5001\nsS'Y:VBus38 - CSAGON21'\np5002\ng35\n(S'Variable_Type'\n(I2\nttRp5003\nsS'Y:PMachine81 - CGHISO32'\np5004\ng35\n(S'Variable_Type'\n(I2\nttRp5005\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np5006\ng35\n(S'Variable_Type'\n(I2\nttRp5007\nsS'Y:VBus110 - CSTLUC31'\np5008\ng35\n(S'Variable_Type'\n(I2\nttRp5009\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np5010\ng35\n(S'Variable_Type'\n(I2\nttRp5011\nssg650\n(lp5012\ng652\nasba(iOWContexts\nContext\np5013\n(dp5014\ng24\n(lp5015\nsg26\n(dp5016\nsg28\n(dp5017\ng1897\n(S''\nI-1\ntp5018\nsg1899\n(S''\nI0\ntp5019\nsg1901\n(g1281\ng35\n(S'Variable_Type'\n(I2\nttRp5020\ntp5021\nsg1904\n(g1284\ng5020\ntp5022\nsg1906\n(S''\nI0\ntp5023\nsg1908\n(g1287\ng35\n(S'Variable_Type'\n(I2\nttRp5024\ntp5025\nssg46\nF1369994938.898\nsg47\n(dp5026\nS'Y:PMachine134 - CLUCCI35'\np5027\ng35\n(S'Variable_Type'\n(I1\nttRp5028\nsS'Y:VBus77 - CCORTE32'\np5029\ng35\n(S'Variable_Type'\n(I2\nttRp5030\nsS'Y:VBus134 - CLUCCI35'\np5031\ng35\n(S'Variable_Type'\n(I2\nttRp5032\nsS'Y:VBus109 - CSAGON32'\np5033\ng35\n(S'Variable_Type'\n(I2\nttRp5034\nsS'Y:VBus102 - CPORTO31'\np5035\ng35\n(S'Variable_Type'\n(I2\nttRp5036\nsS'XProdEolienne%Pnom'\np5037\ng35\n(S'Variable_Type'\n(I1\nttRp5038\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np5039\ng35\n(S'Variable_Type'\n(I2\nttRp5040\nsS'Y:PMachine94 - COCANA33'\np5041\ng35\n(S'Variable_Type'\n(I2\nttRp5042\nsS'Y:VBus117 - CTOLLA32'\np5043\ng35\n(S'Variable_Type'\n(I2\nttRp5044\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np5045\ng35\n(S'Variable_Type'\n(I2\nttRp5046\nsS'Y:PMachine87 - CLUCCI32'\np5047\ng35\n(S'Variable_Type'\n(I2\nttRp5048\nsS'Y:PMachine113 - CSAMPO32'\np5049\ng35\n(S'Variable_Type'\n(I2\nttRp5050\nsS'Y:Load 84 - CLORET31'\np5051\ng35\n(S'Variable_Type'\n(I2\nttRp5052\nsS'Y:PMachine89 - CLUCCI34'\np5053\ng35\n(S'Variable_Type'\n(I1\nttRp5054\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np5055\ng35\n(S'Variable_Type'\n(I2\nttRp5056\nsS'Y:Load 80 - CGHISO31'\np5057\ng35\n(S'Variable_Type'\n(I2\nttRp5058\nsS'Y:PMachine125 - CVAZZI36'\np5059\ng35\n(S'Variable_Type'\n(I2\nttRp5060\nsS'Y:PMachine116 - CTOLLA31'\np5061\ng35\n(S'Variable_Type'\n(I2\nttRp5062\nsS'Y:PMachine88 - CLUCCI33'\np5063\ng35\n(S'Variable_Type'\n(I1\nttRp5064\nsS'Y:PMachine120 - CVAZZI31'\np5065\ng35\n(S'Variable_Type'\n(I2\nttRp5066\nsS'Y:PMachine111 - CSTMAR31'\np5067\ng35\n(S'Variable_Type'\n(I2\nttRp5068\nsS'Y:NbeTransit'\np5069\ng35\n(S'Variable_Type'\n(I1\nttRp5070\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np5071\ng35\n(S'Variable_Type'\n(I2\nttRp5072\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np5073\ng35\n(S'Variable_Type'\n(I2\nttRp5074\nsS'Y:VBus92 - COCANA31'\np5075\ng35\n(S'Variable_Type'\n(I2\nttRp5076\nsS'Y:PMachine130 - CVAZZI311'\np5077\ng35\n(S'Variable_Type'\n(I2\nttRp5078\nsS'Y:PMachine127 - CVAZZI38'\np5079\ng35\n(S'Variable_Type'\n(I2\nttRp5080\nsS'Y:VBus131 - CVAZZI312'\np5081\ng35\n(S'Variable_Type'\n(I2\nttRp5082\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np5083\ng35\n(S'Variable_Type'\n(I2\nttRp5084\nsS'Y:PMachine123 - CVAZZI34'\np5085\ng35\n(S'Variable_Type'\n(I2\nttRp5086\nsS'Y:VBus118 - CTOLLA33'\np5087\ng35\n(S'Variable_Type'\n(I2\nttRp5088\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np5089\ng35\n(S'Variable_Type'\n(I1\nttRp5090\nsS'Y:PMachine58 - CBONIF32'\np5091\ng35\n(S'Variable_Type'\n(I2\nttRp5092\nsS'Y:Load 104 - CPROPR31'\np5093\ng35\n(S'Variable_Type'\n(I2\nttRp5094\nsS'Y:PMachine30 - CLUCCI22'\np5095\ng35\n(S'Variable_Type'\n(I1\nttRp5096\nsS'Y:VBus100 - COLETT31'\np5097\ng35\n(S'Variable_Type'\n(I2\nttRp5098\nsS'Y:PProdTot'\np5099\ng35\n(S'Variable_Type'\n(I2\nttRp5100\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np5101\ng35\n(S'Variable_Type'\n(I1\nttRp5102\nsS'Y:VBus57 - CBONIF31'\np5103\ng35\n(S'Variable_Type'\n(I2\nttRp5104\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np5105\ng35\n(S'Variable_Type'\n(I2\nttRp5106\nsS'Y:PConsoTot'\np5107\ng35\n(S'Variable_Type'\n(I2\nttRp5108\nsS'Iteration'\np5109\ng35\n(S'Variable_Type'\n(I2\nttRp5110\nsS'Y:PMachine109 - CSAGON32'\np5111\ng35\n(S'Variable_Type'\n(I2\nttRp5112\nsS'Y:PMachine135 - CLUCCI36'\np5113\ng35\n(S'Variable_Type'\n(I1\nttRp5114\nsS'Y:VBus30 - CLUCCI22'\np5115\ng35\n(S'Variable_Type'\n(I2\nttRp5116\nsS'Y:VBus122 - CVAZZI33'\np5117\ng35\n(S'Variable_Type'\n(I2\nttRp5118\nsS'Y:VBus86 - CLUCCI31'\np5119\ng35\n(S'Variable_Type'\n(I2\nttRp5120\nsS'Y:VBus35 - CPORTO21'\np5121\ng35\n(S'Variable_Type'\n(I2\nttRp5122\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np5123\ng35\n(S'Variable_Type'\n(I1\nttRp5124\nsS'Y:PMachine107 - CRIZZA32'\np5125\ng35\n(S'Variable_Type'\n(I2\nttRp5126\nsS'Y:VBus16 - CCALDA21'\np5127\ng35\n(S'Variable_Type'\n(I2\nttRp5128\nsS'Y:Load 102 - CPORTO31'\np5129\ng35\n(S'Variable_Type'\n(I2\nttRp5130\nsS'Y:VBus107 - CRIZZA32'\np5131\ng35\n(S'Variable_Type'\n(I2\nttRp5132\nsS'Y:VBus59 - CCALDA31'\np5133\ng35\n(S'Variable_Type'\n(I2\nttRp5134\nsS'Y:VBus41 - CSAMPO21'\np5135\ng35\n(S'Variable_Type'\n(I2\nttRp5136\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np5137\ng35\n(S'Variable_Type'\n(I2\nttRp5138\nsS'Y:VBus34 - CPIETR21'\np5139\ng35\n(S'Variable_Type'\n(I2\nttRp5140\nsS'Y:Load 108 - CSAGON31'\np5141\ng35\n(S'Variable_Type'\n(I2\nttRp5142\nsS'Y:VBus56 - CBIGUG32'\np5143\ng35\n(S'Variable_Type'\n(I2\nttRp5144\nsS'Y:PMachine42 - CSISCO21'\np5145\ng35\n(S'Variable_Type'\n(I2\nttRp5146\nsS'Y:PMachine138 - CLUCCI39'\np5147\ng35\n(S'Variable_Type'\n(I1\nttRp5148\nsS'Y:PMachine112 - CSAMPO31'\np5149\ng35\n(S'Variable_Type'\n(I2\nttRp5150\nsS'Y:VBus105 - CPROPR32'\np5151\ng35\n(S'Variable_Type'\n(I2\nttRp5152\nsS'Y:VBus1 - CBONIF11'\np5153\ng35\n(S'Variable_Type'\n(I2\nttRp5154\nsS'Y:VBus12 - CBASTI21'\np5155\ng35\n(S'Variable_Type'\n(I2\nttRp5156\nsS'Y:PMachine129 - CVAZZI310'\np5157\ng35\n(S'Variable_Type'\n(I2\nttRp5158\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np5159\ng35\n(S'Variable_Type'\n(I1\nttRp5160\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np5161\ng35\n(S'Variable_Type'\n(I1\nttRp5162\nsS'Y:VBus54 - CBASTI32'\np5163\ng35\n(S'Variable_Type'\n(I2\nttRp5164\nsS'Y:VBus69 - CCASAM37'\np5165\ng35\n(S'Variable_Type'\n(I2\nttRp5166\nsS'Y:VBus45 - CTOLLA21'\np5167\ng35\n(S'Variable_Type'\n(I2\nttRp5168\nsS'Y:PMachine115 - CTAGLI31'\np5169\ng35\n(S'Variable_Type'\n(I2\nttRp5170\nsS'Y:PMachine77 - CCORTE32'\np5171\ng35\n(S'Variable_Type'\n(I2\nttRp5172\nsS'Y:VBus43 - CSOVEN21'\np5173\ng35\n(S'Variable_Type'\n(I2\nttRp5174\nsS'Y:VBus76 - CCORTE31'\np5175\ng35\n(S'Variable_Type'\n(I2\nttRp5176\nsS'Y:VBus75 - CCORSC31'\np5177\ng35\n(S'Variable_Type'\n(I2\nttRp5178\nsS'Y:PMachine78 - CFURIA31'\np5179\ng35\n(S'Variable_Type'\n(I1\nttRp5180\nsS'Y:VBus127 - CVAZZI38'\np5181\ng35\n(S'Variable_Type'\n(I2\nttRp5182\nsS'Y:VBus115 - CTAGLI31'\np5183\ng35\n(S'Variable_Type'\n(I2\nttRp5184\nsS'Y:Load 61 - CCALVI31'\np5185\ng35\n(S'Variable_Type'\n(I2\nttRp5186\nsS'Y:VBus55 - CBIGUG31'\np5187\ng35\n(S'Variable_Type'\n(I2\nttRp5188\nsS'Y:Load 42 - CSISCO21'\np5189\ng35\n(S'Variable_Type'\n(I2\nttRp5190\nsS'Y:VBus72 - CCASTI31'\np5191\ng35\n(S'Variable_Type'\n(I2\nttRp5192\nsS'Y:Load 37 - CRIZZA21'\np5193\ng35\n(S'Variable_Type'\n(I2\nttRp5194\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np5195\ng35\n(S'Variable_Type'\n(I2\nttRp5196\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np5197\ng35\n(S'Variable_Type'\n(I2\nttRp5198\nsS'Y:PMachine137 - CLUCCI38'\np5199\ng35\n(S'Variable_Type'\n(I1\nttRp5200\nsS'Y:PMachine67 - CCASAM35'\np5201\ng35\n(S'Variable_Type'\n(I2\nttRp5202\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np5203\ng35\n(S'Variable_Type'\n(I1\nttRp5204\nsS'Y:VBus31 - CMOROS21'\np5205\ng35\n(S'Variable_Type'\n(I2\nttRp5206\nsS'Y:VBus103 - CPORTO32'\np5207\ng35\n(S'Variable_Type'\n(I2\nttRp5208\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np5209\ng35\n(S'Variable_Type'\n(I1\nttRp5210\nsS'Y:PMachine128 - CVAZZI39'\np5211\ng35\n(S'Variable_Type'\n(I2\nttRp5212\nsS'Y:PMachine72 - CCASTI31'\np5213\ng35\n(S'Variable_Type'\n(I2\nttRp5214\nsS'Y:VBus27 - CILERO21'\np5215\ng35\n(S'Variable_Type'\n(I2\nttRp5216\nsS'Y:PMachine75 - CCORSC31'\np5217\ng35\n(S'Variable_Type'\n(I2\nttRp5218\nsS'Y:Load 51 - CASPRE31'\np5219\ng35\n(S'Variable_Type'\n(I2\nttRp5220\nsS'Y:PMachine61 - CCALVI31'\np5221\ng35\n(S'Variable_Type'\n(I1\nttRp5222\nsS'Y:VBus51 - CASPRE31'\np5223\ng35\n(S'Variable_Type'\n(I2\nttRp5224\nsS'Y:VBus114 - CSOVEN31'\np5225\ng35\n(S'Variable_Type'\n(I2\nttRp5226\nsS'Y:Load 82 - CILERO31'\np5227\ng35\n(S'Variable_Type'\n(I2\nttRp5228\nsS'Y:VBus116 - CTOLLA31'\np5229\ng35\n(S'Variable_Type'\n(I2\nttRp5230\nsS'Y:Load 86 - CLUCCI31'\np5231\ng35\n(S'Variable_Type'\n(I2\nttRp5232\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np5233\ng35\n(S'Variable_Type'\n(I2\nttRp5234\nsS'Y:Load 57 - CBONIF31'\np5235\ng35\n(S'Variable_Type'\n(I2\nttRp5236\nsS'Y:PMachine104 - CPROPR31'\np5237\ng35\n(S'Variable_Type'\n(I2\nttRp5238\nsS'Y:VBus128 - CVAZZI39'\np5239\ng35\n(S'Variable_Type'\n(I2\nttRp5240\nsS'Y:PMachine136 - CLUCCI37'\np5241\ng35\n(S'Variable_Type'\n(I1\nttRp5242\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np5243\ng35\n(S'Variable_Type'\n(I2\nttRp5244\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np5245\ng35\n(S'Variable_Type'\n(I2\nttRp5246\nsS'Y:PMachine68 - CCASAM36'\np5247\ng35\n(S'Variable_Type'\n(I2\nttRp5248\nsS'Y:PMachine29 - CLUCCI21'\np5249\ng35\n(S'Variable_Type'\n(I1\nttRp5250\nsS'Y:VBus42 - CSISCO21'\np5251\ng35\n(S'Variable_Type'\n(I2\nttRp5252\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np5253\ng35\n(S'Variable_Type'\n(I1\nttRp5254\nsS'Y:VBus14 - CBONIF21'\np5255\ng35\n(S'Variable_Type'\n(I2\nttRp5256\nsS'Y:VBus73 - CCASTI32'\np5257\ng35\n(S'Variable_Type'\n(I2\nttRp5258\nsS'Y:VBus64 - CCASAM32'\np5259\ng35\n(S'Variable_Type'\n(I2\nttRp5260\nsS'Y:PMachine14 - CBONIF21'\np5261\ng35\n(S'Variable_Type'\n(I1\nttRp5262\nsS'Y:PMachine62 - CCALVI32'\np5263\ng35\n(S'Variable_Type'\n(I2\nttRp5264\nsS'Y:VBus133 - CVAZZI314'\np5265\ng35\n(S'Variable_Type'\n(I2\nttRp5266\nsS'Y:VBus63 - CCASAM31'\np5267\ng35\n(S'Variable_Type'\n(I2\nttRp5268\nsS'Y:PMachine101 - CPIETR31'\np5269\ng35\n(S'Variable_Type'\n(I2\nttRp5270\nsS'Y:%Losses'\np5271\ng35\n(S'Variable_Type'\n(I2\nttRp5272\nsS'Y:VBus85 - CLORET32'\np5273\ng35\n(S'Variable_Type'\n(I2\nttRp5274\nsS'Y:Load 59 - CCALDA31'\np5275\ng35\n(S'Variable_Type'\n(I2\nttRp5276\nsS'Y:VBus129 - CVAZZI310'\np5277\ng35\n(S'Variable_Type'\n(I2\nttRp5278\nsS'Y:VBus101 - CPIETR31'\np5279\ng35\n(S'Variable_Type'\n(I2\nttRp5280\nsS'Y:PMachine106 - CRIZZA31'\np5281\ng35\n(S'Variable_Type'\n(I2\nttRp5282\nsS'Y:VBus132 - CVAZZI313'\np5283\ng35\n(S'Variable_Type'\n(I2\nttRp5284\nsS'Y:PMachine118 - CTOLLA33'\np5285\ng35\n(S'Variable_Type'\n(I2\nttRp5286\nsS'Y:VBus19 - CCASTI21'\np5287\ng35\n(S'Variable_Type'\n(I2\nttRp5288\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np5289\ng35\n(S'Variable_Type'\n(I2\nttRp5290\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np5291\ng35\n(S'Variable_Type'\n(I1\nttRp5292\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np5293\ng35\n(S'Variable_Type'\n(I2\nttRp5294\nsS'Y:Load 115 - CTAGLI31'\np5295\ng5024\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np5296\ng35\n(S'Variable_Type'\n(I2\nttRp5297\nsS'Y:VBus79 - CFURIA32'\np5298\ng35\n(S'Variable_Type'\n(I2\nttRp5299\nsS'Y:PMachine47 - CVAZZI21'\np5300\ng35\n(S'Variable_Type'\n(I1\nttRp5301\nsS'Y:VBus123 - CVAZZI34'\np5302\ng35\n(S'Variable_Type'\n(I2\nttRp5303\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np5304\ng35\n(S'Variable_Type'\n(I2\nttRp5305\nsS'Y:VBus60 - CCALDA32'\np5306\ng35\n(S'Variable_Type'\n(I2\nttRp5307\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np5308\ng35\n(S'Variable_Type'\n(I2\nttRp5309\nsS'Y:VBus65 - CCASAM33'\np5310\ng35\n(S'Variable_Type'\n(I2\nttRp5311\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np5312\ng35\n(S'Variable_Type'\n(I1\nttRp5313\nsS'Y:PMachine139 - CLUCCI310'\np5314\ng35\n(S'Variable_Type'\n(I1\nttRp5315\nsS'Y:VBus112 - CSAMPO31'\np5316\ng35\n(S'Variable_Type'\n(I2\nttRp5317\nsS'Y:VBus68 - CCASAM36'\np5318\ng35\n(S'Variable_Type'\n(I2\nttRp5319\nsS'Y:Load 55 - CBIGUG31'\np5320\ng35\n(S'Variable_Type'\n(I2\nttRp5321\nsS'Y:PMachine53 - CBASTI31'\np5322\ng35\n(S'Variable_Type'\n(I2\nttRp5323\nsS'Y:NbeTransit_0.9-1'\np5324\ng35\n(S'Variable_Type'\n(I1\nttRp5325\nsS'Y:VBus24 - CFURIA21'\np5326\ng35\n(S'Variable_Type'\n(I2\nttRp5327\nsS'Y:VBus23 - CCORTE22'\np5328\ng35\n(S'Variable_Type'\n(I2\nttRp5329\nsS'Y:VBus18 - CCASAM21'\np5330\ng35\n(S'Variable_Type'\n(I2\nttRp5331\nsS'Y:VBus40 - CSTMAR21'\np5332\ng35\n(S'Variable_Type'\n(I2\nttRp5333\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np5334\ng35\n(S'Variable_Type'\n(I2\nttRp5335\nsS'Y:PMachine124 - CVAZZI35'\np5336\ng35\n(S'Variable_Type'\n(I2\nttRp5337\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np5338\ng35\n(S'Variable_Type'\n(I2\nttRp5339\nsS'Y:PMachine117 - CTOLLA32'\np5340\ng35\n(S'Variable_Type'\n(I2\nttRp5341\nsS'Y:VBus89 - CLUCCI34'\np5342\ng35\n(S'Variable_Type'\n(I2\nttRp5343\nsS'Y:VBus33 - COLETT21'\np5344\ng35\n(S'Variable_Type'\n(I2\nttRp5345\nsS'Y:VBus32 - COCANA21'\np5346\ng35\n(S'Variable_Type'\n(I2\nttRp5347\nsS'Y:PMachine121 - CVAZZI32'\np5348\ng35\n(S'Variable_Type'\n(I2\nttRp5349\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np5350\ng35\n(S'Variable_Type'\n(I1\nttRp5351\nsS'Y:VBus82 - CILERO31'\np5352\ng35\n(S'Variable_Type'\n(I2\nttRp5353\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np5354\ng35\n(S'Variable_Type'\n(I2\nttRp5355\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np5356\ng35\n(S'Variable_Type'\n(I2\nttRp5357\nsS'Y:VBus37 - CRIZZA21'\np5358\ng35\n(S'Variable_Type'\n(I2\nttRp5359\nsS'Y:PMachine73 - CCASTI32'\np5360\ng35\n(S'Variable_Type'\n(I2\nttRp5361\nsS'Y:PMachine86 - CLUCCI31'\np5362\ng35\n(S'Variable_Type'\n(I2\nttRp5363\nsS'Y:Load 53 - CBASTI31'\np5364\ng35\n(S'Variable_Type'\n(I2\nttRp5365\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np5366\ng35\n(S'Variable_Type'\n(I2\nttRp5367\nsS'Y:VBus21 - CCORSC21'\np5368\ng35\n(S'Variable_Type'\n(I2\nttRp5369\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np5370\ng35\n(S'Variable_Type'\n(I2\nttRp5371\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np5372\ng35\n(S'Variable_Type'\n(I2\nttRp5373\nsS'Y:PMachine126 - CVAZZI37'\np5374\ng35\n(S'Variable_Type'\n(I2\nttRp5375\nsS'Y:PMachine64 - CCASAM32'\np5376\ng35\n(S'Variable_Type'\n(I2\nttRp5377\nsS'Y:VBus67 - CCASAM35'\np5378\ng35\n(S'Variable_Type'\n(I2\nttRp5379\nsS'Y:VBus53 - CBASTI31'\np5380\ng35\n(S'Variable_Type'\n(I2\nttRp5381\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np5382\ng35\n(S'Variable_Type'\n(I2\nttRp5383\nsS'Y:VBus61 - CCALVI31'\np5384\ng35\n(S'Variable_Type'\n(I2\nttRp5385\nsS'Y:VBus93 - COCANA32'\np5386\ng35\n(S'Variable_Type'\n(I2\nttRp5387\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np5388\ng35\n(S'Variable_Type'\n(I2\nttRp5389\nsS'Y:VBus104 - CPROPR31'\np5390\ng35\n(S'Variable_Type'\n(I2\nttRp5391\nsS'Y:VBus22 - CCORTE21'\np5392\ng35\n(S'Variable_Type'\n(I2\nttRp5393\nsS'Y:VBus48 - CZSSS621'\np5394\ng35\n(S'Variable_Type'\n(I2\nttRp5395\nsS'Y:PMachine85 - CLORET32'\np5396\ng35\n(S'Variable_Type'\n(I2\nttRp5397\nsS'Y:Max%A'\np5398\ng35\n(S'Variable_Type'\n(I2\nttRp5399\nsS'Y:VBus36 - CPROPR21'\np5400\ng35\n(S'Variable_Type'\n(I2\nttRp5401\nsS'Y:Load 100 - COLETT31'\np5402\ng35\n(S'Variable_Type'\n(I2\nttRp5403\nsS'Y:PMachine54 - CBASTI32'\np5404\ng35\n(S'Variable_Type'\n(I2\nttRp5405\nsS'Y:VBus138 - CLUCCI39'\np5406\ng35\n(S'Variable_Type'\n(I2\nttRp5407\nsS'Y:VBus39 - CSTLUC21'\np5408\ng35\n(S'Variable_Type'\n(I2\nttRp5409\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np5410\ng35\n(S'Variable_Type'\n(I2\nttRp5411\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np5412\ng35\n(S'Variable_Type'\n(I2\nttRp5413\nsS'Y:Load 78 - CFURIA31'\np5414\ng35\n(S'Variable_Type'\n(I2\nttRp5415\nsS'Y:VBus28 - CLORET21'\np5416\ng35\n(S'Variable_Type'\n(I2\nttRp5417\nsS'Y:PMachine105 - CPROPR32'\np5418\ng35\n(S'Variable_Type'\n(I2\nttRp5419\nsS'Y:VBus96 - COCANA35'\np5420\ng35\n(S'Variable_Type'\n(I2\nttRp5421\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np5422\ng35\n(S'Variable_Type'\n(I1\nttRp5423\nsS'Y:PMachine18 - CCASAM21'\np5424\ng35\n(S'Variable_Type'\n(I1\nttRp5425\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np5426\ng35\n(S'Variable_Type'\n(I2\nttRp5427\nsS'Y:VBus13 - CBIGUG21'\np5428\ng35\n(S'Variable_Type'\n(I2\nttRp5429\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np5430\ng35\n(S'Variable_Type'\n(I2\nttRp5431\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np5432\ng35\n(S'Variable_Type'\n(I2\nttRp5433\nsS'Y:VBus29 - CLUCCI21'\np5434\ng35\n(S'Variable_Type'\n(I2\nttRp5435\nsS'Y:VBus58 - CBONIF32'\np5436\ng35\n(S'Variable_Type'\n(I2\nttRp5437\nsS'Y:VBus84 - CLORET31'\np5438\ng35\n(S'Variable_Type'\n(I2\nttRp5439\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np5440\ng35\n(S'Variable_Type'\n(I1\nttRp5441\nsS'Y:VBus97 - COCANA36'\np5442\ng35\n(S'Variable_Type'\n(I2\nttRp5443\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np5444\ng35\n(S'Variable_Type'\n(I1\nttRp5445\nsS'Y:VBus15 - CBONIF22'\np5446\ng35\n(S'Variable_Type'\n(I2\nttRp5447\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np5448\ng35\n(S'Variable_Type'\n(I2\nttRp5449\nsS'Y:Load 110 - CSTLUC31'\np5450\ng35\n(S'Variable_Type'\n(I2\nttRp5451\nsS'Y:VBus80 - CGHISO31'\np5452\ng35\n(S'Variable_Type'\n(I2\nttRp5453\nsS'Y:PMachine114 - CSOVEN31'\np5454\ng35\n(S'Variable_Type'\n(I2\nttRp5455\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np5456\ng35\n(S'Variable_Type'\n(I1\nttRp5457\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np5458\ng35\n(S'Variable_Type'\n(I2\nttRp5459\nsS'Y:PMachine93 - COCANA32'\np5460\ng35\n(S'Variable_Type'\n(I2\nttRp5461\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np5462\ng35\n(S'Variable_Type'\n(I1\nttRp5463\nsS'Y:VBus87 - CLUCCI32'\np5464\ng35\n(S'Variable_Type'\n(I2\nttRp5465\nsS'Y:VBus62 - CCALVI32'\np5466\ng35\n(S'Variable_Type'\n(I2\nttRp5467\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np5468\ng35\n(S'Variable_Type'\n(I1\nttRp5469\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np5470\ng35\n(S'Variable_Type'\n(I1\nttRp5471\nsS'Y:VBus81 - CGHISO32'\np5472\ng35\n(S'Variable_Type'\n(I2\nttRp5473\nsS'Y:PMachine74 - CCERVI31'\np5474\ng35\n(S'Variable_Type'\n(I2\nttRp5475\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np5476\ng35\n(S'Variable_Type'\n(I2\nttRp5477\nsS'EOL_ALL'\np5478\ng35\n(S'Variable_Type'\n(I2\nttRp5479\nsS'X:Load(pu)'\np5480\ng5020\nsS'Y:NbeTension'\np5481\ng35\n(S'Variable_Type'\n(I2\nttRp5482\nsS'Y:VBus95 - COCANA34'\np5483\ng35\n(S'Variable_Type'\n(I2\nttRp5484\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np5485\ng35\n(S'Variable_Type'\n(I2\nttRp5486\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np5487\ng35\n(S'Variable_Type'\n(I2\nttRp5488\nsS'Y:Load 95 - COCANA34'\np5489\ng35\n(S'Variable_Type'\n(I2\nttRp5490\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np5491\ng35\n(S'Variable_Type'\n(I1\nttRp5492\nsS'Y:PMachine90 - CMOROS31'\np5493\ng35\n(S'Variable_Type'\n(I2\nttRp5494\nsS'Y:Load 101 - CPIETR31'\np5495\ng35\n(S'Variable_Type'\n(I2\nttRp5496\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np5497\ng35\n(S'Variable_Type'\n(I1\nttRp5498\nsS'Y:PMachine132 - CVAZZI313'\np5499\ng35\n(S'Variable_Type'\n(I2\nttRp5500\nsS'Y:VBus125 - CVAZZI36'\np5501\ng35\n(S'Variable_Type'\n(I2\nttRp5502\nsS'Y:VBus135 - CLUCCI36'\np5503\ng35\n(S'Variable_Type'\n(I2\nttRp5504\nsS'Y:VBus47 - CVAZZI21'\np5505\ng35\n(S'Variable_Type'\n(I2\nttRp5506\nsS'Y:VBus94 - COCANA33'\np5507\ng35\n(S'Variable_Type'\n(I2\nttRp5508\nsS'Y:VBus17 - CCALVI21'\np5509\ng35\n(S'Variable_Type'\n(I2\nttRp5510\nsS'Y:Load 90 - CMOROS31'\np5511\ng35\n(S'Variable_Type'\n(I2\nttRp5512\nsS'Y:VBus120 - CVAZZI31'\np5513\ng35\n(S'Variable_Type'\n(I2\nttRp5514\nsS'X:ProdPV%Pnom'\np5515\ng35\n(S'Variable_Type'\n(I2\nttRp5516\nsS'Y:VBus52 - CASPRE32'\np5517\ng35\n(S'Variable_Type'\n(I2\nttRp5518\nsS'Y:VBus25 - CFURIA22'\np5519\ng35\n(S'Variable_Type'\n(I2\nttRp5520\nsS'Y:Load 76 - CCORTE31'\np5521\ng35\n(S'Variable_Type'\n(I2\nttRp5522\nsS'Y:PMachine69 - CCASAM37'\np5523\ng35\n(S'Variable_Type'\n(I2\nttRp5524\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np5525\ng35\n(S'Variable_Type'\n(I2\nttRp5526\nsS'Y:PMachine92 - COCANA31'\np5527\ng35\n(S'Variable_Type'\n(I2\nttRp5528\nsS'Y:PMachine102 - CPORTO31'\np5529\ng35\n(S'Variable_Type'\n(I2\nttRp5530\nsS'Y:PMachine122 - CVAZZI33'\np5531\ng35\n(S'Variable_Type'\n(I2\nttRp5532\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np5533\ng35\n(S'Variable_Type'\n(I1\nttRp5534\nsS'Y:PMachine63 - CCASAM31'\np5535\ng35\n(S'Variable_Type'\n(I2\nttRp5536\nsS'Y:VBus74 - CCERVI31'\np5537\ng35\n(S'Variable_Type'\n(I2\nttRp5538\nsS'Y:VBus126 - CVAZZI37'\np5539\ng35\n(S'Variable_Type'\n(I2\nttRp5540\nsS'Y:PMachine60 - CCALDA32'\np5541\ng35\n(S'Variable_Type'\n(I2\nttRp5542\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np5543\ng35\n(S'Variable_Type'\n(I1\nttRp5544\nsS'Y:VBus20 - CCERVI21'\np5545\ng35\n(S'Variable_Type'\n(I2\nttRp5546\nsS'Y:VBus119 - CTRAVO31'\np5547\ng35\n(S'Variable_Type'\n(I2\nttRp5548\nsS'Y:VBus11 - CASPRE21'\np5549\ng35\n(S'Variable_Type'\n(I2\nttRp5550\nsS'Y:VBus139 - CLUCCI310'\np5551\ng35\n(S'Variable_Type'\n(I2\nttRp5552\nsS'Y:VBus106 - CRIZZA31'\np5553\ng35\n(S'Variable_Type'\n(I2\nttRp5554\nsS'Y:PMachine66 - CCASAM34'\np5555\ng35\n(S'Variable_Type'\n(I2\nttRp5556\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np5557\ng35\n(S'Variable_Type'\n(I2\nttRp5558\nsS'Y:VBus136 - CLUCCI37'\np5559\ng35\n(S'Variable_Type'\n(I2\nttRp5560\nsS'Y:VBus90 - CMOROS31'\np5561\ng35\n(S'Variable_Type'\n(I2\nttRp5562\nsS'Y:Load 74 - CCERVI31'\np5563\ng35\n(S'Variable_Type'\n(I2\nttRp5564\nsS'X:lineOff#'\np5565\ng35\n(S'Variable_Type'\n(I2\nttRp5566\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np5567\ng35\n(S'Variable_Type'\n(I2\nttRp5568\nsS'Y:VBus108 - CSAGON31'\np5569\ng35\n(S'Variable_Type'\n(I2\nttRp5570\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np5571\ng35\n(S'Variable_Type'\n(I2\nttRp5572\nsS'Y:VBus137 - CLUCCI38'\np5573\ng35\n(S'Variable_Type'\n(I2\nttRp5574\nsS'Y:VBus130 - CVAZZI311'\np5575\ng35\n(S'Variable_Type'\n(I2\nttRp5576\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np5577\ng35\n(S'Variable_Type'\n(I2\nttRp5578\nsS'Y:VBus46 - CTRAVO21'\np5579\ng35\n(S'Variable_Type'\n(I2\nttRp5580\nsS'Y:VBus113 - CSAMPO32'\np5581\ng35\n(S'Variable_Type'\n(I2\nttRp5582\nsS'Y:PMachine133 - CVAZZI314'\np5583\ng35\n(S'Variable_Type'\n(I2\nttRp5584\nsS'Y:PMachine65 - CCASAM33'\np5585\ng35\n(S'Variable_Type'\n(I2\nttRp5586\nsS'Y:VBus78 - CFURIA31'\np5587\ng35\n(S'Variable_Type'\n(I2\nttRp5588\nsS'Y:VBus26 - CGHISO21'\np5589\ng35\n(S'Variable_Type'\n(I2\nttRp5590\nsS'Y:VBus121 - CVAZZI32'\np5591\ng35\n(S'Variable_Type'\n(I2\nttRp5592\nsS'Y:PMachine97 - COCANA36'\np5593\ng35\n(S'Variable_Type'\n(I2\nttRp5594\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np5595\ng35\n(S'Variable_Type'\n(I2\nttRp5596\nsS'Y:PMachine83 - CILERO32'\np5597\ng35\n(S'Variable_Type'\n(I2\nttRp5598\nsS'Y:VBus83 - CILERO32'\np5599\ng35\n(S'Variable_Type'\n(I2\nttRp5600\nsS'Y:VBus66 - CCASAM34'\np5601\ng35\n(S'Variable_Type'\n(I2\nttRp5602\nsS'Y:PMachine1 - CBONIF11'\np5603\ng35\n(S'Variable_Type'\n(I2\nttRp5604\nsS'Y:VBus111 - CSTMAR31'\np5605\ng35\n(S'Variable_Type'\n(I2\nttRp5606\nsS'Y:VBus124 - CVAZZI35'\np5607\ng35\n(S'Variable_Type'\n(I2\nttRp5608\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np5609\ng35\n(S'Variable_Type'\n(I2\nttRp5610\nsS'Y:PMachine131 - CVAZZI312'\np5611\ng35\n(S'Variable_Type'\n(I2\nttRp5612\nsS'Y:VBus44 - CTAGLI21'\np5613\ng35\n(S'Variable_Type'\n(I2\nttRp5614\nsS'Y:VBus88 - CLUCCI33'\np5615\ng35\n(S'Variable_Type'\n(I2\nttRp5616\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np5617\ng35\n(S'Variable_Type'\n(I1\nttRp5618\nsS'Y:VBus38 - CSAGON21'\np5619\ng35\n(S'Variable_Type'\n(I2\nttRp5620\nsS'Y:PMachine81 - CGHISO32'\np5621\ng35\n(S'Variable_Type'\n(I2\nttRp5622\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np5623\ng35\n(S'Variable_Type'\n(I2\nttRp5624\nsS'Y:VBus110 - CSTLUC31'\np5625\ng35\n(S'Variable_Type'\n(I2\nttRp5626\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np5627\ng35\n(S'Variable_Type'\n(I2\nttRp5628\nssg650\n(lp5629\ng652\nasba(iOWContexts\nContext\np5630\n(dp5631\ng24\n(lp5632\nsg26\n(dp5633\nsg28\n(dp5634\ng1897\n(S''\nI-1\ntp5635\nsg1899\n(S''\nI0\ntp5636\nsg1901\n(g1281\ng35\n(S'Variable_Type'\n(I2\nttRp5637\ntp5638\nsg1904\n(g1284\ng5637\ntp5639\nsg1906\n(S''\nI0\ntp5640\nsg1908\n(g1287\ng35\n(S'Variable_Type'\n(I2\nttRp5641\ntp5642\nssg46\nF1369994938.898\nsg47\n(dp5643\nS'Y:PMachine134 - CLUCCI35'\np5644\ng35\n(S'Variable_Type'\n(I1\nttRp5645\nsS'Y:VBus77 - CCORTE32'\np5646\ng35\n(S'Variable_Type'\n(I2\nttRp5647\nsS'Y:VBus134 - CLUCCI35'\np5648\ng35\n(S'Variable_Type'\n(I2\nttRp5649\nsS'Y:VBus109 - CSAGON32'\np5650\ng35\n(S'Variable_Type'\n(I2\nttRp5651\nsS'Y:VBus102 - CPORTO31'\np5652\ng35\n(S'Variable_Type'\n(I2\nttRp5653\nsS'XProdEolienne%Pnom'\np5654\ng35\n(S'Variable_Type'\n(I1\nttRp5655\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np5656\ng35\n(S'Variable_Type'\n(I2\nttRp5657\nsS'Y:PMachine94 - COCANA33'\np5658\ng35\n(S'Variable_Type'\n(I2\nttRp5659\nsS'Y:VBus117 - CTOLLA32'\np5660\ng35\n(S'Variable_Type'\n(I2\nttRp5661\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np5662\ng35\n(S'Variable_Type'\n(I2\nttRp5663\nsS'Y:PMachine87 - CLUCCI32'\np5664\ng35\n(S'Variable_Type'\n(I2\nttRp5665\nsS'Y:PMachine113 - CSAMPO32'\np5666\ng35\n(S'Variable_Type'\n(I2\nttRp5667\nsS'Y:Load 84 - CLORET31'\np5668\ng35\n(S'Variable_Type'\n(I2\nttRp5669\nsS'Y:PMachine89 - CLUCCI34'\np5670\ng35\n(S'Variable_Type'\n(I1\nttRp5671\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np5672\ng35\n(S'Variable_Type'\n(I2\nttRp5673\nsS'Y:Load 80 - CGHISO31'\np5674\ng35\n(S'Variable_Type'\n(I2\nttRp5675\nsS'Y:PMachine125 - CVAZZI36'\np5676\ng35\n(S'Variable_Type'\n(I2\nttRp5677\nsS'Y:PMachine116 - CTOLLA31'\np5678\ng35\n(S'Variable_Type'\n(I2\nttRp5679\nsS'Y:PMachine88 - CLUCCI33'\np5680\ng35\n(S'Variable_Type'\n(I1\nttRp5681\nsS'Y:PMachine120 - CVAZZI31'\np5682\ng35\n(S'Variable_Type'\n(I2\nttRp5683\nsS'Y:PMachine111 - CSTMAR31'\np5684\ng35\n(S'Variable_Type'\n(I2\nttRp5685\nsS'Y:NbeTransit'\np5686\ng35\n(S'Variable_Type'\n(I1\nttRp5687\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np5688\ng35\n(S'Variable_Type'\n(I2\nttRp5689\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np5690\ng35\n(S'Variable_Type'\n(I2\nttRp5691\nsS'Y:VBus92 - COCANA31'\np5692\ng35\n(S'Variable_Type'\n(I2\nttRp5693\nsS'Y:PMachine130 - CVAZZI311'\np5694\ng35\n(S'Variable_Type'\n(I2\nttRp5695\nsS'Y:PMachine127 - CVAZZI38'\np5696\ng35\n(S'Variable_Type'\n(I2\nttRp5697\nsS'Y:VBus131 - CVAZZI312'\np5698\ng35\n(S'Variable_Type'\n(I2\nttRp5699\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np5700\ng35\n(S'Variable_Type'\n(I2\nttRp5701\nsS'Y:PMachine123 - CVAZZI34'\np5702\ng35\n(S'Variable_Type'\n(I2\nttRp5703\nsS'Y:VBus118 - CTOLLA33'\np5704\ng35\n(S'Variable_Type'\n(I2\nttRp5705\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np5706\ng35\n(S'Variable_Type'\n(I1\nttRp5707\nsS'Y:PMachine58 - CBONIF32'\np5708\ng35\n(S'Variable_Type'\n(I2\nttRp5709\nsS'Y:Load 104 - CPROPR31'\np5710\ng35\n(S'Variable_Type'\n(I2\nttRp5711\nsS'Y:PMachine30 - CLUCCI22'\np5712\ng35\n(S'Variable_Type'\n(I1\nttRp5713\nsS'Y:VBus100 - COLETT31'\np5714\ng35\n(S'Variable_Type'\n(I2\nttRp5715\nsS'Y:PProdTot'\np5716\ng35\n(S'Variable_Type'\n(I2\nttRp5717\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np5718\ng35\n(S'Variable_Type'\n(I1\nttRp5719\nsS'Y:VBus57 - CBONIF31'\np5720\ng35\n(S'Variable_Type'\n(I2\nttRp5721\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np5722\ng35\n(S'Variable_Type'\n(I2\nttRp5723\nsS'Y:PConsoTot'\np5724\ng35\n(S'Variable_Type'\n(I2\nttRp5725\nsS'Iteration'\np5726\ng35\n(S'Variable_Type'\n(I2\nttRp5727\nsS'Y:PMachine109 - CSAGON32'\np5728\ng35\n(S'Variable_Type'\n(I2\nttRp5729\nsS'Y:PMachine135 - CLUCCI36'\np5730\ng35\n(S'Variable_Type'\n(I1\nttRp5731\nsS'Y:VBus30 - CLUCCI22'\np5732\ng35\n(S'Variable_Type'\n(I2\nttRp5733\nsS'Y:VBus122 - CVAZZI33'\np5734\ng35\n(S'Variable_Type'\n(I2\nttRp5735\nsS'Y:VBus22 - CCORTE21'\np5736\ng35\n(S'Variable_Type'\n(I2\nttRp5737\nsS'Y:VBus35 - CPORTO21'\np5738\ng35\n(S'Variable_Type'\n(I2\nttRp5739\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np5740\ng35\n(S'Variable_Type'\n(I1\nttRp5741\nsS'Y:PMachine107 - CRIZZA32'\np5742\ng35\n(S'Variable_Type'\n(I2\nttRp5743\nsS'Y:VBus16 - CCALDA21'\np5744\ng35\n(S'Variable_Type'\n(I2\nttRp5745\nsS'Y:Load 102 - CPORTO31'\np5746\ng35\n(S'Variable_Type'\n(I2\nttRp5747\nsS'Y:VBus107 - CRIZZA32'\np5748\ng35\n(S'Variable_Type'\n(I2\nttRp5749\nsS'Y:VBus59 - CCALDA31'\np5750\ng35\n(S'Variable_Type'\n(I2\nttRp5751\nsS'Y:VBus41 - CSAMPO21'\np5752\ng35\n(S'Variable_Type'\n(I2\nttRp5753\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np5754\ng35\n(S'Variable_Type'\n(I2\nttRp5755\nsS'Y:VBus34 - CPIETR21'\np5756\ng35\n(S'Variable_Type'\n(I2\nttRp5757\nsS'Y:Load 108 - CSAGON31'\np5758\ng35\n(S'Variable_Type'\n(I2\nttRp5759\nsS'Y:VBus56 - CBIGUG32'\np5760\ng35\n(S'Variable_Type'\n(I2\nttRp5761\nsS'Y:PMachine42 - CSISCO21'\np5762\ng35\n(S'Variable_Type'\n(I2\nttRp5763\nsS'Y:PMachine138 - CLUCCI39'\np5764\ng35\n(S'Variable_Type'\n(I1\nttRp5765\nsS'Y:PMachine112 - CSAMPO31'\np5766\ng35\n(S'Variable_Type'\n(I2\nttRp5767\nsS'Y:VBus105 - CPROPR32'\np5768\ng35\n(S'Variable_Type'\n(I2\nttRp5769\nsS'Y:VBus1 - CBONIF11'\np5770\ng35\n(S'Variable_Type'\n(I2\nttRp5771\nsS'Y:VBus12 - CBASTI21'\np5772\ng35\n(S'Variable_Type'\n(I2\nttRp5773\nsS'Y:PMachine129 - CVAZZI310'\np5774\ng35\n(S'Variable_Type'\n(I2\nttRp5775\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np5776\ng35\n(S'Variable_Type'\n(I1\nttRp5777\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np5778\ng35\n(S'Variable_Type'\n(I1\nttRp5779\nsS'Y:VBus54 - CBASTI32'\np5780\ng35\n(S'Variable_Type'\n(I2\nttRp5781\nsS'Y:VBus69 - CCASAM37'\np5782\ng35\n(S'Variable_Type'\n(I2\nttRp5783\nsS'Y:VBus45 - CTOLLA21'\np5784\ng35\n(S'Variable_Type'\n(I2\nttRp5785\nsS'Y:PMachine115 - CTAGLI31'\np5786\ng35\n(S'Variable_Type'\n(I2\nttRp5787\nsS'Y:PMachine77 - CCORTE32'\np5788\ng35\n(S'Variable_Type'\n(I2\nttRp5789\nsS'Y:VBus43 - CSOVEN21'\np5790\ng35\n(S'Variable_Type'\n(I2\nttRp5791\nsS'Y:VBus76 - CCORTE31'\np5792\ng35\n(S'Variable_Type'\n(I2\nttRp5793\nsS'Y:VBus75 - CCORSC31'\np5794\ng35\n(S'Variable_Type'\n(I2\nttRp5795\nsS'Y:PMachine78 - CFURIA31'\np5796\ng35\n(S'Variable_Type'\n(I1\nttRp5797\nsS'Y:VBus127 - CVAZZI38'\np5798\ng35\n(S'Variable_Type'\n(I2\nttRp5799\nsS'Y:VBus115 - CTAGLI31'\np5800\ng35\n(S'Variable_Type'\n(I2\nttRp5801\nsS'Y:Load 61 - CCALVI31'\np5802\ng35\n(S'Variable_Type'\n(I2\nttRp5803\nsS'Y:VBus55 - CBIGUG31'\np5804\ng35\n(S'Variable_Type'\n(I2\nttRp5805\nsS'Y:Load 42 - CSISCO21'\np5806\ng35\n(S'Variable_Type'\n(I2\nttRp5807\nsS'Y:VBus72 - CCASTI31'\np5808\ng35\n(S'Variable_Type'\n(I2\nttRp5809\nsS'Y:Load 37 - CRIZZA21'\np5810\ng35\n(S'Variable_Type'\n(I2\nttRp5811\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np5812\ng35\n(S'Variable_Type'\n(I2\nttRp5813\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np5814\ng35\n(S'Variable_Type'\n(I2\nttRp5815\nsS'Y:PMachine137 - CLUCCI38'\np5816\ng35\n(S'Variable_Type'\n(I1\nttRp5817\nsS'Y:PMachine67 - CCASAM35'\np5818\ng35\n(S'Variable_Type'\n(I2\nttRp5819\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np5820\ng35\n(S'Variable_Type'\n(I1\nttRp5821\nsS'Y:VBus31 - CMOROS21'\np5822\ng35\n(S'Variable_Type'\n(I2\nttRp5823\nsS'Y:VBus103 - CPORTO32'\np5824\ng35\n(S'Variable_Type'\n(I2\nttRp5825\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np5826\ng35\n(S'Variable_Type'\n(I1\nttRp5827\nsS'Y:PMachine128 - CVAZZI39'\np5828\ng35\n(S'Variable_Type'\n(I2\nttRp5829\nsS'Y:PMachine72 - CCASTI31'\np5830\ng35\n(S'Variable_Type'\n(I2\nttRp5831\nsS'Y:VBus27 - CILERO21'\np5832\ng35\n(S'Variable_Type'\n(I2\nttRp5833\nsS'Y:PMachine75 - CCORSC31'\np5834\ng35\n(S'Variable_Type'\n(I2\nttRp5835\nsS'Y:Load 51 - CASPRE31'\np5836\ng35\n(S'Variable_Type'\n(I2\nttRp5837\nsS'Y:PMachine61 - CCALVI31'\np5838\ng35\n(S'Variable_Type'\n(I1\nttRp5839\nsS'Y:VBus51 - CASPRE31'\np5840\ng35\n(S'Variable_Type'\n(I2\nttRp5841\nsS'Y:VBus114 - CSOVEN31'\np5842\ng35\n(S'Variable_Type'\n(I2\nttRp5843\nsS'Y:Load 82 - CILERO31'\np5844\ng35\n(S'Variable_Type'\n(I2\nttRp5845\nsS'Y:VBus116 - CTOLLA31'\np5846\ng35\n(S'Variable_Type'\n(I2\nttRp5847\nsS'Y:Load 86 - CLUCCI31'\np5848\ng35\n(S'Variable_Type'\n(I2\nttRp5849\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np5850\ng35\n(S'Variable_Type'\n(I2\nttRp5851\nsS'Y:Load 57 - CBONIF31'\np5852\ng35\n(S'Variable_Type'\n(I2\nttRp5853\nsS'Y:PMachine104 - CPROPR31'\np5854\ng35\n(S'Variable_Type'\n(I2\nttRp5855\nsS'Y:VBus128 - CVAZZI39'\np5856\ng35\n(S'Variable_Type'\n(I2\nttRp5857\nsS'Y:PMachine136 - CLUCCI37'\np5858\ng35\n(S'Variable_Type'\n(I1\nttRp5859\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np5860\ng35\n(S'Variable_Type'\n(I2\nttRp5861\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np5862\ng35\n(S'Variable_Type'\n(I2\nttRp5863\nsS'Y:PMachine68 - CCASAM36'\np5864\ng35\n(S'Variable_Type'\n(I2\nttRp5865\nsS'Y:PMachine29 - CLUCCI21'\np5866\ng35\n(S'Variable_Type'\n(I1\nttRp5867\nsS'Y:VBus42 - CSISCO21'\np5868\ng35\n(S'Variable_Type'\n(I2\nttRp5869\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np5870\ng35\n(S'Variable_Type'\n(I1\nttRp5871\nsS'Y:VBus14 - CBONIF21'\np5872\ng35\n(S'Variable_Type'\n(I2\nttRp5873\nsS'Y:VBus73 - CCASTI32'\np5874\ng35\n(S'Variable_Type'\n(I2\nttRp5875\nsS'Y:VBus64 - CCASAM32'\np5876\ng35\n(S'Variable_Type'\n(I2\nttRp5877\nsS'Y:PMachine14 - CBONIF21'\np5878\ng35\n(S'Variable_Type'\n(I1\nttRp5879\nsS'Y:PMachine62 - CCALVI32'\np5880\ng35\n(S'Variable_Type'\n(I2\nttRp5881\nsS'Y:VBus133 - CVAZZI314'\np5882\ng35\n(S'Variable_Type'\n(I2\nttRp5883\nsS'Y:VBus63 - CCASAM31'\np5884\ng35\n(S'Variable_Type'\n(I2\nttRp5885\nsS'Y:PMachine101 - CPIETR31'\np5886\ng35\n(S'Variable_Type'\n(I2\nttRp5887\nsS'Y:%Losses'\np5888\ng35\n(S'Variable_Type'\n(I2\nttRp5889\nsS'Y:VBus85 - CLORET32'\np5890\ng35\n(S'Variable_Type'\n(I2\nttRp5891\nsS'Y:Load 59 - CCALDA31'\np5892\ng35\n(S'Variable_Type'\n(I2\nttRp5893\nsS'Y:VBus129 - CVAZZI310'\np5894\ng35\n(S'Variable_Type'\n(I2\nttRp5895\nsS'Y:VBus101 - CPIETR31'\np5896\ng35\n(S'Variable_Type'\n(I2\nttRp5897\nsS'Y:PMachine106 - CRIZZA31'\np5898\ng35\n(S'Variable_Type'\n(I2\nttRp5899\nsS'Y:VBus132 - CVAZZI313'\np5900\ng35\n(S'Variable_Type'\n(I2\nttRp5901\nsS'Y:PMachine118 - CTOLLA33'\np5902\ng35\n(S'Variable_Type'\n(I2\nttRp5903\nsS'Y:VBus19 - CCASTI21'\np5904\ng35\n(S'Variable_Type'\n(I2\nttRp5905\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np5906\ng35\n(S'Variable_Type'\n(I2\nttRp5907\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np5908\ng35\n(S'Variable_Type'\n(I1\nttRp5909\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np5910\ng35\n(S'Variable_Type'\n(I2\nttRp5911\nsS'Y:Load 115 - CTAGLI31'\np5912\ng5641\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np5913\ng35\n(S'Variable_Type'\n(I2\nttRp5914\nsS'Y:VBus79 - CFURIA32'\np5915\ng35\n(S'Variable_Type'\n(I2\nttRp5916\nsS'Y:PMachine47 - CVAZZI21'\np5917\ng35\n(S'Variable_Type'\n(I1\nttRp5918\nsS'Y:VBus123 - CVAZZI34'\np5919\ng35\n(S'Variable_Type'\n(I2\nttRp5920\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np5921\ng35\n(S'Variable_Type'\n(I2\nttRp5922\nsS'Y:VBus60 - CCALDA32'\np5923\ng35\n(S'Variable_Type'\n(I2\nttRp5924\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np5925\ng35\n(S'Variable_Type'\n(I2\nttRp5926\nsS'Y:VBus65 - CCASAM33'\np5927\ng35\n(S'Variable_Type'\n(I2\nttRp5928\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np5929\ng35\n(S'Variable_Type'\n(I1\nttRp5930\nsS'Y:PMachine139 - CLUCCI310'\np5931\ng35\n(S'Variable_Type'\n(I1\nttRp5932\nsS'Y:VBus112 - CSAMPO31'\np5933\ng35\n(S'Variable_Type'\n(I2\nttRp5934\nsS'Y:VBus68 - CCASAM36'\np5935\ng35\n(S'Variable_Type'\n(I2\nttRp5936\nsS'Y:Load 55 - CBIGUG31'\np5937\ng35\n(S'Variable_Type'\n(I2\nttRp5938\nsS'Y:PMachine53 - CBASTI31'\np5939\ng35\n(S'Variable_Type'\n(I2\nttRp5940\nsS'Y:NbeTransit_0.9-1'\np5941\ng35\n(S'Variable_Type'\n(I1\nttRp5942\nsS'Y:VBus24 - CFURIA21'\np5943\ng35\n(S'Variable_Type'\n(I2\nttRp5944\nsS'Y:VBus23 - CCORTE22'\np5945\ng35\n(S'Variable_Type'\n(I2\nttRp5946\nsS'Y:VBus18 - CCASAM21'\np5947\ng35\n(S'Variable_Type'\n(I2\nttRp5948\nsS'Y:VBus40 - CSTMAR21'\np5949\ng35\n(S'Variable_Type'\n(I2\nttRp5950\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np5951\ng35\n(S'Variable_Type'\n(I2\nttRp5952\nsS'Y:PMachine124 - CVAZZI35'\np5953\ng35\n(S'Variable_Type'\n(I2\nttRp5954\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np5955\ng35\n(S'Variable_Type'\n(I2\nttRp5956\nsS'Y:PMachine117 - CTOLLA32'\np5957\ng35\n(S'Variable_Type'\n(I2\nttRp5958\nsS'Y:VBus89 - CLUCCI34'\np5959\ng35\n(S'Variable_Type'\n(I2\nttRp5960\nsS'Y:VBus33 - COLETT21'\np5961\ng35\n(S'Variable_Type'\n(I2\nttRp5962\nsS'Y:VBus32 - COCANA21'\np5963\ng35\n(S'Variable_Type'\n(I2\nttRp5964\nsS'Y:PMachine121 - CVAZZI32'\np5965\ng35\n(S'Variable_Type'\n(I2\nttRp5966\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np5967\ng35\n(S'Variable_Type'\n(I1\nttRp5968\nsS'Y:VBus82 - CILERO31'\np5969\ng35\n(S'Variable_Type'\n(I2\nttRp5970\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np5971\ng35\n(S'Variable_Type'\n(I2\nttRp5972\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np5973\ng35\n(S'Variable_Type'\n(I2\nttRp5974\nsS'Y:VBus37 - CRIZZA21'\np5975\ng35\n(S'Variable_Type'\n(I2\nttRp5976\nsS'Y:PMachine73 - CCASTI32'\np5977\ng35\n(S'Variable_Type'\n(I2\nttRp5978\nsS'Y:PMachine86 - CLUCCI31'\np5979\ng35\n(S'Variable_Type'\n(I2\nttRp5980\nsS'Y:Load 53 - CBASTI31'\np5981\ng35\n(S'Variable_Type'\n(I2\nttRp5982\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np5983\ng35\n(S'Variable_Type'\n(I2\nttRp5984\nsS'Y:VBus21 - CCORSC21'\np5985\ng35\n(S'Variable_Type'\n(I2\nttRp5986\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np5987\ng35\n(S'Variable_Type'\n(I2\nttRp5988\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np5989\ng35\n(S'Variable_Type'\n(I2\nttRp5990\nsS'Y:PMachine126 - CVAZZI37'\np5991\ng35\n(S'Variable_Type'\n(I2\nttRp5992\nsS'Y:PMachine64 - CCASAM32'\np5993\ng35\n(S'Variable_Type'\n(I2\nttRp5994\nsS'Y:VBus67 - CCASAM35'\np5995\ng35\n(S'Variable_Type'\n(I2\nttRp5996\nsS'Y:VBus53 - CBASTI31'\np5997\ng35\n(S'Variable_Type'\n(I2\nttRp5998\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np5999\ng35\n(S'Variable_Type'\n(I2\nttRp6000\nsS'Y:VBus61 - CCALVI31'\np6001\ng35\n(S'Variable_Type'\n(I2\nttRp6002\nsS'Y:VBus93 - COCANA32'\np6003\ng35\n(S'Variable_Type'\n(I2\nttRp6004\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np6005\ng35\n(S'Variable_Type'\n(I2\nttRp6006\nsS'Y:VBus104 - CPROPR31'\np6007\ng35\n(S'Variable_Type'\n(I2\nttRp6008\nsS'Y:VBus48 - CZSSS621'\np6009\ng35\n(S'Variable_Type'\n(I2\nttRp6010\nsS'Y:PMachine85 - CLORET32'\np6011\ng35\n(S'Variable_Type'\n(I2\nttRp6012\nsS'Y:Max%A'\np6013\ng35\n(S'Variable_Type'\n(I2\nttRp6014\nsS'Y:VBus36 - CPROPR21'\np6015\ng35\n(S'Variable_Type'\n(I2\nttRp6016\nsS'Y:Load 100 - COLETT31'\np6017\ng35\n(S'Variable_Type'\n(I2\nttRp6018\nsS'Y:PMachine54 - CBASTI32'\np6019\ng35\n(S'Variable_Type'\n(I2\nttRp6020\nsS'Y:VBus138 - CLUCCI39'\np6021\ng35\n(S'Variable_Type'\n(I2\nttRp6022\nsS'Y:VBus39 - CSTLUC21'\np6023\ng35\n(S'Variable_Type'\n(I2\nttRp6024\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np6025\ng35\n(S'Variable_Type'\n(I2\nttRp6026\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np6027\ng35\n(S'Variable_Type'\n(I2\nttRp6028\nsS'Y:Load 78 - CFURIA31'\np6029\ng35\n(S'Variable_Type'\n(I2\nttRp6030\nsS'Y:VBus28 - CLORET21'\np6031\ng35\n(S'Variable_Type'\n(I2\nttRp6032\nsS'Y:PMachine105 - CPROPR32'\np6033\ng35\n(S'Variable_Type'\n(I2\nttRp6034\nsS'Y:VBus96 - COCANA35'\np6035\ng35\n(S'Variable_Type'\n(I2\nttRp6036\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np6037\ng35\n(S'Variable_Type'\n(I1\nttRp6038\nsS'Y:PMachine18 - CCASAM21'\np6039\ng35\n(S'Variable_Type'\n(I1\nttRp6040\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np6041\ng35\n(S'Variable_Type'\n(I2\nttRp6042\nsS'Y:VBus13 - CBIGUG21'\np6043\ng35\n(S'Variable_Type'\n(I2\nttRp6044\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np6045\ng35\n(S'Variable_Type'\n(I2\nttRp6046\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np6047\ng35\n(S'Variable_Type'\n(I2\nttRp6048\nsS'Y:VBus29 - CLUCCI21'\np6049\ng35\n(S'Variable_Type'\n(I2\nttRp6050\nsS'Y:VBus58 - CBONIF32'\np6051\ng35\n(S'Variable_Type'\n(I2\nttRp6052\nsS'Y:VBus84 - CLORET31'\np6053\ng35\n(S'Variable_Type'\n(I2\nttRp6054\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np6055\ng35\n(S'Variable_Type'\n(I1\nttRp6056\nsS'Y:VBus97 - COCANA36'\np6057\ng35\n(S'Variable_Type'\n(I2\nttRp6058\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np6059\ng35\n(S'Variable_Type'\n(I1\nttRp6060\nsS'Y:VBus15 - CBONIF22'\np6061\ng35\n(S'Variable_Type'\n(I2\nttRp6062\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np6063\ng35\n(S'Variable_Type'\n(I2\nttRp6064\nsS'Y:Load 110 - CSTLUC31'\np6065\ng35\n(S'Variable_Type'\n(I2\nttRp6066\nsS'Y:VBus80 - CGHISO31'\np6067\ng35\n(S'Variable_Type'\n(I2\nttRp6068\nsS'Y:PMachine114 - CSOVEN31'\np6069\ng35\n(S'Variable_Type'\n(I2\nttRp6070\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np6071\ng35\n(S'Variable_Type'\n(I1\nttRp6072\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np6073\ng35\n(S'Variable_Type'\n(I2\nttRp6074\nsS'Y:PMachine93 - COCANA32'\np6075\ng35\n(S'Variable_Type'\n(I2\nttRp6076\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np6077\ng35\n(S'Variable_Type'\n(I1\nttRp6078\nsS'Y:VBus87 - CLUCCI32'\np6079\ng35\n(S'Variable_Type'\n(I2\nttRp6080\nsS'Y:VBus62 - CCALVI32'\np6081\ng35\n(S'Variable_Type'\n(I2\nttRp6082\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np6083\ng35\n(S'Variable_Type'\n(I1\nttRp6084\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np6085\ng35\n(S'Variable_Type'\n(I1\nttRp6086\nsS'Y:VBus81 - CGHISO32'\np6087\ng35\n(S'Variable_Type'\n(I2\nttRp6088\nsS'Y:PMachine74 - CCERVI31'\np6089\ng35\n(S'Variable_Type'\n(I2\nttRp6090\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np6091\ng35\n(S'Variable_Type'\n(I2\nttRp6092\nsS'Y:VBus86 - CLUCCI31'\np6093\ng35\n(S'Variable_Type'\n(I2\nttRp6094\nsS'X:Load(pu)'\np6095\ng5637\nsS'Y:NbeTension'\np6096\ng35\n(S'Variable_Type'\n(I2\nttRp6097\nsS'Y:VBus95 - COCANA34'\np6098\ng35\n(S'Variable_Type'\n(I2\nttRp6099\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np6100\ng35\n(S'Variable_Type'\n(I2\nttRp6101\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np6102\ng35\n(S'Variable_Type'\n(I2\nttRp6103\nsS'Y:Load 95 - COCANA34'\np6104\ng35\n(S'Variable_Type'\n(I2\nttRp6105\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np6106\ng35\n(S'Variable_Type'\n(I1\nttRp6107\nsS'Y:PMachine90 - CMOROS31'\np6108\ng35\n(S'Variable_Type'\n(I2\nttRp6109\nsS'Y:Load 101 - CPIETR31'\np6110\ng35\n(S'Variable_Type'\n(I2\nttRp6111\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np6112\ng35\n(S'Variable_Type'\n(I1\nttRp6113\nsS'Y:PMachine132 - CVAZZI313'\np6114\ng35\n(S'Variable_Type'\n(I2\nttRp6115\nsS'Y:VBus125 - CVAZZI36'\np6116\ng35\n(S'Variable_Type'\n(I2\nttRp6117\nsS'Y:VBus135 - CLUCCI36'\np6118\ng35\n(S'Variable_Type'\n(I2\nttRp6119\nsS'Y:VBus47 - CVAZZI21'\np6120\ng35\n(S'Variable_Type'\n(I2\nttRp6121\nsS'Y:VBus94 - COCANA33'\np6122\ng35\n(S'Variable_Type'\n(I2\nttRp6123\nsS'Y:VBus17 - CCALVI21'\np6124\ng35\n(S'Variable_Type'\n(I2\nttRp6125\nsS'Y:Load 90 - CMOROS31'\np6126\ng35\n(S'Variable_Type'\n(I2\nttRp6127\nsS'Y:VBus120 - CVAZZI31'\np6128\ng35\n(S'Variable_Type'\n(I2\nttRp6129\nsS'X:ProdPV%Pnom'\np6130\ng35\n(S'Variable_Type'\n(I2\nttRp6131\nsS'Y:VBus52 - CASPRE32'\np6132\ng35\n(S'Variable_Type'\n(I2\nttRp6133\nsS'Y:VBus25 - CFURIA22'\np6134\ng35\n(S'Variable_Type'\n(I2\nttRp6135\nsS'Y:Load 76 - CCORTE31'\np6136\ng35\n(S'Variable_Type'\n(I2\nttRp6137\nsS'Y:PMachine69 - CCASAM37'\np6138\ng35\n(S'Variable_Type'\n(I2\nttRp6139\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np6140\ng35\n(S'Variable_Type'\n(I2\nttRp6141\nsS'Y:PMachine92 - COCANA31'\np6142\ng35\n(S'Variable_Type'\n(I2\nttRp6143\nsS'Y:PMachine102 - CPORTO31'\np6144\ng35\n(S'Variable_Type'\n(I2\nttRp6145\nsS'Y:PMachine122 - CVAZZI33'\np6146\ng35\n(S'Variable_Type'\n(I2\nttRp6147\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np6148\ng35\n(S'Variable_Type'\n(I1\nttRp6149\nsS'Y:PMachine63 - CCASAM31'\np6150\ng35\n(S'Variable_Type'\n(I2\nttRp6151\nsS'Y:VBus74 - CCERVI31'\np6152\ng35\n(S'Variable_Type'\n(I2\nttRp6153\nsS'Y:VBus126 - CVAZZI37'\np6154\ng35\n(S'Variable_Type'\n(I2\nttRp6155\nsS'Y:PMachine60 - CCALDA32'\np6156\ng35\n(S'Variable_Type'\n(I2\nttRp6157\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np6158\ng35\n(S'Variable_Type'\n(I1\nttRp6159\nsS'Y:VBus20 - CCERVI21'\np6160\ng35\n(S'Variable_Type'\n(I2\nttRp6161\nsS'Y:VBus119 - CTRAVO31'\np6162\ng35\n(S'Variable_Type'\n(I2\nttRp6163\nsS'Y:VBus11 - CASPRE21'\np6164\ng35\n(S'Variable_Type'\n(I2\nttRp6165\nsS'Y:VBus139 - CLUCCI310'\np6166\ng35\n(S'Variable_Type'\n(I2\nttRp6167\nsS'Y:VBus106 - CRIZZA31'\np6168\ng35\n(S'Variable_Type'\n(I2\nttRp6169\nsS'Y:PMachine66 - CCASAM34'\np6170\ng35\n(S'Variable_Type'\n(I2\nttRp6171\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np6172\ng35\n(S'Variable_Type'\n(I2\nttRp6173\nsS'Y:VBus136 - CLUCCI37'\np6174\ng35\n(S'Variable_Type'\n(I2\nttRp6175\nsS'Y:VBus90 - CMOROS31'\np6176\ng35\n(S'Variable_Type'\n(I2\nttRp6177\nsS'Y:Load 74 - CCERVI31'\np6178\ng35\n(S'Variable_Type'\n(I2\nttRp6179\nsS'X:lineOff#'\np6180\ng35\n(S'Variable_Type'\n(I2\nttRp6181\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np6182\ng35\n(S'Variable_Type'\n(I2\nttRp6183\nsS'Y:VBus108 - CSAGON31'\np6184\ng35\n(S'Variable_Type'\n(I2\nttRp6185\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np6186\ng35\n(S'Variable_Type'\n(I2\nttRp6187\nsS'Y:VBus137 - CLUCCI38'\np6188\ng35\n(S'Variable_Type'\n(I2\nttRp6189\nsS'Y:VBus130 - CVAZZI311'\np6190\ng35\n(S'Variable_Type'\n(I2\nttRp6191\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np6192\ng35\n(S'Variable_Type'\n(I2\nttRp6193\nsS'Y:VBus46 - CTRAVO21'\np6194\ng35\n(S'Variable_Type'\n(I2\nttRp6195\nsS'Y:VBus113 - CSAMPO32'\np6196\ng35\n(S'Variable_Type'\n(I2\nttRp6197\nsS'Y:PMachine133 - CVAZZI314'\np6198\ng35\n(S'Variable_Type'\n(I2\nttRp6199\nsS'Y:PMachine65 - CCASAM33'\np6200\ng35\n(S'Variable_Type'\n(I2\nttRp6201\nsS'Y:VBus78 - CFURIA31'\np6202\ng35\n(S'Variable_Type'\n(I2\nttRp6203\nsS'Y:VBus26 - CGHISO21'\np6204\ng35\n(S'Variable_Type'\n(I2\nttRp6205\nsS'Y:VBus121 - CVAZZI32'\np6206\ng35\n(S'Variable_Type'\n(I2\nttRp6207\nsS'Y:PMachine97 - COCANA36'\np6208\ng35\n(S'Variable_Type'\n(I2\nttRp6209\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np6210\ng35\n(S'Variable_Type'\n(I2\nttRp6211\nsS'Y:PMachine83 - CILERO32'\np6212\ng35\n(S'Variable_Type'\n(I2\nttRp6213\nsS'Y:VBus83 - CILERO32'\np6214\ng35\n(S'Variable_Type'\n(I2\nttRp6215\nsS'Y:VBus66 - CCASAM34'\np6216\ng35\n(S'Variable_Type'\n(I2\nttRp6217\nsS'Y:PMachine1 - CBONIF11'\np6218\ng35\n(S'Variable_Type'\n(I2\nttRp6219\nsS'Y:VBus111 - CSTMAR31'\np6220\ng35\n(S'Variable_Type'\n(I2\nttRp6221\nsS'Y:VBus124 - CVAZZI35'\np6222\ng35\n(S'Variable_Type'\n(I2\nttRp6223\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np6224\ng35\n(S'Variable_Type'\n(I2\nttRp6225\nsS'Y:PMachine131 - CVAZZI312'\np6226\ng35\n(S'Variable_Type'\n(I2\nttRp6227\nsS'Y:VBus44 - CTAGLI21'\np6228\ng35\n(S'Variable_Type'\n(I2\nttRp6229\nsS'Y:VBus88 - CLUCCI33'\np6230\ng35\n(S'Variable_Type'\n(I2\nttRp6231\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np6232\ng35\n(S'Variable_Type'\n(I1\nttRp6233\nsS'Y:VBus38 - CSAGON21'\np6234\ng35\n(S'Variable_Type'\n(I2\nttRp6235\nsS'Y:PMachine81 - CGHISO32'\np6236\ng35\n(S'Variable_Type'\n(I2\nttRp6237\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np6238\ng35\n(S'Variable_Type'\n(I2\nttRp6239\nsS'Y:VBus110 - CSTLUC31'\np6240\ng35\n(S'Variable_Type'\n(I2\nttRp6241\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np6242\ng35\n(S'Variable_Type'\n(I2\nttRp6243\nssg650\n(lp6244\ng652\nasba(iOWContexts\nContext\np6245\n(dp6246\ng24\n(lp6247\nsg26\n(dp6248\nsg28\n(dp6249\ng1897\n(S''\nI-1\ntp6250\nsg1899\n(S''\nI0\ntp6251\nsg1901\n(g1281\ng35\n(S'Variable_Type'\n(I2\nttRp6252\ntp6253\nsg1904\n(S'Y10:%RateA 16-47'\ng35\n(S'Variable_Type'\n(I2\nttRp6254\ntp6255\nsg1906\n(S''\nI0\ntp6256\nsg1908\n(S'TOT ENR'\ng35\n(S'Variable_Type'\n(I2\nttRp6257\ntp6258\nssg46\nF1369932170.872\nsg47\n(dp6259\nS'Y:VBus48'\np6260\ng35\n(S'Variable_Type'\n(I2\nttRp6261\nsS'Y15:%RateA 18-44'\np6262\ng35\n(S'Variable_Type'\n(I2\nttRp6263\nsS'Y:VBus41'\np6264\ng35\n(S'Variable_Type'\n(I2\nttRp6265\nsS'Y:VBus40'\np6266\ng35\n(S'Variable_Type'\n(I2\nttRp6267\nsS'Y:VBus43'\np6268\ng35\n(S'Variable_Type'\n(I2\nttRp6269\nsS'Y:VBus42'\np6270\ng35\n(S'Variable_Type'\n(I2\nttRp6271\nsS'Y:VBus45'\np6272\ng35\n(S'Variable_Type'\n(I2\nttRp6273\nsS'Y:VBus44'\np6274\ng35\n(S'Variable_Type'\n(I2\nttRp6275\nsS'Y:VBus47'\np6276\ng35\n(S'Variable_Type'\n(I2\nttRp6277\nsS'Y:VBus46'\np6278\ng35\n(S'Variable_Type'\n(I2\nttRp6279\nsS'Y39:%RateA 32-45'\np6280\ng35\n(S'Variable_Type'\n(I2\nttRp6281\nsS'Y:Load 110'\np6282\ng35\n(S'Variable_Type'\n(I2\nttRp6283\nsS'Y:Load 115'\np6284\ng35\n(S'Variable_Type'\n(I2\nttRp6285\nsS'Y:PMachine134'\np6286\ng35\n(S'Variable_Type'\n(I1\nttRp6287\nsS'Y:VBus79'\np6288\ng35\n(S'Variable_Type'\n(I2\nttRp6289\nsS'Y13:%RateA 18-30'\np6290\ng35\n(S'Variable_Type'\n(I2\nttRp6291\nsS'TOT ENR'\np6292\ng6257\nsS'Y34:%RateA 28-38'\np6293\ng35\n(S'Variable_Type'\n(I2\nttRp6294\nsS'Y:NbeTransit'\np6295\ng35\n(S'Variable_Type'\n(I1\nttRp6296\nsS'Y:VBus104'\np6297\ng35\n(S'Variable_Type'\n(I2\nttRp6298\nsS'Y20:%RateA 20-44'\np6299\ng35\n(S'Variable_Type'\n(I2\nttRp6300\nsS'DIESEL CASA'\np6301\ng35\n(S'Variable_Type'\n(I2\nttRp6302\nsS'Y38:%RateA 32-45'\np6303\ng35\n(S'Variable_Type'\n(I2\nttRp6304\nsS'Y:PMachine73'\np6305\ng35\n(S'Variable_Type'\n(I2\nttRp6306\nsS'Y:PMachine72'\np6307\ng35\n(S'Variable_Type'\n(I2\nttRp6308\nsS'Y49:%RateA 40-48'\np6309\ng35\n(S'Variable_Type'\n(I2\nttRp6310\nsS'Y:PMachine77'\np6311\ng35\n(S'Variable_Type'\n(I2\nttRp6312\nsS'Y:PMachine75'\np6313\ng35\n(S'Variable_Type'\n(I2\nttRp6314\nsS'Y:PMachine74'\np6315\ng35\n(S'Variable_Type'\n(I2\nttRp6316\nsS'Y:PMachine78'\np6317\ng35\n(S'Variable_Type'\n(I1\nttRp6318\nsS'Y:PMachine138'\np6319\ng35\n(S'Variable_Type'\n(I1\nttRp6320\nsS'Y28:%RateA 24-42'\np6321\ng35\n(S'Variable_Type'\n(I2\nttRp6322\nsS'Y:PProdTot'\np6323\ng35\n(S'Variable_Type'\n(I2\nttRp6324\nsS'Y:PMachine69'\np6325\ng35\n(S'Variable_Type'\n(I2\nttRp6326\nsS'Y:VBus38'\np6327\ng35\n(S'Variable_Type'\n(I2\nttRp6328\nsS'Y:VBus39'\np6329\ng35\n(S'Variable_Type'\n(I2\nttRp6330\nsS'Y62:%RateA 86-87'\np6331\ng35\n(S'Variable_Type'\n(I1\nttRp6332\nsS'Y:PMachine1'\np6333\ng35\n(S'Variable_Type'\n(I2\nttRp6334\nsS'Y:VBus35'\np6335\ng35\n(S'Variable_Type'\n(I2\nttRp6336\nsS'Y:VBus36'\np6337\ng35\n(S'Variable_Type'\n(I2\nttRp6338\nsS'Y:VBus37'\np6339\ng35\n(S'Variable_Type'\n(I2\nttRp6340\nsS'Iteration'\np6341\ng35\n(S'Variable_Type'\n(I2\nttRp6342\nsS'Y:VBus31'\np6343\ng35\n(S'Variable_Type'\n(I2\nttRp6344\nsS'Y:VBus32'\np6345\ng35\n(S'Variable_Type'\n(I2\nttRp6346\nsS'Y:VBus33'\np6347\ng35\n(S'Variable_Type'\n(I2\nttRp6348\nsS'Y53:%RateA 57-58'\np6349\ng35\n(S'Variable_Type'\n(I1\nttRp6350\nsS'Y14:%RateA 18-31'\np6351\ng35\n(S'Variable_Type'\n(I2\nttRp6352\nsS'Y48:%RateA 39-46'\np6353\ng35\n(S'Variable_Type'\n(I2\nttRp6354\nsS'Y60:%RateA 82-83'\np6355\ng35\n(S'Variable_Type'\n(I1\nttRp6356\nsS'Y:PMachine87'\np6357\ng35\n(S'Variable_Type'\n(I2\nttRp6358\nsS'Y:VBus121'\np6359\ng35\n(S'Variable_Type'\n(I2\nttRp6360\nsS'Y:VBus120'\np6361\ng35\n(S'Variable_Type'\n(I2\nttRp6362\nsS'Y:VBus123'\np6363\ng35\n(S'Variable_Type'\n(I2\nttRp6364\nsS'Y:VBus122'\np6365\ng35\n(S'Variable_Type'\n(I2\nttRp6366\nsS'Y:VBus125'\np6367\ng35\n(S'Variable_Type'\n(I2\nttRp6368\nsS'Y:VBus124'\np6369\ng35\n(S'Variable_Type'\n(I2\nttRp6370\nsS'Y:VBus127'\np6371\ng35\n(S'Variable_Type'\n(I2\nttRp6372\nsS'Y:VBus126'\np6373\ng35\n(S'Variable_Type'\n(I2\nttRp6374\nsS'Y:VBus129'\np6375\ng35\n(S'Variable_Type'\n(I2\nttRp6376\nsS'Y:PMachine47'\np6377\ng35\n(S'Variable_Type'\n(I2\nttRp6378\nsS'Y37:%RateA 32-34'\np6379\ng35\n(S'Variable_Type'\n(I2\nttRp6380\nsS'Y43:%RateA 35-37'\np6381\ng35\n(S'Variable_Type'\n(I2\nttRp6382\nsS'Y:PMachine42'\np6383\ng35\n(S'Variable_Type'\n(I2\nttRp6384\nsS'Y0:%RateA 11-28'\np6385\ng35\n(S'Variable_Type'\n(I2\nttRp6386\nsS'Y:VBus67'\np6387\ng35\n(S'Variable_Type'\n(I2\nttRp6388\nsS'Y:Load 37'\np6389\ng35\n(S'Variable_Type'\n(I2\nttRp6390\nsS'Y65:%RateA 104-105'\np6391\ng35\n(S'Variable_Type'\n(I1\nttRp6392\nsS'Y40:%RateA 32-47'\np6393\ng35\n(S'Variable_Type'\n(I2\nttRp6394\nsS'Y:VBus128'\np6395\ng35\n(S'Variable_Type'\n(I2\nttRp6396\nsS'Y6:%RateA 14-15'\np6397\ng35\n(S'Variable_Type'\n(I1\nttRp6398\nsS'Y:VBus1'\np6399\ng35\n(S'Variable_Type'\n(I2\nttRp6400\nsS'Y44:%RateA 35-39'\np6401\ng35\n(S'Variable_Type'\n(I2\nttRp6402\nsS'Y:PMachine88'\np6403\ng35\n(S'Variable_Type'\n(I1\nttRp6404\nsS'Y42:%RateA 34-36'\np6405\ng35\n(S'Variable_Type'\n(I2\nttRp6406\nsS'Y57:%RateA 76-77'\np6407\ng35\n(S'Variable_Type'\n(I1\nttRp6408\nsS'Y:PMachine89'\np6409\ng35\n(S'Variable_Type'\n(I1\nttRp6410\nsS'Y:VBus77'\np6411\ng35\n(S'Variable_Type'\n(I2\nttRp6412\nsS'Y:VBus29'\np6413\ng35\n(S'Variable_Type'\n(I2\nttRp6414\nsS'Y:VBus28'\np6415\ng35\n(S'Variable_Type'\n(I2\nttRp6416\nsS'Y:VBus27'\np6417\ng35\n(S'Variable_Type'\n(I2\nttRp6418\nsS'Y:VBus26'\np6419\ng35\n(S'Variable_Type'\n(I2\nttRp6420\nsS'Y:VBus25'\np6421\ng35\n(S'Variable_Type'\n(I2\nttRp6422\nsS'Y:VBus24'\np6423\ng35\n(S'Variable_Type'\n(I2\nttRp6424\nsS'Y:VBus23'\np6425\ng35\n(S'Variable_Type'\n(I2\nttRp6426\nsS'Y:VBus22'\np6427\ng35\n(S'Variable_Type'\n(I2\nttRp6428\nsS'Y:VBus21'\np6429\ng35\n(S'Variable_Type'\n(I2\nttRp6430\nsS'Y:VBus20'\np6431\ng35\n(S'Variable_Type'\n(I2\nttRp6432\nsS'Y:VBus85'\np6433\ng35\n(S'Variable_Type'\n(I2\nttRp6434\nsS'Y66:%RateA 106-107'\np6435\ng35\n(S'Variable_Type'\n(I1\nttRp6436\nsS'Y:VBus84'\np6437\ng35\n(S'Variable_Type'\n(I2\nttRp6438\nsS'Y52:%RateA 55-56'\np6439\ng35\n(S'Variable_Type'\n(I1\nttRp6440\nsS'Y2:%RateA 12-24'\np6441\ng35\n(S'Variable_Type'\n(I2\nttRp6442\nsS'Y:VBus112'\np6443\ng35\n(S'Variable_Type'\n(I2\nttRp6444\nsS'Y:VBus132'\np6445\ng35\n(S'Variable_Type'\n(I2\nttRp6446\nsS'Y:PMachine58'\np6447\ng35\n(S'Variable_Type'\n(I2\nttRp6448\nsS'Y:VBus130'\np6449\ng35\n(S'Variable_Type'\n(I2\nttRp6450\nsS'Y:VBus131'\np6451\ng35\n(S'Variable_Type'\n(I2\nttRp6452\nsS'Y:VBus136'\np6453\ng35\n(S'Variable_Type'\n(I2\nttRp6454\nsS'Y:VBus137'\np6455\ng35\n(S'Variable_Type'\n(I2\nttRp6456\nsS'Y:VBus134'\np6457\ng35\n(S'Variable_Type'\n(I2\nttRp6458\nsS'Y:VBus135'\np6459\ng35\n(S'Variable_Type'\n(I2\nttRp6460\nsS'Y:VBus81'\np6461\ng35\n(S'Variable_Type'\n(I2\nttRp6462\nsS'Y:PMachine53'\np6463\ng35\n(S'Variable_Type'\n(I2\nttRp6464\nsS'Y:VBus139'\np6465\ng35\n(S'Variable_Type'\n(I2\nttRp6466\nsS'Y30:%RateA 25-29'\np6467\ng35\n(S'Variable_Type'\n(I2\nttRp6468\nsS'Y:VBus115'\np6469\ng35\n(S'Variable_Type'\n(I2\nttRp6470\nsS'Y:PMachine124'\np6471\ng35\n(S'Variable_Type'\n(I2\nttRp6472\nsS'Y:VBus83'\np6473\ng35\n(S'Variable_Type'\n(I2\nttRp6474\nsS'Y:PMachine125'\np6475\ng35\n(S'Variable_Type'\n(I2\nttRp6476\nsS'Y25:%RateA 23-41'\np6477\ng35\n(S'Variable_Type'\n(I2\nttRp6478\nsS'Y:%Losses'\np6479\ng35\n(S'Variable_Type'\n(I2\nttRp6480\nsS'Y:VBus12'\np6481\ng35\n(S'Variable_Type'\n(I2\nttRp6482\nsS'Y:VBus13'\np6483\ng35\n(S'Variable_Type'\n(I2\nttRp6484\nsS'Y50:%RateA 51-52'\np6485\ng35\n(S'Variable_Type'\n(I1\nttRp6486\nsS'Y:VBus11'\np6487\ng35\n(S'Variable_Type'\n(I2\nttRp6488\nsS'Y:VBus16'\np6489\ng35\n(S'Variable_Type'\n(I2\nttRp6490\nsS'Y:VBus17'\np6491\ng35\n(S'Variable_Type'\n(I2\nttRp6492\nsS'Y:VBus14'\np6493\ng35\n(S'Variable_Type'\n(I2\nttRp6494\nsS'Y:VBus15'\np6495\ng35\n(S'Variable_Type'\n(I2\nttRp6496\nsS'Y:VBus113'\np6497\ng35\n(S'Variable_Type'\n(I2\nttRp6498\nsS'Y:PMachine120'\np6499\ng35\n(S'Variable_Type'\n(I2\nttRp6500\nsS'Y:VBus18'\np6501\ng35\n(S'Variable_Type'\n(I2\nttRp6502\nsS'Y:VBus19'\np6503\ng35\n(S'Variable_Type'\n(I2\nttRp6504\nsS'Y4:%RateA 13-25'\np6505\ng35\n(S'Variable_Type'\n(I2\nttRp6506\nsS'DIESEL VAZZIO'\np6507\ng35\n(S'Variable_Type'\n(I2\nttRp6508\nsS'Y35:%RateA 28-47'\np6509\ng35\n(S'Variable_Type'\n(I2\nttRp6510\nsS'Y:PMachine122'\np6511\ng35\n(S'Variable_Type'\n(I2\nttRp6512\nsS'Y16:%RateA 19-21'\np6513\ng35\n(S'Variable_Type'\n(I2\nttRp6514\nsS'Y:VBus92'\np6515\ng35\n(S'Variable_Type'\n(I2\nttRp6516\nsS'Y7:%RateA 14-35'\np6517\ng35\n(S'Variable_Type'\n(I2\nttRp6518\nsS'Y:VBus90'\np6519\ng35\n(S'Variable_Type'\n(I2\nttRp6520\nsS'Y:VBus96'\np6521\ng35\n(S'Variable_Type'\n(I2\nttRp6522\nsS'Y:VBus97'\np6523\ng35\n(S'Variable_Type'\n(I2\nttRp6524\nsS'Y:VBus94'\np6525\ng35\n(S'Variable_Type'\n(I2\nttRp6526\nsS'Y:VBus95'\np6527\ng35\n(S'Variable_Type'\n(I2\nttRp6528\nsS'Y:VBus107'\np6529\ng35\n(S'Variable_Type'\n(I2\nttRp6530\nsS'Y:VBus106'\np6531\ng35\n(S'Variable_Type'\n(I2\nttRp6532\nsS'Y:VBus105'\np6533\ng35\n(S'Variable_Type'\n(I2\nttRp6534\nsS'Y22:%RateA 22-23'\np6535\ng35\n(S'Variable_Type'\n(I1\nttRp6536\nsS'Y:VBus103'\np6537\ng35\n(S'Variable_Type'\n(I2\nttRp6538\nsS'Y:VBus102'\np6539\ng35\n(S'Variable_Type'\n(I2\nttRp6540\nsS'Y:VBus101'\np6541\ng35\n(S'Variable_Type'\n(I2\nttRp6542\nsS'Y:VBus100'\np6543\ng35\n(S'Variable_Type'\n(I2\nttRp6544\nsS'Y:Load 55'\np6545\ng35\n(S'Variable_Type'\n(I2\nttRp6546\nsS'Y:Load 57'\np6547\ng35\n(S'Variable_Type'\n(I2\nttRp6548\nsS'Y:Load 51'\np6549\ng35\n(S'Variable_Type'\n(I2\nttRp6550\nsS'Y:VBus54'\np6551\ng35\n(S'Variable_Type'\n(I2\nttRp6552\nsS'Y:VBus109'\np6553\ng35\n(S'Variable_Type'\n(I2\nttRp6554\nsS'Y46:%RateA 36-48'\np6555\ng35\n(S'Variable_Type'\n(I2\nttRp6556\nsS'Y:Load 80'\np6557\ng35\n(S'Variable_Type'\n(I2\nttRp6558\nsS'Y:PMachine133'\np6559\ng35\n(S'Variable_Type'\n(I2\nttRp6560\nsS'Y:VBus55'\np6561\ng35\n(S'Variable_Type'\n(I2\nttRp6562\nsS'Y:PMachine29'\np6563\ng35\n(S'Variable_Type'\n(I1\nttRp6564\nsS'Y24:%RateA 23-32'\np6565\ng35\n(S'Variable_Type'\n(I2\nttRp6566\nsS'X:lineOff#'\np6567\ng35\n(S'Variable_Type'\n(I2\nttRp6568\nsS'Y:Max%A'\np6569\ng35\n(S'Variable_Type'\n(I2\nttRp6570\nsS'Y:NbeTransit_0.9-1'\np6571\ng35\n(S'Variable_Type'\n(I1\nttRp6572\nsS'XProdEolienne%Pnom'\np6573\ng35\n(S'Variable_Type'\n(I2\nttRp6574\nsS'Y33:%RateA 27-33'\np6575\ng35\n(S'Variable_Type'\n(I2\nttRp6576\nsS'Y59:%RateA 80-81'\np6577\ng35\n(S'Variable_Type'\n(I1\nttRp6578\nsS'Y:VBus65'\np6579\ng35\n(S'Variable_Type'\n(I2\nttRp6580\nsS'TAC VAZZIO'\np6581\ng35\n(S'Variable_Type'\n(I2\nttRp6582\nsS'Y:VBus118'\np6583\ng35\n(S'Variable_Type'\n(I2\nttRp6584\nsS'Y:VBus119'\np6585\ng35\n(S'Variable_Type'\n(I2\nttRp6586\nsS'Y:PMachine117'\np6587\ng35\n(S'Variable_Type'\n(I2\nttRp6588\nsS'Y:PMachine116'\np6589\ng35\n(S'Variable_Type'\n(I2\nttRp6590\nsS'Y:PMachine111'\np6591\ng35\n(S'Variable_Type'\n(I2\nttRp6592\nsS'Y:VBus88'\np6593\ng35\n(S'Variable_Type'\n(I2\nttRp6594\nsS'Y:PMachine113'\np6595\ng35\n(S'Variable_Type'\n(I2\nttRp6596\nsS'Y:VBus93'\np6597\ng35\n(S'Variable_Type'\n(I2\nttRp6598\nsS'Y:VBus110'\np6599\ng35\n(S'Variable_Type'\n(I2\nttRp6600\nsS'Y:VBus111'\np6601\ng35\n(S'Variable_Type'\n(I2\nttRp6602\nsS'Y:VBus87'\np6603\ng35\n(S'Variable_Type'\n(I2\nttRp6604\nsS'Y12:%RateA 18-30'\np6605\ng35\n(S'Variable_Type'\n(I2\nttRp6606\nsS'Y:VBus114'\np6607\ng35\n(S'Variable_Type'\n(I2\nttRp6608\nsS'Y:VBus80'\np6609\ng35\n(S'Variable_Type'\n(I2\nttRp6610\nsS'Y:VBus116'\np6611\ng35\n(S'Variable_Type'\n(I2\nttRp6612\nsS'Y:VBus82'\np6613\ng35\n(S'Variable_Type'\n(I2\nttRp6614\nsS'Y61:%RateA 84-85'\np6615\ng35\n(S'Variable_Type'\n(I1\nttRp6616\nsS'Y31:%RateA 26-41'\np6617\ng35\n(S'Variable_Type'\n(I2\nttRp6618\nsS'Y:PMachine131'\np6619\ng35\n(S'Variable_Type'\n(I2\nttRp6620\nsS'Y47:%RateA 38-43'\np6621\ng35\n(S'Variable_Type'\n(I2\nttRp6622\nsS'Y:Load 42'\np6623\ng35\n(S'Variable_Type'\n(I2\nttRp6624\nsS'Y:PMachine85'\np6625\ng35\n(S'Variable_Type'\n(I2\nttRp6626\nsS'Y32:%RateA 26-46'\np6627\ng35\n(S'Variable_Type'\n(I2\nttRp6628\nsS'Y:PMachine132'\np6629\ng35\n(S'Variable_Type'\n(I2\nttRp6630\nsS'Y18:%RateA 19-27'\np6631\ng35\n(S'Variable_Type'\n(I2\nttRp6632\nsS'Y:VBus86'\np6633\ng35\n(S'Variable_Type'\n(I2\nttRp6634\nsS'Y63:%RateA 95-96'\np6635\ng35\n(S'Variable_Type'\n(I1\nttRp6636\nsS'Y17:%RateA 19-22'\np6637\ng35\n(S'Variable_Type'\n(I2\nttRp6638\nsS'Y41:%RateA 32-48'\np6639\ng35\n(S'Variable_Type'\n(I2\nttRp6640\nsS'Y:PMachine30'\np6641\ng35\n(S'Variable_Type'\n(I2\nttRp6642\nsS'Y:VBus117'\np6643\ng35\n(S'Variable_Type'\n(I2\nttRp6644\nsS'Y56:%RateA 72-73'\np6645\ng35\n(S'Variable_Type'\n(I1\nttRp6646\nsS'Y68:%RateA 112-113'\np6647\ng35\n(S'Variable_Type'\n(I1\nttRp6648\nsS'Y:PMachine130'\np6649\ng35\n(S'Variable_Type'\n(I2\nttRp6650\nsS'Y27:%RateA 24-33'\np6651\ng35\n(S'Variable_Type'\n(I2\nttRp6652\nsS'Y:PMachine106'\np6653\ng35\n(S'Variable_Type'\n(I2\nttRp6654\nsS'Y:PMachine107'\np6655\ng35\n(S'Variable_Type'\n(I2\nttRp6656\nsS'Y:PMachine104'\np6657\ng35\n(S'Variable_Type'\n(I2\nttRp6658\nsS'Y:VBus73'\np6659\ng35\n(S'Variable_Type'\n(I2\nttRp6660\nsS'Y:VBus74'\np6661\ng35\n(S'Variable_Type'\n(I2\nttRp6662\nsS'Y:VBus75'\np6663\ng35\n(S'Variable_Type'\n(I2\nttRp6664\nsS'Y:VBus76'\np6665\ng35\n(S'Variable_Type'\n(I2\nttRp6666\nsS'Y:PMachine101'\np6667\ng35\n(S'Variable_Type'\n(I2\nttRp6668\nsS'Y:VBus78'\np6669\ng35\n(S'Variable_Type'\n(I2\nttRp6670\nsS'Y:Load 59'\np6671\ng35\n(S'Variable_Type'\n(I2\nttRp6672\nsS'Y:PMachine115'\np6673\ng35\n(S'Variable_Type'\n(I2\nttRp6674\nsS'Y51:%RateA 53-54'\np6675\ng35\n(S'Variable_Type'\n(I1\nttRp6676\nsS'Y67:%RateA 108-109'\np6677\ng35\n(S'Variable_Type'\n(I1\nttRp6678\nsS'Y:PMachine109'\np6679\ng35\n(S'Variable_Type'\n(I2\nttRp6680\nsS'Y:PMachine83'\np6681\ng35\n(S'Variable_Type'\n(I2\nttRp6682\nsS'Y:PMachine81'\np6683\ng35\n(S'Variable_Type'\n(I2\nttRp6684\nsS'Y:PMachine86'\np6685\ng35\n(S'Variable_Type'\n(I2\nttRp6686\nsS'Y:Load 76'\np6687\ng35\n(S'Variable_Type'\n(I2\nttRp6688\nsS'Y:Load 74'\np6689\ng35\n(S'Variable_Type'\n(I2\nttRp6690\nsS'Y45:%RateA 36-37'\np6691\ng35\n(S'Variable_Type'\n(I2\nttRp6692\nsS'Y58:%RateA 78-79'\np6693\ng35\n(S'Variable_Type'\n(I1\nttRp6694\nsS'Y:Load 78'\np6695\ng35\n(S'Variable_Type'\n(I2\nttRp6696\nsS'X:Load(pu)'\np6697\ng6252\nsS'Y5:%RateA 13-29'\np6698\ng35\n(S'Variable_Type'\n(I2\nttRp6699\nsS'Y:PMachine118'\np6700\ng35\n(S'Variable_Type'\n(I2\nttRp6701\nsS'Y1:%RateA 11-47'\np6702\ng35\n(S'Variable_Type'\n(I2\nttRp6703\nsS'Y:VBus60'\np6704\ng35\n(S'Variable_Type'\n(I2\nttRp6705\nsS'Y:PMachine137'\np6706\ng35\n(S'Variable_Type'\n(I1\nttRp6707\nsS'Y29:%RateA 25-29'\np6708\ng35\n(S'Variable_Type'\n(I2\nttRp6709\nsS'Y:VBus66'\np6710\ng35\n(S'Variable_Type'\n(I2\nttRp6711\nsS'Y36:%RateA 29-30'\np6712\ng35\n(S'Variable_Type'\n(I1\nttRp6713\nsS'Y54:%RateA 59-60'\np6714\ng35\n(S'Variable_Type'\n(I1\nttRp6715\nsS'Y:Load 90'\np6716\ng35\n(S'Variable_Type'\n(I2\nttRp6717\nsS'Y9:%RateA 16-32'\np6718\ng35\n(S'Variable_Type'\n(I2\nttRp6719\nsS'INTERCOS'\np6720\ng35\n(S'Variable_Type'\n(I2\nttRp6721\nsS'Y:Load 95'\np6722\ng35\n(S'Variable_Type'\n(I2\nttRp6723\nsS'Y:VBus63'\np6724\ng35\n(S'Variable_Type'\n(I2\nttRp6725\nsS'Y:VBus62'\np6726\ng35\n(S'Variable_Type'\n(I2\nttRp6727\nsS'Y:VBus61'\np6728\ng35\n(S'Variable_Type'\n(I2\nttRp6729\nsS'Y55:%RateA 61-62'\np6730\ng35\n(S'Variable_Type'\n(I1\nttRp6731\nsS'Y8:%RateA 15-35'\np6732\ng35\n(S'Variable_Type'\n(I2\nttRp6733\nsS'Y:PMachine136'\np6734\ng35\n(S'Variable_Type'\n(I1\nttRp6735\nsS'Y:PMachine135'\np6736\ng35\n(S'Variable_Type'\n(I1\nttRp6737\nsS'Y:VBus64'\np6738\ng35\n(S'Variable_Type'\n(I2\nttRp6739\nsS'Y:PMachine94'\np6740\ng35\n(S'Variable_Type'\n(I2\nttRp6741\nsS'Y:VBus69'\np6742\ng35\n(S'Variable_Type'\n(I2\nttRp6743\nsS'Y:VBus108'\np6744\ng35\n(S'Variable_Type'\n(I2\nttRp6745\nsS'Y:PMachine139'\np6746\ng35\n(S'Variable_Type'\n(I1\nttRp6747\nsS'Y:PMachine97'\np6748\ng35\n(S'Variable_Type'\n(I2\nttRp6749\nsS'Y:PMachine92'\np6750\ng35\n(S'Variable_Type'\n(I2\nttRp6751\nsS'Y:VBus68'\np6752\ng35\n(S'Variable_Type'\n(I2\nttRp6753\nsS'Y:Load 61'\np6754\ng35\n(S'Variable_Type'\n(I2\nttRp6755\nsS'Y:VBus89'\np6756\ng35\n(S'Variable_Type'\n(I2\nttRp6757\nsS'Y21:%RateA 21-43'\np6758\ng35\n(S'Variable_Type'\n(I2\nttRp6759\nsS'Y:PMachine90'\np6760\ng35\n(S'Variable_Type'\n(I2\nttRp6761\nsS'Y:PMachine14'\np6762\ng35\n(S'Variable_Type'\n(I2\nttRp6763\nsS'Y:PMachine63'\np6764\ng35\n(S'Variable_Type'\n(I2\nttRp6765\nsS'Y:PMachine93'\np6766\ng35\n(S'Variable_Type'\n(I2\nttRp6767\nsS'Y:PConsoTot'\np6768\ng35\n(S'Variable_Type'\n(I2\nttRp6769\nsS'Y23:%RateA 22-31'\np6770\ng35\n(S'Variable_Type'\n(I2\nttRp6771\nsS'Y19:%RateA 20-26'\np6772\ng35\n(S'Variable_Type'\n(I2\nttRp6773\nsS'Y:PMachine18'\np6774\ng35\n(S'Variable_Type'\n(I2\nttRp6775\nsS'Y:VBus34'\np6776\ng35\n(S'Variable_Type'\n(I2\nttRp6777\nsS'Y:NbeTension'\np6778\ng35\n(S'Variable_Type'\n(I2\nttRp6779\nsS'TOT PV'\np6780\ng35\n(S'Variable_Type'\n(I2\nttRp6781\nsS'Y:PMachine128'\np6782\ng35\n(S'Variable_Type'\n(I2\nttRp6783\nsS'Y:PMachine129'\np6784\ng35\n(S'Variable_Type'\n(I2\nttRp6785\nsS'Y:VBus133'\np6786\ng35\n(S'Variable_Type'\n(I2\nttRp6787\nsS'Y:Load 82'\np6788\ng35\n(S'Variable_Type'\n(I2\nttRp6789\nsS'Y:VBus30'\np6790\ng35\n(S'Variable_Type'\n(I2\nttRp6791\nsS'Y:PMachine126'\np6792\ng35\n(S'Variable_Type'\n(I2\nttRp6793\nsS'Y:PMachine127'\np6794\ng35\n(S'Variable_Type'\n(I2\nttRp6795\nsS'Y:Load 86'\np6796\ng35\n(S'Variable_Type'\n(I2\nttRp6797\nsS'Y:PMachine121'\np6798\ng35\n(S'Variable_Type'\n(I2\nttRp6799\nsS'Y:Load 84'\np6800\ng35\n(S'Variable_Type'\n(I2\nttRp6801\nsS'Y:PMachine123'\np6802\ng35\n(S'Variable_Type'\n(I2\nttRp6803\nsS'Y:Load 102'\np6804\ng35\n(S'Variable_Type'\n(I2\nttRp6805\nsS'Y:VBus57'\np6806\ng35\n(S'Variable_Type'\n(I2\nttRp6807\nsS'Y:Load 100'\np6808\ng35\n(S'Variable_Type'\n(I2\nttRp6809\nsS'Y:Load 101'\np6810\ng35\n(S'Variable_Type'\n(I2\nttRp6811\nsS'Y:VBus52'\np6812\ng35\n(S'Variable_Type'\n(I2\nttRp6813\nsS'Y:VBus53'\np6814\ng35\n(S'Variable_Type'\n(I2\nttRp6815\nsS'Y:Load 104'\np6816\ng35\n(S'Variable_Type'\n(I2\nttRp6817\nsS'Y:VBus51'\np6818\ng35\n(S'Variable_Type'\n(I2\nttRp6819\nsS'Y:Load 108'\np6820\ng35\n(S'Variable_Type'\n(I2\nttRp6821\nsS'Y64:%RateA 102-103'\np6822\ng35\n(S'Variable_Type'\n(I1\nttRp6823\nsS'Y:PMachine112'\np6824\ng35\n(S'Variable_Type'\n(I2\nttRp6825\nsS'Y:VBus58'\np6826\ng35\n(S'Variable_Type'\n(I2\nttRp6827\nsS'Y:VBus59'\np6828\ng35\n(S'Variable_Type'\n(I2\nttRp6829\nsS'Y:Load 53'\np6830\ng35\n(S'Variable_Type'\n(I2\nttRp6831\nsS'Y10:%RateA 16-47'\np6832\ng6254\nsS'Y:PMachine54'\np6833\ng35\n(S'Variable_Type'\n(I2\nttRp6834\nsS'Y:VBus56'\np6835\ng35\n(S'Variable_Type'\n(I2\nttRp6836\nsS'TOT WIND'\np6837\ng35\n(S'Variable_Type'\n(I2\nttRp6838\nsS'Y3:%RateA 12-24'\np6839\ng35\n(S'Variable_Type'\n(I2\nttRp6840\nsS'Y11:%RateA 17-27'\np6841\ng35\n(S'Variable_Type'\n(I2\nttRp6842\nsS'Y:PMachine114'\np6843\ng35\n(S'Variable_Type'\n(I2\nttRp6844\nsS'Y:VBus72'\np6845\ng35\n(S'Variable_Type'\n(I2\nttRp6846\nsS'Y:PMachine60'\np6847\ng35\n(S'Variable_Type'\n(I2\nttRp6848\nsS'Y:PMachine61'\np6849\ng35\n(S'Variable_Type'\n(I1\nttRp6850\nsS'Y:PMachine62'\np6851\ng35\n(S'Variable_Type'\n(I2\nttRp6852\nsS'Y:PMachine105'\np6853\ng35\n(S'Variable_Type'\n(I2\nttRp6854\nsS'Y:PMachine64'\np6855\ng35\n(S'Variable_Type'\n(I2\nttRp6856\nsS'Y:PMachine65'\np6857\ng35\n(S'Variable_Type'\n(I2\nttRp6858\nsS'Y:PMachine66'\np6859\ng35\n(S'Variable_Type'\n(I2\nttRp6860\nsS'Y:PMachine67'\np6861\ng35\n(S'Variable_Type'\n(I2\nttRp6862\nsS'Y:PMachine68'\np6863\ng35\n(S'Variable_Type'\n(I2\nttRp6864\nsS'Y:PMachine102'\np6865\ng35\n(S'Variable_Type'\n(I2\nttRp6866\nsS'X:ProdPV%Pnom'\np6867\ng35\n(S'Variable_Type'\n(I2\nttRp6868\nsS'Y:VBus138'\np6869\ng35\n(S'Variable_Type'\n(I2\nttRp6870\nsS'Y26:%RateA 24-25'\np6871\ng35\n(S'Variable_Type'\n(I1\nttRp6872\nssg650\n(lp6873\ng652\nasba(iOWContexts\nContext\np6874\n(dp6875\ng24\n(lp6876\nsg26\n(dp6877\nsg28\n(dp6878\ng1897\n(S''\nI-1\ntp6879\nsg1899\n(S''\nI0\ntp6880\nsg1901\n(g1281\ng35\n(S'Variable_Type'\n(I2\nttRp6881\ntp6882\nsg1904\n(S'DIESEL CASA'\ng35\n(S'Variable_Type'\n(I2\nttRp6883\ntp6884\nsg1906\n(S''\nI0\ntp6885\nsg1908\n(S'Y:Load 115'\ng35\n(S'Variable_Type'\n(I2\nttRp6886\ntp6887\nssg46\nF1368453819.1259999\nsg47\n(dp6888\nS'Y:VBus48'\np6889\ng35\n(S'Variable_Type'\n(I2\nttRp6890\nsS'Y15:%RateA 18-44'\np6891\ng35\n(S'Variable_Type'\n(I2\nttRp6892\nsS'Y:VBus41'\np6893\ng35\n(S'Variable_Type'\n(I2\nttRp6894\nsS'Y:VBus40'\np6895\ng35\n(S'Variable_Type'\n(I2\nttRp6896\nsS'Y:VBus43'\np6897\ng35\n(S'Variable_Type'\n(I2\nttRp6898\nsS'Y:VBus42'\np6899\ng35\n(S'Variable_Type'\n(I2\nttRp6900\nsS'Y:VBus45'\np6901\ng35\n(S'Variable_Type'\n(I2\nttRp6902\nsS'Y:VBus44'\np6903\ng35\n(S'Variable_Type'\n(I2\nttRp6904\nsS'Y:VBus47'\np6905\ng35\n(S'Variable_Type'\n(I2\nttRp6906\nsS'Y:VBus46'\np6907\ng35\n(S'Variable_Type'\n(I2\nttRp6908\nsS'Y39:%RateA 32-45'\np6909\ng35\n(S'Variable_Type'\n(I2\nttRp6910\nsS'Y:Load 110'\np6911\ng35\n(S'Variable_Type'\n(I2\nttRp6912\nsS'Y:Load 115'\np6913\ng6886\nsS'Y:PMachine134'\np6914\ng35\n(S'Variable_Type'\n(I1\nttRp6915\nsS'Y:VBus79'\np6916\ng35\n(S'Variable_Type'\n(I2\nttRp6917\nsS'Y13:%RateA 18-30'\np6918\ng35\n(S'Variable_Type'\n(I2\nttRp6919\nsS'Y34:%RateA 28-38'\np6920\ng35\n(S'Variable_Type'\n(I2\nttRp6921\nsS'Y:NbeTransit'\np6922\ng35\n(S'Variable_Type'\n(I1\nttRp6923\nsS'Y:VBus104'\np6924\ng35\n(S'Variable_Type'\n(I2\nttRp6925\nsS'Y20:%RateA 20-44'\np6926\ng35\n(S'Variable_Type'\n(I2\nttRp6927\nsS'DIESEL CASA'\np6928\ng6883\nsS'Y38:%RateA 32-45'\np6929\ng35\n(S'Variable_Type'\n(I2\nttRp6930\nsS'Y:PMachine73'\np6931\ng35\n(S'Variable_Type'\n(I2\nttRp6932\nsS'Y:PMachine72'\np6933\ng35\n(S'Variable_Type'\n(I2\nttRp6934\nsS'Y49:%RateA 40-48'\np6935\ng35\n(S'Variable_Type'\n(I2\nttRp6936\nsS'Y:PMachine77'\np6937\ng35\n(S'Variable_Type'\n(I2\nttRp6938\nsS'Y:PMachine75'\np6939\ng35\n(S'Variable_Type'\n(I2\nttRp6940\nsS'Y:PMachine74'\np6941\ng35\n(S'Variable_Type'\n(I2\nttRp6942\nsS'Y:PMachine78'\np6943\ng35\n(S'Variable_Type'\n(I1\nttRp6944\nsS'Y:PMachine138'\np6945\ng35\n(S'Variable_Type'\n(I1\nttRp6946\nsS'Y28:%RateA 24-42'\np6947\ng35\n(S'Variable_Type'\n(I2\nttRp6948\nsS'Y:PProdTot'\np6949\ng35\n(S'Variable_Type'\n(I2\nttRp6950\nsS'Y:PMachine69'\np6951\ng35\n(S'Variable_Type'\n(I2\nttRp6952\nsS'Y:VBus38'\np6953\ng35\n(S'Variable_Type'\n(I2\nttRp6954\nsS'Y:VBus39'\np6955\ng35\n(S'Variable_Type'\n(I2\nttRp6956\nsS'Y62:%RateA 86-87'\np6957\ng35\n(S'Variable_Type'\n(I1\nttRp6958\nsS'Y:PMachine1'\np6959\ng35\n(S'Variable_Type'\n(I2\nttRp6960\nsS'Y:VBus35'\np6961\ng35\n(S'Variable_Type'\n(I2\nttRp6962\nsS'Y:VBus36'\np6963\ng35\n(S'Variable_Type'\n(I2\nttRp6964\nsS'Y:VBus37'\np6965\ng35\n(S'Variable_Type'\n(I2\nttRp6966\nsS'Iteration'\np6967\ng35\n(S'Variable_Type'\n(I2\nttRp6968\nsS'Y:VBus31'\np6969\ng35\n(S'Variable_Type'\n(I2\nttRp6970\nsS'Y:VBus32'\np6971\ng35\n(S'Variable_Type'\n(I2\nttRp6972\nsS'Y:VBus33'\np6973\ng35\n(S'Variable_Type'\n(I2\nttRp6974\nsS'Y53:%RateA 57-58'\np6975\ng35\n(S'Variable_Type'\n(I1\nttRp6976\nsS'Y14:%RateA 18-31'\np6977\ng35\n(S'Variable_Type'\n(I2\nttRp6978\nsS'Y48:%RateA 39-46'\np6979\ng35\n(S'Variable_Type'\n(I2\nttRp6980\nsS'Y60:%RateA 82-83'\np6981\ng35\n(S'Variable_Type'\n(I1\nttRp6982\nsS'Y:PMachine87'\np6983\ng35\n(S'Variable_Type'\n(I2\nttRp6984\nsS'Y:VBus121'\np6985\ng35\n(S'Variable_Type'\n(I2\nttRp6986\nsS'Y:VBus120'\np6987\ng35\n(S'Variable_Type'\n(I2\nttRp6988\nsS'Y:VBus123'\np6989\ng35\n(S'Variable_Type'\n(I2\nttRp6990\nsS'Y:VBus122'\np6991\ng35\n(S'Variable_Type'\n(I2\nttRp6992\nsS'Y:VBus125'\np6993\ng35\n(S'Variable_Type'\n(I2\nttRp6994\nsS'Y:VBus124'\np6995\ng35\n(S'Variable_Type'\n(I2\nttRp6996\nsS'Y:VBus127'\np6997\ng35\n(S'Variable_Type'\n(I2\nttRp6998\nsS'Y:VBus126'\np6999\ng35\n(S'Variable_Type'\n(I2\nttRp7000\nsS'Y:VBus129'\np7001\ng35\n(S'Variable_Type'\n(I2\nttRp7002\nsS'Y:VBus128'\np7003\ng35\n(S'Variable_Type'\n(I2\nttRp7004\nsS'Y37:%RateA 32-34'\np7005\ng35\n(S'Variable_Type'\n(I2\nttRp7006\nsS'Y43:%RateA 35-37'\np7007\ng35\n(S'Variable_Type'\n(I2\nttRp7008\nsS'Y:PMachine42'\np7009\ng35\n(S'Variable_Type'\n(I2\nttRp7010\nsS'Y0:%RateA 11-28'\np7011\ng35\n(S'Variable_Type'\n(I2\nttRp7012\nsS'Y:VBus67'\np7013\ng35\n(S'Variable_Type'\n(I2\nttRp7014\nsS'Y:Load 37'\np7015\ng35\n(S'Variable_Type'\n(I2\nttRp7016\nsS'Y65:%RateA 104-105'\np7017\ng35\n(S'Variable_Type'\n(I1\nttRp7018\nsS'Y40:%RateA 32-47'\np7019\ng35\n(S'Variable_Type'\n(I2\nttRp7020\nsS'Y:PMachine47'\np7021\ng35\n(S'Variable_Type'\n(I2\nttRp7022\nsS'Y6:%RateA 14-15'\np7023\ng35\n(S'Variable_Type'\n(I1\nttRp7024\nsS'Y:VBus1'\np7025\ng35\n(S'Variable_Type'\n(I2\nttRp7026\nsS'Y44:%RateA 35-39'\np7027\ng35\n(S'Variable_Type'\n(I2\nttRp7028\nsS'Y:PMachine88'\np7029\ng35\n(S'Variable_Type'\n(I1\nttRp7030\nsS'Y42:%RateA 34-36'\np7031\ng35\n(S'Variable_Type'\n(I2\nttRp7032\nsS'Y57:%RateA 76-77'\np7033\ng35\n(S'Variable_Type'\n(I1\nttRp7034\nsS'Y:PMachine89'\np7035\ng35\n(S'Variable_Type'\n(I1\nttRp7036\nsS'Y:VBus77'\np7037\ng35\n(S'Variable_Type'\n(I2\nttRp7038\nsS'Y:VBus29'\np7039\ng35\n(S'Variable_Type'\n(I2\nttRp7040\nsS'Y:VBus28'\np7041\ng35\n(S'Variable_Type'\n(I2\nttRp7042\nsS'Y:VBus27'\np7043\ng35\n(S'Variable_Type'\n(I2\nttRp7044\nsS'Y:VBus26'\np7045\ng35\n(S'Variable_Type'\n(I2\nttRp7046\nsS'Y:VBus25'\np7047\ng35\n(S'Variable_Type'\n(I2\nttRp7048\nsS'Y:VBus24'\np7049\ng35\n(S'Variable_Type'\n(I2\nttRp7050\nsS'Y:VBus23'\np7051\ng35\n(S'Variable_Type'\n(I2\nttRp7052\nsS'Y:VBus22'\np7053\ng35\n(S'Variable_Type'\n(I2\nttRp7054\nsS'Y:VBus21'\np7055\ng35\n(S'Variable_Type'\n(I2\nttRp7056\nsS'Y:VBus20'\np7057\ng35\n(S'Variable_Type'\n(I2\nttRp7058\nsS'Y:VBus85'\np7059\ng35\n(S'Variable_Type'\n(I2\nttRp7060\nsS'Y66:%RateA 106-107'\np7061\ng35\n(S'Variable_Type'\n(I1\nttRp7062\nsS'Y:VBus84'\np7063\ng35\n(S'Variable_Type'\n(I2\nttRp7064\nsS'Y52:%RateA 55-56'\np7065\ng35\n(S'Variable_Type'\n(I1\nttRp7066\nsS'Y2:%RateA 12-24'\np7067\ng35\n(S'Variable_Type'\n(I2\nttRp7068\nsS'Y:VBus112'\np7069\ng35\n(S'Variable_Type'\n(I2\nttRp7070\nsS'Y:VBus132'\np7071\ng35\n(S'Variable_Type'\n(I2\nttRp7072\nsS'Y:PMachine58'\np7073\ng35\n(S'Variable_Type'\n(I2\nttRp7074\nsS'Y:VBus130'\np7075\ng35\n(S'Variable_Type'\n(I2\nttRp7076\nsS'Y:VBus131'\np7077\ng35\n(S'Variable_Type'\n(I2\nttRp7078\nsS'Y:VBus136'\np7079\ng35\n(S'Variable_Type'\n(I2\nttRp7080\nsS'Y:VBus137'\np7081\ng35\n(S'Variable_Type'\n(I2\nttRp7082\nsS'Y:VBus134'\np7083\ng35\n(S'Variable_Type'\n(I2\nttRp7084\nsS'Y:VBus135'\np7085\ng35\n(S'Variable_Type'\n(I2\nttRp7086\nsS'Y:VBus81'\np7087\ng35\n(S'Variable_Type'\n(I2\nttRp7088\nsS'Y:PMachine53'\np7089\ng35\n(S'Variable_Type'\n(I2\nttRp7090\nsS'Y:VBus139'\np7091\ng35\n(S'Variable_Type'\n(I2\nttRp7092\nsS'Y30:%RateA 25-29'\np7093\ng35\n(S'Variable_Type'\n(I2\nttRp7094\nsS'Y:VBus115'\np7095\ng35\n(S'Variable_Type'\n(I2\nttRp7096\nsS'Y:PMachine124'\np7097\ng35\n(S'Variable_Type'\n(I2\nttRp7098\nsS'Y:VBus83'\np7099\ng35\n(S'Variable_Type'\n(I2\nttRp7100\nsS'Y:PMachine125'\np7101\ng35\n(S'Variable_Type'\n(I2\nttRp7102\nsS'Y25:%RateA 23-41'\np7103\ng35\n(S'Variable_Type'\n(I2\nttRp7104\nsS'Y:%Losses'\np7105\ng35\n(S'Variable_Type'\n(I2\nttRp7106\nsS'Y:VBus12'\np7107\ng35\n(S'Variable_Type'\n(I2\nttRp7108\nsS'Y:VBus13'\np7109\ng35\n(S'Variable_Type'\n(I2\nttRp7110\nsS'Y50:%RateA 51-52'\np7111\ng35\n(S'Variable_Type'\n(I1\nttRp7112\nsS'Y:VBus11'\np7113\ng35\n(S'Variable_Type'\n(I2\nttRp7114\nsS'Y:VBus16'\np7115\ng35\n(S'Variable_Type'\n(I2\nttRp7116\nsS'Y:VBus17'\np7117\ng35\n(S'Variable_Type'\n(I2\nttRp7118\nsS'Y:VBus14'\np7119\ng35\n(S'Variable_Type'\n(I2\nttRp7120\nsS'Y:VBus15'\np7121\ng35\n(S'Variable_Type'\n(I2\nttRp7122\nsS'Y:VBus113'\np7123\ng35\n(S'Variable_Type'\n(I2\nttRp7124\nsS'Y:PMachine120'\np7125\ng35\n(S'Variable_Type'\n(I2\nttRp7126\nsS'Y:VBus18'\np7127\ng35\n(S'Variable_Type'\n(I2\nttRp7128\nsS'Y:VBus19'\np7129\ng35\n(S'Variable_Type'\n(I2\nttRp7130\nsS'Y4:%RateA 13-25'\np7131\ng35\n(S'Variable_Type'\n(I2\nttRp7132\nsS'DIESEL VAZZIO'\np7133\ng35\n(S'Variable_Type'\n(I2\nttRp7134\nsS'Y35:%RateA 28-47'\np7135\ng35\n(S'Variable_Type'\n(I2\nttRp7136\nsS'Y:PMachine122'\np7137\ng35\n(S'Variable_Type'\n(I2\nttRp7138\nsS'Y16:%RateA 19-21'\np7139\ng35\n(S'Variable_Type'\n(I2\nttRp7140\nsS'Y:VBus92'\np7141\ng35\n(S'Variable_Type'\n(I2\nttRp7142\nsS'Y7:%RateA 14-35'\np7143\ng35\n(S'Variable_Type'\n(I2\nttRp7144\nsS'Y:VBus90'\np7145\ng35\n(S'Variable_Type'\n(I2\nttRp7146\nsS'Y:VBus96'\np7147\ng35\n(S'Variable_Type'\n(I2\nttRp7148\nsS'Y:VBus97'\np7149\ng35\n(S'Variable_Type'\n(I2\nttRp7150\nsS'Y:VBus94'\np7151\ng35\n(S'Variable_Type'\n(I2\nttRp7152\nsS'Y:VBus95'\np7153\ng35\n(S'Variable_Type'\n(I2\nttRp7154\nsS'Y:VBus107'\np7155\ng35\n(S'Variable_Type'\n(I2\nttRp7156\nsS'Y:VBus106'\np7157\ng35\n(S'Variable_Type'\n(I2\nttRp7158\nsS'Y:VBus105'\np7159\ng35\n(S'Variable_Type'\n(I2\nttRp7160\nsS'Y22:%RateA 22-23'\np7161\ng35\n(S'Variable_Type'\n(I1\nttRp7162\nsS'Y:VBus103'\np7163\ng35\n(S'Variable_Type'\n(I2\nttRp7164\nsS'Y:VBus102'\np7165\ng35\n(S'Variable_Type'\n(I2\nttRp7166\nsS'Y:VBus101'\np7167\ng35\n(S'Variable_Type'\n(I2\nttRp7168\nsS'Y:VBus100'\np7169\ng35\n(S'Variable_Type'\n(I2\nttRp7170\nsS'Y:Load 55'\np7171\ng35\n(S'Variable_Type'\n(I2\nttRp7172\nsS'Y:Load 57'\np7173\ng35\n(S'Variable_Type'\n(I2\nttRp7174\nsS'Y:Load 51'\np7175\ng35\n(S'Variable_Type'\n(I2\nttRp7176\nsS'Y:VBus54'\np7177\ng35\n(S'Variable_Type'\n(I2\nttRp7178\nsS'Y:VBus109'\np7179\ng35\n(S'Variable_Type'\n(I2\nttRp7180\nsS'Y46:%RateA 36-48'\np7181\ng35\n(S'Variable_Type'\n(I2\nttRp7182\nsS'Y:Load 80'\np7183\ng35\n(S'Variable_Type'\n(I2\nttRp7184\nsS'Y:PMachine133'\np7185\ng35\n(S'Variable_Type'\n(I2\nttRp7186\nsS'Y:VBus55'\np7187\ng35\n(S'Variable_Type'\n(I2\nttRp7188\nsS'Y:PMachine29'\np7189\ng35\n(S'Variable_Type'\n(I1\nttRp7190\nsS'Y24:%RateA 23-32'\np7191\ng35\n(S'Variable_Type'\n(I2\nttRp7192\nsS'X:lineOff#'\np7193\ng35\n(S'Variable_Type'\n(I2\nttRp7194\nsS'Y:Max%A'\np7195\ng35\n(S'Variable_Type'\n(I2\nttRp7196\nsS'Y:NbeTransit_0.9-1'\np7197\ng35\n(S'Variable_Type'\n(I1\nttRp7198\nsS'XProdEolienne%Pnom'\np7199\ng35\n(S'Variable_Type'\n(I2\nttRp7200\nsS'Y33:%RateA 27-33'\np7201\ng35\n(S'Variable_Type'\n(I2\nttRp7202\nsS'Y59:%RateA 80-81'\np7203\ng35\n(S'Variable_Type'\n(I1\nttRp7204\nsS'Y:VBus65'\np7205\ng35\n(S'Variable_Type'\n(I2\nttRp7206\nsS'TAC VAZZIO'\np7207\ng35\n(S'Variable_Type'\n(I2\nttRp7208\nsS'Y:VBus118'\np7209\ng35\n(S'Variable_Type'\n(I2\nttRp7210\nsS'Y:VBus119'\np7211\ng35\n(S'Variable_Type'\n(I2\nttRp7212\nsS'Y:PMachine117'\np7213\ng35\n(S'Variable_Type'\n(I2\nttRp7214\nsS'Y:PMachine116'\np7215\ng35\n(S'Variable_Type'\n(I2\nttRp7216\nsS'Y:PMachine111'\np7217\ng35\n(S'Variable_Type'\n(I2\nttRp7218\nsS'Y:VBus88'\np7219\ng35\n(S'Variable_Type'\n(I2\nttRp7220\nsS'Y:PMachine113'\np7221\ng35\n(S'Variable_Type'\n(I2\nttRp7222\nsS'Y:VBus93'\np7223\ng35\n(S'Variable_Type'\n(I2\nttRp7224\nsS'Y:VBus110'\np7225\ng35\n(S'Variable_Type'\n(I2\nttRp7226\nsS'Y:VBus111'\np7227\ng35\n(S'Variable_Type'\n(I2\nttRp7228\nsS'Y:VBus87'\np7229\ng35\n(S'Variable_Type'\n(I2\nttRp7230\nsS'Y12:%RateA 18-30'\np7231\ng35\n(S'Variable_Type'\n(I2\nttRp7232\nsS'Y:VBus114'\np7233\ng35\n(S'Variable_Type'\n(I2\nttRp7234\nsS'Y:VBus80'\np7235\ng35\n(S'Variable_Type'\n(I2\nttRp7236\nsS'Y:VBus116'\np7237\ng35\n(S'Variable_Type'\n(I2\nttRp7238\nsS'Y:VBus82'\np7239\ng35\n(S'Variable_Type'\n(I2\nttRp7240\nsS'Y61:%RateA 84-85'\np7241\ng35\n(S'Variable_Type'\n(I1\nttRp7242\nsS'Y31:%RateA 26-41'\np7243\ng35\n(S'Variable_Type'\n(I2\nttRp7244\nsS'Y:PMachine131'\np7245\ng35\n(S'Variable_Type'\n(I2\nttRp7246\nsS'Y47:%RateA 38-43'\np7247\ng35\n(S'Variable_Type'\n(I2\nttRp7248\nsS'Y:Load 42'\np7249\ng35\n(S'Variable_Type'\n(I2\nttRp7250\nsS'Y:PMachine85'\np7251\ng35\n(S'Variable_Type'\n(I2\nttRp7252\nsS'Y32:%RateA 26-46'\np7253\ng35\n(S'Variable_Type'\n(I2\nttRp7254\nsS'Y:PMachine132'\np7255\ng35\n(S'Variable_Type'\n(I2\nttRp7256\nsS'Y18:%RateA 19-27'\np7257\ng35\n(S'Variable_Type'\n(I2\nttRp7258\nsS'Y:VBus86'\np7259\ng35\n(S'Variable_Type'\n(I2\nttRp7260\nsS'Y63:%RateA 95-96'\np7261\ng35\n(S'Variable_Type'\n(I1\nttRp7262\nsS'Y17:%RateA 19-22'\np7263\ng35\n(S'Variable_Type'\n(I2\nttRp7264\nsS'Y41:%RateA 32-48'\np7265\ng35\n(S'Variable_Type'\n(I2\nttRp7266\nsS'Y:PMachine30'\np7267\ng35\n(S'Variable_Type'\n(I2\nttRp7268\nsS'Y:VBus117'\np7269\ng35\n(S'Variable_Type'\n(I2\nttRp7270\nsS'Y56:%RateA 72-73'\np7271\ng35\n(S'Variable_Type'\n(I1\nttRp7272\nsS'Y68:%RateA 112-113'\np7273\ng35\n(S'Variable_Type'\n(I1\nttRp7274\nsS'Y:PMachine130'\np7275\ng35\n(S'Variable_Type'\n(I2\nttRp7276\nsS'Y27:%RateA 24-33'\np7277\ng35\n(S'Variable_Type'\n(I2\nttRp7278\nsS'Y:PMachine106'\np7279\ng35\n(S'Variable_Type'\n(I2\nttRp7280\nsS'Y:PMachine107'\np7281\ng35\n(S'Variable_Type'\n(I2\nttRp7282\nsS'Y:PMachine104'\np7283\ng35\n(S'Variable_Type'\n(I2\nttRp7284\nsS'Y:VBus73'\np7285\ng35\n(S'Variable_Type'\n(I2\nttRp7286\nsS'Y:VBus74'\np7287\ng35\n(S'Variable_Type'\n(I2\nttRp7288\nsS'Y:VBus75'\np7289\ng35\n(S'Variable_Type'\n(I2\nttRp7290\nsS'Y:VBus76'\np7291\ng35\n(S'Variable_Type'\n(I2\nttRp7292\nsS'Y:PMachine101'\np7293\ng35\n(S'Variable_Type'\n(I2\nttRp7294\nsS'Y:VBus78'\np7295\ng35\n(S'Variable_Type'\n(I2\nttRp7296\nsS'Y:Load 59'\np7297\ng35\n(S'Variable_Type'\n(I2\nttRp7298\nsS'Y:PMachine115'\np7299\ng35\n(S'Variable_Type'\n(I2\nttRp7300\nsS'Y51:%RateA 53-54'\np7301\ng35\n(S'Variable_Type'\n(I1\nttRp7302\nsS'Y67:%RateA 108-109'\np7303\ng35\n(S'Variable_Type'\n(I1\nttRp7304\nsS'Y:PMachine109'\np7305\ng35\n(S'Variable_Type'\n(I2\nttRp7306\nsS'Y:PMachine83'\np7307\ng35\n(S'Variable_Type'\n(I2\nttRp7308\nsS'Y:PMachine81'\np7309\ng35\n(S'Variable_Type'\n(I2\nttRp7310\nsS'Y:PMachine86'\np7311\ng35\n(S'Variable_Type'\n(I2\nttRp7312\nsS'Y:Load 76'\np7313\ng35\n(S'Variable_Type'\n(I2\nttRp7314\nsS'Y:Load 74'\np7315\ng35\n(S'Variable_Type'\n(I2\nttRp7316\nsS'Y45:%RateA 36-37'\np7317\ng35\n(S'Variable_Type'\n(I2\nttRp7318\nsS'Y58:%RateA 78-79'\np7319\ng35\n(S'Variable_Type'\n(I1\nttRp7320\nsS'Y:Load 78'\np7321\ng35\n(S'Variable_Type'\n(I2\nttRp7322\nsS'X:Load(pu)'\np7323\ng6881\nsS'Y5:%RateA 13-29'\np7324\ng35\n(S'Variable_Type'\n(I2\nttRp7325\nsS'Y:PMachine118'\np7326\ng35\n(S'Variable_Type'\n(I2\nttRp7327\nsS'Y1:%RateA 11-47'\np7328\ng35\n(S'Variable_Type'\n(I2\nttRp7329\nsS'Y:VBus60'\np7330\ng35\n(S'Variable_Type'\n(I2\nttRp7331\nsS'Y:PMachine137'\np7332\ng35\n(S'Variable_Type'\n(I1\nttRp7333\nsS'Y29:%RateA 25-29'\np7334\ng35\n(S'Variable_Type'\n(I2\nttRp7335\nsS'Y:VBus66'\np7336\ng35\n(S'Variable_Type'\n(I2\nttRp7337\nsS'Y36:%RateA 29-30'\np7338\ng35\n(S'Variable_Type'\n(I1\nttRp7339\nsS'Y54:%RateA 59-60'\np7340\ng35\n(S'Variable_Type'\n(I1\nttRp7341\nsS'Y:Load 90'\np7342\ng35\n(S'Variable_Type'\n(I2\nttRp7343\nsS'Y9:%RateA 16-32'\np7344\ng35\n(S'Variable_Type'\n(I2\nttRp7345\nsS'INTERCOS'\np7346\ng35\n(S'Variable_Type'\n(I2\nttRp7347\nsS'Y:Load 95'\np7348\ng35\n(S'Variable_Type'\n(I2\nttRp7349\nsS'Y:VBus63'\np7350\ng35\n(S'Variable_Type'\n(I2\nttRp7351\nsS'Y:VBus62'\np7352\ng35\n(S'Variable_Type'\n(I2\nttRp7353\nsS'Y:VBus61'\np7354\ng35\n(S'Variable_Type'\n(I2\nttRp7355\nsS'Y55:%RateA 61-62'\np7356\ng35\n(S'Variable_Type'\n(I1\nttRp7357\nsS'Y8:%RateA 15-35'\np7358\ng35\n(S'Variable_Type'\n(I2\nttRp7359\nsS'Y:PMachine136'\np7360\ng35\n(S'Variable_Type'\n(I1\nttRp7361\nsS'Y:PMachine135'\np7362\ng35\n(S'Variable_Type'\n(I1\nttRp7363\nsS'Y:VBus64'\np7364\ng35\n(S'Variable_Type'\n(I2\nttRp7365\nsS'Y:PMachine94'\np7366\ng35\n(S'Variable_Type'\n(I2\nttRp7367\nsS'Y:VBus69'\np7368\ng35\n(S'Variable_Type'\n(I2\nttRp7369\nsS'Y:VBus108'\np7370\ng35\n(S'Variable_Type'\n(I2\nttRp7371\nsS'Y:PMachine139'\np7372\ng35\n(S'Variable_Type'\n(I1\nttRp7373\nsS'Y:PMachine97'\np7374\ng35\n(S'Variable_Type'\n(I2\nttRp7375\nsS'Y:PMachine92'\np7376\ng35\n(S'Variable_Type'\n(I2\nttRp7377\nsS'Y:VBus68'\np7378\ng35\n(S'Variable_Type'\n(I2\nttRp7379\nsS'Y:Load 61'\np7380\ng35\n(S'Variable_Type'\n(I2\nttRp7381\nsS'Y:VBus89'\np7382\ng35\n(S'Variable_Type'\n(I2\nttRp7383\nsS'Y21:%RateA 21-43'\np7384\ng35\n(S'Variable_Type'\n(I2\nttRp7385\nsS'Y:PMachine90'\np7386\ng35\n(S'Variable_Type'\n(I2\nttRp7387\nsS'Y:PMachine14'\np7388\ng35\n(S'Variable_Type'\n(I2\nttRp7389\nsS'Y:PMachine63'\np7390\ng35\n(S'Variable_Type'\n(I2\nttRp7391\nsS'Y:PMachine93'\np7392\ng35\n(S'Variable_Type'\n(I2\nttRp7393\nsS'Y:PConsoTot'\np7394\ng35\n(S'Variable_Type'\n(I2\nttRp7395\nsS'Y23:%RateA 22-31'\np7396\ng35\n(S'Variable_Type'\n(I2\nttRp7397\nsS'Y19:%RateA 20-26'\np7398\ng35\n(S'Variable_Type'\n(I2\nttRp7399\nsS'Y:PMachine18'\np7400\ng35\n(S'Variable_Type'\n(I2\nttRp7401\nsS'Y:VBus34'\np7402\ng35\n(S'Variable_Type'\n(I2\nttRp7403\nsS'Y:NbeTension'\np7404\ng35\n(S'Variable_Type'\n(I2\nttRp7405\nsS'TOT PV'\np7406\ng35\n(S'Variable_Type'\n(I2\nttRp7407\nsS'Y:PMachine128'\np7408\ng35\n(S'Variable_Type'\n(I2\nttRp7409\nsS'Y:PMachine129'\np7410\ng35\n(S'Variable_Type'\n(I2\nttRp7411\nsS'Y:VBus133'\np7412\ng35\n(S'Variable_Type'\n(I2\nttRp7413\nsS'Y:Load 82'\np7414\ng35\n(S'Variable_Type'\n(I2\nttRp7415\nsS'Y:VBus30'\np7416\ng35\n(S'Variable_Type'\n(I2\nttRp7417\nsS'Y:PMachine126'\np7418\ng35\n(S'Variable_Type'\n(I2\nttRp7419\nsS'Y:PMachine127'\np7420\ng35\n(S'Variable_Type'\n(I2\nttRp7421\nsS'Y:Load 86'\np7422\ng35\n(S'Variable_Type'\n(I2\nttRp7423\nsS'Y:PMachine121'\np7424\ng35\n(S'Variable_Type'\n(I2\nttRp7425\nsS'Y:Load 84'\np7426\ng35\n(S'Variable_Type'\n(I2\nttRp7427\nsS'Y:PMachine123'\np7428\ng35\n(S'Variable_Type'\n(I2\nttRp7429\nsS'Y:Load 102'\np7430\ng35\n(S'Variable_Type'\n(I2\nttRp7431\nsS'Y:VBus57'\np7432\ng35\n(S'Variable_Type'\n(I2\nttRp7433\nsS'Y:Load 100'\np7434\ng35\n(S'Variable_Type'\n(I2\nttRp7435\nsS'Y:Load 101'\np7436\ng35\n(S'Variable_Type'\n(I2\nttRp7437\nsS'Y:VBus52'\np7438\ng35\n(S'Variable_Type'\n(I2\nttRp7439\nsS'Y:VBus53'\np7440\ng35\n(S'Variable_Type'\n(I2\nttRp7441\nsS'Y:Load 104'\np7442\ng35\n(S'Variable_Type'\n(I2\nttRp7443\nsS'Y:VBus51'\np7444\ng35\n(S'Variable_Type'\n(I2\nttRp7445\nsS'Y:Load 108'\np7446\ng35\n(S'Variable_Type'\n(I2\nttRp7447\nsS'Y64:%RateA 102-103'\np7448\ng35\n(S'Variable_Type'\n(I1\nttRp7449\nsS'Y:PMachine112'\np7450\ng35\n(S'Variable_Type'\n(I2\nttRp7451\nsS'Y:VBus58'\np7452\ng35\n(S'Variable_Type'\n(I2\nttRp7453\nsS'Y:VBus59'\np7454\ng35\n(S'Variable_Type'\n(I2\nttRp7455\nsS'Y:Load 53'\np7456\ng35\n(S'Variable_Type'\n(I2\nttRp7457\nsS'Y10:%RateA 16-47'\np7458\ng35\n(S'Variable_Type'\n(I2\nttRp7459\nsS'Y:PMachine54'\np7460\ng35\n(S'Variable_Type'\n(I2\nttRp7461\nsS'Y:VBus56'\np7462\ng35\n(S'Variable_Type'\n(I2\nttRp7463\nsS'TOT WIND'\np7464\ng35\n(S'Variable_Type'\n(I2\nttRp7465\nsS'Y3:%RateA 12-24'\np7466\ng35\n(S'Variable_Type'\n(I2\nttRp7467\nsS'Y11:%RateA 17-27'\np7468\ng35\n(S'Variable_Type'\n(I2\nttRp7469\nsS'Y:PMachine114'\np7470\ng35\n(S'Variable_Type'\n(I2\nttRp7471\nsS'Y:VBus72'\np7472\ng35\n(S'Variable_Type'\n(I2\nttRp7473\nsS'Y:PMachine60'\np7474\ng35\n(S'Variable_Type'\n(I2\nttRp7475\nsS'Y:PMachine61'\np7476\ng35\n(S'Variable_Type'\n(I1\nttRp7477\nsS'Y:PMachine62'\np7478\ng35\n(S'Variable_Type'\n(I2\nttRp7479\nsS'Y:PMachine105'\np7480\ng35\n(S'Variable_Type'\n(I2\nttRp7481\nsS'Y:PMachine64'\np7482\ng35\n(S'Variable_Type'\n(I2\nttRp7483\nsS'Y:PMachine65'\np7484\ng35\n(S'Variable_Type'\n(I2\nttRp7485\nsS'Y:PMachine66'\np7486\ng35\n(S'Variable_Type'\n(I2\nttRp7487\nsS'Y:PMachine67'\np7488\ng35\n(S'Variable_Type'\n(I2\nttRp7489\nsS'Y:PMachine68'\np7490\ng35\n(S'Variable_Type'\n(I2\nttRp7491\nsS'Y:PMachine102'\np7492\ng35\n(S'Variable_Type'\n(I2\nttRp7493\nsS'X:ProdPV%Pnom'\np7494\ng35\n(S'Variable_Type'\n(I2\nttRp7495\nsS'Y:VBus138'\np7496\ng35\n(S'Variable_Type'\n(I2\nttRp7497\nsS'Y26:%RateA 24-25'\np7498\ng35\n(S'Variable_Type'\n(I1\nttRp7499\nssg650\n(lp7500\ng652\nasba(iOWContexts\nContext\np7501\n(dp7502\ng24\n(lp7503\nsg26\n(dp7504\nsg28\n(dp7505\nS'attrLabel'\np7506\n(S''\nI-1\ntp7507\nsS'attrShape'\np7508\n(S''\nI0\ntp7509\nsS'attrX'\np7510\n(g1281\ng35\n(S'Variable_Type'\n(I2\nttRp7511\ntp7512\nsS'attrY'\np7513\n(S'X:Interco(bin)'\ng35\n(S'Variable_Type'\n(I1\nttRp7514\ntp7515\nsS'attrSize'\np7516\n(S''\nI0\ntp7517\nsS'attrColor'\np7518\n(S'X:ProdEolienne%Pnom'\ng35\n(S'Variable_Type'\n(I2\nttRp7519\ntp7520\nssg46\nF1368453819.1259999\nsg47\n(dp7521\nS'X:Interco(bin)'\np7522\ng7514\nsS'X:Load(pu)'\np7523\ng7511\nsS'X:ProdEolienne%Pnom'\np7524\ng7519\nssg650\n(lp7525\ng652\nasba(iOWContexts\nContext\np7526\n(dp7527\ng24\n(lp7528\nsg26\n(dp7529\nsg28\n(dp7530\nS'attrLabel'\np7531\n(S''\nI-1\ntp7532\nsS'attrShape'\np7533\n(S''\nI0\ntp7534\nsS'attrX'\np7535\n(S'X:Load(pu)'\ng35\n(S'Variable_Type'\n(I2\nttRp7536\ntp7537\nsS'attrY'\np7538\n(S'X:Interco(bin)'\ng35\n(S'Variable_Type'\n(I1\nttRp7539\ntp7540\nsS'attrSize'\np7541\n(S''\nI0\ntp7542\nsS'attrColor'\np7543\n(S'X:ProdEolienne%Pnom'\ng35\n(S'Variable_Type'\n(I2\nttRp7544\ntp7545\nssg46\nF1368453819.1259999\nsg47\n(dp7546\nS'X:Interco(bin)'\np7547\ng7539\nsS'X:Load(pu)'\np7548\ng7536\nsS'X:ProdEolienne%Pnom'\np7549\ng7544\nssg650\n(lp7550\nS'orderedDomain'\np7551\nasbasS'toolbarSelection'\np7552\nI0\nsS'graph.sendSelectionOnUpdate'\np7553\nI00\nsS'graph.showYLaxisTitle'\np7554\nI1\nsS'graph.showDistributions'\np7555\nNsS'colorSettings'\np7556\n(lp7557\n(lp7558\nS'c v'\np7559\na(lp7560\n(lp7561\n(S'Canvas'\np7562\nL4294967295L\ntp7563\na(S'Grid'\np7564\nL4292335575L\ntp7565\naa(lp7566\n(S'contPalette'\np7567\n(L4294945280L\nL4278255360L\nI00\nttp7568\naa(lp7569\n(S'discPalette'\np7570\n(lp7571\n(I0\nI0\nI255\ntp7572\na(I255\nI0\nI0\ntp7573\na(I0\nI255\nI0\ntp7574\na(I255\nI128\nI0\ntp7575\na(I255\nI255\nI0\ntp7576\na(I255\nI0\nI255\ntp7577\na(I0\nI255\nI255\ntp7578\na(I128\nI0\nI255\ntp7579\na(I0\nI128\nI255\ntp7580\na(I255\nI223\nI128\ntp7581\na(I127\nI111\nI64\ntp7582\na(I92\nI46\nI0\ntp7583\na(I0\nI84\nI0\ntp7584\na(I192\nI192\nI0\ntp7585\na(I0\nI127\nI127\ntp7586\na(I128\nI0\nI0\ntp7587\na(I127\nI0\nI127\ntp7588\natp7589\naa(lp7590\naaa(S''\n(lp7591\n(lp7592\n(g7562\nL4294967295L\ntp7593\na(g7564\nL4292335575L\ntp7594\naa(lp7595\n(g7567\n(L4294967295L\nL4278190080L\nI01\nttp7596\naa(lp7597\n(g7570\ng7571\ntp7598\naa(lp7599\natp7600\na(S'Default'\n(lp7601\n(lp7602\n(S'Canvas'\nL4294967295L\ntp7603\na(S'Grid'\nL4292335575L\ntp7604\naa(lp7605\n(S'contPalette'\n(L4294967295L\nL4278190080L\nI0\nttp7606\naa(lp7607\n(S'discPalette'\ng7571\ntp7608\naa(lp7609\natp7610\nasS'VizRankLearnerName'\np7611\nNs.&quot;, 'Scatterplot': &quot;(dp1\nS'autoSendSelection'\np2\nI1\nsS'graph.showAxisScale'\np3\nI1\nsS'graph.useAntialiasing'\np4\nI1\nsS'selectedSchemaIndex'\np5\nI0\nsS'graph.pointWidth'\np6\nI5\nsS'graph.showFilledSymbols'\np7\nI1\nsS'showGridlines'\np8\nI0\nsS'graph.alphaValue'\np9\nI255\nsS'savedWidgetGeometry'\np10\nS'\\x01\\xd9\\xd0\\xcb\\x00\\x01\\x00\\x00\\x00\\x00\\x01\\xa1\\x00\\x00\\x00k\\x00\\x00\\x04\\xaf\\x00\\x00\\x02\\x88\\x00\\x00\\x01\\xa9\\x00\\x00\\x00\\x87\\x00\\x00\\x04\\xa7\\x00\\x00\\x02\\x80\\x00\\x00\\x00\\x00\\x00\\x00'\np11\nsS'graph.jitterContinuous'\np12\nI00\nsS'graph.jitterSize'\np13\nF0.10000000000000001\nsS'graph.showProbabilities'\np14\nI0\nsS'graph.showXaxisTitle'\np15\nI1\nsS'widgetShown'\np16\nI0\nsS'graph.showLegend'\np17\nI1\nsS'localContextsVersion'\np18\n(I100\nI0\ntp19\nsS'localContexts'\np20\n(lp21\n(iOWContexts\nContext\np22\n(dp23\nS'selectionPolygons'\np24\n(lp25\nsS'metas'\np26\n(dp27\nsS'values'\np28\n(dp29\nS'attrLabel'\np30\n(S''\nI-1\ntp31\nsS'attrShape'\np32\n(S''\nI0\ntp33\nsS'attrX'\np34\n(S'X:Load(pu)'\ncOrange.orange\n__pickleLoaderNamedConstants\np35\n(S'Variable_Type'\n(I2\nttRp36\ntp37\nsS'attrY'\np38\n(S'Y:Max%A'\ng35\n(S'Variable_Type'\n(I2\nttRp39\ntp40\nsS'attrSize'\np41\n(S''\nI0\ntp42\nsS'attrColor'\np43\n(S'X:lineOff#'\ng35\n(S'Variable_Type'\n(I2\nttRp44\ntp45\nssS'time'\np46\nF1370505351.4360001\nsS'attributes'\np47\n(dp48\nS'Y:PMachine134 - CLUCCI35'\np49\ng35\n(S'Variable_Type'\n(I2\nttRp50\nsS'Y:VBus77 - CCORTE32'\np51\ng35\n(S'Variable_Type'\n(I2\nttRp52\nsS'Y:VBus134 - CLUCCI35'\np53\ng35\n(S'Variable_Type'\n(I2\nttRp54\nsS'Y:VBus109 - CSAGON32'\np55\ng35\n(S'Variable_Type'\n(I2\nttRp56\nsS'Y:VBus102 - CPORTO31'\np57\ng35\n(S'Variable_Type'\n(I2\nttRp58\nsS'XProdEolienne%Pnom'\np59\ng35\n(S'Variable_Type'\n(I2\nttRp60\nsS'Y:PMachine94 - COCANA33'\np61\ng35\n(S'Variable_Type'\n(I2\nttRp62\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np63\ng35\n(S'Variable_Type'\n(I2\nttRp64\nsS'Y:PMachine87 - CLUCCI32'\np65\ng35\n(S'Variable_Type'\n(I2\nttRp66\nsS'Y:PMachine113 - CSAMPO32'\np67\ng35\n(S'Variable_Type'\n(I2\nttRp68\nsS'Y:Load 84 - CLORET31'\np69\ng35\n(S'Variable_Type'\n(I2\nttRp70\nsS'Y:PMachine89 - CLUCCI34'\np71\ng35\n(S'Variable_Type'\n(I2\nttRp72\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np73\ng35\n(S'Variable_Type'\n(I2\nttRp74\nsS'Y:Load 80 - CGHISO31'\np75\ng35\n(S'Variable_Type'\n(I2\nttRp76\nsS'Y:PMachine125 - CVAZZI36'\np77\ng35\n(S'Variable_Type'\n(I2\nttRp78\nsS'Y:PMachine116 - CTOLLA31'\np79\ng35\n(S'Variable_Type'\n(I2\nttRp80\nsS'Y:PMachine88 - CLUCCI33'\np81\ng35\n(S'Variable_Type'\n(I2\nttRp82\nsS'Y:PMachine120 - CVAZZI31'\np83\ng35\n(S'Variable_Type'\n(I2\nttRp84\nsS'Y:PMachine111 - CSTMAR31'\np85\ng35\n(S'Variable_Type'\n(I2\nttRp86\nsS'Y:NbeTransit'\np87\ng35\n(S'Variable_Type'\n(I2\nttRp88\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np89\ng35\n(S'Variable_Type'\n(I2\nttRp90\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np91\ng35\n(S'Variable_Type'\n(I2\nttRp92\nsS'Y:PMachine130 - CVAZZI311'\np93\ng35\n(S'Variable_Type'\n(I2\nttRp94\nsS'Y:PMachine127 - CVAZZI38'\np95\ng35\n(S'Variable_Type'\n(I2\nttRp96\nsS'Y:VBus131 - CVAZZI312'\np97\ng35\n(S'Variable_Type'\n(I2\nttRp98\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np99\ng35\n(S'Variable_Type'\n(I2\nttRp100\nsS'Y:PMachine123 - CVAZZI34'\np101\ng35\n(S'Variable_Type'\n(I2\nttRp102\nsS'Y:VBus118 - CTOLLA33'\np103\ng35\n(S'Variable_Type'\n(I2\nttRp104\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np105\ng35\n(S'Variable_Type'\n(I2\nttRp106\nsS'Y:PMachine58 - CBONIF32'\np107\ng35\n(S'Variable_Type'\n(I2\nttRp108\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np109\ng35\n(S'Variable_Type'\n(I2\nttRp110\nsS'Y:Load 104 - CPROPR31'\np111\ng35\n(S'Variable_Type'\n(I2\nttRp112\nsS'Y:PMachine30 - CLUCCI22'\np113\ng35\n(S'Variable_Type'\n(I2\nttRp114\nsS'Y:VBus100 - COLETT31'\np115\ng35\n(S'Variable_Type'\n(I2\nttRp116\nsS'Y:PProdTot'\np117\ng35\n(S'Variable_Type'\n(I2\nttRp118\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np119\ng35\n(S'Variable_Type'\n(I2\nttRp120\nsS'Y:PMachine126 - CVAZZI37'\np121\ng35\n(S'Variable_Type'\n(I2\nttRp122\nsS'Y:VBus57 - CBONIF31'\np123\ng35\n(S'Variable_Type'\n(I2\nttRp124\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np125\ng35\n(S'Variable_Type'\n(I2\nttRp126\nsS'Y:PConsoTot'\np127\ng35\n(S'Variable_Type'\n(I2\nttRp128\nsS'Iteration'\np129\ng35\n(S'Variable_Type'\n(I2\nttRp130\nsS'Y:PMachine109 - CSAGON32'\np131\ng35\n(S'Variable_Type'\n(I2\nttRp132\nsS'Y:PMachine135 - CLUCCI36'\np133\ng35\n(S'Variable_Type'\n(I2\nttRp134\nsS'Y:VBus30 - CLUCCI22'\np135\ng35\n(S'Variable_Type'\n(I2\nttRp136\nsS'Y:VBus122 - CVAZZI33'\np137\ng35\n(S'Variable_Type'\n(I2\nttRp138\nsS'Y:VBus22 - CCORTE21'\np139\ng35\n(S'Variable_Type'\n(I2\nttRp140\nsS'Y:VBus117 - CTOLLA32'\np141\ng35\n(S'Variable_Type'\n(I2\nttRp142\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np143\ng35\n(S'Variable_Type'\n(I2\nttRp144\nsS'Y:PMachine107 - CRIZZA32'\np145\ng35\n(S'Variable_Type'\n(I2\nttRp146\nsS'Y:VBus16 - CCALDA21'\np147\ng35\n(S'Variable_Type'\n(I2\nttRp148\nsS'Y:VBus108 - CSAGON31'\np149\ng35\n(S'Variable_Type'\n(I2\nttRp150\nsS'Y:Load 102 - CPORTO31'\np151\ng35\n(S'Variable_Type'\n(I2\nttRp152\nsS'Y:VBus107 - CRIZZA32'\np153\ng35\n(S'Variable_Type'\n(I2\nttRp154\nsS'Y:VBus92 - COCANA31'\np155\ng35\n(S'Variable_Type'\n(I2\nttRp156\nsS'Y:VBus41 - CSAMPO21'\np157\ng35\n(S'Variable_Type'\n(I2\nttRp158\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np159\ng35\n(S'Variable_Type'\n(I2\nttRp160\nsS'Y:VBus34 - CPIETR21'\np161\ng35\n(S'Variable_Type'\n(I2\nttRp162\nsS'Y:Load 108 - CSAGON31'\np163\ng35\n(S'Variable_Type'\n(I2\nttRp164\nsS'Y:VBus56 - CBIGUG32'\np165\ng35\n(S'Variable_Type'\n(I2\nttRp166\nsS'Y:PMachine42 - CSISCO21'\np167\ng35\n(S'Variable_Type'\n(I2\nttRp168\nsS'Y:PMachine138 - CLUCCI39'\np169\ng35\n(S'Variable_Type'\n(I2\nttRp170\nsS'Y:PMachine112 - CSAMPO31'\np171\ng35\n(S'Variable_Type'\n(I2\nttRp172\nsS'Y:VBus105 - CPROPR32'\np173\ng35\n(S'Variable_Type'\n(I2\nttRp174\nsS'Y:VBus1 - CBONIF11'\np175\ng35\n(S'Variable_Type'\n(I2\nttRp176\nsS'Y:VBus12 - CBASTI21'\np177\ng35\n(S'Variable_Type'\n(I2\nttRp178\nsS'Y:PMachine129 - CVAZZI310'\np179\ng35\n(S'Variable_Type'\n(I2\nttRp180\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np181\ng35\n(S'Variable_Type'\n(I2\nttRp182\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np183\ng35\n(S'Variable_Type'\n(I2\nttRp184\nsS'Y:VBus54 - CBASTI32'\np185\ng35\n(S'Variable_Type'\n(I2\nttRp186\nsS'Y:VBus69 - CCASAM37'\np187\ng35\n(S'Variable_Type'\n(I2\nttRp188\nsS'Y:VBus45 - CTOLLA21'\np189\ng35\n(S'Variable_Type'\n(I2\nttRp190\nsS'Y:PMachine115 - CTAGLI31'\np191\ng35\n(S'Variable_Type'\n(I2\nttRp192\nsS'Y:VBus79 - CFURIA32'\np193\ng35\n(S'Variable_Type'\n(I2\nttRp194\nsS'Y:VBus43 - CSOVEN21'\np195\ng35\n(S'Variable_Type'\n(I2\nttRp196\nsS'Y:VBus76 - CCORTE31'\np197\ng35\n(S'Variable_Type'\n(I2\nttRp198\nsS'Y:VBus75 - CCORSC31'\np199\ng35\n(S'Variable_Type'\n(I2\nttRp200\nsS'Y:PMachine78 - CFURIA31'\np201\ng35\n(S'Variable_Type'\n(I2\nttRp202\nsS'Y:VBus127 - CVAZZI38'\np203\ng35\n(S'Variable_Type'\n(I2\nttRp204\nsS'Y:VBus115 - CTAGLI31'\np205\ng35\n(S'Variable_Type'\n(I2\nttRp206\nsS'Y:Load 61 - CCALVI31'\np207\ng35\n(S'Variable_Type'\n(I2\nttRp208\nsS'Y:VBus55 - CBIGUG31'\np209\ng35\n(S'Variable_Type'\n(I2\nttRp210\nsS'Y:Load 42 - CSISCO21'\np211\ng35\n(S'Variable_Type'\n(I2\nttRp212\nsS'Y:VBus72 - CCASTI31'\np213\ng35\n(S'Variable_Type'\n(I2\nttRp214\nsS'Y:Load 37 - CRIZZA21'\np215\ng35\n(S'Variable_Type'\n(I2\nttRp216\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np217\ng35\n(S'Variable_Type'\n(I2\nttRp218\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np219\ng35\n(S'Variable_Type'\n(I2\nttRp220\nsS'Y:PMachine102 - CPORTO31'\np221\ng35\n(S'Variable_Type'\n(I2\nttRp222\nsS'Y:PMachine67 - CCASAM35'\np223\ng35\n(S'Variable_Type'\n(I2\nttRp224\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np225\ng35\n(S'Variable_Type'\n(I2\nttRp226\nsS'Y:VBus31 - CMOROS21'\np227\ng35\n(S'Variable_Type'\n(I2\nttRp228\nsS'Y:VBus103 - CPORTO32'\np229\ng35\n(S'Variable_Type'\n(I2\nttRp230\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np231\ng35\n(S'Variable_Type'\n(I2\nttRp232\nsS'Y:PMachine128 - CVAZZI39'\np233\ng35\n(S'Variable_Type'\n(I2\nttRp234\nsS'Y:PMachine72 - CCASTI31'\np235\ng35\n(S'Variable_Type'\n(I2\nttRp236\nsS'Y:VBus27 - CILERO21'\np237\ng35\n(S'Variable_Type'\n(I2\nttRp238\nsS'Y:PMachine75 - CCORSC31'\np239\ng35\n(S'Variable_Type'\n(I2\nttRp240\nsS'Y:Load 51 - CASPRE31'\np241\ng35\n(S'Variable_Type'\n(I2\nttRp242\nsS'Y:PMachine61 - CCALVI31'\np243\ng35\n(S'Variable_Type'\n(I2\nttRp244\nsS'Y:VBus51 - CASPRE31'\np245\ng35\n(S'Variable_Type'\n(I2\nttRp246\nsS'Y:VBus114 - CSOVEN31'\np247\ng35\n(S'Variable_Type'\n(I2\nttRp248\nsS'Y:VBus116 - CTOLLA31'\np249\ng35\n(S'Variable_Type'\n(I2\nttRp250\nsS'Y:Load 86 - CLUCCI31'\np251\ng35\n(S'Variable_Type'\n(I2\nttRp252\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np253\ng35\n(S'Variable_Type'\n(I2\nttRp254\nsS'Y:Load 57 - CBONIF31'\np255\ng35\n(S'Variable_Type'\n(I2\nttRp256\nsS'Y:PMachine104 - CPROPR31'\np257\ng35\n(S'Variable_Type'\n(I2\nttRp258\nsS'Y:VBus128 - CVAZZI39'\np259\ng35\n(S'Variable_Type'\n(I2\nttRp260\nsS'Y:PMachine136 - CLUCCI37'\np261\ng35\n(S'Variable_Type'\n(I2\nttRp262\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np263\ng35\n(S'Variable_Type'\n(I2\nttRp264\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np265\ng35\n(S'Variable_Type'\n(I2\nttRp266\nsS'Y:PMachine68 - CCASAM36'\np267\ng35\n(S'Variable_Type'\n(I2\nttRp268\nsS'Y:PMachine29 - CLUCCI21'\np269\ng35\n(S'Variable_Type'\n(I2\nttRp270\nsS'Y:VBus42 - CSISCO21'\np271\ng35\n(S'Variable_Type'\n(I2\nttRp272\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np273\ng35\n(S'Variable_Type'\n(I2\nttRp274\nsS'Y:VBus14 - CBONIF21'\np275\ng35\n(S'Variable_Type'\n(I2\nttRp276\nsS'Y:VBus73 - CCASTI32'\np277\ng35\n(S'Variable_Type'\n(I2\nttRp278\nsS'Y:VBus64 - CCASAM32'\np279\ng35\n(S'Variable_Type'\n(I2\nttRp280\nsS'Y:PMachine14 - CBONIF21'\np281\ng35\n(S'Variable_Type'\n(I2\nttRp282\nsS'Y:PMachine62 - CCALVI32'\np283\ng35\n(S'Variable_Type'\n(I2\nttRp284\nsS'Y:VBus133 - CVAZZI314'\np285\ng35\n(S'Variable_Type'\n(I2\nttRp286\nsS'Y:VBus63 - CCASAM31'\np287\ng35\n(S'Variable_Type'\n(I2\nttRp288\nsS'Y:PMachine101 - CPIETR31'\np289\ng35\n(S'Variable_Type'\n(I2\nttRp290\nsS'Y:%Losses'\np291\ng35\n(S'Variable_Type'\n(I2\nttRp292\nsS'Y:VBus85 - CLORET32'\np293\ng35\n(S'Variable_Type'\n(I2\nttRp294\nsS'Y:Load 59 - CCALDA31'\np295\ng35\n(S'Variable_Type'\n(I2\nttRp296\nsS'Y:VBus129 - CVAZZI310'\np297\ng35\n(S'Variable_Type'\n(I2\nttRp298\nsS'Y:VBus101 - CPIETR31'\np299\ng35\n(S'Variable_Type'\n(I2\nttRp300\nsS'Y:PMachine106 - CRIZZA31'\np301\ng35\n(S'Variable_Type'\n(I2\nttRp302\nsS'Y:VBus132 - CVAZZI313'\np303\ng35\n(S'Variable_Type'\n(I2\nttRp304\nsS'Y:PMachine118 - CTOLLA33'\np305\ng35\n(S'Variable_Type'\n(I2\nttRp306\nsS'Y:VBus19 - CCASTI21'\np307\ng35\n(S'Variable_Type'\n(I2\nttRp308\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np309\ng35\n(S'Variable_Type'\n(I2\nttRp310\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np311\ng35\n(S'Variable_Type'\n(I2\nttRp312\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np313\ng35\n(S'Variable_Type'\n(I2\nttRp314\nsS'Y:Load 115 - CTAGLI31'\np315\ng35\n(S'Variable_Type'\n(I2\nttRp316\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np317\ng35\n(S'Variable_Type'\n(I2\nttRp318\nsS'Y:VBus15 - CBONIF22'\np319\ng35\n(S'Variable_Type'\n(I2\nttRp320\nsS'Y:PMachine47 - CVAZZI21'\np321\ng35\n(S'Variable_Type'\n(I2\nttRp322\nsS'Y:VBus123 - CVAZZI34'\np323\ng35\n(S'Variable_Type'\n(I2\nttRp324\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np325\ng35\n(S'Variable_Type'\n(I2\nttRp326\nsS'Y:VBus60 - CCALDA32'\np327\ng35\n(S'Variable_Type'\n(I2\nttRp328\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np329\ng35\n(S'Variable_Type'\n(I2\nttRp330\nsS'Y:VBus65 - CCASAM33'\np331\ng35\n(S'Variable_Type'\n(I2\nttRp332\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np333\ng35\n(S'Variable_Type'\n(I2\nttRp334\nsS'Y:PMachine139 - CLUCCI310'\np335\ng35\n(S'Variable_Type'\n(I2\nttRp336\nsS'Y:VBus112 - CSAMPO31'\np337\ng35\n(S'Variable_Type'\n(I2\nttRp338\nsS'Y:VBus68 - CCASAM36'\np339\ng35\n(S'Variable_Type'\n(I2\nttRp340\nsS'Y:Load 55 - CBIGUG31'\np341\ng35\n(S'Variable_Type'\n(I2\nttRp342\nsS'Y:PMachine53 - CBASTI31'\np343\ng35\n(S'Variable_Type'\n(I2\nttRp344\nsS'Y:NbeTransit_0.9-1'\np345\ng35\n(S'Variable_Type'\n(I2\nttRp346\nsS'Y:VBus24 - CFURIA21'\np347\ng35\n(S'Variable_Type'\n(I2\nttRp348\nsS'Y:VBus23 - CCORTE22'\np349\ng35\n(S'Variable_Type'\n(I2\nttRp350\nsS'Y:VBus18 - CCASAM21'\np351\ng35\n(S'Variable_Type'\n(I2\nttRp352\nsS'Y:VBus40 - CSTMAR21'\np353\ng35\n(S'Variable_Type'\n(I2\nttRp354\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np355\ng35\n(S'Variable_Type'\n(I2\nttRp356\nsS'Y:PMachine124 - CVAZZI35'\np357\ng35\n(S'Variable_Type'\n(I2\nttRp358\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np359\ng35\n(S'Variable_Type'\n(I2\nttRp360\nsS'Y:PMachine117 - CTOLLA32'\np361\ng35\n(S'Variable_Type'\n(I2\nttRp362\nsS'Y:Load 82 - CILERO31'\np363\ng35\n(S'Variable_Type'\n(I2\nttRp364\nsS'Y:VBus33 - COLETT21'\np365\ng35\n(S'Variable_Type'\n(I2\nttRp366\nsS'Y:VBus32 - COCANA21'\np367\ng35\n(S'Variable_Type'\n(I2\nttRp368\nsS'Y:PMachine121 - CVAZZI32'\np369\ng35\n(S'Variable_Type'\n(I2\nttRp370\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np371\ng35\n(S'Variable_Type'\n(I2\nttRp372\nsS'Y:VBus82 - CILERO31'\np373\ng35\n(S'Variable_Type'\n(I2\nttRp374\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np375\ng35\n(S'Variable_Type'\n(I2\nttRp376\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np377\ng35\n(S'Variable_Type'\n(I2\nttRp378\nsS'Y:VBus37 - CRIZZA21'\np379\ng35\n(S'Variable_Type'\n(I2\nttRp380\nsS'Y:PMachine73 - CCASTI32'\np381\ng35\n(S'Variable_Type'\n(I2\nttRp382\nsS'Y:PMachine86 - CLUCCI31'\np383\ng35\n(S'Variable_Type'\n(I2\nttRp384\nsS'Y:Load 53 - CBASTI31'\np385\ng35\n(S'Variable_Type'\n(I2\nttRp386\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np387\ng35\n(S'Variable_Type'\n(I2\nttRp388\nsS'Y:VBus21 - CCORSC21'\np389\ng35\n(S'Variable_Type'\n(I2\nttRp390\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np391\ng35\n(S'Variable_Type'\n(I2\nttRp392\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np393\ng35\n(S'Variable_Type'\n(I2\nttRp394\nsS'Y:PMachine63 - CCASAM31'\np395\ng35\n(S'Variable_Type'\n(I2\nttRp396\nsS'Y:VBus89 - CLUCCI34'\np397\ng35\n(S'Variable_Type'\n(I2\nttRp398\nsS'Y:PMachine64 - CCASAM32'\np399\ng35\n(S'Variable_Type'\n(I2\nttRp400\nsS'Y:VBus67 - CCASAM35'\np401\ng35\n(S'Variable_Type'\n(I2\nttRp402\nsS'Y:VBus53 - CBASTI31'\np403\ng35\n(S'Variable_Type'\n(I2\nttRp404\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np405\ng35\n(S'Variable_Type'\n(I2\nttRp406\nsS'Y:VBus61 - CCALVI31'\np407\ng35\n(S'Variable_Type'\n(I2\nttRp408\nsS'Y:VBus93 - COCANA32'\np409\ng35\n(S'Variable_Type'\n(I2\nttRp410\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np411\ng35\n(S'Variable_Type'\n(I2\nttRp412\nsS'Y:VBus104 - CPROPR31'\np413\ng35\n(S'Variable_Type'\n(I2\nttRp414\nsS'Y:VBus48 - CZSSS621'\np415\ng35\n(S'Variable_Type'\n(I2\nttRp416\nsS'Y:PMachine85 - CLORET32'\np417\ng35\n(S'Variable_Type'\n(I2\nttRp418\nsS'Y:Max%A'\np419\ng39\nsS'Y:VBus36 - CPROPR21'\np420\ng35\n(S'Variable_Type'\n(I2\nttRp421\nsS'Y:Load 100 - COLETT31'\np422\ng35\n(S'Variable_Type'\n(I2\nttRp423\nsS'Y:PMachine54 - CBASTI32'\np424\ng35\n(S'Variable_Type'\n(I2\nttRp425\nsS'Y:VBus138 - CLUCCI39'\np426\ng35\n(S'Variable_Type'\n(I2\nttRp427\nsS'Y:VBus39 - CSTLUC21'\np428\ng35\n(S'Variable_Type'\n(I2\nttRp429\nsS'Y:PMachine74 - CCERVI31'\np430\ng35\n(S'Variable_Type'\n(I2\nttRp431\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np432\ng35\n(S'Variable_Type'\n(I2\nttRp433\nsS'Y:Load 78 - CFURIA31'\np434\ng35\n(S'Variable_Type'\n(I2\nttRp435\nsS'Y:VBus28 - CLORET21'\np436\ng35\n(S'Variable_Type'\n(I2\nttRp437\nsS'Y:PMachine105 - CPROPR32'\np438\ng35\n(S'Variable_Type'\n(I2\nttRp439\nsS'Y:VBus96 - COCANA35'\np440\ng35\n(S'Variable_Type'\n(I2\nttRp441\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np442\ng35\n(S'Variable_Type'\n(I2\nttRp443\nsS'Y:PMachine18 - CCASAM21'\np444\ng35\n(S'Variable_Type'\n(I2\nttRp445\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np446\ng35\n(S'Variable_Type'\n(I2\nttRp447\nsS'Y:VBus13 - CBIGUG21'\np448\ng35\n(S'Variable_Type'\n(I2\nttRp449\nsS'Y:VBus59 - CCALDA31'\np450\ng35\n(S'Variable_Type'\n(I2\nttRp451\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np452\ng35\n(S'Variable_Type'\n(I2\nttRp453\nsS'Y:VBus58 - CBONIF32'\np454\ng35\n(S'Variable_Type'\n(I2\nttRp455\nsS'Y:VBus84 - CLORET31'\np456\ng35\n(S'Variable_Type'\n(I2\nttRp457\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np458\ng35\n(S'Variable_Type'\n(I2\nttRp459\nsS'Y:VBus97 - COCANA36'\np460\ng35\n(S'Variable_Type'\n(I2\nttRp461\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np462\ng35\n(S'Variable_Type'\n(I2\nttRp463\nsS'Y:VBus29 - CLUCCI21'\np464\ng35\n(S'Variable_Type'\n(I2\nttRp465\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np466\ng35\n(S'Variable_Type'\n(I2\nttRp467\nsS'Y:Load 110 - CSTLUC31'\np468\ng35\n(S'Variable_Type'\n(I2\nttRp469\nsS'Y:VBus80 - CGHISO31'\np470\ng35\n(S'Variable_Type'\n(I2\nttRp471\nsS'Y:PMachine114 - CSOVEN31'\np472\ng35\n(S'Variable_Type'\n(I2\nttRp473\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np474\ng35\n(S'Variable_Type'\n(I2\nttRp475\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np476\ng35\n(S'Variable_Type'\n(I2\nttRp477\nsS'Y:PMachine93 - COCANA32'\np478\ng35\n(S'Variable_Type'\n(I2\nttRp479\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np480\ng35\n(S'Variable_Type'\n(I2\nttRp481\nsS'Y:VBus87 - CLUCCI32'\np482\ng35\n(S'Variable_Type'\n(I2\nttRp483\nsS'Y:VBus62 - CCALVI32'\np484\ng35\n(S'Variable_Type'\n(I2\nttRp485\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np486\ng35\n(S'Variable_Type'\n(I2\nttRp487\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np488\ng35\n(S'Variable_Type'\n(I2\nttRp489\nsS'Y:VBus81 - CGHISO32'\np490\ng35\n(S'Variable_Type'\n(I2\nttRp491\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np492\ng35\n(S'Variable_Type'\n(I2\nttRp493\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np494\ng35\n(S'Variable_Type'\n(I2\nttRp495\nsS'Y:VBus86 - CLUCCI31'\np496\ng35\n(S'Variable_Type'\n(I2\nttRp497\nsS'X:Load(pu)'\np498\ng36\nsS'Y:NbeTension'\np499\ng35\n(S'Variable_Type'\n(I2\nttRp500\nsS'Y:VBus95 - COCANA34'\np501\ng35\n(S'Variable_Type'\n(I2\nttRp502\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np503\ng35\n(S'Variable_Type'\n(I2\nttRp504\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np505\ng35\n(S'Variable_Type'\n(I2\nttRp506\nsS'Y:Load 95 - COCANA34'\np507\ng35\n(S'Variable_Type'\n(I2\nttRp508\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np509\ng35\n(S'Variable_Type'\n(I2\nttRp510\nsS'Y:PMachine90 - CMOROS31'\np511\ng35\n(S'Variable_Type'\n(I2\nttRp512\nsS'Y:Load 101 - CPIETR31'\np513\ng35\n(S'Variable_Type'\n(I2\nttRp514\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np515\ng35\n(S'Variable_Type'\n(I2\nttRp516\nsS'Y:PMachine132 - CVAZZI313'\np517\ng35\n(S'Variable_Type'\n(I2\nttRp518\nsS'Y:VBus125 - CVAZZI36'\np519\ng35\n(S'Variable_Type'\n(I2\nttRp520\nsS'Y:VBus135 - CLUCCI36'\np521\ng35\n(S'Variable_Type'\n(I2\nttRp522\nsS'Y:VBus47 - CVAZZI21'\np523\ng35\n(S'Variable_Type'\n(I2\nttRp524\nsS'Y:VBus94 - COCANA33'\np525\ng35\n(S'Variable_Type'\n(I2\nttRp526\nsS'Y:VBus17 - CCALVI21'\np527\ng35\n(S'Variable_Type'\n(I2\nttRp528\nsS'Y:Load 90 - CMOROS31'\np529\ng35\n(S'Variable_Type'\n(I2\nttRp530\nsS'Y:VBus120 - CVAZZI31'\np531\ng35\n(S'Variable_Type'\n(I2\nttRp532\nsS'X:ProdPV%Pnom'\np533\ng35\n(S'Variable_Type'\n(I2\nttRp534\nsS'Y:VBus52 - CASPRE32'\np535\ng35\n(S'Variable_Type'\n(I2\nttRp536\nsS'Y:VBus25 - CFURIA22'\np537\ng35\n(S'Variable_Type'\n(I2\nttRp538\nsS'Y:Load 76 - CCORTE31'\np539\ng35\n(S'Variable_Type'\n(I2\nttRp540\nsS'Y:PMachine69 - CCASAM37'\np541\ng35\n(S'Variable_Type'\n(I2\nttRp542\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np543\ng35\n(S'Variable_Type'\n(I2\nttRp544\nsS'Y:PMachine92 - COCANA31'\np545\ng35\n(S'Variable_Type'\n(I2\nttRp546\nsS'Y:VBus35 - CPORTO21'\np547\ng35\n(S'Variable_Type'\n(I2\nttRp548\nsS'Y:PMachine122 - CVAZZI33'\np549\ng35\n(S'Variable_Type'\n(I2\nttRp550\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np551\ng35\n(S'Variable_Type'\n(I2\nttRp552\nsS'Y:PMachine77 - CCORTE32'\np553\ng35\n(S'Variable_Type'\n(I2\nttRp554\nsS'Y:VBus74 - CCERVI31'\np555\ng35\n(S'Variable_Type'\n(I2\nttRp556\nsS'Y:VBus126 - CVAZZI37'\np557\ng35\n(S'Variable_Type'\n(I2\nttRp558\nsS'Y:PMachine60 - CCALDA32'\np559\ng35\n(S'Variable_Type'\n(I2\nttRp560\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np561\ng35\n(S'Variable_Type'\n(I2\nttRp562\nsS'Y:VBus20 - CCERVI21'\np563\ng35\n(S'Variable_Type'\n(I2\nttRp564\nsS'Y:VBus119 - CTRAVO31'\np565\ng35\n(S'Variable_Type'\n(I2\nttRp566\nsS'Y:VBus11 - CASPRE21'\np567\ng35\n(S'Variable_Type'\n(I2\nttRp568\nsS'Y:VBus139 - CLUCCI310'\np569\ng35\n(S'Variable_Type'\n(I2\nttRp570\nsS'Y:VBus106 - CRIZZA31'\np571\ng35\n(S'Variable_Type'\n(I2\nttRp572\nsS'Y:PMachine66 - CCASAM34'\np573\ng35\n(S'Variable_Type'\n(I2\nttRp574\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np575\ng35\n(S'Variable_Type'\n(I2\nttRp576\nsS'Y:PMachine133 - CVAZZI314'\np577\ng35\n(S'Variable_Type'\n(I2\nttRp578\nsS'Y:VBus90 - CMOROS31'\np579\ng35\n(S'Variable_Type'\n(I2\nttRp580\nsS'Y:Load 74 - CCERVI31'\np581\ng35\n(S'Variable_Type'\n(I2\nttRp582\nsS'X:lineOff#'\np583\ng44\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np584\ng35\n(S'Variable_Type'\n(I2\nttRp585\nsS'Y:VBus136 - CLUCCI37'\np586\ng35\n(S'Variable_Type'\n(I2\nttRp587\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np588\ng35\n(S'Variable_Type'\n(I2\nttRp589\nsS'Y:VBus137 - CLUCCI38'\np590\ng35\n(S'Variable_Type'\n(I2\nttRp591\nsS'Y:VBus130 - CVAZZI311'\np592\ng35\n(S'Variable_Type'\n(I2\nttRp593\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np594\ng35\n(S'Variable_Type'\n(I2\nttRp595\nsS'Y:VBus46 - CTRAVO21'\np596\ng35\n(S'Variable_Type'\n(I2\nttRp597\nsS'Y:VBus113 - CSAMPO32'\np598\ng35\n(S'Variable_Type'\n(I2\nttRp599\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np600\ng35\n(S'Variable_Type'\n(I2\nttRp601\nsS'Y:PMachine65 - CCASAM33'\np602\ng35\n(S'Variable_Type'\n(I2\nttRp603\nsS'Y:VBus78 - CFURIA31'\np604\ng35\n(S'Variable_Type'\n(I2\nttRp605\nsS'Y:VBus26 - CGHISO21'\np606\ng35\n(S'Variable_Type'\n(I2\nttRp607\nsS'Y:VBus121 - CVAZZI32'\np608\ng35\n(S'Variable_Type'\n(I2\nttRp609\nsS'Y:PMachine97 - COCANA36'\np610\ng35\n(S'Variable_Type'\n(I2\nttRp611\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np612\ng35\n(S'Variable_Type'\n(I2\nttRp613\nsS'Y:PMachine83 - CILERO32'\np614\ng35\n(S'Variable_Type'\n(I2\nttRp615\nsS'Y:VBus83 - CILERO32'\np616\ng35\n(S'Variable_Type'\n(I2\nttRp617\nsS'Y:VBus66 - CCASAM34'\np618\ng35\n(S'Variable_Type'\n(I2\nttRp619\nsS'Y:PMachine1 - CBONIF11'\np620\ng35\n(S'Variable_Type'\n(I2\nttRp621\nsS'Y:VBus111 - CSTMAR31'\np622\ng35\n(S'Variable_Type'\n(I2\nttRp623\nsS'Y:VBus124 - CVAZZI35'\np624\ng35\n(S'Variable_Type'\n(I2\nttRp625\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np626\ng35\n(S'Variable_Type'\n(I2\nttRp627\nsS'Y:PMachine131 - CVAZZI312'\np628\ng35\n(S'Variable_Type'\n(I2\nttRp629\nsS'Y:VBus44 - CTAGLI21'\np630\ng35\n(S'Variable_Type'\n(I2\nttRp631\nsS'Y:VBus110 - CSTLUC31'\np632\ng35\n(S'Variable_Type'\n(I2\nttRp633\nsS'Y:VBus88 - CLUCCI33'\np634\ng35\n(S'Variable_Type'\n(I2\nttRp635\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np636\ng35\n(S'Variable_Type'\n(I2\nttRp637\nsS'Y:VBus38 - CSAGON21'\np638\ng35\n(S'Variable_Type'\n(I2\nttRp639\nsS'Y:PMachine81 - CGHISO32'\np640\ng35\n(S'Variable_Type'\n(I2\nttRp641\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np642\ng35\n(S'Variable_Type'\n(I2\nttRp643\nsS'Y:PMachine137 - CLUCCI38'\np644\ng35\n(S'Variable_Type'\n(I2\nttRp645\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np646\ng35\n(S'Variable_Type'\n(I2\nttRp647\nssS'noCopy'\np648\n(lp649\nS'orderedDomain'\np650\nasba(iOWContexts\nContext\np651\n(dp652\ng24\n(lp653\nsg26\n(dp654\nS'Iteration'\np655\ng35\n(S'Variable_Type'\n(I6\nttRp656\nssg28\n(dp657\nS'attrLabel'\np658\n(S''\nI-1\ntp659\nsS'attrShape'\np660\n(S''\nI0\ntp661\nsS'attrX'\np662\n(S'X:Load(pu)'\np663\ng35\n(S'Variable_Type'\n(I2\nttRp664\ntp665\nsS'attrY'\np666\n(S'Y:PMachine30 - CLUCCI22'\ng35\n(S'Variable_Type'\n(I2\nttRp667\ntp668\nsS'attrSize'\np669\n(S'X:ProdPV%Pnom'\np670\ng35\n(S'Variable_Type'\n(I2\nttRp671\ntp672\nsS'attrColor'\np673\n(S''\nI0\ntp674\nssg46\nF1369744625.5610001\nsg47\n(dp675\nS'Y:PMachine134 - CLUCCI35'\np676\ng35\n(S'Variable_Type'\n(I2\nttRp677\nsS'Y:VBus77 - CCORTE32'\np678\ng35\n(S'Variable_Type'\n(I2\nttRp679\nsS'Y:VBus134 - CLUCCI35'\np680\ng35\n(S'Variable_Type'\n(I2\nttRp681\nsS'Y:VBus109 - CSAGON32'\np682\ng35\n(S'Variable_Type'\n(I2\nttRp683\nsS'Y:VBus102 - CPORTO31'\np684\ng35\n(S'Variable_Type'\n(I2\nttRp685\nsS'Y:VBus18 - CCASAM21'\np686\ng35\n(S'Variable_Type'\n(I2\nttRp687\nsS'Y:VBus114 - CSOVEN31'\np688\ng35\n(S'Variable_Type'\n(I2\nttRp689\nsS'Y:VBus83 - CILERO32'\np690\ng35\n(S'Variable_Type'\n(I2\nttRp691\nsS'Y:VBus117 - CTOLLA32'\np692\ng35\n(S'Variable_Type'\n(I2\nttRp693\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np694\ng35\n(S'Variable_Type'\n(I2\nttRp695\nsS'Y:PMachine87 - CLUCCI32'\np696\ng35\n(S'Variable_Type'\n(I2\nttRp697\nsS'Y:PMachine113 - CSAMPO32'\np698\ng35\n(S'Variable_Type'\n(I2\nttRp699\nsS'Y:Load 84 - CLORET31'\np700\ng35\n(S'Variable_Type'\n(I2\nttRp701\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np702\ng35\n(S'Variable_Type'\n(I2\nttRp703\nsS'Y:Load 80 - CGHISO31'\np704\ng35\n(S'Variable_Type'\n(I2\nttRp705\nsS'Y:PMachine125 - CVAZZI36'\np706\ng35\n(S'Variable_Type'\n(I2\nttRp707\nsS'Y:VBus116 - CTOLLA31'\np708\ng35\n(S'Variable_Type'\n(I2\nttRp709\nsS'Y:PMachine88 - CLUCCI33'\np710\ng35\n(S'Variable_Type'\n(I2\nttRp711\nsS'Y:PMachine124 - CVAZZI35'\np712\ng35\n(S'Variable_Type'\n(I2\nttRp713\nsS'Y:PMachine111 - CSTMAR31'\np714\ng35\n(S'Variable_Type'\n(I2\nttRp715\nsS'Y:NbeTransit'\np716\ng35\n(S'Variable_Type'\n(I2\nttRp717\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np718\ng35\n(S'Variable_Type'\n(I2\nttRp719\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np720\ng35\n(S'Variable_Type'\n(I2\nttRp721\nsS'Y:PMachine130 - CVAZZI311'\np722\ng35\n(S'Variable_Type'\n(I2\nttRp723\nsS'Y:PMachine127 - CVAZZI38'\np724\ng35\n(S'Variable_Type'\n(I2\nttRp725\nsS'Y:VBus131 - CVAZZI312'\np726\ng35\n(S'Variable_Type'\n(I2\nttRp727\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np728\ng35\n(S'Variable_Type'\n(I2\nttRp729\nsS'Y:PMachine123 - CVAZZI34'\np730\ng35\n(S'Variable_Type'\n(I2\nttRp731\nsS'Y:VBus118 - CTOLLA33'\np732\ng35\n(S'Variable_Type'\n(I2\nttRp733\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np734\ng35\n(S'Variable_Type'\n(I2\nttRp735\nsS'Y:PMachine58 - CBONIF32'\np736\ng35\n(S'Variable_Type'\n(I2\nttRp737\nsS'Y:VBus90 - CMOROS31'\np738\ng35\n(S'Variable_Type'\n(I2\nttRp739\nsS'Y:Load 104 - CPROPR31'\np740\ng35\n(S'Variable_Type'\n(I2\nttRp741\nsS'Y:PMachine30 - CLUCCI22'\np742\ng667\nsS'Y:VBus100 - COLETT31'\np743\ng35\n(S'Variable_Type'\n(I2\nttRp744\nsS'Y:PProdTot'\np745\ng35\n(S'Variable_Type'\n(I2\nttRp746\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np747\ng35\n(S'Variable_Type'\n(I2\nttRp748\nsS'Y:VBus57 - CBONIF31'\np749\ng35\n(S'Variable_Type'\n(I2\nttRp750\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np751\ng35\n(S'Variable_Type'\n(I2\nttRp752\nsS'Y:PMachine131 - CVAZZI312'\np753\ng35\n(S'Variable_Type'\n(I2\nttRp754\nsS'Y:PMachine109 - CSAGON32'\np755\ng35\n(S'Variable_Type'\n(I2\nttRp756\nsS'Y:PMachine135 - CLUCCI36'\np757\ng35\n(S'Variable_Type'\n(I2\nttRp758\nsS'Y:VBus30 - CLUCCI22'\np759\ng35\n(S'Variable_Type'\n(I2\nttRp760\nsS'Y:VBus122 - CVAZZI33'\np761\ng35\n(S'Variable_Type'\n(I2\nttRp762\nsS'Y:VBus22 - CCORTE21'\np763\ng35\n(S'Variable_Type'\n(I2\nttRp764\nsS'Y:PMachine89 - CLUCCI34'\np765\ng35\n(S'Variable_Type'\n(I2\nttRp766\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np767\ng35\n(S'Variable_Type'\n(I2\nttRp768\nsS'Y:PMachine107 - CRIZZA32'\np769\ng35\n(S'Variable_Type'\n(I2\nttRp770\nsS'Y:VBus16 - CCALDA21'\np771\ng35\n(S'Variable_Type'\n(I2\nttRp772\nsS'Y:Load 102 - CPORTO31'\np773\ng35\n(S'Variable_Type'\n(I2\nttRp774\nsS'Y:VBus107 - CRIZZA32'\np775\ng35\n(S'Variable_Type'\n(I2\nttRp776\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np777\ng35\n(S'Variable_Type'\n(I2\nttRp778\nsS'Y:VBus41 - CSAMPO21'\np779\ng35\n(S'Variable_Type'\n(I2\nttRp780\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np781\ng35\n(S'Variable_Type'\n(I2\nttRp782\nsS'Y:VBus34 - CPIETR21'\np783\ng35\n(S'Variable_Type'\n(I2\nttRp784\nsS'Y:Load 108 - CSAGON31'\np785\ng35\n(S'Variable_Type'\n(I2\nttRp786\nsS'Y:VBus56 - CBIGUG32'\np787\ng35\n(S'Variable_Type'\n(I2\nttRp788\nsS'Y:PMachine42 - CSISCO21'\np789\ng35\n(S'Variable_Type'\n(I2\nttRp790\nsS'Y:PMachine138 - CLUCCI39'\np791\ng35\n(S'Variable_Type'\n(I2\nttRp792\nsS'Y:PMachine112 - CSAMPO31'\np793\ng35\n(S'Variable_Type'\n(I2\nttRp794\nsS'Y:VBus105 - CPROPR32'\np795\ng35\n(S'Variable_Type'\n(I2\nttRp796\nsS'Y:VBus1 - CBONIF11'\np797\ng35\n(S'Variable_Type'\n(I2\nttRp798\nsS'Y:VBus12 - CBASTI21'\np799\ng35\n(S'Variable_Type'\n(I2\nttRp800\nsS'Y:PMachine129 - CVAZZI310'\np801\ng35\n(S'Variable_Type'\n(I2\nttRp802\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np803\ng35\n(S'Variable_Type'\n(I2\nttRp804\nsS'Y:VBus35 - CPORTO21'\np805\ng35\n(S'Variable_Type'\n(I2\nttRp806\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np807\ng35\n(S'Variable_Type'\n(I2\nttRp808\nsS'Y:VBus54 - CBASTI32'\np809\ng35\n(S'Variable_Type'\n(I2\nttRp810\nsS'Y:VBus69 - CCASAM37'\np811\ng35\n(S'Variable_Type'\n(I2\nttRp812\nsS'Y:VBus45 - CTOLLA21'\np813\ng35\n(S'Variable_Type'\n(I2\nttRp814\nsS'Y:PMachine115 - CTAGLI31'\np815\ng35\n(S'Variable_Type'\n(I2\nttRp816\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np817\ng35\n(S'Variable_Type'\n(I2\nttRp818\nsS'Y:VBus43 - CSOVEN21'\np819\ng35\n(S'Variable_Type'\n(I2\nttRp820\nsS'Y:VBus76 - CCORTE31'\np821\ng35\n(S'Variable_Type'\n(I2\nttRp822\nsS'Y:VBus75 - CCORSC31'\np823\ng35\n(S'Variable_Type'\n(I2\nttRp824\nsS'Y:PMachine78 - CFURIA31'\np825\ng35\n(S'Variable_Type'\n(I2\nttRp826\nsS'Y:VBus127 - CVAZZI38'\np827\ng35\n(S'Variable_Type'\n(I2\nttRp828\nsS'Y:VBus115 - CTAGLI31'\np829\ng35\n(S'Variable_Type'\n(I2\nttRp830\nsS'Y:Load 61 - CCALVI31'\np831\ng35\n(S'Variable_Type'\n(I2\nttRp832\nsS'Y:VBus55 - CBIGUG31'\np833\ng35\n(S'Variable_Type'\n(I2\nttRp834\nsS'Y:Load 42 - CSISCO21'\np835\ng35\n(S'Variable_Type'\n(I2\nttRp836\nsS'Y:VBus72 - CCASTI31'\np837\ng35\n(S'Variable_Type'\n(I2\nttRp838\nsS'Y:Load 37 - CRIZZA21'\np839\ng35\n(S'Variable_Type'\n(I2\nttRp840\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np841\ng35\n(S'Variable_Type'\n(I2\nttRp842\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np843\ng35\n(S'Variable_Type'\n(I2\nttRp844\nsS'Y:PMachine137 - CLUCCI38'\np845\ng35\n(S'Variable_Type'\n(I2\nttRp846\nsS'Y:PMachine67 - CCASAM35'\np847\ng35\n(S'Variable_Type'\n(I2\nttRp848\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np849\ng35\n(S'Variable_Type'\n(I2\nttRp850\nsS'Y:VBus31 - CMOROS21'\np851\ng35\n(S'Variable_Type'\n(I2\nttRp852\nsS'Y:VBus103 - CPORTO32'\np853\ng35\n(S'Variable_Type'\n(I2\nttRp854\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np855\ng35\n(S'Variable_Type'\n(I2\nttRp856\nsS'Y:PMachine14 - CBONIF21'\np857\ng35\n(S'Variable_Type'\n(I2\nttRp858\nsS'Y:PMachine72 - CCASTI31'\np859\ng35\n(S'Variable_Type'\n(I2\nttRp860\nsS'Y:VBus27 - CILERO21'\np861\ng35\n(S'Variable_Type'\n(I2\nttRp862\nsS'Y:PMachine75 - CCORSC31'\np863\ng35\n(S'Variable_Type'\n(I2\nttRp864\nsS'Y:Load 51 - CASPRE31'\np865\ng35\n(S'Variable_Type'\n(I2\nttRp866\nsS'Y:VBus51 - CASPRE31'\np867\ng35\n(S'Variable_Type'\n(I2\nttRp868\nsS'Y:PMachine94 - COCANA33'\np869\ng35\n(S'Variable_Type'\n(I2\nttRp870\nsS'Y:PMachine126 - CVAZZI37'\np871\ng35\n(S'Variable_Type'\n(I2\nttRp872\nsS'Y:Load 86 - CLUCCI31'\np873\ng35\n(S'Variable_Type'\n(I2\nttRp874\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np875\ng35\n(S'Variable_Type'\n(I2\nttRp876\nsS'Y:PMachine104 - CPROPR31'\np877\ng35\n(S'Variable_Type'\n(I2\nttRp878\nsS'Y:VBus128 - CVAZZI39'\np879\ng35\n(S'Variable_Type'\n(I2\nttRp880\nsS'Y:PMachine136 - CLUCCI37'\np881\ng35\n(S'Variable_Type'\n(I2\nttRp882\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np883\ng35\n(S'Variable_Type'\n(I2\nttRp884\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np885\ng35\n(S'Variable_Type'\n(I2\nttRp886\nsS'Y:PMachine29 - CLUCCI21'\np887\ng35\n(S'Variable_Type'\n(I2\nttRp888\nsS'Y:VBus42 - CSISCO21'\np889\ng35\n(S'Variable_Type'\n(I2\nttRp890\nsS'Y:Load 110 - CSTLUC31'\np891\ng35\n(S'Variable_Type'\n(I2\nttRp892\nsS'Y:VBus14 - CBONIF21'\np893\ng35\n(S'Variable_Type'\n(I2\nttRp894\nsS'Y:VBus73 - CCASTI32'\np895\ng35\n(S'Variable_Type'\n(I2\nttRp896\nsS'Y:VBus64 - CCASAM32'\np897\ng35\n(S'Variable_Type'\n(I2\nttRp898\nsS'Y:PMachine128 - CVAZZI39'\np899\ng35\n(S'Variable_Type'\n(I2\nttRp900\nsS'Y:VBus133 - CVAZZI314'\np901\ng35\n(S'Variable_Type'\n(I2\nttRp902\nsS'Y:VBus63 - CCASAM31'\np903\ng35\n(S'Variable_Type'\n(I2\nttRp904\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np905\ng35\n(S'Variable_Type'\n(I2\nttRp906\nsS'Y:%Losses'\np907\ng35\n(S'Variable_Type'\n(I2\nttRp908\nsS'Y:VBus85 - CLORET32'\np909\ng35\n(S'Variable_Type'\n(I2\nttRp910\nsS'Y:Load 59 - CCALDA31'\np911\ng35\n(S'Variable_Type'\n(I2\nttRp912\nsS'Y:VBus129 - CVAZZI310'\np913\ng35\n(S'Variable_Type'\n(I2\nttRp914\nsS'Y:VBus101 - CPIETR31'\np915\ng35\n(S'Variable_Type'\n(I2\nttRp916\nsS'Y:PMachine106 - CRIZZA31'\np917\ng35\n(S'Variable_Type'\n(I2\nttRp918\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np919\ng35\n(S'Variable_Type'\n(I2\nttRp920\nsS'Y:PMachine118 - CTOLLA33'\np921\ng35\n(S'Variable_Type'\n(I2\nttRp922\nsS'Y:VBus19 - CCASTI21'\np923\ng35\n(S'Variable_Type'\n(I2\nttRp924\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np925\ng35\n(S'Variable_Type'\n(I2\nttRp926\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np927\ng35\n(S'Variable_Type'\n(I2\nttRp928\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np929\ng35\n(S'Variable_Type'\n(I2\nttRp930\nsS'Y:Load 115 - CTAGLI31'\np931\ng35\n(S'Variable_Type'\n(I2\nttRp932\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np933\ng35\n(S'Variable_Type'\n(I2\nttRp934\nsS'Y:VBus15 - CBONIF22'\np935\ng35\n(S'Variable_Type'\n(I2\nttRp936\nsS'Y:PMachine47 - CVAZZI21'\np937\ng35\n(S'Variable_Type'\n(I2\nttRp938\nsS'Y:VBus123 - CVAZZI34'\np939\ng35\n(S'Variable_Type'\n(I2\nttRp940\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np941\ng35\n(S'Variable_Type'\n(I2\nttRp942\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np943\ng35\n(S'Variable_Type'\n(I2\nttRp944\nsS'Y:VBus44 - CTAGLI21'\np945\ng35\n(S'Variable_Type'\n(I2\nttRp946\nsS'Y:VBus65 - CCASAM33'\np947\ng35\n(S'Variable_Type'\n(I2\nttRp948\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np949\ng35\n(S'Variable_Type'\n(I2\nttRp950\nsS'Y:PMachine139 - CLUCCI310'\np951\ng35\n(S'Variable_Type'\n(I2\nttRp952\nsS'Y:VBus112 - CSAMPO31'\np953\ng35\n(S'Variable_Type'\n(I2\nttRp954\nsS'Y:VBus68 - CCASAM36'\np955\ng35\n(S'Variable_Type'\n(I2\nttRp956\nsS'Y:Load 55 - CBIGUG31'\np957\ng35\n(S'Variable_Type'\n(I2\nttRp958\nsS'Y:PMachine53 - CBASTI31'\np959\ng35\n(S'Variable_Type'\n(I2\nttRp960\nsS'Y:NbeTransit_0.9-1'\np961\ng35\n(S'Variable_Type'\n(I2\nttRp962\nsS'Y:VBus24 - CFURIA21'\np963\ng35\n(S'Variable_Type'\n(I2\nttRp964\nsS'Y:VBus23 - CCORTE22'\np965\ng35\n(S'Variable_Type'\n(I2\nttRp966\nsS'XProdEolienne%Pnom'\np967\ng35\n(S'Variable_Type'\n(I2\nttRp968\nsS'Y:VBus40 - CSTMAR21'\np969\ng35\n(S'Variable_Type'\n(I2\nttRp970\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np971\ng35\n(S'Variable_Type'\n(I2\nttRp972\nsS'Y:PMachine120 - CVAZZI31'\np973\ng35\n(S'Variable_Type'\n(I2\nttRp974\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np975\ng35\n(S'Variable_Type'\n(I2\nttRp976\nsS'Y:PMachine117 - CTOLLA32'\np977\ng35\n(S'Variable_Type'\n(I2\nttRp978\nsS'Y:VBus89 - CLUCCI34'\np979\ng35\n(S'Variable_Type'\n(I2\nttRp980\nsS'Y:VBus33 - COLETT21'\np981\ng35\n(S'Variable_Type'\n(I2\nttRp982\nsS'Y:VBus32 - COCANA21'\np983\ng35\n(S'Variable_Type'\n(I2\nttRp984\nsS'Y:PMachine121 - CVAZZI32'\np985\ng35\n(S'Variable_Type'\n(I2\nttRp986\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np987\ng35\n(S'Variable_Type'\n(I2\nttRp988\nsS'Y:VBus59 - CCALDA31'\np989\ng35\n(S'Variable_Type'\n(I2\nttRp990\nsS'Y:VBus82 - CILERO31'\np991\ng35\n(S'Variable_Type'\n(I2\nttRp992\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np993\ng35\n(S'Variable_Type'\n(I2\nttRp994\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np995\ng35\n(S'Variable_Type'\n(I2\nttRp996\nsS'Y:VBus37 - CRIZZA21'\np997\ng35\n(S'Variable_Type'\n(I2\nttRp998\nsS'Y:PMachine73 - CCASTI32'\np999\ng35\n(S'Variable_Type'\n(I2\nttRp1000\nsS'Y:PMachine86 - CLUCCI31'\np1001\ng35\n(S'Variable_Type'\n(I2\nttRp1002\nsS'Y:Load 53 - CBASTI31'\np1003\ng35\n(S'Variable_Type'\n(I2\nttRp1004\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np1005\ng35\n(S'Variable_Type'\n(I2\nttRp1006\nsS'Y:VBus21 - CCORSC21'\np1007\ng35\n(S'Variable_Type'\n(I2\nttRp1008\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np1009\ng35\n(S'Variable_Type'\n(I2\nttRp1010\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np1011\ng35\n(S'Variable_Type'\n(I2\nttRp1012\nsS'Y:Load 82 - CILERO31'\np1013\ng35\n(S'Variable_Type'\n(I2\nttRp1014\nsS'Y:PMachine64 - CCASAM32'\np1015\ng35\n(S'Variable_Type'\n(I2\nttRp1016\nsS'Y:VBus67 - CCASAM35'\np1017\ng35\n(S'Variable_Type'\n(I2\nttRp1018\nsS'Y:VBus53 - CBASTI31'\np1019\ng35\n(S'Variable_Type'\n(I2\nttRp1020\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np1021\ng35\n(S'Variable_Type'\n(I2\nttRp1022\nsS'Y:VBus61 - CCALVI31'\np1023\ng35\n(S'Variable_Type'\n(I2\nttRp1024\nsS'Y:VBus93 - COCANA32'\np1025\ng35\n(S'Variable_Type'\n(I2\nttRp1026\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np1027\ng35\n(S'Variable_Type'\n(I2\nttRp1028\nsS'Y:PMachine92 - COCANA31'\np1029\ng35\n(S'Variable_Type'\n(I2\nttRp1030\nsS'Y:VBus104 - CPROPR31'\np1031\ng35\n(S'Variable_Type'\n(I2\nttRp1032\nsS'Y:VBus48 - CZSSS621'\np1033\ng35\n(S'Variable_Type'\n(I2\nttRp1034\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np1035\ng35\n(S'Variable_Type'\n(I2\nttRp1036\nsS'Y:VBus74 - CCERVI31'\np1037\ng35\n(S'Variable_Type'\n(I2\nttRp1038\nsS'Y:VBus36 - CPROPR21'\np1039\ng35\n(S'Variable_Type'\n(I2\nttRp1040\nsS'Y:Load 100 - COLETT31'\np1041\ng35\n(S'Variable_Type'\n(I2\nttRp1042\nsS'Y:PMachine54 - CBASTI32'\np1043\ng35\n(S'Variable_Type'\n(I2\nttRp1044\nsS'Y:VBus138 - CLUCCI39'\np1045\ng35\n(S'Variable_Type'\n(I2\nttRp1046\nsS'Y:VBus39 - CSTLUC21'\np1047\ng35\n(S'Variable_Type'\n(I2\nttRp1048\nsS'Y:PMachine74 - CCERVI31'\np1049\ng35\n(S'Variable_Type'\n(I2\nttRp1050\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np1051\ng35\n(S'Variable_Type'\n(I2\nttRp1052\nsS'Y:Load 78 - CFURIA31'\np1053\ng35\n(S'Variable_Type'\n(I2\nttRp1054\nsS'Y:VBus28 - CLORET21'\np1055\ng35\n(S'Variable_Type'\n(I2\nttRp1056\nsS'Y:PMachine105 - CPROPR32'\np1057\ng35\n(S'Variable_Type'\n(I2\nttRp1058\nsS'Y:VBus96 - COCANA35'\np1059\ng35\n(S'Variable_Type'\n(I2\nttRp1060\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np1061\ng35\n(S'Variable_Type'\n(I2\nttRp1062\nsS'Y:PMachine18 - CCASAM21'\np1063\ng35\n(S'Variable_Type'\n(I2\nttRp1064\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np1065\ng35\n(S'Variable_Type'\n(I2\nttRp1066\nsS'Y:VBus13 - CBIGUG21'\np1067\ng35\n(S'Variable_Type'\n(I2\nttRp1068\nsS'Y:VBus92 - COCANA31'\np1069\ng35\n(S'Variable_Type'\n(I2\nttRp1070\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np1071\ng35\n(S'Variable_Type'\n(I2\nttRp1072\nsS'Y:Load 76 - CCORTE31'\np1073\ng35\n(S'Variable_Type'\n(I2\nttRp1074\nsS'Y:VBus58 - CBONIF32'\np1075\ng35\n(S'Variable_Type'\n(I2\nttRp1076\nsS'Y:VBus84 - CLORET31'\np1077\ng35\n(S'Variable_Type'\n(I2\nttRp1078\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np1079\ng35\n(S'Variable_Type'\n(I2\nttRp1080\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np1081\ng35\n(S'Variable_Type'\n(I2\nttRp1082\nsS'Y:VBus97 - COCANA36'\np1083\ng35\n(S'Variable_Type'\n(I2\nttRp1084\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np1085\ng35\n(S'Variable_Type'\n(I2\nttRp1086\nsS'Y:VBus106 - CRIZZA31'\np1087\ng35\n(S'Variable_Type'\n(I2\nttRp1088\nsS'Y:VBus79 - CFURIA32'\np1089\ng35\n(S'Variable_Type'\n(I2\nttRp1090\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np1091\ng35\n(S'Variable_Type'\n(I2\nttRp1092\nsS'Y:VBus80 - CGHISO31'\np1093\ng35\n(S'Variable_Type'\n(I2\nttRp1094\nsS'Y:PMachine114 - CSOVEN31'\np1095\ng35\n(S'Variable_Type'\n(I2\nttRp1096\nsS'Y:VBus132 - CVAZZI313'\np1097\ng35\n(S'Variable_Type'\n(I2\nttRp1098\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np1099\ng35\n(S'Variable_Type'\n(I2\nttRp1100\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np1101\ng35\n(S'Variable_Type'\n(I2\nttRp1102\nsS'Y:VBus87 - CLUCCI32'\np1103\ng35\n(S'Variable_Type'\n(I2\nttRp1104\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np1105\ng35\n(S'Variable_Type'\n(I2\nttRp1106\nsS'Y:VBus88 - CLUCCI33'\np1107\ng35\n(S'Variable_Type'\n(I2\nttRp1108\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np1109\ng35\n(S'Variable_Type'\n(I2\nttRp1110\nsS'Y:PMachine85 - CLORET32'\np1111\ng35\n(S'Variable_Type'\n(I2\nttRp1112\nsS'Y:VBus81 - CGHISO32'\np1113\ng35\n(S'Variable_Type'\n(I2\nttRp1114\nsS'Y:PMachine63 - CCASAM31'\np1115\ng35\n(S'Variable_Type'\n(I2\nttRp1116\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np1117\ng35\n(S'Variable_Type'\n(I2\nttRp1118\nsS'X:Load(pu)'\np1119\ng664\nsS'Y:NbeTension'\np1120\ng35\n(S'Variable_Type'\n(I2\nttRp1121\nsS'Y:VBus95 - COCANA34'\np1122\ng35\n(S'Variable_Type'\n(I2\nttRp1123\nsS'Y:VBus62 - CCALVI32'\np1124\ng35\n(S'Variable_Type'\n(I2\nttRp1125\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np1126\ng35\n(S'Variable_Type'\n(I2\nttRp1127\nsS'Y:Load 95 - COCANA34'\np1128\ng35\n(S'Variable_Type'\n(I2\nttRp1129\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np1130\ng35\n(S'Variable_Type'\n(I2\nttRp1131\nsS'Y:PMachine90 - CMOROS31'\np1132\ng35\n(S'Variable_Type'\n(I2\nttRp1133\nsS'Y:Load 101 - CPIETR31'\np1134\ng35\n(S'Variable_Type'\n(I2\nttRp1135\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np1136\ng35\n(S'Variable_Type'\n(I2\nttRp1137\nsS'Y:PMachine132 - CVAZZI313'\np1138\ng35\n(S'Variable_Type'\n(I2\nttRp1139\nsS'Y:PMachine65 - CCASAM33'\np1140\ng35\n(S'Variable_Type'\n(I2\nttRp1141\nsS'Y:VBus125 - CVAZZI36'\np1142\ng35\n(S'Variable_Type'\n(I2\nttRp1143\nsS'Y:VBus135 - CLUCCI36'\np1144\ng35\n(S'Variable_Type'\n(I2\nttRp1145\nsS'Y:VBus47 - CVAZZI21'\np1146\ng35\n(S'Variable_Type'\n(I2\nttRp1147\nsS'Y:VBus94 - COCANA33'\np1148\ng35\n(S'Variable_Type'\n(I2\nttRp1149\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np1150\ng35\n(S'Variable_Type'\n(I2\nttRp1151\nsS'Y:VBus17 - CCALVI21'\np1152\ng35\n(S'Variable_Type'\n(I2\nttRp1153\nsS'Y:Load 90 - CMOROS31'\np1154\ng35\n(S'Variable_Type'\n(I2\nttRp1155\nsS'Y:VBus120 - CVAZZI31'\np1156\ng35\n(S'Variable_Type'\n(I2\nttRp1157\nsS'Y:VBus52 - CASPRE32'\np1158\ng35\n(S'Variable_Type'\n(I2\nttRp1159\nsS'Y:VBus25 - CFURIA22'\np1160\ng35\n(S'Variable_Type'\n(I2\nttRp1161\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np1162\ng35\n(S'Variable_Type'\n(I2\nttRp1163\nsS'Y:PMachine69 - CCASAM37'\np1164\ng35\n(S'Variable_Type'\n(I2\nttRp1165\nsS'Y:PConsoTot'\np1166\ng35\n(S'Variable_Type'\n(I2\nttRp1167\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np1168\ng35\n(S'Variable_Type'\n(I2\nttRp1169\nsS'Y:PMachine102 - CPORTO31'\np1170\ng35\n(S'Variable_Type'\n(I2\nttRp1171\nsS'Y:VBus136 - CLUCCI37'\np1172\ng35\n(S'Variable_Type'\n(I2\nttRp1173\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np1174\ng35\n(S'Variable_Type'\n(I2\nttRp1175\nsS'Y:PMachine122 - CVAZZI33'\np1176\ng35\n(S'Variable_Type'\n(I2\nttRp1177\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np1178\ng35\n(S'Variable_Type'\n(I2\nttRp1179\nsS'Y:PMachine77 - CCORTE32'\np1180\ng35\n(S'Variable_Type'\n(I2\nttRp1181\nsS'Y:PMachine116 - CTOLLA31'\np1182\ng35\n(S'Variable_Type'\n(I2\nttRp1183\nsS'Y:VBus126 - CVAZZI37'\np1184\ng35\n(S'Variable_Type'\n(I2\nttRp1185\nsS'Y:PMachine60 - CCALDA32'\np1186\ng35\n(S'Variable_Type'\n(I2\nttRp1187\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np1188\ng35\n(S'Variable_Type'\n(I2\nttRp1189\nsS'Y:VBus20 - CCERVI21'\np1190\ng35\n(S'Variable_Type'\n(I2\nttRp1191\nsS'Y:VBus119 - CTRAVO31'\np1192\ng35\n(S'Variable_Type'\n(I2\nttRp1193\nsS'Y:VBus11 - CASPRE21'\np1194\ng35\n(S'Variable_Type'\n(I2\nttRp1195\nsS'Y:VBus139 - CLUCCI310'\np1196\ng35\n(S'Variable_Type'\n(I2\nttRp1197\nsS'Y:VBus60 - CCALDA32'\np1198\ng35\n(S'Variable_Type'\n(I2\nttRp1199\nsS'Y:PMachine66 - CCASAM34'\np1200\ng35\n(S'Variable_Type'\n(I2\nttRp1201\nsS'Y:PMachine101 - CPIETR31'\np1202\ng35\n(S'Variable_Type'\n(I2\nttRp1203\nsS'Y:PMachine133 - CVAZZI314'\np1204\ng35\n(S'Variable_Type'\n(I2\nttRp1205\nsS'Y:PMachine62 - CCALVI32'\np1206\ng35\n(S'Variable_Type'\n(I2\nttRp1207\nsS'Y:Load 74 - CCERVI31'\np1208\ng35\n(S'Variable_Type'\n(I2\nttRp1209\nsS'X:lineOff#'\np1210\ng35\n(S'Variable_Type'\n(I2\nttRp1211\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np1212\ng35\n(S'Variable_Type'\n(I2\nttRp1213\nsS'Y:VBus108 - CSAGON31'\np1214\ng35\n(S'Variable_Type'\n(I2\nttRp1215\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np1216\ng35\n(S'Variable_Type'\n(I2\nttRp1217\nsS'Y:VBus137 - CLUCCI38'\np1218\ng35\n(S'Variable_Type'\n(I2\nttRp1219\nsS'Y:VBus130 - CVAZZI311'\np1220\ng35\n(S'Variable_Type'\n(I2\nttRp1221\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np1222\ng35\n(S'Variable_Type'\n(I2\nttRp1223\nsS'Y:VBus46 - CTRAVO21'\np1224\ng35\n(S'Variable_Type'\n(I2\nttRp1225\nsS'Y:VBus113 - CSAMPO32'\np1226\ng35\n(S'Variable_Type'\n(I2\nttRp1227\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np1228\ng35\n(S'Variable_Type'\n(I2\nttRp1229\nsS'Y:PMachine68 - CCASAM36'\np1230\ng35\n(S'Variable_Type'\n(I2\nttRp1231\nsS'Y:VBus78 - CFURIA31'\np1232\ng35\n(S'Variable_Type'\n(I2\nttRp1233\nsS'Y:VBus26 - CGHISO21'\np1234\ng35\n(S'Variable_Type'\n(I2\nttRp1235\nsS'Y:VBus121 - CVAZZI32'\np1236\ng35\n(S'Variable_Type'\n(I2\nttRp1237\nsS'Y:PMachine97 - COCANA36'\np1238\ng35\n(S'Variable_Type'\n(I2\nttRp1239\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np1240\ng35\n(S'Variable_Type'\n(I2\nttRp1241\nsS'Y:PMachine83 - CILERO32'\np1242\ng35\n(S'Variable_Type'\n(I2\nttRp1243\nsS'Y:Max%A'\np1244\ng35\n(S'Variable_Type'\n(I2\nttRp1245\nsS'Y:VBus66 - CCASAM34'\np1246\ng35\n(S'Variable_Type'\n(I2\nttRp1247\nsS'Y:PMachine1 - CBONIF11'\np1248\ng35\n(S'Variable_Type'\n(I2\nttRp1249\nsS'Y:VBus111 - CSTMAR31'\np1250\ng35\n(S'Variable_Type'\n(I2\nttRp1251\nsS'Y:VBus124 - CVAZZI35'\np1252\ng35\n(S'Variable_Type'\n(I2\nttRp1253\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np1254\ng35\n(S'Variable_Type'\n(I2\nttRp1255\nsS'Y:VBus29 - CLUCCI21'\np1256\ng35\n(S'Variable_Type'\n(I2\nttRp1257\nsS'Y:PMachine93 - COCANA32'\np1258\ng35\n(S'Variable_Type'\n(I2\nttRp1259\nsS'Y:Load 57 - CBONIF31'\np1260\ng35\n(S'Variable_Type'\n(I2\nttRp1261\nsS'Y:VBus86 - CLUCCI31'\np1262\ng35\n(S'Variable_Type'\n(I2\nttRp1263\nsS'Y:VBus38 - CSAGON21'\np1264\ng35\n(S'Variable_Type'\n(I2\nttRp1265\nsS'Y:PMachine81 - CGHISO32'\np1266\ng35\n(S'Variable_Type'\n(I2\nttRp1267\nsS'Y:PMachine61 - CCALVI31'\np1268\ng35\n(S'Variable_Type'\n(I2\nttRp1269\nsS'Y:VBus110 - CSTLUC31'\np1270\ng35\n(S'Variable_Type'\n(I2\nttRp1271\nsS'X:ProdPV%Pnom'\np1272\ng671\nssg648\n(lp1273\ng650\nasba(iOWContexts\nContext\np1274\n(dp1275\ng24\n(lp1276\nsg26\n(dp1277\nsg28\n(dp1278\nS'attrLabel'\np1279\n(S''\nI-1\ntp1280\nsS'attrShape'\np1281\n(S''\nI0\ntp1282\nsS'attrX'\np1283\n(g663\ng35\n(S'Variable_Type'\n(I2\nttRp1284\ntp1285\nsS'attrY'\np1286\n(S'Y:PMachine107 - CRIZZA32'\ng35\n(S'Variable_Type'\n(I2\nttRp1287\ntp1288\nsS'attrSize'\np1289\n(g670\ng35\n(S'Variable_Type'\n(I2\nttRp1290\ntp1291\nsS'attrColor'\np1292\n(S'X:lineOff#'\ng35\n(S'Variable_Type'\n(I2\nttRp1293\ntp1294\nssg46\nF1369930725.474\nsg47\n(dp1295\nS'Y:PMachine134 - CLUCCI35'\np1296\ng35\n(S'Variable_Type'\n(I1\nttRp1297\nsS'Y:VBus77 - CCORTE32'\np1298\ng35\n(S'Variable_Type'\n(I2\nttRp1299\nsS'Y:VBus134 - CLUCCI35'\np1300\ng35\n(S'Variable_Type'\n(I2\nttRp1301\nsS'Y:VBus109 - CSAGON32'\np1302\ng35\n(S'Variable_Type'\n(I2\nttRp1303\nsS'Y:VBus102 - CPORTO31'\np1304\ng35\n(S'Variable_Type'\n(I2\nttRp1305\nsS'XProdEolienne%Pnom'\np1306\ng35\n(S'Variable_Type'\n(I1\nttRp1307\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np1308\ng35\n(S'Variable_Type'\n(I2\nttRp1309\nsS'Y:PMachine94 - COCANA33'\np1310\ng35\n(S'Variable_Type'\n(I2\nttRp1311\nsS'Y:VBus117 - CTOLLA32'\np1312\ng35\n(S'Variable_Type'\n(I2\nttRp1313\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np1314\ng35\n(S'Variable_Type'\n(I2\nttRp1315\nsS'Y:PMachine87 - CLUCCI32'\np1316\ng35\n(S'Variable_Type'\n(I2\nttRp1317\nsS'Y:PMachine113 - CSAMPO32'\np1318\ng35\n(S'Variable_Type'\n(I2\nttRp1319\nsS'Y:Load 84 - CLORET31'\np1320\ng35\n(S'Variable_Type'\n(I2\nttRp1321\nsS'Y:PMachine89 - CLUCCI34'\np1322\ng35\n(S'Variable_Type'\n(I1\nttRp1323\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np1324\ng35\n(S'Variable_Type'\n(I2\nttRp1325\nsS'Y:Load 80 - CGHISO31'\np1326\ng35\n(S'Variable_Type'\n(I2\nttRp1327\nsS'Y:PMachine125 - CVAZZI36'\np1328\ng35\n(S'Variable_Type'\n(I2\nttRp1329\nsS'Y:PMachine116 - CTOLLA31'\np1330\ng35\n(S'Variable_Type'\n(I2\nttRp1331\nsS'Y:PMachine88 - CLUCCI33'\np1332\ng35\n(S'Variable_Type'\n(I1\nttRp1333\nsS'Y:PMachine120 - CVAZZI31'\np1334\ng35\n(S'Variable_Type'\n(I2\nttRp1335\nsS'Y:PMachine111 - CSTMAR31'\np1336\ng35\n(S'Variable_Type'\n(I2\nttRp1337\nsS'Y:NbeTransit'\np1338\ng35\n(S'Variable_Type'\n(I1\nttRp1339\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np1340\ng35\n(S'Variable_Type'\n(I2\nttRp1341\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np1342\ng35\n(S'Variable_Type'\n(I2\nttRp1343\nsS'Y:VBus92 - COCANA31'\np1344\ng35\n(S'Variable_Type'\n(I2\nttRp1345\nsS'Y:PMachine130 - CVAZZI311'\np1346\ng35\n(S'Variable_Type'\n(I2\nttRp1347\nsS'Y:PMachine127 - CVAZZI38'\np1348\ng35\n(S'Variable_Type'\n(I2\nttRp1349\nsS'Y:VBus131 - CVAZZI312'\np1350\ng35\n(S'Variable_Type'\n(I2\nttRp1351\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np1352\ng35\n(S'Variable_Type'\n(I2\nttRp1353\nsS'Y:PMachine123 - CVAZZI34'\np1354\ng35\n(S'Variable_Type'\n(I2\nttRp1355\nsS'Y:VBus118 - CTOLLA33'\np1356\ng35\n(S'Variable_Type'\n(I2\nttRp1357\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np1358\ng35\n(S'Variable_Type'\n(I1\nttRp1359\nsS'Y:PMachine58 - CBONIF32'\np1360\ng35\n(S'Variable_Type'\n(I2\nttRp1361\nsS'Y:Load 104 - CPROPR31'\np1362\ng35\n(S'Variable_Type'\n(I2\nttRp1363\nsS'Y:PMachine30 - CLUCCI22'\np1364\ng35\n(S'Variable_Type'\n(I1\nttRp1365\nsS'Y:VBus100 - COLETT31'\np1366\ng35\n(S'Variable_Type'\n(I2\nttRp1367\nsS'Y:PProdTot'\np1368\ng35\n(S'Variable_Type'\n(I2\nttRp1369\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np1370\ng35\n(S'Variable_Type'\n(I1\nttRp1371\nsS'Y:VBus57 - CBONIF31'\np1372\ng35\n(S'Variable_Type'\n(I2\nttRp1373\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np1374\ng35\n(S'Variable_Type'\n(I2\nttRp1375\nsS'Y:PConsoTot'\np1376\ng35\n(S'Variable_Type'\n(I2\nttRp1377\nsS'Iteration'\np1378\ng35\n(S'Variable_Type'\n(I2\nttRp1379\nsS'Y:PMachine109 - CSAGON32'\np1380\ng35\n(S'Variable_Type'\n(I2\nttRp1381\nsS'Y:PMachine135 - CLUCCI36'\np1382\ng35\n(S'Variable_Type'\n(I1\nttRp1383\nsS'Y:VBus30 - CLUCCI22'\np1384\ng35\n(S'Variable_Type'\n(I2\nttRp1385\nsS'Y:VBus122 - CVAZZI33'\np1386\ng35\n(S'Variable_Type'\n(I2\nttRp1387\nsS'Y:VBus22 - CCORTE21'\np1388\ng35\n(S'Variable_Type'\n(I2\nttRp1389\nsS'Y:VBus35 - CPORTO21'\np1390\ng35\n(S'Variable_Type'\n(I2\nttRp1391\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np1392\ng35\n(S'Variable_Type'\n(I1\nttRp1393\nsS'Y:PMachine107 - CRIZZA32'\np1394\ng1287\nsS'Y:VBus16 - CCALDA21'\np1395\ng35\n(S'Variable_Type'\n(I2\nttRp1396\nsS'Y:Load 102 - CPORTO31'\np1397\ng35\n(S'Variable_Type'\n(I2\nttRp1398\nsS'Y:VBus107 - CRIZZA32'\np1399\ng35\n(S'Variable_Type'\n(I2\nttRp1400\nsS'Y:VBus59 - CCALDA31'\np1401\ng35\n(S'Variable_Type'\n(I2\nttRp1402\nsS'Y:VBus41 - CSAMPO21'\np1403\ng35\n(S'Variable_Type'\n(I2\nttRp1404\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np1405\ng35\n(S'Variable_Type'\n(I2\nttRp1406\nsS'Y:VBus34 - CPIETR21'\np1407\ng35\n(S'Variable_Type'\n(I2\nttRp1408\nsS'Y:Load 108 - CSAGON31'\np1409\ng35\n(S'Variable_Type'\n(I2\nttRp1410\nsS'Y:VBus56 - CBIGUG32'\np1411\ng35\n(S'Variable_Type'\n(I2\nttRp1412\nsS'Y:PMachine42 - CSISCO21'\np1413\ng35\n(S'Variable_Type'\n(I2\nttRp1414\nsS'Y:PMachine138 - CLUCCI39'\np1415\ng35\n(S'Variable_Type'\n(I1\nttRp1416\nsS'Y:PMachine112 - CSAMPO31'\np1417\ng35\n(S'Variable_Type'\n(I2\nttRp1418\nsS'Y:VBus105 - CPROPR32'\np1419\ng35\n(S'Variable_Type'\n(I2\nttRp1420\nsS'Y:VBus1 - CBONIF11'\np1421\ng35\n(S'Variable_Type'\n(I2\nttRp1422\nsS'Y:VBus12 - CBASTI21'\np1423\ng35\n(S'Variable_Type'\n(I2\nttRp1424\nsS'Y:PMachine129 - CVAZZI310'\np1425\ng35\n(S'Variable_Type'\n(I2\nttRp1426\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np1427\ng35\n(S'Variable_Type'\n(I1\nttRp1428\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np1429\ng35\n(S'Variable_Type'\n(I1\nttRp1430\nsS'Y:VBus54 - CBASTI32'\np1431\ng35\n(S'Variable_Type'\n(I2\nttRp1432\nsS'Y:VBus69 - CCASAM37'\np1433\ng35\n(S'Variable_Type'\n(I2\nttRp1434\nsS'Y:VBus45 - CTOLLA21'\np1435\ng35\n(S'Variable_Type'\n(I2\nttRp1436\nsS'Y:PMachine115 - CTAGLI31'\np1437\ng35\n(S'Variable_Type'\n(I2\nttRp1438\nsS'Y:PMachine77 - CCORTE32'\np1439\ng35\n(S'Variable_Type'\n(I2\nttRp1440\nsS'Y:VBus43 - CSOVEN21'\np1441\ng35\n(S'Variable_Type'\n(I2\nttRp1442\nsS'Y:VBus76 - CCORTE31'\np1443\ng35\n(S'Variable_Type'\n(I2\nttRp1444\nsS'Y:VBus75 - CCORSC31'\np1445\ng35\n(S'Variable_Type'\n(I2\nttRp1446\nsS'Y:PMachine78 - CFURIA31'\np1447\ng35\n(S'Variable_Type'\n(I1\nttRp1448\nsS'Y:VBus127 - CVAZZI38'\np1449\ng35\n(S'Variable_Type'\n(I2\nttRp1450\nsS'Y:VBus115 - CTAGLI31'\np1451\ng35\n(S'Variable_Type'\n(I2\nttRp1452\nsS'Y:Load 61 - CCALVI31'\np1453\ng35\n(S'Variable_Type'\n(I2\nttRp1454\nsS'Y:VBus55 - CBIGUG31'\np1455\ng35\n(S'Variable_Type'\n(I2\nttRp1456\nsS'Y:Load 42 - CSISCO21'\np1457\ng35\n(S'Variable_Type'\n(I2\nttRp1458\nsS'Y:VBus72 - CCASTI31'\np1459\ng35\n(S'Variable_Type'\n(I2\nttRp1460\nsS'Y:Load 37 - CRIZZA21'\np1461\ng35\n(S'Variable_Type'\n(I2\nttRp1462\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np1463\ng35\n(S'Variable_Type'\n(I2\nttRp1464\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np1465\ng35\n(S'Variable_Type'\n(I2\nttRp1466\nsS'Y:PMachine137 - CLUCCI38'\np1467\ng35\n(S'Variable_Type'\n(I1\nttRp1468\nsS'Y:PMachine67 - CCASAM35'\np1469\ng35\n(S'Variable_Type'\n(I2\nttRp1470\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np1471\ng35\n(S'Variable_Type'\n(I1\nttRp1472\nsS'Y:VBus31 - CMOROS21'\np1473\ng35\n(S'Variable_Type'\n(I2\nttRp1474\nsS'Y:VBus103 - CPORTO32'\np1475\ng35\n(S'Variable_Type'\n(I2\nttRp1476\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np1477\ng35\n(S'Variable_Type'\n(I1\nttRp1478\nsS'Y:PMachine128 - CVAZZI39'\np1479\ng35\n(S'Variable_Type'\n(I2\nttRp1480\nsS'Y:PMachine72 - CCASTI31'\np1481\ng35\n(S'Variable_Type'\n(I2\nttRp1482\nsS'Y:VBus27 - CILERO21'\np1483\ng35\n(S'Variable_Type'\n(I2\nttRp1484\nsS'Y:PMachine75 - CCORSC31'\np1485\ng35\n(S'Variable_Type'\n(I2\nttRp1486\nsS'Y:Load 51 - CASPRE31'\np1487\ng35\n(S'Variable_Type'\n(I2\nttRp1488\nsS'Y:PMachine61 - CCALVI31'\np1489\ng35\n(S'Variable_Type'\n(I1\nttRp1490\nsS'Y:VBus51 - CASPRE31'\np1491\ng35\n(S'Variable_Type'\n(I2\nttRp1492\nsS'Y:VBus114 - CSOVEN31'\np1493\ng35\n(S'Variable_Type'\n(I2\nttRp1494\nsS'Y:Load 82 - CILERO31'\np1495\ng35\n(S'Variable_Type'\n(I2\nttRp1496\nsS'Y:VBus116 - CTOLLA31'\np1497\ng35\n(S'Variable_Type'\n(I2\nttRp1498\nsS'Y:Load 86 - CLUCCI31'\np1499\ng35\n(S'Variable_Type'\n(I2\nttRp1500\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np1501\ng35\n(S'Variable_Type'\n(I2\nttRp1502\nsS'Y:Load 57 - CBONIF31'\np1503\ng35\n(S'Variable_Type'\n(I2\nttRp1504\nsS'Y:PMachine104 - CPROPR31'\np1505\ng35\n(S'Variable_Type'\n(I2\nttRp1506\nsS'Y:VBus128 - CVAZZI39'\np1507\ng35\n(S'Variable_Type'\n(I2\nttRp1508\nsS'Y:PMachine136 - CLUCCI37'\np1509\ng35\n(S'Variable_Type'\n(I1\nttRp1510\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np1511\ng35\n(S'Variable_Type'\n(I2\nttRp1512\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np1513\ng35\n(S'Variable_Type'\n(I2\nttRp1514\nsS'Y:PMachine68 - CCASAM36'\np1515\ng35\n(S'Variable_Type'\n(I2\nttRp1516\nsS'Y:PMachine29 - CLUCCI21'\np1517\ng35\n(S'Variable_Type'\n(I1\nttRp1518\nsS'Y:VBus42 - CSISCO21'\np1519\ng35\n(S'Variable_Type'\n(I2\nttRp1520\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np1521\ng35\n(S'Variable_Type'\n(I1\nttRp1522\nsS'Y:VBus14 - CBONIF21'\np1523\ng35\n(S'Variable_Type'\n(I2\nttRp1524\nsS'Y:VBus73 - CCASTI32'\np1525\ng35\n(S'Variable_Type'\n(I2\nttRp1526\nsS'Y:VBus64 - CCASAM32'\np1527\ng35\n(S'Variable_Type'\n(I2\nttRp1528\nsS'Y:PMachine14 - CBONIF21'\np1529\ng35\n(S'Variable_Type'\n(I1\nttRp1530\nsS'Y:PMachine62 - CCALVI32'\np1531\ng35\n(S'Variable_Type'\n(I2\nttRp1532\nsS'Y:VBus133 - CVAZZI314'\np1533\ng35\n(S'Variable_Type'\n(I2\nttRp1534\nsS'Y:VBus63 - CCASAM31'\np1535\ng35\n(S'Variable_Type'\n(I2\nttRp1536\nsS'Y:PMachine101 - CPIETR31'\np1537\ng35\n(S'Variable_Type'\n(I2\nttRp1538\nsS'Y:%Losses'\np1539\ng35\n(S'Variable_Type'\n(I2\nttRp1540\nsS'Y:VBus85 - CLORET32'\np1541\ng35\n(S'Variable_Type'\n(I2\nttRp1542\nsS'Y:Load 59 - CCALDA31'\np1543\ng35\n(S'Variable_Type'\n(I2\nttRp1544\nsS'Y:VBus129 - CVAZZI310'\np1545\ng35\n(S'Variable_Type'\n(I2\nttRp1546\nsS'Y:VBus101 - CPIETR31'\np1547\ng35\n(S'Variable_Type'\n(I2\nttRp1548\nsS'Y:PMachine106 - CRIZZA31'\np1549\ng35\n(S'Variable_Type'\n(I2\nttRp1550\nsS'Y:VBus132 - CVAZZI313'\np1551\ng35\n(S'Variable_Type'\n(I2\nttRp1552\nsS'Y:PMachine118 - CTOLLA33'\np1553\ng35\n(S'Variable_Type'\n(I2\nttRp1554\nsS'Y:VBus19 - CCASTI21'\np1555\ng35\n(S'Variable_Type'\n(I2\nttRp1556\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np1557\ng35\n(S'Variable_Type'\n(I2\nttRp1558\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np1559\ng35\n(S'Variable_Type'\n(I1\nttRp1560\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np1561\ng35\n(S'Variable_Type'\n(I2\nttRp1562\nsS'Y:Load 115 - CTAGLI31'\np1563\ng35\n(S'Variable_Type'\n(I2\nttRp1564\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np1565\ng35\n(S'Variable_Type'\n(I2\nttRp1566\nsS'Y:VBus79 - CFURIA32'\np1567\ng35\n(S'Variable_Type'\n(I2\nttRp1568\nsS'Y:PMachine47 - CVAZZI21'\np1569\ng35\n(S'Variable_Type'\n(I1\nttRp1570\nsS'Y:VBus123 - CVAZZI34'\np1571\ng35\n(S'Variable_Type'\n(I2\nttRp1572\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np1573\ng35\n(S'Variable_Type'\n(I2\nttRp1574\nsS'Y:VBus60 - CCALDA32'\np1575\ng35\n(S'Variable_Type'\n(I2\nttRp1576\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np1577\ng35\n(S'Variable_Type'\n(I2\nttRp1578\nsS'Y:VBus65 - CCASAM33'\np1579\ng35\n(S'Variable_Type'\n(I2\nttRp1580\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np1581\ng35\n(S'Variable_Type'\n(I1\nttRp1582\nsS'Y:PMachine139 - CLUCCI310'\np1583\ng35\n(S'Variable_Type'\n(I1\nttRp1584\nsS'Y:VBus112 - CSAMPO31'\np1585\ng35\n(S'Variable_Type'\n(I2\nttRp1586\nsS'Y:VBus68 - CCASAM36'\np1587\ng35\n(S'Variable_Type'\n(I2\nttRp1588\nsS'Y:Load 55 - CBIGUG31'\np1589\ng35\n(S'Variable_Type'\n(I2\nttRp1590\nsS'Y:PMachine53 - CBASTI31'\np1591\ng35\n(S'Variable_Type'\n(I2\nttRp1592\nsS'Y:NbeTransit_0.9-1'\np1593\ng35\n(S'Variable_Type'\n(I1\nttRp1594\nsS'Y:VBus24 - CFURIA21'\np1595\ng35\n(S'Variable_Type'\n(I2\nttRp1596\nsS'Y:VBus23 - CCORTE22'\np1597\ng35\n(S'Variable_Type'\n(I2\nttRp1598\nsS'Y:VBus18 - CCASAM21'\np1599\ng35\n(S'Variable_Type'\n(I2\nttRp1600\nsS'Y:VBus40 - CSTMAR21'\np1601\ng35\n(S'Variable_Type'\n(I2\nttRp1602\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np1603\ng35\n(S'Variable_Type'\n(I2\nttRp1604\nsS'Y:PMachine124 - CVAZZI35'\np1605\ng35\n(S'Variable_Type'\n(I2\nttRp1606\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np1607\ng35\n(S'Variable_Type'\n(I2\nttRp1608\nsS'Y:PMachine117 - CTOLLA32'\np1609\ng35\n(S'Variable_Type'\n(I2\nttRp1610\nsS'Y:VBus89 - CLUCCI34'\np1611\ng35\n(S'Variable_Type'\n(I2\nttRp1612\nsS'Y:VBus33 - COLETT21'\np1613\ng35\n(S'Variable_Type'\n(I2\nttRp1614\nsS'Y:VBus32 - COCANA21'\np1615\ng35\n(S'Variable_Type'\n(I2\nttRp1616\nsS'Y:PMachine121 - CVAZZI32'\np1617\ng35\n(S'Variable_Type'\n(I2\nttRp1618\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np1619\ng35\n(S'Variable_Type'\n(I1\nttRp1620\nsS'Y:VBus82 - CILERO31'\np1621\ng35\n(S'Variable_Type'\n(I2\nttRp1622\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np1623\ng35\n(S'Variable_Type'\n(I2\nttRp1624\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np1625\ng35\n(S'Variable_Type'\n(I2\nttRp1626\nsS'Y:VBus37 - CRIZZA21'\np1627\ng35\n(S'Variable_Type'\n(I2\nttRp1628\nsS'Y:PMachine73 - CCASTI32'\np1629\ng35\n(S'Variable_Type'\n(I2\nttRp1630\nsS'Y:PMachine86 - CLUCCI31'\np1631\ng35\n(S'Variable_Type'\n(I2\nttRp1632\nsS'Y:Load 53 - CBASTI31'\np1633\ng35\n(S'Variable_Type'\n(I2\nttRp1634\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np1635\ng35\n(S'Variable_Type'\n(I2\nttRp1636\nsS'Y:VBus21 - CCORSC21'\np1637\ng35\n(S'Variable_Type'\n(I2\nttRp1638\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np1639\ng35\n(S'Variable_Type'\n(I2\nttRp1640\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np1641\ng35\n(S'Variable_Type'\n(I2\nttRp1642\nsS'Y:PMachine126 - CVAZZI37'\np1643\ng35\n(S'Variable_Type'\n(I2\nttRp1644\nsS'Y:PMachine64 - CCASAM32'\np1645\ng35\n(S'Variable_Type'\n(I2\nttRp1646\nsS'Y:VBus67 - CCASAM35'\np1647\ng35\n(S'Variable_Type'\n(I2\nttRp1648\nsS'Y:VBus53 - CBASTI31'\np1649\ng35\n(S'Variable_Type'\n(I2\nttRp1650\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np1651\ng35\n(S'Variable_Type'\n(I2\nttRp1652\nsS'Y:VBus61 - CCALVI31'\np1653\ng35\n(S'Variable_Type'\n(I2\nttRp1654\nsS'Y:VBus93 - COCANA32'\np1655\ng35\n(S'Variable_Type'\n(I2\nttRp1656\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np1657\ng35\n(S'Variable_Type'\n(I2\nttRp1658\nsS'Y:VBus104 - CPROPR31'\np1659\ng35\n(S'Variable_Type'\n(I2\nttRp1660\nsS'Y:VBus48 - CZSSS621'\np1661\ng35\n(S'Variable_Type'\n(I2\nttRp1662\nsS'Y:PMachine85 - CLORET32'\np1663\ng35\n(S'Variable_Type'\n(I2\nttRp1664\nsS'Y:Max%A'\np1665\ng35\n(S'Variable_Type'\n(I2\nttRp1666\nsS'Y:VBus36 - CPROPR21'\np1667\ng35\n(S'Variable_Type'\n(I2\nttRp1668\nsS'Y:Load 100 - COLETT31'\np1669\ng35\n(S'Variable_Type'\n(I2\nttRp1670\nsS'Y:PMachine54 - CBASTI32'\np1671\ng35\n(S'Variable_Type'\n(I2\nttRp1672\nsS'Y:VBus138 - CLUCCI39'\np1673\ng35\n(S'Variable_Type'\n(I2\nttRp1674\nsS'Y:VBus39 - CSTLUC21'\np1675\ng35\n(S'Variable_Type'\n(I2\nttRp1676\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np1677\ng35\n(S'Variable_Type'\n(I2\nttRp1678\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np1679\ng35\n(S'Variable_Type'\n(I2\nttRp1680\nsS'Y:Load 78 - CFURIA31'\np1681\ng35\n(S'Variable_Type'\n(I2\nttRp1682\nsS'Y:VBus28 - CLORET21'\np1683\ng35\n(S'Variable_Type'\n(I2\nttRp1684\nsS'Y:PMachine105 - CPROPR32'\np1685\ng35\n(S'Variable_Type'\n(I2\nttRp1686\nsS'Y:VBus96 - COCANA35'\np1687\ng35\n(S'Variable_Type'\n(I2\nttRp1688\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np1689\ng35\n(S'Variable_Type'\n(I1\nttRp1690\nsS'Y:PMachine18 - CCASAM21'\np1691\ng35\n(S'Variable_Type'\n(I1\nttRp1692\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np1693\ng35\n(S'Variable_Type'\n(I2\nttRp1694\nsS'Y:VBus13 - CBIGUG21'\np1695\ng35\n(S'Variable_Type'\n(I2\nttRp1696\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np1697\ng35\n(S'Variable_Type'\n(I2\nttRp1698\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np1699\ng35\n(S'Variable_Type'\n(I2\nttRp1700\nsS'Y:VBus29 - CLUCCI21'\np1701\ng35\n(S'Variable_Type'\n(I2\nttRp1702\nsS'Y:VBus58 - CBONIF32'\np1703\ng35\n(S'Variable_Type'\n(I2\nttRp1704\nsS'Y:VBus84 - CLORET31'\np1705\ng35\n(S'Variable_Type'\n(I2\nttRp1706\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np1707\ng35\n(S'Variable_Type'\n(I1\nttRp1708\nsS'Y:VBus97 - COCANA36'\np1709\ng35\n(S'Variable_Type'\n(I2\nttRp1710\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np1711\ng35\n(S'Variable_Type'\n(I1\nttRp1712\nsS'Y:VBus15 - CBONIF22'\np1713\ng35\n(S'Variable_Type'\n(I2\nttRp1714\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np1715\ng35\n(S'Variable_Type'\n(I2\nttRp1716\nsS'Y:Load 110 - CSTLUC31'\np1717\ng35\n(S'Variable_Type'\n(I2\nttRp1718\nsS'Y:VBus80 - CGHISO31'\np1719\ng35\n(S'Variable_Type'\n(I2\nttRp1720\nsS'Y:PMachine114 - CSOVEN31'\np1721\ng35\n(S'Variable_Type'\n(I2\nttRp1722\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np1723\ng35\n(S'Variable_Type'\n(I1\nttRp1724\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np1725\ng35\n(S'Variable_Type'\n(I2\nttRp1726\nsS'Y:PMachine93 - COCANA32'\np1727\ng35\n(S'Variable_Type'\n(I2\nttRp1728\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np1729\ng35\n(S'Variable_Type'\n(I1\nttRp1730\nsS'Y:VBus87 - CLUCCI32'\np1731\ng35\n(S'Variable_Type'\n(I2\nttRp1732\nsS'Y:VBus62 - CCALVI32'\np1733\ng35\n(S'Variable_Type'\n(I2\nttRp1734\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np1735\ng35\n(S'Variable_Type'\n(I1\nttRp1736\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np1737\ng35\n(S'Variable_Type'\n(I1\nttRp1738\nsS'Y:VBus81 - CGHISO32'\np1739\ng35\n(S'Variable_Type'\n(I2\nttRp1740\nsS'Y:PMachine74 - CCERVI31'\np1741\ng35\n(S'Variable_Type'\n(I2\nttRp1742\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np1743\ng35\n(S'Variable_Type'\n(I2\nttRp1744\nsS'Y:VBus86 - CLUCCI31'\np1745\ng35\n(S'Variable_Type'\n(I2\nttRp1746\nsS'X:Load(pu)'\np1747\ng1284\nsS'Y:NbeTension'\np1748\ng35\n(S'Variable_Type'\n(I2\nttRp1749\nsS'Y:VBus95 - COCANA34'\np1750\ng35\n(S'Variable_Type'\n(I2\nttRp1751\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np1752\ng35\n(S'Variable_Type'\n(I2\nttRp1753\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np1754\ng35\n(S'Variable_Type'\n(I2\nttRp1755\nsS'Y:Load 95 - COCANA34'\np1756\ng35\n(S'Variable_Type'\n(I2\nttRp1757\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np1758\ng35\n(S'Variable_Type'\n(I1\nttRp1759\nsS'Y:PMachine90 - CMOROS31'\np1760\ng35\n(S'Variable_Type'\n(I2\nttRp1761\nsS'Y:Load 101 - CPIETR31'\np1762\ng35\n(S'Variable_Type'\n(I2\nttRp1763\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np1764\ng35\n(S'Variable_Type'\n(I1\nttRp1765\nsS'Y:PMachine132 - CVAZZI313'\np1766\ng35\n(S'Variable_Type'\n(I2\nttRp1767\nsS'Y:VBus125 - CVAZZI36'\np1768\ng35\n(S'Variable_Type'\n(I2\nttRp1769\nsS'Y:VBus135 - CLUCCI36'\np1770\ng35\n(S'Variable_Type'\n(I2\nttRp1771\nsS'Y:VBus47 - CVAZZI21'\np1772\ng35\n(S'Variable_Type'\n(I2\nttRp1773\nsS'Y:VBus94 - COCANA33'\np1774\ng35\n(S'Variable_Type'\n(I2\nttRp1775\nsS'Y:VBus17 - CCALVI21'\np1776\ng35\n(S'Variable_Type'\n(I2\nttRp1777\nsS'Y:Load 90 - CMOROS31'\np1778\ng35\n(S'Variable_Type'\n(I2\nttRp1779\nsS'Y:VBus120 - CVAZZI31'\np1780\ng35\n(S'Variable_Type'\n(I2\nttRp1781\nsS'X:ProdPV%Pnom'\np1782\ng1290\nsS'Y:VBus52 - CASPRE32'\np1783\ng35\n(S'Variable_Type'\n(I2\nttRp1784\nsS'Y:VBus25 - CFURIA22'\np1785\ng35\n(S'Variable_Type'\n(I2\nttRp1786\nsS'Y:Load 76 - CCORTE31'\np1787\ng35\n(S'Variable_Type'\n(I2\nttRp1788\nsS'Y:PMachine69 - CCASAM37'\np1789\ng35\n(S'Variable_Type'\n(I2\nttRp1790\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np1791\ng35\n(S'Variable_Type'\n(I2\nttRp1792\nsS'Y:PMachine92 - COCANA31'\np1793\ng35\n(S'Variable_Type'\n(I2\nttRp1794\nsS'Y:PMachine102 - CPORTO31'\np1795\ng35\n(S'Variable_Type'\n(I2\nttRp1796\nsS'Y:PMachine122 - CVAZZI33'\np1797\ng35\n(S'Variable_Type'\n(I2\nttRp1798\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np1799\ng35\n(S'Variable_Type'\n(I1\nttRp1800\nsS'Y:PMachine63 - CCASAM31'\np1801\ng35\n(S'Variable_Type'\n(I2\nttRp1802\nsS'Y:VBus74 - CCERVI31'\np1803\ng35\n(S'Variable_Type'\n(I2\nttRp1804\nsS'Y:VBus126 - CVAZZI37'\np1805\ng35\n(S'Variable_Type'\n(I2\nttRp1806\nsS'Y:PMachine60 - CCALDA32'\np1807\ng35\n(S'Variable_Type'\n(I2\nttRp1808\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np1809\ng35\n(S'Variable_Type'\n(I1\nttRp1810\nsS'Y:VBus20 - CCERVI21'\np1811\ng35\n(S'Variable_Type'\n(I2\nttRp1812\nsS'Y:VBus119 - CTRAVO31'\np1813\ng35\n(S'Variable_Type'\n(I2\nttRp1814\nsS'Y:VBus11 - CASPRE21'\np1815\ng35\n(S'Variable_Type'\n(I2\nttRp1816\nsS'Y:VBus139 - CLUCCI310'\np1817\ng35\n(S'Variable_Type'\n(I2\nttRp1818\nsS'Y:VBus106 - CRIZZA31'\np1819\ng35\n(S'Variable_Type'\n(I2\nttRp1820\nsS'Y:PMachine66 - CCASAM34'\np1821\ng35\n(S'Variable_Type'\n(I2\nttRp1822\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np1823\ng35\n(S'Variable_Type'\n(I2\nttRp1824\nsS'Y:VBus136 - CLUCCI37'\np1825\ng35\n(S'Variable_Type'\n(I2\nttRp1826\nsS'Y:VBus90 - CMOROS31'\np1827\ng35\n(S'Variable_Type'\n(I2\nttRp1828\nsS'Y:Load 74 - CCERVI31'\np1829\ng35\n(S'Variable_Type'\n(I2\nttRp1830\nsS'X:lineOff#'\np1831\ng1293\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np1832\ng35\n(S'Variable_Type'\n(I2\nttRp1833\nsS'Y:VBus108 - CSAGON31'\np1834\ng35\n(S'Variable_Type'\n(I2\nttRp1835\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np1836\ng35\n(S'Variable_Type'\n(I2\nttRp1837\nsS'Y:VBus137 - CLUCCI38'\np1838\ng35\n(S'Variable_Type'\n(I2\nttRp1839\nsS'Y:VBus130 - CVAZZI311'\np1840\ng35\n(S'Variable_Type'\n(I2\nttRp1841\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np1842\ng35\n(S'Variable_Type'\n(I2\nttRp1843\nsS'Y:VBus46 - CTRAVO21'\np1844\ng35\n(S'Variable_Type'\n(I2\nttRp1845\nsS'Y:VBus113 - CSAMPO32'\np1846\ng35\n(S'Variable_Type'\n(I2\nttRp1847\nsS'Y:PMachine133 - CVAZZI314'\np1848\ng35\n(S'Variable_Type'\n(I2\nttRp1849\nsS'Y:PMachine65 - CCASAM33'\np1850\ng35\n(S'Variable_Type'\n(I2\nttRp1851\nsS'Y:VBus78 - CFURIA31'\np1852\ng35\n(S'Variable_Type'\n(I2\nttRp1853\nsS'Y:VBus26 - CGHISO21'\np1854\ng35\n(S'Variable_Type'\n(I2\nttRp1855\nsS'Y:VBus121 - CVAZZI32'\np1856\ng35\n(S'Variable_Type'\n(I2\nttRp1857\nsS'Y:PMachine97 - COCANA36'\np1858\ng35\n(S'Variable_Type'\n(I2\nttRp1859\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np1860\ng35\n(S'Variable_Type'\n(I2\nttRp1861\nsS'Y:PMachine83 - CILERO32'\np1862\ng35\n(S'Variable_Type'\n(I2\nttRp1863\nsS'Y:VBus83 - CILERO32'\np1864\ng35\n(S'Variable_Type'\n(I2\nttRp1865\nsS'Y:VBus66 - CCASAM34'\np1866\ng35\n(S'Variable_Type'\n(I2\nttRp1867\nsS'Y:PMachine1 - CBONIF11'\np1868\ng35\n(S'Variable_Type'\n(I2\nttRp1869\nsS'Y:VBus111 - CSTMAR31'\np1870\ng35\n(S'Variable_Type'\n(I2\nttRp1871\nsS'Y:VBus124 - CVAZZI35'\np1872\ng35\n(S'Variable_Type'\n(I2\nttRp1873\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np1874\ng35\n(S'Variable_Type'\n(I2\nttRp1875\nsS'Y:PMachine131 - CVAZZI312'\np1876\ng35\n(S'Variable_Type'\n(I2\nttRp1877\nsS'Y:VBus44 - CTAGLI21'\np1878\ng35\n(S'Variable_Type'\n(I2\nttRp1879\nsS'Y:VBus88 - CLUCCI33'\np1880\ng35\n(S'Variable_Type'\n(I2\nttRp1881\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np1882\ng35\n(S'Variable_Type'\n(I1\nttRp1883\nsS'Y:VBus38 - CSAGON21'\np1884\ng35\n(S'Variable_Type'\n(I2\nttRp1885\nsS'Y:PMachine81 - CGHISO32'\np1886\ng35\n(S'Variable_Type'\n(I2\nttRp1887\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np1888\ng35\n(S'Variable_Type'\n(I2\nttRp1889\nsS'Y:VBus110 - CSTLUC31'\np1890\ng35\n(S'Variable_Type'\n(I2\nttRp1891\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np1892\ng35\n(S'Variable_Type'\n(I2\nttRp1893\nssg648\n(lp1894\ng650\nasba(iOWContexts\nContext\np1895\n(dp1896\ng24\n(lp1897\nsg26\n(dp1898\nsg28\n(dp1899\ng1279\n(S''\nI-1\ntp1900\nsg1281\n(S''\nI0\ntp1901\nsg1283\n(g663\ng35\n(S'Variable_Type'\n(I2\nttRp1902\ntp1903\nsg1286\n(S'Y:VBus15'\ng35\n(S'Variable_Type'\n(I2\nttRp1904\ntp1905\nsg1289\n(g670\ng35\n(S'Variable_Type'\n(I2\nttRp1906\ntp1907\nsg1292\n(S'XProdEolienne%Pnom'\ng35\n(S'Variable_Type'\n(I2\nttRp1908\ntp1909\nssg46\nF1369930725.474\nsg47\n(dp1910\nS'Y:VBus48'\np1911\ng35\n(S'Variable_Type'\n(I2\nttRp1912\nsS'Y15:%RateA 18-44'\np1913\ng35\n(S'Variable_Type'\n(I2\nttRp1914\nsS'Y:VBus41'\np1915\ng35\n(S'Variable_Type'\n(I2\nttRp1916\nsS'Y:VBus40'\np1917\ng35\n(S'Variable_Type'\n(I2\nttRp1918\nsS'Y:VBus43'\np1919\ng35\n(S'Variable_Type'\n(I2\nttRp1920\nsS'Y:VBus42'\np1921\ng35\n(S'Variable_Type'\n(I2\nttRp1922\nsS'Y:VBus45'\np1923\ng35\n(S'Variable_Type'\n(I2\nttRp1924\nsS'Y:VBus44'\np1925\ng35\n(S'Variable_Type'\n(I2\nttRp1926\nsS'Y:VBus47'\np1927\ng35\n(S'Variable_Type'\n(I2\nttRp1928\nsS'Y:VBus46'\np1929\ng35\n(S'Variable_Type'\n(I2\nttRp1930\nsS'Y39:%RateA 32-45'\np1931\ng35\n(S'Variable_Type'\n(I2\nttRp1932\nsS'Y:Load 110'\np1933\ng35\n(S'Variable_Type'\n(I2\nttRp1934\nsS'Y:Load 115'\np1935\ng35\n(S'Variable_Type'\n(I2\nttRp1936\nsS'Y:VBus79'\np1937\ng35\n(S'Variable_Type'\n(I2\nttRp1938\nsS'Y13:%RateA 18-30'\np1939\ng35\n(S'Variable_Type'\n(I2\nttRp1940\nsS'Y34:%RateA 28-38'\np1941\ng35\n(S'Variable_Type'\n(I2\nttRp1942\nsS'Y:NbeTransit'\np1943\ng35\n(S'Variable_Type'\n(I1\nttRp1944\nsS'Y:VBus104'\np1945\ng35\n(S'Variable_Type'\n(I2\nttRp1946\nsS'Y20:%RateA 20-44'\np1947\ng35\n(S'Variable_Type'\n(I2\nttRp1948\nsS'Y38:%RateA 32-45'\np1949\ng35\n(S'Variable_Type'\n(I2\nttRp1950\nsS'Y:PMachine73'\np1951\ng35\n(S'Variable_Type'\n(I2\nttRp1952\nsS'Y:PMachine72'\np1953\ng35\n(S'Variable_Type'\n(I2\nttRp1954\nsS'Y49:%RateA 40-48'\np1955\ng35\n(S'Variable_Type'\n(I2\nttRp1956\nsS'Y:PMachine77'\np1957\ng35\n(S'Variable_Type'\n(I2\nttRp1958\nsS'Y:PMachine75'\np1959\ng35\n(S'Variable_Type'\n(I2\nttRp1960\nsS'Y:PMachine74'\np1961\ng35\n(S'Variable_Type'\n(I2\nttRp1962\nsS'Y:PMachine78'\np1963\ng35\n(S'Variable_Type'\n(I1\nttRp1964\nsS'Y:PMachine138'\np1965\ng35\n(S'Variable_Type'\n(I1\nttRp1966\nsS'Y28:%RateA 24-42'\np1967\ng35\n(S'Variable_Type'\n(I2\nttRp1968\nsS'Y:PProdTot'\np1969\ng35\n(S'Variable_Type'\n(I2\nttRp1970\nsS'Y:PMachine69'\np1971\ng35\n(S'Variable_Type'\n(I2\nttRp1972\nsS'Y:VBus38'\np1973\ng35\n(S'Variable_Type'\n(I2\nttRp1974\nsS'Y:VBus39'\np1975\ng35\n(S'Variable_Type'\n(I2\nttRp1976\nsS'Y62:%RateA 86-87'\np1977\ng35\n(S'Variable_Type'\n(I1\nttRp1978\nsS'Y:PMachine1'\np1979\ng35\n(S'Variable_Type'\n(I2\nttRp1980\nsS'Y:VBus35'\np1981\ng35\n(S'Variable_Type'\n(I2\nttRp1982\nsS'Y:VBus36'\np1983\ng35\n(S'Variable_Type'\n(I2\nttRp1984\nsS'Y:VBus37'\np1985\ng35\n(S'Variable_Type'\n(I2\nttRp1986\nsS'Y:VBus30'\np1987\ng35\n(S'Variable_Type'\n(I2\nttRp1988\nsS'Y:VBus31'\np1989\ng35\n(S'Variable_Type'\n(I2\nttRp1990\nsS'Y:VBus32'\np1991\ng35\n(S'Variable_Type'\n(I2\nttRp1992\nsS'Y:VBus33'\np1993\ng35\n(S'Variable_Type'\n(I2\nttRp1994\nsS'Y53:%RateA 57-58'\np1995\ng35\n(S'Variable_Type'\n(I1\nttRp1996\nsS'Y14:%RateA 18-31'\np1997\ng35\n(S'Variable_Type'\n(I2\nttRp1998\nsS'Y48:%RateA 39-46'\np1999\ng35\n(S'Variable_Type'\n(I2\nttRp2000\nsS'Y60:%RateA 82-83'\np2001\ng35\n(S'Variable_Type'\n(I1\nttRp2002\nsS'Y:PMachine87'\np2003\ng35\n(S'Variable_Type'\n(I2\nttRp2004\nsS'Y:VBus121'\np2005\ng35\n(S'Variable_Type'\n(I2\nttRp2006\nsS'Y:VBus120'\np2007\ng35\n(S'Variable_Type'\n(I2\nttRp2008\nsS'Y:VBus123'\np2009\ng35\n(S'Variable_Type'\n(I2\nttRp2010\nsS'Y:VBus122'\np2011\ng35\n(S'Variable_Type'\n(I2\nttRp2012\nsS'Y:VBus125'\np2013\ng35\n(S'Variable_Type'\n(I2\nttRp2014\nsS'Y:VBus124'\np2015\ng35\n(S'Variable_Type'\n(I2\nttRp2016\nsS'Y:VBus127'\np2017\ng35\n(S'Variable_Type'\n(I2\nttRp2018\nsS'Y:VBus126'\np2019\ng35\n(S'Variable_Type'\n(I2\nttRp2020\nsS'Y:VBus129'\np2021\ng35\n(S'Variable_Type'\n(I2\nttRp2022\nsS'Y:VBus128'\np2023\ng35\n(S'Variable_Type'\n(I2\nttRp2024\nsS'Y37:%RateA 32-34'\np2025\ng35\n(S'Variable_Type'\n(I2\nttRp2026\nsS'Y43:%RateA 35-37'\np2027\ng35\n(S'Variable_Type'\n(I2\nttRp2028\nsS'Y:PMachine42'\np2029\ng35\n(S'Variable_Type'\n(I2\nttRp2030\nsS'Y0:%RateA 11-28'\np2031\ng35\n(S'Variable_Type'\n(I2\nttRp2032\nsS'Y:VBus67'\np2033\ng35\n(S'Variable_Type'\n(I2\nttRp2034\nsS'Y:Load 37'\np2035\ng35\n(S'Variable_Type'\n(I2\nttRp2036\nsS'Y65:%RateA 104-105'\np2037\ng35\n(S'Variable_Type'\n(I1\nttRp2038\nsS'Y40:%RateA 32-47'\np2039\ng35\n(S'Variable_Type'\n(I2\nttRp2040\nsS'Y:PMachine47'\np2041\ng35\n(S'Variable_Type'\n(I2\nttRp2042\nsS'Y6:%RateA 14-15'\np2043\ng35\n(S'Variable_Type'\n(I1\nttRp2044\nsS'Y:VBus1'\np2045\ng35\n(S'Variable_Type'\n(I2\nttRp2046\nsS'Y44:%RateA 35-39'\np2047\ng35\n(S'Variable_Type'\n(I2\nttRp2048\nsS'Y:PMachine88'\np2049\ng35\n(S'Variable_Type'\n(I1\nttRp2050\nsS'Y42:%RateA 34-36'\np2051\ng35\n(S'Variable_Type'\n(I2\nttRp2052\nsS'Y57:%RateA 76-77'\np2053\ng35\n(S'Variable_Type'\n(I1\nttRp2054\nsS'Y:PMachine89'\np2055\ng35\n(S'Variable_Type'\n(I1\nttRp2056\nsS'Y:VBus77'\np2057\ng35\n(S'Variable_Type'\n(I2\nttRp2058\nsS'Y:VBus29'\np2059\ng35\n(S'Variable_Type'\n(I2\nttRp2060\nsS'Y:VBus28'\np2061\ng35\n(S'Variable_Type'\n(I2\nttRp2062\nsS'Y:VBus27'\np2063\ng35\n(S'Variable_Type'\n(I2\nttRp2064\nsS'Y:VBus26'\np2065\ng35\n(S'Variable_Type'\n(I2\nttRp2066\nsS'Y:VBus25'\np2067\ng35\n(S'Variable_Type'\n(I2\nttRp2068\nsS'Y:VBus24'\np2069\ng35\n(S'Variable_Type'\n(I2\nttRp2070\nsS'Y:VBus23'\np2071\ng35\n(S'Variable_Type'\n(I2\nttRp2072\nsS'Y:VBus22'\np2073\ng35\n(S'Variable_Type'\n(I2\nttRp2074\nsS'Y:VBus21'\np2075\ng35\n(S'Variable_Type'\n(I2\nttRp2076\nsS'Y:VBus20'\np2077\ng35\n(S'Variable_Type'\n(I2\nttRp2078\nsS'Y:VBus85'\np2079\ng35\n(S'Variable_Type'\n(I2\nttRp2080\nsS'Y:VBus84'\np2081\ng35\n(S'Variable_Type'\n(I2\nttRp2082\nsS'Y52:%RateA 55-56'\np2083\ng35\n(S'Variable_Type'\n(I1\nttRp2084\nsS'Y2:%RateA 12-24'\np2085\ng35\n(S'Variable_Type'\n(I2\nttRp2086\nsS'Y:VBus112'\np2087\ng35\n(S'Variable_Type'\n(I2\nttRp2088\nsS'Y:VBus132'\np2089\ng35\n(S'Variable_Type'\n(I2\nttRp2090\nsS'Y:PMachine58'\np2091\ng35\n(S'Variable_Type'\n(I2\nttRp2092\nsS'Y:VBus130'\np2093\ng35\n(S'Variable_Type'\n(I2\nttRp2094\nsS'Y:VBus131'\np2095\ng35\n(S'Variable_Type'\n(I2\nttRp2096\nsS'Y:VBus136'\np2097\ng35\n(S'Variable_Type'\n(I2\nttRp2098\nsS'Y:VBus137'\np2099\ng35\n(S'Variable_Type'\n(I2\nttRp2100\nsS'Y:VBus134'\np2101\ng35\n(S'Variable_Type'\n(I2\nttRp2102\nsS'Y:VBus135'\np2103\ng35\n(S'Variable_Type'\n(I2\nttRp2104\nsS'Y:VBus81'\np2105\ng35\n(S'Variable_Type'\n(I2\nttRp2106\nsS'Y:PMachine53'\np2107\ng35\n(S'Variable_Type'\n(I2\nttRp2108\nsS'Y:VBus139'\np2109\ng35\n(S'Variable_Type'\n(I2\nttRp2110\nsS'Y30:%RateA 25-29'\np2111\ng35\n(S'Variable_Type'\n(I2\nttRp2112\nsS'Y:VBus115'\np2113\ng35\n(S'Variable_Type'\n(I2\nttRp2114\nsS'Y:PMachine124'\np2115\ng35\n(S'Variable_Type'\n(I2\nttRp2116\nsS'Y:VBus83'\np2117\ng35\n(S'Variable_Type'\n(I2\nttRp2118\nsS'Y66:%RateA 106-107'\np2119\ng35\n(S'Variable_Type'\n(I1\nttRp2120\nsS'Y25:%RateA 23-41'\np2121\ng35\n(S'Variable_Type'\n(I2\nttRp2122\nsS'Y:%Losses'\np2123\ng35\n(S'Variable_Type'\n(I2\nttRp2124\nsS'Y:VBus12'\np2125\ng35\n(S'Variable_Type'\n(I2\nttRp2126\nsS'Y:VBus13'\np2127\ng35\n(S'Variable_Type'\n(I2\nttRp2128\nsS'Y50:%RateA 51-52'\np2129\ng35\n(S'Variable_Type'\n(I1\nttRp2130\nsS'Y:VBus11'\np2131\ng35\n(S'Variable_Type'\n(I2\nttRp2132\nsS'Y:VBus16'\np2133\ng35\n(S'Variable_Type'\n(I2\nttRp2134\nsS'Y:VBus17'\np2135\ng35\n(S'Variable_Type'\n(I2\nttRp2136\nsS'Y:VBus14'\np2137\ng35\n(S'Variable_Type'\n(I2\nttRp2138\nsS'Y:VBus15'\np2139\ng1904\nsS'Y:VBus113'\np2140\ng35\n(S'Variable_Type'\n(I2\nttRp2141\nsS'Y:PMachine120'\np2142\ng35\n(S'Variable_Type'\n(I2\nttRp2143\nsS'Y:VBus18'\np2144\ng35\n(S'Variable_Type'\n(I2\nttRp2145\nsS'Y:VBus19'\np2146\ng35\n(S'Variable_Type'\n(I2\nttRp2147\nsS'Y4:%RateA 13-25'\np2148\ng35\n(S'Variable_Type'\n(I2\nttRp2149\nsS'Y35:%RateA 28-47'\np2150\ng35\n(S'Variable_Type'\n(I2\nttRp2151\nsS'Y:PMachine122'\np2152\ng35\n(S'Variable_Type'\n(I2\nttRp2153\nsS'Y16:%RateA 19-21'\np2154\ng35\n(S'Variable_Type'\n(I2\nttRp2155\nsS'Y:VBus92'\np2156\ng35\n(S'Variable_Type'\n(I2\nttRp2157\nsS'Y7:%RateA 14-35'\np2158\ng35\n(S'Variable_Type'\n(I2\nttRp2159\nsS'Y:VBus90'\np2160\ng35\n(S'Variable_Type'\n(I2\nttRp2161\nsS'Y:VBus96'\np2162\ng35\n(S'Variable_Type'\n(I2\nttRp2163\nsS'Y:VBus97'\np2164\ng35\n(S'Variable_Type'\n(I2\nttRp2165\nsS'Y:VBus94'\np2166\ng35\n(S'Variable_Type'\n(I2\nttRp2167\nsS'Y:VBus95'\np2168\ng35\n(S'Variable_Type'\n(I2\nttRp2169\nsS'Y:VBus107'\np2170\ng35\n(S'Variable_Type'\n(I2\nttRp2171\nsS'Y:VBus106'\np2172\ng35\n(S'Variable_Type'\n(I2\nttRp2173\nsS'Y:VBus105'\np2174\ng35\n(S'Variable_Type'\n(I2\nttRp2175\nsS'Y22:%RateA 22-23'\np2176\ng35\n(S'Variable_Type'\n(I1\nttRp2177\nsS'Y:VBus103'\np2178\ng35\n(S'Variable_Type'\n(I2\nttRp2179\nsS'Y:VBus102'\np2180\ng35\n(S'Variable_Type'\n(I2\nttRp2181\nsS'Y:VBus101'\np2182\ng35\n(S'Variable_Type'\n(I2\nttRp2183\nsS'Y:VBus100'\np2184\ng35\n(S'Variable_Type'\n(I2\nttRp2185\nsS'Y:Load 55'\np2186\ng35\n(S'Variable_Type'\n(I2\nttRp2187\nsS'Y:Load 57'\np2188\ng35\n(S'Variable_Type'\n(I2\nttRp2189\nsS'Y:Load 51'\np2190\ng35\n(S'Variable_Type'\n(I2\nttRp2191\nsS'Y:VBus54'\np2192\ng35\n(S'Variable_Type'\n(I2\nttRp2193\nsS'Y:VBus109'\np2194\ng35\n(S'Variable_Type'\n(I2\nttRp2195\nsS'Y46:%RateA 36-48'\np2196\ng35\n(S'Variable_Type'\n(I2\nttRp2197\nsS'Y:Load 80'\np2198\ng35\n(S'Variable_Type'\n(I2\nttRp2199\nsS'Y:PMachine133'\np2200\ng35\n(S'Variable_Type'\n(I2\nttRp2201\nsS'Y:VBus55'\np2202\ng35\n(S'Variable_Type'\n(I2\nttRp2203\nsS'Y:PMachine29'\np2204\ng35\n(S'Variable_Type'\n(I1\nttRp2205\nsS'Y24:%RateA 23-32'\np2206\ng35\n(S'Variable_Type'\n(I2\nttRp2207\nsS'X:lineOff#'\np2208\ng35\n(S'Variable_Type'\n(I2\nttRp2209\nsS'Y:Max%A'\np2210\ng35\n(S'Variable_Type'\n(I2\nttRp2211\nsS'Y:NbeTransit_0.9-1'\np2212\ng35\n(S'Variable_Type'\n(I1\nttRp2213\nsS'XProdEolienne%Pnom'\np2214\ng1908\nsS'Y33:%RateA 27-33'\np2215\ng35\n(S'Variable_Type'\n(I2\nttRp2216\nsS'Y59:%RateA 80-81'\np2217\ng35\n(S'Variable_Type'\n(I1\nttRp2218\nsS'Y:VBus65'\np2219\ng35\n(S'Variable_Type'\n(I2\nttRp2220\nsS'Y:VBus118'\np2221\ng35\n(S'Variable_Type'\n(I2\nttRp2222\nsS'Y:VBus119'\np2223\ng35\n(S'Variable_Type'\n(I2\nttRp2224\nsS'Y:PMachine117'\np2225\ng35\n(S'Variable_Type'\n(I2\nttRp2226\nsS'Y:PMachine116'\np2227\ng35\n(S'Variable_Type'\n(I2\nttRp2228\nsS'Y:PMachine111'\np2229\ng35\n(S'Variable_Type'\n(I2\nttRp2230\nsS'Y:VBus88'\np2231\ng35\n(S'Variable_Type'\n(I2\nttRp2232\nsS'Y:PMachine113'\np2233\ng35\n(S'Variable_Type'\n(I2\nttRp2234\nsS'Y:VBus93'\np2235\ng35\n(S'Variable_Type'\n(I2\nttRp2236\nsS'Y:VBus110'\np2237\ng35\n(S'Variable_Type'\n(I2\nttRp2238\nsS'Y:VBus111'\np2239\ng35\n(S'Variable_Type'\n(I2\nttRp2240\nsS'Y:VBus87'\np2241\ng35\n(S'Variable_Type'\n(I2\nttRp2242\nsS'Y12:%RateA 18-30'\np2243\ng35\n(S'Variable_Type'\n(I2\nttRp2244\nsS'Y:VBus114'\np2245\ng35\n(S'Variable_Type'\n(I2\nttRp2246\nsS'Y:VBus80'\np2247\ng35\n(S'Variable_Type'\n(I2\nttRp2248\nsS'Y:VBus116'\np2249\ng35\n(S'Variable_Type'\n(I2\nttRp2250\nsS'Y:VBus82'\np2251\ng35\n(S'Variable_Type'\n(I2\nttRp2252\nsS'Y61:%RateA 84-85'\np2253\ng35\n(S'Variable_Type'\n(I1\nttRp2254\nsS'Y31:%RateA 26-41'\np2255\ng35\n(S'Variable_Type'\n(I2\nttRp2256\nsS'Y:PMachine131'\np2257\ng35\n(S'Variable_Type'\n(I2\nttRp2258\nsS'Y47:%RateA 38-43'\np2259\ng35\n(S'Variable_Type'\n(I2\nttRp2260\nsS'Y:Load 42'\np2261\ng35\n(S'Variable_Type'\n(I2\nttRp2262\nsS'Y:PMachine85'\np2263\ng35\n(S'Variable_Type'\n(I2\nttRp2264\nsS'Y32:%RateA 26-46'\np2265\ng35\n(S'Variable_Type'\n(I2\nttRp2266\nsS'Y:PMachine132'\np2267\ng35\n(S'Variable_Type'\n(I2\nttRp2268\nsS'Y18:%RateA 19-27'\np2269\ng35\n(S'Variable_Type'\n(I2\nttRp2270\nsS'Y:VBus86'\np2271\ng35\n(S'Variable_Type'\n(I2\nttRp2272\nsS'Y63:%RateA 95-96'\np2273\ng35\n(S'Variable_Type'\n(I1\nttRp2274\nsS'Y17:%RateA 19-22'\np2275\ng35\n(S'Variable_Type'\n(I2\nttRp2276\nsS'Y41:%RateA 32-48'\np2277\ng35\n(S'Variable_Type'\n(I2\nttRp2278\nsS'Y:PMachine30'\np2279\ng35\n(S'Variable_Type'\n(I2\nttRp2280\nsS'Y:VBus117'\np2281\ng35\n(S'Variable_Type'\n(I2\nttRp2282\nsS'Y56:%RateA 72-73'\np2283\ng35\n(S'Variable_Type'\n(I1\nttRp2284\nsS'Y68:%RateA 112-113'\np2285\ng35\n(S'Variable_Type'\n(I1\nttRp2286\nsS'Y:PMachine130'\np2287\ng35\n(S'Variable_Type'\n(I2\nttRp2288\nsS'Y27:%RateA 24-33'\np2289\ng35\n(S'Variable_Type'\n(I2\nttRp2290\nsS'Y:PMachine106'\np2291\ng35\n(S'Variable_Type'\n(I2\nttRp2292\nsS'Y:PMachine107'\np2293\ng35\n(S'Variable_Type'\n(I2\nttRp2294\nsS'Y:PMachine104'\np2295\ng35\n(S'Variable_Type'\n(I2\nttRp2296\nsS'Y:VBus73'\np2297\ng35\n(S'Variable_Type'\n(I2\nttRp2298\nsS'Y:VBus74'\np2299\ng35\n(S'Variable_Type'\n(I2\nttRp2300\nsS'Y:VBus75'\np2301\ng35\n(S'Variable_Type'\n(I2\nttRp2302\nsS'Y:VBus76'\np2303\ng35\n(S'Variable_Type'\n(I2\nttRp2304\nsS'Y:PMachine101'\np2305\ng35\n(S'Variable_Type'\n(I2\nttRp2306\nsS'Y:VBus78'\np2307\ng35\n(S'Variable_Type'\n(I2\nttRp2308\nsS'Y:Load 59'\np2309\ng35\n(S'Variable_Type'\n(I2\nttRp2310\nsS'Y:PMachine115'\np2311\ng35\n(S'Variable_Type'\n(I2\nttRp2312\nsS'Y51:%RateA 53-54'\np2313\ng35\n(S'Variable_Type'\n(I1\nttRp2314\nsS'Y67:%RateA 108-109'\np2315\ng35\n(S'Variable_Type'\n(I1\nttRp2316\nsS'Y:PMachine109'\np2317\ng35\n(S'Variable_Type'\n(I2\nttRp2318\nsS'Y:PMachine83'\np2319\ng35\n(S'Variable_Type'\n(I2\nttRp2320\nsS'Y:PMachine81'\np2321\ng35\n(S'Variable_Type'\n(I2\nttRp2322\nsS'Y:PMachine86'\np2323\ng35\n(S'Variable_Type'\n(I2\nttRp2324\nsS'Y:Load 76'\np2325\ng35\n(S'Variable_Type'\n(I2\nttRp2326\nsS'Y:Load 74'\np2327\ng35\n(S'Variable_Type'\n(I2\nttRp2328\nsS'Y45:%RateA 36-37'\np2329\ng35\n(S'Variable_Type'\n(I2\nttRp2330\nsS'Y58:%RateA 78-79'\np2331\ng35\n(S'Variable_Type'\n(I1\nttRp2332\nsS'Y:Load 78'\np2333\ng35\n(S'Variable_Type'\n(I2\nttRp2334\nsS'X:Load(pu)'\np2335\ng1902\nsS'Y5:%RateA 13-29'\np2336\ng35\n(S'Variable_Type'\n(I2\nttRp2337\nsS'Y:PMachine118'\np2338\ng35\n(S'Variable_Type'\n(I2\nttRp2339\nsS'Y1:%RateA 11-47'\np2340\ng35\n(S'Variable_Type'\n(I2\nttRp2341\nsS'Y:VBus60'\np2342\ng35\n(S'Variable_Type'\n(I2\nttRp2343\nsS'Y:PMachine137'\np2344\ng35\n(S'Variable_Type'\n(I1\nttRp2345\nsS'Y29:%RateA 25-29'\np2346\ng35\n(S'Variable_Type'\n(I2\nttRp2347\nsS'Y:VBus66'\np2348\ng35\n(S'Variable_Type'\n(I2\nttRp2349\nsS'Iteration'\np2350\ng35\n(S'Variable_Type'\n(I2\nttRp2351\nsS'Y36:%RateA 29-30'\np2352\ng35\n(S'Variable_Type'\n(I1\nttRp2353\nsS'Y54:%RateA 59-60'\np2354\ng35\n(S'Variable_Type'\n(I1\nttRp2355\nsS'Y:Load 90'\np2356\ng35\n(S'Variable_Type'\n(I2\nttRp2357\nsS'Y9:%RateA 16-32'\np2358\ng35\n(S'Variable_Type'\n(I2\nttRp2359\nsS'Y:PMachine134'\np2360\ng35\n(S'Variable_Type'\n(I1\nttRp2361\nsS'Y:Load 95'\np2362\ng35\n(S'Variable_Type'\n(I2\nttRp2363\nsS'Y:VBus63'\np2364\ng35\n(S'Variable_Type'\n(I2\nttRp2365\nsS'Y:VBus62'\np2366\ng35\n(S'Variable_Type'\n(I2\nttRp2367\nsS'Y:VBus61'\np2368\ng35\n(S'Variable_Type'\n(I2\nttRp2369\nsS'Y55:%RateA 61-62'\np2370\ng35\n(S'Variable_Type'\n(I1\nttRp2371\nsS'Y8:%RateA 15-35'\np2372\ng35\n(S'Variable_Type'\n(I2\nttRp2373\nsS'Y:PMachine136'\np2374\ng35\n(S'Variable_Type'\n(I1\nttRp2375\nsS'Y:PMachine135'\np2376\ng35\n(S'Variable_Type'\n(I1\nttRp2377\nsS'Y:VBus64'\np2378\ng35\n(S'Variable_Type'\n(I2\nttRp2379\nsS'Y:PMachine94'\np2380\ng35\n(S'Variable_Type'\n(I2\nttRp2381\nsS'Y:VBus69'\np2382\ng35\n(S'Variable_Type'\n(I2\nttRp2383\nsS'Y:VBus108'\np2384\ng35\n(S'Variable_Type'\n(I2\nttRp2385\nsS'Y:PMachine139'\np2386\ng35\n(S'Variable_Type'\n(I1\nttRp2387\nsS'Y:PMachine97'\np2388\ng35\n(S'Variable_Type'\n(I2\nttRp2389\nsS'Y:PMachine92'\np2390\ng35\n(S'Variable_Type'\n(I2\nttRp2391\nsS'Y:VBus68'\np2392\ng35\n(S'Variable_Type'\n(I2\nttRp2393\nsS'Y:Load 61'\np2394\ng35\n(S'Variable_Type'\n(I2\nttRp2395\nsS'Y:VBus89'\np2396\ng35\n(S'Variable_Type'\n(I2\nttRp2397\nsS'Y21:%RateA 21-43'\np2398\ng35\n(S'Variable_Type'\n(I2\nttRp2399\nsS'Y:PMachine90'\np2400\ng35\n(S'Variable_Type'\n(I2\nttRp2401\nsS'Y:PMachine14'\np2402\ng35\n(S'Variable_Type'\n(I2\nttRp2403\nsS'Y:PMachine63'\np2404\ng35\n(S'Variable_Type'\n(I2\nttRp2405\nsS'Y:PMachine93'\np2406\ng35\n(S'Variable_Type'\n(I2\nttRp2407\nsS'Y:PConsoTot'\np2408\ng35\n(S'Variable_Type'\n(I2\nttRp2409\nsS'Y23:%RateA 22-31'\np2410\ng35\n(S'Variable_Type'\n(I2\nttRp2411\nsS'Y19:%RateA 20-26'\np2412\ng35\n(S'Variable_Type'\n(I2\nttRp2413\nsS'Y:PMachine18'\np2414\ng35\n(S'Variable_Type'\n(I2\nttRp2415\nsS'Y:VBus34'\np2416\ng35\n(S'Variable_Type'\n(I2\nttRp2417\nsS'Y:NbeTension'\np2418\ng35\n(S'Variable_Type'\n(I2\nttRp2419\nsS'Y:PMachine128'\np2420\ng35\n(S'Variable_Type'\n(I2\nttRp2421\nsS'Y:PMachine129'\np2422\ng35\n(S'Variable_Type'\n(I2\nttRp2423\nsS'Y:VBus133'\np2424\ng35\n(S'Variable_Type'\n(I2\nttRp2425\nsS'Y:Load 82'\np2426\ng35\n(S'Variable_Type'\n(I2\nttRp2427\nsS'Y:PMachine125'\np2428\ng35\n(S'Variable_Type'\n(I2\nttRp2429\nsS'Y:PMachine126'\np2430\ng35\n(S'Variable_Type'\n(I2\nttRp2431\nsS'Y:PMachine127'\np2432\ng35\n(S'Variable_Type'\n(I2\nttRp2433\nsS'Y:Load 86'\np2434\ng35\n(S'Variable_Type'\n(I2\nttRp2435\nsS'Y:PMachine121'\np2436\ng35\n(S'Variable_Type'\n(I2\nttRp2437\nsS'Y:Load 84'\np2438\ng35\n(S'Variable_Type'\n(I2\nttRp2439\nsS'Y:PMachine123'\np2440\ng35\n(S'Variable_Type'\n(I2\nttRp2441\nsS'Y:Load 102'\np2442\ng35\n(S'Variable_Type'\n(I2\nttRp2443\nsS'Y:VBus57'\np2444\ng35\n(S'Variable_Type'\n(I2\nttRp2445\nsS'Y:Load 100'\np2446\ng35\n(S'Variable_Type'\n(I2\nttRp2447\nsS'Y:Load 101'\np2448\ng35\n(S'Variable_Type'\n(I2\nttRp2449\nsS'Y:VBus52'\np2450\ng35\n(S'Variable_Type'\n(I2\nttRp2451\nsS'Y:VBus53'\np2452\ng35\n(S'Variable_Type'\n(I2\nttRp2453\nsS'Y:Load 104'\np2454\ng35\n(S'Variable_Type'\n(I2\nttRp2455\nsS'Y:VBus51'\np2456\ng35\n(S'Variable_Type'\n(I2\nttRp2457\nsS'Y:Load 108'\np2458\ng35\n(S'Variable_Type'\n(I2\nttRp2459\nsS'Y64:%RateA 102-103'\np2460\ng35\n(S'Variable_Type'\n(I1\nttRp2461\nsS'Y:PMachine112'\np2462\ng35\n(S'Variable_Type'\n(I2\nttRp2463\nsS'Y:VBus58'\np2464\ng35\n(S'Variable_Type'\n(I2\nttRp2465\nsS'Y:VBus59'\np2466\ng35\n(S'Variable_Type'\n(I2\nttRp2467\nsS'Y:Load 53'\np2468\ng35\n(S'Variable_Type'\n(I2\nttRp2469\nsS'Y10:%RateA 16-47'\np2470\ng35\n(S'Variable_Type'\n(I2\nttRp2471\nsS'Y:PMachine54'\np2472\ng35\n(S'Variable_Type'\n(I2\nttRp2473\nsS'Y:VBus56'\np2474\ng35\n(S'Variable_Type'\n(I2\nttRp2475\nsS'Y3:%RateA 12-24'\np2476\ng35\n(S'Variable_Type'\n(I2\nttRp2477\nsS'Y11:%RateA 17-27'\np2478\ng35\n(S'Variable_Type'\n(I2\nttRp2479\nsS'Y:PMachine114'\np2480\ng35\n(S'Variable_Type'\n(I2\nttRp2481\nsS'Y:VBus72'\np2482\ng35\n(S'Variable_Type'\n(I2\nttRp2483\nsS'Y:PMachine60'\np2484\ng35\n(S'Variable_Type'\n(I2\nttRp2485\nsS'Y:PMachine61'\np2486\ng35\n(S'Variable_Type'\n(I1\nttRp2487\nsS'Y:PMachine62'\np2488\ng35\n(S'Variable_Type'\n(I2\nttRp2489\nsS'Y:PMachine105'\np2490\ng35\n(S'Variable_Type'\n(I2\nttRp2491\nsS'Y:PMachine64'\np2492\ng35\n(S'Variable_Type'\n(I2\nttRp2493\nsS'Y:PMachine65'\np2494\ng35\n(S'Variable_Type'\n(I2\nttRp2495\nsS'Y:PMachine66'\np2496\ng35\n(S'Variable_Type'\n(I2\nttRp2497\nsS'Y:PMachine67'\np2498\ng35\n(S'Variable_Type'\n(I2\nttRp2499\nsS'Y:PMachine68'\np2500\ng35\n(S'Variable_Type'\n(I2\nttRp2501\nsS'Y:PMachine102'\np2502\ng35\n(S'Variable_Type'\n(I2\nttRp2503\nsS'X:ProdPV%Pnom'\np2504\ng1906\nsS'Y:VBus138'\np2505\ng35\n(S'Variable_Type'\n(I2\nttRp2506\nsS'Y26:%RateA 24-25'\np2507\ng35\n(S'Variable_Type'\n(I1\nttRp2508\nssg648\n(lp2509\ng650\nasba(iOWContexts\nContext\np2510\n(dp2511\ng24\n(lp2512\nsg26\n(dp2513\nsg28\n(dp2514\nS'attrLabel'\np2515\n(S''\nI-1\ntp2516\nsS'attrShape'\np2517\n(S''\nI0\ntp2518\nsS'attrX'\np2519\n(S'X:Load(pu)'\ng35\n(S'Variable_Type'\n(I2\nttRp2520\ntp2521\nsS'attrY'\np2522\n(S'X:Interco(bin)'\ng35\n(S'Variable_Type'\n(I1\nttRp2523\ntp2524\nsS'attrSize'\np2525\n(S''\nI0\ntp2526\nsS'attrColor'\np2527\n(S'X:ProdEolienne%Pnom'\ng35\n(S'Variable_Type'\n(I2\nttRp2528\ntp2529\nssg46\nF1368453819.1259999\nsg47\n(dp2530\nS'X:Interco(bin)'\np2531\ng2523\nsS'X:Load(pu)'\np2532\ng2520\nsS'X:ProdEolienne%Pnom'\np2533\ng2528\nssg648\n(lp2534\ng650\nasba(iOWContexts\nContext\np2535\n(dp2536\ng24\n(lp2537\nsg26\n(dp2538\nsg28\n(dp2539\nS'attrLabel'\np2540\n(S''\nI-1\ntp2541\nsS'attrShape'\np2542\n(S''\nI0\ntp2543\nsS'attrX'\np2544\n(S'X:Load(pu)'\ng35\n(S'Variable_Type'\n(I2\nttRp2545\ntp2546\nsS'attrY'\np2547\n(S'X:Interco(bin)'\ng35\n(S'Variable_Type'\n(I1\nttRp2548\ntp2549\nsS'attrSize'\np2550\n(S''\nI0\ntp2551\nsS'attrColor'\np2552\n(S'X:ProdEolienne%Pnom'\ng35\n(S'Variable_Type'\n(I2\nttRp2553\ntp2554\nssg46\nF1368453819.1259999\nsg47\n(dp2555\nS'X:Interco(bin)'\np2556\ng2548\nsS'X:Load(pu)'\np2557\ng2545\nsS'X:ProdEolienne%Pnom'\np2558\ng2553\nssg648\n(lp2559\nS'orderedDomain'\np2560\nasbasS'toolbarSelection'\np2561\nI0\nsS'graph.sendSelectionOnUpdate'\np2562\nI0\nsS'graph.showYLaxisTitle'\np2563\nI1\nsS'graph.showDistributions'\np2564\nNsS'colorSettings'\np2565\n(lp2566\n(S''\n(lp2567\n(lp2568\n(S'Canvas'\nL4294967295L\ntp2569\na(S'Grid'\nL4292335575L\ntp2570\naa(lp2571\n(S'contPalette'\n(L4283826047L\nL4294945280L\nI0\nttp2572\naa(lp2573\n(S'discPalette'\n(lp2574\n(I0\nI0\nI255\ntp2575\na(I255\nI0\nI0\ntp2576\na(I0\nI255\nI0\ntp2577\na(I255\nI128\nI0\ntp2578\na(I255\nI255\nI0\ntp2579\na(I255\nI0\nI255\ntp2580\na(I0\nI255\nI255\ntp2581\na(I128\nI0\nI255\ntp2582\na(I0\nI128\nI255\ntp2583\na(I255\nI223\nI128\ntp2584\na(I127\nI111\nI64\ntp2585\na(I92\nI46\nI0\ntp2586\na(I0\nI84\nI0\ntp2587\na(I192\nI192\nI0\ntp2588\na(I0\nI127\nI127\ntp2589\na(I128\nI0\nI0\ntp2590\na(I127\nI0\nI127\ntp2591\natp2592\naa(lp2593\natp2594\na(S'Default'\n(lp2595\n(lp2596\n(S'Canvas'\nL4294967295L\ntp2597\na(S'Grid'\nL4292335575L\ntp2598\naa(lp2599\n(S'contPalette'\n(L4294967295L\nL4278190080L\nI0\nttp2600\naa(lp2601\n(S'discPalette'\ng2574\ntp2602\naa(lp2603\natp2604\nasS'VizRankLearnerName'\np2605\nNs.&quot;, 'Attribute Statistics (2)': &quot;(dp1\nS'widgetShown'\np2\nI0\nsS'localContextsVersion'\np3\n(I100\nI0\ntp4\nsS'savedWidgetGeometry'\np5\nS'\\x01\\xd9\\xd0\\xcb\\x00\\x01\\x00\\x00\\xff\\xff\\xfb=\\xff\\xff\\xff\\xe8\\xff\\xff\\xfe\\x08\\x00\\x00\\x02c\\xff\\xff\\xfbE\\x00\\x00\\x00\\x04\\xff\\xff\\xfe\\x00\\x00\\x00\\x02[\\x00\\x00\\x00\\x01\\x00\\x00'\np6\nsS'sorting'\np7\nI2\nsS'localContexts'\np8\n(lp9\n(iOWContexts\nContext\np10\n(dp11\nS'noCopy'\np12\n(lp13\nS'orderedDomain'\np14\nasS'attributes'\np15\n(dp16\nS'Y:PMachine134 - CLUCCI35'\np17\ncOrange.orange\n__pickleLoaderNamedConstants\np18\n(S'Variable_Type'\n(I2\nttRp19\nsS'Y:VBus77 - CCORTE32'\np20\ng18\n(S'Variable_Type'\n(I2\nttRp21\nsS'Y:VBus134 - CLUCCI35'\np22\ng18\n(S'Variable_Type'\n(I2\nttRp23\nsS'Y:VBus109 - CSAGON32'\np24\ng18\n(S'Variable_Type'\n(I2\nttRp25\nsS'Y:VBus102 - CPORTO31'\np26\ng18\n(S'Variable_Type'\n(I2\nttRp27\nsS'XProdEolienne%Pnom'\np28\ng18\n(S'Variable_Type'\n(I2\nttRp29\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np30\ng18\n(S'Variable_Type'\n(I2\nttRp31\nsS'Y:PMachine94 - COCANA33'\np32\ng18\n(S'Variable_Type'\n(I2\nttRp33\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np34\ng18\n(S'Variable_Type'\n(I2\nttRp35\nsS'Y:PMachine87 - CLUCCI32'\np36\ng18\n(S'Variable_Type'\n(I2\nttRp37\nsS'Y:PMachine113 - CSAMPO32'\np38\ng18\n(S'Variable_Type'\n(I2\nttRp39\nsS'Y:Load 84 - CLORET31'\np40\ng18\n(S'Variable_Type'\n(I2\nttRp41\nsS'Y:PMachine89 - CLUCCI34'\np42\ng18\n(S'Variable_Type'\n(I2\nttRp43\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np44\ng18\n(S'Variable_Type'\n(I2\nttRp45\nsS'Y:Load 80 - CGHISO31'\np46\ng18\n(S'Variable_Type'\n(I2\nttRp47\nsS'Y:PMachine74 - CCERVI31'\np48\ng18\n(S'Variable_Type'\n(I2\nttRp49\nsS'Y:PMachine125 - CVAZZI36'\np50\ng18\n(S'Variable_Type'\n(I2\nttRp51\nsS'Y:Load 59 - CCALDA31'\np52\ng18\n(S'Variable_Type'\n(I2\nttRp53\nsS'Y:PMachine88 - CLUCCI33'\np54\ng18\n(S'Variable_Type'\n(I2\nttRp55\nsS'Y:PMachine120 - CVAZZI31'\np56\ng18\n(S'Variable_Type'\n(I2\nttRp57\nsS'Y:PMachine111 - CSTMAR31'\np58\ng18\n(S'Variable_Type'\n(I2\nttRp59\nsS'Y:NbeTransit'\np60\ng18\n(S'Variable_Type'\n(I2\nttRp61\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np62\ng18\n(S'Variable_Type'\n(I2\nttRp63\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np64\ng18\n(S'Variable_Type'\n(I2\nttRp65\nsS'Y:PMachine130 - CVAZZI311'\np66\ng18\n(S'Variable_Type'\n(I2\nttRp67\nsS'Y:PMachine127 - CVAZZI38'\np68\ng18\n(S'Variable_Type'\n(I2\nttRp69\nsS'Y:VBus131 - CVAZZI312'\np70\ng18\n(S'Variable_Type'\n(I2\nttRp71\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np72\ng18\n(S'Variable_Type'\n(I2\nttRp73\nsS'Y:PMachine123 - CVAZZI34'\np74\ng18\n(S'Variable_Type'\n(I2\nttRp75\nsS'Y:VBus118 - CTOLLA33'\np76\ng18\n(S'Variable_Type'\n(I2\nttRp77\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np78\ng18\n(S'Variable_Type'\n(I2\nttRp79\nsS'Y:PMachine58 - CBONIF32'\np80\ng18\n(S'Variable_Type'\n(I2\nttRp81\nsS'Y:Load 104 - CPROPR31'\np82\ng18\n(S'Variable_Type'\n(I2\nttRp83\nsS'Y:PMachine30 - CLUCCI22'\np84\ng18\n(S'Variable_Type'\n(I2\nttRp85\nsS'Y:VBus100 - COLETT31'\np86\ng18\n(S'Variable_Type'\n(I2\nttRp87\nsS'Y:PProdTot'\np88\ng18\n(S'Variable_Type'\n(I2\nttRp89\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np90\ng18\n(S'Variable_Type'\n(I2\nttRp91\nsS'Y:VBus57 - CBONIF31'\np92\ng18\n(S'Variable_Type'\n(I2\nttRp93\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np94\ng18\n(S'Variable_Type'\n(I2\nttRp95\nsS'Y:PConsoTot'\np96\ng18\n(S'Variable_Type'\n(I2\nttRp97\nsS'Iteration'\np98\ng18\n(S'Variable_Type'\n(I2\nttRp99\nsS'Y:PMachine109 - CSAGON32'\np100\ng18\n(S'Variable_Type'\n(I2\nttRp101\nsS'Y:PMachine135 - CLUCCI36'\np102\ng18\n(S'Variable_Type'\n(I2\nttRp103\nsS'Y:VBus30 - CLUCCI22'\np104\ng18\n(S'Variable_Type'\n(I2\nttRp105\nsS'Y:VBus122 - CVAZZI33'\np106\ng18\n(S'Variable_Type'\n(I2\nttRp107\nsS'Y:VBus22 - CCORTE21'\np108\ng18\n(S'Variable_Type'\n(I2\nttRp109\nsS'Y:VBus117 - CTOLLA32'\np110\ng18\n(S'Variable_Type'\n(I2\nttRp111\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np112\ng18\n(S'Variable_Type'\n(I2\nttRp113\nsS'Y:PMachine107 - CRIZZA32'\np114\ng18\n(S'Variable_Type'\n(I2\nttRp115\nsS'Y:VBus16 - CCALDA21'\np116\ng18\n(S'Variable_Type'\n(I2\nttRp117\nsS'Y:Load 102 - CPORTO31'\np118\ng18\n(S'Variable_Type'\n(I2\nttRp119\nsS'Y:VBus107 - CRIZZA32'\np120\ng18\n(S'Variable_Type'\n(I2\nttRp121\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np122\ng18\n(S'Variable_Type'\n(I2\nttRp123\nsS'Y:VBus41 - CSAMPO21'\np124\ng18\n(S'Variable_Type'\n(I2\nttRp125\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np126\ng18\n(S'Variable_Type'\n(I2\nttRp127\nsS'Y:VBus34 - CPIETR21'\np128\ng18\n(S'Variable_Type'\n(I2\nttRp129\nsS'Y:Load 108 - CSAGON31'\np130\ng18\n(S'Variable_Type'\n(I2\nttRp131\nsS'Y:VBus56 - CBIGUG32'\np132\ng18\n(S'Variable_Type'\n(I2\nttRp133\nsS'Y:PMachine42 - CSISCO21'\np134\ng18\n(S'Variable_Type'\n(I2\nttRp135\nsS'Y:PMachine138 - CLUCCI39'\np136\ng18\n(S'Variable_Type'\n(I2\nttRp137\nsS'Y:PMachine112 - CSAMPO31'\np138\ng18\n(S'Variable_Type'\n(I2\nttRp139\nsS'Y:VBus105 - CPROPR32'\np140\ng18\n(S'Variable_Type'\n(I2\nttRp141\nsS'Y:VBus1 - CBONIF11'\np142\ng18\n(S'Variable_Type'\n(I2\nttRp143\nsS'Y:VBus12 - CBASTI21'\np144\ng18\n(S'Variable_Type'\n(I2\nttRp145\nsS'Y:PMachine129 - CVAZZI310'\np146\ng18\n(S'Variable_Type'\n(I2\nttRp147\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np148\ng18\n(S'Variable_Type'\n(I2\nttRp149\nsS'Y:VBus35 - CPORTO21'\np150\ng18\n(S'Variable_Type'\n(I2\nttRp151\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np152\ng18\n(S'Variable_Type'\n(I2\nttRp153\nsS'Y:VBus54 - CBASTI32'\np154\ng18\n(S'Variable_Type'\n(I2\nttRp155\nsS'Y:VBus69 - CCASAM37'\np156\ng18\n(S'Variable_Type'\n(I2\nttRp157\nsS'Y:VBus45 - CTOLLA21'\np158\ng18\n(S'Variable_Type'\n(I2\nttRp159\nsS'Y:PMachine115 - CTAGLI31'\np160\ng18\n(S'Variable_Type'\n(I2\nttRp161\nsS'Y:VBus43 - CSOVEN21'\np162\ng18\n(S'Variable_Type'\n(I2\nttRp163\nsS'Y:VBus76 - CCORTE31'\np164\ng18\n(S'Variable_Type'\n(I2\nttRp165\nsS'Y:VBus75 - CCORSC31'\np166\ng18\n(S'Variable_Type'\n(I2\nttRp167\nsS'Y:PMachine78 - CFURIA31'\np168\ng18\n(S'Variable_Type'\n(I2\nttRp169\nsS'Y:VBus127 - CVAZZI38'\np170\ng18\n(S'Variable_Type'\n(I2\nttRp171\nsS'Y:VBus115 - CTAGLI31'\np172\ng18\n(S'Variable_Type'\n(I2\nttRp173\nsS'Y:Load 61 - CCALVI31'\np174\ng18\n(S'Variable_Type'\n(I2\nttRp175\nsS'Y:VBus55 - CBIGUG31'\np176\ng18\n(S'Variable_Type'\n(I2\nttRp177\nsS'Y:Load 42 - CSISCO21'\np178\ng18\n(S'Variable_Type'\n(I2\nttRp179\nsS'Y:VBus72 - CCASTI31'\np180\ng18\n(S'Variable_Type'\n(I2\nttRp181\nsS'Y:Load 37 - CRIZZA21'\np182\ng18\n(S'Variable_Type'\n(I2\nttRp183\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np184\ng18\n(S'Variable_Type'\n(I2\nttRp185\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np186\ng18\n(S'Variable_Type'\n(I2\nttRp187\nsS'Y:PMachine137 - CLUCCI38'\np188\ng18\n(S'Variable_Type'\n(I2\nttRp189\nsS'Y:PMachine67 - CCASAM35'\np190\ng18\n(S'Variable_Type'\n(I2\nttRp191\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np192\ng18\n(S'Variable_Type'\n(I2\nttRp193\nsS'Y:VBus31 - CMOROS21'\np194\ng18\n(S'Variable_Type'\n(I2\nttRp195\nsS'Y:VBus103 - CPORTO32'\np196\ng18\n(S'Variable_Type'\n(I2\nttRp197\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np198\ng18\n(S'Variable_Type'\n(I2\nttRp199\nsS'Y:PMachine128 - CVAZZI39'\np200\ng18\n(S'Variable_Type'\n(I2\nttRp201\nsS'Y:PMachine72 - CCASTI31'\np202\ng18\n(S'Variable_Type'\n(I2\nttRp203\nsS'Y:VBus27 - CILERO21'\np204\ng18\n(S'Variable_Type'\n(I2\nttRp205\nsS'Y:VBus11 - CASPRE21'\np206\ng18\n(S'Variable_Type'\n(I2\nttRp207\nsS'Y:PMachine75 - CCORSC31'\np208\ng18\n(S'Variable_Type'\n(I2\nttRp209\nsS'Y:Load 51 - CASPRE31'\np210\ng18\n(S'Variable_Type'\n(I2\nttRp211\nsS'Y:PMachine61 - CCALVI31'\np212\ng18\n(S'Variable_Type'\n(I2\nttRp213\nsS'Y:VBus51 - CASPRE31'\np214\ng18\n(S'Variable_Type'\n(I2\nttRp215\nsS'Y:VBus114 - CSOVEN31'\np216\ng18\n(S'Variable_Type'\n(I2\nttRp217\nsS'Y:VBus116 - CTOLLA31'\np218\ng18\n(S'Variable_Type'\n(I2\nttRp219\nsS'Y:Load 86 - CLUCCI31'\np220\ng18\n(S'Variable_Type'\n(I2\nttRp221\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np222\ng18\n(S'Variable_Type'\n(I2\nttRp223\nsS'Y:PMachine116 - CTOLLA31'\np224\ng18\n(S'Variable_Type'\n(I2\nttRp225\nsS'Y:PMachine104 - CPROPR31'\np226\ng18\n(S'Variable_Type'\n(I2\nttRp227\nsS'Y:VBus128 - CVAZZI39'\np228\ng18\n(S'Variable_Type'\n(I2\nttRp229\nsS'Y:PMachine136 - CLUCCI37'\np230\ng18\n(S'Variable_Type'\n(I2\nttRp231\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np232\ng18\n(S'Variable_Type'\n(I2\nttRp233\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np234\ng18\n(S'Variable_Type'\n(I2\nttRp235\nsS'Y:PMachine68 - CCASAM36'\np236\ng18\n(S'Variable_Type'\n(I2\nttRp237\nsS'Y:PMachine29 - CLUCCI21'\np238\ng18\n(S'Variable_Type'\n(I2\nttRp239\nsS'Y:VBus42 - CSISCO21'\np240\ng18\n(S'Variable_Type'\n(I2\nttRp241\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np242\ng18\n(S'Variable_Type'\n(I2\nttRp243\nsS'Y:VBus14 - CBONIF21'\np244\ng18\n(S'Variable_Type'\n(I2\nttRp245\nsS'Y:VBus73 - CCASTI32'\np246\ng18\n(S'Variable_Type'\n(I2\nttRp247\nsS'Y:VBus64 - CCASAM32'\np248\ng18\n(S'Variable_Type'\n(I2\nttRp249\nsS'Y:PMachine14 - CBONIF21'\np250\ng18\n(S'Variable_Type'\n(I2\nttRp251\nsS'Y:PMachine62 - CCALVI32'\np252\ng18\n(S'Variable_Type'\n(I2\nttRp253\nsS'Y:VBus133 - CVAZZI314'\np254\ng18\n(S'Variable_Type'\n(I2\nttRp255\nsS'Y:VBus63 - CCASAM31'\np256\ng18\n(S'Variable_Type'\n(I2\nttRp257\nsS'Y:PMachine101 - CPIETR31'\np258\ng18\n(S'Variable_Type'\n(I2\nttRp259\nsS'Y:%Losses'\np260\ng18\n(S'Variable_Type'\n(I2\nttRp261\nsS'Y:VBus85 - CLORET32'\np262\ng18\n(S'Variable_Type'\n(I2\nttRp263\nsS'Y:Load 115 - CTAGLI31'\np264\ng18\n(S'Variable_Type'\n(I2\nttRp265\nsS'Y:VBus129 - CVAZZI310'\np266\ng18\n(S'Variable_Type'\n(I2\nttRp267\nsS'Y:VBus101 - CPIETR31'\np268\ng18\n(S'Variable_Type'\n(I2\nttRp269\nsS'Y:PMachine106 - CRIZZA31'\np270\ng18\n(S'Variable_Type'\n(I2\nttRp271\nsS'Y:VBus132 - CVAZZI313'\np272\ng18\n(S'Variable_Type'\n(I2\nttRp273\nsS'Y:PMachine118 - CTOLLA33'\np274\ng18\n(S'Variable_Type'\n(I2\nttRp275\nsS'Y:VBus19 - CCASTI21'\np276\ng18\n(S'Variable_Type'\n(I2\nttRp277\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np278\ng18\n(S'Variable_Type'\n(I2\nttRp279\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np280\ng18\n(S'Variable_Type'\n(I2\nttRp281\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np282\ng18\n(S'Variable_Type'\n(I2\nttRp283\nsS'Y:PMachine53 - CBASTI31'\np284\ng18\n(S'Variable_Type'\n(I2\nttRp285\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np286\ng18\n(S'Variable_Type'\n(I2\nttRp287\nsS'Y:VBus15 - CBONIF22'\np288\ng18\n(S'Variable_Type'\n(I2\nttRp289\nsS'Y:PMachine47 - CVAZZI21'\np290\ng18\n(S'Variable_Type'\n(I2\nttRp291\nsS'Y:VBus123 - CVAZZI34'\np292\ng18\n(S'Variable_Type'\n(I2\nttRp293\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np294\ng18\n(S'Variable_Type'\n(I2\nttRp295\nsS'Y:VBus60 - CCALDA32'\np296\ng18\n(S'Variable_Type'\n(I2\nttRp297\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np298\ng18\n(S'Variable_Type'\n(I2\nttRp299\nsS'Y:VBus65 - CCASAM33'\np300\ng18\n(S'Variable_Type'\n(I2\nttRp301\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np302\ng18\n(S'Variable_Type'\n(I2\nttRp303\nsS'Y:PMachine139 - CLUCCI310'\np304\ng18\n(S'Variable_Type'\n(I2\nttRp305\nsS'Y:VBus112 - CSAMPO31'\np306\ng18\n(S'Variable_Type'\n(I2\nttRp307\nsS'Y:VBus68 - CCASAM36'\np308\ng18\n(S'Variable_Type'\n(I2\nttRp309\nsS'Y:Load 55 - CBIGUG31'\np310\ng18\n(S'Variable_Type'\n(I2\nttRp311\nsS'Y:Max%A'\np312\ng18\n(S'Variable_Type'\n(I2\nttRp313\nsS'Y:NbeTransit_0.9-1'\np314\ng18\n(S'Variable_Type'\n(I2\nttRp315\nsS'Y:VBus24 - CFURIA21'\np316\ng18\n(S'Variable_Type'\n(I2\nttRp317\nsS'Y:VBus23 - CCORTE22'\np318\ng18\n(S'Variable_Type'\n(I2\nttRp319\nsS'Y:VBus18 - CCASAM21'\np320\ng18\n(S'Variable_Type'\n(I2\nttRp321\nsS'Y:VBus40 - CSTMAR21'\np322\ng18\n(S'Variable_Type'\n(I2\nttRp323\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np324\ng18\n(S'Variable_Type'\n(I2\nttRp325\nsS'Y:PMachine124 - CVAZZI35'\np326\ng18\n(S'Variable_Type'\n(I2\nttRp327\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np328\ng18\n(S'Variable_Type'\n(I2\nttRp329\nsS'Y:PMachine117 - CTOLLA32'\np330\ng18\n(S'Variable_Type'\n(I2\nttRp331\nsS'Y:Load 82 - CILERO31'\np332\ng18\n(S'Variable_Type'\n(I2\nttRp333\nsS'Y:VBus33 - COLETT21'\np334\ng18\n(S'Variable_Type'\n(I2\nttRp335\nsS'Y:VBus32 - COCANA21'\np336\ng18\n(S'Variable_Type'\n(I2\nttRp337\nsS'Y:PMachine121 - CVAZZI32'\np338\ng18\n(S'Variable_Type'\n(I2\nttRp339\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np340\ng18\n(S'Variable_Type'\n(I2\nttRp341\nsS'Y:VBus59 - CCALDA31'\np342\ng18\n(S'Variable_Type'\n(I2\nttRp343\nsS'Y:VBus82 - CILERO31'\np344\ng18\n(S'Variable_Type'\n(I2\nttRp345\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np346\ng18\n(S'Variable_Type'\n(I2\nttRp347\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np348\ng18\n(S'Variable_Type'\n(I2\nttRp349\nsS'Y:VBus37 - CRIZZA21'\np350\ng18\n(S'Variable_Type'\n(I2\nttRp351\nsS'Y:PMachine73 - CCASTI32'\np352\ng18\n(S'Variable_Type'\n(I2\nttRp353\nsS'Y:PMachine86 - CLUCCI31'\np354\ng18\n(S'Variable_Type'\n(I2\nttRp355\nsS'Y:Load 53 - CBASTI31'\np356\ng18\n(S'Variable_Type'\n(I2\nttRp357\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np358\ng18\n(S'Variable_Type'\n(I2\nttRp359\nsS'Y:VBus21 - CCORSC21'\np360\ng18\n(S'Variable_Type'\n(I2\nttRp361\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np362\ng18\n(S'Variable_Type'\n(I2\nttRp363\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np364\ng18\n(S'Variable_Type'\n(I2\nttRp365\nsS'Y:PMachine126 - CVAZZI37'\np366\ng18\n(S'Variable_Type'\n(I2\nttRp367\nsS'Y:PMachine64 - CCASAM32'\np368\ng18\n(S'Variable_Type'\n(I2\nttRp369\nsS'Y:VBus67 - CCASAM35'\np370\ng18\n(S'Variable_Type'\n(I2\nttRp371\nsS'Y:VBus53 - CBASTI31'\np372\ng18\n(S'Variable_Type'\n(I2\nttRp373\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np374\ng18\n(S'Variable_Type'\n(I2\nttRp375\nsS'Y:VBus61 - CCALVI31'\np376\ng18\n(S'Variable_Type'\n(I2\nttRp377\nsS'Y:VBus93 - COCANA32'\np378\ng18\n(S'Variable_Type'\n(I2\nttRp379\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np380\ng18\n(S'Variable_Type'\n(I2\nttRp381\nsS'Y:VBus104 - CPROPR31'\np382\ng18\n(S'Variable_Type'\n(I2\nttRp383\nsS'Y:VBus48 - CZSSS621'\np384\ng18\n(S'Variable_Type'\n(I2\nttRp385\nsS'Y:PMachine85 - CLORET32'\np386\ng18\n(S'Variable_Type'\n(I2\nttRp387\nsS'Y:VBus74 - CCERVI31'\np388\ng18\n(S'Variable_Type'\n(I2\nttRp389\nsS'X:ProdPV%Pnom'\np390\ng18\n(S'Variable_Type'\n(I2\nttRp391\nsS'Y:VBus89 - CLUCCI34'\np392\ng18\n(S'Variable_Type'\n(I2\nttRp393\nsS'Y:Load 100 - COLETT31'\np394\ng18\n(S'Variable_Type'\n(I2\nttRp395\nsS'Y:PMachine54 - CBASTI32'\np396\ng18\n(S'Variable_Type'\n(I2\nttRp397\nsS'Y:VBus138 - CLUCCI39'\np398\ng18\n(S'Variable_Type'\n(I2\nttRp399\nsS'Y:VBus39 - CSTLUC21'\np400\ng18\n(S'Variable_Type'\n(I2\nttRp401\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np402\ng18\n(S'Variable_Type'\n(I2\nttRp403\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np404\ng18\n(S'Variable_Type'\n(I2\nttRp405\nsS'Y:Load 78 - CFURIA31'\np406\ng18\n(S'Variable_Type'\n(I2\nttRp407\nsS'Y:VBus28 - CLORET21'\np408\ng18\n(S'Variable_Type'\n(I2\nttRp409\nsS'Y:PMachine105 - CPROPR32'\np410\ng18\n(S'Variable_Type'\n(I2\nttRp411\nsS'Y:VBus96 - COCANA35'\np412\ng18\n(S'Variable_Type'\n(I2\nttRp413\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np414\ng18\n(S'Variable_Type'\n(I2\nttRp415\nsS'Y:PMachine18 - CCASAM21'\np416\ng18\n(S'Variable_Type'\n(I2\nttRp417\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np418\ng18\n(S'Variable_Type'\n(I2\nttRp419\nsS'Y:VBus13 - CBIGUG21'\np420\ng18\n(S'Variable_Type'\n(I2\nttRp421\nsS'Y:VBus92 - COCANA31'\np422\ng18\n(S'Variable_Type'\n(I2\nttRp423\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np424\ng18\n(S'Variable_Type'\n(I2\nttRp425\nsS'Y:Load 57 - CBONIF31'\np426\ng18\n(S'Variable_Type'\n(I2\nttRp427\nsS'Y:VBus58 - CBONIF32'\np428\ng18\n(S'Variable_Type'\n(I2\nttRp429\nsS'Y:VBus84 - CLORET31'\np430\ng18\n(S'Variable_Type'\n(I2\nttRp431\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np432\ng18\n(S'Variable_Type'\n(I2\nttRp433\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np434\ng18\n(S'Variable_Type'\n(I2\nttRp435\nsS'Y:VBus97 - COCANA36'\np436\ng18\n(S'Variable_Type'\n(I2\nttRp437\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np438\ng18\n(S'Variable_Type'\n(I2\nttRp439\nsS'Y:VBus79 - CFURIA32'\np440\ng18\n(S'Variable_Type'\n(I2\nttRp441\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np442\ng18\n(S'Variable_Type'\n(I2\nttRp443\nsS'Y:Load 110 - CSTLUC31'\np444\ng18\n(S'Variable_Type'\n(I2\nttRp445\nsS'Y:VBus80 - CGHISO31'\np446\ng18\n(S'Variable_Type'\n(I2\nttRp447\nsS'Y:PMachine114 - CSOVEN31'\np448\ng18\n(S'Variable_Type'\n(I2\nttRp449\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np450\ng18\n(S'Variable_Type'\n(I2\nttRp451\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np452\ng18\n(S'Variable_Type'\n(I2\nttRp453\nsS'Y:PMachine93 - COCANA32'\np454\ng18\n(S'Variable_Type'\n(I2\nttRp455\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np456\ng18\n(S'Variable_Type'\n(I2\nttRp457\nsS'Y:VBus87 - CLUCCI32'\np458\ng18\n(S'Variable_Type'\n(I2\nttRp459\nsS'Y:VBus62 - CCALVI32'\np460\ng18\n(S'Variable_Type'\n(I2\nttRp461\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np462\ng18\n(S'Variable_Type'\n(I2\nttRp463\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np464\ng18\n(S'Variable_Type'\n(I2\nttRp465\nsS'Y:VBus81 - CGHISO32'\np466\ng18\n(S'Variable_Type'\n(I2\nttRp467\nsS'Y:PMachine63 - CCASAM31'\np468\ng18\n(S'Variable_Type'\n(I2\nttRp469\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np470\ng18\n(S'Variable_Type'\n(I2\nttRp471\nsS'Y:VBus86 - CLUCCI31'\np472\ng18\n(S'Variable_Type'\n(I2\nttRp473\nsS'X:Load(pu)'\np474\ng18\n(S'Variable_Type'\n(I2\nttRp475\nsS'Y:VBus95 - COCANA34'\np476\ng18\n(S'Variable_Type'\n(I2\nttRp477\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np478\ng18\n(S'Variable_Type'\n(I2\nttRp479\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np480\ng18\n(S'Variable_Type'\n(I2\nttRp481\nsS'Y:Load 95 - COCANA34'\np482\ng18\n(S'Variable_Type'\n(I2\nttRp483\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np484\ng18\n(S'Variable_Type'\n(I2\nttRp485\nsS'Y:PMachine90 - CMOROS31'\np486\ng18\n(S'Variable_Type'\n(I2\nttRp487\nsS'Y:Load 101 - CPIETR31'\np488\ng18\n(S'Variable_Type'\n(I2\nttRp489\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np490\ng18\n(S'Variable_Type'\n(I2\nttRp491\nsS'Y:PMachine132 - CVAZZI313'\np492\ng18\n(S'Variable_Type'\n(I2\nttRp493\nsS'Y:VBus125 - CVAZZI36'\np494\ng18\n(S'Variable_Type'\n(I2\nttRp495\nsS'Y:VBus135 - CLUCCI36'\np496\ng18\n(S'Variable_Type'\n(I2\nttRp497\nsS'Y:VBus47 - CVAZZI21'\np498\ng18\n(S'Variable_Type'\n(I2\nttRp499\nsS'Y:VBus94 - COCANA33'\np500\ng18\n(S'Variable_Type'\n(I2\nttRp501\nsS'Y:VBus17 - CCALVI21'\np502\ng18\n(S'Variable_Type'\n(I2\nttRp503\nsS'Y:VBus36 - CPROPR21'\np504\ng18\n(S'Variable_Type'\n(I2\nttRp505\nsS'Y:Load 90 - CMOROS31'\np506\ng18\n(S'Variable_Type'\n(I2\nttRp507\nsS'Y:VBus120 - CVAZZI31'\np508\ng18\n(S'Variable_Type'\n(I2\nttRp509\nsS'Y:VBus52 - CASPRE32'\np510\ng18\n(S'Variable_Type'\n(I2\nttRp511\nsS'Y:VBus25 - CFURIA22'\np512\ng18\n(S'Variable_Type'\n(I2\nttRp513\nsS'Y:Load 76 - CCORTE31'\np514\ng18\n(S'Variable_Type'\n(I2\nttRp515\nsS'Y:PMachine69 - CCASAM37'\np516\ng18\n(S'Variable_Type'\n(I2\nttRp517\nsS'Y:Load 74 - CCERVI31'\np518\ng18\n(S'Variable_Type'\n(I2\nttRp519\nsS'Y:PMachine92 - COCANA31'\np520\ng18\n(S'Variable_Type'\n(I2\nttRp521\nsS'Y:PMachine102 - CPORTO31'\np522\ng18\n(S'Variable_Type'\n(I2\nttRp523\nsS'Y:PMachine122 - CVAZZI33'\np524\ng18\n(S'Variable_Type'\n(I2\nttRp525\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np526\ng18\n(S'Variable_Type'\n(I2\nttRp527\nsS'Y:PMachine77 - CCORTE32'\np528\ng18\n(S'Variable_Type'\n(I2\nttRp529\nsS'Y:NbeTension'\np530\ng18\n(S'Variable_Type'\n(I2\nttRp531\nsS'Y:VBus126 - CVAZZI37'\np532\ng18\n(S'Variable_Type'\n(I2\nttRp533\nsS'Y:PMachine60 - CCALDA32'\np534\ng18\n(S'Variable_Type'\n(I2\nttRp535\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np536\ng18\n(S'Variable_Type'\n(I2\nttRp537\nsS'Y:VBus20 - CCERVI21'\np538\ng18\n(S'Variable_Type'\n(I2\nttRp539\nsS'Y:VBus119 - CTRAVO31'\np540\ng18\n(S'Variable_Type'\n(I2\nttRp541\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np542\ng18\n(S'Variable_Type'\n(I2\nttRp543\nsS'Y:VBus139 - CLUCCI310'\np544\ng18\n(S'Variable_Type'\n(I2\nttRp545\nsS'Y:VBus106 - CRIZZA31'\np546\ng18\n(S'Variable_Type'\n(I2\nttRp547\nsS'Y:PMachine66 - CCASAM34'\np548\ng18\n(S'Variable_Type'\n(I2\nttRp549\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np550\ng18\n(S'Variable_Type'\n(I2\nttRp551\nsS'Y:VBus136 - CLUCCI37'\np552\ng18\n(S'Variable_Type'\n(I2\nttRp553\nsS'Y:VBus90 - CMOROS31'\np554\ng18\n(S'Variable_Type'\n(I2\nttRp555\nsS'X:lineOff#'\np556\ng18\n(S'Variable_Type'\n(I2\nttRp557\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np558\ng18\n(S'Variable_Type'\n(I2\nttRp559\nsS'Y:VBus108 - CSAGON31'\np560\ng18\n(S'Variable_Type'\n(I2\nttRp561\nsS'Y:VBus137 - CLUCCI38'\np562\ng18\n(S'Variable_Type'\n(I2\nttRp563\nsS'Y:VBus130 - CVAZZI311'\np564\ng18\n(S'Variable_Type'\n(I2\nttRp565\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np566\ng18\n(S'Variable_Type'\n(I2\nttRp567\nsS'Y:VBus46 - CTRAVO21'\np568\ng18\n(S'Variable_Type'\n(I2\nttRp569\nsS'Y:VBus113 - CSAMPO32'\np570\ng18\n(S'Variable_Type'\n(I2\nttRp571\nsS'Y:PMachine133 - CVAZZI314'\np572\ng18\n(S'Variable_Type'\n(I2\nttRp573\nsS'Y:PMachine65 - CCASAM33'\np574\ng18\n(S'Variable_Type'\n(I2\nttRp575\nsS'Y:VBus78 - CFURIA31'\np576\ng18\n(S'Variable_Type'\n(I2\nttRp577\nsS'Y:VBus26 - CGHISO21'\np578\ng18\n(S'Variable_Type'\n(I2\nttRp579\nsS'Y:VBus121 - CVAZZI32'\np580\ng18\n(S'Variable_Type'\n(I2\nttRp581\nsS'Y:PMachine81 - CGHISO32'\np582\ng18\n(S'Variable_Type'\n(I2\nttRp583\nsS'Y:PMachine97 - COCANA36'\np584\ng18\n(S'Variable_Type'\n(I2\nttRp585\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np586\ng18\n(S'Variable_Type'\n(I2\nttRp587\nsS'Y:PMachine83 - CILERO32'\np588\ng18\n(S'Variable_Type'\n(I2\nttRp589\nsS'Y:VBus83 - CILERO32'\np590\ng18\n(S'Variable_Type'\n(I2\nttRp591\nsS'Y:VBus66 - CCASAM34'\np592\ng18\n(S'Variable_Type'\n(I2\nttRp593\nsS'Y:PMachine1 - CBONIF11'\np594\ng18\n(S'Variable_Type'\n(I2\nttRp595\nsS'Y:VBus111 - CSTMAR31'\np596\ng18\n(S'Variable_Type'\n(I2\nttRp597\nsS'Y:VBus124 - CVAZZI35'\np598\ng18\n(S'Variable_Type'\n(I2\nttRp599\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np600\ng18\n(S'Variable_Type'\n(I2\nttRp601\nsS'Y:PMachine131 - CVAZZI312'\np602\ng18\n(S'Variable_Type'\n(I2\nttRp603\nsS'Y:VBus44 - CTAGLI21'\np604\ng18\n(S'Variable_Type'\n(I2\nttRp605\nsS'Y:VBus88 - CLUCCI33'\np606\ng18\n(S'Variable_Type'\n(I2\nttRp607\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np608\ng18\n(S'Variable_Type'\n(I2\nttRp609\nsS'Y:VBus38 - CSAGON21'\np610\ng18\n(S'Variable_Type'\n(I2\nttRp611\nsS'Y:VBus29 - CLUCCI21'\np612\ng18\n(S'Variable_Type'\n(I2\nttRp613\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np614\ng18\n(S'Variable_Type'\n(I2\nttRp615\nsS'Y:VBus110 - CSTLUC31'\np616\ng18\n(S'Variable_Type'\n(I2\nttRp617\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np618\ng18\n(S'Variable_Type'\n(I2\nttRp619\nssS'metas'\np620\n(dp621\nsS'values'\np622\n(dp623\nS'HighlightedAttribute'\np624\n(I3\nI-2\ntp625\nssS'time'\np626\nF1370016685.8180001\nsba(iOWContexts\nContext\np627\n(dp628\ng622\n(dp629\nS'HighlightedAttribute'\np630\n(I13\nI-2\ntp631\nssg15\n(dp632\nS'Y:PMachine134 - CLUCCI35'\np633\ng18\n(S'Variable_Type'\n(I2\nttRp634\nsS'Y:VBus77 - CCORTE32'\np635\ng18\n(S'Variable_Type'\n(I2\nttRp636\nsS'Y:VBus134 - CLUCCI35'\np637\ng18\n(S'Variable_Type'\n(I2\nttRp638\nsS'Y:VBus109 - CSAGON32'\np639\ng18\n(S'Variable_Type'\n(I2\nttRp640\nsS'Y:VBus102 - CPORTO31'\np641\ng18\n(S'Variable_Type'\n(I2\nttRp642\nsS'Y:VBus18 - CCASAM21'\np643\ng18\n(S'Variable_Type'\n(I2\nttRp644\nsS'Y:VBus114 - CSOVEN31'\np645\ng18\n(S'Variable_Type'\n(I2\nttRp646\nsS'Y:VBus83 - CILERO32'\np647\ng18\n(S'Variable_Type'\n(I2\nttRp648\nsS'Y:VBus117 - CTOLLA32'\np649\ng18\n(S'Variable_Type'\n(I2\nttRp650\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np651\ng18\n(S'Variable_Type'\n(I2\nttRp652\nsS'Y:PMachine87 - CLUCCI32'\np653\ng18\n(S'Variable_Type'\n(I2\nttRp654\nsS'Y:PMachine113 - CSAMPO32'\np655\ng18\n(S'Variable_Type'\n(I2\nttRp656\nsS'Y:Load 84 - CLORET31'\np657\ng18\n(S'Variable_Type'\n(I2\nttRp658\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np659\ng18\n(S'Variable_Type'\n(I2\nttRp660\nsS'Y:Load 80 - CGHISO31'\np661\ng18\n(S'Variable_Type'\n(I2\nttRp662\nsS'Y:PMachine125 - CVAZZI36'\np663\ng18\n(S'Variable_Type'\n(I2\nttRp664\nsS'Y:VBus116 - CTOLLA31'\np665\ng18\n(S'Variable_Type'\n(I2\nttRp666\nsS'Y:PMachine88 - CLUCCI33'\np667\ng18\n(S'Variable_Type'\n(I2\nttRp668\nsS'Y:PMachine124 - CVAZZI35'\np669\ng18\n(S'Variable_Type'\n(I2\nttRp670\nsS'Y:PMachine111 - CSTMAR31'\np671\ng18\n(S'Variable_Type'\n(I2\nttRp672\nsS'Y:NbeTransit'\np673\ng18\n(S'Variable_Type'\n(I2\nttRp674\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np675\ng18\n(S'Variable_Type'\n(I2\nttRp676\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np677\ng18\n(S'Variable_Type'\n(I2\nttRp678\nsS'Y:PMachine130 - CVAZZI311'\np679\ng18\n(S'Variable_Type'\n(I2\nttRp680\nsS'Y:PMachine127 - CVAZZI38'\np681\ng18\n(S'Variable_Type'\n(I2\nttRp682\nsS'Y:VBus131 - CVAZZI312'\np683\ng18\n(S'Variable_Type'\n(I2\nttRp684\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np685\ng18\n(S'Variable_Type'\n(I2\nttRp686\nsS'Y:PMachine123 - CVAZZI34'\np687\ng18\n(S'Variable_Type'\n(I2\nttRp688\nsS'Y:VBus118 - CTOLLA33'\np689\ng18\n(S'Variable_Type'\n(I2\nttRp690\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np691\ng18\n(S'Variable_Type'\n(I2\nttRp692\nsS'Y:PMachine58 - CBONIF32'\np693\ng18\n(S'Variable_Type'\n(I2\nttRp694\nsS'Y:VBus90 - CMOROS31'\np695\ng18\n(S'Variable_Type'\n(I2\nttRp696\nsS'Y:Load 104 - CPROPR31'\np697\ng18\n(S'Variable_Type'\n(I2\nttRp698\nsS'Y:PMachine30 - CLUCCI22'\np699\ng18\n(S'Variable_Type'\n(I2\nttRp700\nsS'Y:VBus100 - COLETT31'\np701\ng18\n(S'Variable_Type'\n(I2\nttRp702\nsS'Y:PProdTot'\np703\ng18\n(S'Variable_Type'\n(I2\nttRp704\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np705\ng18\n(S'Variable_Type'\n(I2\nttRp706\nsS'Y:VBus57 - CBONIF31'\np707\ng18\n(S'Variable_Type'\n(I2\nttRp708\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np709\ng18\n(S'Variable_Type'\n(I2\nttRp710\nsS'Y:PMachine131 - CVAZZI312'\np711\ng18\n(S'Variable_Type'\n(I2\nttRp712\nsS'Y:PMachine109 - CSAGON32'\np713\ng18\n(S'Variable_Type'\n(I2\nttRp714\nsS'Y:PMachine135 - CLUCCI36'\np715\ng18\n(S'Variable_Type'\n(I2\nttRp716\nsS'Y:VBus30 - CLUCCI22'\np717\ng18\n(S'Variable_Type'\n(I2\nttRp718\nsS'Y:VBus122 - CVAZZI33'\np719\ng18\n(S'Variable_Type'\n(I2\nttRp720\nsS'Y:VBus22 - CCORTE21'\np721\ng18\n(S'Variable_Type'\n(I2\nttRp722\nsS'Y:PMachine89 - CLUCCI34'\np723\ng18\n(S'Variable_Type'\n(I2\nttRp724\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np725\ng18\n(S'Variable_Type'\n(I2\nttRp726\nsS'Y:PMachine107 - CRIZZA32'\np727\ng18\n(S'Variable_Type'\n(I2\nttRp728\nsS'Y:VBus16 - CCALDA21'\np729\ng18\n(S'Variable_Type'\n(I2\nttRp730\nsS'Y:Load 102 - CPORTO31'\np731\ng18\n(S'Variable_Type'\n(I2\nttRp732\nsS'Y:VBus107 - CRIZZA32'\np733\ng18\n(S'Variable_Type'\n(I2\nttRp734\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np735\ng18\n(S'Variable_Type'\n(I2\nttRp736\nsS'Y:VBus41 - CSAMPO21'\np737\ng18\n(S'Variable_Type'\n(I2\nttRp738\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np739\ng18\n(S'Variable_Type'\n(I2\nttRp740\nsS'Y:VBus34 - CPIETR21'\np741\ng18\n(S'Variable_Type'\n(I2\nttRp742\nsS'Y:Load 108 - CSAGON31'\np743\ng18\n(S'Variable_Type'\n(I2\nttRp744\nsS'Y:VBus56 - CBIGUG32'\np745\ng18\n(S'Variable_Type'\n(I2\nttRp746\nsS'Y:PMachine42 - CSISCO21'\np747\ng18\n(S'Variable_Type'\n(I2\nttRp748\nsS'Y:PMachine138 - CLUCCI39'\np749\ng18\n(S'Variable_Type'\n(I2\nttRp750\nsS'Y:PMachine112 - CSAMPO31'\np751\ng18\n(S'Variable_Type'\n(I2\nttRp752\nsS'Y:VBus105 - CPROPR32'\np753\ng18\n(S'Variable_Type'\n(I2\nttRp754\nsS'Y:VBus1 - CBONIF11'\np755\ng18\n(S'Variable_Type'\n(I2\nttRp756\nsS'Y:VBus12 - CBASTI21'\np757\ng18\n(S'Variable_Type'\n(I2\nttRp758\nsS'Y:PMachine129 - CVAZZI310'\np759\ng18\n(S'Variable_Type'\n(I2\nttRp760\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np761\ng18\n(S'Variable_Type'\n(I2\nttRp762\nsS'Y:VBus35 - CPORTO21'\np763\ng18\n(S'Variable_Type'\n(I2\nttRp764\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np765\ng18\n(S'Variable_Type'\n(I2\nttRp766\nsS'Y:VBus54 - CBASTI32'\np767\ng18\n(S'Variable_Type'\n(I2\nttRp768\nsS'Y:VBus69 - CCASAM37'\np769\ng18\n(S'Variable_Type'\n(I2\nttRp770\nsS'Y:VBus45 - CTOLLA21'\np771\ng18\n(S'Variable_Type'\n(I2\nttRp772\nsS'Y:PMachine115 - CTAGLI31'\np773\ng18\n(S'Variable_Type'\n(I2\nttRp774\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np775\ng18\n(S'Variable_Type'\n(I2\nttRp776\nsS'Y:VBus43 - CSOVEN21'\np777\ng18\n(S'Variable_Type'\n(I2\nttRp778\nsS'Y:VBus76 - CCORTE31'\np779\ng18\n(S'Variable_Type'\n(I2\nttRp780\nsS'Y:VBus75 - CCORSC31'\np781\ng18\n(S'Variable_Type'\n(I2\nttRp782\nsS'Y:PMachine78 - CFURIA31'\np783\ng18\n(S'Variable_Type'\n(I2\nttRp784\nsS'Y:VBus127 - CVAZZI38'\np785\ng18\n(S'Variable_Type'\n(I2\nttRp786\nsS'Y:VBus115 - CTAGLI31'\np787\ng18\n(S'Variable_Type'\n(I2\nttRp788\nsS'Y:Load 61 - CCALVI31'\np789\ng18\n(S'Variable_Type'\n(I2\nttRp790\nsS'Y:VBus55 - CBIGUG31'\np791\ng18\n(S'Variable_Type'\n(I2\nttRp792\nsS'Y:Load 42 - CSISCO21'\np793\ng18\n(S'Variable_Type'\n(I2\nttRp794\nsS'Y:VBus72 - CCASTI31'\np795\ng18\n(S'Variable_Type'\n(I2\nttRp796\nsS'Y:Load 37 - CRIZZA21'\np797\ng18\n(S'Variable_Type'\n(I2\nttRp798\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np799\ng18\n(S'Variable_Type'\n(I2\nttRp800\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np801\ng18\n(S'Variable_Type'\n(I2\nttRp802\nsS'Y:PMachine137 - CLUCCI38'\np803\ng18\n(S'Variable_Type'\n(I2\nttRp804\nsS'Y:PMachine67 - CCASAM35'\np805\ng18\n(S'Variable_Type'\n(I2\nttRp806\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np807\ng18\n(S'Variable_Type'\n(I2\nttRp808\nsS'Y:VBus31 - CMOROS21'\np809\ng18\n(S'Variable_Type'\n(I2\nttRp810\nsS'Y:VBus103 - CPORTO32'\np811\ng18\n(S'Variable_Type'\n(I2\nttRp812\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np813\ng18\n(S'Variable_Type'\n(I2\nttRp814\nsS'Y:PMachine14 - CBONIF21'\np815\ng18\n(S'Variable_Type'\n(I2\nttRp816\nsS'Y:PMachine72 - CCASTI31'\np817\ng18\n(S'Variable_Type'\n(I2\nttRp818\nsS'Y:VBus27 - CILERO21'\np819\ng18\n(S'Variable_Type'\n(I2\nttRp820\nsS'Y:PMachine75 - CCORSC31'\np821\ng18\n(S'Variable_Type'\n(I2\nttRp822\nsS'Y:Load 51 - CASPRE31'\np823\ng18\n(S'Variable_Type'\n(I2\nttRp824\nsS'Y:VBus51 - CASPRE31'\np825\ng18\n(S'Variable_Type'\n(I2\nttRp826\nsS'Y:PMachine94 - COCANA33'\np827\ng18\n(S'Variable_Type'\n(I2\nttRp828\nsS'Y:PMachine126 - CVAZZI37'\np829\ng18\n(S'Variable_Type'\n(I2\nttRp830\nsS'Y:Load 86 - CLUCCI31'\np831\ng18\n(S'Variable_Type'\n(I2\nttRp832\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np833\ng18\n(S'Variable_Type'\n(I2\nttRp834\nsS'Y:PMachine104 - CPROPR31'\np835\ng18\n(S'Variable_Type'\n(I2\nttRp836\nsS'Y:VBus128 - CVAZZI39'\np837\ng18\n(S'Variable_Type'\n(I2\nttRp838\nsS'Y:PMachine136 - CLUCCI37'\np839\ng18\n(S'Variable_Type'\n(I2\nttRp840\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np841\ng18\n(S'Variable_Type'\n(I2\nttRp842\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np843\ng18\n(S'Variable_Type'\n(I2\nttRp844\nsS'Y:PMachine29 - CLUCCI21'\np845\ng18\n(S'Variable_Type'\n(I2\nttRp846\nsS'Y:VBus42 - CSISCO21'\np847\ng18\n(S'Variable_Type'\n(I2\nttRp848\nsS'Y:Load 110 - CSTLUC31'\np849\ng18\n(S'Variable_Type'\n(I2\nttRp850\nsS'Y:VBus14 - CBONIF21'\np851\ng18\n(S'Variable_Type'\n(I2\nttRp852\nsS'Y:VBus73 - CCASTI32'\np853\ng18\n(S'Variable_Type'\n(I2\nttRp854\nsS'Y:VBus64 - CCASAM32'\np855\ng18\n(S'Variable_Type'\n(I2\nttRp856\nsS'Y:PMachine128 - CVAZZI39'\np857\ng18\n(S'Variable_Type'\n(I2\nttRp858\nsS'Y:VBus133 - CVAZZI314'\np859\ng18\n(S'Variable_Type'\n(I2\nttRp860\nsS'Y:VBus63 - CCASAM31'\np861\ng18\n(S'Variable_Type'\n(I2\nttRp862\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np863\ng18\n(S'Variable_Type'\n(I2\nttRp864\nsS'Y:%Losses'\np865\ng18\n(S'Variable_Type'\n(I2\nttRp866\nsS'Y:VBus85 - CLORET32'\np867\ng18\n(S'Variable_Type'\n(I2\nttRp868\nsS'Y:Load 59 - CCALDA31'\np869\ng18\n(S'Variable_Type'\n(I2\nttRp870\nsS'Y:VBus129 - CVAZZI310'\np871\ng18\n(S'Variable_Type'\n(I2\nttRp872\nsS'Y:VBus101 - CPIETR31'\np873\ng18\n(S'Variable_Type'\n(I2\nttRp874\nsS'Y:PMachine106 - CRIZZA31'\np875\ng18\n(S'Variable_Type'\n(I2\nttRp876\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np877\ng18\n(S'Variable_Type'\n(I2\nttRp878\nsS'Y:PMachine118 - CTOLLA33'\np879\ng18\n(S'Variable_Type'\n(I2\nttRp880\nsS'Y:VBus19 - CCASTI21'\np881\ng18\n(S'Variable_Type'\n(I2\nttRp882\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np883\ng18\n(S'Variable_Type'\n(I2\nttRp884\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np885\ng18\n(S'Variable_Type'\n(I2\nttRp886\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np887\ng18\n(S'Variable_Type'\n(I2\nttRp888\nsS'Y:Load 115 - CTAGLI31'\np889\ng18\n(S'Variable_Type'\n(I2\nttRp890\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np891\ng18\n(S'Variable_Type'\n(I2\nttRp892\nsS'Y:VBus15 - CBONIF22'\np893\ng18\n(S'Variable_Type'\n(I2\nttRp894\nsS'Y:PMachine47 - CVAZZI21'\np895\ng18\n(S'Variable_Type'\n(I2\nttRp896\nsS'Y:VBus123 - CVAZZI34'\np897\ng18\n(S'Variable_Type'\n(I2\nttRp898\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np899\ng18\n(S'Variable_Type'\n(I2\nttRp900\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np901\ng18\n(S'Variable_Type'\n(I2\nttRp902\nsS'Y:VBus44 - CTAGLI21'\np903\ng18\n(S'Variable_Type'\n(I2\nttRp904\nsS'Y:VBus65 - CCASAM33'\np905\ng18\n(S'Variable_Type'\n(I2\nttRp906\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np907\ng18\n(S'Variable_Type'\n(I2\nttRp908\nsS'Y:PMachine139 - CLUCCI310'\np909\ng18\n(S'Variable_Type'\n(I2\nttRp910\nsS'Y:VBus112 - CSAMPO31'\np911\ng18\n(S'Variable_Type'\n(I2\nttRp912\nsS'Y:VBus68 - CCASAM36'\np913\ng18\n(S'Variable_Type'\n(I2\nttRp914\nsS'Y:Load 55 - CBIGUG31'\np915\ng18\n(S'Variable_Type'\n(I2\nttRp916\nsS'Y:PMachine53 - CBASTI31'\np917\ng18\n(S'Variable_Type'\n(I2\nttRp918\nsS'Y:NbeTransit_0.9-1'\np919\ng18\n(S'Variable_Type'\n(I2\nttRp920\nsS'Y:VBus24 - CFURIA21'\np921\ng18\n(S'Variable_Type'\n(I2\nttRp922\nsS'Y:VBus23 - CCORTE22'\np923\ng18\n(S'Variable_Type'\n(I2\nttRp924\nsS'XProdEolienne%Pnom'\np925\ng18\n(S'Variable_Type'\n(I2\nttRp926\nsS'Y:VBus40 - CSTMAR21'\np927\ng18\n(S'Variable_Type'\n(I2\nttRp928\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np929\ng18\n(S'Variable_Type'\n(I2\nttRp930\nsS'Y:PMachine120 - CVAZZI31'\np931\ng18\n(S'Variable_Type'\n(I2\nttRp932\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np933\ng18\n(S'Variable_Type'\n(I2\nttRp934\nsS'Y:PMachine117 - CTOLLA32'\np935\ng18\n(S'Variable_Type'\n(I2\nttRp936\nsS'Y:VBus89 - CLUCCI34'\np937\ng18\n(S'Variable_Type'\n(I2\nttRp938\nsS'Y:VBus33 - COLETT21'\np939\ng18\n(S'Variable_Type'\n(I2\nttRp940\nsS'Y:VBus32 - COCANA21'\np941\ng18\n(S'Variable_Type'\n(I2\nttRp942\nsS'Y:PMachine121 - CVAZZI32'\np943\ng18\n(S'Variable_Type'\n(I2\nttRp944\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np945\ng18\n(S'Variable_Type'\n(I2\nttRp946\nsS'Y:VBus59 - CCALDA31'\np947\ng18\n(S'Variable_Type'\n(I2\nttRp948\nsS'Y:VBus82 - CILERO31'\np949\ng18\n(S'Variable_Type'\n(I2\nttRp950\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np951\ng18\n(S'Variable_Type'\n(I2\nttRp952\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np953\ng18\n(S'Variable_Type'\n(I2\nttRp954\nsS'Y:VBus37 - CRIZZA21'\np955\ng18\n(S'Variable_Type'\n(I2\nttRp956\nsS'Y:PMachine73 - CCASTI32'\np957\ng18\n(S'Variable_Type'\n(I2\nttRp958\nsS'Y:PMachine86 - CLUCCI31'\np959\ng18\n(S'Variable_Type'\n(I2\nttRp960\nsS'Y:Load 53 - CBASTI31'\np961\ng18\n(S'Variable_Type'\n(I2\nttRp962\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np963\ng18\n(S'Variable_Type'\n(I2\nttRp964\nsS'Y:VBus21 - CCORSC21'\np965\ng18\n(S'Variable_Type'\n(I2\nttRp966\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np967\ng18\n(S'Variable_Type'\n(I2\nttRp968\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np969\ng18\n(S'Variable_Type'\n(I2\nttRp970\nsS'Y:Load 82 - CILERO31'\np971\ng18\n(S'Variable_Type'\n(I2\nttRp972\nsS'Y:PMachine64 - CCASAM32'\np973\ng18\n(S'Variable_Type'\n(I2\nttRp974\nsS'Y:VBus67 - CCASAM35'\np975\ng18\n(S'Variable_Type'\n(I2\nttRp976\nsS'Y:VBus53 - CBASTI31'\np977\ng18\n(S'Variable_Type'\n(I2\nttRp978\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np979\ng18\n(S'Variable_Type'\n(I2\nttRp980\nsS'Y:VBus61 - CCALVI31'\np981\ng18\n(S'Variable_Type'\n(I2\nttRp982\nsS'Y:VBus93 - COCANA32'\np983\ng18\n(S'Variable_Type'\n(I2\nttRp984\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np985\ng18\n(S'Variable_Type'\n(I2\nttRp986\nsS'Y:PMachine92 - COCANA31'\np987\ng18\n(S'Variable_Type'\n(I2\nttRp988\nsS'Y:VBus104 - CPROPR31'\np989\ng18\n(S'Variable_Type'\n(I2\nttRp990\nsS'Y:VBus48 - CZSSS621'\np991\ng18\n(S'Variable_Type'\n(I2\nttRp992\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np993\ng18\n(S'Variable_Type'\n(I2\nttRp994\nsS'Y:VBus74 - CCERVI31'\np995\ng18\n(S'Variable_Type'\n(I2\nttRp996\nsS'Y:VBus36 - CPROPR21'\np997\ng18\n(S'Variable_Type'\n(I2\nttRp998\nsS'Y:Load 100 - COLETT31'\np999\ng18\n(S'Variable_Type'\n(I2\nttRp1000\nsS'Y:PMachine54 - CBASTI32'\np1001\ng18\n(S'Variable_Type'\n(I2\nttRp1002\nsS'Y:VBus138 - CLUCCI39'\np1003\ng18\n(S'Variable_Type'\n(I2\nttRp1004\nsS'Y:VBus39 - CSTLUC21'\np1005\ng18\n(S'Variable_Type'\n(I2\nttRp1006\nsS'Y:PMachine74 - CCERVI31'\np1007\ng18\n(S'Variable_Type'\n(I2\nttRp1008\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np1009\ng18\n(S'Variable_Type'\n(I2\nttRp1010\nsS'Y:Load 78 - CFURIA31'\np1011\ng18\n(S'Variable_Type'\n(I2\nttRp1012\nsS'Y:VBus28 - CLORET21'\np1013\ng18\n(S'Variable_Type'\n(I2\nttRp1014\nsS'Y:PMachine105 - CPROPR32'\np1015\ng18\n(S'Variable_Type'\n(I2\nttRp1016\nsS'Y:VBus96 - COCANA35'\np1017\ng18\n(S'Variable_Type'\n(I2\nttRp1018\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np1019\ng18\n(S'Variable_Type'\n(I2\nttRp1020\nsS'Y:PMachine18 - CCASAM21'\np1021\ng18\n(S'Variable_Type'\n(I2\nttRp1022\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np1023\ng18\n(S'Variable_Type'\n(I2\nttRp1024\nsS'Y:VBus13 - CBIGUG21'\np1025\ng18\n(S'Variable_Type'\n(I2\nttRp1026\nsS'Y:VBus92 - COCANA31'\np1027\ng18\n(S'Variable_Type'\n(I2\nttRp1028\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np1029\ng18\n(S'Variable_Type'\n(I2\nttRp1030\nsS'Y:Load 76 - CCORTE31'\np1031\ng18\n(S'Variable_Type'\n(I2\nttRp1032\nsS'Y:VBus58 - CBONIF32'\np1033\ng18\n(S'Variable_Type'\n(I2\nttRp1034\nsS'Y:VBus84 - CLORET31'\np1035\ng18\n(S'Variable_Type'\n(I2\nttRp1036\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np1037\ng18\n(S'Variable_Type'\n(I2\nttRp1038\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np1039\ng18\n(S'Variable_Type'\n(I2\nttRp1040\nsS'Y:VBus97 - COCANA36'\np1041\ng18\n(S'Variable_Type'\n(I2\nttRp1042\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np1043\ng18\n(S'Variable_Type'\n(I2\nttRp1044\nsS'Y:VBus106 - CRIZZA31'\np1045\ng18\n(S'Variable_Type'\n(I2\nttRp1046\nsS'Y:VBus79 - CFURIA32'\np1047\ng18\n(S'Variable_Type'\n(I2\nttRp1048\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np1049\ng18\n(S'Variable_Type'\n(I2\nttRp1050\nsS'Y:VBus80 - CGHISO31'\np1051\ng18\n(S'Variable_Type'\n(I2\nttRp1052\nsS'Y:PMachine114 - CSOVEN31'\np1053\ng18\n(S'Variable_Type'\n(I2\nttRp1054\nsS'Y:VBus132 - CVAZZI313'\np1055\ng18\n(S'Variable_Type'\n(I2\nttRp1056\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np1057\ng18\n(S'Variable_Type'\n(I2\nttRp1058\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np1059\ng18\n(S'Variable_Type'\n(I2\nttRp1060\nsS'Y:VBus87 - CLUCCI32'\np1061\ng18\n(S'Variable_Type'\n(I2\nttRp1062\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np1063\ng18\n(S'Variable_Type'\n(I2\nttRp1064\nsS'Y:VBus88 - CLUCCI33'\np1065\ng18\n(S'Variable_Type'\n(I2\nttRp1066\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np1067\ng18\n(S'Variable_Type'\n(I2\nttRp1068\nsS'Y:PMachine85 - CLORET32'\np1069\ng18\n(S'Variable_Type'\n(I2\nttRp1070\nsS'Y:VBus81 - CGHISO32'\np1071\ng18\n(S'Variable_Type'\n(I2\nttRp1072\nsS'Y:PMachine63 - CCASAM31'\np1073\ng18\n(S'Variable_Type'\n(I2\nttRp1074\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np1075\ng18\n(S'Variable_Type'\n(I2\nttRp1076\nsS'X:Load(pu)'\np1077\ng18\n(S'Variable_Type'\n(I2\nttRp1078\nsS'Y:NbeTension'\np1079\ng18\n(S'Variable_Type'\n(I2\nttRp1080\nsS'Y:VBus95 - COCANA34'\np1081\ng18\n(S'Variable_Type'\n(I2\nttRp1082\nsS'Y:VBus62 - CCALVI32'\np1083\ng18\n(S'Variable_Type'\n(I2\nttRp1084\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np1085\ng18\n(S'Variable_Type'\n(I2\nttRp1086\nsS'Y:Load 95 - COCANA34'\np1087\ng18\n(S'Variable_Type'\n(I2\nttRp1088\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np1089\ng18\n(S'Variable_Type'\n(I2\nttRp1090\nsS'Y:PMachine90 - CMOROS31'\np1091\ng18\n(S'Variable_Type'\n(I2\nttRp1092\nsS'Y:Load 101 - CPIETR31'\np1093\ng18\n(S'Variable_Type'\n(I2\nttRp1094\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np1095\ng18\n(S'Variable_Type'\n(I2\nttRp1096\nsS'Y:PMachine132 - CVAZZI313'\np1097\ng18\n(S'Variable_Type'\n(I2\nttRp1098\nsS'Y:PMachine65 - CCASAM33'\np1099\ng18\n(S'Variable_Type'\n(I2\nttRp1100\nsS'Y:VBus125 - CVAZZI36'\np1101\ng18\n(S'Variable_Type'\n(I2\nttRp1102\nsS'Y:VBus135 - CLUCCI36'\np1103\ng18\n(S'Variable_Type'\n(I2\nttRp1104\nsS'Y:VBus47 - CVAZZI21'\np1105\ng18\n(S'Variable_Type'\n(I2\nttRp1106\nsS'Y:VBus94 - COCANA33'\np1107\ng18\n(S'Variable_Type'\n(I2\nttRp1108\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np1109\ng18\n(S'Variable_Type'\n(I2\nttRp1110\nsS'Y:VBus17 - CCALVI21'\np1111\ng18\n(S'Variable_Type'\n(I2\nttRp1112\nsS'Y:Load 90 - CMOROS31'\np1113\ng18\n(S'Variable_Type'\n(I2\nttRp1114\nsS'Y:VBus120 - CVAZZI31'\np1115\ng18\n(S'Variable_Type'\n(I2\nttRp1116\nsS'Y:VBus52 - CASPRE32'\np1117\ng18\n(S'Variable_Type'\n(I2\nttRp1118\nsS'Y:VBus25 - CFURIA22'\np1119\ng18\n(S'Variable_Type'\n(I2\nttRp1120\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np1121\ng18\n(S'Variable_Type'\n(I2\nttRp1122\nsS'Y:PMachine69 - CCASAM37'\np1123\ng18\n(S'Variable_Type'\n(I2\nttRp1124\nsS'Y:PConsoTot'\np1125\ng18\n(S'Variable_Type'\n(I2\nttRp1126\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np1127\ng18\n(S'Variable_Type'\n(I2\nttRp1128\nsS'Y:PMachine102 - CPORTO31'\np1129\ng18\n(S'Variable_Type'\n(I2\nttRp1130\nsS'Y:VBus136 - CLUCCI37'\np1131\ng18\n(S'Variable_Type'\n(I2\nttRp1132\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np1133\ng18\n(S'Variable_Type'\n(I2\nttRp1134\nsS'Y:PMachine122 - CVAZZI33'\np1135\ng18\n(S'Variable_Type'\n(I2\nttRp1136\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np1137\ng18\n(S'Variable_Type'\n(I2\nttRp1138\nsS'Y:PMachine77 - CCORTE32'\np1139\ng18\n(S'Variable_Type'\n(I2\nttRp1140\nsS'Y:PMachine116 - CTOLLA31'\np1141\ng18\n(S'Variable_Type'\n(I2\nttRp1142\nsS'Y:VBus126 - CVAZZI37'\np1143\ng18\n(S'Variable_Type'\n(I2\nttRp1144\nsS'Y:PMachine60 - CCALDA32'\np1145\ng18\n(S'Variable_Type'\n(I2\nttRp1146\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np1147\ng18\n(S'Variable_Type'\n(I2\nttRp1148\nsS'Y:VBus20 - CCERVI21'\np1149\ng18\n(S'Variable_Type'\n(I2\nttRp1150\nsS'Y:VBus119 - CTRAVO31'\np1151\ng18\n(S'Variable_Type'\n(I2\nttRp1152\nsS'Y:VBus11 - CASPRE21'\np1153\ng18\n(S'Variable_Type'\n(I2\nttRp1154\nsS'Y:VBus139 - CLUCCI310'\np1155\ng18\n(S'Variable_Type'\n(I2\nttRp1156\nsS'Y:VBus60 - CCALDA32'\np1157\ng18\n(S'Variable_Type'\n(I2\nttRp1158\nsS'Y:PMachine66 - CCASAM34'\np1159\ng18\n(S'Variable_Type'\n(I2\nttRp1160\nsS'Y:PMachine101 - CPIETR31'\np1161\ng18\n(S'Variable_Type'\n(I2\nttRp1162\nsS'Y:PMachine133 - CVAZZI314'\np1163\ng18\n(S'Variable_Type'\n(I2\nttRp1164\nsS'Y:PMachine62 - CCALVI32'\np1165\ng18\n(S'Variable_Type'\n(I2\nttRp1166\nsS'Y:Load 74 - CCERVI31'\np1167\ng18\n(S'Variable_Type'\n(I2\nttRp1168\nsS'X:lineOff#'\np1169\ng18\n(S'Variable_Type'\n(I2\nttRp1170\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np1171\ng18\n(S'Variable_Type'\n(I2\nttRp1172\nsS'Y:VBus108 - CSAGON31'\np1173\ng18\n(S'Variable_Type'\n(I2\nttRp1174\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np1175\ng18\n(S'Variable_Type'\n(I2\nttRp1176\nsS'Y:VBus137 - CLUCCI38'\np1177\ng18\n(S'Variable_Type'\n(I2\nttRp1178\nsS'Y:VBus130 - CVAZZI311'\np1179\ng18\n(S'Variable_Type'\n(I2\nttRp1180\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np1181\ng18\n(S'Variable_Type'\n(I2\nttRp1182\nsS'Y:VBus46 - CTRAVO21'\np1183\ng18\n(S'Variable_Type'\n(I2\nttRp1184\nsS'Y:VBus113 - CSAMPO32'\np1185\ng18\n(S'Variable_Type'\n(I2\nttRp1186\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np1187\ng18\n(S'Variable_Type'\n(I2\nttRp1188\nsS'Y:PMachine68 - CCASAM36'\np1189\ng18\n(S'Variable_Type'\n(I2\nttRp1190\nsS'Y:VBus78 - CFURIA31'\np1191\ng18\n(S'Variable_Type'\n(I2\nttRp1192\nsS'Y:VBus26 - CGHISO21'\np1193\ng18\n(S'Variable_Type'\n(I2\nttRp1194\nsS'Y:VBus121 - CVAZZI32'\np1195\ng18\n(S'Variable_Type'\n(I2\nttRp1196\nsS'Y:PMachine97 - COCANA36'\np1197\ng18\n(S'Variable_Type'\n(I2\nttRp1198\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np1199\ng18\n(S'Variable_Type'\n(I2\nttRp1200\nsS'Y:PMachine83 - CILERO32'\np1201\ng18\n(S'Variable_Type'\n(I2\nttRp1202\nsS'Y:Max%A'\np1203\ng18\n(S'Variable_Type'\n(I2\nttRp1204\nsS'Y:VBus66 - CCASAM34'\np1205\ng18\n(S'Variable_Type'\n(I2\nttRp1206\nsS'Y:PMachine1 - CBONIF11'\np1207\ng18\n(S'Variable_Type'\n(I2\nttRp1208\nsS'Y:VBus111 - CSTMAR31'\np1209\ng18\n(S'Variable_Type'\n(I2\nttRp1210\nsS'Y:VBus124 - CVAZZI35'\np1211\ng18\n(S'Variable_Type'\n(I2\nttRp1212\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np1213\ng18\n(S'Variable_Type'\n(I2\nttRp1214\nsS'Y:VBus29 - CLUCCI21'\np1215\ng18\n(S'Variable_Type'\n(I2\nttRp1216\nsS'Y:PMachine93 - COCANA32'\np1217\ng18\n(S'Variable_Type'\n(I2\nttRp1218\nsS'Y:Load 57 - CBONIF31'\np1219\ng18\n(S'Variable_Type'\n(I2\nttRp1220\nsS'Y:VBus86 - CLUCCI31'\np1221\ng18\n(S'Variable_Type'\n(I2\nttRp1222\nsS'Y:VBus38 - CSAGON21'\np1223\ng18\n(S'Variable_Type'\n(I2\nttRp1224\nsS'Y:PMachine81 - CGHISO32'\np1225\ng18\n(S'Variable_Type'\n(I2\nttRp1226\nsS'Y:PMachine61 - CCALVI31'\np1227\ng18\n(S'Variable_Type'\n(I2\nttRp1228\nsS'Y:VBus110 - CSTLUC31'\np1229\ng18\n(S'Variable_Type'\n(I2\nttRp1230\nsS'X:ProdPV%Pnom'\np1231\ng18\n(S'Variable_Type'\n(I2\nttRp1232\nssg620\n(dp1233\nsg12\n(lp1234\ng14\nasg626\nF1369744626.543\nsba(iOWContexts\nContext\np1235\n(dp1236\ng12\n(lp1237\nS'orderedDomain'\np1238\nasg15\n(dp1239\nS'%'\ng18\n(S'Variable_Type'\n(I2\nttRp1240\nsS'Data'\np1241\ng18\n(S'Variable_Type'\n(I2\nttRp1242\nssg620\n(dp1243\nsg622\n(dp1244\nS'HighlightedAttribute'\np1245\n(I0\nI-2\ntp1246\nssg626\nF1370011140.273\nsba(iOWContexts\nContext\np1247\n(dp1248\ng12\n(lp1249\ng1238\nasg15\n(dp1250\nS'%'\ng18\n(S'Variable_Type'\n(I2\nttRp1251\nssg620\n(dp1252\nsg622\n(dp1253\ng1245\n(I0\nI-2\ntp1254\nssg626\nF1370011050.6600001\nsba(iOWContexts\nContext\np1255\n(dp1256\ng12\n(lp1257\ng1238\nasg15\n(dp1258\nS'%'\ng18\n(S'Variable_Type'\n(I2\nttRp1259\nsS'Tot'\np1260\ng18\n(S'Variable_Type'\n(I2\nttRp1261\nssg620\n(dp1262\nsg622\n(dp1263\ng1245\n(I1\nI-2\ntp1264\nssg626\nF1370010842.2869999\nsba(iOWContexts\nContext\np1265\n(dp1266\ng12\n(lp1267\ng1238\nasg15\n(dp1268\nS'%'\ng18\n(S'Variable_Type'\n(I2\nttRp1269\nsS'Val'\np1270\ng18\n(S'Variable_Type'\n(I2\nttRp1271\nsS'Tot'\np1272\ng18\n(S'Variable_Type'\n(I2\nttRp1273\nssg620\n(dp1274\nsg622\n(dp1275\ng1245\n(I2\nI-2\ntp1276\nssg626\nF1370010752.7349999\nsba(iOWContexts\nContext\np1277\n(dp1278\ng12\n(lp1279\ng1238\nasg15\n(dp1280\nS'0.572136575'\np1281\ng18\n(S'Variable_Type'\n(I2\nttRp1282\nsS'58414'\np1283\ng18\n(S'Variable_Type'\n(I2\nttRp1284\nssg620\n(dp1285\nsg622\n(dp1286\ng1245\n(I0\nI-2\ntp1287\nssg626\nF1370009955.477\nsba(iOWContexts\nContext\np1288\n(dp1289\ng12\n(lp1290\ng1238\nasg15\n(dp1291\nS'Y15:%RateA 18-44'\np1292\ng18\n(S'Variable_Type'\n(I2\nttRp1293\nsS'Y36:%RateA 29-30'\np1294\ng18\n(S'Variable_Type'\n(I1\nttRp1295\nsS'Y17:%RateA 19-22'\np1296\ng18\n(S'Variable_Type'\n(I2\nttRp1297\nsS'Y56:%RateA 72-73'\np1298\ng18\n(S'Variable_Type'\n(I1\nttRp1299\nsS'Y30:%RateA 25-29'\np1300\ng18\n(S'Variable_Type'\n(I2\nttRp1301\nsS'Y39:%RateA 32-45'\np1302\ng18\n(S'Variable_Type'\n(I2\nttRp1303\nsS'Y52:%RateA 55-56'\np1304\ng18\n(S'Variable_Type'\n(I1\nttRp1305\nsS'X:Load(pu)'\np1306\ng18\n(S'Variable_Type'\n(I2\nttRp1307\nsS'Y55:%RateA 61-62'\np1308\ng18\n(S'Variable_Type'\n(I1\nttRp1309\nsS'Y:Load 115'\np1310\ng18\n(S'Variable_Type'\n(I2\nttRp1311\nsS'Y1:%RateA 11-47'\np1312\ng18\n(S'Variable_Type'\n(I2\nttRp1313\nsS'Y13:%RateA 18-30'\np1314\ng18\n(S'Variable_Type'\n(I2\nttRp1315\nsS'Y2:%RateA 12-24'\np1316\ng18\n(S'Variable_Type'\n(I2\nttRp1317\nsS'Y12:%RateA 18-30'\np1318\ng18\n(S'Variable_Type'\n(I2\nttRp1319\nsS'Y23:%RateA 22-31'\np1320\ng18\n(S'Variable_Type'\n(I2\nttRp1321\nsS'Y34:%RateA 28-38'\np1322\ng18\n(S'Variable_Type'\n(I2\nttRp1323\nsS'Y31:%RateA 26-41'\np1324\ng18\n(S'Variable_Type'\n(I2\nttRp1325\nsS'Y11:%RateA 17-27'\np1326\ng18\n(S'Variable_Type'\n(I2\nttRp1327\nsS'Y20:%RateA 20-44'\np1328\ng18\n(S'Variable_Type'\n(I2\nttRp1329\nsS'Y43:%RateA 35-37'\np1330\ng18\n(S'Variable_Type'\n(I2\nttRp1331\nsS'Y54:%RateA 59-60'\np1332\ng18\n(S'Variable_Type'\n(I1\nttRp1333\nsS'Y38:%RateA 32-45'\np1334\ng18\n(S'Variable_Type'\n(I2\nttRp1335\nsS'Y18:%RateA 19-27'\np1336\ng18\n(S'Variable_Type'\n(I2\nttRp1337\nsS'Y49:%RateA 40-48'\np1338\ng18\n(S'Variable_Type'\n(I2\nttRp1339\nsS'Y63:%RateA 95-96'\np1340\ng18\n(S'Variable_Type'\n(I1\nttRp1341\nsS'Y68:%RateA 112-113'\np1342\ng18\n(S'Variable_Type'\n(I1\nttRp1343\nsS'Y7:%RateA 14-35'\np1344\ng18\n(S'Variable_Type'\n(I2\nttRp1345\nsS'Y25:%RateA 23-41'\np1346\ng18\n(S'Variable_Type'\n(I2\nttRp1347\nsS'Y19:%RateA 20-26'\np1348\ng18\n(S'Variable_Type'\n(I2\nttRp1349\nsS'Y9:%RateA 16-32'\np1350\ng18\n(S'Variable_Type'\n(I2\nttRp1351\nsS'Y41:%RateA 32-48'\np1352\ng18\n(S'Variable_Type'\n(I2\nttRp1353\nsS'Y16:%RateA 19-21'\np1354\ng18\n(S'Variable_Type'\n(I2\nttRp1355\nsS'Y61:%RateA 84-85'\np1356\ng18\n(S'Variable_Type'\n(I1\nttRp1357\nsS'Y50:%RateA 51-52'\np1358\ng18\n(S'Variable_Type'\n(I1\nttRp1359\nsS'Y24:%RateA 23-32'\np1360\ng18\n(S'Variable_Type'\n(I2\nttRp1361\nsS'Y66:%RateA 106-107'\np1362\ng18\n(S'Variable_Type'\n(I1\nttRp1363\nsS'Y4:%RateA 13-25'\np1364\ng18\n(S'Variable_Type'\n(I2\nttRp1365\nsS'Y27:%RateA 24-33'\np1366\ng18\n(S'Variable_Type'\n(I2\nttRp1367\nsS'Y35:%RateA 28-47'\np1368\ng18\n(S'Variable_Type'\n(I2\nttRp1369\nsS'Y28:%RateA 24-42'\np1370\ng18\n(S'Variable_Type'\n(I2\nttRp1371\nsS'Y8:%RateA 15-35'\np1372\ng18\n(S'Variable_Type'\n(I2\nttRp1373\nsS'Y14:%RateA 18-31'\np1374\ng18\n(S'Variable_Type'\n(I2\nttRp1375\nsS'Y26:%RateA 24-25'\np1376\ng18\n(S'Variable_Type'\n(I1\nttRp1377\nsS'Y48:%RateA 39-46'\np1378\ng18\n(S'Variable_Type'\n(I2\nttRp1379\nsS'Y33:%RateA 27-33'\np1380\ng18\n(S'Variable_Type'\n(I2\nttRp1381\nsS'Y47:%RateA 38-43'\np1382\ng18\n(S'Variable_Type'\n(I2\nttRp1383\nsS'Y64:%RateA 102-103'\np1384\ng18\n(S'Variable_Type'\n(I1\nttRp1385\nsS'Y51:%RateA 53-54'\np1386\ng18\n(S'Variable_Type'\n(I1\nttRp1387\nsS'Y67:%RateA 108-109'\np1388\ng18\n(S'Variable_Type'\n(I1\nttRp1389\nsS'Y60:%RateA 82-83'\np1390\ng18\n(S'Variable_Type'\n(I1\nttRp1391\nsS'Y62:%RateA 86-87'\np1392\ng18\n(S'Variable_Type'\n(I1\nttRp1393\nsS'Y59:%RateA 80-81'\np1394\ng18\n(S'Variable_Type'\n(I1\nttRp1395\nsS'Y53:%RateA 57-58'\np1396\ng18\n(S'Variable_Type'\n(I1\nttRp1397\nsS'Y10:%RateA 16-47'\np1398\ng18\n(S'Variable_Type'\n(I2\nttRp1399\nsS'Y3:%RateA 12-24'\np1400\ng18\n(S'Variable_Type'\n(I2\nttRp1401\nsS'Y32:%RateA 26-46'\np1402\ng18\n(S'Variable_Type'\n(I2\nttRp1403\nsS'Y22:%RateA 22-23'\np1404\ng18\n(S'Variable_Type'\n(I1\nttRp1405\nsS'Y37:%RateA 32-34'\np1406\ng18\n(S'Variable_Type'\n(I2\nttRp1407\nsS'Y21:%RateA 21-43'\np1408\ng18\n(S'Variable_Type'\n(I2\nttRp1409\nsS'Y0:%RateA 11-28'\np1410\ng18\n(S'Variable_Type'\n(I2\nttRp1411\nsS'Y46:%RateA 36-48'\np1412\ng18\n(S'Variable_Type'\n(I2\nttRp1413\nsS'Y45:%RateA 36-37'\np1414\ng18\n(S'Variable_Type'\n(I2\nttRp1415\nsS'Y65:%RateA 104-105'\np1416\ng18\n(S'Variable_Type'\n(I1\nttRp1417\nsS'Y5:%RateA 13-29'\np1418\ng18\n(S'Variable_Type'\n(I2\nttRp1419\nsS'Y40:%RateA 32-47'\np1420\ng18\n(S'Variable_Type'\n(I2\nttRp1421\nsS'Y6:%RateA 14-15'\np1422\ng18\n(S'Variable_Type'\n(I1\nttRp1423\nsS'Y29:%RateA 25-29'\np1424\ng18\n(S'Variable_Type'\n(I2\nttRp1425\nsS'Y44:%RateA 35-39'\np1426\ng18\n(S'Variable_Type'\n(I2\nttRp1427\nsS'Y58:%RateA 78-79'\np1428\ng18\n(S'Variable_Type'\n(I1\nttRp1429\nsS'Y42:%RateA 34-36'\np1430\ng18\n(S'Variable_Type'\n(I2\nttRp1431\nsS'Y57:%RateA 76-77'\np1432\ng18\n(S'Variable_Type'\n(I1\nttRp1433\nssg620\n(dp1434\nsg622\n(dp1435\ng1245\n(I17\nI-2\ntp1436\nssg626\nF1369933161.6689999\nsba(iOWContexts\nContext\np1437\n(dp1438\ng622\n(dp1439\nS'HighlightedAttribute'\np1440\n(I17\nI-2\ntp1441\nssg15\n(dp1442\nS'Y15:%RateA 18-44'\np1443\ng18\n(S'Variable_Type'\n(I2\nttRp1444\nsS'Y36:%RateA 29-30'\np1445\ng18\n(S'Variable_Type'\n(I1\nttRp1446\nsS'Y17:%RateA 19-22'\np1447\ng18\n(S'Variable_Type'\n(I2\nttRp1448\nsS'Y56:%RateA 72-73'\np1449\ng18\n(S'Variable_Type'\n(I1\nttRp1450\nsS'Y30:%RateA 25-29'\np1451\ng18\n(S'Variable_Type'\n(I2\nttRp1452\nsS'Y39:%RateA 32-45'\np1453\ng18\n(S'Variable_Type'\n(I2\nttRp1454\nsS'Y52:%RateA 55-56'\np1455\ng18\n(S'Variable_Type'\n(I1\nttRp1456\nsS'X:Load(pu)'\np1457\ng18\n(S'Variable_Type'\n(I2\nttRp1458\nsS'Y55:%RateA 61-62'\np1459\ng18\n(S'Variable_Type'\n(I1\nttRp1460\nsS'Y:Load 115'\np1461\ng18\n(S'Variable_Type'\n(I2\nttRp1462\nsS'Y1:%RateA 11-47'\np1463\ng18\n(S'Variable_Type'\n(I2\nttRp1464\nsS'Y13:%RateA 18-30'\np1465\ng18\n(S'Variable_Type'\n(I2\nttRp1466\nsS'Y2:%RateA 12-24'\np1467\ng18\n(S'Variable_Type'\n(I2\nttRp1468\nsS'Y38:%RateA 32-45'\np1469\ng18\n(S'Variable_Type'\n(I2\nttRp1470\nsS'Y48:%RateA 39-46'\np1471\ng18\n(S'Variable_Type'\n(I2\nttRp1472\nsS'Y23:%RateA 22-31'\np1473\ng18\n(S'Variable_Type'\n(I2\nttRp1474\nsS'Y34:%RateA 28-38'\np1475\ng18\n(S'Variable_Type'\n(I2\nttRp1476\nsS'Y31:%RateA 26-41'\np1477\ng18\n(S'Variable_Type'\n(I2\nttRp1478\nsS'Y11:%RateA 17-27'\np1479\ng18\n(S'Variable_Type'\n(I2\nttRp1480\nsS'Y20:%RateA 20-44'\np1481\ng18\n(S'Variable_Type'\n(I2\nttRp1482\nsS'Y47:%RateA 38-43'\np1483\ng18\n(S'Variable_Type'\n(I2\nttRp1484\nsS'Y57:%RateA 76-77'\np1485\ng18\n(S'Variable_Type'\n(I1\nttRp1486\nsS'Y54:%RateA 59-60'\np1487\ng18\n(S'Variable_Type'\n(I1\nttRp1488\nsS'Y12:%RateA 18-30'\np1489\ng18\n(S'Variable_Type'\n(I2\nttRp1490\nsS'Y18:%RateA 19-27'\np1491\ng18\n(S'Variable_Type'\n(I2\nttRp1492\nsS'Y49:%RateA 40-48'\np1493\ng18\n(S'Variable_Type'\n(I2\nttRp1494\nsS'Y63:%RateA 95-96'\np1495\ng18\n(S'Variable_Type'\n(I1\nttRp1496\nsS'Y21:%RateA 21-43'\np1497\ng18\n(S'Variable_Type'\n(I2\nttRp1498\nsS'Y68:%RateA 112-113'\np1499\ng18\n(S'Variable_Type'\n(I1\nttRp1500\nsS'Y25:%RateA 23-41'\np1501\ng18\n(S'Variable_Type'\n(I2\nttRp1502\nsS'Y19:%RateA 20-26'\np1503\ng18\n(S'Variable_Type'\n(I2\nttRp1504\nsS'Y9:%RateA 16-32'\np1505\ng18\n(S'Variable_Type'\n(I2\nttRp1506\nsS'Y41:%RateA 32-48'\np1507\ng18\n(S'Variable_Type'\n(I2\nttRp1508\nsS'Y61:%RateA 84-85'\np1509\ng18\n(S'Variable_Type'\n(I1\nttRp1510\nsS'Y50:%RateA 51-52'\np1511\ng18\n(S'Variable_Type'\n(I1\nttRp1512\nsS'Y40:%RateA 32-47'\np1513\ng18\n(S'Variable_Type'\n(I2\nttRp1514\nsS'Y66:%RateA 106-107'\np1515\ng18\n(S'Variable_Type'\n(I1\nttRp1516\nsS'Y4:%RateA 13-25'\np1517\ng18\n(S'Variable_Type'\n(I2\nttRp1518\nsS'Y27:%RateA 24-33'\np1519\ng18\n(S'Variable_Type'\n(I2\nttRp1520\nsS'Y35:%RateA 28-47'\np1521\ng18\n(S'Variable_Type'\n(I2\nttRp1522\nsS'Y28:%RateA 24-42'\np1523\ng18\n(S'Variable_Type'\n(I2\nttRp1524\nsS'Y53:%RateA 57-58'\np1525\ng18\n(S'Variable_Type'\n(I1\nttRp1526\nsS'Y14:%RateA 18-31'\np1527\ng18\n(S'Variable_Type'\n(I2\nttRp1528\nsS'Y26:%RateA 24-25'\np1529\ng18\n(S'Variable_Type'\n(I1\nttRp1530\nsS'Y16:%RateA 19-21'\np1531\ng18\n(S'Variable_Type'\n(I2\nttRp1532\nsS'Y33:%RateA 27-33'\np1533\ng18\n(S'Variable_Type'\n(I2\nttRp1534\nsS'Y7:%RateA 14-35'\np1535\ng18\n(S'Variable_Type'\n(I2\nttRp1536\nsS'Y64:%RateA 102-103'\np1537\ng18\n(S'Variable_Type'\n(I1\nttRp1538\nsS'Y51:%RateA 53-54'\np1539\ng18\n(S'Variable_Type'\n(I1\nttRp1540\nsS'Y67:%RateA 108-109'\np1541\ng18\n(S'Variable_Type'\n(I1\nttRp1542\nsS'Y60:%RateA 82-83'\np1543\ng18\n(S'Variable_Type'\n(I1\nttRp1544\nsS'Y62:%RateA 86-87'\np1545\ng18\n(S'Variable_Type'\n(I1\nttRp1546\nsS'Y59:%RateA 80-81'\np1547\ng18\n(S'Variable_Type'\n(I1\nttRp1548\nsS'Y8:%RateA 15-35'\np1549\ng18\n(S'Variable_Type'\n(I2\nttRp1550\nsS'Y3:%RateA 12-24'\np1551\ng18\n(S'Variable_Type'\n(I2\nttRp1552\nsS'Y32:%RateA 26-46'\np1553\ng18\n(S'Variable_Type'\n(I2\nttRp1554\nsS'Y22:%RateA 22-23'\np1555\ng18\n(S'Variable_Type'\n(I1\nttRp1556\nsS'Y37:%RateA 32-34'\np1557\ng18\n(S'Variable_Type'\n(I2\nttRp1558\nsS'Y43:%RateA 35-37'\np1559\ng18\n(S'Variable_Type'\n(I2\nttRp1560\nsS'Y0:%RateA 11-28'\np1561\ng18\n(S'Variable_Type'\n(I2\nttRp1562\nsS'Y46:%RateA 36-48'\np1563\ng18\n(S'Variable_Type'\n(I2\nttRp1564\nsS'Y45:%RateA 36-37'\np1565\ng18\n(S'Variable_Type'\n(I2\nttRp1566\nsS'Y65:%RateA 104-105'\np1567\ng18\n(S'Variable_Type'\n(I1\nttRp1568\nsS'Y5:%RateA 13-29'\np1569\ng18\n(S'Variable_Type'\n(I2\nttRp1570\nsS'Y24:%RateA 23-32'\np1571\ng18\n(S'Variable_Type'\n(I2\nttRp1572\nsS'Y6:%RateA 14-15'\np1573\ng18\n(S'Variable_Type'\n(I1\nttRp1574\nsS'Y29:%RateA 25-29'\np1575\ng18\n(S'Variable_Type'\n(I2\nttRp1576\nsS'Y44:%RateA 35-39'\np1577\ng18\n(S'Variable_Type'\n(I2\nttRp1578\nsS'Y58:%RateA 78-79'\np1579\ng18\n(S'Variable_Type'\n(I1\nttRp1580\nsS'Y42:%RateA 34-36'\np1581\ng18\n(S'Variable_Type'\n(I2\nttRp1582\nsS'Y10:%RateA 16-47'\np1583\ng18\n(S'Variable_Type'\n(I2\nttRp1584\nssg620\n(dp1585\nsg12\n(lp1586\nS'orderedDomain'\np1587\nasg626\nF1369933161.6689999\nsba(iOWContexts\nContext\np1588\n(dp1589\ng622\n(dp1590\nS'HighlightedAttribute'\np1591\n(I17\nI-2\ntp1592\nssg15\n(dp1593\nS'Y15:%RateA 18-44'\np1594\ng18\n(S'Variable_Type'\n(I2\nttRp1595\nsS'Y36:%RateA 29-30'\np1596\ng18\n(S'Variable_Type'\n(I1\nttRp1597\nsS'Y17:%RateA 19-22'\np1598\ng18\n(S'Variable_Type'\n(I2\nttRp1599\nsS'Y56:%RateA 72-73'\np1600\ng18\n(S'Variable_Type'\n(I1\nttRp1601\nsS'Y30:%RateA 25-29'\np1602\ng18\n(S'Variable_Type'\n(I2\nttRp1603\nsS'Y39:%RateA 32-45'\np1604\ng18\n(S'Variable_Type'\n(I2\nttRp1605\nsS'Y52:%RateA 55-56'\np1606\ng18\n(S'Variable_Type'\n(I1\nttRp1607\nsS'X:Load(pu)'\np1608\ng18\n(S'Variable_Type'\n(I2\nttRp1609\nsS'Y55:%RateA 61-62'\np1610\ng18\n(S'Variable_Type'\n(I1\nttRp1611\nsS'Y:Load 115'\np1612\ng18\n(S'Variable_Type'\n(I2\nttRp1613\nsS'Y1:%RateA 11-47'\np1614\ng18\n(S'Variable_Type'\n(I2\nttRp1615\nsS'Y13:%RateA 18-30'\np1616\ng18\n(S'Variable_Type'\n(I2\nttRp1617\nsS'Y2:%RateA 12-24'\np1618\ng18\n(S'Variable_Type'\n(I2\nttRp1619\nsS'Y38:%RateA 32-45'\np1620\ng18\n(S'Variable_Type'\n(I2\nttRp1621\nsS'Y48:%RateA 39-46'\np1622\ng18\n(S'Variable_Type'\n(I2\nttRp1623\nsS'Y23:%RateA 22-31'\np1624\ng18\n(S'Variable_Type'\n(I2\nttRp1625\nsS'Y34:%RateA 28-38'\np1626\ng18\n(S'Variable_Type'\n(I2\nttRp1627\nsS'Y31:%RateA 26-41'\np1628\ng18\n(S'Variable_Type'\n(I2\nttRp1629\nsS'Y11:%RateA 17-27'\np1630\ng18\n(S'Variable_Type'\n(I2\nttRp1631\nsS'Y20:%RateA 20-44'\np1632\ng18\n(S'Variable_Type'\n(I2\nttRp1633\nsS'Y47:%RateA 38-43'\np1634\ng18\n(S'Variable_Type'\n(I2\nttRp1635\nsS'Y57:%RateA 76-77'\np1636\ng18\n(S'Variable_Type'\n(I1\nttRp1637\nsS'Y54:%RateA 59-60'\np1638\ng18\n(S'Variable_Type'\n(I1\nttRp1639\nsS'Y12:%RateA 18-30'\np1640\ng18\n(S'Variable_Type'\n(I2\nttRp1641\nsS'Y18:%RateA 19-27'\np1642\ng18\n(S'Variable_Type'\n(I2\nttRp1643\nsS'Y49:%RateA 40-48'\np1644\ng18\n(S'Variable_Type'\n(I2\nttRp1645\nsS'Y63:%RateA 95-96'\np1646\ng18\n(S'Variable_Type'\n(I1\nttRp1647\nsS'Y21:%RateA 21-43'\np1648\ng18\n(S'Variable_Type'\n(I2\nttRp1649\nsS'Y68:%RateA 112-113'\np1650\ng18\n(S'Variable_Type'\n(I1\nttRp1651\nsS'Y25:%RateA 23-41'\np1652\ng18\n(S'Variable_Type'\n(I2\nttRp1653\nsS'Y19:%RateA 20-26'\np1654\ng18\n(S'Variable_Type'\n(I2\nttRp1655\nsS'Y9:%RateA 16-32'\np1656\ng18\n(S'Variable_Type'\n(I2\nttRp1657\nsS'Y41:%RateA 32-48'\np1658\ng18\n(S'Variable_Type'\n(I2\nttRp1659\nsS'Y61:%RateA 84-85'\np1660\ng18\n(S'Variable_Type'\n(I1\nttRp1661\nsS'Y50:%RateA 51-52'\np1662\ng18\n(S'Variable_Type'\n(I1\nttRp1663\nsS'Y40:%RateA 32-47'\np1664\ng18\n(S'Variable_Type'\n(I2\nttRp1665\nsS'Y66:%RateA 106-107'\np1666\ng18\n(S'Variable_Type'\n(I1\nttRp1667\nsS'Y4:%RateA 13-25'\np1668\ng18\n(S'Variable_Type'\n(I2\nttRp1669\nsS'Y27:%RateA 24-33'\np1670\ng18\n(S'Variable_Type'\n(I2\nttRp1671\nsS'Y35:%RateA 28-47'\np1672\ng18\n(S'Variable_Type'\n(I2\nttRp1673\nsS'Y28:%RateA 24-42'\np1674\ng18\n(S'Variable_Type'\n(I2\nttRp1675\nsS'Y53:%RateA 57-58'\np1676\ng18\n(S'Variable_Type'\n(I1\nttRp1677\nsS'Y14:%RateA 18-31'\np1678\ng18\n(S'Variable_Type'\n(I2\nttRp1679\nsS'Y26:%RateA 24-25'\np1680\ng18\n(S'Variable_Type'\n(I1\nttRp1681\nsS'Y16:%RateA 19-21'\np1682\ng18\n(S'Variable_Type'\n(I2\nttRp1683\nsS'Y33:%RateA 27-33'\np1684\ng18\n(S'Variable_Type'\n(I2\nttRp1685\nsS'Y7:%RateA 14-35'\np1686\ng18\n(S'Variable_Type'\n(I2\nttRp1687\nsS'Y64:%RateA 102-103'\np1688\ng18\n(S'Variable_Type'\n(I1\nttRp1689\nsS'Y51:%RateA 53-54'\np1690\ng18\n(S'Variable_Type'\n(I1\nttRp1691\nsS'Y67:%RateA 108-109'\np1692\ng18\n(S'Variable_Type'\n(I1\nttRp1693\nsS'Y60:%RateA 82-83'\np1694\ng18\n(S'Variable_Type'\n(I1\nttRp1695\nsS'Y62:%RateA 86-87'\np1696\ng18\n(S'Variable_Type'\n(I1\nttRp1697\nsS'Y59:%RateA 80-81'\np1698\ng18\n(S'Variable_Type'\n(I1\nttRp1699\nsS'Y8:%RateA 15-35'\np1700\ng18\n(S'Variable_Type'\n(I2\nttRp1701\nsS'Y3:%RateA 12-24'\np1702\ng18\n(S'Variable_Type'\n(I2\nttRp1703\nsS'Y32:%RateA 26-46'\np1704\ng18\n(S'Variable_Type'\n(I2\nttRp1705\nsS'Y22:%RateA 22-23'\np1706\ng18\n(S'Variable_Type'\n(I1\nttRp1707\nsS'Y37:%RateA 32-34'\np1708\ng18\n(S'Variable_Type'\n(I2\nttRp1709\nsS'Y43:%RateA 35-37'\np1710\ng18\n(S'Variable_Type'\n(I2\nttRp1711\nsS'Y0:%RateA 11-28'\np1712\ng18\n(S'Variable_Type'\n(I2\nttRp1713\nsS'Y46:%RateA 36-48'\np1714\ng18\n(S'Variable_Type'\n(I2\nttRp1715\nsS'Y45:%RateA 36-37'\np1716\ng18\n(S'Variable_Type'\n(I2\nttRp1717\nsS'Y65:%RateA 104-105'\np1718\ng18\n(S'Variable_Type'\n(I1\nttRp1719\nsS'Y5:%RateA 13-29'\np1720\ng18\n(S'Variable_Type'\n(I2\nttRp1721\nsS'Y24:%RateA 23-32'\np1722\ng18\n(S'Variable_Type'\n(I2\nttRp1723\nsS'Y6:%RateA 14-15'\np1724\ng18\n(S'Variable_Type'\n(I1\nttRp1725\nsS'Y29:%RateA 25-29'\np1726\ng18\n(S'Variable_Type'\n(I2\nttRp1727\nsS'Y44:%RateA 35-39'\np1728\ng18\n(S'Variable_Type'\n(I2\nttRp1729\nsS'Y58:%RateA 78-79'\np1730\ng18\n(S'Variable_Type'\n(I1\nttRp1731\nsS'Y42:%RateA 34-36'\np1732\ng18\n(S'Variable_Type'\n(I2\nttRp1733\nsS'Y10:%RateA 16-47'\np1734\ng18\n(S'Variable_Type'\n(I2\nttRp1735\nssg620\n(dp1736\nsg12\n(lp1737\nS'orderedDomain'\np1738\nasg626\nF1369933161.6689999\nsba(iOWContexts\nContext\np1739\n(dp1740\ng12\n(lp1741\nS'orderedDomain'\np1742\nasg15\n(dp1743\nS'Y15:%RateA 18-44'\np1744\ng18\n(S'Variable_Type'\n(I2\nttRp1745\nsS'Y36:%RateA 29-30'\np1746\ng18\n(S'Variable_Type'\n(I1\nttRp1747\nsS'Y17:%RateA 19-22'\np1748\ng18\n(S'Variable_Type'\n(I2\nttRp1749\nsS'Y56:%RateA 72-73'\np1750\ng18\n(S'Variable_Type'\n(I1\nttRp1751\nsS'Y54:%RateA 59-60'\np1752\ng18\n(S'Variable_Type'\n(I1\nttRp1753\nsS'Y39:%RateA 32-45'\np1754\ng18\n(S'Variable_Type'\n(I2\nttRp1755\nsS'Y52:%RateA 55-56'\np1756\ng18\n(S'Variable_Type'\n(I1\nttRp1757\nsS'X:Load(pu)'\np1758\ng18\n(S'Variable_Type'\n(I2\nttRp1759\nsS'Y55:%RateA 61-62'\np1760\ng18\n(S'Variable_Type'\n(I1\nttRp1761\nsS'Y:Load 115'\np1762\ng18\n(S'Variable_Type'\n(I2\nttRp1763\nsS'Y1:%RateA 11-47'\np1764\ng18\n(S'Variable_Type'\n(I2\nttRp1765\nsS'Y13:%RateA 18-30'\np1766\ng18\n(S'Variable_Type'\n(I2\nttRp1767\nsS'Y2:%RateA 12-24'\np1768\ng18\n(S'Variable_Type'\n(I2\nttRp1769\nsS'Y12:%RateA 18-30'\np1770\ng18\n(S'Variable_Type'\n(I2\nttRp1771\nsS'Y23:%RateA 22-31'\np1772\ng18\n(S'Variable_Type'\n(I2\nttRp1773\nsS'Y34:%RateA 28-38'\np1774\ng18\n(S'Variable_Type'\n(I2\nttRp1775\nsS'Y31:%RateA 26-41'\np1776\ng18\n(S'Variable_Type'\n(I2\nttRp1777\nsS'Y11:%RateA 17-27'\np1778\ng18\n(S'Variable_Type'\n(I2\nttRp1779\nsS'Y20:%RateA 20-44'\np1780\ng18\n(S'Variable_Type'\n(I2\nttRp1781\nsS'Y43:%RateA 35-37'\np1782\ng18\n(S'Variable_Type'\n(I2\nttRp1783\nsS'Y30:%RateA 25-29'\np1784\ng18\n(S'Variable_Type'\n(I2\nttRp1785\nsS'Y38:%RateA 32-45'\np1786\ng18\n(S'Variable_Type'\n(I2\nttRp1787\nsS'Y18:%RateA 19-27'\np1788\ng18\n(S'Variable_Type'\n(I2\nttRp1789\nsS'Y49:%RateA 40-48'\np1790\ng18\n(S'Variable_Type'\n(I2\nttRp1791\nsS'Y63:%RateA 95-96'\np1792\ng18\n(S'Variable_Type'\n(I1\nttRp1793\nsS'Y68:%RateA 112-113'\np1794\ng18\n(S'Variable_Type'\n(I1\nttRp1795\nsS'Y7:%RateA 14-35'\np1796\ng18\n(S'Variable_Type'\n(I2\nttRp1797\nsS'Y25:%RateA 23-41'\np1798\ng18\n(S'Variable_Type'\n(I2\nttRp1799\nsS'Y19:%RateA 20-26'\np1800\ng18\n(S'Variable_Type'\n(I2\nttRp1801\nsS'Y9:%RateA 16-32'\np1802\ng18\n(S'Variable_Type'\n(I2\nttRp1803\nsS'Y41:%RateA 32-48'\np1804\ng18\n(S'Variable_Type'\n(I2\nttRp1805\nsS'Y16:%RateA 19-21'\np1806\ng18\n(S'Variable_Type'\n(I2\nttRp1807\nsS'Y61:%RateA 84-85'\np1808\ng18\n(S'Variable_Type'\n(I1\nttRp1809\nsS'Y50:%RateA 51-52'\np1810\ng18\n(S'Variable_Type'\n(I1\nttRp1811\nsS'Y24:%RateA 23-32'\np1812\ng18\n(S'Variable_Type'\n(I2\nttRp1813\nsS'Y66:%RateA 106-107'\np1814\ng18\n(S'Variable_Type'\n(I1\nttRp1815\nsS'Y4:%RateA 13-25'\np1816\ng18\n(S'Variable_Type'\n(I2\nttRp1817\nsS'Y27:%RateA 24-33'\np1818\ng18\n(S'Variable_Type'\n(I2\nttRp1819\nsS'Y35:%RateA 28-47'\np1820\ng18\n(S'Variable_Type'\n(I2\nttRp1821\nsS'Y28:%RateA 24-42'\np1822\ng18\n(S'Variable_Type'\n(I2\nttRp1823\nsS'Y8:%RateA 15-35'\np1824\ng18\n(S'Variable_Type'\n(I2\nttRp1825\nsS'Y14:%RateA 18-31'\np1826\ng18\n(S'Variable_Type'\n(I2\nttRp1827\nsS'Y26:%RateA 24-25'\np1828\ng18\n(S'Variable_Type'\n(I1\nttRp1829\nsS'Y48:%RateA 39-46'\np1830\ng18\n(S'Variable_Type'\n(I2\nttRp1831\nsS'Y33:%RateA 27-33'\np1832\ng18\n(S'Variable_Type'\n(I2\nttRp1833\nsS'Y47:%RateA 38-43'\np1834\ng18\n(S'Variable_Type'\n(I2\nttRp1835\nsS'Y64:%RateA 102-103'\np1836\ng18\n(S'Variable_Type'\n(I1\nttRp1837\nsS'Y51:%RateA 53-54'\np1838\ng18\n(S'Variable_Type'\n(I1\nttRp1839\nsS'Y67:%RateA 108-109'\np1840\ng18\n(S'Variable_Type'\n(I1\nttRp1841\nsS'Y60:%RateA 82-83'\np1842\ng18\n(S'Variable_Type'\n(I1\nttRp1843\nsS'Y62:%RateA 86-87'\np1844\ng18\n(S'Variable_Type'\n(I1\nttRp1845\nsS'Y59:%RateA 80-81'\np1846\ng18\n(S'Variable_Type'\n(I1\nttRp1847\nsS'Y53:%RateA 57-58'\np1848\ng18\n(S'Variable_Type'\n(I1\nttRp1849\nsS'Y10:%RateA 16-47'\np1850\ng18\n(S'Variable_Type'\n(I2\nttRp1851\nsS'Y3:%RateA 12-24'\np1852\ng18\n(S'Variable_Type'\n(I2\nttRp1853\nsS'Y32:%RateA 26-46'\np1854\ng18\n(S'Variable_Type'\n(I2\nttRp1855\nsS'Y22:%RateA 22-23'\np1856\ng18\n(S'Variable_Type'\n(I1\nttRp1857\nsS'Y37:%RateA 32-34'\np1858\ng18\n(S'Variable_Type'\n(I2\nttRp1859\nsS'Y21:%RateA 21-43'\np1860\ng18\n(S'Variable_Type'\n(I2\nttRp1861\nsS'Y0:%RateA 11-28'\np1862\ng18\n(S'Variable_Type'\n(I2\nttRp1863\nsS'Y46:%RateA 36-48'\np1864\ng18\n(S'Variable_Type'\n(I2\nttRp1865\nsS'Y45:%RateA 36-37'\np1866\ng18\n(S'Variable_Type'\n(I2\nttRp1867\nsS'Y65:%RateA 104-105'\np1868\ng18\n(S'Variable_Type'\n(I1\nttRp1869\nsS'Y5:%RateA 13-29'\np1870\ng18\n(S'Variable_Type'\n(I2\nttRp1871\nsS'Y40:%RateA 32-47'\np1872\ng18\n(S'Variable_Type'\n(I2\nttRp1873\nsS'Y6:%RateA 14-15'\np1874\ng18\n(S'Variable_Type'\n(I1\nttRp1875\nsS'Y29:%RateA 25-29'\np1876\ng18\n(S'Variable_Type'\n(I2\nttRp1877\nsS'Y44:%RateA 35-39'\np1878\ng18\n(S'Variable_Type'\n(I2\nttRp1879\nsS'Y58:%RateA 78-79'\np1880\ng18\n(S'Variable_Type'\n(I1\nttRp1881\nsS'Y42:%RateA 34-36'\np1882\ng18\n(S'Variable_Type'\n(I2\nttRp1883\nsS'Y57:%RateA 76-77'\np1884\ng18\n(S'Variable_Type'\n(I1\nttRp1885\nssg620\n(dp1886\nsg622\n(dp1887\nS'HighlightedAttribute'\np1888\n(I17\nI-2\ntp1889\nssg626\nF1369933161.6689999\nsba(iOWContexts\nContext\np1890\n(dp1891\ng622\n(dp1892\nS'HighlightedAttribute'\np1893\n(I17\nI-2\ntp1894\nssg15\n(dp1895\nS'Y15:%RateA 18-44'\np1896\ng18\n(S'Variable_Type'\n(I2\nttRp1897\nsS'Y36:%RateA 29-30'\np1898\ng18\n(S'Variable_Type'\n(I1\nttRp1899\nsS'Y17:%RateA 19-22'\np1900\ng18\n(S'Variable_Type'\n(I2\nttRp1901\nsS'Y56:%RateA 72-73'\np1902\ng18\n(S'Variable_Type'\n(I1\nttRp1903\nsS'Y30:%RateA 25-29'\np1904\ng18\n(S'Variable_Type'\n(I2\nttRp1905\nsS'Y39:%RateA 32-45'\np1906\ng18\n(S'Variable_Type'\n(I2\nttRp1907\nsS'Y52:%RateA 55-56'\np1908\ng18\n(S'Variable_Type'\n(I1\nttRp1909\nsS'X:Load(pu)'\np1910\ng18\n(S'Variable_Type'\n(I2\nttRp1911\nsS'Y55:%RateA 61-62'\np1912\ng18\n(S'Variable_Type'\n(I1\nttRp1913\nsS'Y:Load 115'\np1914\ng18\n(S'Variable_Type'\n(I2\nttRp1915\nsS'Y1:%RateA 11-47'\np1916\ng18\n(S'Variable_Type'\n(I2\nttRp1917\nsS'Y13:%RateA 18-30'\np1918\ng18\n(S'Variable_Type'\n(I2\nttRp1919\nsS'Y2:%RateA 12-24'\np1920\ng18\n(S'Variable_Type'\n(I2\nttRp1921\nsS'Y38:%RateA 32-45'\np1922\ng18\n(S'Variable_Type'\n(I2\nttRp1923\nsS'Y48:%RateA 39-46'\np1924\ng18\n(S'Variable_Type'\n(I2\nttRp1925\nsS'Y23:%RateA 22-31'\np1926\ng18\n(S'Variable_Type'\n(I2\nttRp1927\nsS'Y34:%RateA 28-38'\np1928\ng18\n(S'Variable_Type'\n(I2\nttRp1929\nsS'Y31:%RateA 26-41'\np1930\ng18\n(S'Variable_Type'\n(I2\nttRp1931\nsS'Y11:%RateA 17-27'\np1932\ng18\n(S'Variable_Type'\n(I2\nttRp1933\nsS'Y20:%RateA 20-44'\np1934\ng18\n(S'Variable_Type'\n(I2\nttRp1935\nsS'Y47:%RateA 38-43'\np1936\ng18\n(S'Variable_Type'\n(I2\nttRp1937\nsS'Y57:%RateA 76-77'\np1938\ng18\n(S'Variable_Type'\n(I1\nttRp1939\nsS'Y54:%RateA 59-60'\np1940\ng18\n(S'Variable_Type'\n(I1\nttRp1941\nsS'Y12:%RateA 18-30'\np1942\ng18\n(S'Variable_Type'\n(I2\nttRp1943\nsS'Y18:%RateA 19-27'\np1944\ng18\n(S'Variable_Type'\n(I2\nttRp1945\nsS'Y49:%RateA 40-48'\np1946\ng18\n(S'Variable_Type'\n(I2\nttRp1947\nsS'Y63:%RateA 95-96'\np1948\ng18\n(S'Variable_Type'\n(I1\nttRp1949\nsS'Y21:%RateA 21-43'\np1950\ng18\n(S'Variable_Type'\n(I2\nttRp1951\nsS'Y68:%RateA 112-113'\np1952\ng18\n(S'Variable_Type'\n(I1\nttRp1953\nsS'Y25:%RateA 23-41'\np1954\ng18\n(S'Variable_Type'\n(I2\nttRp1955\nsS'Y19:%RateA 20-26'\np1956\ng18\n(S'Variable_Type'\n(I2\nttRp1957\nsS'Y9:%RateA 16-32'\np1958\ng18\n(S'Variable_Type'\n(I2\nttRp1959\nsS'Y41:%RateA 32-48'\np1960\ng18\n(S'Variable_Type'\n(I2\nttRp1961\nsS'Y61:%RateA 84-85'\np1962\ng18\n(S'Variable_Type'\n(I1\nttRp1963\nsS'Y50:%RateA 51-52'\np1964\ng18\n(S'Variable_Type'\n(I1\nttRp1965\nsS'Y40:%RateA 32-47'\np1966\ng18\n(S'Variable_Type'\n(I2\nttRp1967\nsS'Y66:%RateA 106-107'\np1968\ng18\n(S'Variable_Type'\n(I1\nttRp1969\nsS'Y4:%RateA 13-25'\np1970\ng18\n(S'Variable_Type'\n(I2\nttRp1971\nsS'Y27:%RateA 24-33'\np1972\ng18\n(S'Variable_Type'\n(I2\nttRp1973\nsS'Y35:%RateA 28-47'\np1974\ng18\n(S'Variable_Type'\n(I2\nttRp1975\nsS'Y28:%RateA 24-42'\np1976\ng18\n(S'Variable_Type'\n(I2\nttRp1977\nsS'Y53:%RateA 57-58'\np1978\ng18\n(S'Variable_Type'\n(I1\nttRp1979\nsS'Y14:%RateA 18-31'\np1980\ng18\n(S'Variable_Type'\n(I2\nttRp1981\nsS'Y26:%RateA 24-25'\np1982\ng18\n(S'Variable_Type'\n(I1\nttRp1983\nsS'Y16:%RateA 19-21'\np1984\ng18\n(S'Variable_Type'\n(I2\nttRp1985\nsS'Y33:%RateA 27-33'\np1986\ng18\n(S'Variable_Type'\n(I2\nttRp1987\nsS'Y7:%RateA 14-35'\np1988\ng18\n(S'Variable_Type'\n(I2\nttRp1989\nsS'Y64:%RateA 102-103'\np1990\ng18\n(S'Variable_Type'\n(I1\nttRp1991\nsS'Y51:%RateA 53-54'\np1992\ng18\n(S'Variable_Type'\n(I1\nttRp1993\nsS'Y67:%RateA 108-109'\np1994\ng18\n(S'Variable_Type'\n(I1\nttRp1995\nsS'Y60:%RateA 82-83'\np1996\ng18\n(S'Variable_Type'\n(I1\nttRp1997\nsS'Y62:%RateA 86-87'\np1998\ng18\n(S'Variable_Type'\n(I1\nttRp1999\nsS'Y59:%RateA 80-81'\np2000\ng18\n(S'Variable_Type'\n(I1\nttRp2001\nsS'Y8:%RateA 15-35'\np2002\ng18\n(S'Variable_Type'\n(I2\nttRp2003\nsS'Y3:%RateA 12-24'\np2004\ng18\n(S'Variable_Type'\n(I2\nttRp2005\nsS'Y32:%RateA 26-46'\np2006\ng18\n(S'Variable_Type'\n(I2\nttRp2007\nsS'Y22:%RateA 22-23'\np2008\ng18\n(S'Variable_Type'\n(I1\nttRp2009\nsS'Y37:%RateA 32-34'\np2010\ng18\n(S'Variable_Type'\n(I2\nttRp2011\nsS'Y43:%RateA 35-37'\np2012\ng18\n(S'Variable_Type'\n(I2\nttRp2013\nsS'Y0:%RateA 11-28'\np2014\ng18\n(S'Variable_Type'\n(I2\nttRp2015\nsS'Y46:%RateA 36-48'\np2016\ng18\n(S'Variable_Type'\n(I2\nttRp2017\nsS'Y45:%RateA 36-37'\np2018\ng18\n(S'Variable_Type'\n(I2\nttRp2019\nsS'Y65:%RateA 104-105'\np2020\ng18\n(S'Variable_Type'\n(I1\nttRp2021\nsS'Y5:%RateA 13-29'\np2022\ng18\n(S'Variable_Type'\n(I2\nttRp2023\nsS'Y24:%RateA 23-32'\np2024\ng18\n(S'Variable_Type'\n(I2\nttRp2025\nsS'Y6:%RateA 14-15'\np2026\ng18\n(S'Variable_Type'\n(I1\nttRp2027\nsS'Y29:%RateA 25-29'\np2028\ng18\n(S'Variable_Type'\n(I2\nttRp2029\nsS'Y44:%RateA 35-39'\np2030\ng18\n(S'Variable_Type'\n(I2\nttRp2031\nsS'Y58:%RateA 78-79'\np2032\ng18\n(S'Variable_Type'\n(I1\nttRp2033\nsS'Y42:%RateA 34-36'\np2034\ng18\n(S'Variable_Type'\n(I2\nttRp2035\nsS'Y10:%RateA 16-47'\np2036\ng18\n(S'Variable_Type'\n(I2\nttRp2037\nssg620\n(dp2038\nsg12\n(lp2039\nS'orderedDomain'\np2040\nasg626\nF1369933161.6689999\nsba(iOWContexts\nContext\np2041\n(dp2042\ng12\n(lp2043\nS'orderedDomain'\np2044\nasg15\n(dp2045\nS'Y15:%RateA 18-44'\np2046\ng18\n(S'Variable_Type'\n(I2\nttRp2047\nsS'Y36:%RateA 29-30'\np2048\ng18\n(S'Variable_Type'\n(I1\nttRp2049\nsS'Y17:%RateA 19-22'\np2050\ng18\n(S'Variable_Type'\n(I2\nttRp2051\nsS'Y56:%RateA 72-73'\np2052\ng18\n(S'Variable_Type'\n(I1\nttRp2053\nsS'Y54:%RateA 59-60'\np2054\ng18\n(S'Variable_Type'\n(I1\nttRp2055\nsS'Y39:%RateA 32-45'\np2056\ng18\n(S'Variable_Type'\n(I2\nttRp2057\nsS'Y52:%RateA 55-56'\np2058\ng18\n(S'Variable_Type'\n(I1\nttRp2059\nsS'X:Load(pu)'\np2060\ng18\n(S'Variable_Type'\n(I2\nttRp2061\nsS'Y55:%RateA 61-62'\np2062\ng18\n(S'Variable_Type'\n(I1\nttRp2063\nsS'Y:Load 115'\np2064\ng18\n(S'Variable_Type'\n(I2\nttRp2065\nsS'Y1:%RateA 11-47'\np2066\ng18\n(S'Variable_Type'\n(I2\nttRp2067\nsS'Y13:%RateA 18-30'\np2068\ng18\n(S'Variable_Type'\n(I2\nttRp2069\nsS'Y2:%RateA 12-24'\np2070\ng18\n(S'Variable_Type'\n(I2\nttRp2071\nsS'Y12:%RateA 18-30'\np2072\ng18\n(S'Variable_Type'\n(I2\nttRp2073\nsS'Y23:%RateA 22-31'\np2074\ng18\n(S'Variable_Type'\n(I2\nttRp2075\nsS'Y34:%RateA 28-38'\np2076\ng18\n(S'Variable_Type'\n(I2\nttRp2077\nsS'Y31:%RateA 26-41'\np2078\ng18\n(S'Variable_Type'\n(I2\nttRp2079\nsS'Y11:%RateA 17-27'\np2080\ng18\n(S'Variable_Type'\n(I2\nttRp2081\nsS'Y20:%RateA 20-44'\np2082\ng18\n(S'Variable_Type'\n(I2\nttRp2083\nsS'Y43:%RateA 35-37'\np2084\ng18\n(S'Variable_Type'\n(I2\nttRp2085\nsS'Y30:%RateA 25-29'\np2086\ng18\n(S'Variable_Type'\n(I2\nttRp2087\nsS'Y38:%RateA 32-45'\np2088\ng18\n(S'Variable_Type'\n(I2\nttRp2089\nsS'Y18:%RateA 19-27'\np2090\ng18\n(S'Variable_Type'\n(I2\nttRp2091\nsS'Y49:%RateA 40-48'\np2092\ng18\n(S'Variable_Type'\n(I2\nttRp2093\nsS'Y63:%RateA 95-96'\np2094\ng18\n(S'Variable_Type'\n(I1\nttRp2095\nsS'Y68:%RateA 112-113'\np2096\ng18\n(S'Variable_Type'\n(I1\nttRp2097\nsS'Y7:%RateA 14-35'\np2098\ng18\n(S'Variable_Type'\n(I2\nttRp2099\nsS'Y25:%RateA 23-41'\np2100\ng18\n(S'Variable_Type'\n(I2\nttRp2101\nsS'Y19:%RateA 20-26'\np2102\ng18\n(S'Variable_Type'\n(I2\nttRp2103\nsS'Y9:%RateA 16-32'\np2104\ng18\n(S'Variable_Type'\n(I2\nttRp2105\nsS'Y41:%RateA 32-48'\np2106\ng18\n(S'Variable_Type'\n(I2\nttRp2107\nsS'Y16:%RateA 19-21'\np2108\ng18\n(S'Variable_Type'\n(I2\nttRp2109\nsS'Y61:%RateA 84-85'\np2110\ng18\n(S'Variable_Type'\n(I1\nttRp2111\nsS'Y50:%RateA 51-52'\np2112\ng18\n(S'Variable_Type'\n(I1\nttRp2113\nsS'Y24:%RateA 23-32'\np2114\ng18\n(S'Variable_Type'\n(I2\nttRp2115\nsS'Y66:%RateA 106-107'\np2116\ng18\n(S'Variable_Type'\n(I1\nttRp2117\nsS'Y4:%RateA 13-25'\np2118\ng18\n(S'Variable_Type'\n(I2\nttRp2119\nsS'Y27:%RateA 24-33'\np2120\ng18\n(S'Variable_Type'\n(I2\nttRp2121\nsS'Y35:%RateA 28-47'\np2122\ng18\n(S'Variable_Type'\n(I2\nttRp2123\nsS'Y28:%RateA 24-42'\np2124\ng18\n(S'Variable_Type'\n(I2\nttRp2125\nsS'Y8:%RateA 15-35'\np2126\ng18\n(S'Variable_Type'\n(I2\nttRp2127\nsS'Y14:%RateA 18-31'\np2128\ng18\n(S'Variable_Type'\n(I2\nttRp2129\nsS'Y26:%RateA 24-25'\np2130\ng18\n(S'Variable_Type'\n(I1\nttRp2131\nsS'Y48:%RateA 39-46'\np2132\ng18\n(S'Variable_Type'\n(I2\nttRp2133\nsS'Y33:%RateA 27-33'\np2134\ng18\n(S'Variable_Type'\n(I2\nttRp2135\nsS'Y47:%RateA 38-43'\np2136\ng18\n(S'Variable_Type'\n(I2\nttRp2137\nsS'Y64:%RateA 102-103'\np2138\ng18\n(S'Variable_Type'\n(I1\nttRp2139\nsS'Y51:%RateA 53-54'\np2140\ng18\n(S'Variable_Type'\n(I1\nttRp2141\nsS'Y67:%RateA 108-109'\np2142\ng18\n(S'Variable_Type'\n(I1\nttRp2143\nsS'Y60:%RateA 82-83'\np2144\ng18\n(S'Variable_Type'\n(I1\nttRp2145\nsS'Y62:%RateA 86-87'\np2146\ng18\n(S'Variable_Type'\n(I1\nttRp2147\nsS'Y59:%RateA 80-81'\np2148\ng18\n(S'Variable_Type'\n(I1\nttRp2149\nsS'Y53:%RateA 57-58'\np2150\ng18\n(S'Variable_Type'\n(I1\nttRp2151\nsS'Y10:%RateA 16-47'\np2152\ng18\n(S'Variable_Type'\n(I2\nttRp2153\nsS'Y3:%RateA 12-24'\np2154\ng18\n(S'Variable_Type'\n(I2\nttRp2155\nsS'Y32:%RateA 26-46'\np2156\ng18\n(S'Variable_Type'\n(I2\nttRp2157\nsS'Y22:%RateA 22-23'\np2158\ng18\n(S'Variable_Type'\n(I1\nttRp2159\nsS'Y37:%RateA 32-34'\np2160\ng18\n(S'Variable_Type'\n(I2\nttRp2161\nsS'Y21:%RateA 21-43'\np2162\ng18\n(S'Variable_Type'\n(I2\nttRp2163\nsS'Y0:%RateA 11-28'\np2164\ng18\n(S'Variable_Type'\n(I2\nttRp2165\nsS'Y46:%RateA 36-48'\np2166\ng18\n(S'Variable_Type'\n(I2\nttRp2167\nsS'Y45:%RateA 36-37'\np2168\ng18\n(S'Variable_Type'\n(I2\nttRp2169\nsS'Y65:%RateA 104-105'\np2170\ng18\n(S'Variable_Type'\n(I1\nttRp2171\nsS'Y5:%RateA 13-29'\np2172\ng18\n(S'Variable_Type'\n(I2\nttRp2173\nsS'Y40:%RateA 32-47'\np2174\ng18\n(S'Variable_Type'\n(I2\nttRp2175\nsS'Y6:%RateA 14-15'\np2176\ng18\n(S'Variable_Type'\n(I1\nttRp2177\nsS'Y29:%RateA 25-29'\np2178\ng18\n(S'Variable_Type'\n(I2\nttRp2179\nsS'Y44:%RateA 35-39'\np2180\ng18\n(S'Variable_Type'\n(I2\nttRp2181\nsS'Y58:%RateA 78-79'\np2182\ng18\n(S'Variable_Type'\n(I1\nttRp2183\nsS'Y42:%RateA 34-36'\np2184\ng18\n(S'Variable_Type'\n(I2\nttRp2185\nsS'Y57:%RateA 76-77'\np2186\ng18\n(S'Variable_Type'\n(I1\nttRp2187\nssg620\n(dp2188\nsg622\n(dp2189\nS'HighlightedAttribute'\np2190\n(I17\nI-2\ntp2191\nssg626\nF1369933161.6689999\nsbas.&quot;, 'Distributions (2)': &quot;(dp1\nS'showYaxisTitle'\np2\nI1\nsS'graph.showContinuousClassGraph'\np3\nI00\nsS'barSize'\np4\nI50\nsS'showXaxisTitle'\np5\nI1\nsS'localContextsVersion'\np6\n(I100\nI2\ntp7\nsS'smoothLines'\np8\nI0\nsS'showYPaxisTitle'\np9\nI1\nsS'savedWidgetGeometry'\np10\nS'\\x01\\xd9\\xd0\\xcb\\x00\\x01\\x00\\x00\\xff\\xff\\xfbT\\x00\\x00\\x00G\\xff\\xff\\xfeh\\x00\\x00\\x02\\x84\\xff\\xff\\xfb\\\\\\x00\\x00\\x00c\\xff\\xff\\xfe`\\x00\\x00\\x02|\\x00\\x00\\x00\\x01\\x00\\x00'\np11\nsS'showMainTitle'\np12\nI00\nsS'showConfidenceIntervals'\np13\nI0\nsS'widgetShown'\np14\nI0\nsS'lineWidth'\np15\nI1\nsS'localContexts'\np16\n(lp17\n(iOWContexts\nContext\np18\n(dp19\nS'noCopy'\np20\n(lp21\nS'orderedDomain'\np22\nasS'attributes'\np23\n(dp24\nS'Y:PMachine134 - CLUCCI35'\np25\ncOrange.orange\n__pickleLoaderNamedConstants\np26\n(S'Variable_Type'\n(I2\nttRp27\nsS'Y:VBus77 - CCORTE32'\np28\ng26\n(S'Variable_Type'\n(I2\nttRp29\nsS'Y:VBus134 - CLUCCI35'\np30\ng26\n(S'Variable_Type'\n(I2\nttRp31\nsS'Y:VBus109 - CSAGON32'\np32\ng26\n(S'Variable_Type'\n(I2\nttRp33\nsS'Y:VBus102 - CPORTO31'\np34\ng26\n(S'Variable_Type'\n(I2\nttRp35\nsS'XProdEolienne%Pnom'\np36\ng26\n(S'Variable_Type'\n(I2\nttRp37\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np38\ng26\n(S'Variable_Type'\n(I2\nttRp39\nsS'Y:PMachine94 - COCANA33'\np40\ng26\n(S'Variable_Type'\n(I2\nttRp41\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np42\ng26\n(S'Variable_Type'\n(I2\nttRp43\nsS'Y:PMachine87 - CLUCCI32'\np44\ng26\n(S'Variable_Type'\n(I2\nttRp45\nsS'Y:PMachine113 - CSAMPO32'\np46\ng26\n(S'Variable_Type'\n(I2\nttRp47\nsS'Y:Load 84 - CLORET31'\np48\ng26\n(S'Variable_Type'\n(I2\nttRp49\nsS'Y:PMachine89 - CLUCCI34'\np50\ng26\n(S'Variable_Type'\n(I2\nttRp51\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np52\ng26\n(S'Variable_Type'\n(I2\nttRp53\nsS'Y:Load 80 - CGHISO31'\np54\ng26\n(S'Variable_Type'\n(I2\nttRp55\nsS'Y:PMachine74 - CCERVI31'\np56\ng26\n(S'Variable_Type'\n(I2\nttRp57\nsS'Y:PMachine125 - CVAZZI36'\np58\ng26\n(S'Variable_Type'\n(I2\nttRp59\nsS'Y:Load 59 - CCALDA31'\np60\ng26\n(S'Variable_Type'\n(I2\nttRp61\nsS'Y:PMachine88 - CLUCCI33'\np62\ng26\n(S'Variable_Type'\n(I2\nttRp63\nsS'Y:PMachine120 - CVAZZI31'\np64\ng26\n(S'Variable_Type'\n(I2\nttRp65\nsS'Y:PMachine111 - CSTMAR31'\np66\ng26\n(S'Variable_Type'\n(I2\nttRp67\nsS'Y:NbeTransit'\np68\ng26\n(S'Variable_Type'\n(I2\nttRp69\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np70\ng26\n(S'Variable_Type'\n(I2\nttRp71\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np72\ng26\n(S'Variable_Type'\n(I2\nttRp73\nsS'Y:PMachine130 - CVAZZI311'\np74\ng26\n(S'Variable_Type'\n(I2\nttRp75\nsS'Y:PMachine127 - CVAZZI38'\np76\ng26\n(S'Variable_Type'\n(I2\nttRp77\nsS'Y:VBus131 - CVAZZI312'\np78\ng26\n(S'Variable_Type'\n(I2\nttRp79\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np80\ng26\n(S'Variable_Type'\n(I2\nttRp81\nsS'Y:PMachine123 - CVAZZI34'\np82\ng26\n(S'Variable_Type'\n(I2\nttRp83\nsS'Y:VBus118 - CTOLLA33'\np84\ng26\n(S'Variable_Type'\n(I2\nttRp85\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np86\ng26\n(S'Variable_Type'\n(I2\nttRp87\nsS'Y:PMachine58 - CBONIF32'\np88\ng26\n(S'Variable_Type'\n(I2\nttRp89\nsS'Y:Load 104 - CPROPR31'\np90\ng26\n(S'Variable_Type'\n(I2\nttRp91\nsS'Y:PMachine30 - CLUCCI22'\np92\ng26\n(S'Variable_Type'\n(I2\nttRp93\nsS'Y:VBus100 - COLETT31'\np94\ng26\n(S'Variable_Type'\n(I2\nttRp95\nsS'Y:PProdTot'\np96\ng26\n(S'Variable_Type'\n(I2\nttRp97\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np98\ng26\n(S'Variable_Type'\n(I2\nttRp99\nsS'Y:VBus57 - CBONIF31'\np100\ng26\n(S'Variable_Type'\n(I2\nttRp101\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np102\ng26\n(S'Variable_Type'\n(I2\nttRp103\nsS'Y:PConsoTot'\np104\ng26\n(S'Variable_Type'\n(I2\nttRp105\nsS'Iteration'\np106\ng26\n(S'Variable_Type'\n(I2\nttRp107\nsS'Y:PMachine109 - CSAGON32'\np108\ng26\n(S'Variable_Type'\n(I2\nttRp109\nsS'Y:PMachine135 - CLUCCI36'\np110\ng26\n(S'Variable_Type'\n(I2\nttRp111\nsS'Y:VBus30 - CLUCCI22'\np112\ng26\n(S'Variable_Type'\n(I2\nttRp113\nsS'Y:VBus122 - CVAZZI33'\np114\ng26\n(S'Variable_Type'\n(I2\nttRp115\nsS'Y:VBus22 - CCORTE21'\np116\ng26\n(S'Variable_Type'\n(I2\nttRp117\nsS'Y:VBus117 - CTOLLA32'\np118\ng26\n(S'Variable_Type'\n(I2\nttRp119\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np120\ng26\n(S'Variable_Type'\n(I2\nttRp121\nsS'Y:PMachine107 - CRIZZA32'\np122\ng26\n(S'Variable_Type'\n(I2\nttRp123\nsS'Y:VBus16 - CCALDA21'\np124\ng26\n(S'Variable_Type'\n(I2\nttRp125\nsS'Y:Load 102 - CPORTO31'\np126\ng26\n(S'Variable_Type'\n(I2\nttRp127\nsS'Y:VBus107 - CRIZZA32'\np128\ng26\n(S'Variable_Type'\n(I2\nttRp129\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np130\ng26\n(S'Variable_Type'\n(I2\nttRp131\nsS'Y:VBus41 - CSAMPO21'\np132\ng26\n(S'Variable_Type'\n(I2\nttRp133\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np134\ng26\n(S'Variable_Type'\n(I2\nttRp135\nsS'Y:VBus34 - CPIETR21'\np136\ng26\n(S'Variable_Type'\n(I2\nttRp137\nsS'Y:Load 108 - CSAGON31'\np138\ng26\n(S'Variable_Type'\n(I2\nttRp139\nsS'Y:VBus56 - CBIGUG32'\np140\ng26\n(S'Variable_Type'\n(I2\nttRp141\nsS'Y:PMachine42 - CSISCO21'\np142\ng26\n(S'Variable_Type'\n(I2\nttRp143\nsS'Y:PMachine138 - CLUCCI39'\np144\ng26\n(S'Variable_Type'\n(I2\nttRp145\nsS'Y:PMachine112 - CSAMPO31'\np146\ng26\n(S'Variable_Type'\n(I2\nttRp147\nsS'Y:VBus105 - CPROPR32'\np148\ng26\n(S'Variable_Type'\n(I2\nttRp149\nsS'Y:VBus1 - CBONIF11'\np150\ng26\n(S'Variable_Type'\n(I2\nttRp151\nsS'Y:VBus12 - CBASTI21'\np152\ng26\n(S'Variable_Type'\n(I2\nttRp153\nsS'Y:PMachine129 - CVAZZI310'\np154\ng26\n(S'Variable_Type'\n(I2\nttRp155\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np156\ng26\n(S'Variable_Type'\n(I2\nttRp157\nsS'Y:VBus35 - CPORTO21'\np158\ng26\n(S'Variable_Type'\n(I2\nttRp159\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np160\ng26\n(S'Variable_Type'\n(I2\nttRp161\nsS'Y:VBus54 - CBASTI32'\np162\ng26\n(S'Variable_Type'\n(I2\nttRp163\nsS'Y:VBus69 - CCASAM37'\np164\ng26\n(S'Variable_Type'\n(I2\nttRp165\nsS'Y:VBus45 - CTOLLA21'\np166\ng26\n(S'Variable_Type'\n(I2\nttRp167\nsS'Y:PMachine115 - CTAGLI31'\np168\ng26\n(S'Variable_Type'\n(I2\nttRp169\nsS'Y:VBus43 - CSOVEN21'\np170\ng26\n(S'Variable_Type'\n(I2\nttRp171\nsS'Y:VBus76 - CCORTE31'\np172\ng26\n(S'Variable_Type'\n(I2\nttRp173\nsS'Y:VBus75 - CCORSC31'\np174\ng26\n(S'Variable_Type'\n(I2\nttRp175\nsS'Y:PMachine78 - CFURIA31'\np176\ng26\n(S'Variable_Type'\n(I2\nttRp177\nsS'Y:VBus127 - CVAZZI38'\np178\ng26\n(S'Variable_Type'\n(I2\nttRp179\nsS'Y:VBus115 - CTAGLI31'\np180\ng26\n(S'Variable_Type'\n(I2\nttRp181\nsS'Y:Load 61 - CCALVI31'\np182\ng26\n(S'Variable_Type'\n(I2\nttRp183\nsS'Y:VBus55 - CBIGUG31'\np184\ng26\n(S'Variable_Type'\n(I2\nttRp185\nsS'Y:Load 42 - CSISCO21'\np186\ng26\n(S'Variable_Type'\n(I2\nttRp187\nsS'Y:VBus72 - CCASTI31'\np188\ng26\n(S'Variable_Type'\n(I2\nttRp189\nsS'Y:Load 37 - CRIZZA21'\np190\ng26\n(S'Variable_Type'\n(I2\nttRp191\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np192\ng26\n(S'Variable_Type'\n(I2\nttRp193\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np194\ng26\n(S'Variable_Type'\n(I2\nttRp195\nsS'Y:PMachine137 - CLUCCI38'\np196\ng26\n(S'Variable_Type'\n(I2\nttRp197\nsS'Y:PMachine67 - CCASAM35'\np198\ng26\n(S'Variable_Type'\n(I2\nttRp199\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np200\ng26\n(S'Variable_Type'\n(I2\nttRp201\nsS'Y:VBus31 - CMOROS21'\np202\ng26\n(S'Variable_Type'\n(I2\nttRp203\nsS'Y:VBus103 - CPORTO32'\np204\ng26\n(S'Variable_Type'\n(I2\nttRp205\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np206\ng26\n(S'Variable_Type'\n(I2\nttRp207\nsS'Y:PMachine128 - CVAZZI39'\np208\ng26\n(S'Variable_Type'\n(I2\nttRp209\nsS'Y:PMachine72 - CCASTI31'\np210\ng26\n(S'Variable_Type'\n(I2\nttRp211\nsS'Y:VBus27 - CILERO21'\np212\ng26\n(S'Variable_Type'\n(I2\nttRp213\nsS'Y:VBus11 - CASPRE21'\np214\ng26\n(S'Variable_Type'\n(I2\nttRp215\nsS'Y:PMachine75 - CCORSC31'\np216\ng26\n(S'Variable_Type'\n(I2\nttRp217\nsS'Y:Load 51 - CASPRE31'\np218\ng26\n(S'Variable_Type'\n(I2\nttRp219\nsS'Y:PMachine61 - CCALVI31'\np220\ng26\n(S'Variable_Type'\n(I2\nttRp221\nsS'Y:VBus51 - CASPRE31'\np222\ng26\n(S'Variable_Type'\n(I2\nttRp223\nsS'Y:VBus114 - CSOVEN31'\np224\ng26\n(S'Variable_Type'\n(I2\nttRp225\nsS'Y:VBus116 - CTOLLA31'\np226\ng26\n(S'Variable_Type'\n(I2\nttRp227\nsS'Y:Load 86 - CLUCCI31'\np228\ng26\n(S'Variable_Type'\n(I2\nttRp229\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np230\ng26\n(S'Variable_Type'\n(I2\nttRp231\nsS'Y:PMachine116 - CTOLLA31'\np232\ng26\n(S'Variable_Type'\n(I2\nttRp233\nsS'Y:PMachine104 - CPROPR31'\np234\ng26\n(S'Variable_Type'\n(I2\nttRp235\nsS'Y:VBus128 - CVAZZI39'\np236\ng26\n(S'Variable_Type'\n(I2\nttRp237\nsS'Y:PMachine136 - CLUCCI37'\np238\ng26\n(S'Variable_Type'\n(I2\nttRp239\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np240\ng26\n(S'Variable_Type'\n(I2\nttRp241\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np242\ng26\n(S'Variable_Type'\n(I2\nttRp243\nsS'Y:PMachine68 - CCASAM36'\np244\ng26\n(S'Variable_Type'\n(I2\nttRp245\nsS'Y:PMachine29 - CLUCCI21'\np246\ng26\n(S'Variable_Type'\n(I2\nttRp247\nsS'Y:VBus42 - CSISCO21'\np248\ng26\n(S'Variable_Type'\n(I2\nttRp249\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np250\ng26\n(S'Variable_Type'\n(I2\nttRp251\nsS'Y:VBus14 - CBONIF21'\np252\ng26\n(S'Variable_Type'\n(I2\nttRp253\nsS'Y:VBus73 - CCASTI32'\np254\ng26\n(S'Variable_Type'\n(I2\nttRp255\nsS'Y:VBus64 - CCASAM32'\np256\ng26\n(S'Variable_Type'\n(I2\nttRp257\nsS'Y:PMachine14 - CBONIF21'\np258\ng26\n(S'Variable_Type'\n(I2\nttRp259\nsS'Y:PMachine62 - CCALVI32'\np260\ng26\n(S'Variable_Type'\n(I2\nttRp261\nsS'Y:VBus133 - CVAZZI314'\np262\ng26\n(S'Variable_Type'\n(I2\nttRp263\nsS'Y:VBus63 - CCASAM31'\np264\ng26\n(S'Variable_Type'\n(I2\nttRp265\nsS'Y:PMachine101 - CPIETR31'\np266\ng26\n(S'Variable_Type'\n(I2\nttRp267\nsS'Y:%Losses'\np268\ng26\n(S'Variable_Type'\n(I2\nttRp269\nsS'Y:VBus85 - CLORET32'\np270\ng26\n(S'Variable_Type'\n(I2\nttRp271\nsS'Y:Load 115 - CTAGLI31'\np272\ng26\n(S'Variable_Type'\n(I2\nttRp273\nsS'ENR'\np274\ng26\n(S'Variable_Type'\n(I2\nttRp275\nsS'Y:VBus101 - CPIETR31'\np276\ng26\n(S'Variable_Type'\n(I2\nttRp277\nsS'Y:PMachine106 - CRIZZA31'\np278\ng26\n(S'Variable_Type'\n(I2\nttRp279\nsS'Y:VBus132 - CVAZZI313'\np280\ng26\n(S'Variable_Type'\n(I2\nttRp281\nsS'Y:PMachine118 - CTOLLA33'\np282\ng26\n(S'Variable_Type'\n(I2\nttRp283\nsS'Y:VBus19 - CCASTI21'\np284\ng26\n(S'Variable_Type'\n(I2\nttRp285\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np286\ng26\n(S'Variable_Type'\n(I2\nttRp287\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np288\ng26\n(S'Variable_Type'\n(I2\nttRp289\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np290\ng26\n(S'Variable_Type'\n(I2\nttRp291\nsS'Y:PMachine53 - CBASTI31'\np292\ng26\n(S'Variable_Type'\n(I2\nttRp293\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np294\ng26\n(S'Variable_Type'\n(I2\nttRp295\nsS'Y:VBus15 - CBONIF22'\np296\ng26\n(S'Variable_Type'\n(I2\nttRp297\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np298\ng26\n(S'Variable_Type'\n(I2\nttRp299\nsS'Y:VBus129 - CVAZZI310'\np300\ng26\n(S'Variable_Type'\n(I2\nttRp301\nsS'Y:VBus123 - CVAZZI34'\np302\ng26\n(S'Variable_Type'\n(I2\nttRp303\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np304\ng26\n(S'Variable_Type'\n(I2\nttRp305\nsS'Y:VBus60 - CCALDA32'\np306\ng26\n(S'Variable_Type'\n(I2\nttRp307\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np308\ng26\n(S'Variable_Type'\n(I2\nttRp309\nsS'Y:VBus65 - CCASAM33'\np310\ng26\n(S'Variable_Type'\n(I2\nttRp311\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np312\ng26\n(S'Variable_Type'\n(I2\nttRp313\nsS'Y:PMachine139 - CLUCCI310'\np314\ng26\n(S'Variable_Type'\n(I2\nttRp315\nsS'Y:VBus112 - CSAMPO31'\np316\ng26\n(S'Variable_Type'\n(I2\nttRp317\nsS'Y:VBus68 - CCASAM36'\np318\ng26\n(S'Variable_Type'\n(I2\nttRp319\nsS'Y:Load 55 - CBIGUG31'\np320\ng26\n(S'Variable_Type'\n(I2\nttRp321\nsS'Y:Max%A'\np322\ng26\n(S'Variable_Type'\n(I2\nttRp323\nsS'Y:NbeTransit_0.9-1'\np324\ng26\n(S'Variable_Type'\n(I2\nttRp325\nsS'Y:VBus24 - CFURIA21'\np326\ng26\n(S'Variable_Type'\n(I2\nttRp327\nsS'Y:VBus23 - CCORTE22'\np328\ng26\n(S'Variable_Type'\n(I2\nttRp329\nsS'Y:VBus18 - CCASAM21'\np330\ng26\n(S'Variable_Type'\n(I2\nttRp331\nsS'Y:VBus40 - CSTMAR21'\np332\ng26\n(S'Variable_Type'\n(I2\nttRp333\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np334\ng26\n(S'Variable_Type'\n(I2\nttRp335\nsS'Y:PMachine124 - CVAZZI35'\np336\ng26\n(S'Variable_Type'\n(I2\nttRp337\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np338\ng26\n(S'Variable_Type'\n(I2\nttRp339\nsS'Y:PMachine117 - CTOLLA32'\np340\ng26\n(S'Variable_Type'\n(I2\nttRp341\nsS'Y:Load 82 - CILERO31'\np342\ng26\n(S'Variable_Type'\n(I2\nttRp343\nsS'Y:VBus33 - COLETT21'\np344\ng26\n(S'Variable_Type'\n(I2\nttRp345\nsS'Y:VBus32 - COCANA21'\np346\ng26\n(S'Variable_Type'\n(I2\nttRp347\nsS'Y:PMachine121 - CVAZZI32'\np348\ng26\n(S'Variable_Type'\n(I2\nttRp349\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np350\ng26\n(S'Variable_Type'\n(I2\nttRp351\nsS'Y:VBus59 - CCALDA31'\np352\ng26\n(S'Variable_Type'\n(I2\nttRp353\nsS'Y:VBus82 - CILERO31'\np354\ng26\n(S'Variable_Type'\n(I2\nttRp355\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np356\ng26\n(S'Variable_Type'\n(I2\nttRp357\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np358\ng26\n(S'Variable_Type'\n(I2\nttRp359\nsS'Y:VBus37 - CRIZZA21'\np360\ng26\n(S'Variable_Type'\n(I2\nttRp361\nsS'Y:PMachine73 - CCASTI32'\np362\ng26\n(S'Variable_Type'\n(I2\nttRp363\nsS'Y:PMachine86 - CLUCCI31'\np364\ng26\n(S'Variable_Type'\n(I2\nttRp365\nsS'Y:Load 53 - CBASTI31'\np366\ng26\n(S'Variable_Type'\n(I2\nttRp367\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np368\ng26\n(S'Variable_Type'\n(I2\nttRp369\nsS'Y:VBus21 - CCORSC21'\np370\ng26\n(S'Variable_Type'\n(I2\nttRp371\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np372\ng26\n(S'Variable_Type'\n(I2\nttRp373\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np374\ng26\n(S'Variable_Type'\n(I2\nttRp375\nsS'Y:PMachine126 - CVAZZI37'\np376\ng26\n(S'Variable_Type'\n(I2\nttRp377\nsS'Y:PMachine64 - CCASAM32'\np378\ng26\n(S'Variable_Type'\n(I2\nttRp379\nsS'Y:VBus67 - CCASAM35'\np380\ng26\n(S'Variable_Type'\n(I2\nttRp381\nsS'Y:VBus53 - CBASTI31'\np382\ng26\n(S'Variable_Type'\n(I2\nttRp383\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np384\ng26\n(S'Variable_Type'\n(I2\nttRp385\nsS'Y:VBus61 - CCALVI31'\np386\ng26\n(S'Variable_Type'\n(I2\nttRp387\nsS'Y:VBus93 - COCANA32'\np388\ng26\n(S'Variable_Type'\n(I2\nttRp389\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np390\ng26\n(S'Variable_Type'\n(I2\nttRp391\nsS'Y:VBus104 - CPROPR31'\np392\ng26\n(S'Variable_Type'\n(I2\nttRp393\nsS'Y:VBus48 - CZSSS621'\np394\ng26\n(S'Variable_Type'\n(I2\nttRp395\nsS'Y:PMachine85 - CLORET32'\np396\ng26\n(S'Variable_Type'\n(I2\nttRp397\nsS'Y:VBus74 - CCERVI31'\np398\ng26\n(S'Variable_Type'\n(I2\nttRp399\nsS'X:ProdPV%Pnom'\np400\ng26\n(S'Variable_Type'\n(I2\nttRp401\nsS'Y:VBus89 - CLUCCI34'\np402\ng26\n(S'Variable_Type'\n(I2\nttRp403\nsS'Y:Load 100 - COLETT31'\np404\ng26\n(S'Variable_Type'\n(I2\nttRp405\nsS'Y:PMachine54 - CBASTI32'\np406\ng26\n(S'Variable_Type'\n(I2\nttRp407\nsS'Y:VBus138 - CLUCCI39'\np408\ng26\n(S'Variable_Type'\n(I2\nttRp409\nsS'Y:VBus39 - CSTLUC21'\np410\ng26\n(S'Variable_Type'\n(I2\nttRp411\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np412\ng26\n(S'Variable_Type'\n(I2\nttRp413\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np414\ng26\n(S'Variable_Type'\n(I2\nttRp415\nsS'Y:Load 78 - CFURIA31'\np416\ng26\n(S'Variable_Type'\n(I2\nttRp417\nsS'Y:VBus28 - CLORET21'\np418\ng26\n(S'Variable_Type'\n(I2\nttRp419\nsS'Y:PMachine105 - CPROPR32'\np420\ng26\n(S'Variable_Type'\n(I2\nttRp421\nsS'Y:VBus96 - COCANA35'\np422\ng26\n(S'Variable_Type'\n(I2\nttRp423\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np424\ng26\n(S'Variable_Type'\n(I2\nttRp425\nsS'Y:PMachine18 - CCASAM21'\np426\ng26\n(S'Variable_Type'\n(I2\nttRp427\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np428\ng26\n(S'Variable_Type'\n(I2\nttRp429\nsS'Y:VBus13 - CBIGUG21'\np430\ng26\n(S'Variable_Type'\n(I2\nttRp431\nsS'Y:VBus92 - COCANA31'\np432\ng26\n(S'Variable_Type'\n(I2\nttRp433\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np434\ng26\n(S'Variable_Type'\n(I2\nttRp435\nsS'Y:Load 57 - CBONIF31'\np436\ng26\n(S'Variable_Type'\n(I2\nttRp437\nsS'Y:VBus58 - CBONIF32'\np438\ng26\n(S'Variable_Type'\n(I2\nttRp439\nsS'Y:VBus84 - CLORET31'\np440\ng26\n(S'Variable_Type'\n(I2\nttRp441\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np442\ng26\n(S'Variable_Type'\n(I2\nttRp443\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np444\ng26\n(S'Variable_Type'\n(I2\nttRp445\nsS'Y:VBus97 - COCANA36'\np446\ng26\n(S'Variable_Type'\n(I2\nttRp447\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np448\ng26\n(S'Variable_Type'\n(I2\nttRp449\nsS'Y:VBus79 - CFURIA32'\np450\ng26\n(S'Variable_Type'\n(I2\nttRp451\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np452\ng26\n(S'Variable_Type'\n(I2\nttRp453\nsS'Y:Load 110 - CSTLUC31'\np454\ng26\n(S'Variable_Type'\n(I2\nttRp455\nsS'Y:VBus80 - CGHISO31'\np456\ng26\n(S'Variable_Type'\n(I2\nttRp457\nsS'Y:PMachine114 - CSOVEN31'\np458\ng26\n(S'Variable_Type'\n(I2\nttRp459\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np460\ng26\n(S'Variable_Type'\n(I2\nttRp461\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np462\ng26\n(S'Variable_Type'\n(I2\nttRp463\nsS'Y:PMachine93 - COCANA32'\np464\ng26\n(S'Variable_Type'\n(I2\nttRp465\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np466\ng26\n(S'Variable_Type'\n(I2\nttRp467\nsS'Y:VBus87 - CLUCCI32'\np468\ng26\n(S'Variable_Type'\n(I2\nttRp469\nsS'Y:VBus62 - CCALVI32'\np470\ng26\n(S'Variable_Type'\n(I2\nttRp471\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np472\ng26\n(S'Variable_Type'\n(I2\nttRp473\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np474\ng26\n(S'Variable_Type'\n(I2\nttRp475\nsS'Y:VBus81 - CGHISO32'\np476\ng26\n(S'Variable_Type'\n(I2\nttRp477\nsS'Y:PMachine63 - CCASAM31'\np478\ng26\n(S'Variable_Type'\n(I2\nttRp479\nsS'Y:PMachine47 - CVAZZI21'\np480\ng26\n(S'Variable_Type'\n(I2\nttRp481\nsS'Y:VBus86 - CLUCCI31'\np482\ng26\n(S'Variable_Type'\n(I2\nttRp483\nsS'X:Load(pu)'\np484\ng26\n(S'Variable_Type'\n(I2\nttRp485\nsS'Y:VBus95 - COCANA34'\np486\ng26\n(S'Variable_Type'\n(I2\nttRp487\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np488\ng26\n(S'Variable_Type'\n(I2\nttRp489\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np490\ng26\n(S'Variable_Type'\n(I2\nttRp491\nsS'Y:Load 95 - COCANA34'\np492\ng26\n(S'Variable_Type'\n(I2\nttRp493\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np494\ng26\n(S'Variable_Type'\n(I2\nttRp495\nsS'Y:PMachine90 - CMOROS31'\np496\ng26\n(S'Variable_Type'\n(I2\nttRp497\nsS'Y:Load 101 - CPIETR31'\np498\ng26\n(S'Variable_Type'\n(I2\nttRp499\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np500\ng26\n(S'Variable_Type'\n(I2\nttRp501\nsS'Y:PMachine132 - CVAZZI313'\np502\ng26\n(S'Variable_Type'\n(I2\nttRp503\nsS'Y:VBus125 - CVAZZI36'\np504\ng26\n(S'Variable_Type'\n(I2\nttRp505\nsS'Y:VBus135 - CLUCCI36'\np506\ng26\n(S'Variable_Type'\n(I2\nttRp507\nsS'Y:VBus47 - CVAZZI21'\np508\ng26\n(S'Variable_Type'\n(I2\nttRp509\nsS'Y:VBus94 - COCANA33'\np510\ng26\n(S'Variable_Type'\n(I2\nttRp511\nsS'Y:VBus17 - CCALVI21'\np512\ng26\n(S'Variable_Type'\n(I2\nttRp513\nsS'Y:VBus36 - CPROPR21'\np514\ng26\n(S'Variable_Type'\n(I2\nttRp515\nsS'Y:Load 90 - CMOROS31'\np516\ng26\n(S'Variable_Type'\n(I2\nttRp517\nsS'Y:VBus120 - CVAZZI31'\np518\ng26\n(S'Variable_Type'\n(I2\nttRp519\nsS'Y:VBus52 - CASPRE32'\np520\ng26\n(S'Variable_Type'\n(I2\nttRp521\nsS'Y:VBus25 - CFURIA22'\np522\ng26\n(S'Variable_Type'\n(I2\nttRp523\nsS'Y:Load 76 - CCORTE31'\np524\ng26\n(S'Variable_Type'\n(I2\nttRp525\nsS'Y:PMachine69 - CCASAM37'\np526\ng26\n(S'Variable_Type'\n(I2\nttRp527\nsS'Y:Load 74 - CCERVI31'\np528\ng26\n(S'Variable_Type'\n(I2\nttRp529\nsS'Y:PMachine92 - COCANA31'\np530\ng26\n(S'Variable_Type'\n(I2\nttRp531\nsS'Y:PMachine102 - CPORTO31'\np532\ng26\n(S'Variable_Type'\n(I2\nttRp533\nsS'Y:PMachine122 - CVAZZI33'\np534\ng26\n(S'Variable_Type'\n(I2\nttRp535\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np536\ng26\n(S'Variable_Type'\n(I2\nttRp537\nsS'Y:PMachine77 - CCORTE32'\np538\ng26\n(S'Variable_Type'\n(I2\nttRp539\nsS'Y:NbeTension'\np540\ng26\n(S'Variable_Type'\n(I2\nttRp541\nsS'Y:VBus126 - CVAZZI37'\np542\ng26\n(S'Variable_Type'\n(I2\nttRp543\nsS'Y:PMachine60 - CCALDA32'\np544\ng26\n(S'Variable_Type'\n(I2\nttRp545\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np546\ng26\n(S'Variable_Type'\n(I2\nttRp547\nsS'Y:VBus20 - CCERVI21'\np548\ng26\n(S'Variable_Type'\n(I2\nttRp549\nsS'Y:VBus119 - CTRAVO31'\np550\ng26\n(S'Variable_Type'\n(I2\nttRp551\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np552\ng26\n(S'Variable_Type'\n(I2\nttRp553\nsS'Y:VBus139 - CLUCCI310'\np554\ng26\n(S'Variable_Type'\n(I2\nttRp555\nsS'Y:VBus106 - CRIZZA31'\np556\ng26\n(S'Variable_Type'\n(I2\nttRp557\nsS'Y:PMachine66 - CCASAM34'\np558\ng26\n(S'Variable_Type'\n(I2\nttRp559\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np560\ng26\n(S'Variable_Type'\n(I2\nttRp561\nsS'Y:VBus136 - CLUCCI37'\np562\ng26\n(S'Variable_Type'\n(I2\nttRp563\nsS'Y:VBus90 - CMOROS31'\np564\ng26\n(S'Variable_Type'\n(I2\nttRp565\nsS'X:lineOff#'\np566\ng26\n(S'Variable_Type'\n(I2\nttRp567\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np568\ng26\n(S'Variable_Type'\n(I2\nttRp569\nsS'Y:VBus108 - CSAGON31'\np570\ng26\n(S'Variable_Type'\n(I2\nttRp571\nsS'Y:VBus137 - CLUCCI38'\np572\ng26\n(S'Variable_Type'\n(I2\nttRp573\nsS'Y:VBus130 - CVAZZI311'\np574\ng26\n(S'Variable_Type'\n(I2\nttRp575\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np576\ng26\n(S'Variable_Type'\n(I2\nttRp577\nsS'Y:VBus46 - CTRAVO21'\np578\ng26\n(S'Variable_Type'\n(I2\nttRp579\nsS'Y:VBus113 - CSAMPO32'\np580\ng26\n(S'Variable_Type'\n(I2\nttRp581\nsS'Y:PMachine133 - CVAZZI314'\np582\ng26\n(S'Variable_Type'\n(I2\nttRp583\nsS'Y:PMachine65 - CCASAM33'\np584\ng26\n(S'Variable_Type'\n(I2\nttRp585\nsS'Y:VBus78 - CFURIA31'\np586\ng26\n(S'Variable_Type'\n(I2\nttRp587\nsS'Y:VBus26 - CGHISO21'\np588\ng26\n(S'Variable_Type'\n(I2\nttRp589\nsS'Y:VBus121 - CVAZZI32'\np590\ng26\n(S'Variable_Type'\n(I2\nttRp591\nsS'Y:PMachine81 - CGHISO32'\np592\ng26\n(S'Variable_Type'\n(I2\nttRp593\nsS'Y:PMachine97 - COCANA36'\np594\ng26\n(S'Variable_Type'\n(I2\nttRp595\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np596\ng26\n(S'Variable_Type'\n(I2\nttRp597\nsS'Y:PMachine83 - CILERO32'\np598\ng26\n(S'Variable_Type'\n(I2\nttRp599\nsS'Y:VBus83 - CILERO32'\np600\ng26\n(S'Variable_Type'\n(I2\nttRp601\nsS'Y:VBus66 - CCASAM34'\np602\ng26\n(S'Variable_Type'\n(I2\nttRp603\nsS'Y:PMachine1 - CBONIF11'\np604\ng26\n(S'Variable_Type'\n(I2\nttRp605\nsS'Y:VBus111 - CSTMAR31'\np606\ng26\n(S'Variable_Type'\n(I2\nttRp607\nsS'Y:VBus124 - CVAZZI35'\np608\ng26\n(S'Variable_Type'\n(I2\nttRp609\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np610\ng26\n(S'Variable_Type'\n(I2\nttRp611\nsS'Y:PMachine131 - CVAZZI312'\np612\ng26\n(S'Variable_Type'\n(I2\nttRp613\nsS'Y:VBus44 - CTAGLI21'\np614\ng26\n(S'Variable_Type'\n(I2\nttRp615\nsS'Y:VBus88 - CLUCCI33'\np616\ng26\n(S'Variable_Type'\n(I2\nttRp617\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np618\ng26\n(S'Variable_Type'\n(I2\nttRp619\nsS'Y:VBus38 - CSAGON21'\np620\ng26\n(S'Variable_Type'\n(I2\nttRp621\nsS'Y:VBus29 - CLUCCI21'\np622\ng26\n(S'Variable_Type'\n(I2\nttRp623\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np624\ng26\n(S'Variable_Type'\n(I2\nttRp625\nsS'Y:VBus110 - CSTLUC31'\np626\ng26\n(S'Variable_Type'\n(I2\nttRp627\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np628\ng26\n(S'Variable_Type'\n(I2\nttRp629\nssS'metas'\np630\n(dp631\nsS'values'\np632\n(dp633\nS'attribute'\np634\n(S'Iteration'\np635\ng107\ntp636\nsS'yaxisTitle'\np637\n(S'frequency'\np638\nI0\ntp639\nsS'xaxisTitle'\np640\n(g635\ng107\ntp641\nsS'mainTitle'\np642\n(S''\nI0\ntp643\nsS'yPaxisTitle'\np644\n(S''\nI0\ntp645\nsS'targetValue'\np646\n(NI-2\ntp647\nsS'visibleOutcomes'\np648\n((lI-2\ntp649\nssS'time'\np650\nF1370016679.714\nsba(iOWContexts\nContext\np651\n(dp652\ng632\n(dp653\nS'attribute'\np654\n(S'X:Load(pu)'\np655\ng26\n(S'Variable_Type'\n(I2\nttRp656\ntp657\nsS'yaxisTitle'\np658\n(g638\nI0\ntp659\nsS'xaxisTitle'\np660\n(g655\ng656\ntp661\nsS'mainTitle'\np662\n(S''\nI0\ntp663\nsS'yPaxisTitle'\np664\n(S''\nI0\ntp665\nsS'targetValue'\np666\n(NI-2\ntp667\nsS'visibleOutcomes'\np668\n((lI-2\ntp669\nssg23\n(dp670\nS'Y:PMachine134 - CLUCCI35'\np671\ng26\n(S'Variable_Type'\n(I2\nttRp672\nsS'Y:VBus77 - CCORTE32'\np673\ng26\n(S'Variable_Type'\n(I2\nttRp674\nsS'Y:VBus134 - CLUCCI35'\np675\ng26\n(S'Variable_Type'\n(I2\nttRp676\nsS'Y:VBus109 - CSAGON32'\np677\ng26\n(S'Variable_Type'\n(I2\nttRp678\nsS'Y:VBus102 - CPORTO31'\np679\ng26\n(S'Variable_Type'\n(I2\nttRp680\nsS'Y:VBus18 - CCASAM21'\np681\ng26\n(S'Variable_Type'\n(I2\nttRp682\nsS'Y:VBus114 - CSOVEN31'\np683\ng26\n(S'Variable_Type'\n(I2\nttRp684\nsS'Y:VBus83 - CILERO32'\np685\ng26\n(S'Variable_Type'\n(I2\nttRp686\nsS'Y:VBus117 - CTOLLA32'\np687\ng26\n(S'Variable_Type'\n(I2\nttRp688\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np689\ng26\n(S'Variable_Type'\n(I2\nttRp690\nsS'Y:PMachine87 - CLUCCI32'\np691\ng26\n(S'Variable_Type'\n(I2\nttRp692\nsS'Y:PMachine113 - CSAMPO32'\np693\ng26\n(S'Variable_Type'\n(I2\nttRp694\nsS'Y:Load 84 - CLORET31'\np695\ng26\n(S'Variable_Type'\n(I2\nttRp696\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np697\ng26\n(S'Variable_Type'\n(I2\nttRp698\nsS'Y:Load 80 - CGHISO31'\np699\ng26\n(S'Variable_Type'\n(I2\nttRp700\nsS'Y:PMachine125 - CVAZZI36'\np701\ng26\n(S'Variable_Type'\n(I2\nttRp702\nsS'Y:VBus116 - CTOLLA31'\np703\ng26\n(S'Variable_Type'\n(I2\nttRp704\nsS'Y:PMachine88 - CLUCCI33'\np705\ng26\n(S'Variable_Type'\n(I2\nttRp706\nsS'Y:PMachine124 - CVAZZI35'\np707\ng26\n(S'Variable_Type'\n(I2\nttRp708\nsS'Y:PMachine111 - CSTMAR31'\np709\ng26\n(S'Variable_Type'\n(I2\nttRp710\nsS'Y:NbeTransit'\np711\ng26\n(S'Variable_Type'\n(I2\nttRp712\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np713\ng26\n(S'Variable_Type'\n(I2\nttRp714\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np715\ng26\n(S'Variable_Type'\n(I2\nttRp716\nsS'Y:PMachine130 - CVAZZI311'\np717\ng26\n(S'Variable_Type'\n(I2\nttRp718\nsS'Y:PMachine127 - CVAZZI38'\np719\ng26\n(S'Variable_Type'\n(I2\nttRp720\nsS'Y:VBus131 - CVAZZI312'\np721\ng26\n(S'Variable_Type'\n(I2\nttRp722\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np723\ng26\n(S'Variable_Type'\n(I2\nttRp724\nsS'Y:PMachine123 - CVAZZI34'\np725\ng26\n(S'Variable_Type'\n(I2\nttRp726\nsS'Y:VBus118 - CTOLLA33'\np727\ng26\n(S'Variable_Type'\n(I2\nttRp728\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np729\ng26\n(S'Variable_Type'\n(I2\nttRp730\nsS'Y:PMachine58 - CBONIF32'\np731\ng26\n(S'Variable_Type'\n(I2\nttRp732\nsS'Y:VBus90 - CMOROS31'\np733\ng26\n(S'Variable_Type'\n(I2\nttRp734\nsS'Y:Load 104 - CPROPR31'\np735\ng26\n(S'Variable_Type'\n(I2\nttRp736\nsS'Y:PMachine30 - CLUCCI22'\np737\ng26\n(S'Variable_Type'\n(I2\nttRp738\nsS'Y:VBus100 - COLETT31'\np739\ng26\n(S'Variable_Type'\n(I2\nttRp740\nsS'Y:PProdTot'\np741\ng26\n(S'Variable_Type'\n(I2\nttRp742\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np743\ng26\n(S'Variable_Type'\n(I2\nttRp744\nsS'Y:VBus57 - CBONIF31'\np745\ng26\n(S'Variable_Type'\n(I2\nttRp746\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np747\ng26\n(S'Variable_Type'\n(I2\nttRp748\nsS'Y:PMachine131 - CVAZZI312'\np749\ng26\n(S'Variable_Type'\n(I2\nttRp750\nsS'Y:PMachine109 - CSAGON32'\np751\ng26\n(S'Variable_Type'\n(I2\nttRp752\nsS'Y:PMachine135 - CLUCCI36'\np753\ng26\n(S'Variable_Type'\n(I2\nttRp754\nsS'Y:VBus30 - CLUCCI22'\np755\ng26\n(S'Variable_Type'\n(I2\nttRp756\nsS'Y:VBus122 - CVAZZI33'\np757\ng26\n(S'Variable_Type'\n(I2\nttRp758\nsS'Y:VBus22 - CCORTE21'\np759\ng26\n(S'Variable_Type'\n(I2\nttRp760\nsS'Y:PMachine89 - CLUCCI34'\np761\ng26\n(S'Variable_Type'\n(I2\nttRp762\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np763\ng26\n(S'Variable_Type'\n(I2\nttRp764\nsS'Y:PMachine107 - CRIZZA32'\np765\ng26\n(S'Variable_Type'\n(I2\nttRp766\nsS'Y:VBus16 - CCALDA21'\np767\ng26\n(S'Variable_Type'\n(I2\nttRp768\nsS'Y:Load 102 - CPORTO31'\np769\ng26\n(S'Variable_Type'\n(I2\nttRp770\nsS'Y:VBus107 - CRIZZA32'\np771\ng26\n(S'Variable_Type'\n(I2\nttRp772\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np773\ng26\n(S'Variable_Type'\n(I2\nttRp774\nsS'Y:VBus41 - CSAMPO21'\np775\ng26\n(S'Variable_Type'\n(I2\nttRp776\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np777\ng26\n(S'Variable_Type'\n(I2\nttRp778\nsS'Y:VBus34 - CPIETR21'\np779\ng26\n(S'Variable_Type'\n(I2\nttRp780\nsS'Y:Load 108 - CSAGON31'\np781\ng26\n(S'Variable_Type'\n(I2\nttRp782\nsS'Y:VBus56 - CBIGUG32'\np783\ng26\n(S'Variable_Type'\n(I2\nttRp784\nsS'Y:PMachine42 - CSISCO21'\np785\ng26\n(S'Variable_Type'\n(I2\nttRp786\nsS'Y:PMachine138 - CLUCCI39'\np787\ng26\n(S'Variable_Type'\n(I2\nttRp788\nsS'Y:PMachine112 - CSAMPO31'\np789\ng26\n(S'Variable_Type'\n(I2\nttRp790\nsS'Y:VBus105 - CPROPR32'\np791\ng26\n(S'Variable_Type'\n(I2\nttRp792\nsS'Y:VBus1 - CBONIF11'\np793\ng26\n(S'Variable_Type'\n(I2\nttRp794\nsS'Y:VBus12 - CBASTI21'\np795\ng26\n(S'Variable_Type'\n(I2\nttRp796\nsS'Y:PMachine129 - CVAZZI310'\np797\ng26\n(S'Variable_Type'\n(I2\nttRp798\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np799\ng26\n(S'Variable_Type'\n(I2\nttRp800\nsS'Y:VBus35 - CPORTO21'\np801\ng26\n(S'Variable_Type'\n(I2\nttRp802\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np803\ng26\n(S'Variable_Type'\n(I2\nttRp804\nsS'Y:VBus54 - CBASTI32'\np805\ng26\n(S'Variable_Type'\n(I2\nttRp806\nsS'Y:VBus69 - CCASAM37'\np807\ng26\n(S'Variable_Type'\n(I2\nttRp808\nsS'Y:VBus45 - CTOLLA21'\np809\ng26\n(S'Variable_Type'\n(I2\nttRp810\nsS'Y:PMachine115 - CTAGLI31'\np811\ng26\n(S'Variable_Type'\n(I2\nttRp812\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np813\ng26\n(S'Variable_Type'\n(I2\nttRp814\nsS'Y:VBus43 - CSOVEN21'\np815\ng26\n(S'Variable_Type'\n(I2\nttRp816\nsS'Y:VBus76 - CCORTE31'\np817\ng26\n(S'Variable_Type'\n(I2\nttRp818\nsS'Y:VBus75 - CCORSC31'\np819\ng26\n(S'Variable_Type'\n(I2\nttRp820\nsS'Y:PMachine78 - CFURIA31'\np821\ng26\n(S'Variable_Type'\n(I2\nttRp822\nsS'Y:VBus127 - CVAZZI38'\np823\ng26\n(S'Variable_Type'\n(I2\nttRp824\nsS'Y:VBus115 - CTAGLI31'\np825\ng26\n(S'Variable_Type'\n(I2\nttRp826\nsS'Y:Load 61 - CCALVI31'\np827\ng26\n(S'Variable_Type'\n(I2\nttRp828\nsS'Y:VBus55 - CBIGUG31'\np829\ng26\n(S'Variable_Type'\n(I2\nttRp830\nsS'Y:Load 42 - CSISCO21'\np831\ng26\n(S'Variable_Type'\n(I2\nttRp832\nsS'Y:VBus72 - CCASTI31'\np833\ng26\n(S'Variable_Type'\n(I2\nttRp834\nsS'Y:Load 37 - CRIZZA21'\np835\ng26\n(S'Variable_Type'\n(I2\nttRp836\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np837\ng26\n(S'Variable_Type'\n(I2\nttRp838\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np839\ng26\n(S'Variable_Type'\n(I2\nttRp840\nsS'Y:PMachine137 - CLUCCI38'\np841\ng26\n(S'Variable_Type'\n(I2\nttRp842\nsS'Y:PMachine67 - CCASAM35'\np843\ng26\n(S'Variable_Type'\n(I2\nttRp844\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np845\ng26\n(S'Variable_Type'\n(I2\nttRp846\nsS'Y:VBus31 - CMOROS21'\np847\ng26\n(S'Variable_Type'\n(I2\nttRp848\nsS'Y:VBus103 - CPORTO32'\np849\ng26\n(S'Variable_Type'\n(I2\nttRp850\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np851\ng26\n(S'Variable_Type'\n(I2\nttRp852\nsS'Y:PMachine14 - CBONIF21'\np853\ng26\n(S'Variable_Type'\n(I2\nttRp854\nsS'Y:PMachine72 - CCASTI31'\np855\ng26\n(S'Variable_Type'\n(I2\nttRp856\nsS'Y:VBus27 - CILERO21'\np857\ng26\n(S'Variable_Type'\n(I2\nttRp858\nsS'Y:PMachine75 - CCORSC31'\np859\ng26\n(S'Variable_Type'\n(I2\nttRp860\nsS'Y:Load 51 - CASPRE31'\np861\ng26\n(S'Variable_Type'\n(I2\nttRp862\nsS'Y:VBus51 - CASPRE31'\np863\ng26\n(S'Variable_Type'\n(I2\nttRp864\nsS'Y:PMachine94 - COCANA33'\np865\ng26\n(S'Variable_Type'\n(I2\nttRp866\nsS'Y:PMachine126 - CVAZZI37'\np867\ng26\n(S'Variable_Type'\n(I2\nttRp868\nsS'Y:Load 86 - CLUCCI31'\np869\ng26\n(S'Variable_Type'\n(I2\nttRp870\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np871\ng26\n(S'Variable_Type'\n(I2\nttRp872\nsS'Y:PMachine104 - CPROPR31'\np873\ng26\n(S'Variable_Type'\n(I2\nttRp874\nsS'Y:VBus128 - CVAZZI39'\np875\ng26\n(S'Variable_Type'\n(I2\nttRp876\nsS'Y:PMachine136 - CLUCCI37'\np877\ng26\n(S'Variable_Type'\n(I2\nttRp878\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np879\ng26\n(S'Variable_Type'\n(I2\nttRp880\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np881\ng26\n(S'Variable_Type'\n(I2\nttRp882\nsS'Y:PMachine29 - CLUCCI21'\np883\ng26\n(S'Variable_Type'\n(I2\nttRp884\nsS'Y:VBus42 - CSISCO21'\np885\ng26\n(S'Variable_Type'\n(I2\nttRp886\nsS'Y:Load 110 - CSTLUC31'\np887\ng26\n(S'Variable_Type'\n(I2\nttRp888\nsS'Y:VBus14 - CBONIF21'\np889\ng26\n(S'Variable_Type'\n(I2\nttRp890\nsS'Y:VBus73 - CCASTI32'\np891\ng26\n(S'Variable_Type'\n(I2\nttRp892\nsS'Y:VBus64 - CCASAM32'\np893\ng26\n(S'Variable_Type'\n(I2\nttRp894\nsS'Y:PMachine128 - CVAZZI39'\np895\ng26\n(S'Variable_Type'\n(I2\nttRp896\nsS'Y:VBus133 - CVAZZI314'\np897\ng26\n(S'Variable_Type'\n(I2\nttRp898\nsS'Y:VBus63 - CCASAM31'\np899\ng26\n(S'Variable_Type'\n(I2\nttRp900\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np901\ng26\n(S'Variable_Type'\n(I2\nttRp902\nsS'Y:%Losses'\np903\ng26\n(S'Variable_Type'\n(I2\nttRp904\nsS'Y:VBus85 - CLORET32'\np905\ng26\n(S'Variable_Type'\n(I2\nttRp906\nsS'Y:Load 59 - CCALDA31'\np907\ng26\n(S'Variable_Type'\n(I2\nttRp908\nsS'Y:VBus129 - CVAZZI310'\np909\ng26\n(S'Variable_Type'\n(I2\nttRp910\nsS'Y:VBus101 - CPIETR31'\np911\ng26\n(S'Variable_Type'\n(I2\nttRp912\nsS'Y:PMachine106 - CRIZZA31'\np913\ng26\n(S'Variable_Type'\n(I2\nttRp914\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np915\ng26\n(S'Variable_Type'\n(I2\nttRp916\nsS'Y:PMachine118 - CTOLLA33'\np917\ng26\n(S'Variable_Type'\n(I2\nttRp918\nsS'Y:VBus19 - CCASTI21'\np919\ng26\n(S'Variable_Type'\n(I2\nttRp920\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np921\ng26\n(S'Variable_Type'\n(I2\nttRp922\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np923\ng26\n(S'Variable_Type'\n(I2\nttRp924\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np925\ng26\n(S'Variable_Type'\n(I2\nttRp926\nsS'Y:Load 115 - CTAGLI31'\np927\ng26\n(S'Variable_Type'\n(I2\nttRp928\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np929\ng26\n(S'Variable_Type'\n(I2\nttRp930\nsS'Y:VBus15 - CBONIF22'\np931\ng26\n(S'Variable_Type'\n(I2\nttRp932\nsS'Y:PMachine47 - CVAZZI21'\np933\ng26\n(S'Variable_Type'\n(I2\nttRp934\nsS'Y:VBus123 - CVAZZI34'\np935\ng26\n(S'Variable_Type'\n(I2\nttRp936\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np937\ng26\n(S'Variable_Type'\n(I2\nttRp938\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np939\ng26\n(S'Variable_Type'\n(I2\nttRp940\nsS'Y:VBus44 - CTAGLI21'\np941\ng26\n(S'Variable_Type'\n(I2\nttRp942\nsS'Y:VBus65 - CCASAM33'\np943\ng26\n(S'Variable_Type'\n(I2\nttRp944\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np945\ng26\n(S'Variable_Type'\n(I2\nttRp946\nsS'Y:PMachine139 - CLUCCI310'\np947\ng26\n(S'Variable_Type'\n(I2\nttRp948\nsS'Y:VBus112 - CSAMPO31'\np949\ng26\n(S'Variable_Type'\n(I2\nttRp950\nsS'Y:VBus68 - CCASAM36'\np951\ng26\n(S'Variable_Type'\n(I2\nttRp952\nsS'Y:Load 55 - CBIGUG31'\np953\ng26\n(S'Variable_Type'\n(I2\nttRp954\nsS'Y:PMachine53 - CBASTI31'\np955\ng26\n(S'Variable_Type'\n(I2\nttRp956\nsS'Y:NbeTransit_0.9-1'\np957\ng26\n(S'Variable_Type'\n(I2\nttRp958\nsS'Y:VBus24 - CFURIA21'\np959\ng26\n(S'Variable_Type'\n(I2\nttRp960\nsS'Y:VBus23 - CCORTE22'\np961\ng26\n(S'Variable_Type'\n(I2\nttRp962\nsS'XProdEolienne%Pnom'\np963\ng26\n(S'Variable_Type'\n(I2\nttRp964\nsS'Y:VBus40 - CSTMAR21'\np965\ng26\n(S'Variable_Type'\n(I2\nttRp966\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np967\ng26\n(S'Variable_Type'\n(I2\nttRp968\nsS'Y:PMachine120 - CVAZZI31'\np969\ng26\n(S'Variable_Type'\n(I2\nttRp970\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np971\ng26\n(S'Variable_Type'\n(I2\nttRp972\nsS'Y:PMachine117 - CTOLLA32'\np973\ng26\n(S'Variable_Type'\n(I2\nttRp974\nsS'Y:VBus89 - CLUCCI34'\np975\ng26\n(S'Variable_Type'\n(I2\nttRp976\nsS'Y:VBus33 - COLETT21'\np977\ng26\n(S'Variable_Type'\n(I2\nttRp978\nsS'Y:VBus32 - COCANA21'\np979\ng26\n(S'Variable_Type'\n(I2\nttRp980\nsS'Y:PMachine121 - CVAZZI32'\np981\ng26\n(S'Variable_Type'\n(I2\nttRp982\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np983\ng26\n(S'Variable_Type'\n(I2\nttRp984\nsS'Y:VBus59 - CCALDA31'\np985\ng26\n(S'Variable_Type'\n(I2\nttRp986\nsS'Y:VBus82 - CILERO31'\np987\ng26\n(S'Variable_Type'\n(I2\nttRp988\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np989\ng26\n(S'Variable_Type'\n(I2\nttRp990\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np991\ng26\n(S'Variable_Type'\n(I2\nttRp992\nsS'Y:VBus37 - CRIZZA21'\np993\ng26\n(S'Variable_Type'\n(I2\nttRp994\nsS'Y:PMachine73 - CCASTI32'\np995\ng26\n(S'Variable_Type'\n(I2\nttRp996\nsS'Y:PMachine86 - CLUCCI31'\np997\ng26\n(S'Variable_Type'\n(I2\nttRp998\nsS'Y:Load 53 - CBASTI31'\np999\ng26\n(S'Variable_Type'\n(I2\nttRp1000\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np1001\ng26\n(S'Variable_Type'\n(I2\nttRp1002\nsS'Y:VBus21 - CCORSC21'\np1003\ng26\n(S'Variable_Type'\n(I2\nttRp1004\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np1005\ng26\n(S'Variable_Type'\n(I2\nttRp1006\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np1007\ng26\n(S'Variable_Type'\n(I2\nttRp1008\nsS'Y:Load 82 - CILERO31'\np1009\ng26\n(S'Variable_Type'\n(I2\nttRp1010\nsS'Y:PMachine64 - CCASAM32'\np1011\ng26\n(S'Variable_Type'\n(I2\nttRp1012\nsS'Y:VBus67 - CCASAM35'\np1013\ng26\n(S'Variable_Type'\n(I2\nttRp1014\nsS'Y:VBus53 - CBASTI31'\np1015\ng26\n(S'Variable_Type'\n(I2\nttRp1016\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np1017\ng26\n(S'Variable_Type'\n(I2\nttRp1018\nsS'Y:VBus61 - CCALVI31'\np1019\ng26\n(S'Variable_Type'\n(I2\nttRp1020\nsS'Y:VBus93 - COCANA32'\np1021\ng26\n(S'Variable_Type'\n(I2\nttRp1022\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np1023\ng26\n(S'Variable_Type'\n(I2\nttRp1024\nsS'Y:PMachine92 - COCANA31'\np1025\ng26\n(S'Variable_Type'\n(I2\nttRp1026\nsS'Y:VBus104 - CPROPR31'\np1027\ng26\n(S'Variable_Type'\n(I2\nttRp1028\nsS'Y:VBus48 - CZSSS621'\np1029\ng26\n(S'Variable_Type'\n(I2\nttRp1030\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np1031\ng26\n(S'Variable_Type'\n(I2\nttRp1032\nsS'Y:VBus74 - CCERVI31'\np1033\ng26\n(S'Variable_Type'\n(I2\nttRp1034\nsS'Y:VBus36 - CPROPR21'\np1035\ng26\n(S'Variable_Type'\n(I2\nttRp1036\nsS'Y:Load 100 - COLETT31'\np1037\ng26\n(S'Variable_Type'\n(I2\nttRp1038\nsS'Y:PMachine54 - CBASTI32'\np1039\ng26\n(S'Variable_Type'\n(I2\nttRp1040\nsS'Y:VBus138 - CLUCCI39'\np1041\ng26\n(S'Variable_Type'\n(I2\nttRp1042\nsS'Y:VBus39 - CSTLUC21'\np1043\ng26\n(S'Variable_Type'\n(I2\nttRp1044\nsS'Y:PMachine74 - CCERVI31'\np1045\ng26\n(S'Variable_Type'\n(I2\nttRp1046\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np1047\ng26\n(S'Variable_Type'\n(I2\nttRp1048\nsS'Y:Load 78 - CFURIA31'\np1049\ng26\n(S'Variable_Type'\n(I2\nttRp1050\nsS'Y:VBus28 - CLORET21'\np1051\ng26\n(S'Variable_Type'\n(I2\nttRp1052\nsS'Y:PMachine105 - CPROPR32'\np1053\ng26\n(S'Variable_Type'\n(I2\nttRp1054\nsS'Y:VBus96 - COCANA35'\np1055\ng26\n(S'Variable_Type'\n(I2\nttRp1056\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np1057\ng26\n(S'Variable_Type'\n(I2\nttRp1058\nsS'Y:PMachine18 - CCASAM21'\np1059\ng26\n(S'Variable_Type'\n(I2\nttRp1060\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np1061\ng26\n(S'Variable_Type'\n(I2\nttRp1062\nsS'Y:VBus13 - CBIGUG21'\np1063\ng26\n(S'Variable_Type'\n(I2\nttRp1064\nsS'Y:VBus92 - COCANA31'\np1065\ng26\n(S'Variable_Type'\n(I2\nttRp1066\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np1067\ng26\n(S'Variable_Type'\n(I2\nttRp1068\nsS'Y:Load 76 - CCORTE31'\np1069\ng26\n(S'Variable_Type'\n(I2\nttRp1070\nsS'Y:VBus58 - CBONIF32'\np1071\ng26\n(S'Variable_Type'\n(I2\nttRp1072\nsS'Y:VBus84 - CLORET31'\np1073\ng26\n(S'Variable_Type'\n(I2\nttRp1074\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np1075\ng26\n(S'Variable_Type'\n(I2\nttRp1076\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np1077\ng26\n(S'Variable_Type'\n(I2\nttRp1078\nsS'Y:VBus97 - COCANA36'\np1079\ng26\n(S'Variable_Type'\n(I2\nttRp1080\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np1081\ng26\n(S'Variable_Type'\n(I2\nttRp1082\nsS'Y:VBus106 - CRIZZA31'\np1083\ng26\n(S'Variable_Type'\n(I2\nttRp1084\nsS'Y:VBus79 - CFURIA32'\np1085\ng26\n(S'Variable_Type'\n(I2\nttRp1086\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np1087\ng26\n(S'Variable_Type'\n(I2\nttRp1088\nsS'Y:VBus80 - CGHISO31'\np1089\ng26\n(S'Variable_Type'\n(I2\nttRp1090\nsS'Y:PMachine114 - CSOVEN31'\np1091\ng26\n(S'Variable_Type'\n(I2\nttRp1092\nsS'Y:VBus132 - CVAZZI313'\np1093\ng26\n(S'Variable_Type'\n(I2\nttRp1094\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np1095\ng26\n(S'Variable_Type'\n(I2\nttRp1096\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np1097\ng26\n(S'Variable_Type'\n(I2\nttRp1098\nsS'Y:VBus87 - CLUCCI32'\np1099\ng26\n(S'Variable_Type'\n(I2\nttRp1100\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np1101\ng26\n(S'Variable_Type'\n(I2\nttRp1102\nsS'Y:VBus88 - CLUCCI33'\np1103\ng26\n(S'Variable_Type'\n(I2\nttRp1104\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np1105\ng26\n(S'Variable_Type'\n(I2\nttRp1106\nsS'Y:PMachine85 - CLORET32'\np1107\ng26\n(S'Variable_Type'\n(I2\nttRp1108\nsS'Y:VBus81 - CGHISO32'\np1109\ng26\n(S'Variable_Type'\n(I2\nttRp1110\nsS'Y:PMachine63 - CCASAM31'\np1111\ng26\n(S'Variable_Type'\n(I2\nttRp1112\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np1113\ng26\n(S'Variable_Type'\n(I2\nttRp1114\nsS'X:Load(pu)'\np1115\ng656\nsS'Y:NbeTension'\np1116\ng26\n(S'Variable_Type'\n(I2\nttRp1117\nsS'Y:VBus95 - COCANA34'\np1118\ng26\n(S'Variable_Type'\n(I2\nttRp1119\nsS'Y:VBus62 - CCALVI32'\np1120\ng26\n(S'Variable_Type'\n(I2\nttRp1121\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np1122\ng26\n(S'Variable_Type'\n(I2\nttRp1123\nsS'Y:Load 95 - COCANA34'\np1124\ng26\n(S'Variable_Type'\n(I2\nttRp1125\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np1126\ng26\n(S'Variable_Type'\n(I2\nttRp1127\nsS'Y:PMachine90 - CMOROS31'\np1128\ng26\n(S'Variable_Type'\n(I2\nttRp1129\nsS'Y:Load 101 - CPIETR31'\np1130\ng26\n(S'Variable_Type'\n(I2\nttRp1131\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np1132\ng26\n(S'Variable_Type'\n(I2\nttRp1133\nsS'Y:PMachine132 - CVAZZI313'\np1134\ng26\n(S'Variable_Type'\n(I2\nttRp1135\nsS'Y:PMachine65 - CCASAM33'\np1136\ng26\n(S'Variable_Type'\n(I2\nttRp1137\nsS'Y:VBus125 - CVAZZI36'\np1138\ng26\n(S'Variable_Type'\n(I2\nttRp1139\nsS'Y:VBus135 - CLUCCI36'\np1140\ng26\n(S'Variable_Type'\n(I2\nttRp1141\nsS'Y:VBus47 - CVAZZI21'\np1142\ng26\n(S'Variable_Type'\n(I2\nttRp1143\nsS'Y:VBus94 - COCANA33'\np1144\ng26\n(S'Variable_Type'\n(I2\nttRp1145\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np1146\ng26\n(S'Variable_Type'\n(I2\nttRp1147\nsS'Y:VBus17 - CCALVI21'\np1148\ng26\n(S'Variable_Type'\n(I2\nttRp1149\nsS'Y:Load 90 - CMOROS31'\np1150\ng26\n(S'Variable_Type'\n(I2\nttRp1151\nsS'Y:VBus120 - CVAZZI31'\np1152\ng26\n(S'Variable_Type'\n(I2\nttRp1153\nsS'Y:VBus52 - CASPRE32'\np1154\ng26\n(S'Variable_Type'\n(I2\nttRp1155\nsS'Y:VBus25 - CFURIA22'\np1156\ng26\n(S'Variable_Type'\n(I2\nttRp1157\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np1158\ng26\n(S'Variable_Type'\n(I2\nttRp1159\nsS'Y:PMachine69 - CCASAM37'\np1160\ng26\n(S'Variable_Type'\n(I2\nttRp1161\nsS'Y:PConsoTot'\np1162\ng26\n(S'Variable_Type'\n(I2\nttRp1163\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np1164\ng26\n(S'Variable_Type'\n(I2\nttRp1165\nsS'Y:PMachine102 - CPORTO31'\np1166\ng26\n(S'Variable_Type'\n(I2\nttRp1167\nsS'Y:VBus136 - CLUCCI37'\np1168\ng26\n(S'Variable_Type'\n(I2\nttRp1169\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np1170\ng26\n(S'Variable_Type'\n(I2\nttRp1171\nsS'Y:PMachine122 - CVAZZI33'\np1172\ng26\n(S'Variable_Type'\n(I2\nttRp1173\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np1174\ng26\n(S'Variable_Type'\n(I2\nttRp1175\nsS'Y:PMachine77 - CCORTE32'\np1176\ng26\n(S'Variable_Type'\n(I2\nttRp1177\nsS'Y:PMachine116 - CTOLLA31'\np1178\ng26\n(S'Variable_Type'\n(I2\nttRp1179\nsS'Y:VBus126 - CVAZZI37'\np1180\ng26\n(S'Variable_Type'\n(I2\nttRp1181\nsS'Y:PMachine60 - CCALDA32'\np1182\ng26\n(S'Variable_Type'\n(I2\nttRp1183\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np1184\ng26\n(S'Variable_Type'\n(I2\nttRp1185\nsS'Y:VBus20 - CCERVI21'\np1186\ng26\n(S'Variable_Type'\n(I2\nttRp1187\nsS'Y:VBus119 - CTRAVO31'\np1188\ng26\n(S'Variable_Type'\n(I2\nttRp1189\nsS'Y:VBus11 - CASPRE21'\np1190\ng26\n(S'Variable_Type'\n(I2\nttRp1191\nsS'Y:VBus139 - CLUCCI310'\np1192\ng26\n(S'Variable_Type'\n(I2\nttRp1193\nsS'Y:VBus60 - CCALDA32'\np1194\ng26\n(S'Variable_Type'\n(I2\nttRp1195\nsS'Y:PMachine66 - CCASAM34'\np1196\ng26\n(S'Variable_Type'\n(I2\nttRp1197\nsS'Y:PMachine101 - CPIETR31'\np1198\ng26\n(S'Variable_Type'\n(I2\nttRp1199\nsS'Y:PMachine133 - CVAZZI314'\np1200\ng26\n(S'Variable_Type'\n(I2\nttRp1201\nsS'Y:PMachine62 - CCALVI32'\np1202\ng26\n(S'Variable_Type'\n(I2\nttRp1203\nsS'Y:Load 74 - CCERVI31'\np1204\ng26\n(S'Variable_Type'\n(I2\nttRp1205\nsS'X:lineOff#'\np1206\ng26\n(S'Variable_Type'\n(I2\nttRp1207\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np1208\ng26\n(S'Variable_Type'\n(I2\nttRp1209\nsS'Y:VBus108 - CSAGON31'\np1210\ng26\n(S'Variable_Type'\n(I2\nttRp1211\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np1212\ng26\n(S'Variable_Type'\n(I2\nttRp1213\nsS'Y:VBus137 - CLUCCI38'\np1214\ng26\n(S'Variable_Type'\n(I2\nttRp1215\nsS'Y:VBus130 - CVAZZI311'\np1216\ng26\n(S'Variable_Type'\n(I2\nttRp1217\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np1218\ng26\n(S'Variable_Type'\n(I2\nttRp1219\nsS'Y:VBus46 - CTRAVO21'\np1220\ng26\n(S'Variable_Type'\n(I2\nttRp1221\nsS'Y:VBus113 - CSAMPO32'\np1222\ng26\n(S'Variable_Type'\n(I2\nttRp1223\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np1224\ng26\n(S'Variable_Type'\n(I2\nttRp1225\nsS'Y:PMachine68 - CCASAM36'\np1226\ng26\n(S'Variable_Type'\n(I2\nttRp1227\nsS'Y:VBus78 - CFURIA31'\np1228\ng26\n(S'Variable_Type'\n(I2\nttRp1229\nsS'Y:VBus26 - CGHISO21'\np1230\ng26\n(S'Variable_Type'\n(I2\nttRp1231\nsS'Y:VBus121 - CVAZZI32'\np1232\ng26\n(S'Variable_Type'\n(I2\nttRp1233\nsS'Y:PMachine97 - COCANA36'\np1234\ng26\n(S'Variable_Type'\n(I2\nttRp1235\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np1236\ng26\n(S'Variable_Type'\n(I2\nttRp1237\nsS'Y:PMachine83 - CILERO32'\np1238\ng26\n(S'Variable_Type'\n(I2\nttRp1239\nsS'Y:Max%A'\np1240\ng26\n(S'Variable_Type'\n(I2\nttRp1241\nsS'Y:VBus66 - CCASAM34'\np1242\ng26\n(S'Variable_Type'\n(I2\nttRp1243\nsS'Y:PMachine1 - CBONIF11'\np1244\ng26\n(S'Variable_Type'\n(I2\nttRp1245\nsS'Y:VBus111 - CSTMAR31'\np1246\ng26\n(S'Variable_Type'\n(I2\nttRp1247\nsS'Y:VBus124 - CVAZZI35'\np1248\ng26\n(S'Variable_Type'\n(I2\nttRp1249\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np1250\ng26\n(S'Variable_Type'\n(I2\nttRp1251\nsS'Y:VBus29 - CLUCCI21'\np1252\ng26\n(S'Variable_Type'\n(I2\nttRp1253\nsS'Y:PMachine93 - COCANA32'\np1254\ng26\n(S'Variable_Type'\n(I2\nttRp1255\nsS'Y:Load 57 - CBONIF31'\np1256\ng26\n(S'Variable_Type'\n(I2\nttRp1257\nsS'Y:VBus86 - CLUCCI31'\np1258\ng26\n(S'Variable_Type'\n(I2\nttRp1259\nsS'Y:VBus38 - CSAGON21'\np1260\ng26\n(S'Variable_Type'\n(I2\nttRp1261\nsS'Y:PMachine81 - CGHISO32'\np1262\ng26\n(S'Variable_Type'\n(I2\nttRp1263\nsS'Y:PMachine61 - CCALVI31'\np1264\ng26\n(S'Variable_Type'\n(I2\nttRp1265\nsS'Y:VBus110 - CSTLUC31'\np1266\ng26\n(S'Variable_Type'\n(I2\nttRp1267\nsS'X:ProdPV%Pnom'\np1268\ng26\n(S'Variable_Type'\n(I2\nttRp1269\nssg630\n(dp1270\nsg20\n(lp1271\nS'orderedDomain'\np1272\nasg650\nF1369744625.773\nsba(iOWContexts\nContext\np1273\n(dp1274\ng632\n(dp1275\ng654\n(S'Iteration'\np1276\ng26\n(S'Variable_Type'\n(I2\nttRp1277\ntp1278\nsg658\n(g638\nI0\ntp1279\nsg660\n(g1276\ng1277\ntp1280\nsg662\n(S''\nI0\ntp1281\nsg664\n(S''\nI0\ntp1282\nsg666\n(NI-2\ntp1283\nsg668\n((lI-2\ntp1284\nssg23\n(dp1285\nS'Y:PMachine134 - CLUCCI35'\np1286\ng26\n(S'Variable_Type'\n(I2\nttRp1287\nsS'Y:VBus77 - CCORTE32'\np1288\ng26\n(S'Variable_Type'\n(I2\nttRp1289\nsS'Y:VBus134 - CLUCCI35'\np1290\ng26\n(S'Variable_Type'\n(I2\nttRp1291\nsS'Y:VBus109 - CSAGON32'\np1292\ng26\n(S'Variable_Type'\n(I2\nttRp1293\nsS'Y:VBus102 - CPORTO31'\np1294\ng26\n(S'Variable_Type'\n(I2\nttRp1295\nsS'Y:VBus18 - CCASAM21'\np1296\ng26\n(S'Variable_Type'\n(I2\nttRp1297\nsS'Y:VBus114 - CSOVEN31'\np1298\ng26\n(S'Variable_Type'\n(I2\nttRp1299\nsS'Y:VBus83 - CILERO32'\np1300\ng26\n(S'Variable_Type'\n(I2\nttRp1301\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np1302\ng26\n(S'Variable_Type'\n(I2\nttRp1303\nsS'Y:PMachine87 - CLUCCI32'\np1304\ng26\n(S'Variable_Type'\n(I2\nttRp1305\nsS'Y:PMachine113 - CSAMPO32'\np1306\ng26\n(S'Variable_Type'\n(I2\nttRp1307\nsS'Y:Load 84 - CLORET31'\np1308\ng26\n(S'Variable_Type'\n(I2\nttRp1309\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np1310\ng26\n(S'Variable_Type'\n(I2\nttRp1311\nsS'Y:Load 42 - CSISCO21'\np1312\ng26\n(S'Variable_Type'\n(I2\nttRp1313\nsS'Y:PMachine125 - CVAZZI36'\np1314\ng26\n(S'Variable_Type'\n(I2\nttRp1315\nsS'Y:VBus116 - CTOLLA31'\np1316\ng26\n(S'Variable_Type'\n(I2\nttRp1317\nsS'Y:PMachine88 - CLUCCI33'\np1318\ng26\n(S'Variable_Type'\n(I2\nttRp1319\nsS'Y:PMachine124 - CVAZZI35'\np1320\ng26\n(S'Variable_Type'\n(I2\nttRp1321\nsS'Y:PMachine111 - CSTMAR31'\np1322\ng26\n(S'Variable_Type'\n(I2\nttRp1323\nsS'Y:NbeTransit'\np1324\ng26\n(S'Variable_Type'\n(I2\nttRp1325\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np1326\ng26\n(S'Variable_Type'\n(I2\nttRp1327\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np1328\ng26\n(S'Variable_Type'\n(I2\nttRp1329\nsS'Y:PMachine130 - CVAZZI311'\np1330\ng26\n(S'Variable_Type'\n(I2\nttRp1331\nsS'Y:PMachine127 - CVAZZI38'\np1332\ng26\n(S'Variable_Type'\n(I2\nttRp1333\nsS'Y:VBus131 - CVAZZI312'\np1334\ng26\n(S'Variable_Type'\n(I2\nttRp1335\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np1336\ng26\n(S'Variable_Type'\n(I2\nttRp1337\nsS'Y:PMachine123 - CVAZZI34'\np1338\ng26\n(S'Variable_Type'\n(I2\nttRp1339\nsS'Y:VBus118 - CTOLLA33'\np1340\ng26\n(S'Variable_Type'\n(I2\nttRp1341\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np1342\ng26\n(S'Variable_Type'\n(I2\nttRp1343\nsS'Y:PMachine58 - CBONIF32'\np1344\ng26\n(S'Variable_Type'\n(I2\nttRp1345\nsS'Y:VBus90 - CMOROS31'\np1346\ng26\n(S'Variable_Type'\n(I2\nttRp1347\nsS'Y:Load 104 - CPROPR31'\np1348\ng26\n(S'Variable_Type'\n(I2\nttRp1349\nsS'Y:PMachine30 - CLUCCI22'\np1350\ng26\n(S'Variable_Type'\n(I2\nttRp1351\nsS'Y:VBus100 - COLETT31'\np1352\ng26\n(S'Variable_Type'\n(I2\nttRp1353\nsS'Y:PProdTot'\np1354\ng26\n(S'Variable_Type'\n(I2\nttRp1355\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np1356\ng26\n(S'Variable_Type'\n(I2\nttRp1357\nsS'Y:VBus57 - CBONIF31'\np1358\ng26\n(S'Variable_Type'\n(I2\nttRp1359\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np1360\ng26\n(S'Variable_Type'\n(I2\nttRp1361\nsS'Iteration'\np1362\ng1277\nsS'Y:PMachine109 - CSAGON32'\np1363\ng26\n(S'Variable_Type'\n(I2\nttRp1364\nsS'Y:PMachine135 - CLUCCI36'\np1365\ng26\n(S'Variable_Type'\n(I2\nttRp1366\nsS'Y:VBus30 - CLUCCI22'\np1367\ng26\n(S'Variable_Type'\n(I2\nttRp1368\nsS'Y:VBus122 - CVAZZI33'\np1369\ng26\n(S'Variable_Type'\n(I2\nttRp1370\nsS'Y:VBus22 - CCORTE21'\np1371\ng26\n(S'Variable_Type'\n(I2\nttRp1372\nsS'Y:VBus117 - CTOLLA32'\np1373\ng26\n(S'Variable_Type'\n(I2\nttRp1374\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np1375\ng26\n(S'Variable_Type'\n(I2\nttRp1376\nsS'Y:PMachine107 - CRIZZA32'\np1377\ng26\n(S'Variable_Type'\n(I2\nttRp1378\nsS'Y:VBus16 - CCALDA21'\np1379\ng26\n(S'Variable_Type'\n(I2\nttRp1380\nsS'Y:Load 102 - CPORTO31'\np1381\ng26\n(S'Variable_Type'\n(I2\nttRp1382\nsS'Y:VBus107 - CRIZZA32'\np1383\ng26\n(S'Variable_Type'\n(I2\nttRp1384\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np1385\ng26\n(S'Variable_Type'\n(I2\nttRp1386\nsS'Y:VBus41 - CSAMPO21'\np1387\ng26\n(S'Variable_Type'\n(I2\nttRp1388\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np1389\ng26\n(S'Variable_Type'\n(I2\nttRp1390\nsS'Y:VBus34 - CPIETR21'\np1391\ng26\n(S'Variable_Type'\n(I2\nttRp1392\nsS'Y:Load 108 - CSAGON31'\np1393\ng26\n(S'Variable_Type'\n(I2\nttRp1394\nsS'Y:VBus56 - CBIGUG32'\np1395\ng26\n(S'Variable_Type'\n(I2\nttRp1396\nsS'Y:PMachine42 - CSISCO21'\np1397\ng26\n(S'Variable_Type'\n(I2\nttRp1398\nsS'Y:PMachine138 - CLUCCI39'\np1399\ng26\n(S'Variable_Type'\n(I2\nttRp1400\nsS'Y:PMachine112 - CSAMPO31'\np1401\ng26\n(S'Variable_Type'\n(I2\nttRp1402\nsS'Y:VBus105 - CPROPR32'\np1403\ng26\n(S'Variable_Type'\n(I2\nttRp1404\nsS'Y:VBus1 - CBONIF11'\np1405\ng26\n(S'Variable_Type'\n(I2\nttRp1406\nsS'Y:VBus12 - CBASTI21'\np1407\ng26\n(S'Variable_Type'\n(I2\nttRp1408\nsS'Y:PMachine129 - CVAZZI310'\np1409\ng26\n(S'Variable_Type'\n(I2\nttRp1410\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np1411\ng26\n(S'Variable_Type'\n(I2\nttRp1412\nsS'Y:VBus35 - CPORTO21'\np1413\ng26\n(S'Variable_Type'\n(I2\nttRp1414\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np1415\ng26\n(S'Variable_Type'\n(I2\nttRp1416\nsS'Y:VBus54 - CBASTI32'\np1417\ng26\n(S'Variable_Type'\n(I2\nttRp1418\nsS'Y:VBus69 - CCASAM37'\np1419\ng26\n(S'Variable_Type'\n(I2\nttRp1420\nsS'Y:VBus45 - CTOLLA21'\np1421\ng26\n(S'Variable_Type'\n(I2\nttRp1422\nsS'Y:PMachine115 - CTAGLI31'\np1423\ng26\n(S'Variable_Type'\n(I2\nttRp1424\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np1425\ng26\n(S'Variable_Type'\n(I2\nttRp1426\nsS'Y:VBus43 - CSOVEN21'\np1427\ng26\n(S'Variable_Type'\n(I2\nttRp1428\nsS'Y:VBus76 - CCORTE31'\np1429\ng26\n(S'Variable_Type'\n(I2\nttRp1430\nsS'Y:VBus75 - CCORSC31'\np1431\ng26\n(S'Variable_Type'\n(I2\nttRp1432\nsS'Y:PMachine78 - CFURIA31'\np1433\ng26\n(S'Variable_Type'\n(I2\nttRp1434\nsS'Y:VBus127 - CVAZZI38'\np1435\ng26\n(S'Variable_Type'\n(I2\nttRp1436\nsS'Y:VBus115 - CTAGLI31'\np1437\ng26\n(S'Variable_Type'\n(I2\nttRp1438\nsS'Y:Load 61 - CCALVI31'\np1439\ng26\n(S'Variable_Type'\n(I2\nttRp1440\nsS'Y:VBus55 - CBIGUG31'\np1441\ng26\n(S'Variable_Type'\n(I2\nttRp1442\nsS'Y:Load 80 - CGHISO31'\np1443\ng26\n(S'Variable_Type'\n(I2\nttRp1444\nsS'Y:VBus72 - CCASTI31'\np1445\ng26\n(S'Variable_Type'\n(I2\nttRp1446\nsS'Y:Load 37 - CRIZZA21'\np1447\ng26\n(S'Variable_Type'\n(I2\nttRp1448\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np1449\ng26\n(S'Variable_Type'\n(I2\nttRp1450\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np1451\ng26\n(S'Variable_Type'\n(I2\nttRp1452\nsS'Y:PMachine102 - CPORTO31'\np1453\ng26\n(S'Variable_Type'\n(I2\nttRp1454\nsS'Y:PMachine67 - CCASAM35'\np1455\ng26\n(S'Variable_Type'\n(I2\nttRp1456\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np1457\ng26\n(S'Variable_Type'\n(I2\nttRp1458\nsS'Y:VBus31 - CMOROS21'\np1459\ng26\n(S'Variable_Type'\n(I2\nttRp1460\nsS'Y:VBus103 - CPORTO32'\np1461\ng26\n(S'Variable_Type'\n(I2\nttRp1462\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np1463\ng26\n(S'Variable_Type'\n(I2\nttRp1464\nsS'Y:PMachine14 - CBONIF21'\np1465\ng26\n(S'Variable_Type'\n(I2\nttRp1466\nsS'Y:PMachine72 - CCASTI31'\np1467\ng26\n(S'Variable_Type'\n(I2\nttRp1468\nsS'Y:VBus27 - CILERO21'\np1469\ng26\n(S'Variable_Type'\n(I2\nttRp1470\nsS'Y:PMachine75 - CCORSC31'\np1471\ng26\n(S'Variable_Type'\n(I2\nttRp1472\nsS'Y:Load 51 - CASPRE31'\np1473\ng26\n(S'Variable_Type'\n(I2\nttRp1474\nsS'Y:VBus51 - CASPRE31'\np1475\ng26\n(S'Variable_Type'\n(I2\nttRp1476\nsS'Y:PMachine94 - COCANA33'\np1477\ng26\n(S'Variable_Type'\n(I2\nttRp1478\nsS'Y:PMachine126 - CVAZZI37'\np1479\ng26\n(S'Variable_Type'\n(I2\nttRp1480\nsS'Y:Load 86 - CLUCCI31'\np1481\ng26\n(S'Variable_Type'\n(I2\nttRp1482\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np1483\ng26\n(S'Variable_Type'\n(I2\nttRp1484\nsS'Y:PMachine104 - CPROPR31'\np1485\ng26\n(S'Variable_Type'\n(I2\nttRp1486\nsS'Y:VBus128 - CVAZZI39'\np1487\ng26\n(S'Variable_Type'\n(I2\nttRp1488\nsS'Y:PMachine136 - CLUCCI37'\np1489\ng26\n(S'Variable_Type'\n(I2\nttRp1490\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np1491\ng26\n(S'Variable_Type'\n(I2\nttRp1492\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np1493\ng26\n(S'Variable_Type'\n(I2\nttRp1494\nsS'Y:PMachine29 - CLUCCI21'\np1495\ng26\n(S'Variable_Type'\n(I2\nttRp1496\nsS'Y:VBus42 - CSISCO21'\np1497\ng26\n(S'Variable_Type'\n(I2\nttRp1498\nsS'Y:Load 110 - CSTLUC31'\np1499\ng26\n(S'Variable_Type'\n(I2\nttRp1500\nsS'Y:VBus14 - CBONIF21'\np1501\ng26\n(S'Variable_Type'\n(I2\nttRp1502\nsS'Y:VBus73 - CCASTI32'\np1503\ng26\n(S'Variable_Type'\n(I2\nttRp1504\nsS'Y:VBus64 - CCASAM32'\np1505\ng26\n(S'Variable_Type'\n(I2\nttRp1506\nsS'Y:PMachine128 - CVAZZI39'\np1507\ng26\n(S'Variable_Type'\n(I2\nttRp1508\nsS'Y:VBus133 - CVAZZI314'\np1509\ng26\n(S'Variable_Type'\n(I2\nttRp1510\nsS'Y:VBus63 - CCASAM31'\np1511\ng26\n(S'Variable_Type'\n(I2\nttRp1512\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np1513\ng26\n(S'Variable_Type'\n(I2\nttRp1514\nsS'Y:%Losses'\np1515\ng26\n(S'Variable_Type'\n(I2\nttRp1516\nsS'Y:VBus85 - CLORET32'\np1517\ng26\n(S'Variable_Type'\n(I2\nttRp1518\nsS'Y:Load 59 - CCALDA31'\np1519\ng26\n(S'Variable_Type'\n(I2\nttRp1520\nsS'Y:VBus129 - CVAZZI310'\np1521\ng26\n(S'Variable_Type'\n(I2\nttRp1522\nsS'Y:VBus101 - CPIETR31'\np1523\ng26\n(S'Variable_Type'\n(I2\nttRp1524\nsS'Y:PMachine106 - CRIZZA31'\np1525\ng26\n(S'Variable_Type'\n(I2\nttRp1526\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np1527\ng26\n(S'Variable_Type'\n(I2\nttRp1528\nsS'Y:PMachine118 - CTOLLA33'\np1529\ng26\n(S'Variable_Type'\n(I2\nttRp1530\nsS'Y:VBus19 - CCASTI21'\np1531\ng26\n(S'Variable_Type'\n(I2\nttRp1532\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np1533\ng26\n(S'Variable_Type'\n(I2\nttRp1534\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np1535\ng26\n(S'Variable_Type'\n(I2\nttRp1536\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np1537\ng26\n(S'Variable_Type'\n(I2\nttRp1538\nsS'Y:Load 115 - CTAGLI31'\np1539\ng26\n(S'Variable_Type'\n(I2\nttRp1540\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np1541\ng26\n(S'Variable_Type'\n(I2\nttRp1542\nsS'Y:VBus79 - CFURIA32'\np1543\ng26\n(S'Variable_Type'\n(I2\nttRp1544\nsS'Y:PMachine47 - CVAZZI21'\np1545\ng26\n(S'Variable_Type'\n(I2\nttRp1546\nsS'Y:VBus123 - CVAZZI34'\np1547\ng26\n(S'Variable_Type'\n(I2\nttRp1548\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np1549\ng26\n(S'Variable_Type'\n(I2\nttRp1550\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np1551\ng26\n(S'Variable_Type'\n(I2\nttRp1552\nsS'Y:VBus44 - CTAGLI21'\np1553\ng26\n(S'Variable_Type'\n(I2\nttRp1554\nsS'Y:VBus65 - CCASAM33'\np1555\ng26\n(S'Variable_Type'\n(I2\nttRp1556\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np1557\ng26\n(S'Variable_Type'\n(I2\nttRp1558\nsS'Y:PMachine139 - CLUCCI310'\np1559\ng26\n(S'Variable_Type'\n(I2\nttRp1560\nsS'Y:VBus112 - CSAMPO31'\np1561\ng26\n(S'Variable_Type'\n(I2\nttRp1562\nsS'Y:VBus68 - CCASAM36'\np1563\ng26\n(S'Variable_Type'\n(I2\nttRp1564\nsS'Y:Load 55 - CBIGUG31'\np1565\ng26\n(S'Variable_Type'\n(I2\nttRp1566\nsS'Y:PMachine53 - CBASTI31'\np1567\ng26\n(S'Variable_Type'\n(I2\nttRp1568\nsS'Y:NbeTransit_0.9-1'\np1569\ng26\n(S'Variable_Type'\n(I2\nttRp1570\nsS'Y:VBus24 - CFURIA21'\np1571\ng26\n(S'Variable_Type'\n(I2\nttRp1572\nsS'Y:VBus23 - CCORTE22'\np1573\ng26\n(S'Variable_Type'\n(I2\nttRp1574\nsS'XProdEolienne%Pnom'\np1575\ng26\n(S'Variable_Type'\n(I2\nttRp1576\nsS'Y:VBus40 - CSTMAR21'\np1577\ng26\n(S'Variable_Type'\n(I2\nttRp1578\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np1579\ng26\n(S'Variable_Type'\n(I2\nttRp1580\nsS'Y:PMachine120 - CVAZZI31'\np1581\ng26\n(S'Variable_Type'\n(I2\nttRp1582\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np1583\ng26\n(S'Variable_Type'\n(I2\nttRp1584\nsS'Y:PMachine117 - CTOLLA32'\np1585\ng26\n(S'Variable_Type'\n(I2\nttRp1586\nsS'Y:VBus89 - CLUCCI34'\np1587\ng26\n(S'Variable_Type'\n(I2\nttRp1588\nsS'Y:VBus33 - COLETT21'\np1589\ng26\n(S'Variable_Type'\n(I2\nttRp1590\nsS'Y:VBus32 - COCANA21'\np1591\ng26\n(S'Variable_Type'\n(I2\nttRp1592\nsS'Y:PMachine121 - CVAZZI32'\np1593\ng26\n(S'Variable_Type'\n(I2\nttRp1594\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np1595\ng26\n(S'Variable_Type'\n(I2\nttRp1596\nsS'Y:VBus59 - CCALDA31'\np1597\ng26\n(S'Variable_Type'\n(I2\nttRp1598\nsS'Y:VBus82 - CILERO31'\np1599\ng26\n(S'Variable_Type'\n(I2\nttRp1600\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np1601\ng26\n(S'Variable_Type'\n(I2\nttRp1602\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np1603\ng26\n(S'Variable_Type'\n(I2\nttRp1604\nsS'Y:VBus37 - CRIZZA21'\np1605\ng26\n(S'Variable_Type'\n(I2\nttRp1606\nsS'Y:PMachine73 - CCASTI32'\np1607\ng26\n(S'Variable_Type'\n(I2\nttRp1608\nsS'Y:PMachine86 - CLUCCI31'\np1609\ng26\n(S'Variable_Type'\n(I2\nttRp1610\nsS'Y:Load 53 - CBASTI31'\np1611\ng26\n(S'Variable_Type'\n(I2\nttRp1612\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np1613\ng26\n(S'Variable_Type'\n(I2\nttRp1614\nsS'Y:VBus21 - CCORSC21'\np1615\ng26\n(S'Variable_Type'\n(I2\nttRp1616\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np1617\ng26\n(S'Variable_Type'\n(I2\nttRp1618\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np1619\ng26\n(S'Variable_Type'\n(I2\nttRp1620\nsS'Y:Load 82 - CILERO31'\np1621\ng26\n(S'Variable_Type'\n(I2\nttRp1622\nsS'Y:PMachine64 - CCASAM32'\np1623\ng26\n(S'Variable_Type'\n(I2\nttRp1624\nsS'Y:VBus67 - CCASAM35'\np1625\ng26\n(S'Variable_Type'\n(I2\nttRp1626\nsS'Y:VBus53 - CBASTI31'\np1627\ng26\n(S'Variable_Type'\n(I2\nttRp1628\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np1629\ng26\n(S'Variable_Type'\n(I2\nttRp1630\nsS'Y:VBus61 - CCALVI31'\np1631\ng26\n(S'Variable_Type'\n(I2\nttRp1632\nsS'Y:VBus93 - COCANA32'\np1633\ng26\n(S'Variable_Type'\n(I2\nttRp1634\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np1635\ng26\n(S'Variable_Type'\n(I2\nttRp1636\nsS'Y:PMachine92 - COCANA31'\np1637\ng26\n(S'Variable_Type'\n(I2\nttRp1638\nsS'Y:VBus104 - CPROPR31'\np1639\ng26\n(S'Variable_Type'\n(I2\nttRp1640\nsS'Y:VBus48 - CZSSS621'\np1641\ng26\n(S'Variable_Type'\n(I2\nttRp1642\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np1643\ng26\n(S'Variable_Type'\n(I2\nttRp1644\nsS'Y:VBus74 - CCERVI31'\np1645\ng26\n(S'Variable_Type'\n(I2\nttRp1646\nsS'Y:VBus36 - CPROPR21'\np1647\ng26\n(S'Variable_Type'\n(I2\nttRp1648\nsS'Y:Load 100 - COLETT31'\np1649\ng26\n(S'Variable_Type'\n(I2\nttRp1650\nsS'Y:PMachine54 - CBASTI32'\np1651\ng26\n(S'Variable_Type'\n(I2\nttRp1652\nsS'Y:VBus138 - CLUCCI39'\np1653\ng26\n(S'Variable_Type'\n(I2\nttRp1654\nsS'Y:VBus39 - CSTLUC21'\np1655\ng26\n(S'Variable_Type'\n(I2\nttRp1656\nsS'Y:PMachine74 - CCERVI31'\np1657\ng26\n(S'Variable_Type'\n(I2\nttRp1658\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np1659\ng26\n(S'Variable_Type'\n(I2\nttRp1660\nsS'Y:Load 78 - CFURIA31'\np1661\ng26\n(S'Variable_Type'\n(I2\nttRp1662\nsS'Y:VBus28 - CLORET21'\np1663\ng26\n(S'Variable_Type'\n(I2\nttRp1664\nsS'Y:PMachine105 - CPROPR32'\np1665\ng26\n(S'Variable_Type'\n(I2\nttRp1666\nsS'Y:VBus96 - COCANA35'\np1667\ng26\n(S'Variable_Type'\n(I2\nttRp1668\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np1669\ng26\n(S'Variable_Type'\n(I2\nttRp1670\nsS'Y:PMachine18 - CCASAM21'\np1671\ng26\n(S'Variable_Type'\n(I2\nttRp1672\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np1673\ng26\n(S'Variable_Type'\n(I2\nttRp1674\nsS'Y:VBus13 - CBIGUG21'\np1675\ng26\n(S'Variable_Type'\n(I2\nttRp1676\nsS'Y:VBus92 - COCANA31'\np1677\ng26\n(S'Variable_Type'\n(I2\nttRp1678\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np1679\ng26\n(S'Variable_Type'\n(I2\nttRp1680\nsS'Y:Load 76 - CCORTE31'\np1681\ng26\n(S'Variable_Type'\n(I2\nttRp1682\nsS'Y:VBus58 - CBONIF32'\np1683\ng26\n(S'Variable_Type'\n(I2\nttRp1684\nsS'Y:VBus84 - CLORET31'\np1685\ng26\n(S'Variable_Type'\n(I2\nttRp1686\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np1687\ng26\n(S'Variable_Type'\n(I2\nttRp1688\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np1689\ng26\n(S'Variable_Type'\n(I2\nttRp1690\nsS'Y:VBus97 - COCANA36'\np1691\ng26\n(S'Variable_Type'\n(I2\nttRp1692\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np1693\ng26\n(S'Variable_Type'\n(I2\nttRp1694\nsS'Y:VBus106 - CRIZZA31'\np1695\ng26\n(S'Variable_Type'\n(I2\nttRp1696\nsS'Y:VBus15 - CBONIF22'\np1697\ng26\n(S'Variable_Type'\n(I2\nttRp1698\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np1699\ng26\n(S'Variable_Type'\n(I2\nttRp1700\nsS'Y:VBus80 - CGHISO31'\np1701\ng26\n(S'Variable_Type'\n(I2\nttRp1702\nsS'Y:PMachine114 - CSOVEN31'\np1703\ng26\n(S'Variable_Type'\n(I2\nttRp1704\nsS'Y:VBus132 - CVAZZI313'\np1705\ng26\n(S'Variable_Type'\n(I2\nttRp1706\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np1707\ng26\n(S'Variable_Type'\n(I2\nttRp1708\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np1709\ng26\n(S'Variable_Type'\n(I2\nttRp1710\nsS'Y:VBus87 - CLUCCI32'\np1711\ng26\n(S'Variable_Type'\n(I2\nttRp1712\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np1713\ng26\n(S'Variable_Type'\n(I2\nttRp1714\nsS'Y:VBus88 - CLUCCI33'\np1715\ng26\n(S'Variable_Type'\n(I2\nttRp1716\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np1717\ng26\n(S'Variable_Type'\n(I2\nttRp1718\nsS'Y:PMachine85 - CLORET32'\np1719\ng26\n(S'Variable_Type'\n(I2\nttRp1720\nsS'Y:VBus81 - CGHISO32'\np1721\ng26\n(S'Variable_Type'\n(I2\nttRp1722\nsS'Y:PMachine63 - CCASAM31'\np1723\ng26\n(S'Variable_Type'\n(I2\nttRp1724\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np1725\ng26\n(S'Variable_Type'\n(I2\nttRp1726\nsS'X:Load(pu)'\np1727\ng26\n(S'Variable_Type'\n(I2\nttRp1728\nsS'Y:NbeTension'\np1729\ng26\n(S'Variable_Type'\n(I2\nttRp1730\nsS'Y:VBus95 - COCANA34'\np1731\ng26\n(S'Variable_Type'\n(I2\nttRp1732\nsS'Y:VBus62 - CCALVI32'\np1733\ng26\n(S'Variable_Type'\n(I2\nttRp1734\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np1735\ng26\n(S'Variable_Type'\n(I2\nttRp1736\nsS'Y:Load 95 - COCANA34'\np1737\ng26\n(S'Variable_Type'\n(I2\nttRp1738\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np1739\ng26\n(S'Variable_Type'\n(I2\nttRp1740\nsS'Y:PMachine90 - CMOROS31'\np1741\ng26\n(S'Variable_Type'\n(I2\nttRp1742\nsS'Y:Load 101 - CPIETR31'\np1743\ng26\n(S'Variable_Type'\n(I2\nttRp1744\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np1745\ng26\n(S'Variable_Type'\n(I2\nttRp1746\nsS'Y:PMachine132 - CVAZZI313'\np1747\ng26\n(S'Variable_Type'\n(I2\nttRp1748\nsS'Y:PMachine65 - CCASAM33'\np1749\ng26\n(S'Variable_Type'\n(I2\nttRp1750\nsS'Y:VBus125 - CVAZZI36'\np1751\ng26\n(S'Variable_Type'\n(I2\nttRp1752\nsS'Y:VBus135 - CLUCCI36'\np1753\ng26\n(S'Variable_Type'\n(I2\nttRp1754\nsS'Y:VBus47 - CVAZZI21'\np1755\ng26\n(S'Variable_Type'\n(I2\nttRp1756\nsS'Y:VBus94 - COCANA33'\np1757\ng26\n(S'Variable_Type'\n(I2\nttRp1758\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np1759\ng26\n(S'Variable_Type'\n(I2\nttRp1760\nsS'Y:VBus17 - CCALVI21'\np1761\ng26\n(S'Variable_Type'\n(I2\nttRp1762\nsS'Y:Load 90 - CMOROS31'\np1763\ng26\n(S'Variable_Type'\n(I2\nttRp1764\nsS'Y:VBus120 - CVAZZI31'\np1765\ng26\n(S'Variable_Type'\n(I2\nttRp1766\nsS'Y:VBus52 - CASPRE32'\np1767\ng26\n(S'Variable_Type'\n(I2\nttRp1768\nsS'Y:VBus25 - CFURIA22'\np1769\ng26\n(S'Variable_Type'\n(I2\nttRp1770\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np1771\ng26\n(S'Variable_Type'\n(I2\nttRp1772\nsS'Y:PMachine69 - CCASAM37'\np1773\ng26\n(S'Variable_Type'\n(I2\nttRp1774\nsS'Y:PConsoTot'\np1775\ng26\n(S'Variable_Type'\n(I2\nttRp1776\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np1777\ng26\n(S'Variable_Type'\n(I2\nttRp1778\nsS'Y:PMachine89 - CLUCCI34'\np1779\ng26\n(S'Variable_Type'\n(I2\nttRp1780\nsS'Y:VBus136 - CLUCCI37'\np1781\ng26\n(S'Variable_Type'\n(I2\nttRp1782\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np1783\ng26\n(S'Variable_Type'\n(I2\nttRp1784\nsS'Y:PMachine122 - CVAZZI33'\np1785\ng26\n(S'Variable_Type'\n(I2\nttRp1786\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np1787\ng26\n(S'Variable_Type'\n(I2\nttRp1788\nsS'Y:PMachine77 - CCORTE32'\np1789\ng26\n(S'Variable_Type'\n(I2\nttRp1790\nsS'Y:PMachine116 - CTOLLA31'\np1791\ng26\n(S'Variable_Type'\n(I2\nttRp1792\nsS'Y:VBus126 - CVAZZI37'\np1793\ng26\n(S'Variable_Type'\n(I2\nttRp1794\nsS'Y:PMachine60 - CCALDA32'\np1795\ng26\n(S'Variable_Type'\n(I2\nttRp1796\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np1797\ng26\n(S'Variable_Type'\n(I2\nttRp1798\nsS'Y:VBus20 - CCERVI21'\np1799\ng26\n(S'Variable_Type'\n(I2\nttRp1800\nsS'Y:VBus119 - CTRAVO31'\np1801\ng26\n(S'Variable_Type'\n(I2\nttRp1802\nsS'Y:VBus11 - CASPRE21'\np1803\ng26\n(S'Variable_Type'\n(I2\nttRp1804\nsS'Y:VBus139 - CLUCCI310'\np1805\ng26\n(S'Variable_Type'\n(I2\nttRp1806\nsS'Y:VBus60 - CCALDA32'\np1807\ng26\n(S'Variable_Type'\n(I2\nttRp1808\nsS'Y:PMachine66 - CCASAM34'\np1809\ng26\n(S'Variable_Type'\n(I2\nttRp1810\nsS'Y:PMachine101 - CPIETR31'\np1811\ng26\n(S'Variable_Type'\n(I2\nttRp1812\nsS'Y:PMachine133 - CVAZZI314'\np1813\ng26\n(S'Variable_Type'\n(I2\nttRp1814\nsS'Y:PMachine62 - CCALVI32'\np1815\ng26\n(S'Variable_Type'\n(I2\nttRp1816\nsS'Y:Load 74 - CCERVI31'\np1817\ng26\n(S'Variable_Type'\n(I2\nttRp1818\nsS'X:lineOff#'\np1819\ng26\n(S'Variable_Type'\n(I2\nttRp1820\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np1821\ng26\n(S'Variable_Type'\n(I2\nttRp1822\nsS'Y:VBus108 - CSAGON31'\np1823\ng26\n(S'Variable_Type'\n(I2\nttRp1824\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np1825\ng26\n(S'Variable_Type'\n(I2\nttRp1826\nsS'Y:VBus137 - CLUCCI38'\np1827\ng26\n(S'Variable_Type'\n(I2\nttRp1828\nsS'Y:VBus130 - CVAZZI311'\np1829\ng26\n(S'Variable_Type'\n(I2\nttRp1830\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np1831\ng26\n(S'Variable_Type'\n(I2\nttRp1832\nsS'Y:VBus46 - CTRAVO21'\np1833\ng26\n(S'Variable_Type'\n(I2\nttRp1834\nsS'Y:VBus113 - CSAMPO32'\np1835\ng26\n(S'Variable_Type'\n(I2\nttRp1836\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np1837\ng26\n(S'Variable_Type'\n(I2\nttRp1838\nsS'Y:PMachine68 - CCASAM36'\np1839\ng26\n(S'Variable_Type'\n(I2\nttRp1840\nsS'Y:VBus78 - CFURIA31'\np1841\ng26\n(S'Variable_Type'\n(I2\nttRp1842\nsS'Y:VBus26 - CGHISO21'\np1843\ng26\n(S'Variable_Type'\n(I2\nttRp1844\nsS'Y:VBus121 - CVAZZI32'\np1845\ng26\n(S'Variable_Type'\n(I2\nttRp1846\nsS'Y:PMachine81 - CGHISO32'\np1847\ng26\n(S'Variable_Type'\n(I2\nttRp1848\nsS'Y:PMachine97 - COCANA36'\np1849\ng26\n(S'Variable_Type'\n(I2\nttRp1850\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np1851\ng26\n(S'Variable_Type'\n(I2\nttRp1852\nsS'Y:PMachine83 - CILERO32'\np1853\ng26\n(S'Variable_Type'\n(I2\nttRp1854\nsS'Y:Max%A'\np1855\ng26\n(S'Variable_Type'\n(I2\nttRp1856\nsS'Y:VBus66 - CCASAM34'\np1857\ng26\n(S'Variable_Type'\n(I2\nttRp1858\nsS'Y:PMachine1 - CBONIF11'\np1859\ng26\n(S'Variable_Type'\n(I2\nttRp1860\nsS'Y:VBus111 - CSTMAR31'\np1861\ng26\n(S'Variable_Type'\n(I2\nttRp1862\nsS'Y:VBus124 - CVAZZI35'\np1863\ng26\n(S'Variable_Type'\n(I2\nttRp1864\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np1865\ng26\n(S'Variable_Type'\n(I2\nttRp1866\nsS'Y:PMachine131 - CVAZZI312'\np1867\ng26\n(S'Variable_Type'\n(I2\nttRp1868\nsS'Y:PMachine137 - CLUCCI38'\np1869\ng26\n(S'Variable_Type'\n(I2\nttRp1870\nsS'Y:PMachine93 - COCANA32'\np1871\ng26\n(S'Variable_Type'\n(I2\nttRp1872\nsS'Y:Load 57 - CBONIF31'\np1873\ng26\n(S'Variable_Type'\n(I2\nttRp1874\nsS'Y:VBus86 - CLUCCI31'\np1875\ng26\n(S'Variable_Type'\n(I2\nttRp1876\nsS'Y:VBus38 - CSAGON21'\np1877\ng26\n(S'Variable_Type'\n(I2\nttRp1878\nsS'Y:VBus29 - CLUCCI21'\np1879\ng26\n(S'Variable_Type'\n(I2\nttRp1880\nsS'Y:PMachine61 - CCALVI31'\np1881\ng26\n(S'Variable_Type'\n(I2\nttRp1882\nsS'Y:VBus110 - CSTLUC31'\np1883\ng26\n(S'Variable_Type'\n(I2\nttRp1884\nsS'X:ProdPV%Pnom'\np1885\ng26\n(S'Variable_Type'\n(I2\nttRp1886\nssg630\n(dp1887\nsg20\n(lp1888\ng22\nasg650\nF1370267567.2539999\nsba(iOWContexts\nContext\np1889\n(dp1890\ng20\n(lp1891\ng1272\nasg23\n(dp1892\nS'Y:PMachine134 - CLUCCI35'\np1893\ng26\n(S'Variable_Type'\n(I1\nttRp1894\nsS'Y:VBus77 - CCORTE32'\np1895\ng26\n(S'Variable_Type'\n(I2\nttRp1896\nsS'Y:VBus134 - CLUCCI35'\np1897\ng26\n(S'Variable_Type'\n(I2\nttRp1898\nsS'Y:VBus109 - CSAGON32'\np1899\ng26\n(S'Variable_Type'\n(I2\nttRp1900\nsS'Y:VBus102 - CPORTO31'\np1901\ng26\n(S'Variable_Type'\n(I2\nttRp1902\nsS'XProdEolienne%Pnom'\np1903\ng26\n(S'Variable_Type'\n(I1\nttRp1904\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np1905\ng26\n(S'Variable_Type'\n(I2\nttRp1906\nsS'Y:PMachine94 - COCANA33'\np1907\ng26\n(S'Variable_Type'\n(I2\nttRp1908\nsS'Y:VBus117 - CTOLLA32'\np1909\ng26\n(S'Variable_Type'\n(I2\nttRp1910\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np1911\ng26\n(S'Variable_Type'\n(I2\nttRp1912\nsS'Y:PMachine87 - CLUCCI32'\np1913\ng26\n(S'Variable_Type'\n(I2\nttRp1914\nsS'Y:PMachine113 - CSAMPO32'\np1915\ng26\n(S'Variable_Type'\n(I2\nttRp1916\nsS'Y:Load 84 - CLORET31'\np1917\ng26\n(S'Variable_Type'\n(I2\nttRp1918\nsS'Y:PMachine89 - CLUCCI34'\np1919\ng26\n(S'Variable_Type'\n(I1\nttRp1920\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np1921\ng26\n(S'Variable_Type'\n(I2\nttRp1922\nsS'Y:Load 80 - CGHISO31'\np1923\ng26\n(S'Variable_Type'\n(I2\nttRp1924\nsS'Y:PMachine125 - CVAZZI36'\np1925\ng26\n(S'Variable_Type'\n(I2\nttRp1926\nsS'Y:PMachine116 - CTOLLA31'\np1927\ng26\n(S'Variable_Type'\n(I2\nttRp1928\nsS'Y:PMachine88 - CLUCCI33'\np1929\ng26\n(S'Variable_Type'\n(I1\nttRp1930\nsS'Y:PMachine120 - CVAZZI31'\np1931\ng26\n(S'Variable_Type'\n(I2\nttRp1932\nsS'Y:PMachine111 - CSTMAR31'\np1933\ng26\n(S'Variable_Type'\n(I2\nttRp1934\nsS'Y:NbeTransit'\np1935\ng26\n(S'Variable_Type'\n(I1\nttRp1936\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np1937\ng26\n(S'Variable_Type'\n(I2\nttRp1938\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np1939\ng26\n(S'Variable_Type'\n(I2\nttRp1940\nsS'Y:VBus92 - COCANA31'\np1941\ng26\n(S'Variable_Type'\n(I2\nttRp1942\nsS'Y:PMachine130 - CVAZZI311'\np1943\ng26\n(S'Variable_Type'\n(I2\nttRp1944\nsS'Y:PMachine127 - CVAZZI38'\np1945\ng26\n(S'Variable_Type'\n(I2\nttRp1946\nsS'Y:VBus131 - CVAZZI312'\np1947\ng26\n(S'Variable_Type'\n(I2\nttRp1948\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np1949\ng26\n(S'Variable_Type'\n(I2\nttRp1950\nsS'Y:PMachine123 - CVAZZI34'\np1951\ng26\n(S'Variable_Type'\n(I2\nttRp1952\nsS'Y:VBus118 - CTOLLA33'\np1953\ng26\n(S'Variable_Type'\n(I2\nttRp1954\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np1955\ng26\n(S'Variable_Type'\n(I1\nttRp1956\nsS'Y:PMachine58 - CBONIF32'\np1957\ng26\n(S'Variable_Type'\n(I2\nttRp1958\nsS'Y:Load 104 - CPROPR31'\np1959\ng26\n(S'Variable_Type'\n(I2\nttRp1960\nsS'Y:PMachine30 - CLUCCI22'\np1961\ng26\n(S'Variable_Type'\n(I1\nttRp1962\nsS'Y:VBus100 - COLETT31'\np1963\ng26\n(S'Variable_Type'\n(I2\nttRp1964\nsS'Y:PProdTot'\np1965\ng26\n(S'Variable_Type'\n(I2\nttRp1966\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np1967\ng26\n(S'Variable_Type'\n(I1\nttRp1968\nsS'Y:VBus57 - CBONIF31'\np1969\ng26\n(S'Variable_Type'\n(I2\nttRp1970\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np1971\ng26\n(S'Variable_Type'\n(I2\nttRp1972\nsS'Y:PConsoTot'\np1973\ng26\n(S'Variable_Type'\n(I2\nttRp1974\nsS'Iteration'\np1975\ng26\n(S'Variable_Type'\n(I2\nttRp1976\nsS'Y:PMachine109 - CSAGON32'\np1977\ng26\n(S'Variable_Type'\n(I2\nttRp1978\nsS'Y:PMachine135 - CLUCCI36'\np1979\ng26\n(S'Variable_Type'\n(I1\nttRp1980\nsS'Y:VBus30 - CLUCCI22'\np1981\ng26\n(S'Variable_Type'\n(I2\nttRp1982\nsS'Y:VBus122 - CVAZZI33'\np1983\ng26\n(S'Variable_Type'\n(I2\nttRp1984\nsS'Y:VBus86 - CLUCCI31'\np1985\ng26\n(S'Variable_Type'\n(I2\nttRp1986\nsS'Y:PMachine102 - CPORTO31'\np1987\ng26\n(S'Variable_Type'\n(I2\nttRp1988\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np1989\ng26\n(S'Variable_Type'\n(I1\nttRp1990\nsS'Y:PMachine107 - CRIZZA32'\np1991\ng26\n(S'Variable_Type'\n(I2\nttRp1992\nsS'Y:VBus16 - CCALDA21'\np1993\ng26\n(S'Variable_Type'\n(I2\nttRp1994\nsS'Y:Load 102 - CPORTO31'\np1995\ng26\n(S'Variable_Type'\n(I2\nttRp1996\nsS'Y:VBus107 - CRIZZA32'\np1997\ng26\n(S'Variable_Type'\n(I2\nttRp1998\nsS'Y:VBus59 - CCALDA31'\np1999\ng26\n(S'Variable_Type'\n(I2\nttRp2000\nsS'Y:VBus41 - CSAMPO21'\np2001\ng26\n(S'Variable_Type'\n(I2\nttRp2002\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np2003\ng26\n(S'Variable_Type'\n(I2\nttRp2004\nsS'Y:VBus34 - CPIETR21'\np2005\ng26\n(S'Variable_Type'\n(I2\nttRp2006\nsS'Y:Load 108 - CSAGON31'\np2007\ng26\n(S'Variable_Type'\n(I2\nttRp2008\nsS'Y:VBus56 - CBIGUG32'\np2009\ng26\n(S'Variable_Type'\n(I2\nttRp2010\nsS'Y:PMachine42 - CSISCO21'\np2011\ng26\n(S'Variable_Type'\n(I2\nttRp2012\nsS'Y:PMachine138 - CLUCCI39'\np2013\ng26\n(S'Variable_Type'\n(I1\nttRp2014\nsS'Y:PMachine112 - CSAMPO31'\np2015\ng26\n(S'Variable_Type'\n(I2\nttRp2016\nsS'Y:VBus105 - CPROPR32'\np2017\ng26\n(S'Variable_Type'\n(I2\nttRp2018\nsS'Y:VBus1 - CBONIF11'\np2019\ng26\n(S'Variable_Type'\n(I2\nttRp2020\nsS'Y:VBus12 - CBASTI21'\np2021\ng26\n(S'Variable_Type'\n(I2\nttRp2022\nsS'Y:PMachine129 - CVAZZI310'\np2023\ng26\n(S'Variable_Type'\n(I2\nttRp2024\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np2025\ng26\n(S'Variable_Type'\n(I1\nttRp2026\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np2027\ng26\n(S'Variable_Type'\n(I1\nttRp2028\nsS'Y:VBus54 - CBASTI32'\np2029\ng26\n(S'Variable_Type'\n(I2\nttRp2030\nsS'Y:VBus69 - CCASAM37'\np2031\ng26\n(S'Variable_Type'\n(I2\nttRp2032\nsS'Y:VBus45 - CTOLLA21'\np2033\ng26\n(S'Variable_Type'\n(I2\nttRp2034\nsS'Y:PMachine115 - CTAGLI31'\np2035\ng26\n(S'Variable_Type'\n(I2\nttRp2036\nsS'Y:PMachine77 - CCORTE32'\np2037\ng26\n(S'Variable_Type'\n(I2\nttRp2038\nsS'Y:VBus43 - CSOVEN21'\np2039\ng26\n(S'Variable_Type'\n(I2\nttRp2040\nsS'Y:VBus76 - CCORTE31'\np2041\ng26\n(S'Variable_Type'\n(I2\nttRp2042\nsS'Y:VBus75 - CCORSC31'\np2043\ng26\n(S'Variable_Type'\n(I2\nttRp2044\nsS'Y:PMachine78 - CFURIA31'\np2045\ng26\n(S'Variable_Type'\n(I1\nttRp2046\nsS'Y:VBus127 - CVAZZI38'\np2047\ng26\n(S'Variable_Type'\n(I2\nttRp2048\nsS'Y:VBus115 - CTAGLI31'\np2049\ng26\n(S'Variable_Type'\n(I2\nttRp2050\nsS'Y:Load 61 - CCALVI31'\np2051\ng26\n(S'Variable_Type'\n(I2\nttRp2052\nsS'Y:VBus55 - CBIGUG31'\np2053\ng26\n(S'Variable_Type'\n(I2\nttRp2054\nsS'Y:Load 42 - CSISCO21'\np2055\ng26\n(S'Variable_Type'\n(I2\nttRp2056\nsS'Y:VBus72 - CCASTI31'\np2057\ng26\n(S'Variable_Type'\n(I2\nttRp2058\nsS'Y:Load 37 - CRIZZA21'\np2059\ng26\n(S'Variable_Type'\n(I2\nttRp2060\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np2061\ng26\n(S'Variable_Type'\n(I2\nttRp2062\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np2063\ng26\n(S'Variable_Type'\n(I2\nttRp2064\nsS'Y:PMachine137 - CLUCCI38'\np2065\ng26\n(S'Variable_Type'\n(I1\nttRp2066\nsS'Y:PMachine67 - CCASAM35'\np2067\ng26\n(S'Variable_Type'\n(I2\nttRp2068\nsS'INTERCOS'\np2069\ng26\n(S'Variable_Type'\n(I2\nttRp2070\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np2071\ng26\n(S'Variable_Type'\n(I1\nttRp2072\nsS'Y:VBus31 - CMOROS21'\np2073\ng26\n(S'Variable_Type'\n(I2\nttRp2074\nsS'Y:VBus103 - CPORTO32'\np2075\ng26\n(S'Variable_Type'\n(I2\nttRp2076\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np2077\ng26\n(S'Variable_Type'\n(I1\nttRp2078\nsS'Y:PMachine128 - CVAZZI39'\np2079\ng26\n(S'Variable_Type'\n(I2\nttRp2080\nsS'Y:PMachine72 - CCASTI31'\np2081\ng26\n(S'Variable_Type'\n(I2\nttRp2082\nsS'Y:VBus27 - CILERO21'\np2083\ng26\n(S'Variable_Type'\n(I2\nttRp2084\nsS'Y:PMachine75 - CCORSC31'\np2085\ng26\n(S'Variable_Type'\n(I2\nttRp2086\nsS'Y:Load 51 - CASPRE31'\np2087\ng26\n(S'Variable_Type'\n(I2\nttRp2088\nsS'Y:PMachine61 - CCALVI31'\np2089\ng26\n(S'Variable_Type'\n(I1\nttRp2090\nsS'Y:VBus51 - CASPRE31'\np2091\ng26\n(S'Variable_Type'\n(I2\nttRp2092\nsS'Y:VBus114 - CSOVEN31'\np2093\ng26\n(S'Variable_Type'\n(I2\nttRp2094\nsS'Y:Load 82 - CILERO31'\np2095\ng26\n(S'Variable_Type'\n(I2\nttRp2096\nsS'Y:VBus116 - CTOLLA31'\np2097\ng26\n(S'Variable_Type'\n(I2\nttRp2098\nsS'Y:Load 86 - CLUCCI31'\np2099\ng26\n(S'Variable_Type'\n(I2\nttRp2100\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np2101\ng26\n(S'Variable_Type'\n(I2\nttRp2102\nsS'Y:Load 57 - CBONIF31'\np2103\ng26\n(S'Variable_Type'\n(I2\nttRp2104\nsS'Y:PMachine104 - CPROPR31'\np2105\ng26\n(S'Variable_Type'\n(I2\nttRp2106\nsS'Y:VBus128 - CVAZZI39'\np2107\ng26\n(S'Variable_Type'\n(I2\nttRp2108\nsS'Y:PMachine136 - CLUCCI37'\np2109\ng26\n(S'Variable_Type'\n(I1\nttRp2110\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np2111\ng26\n(S'Variable_Type'\n(I2\nttRp2112\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np2113\ng26\n(S'Variable_Type'\n(I2\nttRp2114\nsS'Y:PMachine68 - CCASAM36'\np2115\ng26\n(S'Variable_Type'\n(I2\nttRp2116\nsS'Y:PMachine29 - CLUCCI21'\np2117\ng26\n(S'Variable_Type'\n(I1\nttRp2118\nsS'Y:VBus42 - CSISCO21'\np2119\ng26\n(S'Variable_Type'\n(I2\nttRp2120\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np2121\ng26\n(S'Variable_Type'\n(I1\nttRp2122\nsS'Y:VBus14 - CBONIF21'\np2123\ng26\n(S'Variable_Type'\n(I2\nttRp2124\nsS'Y:VBus73 - CCASTI32'\np2125\ng26\n(S'Variable_Type'\n(I2\nttRp2126\nsS'Y:VBus64 - CCASAM32'\np2127\ng26\n(S'Variable_Type'\n(I2\nttRp2128\nsS'Y:PMachine14 - CBONIF21'\np2129\ng26\n(S'Variable_Type'\n(I1\nttRp2130\nsS'Y:PMachine62 - CCALVI32'\np2131\ng26\n(S'Variable_Type'\n(I2\nttRp2132\nsS'Y:VBus133 - CVAZZI314'\np2133\ng26\n(S'Variable_Type'\n(I2\nttRp2134\nsS'Y:VBus63 - CCASAM31'\np2135\ng26\n(S'Variable_Type'\n(I2\nttRp2136\nsS'Y:PMachine101 - CPIETR31'\np2137\ng26\n(S'Variable_Type'\n(I2\nttRp2138\nsS'Y:%Losses'\np2139\ng26\n(S'Variable_Type'\n(I2\nttRp2140\nsS'Y:VBus85 - CLORET32'\np2141\ng26\n(S'Variable_Type'\n(I2\nttRp2142\nsS'Y:Load 59 - CCALDA31'\np2143\ng26\n(S'Variable_Type'\n(I2\nttRp2144\nsS'Y:VBus129 - CVAZZI310'\np2145\ng26\n(S'Variable_Type'\n(I2\nttRp2146\nsS'Y:VBus101 - CPIETR31'\np2147\ng26\n(S'Variable_Type'\n(I2\nttRp2148\nsS'Y:PMachine106 - CRIZZA31'\np2149\ng26\n(S'Variable_Type'\n(I2\nttRp2150\nsS'Y:VBus132 - CVAZZI313'\np2151\ng26\n(S'Variable_Type'\n(I2\nttRp2152\nsS'Y:PMachine118 - CTOLLA33'\np2153\ng26\n(S'Variable_Type'\n(I2\nttRp2154\nsS'Y:VBus19 - CCASTI21'\np2155\ng26\n(S'Variable_Type'\n(I2\nttRp2156\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np2157\ng26\n(S'Variable_Type'\n(I2\nttRp2158\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np2159\ng26\n(S'Variable_Type'\n(I1\nttRp2160\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np2161\ng26\n(S'Variable_Type'\n(I2\nttRp2162\nsS'Y:Load 115 - CTAGLI31'\np2163\ng26\n(S'Variable_Type'\n(I2\nttRp2164\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np2165\ng26\n(S'Variable_Type'\n(I2\nttRp2166\nsS'Y:VBus79 - CFURIA32'\np2167\ng26\n(S'Variable_Type'\n(I2\nttRp2168\nsS'Y:PMachine47 - CVAZZI21'\np2169\ng26\n(S'Variable_Type'\n(I1\nttRp2170\nsS'Y:VBus123 - CVAZZI34'\np2171\ng26\n(S'Variable_Type'\n(I2\nttRp2172\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np2173\ng26\n(S'Variable_Type'\n(I2\nttRp2174\nsS'Y:VBus60 - CCALDA32'\np2175\ng26\n(S'Variable_Type'\n(I2\nttRp2176\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np2177\ng26\n(S'Variable_Type'\n(I2\nttRp2178\nsS'Y:VBus65 - CCASAM33'\np2179\ng26\n(S'Variable_Type'\n(I2\nttRp2180\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np2181\ng26\n(S'Variable_Type'\n(I1\nttRp2182\nsS'Y:PMachine139 - CLUCCI310'\np2183\ng26\n(S'Variable_Type'\n(I1\nttRp2184\nsS'Y:VBus112 - CSAMPO31'\np2185\ng26\n(S'Variable_Type'\n(I2\nttRp2186\nsS'Y:VBus68 - CCASAM36'\np2187\ng26\n(S'Variable_Type'\n(I2\nttRp2188\nsS'Y:Load 55 - CBIGUG31'\np2189\ng26\n(S'Variable_Type'\n(I2\nttRp2190\nsS'Y:PMachine53 - CBASTI31'\np2191\ng26\n(S'Variable_Type'\n(I2\nttRp2192\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np2193\ng26\n(S'Variable_Type'\n(I2\nttRp2194\nsS'Y:VBus24 - CFURIA21'\np2195\ng26\n(S'Variable_Type'\n(I2\nttRp2196\nsS'Y:VBus23 - CCORTE22'\np2197\ng26\n(S'Variable_Type'\n(I2\nttRp2198\nsS'Y:VBus18 - CCASAM21'\np2199\ng26\n(S'Variable_Type'\n(I2\nttRp2200\nsS'Y:VBus40 - CSTMAR21'\np2201\ng26\n(S'Variable_Type'\n(I2\nttRp2202\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np2203\ng26\n(S'Variable_Type'\n(I2\nttRp2204\nsS'Y:PMachine124 - CVAZZI35'\np2205\ng26\n(S'Variable_Type'\n(I2\nttRp2206\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np2207\ng26\n(S'Variable_Type'\n(I2\nttRp2208\nsS'Y:PMachine117 - CTOLLA32'\np2209\ng26\n(S'Variable_Type'\n(I2\nttRp2210\nsS'Y:VBus89 - CLUCCI34'\np2211\ng26\n(S'Variable_Type'\n(I2\nttRp2212\nsS'Y:VBus33 - COLETT21'\np2213\ng26\n(S'Variable_Type'\n(I2\nttRp2214\nsS'Y:VBus32 - COCANA21'\np2215\ng26\n(S'Variable_Type'\n(I2\nttRp2216\nsS'Y:PMachine121 - CVAZZI32'\np2217\ng26\n(S'Variable_Type'\n(I2\nttRp2218\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np2219\ng26\n(S'Variable_Type'\n(I1\nttRp2220\nsS'Y:VBus82 - CILERO31'\np2221\ng26\n(S'Variable_Type'\n(I2\nttRp2222\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np2223\ng26\n(S'Variable_Type'\n(I2\nttRp2224\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np2225\ng26\n(S'Variable_Type'\n(I2\nttRp2226\nsS'Y:VBus37 - CRIZZA21'\np2227\ng26\n(S'Variable_Type'\n(I2\nttRp2228\nsS'Y:PMachine73 - CCASTI32'\np2229\ng26\n(S'Variable_Type'\n(I2\nttRp2230\nsS'Y:PMachine86 - CLUCCI31'\np2231\ng26\n(S'Variable_Type'\n(I2\nttRp2232\nsS'Y:Load 53 - CBASTI31'\np2233\ng26\n(S'Variable_Type'\n(I2\nttRp2234\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np2235\ng26\n(S'Variable_Type'\n(I2\nttRp2236\nsS'Y:VBus21 - CCORSC21'\np2237\ng26\n(S'Variable_Type'\n(I2\nttRp2238\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np2239\ng26\n(S'Variable_Type'\n(I2\nttRp2240\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np2241\ng26\n(S'Variable_Type'\n(I2\nttRp2242\nsS'Y:PMachine126 - CVAZZI37'\np2243\ng26\n(S'Variable_Type'\n(I2\nttRp2244\nsS'Y:PMachine64 - CCASAM32'\np2245\ng26\n(S'Variable_Type'\n(I2\nttRp2246\nsS'Y:VBus67 - CCASAM35'\np2247\ng26\n(S'Variable_Type'\n(I2\nttRp2248\nsS'Y:VBus53 - CBASTI31'\np2249\ng26\n(S'Variable_Type'\n(I2\nttRp2250\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np2251\ng26\n(S'Variable_Type'\n(I2\nttRp2252\nsS'Y:VBus61 - CCALVI31'\np2253\ng26\n(S'Variable_Type'\n(I2\nttRp2254\nsS'Y:VBus93 - COCANA32'\np2255\ng26\n(S'Variable_Type'\n(I2\nttRp2256\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np2257\ng26\n(S'Variable_Type'\n(I2\nttRp2258\nsS'Y:NbeTransit_0.9-1'\np2259\ng26\n(S'Variable_Type'\n(I1\nttRp2260\nsS'Y:VBus104 - CPROPR31'\np2261\ng26\n(S'Variable_Type'\n(I2\nttRp2262\nsS'Y:VBus22 - CCORTE21'\np2263\ng26\n(S'Variable_Type'\n(I2\nttRp2264\nsS'Y:VBus48 - CZSSS621'\np2265\ng26\n(S'Variable_Type'\n(I2\nttRp2266\nsS'Y:PMachine85 - CLORET32'\np2267\ng26\n(S'Variable_Type'\n(I2\nttRp2268\nsS'Y:Max%A'\np2269\ng26\n(S'Variable_Type'\n(I2\nttRp2270\nsS'Y:VBus36 - CPROPR21'\np2271\ng26\n(S'Variable_Type'\n(I2\nttRp2272\nsS'Y:Load 100 - COLETT31'\np2273\ng26\n(S'Variable_Type'\n(I2\nttRp2274\nsS'Y:PMachine54 - CBASTI32'\np2275\ng26\n(S'Variable_Type'\n(I2\nttRp2276\nsS'Y:VBus138 - CLUCCI39'\np2277\ng26\n(S'Variable_Type'\n(I2\nttRp2278\nsS'Y:VBus39 - CSTLUC21'\np2279\ng26\n(S'Variable_Type'\n(I2\nttRp2280\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np2281\ng26\n(S'Variable_Type'\n(I2\nttRp2282\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np2283\ng26\n(S'Variable_Type'\n(I2\nttRp2284\nsS'Y:Load 78 - CFURIA31'\np2285\ng26\n(S'Variable_Type'\n(I2\nttRp2286\nsS'Y:Load 74 - CCERVI31'\np2287\ng26\n(S'Variable_Type'\n(I2\nttRp2288\nsS'Y:VBus28 - CLORET21'\np2289\ng26\n(S'Variable_Type'\n(I2\nttRp2290\nsS'Y:PMachine105 - CPROPR32'\np2291\ng26\n(S'Variable_Type'\n(I2\nttRp2292\nsS'Y:VBus96 - COCANA35'\np2293\ng26\n(S'Variable_Type'\n(I2\nttRp2294\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np2295\ng26\n(S'Variable_Type'\n(I1\nttRp2296\nsS'Y:PMachine18 - CCASAM21'\np2297\ng26\n(S'Variable_Type'\n(I1\nttRp2298\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np2299\ng26\n(S'Variable_Type'\n(I2\nttRp2300\nsS'Y:VBus13 - CBIGUG21'\np2301\ng26\n(S'Variable_Type'\n(I2\nttRp2302\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np2303\ng26\n(S'Variable_Type'\n(I2\nttRp2304\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np2305\ng26\n(S'Variable_Type'\n(I2\nttRp2306\nsS'Y:VBus29 - CLUCCI21'\np2307\ng26\n(S'Variable_Type'\n(I2\nttRp2308\nsS'Y:VBus58 - CBONIF32'\np2309\ng26\n(S'Variable_Type'\n(I2\nttRp2310\nsS'Y:VBus84 - CLORET31'\np2311\ng26\n(S'Variable_Type'\n(I2\nttRp2312\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np2313\ng26\n(S'Variable_Type'\n(I1\nttRp2314\nsS'Y:VBus97 - COCANA36'\np2315\ng26\n(S'Variable_Type'\n(I2\nttRp2316\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np2317\ng26\n(S'Variable_Type'\n(I1\nttRp2318\nsS'Y:VBus15 - CBONIF22'\np2319\ng26\n(S'Variable_Type'\n(I2\nttRp2320\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np2321\ng26\n(S'Variable_Type'\n(I2\nttRp2322\nsS'Y:Load 110 - CSTLUC31'\np2323\ng26\n(S'Variable_Type'\n(I2\nttRp2324\nsS'Y:VBus80 - CGHISO31'\np2325\ng26\n(S'Variable_Type'\n(I2\nttRp2326\nsS'Y:PMachine114 - CSOVEN31'\np2327\ng26\n(S'Variable_Type'\n(I2\nttRp2328\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np2329\ng26\n(S'Variable_Type'\n(I1\nttRp2330\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np2331\ng26\n(S'Variable_Type'\n(I2\nttRp2332\nsS'Y:PMachine93 - COCANA32'\np2333\ng26\n(S'Variable_Type'\n(I2\nttRp2334\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np2335\ng26\n(S'Variable_Type'\n(I1\nttRp2336\nsS'Y:VBus87 - CLUCCI32'\np2337\ng26\n(S'Variable_Type'\n(I2\nttRp2338\nsS'Y:VBus62 - CCALVI32'\np2339\ng26\n(S'Variable_Type'\n(I2\nttRp2340\nsS'CASA_DIESEL'\np2341\ng26\n(S'Variable_Type'\n(I2\nttRp2342\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np2343\ng26\n(S'Variable_Type'\n(I1\nttRp2344\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np2345\ng26\n(S'Variable_Type'\n(I1\nttRp2346\nsS'Y:VBus81 - CGHISO32'\np2347\ng26\n(S'Variable_Type'\n(I2\nttRp2348\nsS'Y:PMachine74 - CCERVI31'\np2349\ng26\n(S'Variable_Type'\n(I2\nttRp2350\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np2351\ng26\n(S'Variable_Type'\n(I2\nttRp2352\nsS'EOL_ALL'\np2353\ng26\n(S'Variable_Type'\n(I2\nttRp2354\nsS'X:Load(pu)'\np2355\ng26\n(S'Variable_Type'\n(I2\nttRp2356\nsS'Y:NbeTension'\np2357\ng26\n(S'Variable_Type'\n(I2\nttRp2358\nsS'Y:VBus95 - COCANA34'\np2359\ng26\n(S'Variable_Type'\n(I2\nttRp2360\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np2361\ng26\n(S'Variable_Type'\n(I2\nttRp2362\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np2363\ng26\n(S'Variable_Type'\n(I2\nttRp2364\nsS'Y:Load 95 - COCANA34'\np2365\ng26\n(S'Variable_Type'\n(I2\nttRp2366\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np2367\ng26\n(S'Variable_Type'\n(I1\nttRp2368\nsS'Y:PMachine90 - CMOROS31'\np2369\ng26\n(S'Variable_Type'\n(I2\nttRp2370\nsS'Y:Load 101 - CPIETR31'\np2371\ng26\n(S'Variable_Type'\n(I2\nttRp2372\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np2373\ng26\n(S'Variable_Type'\n(I1\nttRp2374\nsS'Y:PMachine132 - CVAZZI313'\np2375\ng26\n(S'Variable_Type'\n(I2\nttRp2376\nsS'Y:VBus125 - CVAZZI36'\np2377\ng26\n(S'Variable_Type'\n(I2\nttRp2378\nsS'Y:VBus135 - CLUCCI36'\np2379\ng26\n(S'Variable_Type'\n(I2\nttRp2380\nsS'Y:VBus47 - CVAZZI21'\np2381\ng26\n(S'Variable_Type'\n(I2\nttRp2382\nsS'Y:VBus94 - COCANA33'\np2383\ng26\n(S'Variable_Type'\n(I2\nttRp2384\nsS'Y:VBus17 - CCALVI21'\np2385\ng26\n(S'Variable_Type'\n(I2\nttRp2386\nsS'Y:Load 90 - CMOROS31'\np2387\ng26\n(S'Variable_Type'\n(I2\nttRp2388\nsS'Y:VBus120 - CVAZZI31'\np2389\ng26\n(S'Variable_Type'\n(I2\nttRp2390\nsS'X:ProdPV%Pnom'\np2391\ng26\n(S'Variable_Type'\n(I2\nttRp2392\nsS'Y:VBus52 - CASPRE32'\np2393\ng26\n(S'Variable_Type'\n(I2\nttRp2394\nsS'Y:VBus25 - CFURIA22'\np2395\ng26\n(S'Variable_Type'\n(I2\nttRp2396\nsS'Y:Load 76 - CCORTE31'\np2397\ng26\n(S'Variable_Type'\n(I2\nttRp2398\nsS'Y:PMachine69 - CCASAM37'\np2399\ng26\n(S'Variable_Type'\n(I2\nttRp2400\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np2401\ng26\n(S'Variable_Type'\n(I2\nttRp2402\nsS'Y:PMachine92 - COCANA31'\np2403\ng26\n(S'Variable_Type'\n(I2\nttRp2404\nsS'Y:VBus35 - CPORTO21'\np2405\ng26\n(S'Variable_Type'\n(I2\nttRp2406\nsS'VAZZIO_TAC'\np2407\ng26\n(S'Variable_Type'\n(I2\nttRp2408\nsS'Y:PMachine122 - CVAZZI33'\np2409\ng26\n(S'Variable_Type'\n(I2\nttRp2410\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np2411\ng26\n(S'Variable_Type'\n(I1\nttRp2412\nsS'Y:PMachine63 - CCASAM31'\np2413\ng26\n(S'Variable_Type'\n(I2\nttRp2414\nsS'Y:VBus74 - CCERVI31'\np2415\ng26\n(S'Variable_Type'\n(I2\nttRp2416\nsS'Y:VBus126 - CVAZZI37'\np2417\ng26\n(S'Variable_Type'\n(I2\nttRp2418\nsS'Y:PMachine60 - CCALDA32'\np2419\ng26\n(S'Variable_Type'\n(I2\nttRp2420\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np2421\ng26\n(S'Variable_Type'\n(I1\nttRp2422\nsS'Y:VBus20 - CCERVI21'\np2423\ng26\n(S'Variable_Type'\n(I2\nttRp2424\nsS'Y:VBus119 - CTRAVO31'\np2425\ng26\n(S'Variable_Type'\n(I2\nttRp2426\nsS'Y:VBus11 - CASPRE21'\np2427\ng26\n(S'Variable_Type'\n(I2\nttRp2428\nsS'Y:VBus139 - CLUCCI310'\np2429\ng26\n(S'Variable_Type'\n(I2\nttRp2430\nsS'Y:VBus106 - CRIZZA31'\np2431\ng26\n(S'Variable_Type'\n(I2\nttRp2432\nsS'Y:PMachine66 - CCASAM34'\np2433\ng26\n(S'Variable_Type'\n(I2\nttRp2434\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np2435\ng26\n(S'Variable_Type'\n(I2\nttRp2436\nsS'Y:VBus136 - CLUCCI37'\np2437\ng26\n(S'Variable_Type'\n(I2\nttRp2438\nsS'Y:VBus90 - CMOROS31'\np2439\ng26\n(S'Variable_Type'\n(I2\nttRp2440\nsS'PV_ALL'\np2441\ng26\n(S'Variable_Type'\n(I2\nttRp2442\nsS'X:lineOff#'\np2443\ng26\n(S'Variable_Type'\n(I2\nttRp2444\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np2445\ng26\n(S'Variable_Type'\n(I2\nttRp2446\nsS'Y:VBus108 - CSAGON31'\np2447\ng26\n(S'Variable_Type'\n(I2\nttRp2448\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np2449\ng26\n(S'Variable_Type'\n(I2\nttRp2450\nsS'Y:VBus137 - CLUCCI38'\np2451\ng26\n(S'Variable_Type'\n(I2\nttRp2452\nsS'Y:VBus130 - CVAZZI311'\np2453\ng26\n(S'Variable_Type'\n(I2\nttRp2454\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np2455\ng26\n(S'Variable_Type'\n(I2\nttRp2456\nsS'Y:VBus46 - CTRAVO21'\np2457\ng26\n(S'Variable_Type'\n(I2\nttRp2458\nsS'Y:VBus113 - CSAMPO32'\np2459\ng26\n(S'Variable_Type'\n(I2\nttRp2460\nsS'Y:PMachine133 - CVAZZI314'\np2461\ng26\n(S'Variable_Type'\n(I2\nttRp2462\nsS'Y:PMachine65 - CCASAM33'\np2463\ng26\n(S'Variable_Type'\n(I2\nttRp2464\nsS'Y:VBus78 - CFURIA31'\np2465\ng26\n(S'Variable_Type'\n(I2\nttRp2466\nsS'Y:VBus26 - CGHISO21'\np2467\ng26\n(S'Variable_Type'\n(I2\nttRp2468\nsS'Y:VBus121 - CVAZZI32'\np2469\ng26\n(S'Variable_Type'\n(I2\nttRp2470\nsS'Y:PMachine97 - COCANA36'\np2471\ng26\n(S'Variable_Type'\n(I2\nttRp2472\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np2473\ng26\n(S'Variable_Type'\n(I2\nttRp2474\nsS'Y:PMachine83 - CILERO32'\np2475\ng26\n(S'Variable_Type'\n(I2\nttRp2476\nsS'Y:VBus83 - CILERO32'\np2477\ng26\n(S'Variable_Type'\n(I2\nttRp2478\nsS'Y:VBus66 - CCASAM34'\np2479\ng26\n(S'Variable_Type'\n(I2\nttRp2480\nsS'Y:PMachine1 - CBONIF11'\np2481\ng26\n(S'Variable_Type'\n(I2\nttRp2482\nsS'Y:VBus111 - CSTMAR31'\np2483\ng26\n(S'Variable_Type'\n(I2\nttRp2484\nsS'Y:VBus124 - CVAZZI35'\np2485\ng26\n(S'Variable_Type'\n(I2\nttRp2486\nsS'VAZZIO_DIESEL'\np2487\ng26\n(S'Variable_Type'\n(I2\nttRp2488\nsS'Y:PMachine131 - CVAZZI312'\np2489\ng26\n(S'Variable_Type'\n(I2\nttRp2490\nsS'Y:VBus44 - CTAGLI21'\np2491\ng26\n(S'Variable_Type'\n(I2\nttRp2492\nsS'Y:VBus88 - CLUCCI33'\np2493\ng26\n(S'Variable_Type'\n(I2\nttRp2494\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np2495\ng26\n(S'Variable_Type'\n(I1\nttRp2496\nsS'Y:VBus38 - CSAGON21'\np2497\ng26\n(S'Variable_Type'\n(I2\nttRp2498\nsS'Y:PMachine81 - CGHISO32'\np2499\ng26\n(S'Variable_Type'\n(I2\nttRp2500\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np2501\ng26\n(S'Variable_Type'\n(I2\nttRp2502\nsS'Y:VBus110 - CSTLUC31'\np2503\ng26\n(S'Variable_Type'\n(I2\nttRp2504\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np2505\ng26\n(S'Variable_Type'\n(I2\nttRp2506\nssg630\n(dp2507\nsg632\n(dp2508\nS'attribute'\np2509\n(S'X:Load(pu)'\np2510\ng2356\ntp2511\nsS'yaxisTitle'\np2512\n(g638\nI0\ntp2513\nsS'xaxisTitle'\np2514\n(g2510\ng2356\ntp2515\nsS'mainTitle'\np2516\n(S''\nI0\ntp2517\nsS'yPaxisTitle'\np2518\n(S''\nI0\ntp2519\nsS'targetValue'\np2520\n(NI-2\ntp2521\nsS'visibleOutcomes'\np2522\n((lI-2\ntp2523\nssg650\nF1369995560.3740001\nsba(iOWContexts\nContext\np2524\n(dp2525\ng20\n(lp2526\ng1272\nasg23\n(dp2527\nS'Y:PMachine134 - CLUCCI35'\np2528\ng26\n(S'Variable_Type'\n(I1\nttRp2529\nsS'Y:VBus77 - CCORTE32'\np2530\ng26\n(S'Variable_Type'\n(I2\nttRp2531\nsS'Y:VBus134 - CLUCCI35'\np2532\ng26\n(S'Variable_Type'\n(I2\nttRp2533\nsS'Y:VBus109 - CSAGON32'\np2534\ng26\n(S'Variable_Type'\n(I2\nttRp2535\nsS'Y:VBus102 - CPORTO31'\np2536\ng26\n(S'Variable_Type'\n(I2\nttRp2537\nsS'XProdEolienne%Pnom'\np2538\ng26\n(S'Variable_Type'\n(I1\nttRp2539\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np2540\ng26\n(S'Variable_Type'\n(I2\nttRp2541\nsS'Y:PMachine94 - COCANA33'\np2542\ng26\n(S'Variable_Type'\n(I2\nttRp2543\nsS'Y:VBus117 - CTOLLA32'\np2544\ng26\n(S'Variable_Type'\n(I2\nttRp2545\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np2546\ng26\n(S'Variable_Type'\n(I2\nttRp2547\nsS'Y:PMachine87 - CLUCCI32'\np2548\ng26\n(S'Variable_Type'\n(I2\nttRp2549\nsS'Y:PMachine113 - CSAMPO32'\np2550\ng26\n(S'Variable_Type'\n(I2\nttRp2551\nsS'Y:Load 84 - CLORET31'\np2552\ng26\n(S'Variable_Type'\n(I2\nttRp2553\nsS'Y:PMachine89 - CLUCCI34'\np2554\ng26\n(S'Variable_Type'\n(I1\nttRp2555\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np2556\ng26\n(S'Variable_Type'\n(I2\nttRp2557\nsS'Y:Load 80 - CGHISO31'\np2558\ng26\n(S'Variable_Type'\n(I2\nttRp2559\nsS'Y:PMachine125 - CVAZZI36'\np2560\ng26\n(S'Variable_Type'\n(I2\nttRp2561\nsS'Y:PMachine116 - CTOLLA31'\np2562\ng26\n(S'Variable_Type'\n(I2\nttRp2563\nsS'Y:PMachine88 - CLUCCI33'\np2564\ng26\n(S'Variable_Type'\n(I1\nttRp2565\nsS'Y:PMachine120 - CVAZZI31'\np2566\ng26\n(S'Variable_Type'\n(I2\nttRp2567\nsS'Y:PMachine111 - CSTMAR31'\np2568\ng26\n(S'Variable_Type'\n(I2\nttRp2569\nsS'Y:NbeTransit'\np2570\ng26\n(S'Variable_Type'\n(I1\nttRp2571\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np2572\ng26\n(S'Variable_Type'\n(I2\nttRp2573\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np2574\ng26\n(S'Variable_Type'\n(I2\nttRp2575\nsS'Y:VBus92 - COCANA31'\np2576\ng26\n(S'Variable_Type'\n(I2\nttRp2577\nsS'Y:PMachine130 - CVAZZI311'\np2578\ng26\n(S'Variable_Type'\n(I2\nttRp2579\nsS'Y:PMachine127 - CVAZZI38'\np2580\ng26\n(S'Variable_Type'\n(I2\nttRp2581\nsS'Y:VBus131 - CVAZZI312'\np2582\ng26\n(S'Variable_Type'\n(I2\nttRp2583\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np2584\ng26\n(S'Variable_Type'\n(I2\nttRp2585\nsS'Y:PMachine123 - CVAZZI34'\np2586\ng26\n(S'Variable_Type'\n(I2\nttRp2587\nsS'Y:VBus118 - CTOLLA33'\np2588\ng26\n(S'Variable_Type'\n(I2\nttRp2589\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np2590\ng26\n(S'Variable_Type'\n(I1\nttRp2591\nsS'Y:PMachine58 - CBONIF32'\np2592\ng26\n(S'Variable_Type'\n(I2\nttRp2593\nsS'Y:Load 104 - CPROPR31'\np2594\ng26\n(S'Variable_Type'\n(I2\nttRp2595\nsS'Y:PMachine30 - CLUCCI22'\np2596\ng26\n(S'Variable_Type'\n(I1\nttRp2597\nsS'Y:VBus100 - COLETT31'\np2598\ng26\n(S'Variable_Type'\n(I2\nttRp2599\nsS'Y:PProdTot'\np2600\ng26\n(S'Variable_Type'\n(I2\nttRp2601\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np2602\ng26\n(S'Variable_Type'\n(I1\nttRp2603\nsS'Y:VBus57 - CBONIF31'\np2604\ng26\n(S'Variable_Type'\n(I2\nttRp2605\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np2606\ng26\n(S'Variable_Type'\n(I2\nttRp2607\nsS'Y:PConsoTot'\np2608\ng26\n(S'Variable_Type'\n(I2\nttRp2609\nsS'Iteration'\np2610\ng26\n(S'Variable_Type'\n(I2\nttRp2611\nsS'Y:PMachine109 - CSAGON32'\np2612\ng26\n(S'Variable_Type'\n(I2\nttRp2613\nsS'Y:PMachine135 - CLUCCI36'\np2614\ng26\n(S'Variable_Type'\n(I1\nttRp2615\nsS'Y:VBus30 - CLUCCI22'\np2616\ng26\n(S'Variable_Type'\n(I2\nttRp2617\nsS'Y:VBus122 - CVAZZI33'\np2618\ng26\n(S'Variable_Type'\n(I2\nttRp2619\nsS'Y:VBus86 - CLUCCI31'\np2620\ng26\n(S'Variable_Type'\n(I2\nttRp2621\nsS'Y:PMachine102 - CPORTO31'\np2622\ng26\n(S'Variable_Type'\n(I2\nttRp2623\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np2624\ng26\n(S'Variable_Type'\n(I1\nttRp2625\nsS'Y:PMachine107 - CRIZZA32'\np2626\ng26\n(S'Variable_Type'\n(I2\nttRp2627\nsS'Y:VBus16 - CCALDA21'\np2628\ng26\n(S'Variable_Type'\n(I2\nttRp2629\nsS'Y:Load 102 - CPORTO31'\np2630\ng26\n(S'Variable_Type'\n(I2\nttRp2631\nsS'Y:VBus107 - CRIZZA32'\np2632\ng26\n(S'Variable_Type'\n(I2\nttRp2633\nsS'Y:VBus59 - CCALDA31'\np2634\ng26\n(S'Variable_Type'\n(I2\nttRp2635\nsS'Y:VBus41 - CSAMPO21'\np2636\ng26\n(S'Variable_Type'\n(I2\nttRp2637\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np2638\ng26\n(S'Variable_Type'\n(I2\nttRp2639\nsS'Y:VBus34 - CPIETR21'\np2640\ng26\n(S'Variable_Type'\n(I2\nttRp2641\nsS'Y:Load 108 - CSAGON31'\np2642\ng26\n(S'Variable_Type'\n(I2\nttRp2643\nsS'Y:VBus56 - CBIGUG32'\np2644\ng26\n(S'Variable_Type'\n(I2\nttRp2645\nsS'Y:PMachine42 - CSISCO21'\np2646\ng26\n(S'Variable_Type'\n(I2\nttRp2647\nsS'Y:PMachine138 - CLUCCI39'\np2648\ng26\n(S'Variable_Type'\n(I1\nttRp2649\nsS'Y:PMachine112 - CSAMPO31'\np2650\ng26\n(S'Variable_Type'\n(I2\nttRp2651\nsS'Y:VBus105 - CPROPR32'\np2652\ng26\n(S'Variable_Type'\n(I2\nttRp2653\nsS'Y:VBus1 - CBONIF11'\np2654\ng26\n(S'Variable_Type'\n(I2\nttRp2655\nsS'Y:VBus12 - CBASTI21'\np2656\ng26\n(S'Variable_Type'\n(I2\nttRp2657\nsS'Y:PMachine129 - CVAZZI310'\np2658\ng26\n(S'Variable_Type'\n(I2\nttRp2659\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np2660\ng26\n(S'Variable_Type'\n(I1\nttRp2661\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np2662\ng26\n(S'Variable_Type'\n(I1\nttRp2663\nsS'Y:VBus54 - CBASTI32'\np2664\ng26\n(S'Variable_Type'\n(I2\nttRp2665\nsS'Y:VBus69 - CCASAM37'\np2666\ng26\n(S'Variable_Type'\n(I2\nttRp2667\nsS'Y:VBus45 - CTOLLA21'\np2668\ng26\n(S'Variable_Type'\n(I2\nttRp2669\nsS'Y:PMachine115 - CTAGLI31'\np2670\ng26\n(S'Variable_Type'\n(I2\nttRp2671\nsS'Y:PMachine77 - CCORTE32'\np2672\ng26\n(S'Variable_Type'\n(I2\nttRp2673\nsS'Y:VBus43 - CSOVEN21'\np2674\ng26\n(S'Variable_Type'\n(I2\nttRp2675\nsS'Y:VBus76 - CCORTE31'\np2676\ng26\n(S'Variable_Type'\n(I2\nttRp2677\nsS'Y:VBus75 - CCORSC31'\np2678\ng26\n(S'Variable_Type'\n(I2\nttRp2679\nsS'Y:PMachine78 - CFURIA31'\np2680\ng26\n(S'Variable_Type'\n(I1\nttRp2681\nsS'Y:VBus127 - CVAZZI38'\np2682\ng26\n(S'Variable_Type'\n(I2\nttRp2683\nsS'Y:VBus115 - CTAGLI31'\np2684\ng26\n(S'Variable_Type'\n(I2\nttRp2685\nsS'Y:Load 61 - CCALVI31'\np2686\ng26\n(S'Variable_Type'\n(I2\nttRp2687\nsS'Y:VBus55 - CBIGUG31'\np2688\ng26\n(S'Variable_Type'\n(I2\nttRp2689\nsS'Y:Load 42 - CSISCO21'\np2690\ng26\n(S'Variable_Type'\n(I2\nttRp2691\nsS'Y:VBus72 - CCASTI31'\np2692\ng26\n(S'Variable_Type'\n(I2\nttRp2693\nsS'Y:Load 37 - CRIZZA21'\np2694\ng26\n(S'Variable_Type'\n(I2\nttRp2695\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np2696\ng26\n(S'Variable_Type'\n(I2\nttRp2697\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np2698\ng26\n(S'Variable_Type'\n(I2\nttRp2699\nsS'Y:PMachine137 - CLUCCI38'\np2700\ng26\n(S'Variable_Type'\n(I1\nttRp2701\nsS'Y:PMachine67 - CCASAM35'\np2702\ng26\n(S'Variable_Type'\n(I2\nttRp2703\nsS'INTERCOS'\np2704\ng26\n(S'Variable_Type'\n(I2\nttRp2705\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np2706\ng26\n(S'Variable_Type'\n(I1\nttRp2707\nsS'Y:VBus31 - CMOROS21'\np2708\ng26\n(S'Variable_Type'\n(I2\nttRp2709\nsS'Y:VBus103 - CPORTO32'\np2710\ng26\n(S'Variable_Type'\n(I2\nttRp2711\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np2712\ng26\n(S'Variable_Type'\n(I1\nttRp2713\nsS'Y:PMachine128 - CVAZZI39'\np2714\ng26\n(S'Variable_Type'\n(I2\nttRp2715\nsS'Y:PMachine72 - CCASTI31'\np2716\ng26\n(S'Variable_Type'\n(I2\nttRp2717\nsS'Y:VBus27 - CILERO21'\np2718\ng26\n(S'Variable_Type'\n(I2\nttRp2719\nsS'Y:PMachine75 - CCORSC31'\np2720\ng26\n(S'Variable_Type'\n(I2\nttRp2721\nsS'Y:Load 51 - CASPRE31'\np2722\ng26\n(S'Variable_Type'\n(I2\nttRp2723\nsS'Y:PMachine61 - CCALVI31'\np2724\ng26\n(S'Variable_Type'\n(I1\nttRp2725\nsS'Y:VBus51 - CASPRE31'\np2726\ng26\n(S'Variable_Type'\n(I2\nttRp2727\nsS'Y:VBus114 - CSOVEN31'\np2728\ng26\n(S'Variable_Type'\n(I2\nttRp2729\nsS'Y:Load 82 - CILERO31'\np2730\ng26\n(S'Variable_Type'\n(I2\nttRp2731\nsS'Y:VBus116 - CTOLLA31'\np2732\ng26\n(S'Variable_Type'\n(I2\nttRp2733\nsS'Y:Load 86 - CLUCCI31'\np2734\ng26\n(S'Variable_Type'\n(I2\nttRp2735\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np2736\ng26\n(S'Variable_Type'\n(I2\nttRp2737\nsS'Y:Load 57 - CBONIF31'\np2738\ng26\n(S'Variable_Type'\n(I2\nttRp2739\nsS'Y:PMachine104 - CPROPR31'\np2740\ng26\n(S'Variable_Type'\n(I2\nttRp2741\nsS'Y:VBus128 - CVAZZI39'\np2742\ng26\n(S'Variable_Type'\n(I2\nttRp2743\nsS'Y:PMachine136 - CLUCCI37'\np2744\ng26\n(S'Variable_Type'\n(I1\nttRp2745\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np2746\ng26\n(S'Variable_Type'\n(I2\nttRp2747\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np2748\ng26\n(S'Variable_Type'\n(I2\nttRp2749\nsS'Y:PMachine68 - CCASAM36'\np2750\ng26\n(S'Variable_Type'\n(I2\nttRp2751\nsS'Y:PMachine29 - CLUCCI21'\np2752\ng26\n(S'Variable_Type'\n(I1\nttRp2753\nsS'Y:VBus42 - CSISCO21'\np2754\ng26\n(S'Variable_Type'\n(I2\nttRp2755\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np2756\ng26\n(S'Variable_Type'\n(I1\nttRp2757\nsS'Y:VBus14 - CBONIF21'\np2758\ng26\n(S'Variable_Type'\n(I2\nttRp2759\nsS'Y:VBus73 - CCASTI32'\np2760\ng26\n(S'Variable_Type'\n(I2\nttRp2761\nsS'Y:VBus64 - CCASAM32'\np2762\ng26\n(S'Variable_Type'\n(I2\nttRp2763\nsS'Y:PMachine14 - CBONIF21'\np2764\ng26\n(S'Variable_Type'\n(I1\nttRp2765\nsS'Y:PMachine62 - CCALVI32'\np2766\ng26\n(S'Variable_Type'\n(I2\nttRp2767\nsS'Y:VBus133 - CVAZZI314'\np2768\ng26\n(S'Variable_Type'\n(I2\nttRp2769\nsS'Y:VBus63 - CCASAM31'\np2770\ng26\n(S'Variable_Type'\n(I2\nttRp2771\nsS'Y:PMachine101 - CPIETR31'\np2772\ng26\n(S'Variable_Type'\n(I2\nttRp2773\nsS'Y:%Losses'\np2774\ng26\n(S'Variable_Type'\n(I2\nttRp2775\nsS'Y:VBus85 - CLORET32'\np2776\ng26\n(S'Variable_Type'\n(I2\nttRp2777\nsS'Y:Load 59 - CCALDA31'\np2778\ng26\n(S'Variable_Type'\n(I2\nttRp2779\nsS'Y:VBus129 - CVAZZI310'\np2780\ng26\n(S'Variable_Type'\n(I2\nttRp2781\nsS'Y:VBus101 - CPIETR31'\np2782\ng26\n(S'Variable_Type'\n(I2\nttRp2783\nsS'Y:PMachine106 - CRIZZA31'\np2784\ng26\n(S'Variable_Type'\n(I2\nttRp2785\nsS'Y:VBus132 - CVAZZI313'\np2786\ng26\n(S'Variable_Type'\n(I2\nttRp2787\nsS'Y:PMachine118 - CTOLLA33'\np2788\ng26\n(S'Variable_Type'\n(I2\nttRp2789\nsS'Y:VBus19 - CCASTI21'\np2790\ng26\n(S'Variable_Type'\n(I2\nttRp2791\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np2792\ng26\n(S'Variable_Type'\n(I2\nttRp2793\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np2794\ng26\n(S'Variable_Type'\n(I1\nttRp2795\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np2796\ng26\n(S'Variable_Type'\n(I2\nttRp2797\nsS'Y:Load 115 - CTAGLI31'\np2798\ng26\n(S'Variable_Type'\n(I2\nttRp2799\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np2800\ng26\n(S'Variable_Type'\n(I2\nttRp2801\nsS'Y:VBus79 - CFURIA32'\np2802\ng26\n(S'Variable_Type'\n(I2\nttRp2803\nsS'Y:PMachine47 - CVAZZI21'\np2804\ng26\n(S'Variable_Type'\n(I1\nttRp2805\nsS'Y:VBus123 - CVAZZI34'\np2806\ng26\n(S'Variable_Type'\n(I2\nttRp2807\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np2808\ng26\n(S'Variable_Type'\n(I2\nttRp2809\nsS'Y:VBus60 - CCALDA32'\np2810\ng26\n(S'Variable_Type'\n(I2\nttRp2811\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np2812\ng26\n(S'Variable_Type'\n(I2\nttRp2813\nsS'Y:VBus65 - CCASAM33'\np2814\ng26\n(S'Variable_Type'\n(I2\nttRp2815\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np2816\ng26\n(S'Variable_Type'\n(I1\nttRp2817\nsS'Y:PMachine139 - CLUCCI310'\np2818\ng26\n(S'Variable_Type'\n(I1\nttRp2819\nsS'Y:VBus112 - CSAMPO31'\np2820\ng26\n(S'Variable_Type'\n(I2\nttRp2821\nsS'Y:VBus68 - CCASAM36'\np2822\ng26\n(S'Variable_Type'\n(I2\nttRp2823\nsS'Y:Load 55 - CBIGUG31'\np2824\ng26\n(S'Variable_Type'\n(I2\nttRp2825\nsS'Y:PMachine53 - CBASTI31'\np2826\ng26\n(S'Variable_Type'\n(I2\nttRp2827\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np2828\ng26\n(S'Variable_Type'\n(I2\nttRp2829\nsS'Y:VBus24 - CFURIA21'\np2830\ng26\n(S'Variable_Type'\n(I2\nttRp2831\nsS'Y:VBus23 - CCORTE22'\np2832\ng26\n(S'Variable_Type'\n(I2\nttRp2833\nsS'Y:VBus18 - CCASAM21'\np2834\ng26\n(S'Variable_Type'\n(I2\nttRp2835\nsS'Y:VBus40 - CSTMAR21'\np2836\ng26\n(S'Variable_Type'\n(I2\nttRp2837\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np2838\ng26\n(S'Variable_Type'\n(I2\nttRp2839\nsS'Y:PMachine124 - CVAZZI35'\np2840\ng26\n(S'Variable_Type'\n(I2\nttRp2841\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np2842\ng26\n(S'Variable_Type'\n(I2\nttRp2843\nsS'Y:PMachine117 - CTOLLA32'\np2844\ng26\n(S'Variable_Type'\n(I2\nttRp2845\nsS'Y:VBus89 - CLUCCI34'\np2846\ng26\n(S'Variable_Type'\n(I2\nttRp2847\nsS'Y:VBus33 - COLETT21'\np2848\ng26\n(S'Variable_Type'\n(I2\nttRp2849\nsS'Y:VBus32 - COCANA21'\np2850\ng26\n(S'Variable_Type'\n(I2\nttRp2851\nsS'Y:PMachine121 - CVAZZI32'\np2852\ng26\n(S'Variable_Type'\n(I2\nttRp2853\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np2854\ng26\n(S'Variable_Type'\n(I1\nttRp2855\nsS'Y:VBus82 - CILERO31'\np2856\ng26\n(S'Variable_Type'\n(I2\nttRp2857\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np2858\ng26\n(S'Variable_Type'\n(I2\nttRp2859\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np2860\ng26\n(S'Variable_Type'\n(I2\nttRp2861\nsS'Y:VBus37 - CRIZZA21'\np2862\ng26\n(S'Variable_Type'\n(I2\nttRp2863\nsS'Y:PMachine73 - CCASTI32'\np2864\ng26\n(S'Variable_Type'\n(I2\nttRp2865\nsS'Y:PMachine86 - CLUCCI31'\np2866\ng26\n(S'Variable_Type'\n(I2\nttRp2867\nsS'Y:Load 53 - CBASTI31'\np2868\ng26\n(S'Variable_Type'\n(I2\nttRp2869\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np2870\ng26\n(S'Variable_Type'\n(I2\nttRp2871\nsS'Y:VBus21 - CCORSC21'\np2872\ng26\n(S'Variable_Type'\n(I2\nttRp2873\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np2874\ng26\n(S'Variable_Type'\n(I2\nttRp2875\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np2876\ng26\n(S'Variable_Type'\n(I2\nttRp2877\nsS'Y:PMachine126 - CVAZZI37'\np2878\ng26\n(S'Variable_Type'\n(I2\nttRp2879\nsS'Y:PMachine64 - CCASAM32'\np2880\ng26\n(S'Variable_Type'\n(I2\nttRp2881\nsS'Y:VBus67 - CCASAM35'\np2882\ng26\n(S'Variable_Type'\n(I2\nttRp2883\nsS'Y:VBus53 - CBASTI31'\np2884\ng26\n(S'Variable_Type'\n(I2\nttRp2885\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np2886\ng26\n(S'Variable_Type'\n(I2\nttRp2887\nsS'Y:VBus61 - CCALVI31'\np2888\ng26\n(S'Variable_Type'\n(I2\nttRp2889\nsS'Y:VBus93 - COCANA32'\np2890\ng26\n(S'Variable_Type'\n(I2\nttRp2891\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np2892\ng26\n(S'Variable_Type'\n(I2\nttRp2893\nsS'Y:NbeTransit_0.9-1'\np2894\ng26\n(S'Variable_Type'\n(I1\nttRp2895\nsS'Y:VBus104 - CPROPR31'\np2896\ng26\n(S'Variable_Type'\n(I2\nttRp2897\nsS'Y:VBus22 - CCORTE21'\np2898\ng26\n(S'Variable_Type'\n(I2\nttRp2899\nsS'Y:VBus48 - CZSSS621'\np2900\ng26\n(S'Variable_Type'\n(I2\nttRp2901\nsS'Y:PMachine85 - CLORET32'\np2902\ng26\n(S'Variable_Type'\n(I2\nttRp2903\nsS'Y:Max%A'\np2904\ng26\n(S'Variable_Type'\n(I2\nttRp2905\nsS'Y:VBus36 - CPROPR21'\np2906\ng26\n(S'Variable_Type'\n(I2\nttRp2907\nsS'Y:Load 100 - COLETT31'\np2908\ng26\n(S'Variable_Type'\n(I2\nttRp2909\nsS'Y:PMachine54 - CBASTI32'\np2910\ng26\n(S'Variable_Type'\n(I2\nttRp2911\nsS'Y:VBus138 - CLUCCI39'\np2912\ng26\n(S'Variable_Type'\n(I2\nttRp2913\nsS'Y:VBus39 - CSTLUC21'\np2914\ng26\n(S'Variable_Type'\n(I2\nttRp2915\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np2916\ng26\n(S'Variable_Type'\n(I2\nttRp2917\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np2918\ng26\n(S'Variable_Type'\n(I2\nttRp2919\nsS'Y:Load 78 - CFURIA31'\np2920\ng26\n(S'Variable_Type'\n(I2\nttRp2921\nsS'Y:Load 74 - CCERVI31'\np2922\ng26\n(S'Variable_Type'\n(I2\nttRp2923\nsS'Y:VBus28 - CLORET21'\np2924\ng26\n(S'Variable_Type'\n(I2\nttRp2925\nsS'Y:PMachine105 - CPROPR32'\np2926\ng26\n(S'Variable_Type'\n(I2\nttRp2927\nsS'Y:VBus96 - COCANA35'\np2928\ng26\n(S'Variable_Type'\n(I2\nttRp2929\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np2930\ng26\n(S'Variable_Type'\n(I1\nttRp2931\nsS'Y:PMachine18 - CCASAM21'\np2932\ng26\n(S'Variable_Type'\n(I1\nttRp2933\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np2934\ng26\n(S'Variable_Type'\n(I2\nttRp2935\nsS'Y:VBus13 - CBIGUG21'\np2936\ng26\n(S'Variable_Type'\n(I2\nttRp2937\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np2938\ng26\n(S'Variable_Type'\n(I2\nttRp2939\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np2940\ng26\n(S'Variable_Type'\n(I2\nttRp2941\nsS'Y:VBus29 - CLUCCI21'\np2942\ng26\n(S'Variable_Type'\n(I2\nttRp2943\nsS'Y:VBus58 - CBONIF32'\np2944\ng26\n(S'Variable_Type'\n(I2\nttRp2945\nsS'Y:VBus84 - CLORET31'\np2946\ng26\n(S'Variable_Type'\n(I2\nttRp2947\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np2948\ng26\n(S'Variable_Type'\n(I1\nttRp2949\nsS'Y:VBus97 - COCANA36'\np2950\ng26\n(S'Variable_Type'\n(I2\nttRp2951\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np2952\ng26\n(S'Variable_Type'\n(I1\nttRp2953\nsS'Y:VBus15 - CBONIF22'\np2954\ng26\n(S'Variable_Type'\n(I2\nttRp2955\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np2956\ng26\n(S'Variable_Type'\n(I2\nttRp2957\nsS'Y:Load 110 - CSTLUC31'\np2958\ng26\n(S'Variable_Type'\n(I2\nttRp2959\nsS'Y:VBus80 - CGHISO31'\np2960\ng26\n(S'Variable_Type'\n(I2\nttRp2961\nsS'Y:PMachine114 - CSOVEN31'\np2962\ng26\n(S'Variable_Type'\n(I2\nttRp2963\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np2964\ng26\n(S'Variable_Type'\n(I1\nttRp2965\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np2966\ng26\n(S'Variable_Type'\n(I2\nttRp2967\nsS'Y:PMachine93 - COCANA32'\np2968\ng26\n(S'Variable_Type'\n(I2\nttRp2969\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np2970\ng26\n(S'Variable_Type'\n(I1\nttRp2971\nsS'Y:VBus87 - CLUCCI32'\np2972\ng26\n(S'Variable_Type'\n(I2\nttRp2973\nsS'Y:VBus62 - CCALVI32'\np2974\ng26\n(S'Variable_Type'\n(I2\nttRp2975\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np2976\ng26\n(S'Variable_Type'\n(I1\nttRp2977\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np2978\ng26\n(S'Variable_Type'\n(I1\nttRp2979\nsS'Y:VBus81 - CGHISO32'\np2980\ng26\n(S'Variable_Type'\n(I2\nttRp2981\nsS'Y:PMachine74 - CCERVI31'\np2982\ng26\n(S'Variable_Type'\n(I2\nttRp2983\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np2984\ng26\n(S'Variable_Type'\n(I2\nttRp2985\nsS'EOL_ALL'\np2986\ng26\n(S'Variable_Type'\n(I2\nttRp2987\nsS'X:Load(pu)'\np2988\ng26\n(S'Variable_Type'\n(I2\nttRp2989\nsS'Y:NbeTension'\np2990\ng26\n(S'Variable_Type'\n(I2\nttRp2991\nsS'Y:VBus95 - COCANA34'\np2992\ng26\n(S'Variable_Type'\n(I2\nttRp2993\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np2994\ng26\n(S'Variable_Type'\n(I2\nttRp2995\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np2996\ng26\n(S'Variable_Type'\n(I2\nttRp2997\nsS'Y:Load 95 - COCANA34'\np2998\ng26\n(S'Variable_Type'\n(I2\nttRp2999\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np3000\ng26\n(S'Variable_Type'\n(I1\nttRp3001\nsS'Y:PMachine90 - CMOROS31'\np3002\ng26\n(S'Variable_Type'\n(I2\nttRp3003\nsS'Y:Load 101 - CPIETR31'\np3004\ng26\n(S'Variable_Type'\n(I2\nttRp3005\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np3006\ng26\n(S'Variable_Type'\n(I1\nttRp3007\nsS'Y:PMachine132 - CVAZZI313'\np3008\ng26\n(S'Variable_Type'\n(I2\nttRp3009\nsS'Y:VBus125 - CVAZZI36'\np3010\ng26\n(S'Variable_Type'\n(I2\nttRp3011\nsS'Y:VBus135 - CLUCCI36'\np3012\ng26\n(S'Variable_Type'\n(I2\nttRp3013\nsS'Y:VBus47 - CVAZZI21'\np3014\ng26\n(S'Variable_Type'\n(I2\nttRp3015\nsS'Y:VBus94 - COCANA33'\np3016\ng26\n(S'Variable_Type'\n(I2\nttRp3017\nsS'Y:VBus17 - CCALVI21'\np3018\ng26\n(S'Variable_Type'\n(I2\nttRp3019\nsS'Y:Load 90 - CMOROS31'\np3020\ng26\n(S'Variable_Type'\n(I2\nttRp3021\nsS'Y:VBus120 - CVAZZI31'\np3022\ng26\n(S'Variable_Type'\n(I2\nttRp3023\nsS'X:ProdPV%Pnom'\np3024\ng26\n(S'Variable_Type'\n(I2\nttRp3025\nsS'Y:VBus52 - CASPRE32'\np3026\ng26\n(S'Variable_Type'\n(I2\nttRp3027\nsS'Y:VBus25 - CFURIA22'\np3028\ng26\n(S'Variable_Type'\n(I2\nttRp3029\nsS'Y:Load 76 - CCORTE31'\np3030\ng26\n(S'Variable_Type'\n(I2\nttRp3031\nsS'Y:PMachine69 - CCASAM37'\np3032\ng26\n(S'Variable_Type'\n(I2\nttRp3033\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np3034\ng26\n(S'Variable_Type'\n(I2\nttRp3035\nsS'Y:PMachine92 - COCANA31'\np3036\ng26\n(S'Variable_Type'\n(I2\nttRp3037\nsS'Y:VBus35 - CPORTO21'\np3038\ng26\n(S'Variable_Type'\n(I2\nttRp3039\nsS'VAZZIO_TAC'\np3040\ng26\n(S'Variable_Type'\n(I2\nttRp3041\nsS'Y:PMachine122 - CVAZZI33'\np3042\ng26\n(S'Variable_Type'\n(I2\nttRp3043\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np3044\ng26\n(S'Variable_Type'\n(I1\nttRp3045\nsS'Y:PMachine63 - CCASAM31'\np3046\ng26\n(S'Variable_Type'\n(I2\nttRp3047\nsS'Y:VBus74 - CCERVI31'\np3048\ng26\n(S'Variable_Type'\n(I2\nttRp3049\nsS'Y:VBus126 - CVAZZI37'\np3050\ng26\n(S'Variable_Type'\n(I2\nttRp3051\nsS'Y:PMachine60 - CCALDA32'\np3052\ng26\n(S'Variable_Type'\n(I2\nttRp3053\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np3054\ng26\n(S'Variable_Type'\n(I1\nttRp3055\nsS'Y:VBus20 - CCERVI21'\np3056\ng26\n(S'Variable_Type'\n(I2\nttRp3057\nsS'Y:VBus119 - CTRAVO31'\np3058\ng26\n(S'Variable_Type'\n(I2\nttRp3059\nsS'Y:VBus11 - CASPRE21'\np3060\ng26\n(S'Variable_Type'\n(I2\nttRp3061\nsS'Y:VBus139 - CLUCCI310'\np3062\ng26\n(S'Variable_Type'\n(I2\nttRp3063\nsS'Y:VBus106 - CRIZZA31'\np3064\ng26\n(S'Variable_Type'\n(I2\nttRp3065\nsS'Y:PMachine66 - CCASAM34'\np3066\ng26\n(S'Variable_Type'\n(I2\nttRp3067\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np3068\ng26\n(S'Variable_Type'\n(I2\nttRp3069\nsS'Y:VBus136 - CLUCCI37'\np3070\ng26\n(S'Variable_Type'\n(I2\nttRp3071\nsS'Y:VBus90 - CMOROS31'\np3072\ng26\n(S'Variable_Type'\n(I2\nttRp3073\nsS'PV_ALL'\np3074\ng26\n(S'Variable_Type'\n(I2\nttRp3075\nsS'X:lineOff#'\np3076\ng26\n(S'Variable_Type'\n(I2\nttRp3077\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np3078\ng26\n(S'Variable_Type'\n(I2\nttRp3079\nsS'Y:VBus108 - CSAGON31'\np3080\ng26\n(S'Variable_Type'\n(I2\nttRp3081\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np3082\ng26\n(S'Variable_Type'\n(I2\nttRp3083\nsS'Y:VBus137 - CLUCCI38'\np3084\ng26\n(S'Variable_Type'\n(I2\nttRp3085\nsS'Y:VBus130 - CVAZZI311'\np3086\ng26\n(S'Variable_Type'\n(I2\nttRp3087\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np3088\ng26\n(S'Variable_Type'\n(I2\nttRp3089\nsS'Y:VBus46 - CTRAVO21'\np3090\ng26\n(S'Variable_Type'\n(I2\nttRp3091\nsS'Y:VBus113 - CSAMPO32'\np3092\ng26\n(S'Variable_Type'\n(I2\nttRp3093\nsS'Y:PMachine133 - CVAZZI314'\np3094\ng26\n(S'Variable_Type'\n(I2\nttRp3095\nsS'Y:PMachine65 - CCASAM33'\np3096\ng26\n(S'Variable_Type'\n(I2\nttRp3097\nsS'Y:VBus78 - CFURIA31'\np3098\ng26\n(S'Variable_Type'\n(I2\nttRp3099\nsS'Y:VBus26 - CGHISO21'\np3100\ng26\n(S'Variable_Type'\n(I2\nttRp3101\nsS'Y:VBus121 - CVAZZI32'\np3102\ng26\n(S'Variable_Type'\n(I2\nttRp3103\nsS'Y:PMachine97 - COCANA36'\np3104\ng26\n(S'Variable_Type'\n(I2\nttRp3105\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np3106\ng26\n(S'Variable_Type'\n(I2\nttRp3107\nsS'Y:PMachine83 - CILERO32'\np3108\ng26\n(S'Variable_Type'\n(I2\nttRp3109\nsS'Y:VBus83 - CILERO32'\np3110\ng26\n(S'Variable_Type'\n(I2\nttRp3111\nsS'Y:VBus66 - CCASAM34'\np3112\ng26\n(S'Variable_Type'\n(I2\nttRp3113\nsS'Y:PMachine1 - CBONIF11'\np3114\ng26\n(S'Variable_Type'\n(I2\nttRp3115\nsS'Y:VBus111 - CSTMAR31'\np3116\ng26\n(S'Variable_Type'\n(I2\nttRp3117\nsS'Y:VBus124 - CVAZZI35'\np3118\ng26\n(S'Variable_Type'\n(I2\nttRp3119\nsS'VAZZIO_DIESEL'\np3120\ng26\n(S'Variable_Type'\n(I2\nttRp3121\nsS'Y:PMachine131 - CVAZZI312'\np3122\ng26\n(S'Variable_Type'\n(I2\nttRp3123\nsS'Y:VBus44 - CTAGLI21'\np3124\ng26\n(S'Variable_Type'\n(I2\nttRp3125\nsS'Y:VBus88 - CLUCCI33'\np3126\ng26\n(S'Variable_Type'\n(I2\nttRp3127\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np3128\ng26\n(S'Variable_Type'\n(I1\nttRp3129\nsS'Y:VBus38 - CSAGON21'\np3130\ng26\n(S'Variable_Type'\n(I2\nttRp3131\nsS'Y:PMachine81 - CGHISO32'\np3132\ng26\n(S'Variable_Type'\n(I2\nttRp3133\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np3134\ng26\n(S'Variable_Type'\n(I2\nttRp3135\nsS'Y:VBus110 - CSTLUC31'\np3136\ng26\n(S'Variable_Type'\n(I2\nttRp3137\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np3138\ng26\n(S'Variable_Type'\n(I2\nttRp3139\nssg630\n(dp3140\nsg632\n(dp3141\ng2509\n(S'Iteration'\np3142\ng2611\ntp3143\nsg2512\n(g638\nI0\ntp3144\nsg2514\n(g3142\ng2611\ntp3145\nsg2516\n(S''\nI0\ntp3146\nsg2518\n(S''\nI0\ntp3147\nsg2520\n(NI-2\ntp3148\nsg2522\n((lI-2\ntp3149\nssg650\nF1369995455.3150001\nsba(iOWContexts\nContext\np3150\n(dp3151\ng20\n(lp3152\ng1272\nasg23\n(dp3153\nS'Y:PMachine134 - CLUCCI35'\np3154\ng26\n(S'Variable_Type'\n(I1\nttRp3155\nsS'Y:VBus77 - CCORTE32'\np3156\ng26\n(S'Variable_Type'\n(I2\nttRp3157\nsS'Y:VBus134 - CLUCCI35'\np3158\ng26\n(S'Variable_Type'\n(I2\nttRp3159\nsS'Y:VBus109 - CSAGON32'\np3160\ng26\n(S'Variable_Type'\n(I2\nttRp3161\nsS'Y:VBus102 - CPORTO31'\np3162\ng26\n(S'Variable_Type'\n(I2\nttRp3163\nsS'XProdEolienne%Pnom'\np3164\ng26\n(S'Variable_Type'\n(I1\nttRp3165\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np3166\ng26\n(S'Variable_Type'\n(I2\nttRp3167\nsS'Y:PMachine94 - COCANA33'\np3168\ng26\n(S'Variable_Type'\n(I2\nttRp3169\nsS'Y:VBus117 - CTOLLA32'\np3170\ng26\n(S'Variable_Type'\n(I2\nttRp3171\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np3172\ng26\n(S'Variable_Type'\n(I2\nttRp3173\nsS'Y:PMachine87 - CLUCCI32'\np3174\ng26\n(S'Variable_Type'\n(I2\nttRp3175\nsS'Y:PMachine113 - CSAMPO32'\np3176\ng26\n(S'Variable_Type'\n(I2\nttRp3177\nsS'Y:Load 84 - CLORET31'\np3178\ng26\n(S'Variable_Type'\n(I2\nttRp3179\nsS'Y:PMachine89 - CLUCCI34'\np3180\ng26\n(S'Variable_Type'\n(I1\nttRp3181\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np3182\ng26\n(S'Variable_Type'\n(I2\nttRp3183\nsS'Y:Load 80 - CGHISO31'\np3184\ng26\n(S'Variable_Type'\n(I2\nttRp3185\nsS'Y:PMachine125 - CVAZZI36'\np3186\ng26\n(S'Variable_Type'\n(I2\nttRp3187\nsS'Y:PMachine116 - CTOLLA31'\np3188\ng26\n(S'Variable_Type'\n(I2\nttRp3189\nsS'Y:PMachine88 - CLUCCI33'\np3190\ng26\n(S'Variable_Type'\n(I1\nttRp3191\nsS'Y:PMachine120 - CVAZZI31'\np3192\ng26\n(S'Variable_Type'\n(I2\nttRp3193\nsS'Y:PMachine111 - CSTMAR31'\np3194\ng26\n(S'Variable_Type'\n(I2\nttRp3195\nsS'Y:NbeTransit'\np3196\ng26\n(S'Variable_Type'\n(I1\nttRp3197\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np3198\ng26\n(S'Variable_Type'\n(I2\nttRp3199\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np3200\ng26\n(S'Variable_Type'\n(I2\nttRp3201\nsS'Y:VBus92 - COCANA31'\np3202\ng26\n(S'Variable_Type'\n(I2\nttRp3203\nsS'Y:PMachine130 - CVAZZI311'\np3204\ng26\n(S'Variable_Type'\n(I2\nttRp3205\nsS'Y:PMachine127 - CVAZZI38'\np3206\ng26\n(S'Variable_Type'\n(I2\nttRp3207\nsS'Y:VBus131 - CVAZZI312'\np3208\ng26\n(S'Variable_Type'\n(I2\nttRp3209\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np3210\ng26\n(S'Variable_Type'\n(I2\nttRp3211\nsS'Y:PMachine123 - CVAZZI34'\np3212\ng26\n(S'Variable_Type'\n(I2\nttRp3213\nsS'Y:VBus118 - CTOLLA33'\np3214\ng26\n(S'Variable_Type'\n(I2\nttRp3215\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np3216\ng26\n(S'Variable_Type'\n(I1\nttRp3217\nsS'Y:PMachine58 - CBONIF32'\np3218\ng26\n(S'Variable_Type'\n(I2\nttRp3219\nsS'Y:Load 104 - CPROPR31'\np3220\ng26\n(S'Variable_Type'\n(I2\nttRp3221\nsS'Y:PMachine30 - CLUCCI22'\np3222\ng26\n(S'Variable_Type'\n(I1\nttRp3223\nsS'Y:VBus100 - COLETT31'\np3224\ng26\n(S'Variable_Type'\n(I2\nttRp3225\nsS'Y:PProdTot'\np3226\ng26\n(S'Variable_Type'\n(I2\nttRp3227\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np3228\ng26\n(S'Variable_Type'\n(I1\nttRp3229\nsS'Y:VBus57 - CBONIF31'\np3230\ng26\n(S'Variable_Type'\n(I2\nttRp3231\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np3232\ng26\n(S'Variable_Type'\n(I2\nttRp3233\nsS'Y:PConsoTot'\np3234\ng26\n(S'Variable_Type'\n(I2\nttRp3235\nsS'Iteration'\np3236\ng26\n(S'Variable_Type'\n(I2\nttRp3237\nsS'Y:PMachine109 - CSAGON32'\np3238\ng26\n(S'Variable_Type'\n(I2\nttRp3239\nsS'Y:PMachine135 - CLUCCI36'\np3240\ng26\n(S'Variable_Type'\n(I1\nttRp3241\nsS'Y:VBus30 - CLUCCI22'\np3242\ng26\n(S'Variable_Type'\n(I2\nttRp3243\nsS'Y:VBus122 - CVAZZI33'\np3244\ng26\n(S'Variable_Type'\n(I2\nttRp3245\nsS'Y:VBus86 - CLUCCI31'\np3246\ng26\n(S'Variable_Type'\n(I2\nttRp3247\nsS'Y:PMachine102 - CPORTO31'\np3248\ng26\n(S'Variable_Type'\n(I2\nttRp3249\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np3250\ng26\n(S'Variable_Type'\n(I1\nttRp3251\nsS'Y:PMachine107 - CRIZZA32'\np3252\ng26\n(S'Variable_Type'\n(I2\nttRp3253\nsS'Y:VBus16 - CCALDA21'\np3254\ng26\n(S'Variable_Type'\n(I2\nttRp3255\nsS'Y:Load 102 - CPORTO31'\np3256\ng26\n(S'Variable_Type'\n(I2\nttRp3257\nsS'Y:VBus107 - CRIZZA32'\np3258\ng26\n(S'Variable_Type'\n(I2\nttRp3259\nsS'Y:VBus59 - CCALDA31'\np3260\ng26\n(S'Variable_Type'\n(I2\nttRp3261\nsS'Y:VBus41 - CSAMPO21'\np3262\ng26\n(S'Variable_Type'\n(I2\nttRp3263\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np3264\ng26\n(S'Variable_Type'\n(I2\nttRp3265\nsS'Y:VBus34 - CPIETR21'\np3266\ng26\n(S'Variable_Type'\n(I2\nttRp3267\nsS'Y:Load 108 - CSAGON31'\np3268\ng26\n(S'Variable_Type'\n(I2\nttRp3269\nsS'Y:VBus56 - CBIGUG32'\np3270\ng26\n(S'Variable_Type'\n(I2\nttRp3271\nsS'Y:PMachine42 - CSISCO21'\np3272\ng26\n(S'Variable_Type'\n(I2\nttRp3273\nsS'Y:PMachine138 - CLUCCI39'\np3274\ng26\n(S'Variable_Type'\n(I1\nttRp3275\nsS'Y:PMachine112 - CSAMPO31'\np3276\ng26\n(S'Variable_Type'\n(I2\nttRp3277\nsS'Y:VBus105 - CPROPR32'\np3278\ng26\n(S'Variable_Type'\n(I2\nttRp3279\nsS'Y:VBus1 - CBONIF11'\np3280\ng26\n(S'Variable_Type'\n(I2\nttRp3281\nsS'Y:VBus12 - CBASTI21'\np3282\ng26\n(S'Variable_Type'\n(I2\nttRp3283\nsS'Y:PMachine129 - CVAZZI310'\np3284\ng26\n(S'Variable_Type'\n(I2\nttRp3285\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np3286\ng26\n(S'Variable_Type'\n(I1\nttRp3287\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np3288\ng26\n(S'Variable_Type'\n(I1\nttRp3289\nsS'Y:VBus54 - CBASTI32'\np3290\ng26\n(S'Variable_Type'\n(I2\nttRp3291\nsS'Y:VBus69 - CCASAM37'\np3292\ng26\n(S'Variable_Type'\n(I2\nttRp3293\nsS'Y:VBus45 - CTOLLA21'\np3294\ng26\n(S'Variable_Type'\n(I2\nttRp3295\nsS'Y:PMachine115 - CTAGLI31'\np3296\ng26\n(S'Variable_Type'\n(I2\nttRp3297\nsS'Y:PMachine77 - CCORTE32'\np3298\ng26\n(S'Variable_Type'\n(I2\nttRp3299\nsS'Y:VBus43 - CSOVEN21'\np3300\ng26\n(S'Variable_Type'\n(I2\nttRp3301\nsS'Y:VBus76 - CCORTE31'\np3302\ng26\n(S'Variable_Type'\n(I2\nttRp3303\nsS'Y:VBus75 - CCORSC31'\np3304\ng26\n(S'Variable_Type'\n(I2\nttRp3305\nsS'Y:PMachine78 - CFURIA31'\np3306\ng26\n(S'Variable_Type'\n(I1\nttRp3307\nsS'Y:VBus127 - CVAZZI38'\np3308\ng26\n(S'Variable_Type'\n(I2\nttRp3309\nsS'Y:VBus115 - CTAGLI31'\np3310\ng26\n(S'Variable_Type'\n(I2\nttRp3311\nsS'Y:Load 61 - CCALVI31'\np3312\ng26\n(S'Variable_Type'\n(I2\nttRp3313\nsS'Y:VBus55 - CBIGUG31'\np3314\ng26\n(S'Variable_Type'\n(I2\nttRp3315\nsS'Y:Load 42 - CSISCO21'\np3316\ng26\n(S'Variable_Type'\n(I2\nttRp3317\nsS'Y:VBus72 - CCASTI31'\np3318\ng26\n(S'Variable_Type'\n(I2\nttRp3319\nsS'Y:Load 37 - CRIZZA21'\np3320\ng26\n(S'Variable_Type'\n(I2\nttRp3321\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np3322\ng26\n(S'Variable_Type'\n(I2\nttRp3323\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np3324\ng26\n(S'Variable_Type'\n(I2\nttRp3325\nsS'Y:PMachine137 - CLUCCI38'\np3326\ng26\n(S'Variable_Type'\n(I1\nttRp3327\nsS'Y:PMachine67 - CCASAM35'\np3328\ng26\n(S'Variable_Type'\n(I2\nttRp3329\nsS'INTERCOS'\np3330\ng26\n(S'Variable_Type'\n(I2\nttRp3331\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np3332\ng26\n(S'Variable_Type'\n(I1\nttRp3333\nsS'Y:VBus31 - CMOROS21'\np3334\ng26\n(S'Variable_Type'\n(I2\nttRp3335\nsS'Y:VBus103 - CPORTO32'\np3336\ng26\n(S'Variable_Type'\n(I2\nttRp3337\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np3338\ng26\n(S'Variable_Type'\n(I1\nttRp3339\nsS'Y:PMachine128 - CVAZZI39'\np3340\ng26\n(S'Variable_Type'\n(I2\nttRp3341\nsS'Y:PMachine72 - CCASTI31'\np3342\ng26\n(S'Variable_Type'\n(I2\nttRp3343\nsS'Y:VBus27 - CILERO21'\np3344\ng26\n(S'Variable_Type'\n(I2\nttRp3345\nsS'Y:PMachine75 - CCORSC31'\np3346\ng26\n(S'Variable_Type'\n(I2\nttRp3347\nsS'Y:Load 51 - CASPRE31'\np3348\ng26\n(S'Variable_Type'\n(I2\nttRp3349\nsS'Y:PMachine61 - CCALVI31'\np3350\ng26\n(S'Variable_Type'\n(I1\nttRp3351\nsS'Y:VBus51 - CASPRE31'\np3352\ng26\n(S'Variable_Type'\n(I2\nttRp3353\nsS'Y:VBus114 - CSOVEN31'\np3354\ng26\n(S'Variable_Type'\n(I2\nttRp3355\nsS'Y:Load 82 - CILERO31'\np3356\ng26\n(S'Variable_Type'\n(I2\nttRp3357\nsS'Y:VBus116 - CTOLLA31'\np3358\ng26\n(S'Variable_Type'\n(I2\nttRp3359\nsS'Y:Load 86 - CLUCCI31'\np3360\ng26\n(S'Variable_Type'\n(I2\nttRp3361\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np3362\ng26\n(S'Variable_Type'\n(I2\nttRp3363\nsS'Y:Load 57 - CBONIF31'\np3364\ng26\n(S'Variable_Type'\n(I2\nttRp3365\nsS'Y:PMachine104 - CPROPR31'\np3366\ng26\n(S'Variable_Type'\n(I2\nttRp3367\nsS'Y:VBus128 - CVAZZI39'\np3368\ng26\n(S'Variable_Type'\n(I2\nttRp3369\nsS'Y:PMachine136 - CLUCCI37'\np3370\ng26\n(S'Variable_Type'\n(I1\nttRp3371\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np3372\ng26\n(S'Variable_Type'\n(I2\nttRp3373\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np3374\ng26\n(S'Variable_Type'\n(I2\nttRp3375\nsS'Y:PMachine68 - CCASAM36'\np3376\ng26\n(S'Variable_Type'\n(I2\nttRp3377\nsS'Y:PMachine29 - CLUCCI21'\np3378\ng26\n(S'Variable_Type'\n(I1\nttRp3379\nsS'Y:VBus42 - CSISCO21'\np3380\ng26\n(S'Variable_Type'\n(I2\nttRp3381\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np3382\ng26\n(S'Variable_Type'\n(I1\nttRp3383\nsS'Y:VBus14 - CBONIF21'\np3384\ng26\n(S'Variable_Type'\n(I2\nttRp3385\nsS'Y:VBus73 - CCASTI32'\np3386\ng26\n(S'Variable_Type'\n(I2\nttRp3387\nsS'Y:VBus64 - CCASAM32'\np3388\ng26\n(S'Variable_Type'\n(I2\nttRp3389\nsS'Y:PMachine14 - CBONIF21'\np3390\ng26\n(S'Variable_Type'\n(I1\nttRp3391\nsS'Y:PMachine62 - CCALVI32'\np3392\ng26\n(S'Variable_Type'\n(I2\nttRp3393\nsS'Y:VBus133 - CVAZZI314'\np3394\ng26\n(S'Variable_Type'\n(I2\nttRp3395\nsS'Y:VBus63 - CCASAM31'\np3396\ng26\n(S'Variable_Type'\n(I2\nttRp3397\nsS'Y:PMachine101 - CPIETR31'\np3398\ng26\n(S'Variable_Type'\n(I2\nttRp3399\nsS'Y:%Losses'\np3400\ng26\n(S'Variable_Type'\n(I2\nttRp3401\nsS'Y:VBus85 - CLORET32'\np3402\ng26\n(S'Variable_Type'\n(I2\nttRp3403\nsS'Y:Load 59 - CCALDA31'\np3404\ng26\n(S'Variable_Type'\n(I2\nttRp3405\nsS'Y:VBus129 - CVAZZI310'\np3406\ng26\n(S'Variable_Type'\n(I2\nttRp3407\nsS'Y:VBus101 - CPIETR31'\np3408\ng26\n(S'Variable_Type'\n(I2\nttRp3409\nsS'Y:PMachine106 - CRIZZA31'\np3410\ng26\n(S'Variable_Type'\n(I2\nttRp3411\nsS'Y:VBus132 - CVAZZI313'\np3412\ng26\n(S'Variable_Type'\n(I2\nttRp3413\nsS'Y:PMachine118 - CTOLLA33'\np3414\ng26\n(S'Variable_Type'\n(I2\nttRp3415\nsS'Y:VBus19 - CCASTI21'\np3416\ng26\n(S'Variable_Type'\n(I2\nttRp3417\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np3418\ng26\n(S'Variable_Type'\n(I2\nttRp3419\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np3420\ng26\n(S'Variable_Type'\n(I1\nttRp3421\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np3422\ng26\n(S'Variable_Type'\n(I2\nttRp3423\nsS'Y:Load 115 - CTAGLI31'\np3424\ng26\n(S'Variable_Type'\n(I2\nttRp3425\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np3426\ng26\n(S'Variable_Type'\n(I2\nttRp3427\nsS'Y:VBus79 - CFURIA32'\np3428\ng26\n(S'Variable_Type'\n(I2\nttRp3429\nsS'Y:PMachine47 - CVAZZI21'\np3430\ng26\n(S'Variable_Type'\n(I1\nttRp3431\nsS'Y:VBus123 - CVAZZI34'\np3432\ng26\n(S'Variable_Type'\n(I2\nttRp3433\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np3434\ng26\n(S'Variable_Type'\n(I2\nttRp3435\nsS'Y:VBus60 - CCALDA32'\np3436\ng26\n(S'Variable_Type'\n(I2\nttRp3437\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np3438\ng26\n(S'Variable_Type'\n(I2\nttRp3439\nsS'Y:VBus65 - CCASAM33'\np3440\ng26\n(S'Variable_Type'\n(I2\nttRp3441\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np3442\ng26\n(S'Variable_Type'\n(I1\nttRp3443\nsS'Y:PMachine139 - CLUCCI310'\np3444\ng26\n(S'Variable_Type'\n(I1\nttRp3445\nsS'Y:VBus112 - CSAMPO31'\np3446\ng26\n(S'Variable_Type'\n(I2\nttRp3447\nsS'Y:VBus68 - CCASAM36'\np3448\ng26\n(S'Variable_Type'\n(I2\nttRp3449\nsS'Y:Load 55 - CBIGUG31'\np3450\ng26\n(S'Variable_Type'\n(I2\nttRp3451\nsS'Y:PMachine53 - CBASTI31'\np3452\ng26\n(S'Variable_Type'\n(I2\nttRp3453\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np3454\ng26\n(S'Variable_Type'\n(I2\nttRp3455\nsS'Y:VBus24 - CFURIA21'\np3456\ng26\n(S'Variable_Type'\n(I2\nttRp3457\nsS'Y:VBus23 - CCORTE22'\np3458\ng26\n(S'Variable_Type'\n(I2\nttRp3459\nsS'Y:VBus18 - CCASAM21'\np3460\ng26\n(S'Variable_Type'\n(I2\nttRp3461\nsS'Y:VBus40 - CSTMAR21'\np3462\ng26\n(S'Variable_Type'\n(I2\nttRp3463\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np3464\ng26\n(S'Variable_Type'\n(I2\nttRp3465\nsS'Y:PMachine124 - CVAZZI35'\np3466\ng26\n(S'Variable_Type'\n(I2\nttRp3467\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np3468\ng26\n(S'Variable_Type'\n(I2\nttRp3469\nsS'Y:PMachine117 - CTOLLA32'\np3470\ng26\n(S'Variable_Type'\n(I2\nttRp3471\nsS'Y:VBus89 - CLUCCI34'\np3472\ng26\n(S'Variable_Type'\n(I2\nttRp3473\nsS'Y:VBus33 - COLETT21'\np3474\ng26\n(S'Variable_Type'\n(I2\nttRp3475\nsS'Y:VBus32 - COCANA21'\np3476\ng26\n(S'Variable_Type'\n(I2\nttRp3477\nsS'Y:PMachine121 - CVAZZI32'\np3478\ng26\n(S'Variable_Type'\n(I2\nttRp3479\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np3480\ng26\n(S'Variable_Type'\n(I1\nttRp3481\nsS'Y:VBus82 - CILERO31'\np3482\ng26\n(S'Variable_Type'\n(I2\nttRp3483\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np3484\ng26\n(S'Variable_Type'\n(I2\nttRp3485\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np3486\ng26\n(S'Variable_Type'\n(I2\nttRp3487\nsS'Y:VBus37 - CRIZZA21'\np3488\ng26\n(S'Variable_Type'\n(I2\nttRp3489\nsS'Y:PMachine73 - CCASTI32'\np3490\ng26\n(S'Variable_Type'\n(I2\nttRp3491\nsS'Y:PMachine86 - CLUCCI31'\np3492\ng26\n(S'Variable_Type'\n(I2\nttRp3493\nsS'Y:Load 53 - CBASTI31'\np3494\ng26\n(S'Variable_Type'\n(I2\nttRp3495\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np3496\ng26\n(S'Variable_Type'\n(I2\nttRp3497\nsS'Y:VBus21 - CCORSC21'\np3498\ng26\n(S'Variable_Type'\n(I2\nttRp3499\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np3500\ng26\n(S'Variable_Type'\n(I2\nttRp3501\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np3502\ng26\n(S'Variable_Type'\n(I2\nttRp3503\nsS'Y:PMachine126 - CVAZZI37'\np3504\ng26\n(S'Variable_Type'\n(I2\nttRp3505\nsS'Y:PMachine64 - CCASAM32'\np3506\ng26\n(S'Variable_Type'\n(I2\nttRp3507\nsS'Y:VBus67 - CCASAM35'\np3508\ng26\n(S'Variable_Type'\n(I2\nttRp3509\nsS'Y:VBus53 - CBASTI31'\np3510\ng26\n(S'Variable_Type'\n(I2\nttRp3511\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np3512\ng26\n(S'Variable_Type'\n(I2\nttRp3513\nsS'Y:VBus61 - CCALVI31'\np3514\ng26\n(S'Variable_Type'\n(I2\nttRp3515\nsS'Y:VBus93 - COCANA32'\np3516\ng26\n(S'Variable_Type'\n(I2\nttRp3517\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np3518\ng26\n(S'Variable_Type'\n(I2\nttRp3519\nsS'Y:NbeTransit_0.9-1'\np3520\ng26\n(S'Variable_Type'\n(I1\nttRp3521\nsS'Y:VBus104 - CPROPR31'\np3522\ng26\n(S'Variable_Type'\n(I2\nttRp3523\nsS'Y:VBus22 - CCORTE21'\np3524\ng26\n(S'Variable_Type'\n(I2\nttRp3525\nsS'Y:VBus48 - CZSSS621'\np3526\ng26\n(S'Variable_Type'\n(I2\nttRp3527\nsS'Y:PMachine85 - CLORET32'\np3528\ng26\n(S'Variable_Type'\n(I2\nttRp3529\nsS'Y:Max%A'\np3530\ng26\n(S'Variable_Type'\n(I2\nttRp3531\nsS'Y:VBus36 - CPROPR21'\np3532\ng26\n(S'Variable_Type'\n(I2\nttRp3533\nsS'Y:Load 100 - COLETT31'\np3534\ng26\n(S'Variable_Type'\n(I2\nttRp3535\nsS'Y:PMachine54 - CBASTI32'\np3536\ng26\n(S'Variable_Type'\n(I2\nttRp3537\nsS'Y:VBus138 - CLUCCI39'\np3538\ng26\n(S'Variable_Type'\n(I2\nttRp3539\nsS'Y:VBus39 - CSTLUC21'\np3540\ng26\n(S'Variable_Type'\n(I2\nttRp3541\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np3542\ng26\n(S'Variable_Type'\n(I2\nttRp3543\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np3544\ng26\n(S'Variable_Type'\n(I2\nttRp3545\nsS'Y:Load 78 - CFURIA31'\np3546\ng26\n(S'Variable_Type'\n(I2\nttRp3547\nsS'Y:Load 74 - CCERVI31'\np3548\ng26\n(S'Variable_Type'\n(I2\nttRp3549\nsS'Y:VBus28 - CLORET21'\np3550\ng26\n(S'Variable_Type'\n(I2\nttRp3551\nsS'Y:PMachine105 - CPROPR32'\np3552\ng26\n(S'Variable_Type'\n(I2\nttRp3553\nsS'Y:VBus96 - COCANA35'\np3554\ng26\n(S'Variable_Type'\n(I2\nttRp3555\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np3556\ng26\n(S'Variable_Type'\n(I1\nttRp3557\nsS'Y:PMachine18 - CCASAM21'\np3558\ng26\n(S'Variable_Type'\n(I1\nttRp3559\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np3560\ng26\n(S'Variable_Type'\n(I2\nttRp3561\nsS'Y:VBus13 - CBIGUG21'\np3562\ng26\n(S'Variable_Type'\n(I2\nttRp3563\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np3564\ng26\n(S'Variable_Type'\n(I2\nttRp3565\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np3566\ng26\n(S'Variable_Type'\n(I2\nttRp3567\nsS'Y:VBus29 - CLUCCI21'\np3568\ng26\n(S'Variable_Type'\n(I2\nttRp3569\nsS'Y:VBus58 - CBONIF32'\np3570\ng26\n(S'Variable_Type'\n(I2\nttRp3571\nsS'Y:VBus84 - CLORET31'\np3572\ng26\n(S'Variable_Type'\n(I2\nttRp3573\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np3574\ng26\n(S'Variable_Type'\n(I1\nttRp3575\nsS'Y:VBus97 - COCANA36'\np3576\ng26\n(S'Variable_Type'\n(I2\nttRp3577\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np3578\ng26\n(S'Variable_Type'\n(I1\nttRp3579\nsS'Y:VBus15 - CBONIF22'\np3580\ng26\n(S'Variable_Type'\n(I2\nttRp3581\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np3582\ng26\n(S'Variable_Type'\n(I2\nttRp3583\nsS'Y:Load 110 - CSTLUC31'\np3584\ng26\n(S'Variable_Type'\n(I2\nttRp3585\nsS'Y:VBus80 - CGHISO31'\np3586\ng26\n(S'Variable_Type'\n(I2\nttRp3587\nsS'Y:PMachine114 - CSOVEN31'\np3588\ng26\n(S'Variable_Type'\n(I2\nttRp3589\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np3590\ng26\n(S'Variable_Type'\n(I1\nttRp3591\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np3592\ng26\n(S'Variable_Type'\n(I2\nttRp3593\nsS'Y:PMachine93 - COCANA32'\np3594\ng26\n(S'Variable_Type'\n(I2\nttRp3595\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np3596\ng26\n(S'Variable_Type'\n(I1\nttRp3597\nsS'Y:VBus87 - CLUCCI32'\np3598\ng26\n(S'Variable_Type'\n(I2\nttRp3599\nsS'Y:VBus62 - CCALVI32'\np3600\ng26\n(S'Variable_Type'\n(I2\nttRp3601\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np3602\ng26\n(S'Variable_Type'\n(I1\nttRp3603\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np3604\ng26\n(S'Variable_Type'\n(I1\nttRp3605\nsS'Y:VBus81 - CGHISO32'\np3606\ng26\n(S'Variable_Type'\n(I2\nttRp3607\nsS'Y:PMachine74 - CCERVI31'\np3608\ng26\n(S'Variable_Type'\n(I2\nttRp3609\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np3610\ng26\n(S'Variable_Type'\n(I2\nttRp3611\nsS'EOL_ALL'\np3612\ng26\n(S'Variable_Type'\n(I2\nttRp3613\nsS'X:Load(pu)'\np3614\ng26\n(S'Variable_Type'\n(I2\nttRp3615\nsS'Y:NbeTension'\np3616\ng26\n(S'Variable_Type'\n(I2\nttRp3617\nsS'Y:VBus95 - COCANA34'\np3618\ng26\n(S'Variable_Type'\n(I2\nttRp3619\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np3620\ng26\n(S'Variable_Type'\n(I2\nttRp3621\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np3622\ng26\n(S'Variable_Type'\n(I2\nttRp3623\nsS'Y:Load 95 - COCANA34'\np3624\ng26\n(S'Variable_Type'\n(I2\nttRp3625\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np3626\ng26\n(S'Variable_Type'\n(I1\nttRp3627\nsS'Y:PMachine90 - CMOROS31'\np3628\ng26\n(S'Variable_Type'\n(I2\nttRp3629\nsS'Y:Load 101 - CPIETR31'\np3630\ng26\n(S'Variable_Type'\n(I2\nttRp3631\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np3632\ng26\n(S'Variable_Type'\n(I1\nttRp3633\nsS'Y:PMachine132 - CVAZZI313'\np3634\ng26\n(S'Variable_Type'\n(I2\nttRp3635\nsS'Y:VBus125 - CVAZZI36'\np3636\ng26\n(S'Variable_Type'\n(I2\nttRp3637\nsS'Y:VBus135 - CLUCCI36'\np3638\ng26\n(S'Variable_Type'\n(I2\nttRp3639\nsS'Y:VBus47 - CVAZZI21'\np3640\ng26\n(S'Variable_Type'\n(I2\nttRp3641\nsS'Y:VBus94 - COCANA33'\np3642\ng26\n(S'Variable_Type'\n(I2\nttRp3643\nsS'Y:VBus17 - CCALVI21'\np3644\ng26\n(S'Variable_Type'\n(I2\nttRp3645\nsS'Y:Load 90 - CMOROS31'\np3646\ng26\n(S'Variable_Type'\n(I2\nttRp3647\nsS'Y:VBus120 - CVAZZI31'\np3648\ng26\n(S'Variable_Type'\n(I2\nttRp3649\nsS'X:ProdPV%Pnom'\np3650\ng26\n(S'Variable_Type'\n(I2\nttRp3651\nsS'Y:VBus52 - CASPRE32'\np3652\ng26\n(S'Variable_Type'\n(I2\nttRp3653\nsS'Y:VBus25 - CFURIA22'\np3654\ng26\n(S'Variable_Type'\n(I2\nttRp3655\nsS'Y:Load 76 - CCORTE31'\np3656\ng26\n(S'Variable_Type'\n(I2\nttRp3657\nsS'Y:PMachine69 - CCASAM37'\np3658\ng26\n(S'Variable_Type'\n(I2\nttRp3659\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np3660\ng26\n(S'Variable_Type'\n(I2\nttRp3661\nsS'Y:PMachine92 - COCANA31'\np3662\ng26\n(S'Variable_Type'\n(I2\nttRp3663\nsS'Y:VBus35 - CPORTO21'\np3664\ng26\n(S'Variable_Type'\n(I2\nttRp3665\nsS'Y:PMachine122 - CVAZZI33'\np3666\ng26\n(S'Variable_Type'\n(I2\nttRp3667\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np3668\ng26\n(S'Variable_Type'\n(I1\nttRp3669\nsS'Y:PMachine63 - CCASAM31'\np3670\ng26\n(S'Variable_Type'\n(I2\nttRp3671\nsS'Y:VBus74 - CCERVI31'\np3672\ng26\n(S'Variable_Type'\n(I2\nttRp3673\nsS'Y:VBus126 - CVAZZI37'\np3674\ng26\n(S'Variable_Type'\n(I2\nttRp3675\nsS'Y:PMachine60 - CCALDA32'\np3676\ng26\n(S'Variable_Type'\n(I2\nttRp3677\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np3678\ng26\n(S'Variable_Type'\n(I1\nttRp3679\nsS'Y:VBus20 - CCERVI21'\np3680\ng26\n(S'Variable_Type'\n(I2\nttRp3681\nsS'Y:VBus119 - CTRAVO31'\np3682\ng26\n(S'Variable_Type'\n(I2\nttRp3683\nsS'Y:VBus11 - CASPRE21'\np3684\ng26\n(S'Variable_Type'\n(I2\nttRp3685\nsS'Y:VBus139 - CLUCCI310'\np3686\ng26\n(S'Variable_Type'\n(I2\nttRp3687\nsS'Y:VBus106 - CRIZZA31'\np3688\ng26\n(S'Variable_Type'\n(I2\nttRp3689\nsS'Y:PMachine66 - CCASAM34'\np3690\ng26\n(S'Variable_Type'\n(I2\nttRp3691\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np3692\ng26\n(S'Variable_Type'\n(I2\nttRp3693\nsS'Y:VBus136 - CLUCCI37'\np3694\ng26\n(S'Variable_Type'\n(I2\nttRp3695\nsS'Y:VBus90 - CMOROS31'\np3696\ng26\n(S'Variable_Type'\n(I2\nttRp3697\nsS'PV_ALL'\np3698\ng26\n(S'Variable_Type'\n(I2\nttRp3699\nsS'X:lineOff#'\np3700\ng26\n(S'Variable_Type'\n(I2\nttRp3701\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np3702\ng26\n(S'Variable_Type'\n(I2\nttRp3703\nsS'Y:VBus108 - CSAGON31'\np3704\ng26\n(S'Variable_Type'\n(I2\nttRp3705\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np3706\ng26\n(S'Variable_Type'\n(I2\nttRp3707\nsS'Y:VBus137 - CLUCCI38'\np3708\ng26\n(S'Variable_Type'\n(I2\nttRp3709\nsS'Y:VBus130 - CVAZZI311'\np3710\ng26\n(S'Variable_Type'\n(I2\nttRp3711\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np3712\ng26\n(S'Variable_Type'\n(I2\nttRp3713\nsS'Y:VBus46 - CTRAVO21'\np3714\ng26\n(S'Variable_Type'\n(I2\nttRp3715\nsS'Y:VBus113 - CSAMPO32'\np3716\ng26\n(S'Variable_Type'\n(I2\nttRp3717\nsS'Y:PMachine133 - CVAZZI314'\np3718\ng26\n(S'Variable_Type'\n(I2\nttRp3719\nsS'Y:PMachine65 - CCASAM33'\np3720\ng26\n(S'Variable_Type'\n(I2\nttRp3721\nsS'Y:VBus78 - CFURIA31'\np3722\ng26\n(S'Variable_Type'\n(I2\nttRp3723\nsS'Y:VBus26 - CGHISO21'\np3724\ng26\n(S'Variable_Type'\n(I2\nttRp3725\nsS'Y:VBus121 - CVAZZI32'\np3726\ng26\n(S'Variable_Type'\n(I2\nttRp3727\nsS'Y:PMachine97 - COCANA36'\np3728\ng26\n(S'Variable_Type'\n(I2\nttRp3729\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np3730\ng26\n(S'Variable_Type'\n(I2\nttRp3731\nsS'Y:PMachine83 - CILERO32'\np3732\ng26\n(S'Variable_Type'\n(I2\nttRp3733\nsS'Y:VBus83 - CILERO32'\np3734\ng26\n(S'Variable_Type'\n(I2\nttRp3735\nsS'Y:VBus66 - CCASAM34'\np3736\ng26\n(S'Variable_Type'\n(I2\nttRp3737\nsS'Y:PMachine1 - CBONIF11'\np3738\ng26\n(S'Variable_Type'\n(I2\nttRp3739\nsS'Y:VBus111 - CSTMAR31'\np3740\ng26\n(S'Variable_Type'\n(I2\nttRp3741\nsS'Y:VBus124 - CVAZZI35'\np3742\ng26\n(S'Variable_Type'\n(I2\nttRp3743\nsS'VAZZIO_DIESEL'\np3744\ng26\n(S'Variable_Type'\n(I2\nttRp3745\nsS'Y:PMachine131 - CVAZZI312'\np3746\ng26\n(S'Variable_Type'\n(I2\nttRp3747\nsS'Y:VBus44 - CTAGLI21'\np3748\ng26\n(S'Variable_Type'\n(I2\nttRp3749\nsS'Y:VBus88 - CLUCCI33'\np3750\ng26\n(S'Variable_Type'\n(I2\nttRp3751\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np3752\ng26\n(S'Variable_Type'\n(I1\nttRp3753\nsS'Y:VBus38 - CSAGON21'\np3754\ng26\n(S'Variable_Type'\n(I2\nttRp3755\nsS'Y:PMachine81 - CGHISO32'\np3756\ng26\n(S'Variable_Type'\n(I2\nttRp3757\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np3758\ng26\n(S'Variable_Type'\n(I2\nttRp3759\nsS'Y:VBus110 - CSTLUC31'\np3760\ng26\n(S'Variable_Type'\n(I2\nttRp3761\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np3762\ng26\n(S'Variable_Type'\n(I2\nttRp3763\nssg630\n(dp3764\nsg632\n(dp3765\ng2509\n(S'Iteration'\np3766\ng3237\ntp3767\nsg2512\n(g638\nI0\ntp3768\nsg2514\n(g3766\ng3237\ntp3769\nsg2516\n(S''\nI0\ntp3770\nsg2518\n(S''\nI0\ntp3771\nsg2520\n(NI-2\ntp3772\nsg2522\n((lI-2\ntp3773\nssg650\nF1369995428.927\nsba(iOWContexts\nContext\np3774\n(dp3775\ng20\n(lp3776\ng1272\nasg23\n(dp3777\nS'Y:PMachine134 - CLUCCI35'\np3778\ng26\n(S'Variable_Type'\n(I1\nttRp3779\nsS'Y:VBus77 - CCORTE32'\np3780\ng26\n(S'Variable_Type'\n(I2\nttRp3781\nsS'Y:VBus134 - CLUCCI35'\np3782\ng26\n(S'Variable_Type'\n(I2\nttRp3783\nsS'Y:VBus109 - CSAGON32'\np3784\ng26\n(S'Variable_Type'\n(I2\nttRp3785\nsS'Y:VBus102 - CPORTO31'\np3786\ng26\n(S'Variable_Type'\n(I2\nttRp3787\nsS'XProdEolienne%Pnom'\np3788\ng26\n(S'Variable_Type'\n(I1\nttRp3789\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np3790\ng26\n(S'Variable_Type'\n(I2\nttRp3791\nsS'Y:PMachine94 - COCANA33'\np3792\ng26\n(S'Variable_Type'\n(I2\nttRp3793\nsS'Y:VBus117 - CTOLLA32'\np3794\ng26\n(S'Variable_Type'\n(I2\nttRp3795\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np3796\ng26\n(S'Variable_Type'\n(I2\nttRp3797\nsS'Y:PMachine87 - CLUCCI32'\np3798\ng26\n(S'Variable_Type'\n(I2\nttRp3799\nsS'Y:PMachine113 - CSAMPO32'\np3800\ng26\n(S'Variable_Type'\n(I2\nttRp3801\nsS'Y:Load 84 - CLORET31'\np3802\ng26\n(S'Variable_Type'\n(I2\nttRp3803\nsS'Y:PMachine89 - CLUCCI34'\np3804\ng26\n(S'Variable_Type'\n(I1\nttRp3805\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np3806\ng26\n(S'Variable_Type'\n(I2\nttRp3807\nsS'Y:Load 80 - CGHISO31'\np3808\ng26\n(S'Variable_Type'\n(I2\nttRp3809\nsS'Y:PMachine125 - CVAZZI36'\np3810\ng26\n(S'Variable_Type'\n(I2\nttRp3811\nsS'Y:PMachine116 - CTOLLA31'\np3812\ng26\n(S'Variable_Type'\n(I2\nttRp3813\nsS'Y:PMachine88 - CLUCCI33'\np3814\ng26\n(S'Variable_Type'\n(I1\nttRp3815\nsS'Y:PMachine120 - CVAZZI31'\np3816\ng26\n(S'Variable_Type'\n(I2\nttRp3817\nsS'Y:PMachine111 - CSTMAR31'\np3818\ng26\n(S'Variable_Type'\n(I2\nttRp3819\nsS'Y:NbeTransit'\np3820\ng26\n(S'Variable_Type'\n(I1\nttRp3821\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np3822\ng26\n(S'Variable_Type'\n(I2\nttRp3823\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np3824\ng26\n(S'Variable_Type'\n(I2\nttRp3825\nsS'Y:VBus92 - COCANA31'\np3826\ng26\n(S'Variable_Type'\n(I2\nttRp3827\nsS'Y:PMachine130 - CVAZZI311'\np3828\ng26\n(S'Variable_Type'\n(I2\nttRp3829\nsS'Y:PMachine127 - CVAZZI38'\np3830\ng26\n(S'Variable_Type'\n(I2\nttRp3831\nsS'Y:VBus131 - CVAZZI312'\np3832\ng26\n(S'Variable_Type'\n(I2\nttRp3833\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np3834\ng26\n(S'Variable_Type'\n(I2\nttRp3835\nsS'Y:PMachine123 - CVAZZI34'\np3836\ng26\n(S'Variable_Type'\n(I2\nttRp3837\nsS'Y:VBus118 - CTOLLA33'\np3838\ng26\n(S'Variable_Type'\n(I2\nttRp3839\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np3840\ng26\n(S'Variable_Type'\n(I1\nttRp3841\nsS'Y:PMachine58 - CBONIF32'\np3842\ng26\n(S'Variable_Type'\n(I2\nttRp3843\nsS'Y:Load 104 - CPROPR31'\np3844\ng26\n(S'Variable_Type'\n(I2\nttRp3845\nsS'Y:PMachine30 - CLUCCI22'\np3846\ng26\n(S'Variable_Type'\n(I1\nttRp3847\nsS'Y:VBus100 - COLETT31'\np3848\ng26\n(S'Variable_Type'\n(I2\nttRp3849\nsS'Y:PProdTot'\np3850\ng26\n(S'Variable_Type'\n(I2\nttRp3851\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np3852\ng26\n(S'Variable_Type'\n(I1\nttRp3853\nsS'Y:VBus57 - CBONIF31'\np3854\ng26\n(S'Variable_Type'\n(I2\nttRp3855\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np3856\ng26\n(S'Variable_Type'\n(I2\nttRp3857\nsS'Y:PConsoTot'\np3858\ng26\n(S'Variable_Type'\n(I2\nttRp3859\nsS'Iteration'\np3860\ng26\n(S'Variable_Type'\n(I2\nttRp3861\nsS'Y:PMachine109 - CSAGON32'\np3862\ng26\n(S'Variable_Type'\n(I2\nttRp3863\nsS'Y:PMachine135 - CLUCCI36'\np3864\ng26\n(S'Variable_Type'\n(I1\nttRp3865\nsS'Y:VBus30 - CLUCCI22'\np3866\ng26\n(S'Variable_Type'\n(I2\nttRp3867\nsS'Y:VBus122 - CVAZZI33'\np3868\ng26\n(S'Variable_Type'\n(I2\nttRp3869\nsS'Y:VBus86 - CLUCCI31'\np3870\ng26\n(S'Variable_Type'\n(I2\nttRp3871\nsS'Y:PMachine102 - CPORTO31'\np3872\ng26\n(S'Variable_Type'\n(I2\nttRp3873\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np3874\ng26\n(S'Variable_Type'\n(I1\nttRp3875\nsS'Y:PMachine107 - CRIZZA32'\np3876\ng26\n(S'Variable_Type'\n(I2\nttRp3877\nsS'Y:VBus16 - CCALDA21'\np3878\ng26\n(S'Variable_Type'\n(I2\nttRp3879\nsS'Y:Load 102 - CPORTO31'\np3880\ng26\n(S'Variable_Type'\n(I2\nttRp3881\nsS'Y:VBus107 - CRIZZA32'\np3882\ng26\n(S'Variable_Type'\n(I2\nttRp3883\nsS'Y:VBus59 - CCALDA31'\np3884\ng26\n(S'Variable_Type'\n(I2\nttRp3885\nsS'Y:VBus41 - CSAMPO21'\np3886\ng26\n(S'Variable_Type'\n(I2\nttRp3887\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np3888\ng26\n(S'Variable_Type'\n(I2\nttRp3889\nsS'Y:VBus34 - CPIETR21'\np3890\ng26\n(S'Variable_Type'\n(I2\nttRp3891\nsS'Y:Load 108 - CSAGON31'\np3892\ng26\n(S'Variable_Type'\n(I2\nttRp3893\nsS'Y:VBus56 - CBIGUG32'\np3894\ng26\n(S'Variable_Type'\n(I2\nttRp3895\nsS'Y:PMachine42 - CSISCO21'\np3896\ng26\n(S'Variable_Type'\n(I2\nttRp3897\nsS'Y:PMachine138 - CLUCCI39'\np3898\ng26\n(S'Variable_Type'\n(I1\nttRp3899\nsS'Y:PMachine112 - CSAMPO31'\np3900\ng26\n(S'Variable_Type'\n(I2\nttRp3901\nsS'Y:VBus105 - CPROPR32'\np3902\ng26\n(S'Variable_Type'\n(I2\nttRp3903\nsS'Y:VBus1 - CBONIF11'\np3904\ng26\n(S'Variable_Type'\n(I2\nttRp3905\nsS'Y:VBus12 - CBASTI21'\np3906\ng26\n(S'Variable_Type'\n(I2\nttRp3907\nsS'Y:PMachine129 - CVAZZI310'\np3908\ng26\n(S'Variable_Type'\n(I2\nttRp3909\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np3910\ng26\n(S'Variable_Type'\n(I1\nttRp3911\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np3912\ng26\n(S'Variable_Type'\n(I1\nttRp3913\nsS'Y:VBus54 - CBASTI32'\np3914\ng26\n(S'Variable_Type'\n(I2\nttRp3915\nsS'Y:VBus69 - CCASAM37'\np3916\ng26\n(S'Variable_Type'\n(I2\nttRp3917\nsS'Y:VBus45 - CTOLLA21'\np3918\ng26\n(S'Variable_Type'\n(I2\nttRp3919\nsS'Y:PMachine115 - CTAGLI31'\np3920\ng26\n(S'Variable_Type'\n(I2\nttRp3921\nsS'Y:PMachine77 - CCORTE32'\np3922\ng26\n(S'Variable_Type'\n(I2\nttRp3923\nsS'Y:VBus43 - CSOVEN21'\np3924\ng26\n(S'Variable_Type'\n(I2\nttRp3925\nsS'Y:VBus76 - CCORTE31'\np3926\ng26\n(S'Variable_Type'\n(I2\nttRp3927\nsS'Y:VBus75 - CCORSC31'\np3928\ng26\n(S'Variable_Type'\n(I2\nttRp3929\nsS'Y:PMachine78 - CFURIA31'\np3930\ng26\n(S'Variable_Type'\n(I1\nttRp3931\nsS'Y:VBus127 - CVAZZI38'\np3932\ng26\n(S'Variable_Type'\n(I2\nttRp3933\nsS'Y:VBus115 - CTAGLI31'\np3934\ng26\n(S'Variable_Type'\n(I2\nttRp3935\nsS'Y:Load 61 - CCALVI31'\np3936\ng26\n(S'Variable_Type'\n(I2\nttRp3937\nsS'Y:VBus55 - CBIGUG31'\np3938\ng26\n(S'Variable_Type'\n(I2\nttRp3939\nsS'Y:Load 42 - CSISCO21'\np3940\ng26\n(S'Variable_Type'\n(I2\nttRp3941\nsS'Y:VBus72 - CCASTI31'\np3942\ng26\n(S'Variable_Type'\n(I2\nttRp3943\nsS'Y:Load 37 - CRIZZA21'\np3944\ng26\n(S'Variable_Type'\n(I2\nttRp3945\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np3946\ng26\n(S'Variable_Type'\n(I2\nttRp3947\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np3948\ng26\n(S'Variable_Type'\n(I2\nttRp3949\nsS'Y:PMachine137 - CLUCCI38'\np3950\ng26\n(S'Variable_Type'\n(I1\nttRp3951\nsS'Y:PMachine67 - CCASAM35'\np3952\ng26\n(S'Variable_Type'\n(I2\nttRp3953\nsS'INTERCOS'\np3954\ng26\n(S'Variable_Type'\n(I2\nttRp3955\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np3956\ng26\n(S'Variable_Type'\n(I1\nttRp3957\nsS'Y:VBus31 - CMOROS21'\np3958\ng26\n(S'Variable_Type'\n(I2\nttRp3959\nsS'Y:VBus103 - CPORTO32'\np3960\ng26\n(S'Variable_Type'\n(I2\nttRp3961\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np3962\ng26\n(S'Variable_Type'\n(I1\nttRp3963\nsS'Y:PMachine128 - CVAZZI39'\np3964\ng26\n(S'Variable_Type'\n(I2\nttRp3965\nsS'Y:PMachine72 - CCASTI31'\np3966\ng26\n(S'Variable_Type'\n(I2\nttRp3967\nsS'Y:VBus27 - CILERO21'\np3968\ng26\n(S'Variable_Type'\n(I2\nttRp3969\nsS'Y:PMachine75 - CCORSC31'\np3970\ng26\n(S'Variable_Type'\n(I2\nttRp3971\nsS'Y:Load 51 - CASPRE31'\np3972\ng26\n(S'Variable_Type'\n(I2\nttRp3973\nsS'Y:PMachine61 - CCALVI31'\np3974\ng26\n(S'Variable_Type'\n(I1\nttRp3975\nsS'Y:VBus51 - CASPRE31'\np3976\ng26\n(S'Variable_Type'\n(I2\nttRp3977\nsS'Y:VBus114 - CSOVEN31'\np3978\ng26\n(S'Variable_Type'\n(I2\nttRp3979\nsS'Y:Load 82 - CILERO31'\np3980\ng26\n(S'Variable_Type'\n(I2\nttRp3981\nsS'Y:VBus116 - CTOLLA31'\np3982\ng26\n(S'Variable_Type'\n(I2\nttRp3983\nsS'Y:Load 86 - CLUCCI31'\np3984\ng26\n(S'Variable_Type'\n(I2\nttRp3985\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np3986\ng26\n(S'Variable_Type'\n(I2\nttRp3987\nsS'Y:Load 57 - CBONIF31'\np3988\ng26\n(S'Variable_Type'\n(I2\nttRp3989\nsS'Y:PMachine104 - CPROPR31'\np3990\ng26\n(S'Variable_Type'\n(I2\nttRp3991\nsS'Y:VBus128 - CVAZZI39'\np3992\ng26\n(S'Variable_Type'\n(I2\nttRp3993\nsS'Y:PMachine136 - CLUCCI37'\np3994\ng26\n(S'Variable_Type'\n(I1\nttRp3995\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np3996\ng26\n(S'Variable_Type'\n(I2\nttRp3997\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np3998\ng26\n(S'Variable_Type'\n(I2\nttRp3999\nsS'Y:PMachine68 - CCASAM36'\np4000\ng26\n(S'Variable_Type'\n(I2\nttRp4001\nsS'Y:PMachine29 - CLUCCI21'\np4002\ng26\n(S'Variable_Type'\n(I1\nttRp4003\nsS'Y:VBus42 - CSISCO21'\np4004\ng26\n(S'Variable_Type'\n(I2\nttRp4005\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np4006\ng26\n(S'Variable_Type'\n(I1\nttRp4007\nsS'Y:VBus14 - CBONIF21'\np4008\ng26\n(S'Variable_Type'\n(I2\nttRp4009\nsS'Y:VBus73 - CCASTI32'\np4010\ng26\n(S'Variable_Type'\n(I2\nttRp4011\nsS'Y:VBus64 - CCASAM32'\np4012\ng26\n(S'Variable_Type'\n(I2\nttRp4013\nsS'Y:PMachine14 - CBONIF21'\np4014\ng26\n(S'Variable_Type'\n(I1\nttRp4015\nsS'Y:PMachine62 - CCALVI32'\np4016\ng26\n(S'Variable_Type'\n(I2\nttRp4017\nsS'Y:VBus133 - CVAZZI314'\np4018\ng26\n(S'Variable_Type'\n(I2\nttRp4019\nsS'Y:VBus63 - CCASAM31'\np4020\ng26\n(S'Variable_Type'\n(I2\nttRp4021\nsS'Y:PMachine101 - CPIETR31'\np4022\ng26\n(S'Variable_Type'\n(I2\nttRp4023\nsS'Y:%Losses'\np4024\ng26\n(S'Variable_Type'\n(I2\nttRp4025\nsS'Y:VBus85 - CLORET32'\np4026\ng26\n(S'Variable_Type'\n(I2\nttRp4027\nsS'Y:Load 59 - CCALDA31'\np4028\ng26\n(S'Variable_Type'\n(I2\nttRp4029\nsS'Y:VBus129 - CVAZZI310'\np4030\ng26\n(S'Variable_Type'\n(I2\nttRp4031\nsS'Y:VBus101 - CPIETR31'\np4032\ng26\n(S'Variable_Type'\n(I2\nttRp4033\nsS'Y:PMachine106 - CRIZZA31'\np4034\ng26\n(S'Variable_Type'\n(I2\nttRp4035\nsS'Y:VBus132 - CVAZZI313'\np4036\ng26\n(S'Variable_Type'\n(I2\nttRp4037\nsS'Y:PMachine118 - CTOLLA33'\np4038\ng26\n(S'Variable_Type'\n(I2\nttRp4039\nsS'Y:VBus19 - CCASTI21'\np4040\ng26\n(S'Variable_Type'\n(I2\nttRp4041\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np4042\ng26\n(S'Variable_Type'\n(I2\nttRp4043\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np4044\ng26\n(S'Variable_Type'\n(I1\nttRp4045\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np4046\ng26\n(S'Variable_Type'\n(I2\nttRp4047\nsS'Y:Load 115 - CTAGLI31'\np4048\ng26\n(S'Variable_Type'\n(I2\nttRp4049\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np4050\ng26\n(S'Variable_Type'\n(I2\nttRp4051\nsS'Y:VBus79 - CFURIA32'\np4052\ng26\n(S'Variable_Type'\n(I2\nttRp4053\nsS'Y:PMachine47 - CVAZZI21'\np4054\ng26\n(S'Variable_Type'\n(I1\nttRp4055\nsS'Y:VBus123 - CVAZZI34'\np4056\ng26\n(S'Variable_Type'\n(I2\nttRp4057\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np4058\ng26\n(S'Variable_Type'\n(I2\nttRp4059\nsS'Y:VBus60 - CCALDA32'\np4060\ng26\n(S'Variable_Type'\n(I2\nttRp4061\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np4062\ng26\n(S'Variable_Type'\n(I2\nttRp4063\nsS'Y:VBus65 - CCASAM33'\np4064\ng26\n(S'Variable_Type'\n(I2\nttRp4065\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np4066\ng26\n(S'Variable_Type'\n(I1\nttRp4067\nsS'Y:PMachine139 - CLUCCI310'\np4068\ng26\n(S'Variable_Type'\n(I1\nttRp4069\nsS'Y:VBus112 - CSAMPO31'\np4070\ng26\n(S'Variable_Type'\n(I2\nttRp4071\nsS'Y:VBus68 - CCASAM36'\np4072\ng26\n(S'Variable_Type'\n(I2\nttRp4073\nsS'Y:Load 55 - CBIGUG31'\np4074\ng26\n(S'Variable_Type'\n(I2\nttRp4075\nsS'Y:PMachine53 - CBASTI31'\np4076\ng26\n(S'Variable_Type'\n(I2\nttRp4077\nsS'Y:NbeTransit_0.9-1'\np4078\ng26\n(S'Variable_Type'\n(I1\nttRp4079\nsS'Y:VBus24 - CFURIA21'\np4080\ng26\n(S'Variable_Type'\n(I2\nttRp4081\nsS'Y:VBus23 - CCORTE22'\np4082\ng26\n(S'Variable_Type'\n(I2\nttRp4083\nsS'Y:VBus18 - CCASAM21'\np4084\ng26\n(S'Variable_Type'\n(I2\nttRp4085\nsS'Y:VBus40 - CSTMAR21'\np4086\ng26\n(S'Variable_Type'\n(I2\nttRp4087\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np4088\ng26\n(S'Variable_Type'\n(I2\nttRp4089\nsS'Y:PMachine124 - CVAZZI35'\np4090\ng26\n(S'Variable_Type'\n(I2\nttRp4091\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np4092\ng26\n(S'Variable_Type'\n(I2\nttRp4093\nsS'Y:PMachine117 - CTOLLA32'\np4094\ng26\n(S'Variable_Type'\n(I2\nttRp4095\nsS'Y:VBus89 - CLUCCI34'\np4096\ng26\n(S'Variable_Type'\n(I2\nttRp4097\nsS'Y:VBus33 - COLETT21'\np4098\ng26\n(S'Variable_Type'\n(I2\nttRp4099\nsS'Y:VBus32 - COCANA21'\np4100\ng26\n(S'Variable_Type'\n(I2\nttRp4101\nsS'Y:PMachine121 - CVAZZI32'\np4102\ng26\n(S'Variable_Type'\n(I2\nttRp4103\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np4104\ng26\n(S'Variable_Type'\n(I1\nttRp4105\nsS'Y:VBus82 - CILERO31'\np4106\ng26\n(S'Variable_Type'\n(I2\nttRp4107\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np4108\ng26\n(S'Variable_Type'\n(I2\nttRp4109\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np4110\ng26\n(S'Variable_Type'\n(I2\nttRp4111\nsS'Y:VBus37 - CRIZZA21'\np4112\ng26\n(S'Variable_Type'\n(I2\nttRp4113\nsS'Y:PMachine73 - CCASTI32'\np4114\ng26\n(S'Variable_Type'\n(I2\nttRp4115\nsS'Y:PMachine86 - CLUCCI31'\np4116\ng26\n(S'Variable_Type'\n(I2\nttRp4117\nsS'Y:Load 53 - CBASTI31'\np4118\ng26\n(S'Variable_Type'\n(I2\nttRp4119\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np4120\ng26\n(S'Variable_Type'\n(I2\nttRp4121\nsS'Y:VBus21 - CCORSC21'\np4122\ng26\n(S'Variable_Type'\n(I2\nttRp4123\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np4124\ng26\n(S'Variable_Type'\n(I2\nttRp4125\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np4126\ng26\n(S'Variable_Type'\n(I2\nttRp4127\nsS'Y:PMachine126 - CVAZZI37'\np4128\ng26\n(S'Variable_Type'\n(I2\nttRp4129\nsS'Y:PMachine64 - CCASAM32'\np4130\ng26\n(S'Variable_Type'\n(I2\nttRp4131\nsS'Y:VBus67 - CCASAM35'\np4132\ng26\n(S'Variable_Type'\n(I2\nttRp4133\nsS'Y:VBus53 - CBASTI31'\np4134\ng26\n(S'Variable_Type'\n(I2\nttRp4135\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np4136\ng26\n(S'Variable_Type'\n(I2\nttRp4137\nsS'Y:VBus61 - CCALVI31'\np4138\ng26\n(S'Variable_Type'\n(I2\nttRp4139\nsS'Y:VBus93 - COCANA32'\np4140\ng26\n(S'Variable_Type'\n(I2\nttRp4141\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np4142\ng26\n(S'Variable_Type'\n(I2\nttRp4143\nsS'Y:VBus104 - CPROPR31'\np4144\ng26\n(S'Variable_Type'\n(I2\nttRp4145\nsS'Y:VBus22 - CCORTE21'\np4146\ng26\n(S'Variable_Type'\n(I2\nttRp4147\nsS'Y:VBus48 - CZSSS621'\np4148\ng26\n(S'Variable_Type'\n(I2\nttRp4149\nsS'Y:PMachine85 - CLORET32'\np4150\ng26\n(S'Variable_Type'\n(I2\nttRp4151\nsS'Y:Max%A'\np4152\ng26\n(S'Variable_Type'\n(I2\nttRp4153\nsS'Y:VBus36 - CPROPR21'\np4154\ng26\n(S'Variable_Type'\n(I2\nttRp4155\nsS'Y:Load 100 - COLETT31'\np4156\ng26\n(S'Variable_Type'\n(I2\nttRp4157\nsS'Y:PMachine54 - CBASTI32'\np4158\ng26\n(S'Variable_Type'\n(I2\nttRp4159\nsS'Y:VBus138 - CLUCCI39'\np4160\ng26\n(S'Variable_Type'\n(I2\nttRp4161\nsS'Y:VBus39 - CSTLUC21'\np4162\ng26\n(S'Variable_Type'\n(I2\nttRp4163\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np4164\ng26\n(S'Variable_Type'\n(I2\nttRp4165\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np4166\ng26\n(S'Variable_Type'\n(I2\nttRp4167\nsS'Y:Load 78 - CFURIA31'\np4168\ng26\n(S'Variable_Type'\n(I2\nttRp4169\nsS'Y:Load 74 - CCERVI31'\np4170\ng26\n(S'Variable_Type'\n(I2\nttRp4171\nsS'Y:VBus28 - CLORET21'\np4172\ng26\n(S'Variable_Type'\n(I2\nttRp4173\nsS'Y:PMachine105 - CPROPR32'\np4174\ng26\n(S'Variable_Type'\n(I2\nttRp4175\nsS'Y:VBus96 - COCANA35'\np4176\ng26\n(S'Variable_Type'\n(I2\nttRp4177\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np4178\ng26\n(S'Variable_Type'\n(I1\nttRp4179\nsS'Y:PMachine18 - CCASAM21'\np4180\ng26\n(S'Variable_Type'\n(I1\nttRp4181\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np4182\ng26\n(S'Variable_Type'\n(I2\nttRp4183\nsS'Y:VBus13 - CBIGUG21'\np4184\ng26\n(S'Variable_Type'\n(I2\nttRp4185\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np4186\ng26\n(S'Variable_Type'\n(I2\nttRp4187\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np4188\ng26\n(S'Variable_Type'\n(I2\nttRp4189\nsS'Y:VBus29 - CLUCCI21'\np4190\ng26\n(S'Variable_Type'\n(I2\nttRp4191\nsS'Y:VBus58 - CBONIF32'\np4192\ng26\n(S'Variable_Type'\n(I2\nttRp4193\nsS'Y:VBus84 - CLORET31'\np4194\ng26\n(S'Variable_Type'\n(I2\nttRp4195\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np4196\ng26\n(S'Variable_Type'\n(I1\nttRp4197\nsS'Y:VBus97 - COCANA36'\np4198\ng26\n(S'Variable_Type'\n(I2\nttRp4199\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np4200\ng26\n(S'Variable_Type'\n(I1\nttRp4201\nsS'Y:VBus15 - CBONIF22'\np4202\ng26\n(S'Variable_Type'\n(I2\nttRp4203\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np4204\ng26\n(S'Variable_Type'\n(I2\nttRp4205\nsS'Y:Load 110 - CSTLUC31'\np4206\ng26\n(S'Variable_Type'\n(I2\nttRp4207\nsS'Y:VBus80 - CGHISO31'\np4208\ng26\n(S'Variable_Type'\n(I2\nttRp4209\nsS'Y:PMachine114 - CSOVEN31'\np4210\ng26\n(S'Variable_Type'\n(I2\nttRp4211\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np4212\ng26\n(S'Variable_Type'\n(I1\nttRp4213\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np4214\ng26\n(S'Variable_Type'\n(I2\nttRp4215\nsS'Y:PMachine93 - COCANA32'\np4216\ng26\n(S'Variable_Type'\n(I2\nttRp4217\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np4218\ng26\n(S'Variable_Type'\n(I1\nttRp4219\nsS'Y:VBus87 - CLUCCI32'\np4220\ng26\n(S'Variable_Type'\n(I2\nttRp4221\nsS'Y:VBus62 - CCALVI32'\np4222\ng26\n(S'Variable_Type'\n(I2\nttRp4223\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np4224\ng26\n(S'Variable_Type'\n(I1\nttRp4225\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np4226\ng26\n(S'Variable_Type'\n(I1\nttRp4227\nsS'Y:VBus81 - CGHISO32'\np4228\ng26\n(S'Variable_Type'\n(I2\nttRp4229\nsS'Y:PMachine74 - CCERVI31'\np4230\ng26\n(S'Variable_Type'\n(I2\nttRp4231\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np4232\ng26\n(S'Variable_Type'\n(I2\nttRp4233\nsS'EOL_ALL'\np4234\ng26\n(S'Variable_Type'\n(I2\nttRp4235\nsS'X:Load(pu)'\np4236\ng26\n(S'Variable_Type'\n(I2\nttRp4237\nsS'Y:NbeTension'\np4238\ng26\n(S'Variable_Type'\n(I2\nttRp4239\nsS'Y:VBus95 - COCANA34'\np4240\ng26\n(S'Variable_Type'\n(I2\nttRp4241\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np4242\ng26\n(S'Variable_Type'\n(I2\nttRp4243\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np4244\ng26\n(S'Variable_Type'\n(I2\nttRp4245\nsS'Y:Load 95 - COCANA34'\np4246\ng26\n(S'Variable_Type'\n(I2\nttRp4247\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np4248\ng26\n(S'Variable_Type'\n(I1\nttRp4249\nsS'Y:PMachine90 - CMOROS31'\np4250\ng26\n(S'Variable_Type'\n(I2\nttRp4251\nsS'Y:Load 101 - CPIETR31'\np4252\ng26\n(S'Variable_Type'\n(I2\nttRp4253\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np4254\ng26\n(S'Variable_Type'\n(I1\nttRp4255\nsS'Y:PMachine132 - CVAZZI313'\np4256\ng26\n(S'Variable_Type'\n(I2\nttRp4257\nsS'Y:VBus125 - CVAZZI36'\np4258\ng26\n(S'Variable_Type'\n(I2\nttRp4259\nsS'Y:VBus135 - CLUCCI36'\np4260\ng26\n(S'Variable_Type'\n(I2\nttRp4261\nsS'Y:VBus47 - CVAZZI21'\np4262\ng26\n(S'Variable_Type'\n(I2\nttRp4263\nsS'Y:VBus94 - COCANA33'\np4264\ng26\n(S'Variable_Type'\n(I2\nttRp4265\nsS'Y:VBus17 - CCALVI21'\np4266\ng26\n(S'Variable_Type'\n(I2\nttRp4267\nsS'Y:Load 90 - CMOROS31'\np4268\ng26\n(S'Variable_Type'\n(I2\nttRp4269\nsS'Y:VBus120 - CVAZZI31'\np4270\ng26\n(S'Variable_Type'\n(I2\nttRp4271\nsS'X:ProdPV%Pnom'\np4272\ng26\n(S'Variable_Type'\n(I2\nttRp4273\nsS'Y:VBus52 - CASPRE32'\np4274\ng26\n(S'Variable_Type'\n(I2\nttRp4275\nsS'Y:VBus25 - CFURIA22'\np4276\ng26\n(S'Variable_Type'\n(I2\nttRp4277\nsS'Y:Load 76 - CCORTE31'\np4278\ng26\n(S'Variable_Type'\n(I2\nttRp4279\nsS'Y:PMachine69 - CCASAM37'\np4280\ng26\n(S'Variable_Type'\n(I2\nttRp4281\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np4282\ng26\n(S'Variable_Type'\n(I2\nttRp4283\nsS'Y:PMachine92 - COCANA31'\np4284\ng26\n(S'Variable_Type'\n(I2\nttRp4285\nsS'Y:VBus35 - CPORTO21'\np4286\ng26\n(S'Variable_Type'\n(I2\nttRp4287\nsS'Y:PMachine122 - CVAZZI33'\np4288\ng26\n(S'Variable_Type'\n(I2\nttRp4289\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np4290\ng26\n(S'Variable_Type'\n(I1\nttRp4291\nsS'Y:PMachine63 - CCASAM31'\np4292\ng26\n(S'Variable_Type'\n(I2\nttRp4293\nsS'Y:VBus74 - CCERVI31'\np4294\ng26\n(S'Variable_Type'\n(I2\nttRp4295\nsS'Y:VBus126 - CVAZZI37'\np4296\ng26\n(S'Variable_Type'\n(I2\nttRp4297\nsS'Y:PMachine60 - CCALDA32'\np4298\ng26\n(S'Variable_Type'\n(I2\nttRp4299\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np4300\ng26\n(S'Variable_Type'\n(I1\nttRp4301\nsS'Y:VBus20 - CCERVI21'\np4302\ng26\n(S'Variable_Type'\n(I2\nttRp4303\nsS'Y:VBus119 - CTRAVO31'\np4304\ng26\n(S'Variable_Type'\n(I2\nttRp4305\nsS'Y:VBus11 - CASPRE21'\np4306\ng26\n(S'Variable_Type'\n(I2\nttRp4307\nsS'Y:VBus139 - CLUCCI310'\np4308\ng26\n(S'Variable_Type'\n(I2\nttRp4309\nsS'Y:VBus106 - CRIZZA31'\np4310\ng26\n(S'Variable_Type'\n(I2\nttRp4311\nsS'Y:PMachine66 - CCASAM34'\np4312\ng26\n(S'Variable_Type'\n(I2\nttRp4313\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np4314\ng26\n(S'Variable_Type'\n(I2\nttRp4315\nsS'Y:VBus136 - CLUCCI37'\np4316\ng26\n(S'Variable_Type'\n(I2\nttRp4317\nsS'Y:VBus90 - CMOROS31'\np4318\ng26\n(S'Variable_Type'\n(I2\nttRp4319\nsS'PV_ALL'\np4320\ng26\n(S'Variable_Type'\n(I2\nttRp4321\nsS'X:lineOff#'\np4322\ng26\n(S'Variable_Type'\n(I2\nttRp4323\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np4324\ng26\n(S'Variable_Type'\n(I2\nttRp4325\nsS'Y:VBus108 - CSAGON31'\np4326\ng26\n(S'Variable_Type'\n(I2\nttRp4327\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np4328\ng26\n(S'Variable_Type'\n(I2\nttRp4329\nsS'Y:VBus137 - CLUCCI38'\np4330\ng26\n(S'Variable_Type'\n(I2\nttRp4331\nsS'Y:VBus130 - CVAZZI311'\np4332\ng26\n(S'Variable_Type'\n(I2\nttRp4333\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np4334\ng26\n(S'Variable_Type'\n(I2\nttRp4335\nsS'Y:VBus46 - CTRAVO21'\np4336\ng26\n(S'Variable_Type'\n(I2\nttRp4337\nsS'Y:VBus113 - CSAMPO32'\np4338\ng26\n(S'Variable_Type'\n(I2\nttRp4339\nsS'Y:PMachine133 - CVAZZI314'\np4340\ng26\n(S'Variable_Type'\n(I2\nttRp4341\nsS'Y:PMachine65 - CCASAM33'\np4342\ng26\n(S'Variable_Type'\n(I2\nttRp4343\nsS'Y:VBus78 - CFURIA31'\np4344\ng26\n(S'Variable_Type'\n(I2\nttRp4345\nsS'Y:VBus26 - CGHISO21'\np4346\ng26\n(S'Variable_Type'\n(I2\nttRp4347\nsS'Y:VBus121 - CVAZZI32'\np4348\ng26\n(S'Variable_Type'\n(I2\nttRp4349\nsS'Y:PMachine97 - COCANA36'\np4350\ng26\n(S'Variable_Type'\n(I2\nttRp4351\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np4352\ng26\n(S'Variable_Type'\n(I2\nttRp4353\nsS'Y:PMachine83 - CILERO32'\np4354\ng26\n(S'Variable_Type'\n(I2\nttRp4355\nsS'Y:VBus83 - CILERO32'\np4356\ng26\n(S'Variable_Type'\n(I2\nttRp4357\nsS'Y:VBus66 - CCASAM34'\np4358\ng26\n(S'Variable_Type'\n(I2\nttRp4359\nsS'Y:PMachine1 - CBONIF11'\np4360\ng26\n(S'Variable_Type'\n(I2\nttRp4361\nsS'Y:VBus111 - CSTMAR31'\np4362\ng26\n(S'Variable_Type'\n(I2\nttRp4363\nsS'Y:VBus124 - CVAZZI35'\np4364\ng26\n(S'Variable_Type'\n(I2\nttRp4365\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np4366\ng26\n(S'Variable_Type'\n(I2\nttRp4367\nsS'Y:PMachine131 - CVAZZI312'\np4368\ng26\n(S'Variable_Type'\n(I2\nttRp4369\nsS'Y:VBus44 - CTAGLI21'\np4370\ng26\n(S'Variable_Type'\n(I2\nttRp4371\nsS'Y:VBus88 - CLUCCI33'\np4372\ng26\n(S'Variable_Type'\n(I2\nttRp4373\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np4374\ng26\n(S'Variable_Type'\n(I1\nttRp4375\nsS'Y:VBus38 - CSAGON21'\np4376\ng26\n(S'Variable_Type'\n(I2\nttRp4377\nsS'Y:PMachine81 - CGHISO32'\np4378\ng26\n(S'Variable_Type'\n(I2\nttRp4379\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np4380\ng26\n(S'Variable_Type'\n(I2\nttRp4381\nsS'Y:VBus110 - CSTLUC31'\np4382\ng26\n(S'Variable_Type'\n(I2\nttRp4383\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np4384\ng26\n(S'Variable_Type'\n(I2\nttRp4385\nssg630\n(dp4386\nsg632\n(dp4387\ng2509\n(S'Iteration'\np4388\ng3861\ntp4389\nsg2512\n(g638\nI0\ntp4390\nsg2514\n(g4388\ng3861\ntp4391\nsg2516\n(S''\nI0\ntp4392\nsg2518\n(S''\nI0\ntp4393\nsg2520\n(NI-2\ntp4394\nsg2522\n((lI-2\ntp4395\nssg650\nF1369995226.5469999\nsba(iOWContexts\nContext\np4396\n(dp4397\ng20\n(lp4398\ng1272\nasg23\n(dp4399\nS'Y:PMachine134 - CLUCCI35'\np4400\ng26\n(S'Variable_Type'\n(I1\nttRp4401\nsS'Y:VBus77 - CCORTE32'\np4402\ng26\n(S'Variable_Type'\n(I2\nttRp4403\nsS'Y:VBus134 - CLUCCI35'\np4404\ng26\n(S'Variable_Type'\n(I2\nttRp4405\nsS'Y:VBus109 - CSAGON32'\np4406\ng26\n(S'Variable_Type'\n(I2\nttRp4407\nsS'Y:VBus102 - CPORTO31'\np4408\ng26\n(S'Variable_Type'\n(I2\nttRp4409\nsS'XProdEolienne%Pnom'\np4410\ng26\n(S'Variable_Type'\n(I1\nttRp4411\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np4412\ng26\n(S'Variable_Type'\n(I2\nttRp4413\nsS'Y:PMachine94 - COCANA33'\np4414\ng26\n(S'Variable_Type'\n(I2\nttRp4415\nsS'Y:VBus117 - CTOLLA32'\np4416\ng26\n(S'Variable_Type'\n(I2\nttRp4417\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np4418\ng26\n(S'Variable_Type'\n(I2\nttRp4419\nsS'Y:PMachine87 - CLUCCI32'\np4420\ng26\n(S'Variable_Type'\n(I2\nttRp4421\nsS'Y:PMachine113 - CSAMPO32'\np4422\ng26\n(S'Variable_Type'\n(I2\nttRp4423\nsS'Y:Load 84 - CLORET31'\np4424\ng26\n(S'Variable_Type'\n(I2\nttRp4425\nsS'Y:PMachine89 - CLUCCI34'\np4426\ng26\n(S'Variable_Type'\n(I1\nttRp4427\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np4428\ng26\n(S'Variable_Type'\n(I2\nttRp4429\nsS'Y:Load 80 - CGHISO31'\np4430\ng26\n(S'Variable_Type'\n(I2\nttRp4431\nsS'Y:PMachine125 - CVAZZI36'\np4432\ng26\n(S'Variable_Type'\n(I2\nttRp4433\nsS'Y:PMachine116 - CTOLLA31'\np4434\ng26\n(S'Variable_Type'\n(I2\nttRp4435\nsS'Y:PMachine88 - CLUCCI33'\np4436\ng26\n(S'Variable_Type'\n(I1\nttRp4437\nsS'Y:PMachine120 - CVAZZI31'\np4438\ng26\n(S'Variable_Type'\n(I2\nttRp4439\nsS'Y:PMachine111 - CSTMAR31'\np4440\ng26\n(S'Variable_Type'\n(I2\nttRp4441\nsS'Y:NbeTransit'\np4442\ng26\n(S'Variable_Type'\n(I1\nttRp4443\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np4444\ng26\n(S'Variable_Type'\n(I2\nttRp4445\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np4446\ng26\n(S'Variable_Type'\n(I2\nttRp4447\nsS'Y:VBus92 - COCANA31'\np4448\ng26\n(S'Variable_Type'\n(I2\nttRp4449\nsS'Y:PMachine130 - CVAZZI311'\np4450\ng26\n(S'Variable_Type'\n(I2\nttRp4451\nsS'Y:PMachine127 - CVAZZI38'\np4452\ng26\n(S'Variable_Type'\n(I2\nttRp4453\nsS'Y:VBus131 - CVAZZI312'\np4454\ng26\n(S'Variable_Type'\n(I2\nttRp4455\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np4456\ng26\n(S'Variable_Type'\n(I2\nttRp4457\nsS'Y:PMachine123 - CVAZZI34'\np4458\ng26\n(S'Variable_Type'\n(I2\nttRp4459\nsS'Y:VBus118 - CTOLLA33'\np4460\ng26\n(S'Variable_Type'\n(I2\nttRp4461\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np4462\ng26\n(S'Variable_Type'\n(I1\nttRp4463\nsS'Y:PMachine58 - CBONIF32'\np4464\ng26\n(S'Variable_Type'\n(I2\nttRp4465\nsS'Y:Load 104 - CPROPR31'\np4466\ng26\n(S'Variable_Type'\n(I2\nttRp4467\nsS'Y:PMachine30 - CLUCCI22'\np4468\ng26\n(S'Variable_Type'\n(I1\nttRp4469\nsS'Y:VBus100 - COLETT31'\np4470\ng26\n(S'Variable_Type'\n(I2\nttRp4471\nsS'Y:PProdTot'\np4472\ng26\n(S'Variable_Type'\n(I2\nttRp4473\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np4474\ng26\n(S'Variable_Type'\n(I1\nttRp4475\nsS'Y:VBus57 - CBONIF31'\np4476\ng26\n(S'Variable_Type'\n(I2\nttRp4477\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np4478\ng26\n(S'Variable_Type'\n(I2\nttRp4479\nsS'Y:PConsoTot'\np4480\ng26\n(S'Variable_Type'\n(I2\nttRp4481\nsS'Iteration'\np4482\ng26\n(S'Variable_Type'\n(I2\nttRp4483\nsS'Y:PMachine109 - CSAGON32'\np4484\ng26\n(S'Variable_Type'\n(I2\nttRp4485\nsS'Y:PMachine135 - CLUCCI36'\np4486\ng26\n(S'Variable_Type'\n(I1\nttRp4487\nsS'Y:VBus30 - CLUCCI22'\np4488\ng26\n(S'Variable_Type'\n(I2\nttRp4489\nsS'Y:VBus122 - CVAZZI33'\np4490\ng26\n(S'Variable_Type'\n(I2\nttRp4491\nsS'Y:VBus86 - CLUCCI31'\np4492\ng26\n(S'Variable_Type'\n(I2\nttRp4493\nsS'Y:PMachine102 - CPORTO31'\np4494\ng26\n(S'Variable_Type'\n(I2\nttRp4495\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np4496\ng26\n(S'Variable_Type'\n(I1\nttRp4497\nsS'Y:PMachine107 - CRIZZA32'\np4498\ng26\n(S'Variable_Type'\n(I2\nttRp4499\nsS'Y:VBus16 - CCALDA21'\np4500\ng26\n(S'Variable_Type'\n(I2\nttRp4501\nsS'Y:Load 102 - CPORTO31'\np4502\ng26\n(S'Variable_Type'\n(I2\nttRp4503\nsS'Y:VBus107 - CRIZZA32'\np4504\ng26\n(S'Variable_Type'\n(I2\nttRp4505\nsS'Y:VBus59 - CCALDA31'\np4506\ng26\n(S'Variable_Type'\n(I2\nttRp4507\nsS'Y:VBus41 - CSAMPO21'\np4508\ng26\n(S'Variable_Type'\n(I2\nttRp4509\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np4510\ng26\n(S'Variable_Type'\n(I2\nttRp4511\nsS'Y:VBus34 - CPIETR21'\np4512\ng26\n(S'Variable_Type'\n(I2\nttRp4513\nsS'Y:Load 108 - CSAGON31'\np4514\ng26\n(S'Variable_Type'\n(I2\nttRp4515\nsS'Y:VBus56 - CBIGUG32'\np4516\ng26\n(S'Variable_Type'\n(I2\nttRp4517\nsS'Y:PMachine42 - CSISCO21'\np4518\ng26\n(S'Variable_Type'\n(I2\nttRp4519\nsS'Y:PMachine138 - CLUCCI39'\np4520\ng26\n(S'Variable_Type'\n(I1\nttRp4521\nsS'Y:PMachine112 - CSAMPO31'\np4522\ng26\n(S'Variable_Type'\n(I2\nttRp4523\nsS'Y:VBus105 - CPROPR32'\np4524\ng26\n(S'Variable_Type'\n(I2\nttRp4525\nsS'Y:VBus1 - CBONIF11'\np4526\ng26\n(S'Variable_Type'\n(I2\nttRp4527\nsS'Y:VBus12 - CBASTI21'\np4528\ng26\n(S'Variable_Type'\n(I2\nttRp4529\nsS'Y:PMachine129 - CVAZZI310'\np4530\ng26\n(S'Variable_Type'\n(I2\nttRp4531\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np4532\ng26\n(S'Variable_Type'\n(I1\nttRp4533\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np4534\ng26\n(S'Variable_Type'\n(I1\nttRp4535\nsS'Y:VBus54 - CBASTI32'\np4536\ng26\n(S'Variable_Type'\n(I2\nttRp4537\nsS'Y:VBus69 - CCASAM37'\np4538\ng26\n(S'Variable_Type'\n(I2\nttRp4539\nsS'Y:VBus45 - CTOLLA21'\np4540\ng26\n(S'Variable_Type'\n(I2\nttRp4541\nsS'Y:PMachine115 - CTAGLI31'\np4542\ng26\n(S'Variable_Type'\n(I2\nttRp4543\nsS'Y:PMachine77 - CCORTE32'\np4544\ng26\n(S'Variable_Type'\n(I2\nttRp4545\nsS'Y:VBus43 - CSOVEN21'\np4546\ng26\n(S'Variable_Type'\n(I2\nttRp4547\nsS'Y:VBus76 - CCORTE31'\np4548\ng26\n(S'Variable_Type'\n(I2\nttRp4549\nsS'Y:VBus75 - CCORSC31'\np4550\ng26\n(S'Variable_Type'\n(I2\nttRp4551\nsS'Y:PMachine78 - CFURIA31'\np4552\ng26\n(S'Variable_Type'\n(I1\nttRp4553\nsS'Y:VBus127 - CVAZZI38'\np4554\ng26\n(S'Variable_Type'\n(I2\nttRp4555\nsS'Y:VBus115 - CTAGLI31'\np4556\ng26\n(S'Variable_Type'\n(I2\nttRp4557\nsS'Y:Load 61 - CCALVI31'\np4558\ng26\n(S'Variable_Type'\n(I2\nttRp4559\nsS'Y:VBus55 - CBIGUG31'\np4560\ng26\n(S'Variable_Type'\n(I2\nttRp4561\nsS'Y:Load 42 - CSISCO21'\np4562\ng26\n(S'Variable_Type'\n(I2\nttRp4563\nsS'Y:VBus72 - CCASTI31'\np4564\ng26\n(S'Variable_Type'\n(I2\nttRp4565\nsS'Y:Load 37 - CRIZZA21'\np4566\ng26\n(S'Variable_Type'\n(I2\nttRp4567\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np4568\ng26\n(S'Variable_Type'\n(I2\nttRp4569\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np4570\ng26\n(S'Variable_Type'\n(I2\nttRp4571\nsS'Y:PMachine137 - CLUCCI38'\np4572\ng26\n(S'Variable_Type'\n(I1\nttRp4573\nsS'Y:PMachine67 - CCASAM35'\np4574\ng26\n(S'Variable_Type'\n(I2\nttRp4575\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np4576\ng26\n(S'Variable_Type'\n(I1\nttRp4577\nsS'Y:VBus31 - CMOROS21'\np4578\ng26\n(S'Variable_Type'\n(I2\nttRp4579\nsS'Y:VBus103 - CPORTO32'\np4580\ng26\n(S'Variable_Type'\n(I2\nttRp4581\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np4582\ng26\n(S'Variable_Type'\n(I1\nttRp4583\nsS'Y:PMachine128 - CVAZZI39'\np4584\ng26\n(S'Variable_Type'\n(I2\nttRp4585\nsS'Y:PMachine72 - CCASTI31'\np4586\ng26\n(S'Variable_Type'\n(I2\nttRp4587\nsS'Y:VBus27 - CILERO21'\np4588\ng26\n(S'Variable_Type'\n(I2\nttRp4589\nsS'Y:PMachine75 - CCORSC31'\np4590\ng26\n(S'Variable_Type'\n(I2\nttRp4591\nsS'Y:Load 51 - CASPRE31'\np4592\ng26\n(S'Variable_Type'\n(I2\nttRp4593\nsS'Y:PMachine61 - CCALVI31'\np4594\ng26\n(S'Variable_Type'\n(I1\nttRp4595\nsS'Y:VBus51 - CASPRE31'\np4596\ng26\n(S'Variable_Type'\n(I2\nttRp4597\nsS'Y:VBus114 - CSOVEN31'\np4598\ng26\n(S'Variable_Type'\n(I2\nttRp4599\nsS'Y:Load 82 - CILERO31'\np4600\ng26\n(S'Variable_Type'\n(I2\nttRp4601\nsS'Y:VBus116 - CTOLLA31'\np4602\ng26\n(S'Variable_Type'\n(I2\nttRp4603\nsS'Y:Load 86 - CLUCCI31'\np4604\ng26\n(S'Variable_Type'\n(I2\nttRp4605\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np4606\ng26\n(S'Variable_Type'\n(I2\nttRp4607\nsS'Y:Load 57 - CBONIF31'\np4608\ng26\n(S'Variable_Type'\n(I2\nttRp4609\nsS'Y:PMachine104 - CPROPR31'\np4610\ng26\n(S'Variable_Type'\n(I2\nttRp4611\nsS'Y:VBus128 - CVAZZI39'\np4612\ng26\n(S'Variable_Type'\n(I2\nttRp4613\nsS'Y:PMachine136 - CLUCCI37'\np4614\ng26\n(S'Variable_Type'\n(I1\nttRp4615\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np4616\ng26\n(S'Variable_Type'\n(I2\nttRp4617\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np4618\ng26\n(S'Variable_Type'\n(I2\nttRp4619\nsS'Y:PMachine68 - CCASAM36'\np4620\ng26\n(S'Variable_Type'\n(I2\nttRp4621\nsS'Y:PMachine29 - CLUCCI21'\np4622\ng26\n(S'Variable_Type'\n(I1\nttRp4623\nsS'Y:VBus42 - CSISCO21'\np4624\ng26\n(S'Variable_Type'\n(I2\nttRp4625\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np4626\ng26\n(S'Variable_Type'\n(I1\nttRp4627\nsS'Y:VBus14 - CBONIF21'\np4628\ng26\n(S'Variable_Type'\n(I2\nttRp4629\nsS'Y:VBus73 - CCASTI32'\np4630\ng26\n(S'Variable_Type'\n(I2\nttRp4631\nsS'Y:VBus64 - CCASAM32'\np4632\ng26\n(S'Variable_Type'\n(I2\nttRp4633\nsS'Y:PMachine14 - CBONIF21'\np4634\ng26\n(S'Variable_Type'\n(I1\nttRp4635\nsS'Y:PMachine62 - CCALVI32'\np4636\ng26\n(S'Variable_Type'\n(I2\nttRp4637\nsS'Y:VBus133 - CVAZZI314'\np4638\ng26\n(S'Variable_Type'\n(I2\nttRp4639\nsS'Y:VBus63 - CCASAM31'\np4640\ng26\n(S'Variable_Type'\n(I2\nttRp4641\nsS'Y:PMachine101 - CPIETR31'\np4642\ng26\n(S'Variable_Type'\n(I2\nttRp4643\nsS'Y:%Losses'\np4644\ng26\n(S'Variable_Type'\n(I2\nttRp4645\nsS'Y:VBus85 - CLORET32'\np4646\ng26\n(S'Variable_Type'\n(I2\nttRp4647\nsS'Y:Load 59 - CCALDA31'\np4648\ng26\n(S'Variable_Type'\n(I2\nttRp4649\nsS'Y:VBus129 - CVAZZI310'\np4650\ng26\n(S'Variable_Type'\n(I2\nttRp4651\nsS'Y:VBus101 - CPIETR31'\np4652\ng26\n(S'Variable_Type'\n(I2\nttRp4653\nsS'Y:PMachine106 - CRIZZA31'\np4654\ng26\n(S'Variable_Type'\n(I2\nttRp4655\nsS'Y:VBus132 - CVAZZI313'\np4656\ng26\n(S'Variable_Type'\n(I2\nttRp4657\nsS'Y:PMachine118 - CTOLLA33'\np4658\ng26\n(S'Variable_Type'\n(I2\nttRp4659\nsS'Y:VBus19 - CCASTI21'\np4660\ng26\n(S'Variable_Type'\n(I2\nttRp4661\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np4662\ng26\n(S'Variable_Type'\n(I2\nttRp4663\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np4664\ng26\n(S'Variable_Type'\n(I1\nttRp4665\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np4666\ng26\n(S'Variable_Type'\n(I2\nttRp4667\nsS'Y:Load 115 - CTAGLI31'\np4668\ng26\n(S'Variable_Type'\n(I2\nttRp4669\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np4670\ng26\n(S'Variable_Type'\n(I2\nttRp4671\nsS'Y:VBus79 - CFURIA32'\np4672\ng26\n(S'Variable_Type'\n(I2\nttRp4673\nsS'Y:PMachine47 - CVAZZI21'\np4674\ng26\n(S'Variable_Type'\n(I1\nttRp4675\nsS'Y:VBus123 - CVAZZI34'\np4676\ng26\n(S'Variable_Type'\n(I2\nttRp4677\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np4678\ng26\n(S'Variable_Type'\n(I2\nttRp4679\nsS'Y:VBus60 - CCALDA32'\np4680\ng26\n(S'Variable_Type'\n(I2\nttRp4681\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np4682\ng26\n(S'Variable_Type'\n(I2\nttRp4683\nsS'Y:VBus65 - CCASAM33'\np4684\ng26\n(S'Variable_Type'\n(I2\nttRp4685\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np4686\ng26\n(S'Variable_Type'\n(I1\nttRp4687\nsS'Y:PMachine139 - CLUCCI310'\np4688\ng26\n(S'Variable_Type'\n(I1\nttRp4689\nsS'Y:VBus112 - CSAMPO31'\np4690\ng26\n(S'Variable_Type'\n(I2\nttRp4691\nsS'Y:VBus68 - CCASAM36'\np4692\ng26\n(S'Variable_Type'\n(I2\nttRp4693\nsS'Y:Load 55 - CBIGUG31'\np4694\ng26\n(S'Variable_Type'\n(I2\nttRp4695\nsS'Y:PMachine53 - CBASTI31'\np4696\ng26\n(S'Variable_Type'\n(I2\nttRp4697\nsS'Y:NbeTransit_0.9-1'\np4698\ng26\n(S'Variable_Type'\n(I1\nttRp4699\nsS'Y:VBus24 - CFURIA21'\np4700\ng26\n(S'Variable_Type'\n(I2\nttRp4701\nsS'Y:VBus23 - CCORTE22'\np4702\ng26\n(S'Variable_Type'\n(I2\nttRp4703\nsS'Y:VBus18 - CCASAM21'\np4704\ng26\n(S'Variable_Type'\n(I2\nttRp4705\nsS'Y:VBus40 - CSTMAR21'\np4706\ng26\n(S'Variable_Type'\n(I2\nttRp4707\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np4708\ng26\n(S'Variable_Type'\n(I2\nttRp4709\nsS'Y:PMachine124 - CVAZZI35'\np4710\ng26\n(S'Variable_Type'\n(I2\nttRp4711\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np4712\ng26\n(S'Variable_Type'\n(I2\nttRp4713\nsS'Y:PMachine117 - CTOLLA32'\np4714\ng26\n(S'Variable_Type'\n(I2\nttRp4715\nsS'Y:VBus89 - CLUCCI34'\np4716\ng26\n(S'Variable_Type'\n(I2\nttRp4717\nsS'Y:VBus33 - COLETT21'\np4718\ng26\n(S'Variable_Type'\n(I2\nttRp4719\nsS'Y:VBus32 - COCANA21'\np4720\ng26\n(S'Variable_Type'\n(I2\nttRp4721\nsS'Y:PMachine121 - CVAZZI32'\np4722\ng26\n(S'Variable_Type'\n(I2\nttRp4723\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np4724\ng26\n(S'Variable_Type'\n(I1\nttRp4725\nsS'Y:VBus82 - CILERO31'\np4726\ng26\n(S'Variable_Type'\n(I2\nttRp4727\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np4728\ng26\n(S'Variable_Type'\n(I2\nttRp4729\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np4730\ng26\n(S'Variable_Type'\n(I2\nttRp4731\nsS'Y:VBus37 - CRIZZA21'\np4732\ng26\n(S'Variable_Type'\n(I2\nttRp4733\nsS'Y:PMachine73 - CCASTI32'\np4734\ng26\n(S'Variable_Type'\n(I2\nttRp4735\nsS'Y:PMachine86 - CLUCCI31'\np4736\ng26\n(S'Variable_Type'\n(I2\nttRp4737\nsS'Y:Load 53 - CBASTI31'\np4738\ng26\n(S'Variable_Type'\n(I2\nttRp4739\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np4740\ng26\n(S'Variable_Type'\n(I2\nttRp4741\nsS'Y:VBus21 - CCORSC21'\np4742\ng26\n(S'Variable_Type'\n(I2\nttRp4743\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np4744\ng26\n(S'Variable_Type'\n(I2\nttRp4745\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np4746\ng26\n(S'Variable_Type'\n(I2\nttRp4747\nsS'Y:PMachine126 - CVAZZI37'\np4748\ng26\n(S'Variable_Type'\n(I2\nttRp4749\nsS'Y:PMachine64 - CCASAM32'\np4750\ng26\n(S'Variable_Type'\n(I2\nttRp4751\nsS'Y:VBus67 - CCASAM35'\np4752\ng26\n(S'Variable_Type'\n(I2\nttRp4753\nsS'Y:VBus53 - CBASTI31'\np4754\ng26\n(S'Variable_Type'\n(I2\nttRp4755\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np4756\ng26\n(S'Variable_Type'\n(I2\nttRp4757\nsS'Y:VBus61 - CCALVI31'\np4758\ng26\n(S'Variable_Type'\n(I2\nttRp4759\nsS'Y:VBus93 - COCANA32'\np4760\ng26\n(S'Variable_Type'\n(I2\nttRp4761\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np4762\ng26\n(S'Variable_Type'\n(I2\nttRp4763\nsS'Y:VBus104 - CPROPR31'\np4764\ng26\n(S'Variable_Type'\n(I2\nttRp4765\nsS'Y:VBus22 - CCORTE21'\np4766\ng26\n(S'Variable_Type'\n(I2\nttRp4767\nsS'Y:VBus48 - CZSSS621'\np4768\ng26\n(S'Variable_Type'\n(I2\nttRp4769\nsS'Y:PMachine85 - CLORET32'\np4770\ng26\n(S'Variable_Type'\n(I2\nttRp4771\nsS'Y:Max%A'\np4772\ng26\n(S'Variable_Type'\n(I2\nttRp4773\nsS'Y:VBus36 - CPROPR21'\np4774\ng26\n(S'Variable_Type'\n(I2\nttRp4775\nsS'Y:Load 100 - COLETT31'\np4776\ng26\n(S'Variable_Type'\n(I2\nttRp4777\nsS'Y:PMachine54 - CBASTI32'\np4778\ng26\n(S'Variable_Type'\n(I2\nttRp4779\nsS'Y:VBus138 - CLUCCI39'\np4780\ng26\n(S'Variable_Type'\n(I2\nttRp4781\nsS'Y:VBus39 - CSTLUC21'\np4782\ng26\n(S'Variable_Type'\n(I2\nttRp4783\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np4784\ng26\n(S'Variable_Type'\n(I2\nttRp4785\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np4786\ng26\n(S'Variable_Type'\n(I2\nttRp4787\nsS'Y:Load 78 - CFURIA31'\np4788\ng26\n(S'Variable_Type'\n(I2\nttRp4789\nsS'Y:Load 74 - CCERVI31'\np4790\ng26\n(S'Variable_Type'\n(I2\nttRp4791\nsS'Y:VBus28 - CLORET21'\np4792\ng26\n(S'Variable_Type'\n(I2\nttRp4793\nsS'Y:PMachine105 - CPROPR32'\np4794\ng26\n(S'Variable_Type'\n(I2\nttRp4795\nsS'Y:VBus96 - COCANA35'\np4796\ng26\n(S'Variable_Type'\n(I2\nttRp4797\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np4798\ng26\n(S'Variable_Type'\n(I1\nttRp4799\nsS'Y:PMachine18 - CCASAM21'\np4800\ng26\n(S'Variable_Type'\n(I1\nttRp4801\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np4802\ng26\n(S'Variable_Type'\n(I2\nttRp4803\nsS'Y:VBus13 - CBIGUG21'\np4804\ng26\n(S'Variable_Type'\n(I2\nttRp4805\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np4806\ng26\n(S'Variable_Type'\n(I2\nttRp4807\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np4808\ng26\n(S'Variable_Type'\n(I2\nttRp4809\nsS'Y:VBus29 - CLUCCI21'\np4810\ng26\n(S'Variable_Type'\n(I2\nttRp4811\nsS'Y:VBus58 - CBONIF32'\np4812\ng26\n(S'Variable_Type'\n(I2\nttRp4813\nsS'Y:VBus84 - CLORET31'\np4814\ng26\n(S'Variable_Type'\n(I2\nttRp4815\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np4816\ng26\n(S'Variable_Type'\n(I1\nttRp4817\nsS'Y:VBus97 - COCANA36'\np4818\ng26\n(S'Variable_Type'\n(I2\nttRp4819\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np4820\ng26\n(S'Variable_Type'\n(I1\nttRp4821\nsS'Y:VBus15 - CBONIF22'\np4822\ng26\n(S'Variable_Type'\n(I2\nttRp4823\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np4824\ng26\n(S'Variable_Type'\n(I2\nttRp4825\nsS'Y:Load 110 - CSTLUC31'\np4826\ng26\n(S'Variable_Type'\n(I2\nttRp4827\nsS'Y:VBus80 - CGHISO31'\np4828\ng26\n(S'Variable_Type'\n(I2\nttRp4829\nsS'Y:PMachine114 - CSOVEN31'\np4830\ng26\n(S'Variable_Type'\n(I2\nttRp4831\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np4832\ng26\n(S'Variable_Type'\n(I1\nttRp4833\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np4834\ng26\n(S'Variable_Type'\n(I2\nttRp4835\nsS'Y:PMachine93 - COCANA32'\np4836\ng26\n(S'Variable_Type'\n(I2\nttRp4837\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np4838\ng26\n(S'Variable_Type'\n(I1\nttRp4839\nsS'Y:VBus87 - CLUCCI32'\np4840\ng26\n(S'Variable_Type'\n(I2\nttRp4841\nsS'Y:VBus62 - CCALVI32'\np4842\ng26\n(S'Variable_Type'\n(I2\nttRp4843\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np4844\ng26\n(S'Variable_Type'\n(I1\nttRp4845\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np4846\ng26\n(S'Variable_Type'\n(I1\nttRp4847\nsS'Y:VBus81 - CGHISO32'\np4848\ng26\n(S'Variable_Type'\n(I2\nttRp4849\nsS'Y:PMachine74 - CCERVI31'\np4850\ng26\n(S'Variable_Type'\n(I2\nttRp4851\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np4852\ng26\n(S'Variable_Type'\n(I2\nttRp4853\nsS'EOL_ALL'\np4854\ng26\n(S'Variable_Type'\n(I2\nttRp4855\nsS'X:Load(pu)'\np4856\ng26\n(S'Variable_Type'\n(I2\nttRp4857\nsS'Y:NbeTension'\np4858\ng26\n(S'Variable_Type'\n(I2\nttRp4859\nsS'Y:VBus95 - COCANA34'\np4860\ng26\n(S'Variable_Type'\n(I2\nttRp4861\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np4862\ng26\n(S'Variable_Type'\n(I2\nttRp4863\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np4864\ng26\n(S'Variable_Type'\n(I2\nttRp4865\nsS'Y:Load 95 - COCANA34'\np4866\ng26\n(S'Variable_Type'\n(I2\nttRp4867\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np4868\ng26\n(S'Variable_Type'\n(I1\nttRp4869\nsS'Y:PMachine90 - CMOROS31'\np4870\ng26\n(S'Variable_Type'\n(I2\nttRp4871\nsS'Y:Load 101 - CPIETR31'\np4872\ng26\n(S'Variable_Type'\n(I2\nttRp4873\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np4874\ng26\n(S'Variable_Type'\n(I1\nttRp4875\nsS'Y:PMachine132 - CVAZZI313'\np4876\ng26\n(S'Variable_Type'\n(I2\nttRp4877\nsS'Y:VBus125 - CVAZZI36'\np4878\ng26\n(S'Variable_Type'\n(I2\nttRp4879\nsS'Y:VBus135 - CLUCCI36'\np4880\ng26\n(S'Variable_Type'\n(I2\nttRp4881\nsS'Y:VBus47 - CVAZZI21'\np4882\ng26\n(S'Variable_Type'\n(I2\nttRp4883\nsS'Y:VBus94 - COCANA33'\np4884\ng26\n(S'Variable_Type'\n(I2\nttRp4885\nsS'Y:VBus17 - CCALVI21'\np4886\ng26\n(S'Variable_Type'\n(I2\nttRp4887\nsS'Y:Load 90 - CMOROS31'\np4888\ng26\n(S'Variable_Type'\n(I2\nttRp4889\nsS'Y:VBus120 - CVAZZI31'\np4890\ng26\n(S'Variable_Type'\n(I2\nttRp4891\nsS'X:ProdPV%Pnom'\np4892\ng26\n(S'Variable_Type'\n(I2\nttRp4893\nsS'Y:VBus52 - CASPRE32'\np4894\ng26\n(S'Variable_Type'\n(I2\nttRp4895\nsS'Y:VBus25 - CFURIA22'\np4896\ng26\n(S'Variable_Type'\n(I2\nttRp4897\nsS'Y:Load 76 - CCORTE31'\np4898\ng26\n(S'Variable_Type'\n(I2\nttRp4899\nsS'Y:PMachine69 - CCASAM37'\np4900\ng26\n(S'Variable_Type'\n(I2\nttRp4901\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np4902\ng26\n(S'Variable_Type'\n(I2\nttRp4903\nsS'Y:PMachine92 - COCANA31'\np4904\ng26\n(S'Variable_Type'\n(I2\nttRp4905\nsS'Y:VBus35 - CPORTO21'\np4906\ng26\n(S'Variable_Type'\n(I2\nttRp4907\nsS'Y:PMachine122 - CVAZZI33'\np4908\ng26\n(S'Variable_Type'\n(I2\nttRp4909\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np4910\ng26\n(S'Variable_Type'\n(I1\nttRp4911\nsS'Y:PMachine63 - CCASAM31'\np4912\ng26\n(S'Variable_Type'\n(I2\nttRp4913\nsS'Y:VBus74 - CCERVI31'\np4914\ng26\n(S'Variable_Type'\n(I2\nttRp4915\nsS'Y:VBus126 - CVAZZI37'\np4916\ng26\n(S'Variable_Type'\n(I2\nttRp4917\nsS'Y:PMachine60 - CCALDA32'\np4918\ng26\n(S'Variable_Type'\n(I2\nttRp4919\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np4920\ng26\n(S'Variable_Type'\n(I1\nttRp4921\nsS'Y:VBus20 - CCERVI21'\np4922\ng26\n(S'Variable_Type'\n(I2\nttRp4923\nsS'Y:VBus119 - CTRAVO31'\np4924\ng26\n(S'Variable_Type'\n(I2\nttRp4925\nsS'Y:VBus11 - CASPRE21'\np4926\ng26\n(S'Variable_Type'\n(I2\nttRp4927\nsS'Y:VBus139 - CLUCCI310'\np4928\ng26\n(S'Variable_Type'\n(I2\nttRp4929\nsS'Y:VBus106 - CRIZZA31'\np4930\ng26\n(S'Variable_Type'\n(I2\nttRp4931\nsS'Y:PMachine66 - CCASAM34'\np4932\ng26\n(S'Variable_Type'\n(I2\nttRp4933\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np4934\ng26\n(S'Variable_Type'\n(I2\nttRp4935\nsS'Y:VBus136 - CLUCCI37'\np4936\ng26\n(S'Variable_Type'\n(I2\nttRp4937\nsS'Y:VBus90 - CMOROS31'\np4938\ng26\n(S'Variable_Type'\n(I2\nttRp4939\nsS'PV_ALL'\np4940\ng26\n(S'Variable_Type'\n(I2\nttRp4941\nsS'X:lineOff#'\np4942\ng26\n(S'Variable_Type'\n(I2\nttRp4943\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np4944\ng26\n(S'Variable_Type'\n(I2\nttRp4945\nsS'Y:VBus108 - CSAGON31'\np4946\ng26\n(S'Variable_Type'\n(I2\nttRp4947\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np4948\ng26\n(S'Variable_Type'\n(I2\nttRp4949\nsS'Y:VBus137 - CLUCCI38'\np4950\ng26\n(S'Variable_Type'\n(I2\nttRp4951\nsS'Y:VBus130 - CVAZZI311'\np4952\ng26\n(S'Variable_Type'\n(I2\nttRp4953\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np4954\ng26\n(S'Variable_Type'\n(I2\nttRp4955\nsS'Y:VBus46 - CTRAVO21'\np4956\ng26\n(S'Variable_Type'\n(I2\nttRp4957\nsS'Y:VBus113 - CSAMPO32'\np4958\ng26\n(S'Variable_Type'\n(I2\nttRp4959\nsS'Y:PMachine133 - CVAZZI314'\np4960\ng26\n(S'Variable_Type'\n(I2\nttRp4961\nsS'Y:PMachine65 - CCASAM33'\np4962\ng26\n(S'Variable_Type'\n(I2\nttRp4963\nsS'Y:VBus78 - CFURIA31'\np4964\ng26\n(S'Variable_Type'\n(I2\nttRp4965\nsS'Y:VBus26 - CGHISO21'\np4966\ng26\n(S'Variable_Type'\n(I2\nttRp4967\nsS'Y:VBus121 - CVAZZI32'\np4968\ng26\n(S'Variable_Type'\n(I2\nttRp4969\nsS'Y:PMachine97 - COCANA36'\np4970\ng26\n(S'Variable_Type'\n(I2\nttRp4971\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np4972\ng26\n(S'Variable_Type'\n(I2\nttRp4973\nsS'Y:PMachine83 - CILERO32'\np4974\ng26\n(S'Variable_Type'\n(I2\nttRp4975\nsS'Y:VBus83 - CILERO32'\np4976\ng26\n(S'Variable_Type'\n(I2\nttRp4977\nsS'Y:VBus66 - CCASAM34'\np4978\ng26\n(S'Variable_Type'\n(I2\nttRp4979\nsS'Y:PMachine1 - CBONIF11'\np4980\ng26\n(S'Variable_Type'\n(I2\nttRp4981\nsS'Y:VBus111 - CSTMAR31'\np4982\ng26\n(S'Variable_Type'\n(I2\nttRp4983\nsS'Y:VBus124 - CVAZZI35'\np4984\ng26\n(S'Variable_Type'\n(I2\nttRp4985\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np4986\ng26\n(S'Variable_Type'\n(I2\nttRp4987\nsS'Y:PMachine131 - CVAZZI312'\np4988\ng26\n(S'Variable_Type'\n(I2\nttRp4989\nsS'Y:VBus44 - CTAGLI21'\np4990\ng26\n(S'Variable_Type'\n(I2\nttRp4991\nsS'Y:VBus88 - CLUCCI33'\np4992\ng26\n(S'Variable_Type'\n(I2\nttRp4993\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np4994\ng26\n(S'Variable_Type'\n(I1\nttRp4995\nsS'Y:VBus38 - CSAGON21'\np4996\ng26\n(S'Variable_Type'\n(I2\nttRp4997\nsS'Y:PMachine81 - CGHISO32'\np4998\ng26\n(S'Variable_Type'\n(I2\nttRp4999\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np5000\ng26\n(S'Variable_Type'\n(I2\nttRp5001\nsS'Y:VBus110 - CSTLUC31'\np5002\ng26\n(S'Variable_Type'\n(I2\nttRp5003\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np5004\ng26\n(S'Variable_Type'\n(I2\nttRp5005\nssg630\n(dp5006\nsg632\n(dp5007\ng2509\n(S'Iteration'\np5008\ng4483\ntp5009\nsg2512\n(g638\nI0\ntp5010\nsg2514\n(g5008\ng4483\ntp5011\nsg2516\n(S''\nI0\ntp5012\nsg2518\n(S''\nI0\ntp5013\nsg2520\n(NI-2\ntp5014\nsg2522\n((lI-2\ntp5015\nssg650\nF1369995172.0940001\nsba(iOWContexts\nContext\np5016\n(dp5017\ng20\n(lp5018\ng1272\nasg23\n(dp5019\nS'Y:PMachine134 - CLUCCI35'\np5020\ng26\n(S'Variable_Type'\n(I1\nttRp5021\nsS'Y:VBus77 - CCORTE32'\np5022\ng26\n(S'Variable_Type'\n(I2\nttRp5023\nsS'Y:VBus134 - CLUCCI35'\np5024\ng26\n(S'Variable_Type'\n(I2\nttRp5025\nsS'Y:VBus109 - CSAGON32'\np5026\ng26\n(S'Variable_Type'\n(I2\nttRp5027\nsS'Y:VBus102 - CPORTO31'\np5028\ng26\n(S'Variable_Type'\n(I2\nttRp5029\nsS'XProdEolienne%Pnom'\np5030\ng26\n(S'Variable_Type'\n(I1\nttRp5031\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np5032\ng26\n(S'Variable_Type'\n(I2\nttRp5033\nsS'Y:PMachine94 - COCANA33'\np5034\ng26\n(S'Variable_Type'\n(I2\nttRp5035\nsS'Y:VBus117 - CTOLLA32'\np5036\ng26\n(S'Variable_Type'\n(I2\nttRp5037\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np5038\ng26\n(S'Variable_Type'\n(I2\nttRp5039\nsS'Y:PMachine87 - CLUCCI32'\np5040\ng26\n(S'Variable_Type'\n(I2\nttRp5041\nsS'Y:PMachine113 - CSAMPO32'\np5042\ng26\n(S'Variable_Type'\n(I2\nttRp5043\nsS'Y:Load 84 - CLORET31'\np5044\ng26\n(S'Variable_Type'\n(I2\nttRp5045\nsS'Y:PMachine89 - CLUCCI34'\np5046\ng26\n(S'Variable_Type'\n(I1\nttRp5047\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np5048\ng26\n(S'Variable_Type'\n(I2\nttRp5049\nsS'Y:Load 80 - CGHISO31'\np5050\ng26\n(S'Variable_Type'\n(I2\nttRp5051\nsS'Y:PMachine125 - CVAZZI36'\np5052\ng26\n(S'Variable_Type'\n(I2\nttRp5053\nsS'Y:PMachine116 - CTOLLA31'\np5054\ng26\n(S'Variable_Type'\n(I2\nttRp5055\nsS'Y:PMachine88 - CLUCCI33'\np5056\ng26\n(S'Variable_Type'\n(I1\nttRp5057\nsS'Y:PMachine120 - CVAZZI31'\np5058\ng26\n(S'Variable_Type'\n(I2\nttRp5059\nsS'Y:PMachine111 - CSTMAR31'\np5060\ng26\n(S'Variable_Type'\n(I2\nttRp5061\nsS'Y:NbeTransit'\np5062\ng26\n(S'Variable_Type'\n(I1\nttRp5063\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np5064\ng26\n(S'Variable_Type'\n(I2\nttRp5065\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np5066\ng26\n(S'Variable_Type'\n(I2\nttRp5067\nsS'Y:VBus92 - COCANA31'\np5068\ng26\n(S'Variable_Type'\n(I2\nttRp5069\nsS'Y:PMachine130 - CVAZZI311'\np5070\ng26\n(S'Variable_Type'\n(I2\nttRp5071\nsS'Y:PMachine127 - CVAZZI38'\np5072\ng26\n(S'Variable_Type'\n(I2\nttRp5073\nsS'Y:VBus131 - CVAZZI312'\np5074\ng26\n(S'Variable_Type'\n(I2\nttRp5075\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np5076\ng26\n(S'Variable_Type'\n(I2\nttRp5077\nsS'Y:PMachine123 - CVAZZI34'\np5078\ng26\n(S'Variable_Type'\n(I2\nttRp5079\nsS'Y:VBus118 - CTOLLA33'\np5080\ng26\n(S'Variable_Type'\n(I2\nttRp5081\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np5082\ng26\n(S'Variable_Type'\n(I1\nttRp5083\nsS'Y:PMachine58 - CBONIF32'\np5084\ng26\n(S'Variable_Type'\n(I2\nttRp5085\nsS'Y:Load 104 - CPROPR31'\np5086\ng26\n(S'Variable_Type'\n(I2\nttRp5087\nsS'Y:PMachine30 - CLUCCI22'\np5088\ng26\n(S'Variable_Type'\n(I1\nttRp5089\nsS'Y:VBus100 - COLETT31'\np5090\ng26\n(S'Variable_Type'\n(I2\nttRp5091\nsS'Y:PProdTot'\np5092\ng26\n(S'Variable_Type'\n(I2\nttRp5093\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np5094\ng26\n(S'Variable_Type'\n(I1\nttRp5095\nsS'Y:VBus57 - CBONIF31'\np5096\ng26\n(S'Variable_Type'\n(I2\nttRp5097\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np5098\ng26\n(S'Variable_Type'\n(I2\nttRp5099\nsS'Y:PConsoTot'\np5100\ng26\n(S'Variable_Type'\n(I2\nttRp5101\nsS'Iteration'\np5102\ng26\n(S'Variable_Type'\n(I2\nttRp5103\nsS'Y:PMachine109 - CSAGON32'\np5104\ng26\n(S'Variable_Type'\n(I2\nttRp5105\nsS'Y:PMachine135 - CLUCCI36'\np5106\ng26\n(S'Variable_Type'\n(I1\nttRp5107\nsS'Y:VBus30 - CLUCCI22'\np5108\ng26\n(S'Variable_Type'\n(I2\nttRp5109\nsS'Y:VBus122 - CVAZZI33'\np5110\ng26\n(S'Variable_Type'\n(I2\nttRp5111\nsS'Y:VBus86 - CLUCCI31'\np5112\ng26\n(S'Variable_Type'\n(I2\nttRp5113\nsS'Y:VBus35 - CPORTO21'\np5114\ng26\n(S'Variable_Type'\n(I2\nttRp5115\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np5116\ng26\n(S'Variable_Type'\n(I1\nttRp5117\nsS'Y:PMachine107 - CRIZZA32'\np5118\ng26\n(S'Variable_Type'\n(I2\nttRp5119\nsS'Y:VBus16 - CCALDA21'\np5120\ng26\n(S'Variable_Type'\n(I2\nttRp5121\nsS'Y:Load 102 - CPORTO31'\np5122\ng26\n(S'Variable_Type'\n(I2\nttRp5123\nsS'Y:VBus107 - CRIZZA32'\np5124\ng26\n(S'Variable_Type'\n(I2\nttRp5125\nsS'Y:VBus59 - CCALDA31'\np5126\ng26\n(S'Variable_Type'\n(I2\nttRp5127\nsS'Y:VBus41 - CSAMPO21'\np5128\ng26\n(S'Variable_Type'\n(I2\nttRp5129\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np5130\ng26\n(S'Variable_Type'\n(I2\nttRp5131\nsS'Y:VBus34 - CPIETR21'\np5132\ng26\n(S'Variable_Type'\n(I2\nttRp5133\nsS'Y:Load 108 - CSAGON31'\np5134\ng26\n(S'Variable_Type'\n(I2\nttRp5135\nsS'Y:VBus56 - CBIGUG32'\np5136\ng26\n(S'Variable_Type'\n(I2\nttRp5137\nsS'Y:PMachine42 - CSISCO21'\np5138\ng26\n(S'Variable_Type'\n(I2\nttRp5139\nsS'Y:PMachine138 - CLUCCI39'\np5140\ng26\n(S'Variable_Type'\n(I1\nttRp5141\nsS'Y:PMachine112 - CSAMPO31'\np5142\ng26\n(S'Variable_Type'\n(I2\nttRp5143\nsS'Y:VBus105 - CPROPR32'\np5144\ng26\n(S'Variable_Type'\n(I2\nttRp5145\nsS'Y:VBus1 - CBONIF11'\np5146\ng26\n(S'Variable_Type'\n(I2\nttRp5147\nsS'Y:VBus12 - CBASTI21'\np5148\ng26\n(S'Variable_Type'\n(I2\nttRp5149\nsS'Y:PMachine129 - CVAZZI310'\np5150\ng26\n(S'Variable_Type'\n(I2\nttRp5151\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np5152\ng26\n(S'Variable_Type'\n(I1\nttRp5153\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np5154\ng26\n(S'Variable_Type'\n(I1\nttRp5155\nsS'Y:VBus54 - CBASTI32'\np5156\ng26\n(S'Variable_Type'\n(I2\nttRp5157\nsS'Y:VBus69 - CCASAM37'\np5158\ng26\n(S'Variable_Type'\n(I2\nttRp5159\nsS'Y:VBus45 - CTOLLA21'\np5160\ng26\n(S'Variable_Type'\n(I2\nttRp5161\nsS'Y:PMachine115 - CTAGLI31'\np5162\ng26\n(S'Variable_Type'\n(I2\nttRp5163\nsS'Y:PMachine77 - CCORTE32'\np5164\ng26\n(S'Variable_Type'\n(I2\nttRp5165\nsS'Y:VBus43 - CSOVEN21'\np5166\ng26\n(S'Variable_Type'\n(I2\nttRp5167\nsS'Y:VBus76 - CCORTE31'\np5168\ng26\n(S'Variable_Type'\n(I2\nttRp5169\nsS'Y:VBus75 - CCORSC31'\np5170\ng26\n(S'Variable_Type'\n(I2\nttRp5171\nsS'Y:PMachine78 - CFURIA31'\np5172\ng26\n(S'Variable_Type'\n(I1\nttRp5173\nsS'Y:VBus127 - CVAZZI38'\np5174\ng26\n(S'Variable_Type'\n(I2\nttRp5175\nsS'Y:VBus115 - CTAGLI31'\np5176\ng26\n(S'Variable_Type'\n(I2\nttRp5177\nsS'Y:Load 61 - CCALVI31'\np5178\ng26\n(S'Variable_Type'\n(I2\nttRp5179\nsS'Y:VBus55 - CBIGUG31'\np5180\ng26\n(S'Variable_Type'\n(I2\nttRp5181\nsS'Y:Load 42 - CSISCO21'\np5182\ng26\n(S'Variable_Type'\n(I2\nttRp5183\nsS'Y:VBus72 - CCASTI31'\np5184\ng26\n(S'Variable_Type'\n(I2\nttRp5185\nsS'Y:Load 37 - CRIZZA21'\np5186\ng26\n(S'Variable_Type'\n(I2\nttRp5187\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np5188\ng26\n(S'Variable_Type'\n(I2\nttRp5189\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np5190\ng26\n(S'Variable_Type'\n(I2\nttRp5191\nsS'Y:PMachine137 - CLUCCI38'\np5192\ng26\n(S'Variable_Type'\n(I1\nttRp5193\nsS'Y:PMachine67 - CCASAM35'\np5194\ng26\n(S'Variable_Type'\n(I2\nttRp5195\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np5196\ng26\n(S'Variable_Type'\n(I1\nttRp5197\nsS'Y:VBus31 - CMOROS21'\np5198\ng26\n(S'Variable_Type'\n(I2\nttRp5199\nsS'Y:VBus103 - CPORTO32'\np5200\ng26\n(S'Variable_Type'\n(I2\nttRp5201\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np5202\ng26\n(S'Variable_Type'\n(I1\nttRp5203\nsS'Y:PMachine128 - CVAZZI39'\np5204\ng26\n(S'Variable_Type'\n(I2\nttRp5205\nsS'Y:PMachine72 - CCASTI31'\np5206\ng26\n(S'Variable_Type'\n(I2\nttRp5207\nsS'Y:VBus27 - CILERO21'\np5208\ng26\n(S'Variable_Type'\n(I2\nttRp5209\nsS'Y:PMachine75 - CCORSC31'\np5210\ng26\n(S'Variable_Type'\n(I2\nttRp5211\nsS'Y:Load 51 - CASPRE31'\np5212\ng26\n(S'Variable_Type'\n(I2\nttRp5213\nsS'Y:PMachine61 - CCALVI31'\np5214\ng26\n(S'Variable_Type'\n(I1\nttRp5215\nsS'Y:VBus51 - CASPRE31'\np5216\ng26\n(S'Variable_Type'\n(I2\nttRp5217\nsS'Y:VBus114 - CSOVEN31'\np5218\ng26\n(S'Variable_Type'\n(I2\nttRp5219\nsS'Y:Load 82 - CILERO31'\np5220\ng26\n(S'Variable_Type'\n(I2\nttRp5221\nsS'Y:VBus116 - CTOLLA31'\np5222\ng26\n(S'Variable_Type'\n(I2\nttRp5223\nsS'Y:Load 86 - CLUCCI31'\np5224\ng26\n(S'Variable_Type'\n(I2\nttRp5225\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np5226\ng26\n(S'Variable_Type'\n(I2\nttRp5227\nsS'Y:Load 57 - CBONIF31'\np5228\ng26\n(S'Variable_Type'\n(I2\nttRp5229\nsS'Y:PMachine104 - CPROPR31'\np5230\ng26\n(S'Variable_Type'\n(I2\nttRp5231\nsS'Y:VBus128 - CVAZZI39'\np5232\ng26\n(S'Variable_Type'\n(I2\nttRp5233\nsS'Y:PMachine136 - CLUCCI37'\np5234\ng26\n(S'Variable_Type'\n(I1\nttRp5235\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np5236\ng26\n(S'Variable_Type'\n(I2\nttRp5237\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np5238\ng26\n(S'Variable_Type'\n(I2\nttRp5239\nsS'Y:PMachine68 - CCASAM36'\np5240\ng26\n(S'Variable_Type'\n(I2\nttRp5241\nsS'Y:PMachine29 - CLUCCI21'\np5242\ng26\n(S'Variable_Type'\n(I1\nttRp5243\nsS'Y:VBus42 - CSISCO21'\np5244\ng26\n(S'Variable_Type'\n(I2\nttRp5245\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np5246\ng26\n(S'Variable_Type'\n(I1\nttRp5247\nsS'Y:VBus14 - CBONIF21'\np5248\ng26\n(S'Variable_Type'\n(I2\nttRp5249\nsS'Y:VBus73 - CCASTI32'\np5250\ng26\n(S'Variable_Type'\n(I2\nttRp5251\nsS'Y:VBus64 - CCASAM32'\np5252\ng26\n(S'Variable_Type'\n(I2\nttRp5253\nsS'Y:PMachine14 - CBONIF21'\np5254\ng26\n(S'Variable_Type'\n(I1\nttRp5255\nsS'Y:PMachine62 - CCALVI32'\np5256\ng26\n(S'Variable_Type'\n(I2\nttRp5257\nsS'Y:VBus133 - CVAZZI314'\np5258\ng26\n(S'Variable_Type'\n(I2\nttRp5259\nsS'Y:VBus63 - CCASAM31'\np5260\ng26\n(S'Variable_Type'\n(I2\nttRp5261\nsS'Y:PMachine101 - CPIETR31'\np5262\ng26\n(S'Variable_Type'\n(I2\nttRp5263\nsS'Y:%Losses'\np5264\ng26\n(S'Variable_Type'\n(I2\nttRp5265\nsS'Y:VBus85 - CLORET32'\np5266\ng26\n(S'Variable_Type'\n(I2\nttRp5267\nsS'Y:Load 59 - CCALDA31'\np5268\ng26\n(S'Variable_Type'\n(I2\nttRp5269\nsS'Y:VBus129 - CVAZZI310'\np5270\ng26\n(S'Variable_Type'\n(I2\nttRp5271\nsS'Y:VBus101 - CPIETR31'\np5272\ng26\n(S'Variable_Type'\n(I2\nttRp5273\nsS'Y:PMachine106 - CRIZZA31'\np5274\ng26\n(S'Variable_Type'\n(I2\nttRp5275\nsS'Y:VBus132 - CVAZZI313'\np5276\ng26\n(S'Variable_Type'\n(I2\nttRp5277\nsS'Y:PMachine118 - CTOLLA33'\np5278\ng26\n(S'Variable_Type'\n(I2\nttRp5279\nsS'Y:VBus19 - CCASTI21'\np5280\ng26\n(S'Variable_Type'\n(I2\nttRp5281\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np5282\ng26\n(S'Variable_Type'\n(I2\nttRp5283\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np5284\ng26\n(S'Variable_Type'\n(I1\nttRp5285\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np5286\ng26\n(S'Variable_Type'\n(I2\nttRp5287\nsS'Y:Load 115 - CTAGLI31'\np5288\ng26\n(S'Variable_Type'\n(I2\nttRp5289\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np5290\ng26\n(S'Variable_Type'\n(I2\nttRp5291\nsS'Y:VBus79 - CFURIA32'\np5292\ng26\n(S'Variable_Type'\n(I2\nttRp5293\nsS'Y:PMachine47 - CVAZZI21'\np5294\ng26\n(S'Variable_Type'\n(I1\nttRp5295\nsS'Y:VBus123 - CVAZZI34'\np5296\ng26\n(S'Variable_Type'\n(I2\nttRp5297\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np5298\ng26\n(S'Variable_Type'\n(I2\nttRp5299\nsS'Y:VBus60 - CCALDA32'\np5300\ng26\n(S'Variable_Type'\n(I2\nttRp5301\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np5302\ng26\n(S'Variable_Type'\n(I2\nttRp5303\nsS'Y:VBus65 - CCASAM33'\np5304\ng26\n(S'Variable_Type'\n(I2\nttRp5305\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np5306\ng26\n(S'Variable_Type'\n(I1\nttRp5307\nsS'Y:PMachine139 - CLUCCI310'\np5308\ng26\n(S'Variable_Type'\n(I1\nttRp5309\nsS'Y:VBus112 - CSAMPO31'\np5310\ng26\n(S'Variable_Type'\n(I2\nttRp5311\nsS'Y:VBus68 - CCASAM36'\np5312\ng26\n(S'Variable_Type'\n(I2\nttRp5313\nsS'Y:Load 55 - CBIGUG31'\np5314\ng26\n(S'Variable_Type'\n(I2\nttRp5315\nsS'Y:PMachine53 - CBASTI31'\np5316\ng26\n(S'Variable_Type'\n(I2\nttRp5317\nsS'Y:NbeTransit_0.9-1'\np5318\ng26\n(S'Variable_Type'\n(I1\nttRp5319\nsS'Y:VBus24 - CFURIA21'\np5320\ng26\n(S'Variable_Type'\n(I2\nttRp5321\nsS'Y:VBus23 - CCORTE22'\np5322\ng26\n(S'Variable_Type'\n(I2\nttRp5323\nsS'Y:VBus18 - CCASAM21'\np5324\ng26\n(S'Variable_Type'\n(I2\nttRp5325\nsS'Y:VBus40 - CSTMAR21'\np5326\ng26\n(S'Variable_Type'\n(I2\nttRp5327\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np5328\ng26\n(S'Variable_Type'\n(I2\nttRp5329\nsS'Y:PMachine124 - CVAZZI35'\np5330\ng26\n(S'Variable_Type'\n(I2\nttRp5331\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np5332\ng26\n(S'Variable_Type'\n(I2\nttRp5333\nsS'Y:PMachine117 - CTOLLA32'\np5334\ng26\n(S'Variable_Type'\n(I2\nttRp5335\nsS'Y:VBus89 - CLUCCI34'\np5336\ng26\n(S'Variable_Type'\n(I2\nttRp5337\nsS'Y:VBus33 - COLETT21'\np5338\ng26\n(S'Variable_Type'\n(I2\nttRp5339\nsS'Y:VBus32 - COCANA21'\np5340\ng26\n(S'Variable_Type'\n(I2\nttRp5341\nsS'Y:PMachine121 - CVAZZI32'\np5342\ng26\n(S'Variable_Type'\n(I2\nttRp5343\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np5344\ng26\n(S'Variable_Type'\n(I1\nttRp5345\nsS'Y:VBus82 - CILERO31'\np5346\ng26\n(S'Variable_Type'\n(I2\nttRp5347\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np5348\ng26\n(S'Variable_Type'\n(I2\nttRp5349\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np5350\ng26\n(S'Variable_Type'\n(I2\nttRp5351\nsS'Y:VBus37 - CRIZZA21'\np5352\ng26\n(S'Variable_Type'\n(I2\nttRp5353\nsS'Y:PMachine73 - CCASTI32'\np5354\ng26\n(S'Variable_Type'\n(I2\nttRp5355\nsS'Y:PMachine86 - CLUCCI31'\np5356\ng26\n(S'Variable_Type'\n(I2\nttRp5357\nsS'Y:Load 53 - CBASTI31'\np5358\ng26\n(S'Variable_Type'\n(I2\nttRp5359\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np5360\ng26\n(S'Variable_Type'\n(I2\nttRp5361\nsS'Y:VBus21 - CCORSC21'\np5362\ng26\n(S'Variable_Type'\n(I2\nttRp5363\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np5364\ng26\n(S'Variable_Type'\n(I2\nttRp5365\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np5366\ng26\n(S'Variable_Type'\n(I2\nttRp5367\nsS'Y:PMachine126 - CVAZZI37'\np5368\ng26\n(S'Variable_Type'\n(I2\nttRp5369\nsS'Y:PMachine64 - CCASAM32'\np5370\ng26\n(S'Variable_Type'\n(I2\nttRp5371\nsS'Y:VBus67 - CCASAM35'\np5372\ng26\n(S'Variable_Type'\n(I2\nttRp5373\nsS'Y:VBus53 - CBASTI31'\np5374\ng26\n(S'Variable_Type'\n(I2\nttRp5375\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np5376\ng26\n(S'Variable_Type'\n(I2\nttRp5377\nsS'Y:VBus61 - CCALVI31'\np5378\ng26\n(S'Variable_Type'\n(I2\nttRp5379\nsS'Y:VBus93 - COCANA32'\np5380\ng26\n(S'Variable_Type'\n(I2\nttRp5381\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np5382\ng26\n(S'Variable_Type'\n(I2\nttRp5383\nsS'Y:VBus104 - CPROPR31'\np5384\ng26\n(S'Variable_Type'\n(I2\nttRp5385\nsS'Y:VBus22 - CCORTE21'\np5386\ng26\n(S'Variable_Type'\n(I2\nttRp5387\nsS'Y:VBus48 - CZSSS621'\np5388\ng26\n(S'Variable_Type'\n(I2\nttRp5389\nsS'Y:PMachine85 - CLORET32'\np5390\ng26\n(S'Variable_Type'\n(I2\nttRp5391\nsS'Y:Max%A'\np5392\ng26\n(S'Variable_Type'\n(I2\nttRp5393\nsS'Y:VBus36 - CPROPR21'\np5394\ng26\n(S'Variable_Type'\n(I2\nttRp5395\nsS'Y:Load 100 - COLETT31'\np5396\ng26\n(S'Variable_Type'\n(I2\nttRp5397\nsS'Y:PMachine54 - CBASTI32'\np5398\ng26\n(S'Variable_Type'\n(I2\nttRp5399\nsS'Y:VBus138 - CLUCCI39'\np5400\ng26\n(S'Variable_Type'\n(I2\nttRp5401\nsS'Y:VBus39 - CSTLUC21'\np5402\ng26\n(S'Variable_Type'\n(I2\nttRp5403\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np5404\ng26\n(S'Variable_Type'\n(I2\nttRp5405\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np5406\ng26\n(S'Variable_Type'\n(I2\nttRp5407\nsS'Y:Load 78 - CFURIA31'\np5408\ng26\n(S'Variable_Type'\n(I2\nttRp5409\nsS'Y:VBus28 - CLORET21'\np5410\ng26\n(S'Variable_Type'\n(I2\nttRp5411\nsS'Y:PMachine105 - CPROPR32'\np5412\ng26\n(S'Variable_Type'\n(I2\nttRp5413\nsS'Y:VBus96 - COCANA35'\np5414\ng26\n(S'Variable_Type'\n(I2\nttRp5415\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np5416\ng26\n(S'Variable_Type'\n(I1\nttRp5417\nsS'Y:PMachine18 - CCASAM21'\np5418\ng26\n(S'Variable_Type'\n(I1\nttRp5419\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np5420\ng26\n(S'Variable_Type'\n(I2\nttRp5421\nsS'Y:VBus13 - CBIGUG21'\np5422\ng26\n(S'Variable_Type'\n(I2\nttRp5423\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np5424\ng26\n(S'Variable_Type'\n(I2\nttRp5425\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np5426\ng26\n(S'Variable_Type'\n(I2\nttRp5427\nsS'Y:VBus29 - CLUCCI21'\np5428\ng26\n(S'Variable_Type'\n(I2\nttRp5429\nsS'Y:VBus58 - CBONIF32'\np5430\ng26\n(S'Variable_Type'\n(I2\nttRp5431\nsS'Y:VBus84 - CLORET31'\np5432\ng26\n(S'Variable_Type'\n(I2\nttRp5433\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np5434\ng26\n(S'Variable_Type'\n(I1\nttRp5435\nsS'Y:VBus97 - COCANA36'\np5436\ng26\n(S'Variable_Type'\n(I2\nttRp5437\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np5438\ng26\n(S'Variable_Type'\n(I1\nttRp5439\nsS'Y:VBus15 - CBONIF22'\np5440\ng26\n(S'Variable_Type'\n(I2\nttRp5441\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np5442\ng26\n(S'Variable_Type'\n(I2\nttRp5443\nsS'Y:Load 110 - CSTLUC31'\np5444\ng26\n(S'Variable_Type'\n(I2\nttRp5445\nsS'Y:VBus80 - CGHISO31'\np5446\ng26\n(S'Variable_Type'\n(I2\nttRp5447\nsS'Y:PMachine114 - CSOVEN31'\np5448\ng26\n(S'Variable_Type'\n(I2\nttRp5449\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np5450\ng26\n(S'Variable_Type'\n(I1\nttRp5451\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np5452\ng26\n(S'Variable_Type'\n(I2\nttRp5453\nsS'Y:PMachine93 - COCANA32'\np5454\ng26\n(S'Variable_Type'\n(I2\nttRp5455\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np5456\ng26\n(S'Variable_Type'\n(I1\nttRp5457\nsS'Y:VBus87 - CLUCCI32'\np5458\ng26\n(S'Variable_Type'\n(I2\nttRp5459\nsS'Y:VBus62 - CCALVI32'\np5460\ng26\n(S'Variable_Type'\n(I2\nttRp5461\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np5462\ng26\n(S'Variable_Type'\n(I1\nttRp5463\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np5464\ng26\n(S'Variable_Type'\n(I1\nttRp5465\nsS'Y:VBus81 - CGHISO32'\np5466\ng26\n(S'Variable_Type'\n(I2\nttRp5467\nsS'Y:PMachine74 - CCERVI31'\np5468\ng26\n(S'Variable_Type'\n(I2\nttRp5469\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np5470\ng26\n(S'Variable_Type'\n(I2\nttRp5471\nsS'EOL_ALL'\np5472\ng26\n(S'Variable_Type'\n(I2\nttRp5473\nsS'X:Load(pu)'\np5474\ng26\n(S'Variable_Type'\n(I2\nttRp5475\nsS'Y:NbeTension'\np5476\ng26\n(S'Variable_Type'\n(I2\nttRp5477\nsS'Y:VBus95 - COCANA34'\np5478\ng26\n(S'Variable_Type'\n(I2\nttRp5479\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np5480\ng26\n(S'Variable_Type'\n(I2\nttRp5481\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np5482\ng26\n(S'Variable_Type'\n(I2\nttRp5483\nsS'Y:Load 95 - COCANA34'\np5484\ng26\n(S'Variable_Type'\n(I2\nttRp5485\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np5486\ng26\n(S'Variable_Type'\n(I1\nttRp5487\nsS'Y:PMachine90 - CMOROS31'\np5488\ng26\n(S'Variable_Type'\n(I2\nttRp5489\nsS'Y:Load 101 - CPIETR31'\np5490\ng26\n(S'Variable_Type'\n(I2\nttRp5491\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np5492\ng26\n(S'Variable_Type'\n(I1\nttRp5493\nsS'Y:PMachine132 - CVAZZI313'\np5494\ng26\n(S'Variable_Type'\n(I2\nttRp5495\nsS'Y:VBus125 - CVAZZI36'\np5496\ng26\n(S'Variable_Type'\n(I2\nttRp5497\nsS'Y:VBus135 - CLUCCI36'\np5498\ng26\n(S'Variable_Type'\n(I2\nttRp5499\nsS'Y:VBus47 - CVAZZI21'\np5500\ng26\n(S'Variable_Type'\n(I2\nttRp5501\nsS'Y:VBus94 - COCANA33'\np5502\ng26\n(S'Variable_Type'\n(I2\nttRp5503\nsS'Y:VBus17 - CCALVI21'\np5504\ng26\n(S'Variable_Type'\n(I2\nttRp5505\nsS'Y:Load 90 - CMOROS31'\np5506\ng26\n(S'Variable_Type'\n(I2\nttRp5507\nsS'Y:VBus120 - CVAZZI31'\np5508\ng26\n(S'Variable_Type'\n(I2\nttRp5509\nsS'X:ProdPV%Pnom'\np5510\ng26\n(S'Variable_Type'\n(I2\nttRp5511\nsS'Y:VBus52 - CASPRE32'\np5512\ng26\n(S'Variable_Type'\n(I2\nttRp5513\nsS'Y:VBus25 - CFURIA22'\np5514\ng26\n(S'Variable_Type'\n(I2\nttRp5515\nsS'Y:Load 76 - CCORTE31'\np5516\ng26\n(S'Variable_Type'\n(I2\nttRp5517\nsS'Y:PMachine69 - CCASAM37'\np5518\ng26\n(S'Variable_Type'\n(I2\nttRp5519\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np5520\ng26\n(S'Variable_Type'\n(I2\nttRp5521\nsS'Y:PMachine92 - COCANA31'\np5522\ng26\n(S'Variable_Type'\n(I2\nttRp5523\nsS'Y:PMachine102 - CPORTO31'\np5524\ng26\n(S'Variable_Type'\n(I2\nttRp5525\nsS'Y:PMachine122 - CVAZZI33'\np5526\ng26\n(S'Variable_Type'\n(I2\nttRp5527\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np5528\ng26\n(S'Variable_Type'\n(I1\nttRp5529\nsS'Y:PMachine63 - CCASAM31'\np5530\ng26\n(S'Variable_Type'\n(I2\nttRp5531\nsS'Y:VBus74 - CCERVI31'\np5532\ng26\n(S'Variable_Type'\n(I2\nttRp5533\nsS'Y:VBus126 - CVAZZI37'\np5534\ng26\n(S'Variable_Type'\n(I2\nttRp5535\nsS'Y:PMachine60 - CCALDA32'\np5536\ng26\n(S'Variable_Type'\n(I2\nttRp5537\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np5538\ng26\n(S'Variable_Type'\n(I1\nttRp5539\nsS'Y:VBus20 - CCERVI21'\np5540\ng26\n(S'Variable_Type'\n(I2\nttRp5541\nsS'Y:VBus119 - CTRAVO31'\np5542\ng26\n(S'Variable_Type'\n(I2\nttRp5543\nsS'Y:VBus11 - CASPRE21'\np5544\ng26\n(S'Variable_Type'\n(I2\nttRp5545\nsS'Y:VBus139 - CLUCCI310'\np5546\ng26\n(S'Variable_Type'\n(I2\nttRp5547\nsS'Y:VBus106 - CRIZZA31'\np5548\ng26\n(S'Variable_Type'\n(I2\nttRp5549\nsS'Y:PMachine66 - CCASAM34'\np5550\ng26\n(S'Variable_Type'\n(I2\nttRp5551\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np5552\ng26\n(S'Variable_Type'\n(I2\nttRp5553\nsS'Y:VBus136 - CLUCCI37'\np5554\ng26\n(S'Variable_Type'\n(I2\nttRp5555\nsS'Y:VBus90 - CMOROS31'\np5556\ng26\n(S'Variable_Type'\n(I2\nttRp5557\nsS'Y:Load 74 - CCERVI31'\np5558\ng26\n(S'Variable_Type'\n(I2\nttRp5559\nsS'X:lineOff#'\np5560\ng26\n(S'Variable_Type'\n(I2\nttRp5561\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np5562\ng26\n(S'Variable_Type'\n(I2\nttRp5563\nsS'Y:VBus108 - CSAGON31'\np5564\ng26\n(S'Variable_Type'\n(I2\nttRp5565\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np5566\ng26\n(S'Variable_Type'\n(I2\nttRp5567\nsS'Y:VBus137 - CLUCCI38'\np5568\ng26\n(S'Variable_Type'\n(I2\nttRp5569\nsS'Y:VBus130 - CVAZZI311'\np5570\ng26\n(S'Variable_Type'\n(I2\nttRp5571\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np5572\ng26\n(S'Variable_Type'\n(I2\nttRp5573\nsS'Y:VBus46 - CTRAVO21'\np5574\ng26\n(S'Variable_Type'\n(I2\nttRp5575\nsS'Y:VBus113 - CSAMPO32'\np5576\ng26\n(S'Variable_Type'\n(I2\nttRp5577\nsS'Y:PMachine133 - CVAZZI314'\np5578\ng26\n(S'Variable_Type'\n(I2\nttRp5579\nsS'Y:PMachine65 - CCASAM33'\np5580\ng26\n(S'Variable_Type'\n(I2\nttRp5581\nsS'Y:VBus78 - CFURIA31'\np5582\ng26\n(S'Variable_Type'\n(I2\nttRp5583\nsS'Y:VBus26 - CGHISO21'\np5584\ng26\n(S'Variable_Type'\n(I2\nttRp5585\nsS'Y:VBus121 - CVAZZI32'\np5586\ng26\n(S'Variable_Type'\n(I2\nttRp5587\nsS'Y:PMachine97 - COCANA36'\np5588\ng26\n(S'Variable_Type'\n(I2\nttRp5589\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np5590\ng26\n(S'Variable_Type'\n(I2\nttRp5591\nsS'Y:PMachine83 - CILERO32'\np5592\ng26\n(S'Variable_Type'\n(I2\nttRp5593\nsS'Y:VBus83 - CILERO32'\np5594\ng26\n(S'Variable_Type'\n(I2\nttRp5595\nsS'Y:VBus66 - CCASAM34'\np5596\ng26\n(S'Variable_Type'\n(I2\nttRp5597\nsS'Y:PMachine1 - CBONIF11'\np5598\ng26\n(S'Variable_Type'\n(I2\nttRp5599\nsS'Y:VBus111 - CSTMAR31'\np5600\ng26\n(S'Variable_Type'\n(I2\nttRp5601\nsS'Y:VBus124 - CVAZZI35'\np5602\ng26\n(S'Variable_Type'\n(I2\nttRp5603\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np5604\ng26\n(S'Variable_Type'\n(I2\nttRp5605\nsS'Y:PMachine131 - CVAZZI312'\np5606\ng26\n(S'Variable_Type'\n(I2\nttRp5607\nsS'Y:VBus44 - CTAGLI21'\np5608\ng26\n(S'Variable_Type'\n(I2\nttRp5609\nsS'Y:VBus88 - CLUCCI33'\np5610\ng26\n(S'Variable_Type'\n(I2\nttRp5611\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np5612\ng26\n(S'Variable_Type'\n(I1\nttRp5613\nsS'Y:VBus38 - CSAGON21'\np5614\ng26\n(S'Variable_Type'\n(I2\nttRp5615\nsS'Y:PMachine81 - CGHISO32'\np5616\ng26\n(S'Variable_Type'\n(I2\nttRp5617\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np5618\ng26\n(S'Variable_Type'\n(I2\nttRp5619\nsS'Y:VBus110 - CSTLUC31'\np5620\ng26\n(S'Variable_Type'\n(I2\nttRp5621\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np5622\ng26\n(S'Variable_Type'\n(I2\nttRp5623\nssg630\n(dp5624\nsg632\n(dp5625\ng2509\n(S'Iteration'\np5626\ng5103\ntp5627\nsg2512\n(g638\nI0\ntp5628\nsg2514\n(g5626\ng5103\ntp5629\nsg2516\n(S''\nI0\ntp5630\nsg2518\n(S''\nI0\ntp5631\nsg2520\n(NI-2\ntp5632\nsg2522\n((lI-2\ntp5633\nssg650\nF1369995008.329\nsba(iOWContexts\nContext\np5634\n(dp5635\ng20\n(lp5636\ng1272\nasg23\n(dp5637\nS'Y:PMachine134 - CLUCCI35'\np5638\ng26\n(S'Variable_Type'\n(I1\nttRp5639\nsS'Y:VBus77 - CCORTE32'\np5640\ng26\n(S'Variable_Type'\n(I2\nttRp5641\nsS'Y:VBus134 - CLUCCI35'\np5642\ng26\n(S'Variable_Type'\n(I2\nttRp5643\nsS'Y:VBus109 - CSAGON32'\np5644\ng26\n(S'Variable_Type'\n(I2\nttRp5645\nsS'Y:VBus102 - CPORTO31'\np5646\ng26\n(S'Variable_Type'\n(I2\nttRp5647\nsS'XProdEolienne%Pnom'\np5648\ng26\n(S'Variable_Type'\n(I1\nttRp5649\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np5650\ng26\n(S'Variable_Type'\n(I2\nttRp5651\nsS'Y:PMachine94 - COCANA33'\np5652\ng26\n(S'Variable_Type'\n(I2\nttRp5653\nsS'Y:VBus117 - CTOLLA32'\np5654\ng26\n(S'Variable_Type'\n(I2\nttRp5655\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np5656\ng26\n(S'Variable_Type'\n(I2\nttRp5657\nsS'Y:PMachine87 - CLUCCI32'\np5658\ng26\n(S'Variable_Type'\n(I2\nttRp5659\nsS'Y:PMachine113 - CSAMPO32'\np5660\ng26\n(S'Variable_Type'\n(I2\nttRp5661\nsS'Y:Load 84 - CLORET31'\np5662\ng26\n(S'Variable_Type'\n(I2\nttRp5663\nsS'Y:PMachine89 - CLUCCI34'\np5664\ng26\n(S'Variable_Type'\n(I1\nttRp5665\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np5666\ng26\n(S'Variable_Type'\n(I2\nttRp5667\nsS'Y:Load 80 - CGHISO31'\np5668\ng26\n(S'Variable_Type'\n(I2\nttRp5669\nsS'Y:PMachine125 - CVAZZI36'\np5670\ng26\n(S'Variable_Type'\n(I2\nttRp5671\nsS'Y:PMachine116 - CTOLLA31'\np5672\ng26\n(S'Variable_Type'\n(I2\nttRp5673\nsS'Y:PMachine88 - CLUCCI33'\np5674\ng26\n(S'Variable_Type'\n(I1\nttRp5675\nsS'Y:PMachine120 - CVAZZI31'\np5676\ng26\n(S'Variable_Type'\n(I2\nttRp5677\nsS'Y:PMachine111 - CSTMAR31'\np5678\ng26\n(S'Variable_Type'\n(I2\nttRp5679\nsS'Y:NbeTransit'\np5680\ng26\n(S'Variable_Type'\n(I1\nttRp5681\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np5682\ng26\n(S'Variable_Type'\n(I2\nttRp5683\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np5684\ng26\n(S'Variable_Type'\n(I2\nttRp5685\nsS'Y:VBus92 - COCANA31'\np5686\ng26\n(S'Variable_Type'\n(I2\nttRp5687\nsS'Y:PMachine130 - CVAZZI311'\np5688\ng26\n(S'Variable_Type'\n(I2\nttRp5689\nsS'Y:PMachine127 - CVAZZI38'\np5690\ng26\n(S'Variable_Type'\n(I2\nttRp5691\nsS'Y:VBus131 - CVAZZI312'\np5692\ng26\n(S'Variable_Type'\n(I2\nttRp5693\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np5694\ng26\n(S'Variable_Type'\n(I2\nttRp5695\nsS'Y:PMachine123 - CVAZZI34'\np5696\ng26\n(S'Variable_Type'\n(I2\nttRp5697\nsS'Y:VBus118 - CTOLLA33'\np5698\ng26\n(S'Variable_Type'\n(I2\nttRp5699\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np5700\ng26\n(S'Variable_Type'\n(I1\nttRp5701\nsS'Y:PMachine58 - CBONIF32'\np5702\ng26\n(S'Variable_Type'\n(I2\nttRp5703\nsS'Y:Load 104 - CPROPR31'\np5704\ng26\n(S'Variable_Type'\n(I2\nttRp5705\nsS'Y:PMachine30 - CLUCCI22'\np5706\ng26\n(S'Variable_Type'\n(I1\nttRp5707\nsS'Y:VBus100 - COLETT31'\np5708\ng26\n(S'Variable_Type'\n(I2\nttRp5709\nsS'Y:PProdTot'\np5710\ng26\n(S'Variable_Type'\n(I2\nttRp5711\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np5712\ng26\n(S'Variable_Type'\n(I1\nttRp5713\nsS'Y:VBus57 - CBONIF31'\np5714\ng26\n(S'Variable_Type'\n(I2\nttRp5715\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np5716\ng26\n(S'Variable_Type'\n(I2\nttRp5717\nsS'Y:PConsoTot'\np5718\ng26\n(S'Variable_Type'\n(I2\nttRp5719\nsS'Iteration'\np5720\ng26\n(S'Variable_Type'\n(I2\nttRp5721\nsS'Y:PMachine109 - CSAGON32'\np5722\ng26\n(S'Variable_Type'\n(I2\nttRp5723\nsS'Y:PMachine135 - CLUCCI36'\np5724\ng26\n(S'Variable_Type'\n(I1\nttRp5725\nsS'Y:VBus30 - CLUCCI22'\np5726\ng26\n(S'Variable_Type'\n(I2\nttRp5727\nsS'Y:VBus122 - CVAZZI33'\np5728\ng26\n(S'Variable_Type'\n(I2\nttRp5729\nsS'Y:VBus22 - CCORTE21'\np5730\ng26\n(S'Variable_Type'\n(I2\nttRp5731\nsS'Y:VBus35 - CPORTO21'\np5732\ng26\n(S'Variable_Type'\n(I2\nttRp5733\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np5734\ng26\n(S'Variable_Type'\n(I1\nttRp5735\nsS'Y:PMachine107 - CRIZZA32'\np5736\ng26\n(S'Variable_Type'\n(I2\nttRp5737\nsS'Y:VBus16 - CCALDA21'\np5738\ng26\n(S'Variable_Type'\n(I2\nttRp5739\nsS'Y:Load 102 - CPORTO31'\np5740\ng26\n(S'Variable_Type'\n(I2\nttRp5741\nsS'Y:VBus107 - CRIZZA32'\np5742\ng26\n(S'Variable_Type'\n(I2\nttRp5743\nsS'Y:VBus59 - CCALDA31'\np5744\ng26\n(S'Variable_Type'\n(I2\nttRp5745\nsS'Y:VBus41 - CSAMPO21'\np5746\ng26\n(S'Variable_Type'\n(I2\nttRp5747\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np5748\ng26\n(S'Variable_Type'\n(I2\nttRp5749\nsS'Y:VBus34 - CPIETR21'\np5750\ng26\n(S'Variable_Type'\n(I2\nttRp5751\nsS'Y:Load 108 - CSAGON31'\np5752\ng26\n(S'Variable_Type'\n(I2\nttRp5753\nsS'Y:VBus56 - CBIGUG32'\np5754\ng26\n(S'Variable_Type'\n(I2\nttRp5755\nsS'Y:PMachine42 - CSISCO21'\np5756\ng26\n(S'Variable_Type'\n(I2\nttRp5757\nsS'Y:PMachine138 - CLUCCI39'\np5758\ng26\n(S'Variable_Type'\n(I1\nttRp5759\nsS'Y:PMachine112 - CSAMPO31'\np5760\ng26\n(S'Variable_Type'\n(I2\nttRp5761\nsS'Y:VBus105 - CPROPR32'\np5762\ng26\n(S'Variable_Type'\n(I2\nttRp5763\nsS'Y:VBus1 - CBONIF11'\np5764\ng26\n(S'Variable_Type'\n(I2\nttRp5765\nsS'Y:VBus12 - CBASTI21'\np5766\ng26\n(S'Variable_Type'\n(I2\nttRp5767\nsS'Y:PMachine129 - CVAZZI310'\np5768\ng26\n(S'Variable_Type'\n(I2\nttRp5769\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np5770\ng26\n(S'Variable_Type'\n(I1\nttRp5771\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np5772\ng26\n(S'Variable_Type'\n(I1\nttRp5773\nsS'Y:VBus54 - CBASTI32'\np5774\ng26\n(S'Variable_Type'\n(I2\nttRp5775\nsS'Y:VBus69 - CCASAM37'\np5776\ng26\n(S'Variable_Type'\n(I2\nttRp5777\nsS'Y:VBus45 - CTOLLA21'\np5778\ng26\n(S'Variable_Type'\n(I2\nttRp5779\nsS'Y:PMachine115 - CTAGLI31'\np5780\ng26\n(S'Variable_Type'\n(I2\nttRp5781\nsS'Y:PMachine77 - CCORTE32'\np5782\ng26\n(S'Variable_Type'\n(I2\nttRp5783\nsS'Y:VBus43 - CSOVEN21'\np5784\ng26\n(S'Variable_Type'\n(I2\nttRp5785\nsS'Y:VBus76 - CCORTE31'\np5786\ng26\n(S'Variable_Type'\n(I2\nttRp5787\nsS'Y:VBus75 - CCORSC31'\np5788\ng26\n(S'Variable_Type'\n(I2\nttRp5789\nsS'Y:PMachine78 - CFURIA31'\np5790\ng26\n(S'Variable_Type'\n(I1\nttRp5791\nsS'Y:VBus127 - CVAZZI38'\np5792\ng26\n(S'Variable_Type'\n(I2\nttRp5793\nsS'Y:VBus115 - CTAGLI31'\np5794\ng26\n(S'Variable_Type'\n(I2\nttRp5795\nsS'Y:Load 61 - CCALVI31'\np5796\ng26\n(S'Variable_Type'\n(I2\nttRp5797\nsS'Y:VBus55 - CBIGUG31'\np5798\ng26\n(S'Variable_Type'\n(I2\nttRp5799\nsS'Y:Load 42 - CSISCO21'\np5800\ng26\n(S'Variable_Type'\n(I2\nttRp5801\nsS'Y:VBus72 - CCASTI31'\np5802\ng26\n(S'Variable_Type'\n(I2\nttRp5803\nsS'Y:Load 37 - CRIZZA21'\np5804\ng26\n(S'Variable_Type'\n(I2\nttRp5805\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np5806\ng26\n(S'Variable_Type'\n(I2\nttRp5807\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np5808\ng26\n(S'Variable_Type'\n(I2\nttRp5809\nsS'Y:PMachine137 - CLUCCI38'\np5810\ng26\n(S'Variable_Type'\n(I1\nttRp5811\nsS'Y:PMachine67 - CCASAM35'\np5812\ng26\n(S'Variable_Type'\n(I2\nttRp5813\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np5814\ng26\n(S'Variable_Type'\n(I1\nttRp5815\nsS'Y:VBus31 - CMOROS21'\np5816\ng26\n(S'Variable_Type'\n(I2\nttRp5817\nsS'Y:VBus103 - CPORTO32'\np5818\ng26\n(S'Variable_Type'\n(I2\nttRp5819\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np5820\ng26\n(S'Variable_Type'\n(I1\nttRp5821\nsS'Y:PMachine128 - CVAZZI39'\np5822\ng26\n(S'Variable_Type'\n(I2\nttRp5823\nsS'Y:PMachine72 - CCASTI31'\np5824\ng26\n(S'Variable_Type'\n(I2\nttRp5825\nsS'Y:VBus27 - CILERO21'\np5826\ng26\n(S'Variable_Type'\n(I2\nttRp5827\nsS'Y:PMachine75 - CCORSC31'\np5828\ng26\n(S'Variable_Type'\n(I2\nttRp5829\nsS'Y:Load 51 - CASPRE31'\np5830\ng26\n(S'Variable_Type'\n(I2\nttRp5831\nsS'Y:PMachine61 - CCALVI31'\np5832\ng26\n(S'Variable_Type'\n(I1\nttRp5833\nsS'Y:VBus51 - CASPRE31'\np5834\ng26\n(S'Variable_Type'\n(I2\nttRp5835\nsS'Y:VBus114 - CSOVEN31'\np5836\ng26\n(S'Variable_Type'\n(I2\nttRp5837\nsS'Y:Load 82 - CILERO31'\np5838\ng26\n(S'Variable_Type'\n(I2\nttRp5839\nsS'Y:VBus116 - CTOLLA31'\np5840\ng26\n(S'Variable_Type'\n(I2\nttRp5841\nsS'Y:Load 86 - CLUCCI31'\np5842\ng26\n(S'Variable_Type'\n(I2\nttRp5843\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np5844\ng26\n(S'Variable_Type'\n(I2\nttRp5845\nsS'Y:Load 57 - CBONIF31'\np5846\ng26\n(S'Variable_Type'\n(I2\nttRp5847\nsS'Y:PMachine104 - CPROPR31'\np5848\ng26\n(S'Variable_Type'\n(I2\nttRp5849\nsS'Y:VBus128 - CVAZZI39'\np5850\ng26\n(S'Variable_Type'\n(I2\nttRp5851\nsS'Y:PMachine136 - CLUCCI37'\np5852\ng26\n(S'Variable_Type'\n(I1\nttRp5853\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np5854\ng26\n(S'Variable_Type'\n(I2\nttRp5855\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np5856\ng26\n(S'Variable_Type'\n(I2\nttRp5857\nsS'Y:PMachine68 - CCASAM36'\np5858\ng26\n(S'Variable_Type'\n(I2\nttRp5859\nsS'Y:PMachine29 - CLUCCI21'\np5860\ng26\n(S'Variable_Type'\n(I1\nttRp5861\nsS'Y:VBus42 - CSISCO21'\np5862\ng26\n(S'Variable_Type'\n(I2\nttRp5863\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np5864\ng26\n(S'Variable_Type'\n(I1\nttRp5865\nsS'Y:VBus14 - CBONIF21'\np5866\ng26\n(S'Variable_Type'\n(I2\nttRp5867\nsS'Y:VBus73 - CCASTI32'\np5868\ng26\n(S'Variable_Type'\n(I2\nttRp5869\nsS'Y:VBus64 - CCASAM32'\np5870\ng26\n(S'Variable_Type'\n(I2\nttRp5871\nsS'Y:PMachine14 - CBONIF21'\np5872\ng26\n(S'Variable_Type'\n(I1\nttRp5873\nsS'Y:PMachine62 - CCALVI32'\np5874\ng26\n(S'Variable_Type'\n(I2\nttRp5875\nsS'Y:VBus133 - CVAZZI314'\np5876\ng26\n(S'Variable_Type'\n(I2\nttRp5877\nsS'Y:VBus63 - CCASAM31'\np5878\ng26\n(S'Variable_Type'\n(I2\nttRp5879\nsS'Y:PMachine101 - CPIETR31'\np5880\ng26\n(S'Variable_Type'\n(I2\nttRp5881\nsS'Y:%Losses'\np5882\ng26\n(S'Variable_Type'\n(I2\nttRp5883\nsS'Y:VBus85 - CLORET32'\np5884\ng26\n(S'Variable_Type'\n(I2\nttRp5885\nsS'Y:Load 59 - CCALDA31'\np5886\ng26\n(S'Variable_Type'\n(I2\nttRp5887\nsS'Y:VBus129 - CVAZZI310'\np5888\ng26\n(S'Variable_Type'\n(I2\nttRp5889\nsS'Y:VBus101 - CPIETR31'\np5890\ng26\n(S'Variable_Type'\n(I2\nttRp5891\nsS'Y:PMachine106 - CRIZZA31'\np5892\ng26\n(S'Variable_Type'\n(I2\nttRp5893\nsS'Y:VBus132 - CVAZZI313'\np5894\ng26\n(S'Variable_Type'\n(I2\nttRp5895\nsS'Y:PMachine118 - CTOLLA33'\np5896\ng26\n(S'Variable_Type'\n(I2\nttRp5897\nsS'Y:VBus19 - CCASTI21'\np5898\ng26\n(S'Variable_Type'\n(I2\nttRp5899\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np5900\ng26\n(S'Variable_Type'\n(I2\nttRp5901\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np5902\ng26\n(S'Variable_Type'\n(I1\nttRp5903\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np5904\ng26\n(S'Variable_Type'\n(I2\nttRp5905\nsS'Y:Load 115 - CTAGLI31'\np5906\ng26\n(S'Variable_Type'\n(I2\nttRp5907\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np5908\ng26\n(S'Variable_Type'\n(I2\nttRp5909\nsS'Y:VBus79 - CFURIA32'\np5910\ng26\n(S'Variable_Type'\n(I2\nttRp5911\nsS'Y:PMachine47 - CVAZZI21'\np5912\ng26\n(S'Variable_Type'\n(I1\nttRp5913\nsS'Y:VBus123 - CVAZZI34'\np5914\ng26\n(S'Variable_Type'\n(I2\nttRp5915\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np5916\ng26\n(S'Variable_Type'\n(I2\nttRp5917\nsS'Y:VBus60 - CCALDA32'\np5918\ng26\n(S'Variable_Type'\n(I2\nttRp5919\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np5920\ng26\n(S'Variable_Type'\n(I2\nttRp5921\nsS'Y:VBus65 - CCASAM33'\np5922\ng26\n(S'Variable_Type'\n(I2\nttRp5923\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np5924\ng26\n(S'Variable_Type'\n(I1\nttRp5925\nsS'Y:PMachine139 - CLUCCI310'\np5926\ng26\n(S'Variable_Type'\n(I1\nttRp5927\nsS'Y:VBus112 - CSAMPO31'\np5928\ng26\n(S'Variable_Type'\n(I2\nttRp5929\nsS'Y:VBus68 - CCASAM36'\np5930\ng26\n(S'Variable_Type'\n(I2\nttRp5931\nsS'Y:Load 55 - CBIGUG31'\np5932\ng26\n(S'Variable_Type'\n(I2\nttRp5933\nsS'Y:PMachine53 - CBASTI31'\np5934\ng26\n(S'Variable_Type'\n(I2\nttRp5935\nsS'Y:NbeTransit_0.9-1'\np5936\ng26\n(S'Variable_Type'\n(I1\nttRp5937\nsS'Y:VBus24 - CFURIA21'\np5938\ng26\n(S'Variable_Type'\n(I2\nttRp5939\nsS'Y:VBus23 - CCORTE22'\np5940\ng26\n(S'Variable_Type'\n(I2\nttRp5941\nsS'Y:VBus18 - CCASAM21'\np5942\ng26\n(S'Variable_Type'\n(I2\nttRp5943\nsS'Y:VBus40 - CSTMAR21'\np5944\ng26\n(S'Variable_Type'\n(I2\nttRp5945\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np5946\ng26\n(S'Variable_Type'\n(I2\nttRp5947\nsS'Y:PMachine124 - CVAZZI35'\np5948\ng26\n(S'Variable_Type'\n(I2\nttRp5949\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np5950\ng26\n(S'Variable_Type'\n(I2\nttRp5951\nsS'Y:PMachine117 - CTOLLA32'\np5952\ng26\n(S'Variable_Type'\n(I2\nttRp5953\nsS'Y:VBus89 - CLUCCI34'\np5954\ng26\n(S'Variable_Type'\n(I2\nttRp5955\nsS'Y:VBus33 - COLETT21'\np5956\ng26\n(S'Variable_Type'\n(I2\nttRp5957\nsS'Y:VBus32 - COCANA21'\np5958\ng26\n(S'Variable_Type'\n(I2\nttRp5959\nsS'Y:PMachine121 - CVAZZI32'\np5960\ng26\n(S'Variable_Type'\n(I2\nttRp5961\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np5962\ng26\n(S'Variable_Type'\n(I1\nttRp5963\nsS'Y:VBus82 - CILERO31'\np5964\ng26\n(S'Variable_Type'\n(I2\nttRp5965\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np5966\ng26\n(S'Variable_Type'\n(I2\nttRp5967\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np5968\ng26\n(S'Variable_Type'\n(I2\nttRp5969\nsS'Y:VBus37 - CRIZZA21'\np5970\ng26\n(S'Variable_Type'\n(I2\nttRp5971\nsS'Y:PMachine73 - CCASTI32'\np5972\ng26\n(S'Variable_Type'\n(I2\nttRp5973\nsS'Y:PMachine86 - CLUCCI31'\np5974\ng26\n(S'Variable_Type'\n(I2\nttRp5975\nsS'Y:Load 53 - CBASTI31'\np5976\ng26\n(S'Variable_Type'\n(I2\nttRp5977\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np5978\ng26\n(S'Variable_Type'\n(I2\nttRp5979\nsS'Y:VBus21 - CCORSC21'\np5980\ng26\n(S'Variable_Type'\n(I2\nttRp5981\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np5982\ng26\n(S'Variable_Type'\n(I2\nttRp5983\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np5984\ng26\n(S'Variable_Type'\n(I2\nttRp5985\nsS'Y:PMachine126 - CVAZZI37'\np5986\ng26\n(S'Variable_Type'\n(I2\nttRp5987\nsS'Y:PMachine64 - CCASAM32'\np5988\ng26\n(S'Variable_Type'\n(I2\nttRp5989\nsS'Y:VBus67 - CCASAM35'\np5990\ng26\n(S'Variable_Type'\n(I2\nttRp5991\nsS'Y:VBus53 - CBASTI31'\np5992\ng26\n(S'Variable_Type'\n(I2\nttRp5993\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np5994\ng26\n(S'Variable_Type'\n(I2\nttRp5995\nsS'Y:VBus61 - CCALVI31'\np5996\ng26\n(S'Variable_Type'\n(I2\nttRp5997\nsS'Y:VBus93 - COCANA32'\np5998\ng26\n(S'Variable_Type'\n(I2\nttRp5999\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np6000\ng26\n(S'Variable_Type'\n(I2\nttRp6001\nsS'Y:VBus104 - CPROPR31'\np6002\ng26\n(S'Variable_Type'\n(I2\nttRp6003\nsS'Y:VBus48 - CZSSS621'\np6004\ng26\n(S'Variable_Type'\n(I2\nttRp6005\nsS'Y:PMachine85 - CLORET32'\np6006\ng26\n(S'Variable_Type'\n(I2\nttRp6007\nsS'Y:Max%A'\np6008\ng26\n(S'Variable_Type'\n(I2\nttRp6009\nsS'Y:VBus36 - CPROPR21'\np6010\ng26\n(S'Variable_Type'\n(I2\nttRp6011\nsS'Y:Load 100 - COLETT31'\np6012\ng26\n(S'Variable_Type'\n(I2\nttRp6013\nsS'Y:PMachine54 - CBASTI32'\np6014\ng26\n(S'Variable_Type'\n(I2\nttRp6015\nsS'Y:VBus138 - CLUCCI39'\np6016\ng26\n(S'Variable_Type'\n(I2\nttRp6017\nsS'Y:VBus39 - CSTLUC21'\np6018\ng26\n(S'Variable_Type'\n(I2\nttRp6019\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np6020\ng26\n(S'Variable_Type'\n(I2\nttRp6021\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np6022\ng26\n(S'Variable_Type'\n(I2\nttRp6023\nsS'Y:Load 78 - CFURIA31'\np6024\ng26\n(S'Variable_Type'\n(I2\nttRp6025\nsS'Y:VBus28 - CLORET21'\np6026\ng26\n(S'Variable_Type'\n(I2\nttRp6027\nsS'Y:PMachine105 - CPROPR32'\np6028\ng26\n(S'Variable_Type'\n(I2\nttRp6029\nsS'Y:VBus96 - COCANA35'\np6030\ng26\n(S'Variable_Type'\n(I2\nttRp6031\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np6032\ng26\n(S'Variable_Type'\n(I1\nttRp6033\nsS'Y:PMachine18 - CCASAM21'\np6034\ng26\n(S'Variable_Type'\n(I1\nttRp6035\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np6036\ng26\n(S'Variable_Type'\n(I2\nttRp6037\nsS'Y:VBus13 - CBIGUG21'\np6038\ng26\n(S'Variable_Type'\n(I2\nttRp6039\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np6040\ng26\n(S'Variable_Type'\n(I2\nttRp6041\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np6042\ng26\n(S'Variable_Type'\n(I2\nttRp6043\nsS'Y:VBus29 - CLUCCI21'\np6044\ng26\n(S'Variable_Type'\n(I2\nttRp6045\nsS'Y:VBus58 - CBONIF32'\np6046\ng26\n(S'Variable_Type'\n(I2\nttRp6047\nsS'Y:VBus84 - CLORET31'\np6048\ng26\n(S'Variable_Type'\n(I2\nttRp6049\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np6050\ng26\n(S'Variable_Type'\n(I1\nttRp6051\nsS'Y:VBus97 - COCANA36'\np6052\ng26\n(S'Variable_Type'\n(I2\nttRp6053\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np6054\ng26\n(S'Variable_Type'\n(I1\nttRp6055\nsS'Y:VBus15 - CBONIF22'\np6056\ng26\n(S'Variable_Type'\n(I2\nttRp6057\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np6058\ng26\n(S'Variable_Type'\n(I2\nttRp6059\nsS'Y:Load 110 - CSTLUC31'\np6060\ng26\n(S'Variable_Type'\n(I2\nttRp6061\nsS'Y:VBus80 - CGHISO31'\np6062\ng26\n(S'Variable_Type'\n(I2\nttRp6063\nsS'Y:PMachine114 - CSOVEN31'\np6064\ng26\n(S'Variable_Type'\n(I2\nttRp6065\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np6066\ng26\n(S'Variable_Type'\n(I1\nttRp6067\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np6068\ng26\n(S'Variable_Type'\n(I2\nttRp6069\nsS'Y:PMachine93 - COCANA32'\np6070\ng26\n(S'Variable_Type'\n(I2\nttRp6071\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np6072\ng26\n(S'Variable_Type'\n(I1\nttRp6073\nsS'Y:VBus87 - CLUCCI32'\np6074\ng26\n(S'Variable_Type'\n(I2\nttRp6075\nsS'Y:VBus62 - CCALVI32'\np6076\ng26\n(S'Variable_Type'\n(I2\nttRp6077\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np6078\ng26\n(S'Variable_Type'\n(I1\nttRp6079\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np6080\ng26\n(S'Variable_Type'\n(I1\nttRp6081\nsS'Y:VBus81 - CGHISO32'\np6082\ng26\n(S'Variable_Type'\n(I2\nttRp6083\nsS'Y:PMachine74 - CCERVI31'\np6084\ng26\n(S'Variable_Type'\n(I2\nttRp6085\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np6086\ng26\n(S'Variable_Type'\n(I2\nttRp6087\nsS'Y:VBus86 - CLUCCI31'\np6088\ng26\n(S'Variable_Type'\n(I2\nttRp6089\nsS'X:Load(pu)'\np6090\ng26\n(S'Variable_Type'\n(I2\nttRp6091\nsS'Y:NbeTension'\np6092\ng26\n(S'Variable_Type'\n(I2\nttRp6093\nsS'Y:VBus95 - COCANA34'\np6094\ng26\n(S'Variable_Type'\n(I2\nttRp6095\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np6096\ng26\n(S'Variable_Type'\n(I2\nttRp6097\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np6098\ng26\n(S'Variable_Type'\n(I2\nttRp6099\nsS'Y:Load 95 - COCANA34'\np6100\ng26\n(S'Variable_Type'\n(I2\nttRp6101\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np6102\ng26\n(S'Variable_Type'\n(I1\nttRp6103\nsS'Y:PMachine90 - CMOROS31'\np6104\ng26\n(S'Variable_Type'\n(I2\nttRp6105\nsS'Y:Load 101 - CPIETR31'\np6106\ng26\n(S'Variable_Type'\n(I2\nttRp6107\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np6108\ng26\n(S'Variable_Type'\n(I1\nttRp6109\nsS'Y:PMachine132 - CVAZZI313'\np6110\ng26\n(S'Variable_Type'\n(I2\nttRp6111\nsS'Y:VBus125 - CVAZZI36'\np6112\ng26\n(S'Variable_Type'\n(I2\nttRp6113\nsS'Y:VBus135 - CLUCCI36'\np6114\ng26\n(S'Variable_Type'\n(I2\nttRp6115\nsS'Y:VBus47 - CVAZZI21'\np6116\ng26\n(S'Variable_Type'\n(I2\nttRp6117\nsS'Y:VBus94 - COCANA33'\np6118\ng26\n(S'Variable_Type'\n(I2\nttRp6119\nsS'Y:VBus17 - CCALVI21'\np6120\ng26\n(S'Variable_Type'\n(I2\nttRp6121\nsS'Y:Load 90 - CMOROS31'\np6122\ng26\n(S'Variable_Type'\n(I2\nttRp6123\nsS'Y:VBus120 - CVAZZI31'\np6124\ng26\n(S'Variable_Type'\n(I2\nttRp6125\nsS'X:ProdPV%Pnom'\np6126\ng26\n(S'Variable_Type'\n(I2\nttRp6127\nsS'Y:VBus52 - CASPRE32'\np6128\ng26\n(S'Variable_Type'\n(I2\nttRp6129\nsS'Y:VBus25 - CFURIA22'\np6130\ng26\n(S'Variable_Type'\n(I2\nttRp6131\nsS'Y:Load 76 - CCORTE31'\np6132\ng26\n(S'Variable_Type'\n(I2\nttRp6133\nsS'Y:PMachine69 - CCASAM37'\np6134\ng26\n(S'Variable_Type'\n(I2\nttRp6135\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np6136\ng26\n(S'Variable_Type'\n(I2\nttRp6137\nsS'Y:PMachine92 - COCANA31'\np6138\ng26\n(S'Variable_Type'\n(I2\nttRp6139\nsS'Y:PMachine102 - CPORTO31'\np6140\ng26\n(S'Variable_Type'\n(I2\nttRp6141\nsS'Y:PMachine122 - CVAZZI33'\np6142\ng26\n(S'Variable_Type'\n(I2\nttRp6143\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np6144\ng26\n(S'Variable_Type'\n(I1\nttRp6145\nsS'Y:PMachine63 - CCASAM31'\np6146\ng26\n(S'Variable_Type'\n(I2\nttRp6147\nsS'Y:VBus74 - CCERVI31'\np6148\ng26\n(S'Variable_Type'\n(I2\nttRp6149\nsS'Y:VBus126 - CVAZZI37'\np6150\ng26\n(S'Variable_Type'\n(I2\nttRp6151\nsS'Y:PMachine60 - CCALDA32'\np6152\ng26\n(S'Variable_Type'\n(I2\nttRp6153\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np6154\ng26\n(S'Variable_Type'\n(I1\nttRp6155\nsS'Y:VBus20 - CCERVI21'\np6156\ng26\n(S'Variable_Type'\n(I2\nttRp6157\nsS'Y:VBus119 - CTRAVO31'\np6158\ng26\n(S'Variable_Type'\n(I2\nttRp6159\nsS'Y:VBus11 - CASPRE21'\np6160\ng26\n(S'Variable_Type'\n(I2\nttRp6161\nsS'Y:VBus139 - CLUCCI310'\np6162\ng26\n(S'Variable_Type'\n(I2\nttRp6163\nsS'Y:VBus106 - CRIZZA31'\np6164\ng26\n(S'Variable_Type'\n(I2\nttRp6165\nsS'Y:PMachine66 - CCASAM34'\np6166\ng26\n(S'Variable_Type'\n(I2\nttRp6167\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np6168\ng26\n(S'Variable_Type'\n(I2\nttRp6169\nsS'Y:VBus136 - CLUCCI37'\np6170\ng26\n(S'Variable_Type'\n(I2\nttRp6171\nsS'Y:VBus90 - CMOROS31'\np6172\ng26\n(S'Variable_Type'\n(I2\nttRp6173\nsS'Y:Load 74 - CCERVI31'\np6174\ng26\n(S'Variable_Type'\n(I2\nttRp6175\nsS'X:lineOff#'\np6176\ng26\n(S'Variable_Type'\n(I2\nttRp6177\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np6178\ng26\n(S'Variable_Type'\n(I2\nttRp6179\nsS'Y:VBus108 - CSAGON31'\np6180\ng26\n(S'Variable_Type'\n(I2\nttRp6181\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np6182\ng26\n(S'Variable_Type'\n(I2\nttRp6183\nsS'Y:VBus137 - CLUCCI38'\np6184\ng26\n(S'Variable_Type'\n(I2\nttRp6185\nsS'Y:VBus130 - CVAZZI311'\np6186\ng26\n(S'Variable_Type'\n(I2\nttRp6187\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np6188\ng26\n(S'Variable_Type'\n(I2\nttRp6189\nsS'Y:VBus46 - CTRAVO21'\np6190\ng26\n(S'Variable_Type'\n(I2\nttRp6191\nsS'Y:VBus113 - CSAMPO32'\np6192\ng26\n(S'Variable_Type'\n(I2\nttRp6193\nsS'Y:PMachine133 - CVAZZI314'\np6194\ng26\n(S'Variable_Type'\n(I2\nttRp6195\nsS'Y:PMachine65 - CCASAM33'\np6196\ng26\n(S'Variable_Type'\n(I2\nttRp6197\nsS'Y:VBus78 - CFURIA31'\np6198\ng26\n(S'Variable_Type'\n(I2\nttRp6199\nsS'Y:VBus26 - CGHISO21'\np6200\ng26\n(S'Variable_Type'\n(I2\nttRp6201\nsS'Y:VBus121 - CVAZZI32'\np6202\ng26\n(S'Variable_Type'\n(I2\nttRp6203\nsS'Y:PMachine97 - COCANA36'\np6204\ng26\n(S'Variable_Type'\n(I2\nttRp6205\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np6206\ng26\n(S'Variable_Type'\n(I2\nttRp6207\nsS'Y:PMachine83 - CILERO32'\np6208\ng26\n(S'Variable_Type'\n(I2\nttRp6209\nsS'Y:VBus83 - CILERO32'\np6210\ng26\n(S'Variable_Type'\n(I2\nttRp6211\nsS'Y:VBus66 - CCASAM34'\np6212\ng26\n(S'Variable_Type'\n(I2\nttRp6213\nsS'Y:PMachine1 - CBONIF11'\np6214\ng26\n(S'Variable_Type'\n(I2\nttRp6215\nsS'Y:VBus111 - CSTMAR31'\np6216\ng26\n(S'Variable_Type'\n(I2\nttRp6217\nsS'Y:VBus124 - CVAZZI35'\np6218\ng26\n(S'Variable_Type'\n(I2\nttRp6219\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np6220\ng26\n(S'Variable_Type'\n(I2\nttRp6221\nsS'Y:PMachine131 - CVAZZI312'\np6222\ng26\n(S'Variable_Type'\n(I2\nttRp6223\nsS'Y:VBus44 - CTAGLI21'\np6224\ng26\n(S'Variable_Type'\n(I2\nttRp6225\nsS'Y:VBus88 - CLUCCI33'\np6226\ng26\n(S'Variable_Type'\n(I2\nttRp6227\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np6228\ng26\n(S'Variable_Type'\n(I1\nttRp6229\nsS'Y:VBus38 - CSAGON21'\np6230\ng26\n(S'Variable_Type'\n(I2\nttRp6231\nsS'Y:PMachine81 - CGHISO32'\np6232\ng26\n(S'Variable_Type'\n(I2\nttRp6233\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np6234\ng26\n(S'Variable_Type'\n(I2\nttRp6235\nsS'Y:VBus110 - CSTLUC31'\np6236\ng26\n(S'Variable_Type'\n(I2\nttRp6237\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np6238\ng26\n(S'Variable_Type'\n(I2\nttRp6239\nssg630\n(dp6240\nsg632\n(dp6241\ng2509\n(S'Iteration'\np6242\ng5721\ntp6243\nsg2512\n(g638\nI0\ntp6244\nsg2514\n(g6242\ng5721\ntp6245\nsg2516\n(S''\nI0\ntp6246\nsg2518\n(S''\nI0\ntp6247\nsg2520\n(NI-2\ntp6248\nsg2522\n((lI-2\ntp6249\nssg650\nF1369994938.8169999\nsba(iOWContexts\nContext\np6250\n(dp6251\ng20\n(lp6252\ng1272\nasg23\n(dp6253\nS'Y:VBus48'\np6254\ng26\n(S'Variable_Type'\n(I2\nttRp6255\nsS'Y15:%RateA 18-44'\np6256\ng26\n(S'Variable_Type'\n(I2\nttRp6257\nsS'Y:VBus41'\np6258\ng26\n(S'Variable_Type'\n(I2\nttRp6259\nsS'Y:VBus40'\np6260\ng26\n(S'Variable_Type'\n(I2\nttRp6261\nsS'Y:VBus43'\np6262\ng26\n(S'Variable_Type'\n(I2\nttRp6263\nsS'Y:VBus42'\np6264\ng26\n(S'Variable_Type'\n(I2\nttRp6265\nsS'Y:VBus45'\np6266\ng26\n(S'Variable_Type'\n(I2\nttRp6267\nsS'Y:VBus44'\np6268\ng26\n(S'Variable_Type'\n(I2\nttRp6269\nsS'Y:VBus47'\np6270\ng26\n(S'Variable_Type'\n(I2\nttRp6271\nsS'Y:VBus46'\np6272\ng26\n(S'Variable_Type'\n(I2\nttRp6273\nsS'Y39:%RateA 32-45'\np6274\ng26\n(S'Variable_Type'\n(I2\nttRp6275\nsS'Y:Load 110'\np6276\ng26\n(S'Variable_Type'\n(I2\nttRp6277\nsS'Y:Load 115'\np6278\ng26\n(S'Variable_Type'\n(I2\nttRp6279\nsS'Y:PMachine134'\np6280\ng26\n(S'Variable_Type'\n(I1\nttRp6281\nsS'Y:VBus79'\np6282\ng26\n(S'Variable_Type'\n(I2\nttRp6283\nsS'Y13:%RateA 18-30'\np6284\ng26\n(S'Variable_Type'\n(I2\nttRp6285\nsS'TOT ENR'\np6286\ng26\n(S'Variable_Type'\n(I2\nttRp6287\nsS'Y34:%RateA 28-38'\np6288\ng26\n(S'Variable_Type'\n(I2\nttRp6289\nsS'Y:NbeTransit'\np6290\ng26\n(S'Variable_Type'\n(I1\nttRp6291\nsS'Y:VBus104'\np6292\ng26\n(S'Variable_Type'\n(I2\nttRp6293\nsS'Y20:%RateA 20-44'\np6294\ng26\n(S'Variable_Type'\n(I2\nttRp6295\nsS'DIESEL CASA'\np6296\ng26\n(S'Variable_Type'\n(I2\nttRp6297\nsS'Y38:%RateA 32-45'\np6298\ng26\n(S'Variable_Type'\n(I2\nttRp6299\nsS'Y:PMachine73'\np6300\ng26\n(S'Variable_Type'\n(I2\nttRp6301\nsS'Y:PMachine72'\np6302\ng26\n(S'Variable_Type'\n(I2\nttRp6303\nsS'Y49:%RateA 40-48'\np6304\ng26\n(S'Variable_Type'\n(I2\nttRp6305\nsS'Y:PMachine77'\np6306\ng26\n(S'Variable_Type'\n(I2\nttRp6307\nsS'Y:PMachine75'\np6308\ng26\n(S'Variable_Type'\n(I2\nttRp6309\nsS'Y:PMachine74'\np6310\ng26\n(S'Variable_Type'\n(I2\nttRp6311\nsS'Y:PMachine78'\np6312\ng26\n(S'Variable_Type'\n(I1\nttRp6313\nsS'Y:PMachine138'\np6314\ng26\n(S'Variable_Type'\n(I1\nttRp6315\nsS'Y28:%RateA 24-42'\np6316\ng26\n(S'Variable_Type'\n(I2\nttRp6317\nsS'Y:PProdTot'\np6318\ng26\n(S'Variable_Type'\n(I2\nttRp6319\nsS'Y:PMachine69'\np6320\ng26\n(S'Variable_Type'\n(I2\nttRp6321\nsS'Y:VBus38'\np6322\ng26\n(S'Variable_Type'\n(I2\nttRp6323\nsS'Y:VBus39'\np6324\ng26\n(S'Variable_Type'\n(I2\nttRp6325\nsS'Y62:%RateA 86-87'\np6326\ng26\n(S'Variable_Type'\n(I1\nttRp6327\nsS'Y:PMachine1'\np6328\ng26\n(S'Variable_Type'\n(I2\nttRp6329\nsS'Y:VBus35'\np6330\ng26\n(S'Variable_Type'\n(I2\nttRp6331\nsS'Y:VBus36'\np6332\ng26\n(S'Variable_Type'\n(I2\nttRp6333\nsS'Y:VBus37'\np6334\ng26\n(S'Variable_Type'\n(I2\nttRp6335\nsS'Iteration'\np6336\ng26\n(S'Variable_Type'\n(I2\nttRp6337\nsS'Y:VBus31'\np6338\ng26\n(S'Variable_Type'\n(I2\nttRp6339\nsS'Y:VBus32'\np6340\ng26\n(S'Variable_Type'\n(I2\nttRp6341\nsS'Y:VBus33'\np6342\ng26\n(S'Variable_Type'\n(I2\nttRp6343\nsS'Y53:%RateA 57-58'\np6344\ng26\n(S'Variable_Type'\n(I1\nttRp6345\nsS'Y14:%RateA 18-31'\np6346\ng26\n(S'Variable_Type'\n(I2\nttRp6347\nsS'Y48:%RateA 39-46'\np6348\ng26\n(S'Variable_Type'\n(I2\nttRp6349\nsS'Y60:%RateA 82-83'\np6350\ng26\n(S'Variable_Type'\n(I1\nttRp6351\nsS'Y:PMachine87'\np6352\ng26\n(S'Variable_Type'\n(I2\nttRp6353\nsS'Y:VBus121'\np6354\ng26\n(S'Variable_Type'\n(I2\nttRp6355\nsS'Y:VBus120'\np6356\ng26\n(S'Variable_Type'\n(I2\nttRp6357\nsS'Y:VBus123'\np6358\ng26\n(S'Variable_Type'\n(I2\nttRp6359\nsS'Y:VBus122'\np6360\ng26\n(S'Variable_Type'\n(I2\nttRp6361\nsS'Y:VBus125'\np6362\ng26\n(S'Variable_Type'\n(I2\nttRp6363\nsS'Y:VBus124'\np6364\ng26\n(S'Variable_Type'\n(I2\nttRp6365\nsS'Y:VBus127'\np6366\ng26\n(S'Variable_Type'\n(I2\nttRp6367\nsS'Y:VBus126'\np6368\ng26\n(S'Variable_Type'\n(I2\nttRp6369\nsS'Y:VBus129'\np6370\ng26\n(S'Variable_Type'\n(I2\nttRp6371\nsS'Y:PMachine47'\np6372\ng26\n(S'Variable_Type'\n(I2\nttRp6373\nsS'Y37:%RateA 32-34'\np6374\ng26\n(S'Variable_Type'\n(I2\nttRp6375\nsS'Y43:%RateA 35-37'\np6376\ng26\n(S'Variable_Type'\n(I2\nttRp6377\nsS'Y:PMachine42'\np6378\ng26\n(S'Variable_Type'\n(I2\nttRp6379\nsS'Y0:%RateA 11-28'\np6380\ng26\n(S'Variable_Type'\n(I2\nttRp6381\nsS'Y:VBus67'\np6382\ng26\n(S'Variable_Type'\n(I2\nttRp6383\nsS'Y:Load 37'\np6384\ng26\n(S'Variable_Type'\n(I2\nttRp6385\nsS'Y65:%RateA 104-105'\np6386\ng26\n(S'Variable_Type'\n(I1\nttRp6387\nsS'Y40:%RateA 32-47'\np6388\ng26\n(S'Variable_Type'\n(I2\nttRp6389\nsS'Y:VBus128'\np6390\ng26\n(S'Variable_Type'\n(I2\nttRp6391\nsS'Y6:%RateA 14-15'\np6392\ng26\n(S'Variable_Type'\n(I1\nttRp6393\nsS'Y:VBus1'\np6394\ng26\n(S'Variable_Type'\n(I2\nttRp6395\nsS'Y44:%RateA 35-39'\np6396\ng26\n(S'Variable_Type'\n(I2\nttRp6397\nsS'Y:PMachine88'\np6398\ng26\n(S'Variable_Type'\n(I1\nttRp6399\nsS'Y42:%RateA 34-36'\np6400\ng26\n(S'Variable_Type'\n(I2\nttRp6401\nsS'Y57:%RateA 76-77'\np6402\ng26\n(S'Variable_Type'\n(I1\nttRp6403\nsS'Y:PMachine89'\np6404\ng26\n(S'Variable_Type'\n(I1\nttRp6405\nsS'Y:VBus77'\np6406\ng26\n(S'Variable_Type'\n(I2\nttRp6407\nsS'Y:VBus29'\np6408\ng26\n(S'Variable_Type'\n(I2\nttRp6409\nsS'Y:VBus28'\np6410\ng26\n(S'Variable_Type'\n(I2\nttRp6411\nsS'Y:VBus27'\np6412\ng26\n(S'Variable_Type'\n(I2\nttRp6413\nsS'Y:VBus26'\np6414\ng26\n(S'Variable_Type'\n(I2\nttRp6415\nsS'Y:VBus25'\np6416\ng26\n(S'Variable_Type'\n(I2\nttRp6417\nsS'Y:VBus24'\np6418\ng26\n(S'Variable_Type'\n(I2\nttRp6419\nsS'Y:VBus23'\np6420\ng26\n(S'Variable_Type'\n(I2\nttRp6421\nsS'Y:VBus22'\np6422\ng26\n(S'Variable_Type'\n(I2\nttRp6423\nsS'Y:VBus21'\np6424\ng26\n(S'Variable_Type'\n(I2\nttRp6425\nsS'Y:VBus20'\np6426\ng26\n(S'Variable_Type'\n(I2\nttRp6427\nsS'Y:VBus85'\np6428\ng26\n(S'Variable_Type'\n(I2\nttRp6429\nsS'Y66:%RateA 106-107'\np6430\ng26\n(S'Variable_Type'\n(I1\nttRp6431\nsS'Y:VBus84'\np6432\ng26\n(S'Variable_Type'\n(I2\nttRp6433\nsS'Y52:%RateA 55-56'\np6434\ng26\n(S'Variable_Type'\n(I1\nttRp6435\nsS'Y2:%RateA 12-24'\np6436\ng26\n(S'Variable_Type'\n(I2\nttRp6437\nsS'Y:VBus112'\np6438\ng26\n(S'Variable_Type'\n(I2\nttRp6439\nsS'Y:VBus132'\np6440\ng26\n(S'Variable_Type'\n(I2\nttRp6441\nsS'Y:PMachine58'\np6442\ng26\n(S'Variable_Type'\n(I2\nttRp6443\nsS'Y:VBus130'\np6444\ng26\n(S'Variable_Type'\n(I2\nttRp6445\nsS'Y:VBus131'\np6446\ng26\n(S'Variable_Type'\n(I2\nttRp6447\nsS'Y:VBus136'\np6448\ng26\n(S'Variable_Type'\n(I2\nttRp6449\nsS'Y:VBus137'\np6450\ng26\n(S'Variable_Type'\n(I2\nttRp6451\nsS'Y:VBus134'\np6452\ng26\n(S'Variable_Type'\n(I2\nttRp6453\nsS'Y:VBus135'\np6454\ng26\n(S'Variable_Type'\n(I2\nttRp6455\nsS'Y:VBus81'\np6456\ng26\n(S'Variable_Type'\n(I2\nttRp6457\nsS'Y:PMachine53'\np6458\ng26\n(S'Variable_Type'\n(I2\nttRp6459\nsS'Y:VBus139'\np6460\ng26\n(S'Variable_Type'\n(I2\nttRp6461\nsS'Y30:%RateA 25-29'\np6462\ng26\n(S'Variable_Type'\n(I2\nttRp6463\nsS'Y:VBus115'\np6464\ng26\n(S'Variable_Type'\n(I2\nttRp6465\nsS'Y:PMachine124'\np6466\ng26\n(S'Variable_Type'\n(I2\nttRp6467\nsS'Y:VBus83'\np6468\ng26\n(S'Variable_Type'\n(I2\nttRp6469\nsS'Y:PMachine125'\np6470\ng26\n(S'Variable_Type'\n(I2\nttRp6471\nsS'Y25:%RateA 23-41'\np6472\ng26\n(S'Variable_Type'\n(I2\nttRp6473\nsS'Y:%Losses'\np6474\ng26\n(S'Variable_Type'\n(I2\nttRp6475\nsS'Y:VBus12'\np6476\ng26\n(S'Variable_Type'\n(I2\nttRp6477\nsS'Y:VBus13'\np6478\ng26\n(S'Variable_Type'\n(I2\nttRp6479\nsS'Y50:%RateA 51-52'\np6480\ng26\n(S'Variable_Type'\n(I1\nttRp6481\nsS'Y:VBus11'\np6482\ng26\n(S'Variable_Type'\n(I2\nttRp6483\nsS'Y:VBus16'\np6484\ng26\n(S'Variable_Type'\n(I2\nttRp6485\nsS'Y:VBus17'\np6486\ng26\n(S'Variable_Type'\n(I2\nttRp6487\nsS'Y:VBus14'\np6488\ng26\n(S'Variable_Type'\n(I2\nttRp6489\nsS'Y:VBus15'\np6490\ng26\n(S'Variable_Type'\n(I2\nttRp6491\nsS'Y:VBus113'\np6492\ng26\n(S'Variable_Type'\n(I2\nttRp6493\nsS'Y:PMachine120'\np6494\ng26\n(S'Variable_Type'\n(I2\nttRp6495\nsS'Y:VBus18'\np6496\ng26\n(S'Variable_Type'\n(I2\nttRp6497\nsS'Y:VBus19'\np6498\ng26\n(S'Variable_Type'\n(I2\nttRp6499\nsS'Y4:%RateA 13-25'\np6500\ng26\n(S'Variable_Type'\n(I2\nttRp6501\nsS'DIESEL VAZZIO'\np6502\ng26\n(S'Variable_Type'\n(I2\nttRp6503\nsS'Y35:%RateA 28-47'\np6504\ng26\n(S'Variable_Type'\n(I2\nttRp6505\nsS'Y:PMachine122'\np6506\ng26\n(S'Variable_Type'\n(I2\nttRp6507\nsS'Y16:%RateA 19-21'\np6508\ng26\n(S'Variable_Type'\n(I2\nttRp6509\nsS'Y:VBus92'\np6510\ng26\n(S'Variable_Type'\n(I2\nttRp6511\nsS'Y7:%RateA 14-35'\np6512\ng26\n(S'Variable_Type'\n(I2\nttRp6513\nsS'Y:VBus90'\np6514\ng26\n(S'Variable_Type'\n(I2\nttRp6515\nsS'Y:VBus96'\np6516\ng26\n(S'Variable_Type'\n(I2\nttRp6517\nsS'Y:VBus97'\np6518\ng26\n(S'Variable_Type'\n(I2\nttRp6519\nsS'Y:VBus94'\np6520\ng26\n(S'Variable_Type'\n(I2\nttRp6521\nsS'Y:VBus95'\np6522\ng26\n(S'Variable_Type'\n(I2\nttRp6523\nsS'Y:VBus107'\np6524\ng26\n(S'Variable_Type'\n(I2\nttRp6525\nsS'Y:VBus106'\np6526\ng26\n(S'Variable_Type'\n(I2\nttRp6527\nsS'Y:VBus105'\np6528\ng26\n(S'Variable_Type'\n(I2\nttRp6529\nsS'Y22:%RateA 22-23'\np6530\ng26\n(S'Variable_Type'\n(I1\nttRp6531\nsS'Y:VBus103'\np6532\ng26\n(S'Variable_Type'\n(I2\nttRp6533\nsS'Y:VBus102'\np6534\ng26\n(S'Variable_Type'\n(I2\nttRp6535\nsS'Y:VBus101'\np6536\ng26\n(S'Variable_Type'\n(I2\nttRp6537\nsS'Y:VBus100'\np6538\ng26\n(S'Variable_Type'\n(I2\nttRp6539\nsS'Y:Load 55'\np6540\ng26\n(S'Variable_Type'\n(I2\nttRp6541\nsS'Y:Load 57'\np6542\ng26\n(S'Variable_Type'\n(I2\nttRp6543\nsS'Y:Load 51'\np6544\ng26\n(S'Variable_Type'\n(I2\nttRp6545\nsS'Y:VBus54'\np6546\ng26\n(S'Variable_Type'\n(I2\nttRp6547\nsS'Y:VBus109'\np6548\ng26\n(S'Variable_Type'\n(I2\nttRp6549\nsS'Y46:%RateA 36-48'\np6550\ng26\n(S'Variable_Type'\n(I2\nttRp6551\nsS'Y:Load 80'\np6552\ng26\n(S'Variable_Type'\n(I2\nttRp6553\nsS'Y:PMachine133'\np6554\ng26\n(S'Variable_Type'\n(I2\nttRp6555\nsS'Y:VBus55'\np6556\ng26\n(S'Variable_Type'\n(I2\nttRp6557\nsS'Y:PMachine29'\np6558\ng26\n(S'Variable_Type'\n(I1\nttRp6559\nsS'Y24:%RateA 23-32'\np6560\ng26\n(S'Variable_Type'\n(I2\nttRp6561\nsS'X:lineOff#'\np6562\ng26\n(S'Variable_Type'\n(I2\nttRp6563\nsS'Y:Max%A'\np6564\ng26\n(S'Variable_Type'\n(I2\nttRp6565\nsS'Y:NbeTransit_0.9-1'\np6566\ng26\n(S'Variable_Type'\n(I1\nttRp6567\nsS'XProdEolienne%Pnom'\np6568\ng26\n(S'Variable_Type'\n(I2\nttRp6569\nsS'Y33:%RateA 27-33'\np6570\ng26\n(S'Variable_Type'\n(I2\nttRp6571\nsS'Y59:%RateA 80-81'\np6572\ng26\n(S'Variable_Type'\n(I1\nttRp6573\nsS'Y:VBus65'\np6574\ng26\n(S'Variable_Type'\n(I2\nttRp6575\nsS'TAC VAZZIO'\np6576\ng26\n(S'Variable_Type'\n(I2\nttRp6577\nsS'Y:VBus118'\np6578\ng26\n(S'Variable_Type'\n(I2\nttRp6579\nsS'Y:VBus119'\np6580\ng26\n(S'Variable_Type'\n(I2\nttRp6581\nsS'Y:PMachine117'\np6582\ng26\n(S'Variable_Type'\n(I2\nttRp6583\nsS'Y:PMachine116'\np6584\ng26\n(S'Variable_Type'\n(I2\nttRp6585\nsS'Y:PMachine111'\np6586\ng26\n(S'Variable_Type'\n(I2\nttRp6587\nsS'Y:VBus88'\np6588\ng26\n(S'Variable_Type'\n(I2\nttRp6589\nsS'Y:PMachine113'\np6590\ng26\n(S'Variable_Type'\n(I2\nttRp6591\nsS'Y:VBus93'\np6592\ng26\n(S'Variable_Type'\n(I2\nttRp6593\nsS'Y:VBus110'\np6594\ng26\n(S'Variable_Type'\n(I2\nttRp6595\nsS'Y:VBus111'\np6596\ng26\n(S'Variable_Type'\n(I2\nttRp6597\nsS'Y:VBus87'\np6598\ng26\n(S'Variable_Type'\n(I2\nttRp6599\nsS'Y12:%RateA 18-30'\np6600\ng26\n(S'Variable_Type'\n(I2\nttRp6601\nsS'Y:VBus114'\np6602\ng26\n(S'Variable_Type'\n(I2\nttRp6603\nsS'Y:VBus80'\np6604\ng26\n(S'Variable_Type'\n(I2\nttRp6605\nsS'Y:VBus116'\np6606\ng26\n(S'Variable_Type'\n(I2\nttRp6607\nsS'Y:VBus82'\np6608\ng26\n(S'Variable_Type'\n(I2\nttRp6609\nsS'Y61:%RateA 84-85'\np6610\ng26\n(S'Variable_Type'\n(I1\nttRp6611\nsS'Y31:%RateA 26-41'\np6612\ng26\n(S'Variable_Type'\n(I2\nttRp6613\nsS'Y:PMachine131'\np6614\ng26\n(S'Variable_Type'\n(I2\nttRp6615\nsS'Y47:%RateA 38-43'\np6616\ng26\n(S'Variable_Type'\n(I2\nttRp6617\nsS'Y:Load 42'\np6618\ng26\n(S'Variable_Type'\n(I2\nttRp6619\nsS'Y:PMachine85'\np6620\ng26\n(S'Variable_Type'\n(I2\nttRp6621\nsS'Y32:%RateA 26-46'\np6622\ng26\n(S'Variable_Type'\n(I2\nttRp6623\nsS'Y:PMachine132'\np6624\ng26\n(S'Variable_Type'\n(I2\nttRp6625\nsS'Y18:%RateA 19-27'\np6626\ng26\n(S'Variable_Type'\n(I2\nttRp6627\nsS'Y:VBus86'\np6628\ng26\n(S'Variable_Type'\n(I2\nttRp6629\nsS'Y63:%RateA 95-96'\np6630\ng26\n(S'Variable_Type'\n(I1\nttRp6631\nsS'Y17:%RateA 19-22'\np6632\ng26\n(S'Variable_Type'\n(I2\nttRp6633\nsS'Y41:%RateA 32-48'\np6634\ng26\n(S'Variable_Type'\n(I2\nttRp6635\nsS'Y:PMachine30'\np6636\ng26\n(S'Variable_Type'\n(I2\nttRp6637\nsS'Y:VBus117'\np6638\ng26\n(S'Variable_Type'\n(I2\nttRp6639\nsS'Y56:%RateA 72-73'\np6640\ng26\n(S'Variable_Type'\n(I1\nttRp6641\nsS'Y68:%RateA 112-113'\np6642\ng26\n(S'Variable_Type'\n(I1\nttRp6643\nsS'Y:PMachine130'\np6644\ng26\n(S'Variable_Type'\n(I2\nttRp6645\nsS'Y27:%RateA 24-33'\np6646\ng26\n(S'Variable_Type'\n(I2\nttRp6647\nsS'Y:PMachine106'\np6648\ng26\n(S'Variable_Type'\n(I2\nttRp6649\nsS'Y:PMachine107'\np6650\ng26\n(S'Variable_Type'\n(I2\nttRp6651\nsS'Y:PMachine104'\np6652\ng26\n(S'Variable_Type'\n(I2\nttRp6653\nsS'Y:VBus73'\np6654\ng26\n(S'Variable_Type'\n(I2\nttRp6655\nsS'Y:VBus74'\np6656\ng26\n(S'Variable_Type'\n(I2\nttRp6657\nsS'Y:VBus75'\np6658\ng26\n(S'Variable_Type'\n(I2\nttRp6659\nsS'Y:VBus76'\np6660\ng26\n(S'Variable_Type'\n(I2\nttRp6661\nsS'Y:PMachine101'\np6662\ng26\n(S'Variable_Type'\n(I2\nttRp6663\nsS'Y:VBus78'\np6664\ng26\n(S'Variable_Type'\n(I2\nttRp6665\nsS'Y:Load 59'\np6666\ng26\n(S'Variable_Type'\n(I2\nttRp6667\nsS'Y:PMachine115'\np6668\ng26\n(S'Variable_Type'\n(I2\nttRp6669\nsS'Y51:%RateA 53-54'\np6670\ng26\n(S'Variable_Type'\n(I1\nttRp6671\nsS'Y67:%RateA 108-109'\np6672\ng26\n(S'Variable_Type'\n(I1\nttRp6673\nsS'Y:PMachine109'\np6674\ng26\n(S'Variable_Type'\n(I2\nttRp6675\nsS'Y:PMachine83'\np6676\ng26\n(S'Variable_Type'\n(I2\nttRp6677\nsS'Y:PMachine81'\np6678\ng26\n(S'Variable_Type'\n(I2\nttRp6679\nsS'Y:PMachine86'\np6680\ng26\n(S'Variable_Type'\n(I2\nttRp6681\nsS'Y:Load 76'\np6682\ng26\n(S'Variable_Type'\n(I2\nttRp6683\nsS'Y:Load 74'\np6684\ng26\n(S'Variable_Type'\n(I2\nttRp6685\nsS'Y45:%RateA 36-37'\np6686\ng26\n(S'Variable_Type'\n(I2\nttRp6687\nsS'Y58:%RateA 78-79'\np6688\ng26\n(S'Variable_Type'\n(I1\nttRp6689\nsS'Y:Load 78'\np6690\ng26\n(S'Variable_Type'\n(I2\nttRp6691\nsS'X:Load(pu)'\np6692\ng26\n(S'Variable_Type'\n(I2\nttRp6693\nsS'Y5:%RateA 13-29'\np6694\ng26\n(S'Variable_Type'\n(I2\nttRp6695\nsS'Y:PMachine118'\np6696\ng26\n(S'Variable_Type'\n(I2\nttRp6697\nsS'Y1:%RateA 11-47'\np6698\ng26\n(S'Variable_Type'\n(I2\nttRp6699\nsS'Y:VBus60'\np6700\ng26\n(S'Variable_Type'\n(I2\nttRp6701\nsS'Y:PMachine137'\np6702\ng26\n(S'Variable_Type'\n(I1\nttRp6703\nsS'Y29:%RateA 25-29'\np6704\ng26\n(S'Variable_Type'\n(I2\nttRp6705\nsS'Y:VBus66'\np6706\ng26\n(S'Variable_Type'\n(I2\nttRp6707\nsS'Y36:%RateA 29-30'\np6708\ng26\n(S'Variable_Type'\n(I1\nttRp6709\nsS'Y54:%RateA 59-60'\np6710\ng26\n(S'Variable_Type'\n(I1\nttRp6711\nsS'Y:Load 90'\np6712\ng26\n(S'Variable_Type'\n(I2\nttRp6713\nsS'Y9:%RateA 16-32'\np6714\ng26\n(S'Variable_Type'\n(I2\nttRp6715\nsS'INTERCOS'\np6716\ng26\n(S'Variable_Type'\n(I2\nttRp6717\nsS'Y:Load 95'\np6718\ng26\n(S'Variable_Type'\n(I2\nttRp6719\nsS'Y:VBus63'\np6720\ng26\n(S'Variable_Type'\n(I2\nttRp6721\nsS'Y:VBus62'\np6722\ng26\n(S'Variable_Type'\n(I2\nttRp6723\nsS'Y:VBus61'\np6724\ng26\n(S'Variable_Type'\n(I2\nttRp6725\nsS'Y55:%RateA 61-62'\np6726\ng26\n(S'Variable_Type'\n(I1\nttRp6727\nsS'Y8:%RateA 15-35'\np6728\ng26\n(S'Variable_Type'\n(I2\nttRp6729\nsS'Y:PMachine136'\np6730\ng26\n(S'Variable_Type'\n(I1\nttRp6731\nsS'Y:PMachine135'\np6732\ng26\n(S'Variable_Type'\n(I1\nttRp6733\nsS'Y:VBus64'\np6734\ng26\n(S'Variable_Type'\n(I2\nttRp6735\nsS'Y:PMachine94'\np6736\ng26\n(S'Variable_Type'\n(I2\nttRp6737\nsS'Y:VBus69'\np6738\ng26\n(S'Variable_Type'\n(I2\nttRp6739\nsS'Y:VBus108'\np6740\ng26\n(S'Variable_Type'\n(I2\nttRp6741\nsS'Y:PMachine139'\np6742\ng26\n(S'Variable_Type'\n(I1\nttRp6743\nsS'Y:PMachine97'\np6744\ng26\n(S'Variable_Type'\n(I2\nttRp6745\nsS'Y:PMachine92'\np6746\ng26\n(S'Variable_Type'\n(I2\nttRp6747\nsS'Y:VBus68'\np6748\ng26\n(S'Variable_Type'\n(I2\nttRp6749\nsS'Y:Load 61'\np6750\ng26\n(S'Variable_Type'\n(I2\nttRp6751\nsS'Y:VBus89'\np6752\ng26\n(S'Variable_Type'\n(I2\nttRp6753\nsS'Y21:%RateA 21-43'\np6754\ng26\n(S'Variable_Type'\n(I2\nttRp6755\nsS'Y:PMachine90'\np6756\ng26\n(S'Variable_Type'\n(I2\nttRp6757\nsS'Y:PMachine14'\np6758\ng26\n(S'Variable_Type'\n(I2\nttRp6759\nsS'Y:PMachine63'\np6760\ng26\n(S'Variable_Type'\n(I2\nttRp6761\nsS'Y:PMachine93'\np6762\ng26\n(S'Variable_Type'\n(I2\nttRp6763\nsS'Y:PConsoTot'\np6764\ng26\n(S'Variable_Type'\n(I2\nttRp6765\nsS'Y23:%RateA 22-31'\np6766\ng26\n(S'Variable_Type'\n(I2\nttRp6767\nsS'Y19:%RateA 20-26'\np6768\ng26\n(S'Variable_Type'\n(I2\nttRp6769\nsS'Y:PMachine18'\np6770\ng26\n(S'Variable_Type'\n(I2\nttRp6771\nsS'Y:VBus34'\np6772\ng26\n(S'Variable_Type'\n(I2\nttRp6773\nsS'Y:NbeTension'\np6774\ng26\n(S'Variable_Type'\n(I2\nttRp6775\nsS'TOT PV'\np6776\ng26\n(S'Variable_Type'\n(I2\nttRp6777\nsS'Y:PMachine128'\np6778\ng26\n(S'Variable_Type'\n(I2\nttRp6779\nsS'Y:PMachine129'\np6780\ng26\n(S'Variable_Type'\n(I2\nttRp6781\nsS'Y:VBus133'\np6782\ng26\n(S'Variable_Type'\n(I2\nttRp6783\nsS'Y:Load 82'\np6784\ng26\n(S'Variable_Type'\n(I2\nttRp6785\nsS'Y:VBus30'\np6786\ng26\n(S'Variable_Type'\n(I2\nttRp6787\nsS'Y:PMachine126'\np6788\ng26\n(S'Variable_Type'\n(I2\nttRp6789\nsS'Y:PMachine127'\np6790\ng26\n(S'Variable_Type'\n(I2\nttRp6791\nsS'Y:Load 86'\np6792\ng26\n(S'Variable_Type'\n(I2\nttRp6793\nsS'Y:PMachine121'\np6794\ng26\n(S'Variable_Type'\n(I2\nttRp6795\nsS'Y:Load 84'\np6796\ng26\n(S'Variable_Type'\n(I2\nttRp6797\nsS'Y:PMachine123'\np6798\ng26\n(S'Variable_Type'\n(I2\nttRp6799\nsS'Y:Load 102'\np6800\ng26\n(S'Variable_Type'\n(I2\nttRp6801\nsS'Y:VBus57'\np6802\ng26\n(S'Variable_Type'\n(I2\nttRp6803\nsS'Y:Load 100'\np6804\ng26\n(S'Variable_Type'\n(I2\nttRp6805\nsS'Y:Load 101'\np6806\ng26\n(S'Variable_Type'\n(I2\nttRp6807\nsS'Y:VBus52'\np6808\ng26\n(S'Variable_Type'\n(I2\nttRp6809\nsS'Y:VBus53'\np6810\ng26\n(S'Variable_Type'\n(I2\nttRp6811\nsS'Y:Load 104'\np6812\ng26\n(S'Variable_Type'\n(I2\nttRp6813\nsS'Y:VBus51'\np6814\ng26\n(S'Variable_Type'\n(I2\nttRp6815\nsS'Y:Load 108'\np6816\ng26\n(S'Variable_Type'\n(I2\nttRp6817\nsS'Y64:%RateA 102-103'\np6818\ng26\n(S'Variable_Type'\n(I1\nttRp6819\nsS'Y:PMachine112'\np6820\ng26\n(S'Variable_Type'\n(I2\nttRp6821\nsS'Y:VBus58'\np6822\ng26\n(S'Variable_Type'\n(I2\nttRp6823\nsS'Y:VBus59'\np6824\ng26\n(S'Variable_Type'\n(I2\nttRp6825\nsS'Y:Load 53'\np6826\ng26\n(S'Variable_Type'\n(I2\nttRp6827\nsS'Y10:%RateA 16-47'\np6828\ng26\n(S'Variable_Type'\n(I2\nttRp6829\nsS'Y:PMachine54'\np6830\ng26\n(S'Variable_Type'\n(I2\nttRp6831\nsS'Y:VBus56'\np6832\ng26\n(S'Variable_Type'\n(I2\nttRp6833\nsS'TOT WIND'\np6834\ng26\n(S'Variable_Type'\n(I2\nttRp6835\nsS'Y3:%RateA 12-24'\np6836\ng26\n(S'Variable_Type'\n(I2\nttRp6837\nsS'Y11:%RateA 17-27'\np6838\ng26\n(S'Variable_Type'\n(I2\nttRp6839\nsS'Y:PMachine114'\np6840\ng26\n(S'Variable_Type'\n(I2\nttRp6841\nsS'Y:VBus72'\np6842\ng26\n(S'Variable_Type'\n(I2\nttRp6843\nsS'Y:PMachine60'\np6844\ng26\n(S'Variable_Type'\n(I2\nttRp6845\nsS'Y:PMachine61'\np6846\ng26\n(S'Variable_Type'\n(I1\nttRp6847\nsS'Y:PMachine62'\np6848\ng26\n(S'Variable_Type'\n(I2\nttRp6849\nsS'Y:PMachine105'\np6850\ng26\n(S'Variable_Type'\n(I2\nttRp6851\nsS'Y:PMachine64'\np6852\ng26\n(S'Variable_Type'\n(I2\nttRp6853\nsS'Y:PMachine65'\np6854\ng26\n(S'Variable_Type'\n(I2\nttRp6855\nsS'Y:PMachine66'\np6856\ng26\n(S'Variable_Type'\n(I2\nttRp6857\nsS'Y:PMachine67'\np6858\ng26\n(S'Variable_Type'\n(I2\nttRp6859\nsS'Y:PMachine68'\np6860\ng26\n(S'Variable_Type'\n(I2\nttRp6861\nsS'Y:PMachine102'\np6862\ng26\n(S'Variable_Type'\n(I2\nttRp6863\nsS'X:ProdPV%Pnom'\np6864\ng26\n(S'Variable_Type'\n(I2\nttRp6865\nsS'Y:VBus138'\np6866\ng26\n(S'Variable_Type'\n(I2\nttRp6867\nsS'Y26:%RateA 24-25'\np6868\ng26\n(S'Variable_Type'\n(I1\nttRp6869\nssg630\n(dp6870\nsg632\n(dp6871\ng2509\n(S'Y4:%RateA 13-25'\np6872\ng6501\ntp6873\nsg2512\n(g638\nI0\ntp6874\nsg2514\n(g6872\ng6501\ntp6875\nsg2516\n(S''\nI0\ntp6876\nsg2518\n(S''\nI0\ntp6877\nsg2520\n(NI-2\ntp6878\nsg2522\n((lI-2\ntp6879\nssg650\nF1369932170.793\nsba(iOWContexts\nContext\np6880\n(dp6881\ng20\n(lp6882\ng1272\nasg23\n(dp6883\nS'Y:VBus48'\np6884\ng26\n(S'Variable_Type'\n(I2\nttRp6885\nsS'Y15:%RateA 18-44'\np6886\ng26\n(S'Variable_Type'\n(I2\nttRp6887\nsS'Y:VBus41'\np6888\ng26\n(S'Variable_Type'\n(I2\nttRp6889\nsS'Y:VBus40'\np6890\ng26\n(S'Variable_Type'\n(I2\nttRp6891\nsS'Y:VBus43'\np6892\ng26\n(S'Variable_Type'\n(I2\nttRp6893\nsS'Y:VBus42'\np6894\ng26\n(S'Variable_Type'\n(I2\nttRp6895\nsS'Y:VBus45'\np6896\ng26\n(S'Variable_Type'\n(I2\nttRp6897\nsS'Y:VBus44'\np6898\ng26\n(S'Variable_Type'\n(I2\nttRp6899\nsS'Y:VBus47'\np6900\ng26\n(S'Variable_Type'\n(I2\nttRp6901\nsS'Y:VBus46'\np6902\ng26\n(S'Variable_Type'\n(I2\nttRp6903\nsS'Y39:%RateA 32-45'\np6904\ng26\n(S'Variable_Type'\n(I2\nttRp6905\nsS'Y:Load 110'\np6906\ng26\n(S'Variable_Type'\n(I2\nttRp6907\nsS'Y:Load 115'\np6908\ng26\n(S'Variable_Type'\n(I2\nttRp6909\nsS'Y:PMachine134'\np6910\ng26\n(S'Variable_Type'\n(I1\nttRp6911\nsS'Y:VBus79'\np6912\ng26\n(S'Variable_Type'\n(I2\nttRp6913\nsS'Y13:%RateA 18-30'\np6914\ng26\n(S'Variable_Type'\n(I2\nttRp6915\nsS'Y34:%RateA 28-38'\np6916\ng26\n(S'Variable_Type'\n(I2\nttRp6917\nsS'Y:NbeTransit'\np6918\ng26\n(S'Variable_Type'\n(I1\nttRp6919\nsS'Y:VBus104'\np6920\ng26\n(S'Variable_Type'\n(I2\nttRp6921\nsS'Y20:%RateA 20-44'\np6922\ng26\n(S'Variable_Type'\n(I2\nttRp6923\nsS'DIESEL CASA'\np6924\ng26\n(S'Variable_Type'\n(I2\nttRp6925\nsS'Y38:%RateA 32-45'\np6926\ng26\n(S'Variable_Type'\n(I2\nttRp6927\nsS'Y:PMachine73'\np6928\ng26\n(S'Variable_Type'\n(I2\nttRp6929\nsS'Y:PMachine72'\np6930\ng26\n(S'Variable_Type'\n(I2\nttRp6931\nsS'Y49:%RateA 40-48'\np6932\ng26\n(S'Variable_Type'\n(I2\nttRp6933\nsS'Y:PMachine77'\np6934\ng26\n(S'Variable_Type'\n(I2\nttRp6935\nsS'Y:PMachine75'\np6936\ng26\n(S'Variable_Type'\n(I2\nttRp6937\nsS'Y:PMachine74'\np6938\ng26\n(S'Variable_Type'\n(I2\nttRp6939\nsS'Y:PMachine78'\np6940\ng26\n(S'Variable_Type'\n(I1\nttRp6941\nsS'Y:PMachine138'\np6942\ng26\n(S'Variable_Type'\n(I1\nttRp6943\nsS'Y28:%RateA 24-42'\np6944\ng26\n(S'Variable_Type'\n(I2\nttRp6945\nsS'Y:PProdTot'\np6946\ng26\n(S'Variable_Type'\n(I2\nttRp6947\nsS'Y:PMachine69'\np6948\ng26\n(S'Variable_Type'\n(I2\nttRp6949\nsS'Y:VBus38'\np6950\ng26\n(S'Variable_Type'\n(I2\nttRp6951\nsS'Y:VBus39'\np6952\ng26\n(S'Variable_Type'\n(I2\nttRp6953\nsS'Y62:%RateA 86-87'\np6954\ng26\n(S'Variable_Type'\n(I1\nttRp6955\nsS'Y:PMachine1'\np6956\ng26\n(S'Variable_Type'\n(I2\nttRp6957\nsS'Y:VBus35'\np6958\ng26\n(S'Variable_Type'\n(I2\nttRp6959\nsS'Y:VBus36'\np6960\ng26\n(S'Variable_Type'\n(I2\nttRp6961\nsS'Y:VBus37'\np6962\ng26\n(S'Variable_Type'\n(I2\nttRp6963\nsS'Iteration'\np6964\ng26\n(S'Variable_Type'\n(I2\nttRp6965\nsS'Y:VBus31'\np6966\ng26\n(S'Variable_Type'\n(I2\nttRp6967\nsS'Y:VBus32'\np6968\ng26\n(S'Variable_Type'\n(I2\nttRp6969\nsS'Y:VBus33'\np6970\ng26\n(S'Variable_Type'\n(I2\nttRp6971\nsS'Y53:%RateA 57-58'\np6972\ng26\n(S'Variable_Type'\n(I1\nttRp6973\nsS'Y14:%RateA 18-31'\np6974\ng26\n(S'Variable_Type'\n(I2\nttRp6975\nsS'Y48:%RateA 39-46'\np6976\ng26\n(S'Variable_Type'\n(I2\nttRp6977\nsS'Y60:%RateA 82-83'\np6978\ng26\n(S'Variable_Type'\n(I1\nttRp6979\nsS'Y:PMachine87'\np6980\ng26\n(S'Variable_Type'\n(I2\nttRp6981\nsS'Y:VBus121'\np6982\ng26\n(S'Variable_Type'\n(I2\nttRp6983\nsS'Y:VBus120'\np6984\ng26\n(S'Variable_Type'\n(I2\nttRp6985\nsS'Y:VBus123'\np6986\ng26\n(S'Variable_Type'\n(I2\nttRp6987\nsS'Y:VBus122'\np6988\ng26\n(S'Variable_Type'\n(I2\nttRp6989\nsS'Y:VBus125'\np6990\ng26\n(S'Variable_Type'\n(I2\nttRp6991\nsS'Y:VBus124'\np6992\ng26\n(S'Variable_Type'\n(I2\nttRp6993\nsS'Y:VBus127'\np6994\ng26\n(S'Variable_Type'\n(I2\nttRp6995\nsS'Y:VBus126'\np6996\ng26\n(S'Variable_Type'\n(I2\nttRp6997\nsS'Y:VBus129'\np6998\ng26\n(S'Variable_Type'\n(I2\nttRp6999\nsS'Y:VBus128'\np7000\ng26\n(S'Variable_Type'\n(I2\nttRp7001\nsS'Y37:%RateA 32-34'\np7002\ng26\n(S'Variable_Type'\n(I2\nttRp7003\nsS'Y43:%RateA 35-37'\np7004\ng26\n(S'Variable_Type'\n(I2\nttRp7005\nsS'Y:PMachine42'\np7006\ng26\n(S'Variable_Type'\n(I2\nttRp7007\nsS'Y0:%RateA 11-28'\np7008\ng26\n(S'Variable_Type'\n(I2\nttRp7009\nsS'Y:VBus67'\np7010\ng26\n(S'Variable_Type'\n(I2\nttRp7011\nsS'Y:Load 37'\np7012\ng26\n(S'Variable_Type'\n(I2\nttRp7013\nsS'Y65:%RateA 104-105'\np7014\ng26\n(S'Variable_Type'\n(I1\nttRp7015\nsS'Y40:%RateA 32-47'\np7016\ng26\n(S'Variable_Type'\n(I2\nttRp7017\nsS'Y:PMachine47'\np7018\ng26\n(S'Variable_Type'\n(I2\nttRp7019\nsS'Y6:%RateA 14-15'\np7020\ng26\n(S'Variable_Type'\n(I1\nttRp7021\nsS'Y:VBus1'\np7022\ng26\n(S'Variable_Type'\n(I2\nttRp7023\nsS'Y44:%RateA 35-39'\np7024\ng26\n(S'Variable_Type'\n(I2\nttRp7025\nsS'Y:PMachine88'\np7026\ng26\n(S'Variable_Type'\n(I1\nttRp7027\nsS'Y42:%RateA 34-36'\np7028\ng26\n(S'Variable_Type'\n(I2\nttRp7029\nsS'Y57:%RateA 76-77'\np7030\ng26\n(S'Variable_Type'\n(I1\nttRp7031\nsS'Y:PMachine89'\np7032\ng26\n(S'Variable_Type'\n(I1\nttRp7033\nsS'Y:VBus77'\np7034\ng26\n(S'Variable_Type'\n(I2\nttRp7035\nsS'Y:VBus29'\np7036\ng26\n(S'Variable_Type'\n(I2\nttRp7037\nsS'Y:VBus28'\np7038\ng26\n(S'Variable_Type'\n(I2\nttRp7039\nsS'Y:VBus27'\np7040\ng26\n(S'Variable_Type'\n(I2\nttRp7041\nsS'Y:VBus26'\np7042\ng26\n(S'Variable_Type'\n(I2\nttRp7043\nsS'Y:VBus25'\np7044\ng26\n(S'Variable_Type'\n(I2\nttRp7045\nsS'Y:VBus24'\np7046\ng26\n(S'Variable_Type'\n(I2\nttRp7047\nsS'Y:VBus23'\np7048\ng26\n(S'Variable_Type'\n(I2\nttRp7049\nsS'Y:VBus22'\np7050\ng26\n(S'Variable_Type'\n(I2\nttRp7051\nsS'Y:VBus21'\np7052\ng26\n(S'Variable_Type'\n(I2\nttRp7053\nsS'Y:VBus20'\np7054\ng26\n(S'Variable_Type'\n(I2\nttRp7055\nsS'Y:VBus85'\np7056\ng26\n(S'Variable_Type'\n(I2\nttRp7057\nsS'Y66:%RateA 106-107'\np7058\ng26\n(S'Variable_Type'\n(I1\nttRp7059\nsS'Y:VBus84'\np7060\ng26\n(S'Variable_Type'\n(I2\nttRp7061\nsS'Y52:%RateA 55-56'\np7062\ng26\n(S'Variable_Type'\n(I1\nttRp7063\nsS'Y2:%RateA 12-24'\np7064\ng26\n(S'Variable_Type'\n(I2\nttRp7065\nsS'Y:VBus112'\np7066\ng26\n(S'Variable_Type'\n(I2\nttRp7067\nsS'Y:VBus132'\np7068\ng26\n(S'Variable_Type'\n(I2\nttRp7069\nsS'Y:PMachine58'\np7070\ng26\n(S'Variable_Type'\n(I2\nttRp7071\nsS'Y:VBus130'\np7072\ng26\n(S'Variable_Type'\n(I2\nttRp7073\nsS'Y:VBus131'\np7074\ng26\n(S'Variable_Type'\n(I2\nttRp7075\nsS'Y:VBus136'\np7076\ng26\n(S'Variable_Type'\n(I2\nttRp7077\nsS'Y:VBus137'\np7078\ng26\n(S'Variable_Type'\n(I2\nttRp7079\nsS'Y:VBus134'\np7080\ng26\n(S'Variable_Type'\n(I2\nttRp7081\nsS'Y:VBus135'\np7082\ng26\n(S'Variable_Type'\n(I2\nttRp7083\nsS'Y:VBus81'\np7084\ng26\n(S'Variable_Type'\n(I2\nttRp7085\nsS'Y:PMachine53'\np7086\ng26\n(S'Variable_Type'\n(I2\nttRp7087\nsS'Y:VBus139'\np7088\ng26\n(S'Variable_Type'\n(I2\nttRp7089\nsS'Y30:%RateA 25-29'\np7090\ng26\n(S'Variable_Type'\n(I2\nttRp7091\nsS'Y:VBus115'\np7092\ng26\n(S'Variable_Type'\n(I2\nttRp7093\nsS'Y:PMachine124'\np7094\ng26\n(S'Variable_Type'\n(I2\nttRp7095\nsS'Y:VBus83'\np7096\ng26\n(S'Variable_Type'\n(I2\nttRp7097\nsS'Y:PMachine125'\np7098\ng26\n(S'Variable_Type'\n(I2\nttRp7099\nsS'Y25:%RateA 23-41'\np7100\ng26\n(S'Variable_Type'\n(I2\nttRp7101\nsS'Y:%Losses'\np7102\ng26\n(S'Variable_Type'\n(I2\nttRp7103\nsS'Y:VBus12'\np7104\ng26\n(S'Variable_Type'\n(I2\nttRp7105\nsS'Y:VBus13'\np7106\ng26\n(S'Variable_Type'\n(I2\nttRp7107\nsS'Y50:%RateA 51-52'\np7108\ng26\n(S'Variable_Type'\n(I1\nttRp7109\nsS'Y:VBus11'\np7110\ng26\n(S'Variable_Type'\n(I2\nttRp7111\nsS'Y:VBus16'\np7112\ng26\n(S'Variable_Type'\n(I2\nttRp7113\nsS'Y:VBus17'\np7114\ng26\n(S'Variable_Type'\n(I2\nttRp7115\nsS'Y:VBus14'\np7116\ng26\n(S'Variable_Type'\n(I2\nttRp7117\nsS'Y:VBus15'\np7118\ng26\n(S'Variable_Type'\n(I2\nttRp7119\nsS'Y:VBus113'\np7120\ng26\n(S'Variable_Type'\n(I2\nttRp7121\nsS'Y:PMachine120'\np7122\ng26\n(S'Variable_Type'\n(I2\nttRp7123\nsS'Y:VBus18'\np7124\ng26\n(S'Variable_Type'\n(I2\nttRp7125\nsS'Y:VBus19'\np7126\ng26\n(S'Variable_Type'\n(I2\nttRp7127\nsS'Y4:%RateA 13-25'\np7128\ng26\n(S'Variable_Type'\n(I2\nttRp7129\nsS'DIESEL VAZZIO'\np7130\ng26\n(S'Variable_Type'\n(I2\nttRp7131\nsS'Y35:%RateA 28-47'\np7132\ng26\n(S'Variable_Type'\n(I2\nttRp7133\nsS'Y:PMachine122'\np7134\ng26\n(S'Variable_Type'\n(I2\nttRp7135\nsS'Y16:%RateA 19-21'\np7136\ng26\n(S'Variable_Type'\n(I2\nttRp7137\nsS'Y:VBus92'\np7138\ng26\n(S'Variable_Type'\n(I2\nttRp7139\nsS'Y7:%RateA 14-35'\np7140\ng26\n(S'Variable_Type'\n(I2\nttRp7141\nsS'Y:VBus90'\np7142\ng26\n(S'Variable_Type'\n(I2\nttRp7143\nsS'Y:VBus96'\np7144\ng26\n(S'Variable_Type'\n(I2\nttRp7145\nsS'Y:VBus97'\np7146\ng26\n(S'Variable_Type'\n(I2\nttRp7147\nsS'Y:VBus94'\np7148\ng26\n(S'Variable_Type'\n(I2\nttRp7149\nsS'Y:VBus95'\np7150\ng26\n(S'Variable_Type'\n(I2\nttRp7151\nsS'Y:VBus107'\np7152\ng26\n(S'Variable_Type'\n(I2\nttRp7153\nsS'Y:VBus106'\np7154\ng26\n(S'Variable_Type'\n(I2\nttRp7155\nsS'Y:VBus105'\np7156\ng26\n(S'Variable_Type'\n(I2\nttRp7157\nsS'Y22:%RateA 22-23'\np7158\ng26\n(S'Variable_Type'\n(I1\nttRp7159\nsS'Y:VBus103'\np7160\ng26\n(S'Variable_Type'\n(I2\nttRp7161\nsS'Y:VBus102'\np7162\ng26\n(S'Variable_Type'\n(I2\nttRp7163\nsS'Y:VBus101'\np7164\ng26\n(S'Variable_Type'\n(I2\nttRp7165\nsS'Y:VBus100'\np7166\ng26\n(S'Variable_Type'\n(I2\nttRp7167\nsS'Y:Load 55'\np7168\ng26\n(S'Variable_Type'\n(I2\nttRp7169\nsS'Y:Load 57'\np7170\ng26\n(S'Variable_Type'\n(I2\nttRp7171\nsS'Y:Load 51'\np7172\ng26\n(S'Variable_Type'\n(I2\nttRp7173\nsS'Y:VBus54'\np7174\ng26\n(S'Variable_Type'\n(I2\nttRp7175\nsS'Y:VBus109'\np7176\ng26\n(S'Variable_Type'\n(I2\nttRp7177\nsS'Y46:%RateA 36-48'\np7178\ng26\n(S'Variable_Type'\n(I2\nttRp7179\nsS'Y:Load 80'\np7180\ng26\n(S'Variable_Type'\n(I2\nttRp7181\nsS'Y:PMachine133'\np7182\ng26\n(S'Variable_Type'\n(I2\nttRp7183\nsS'Y:VBus55'\np7184\ng26\n(S'Variable_Type'\n(I2\nttRp7185\nsS'Y:PMachine29'\np7186\ng26\n(S'Variable_Type'\n(I1\nttRp7187\nsS'Y24:%RateA 23-32'\np7188\ng26\n(S'Variable_Type'\n(I2\nttRp7189\nsS'X:lineOff#'\np7190\ng26\n(S'Variable_Type'\n(I2\nttRp7191\nsS'Y:Max%A'\np7192\ng26\n(S'Variable_Type'\n(I2\nttRp7193\nsS'Y:NbeTransit_0.9-1'\np7194\ng26\n(S'Variable_Type'\n(I1\nttRp7195\nsS'XProdEolienne%Pnom'\np7196\ng26\n(S'Variable_Type'\n(I2\nttRp7197\nsS'Y33:%RateA 27-33'\np7198\ng26\n(S'Variable_Type'\n(I2\nttRp7199\nsS'Y59:%RateA 80-81'\np7200\ng26\n(S'Variable_Type'\n(I1\nttRp7201\nsS'Y:VBus65'\np7202\ng26\n(S'Variable_Type'\n(I2\nttRp7203\nsS'TAC VAZZIO'\np7204\ng26\n(S'Variable_Type'\n(I2\nttRp7205\nsS'Y:VBus118'\np7206\ng26\n(S'Variable_Type'\n(I2\nttRp7207\nsS'Y:VBus119'\np7208\ng26\n(S'Variable_Type'\n(I2\nttRp7209\nsS'Y:PMachine117'\np7210\ng26\n(S'Variable_Type'\n(I2\nttRp7211\nsS'Y:PMachine116'\np7212\ng26\n(S'Variable_Type'\n(I2\nttRp7213\nsS'Y:PMachine111'\np7214\ng26\n(S'Variable_Type'\n(I2\nttRp7215\nsS'Y:VBus88'\np7216\ng26\n(S'Variable_Type'\n(I2\nttRp7217\nsS'Y:PMachine113'\np7218\ng26\n(S'Variable_Type'\n(I2\nttRp7219\nsS'Y:VBus93'\np7220\ng26\n(S'Variable_Type'\n(I2\nttRp7221\nsS'Y:VBus110'\np7222\ng26\n(S'Variable_Type'\n(I2\nttRp7223\nsS'Y:VBus111'\np7224\ng26\n(S'Variable_Type'\n(I2\nttRp7225\nsS'Y:VBus87'\np7226\ng26\n(S'Variable_Type'\n(I2\nttRp7227\nsS'Y12:%RateA 18-30'\np7228\ng26\n(S'Variable_Type'\n(I2\nttRp7229\nsS'Y:VBus114'\np7230\ng26\n(S'Variable_Type'\n(I2\nttRp7231\nsS'Y:VBus80'\np7232\ng26\n(S'Variable_Type'\n(I2\nttRp7233\nsS'Y:VBus116'\np7234\ng26\n(S'Variable_Type'\n(I2\nttRp7235\nsS'Y:VBus82'\np7236\ng26\n(S'Variable_Type'\n(I2\nttRp7237\nsS'Y61:%RateA 84-85'\np7238\ng26\n(S'Variable_Type'\n(I1\nttRp7239\nsS'Y31:%RateA 26-41'\np7240\ng26\n(S'Variable_Type'\n(I2\nttRp7241\nsS'Y:PMachine131'\np7242\ng26\n(S'Variable_Type'\n(I2\nttRp7243\nsS'Y47:%RateA 38-43'\np7244\ng26\n(S'Variable_Type'\n(I2\nttRp7245\nsS'Y:Load 42'\np7246\ng26\n(S'Variable_Type'\n(I2\nttRp7247\nsS'Y:PMachine85'\np7248\ng26\n(S'Variable_Type'\n(I2\nttRp7249\nsS'Y32:%RateA 26-46'\np7250\ng26\n(S'Variable_Type'\n(I2\nttRp7251\nsS'Y:PMachine132'\np7252\ng26\n(S'Variable_Type'\n(I2\nttRp7253\nsS'Y18:%RateA 19-27'\np7254\ng26\n(S'Variable_Type'\n(I2\nttRp7255\nsS'Y:VBus86'\np7256\ng26\n(S'Variable_Type'\n(I2\nttRp7257\nsS'Y63:%RateA 95-96'\np7258\ng26\n(S'Variable_Type'\n(I1\nttRp7259\nsS'Y17:%RateA 19-22'\np7260\ng26\n(S'Variable_Type'\n(I2\nttRp7261\nsS'Y41:%RateA 32-48'\np7262\ng26\n(S'Variable_Type'\n(I2\nttRp7263\nsS'Y:PMachine30'\np7264\ng26\n(S'Variable_Type'\n(I2\nttRp7265\nsS'Y:VBus117'\np7266\ng26\n(S'Variable_Type'\n(I2\nttRp7267\nsS'Y56:%RateA 72-73'\np7268\ng26\n(S'Variable_Type'\n(I1\nttRp7269\nsS'Y68:%RateA 112-113'\np7270\ng26\n(S'Variable_Type'\n(I1\nttRp7271\nsS'Y:PMachine130'\np7272\ng26\n(S'Variable_Type'\n(I2\nttRp7273\nsS'Y27:%RateA 24-33'\np7274\ng26\n(S'Variable_Type'\n(I2\nttRp7275\nsS'Y:PMachine106'\np7276\ng26\n(S'Variable_Type'\n(I2\nttRp7277\nsS'Y:PMachine107'\np7278\ng26\n(S'Variable_Type'\n(I2\nttRp7279\nsS'Y:PMachine104'\np7280\ng26\n(S'Variable_Type'\n(I2\nttRp7281\nsS'Y:VBus73'\np7282\ng26\n(S'Variable_Type'\n(I2\nttRp7283\nsS'Y:VBus74'\np7284\ng26\n(S'Variable_Type'\n(I2\nttRp7285\nsS'Y:VBus75'\np7286\ng26\n(S'Variable_Type'\n(I2\nttRp7287\nsS'Y:VBus76'\np7288\ng26\n(S'Variable_Type'\n(I2\nttRp7289\nsS'Y:PMachine101'\np7290\ng26\n(S'Variable_Type'\n(I2\nttRp7291\nsS'Y:VBus78'\np7292\ng26\n(S'Variable_Type'\n(I2\nttRp7293\nsS'Y:Load 59'\np7294\ng26\n(S'Variable_Type'\n(I2\nttRp7295\nsS'Y:PMachine115'\np7296\ng26\n(S'Variable_Type'\n(I2\nttRp7297\nsS'Y51:%RateA 53-54'\np7298\ng26\n(S'Variable_Type'\n(I1\nttRp7299\nsS'Y67:%RateA 108-109'\np7300\ng26\n(S'Variable_Type'\n(I1\nttRp7301\nsS'Y:PMachine109'\np7302\ng26\n(S'Variable_Type'\n(I2\nttRp7303\nsS'Y:PMachine83'\np7304\ng26\n(S'Variable_Type'\n(I2\nttRp7305\nsS'Y:PMachine81'\np7306\ng26\n(S'Variable_Type'\n(I2\nttRp7307\nsS'Y:PMachine86'\np7308\ng26\n(S'Variable_Type'\n(I2\nttRp7309\nsS'Y:Load 76'\np7310\ng26\n(S'Variable_Type'\n(I2\nttRp7311\nsS'Y:Load 74'\np7312\ng26\n(S'Variable_Type'\n(I2\nttRp7313\nsS'Y45:%RateA 36-37'\np7314\ng26\n(S'Variable_Type'\n(I2\nttRp7315\nsS'Y58:%RateA 78-79'\np7316\ng26\n(S'Variable_Type'\n(I1\nttRp7317\nsS'Y:Load 78'\np7318\ng26\n(S'Variable_Type'\n(I2\nttRp7319\nsS'X:Load(pu)'\np7320\ng26\n(S'Variable_Type'\n(I2\nttRp7321\nsS'Y5:%RateA 13-29'\np7322\ng26\n(S'Variable_Type'\n(I2\nttRp7323\nsS'Y:PMachine118'\np7324\ng26\n(S'Variable_Type'\n(I2\nttRp7325\nsS'Y1:%RateA 11-47'\np7326\ng26\n(S'Variable_Type'\n(I2\nttRp7327\nsS'Y:VBus60'\np7328\ng26\n(S'Variable_Type'\n(I2\nttRp7329\nsS'Y:PMachine137'\np7330\ng26\n(S'Variable_Type'\n(I1\nttRp7331\nsS'Y29:%RateA 25-29'\np7332\ng26\n(S'Variable_Type'\n(I2\nttRp7333\nsS'Y:VBus66'\np7334\ng26\n(S'Variable_Type'\n(I2\nttRp7335\nsS'Y36:%RateA 29-30'\np7336\ng26\n(S'Variable_Type'\n(I1\nttRp7337\nsS'Y54:%RateA 59-60'\np7338\ng26\n(S'Variable_Type'\n(I1\nttRp7339\nsS'Y:Load 90'\np7340\ng26\n(S'Variable_Type'\n(I2\nttRp7341\nsS'Y9:%RateA 16-32'\np7342\ng26\n(S'Variable_Type'\n(I2\nttRp7343\nsS'INTERCOS'\np7344\ng26\n(S'Variable_Type'\n(I2\nttRp7345\nsS'Y:Load 95'\np7346\ng26\n(S'Variable_Type'\n(I2\nttRp7347\nsS'Y:VBus63'\np7348\ng26\n(S'Variable_Type'\n(I2\nttRp7349\nsS'Y:VBus62'\np7350\ng26\n(S'Variable_Type'\n(I2\nttRp7351\nsS'Y:VBus61'\np7352\ng26\n(S'Variable_Type'\n(I2\nttRp7353\nsS'Y55:%RateA 61-62'\np7354\ng26\n(S'Variable_Type'\n(I1\nttRp7355\nsS'Y8:%RateA 15-35'\np7356\ng26\n(S'Variable_Type'\n(I2\nttRp7357\nsS'Y:PMachine136'\np7358\ng26\n(S'Variable_Type'\n(I1\nttRp7359\nsS'Y:PMachine135'\np7360\ng26\n(S'Variable_Type'\n(I1\nttRp7361\nsS'Y:VBus64'\np7362\ng26\n(S'Variable_Type'\n(I2\nttRp7363\nsS'Y:PMachine94'\np7364\ng26\n(S'Variable_Type'\n(I2\nttRp7365\nsS'Y:VBus69'\np7366\ng26\n(S'Variable_Type'\n(I2\nttRp7367\nsS'Y:VBus108'\np7368\ng26\n(S'Variable_Type'\n(I2\nttRp7369\nsS'Y:PMachine139'\np7370\ng26\n(S'Variable_Type'\n(I1\nttRp7371\nsS'Y:PMachine97'\np7372\ng26\n(S'Variable_Type'\n(I2\nttRp7373\nsS'Y:PMachine92'\np7374\ng26\n(S'Variable_Type'\n(I2\nttRp7375\nsS'Y:VBus68'\np7376\ng26\n(S'Variable_Type'\n(I2\nttRp7377\nsS'Y:Load 61'\np7378\ng26\n(S'Variable_Type'\n(I2\nttRp7379\nsS'Y:VBus89'\np7380\ng26\n(S'Variable_Type'\n(I2\nttRp7381\nsS'Y21:%RateA 21-43'\np7382\ng26\n(S'Variable_Type'\n(I2\nttRp7383\nsS'Y:PMachine90'\np7384\ng26\n(S'Variable_Type'\n(I2\nttRp7385\nsS'Y:PMachine14'\np7386\ng26\n(S'Variable_Type'\n(I2\nttRp7387\nsS'Y:PMachine63'\np7388\ng26\n(S'Variable_Type'\n(I2\nttRp7389\nsS'Y:PMachine93'\np7390\ng26\n(S'Variable_Type'\n(I2\nttRp7391\nsS'Y:PConsoTot'\np7392\ng26\n(S'Variable_Type'\n(I2\nttRp7393\nsS'Y23:%RateA 22-31'\np7394\ng26\n(S'Variable_Type'\n(I2\nttRp7395\nsS'Y19:%RateA 20-26'\np7396\ng26\n(S'Variable_Type'\n(I2\nttRp7397\nsS'Y:PMachine18'\np7398\ng26\n(S'Variable_Type'\n(I2\nttRp7399\nsS'Y:VBus34'\np7400\ng26\n(S'Variable_Type'\n(I2\nttRp7401\nsS'Y:NbeTension'\np7402\ng26\n(S'Variable_Type'\n(I2\nttRp7403\nsS'TOT PV'\np7404\ng26\n(S'Variable_Type'\n(I2\nttRp7405\nsS'Y:PMachine128'\np7406\ng26\n(S'Variable_Type'\n(I2\nttRp7407\nsS'Y:PMachine129'\np7408\ng26\n(S'Variable_Type'\n(I2\nttRp7409\nsS'Y:VBus133'\np7410\ng26\n(S'Variable_Type'\n(I2\nttRp7411\nsS'Y:Load 82'\np7412\ng26\n(S'Variable_Type'\n(I2\nttRp7413\nsS'Y:VBus30'\np7414\ng26\n(S'Variable_Type'\n(I2\nttRp7415\nsS'Y:PMachine126'\np7416\ng26\n(S'Variable_Type'\n(I2\nttRp7417\nsS'Y:PMachine127'\np7418\ng26\n(S'Variable_Type'\n(I2\nttRp7419\nsS'Y:Load 86'\np7420\ng26\n(S'Variable_Type'\n(I2\nttRp7421\nsS'Y:PMachine121'\np7422\ng26\n(S'Variable_Type'\n(I2\nttRp7423\nsS'Y:Load 84'\np7424\ng26\n(S'Variable_Type'\n(I2\nttRp7425\nsS'Y:PMachine123'\np7426\ng26\n(S'Variable_Type'\n(I2\nttRp7427\nsS'Y:Load 102'\np7428\ng26\n(S'Variable_Type'\n(I2\nttRp7429\nsS'Y:VBus57'\np7430\ng26\n(S'Variable_Type'\n(I2\nttRp7431\nsS'Y:Load 100'\np7432\ng26\n(S'Variable_Type'\n(I2\nttRp7433\nsS'Y:Load 101'\np7434\ng26\n(S'Variable_Type'\n(I2\nttRp7435\nsS'Y:VBus52'\np7436\ng26\n(S'Variable_Type'\n(I2\nttRp7437\nsS'Y:VBus53'\np7438\ng26\n(S'Variable_Type'\n(I2\nttRp7439\nsS'Y:Load 104'\np7440\ng26\n(S'Variable_Type'\n(I2\nttRp7441\nsS'Y:VBus51'\np7442\ng26\n(S'Variable_Type'\n(I2\nttRp7443\nsS'Y:Load 108'\np7444\ng26\n(S'Variable_Type'\n(I2\nttRp7445\nsS'Y64:%RateA 102-103'\np7446\ng26\n(S'Variable_Type'\n(I1\nttRp7447\nsS'Y:PMachine112'\np7448\ng26\n(S'Variable_Type'\n(I2\nttRp7449\nsS'Y:VBus58'\np7450\ng26\n(S'Variable_Type'\n(I2\nttRp7451\nsS'Y:VBus59'\np7452\ng26\n(S'Variable_Type'\n(I2\nttRp7453\nsS'Y:Load 53'\np7454\ng26\n(S'Variable_Type'\n(I2\nttRp7455\nsS'Y10:%RateA 16-47'\np7456\ng26\n(S'Variable_Type'\n(I2\nttRp7457\nsS'Y:PMachine54'\np7458\ng26\n(S'Variable_Type'\n(I2\nttRp7459\nsS'Y:VBus56'\np7460\ng26\n(S'Variable_Type'\n(I2\nttRp7461\nsS'TOT WIND'\np7462\ng26\n(S'Variable_Type'\n(I2\nttRp7463\nsS'Y3:%RateA 12-24'\np7464\ng26\n(S'Variable_Type'\n(I2\nttRp7465\nsS'Y11:%RateA 17-27'\np7466\ng26\n(S'Variable_Type'\n(I2\nttRp7467\nsS'Y:PMachine114'\np7468\ng26\n(S'Variable_Type'\n(I2\nttRp7469\nsS'Y:VBus72'\np7470\ng26\n(S'Variable_Type'\n(I2\nttRp7471\nsS'Y:PMachine60'\np7472\ng26\n(S'Variable_Type'\n(I2\nttRp7473\nsS'Y:PMachine61'\np7474\ng26\n(S'Variable_Type'\n(I1\nttRp7475\nsS'Y:PMachine62'\np7476\ng26\n(S'Variable_Type'\n(I2\nttRp7477\nsS'Y:PMachine105'\np7478\ng26\n(S'Variable_Type'\n(I2\nttRp7479\nsS'Y:PMachine64'\np7480\ng26\n(S'Variable_Type'\n(I2\nttRp7481\nsS'Y:PMachine65'\np7482\ng26\n(S'Variable_Type'\n(I2\nttRp7483\nsS'Y:PMachine66'\np7484\ng26\n(S'Variable_Type'\n(I2\nttRp7485\nsS'Y:PMachine67'\np7486\ng26\n(S'Variable_Type'\n(I2\nttRp7487\nsS'Y:PMachine68'\np7488\ng26\n(S'Variable_Type'\n(I2\nttRp7489\nsS'Y:PMachine102'\np7490\ng26\n(S'Variable_Type'\n(I2\nttRp7491\nsS'X:ProdPV%Pnom'\np7492\ng26\n(S'Variable_Type'\n(I2\nttRp7493\nsS'Y:VBus138'\np7494\ng26\n(S'Variable_Type'\n(I2\nttRp7495\nsS'Y26:%RateA 24-25'\np7496\ng26\n(S'Variable_Type'\n(I1\nttRp7497\nssg630\n(dp7498\nsg632\n(dp7499\ng2509\n(S'INTERCOS'\np7500\ng7345\ntp7501\nsg2512\n(g638\nI0\ntp7502\nsg2514\n(g7500\ng7345\ntp7503\nsg2516\n(S''\nI0\ntp7504\nsg2518\n(S''\nI0\ntp7505\nsg2520\n(NI-2\ntp7506\nsg2522\n((lI-2\ntp7507\nssg650\nF1369931977.266\nsba(iOWContexts\nContext\np7508\n(dp7509\ng20\n(lp7510\ng1272\nasg23\n(dp7511\nS'Y:VBus48'\np7512\ng26\n(S'Variable_Type'\n(I2\nttRp7513\nsS'Y15:%RateA 18-44'\np7514\ng26\n(S'Variable_Type'\n(I2\nttRp7515\nsS'Y:VBus41'\np7516\ng26\n(S'Variable_Type'\n(I2\nttRp7517\nsS'Y:VBus40'\np7518\ng26\n(S'Variable_Type'\n(I2\nttRp7519\nsS'Y:VBus43'\np7520\ng26\n(S'Variable_Type'\n(I2\nttRp7521\nsS'Y:VBus42'\np7522\ng26\n(S'Variable_Type'\n(I2\nttRp7523\nsS'Y:VBus45'\np7524\ng26\n(S'Variable_Type'\n(I2\nttRp7525\nsS'Y:VBus44'\np7526\ng26\n(S'Variable_Type'\n(I2\nttRp7527\nsS'Y:VBus47'\np7528\ng26\n(S'Variable_Type'\n(I2\nttRp7529\nsS'Y:VBus46'\np7530\ng26\n(S'Variable_Type'\n(I2\nttRp7531\nsS'Y39:%RateA 32-45'\np7532\ng26\n(S'Variable_Type'\n(I2\nttRp7533\nsS'Y:Load 110'\np7534\ng26\n(S'Variable_Type'\n(I2\nttRp7535\nsS'Y:Load 115'\np7536\ng26\n(S'Variable_Type'\n(I2\nttRp7537\nsS'Y:VBus79'\np7538\ng26\n(S'Variable_Type'\n(I2\nttRp7539\nsS'Y13:%RateA 18-30'\np7540\ng26\n(S'Variable_Type'\n(I2\nttRp7541\nsS'Y34:%RateA 28-38'\np7542\ng26\n(S'Variable_Type'\n(I2\nttRp7543\nsS'Y:NbeTransit'\np7544\ng26\n(S'Variable_Type'\n(I1\nttRp7545\nsS'Y:VBus104'\np7546\ng26\n(S'Variable_Type'\n(I2\nttRp7547\nsS'Y20:%RateA 20-44'\np7548\ng26\n(S'Variable_Type'\n(I2\nttRp7549\nsS'DIESEL CASA'\np7550\ng26\n(S'Variable_Type'\n(I2\nttRp7551\nsS'Y38:%RateA 32-45'\np7552\ng26\n(S'Variable_Type'\n(I2\nttRp7553\nsS'Y:PMachine73'\np7554\ng26\n(S'Variable_Type'\n(I2\nttRp7555\nsS'Y:PMachine72'\np7556\ng26\n(S'Variable_Type'\n(I2\nttRp7557\nsS'Y49:%RateA 40-48'\np7558\ng26\n(S'Variable_Type'\n(I2\nttRp7559\nsS'Y:PMachine77'\np7560\ng26\n(S'Variable_Type'\n(I2\nttRp7561\nsS'Y:PMachine75'\np7562\ng26\n(S'Variable_Type'\n(I2\nttRp7563\nsS'Y:PMachine74'\np7564\ng26\n(S'Variable_Type'\n(I2\nttRp7565\nsS'Y:PMachine78'\np7566\ng26\n(S'Variable_Type'\n(I1\nttRp7567\nsS'Y:PMachine138'\np7568\ng26\n(S'Variable_Type'\n(I1\nttRp7569\nsS'Y28:%RateA 24-42'\np7570\ng26\n(S'Variable_Type'\n(I2\nttRp7571\nsS'Y:PProdTot'\np7572\ng26\n(S'Variable_Type'\n(I2\nttRp7573\nsS'Y:PMachine69'\np7574\ng26\n(S'Variable_Type'\n(I2\nttRp7575\nsS'Y:VBus38'\np7576\ng26\n(S'Variable_Type'\n(I2\nttRp7577\nsS'Y:VBus39'\np7578\ng26\n(S'Variable_Type'\n(I2\nttRp7579\nsS'Y62:%RateA 86-87'\np7580\ng26\n(S'Variable_Type'\n(I1\nttRp7581\nsS'Y:PMachine1'\np7582\ng26\n(S'Variable_Type'\n(I2\nttRp7583\nsS'Y:VBus35'\np7584\ng26\n(S'Variable_Type'\n(I2\nttRp7585\nsS'Y:VBus36'\np7586\ng26\n(S'Variable_Type'\n(I2\nttRp7587\nsS'Y:VBus37'\np7588\ng26\n(S'Variable_Type'\n(I2\nttRp7589\nsS'Y:VBus30'\np7590\ng26\n(S'Variable_Type'\n(I2\nttRp7591\nsS'Y:VBus31'\np7592\ng26\n(S'Variable_Type'\n(I2\nttRp7593\nsS'Y:VBus32'\np7594\ng26\n(S'Variable_Type'\n(I2\nttRp7595\nsS'Y:VBus33'\np7596\ng26\n(S'Variable_Type'\n(I2\nttRp7597\nsS'Y53:%RateA 57-58'\np7598\ng26\n(S'Variable_Type'\n(I1\nttRp7599\nsS'Y14:%RateA 18-31'\np7600\ng26\n(S'Variable_Type'\n(I2\nttRp7601\nsS'Y48:%RateA 39-46'\np7602\ng26\n(S'Variable_Type'\n(I2\nttRp7603\nsS'Y60:%RateA 82-83'\np7604\ng26\n(S'Variable_Type'\n(I1\nttRp7605\nsS'Y:PMachine87'\np7606\ng26\n(S'Variable_Type'\n(I2\nttRp7607\nsS'Y:VBus121'\np7608\ng26\n(S'Variable_Type'\n(I2\nttRp7609\nsS'Y:VBus120'\np7610\ng26\n(S'Variable_Type'\n(I2\nttRp7611\nsS'Y:VBus123'\np7612\ng26\n(S'Variable_Type'\n(I2\nttRp7613\nsS'Y:VBus122'\np7614\ng26\n(S'Variable_Type'\n(I2\nttRp7615\nsS'Y:VBus125'\np7616\ng26\n(S'Variable_Type'\n(I2\nttRp7617\nsS'Y:VBus124'\np7618\ng26\n(S'Variable_Type'\n(I2\nttRp7619\nsS'Y:VBus127'\np7620\ng26\n(S'Variable_Type'\n(I2\nttRp7621\nsS'Y:VBus126'\np7622\ng26\n(S'Variable_Type'\n(I2\nttRp7623\nsS'Y:VBus129'\np7624\ng26\n(S'Variable_Type'\n(I2\nttRp7625\nsS'Y:VBus128'\np7626\ng26\n(S'Variable_Type'\n(I2\nttRp7627\nsS'Y37:%RateA 32-34'\np7628\ng26\n(S'Variable_Type'\n(I2\nttRp7629\nsS'Y43:%RateA 35-37'\np7630\ng26\n(S'Variable_Type'\n(I2\nttRp7631\nsS'Y:PMachine42'\np7632\ng26\n(S'Variable_Type'\n(I2\nttRp7633\nsS'Y0:%RateA 11-28'\np7634\ng26\n(S'Variable_Type'\n(I2\nttRp7635\nsS'Y:VBus67'\np7636\ng26\n(S'Variable_Type'\n(I2\nttRp7637\nsS'Y:Load 37'\np7638\ng26\n(S'Variable_Type'\n(I2\nttRp7639\nsS'Y65:%RateA 104-105'\np7640\ng26\n(S'Variable_Type'\n(I1\nttRp7641\nsS'Y40:%RateA 32-47'\np7642\ng26\n(S'Variable_Type'\n(I2\nttRp7643\nsS'Y:PMachine47'\np7644\ng26\n(S'Variable_Type'\n(I2\nttRp7645\nsS'Y6:%RateA 14-15'\np7646\ng26\n(S'Variable_Type'\n(I1\nttRp7647\nsS'Y:VBus1'\np7648\ng26\n(S'Variable_Type'\n(I2\nttRp7649\nsS'Y44:%RateA 35-39'\np7650\ng26\n(S'Variable_Type'\n(I2\nttRp7651\nsS'Y:PMachine88'\np7652\ng26\n(S'Variable_Type'\n(I1\nttRp7653\nsS'Y42:%RateA 34-36'\np7654\ng26\n(S'Variable_Type'\n(I2\nttRp7655\nsS'Y57:%RateA 76-77'\np7656\ng26\n(S'Variable_Type'\n(I1\nttRp7657\nsS'Y:PMachine89'\np7658\ng26\n(S'Variable_Type'\n(I1\nttRp7659\nsS'Y:VBus77'\np7660\ng26\n(S'Variable_Type'\n(I2\nttRp7661\nsS'Y:VBus29'\np7662\ng26\n(S'Variable_Type'\n(I2\nttRp7663\nsS'Y:VBus28'\np7664\ng26\n(S'Variable_Type'\n(I2\nttRp7665\nsS'Y:VBus27'\np7666\ng26\n(S'Variable_Type'\n(I2\nttRp7667\nsS'Y:VBus26'\np7668\ng26\n(S'Variable_Type'\n(I2\nttRp7669\nsS'Y:VBus25'\np7670\ng26\n(S'Variable_Type'\n(I2\nttRp7671\nsS'Y:VBus24'\np7672\ng26\n(S'Variable_Type'\n(I2\nttRp7673\nsS'Y:VBus23'\np7674\ng26\n(S'Variable_Type'\n(I2\nttRp7675\nsS'Y:VBus22'\np7676\ng26\n(S'Variable_Type'\n(I2\nttRp7677\nsS'Y:VBus21'\np7678\ng26\n(S'Variable_Type'\n(I2\nttRp7679\nsS'Y:VBus20'\np7680\ng26\n(S'Variable_Type'\n(I2\nttRp7681\nsS'Y:VBus85'\np7682\ng26\n(S'Variable_Type'\n(I2\nttRp7683\nsS'Y:VBus84'\np7684\ng26\n(S'Variable_Type'\n(I2\nttRp7685\nsS'Y52:%RateA 55-56'\np7686\ng26\n(S'Variable_Type'\n(I1\nttRp7687\nsS'Y2:%RateA 12-24'\np7688\ng26\n(S'Variable_Type'\n(I2\nttRp7689\nsS'Y:VBus112'\np7690\ng26\n(S'Variable_Type'\n(I2\nttRp7691\nsS'Y:VBus132'\np7692\ng26\n(S'Variable_Type'\n(I2\nttRp7693\nsS'Y:PMachine58'\np7694\ng26\n(S'Variable_Type'\n(I2\nttRp7695\nsS'Y:VBus130'\np7696\ng26\n(S'Variable_Type'\n(I2\nttRp7697\nsS'Y:VBus131'\np7698\ng26\n(S'Variable_Type'\n(I2\nttRp7699\nsS'Y:VBus136'\np7700\ng26\n(S'Variable_Type'\n(I2\nttRp7701\nsS'Y:VBus137'\np7702\ng26\n(S'Variable_Type'\n(I2\nttRp7703\nsS'Y:VBus134'\np7704\ng26\n(S'Variable_Type'\n(I2\nttRp7705\nsS'Y:VBus135'\np7706\ng26\n(S'Variable_Type'\n(I2\nttRp7707\nsS'Y:VBus81'\np7708\ng26\n(S'Variable_Type'\n(I2\nttRp7709\nsS'Y:PMachine53'\np7710\ng26\n(S'Variable_Type'\n(I2\nttRp7711\nsS'Y:VBus139'\np7712\ng26\n(S'Variable_Type'\n(I2\nttRp7713\nsS'Y30:%RateA 25-29'\np7714\ng26\n(S'Variable_Type'\n(I2\nttRp7715\nsS'Y:VBus115'\np7716\ng26\n(S'Variable_Type'\n(I2\nttRp7717\nsS'Y:PMachine124'\np7718\ng26\n(S'Variable_Type'\n(I2\nttRp7719\nsS'Y:VBus83'\np7720\ng26\n(S'Variable_Type'\n(I2\nttRp7721\nsS'Y66:%RateA 106-107'\np7722\ng26\n(S'Variable_Type'\n(I1\nttRp7723\nsS'Y25:%RateA 23-41'\np7724\ng26\n(S'Variable_Type'\n(I2\nttRp7725\nsS'Y:%Losses'\np7726\ng26\n(S'Variable_Type'\n(I2\nttRp7727\nsS'Y:VBus12'\np7728\ng26\n(S'Variable_Type'\n(I2\nttRp7729\nsS'Y:VBus13'\np7730\ng26\n(S'Variable_Type'\n(I2\nttRp7731\nsS'Y50:%RateA 51-52'\np7732\ng26\n(S'Variable_Type'\n(I1\nttRp7733\nsS'Y:VBus11'\np7734\ng26\n(S'Variable_Type'\n(I2\nttRp7735\nsS'Y:VBus16'\np7736\ng26\n(S'Variable_Type'\n(I2\nttRp7737\nsS'Y:VBus17'\np7738\ng26\n(S'Variable_Type'\n(I2\nttRp7739\nsS'Y:VBus14'\np7740\ng26\n(S'Variable_Type'\n(I2\nttRp7741\nsS'Y:VBus15'\np7742\ng26\n(S'Variable_Type'\n(I2\nttRp7743\nsS'Y:VBus113'\np7744\ng26\n(S'Variable_Type'\n(I2\nttRp7745\nsS'Y:PMachine120'\np7746\ng26\n(S'Variable_Type'\n(I2\nttRp7747\nsS'Y:VBus18'\np7748\ng26\n(S'Variable_Type'\n(I2\nttRp7749\nsS'Y:VBus19'\np7750\ng26\n(S'Variable_Type'\n(I2\nttRp7751\nsS'Y4:%RateA 13-25'\np7752\ng26\n(S'Variable_Type'\n(I2\nttRp7753\nsS'DIESEL VAZZIO'\np7754\ng26\n(S'Variable_Type'\n(I2\nttRp7755\nsS'Y35:%RateA 28-47'\np7756\ng26\n(S'Variable_Type'\n(I2\nttRp7757\nsS'Y:PMachine122'\np7758\ng26\n(S'Variable_Type'\n(I2\nttRp7759\nsS'Y16:%RateA 19-21'\np7760\ng26\n(S'Variable_Type'\n(I2\nttRp7761\nsS'Y:VBus92'\np7762\ng26\n(S'Variable_Type'\n(I2\nttRp7763\nsS'Y7:%RateA 14-35'\np7764\ng26\n(S'Variable_Type'\n(I2\nttRp7765\nsS'Y:VBus90'\np7766\ng26\n(S'Variable_Type'\n(I2\nttRp7767\nsS'Y:VBus96'\np7768\ng26\n(S'Variable_Type'\n(I2\nttRp7769\nsS'Y:VBus97'\np7770\ng26\n(S'Variable_Type'\n(I2\nttRp7771\nsS'Y:VBus94'\np7772\ng26\n(S'Variable_Type'\n(I2\nttRp7773\nsS'Y:VBus95'\np7774\ng26\n(S'Variable_Type'\n(I2\nttRp7775\nsS'Y:VBus107'\np7776\ng26\n(S'Variable_Type'\n(I2\nttRp7777\nsS'Y:VBus106'\np7778\ng26\n(S'Variable_Type'\n(I2\nttRp7779\nsS'Y:VBus105'\np7780\ng26\n(S'Variable_Type'\n(I2\nttRp7781\nsS'Y22:%RateA 22-23'\np7782\ng26\n(S'Variable_Type'\n(I1\nttRp7783\nsS'Y:VBus103'\np7784\ng26\n(S'Variable_Type'\n(I2\nttRp7785\nsS'Y:VBus102'\np7786\ng26\n(S'Variable_Type'\n(I2\nttRp7787\nsS'Y:VBus101'\np7788\ng26\n(S'Variable_Type'\n(I2\nttRp7789\nsS'Y:VBus100'\np7790\ng26\n(S'Variable_Type'\n(I2\nttRp7791\nsS'Y:Load 55'\np7792\ng26\n(S'Variable_Type'\n(I2\nttRp7793\nsS'Y:Load 57'\np7794\ng26\n(S'Variable_Type'\n(I2\nttRp7795\nsS'Y:Load 51'\np7796\ng26\n(S'Variable_Type'\n(I2\nttRp7797\nsS'Y:VBus54'\np7798\ng26\n(S'Variable_Type'\n(I2\nttRp7799\nsS'Y:VBus109'\np7800\ng26\n(S'Variable_Type'\n(I2\nttRp7801\nsS'Y46:%RateA 36-48'\np7802\ng26\n(S'Variable_Type'\n(I2\nttRp7803\nsS'Y:Load 80'\np7804\ng26\n(S'Variable_Type'\n(I2\nttRp7805\nsS'Y:PMachine133'\np7806\ng26\n(S'Variable_Type'\n(I2\nttRp7807\nsS'Y:VBus55'\np7808\ng26\n(S'Variable_Type'\n(I2\nttRp7809\nsS'Y:PMachine29'\np7810\ng26\n(S'Variable_Type'\n(I1\nttRp7811\nsS'Y24:%RateA 23-32'\np7812\ng26\n(S'Variable_Type'\n(I2\nttRp7813\nsS'X:lineOff#'\np7814\ng26\n(S'Variable_Type'\n(I2\nttRp7815\nsS'Y:Max%A'\np7816\ng26\n(S'Variable_Type'\n(I2\nttRp7817\nsS'Y:NbeTransit_0.9-1'\np7818\ng26\n(S'Variable_Type'\n(I1\nttRp7819\nsS'XProdEolienne%Pnom'\np7820\ng26\n(S'Variable_Type'\n(I2\nttRp7821\nsS'Y33:%RateA 27-33'\np7822\ng26\n(S'Variable_Type'\n(I2\nttRp7823\nsS'Y59:%RateA 80-81'\np7824\ng26\n(S'Variable_Type'\n(I1\nttRp7825\nsS'Y:VBus65'\np7826\ng26\n(S'Variable_Type'\n(I2\nttRp7827\nsS'TAC VAZZIO'\np7828\ng26\n(S'Variable_Type'\n(I2\nttRp7829\nsS'Y:VBus118'\np7830\ng26\n(S'Variable_Type'\n(I2\nttRp7831\nsS'Y:VBus119'\np7832\ng26\n(S'Variable_Type'\n(I2\nttRp7833\nsS'Y:PMachine117'\np7834\ng26\n(S'Variable_Type'\n(I2\nttRp7835\nsS'Y:PMachine116'\np7836\ng26\n(S'Variable_Type'\n(I2\nttRp7837\nsS'Y:PMachine111'\np7838\ng26\n(S'Variable_Type'\n(I2\nttRp7839\nsS'Y:VBus88'\np7840\ng26\n(S'Variable_Type'\n(I2\nttRp7841\nsS'Y:PMachine113'\np7842\ng26\n(S'Variable_Type'\n(I2\nttRp7843\nsS'Y:VBus93'\np7844\ng26\n(S'Variable_Type'\n(I2\nttRp7845\nsS'Y:VBus110'\np7846\ng26\n(S'Variable_Type'\n(I2\nttRp7847\nsS'Y:VBus111'\np7848\ng26\n(S'Variable_Type'\n(I2\nttRp7849\nsS'Y:VBus87'\np7850\ng26\n(S'Variable_Type'\n(I2\nttRp7851\nsS'Y12:%RateA 18-30'\np7852\ng26\n(S'Variable_Type'\n(I2\nttRp7853\nsS'Y:VBus114'\np7854\ng26\n(S'Variable_Type'\n(I2\nttRp7855\nsS'Y:VBus80'\np7856\ng26\n(S'Variable_Type'\n(I2\nttRp7857\nsS'Y:VBus116'\np7858\ng26\n(S'Variable_Type'\n(I2\nttRp7859\nsS'Y:VBus82'\np7860\ng26\n(S'Variable_Type'\n(I2\nttRp7861\nsS'Y61:%RateA 84-85'\np7862\ng26\n(S'Variable_Type'\n(I1\nttRp7863\nsS'Y31:%RateA 26-41'\np7864\ng26\n(S'Variable_Type'\n(I2\nttRp7865\nsS'Y:PMachine131'\np7866\ng26\n(S'Variable_Type'\n(I2\nttRp7867\nsS'Y47:%RateA 38-43'\np7868\ng26\n(S'Variable_Type'\n(I2\nttRp7869\nsS'Y:Load 42'\np7870\ng26\n(S'Variable_Type'\n(I2\nttRp7871\nsS'Y:PMachine85'\np7872\ng26\n(S'Variable_Type'\n(I2\nttRp7873\nsS'Y32:%RateA 26-46'\np7874\ng26\n(S'Variable_Type'\n(I2\nttRp7875\nsS'Y:PMachine132'\np7876\ng26\n(S'Variable_Type'\n(I2\nttRp7877\nsS'Y18:%RateA 19-27'\np7878\ng26\n(S'Variable_Type'\n(I2\nttRp7879\nsS'Y:VBus86'\np7880\ng26\n(S'Variable_Type'\n(I2\nttRp7881\nsS'Y63:%RateA 95-96'\np7882\ng26\n(S'Variable_Type'\n(I1\nttRp7883\nsS'Y17:%RateA 19-22'\np7884\ng26\n(S'Variable_Type'\n(I2\nttRp7885\nsS'Y41:%RateA 32-48'\np7886\ng26\n(S'Variable_Type'\n(I2\nttRp7887\nsS'Y:PMachine30'\np7888\ng26\n(S'Variable_Type'\n(I2\nttRp7889\nsS'Y:VBus117'\np7890\ng26\n(S'Variable_Type'\n(I2\nttRp7891\nsS'Y56:%RateA 72-73'\np7892\ng26\n(S'Variable_Type'\n(I1\nttRp7893\nsS'Y68:%RateA 112-113'\np7894\ng26\n(S'Variable_Type'\n(I1\nttRp7895\nsS'Y:PMachine130'\np7896\ng26\n(S'Variable_Type'\n(I2\nttRp7897\nsS'Y27:%RateA 24-33'\np7898\ng26\n(S'Variable_Type'\n(I2\nttRp7899\nsS'Y:PMachine106'\np7900\ng26\n(S'Variable_Type'\n(I2\nttRp7901\nsS'Y:PMachine107'\np7902\ng26\n(S'Variable_Type'\n(I2\nttRp7903\nsS'Y:PMachine104'\np7904\ng26\n(S'Variable_Type'\n(I2\nttRp7905\nsS'Y:VBus73'\np7906\ng26\n(S'Variable_Type'\n(I2\nttRp7907\nsS'Y:VBus74'\np7908\ng26\n(S'Variable_Type'\n(I2\nttRp7909\nsS'Y:VBus75'\np7910\ng26\n(S'Variable_Type'\n(I2\nttRp7911\nsS'Y:VBus76'\np7912\ng26\n(S'Variable_Type'\n(I2\nttRp7913\nsS'Y:PMachine101'\np7914\ng26\n(S'Variable_Type'\n(I2\nttRp7915\nsS'Y:VBus78'\np7916\ng26\n(S'Variable_Type'\n(I2\nttRp7917\nsS'Y:Load 59'\np7918\ng26\n(S'Variable_Type'\n(I2\nttRp7919\nsS'Y:PMachine115'\np7920\ng26\n(S'Variable_Type'\n(I2\nttRp7921\nsS'Y51:%RateA 53-54'\np7922\ng26\n(S'Variable_Type'\n(I1\nttRp7923\nsS'Y67:%RateA 108-109'\np7924\ng26\n(S'Variable_Type'\n(I1\nttRp7925\nsS'Y:PMachine109'\np7926\ng26\n(S'Variable_Type'\n(I2\nttRp7927\nsS'Y:PMachine83'\np7928\ng26\n(S'Variable_Type'\n(I2\nttRp7929\nsS'Y:PMachine81'\np7930\ng26\n(S'Variable_Type'\n(I2\nttRp7931\nsS'Y:PMachine86'\np7932\ng26\n(S'Variable_Type'\n(I2\nttRp7933\nsS'Y:Load 76'\np7934\ng26\n(S'Variable_Type'\n(I2\nttRp7935\nsS'Y:Load 74'\np7936\ng26\n(S'Variable_Type'\n(I2\nttRp7937\nsS'Y45:%RateA 36-37'\np7938\ng26\n(S'Variable_Type'\n(I2\nttRp7939\nsS'Y58:%RateA 78-79'\np7940\ng26\n(S'Variable_Type'\n(I1\nttRp7941\nsS'Y:Load 78'\np7942\ng26\n(S'Variable_Type'\n(I2\nttRp7943\nsS'X:Load(pu)'\np7944\ng26\n(S'Variable_Type'\n(I2\nttRp7945\nsS'Y5:%RateA 13-29'\np7946\ng26\n(S'Variable_Type'\n(I2\nttRp7947\nsS'Y:PMachine118'\np7948\ng26\n(S'Variable_Type'\n(I2\nttRp7949\nsS'Y1:%RateA 11-47'\np7950\ng26\n(S'Variable_Type'\n(I2\nttRp7951\nsS'Y:VBus60'\np7952\ng26\n(S'Variable_Type'\n(I2\nttRp7953\nsS'Y:PMachine137'\np7954\ng26\n(S'Variable_Type'\n(I1\nttRp7955\nsS'Y29:%RateA 25-29'\np7956\ng26\n(S'Variable_Type'\n(I2\nttRp7957\nsS'Y:VBus66'\np7958\ng26\n(S'Variable_Type'\n(I2\nttRp7959\nsS'Iteration'\np7960\ng26\n(S'Variable_Type'\n(I2\nttRp7961\nsS'Y36:%RateA 29-30'\np7962\ng26\n(S'Variable_Type'\n(I1\nttRp7963\nsS'Y54:%RateA 59-60'\np7964\ng26\n(S'Variable_Type'\n(I1\nttRp7965\nsS'Y:Load 90'\np7966\ng26\n(S'Variable_Type'\n(I2\nttRp7967\nsS'Y9:%RateA 16-32'\np7968\ng26\n(S'Variable_Type'\n(I2\nttRp7969\nsS'Y:PMachine134'\np7970\ng26\n(S'Variable_Type'\n(I1\nttRp7971\nsS'Y:Load 95'\np7972\ng26\n(S'Variable_Type'\n(I2\nttRp7973\nsS'Y:VBus63'\np7974\ng26\n(S'Variable_Type'\n(I2\nttRp7975\nsS'Y:VBus62'\np7976\ng26\n(S'Variable_Type'\n(I2\nttRp7977\nsS'Y:VBus61'\np7978\ng26\n(S'Variable_Type'\n(I2\nttRp7979\nsS'Y55:%RateA 61-62'\np7980\ng26\n(S'Variable_Type'\n(I1\nttRp7981\nsS'Y8:%RateA 15-35'\np7982\ng26\n(S'Variable_Type'\n(I2\nttRp7983\nsS'Y:PMachine136'\np7984\ng26\n(S'Variable_Type'\n(I1\nttRp7985\nsS'Y:PMachine135'\np7986\ng26\n(S'Variable_Type'\n(I1\nttRp7987\nsS'Y:VBus64'\np7988\ng26\n(S'Variable_Type'\n(I2\nttRp7989\nsS'Y:PMachine94'\np7990\ng26\n(S'Variable_Type'\n(I2\nttRp7991\nsS'Y:VBus69'\np7992\ng26\n(S'Variable_Type'\n(I2\nttRp7993\nsS'Y:VBus108'\np7994\ng26\n(S'Variable_Type'\n(I2\nttRp7995\nsS'Y:PMachine139'\np7996\ng26\n(S'Variable_Type'\n(I1\nttRp7997\nsS'Y:PMachine97'\np7998\ng26\n(S'Variable_Type'\n(I2\nttRp7999\nsS'Y:PMachine92'\np8000\ng26\n(S'Variable_Type'\n(I2\nttRp8001\nsS'Y:VBus68'\np8002\ng26\n(S'Variable_Type'\n(I2\nttRp8003\nsS'Y:Load 61'\np8004\ng26\n(S'Variable_Type'\n(I2\nttRp8005\nsS'Y:VBus89'\np8006\ng26\n(S'Variable_Type'\n(I2\nttRp8007\nsS'Y21:%RateA 21-43'\np8008\ng26\n(S'Variable_Type'\n(I2\nttRp8009\nsS'Y:PMachine90'\np8010\ng26\n(S'Variable_Type'\n(I2\nttRp8011\nsS'Y:PMachine14'\np8012\ng26\n(S'Variable_Type'\n(I2\nttRp8013\nsS'Y:PMachine63'\np8014\ng26\n(S'Variable_Type'\n(I2\nttRp8015\nsS'Y:PMachine93'\np8016\ng26\n(S'Variable_Type'\n(I2\nttRp8017\nsS'Y:PConsoTot'\np8018\ng26\n(S'Variable_Type'\n(I2\nttRp8019\nsS'Y23:%RateA 22-31'\np8020\ng26\n(S'Variable_Type'\n(I2\nttRp8021\nsS'Y19:%RateA 20-26'\np8022\ng26\n(S'Variable_Type'\n(I2\nttRp8023\nsS'Y:PMachine18'\np8024\ng26\n(S'Variable_Type'\n(I2\nttRp8025\nsS'Y:VBus34'\np8026\ng26\n(S'Variable_Type'\n(I2\nttRp8027\nsS'Y:NbeTension'\np8028\ng26\n(S'Variable_Type'\n(I2\nttRp8029\nsS'TOT PV'\np8030\ng26\n(S'Variable_Type'\n(I2\nttRp8031\nsS'Y:PMachine128'\np8032\ng26\n(S'Variable_Type'\n(I2\nttRp8033\nsS'Y:PMachine129'\np8034\ng26\n(S'Variable_Type'\n(I2\nttRp8035\nsS'Y:VBus133'\np8036\ng26\n(S'Variable_Type'\n(I2\nttRp8037\nsS'Y:Load 82'\np8038\ng26\n(S'Variable_Type'\n(I2\nttRp8039\nsS'Y:PMachine125'\np8040\ng26\n(S'Variable_Type'\n(I2\nttRp8041\nsS'Y:PMachine126'\np8042\ng26\n(S'Variable_Type'\n(I2\nttRp8043\nsS'Y:PMachine127'\np8044\ng26\n(S'Variable_Type'\n(I2\nttRp8045\nsS'Y:Load 86'\np8046\ng26\n(S'Variable_Type'\n(I2\nttRp8047\nsS'Y:PMachine121'\np8048\ng26\n(S'Variable_Type'\n(I2\nttRp8049\nsS'Y:Load 84'\np8050\ng26\n(S'Variable_Type'\n(I2\nttRp8051\nsS'Y:PMachine123'\np8052\ng26\n(S'Variable_Type'\n(I2\nttRp8053\nsS'Y:Load 102'\np8054\ng26\n(S'Variable_Type'\n(I2\nttRp8055\nsS'Y:VBus57'\np8056\ng26\n(S'Variable_Type'\n(I2\nttRp8057\nsS'Y:Load 100'\np8058\ng26\n(S'Variable_Type'\n(I2\nttRp8059\nsS'Y:Load 101'\np8060\ng26\n(S'Variable_Type'\n(I2\nttRp8061\nsS'Y:VBus52'\np8062\ng26\n(S'Variable_Type'\n(I2\nttRp8063\nsS'Y:VBus53'\np8064\ng26\n(S'Variable_Type'\n(I2\nttRp8065\nsS'Y:Load 104'\np8066\ng26\n(S'Variable_Type'\n(I2\nttRp8067\nsS'Y:VBus51'\np8068\ng26\n(S'Variable_Type'\n(I2\nttRp8069\nsS'Y:Load 108'\np8070\ng26\n(S'Variable_Type'\n(I2\nttRp8071\nsS'Y64:%RateA 102-103'\np8072\ng26\n(S'Variable_Type'\n(I1\nttRp8073\nsS'Y:PMachine112'\np8074\ng26\n(S'Variable_Type'\n(I2\nttRp8075\nsS'Y:VBus58'\np8076\ng26\n(S'Variable_Type'\n(I2\nttRp8077\nsS'Y:VBus59'\np8078\ng26\n(S'Variable_Type'\n(I2\nttRp8079\nsS'Y:Load 53'\np8080\ng26\n(S'Variable_Type'\n(I2\nttRp8081\nsS'Y10:%RateA 16-47'\np8082\ng26\n(S'Variable_Type'\n(I2\nttRp8083\nsS'Y:PMachine54'\np8084\ng26\n(S'Variable_Type'\n(I2\nttRp8085\nsS'Y:VBus56'\np8086\ng26\n(S'Variable_Type'\n(I2\nttRp8087\nsS'TOT WIND'\np8088\ng26\n(S'Variable_Type'\n(I2\nttRp8089\nsS'Y3:%RateA 12-24'\np8090\ng26\n(S'Variable_Type'\n(I2\nttRp8091\nsS'Y11:%RateA 17-27'\np8092\ng26\n(S'Variable_Type'\n(I2\nttRp8093\nsS'Y:PMachine114'\np8094\ng26\n(S'Variable_Type'\n(I2\nttRp8095\nsS'Y:VBus72'\np8096\ng26\n(S'Variable_Type'\n(I2\nttRp8097\nsS'Y:PMachine60'\np8098\ng26\n(S'Variable_Type'\n(I2\nttRp8099\nsS'Y:PMachine61'\np8100\ng26\n(S'Variable_Type'\n(I1\nttRp8101\nsS'Y:PMachine62'\np8102\ng26\n(S'Variable_Type'\n(I2\nttRp8103\nsS'Y:PMachine105'\np8104\ng26\n(S'Variable_Type'\n(I2\nttRp8105\nsS'Y:PMachine64'\np8106\ng26\n(S'Variable_Type'\n(I2\nttRp8107\nsS'Y:PMachine65'\np8108\ng26\n(S'Variable_Type'\n(I2\nttRp8109\nsS'Y:PMachine66'\np8110\ng26\n(S'Variable_Type'\n(I2\nttRp8111\nsS'Y:PMachine67'\np8112\ng26\n(S'Variable_Type'\n(I2\nttRp8113\nsS'Y:PMachine68'\np8114\ng26\n(S'Variable_Type'\n(I2\nttRp8115\nsS'Y:PMachine102'\np8116\ng26\n(S'Variable_Type'\n(I2\nttRp8117\nsS'X:ProdPV%Pnom'\np8118\ng26\n(S'Variable_Type'\n(I2\nttRp8119\nsS'Y:VBus138'\np8120\ng26\n(S'Variable_Type'\n(I2\nttRp8121\nsS'Y26:%RateA 24-25'\np8122\ng26\n(S'Variable_Type'\n(I1\nttRp8123\nssg630\n(dp8124\nsg632\n(dp8125\ng2509\n(S'Iteration'\np8126\ng7961\ntp8127\nsg2512\n(g638\nI0\ntp8128\nsg2514\n(g8126\ng7961\ntp8129\nsg2516\n(S''\nI0\ntp8130\nsg2518\n(S''\nI0\ntp8131\nsg2520\n(NI-2\ntp8132\nsg2522\n((lI-2\ntp8133\nssg650\nF1369931856.0039999\nsba(iOWContexts\nContext\np8134\n(dp8135\ng20\n(lp8136\ng1272\nasg23\n(dp8137\nS'Y:VBus48'\np8138\ng26\n(S'Variable_Type'\n(I2\nttRp8139\nsS'Y15:%RateA 18-44'\np8140\ng26\n(S'Variable_Type'\n(I2\nttRp8141\nsS'Y:VBus41'\np8142\ng26\n(S'Variable_Type'\n(I2\nttRp8143\nsS'Y:VBus40'\np8144\ng26\n(S'Variable_Type'\n(I2\nttRp8145\nsS'Y:VBus43'\np8146\ng26\n(S'Variable_Type'\n(I2\nttRp8147\nsS'Y:VBus42'\np8148\ng26\n(S'Variable_Type'\n(I2\nttRp8149\nsS'Y:VBus45'\np8150\ng26\n(S'Variable_Type'\n(I2\nttRp8151\nsS'Y:VBus44'\np8152\ng26\n(S'Variable_Type'\n(I2\nttRp8153\nsS'Y:VBus47'\np8154\ng26\n(S'Variable_Type'\n(I2\nttRp8155\nsS'Y:VBus46'\np8156\ng26\n(S'Variable_Type'\n(I2\nttRp8157\nsS'Y39:%RateA 32-45'\np8158\ng26\n(S'Variable_Type'\n(I2\nttRp8159\nsS'Y:Load 110'\np8160\ng26\n(S'Variable_Type'\n(I2\nttRp8161\nsS'Y:Load 115'\np8162\ng26\n(S'Variable_Type'\n(I2\nttRp8163\nsS'Y:VBus79'\np8164\ng26\n(S'Variable_Type'\n(I2\nttRp8165\nsS'Y13:%RateA 18-30'\np8166\ng26\n(S'Variable_Type'\n(I2\nttRp8167\nsS'Y34:%RateA 28-38'\np8168\ng26\n(S'Variable_Type'\n(I2\nttRp8169\nsS'Y:NbeTransit'\np8170\ng26\n(S'Variable_Type'\n(I1\nttRp8171\nsS'Y:VBus104'\np8172\ng26\n(S'Variable_Type'\n(I2\nttRp8173\nsS'Y20:%RateA 20-44'\np8174\ng26\n(S'Variable_Type'\n(I2\nttRp8175\nsS'Y38:%RateA 32-45'\np8176\ng26\n(S'Variable_Type'\n(I2\nttRp8177\nsS'Y:PMachine73'\np8178\ng26\n(S'Variable_Type'\n(I2\nttRp8179\nsS'Y:PMachine72'\np8180\ng26\n(S'Variable_Type'\n(I2\nttRp8181\nsS'Y49:%RateA 40-48'\np8182\ng26\n(S'Variable_Type'\n(I2\nttRp8183\nsS'Y:PMachine77'\np8184\ng26\n(S'Variable_Type'\n(I2\nttRp8185\nsS'Y:PMachine75'\np8186\ng26\n(S'Variable_Type'\n(I2\nttRp8187\nsS'Y:PMachine74'\np8188\ng26\n(S'Variable_Type'\n(I2\nttRp8189\nsS'Y:PMachine78'\np8190\ng26\n(S'Variable_Type'\n(I1\nttRp8191\nsS'Y:PMachine138'\np8192\ng26\n(S'Variable_Type'\n(I1\nttRp8193\nsS'Y28:%RateA 24-42'\np8194\ng26\n(S'Variable_Type'\n(I2\nttRp8195\nsS'Y:PProdTot'\np8196\ng26\n(S'Variable_Type'\n(I2\nttRp8197\nsS'Y:PMachine69'\np8198\ng26\n(S'Variable_Type'\n(I2\nttRp8199\nsS'Y:VBus38'\np8200\ng26\n(S'Variable_Type'\n(I2\nttRp8201\nsS'Y:VBus39'\np8202\ng26\n(S'Variable_Type'\n(I2\nttRp8203\nsS'Y62:%RateA 86-87'\np8204\ng26\n(S'Variable_Type'\n(I1\nttRp8205\nsS'Y:PMachine1'\np8206\ng26\n(S'Variable_Type'\n(I2\nttRp8207\nsS'Y:VBus35'\np8208\ng26\n(S'Variable_Type'\n(I2\nttRp8209\nsS'Y:VBus36'\np8210\ng26\n(S'Variable_Type'\n(I2\nttRp8211\nsS'Y:VBus37'\np8212\ng26\n(S'Variable_Type'\n(I2\nttRp8213\nsS'Y:VBus30'\np8214\ng26\n(S'Variable_Type'\n(I2\nttRp8215\nsS'Y:VBus31'\np8216\ng26\n(S'Variable_Type'\n(I2\nttRp8217\nsS'Y:VBus32'\np8218\ng26\n(S'Variable_Type'\n(I2\nttRp8219\nsS'Y:VBus33'\np8220\ng26\n(S'Variable_Type'\n(I2\nttRp8221\nsS'Y53:%RateA 57-58'\np8222\ng26\n(S'Variable_Type'\n(I1\nttRp8223\nsS'Y14:%RateA 18-31'\np8224\ng26\n(S'Variable_Type'\n(I2\nttRp8225\nsS'Y48:%RateA 39-46'\np8226\ng26\n(S'Variable_Type'\n(I2\nttRp8227\nsS'Y60:%RateA 82-83'\np8228\ng26\n(S'Variable_Type'\n(I1\nttRp8229\nsS'Y:PMachine87'\np8230\ng26\n(S'Variable_Type'\n(I2\nttRp8231\nsS'Y:VBus121'\np8232\ng26\n(S'Variable_Type'\n(I2\nttRp8233\nsS'Y:VBus120'\np8234\ng26\n(S'Variable_Type'\n(I2\nttRp8235\nsS'Y:VBus123'\np8236\ng26\n(S'Variable_Type'\n(I2\nttRp8237\nsS'Y:VBus122'\np8238\ng26\n(S'Variable_Type'\n(I2\nttRp8239\nsS'Y:VBus125'\np8240\ng26\n(S'Variable_Type'\n(I2\nttRp8241\nsS'Y:VBus124'\np8242\ng26\n(S'Variable_Type'\n(I2\nttRp8243\nsS'Y:VBus127'\np8244\ng26\n(S'Variable_Type'\n(I2\nttRp8245\nsS'Y:VBus126'\np8246\ng26\n(S'Variable_Type'\n(I2\nttRp8247\nsS'Y:VBus129'\np8248\ng26\n(S'Variable_Type'\n(I2\nttRp8249\nsS'Y:VBus128'\np8250\ng26\n(S'Variable_Type'\n(I2\nttRp8251\nsS'Y37:%RateA 32-34'\np8252\ng26\n(S'Variable_Type'\n(I2\nttRp8253\nsS'Y43:%RateA 35-37'\np8254\ng26\n(S'Variable_Type'\n(I2\nttRp8255\nsS'Y:PMachine42'\np8256\ng26\n(S'Variable_Type'\n(I2\nttRp8257\nsS'Y0:%RateA 11-28'\np8258\ng26\n(S'Variable_Type'\n(I2\nttRp8259\nsS'Y:VBus67'\np8260\ng26\n(S'Variable_Type'\n(I2\nttRp8261\nsS'Y:Load 37'\np8262\ng26\n(S'Variable_Type'\n(I2\nttRp8263\nsS'Y65:%RateA 104-105'\np8264\ng26\n(S'Variable_Type'\n(I1\nttRp8265\nsS'Y40:%RateA 32-47'\np8266\ng26\n(S'Variable_Type'\n(I2\nttRp8267\nsS'Y:PMachine47'\np8268\ng26\n(S'Variable_Type'\n(I2\nttRp8269\nsS'Y6:%RateA 14-15'\np8270\ng26\n(S'Variable_Type'\n(I1\nttRp8271\nsS'Y:VBus1'\np8272\ng26\n(S'Variable_Type'\n(I2\nttRp8273\nsS'Y44:%RateA 35-39'\np8274\ng26\n(S'Variable_Type'\n(I2\nttRp8275\nsS'Y:PMachine88'\np8276\ng26\n(S'Variable_Type'\n(I1\nttRp8277\nsS'Y42:%RateA 34-36'\np8278\ng26\n(S'Variable_Type'\n(I2\nttRp8279\nsS'Y57:%RateA 76-77'\np8280\ng26\n(S'Variable_Type'\n(I1\nttRp8281\nsS'Y:PMachine89'\np8282\ng26\n(S'Variable_Type'\n(I1\nttRp8283\nsS'Y:VBus77'\np8284\ng26\n(S'Variable_Type'\n(I2\nttRp8285\nsS'Y:VBus29'\np8286\ng26\n(S'Variable_Type'\n(I2\nttRp8287\nsS'Y:VBus28'\np8288\ng26\n(S'Variable_Type'\n(I2\nttRp8289\nsS'Y:VBus27'\np8290\ng26\n(S'Variable_Type'\n(I2\nttRp8291\nsS'Y:VBus26'\np8292\ng26\n(S'Variable_Type'\n(I2\nttRp8293\nsS'Y:VBus25'\np8294\ng26\n(S'Variable_Type'\n(I2\nttRp8295\nsS'Y:VBus24'\np8296\ng26\n(S'Variable_Type'\n(I2\nttRp8297\nsS'Y:VBus23'\np8298\ng26\n(S'Variable_Type'\n(I2\nttRp8299\nsS'Y:VBus22'\np8300\ng26\n(S'Variable_Type'\n(I2\nttRp8301\nsS'Y:VBus21'\np8302\ng26\n(S'Variable_Type'\n(I2\nttRp8303\nsS'Y:VBus20'\np8304\ng26\n(S'Variable_Type'\n(I2\nttRp8305\nsS'Y:VBus85'\np8306\ng26\n(S'Variable_Type'\n(I2\nttRp8307\nsS'Y:VBus84'\np8308\ng26\n(S'Variable_Type'\n(I2\nttRp8309\nsS'Y52:%RateA 55-56'\np8310\ng26\n(S'Variable_Type'\n(I1\nttRp8311\nsS'Y2:%RateA 12-24'\np8312\ng26\n(S'Variable_Type'\n(I2\nttRp8313\nsS'Y:VBus112'\np8314\ng26\n(S'Variable_Type'\n(I2\nttRp8315\nsS'Y:VBus132'\np8316\ng26\n(S'Variable_Type'\n(I2\nttRp8317\nsS'Y:PMachine58'\np8318\ng26\n(S'Variable_Type'\n(I2\nttRp8319\nsS'Y:VBus130'\np8320\ng26\n(S'Variable_Type'\n(I2\nttRp8321\nsS'Y:VBus131'\np8322\ng26\n(S'Variable_Type'\n(I2\nttRp8323\nsS'Y:VBus136'\np8324\ng26\n(S'Variable_Type'\n(I2\nttRp8325\nsS'Y:VBus137'\np8326\ng26\n(S'Variable_Type'\n(I2\nttRp8327\nsS'Y:VBus134'\np8328\ng26\n(S'Variable_Type'\n(I2\nttRp8329\nsS'Y:VBus135'\np8330\ng26\n(S'Variable_Type'\n(I2\nttRp8331\nsS'Y:VBus81'\np8332\ng26\n(S'Variable_Type'\n(I2\nttRp8333\nsS'Y:PMachine53'\np8334\ng26\n(S'Variable_Type'\n(I2\nttRp8335\nsS'Y:VBus139'\np8336\ng26\n(S'Variable_Type'\n(I2\nttRp8337\nsS'Y30:%RateA 25-29'\np8338\ng26\n(S'Variable_Type'\n(I2\nttRp8339\nsS'Y:VBus115'\np8340\ng26\n(S'Variable_Type'\n(I2\nttRp8341\nsS'Y:PMachine124'\np8342\ng26\n(S'Variable_Type'\n(I2\nttRp8343\nsS'Y:VBus83'\np8344\ng26\n(S'Variable_Type'\n(I2\nttRp8345\nsS'Y66:%RateA 106-107'\np8346\ng26\n(S'Variable_Type'\n(I1\nttRp8347\nsS'Y25:%RateA 23-41'\np8348\ng26\n(S'Variable_Type'\n(I2\nttRp8349\nsS'Y:%Losses'\np8350\ng26\n(S'Variable_Type'\n(I2\nttRp8351\nsS'Y:VBus12'\np8352\ng26\n(S'Variable_Type'\n(I2\nttRp8353\nsS'Y:VBus13'\np8354\ng26\n(S'Variable_Type'\n(I2\nttRp8355\nsS'Y50:%RateA 51-52'\np8356\ng26\n(S'Variable_Type'\n(I1\nttRp8357\nsS'Y:VBus11'\np8358\ng26\n(S'Variable_Type'\n(I2\nttRp8359\nsS'Y:VBus16'\np8360\ng26\n(S'Variable_Type'\n(I2\nttRp8361\nsS'Y:VBus17'\np8362\ng26\n(S'Variable_Type'\n(I2\nttRp8363\nsS'Y:VBus14'\np8364\ng26\n(S'Variable_Type'\n(I2\nttRp8365\nsS'Y:VBus15'\np8366\ng26\n(S'Variable_Type'\n(I2\nttRp8367\nsS'Y:VBus113'\np8368\ng26\n(S'Variable_Type'\n(I2\nttRp8369\nsS'Y:PMachine120'\np8370\ng26\n(S'Variable_Type'\n(I2\nttRp8371\nsS'Y:VBus18'\np8372\ng26\n(S'Variable_Type'\n(I2\nttRp8373\nsS'Y:VBus19'\np8374\ng26\n(S'Variable_Type'\n(I2\nttRp8375\nsS'Y4:%RateA 13-25'\np8376\ng26\n(S'Variable_Type'\n(I2\nttRp8377\nsS'DIESEL VAZZIO'\np8378\ng26\n(S'Variable_Type'\n(I2\nttRp8379\nsS'Y35:%RateA 28-47'\np8380\ng26\n(S'Variable_Type'\n(I2\nttRp8381\nsS'Y:PMachine122'\np8382\ng26\n(S'Variable_Type'\n(I2\nttRp8383\nsS'Y16:%RateA 19-21'\np8384\ng26\n(S'Variable_Type'\n(I2\nttRp8385\nsS'Y:VBus92'\np8386\ng26\n(S'Variable_Type'\n(I2\nttRp8387\nsS'Y7:%RateA 14-35'\np8388\ng26\n(S'Variable_Type'\n(I2\nttRp8389\nsS'Y:VBus90'\np8390\ng26\n(S'Variable_Type'\n(I2\nttRp8391\nsS'Y:VBus96'\np8392\ng26\n(S'Variable_Type'\n(I2\nttRp8393\nsS'Y:VBus97'\np8394\ng26\n(S'Variable_Type'\n(I2\nttRp8395\nsS'Y:VBus94'\np8396\ng26\n(S'Variable_Type'\n(I2\nttRp8397\nsS'Y:VBus95'\np8398\ng26\n(S'Variable_Type'\n(I2\nttRp8399\nsS'Y:VBus107'\np8400\ng26\n(S'Variable_Type'\n(I2\nttRp8401\nsS'Y:VBus106'\np8402\ng26\n(S'Variable_Type'\n(I2\nttRp8403\nsS'Y:VBus105'\np8404\ng26\n(S'Variable_Type'\n(I2\nttRp8405\nsS'Y22:%RateA 22-23'\np8406\ng26\n(S'Variable_Type'\n(I1\nttRp8407\nsS'Y:VBus103'\np8408\ng26\n(S'Variable_Type'\n(I2\nttRp8409\nsS'Y:VBus102'\np8410\ng26\n(S'Variable_Type'\n(I2\nttRp8411\nsS'Y:VBus101'\np8412\ng26\n(S'Variable_Type'\n(I2\nttRp8413\nsS'Y:VBus100'\np8414\ng26\n(S'Variable_Type'\n(I2\nttRp8415\nsS'Y:Load 55'\np8416\ng26\n(S'Variable_Type'\n(I2\nttRp8417\nsS'Y:Load 57'\np8418\ng26\n(S'Variable_Type'\n(I2\nttRp8419\nsS'Y:Load 51'\np8420\ng26\n(S'Variable_Type'\n(I2\nttRp8421\nsS'Y:VBus54'\np8422\ng26\n(S'Variable_Type'\n(I2\nttRp8423\nsS'Y:VBus109'\np8424\ng26\n(S'Variable_Type'\n(I2\nttRp8425\nsS'Y46:%RateA 36-48'\np8426\ng26\n(S'Variable_Type'\n(I2\nttRp8427\nsS'Y:Load 80'\np8428\ng26\n(S'Variable_Type'\n(I2\nttRp8429\nsS'Y:PMachine133'\np8430\ng26\n(S'Variable_Type'\n(I2\nttRp8431\nsS'Y:VBus55'\np8432\ng26\n(S'Variable_Type'\n(I2\nttRp8433\nsS'Y:PMachine29'\np8434\ng26\n(S'Variable_Type'\n(I1\nttRp8435\nsS'Y24:%RateA 23-32'\np8436\ng26\n(S'Variable_Type'\n(I2\nttRp8437\nsS'X:lineOff#'\np8438\ng26\n(S'Variable_Type'\n(I2\nttRp8439\nsS'Y:Max%A'\np8440\ng26\n(S'Variable_Type'\n(I2\nttRp8441\nsS'Y:NbeTransit_0.9-1'\np8442\ng26\n(S'Variable_Type'\n(I1\nttRp8443\nsS'XProdEolienne%Pnom'\np8444\ng26\n(S'Variable_Type'\n(I2\nttRp8445\nsS'Y33:%RateA 27-33'\np8446\ng26\n(S'Variable_Type'\n(I2\nttRp8447\nsS'Y59:%RateA 80-81'\np8448\ng26\n(S'Variable_Type'\n(I1\nttRp8449\nsS'Y:VBus65'\np8450\ng26\n(S'Variable_Type'\n(I2\nttRp8451\nsS'TAC VAZZIO'\np8452\ng26\n(S'Variable_Type'\n(I2\nttRp8453\nsS'Y:VBus118'\np8454\ng26\n(S'Variable_Type'\n(I2\nttRp8455\nsS'Y:VBus119'\np8456\ng26\n(S'Variable_Type'\n(I2\nttRp8457\nsS'Y:PMachine117'\np8458\ng26\n(S'Variable_Type'\n(I2\nttRp8459\nsS'Y:PMachine116'\np8460\ng26\n(S'Variable_Type'\n(I2\nttRp8461\nsS'Y:PMachine111'\np8462\ng26\n(S'Variable_Type'\n(I2\nttRp8463\nsS'Y:VBus88'\np8464\ng26\n(S'Variable_Type'\n(I2\nttRp8465\nsS'Y:PMachine113'\np8466\ng26\n(S'Variable_Type'\n(I2\nttRp8467\nsS'Y:VBus93'\np8468\ng26\n(S'Variable_Type'\n(I2\nttRp8469\nsS'Y:VBus110'\np8470\ng26\n(S'Variable_Type'\n(I2\nttRp8471\nsS'Y:VBus111'\np8472\ng26\n(S'Variable_Type'\n(I2\nttRp8473\nsS'Y:VBus87'\np8474\ng26\n(S'Variable_Type'\n(I2\nttRp8475\nsS'Y12:%RateA 18-30'\np8476\ng26\n(S'Variable_Type'\n(I2\nttRp8477\nsS'Y:VBus114'\np8478\ng26\n(S'Variable_Type'\n(I2\nttRp8479\nsS'Y:VBus80'\np8480\ng26\n(S'Variable_Type'\n(I2\nttRp8481\nsS'Y:VBus116'\np8482\ng26\n(S'Variable_Type'\n(I2\nttRp8483\nsS'Y:VBus82'\np8484\ng26\n(S'Variable_Type'\n(I2\nttRp8485\nsS'Y61:%RateA 84-85'\np8486\ng26\n(S'Variable_Type'\n(I1\nttRp8487\nsS'Y31:%RateA 26-41'\np8488\ng26\n(S'Variable_Type'\n(I2\nttRp8489\nsS'Y:PMachine131'\np8490\ng26\n(S'Variable_Type'\n(I2\nttRp8491\nsS'Y47:%RateA 38-43'\np8492\ng26\n(S'Variable_Type'\n(I2\nttRp8493\nsS'Y:Load 42'\np8494\ng26\n(S'Variable_Type'\n(I2\nttRp8495\nsS'Y:PMachine85'\np8496\ng26\n(S'Variable_Type'\n(I2\nttRp8497\nsS'Y32:%RateA 26-46'\np8498\ng26\n(S'Variable_Type'\n(I2\nttRp8499\nsS'Y:PMachine132'\np8500\ng26\n(S'Variable_Type'\n(I2\nttRp8501\nsS'Y18:%RateA 19-27'\np8502\ng26\n(S'Variable_Type'\n(I2\nttRp8503\nsS'Y:VBus86'\np8504\ng26\n(S'Variable_Type'\n(I2\nttRp8505\nsS'Y63:%RateA 95-96'\np8506\ng26\n(S'Variable_Type'\n(I1\nttRp8507\nsS'Y17:%RateA 19-22'\np8508\ng26\n(S'Variable_Type'\n(I2\nttRp8509\nsS'Y41:%RateA 32-48'\np8510\ng26\n(S'Variable_Type'\n(I2\nttRp8511\nsS'Y:PMachine30'\np8512\ng26\n(S'Variable_Type'\n(I2\nttRp8513\nsS'Y:VBus117'\np8514\ng26\n(S'Variable_Type'\n(I2\nttRp8515\nsS'Y56:%RateA 72-73'\np8516\ng26\n(S'Variable_Type'\n(I1\nttRp8517\nsS'Y68:%RateA 112-113'\np8518\ng26\n(S'Variable_Type'\n(I1\nttRp8519\nsS'Y:PMachine130'\np8520\ng26\n(S'Variable_Type'\n(I2\nttRp8521\nsS'Y27:%RateA 24-33'\np8522\ng26\n(S'Variable_Type'\n(I2\nttRp8523\nsS'Y:PMachine106'\np8524\ng26\n(S'Variable_Type'\n(I2\nttRp8525\nsS'Y:PMachine107'\np8526\ng26\n(S'Variable_Type'\n(I2\nttRp8527\nsS'Y:PMachine104'\np8528\ng26\n(S'Variable_Type'\n(I2\nttRp8529\nsS'Y:VBus73'\np8530\ng26\n(S'Variable_Type'\n(I2\nttRp8531\nsS'Y:VBus74'\np8532\ng26\n(S'Variable_Type'\n(I2\nttRp8533\nsS'Y:VBus75'\np8534\ng26\n(S'Variable_Type'\n(I2\nttRp8535\nsS'Y:VBus76'\np8536\ng26\n(S'Variable_Type'\n(I2\nttRp8537\nsS'Y:PMachine101'\np8538\ng26\n(S'Variable_Type'\n(I2\nttRp8539\nsS'Y:VBus78'\np8540\ng26\n(S'Variable_Type'\n(I2\nttRp8541\nsS'Y:Load 59'\np8542\ng26\n(S'Variable_Type'\n(I2\nttRp8543\nsS'Y:PMachine115'\np8544\ng26\n(S'Variable_Type'\n(I2\nttRp8545\nsS'Y51:%RateA 53-54'\np8546\ng26\n(S'Variable_Type'\n(I1\nttRp8547\nsS'Y67:%RateA 108-109'\np8548\ng26\n(S'Variable_Type'\n(I1\nttRp8549\nsS'Y:PMachine109'\np8550\ng26\n(S'Variable_Type'\n(I2\nttRp8551\nsS'Y:PMachine83'\np8552\ng26\n(S'Variable_Type'\n(I2\nttRp8553\nsS'Y:PMachine81'\np8554\ng26\n(S'Variable_Type'\n(I2\nttRp8555\nsS'Y:PMachine86'\np8556\ng26\n(S'Variable_Type'\n(I2\nttRp8557\nsS'Y:Load 76'\np8558\ng26\n(S'Variable_Type'\n(I2\nttRp8559\nsS'Y:Load 74'\np8560\ng26\n(S'Variable_Type'\n(I2\nttRp8561\nsS'Y45:%RateA 36-37'\np8562\ng26\n(S'Variable_Type'\n(I2\nttRp8563\nsS'Y58:%RateA 78-79'\np8564\ng26\n(S'Variable_Type'\n(I1\nttRp8565\nsS'Y:Load 78'\np8566\ng26\n(S'Variable_Type'\n(I2\nttRp8567\nsS'X:Load(pu)'\np8568\ng26\n(S'Variable_Type'\n(I2\nttRp8569\nsS'Y5:%RateA 13-29'\np8570\ng26\n(S'Variable_Type'\n(I2\nttRp8571\nsS'Y:PMachine118'\np8572\ng26\n(S'Variable_Type'\n(I2\nttRp8573\nsS'Y1:%RateA 11-47'\np8574\ng26\n(S'Variable_Type'\n(I2\nttRp8575\nsS'Y:VBus60'\np8576\ng26\n(S'Variable_Type'\n(I2\nttRp8577\nsS'Y:PMachine137'\np8578\ng26\n(S'Variable_Type'\n(I1\nttRp8579\nsS'Y29:%RateA 25-29'\np8580\ng26\n(S'Variable_Type'\n(I2\nttRp8581\nsS'Y:VBus66'\np8582\ng26\n(S'Variable_Type'\n(I2\nttRp8583\nsS'Iteration'\np8584\ng26\n(S'Variable_Type'\n(I2\nttRp8585\nsS'Y36:%RateA 29-30'\np8586\ng26\n(S'Variable_Type'\n(I1\nttRp8587\nsS'Y54:%RateA 59-60'\np8588\ng26\n(S'Variable_Type'\n(I1\nttRp8589\nsS'Y:Load 90'\np8590\ng26\n(S'Variable_Type'\n(I2\nttRp8591\nsS'Y9:%RateA 16-32'\np8592\ng26\n(S'Variable_Type'\n(I2\nttRp8593\nsS'Y:PMachine134'\np8594\ng26\n(S'Variable_Type'\n(I1\nttRp8595\nsS'Y:Load 95'\np8596\ng26\n(S'Variable_Type'\n(I2\nttRp8597\nsS'Y:VBus63'\np8598\ng26\n(S'Variable_Type'\n(I2\nttRp8599\nsS'Y:VBus62'\np8600\ng26\n(S'Variable_Type'\n(I2\nttRp8601\nsS'Y:VBus61'\np8602\ng26\n(S'Variable_Type'\n(I2\nttRp8603\nsS'Y55:%RateA 61-62'\np8604\ng26\n(S'Variable_Type'\n(I1\nttRp8605\nsS'Y8:%RateA 15-35'\np8606\ng26\n(S'Variable_Type'\n(I2\nttRp8607\nsS'Y:PMachine136'\np8608\ng26\n(S'Variable_Type'\n(I1\nttRp8609\nsS'Y:PMachine135'\np8610\ng26\n(S'Variable_Type'\n(I1\nttRp8611\nsS'Y:VBus64'\np8612\ng26\n(S'Variable_Type'\n(I2\nttRp8613\nsS'Y:PMachine94'\np8614\ng26\n(S'Variable_Type'\n(I2\nttRp8615\nsS'Y:VBus69'\np8616\ng26\n(S'Variable_Type'\n(I2\nttRp8617\nsS'Y:VBus108'\np8618\ng26\n(S'Variable_Type'\n(I2\nttRp8619\nsS'Y:PMachine139'\np8620\ng26\n(S'Variable_Type'\n(I1\nttRp8621\nsS'Y:PMachine97'\np8622\ng26\n(S'Variable_Type'\n(I2\nttRp8623\nsS'Y:PMachine92'\np8624\ng26\n(S'Variable_Type'\n(I2\nttRp8625\nsS'Y:VBus68'\np8626\ng26\n(S'Variable_Type'\n(I2\nttRp8627\nsS'Y:Load 61'\np8628\ng26\n(S'Variable_Type'\n(I2\nttRp8629\nsS'Y:VBus89'\np8630\ng26\n(S'Variable_Type'\n(I2\nttRp8631\nsS'Y21:%RateA 21-43'\np8632\ng26\n(S'Variable_Type'\n(I2\nttRp8633\nsS'Y:PMachine90'\np8634\ng26\n(S'Variable_Type'\n(I2\nttRp8635\nsS'Y:PMachine14'\np8636\ng26\n(S'Variable_Type'\n(I2\nttRp8637\nsS'Y:PMachine63'\np8638\ng26\n(S'Variable_Type'\n(I2\nttRp8639\nsS'Y:PMachine93'\np8640\ng26\n(S'Variable_Type'\n(I2\nttRp8641\nsS'Y:PConsoTot'\np8642\ng26\n(S'Variable_Type'\n(I2\nttRp8643\nsS'Y23:%RateA 22-31'\np8644\ng26\n(S'Variable_Type'\n(I2\nttRp8645\nsS'Y19:%RateA 20-26'\np8646\ng26\n(S'Variable_Type'\n(I2\nttRp8647\nsS'Y:PMachine18'\np8648\ng26\n(S'Variable_Type'\n(I2\nttRp8649\nsS'Y:VBus34'\np8650\ng26\n(S'Variable_Type'\n(I2\nttRp8651\nsS'Y:NbeTension'\np8652\ng26\n(S'Variable_Type'\n(I2\nttRp8653\nsS'TOT PV'\np8654\ng26\n(S'Variable_Type'\n(I2\nttRp8655\nsS'Y:PMachine128'\np8656\ng26\n(S'Variable_Type'\n(I2\nttRp8657\nsS'Y:PMachine129'\np8658\ng26\n(S'Variable_Type'\n(I2\nttRp8659\nsS'Y:VBus133'\np8660\ng26\n(S'Variable_Type'\n(I2\nttRp8661\nsS'Y:Load 82'\np8662\ng26\n(S'Variable_Type'\n(I2\nttRp8663\nsS'Y:PMachine125'\np8664\ng26\n(S'Variable_Type'\n(I2\nttRp8665\nsS'Y:PMachine126'\np8666\ng26\n(S'Variable_Type'\n(I2\nttRp8667\nsS'Y:PMachine127'\np8668\ng26\n(S'Variable_Type'\n(I2\nttRp8669\nsS'Y:Load 86'\np8670\ng26\n(S'Variable_Type'\n(I2\nttRp8671\nsS'Y:PMachine121'\np8672\ng26\n(S'Variable_Type'\n(I2\nttRp8673\nsS'Y:Load 84'\np8674\ng26\n(S'Variable_Type'\n(I2\nttRp8675\nsS'Y:PMachine123'\np8676\ng26\n(S'Variable_Type'\n(I2\nttRp8677\nsS'Y:Load 102'\np8678\ng26\n(S'Variable_Type'\n(I2\nttRp8679\nsS'Y:VBus57'\np8680\ng26\n(S'Variable_Type'\n(I2\nttRp8681\nsS'Y:Load 100'\np8682\ng26\n(S'Variable_Type'\n(I2\nttRp8683\nsS'Y:Load 101'\np8684\ng26\n(S'Variable_Type'\n(I2\nttRp8685\nsS'Y:VBus52'\np8686\ng26\n(S'Variable_Type'\n(I2\nttRp8687\nsS'Y:VBus53'\np8688\ng26\n(S'Variable_Type'\n(I2\nttRp8689\nsS'Y:Load 104'\np8690\ng26\n(S'Variable_Type'\n(I2\nttRp8691\nsS'Y:VBus51'\np8692\ng26\n(S'Variable_Type'\n(I2\nttRp8693\nsS'Y:Load 108'\np8694\ng26\n(S'Variable_Type'\n(I2\nttRp8695\nsS'Y64:%RateA 102-103'\np8696\ng26\n(S'Variable_Type'\n(I1\nttRp8697\nsS'Y:PMachine112'\np8698\ng26\n(S'Variable_Type'\n(I2\nttRp8699\nsS'Y:VBus58'\np8700\ng26\n(S'Variable_Type'\n(I2\nttRp8701\nsS'Y:VBus59'\np8702\ng26\n(S'Variable_Type'\n(I2\nttRp8703\nsS'Y:Load 53'\np8704\ng26\n(S'Variable_Type'\n(I2\nttRp8705\nsS'Y10:%RateA 16-47'\np8706\ng26\n(S'Variable_Type'\n(I2\nttRp8707\nsS'Y:PMachine54'\np8708\ng26\n(S'Variable_Type'\n(I2\nttRp8709\nsS'Y:VBus56'\np8710\ng26\n(S'Variable_Type'\n(I2\nttRp8711\nsS'TOT WIND'\np8712\ng26\n(S'Variable_Type'\n(I2\nttRp8713\nsS'Y3:%RateA 12-24'\np8714\ng26\n(S'Variable_Type'\n(I2\nttRp8715\nsS'Y11:%RateA 17-27'\np8716\ng26\n(S'Variable_Type'\n(I2\nttRp8717\nsS'Y:PMachine114'\np8718\ng26\n(S'Variable_Type'\n(I2\nttRp8719\nsS'Y:VBus72'\np8720\ng26\n(S'Variable_Type'\n(I2\nttRp8721\nsS'Y:PMachine60'\np8722\ng26\n(S'Variable_Type'\n(I2\nttRp8723\nsS'Y:PMachine61'\np8724\ng26\n(S'Variable_Type'\n(I1\nttRp8725\nsS'Y:PMachine62'\np8726\ng26\n(S'Variable_Type'\n(I2\nttRp8727\nsS'Y:PMachine105'\np8728\ng26\n(S'Variable_Type'\n(I2\nttRp8729\nsS'Y:PMachine64'\np8730\ng26\n(S'Variable_Type'\n(I2\nttRp8731\nsS'Y:PMachine65'\np8732\ng26\n(S'Variable_Type'\n(I2\nttRp8733\nsS'Y:PMachine66'\np8734\ng26\n(S'Variable_Type'\n(I2\nttRp8735\nsS'Y:PMachine67'\np8736\ng26\n(S'Variable_Type'\n(I2\nttRp8737\nsS'Y:PMachine68'\np8738\ng26\n(S'Variable_Type'\n(I2\nttRp8739\nsS'Y:PMachine102'\np8740\ng26\n(S'Variable_Type'\n(I2\nttRp8741\nsS'X:ProdPV%Pnom'\np8742\ng26\n(S'Variable_Type'\n(I2\nttRp8743\nsS'Y:VBus138'\np8744\ng26\n(S'Variable_Type'\n(I2\nttRp8745\nsS'Y26:%RateA 24-25'\np8746\ng26\n(S'Variable_Type'\n(I1\nttRp8747\nssg630\n(dp8748\nsg632\n(dp8749\ng2509\n(S'Iteration'\np8750\ng8585\ntp8751\nsg2512\n(g638\nI0\ntp8752\nsg2514\n(g8750\ng8585\ntp8753\nsg2516\n(S''\nI0\ntp8754\nsg2518\n(S''\nI0\ntp8755\nsg2520\n(NI-2\ntp8756\nsg2522\n((lI-2\ntp8757\nssg650\nF1369931731.908\nsba(iOWContexts\nContext\np8758\n(dp8759\ng20\n(lp8760\ng1272\nasg23\n(dp8761\nS'Y:VBus48'\np8762\ng26\n(S'Variable_Type'\n(I2\nttRp8763\nsS'Y15:%RateA 18-44'\np8764\ng26\n(S'Variable_Type'\n(I2\nttRp8765\nsS'Y:VBus41'\np8766\ng26\n(S'Variable_Type'\n(I2\nttRp8767\nsS'Y:VBus40'\np8768\ng26\n(S'Variable_Type'\n(I2\nttRp8769\nsS'Y:VBus43'\np8770\ng26\n(S'Variable_Type'\n(I2\nttRp8771\nsS'Y:VBus42'\np8772\ng26\n(S'Variable_Type'\n(I2\nttRp8773\nsS'Y:VBus45'\np8774\ng26\n(S'Variable_Type'\n(I2\nttRp8775\nsS'Y:VBus44'\np8776\ng26\n(S'Variable_Type'\n(I2\nttRp8777\nsS'Y:VBus47'\np8778\ng26\n(S'Variable_Type'\n(I2\nttRp8779\nsS'Y:VBus46'\np8780\ng26\n(S'Variable_Type'\n(I2\nttRp8781\nsS'Y39:%RateA 32-45'\np8782\ng26\n(S'Variable_Type'\n(I2\nttRp8783\nsS'Y:Load 110'\np8784\ng26\n(S'Variable_Type'\n(I2\nttRp8785\nsS'Y:Load 115'\np8786\ng26\n(S'Variable_Type'\n(I2\nttRp8787\nsS'Y:VBus79'\np8788\ng26\n(S'Variable_Type'\n(I2\nttRp8789\nsS'Y13:%RateA 18-30'\np8790\ng26\n(S'Variable_Type'\n(I2\nttRp8791\nsS'Y34:%RateA 28-38'\np8792\ng26\n(S'Variable_Type'\n(I2\nttRp8793\nsS'Y:NbeTransit'\np8794\ng26\n(S'Variable_Type'\n(I1\nttRp8795\nsS'Y:VBus104'\np8796\ng26\n(S'Variable_Type'\n(I2\nttRp8797\nsS'Y20:%RateA 20-44'\np8798\ng26\n(S'Variable_Type'\n(I2\nttRp8799\nsS'Y38:%RateA 32-45'\np8800\ng26\n(S'Variable_Type'\n(I2\nttRp8801\nsS'Y:PMachine73'\np8802\ng26\n(S'Variable_Type'\n(I2\nttRp8803\nsS'Y:PMachine72'\np8804\ng26\n(S'Variable_Type'\n(I2\nttRp8805\nsS'Y49:%RateA 40-48'\np8806\ng26\n(S'Variable_Type'\n(I2\nttRp8807\nsS'Y:PMachine77'\np8808\ng26\n(S'Variable_Type'\n(I2\nttRp8809\nsS'Y:PMachine75'\np8810\ng26\n(S'Variable_Type'\n(I2\nttRp8811\nsS'Y:PMachine74'\np8812\ng26\n(S'Variable_Type'\n(I2\nttRp8813\nsS'Y:PMachine78'\np8814\ng26\n(S'Variable_Type'\n(I1\nttRp8815\nsS'Y:PMachine138'\np8816\ng26\n(S'Variable_Type'\n(I1\nttRp8817\nsS'Y28:%RateA 24-42'\np8818\ng26\n(S'Variable_Type'\n(I2\nttRp8819\nsS'Y:PProdTot'\np8820\ng26\n(S'Variable_Type'\n(I2\nttRp8821\nsS'Y:PMachine69'\np8822\ng26\n(S'Variable_Type'\n(I2\nttRp8823\nsS'Y:VBus38'\np8824\ng26\n(S'Variable_Type'\n(I2\nttRp8825\nsS'Y:VBus39'\np8826\ng26\n(S'Variable_Type'\n(I2\nttRp8827\nsS'Y62:%RateA 86-87'\np8828\ng26\n(S'Variable_Type'\n(I1\nttRp8829\nsS'Y:PMachine1'\np8830\ng26\n(S'Variable_Type'\n(I2\nttRp8831\nsS'Y:VBus35'\np8832\ng26\n(S'Variable_Type'\n(I2\nttRp8833\nsS'Y:VBus36'\np8834\ng26\n(S'Variable_Type'\n(I2\nttRp8835\nsS'Y:VBus37'\np8836\ng26\n(S'Variable_Type'\n(I2\nttRp8837\nsS'Y:VBus30'\np8838\ng26\n(S'Variable_Type'\n(I2\nttRp8839\nsS'Y:VBus31'\np8840\ng26\n(S'Variable_Type'\n(I2\nttRp8841\nsS'Y:VBus32'\np8842\ng26\n(S'Variable_Type'\n(I2\nttRp8843\nsS'Y:VBus33'\np8844\ng26\n(S'Variable_Type'\n(I2\nttRp8845\nsS'Y53:%RateA 57-58'\np8846\ng26\n(S'Variable_Type'\n(I1\nttRp8847\nsS'Y14:%RateA 18-31'\np8848\ng26\n(S'Variable_Type'\n(I2\nttRp8849\nsS'Y48:%RateA 39-46'\np8850\ng26\n(S'Variable_Type'\n(I2\nttRp8851\nsS'Y60:%RateA 82-83'\np8852\ng26\n(S'Variable_Type'\n(I1\nttRp8853\nsS'Y:PMachine87'\np8854\ng26\n(S'Variable_Type'\n(I2\nttRp8855\nsS'Y:VBus121'\np8856\ng26\n(S'Variable_Type'\n(I2\nttRp8857\nsS'Y:VBus120'\np8858\ng26\n(S'Variable_Type'\n(I2\nttRp8859\nsS'Y:VBus123'\np8860\ng26\n(S'Variable_Type'\n(I2\nttRp8861\nsS'Y:VBus122'\np8862\ng26\n(S'Variable_Type'\n(I2\nttRp8863\nsS'Y:VBus125'\np8864\ng26\n(S'Variable_Type'\n(I2\nttRp8865\nsS'Y:VBus124'\np8866\ng26\n(S'Variable_Type'\n(I2\nttRp8867\nsS'Y:VBus127'\np8868\ng26\n(S'Variable_Type'\n(I2\nttRp8869\nsS'Y:VBus126'\np8870\ng26\n(S'Variable_Type'\n(I2\nttRp8871\nsS'Y:VBus129'\np8872\ng26\n(S'Variable_Type'\n(I2\nttRp8873\nsS'Y:VBus128'\np8874\ng26\n(S'Variable_Type'\n(I2\nttRp8875\nsS'Y37:%RateA 32-34'\np8876\ng26\n(S'Variable_Type'\n(I2\nttRp8877\nsS'Y43:%RateA 35-37'\np8878\ng26\n(S'Variable_Type'\n(I2\nttRp8879\nsS'Y:PMachine42'\np8880\ng26\n(S'Variable_Type'\n(I2\nttRp8881\nsS'Y0:%RateA 11-28'\np8882\ng26\n(S'Variable_Type'\n(I2\nttRp8883\nsS'Y:VBus67'\np8884\ng26\n(S'Variable_Type'\n(I2\nttRp8885\nsS'Y:Load 37'\np8886\ng26\n(S'Variable_Type'\n(I2\nttRp8887\nsS'Y65:%RateA 104-105'\np8888\ng26\n(S'Variable_Type'\n(I1\nttRp8889\nsS'Y40:%RateA 32-47'\np8890\ng26\n(S'Variable_Type'\n(I2\nttRp8891\nsS'Y:PMachine47'\np8892\ng26\n(S'Variable_Type'\n(I2\nttRp8893\nsS'Y6:%RateA 14-15'\np8894\ng26\n(S'Variable_Type'\n(I1\nttRp8895\nsS'Y:VBus1'\np8896\ng26\n(S'Variable_Type'\n(I2\nttRp8897\nsS'Y44:%RateA 35-39'\np8898\ng26\n(S'Variable_Type'\n(I2\nttRp8899\nsS'Y:PMachine88'\np8900\ng26\n(S'Variable_Type'\n(I1\nttRp8901\nsS'Y42:%RateA 34-36'\np8902\ng26\n(S'Variable_Type'\n(I2\nttRp8903\nsS'Y57:%RateA 76-77'\np8904\ng26\n(S'Variable_Type'\n(I1\nttRp8905\nsS'Y:PMachine89'\np8906\ng26\n(S'Variable_Type'\n(I1\nttRp8907\nsS'Y:VBus77'\np8908\ng26\n(S'Variable_Type'\n(I2\nttRp8909\nsS'Y:VBus29'\np8910\ng26\n(S'Variable_Type'\n(I2\nttRp8911\nsS'Y:VBus28'\np8912\ng26\n(S'Variable_Type'\n(I2\nttRp8913\nsS'Y:VBus27'\np8914\ng26\n(S'Variable_Type'\n(I2\nttRp8915\nsS'Y:VBus26'\np8916\ng26\n(S'Variable_Type'\n(I2\nttRp8917\nsS'Y:VBus25'\np8918\ng26\n(S'Variable_Type'\n(I2\nttRp8919\nsS'Y:VBus24'\np8920\ng26\n(S'Variable_Type'\n(I2\nttRp8921\nsS'Y:VBus23'\np8922\ng26\n(S'Variable_Type'\n(I2\nttRp8923\nsS'Y:VBus22'\np8924\ng26\n(S'Variable_Type'\n(I2\nttRp8925\nsS'Y:VBus21'\np8926\ng26\n(S'Variable_Type'\n(I2\nttRp8927\nsS'Y:VBus20'\np8928\ng26\n(S'Variable_Type'\n(I2\nttRp8929\nsS'Y:VBus85'\np8930\ng26\n(S'Variable_Type'\n(I2\nttRp8931\nsS'Y:VBus84'\np8932\ng26\n(S'Variable_Type'\n(I2\nttRp8933\nsS'Y52:%RateA 55-56'\np8934\ng26\n(S'Variable_Type'\n(I1\nttRp8935\nsS'Y2:%RateA 12-24'\np8936\ng26\n(S'Variable_Type'\n(I2\nttRp8937\nsS'Y:VBus112'\np8938\ng26\n(S'Variable_Type'\n(I2\nttRp8939\nsS'Y:VBus132'\np8940\ng26\n(S'Variable_Type'\n(I2\nttRp8941\nsS'Y:PMachine58'\np8942\ng26\n(S'Variable_Type'\n(I2\nttRp8943\nsS'Y:VBus130'\np8944\ng26\n(S'Variable_Type'\n(I2\nttRp8945\nsS'Y:VBus131'\np8946\ng26\n(S'Variable_Type'\n(I2\nttRp8947\nsS'Y:VBus136'\np8948\ng26\n(S'Variable_Type'\n(I2\nttRp8949\nsS'Y:VBus137'\np8950\ng26\n(S'Variable_Type'\n(I2\nttRp8951\nsS'Y:VBus134'\np8952\ng26\n(S'Variable_Type'\n(I2\nttRp8953\nsS'Y:VBus135'\np8954\ng26\n(S'Variable_Type'\n(I2\nttRp8955\nsS'Y:VBus81'\np8956\ng26\n(S'Variable_Type'\n(I2\nttRp8957\nsS'Y:PMachine53'\np8958\ng26\n(S'Variable_Type'\n(I2\nttRp8959\nsS'Y:VBus139'\np8960\ng26\n(S'Variable_Type'\n(I2\nttRp8961\nsS'Y30:%RateA 25-29'\np8962\ng26\n(S'Variable_Type'\n(I2\nttRp8963\nsS'Y:VBus115'\np8964\ng26\n(S'Variable_Type'\n(I2\nttRp8965\nsS'Y:PMachine124'\np8966\ng26\n(S'Variable_Type'\n(I2\nttRp8967\nsS'Y:VBus83'\np8968\ng26\n(S'Variable_Type'\n(I2\nttRp8969\nsS'Y66:%RateA 106-107'\np8970\ng26\n(S'Variable_Type'\n(I1\nttRp8971\nsS'Y25:%RateA 23-41'\np8972\ng26\n(S'Variable_Type'\n(I2\nttRp8973\nsS'Y:%Losses'\np8974\ng26\n(S'Variable_Type'\n(I2\nttRp8975\nsS'Y:VBus12'\np8976\ng26\n(S'Variable_Type'\n(I2\nttRp8977\nsS'Y:VBus13'\np8978\ng26\n(S'Variable_Type'\n(I2\nttRp8979\nsS'Y50:%RateA 51-52'\np8980\ng26\n(S'Variable_Type'\n(I1\nttRp8981\nsS'Y:VBus11'\np8982\ng26\n(S'Variable_Type'\n(I2\nttRp8983\nsS'Y:VBus16'\np8984\ng26\n(S'Variable_Type'\n(I2\nttRp8985\nsS'Y:VBus17'\np8986\ng26\n(S'Variable_Type'\n(I2\nttRp8987\nsS'Y:VBus14'\np8988\ng26\n(S'Variable_Type'\n(I2\nttRp8989\nsS'Y:VBus15'\np8990\ng26\n(S'Variable_Type'\n(I2\nttRp8991\nsS'Y:VBus113'\np8992\ng26\n(S'Variable_Type'\n(I2\nttRp8993\nsS'Y:PMachine120'\np8994\ng26\n(S'Variable_Type'\n(I2\nttRp8995\nsS'Y:VBus18'\np8996\ng26\n(S'Variable_Type'\n(I2\nttRp8997\nsS'Y:VBus19'\np8998\ng26\n(S'Variable_Type'\n(I2\nttRp8999\nsS'Y4:%RateA 13-25'\np9000\ng26\n(S'Variable_Type'\n(I2\nttRp9001\nsS'DIESEL VAZZIO'\np9002\ng26\n(S'Variable_Type'\n(I2\nttRp9003\nsS'Y35:%RateA 28-47'\np9004\ng26\n(S'Variable_Type'\n(I2\nttRp9005\nsS'Y:PMachine122'\np9006\ng26\n(S'Variable_Type'\n(I2\nttRp9007\nsS'Y16:%RateA 19-21'\np9008\ng26\n(S'Variable_Type'\n(I2\nttRp9009\nsS'Y:VBus92'\np9010\ng26\n(S'Variable_Type'\n(I2\nttRp9011\nsS'Y7:%RateA 14-35'\np9012\ng26\n(S'Variable_Type'\n(I2\nttRp9013\nsS'Y:VBus90'\np9014\ng26\n(S'Variable_Type'\n(I2\nttRp9015\nsS'Y:VBus96'\np9016\ng26\n(S'Variable_Type'\n(I2\nttRp9017\nsS'Y:VBus97'\np9018\ng26\n(S'Variable_Type'\n(I2\nttRp9019\nsS'Y:VBus94'\np9020\ng26\n(S'Variable_Type'\n(I2\nttRp9021\nsS'Y:VBus95'\np9022\ng26\n(S'Variable_Type'\n(I2\nttRp9023\nsS'Y:VBus107'\np9024\ng26\n(S'Variable_Type'\n(I2\nttRp9025\nsS'Y:VBus106'\np9026\ng26\n(S'Variable_Type'\n(I2\nttRp9027\nsS'Y:VBus105'\np9028\ng26\n(S'Variable_Type'\n(I2\nttRp9029\nsS'Y22:%RateA 22-23'\np9030\ng26\n(S'Variable_Type'\n(I1\nttRp9031\nsS'Y:VBus103'\np9032\ng26\n(S'Variable_Type'\n(I2\nttRp9033\nsS'Y:VBus102'\np9034\ng26\n(S'Variable_Type'\n(I2\nttRp9035\nsS'Y:VBus101'\np9036\ng26\n(S'Variable_Type'\n(I2\nttRp9037\nsS'Y:VBus100'\np9038\ng26\n(S'Variable_Type'\n(I2\nttRp9039\nsS'Y:Load 55'\np9040\ng26\n(S'Variable_Type'\n(I2\nttRp9041\nsS'Y:Load 57'\np9042\ng26\n(S'Variable_Type'\n(I2\nttRp9043\nsS'Y:Load 51'\np9044\ng26\n(S'Variable_Type'\n(I2\nttRp9045\nsS'Y:VBus54'\np9046\ng26\n(S'Variable_Type'\n(I2\nttRp9047\nsS'Y:VBus109'\np9048\ng26\n(S'Variable_Type'\n(I2\nttRp9049\nsS'Y46:%RateA 36-48'\np9050\ng26\n(S'Variable_Type'\n(I2\nttRp9051\nsS'Y:Load 80'\np9052\ng26\n(S'Variable_Type'\n(I2\nttRp9053\nsS'Y:PMachine133'\np9054\ng26\n(S'Variable_Type'\n(I2\nttRp9055\nsS'Y:VBus55'\np9056\ng26\n(S'Variable_Type'\n(I2\nttRp9057\nsS'Y:PMachine29'\np9058\ng26\n(S'Variable_Type'\n(I1\nttRp9059\nsS'Y24:%RateA 23-32'\np9060\ng26\n(S'Variable_Type'\n(I2\nttRp9061\nsS'X:lineOff#'\np9062\ng26\n(S'Variable_Type'\n(I2\nttRp9063\nsS'Y:Max%A'\np9064\ng26\n(S'Variable_Type'\n(I2\nttRp9065\nsS'Y:NbeTransit_0.9-1'\np9066\ng26\n(S'Variable_Type'\n(I1\nttRp9067\nsS'XProdEolienne%Pnom'\np9068\ng26\n(S'Variable_Type'\n(I2\nttRp9069\nsS'Y33:%RateA 27-33'\np9070\ng26\n(S'Variable_Type'\n(I2\nttRp9071\nsS'Y59:%RateA 80-81'\np9072\ng26\n(S'Variable_Type'\n(I1\nttRp9073\nsS'Y:VBus65'\np9074\ng26\n(S'Variable_Type'\n(I2\nttRp9075\nsS'TAC VAZZIO'\np9076\ng26\n(S'Variable_Type'\n(I2\nttRp9077\nsS'Y:VBus118'\np9078\ng26\n(S'Variable_Type'\n(I2\nttRp9079\nsS'Y:VBus119'\np9080\ng26\n(S'Variable_Type'\n(I2\nttRp9081\nsS'Y:PMachine117'\np9082\ng26\n(S'Variable_Type'\n(I2\nttRp9083\nsS'Y:PMachine116'\np9084\ng26\n(S'Variable_Type'\n(I2\nttRp9085\nsS'Y:PMachine111'\np9086\ng26\n(S'Variable_Type'\n(I2\nttRp9087\nsS'Y:VBus88'\np9088\ng26\n(S'Variable_Type'\n(I2\nttRp9089\nsS'Y:PMachine113'\np9090\ng26\n(S'Variable_Type'\n(I2\nttRp9091\nsS'Y:VBus93'\np9092\ng26\n(S'Variable_Type'\n(I2\nttRp9093\nsS'Y:VBus110'\np9094\ng26\n(S'Variable_Type'\n(I2\nttRp9095\nsS'Y:VBus111'\np9096\ng26\n(S'Variable_Type'\n(I2\nttRp9097\nsS'Y:VBus87'\np9098\ng26\n(S'Variable_Type'\n(I2\nttRp9099\nsS'Y12:%RateA 18-30'\np9100\ng26\n(S'Variable_Type'\n(I2\nttRp9101\nsS'Y:VBus114'\np9102\ng26\n(S'Variable_Type'\n(I2\nttRp9103\nsS'Y:VBus80'\np9104\ng26\n(S'Variable_Type'\n(I2\nttRp9105\nsS'Y:VBus116'\np9106\ng26\n(S'Variable_Type'\n(I2\nttRp9107\nsS'Y:VBus82'\np9108\ng26\n(S'Variable_Type'\n(I2\nttRp9109\nsS'Y61:%RateA 84-85'\np9110\ng26\n(S'Variable_Type'\n(I1\nttRp9111\nsS'Y31:%RateA 26-41'\np9112\ng26\n(S'Variable_Type'\n(I2\nttRp9113\nsS'Y:PMachine131'\np9114\ng26\n(S'Variable_Type'\n(I2\nttRp9115\nsS'Y47:%RateA 38-43'\np9116\ng26\n(S'Variable_Type'\n(I2\nttRp9117\nsS'Y:Load 42'\np9118\ng26\n(S'Variable_Type'\n(I2\nttRp9119\nsS'Y:PMachine85'\np9120\ng26\n(S'Variable_Type'\n(I2\nttRp9121\nsS'Y32:%RateA 26-46'\np9122\ng26\n(S'Variable_Type'\n(I2\nttRp9123\nsS'Y:PMachine132'\np9124\ng26\n(S'Variable_Type'\n(I2\nttRp9125\nsS'Y18:%RateA 19-27'\np9126\ng26\n(S'Variable_Type'\n(I2\nttRp9127\nsS'Y:VBus86'\np9128\ng26\n(S'Variable_Type'\n(I2\nttRp9129\nsS'Y63:%RateA 95-96'\np9130\ng26\n(S'Variable_Type'\n(I1\nttRp9131\nsS'Y17:%RateA 19-22'\np9132\ng26\n(S'Variable_Type'\n(I2\nttRp9133\nsS'Y41:%RateA 32-48'\np9134\ng26\n(S'Variable_Type'\n(I2\nttRp9135\nsS'Y:PMachine30'\np9136\ng26\n(S'Variable_Type'\n(I2\nttRp9137\nsS'Y:VBus117'\np9138\ng26\n(S'Variable_Type'\n(I2\nttRp9139\nsS'Y56:%RateA 72-73'\np9140\ng26\n(S'Variable_Type'\n(I1\nttRp9141\nsS'Y68:%RateA 112-113'\np9142\ng26\n(S'Variable_Type'\n(I1\nttRp9143\nsS'Y:PMachine130'\np9144\ng26\n(S'Variable_Type'\n(I2\nttRp9145\nsS'Y27:%RateA 24-33'\np9146\ng26\n(S'Variable_Type'\n(I2\nttRp9147\nsS'Y:PMachine106'\np9148\ng26\n(S'Variable_Type'\n(I2\nttRp9149\nsS'Y:PMachine107'\np9150\ng26\n(S'Variable_Type'\n(I2\nttRp9151\nsS'Y:PMachine104'\np9152\ng26\n(S'Variable_Type'\n(I2\nttRp9153\nsS'Y:VBus73'\np9154\ng26\n(S'Variable_Type'\n(I2\nttRp9155\nsS'Y:VBus74'\np9156\ng26\n(S'Variable_Type'\n(I2\nttRp9157\nsS'Y:VBus75'\np9158\ng26\n(S'Variable_Type'\n(I2\nttRp9159\nsS'Y:VBus76'\np9160\ng26\n(S'Variable_Type'\n(I2\nttRp9161\nsS'Y:PMachine101'\np9162\ng26\n(S'Variable_Type'\n(I2\nttRp9163\nsS'Y:VBus78'\np9164\ng26\n(S'Variable_Type'\n(I2\nttRp9165\nsS'Y:Load 59'\np9166\ng26\n(S'Variable_Type'\n(I2\nttRp9167\nsS'Y:PMachine115'\np9168\ng26\n(S'Variable_Type'\n(I2\nttRp9169\nsS'Y51:%RateA 53-54'\np9170\ng26\n(S'Variable_Type'\n(I1\nttRp9171\nsS'Y67:%RateA 108-109'\np9172\ng26\n(S'Variable_Type'\n(I1\nttRp9173\nsS'Y:PMachine109'\np9174\ng26\n(S'Variable_Type'\n(I2\nttRp9175\nsS'Y:PMachine83'\np9176\ng26\n(S'Variable_Type'\n(I2\nttRp9177\nsS'Y:PMachine81'\np9178\ng26\n(S'Variable_Type'\n(I2\nttRp9179\nsS'Y:PMachine86'\np9180\ng26\n(S'Variable_Type'\n(I2\nttRp9181\nsS'Y:Load 76'\np9182\ng26\n(S'Variable_Type'\n(I2\nttRp9183\nsS'Y:Load 74'\np9184\ng26\n(S'Variable_Type'\n(I2\nttRp9185\nsS'Y45:%RateA 36-37'\np9186\ng26\n(S'Variable_Type'\n(I2\nttRp9187\nsS'Y58:%RateA 78-79'\np9188\ng26\n(S'Variable_Type'\n(I1\nttRp9189\nsS'Y:Load 78'\np9190\ng26\n(S'Variable_Type'\n(I2\nttRp9191\nsS'X:Load(pu)'\np9192\ng26\n(S'Variable_Type'\n(I2\nttRp9193\nsS'Y5:%RateA 13-29'\np9194\ng26\n(S'Variable_Type'\n(I2\nttRp9195\nsS'Y:PMachine118'\np9196\ng26\n(S'Variable_Type'\n(I2\nttRp9197\nsS'Y1:%RateA 11-47'\np9198\ng26\n(S'Variable_Type'\n(I2\nttRp9199\nsS'Y:VBus60'\np9200\ng26\n(S'Variable_Type'\n(I2\nttRp9201\nsS'Y:PMachine137'\np9202\ng26\n(S'Variable_Type'\n(I1\nttRp9203\nsS'Y29:%RateA 25-29'\np9204\ng26\n(S'Variable_Type'\n(I2\nttRp9205\nsS'Y:VBus66'\np9206\ng26\n(S'Variable_Type'\n(I2\nttRp9207\nsS'Iteration'\np9208\ng26\n(S'Variable_Type'\n(I2\nttRp9209\nsS'Y36:%RateA 29-30'\np9210\ng26\n(S'Variable_Type'\n(I1\nttRp9211\nsS'Y54:%RateA 59-60'\np9212\ng26\n(S'Variable_Type'\n(I1\nttRp9213\nsS'Y:Load 90'\np9214\ng26\n(S'Variable_Type'\n(I2\nttRp9215\nsS'Y9:%RateA 16-32'\np9216\ng26\n(S'Variable_Type'\n(I2\nttRp9217\nsS'Y:PMachine134'\np9218\ng26\n(S'Variable_Type'\n(I1\nttRp9219\nsS'Y:Load 95'\np9220\ng26\n(S'Variable_Type'\n(I2\nttRp9221\nsS'Y:VBus63'\np9222\ng26\n(S'Variable_Type'\n(I2\nttRp9223\nsS'Y:VBus62'\np9224\ng26\n(S'Variable_Type'\n(I2\nttRp9225\nsS'Y:VBus61'\np9226\ng26\n(S'Variable_Type'\n(I2\nttRp9227\nsS'Y55:%RateA 61-62'\np9228\ng26\n(S'Variable_Type'\n(I1\nttRp9229\nsS'Y8:%RateA 15-35'\np9230\ng26\n(S'Variable_Type'\n(I2\nttRp9231\nsS'Y:PMachine136'\np9232\ng26\n(S'Variable_Type'\n(I1\nttRp9233\nsS'Y:PMachine135'\np9234\ng26\n(S'Variable_Type'\n(I1\nttRp9235\nsS'Y:VBus64'\np9236\ng26\n(S'Variable_Type'\n(I2\nttRp9237\nsS'Y:PMachine94'\np9238\ng26\n(S'Variable_Type'\n(I2\nttRp9239\nsS'Y:VBus69'\np9240\ng26\n(S'Variable_Type'\n(I2\nttRp9241\nsS'Y:VBus108'\np9242\ng26\n(S'Variable_Type'\n(I2\nttRp9243\nsS'Y:PMachine139'\np9244\ng26\n(S'Variable_Type'\n(I1\nttRp9245\nsS'Y:PMachine97'\np9246\ng26\n(S'Variable_Type'\n(I2\nttRp9247\nsS'Y:PMachine92'\np9248\ng26\n(S'Variable_Type'\n(I2\nttRp9249\nsS'Y:VBus68'\np9250\ng26\n(S'Variable_Type'\n(I2\nttRp9251\nsS'Y:Load 61'\np9252\ng26\n(S'Variable_Type'\n(I2\nttRp9253\nsS'Y:VBus89'\np9254\ng26\n(S'Variable_Type'\n(I2\nttRp9255\nsS'Y21:%RateA 21-43'\np9256\ng26\n(S'Variable_Type'\n(I2\nttRp9257\nsS'Y:PMachine90'\np9258\ng26\n(S'Variable_Type'\n(I2\nttRp9259\nsS'Y:PMachine14'\np9260\ng26\n(S'Variable_Type'\n(I2\nttRp9261\nsS'Y:PMachine63'\np9262\ng26\n(S'Variable_Type'\n(I2\nttRp9263\nsS'Y:PMachine93'\np9264\ng26\n(S'Variable_Type'\n(I2\nttRp9265\nsS'Y:PConsoTot'\np9266\ng26\n(S'Variable_Type'\n(I2\nttRp9267\nsS'Y23:%RateA 22-31'\np9268\ng26\n(S'Variable_Type'\n(I2\nttRp9269\nsS'Y19:%RateA 20-26'\np9270\ng26\n(S'Variable_Type'\n(I2\nttRp9271\nsS'Y:PMachine18'\np9272\ng26\n(S'Variable_Type'\n(I2\nttRp9273\nsS'Y:VBus34'\np9274\ng26\n(S'Variable_Type'\n(I2\nttRp9275\nsS'Y:NbeTension'\np9276\ng26\n(S'Variable_Type'\n(I2\nttRp9277\nsS'TOT PV'\np9278\ng26\n(S'Variable_Type'\n(I2\nttRp9279\nsS'Y:PMachine128'\np9280\ng26\n(S'Variable_Type'\n(I2\nttRp9281\nsS'Y:PMachine129'\np9282\ng26\n(S'Variable_Type'\n(I2\nttRp9283\nsS'Y:VBus133'\np9284\ng26\n(S'Variable_Type'\n(I2\nttRp9285\nsS'Y:Load 82'\np9286\ng26\n(S'Variable_Type'\n(I2\nttRp9287\nsS'Y:PMachine125'\np9288\ng26\n(S'Variable_Type'\n(I2\nttRp9289\nsS'Y:PMachine126'\np9290\ng26\n(S'Variable_Type'\n(I2\nttRp9291\nsS'Y:PMachine127'\np9292\ng26\n(S'Variable_Type'\n(I2\nttRp9293\nsS'Y:Load 86'\np9294\ng26\n(S'Variable_Type'\n(I2\nttRp9295\nsS'Y:PMachine121'\np9296\ng26\n(S'Variable_Type'\n(I2\nttRp9297\nsS'Y:Load 84'\np9298\ng26\n(S'Variable_Type'\n(I2\nttRp9299\nsS'Y:PMachine123'\np9300\ng26\n(S'Variable_Type'\n(I2\nttRp9301\nsS'Y:Load 102'\np9302\ng26\n(S'Variable_Type'\n(I2\nttRp9303\nsS'Y:VBus57'\np9304\ng26\n(S'Variable_Type'\n(I2\nttRp9305\nsS'Y:Load 100'\np9306\ng26\n(S'Variable_Type'\n(I2\nttRp9307\nsS'Y:Load 101'\np9308\ng26\n(S'Variable_Type'\n(I2\nttRp9309\nsS'Y:VBus52'\np9310\ng26\n(S'Variable_Type'\n(I2\nttRp9311\nsS'Y:VBus53'\np9312\ng26\n(S'Variable_Type'\n(I2\nttRp9313\nsS'Y:Load 104'\np9314\ng26\n(S'Variable_Type'\n(I2\nttRp9315\nsS'Y:VBus51'\np9316\ng26\n(S'Variable_Type'\n(I2\nttRp9317\nsS'Y:Load 108'\np9318\ng26\n(S'Variable_Type'\n(I2\nttRp9319\nsS'Y64:%RateA 102-103'\np9320\ng26\n(S'Variable_Type'\n(I1\nttRp9321\nsS'Y:PMachine112'\np9322\ng26\n(S'Variable_Type'\n(I2\nttRp9323\nsS'Y:VBus58'\np9324\ng26\n(S'Variable_Type'\n(I2\nttRp9325\nsS'Y:VBus59'\np9326\ng26\n(S'Variable_Type'\n(I2\nttRp9327\nsS'Y:Load 53'\np9328\ng26\n(S'Variable_Type'\n(I2\nttRp9329\nsS'Y10:%RateA 16-47'\np9330\ng26\n(S'Variable_Type'\n(I2\nttRp9331\nsS'Y:PMachine54'\np9332\ng26\n(S'Variable_Type'\n(I2\nttRp9333\nsS'Y:VBus56'\np9334\ng26\n(S'Variable_Type'\n(I2\nttRp9335\nsS'Y3:%RateA 12-24'\np9336\ng26\n(S'Variable_Type'\n(I2\nttRp9337\nsS'Y11:%RateA 17-27'\np9338\ng26\n(S'Variable_Type'\n(I2\nttRp9339\nsS'Y:PMachine114'\np9340\ng26\n(S'Variable_Type'\n(I2\nttRp9341\nsS'Y:VBus72'\np9342\ng26\n(S'Variable_Type'\n(I2\nttRp9343\nsS'Y:PMachine60'\np9344\ng26\n(S'Variable_Type'\n(I2\nttRp9345\nsS'Y:PMachine61'\np9346\ng26\n(S'Variable_Type'\n(I1\nttRp9347\nsS'Y:PMachine62'\np9348\ng26\n(S'Variable_Type'\n(I2\nttRp9349\nsS'Y:PMachine105'\np9350\ng26\n(S'Variable_Type'\n(I2\nttRp9351\nsS'Y:PMachine64'\np9352\ng26\n(S'Variable_Type'\n(I2\nttRp9353\nsS'Y:PMachine65'\np9354\ng26\n(S'Variable_Type'\n(I2\nttRp9355\nsS'Y:PMachine66'\np9356\ng26\n(S'Variable_Type'\n(I2\nttRp9357\nsS'Y:PMachine67'\np9358\ng26\n(S'Variable_Type'\n(I2\nttRp9359\nsS'Y:PMachine68'\np9360\ng26\n(S'Variable_Type'\n(I2\nttRp9361\nsS'Y:PMachine102'\np9362\ng26\n(S'Variable_Type'\n(I2\nttRp9363\nsS'X:ProdPV%Pnom'\np9364\ng26\n(S'Variable_Type'\n(I2\nttRp9365\nsS'Y:VBus138'\np9366\ng26\n(S'Variable_Type'\n(I2\nttRp9367\nsS'Y26:%RateA 24-25'\np9368\ng26\n(S'Variable_Type'\n(I1\nttRp9369\nssg630\n(dp9370\nsg632\n(dp9371\ng2509\n(S'Iteration'\np9372\ng9209\ntp9373\nsg2512\n(g638\nI0\ntp9374\nsg2514\n(g9372\ng9209\ntp9375\nsg2516\n(S''\nI0\ntp9376\nsg2518\n(S''\nI0\ntp9377\nsg2520\n(NI-2\ntp9378\nsg2522\n((lI-2\ntp9379\nssg650\nF1369931709.0969999\nsba(iOWContexts\nContext\np9380\n(dp9381\ng20\n(lp9382\ng1272\nasg23\n(dp9383\nS'Y:VBus48'\np9384\ng26\n(S'Variable_Type'\n(I2\nttRp9385\nsS'Y15:%RateA 18-44'\np9386\ng26\n(S'Variable_Type'\n(I2\nttRp9387\nsS'Y:VBus41'\np9388\ng26\n(S'Variable_Type'\n(I2\nttRp9389\nsS'Y:VBus40'\np9390\ng26\n(S'Variable_Type'\n(I2\nttRp9391\nsS'Y:VBus43'\np9392\ng26\n(S'Variable_Type'\n(I2\nttRp9393\nsS'Y:VBus42'\np9394\ng26\n(S'Variable_Type'\n(I2\nttRp9395\nsS'Y:VBus45'\np9396\ng26\n(S'Variable_Type'\n(I2\nttRp9397\nsS'Y:VBus44'\np9398\ng26\n(S'Variable_Type'\n(I2\nttRp9399\nsS'Y:VBus47'\np9400\ng26\n(S'Variable_Type'\n(I2\nttRp9401\nsS'Y:VBus46'\np9402\ng26\n(S'Variable_Type'\n(I2\nttRp9403\nsS'Y39:%RateA 32-45'\np9404\ng26\n(S'Variable_Type'\n(I2\nttRp9405\nsS'Y:Load 110'\np9406\ng26\n(S'Variable_Type'\n(I2\nttRp9407\nsS'Y:Load 115'\np9408\ng26\n(S'Variable_Type'\n(I2\nttRp9409\nsS'Y:VBus79'\np9410\ng26\n(S'Variable_Type'\n(I2\nttRp9411\nsS'Y13:%RateA 18-30'\np9412\ng26\n(S'Variable_Type'\n(I2\nttRp9413\nsS'Y34:%RateA 28-38'\np9414\ng26\n(S'Variable_Type'\n(I2\nttRp9415\nsS'Y:NbeTransit'\np9416\ng26\n(S'Variable_Type'\n(I1\nttRp9417\nsS'Y:VBus104'\np9418\ng26\n(S'Variable_Type'\n(I2\nttRp9419\nsS'Y20:%RateA 20-44'\np9420\ng26\n(S'Variable_Type'\n(I2\nttRp9421\nsS'Y38:%RateA 32-45'\np9422\ng26\n(S'Variable_Type'\n(I2\nttRp9423\nsS'Y:PMachine73'\np9424\ng26\n(S'Variable_Type'\n(I2\nttRp9425\nsS'Y:PMachine72'\np9426\ng26\n(S'Variable_Type'\n(I2\nttRp9427\nsS'Y49:%RateA 40-48'\np9428\ng26\n(S'Variable_Type'\n(I2\nttRp9429\nsS'Y:PMachine77'\np9430\ng26\n(S'Variable_Type'\n(I2\nttRp9431\nsS'Y:PMachine75'\np9432\ng26\n(S'Variable_Type'\n(I2\nttRp9433\nsS'Y:PMachine74'\np9434\ng26\n(S'Variable_Type'\n(I2\nttRp9435\nsS'Y:PMachine78'\np9436\ng26\n(S'Variable_Type'\n(I1\nttRp9437\nsS'Y:PMachine138'\np9438\ng26\n(S'Variable_Type'\n(I1\nttRp9439\nsS'Y28:%RateA 24-42'\np9440\ng26\n(S'Variable_Type'\n(I2\nttRp9441\nsS'Y:PProdTot'\np9442\ng26\n(S'Variable_Type'\n(I2\nttRp9443\nsS'Y:PMachine69'\np9444\ng26\n(S'Variable_Type'\n(I2\nttRp9445\nsS'Y:VBus38'\np9446\ng26\n(S'Variable_Type'\n(I2\nttRp9447\nsS'Y:VBus39'\np9448\ng26\n(S'Variable_Type'\n(I2\nttRp9449\nsS'Y62:%RateA 86-87'\np9450\ng26\n(S'Variable_Type'\n(I1\nttRp9451\nsS'Y:PMachine1'\np9452\ng26\n(S'Variable_Type'\n(I2\nttRp9453\nsS'Y:VBus35'\np9454\ng26\n(S'Variable_Type'\n(I2\nttRp9455\nsS'Y:VBus36'\np9456\ng26\n(S'Variable_Type'\n(I2\nttRp9457\nsS'Y:VBus37'\np9458\ng26\n(S'Variable_Type'\n(I2\nttRp9459\nsS'Y:VBus30'\np9460\ng26\n(S'Variable_Type'\n(I2\nttRp9461\nsS'Y:VBus31'\np9462\ng26\n(S'Variable_Type'\n(I2\nttRp9463\nsS'Y:VBus32'\np9464\ng26\n(S'Variable_Type'\n(I2\nttRp9465\nsS'Y:VBus33'\np9466\ng26\n(S'Variable_Type'\n(I2\nttRp9467\nsS'Y53:%RateA 57-58'\np9468\ng26\n(S'Variable_Type'\n(I1\nttRp9469\nsS'Y14:%RateA 18-31'\np9470\ng26\n(S'Variable_Type'\n(I2\nttRp9471\nsS'Y48:%RateA 39-46'\np9472\ng26\n(S'Variable_Type'\n(I2\nttRp9473\nsS'Y60:%RateA 82-83'\np9474\ng26\n(S'Variable_Type'\n(I1\nttRp9475\nsS'Y:PMachine87'\np9476\ng26\n(S'Variable_Type'\n(I2\nttRp9477\nsS'Y:VBus121'\np9478\ng26\n(S'Variable_Type'\n(I2\nttRp9479\nsS'Y:VBus120'\np9480\ng26\n(S'Variable_Type'\n(I2\nttRp9481\nsS'Y:VBus123'\np9482\ng26\n(S'Variable_Type'\n(I2\nttRp9483\nsS'Y:VBus122'\np9484\ng26\n(S'Variable_Type'\n(I2\nttRp9485\nsS'Y:VBus125'\np9486\ng26\n(S'Variable_Type'\n(I2\nttRp9487\nsS'Y:VBus124'\np9488\ng26\n(S'Variable_Type'\n(I2\nttRp9489\nsS'Y:VBus127'\np9490\ng26\n(S'Variable_Type'\n(I2\nttRp9491\nsS'Y:VBus126'\np9492\ng26\n(S'Variable_Type'\n(I2\nttRp9493\nsS'Y:VBus129'\np9494\ng26\n(S'Variable_Type'\n(I2\nttRp9495\nsS'Y:VBus128'\np9496\ng26\n(S'Variable_Type'\n(I2\nttRp9497\nsS'Y37:%RateA 32-34'\np9498\ng26\n(S'Variable_Type'\n(I2\nttRp9499\nsS'Y43:%RateA 35-37'\np9500\ng26\n(S'Variable_Type'\n(I2\nttRp9501\nsS'Y:PMachine42'\np9502\ng26\n(S'Variable_Type'\n(I2\nttRp9503\nsS'Y0:%RateA 11-28'\np9504\ng26\n(S'Variable_Type'\n(I2\nttRp9505\nsS'Y:VBus67'\np9506\ng26\n(S'Variable_Type'\n(I2\nttRp9507\nsS'Y:Load 37'\np9508\ng26\n(S'Variable_Type'\n(I2\nttRp9509\nsS'Y65:%RateA 104-105'\np9510\ng26\n(S'Variable_Type'\n(I1\nttRp9511\nsS'Y40:%RateA 32-47'\np9512\ng26\n(S'Variable_Type'\n(I2\nttRp9513\nsS'Y:PMachine47'\np9514\ng26\n(S'Variable_Type'\n(I2\nttRp9515\nsS'Y6:%RateA 14-15'\np9516\ng26\n(S'Variable_Type'\n(I1\nttRp9517\nsS'Y:VBus1'\np9518\ng26\n(S'Variable_Type'\n(I2\nttRp9519\nsS'Y44:%RateA 35-39'\np9520\ng26\n(S'Variable_Type'\n(I2\nttRp9521\nsS'Y:PMachine88'\np9522\ng26\n(S'Variable_Type'\n(I1\nttRp9523\nsS'Y42:%RateA 34-36'\np9524\ng26\n(S'Variable_Type'\n(I2\nttRp9525\nsS'Y57:%RateA 76-77'\np9526\ng26\n(S'Variable_Type'\n(I1\nttRp9527\nsS'Y:PMachine89'\np9528\ng26\n(S'Variable_Type'\n(I1\nttRp9529\nsS'Y:VBus77'\np9530\ng26\n(S'Variable_Type'\n(I2\nttRp9531\nsS'Y:VBus29'\np9532\ng26\n(S'Variable_Type'\n(I2\nttRp9533\nsS'Y:VBus28'\np9534\ng26\n(S'Variable_Type'\n(I2\nttRp9535\nsS'Y:VBus27'\np9536\ng26\n(S'Variable_Type'\n(I2\nttRp9537\nsS'Y:VBus26'\np9538\ng26\n(S'Variable_Type'\n(I2\nttRp9539\nsS'Y:VBus25'\np9540\ng26\n(S'Variable_Type'\n(I2\nttRp9541\nsS'Y:VBus24'\np9542\ng26\n(S'Variable_Type'\n(I2\nttRp9543\nsS'Y:VBus23'\np9544\ng26\n(S'Variable_Type'\n(I2\nttRp9545\nsS'Y:VBus22'\np9546\ng26\n(S'Variable_Type'\n(I2\nttRp9547\nsS'Y:VBus21'\np9548\ng26\n(S'Variable_Type'\n(I2\nttRp9549\nsS'Y:VBus20'\np9550\ng26\n(S'Variable_Type'\n(I2\nttRp9551\nsS'Y:VBus85'\np9552\ng26\n(S'Variable_Type'\n(I2\nttRp9553\nsS'Y:VBus84'\np9554\ng26\n(S'Variable_Type'\n(I2\nttRp9555\nsS'Y52:%RateA 55-56'\np9556\ng26\n(S'Variable_Type'\n(I1\nttRp9557\nsS'Y2:%RateA 12-24'\np9558\ng26\n(S'Variable_Type'\n(I2\nttRp9559\nsS'Y:VBus112'\np9560\ng26\n(S'Variable_Type'\n(I2\nttRp9561\nsS'Y:VBus132'\np9562\ng26\n(S'Variable_Type'\n(I2\nttRp9563\nsS'Y:PMachine58'\np9564\ng26\n(S'Variable_Type'\n(I2\nttRp9565\nsS'Y:VBus130'\np9566\ng26\n(S'Variable_Type'\n(I2\nttRp9567\nsS'Y:VBus131'\np9568\ng26\n(S'Variable_Type'\n(I2\nttRp9569\nsS'Y:VBus136'\np9570\ng26\n(S'Variable_Type'\n(I2\nttRp9571\nsS'Y:VBus137'\np9572\ng26\n(S'Variable_Type'\n(I2\nttRp9573\nsS'Y:VBus134'\np9574\ng26\n(S'Variable_Type'\n(I2\nttRp9575\nsS'Y:VBus135'\np9576\ng26\n(S'Variable_Type'\n(I2\nttRp9577\nsS'Y:VBus81'\np9578\ng26\n(S'Variable_Type'\n(I2\nttRp9579\nsS'Y:PMachine53'\np9580\ng26\n(S'Variable_Type'\n(I2\nttRp9581\nsS'Y:VBus139'\np9582\ng26\n(S'Variable_Type'\n(I2\nttRp9583\nsS'Y30:%RateA 25-29'\np9584\ng26\n(S'Variable_Type'\n(I2\nttRp9585\nsS'Y:VBus115'\np9586\ng26\n(S'Variable_Type'\n(I2\nttRp9587\nsS'Y:PMachine124'\np9588\ng26\n(S'Variable_Type'\n(I2\nttRp9589\nsS'Y:VBus83'\np9590\ng26\n(S'Variable_Type'\n(I2\nttRp9591\nsS'Y66:%RateA 106-107'\np9592\ng26\n(S'Variable_Type'\n(I1\nttRp9593\nsS'Y25:%RateA 23-41'\np9594\ng26\n(S'Variable_Type'\n(I2\nttRp9595\nsS'Y:%Losses'\np9596\ng26\n(S'Variable_Type'\n(I2\nttRp9597\nsS'Y:VBus12'\np9598\ng26\n(S'Variable_Type'\n(I2\nttRp9599\nsS'Y:VBus13'\np9600\ng26\n(S'Variable_Type'\n(I2\nttRp9601\nsS'Y50:%RateA 51-52'\np9602\ng26\n(S'Variable_Type'\n(I1\nttRp9603\nsS'Y:VBus11'\np9604\ng26\n(S'Variable_Type'\n(I2\nttRp9605\nsS'Y:VBus16'\np9606\ng26\n(S'Variable_Type'\n(I2\nttRp9607\nsS'Y:VBus17'\np9608\ng26\n(S'Variable_Type'\n(I2\nttRp9609\nsS'Y:VBus14'\np9610\ng26\n(S'Variable_Type'\n(I2\nttRp9611\nsS'Y:VBus15'\np9612\ng26\n(S'Variable_Type'\n(I2\nttRp9613\nsS'Y:VBus113'\np9614\ng26\n(S'Variable_Type'\n(I2\nttRp9615\nsS'Y:PMachine120'\np9616\ng26\n(S'Variable_Type'\n(I2\nttRp9617\nsS'Y:VBus18'\np9618\ng26\n(S'Variable_Type'\n(I2\nttRp9619\nsS'Y:VBus19'\np9620\ng26\n(S'Variable_Type'\n(I2\nttRp9621\nsS'Y4:%RateA 13-25'\np9622\ng26\n(S'Variable_Type'\n(I2\nttRp9623\nsS'DIESEL VAZZIO'\np9624\ng26\n(S'Variable_Type'\n(I2\nttRp9625\nsS'Y35:%RateA 28-47'\np9626\ng26\n(S'Variable_Type'\n(I2\nttRp9627\nsS'Y:PMachine122'\np9628\ng26\n(S'Variable_Type'\n(I2\nttRp9629\nsS'Y16:%RateA 19-21'\np9630\ng26\n(S'Variable_Type'\n(I2\nttRp9631\nsS'Y:VBus92'\np9632\ng26\n(S'Variable_Type'\n(I2\nttRp9633\nsS'Y7:%RateA 14-35'\np9634\ng26\n(S'Variable_Type'\n(I2\nttRp9635\nsS'Y:VBus90'\np9636\ng26\n(S'Variable_Type'\n(I2\nttRp9637\nsS'Y:VBus96'\np9638\ng26\n(S'Variable_Type'\n(I2\nttRp9639\nsS'Y:VBus97'\np9640\ng26\n(S'Variable_Type'\n(I2\nttRp9641\nsS'Y:VBus94'\np9642\ng26\n(S'Variable_Type'\n(I2\nttRp9643\nsS'Y:VBus95'\np9644\ng26\n(S'Variable_Type'\n(I2\nttRp9645\nsS'Y:VBus107'\np9646\ng26\n(S'Variable_Type'\n(I2\nttRp9647\nsS'Y:VBus106'\np9648\ng26\n(S'Variable_Type'\n(I2\nttRp9649\nsS'Y:VBus105'\np9650\ng26\n(S'Variable_Type'\n(I2\nttRp9651\nsS'Y22:%RateA 22-23'\np9652\ng26\n(S'Variable_Type'\n(I1\nttRp9653\nsS'Y:VBus103'\np9654\ng26\n(S'Variable_Type'\n(I2\nttRp9655\nsS'Y:VBus102'\np9656\ng26\n(S'Variable_Type'\n(I2\nttRp9657\nsS'Y:VBus101'\np9658\ng26\n(S'Variable_Type'\n(I2\nttRp9659\nsS'Y:VBus100'\np9660\ng26\n(S'Variable_Type'\n(I2\nttRp9661\nsS'Y:Load 55'\np9662\ng26\n(S'Variable_Type'\n(I2\nttRp9663\nsS'Y:Load 57'\np9664\ng26\n(S'Variable_Type'\n(I2\nttRp9665\nsS'Y:Load 51'\np9666\ng26\n(S'Variable_Type'\n(I2\nttRp9667\nsS'Y:VBus54'\np9668\ng26\n(S'Variable_Type'\n(I2\nttRp9669\nsS'Y:VBus109'\np9670\ng26\n(S'Variable_Type'\n(I2\nttRp9671\nsS'Y46:%RateA 36-48'\np9672\ng26\n(S'Variable_Type'\n(I2\nttRp9673\nsS'Y:Load 80'\np9674\ng26\n(S'Variable_Type'\n(I2\nttRp9675\nsS'Y:PMachine133'\np9676\ng26\n(S'Variable_Type'\n(I2\nttRp9677\nsS'Y:VBus55'\np9678\ng26\n(S'Variable_Type'\n(I2\nttRp9679\nsS'Y:PMachine29'\np9680\ng26\n(S'Variable_Type'\n(I1\nttRp9681\nsS'Y24:%RateA 23-32'\np9682\ng26\n(S'Variable_Type'\n(I2\nttRp9683\nsS'X:lineOff#'\np9684\ng26\n(S'Variable_Type'\n(I2\nttRp9685\nsS'Y:Max%A'\np9686\ng26\n(S'Variable_Type'\n(I2\nttRp9687\nsS'Y:NbeTransit_0.9-1'\np9688\ng26\n(S'Variable_Type'\n(I1\nttRp9689\nsS'XProdEolienne%Pnom'\np9690\ng26\n(S'Variable_Type'\n(I2\nttRp9691\nsS'Y33:%RateA 27-33'\np9692\ng26\n(S'Variable_Type'\n(I2\nttRp9693\nsS'Y59:%RateA 80-81'\np9694\ng26\n(S'Variable_Type'\n(I1\nttRp9695\nsS'Y:VBus65'\np9696\ng26\n(S'Variable_Type'\n(I2\nttRp9697\nsS'TAC VAZZIO'\np9698\ng26\n(S'Variable_Type'\n(I2\nttRp9699\nsS'Y:VBus118'\np9700\ng26\n(S'Variable_Type'\n(I2\nttRp9701\nsS'Y:VBus119'\np9702\ng26\n(S'Variable_Type'\n(I2\nttRp9703\nsS'Y:PMachine117'\np9704\ng26\n(S'Variable_Type'\n(I2\nttRp9705\nsS'Y:PMachine116'\np9706\ng26\n(S'Variable_Type'\n(I2\nttRp9707\nsS'Y:PMachine111'\np9708\ng26\n(S'Variable_Type'\n(I2\nttRp9709\nsS'Y:VBus88'\np9710\ng26\n(S'Variable_Type'\n(I2\nttRp9711\nsS'Y:PMachine113'\np9712\ng26\n(S'Variable_Type'\n(I2\nttRp9713\nsS'Y:VBus93'\np9714\ng26\n(S'Variable_Type'\n(I2\nttRp9715\nsS'Y:VBus110'\np9716\ng26\n(S'Variable_Type'\n(I2\nttRp9717\nsS'Y:VBus111'\np9718\ng26\n(S'Variable_Type'\n(I2\nttRp9719\nsS'Y:VBus87'\np9720\ng26\n(S'Variable_Type'\n(I2\nttRp9721\nsS'Y12:%RateA 18-30'\np9722\ng26\n(S'Variable_Type'\n(I2\nttRp9723\nsS'Y:VBus114'\np9724\ng26\n(S'Variable_Type'\n(I2\nttRp9725\nsS'Y:VBus80'\np9726\ng26\n(S'Variable_Type'\n(I2\nttRp9727\nsS'Y:VBus116'\np9728\ng26\n(S'Variable_Type'\n(I2\nttRp9729\nsS'Y:VBus82'\np9730\ng26\n(S'Variable_Type'\n(I2\nttRp9731\nsS'Y61:%RateA 84-85'\np9732\ng26\n(S'Variable_Type'\n(I1\nttRp9733\nsS'Y31:%RateA 26-41'\np9734\ng26\n(S'Variable_Type'\n(I2\nttRp9735\nsS'Y:PMachine131'\np9736\ng26\n(S'Variable_Type'\n(I2\nttRp9737\nsS'Y47:%RateA 38-43'\np9738\ng26\n(S'Variable_Type'\n(I2\nttRp9739\nsS'Y:Load 42'\np9740\ng26\n(S'Variable_Type'\n(I2\nttRp9741\nsS'Y:PMachine85'\np9742\ng26\n(S'Variable_Type'\n(I2\nttRp9743\nsS'Y32:%RateA 26-46'\np9744\ng26\n(S'Variable_Type'\n(I2\nttRp9745\nsS'Y:PMachine132'\np9746\ng26\n(S'Variable_Type'\n(I2\nttRp9747\nsS'Y18:%RateA 19-27'\np9748\ng26\n(S'Variable_Type'\n(I2\nttRp9749\nsS'Y:VBus86'\np9750\ng26\n(S'Variable_Type'\n(I2\nttRp9751\nsS'Y63:%RateA 95-96'\np9752\ng26\n(S'Variable_Type'\n(I1\nttRp9753\nsS'Y17:%RateA 19-22'\np9754\ng26\n(S'Variable_Type'\n(I2\nttRp9755\nsS'Y41:%RateA 32-48'\np9756\ng26\n(S'Variable_Type'\n(I2\nttRp9757\nsS'Y:PMachine30'\np9758\ng26\n(S'Variable_Type'\n(I2\nttRp9759\nsS'Y:VBus117'\np9760\ng26\n(S'Variable_Type'\n(I2\nttRp9761\nsS'Y56:%RateA 72-73'\np9762\ng26\n(S'Variable_Type'\n(I1\nttRp9763\nsS'Y68:%RateA 112-113'\np9764\ng26\n(S'Variable_Type'\n(I1\nttRp9765\nsS'Y:PMachine130'\np9766\ng26\n(S'Variable_Type'\n(I2\nttRp9767\nsS'Y27:%RateA 24-33'\np9768\ng26\n(S'Variable_Type'\n(I2\nttRp9769\nsS'Y:PMachine106'\np9770\ng26\n(S'Variable_Type'\n(I2\nttRp9771\nsS'Y:PMachine107'\np9772\ng26\n(S'Variable_Type'\n(I2\nttRp9773\nsS'Y:PMachine104'\np9774\ng26\n(S'Variable_Type'\n(I2\nttRp9775\nsS'Y:VBus73'\np9776\ng26\n(S'Variable_Type'\n(I2\nttRp9777\nsS'Y:VBus74'\np9778\ng26\n(S'Variable_Type'\n(I2\nttRp9779\nsS'Y:VBus75'\np9780\ng26\n(S'Variable_Type'\n(I2\nttRp9781\nsS'Y:VBus76'\np9782\ng26\n(S'Variable_Type'\n(I2\nttRp9783\nsS'Y:PMachine101'\np9784\ng26\n(S'Variable_Type'\n(I2\nttRp9785\nsS'Y:VBus78'\np9786\ng26\n(S'Variable_Type'\n(I2\nttRp9787\nsS'Y:Load 59'\np9788\ng26\n(S'Variable_Type'\n(I2\nttRp9789\nsS'Y:PMachine115'\np9790\ng26\n(S'Variable_Type'\n(I2\nttRp9791\nsS'Y51:%RateA 53-54'\np9792\ng26\n(S'Variable_Type'\n(I1\nttRp9793\nsS'Y67:%RateA 108-109'\np9794\ng26\n(S'Variable_Type'\n(I1\nttRp9795\nsS'Y:PMachine109'\np9796\ng26\n(S'Variable_Type'\n(I2\nttRp9797\nsS'Y:PMachine83'\np9798\ng26\n(S'Variable_Type'\n(I2\nttRp9799\nsS'Y:PMachine81'\np9800\ng26\n(S'Variable_Type'\n(I2\nttRp9801\nsS'Y:PMachine86'\np9802\ng26\n(S'Variable_Type'\n(I2\nttRp9803\nsS'Y:Load 76'\np9804\ng26\n(S'Variable_Type'\n(I2\nttRp9805\nsS'Y:Load 74'\np9806\ng26\n(S'Variable_Type'\n(I2\nttRp9807\nsS'Y45:%RateA 36-37'\np9808\ng26\n(S'Variable_Type'\n(I2\nttRp9809\nsS'Y58:%RateA 78-79'\np9810\ng26\n(S'Variable_Type'\n(I1\nttRp9811\nsS'Y:Load 78'\np9812\ng26\n(S'Variable_Type'\n(I2\nttRp9813\nsS'X:Load(pu)'\np9814\ng26\n(S'Variable_Type'\n(I2\nttRp9815\nsS'Y5:%RateA 13-29'\np9816\ng26\n(S'Variable_Type'\n(I2\nttRp9817\nsS'Y:PMachine118'\np9818\ng26\n(S'Variable_Type'\n(I2\nttRp9819\nsS'Y1:%RateA 11-47'\np9820\ng26\n(S'Variable_Type'\n(I2\nttRp9821\nsS'Y:VBus60'\np9822\ng26\n(S'Variable_Type'\n(I2\nttRp9823\nsS'Y:PMachine137'\np9824\ng26\n(S'Variable_Type'\n(I1\nttRp9825\nsS'Y29:%RateA 25-29'\np9826\ng26\n(S'Variable_Type'\n(I2\nttRp9827\nsS'Y:VBus66'\np9828\ng26\n(S'Variable_Type'\n(I2\nttRp9829\nsS'Iteration'\np9830\ng26\n(S'Variable_Type'\n(I2\nttRp9831\nsS'Y36:%RateA 29-30'\np9832\ng26\n(S'Variable_Type'\n(I1\nttRp9833\nsS'Y54:%RateA 59-60'\np9834\ng26\n(S'Variable_Type'\n(I1\nttRp9835\nsS'Y:Load 90'\np9836\ng26\n(S'Variable_Type'\n(I2\nttRp9837\nsS'Y9:%RateA 16-32'\np9838\ng26\n(S'Variable_Type'\n(I2\nttRp9839\nsS'Y:PMachine134'\np9840\ng26\n(S'Variable_Type'\n(I1\nttRp9841\nsS'Y:Load 95'\np9842\ng26\n(S'Variable_Type'\n(I2\nttRp9843\nsS'Y:VBus63'\np9844\ng26\n(S'Variable_Type'\n(I2\nttRp9845\nsS'Y:VBus62'\np9846\ng26\n(S'Variable_Type'\n(I2\nttRp9847\nsS'Y:VBus61'\np9848\ng26\n(S'Variable_Type'\n(I2\nttRp9849\nsS'Y55:%RateA 61-62'\np9850\ng26\n(S'Variable_Type'\n(I1\nttRp9851\nsS'Y8:%RateA 15-35'\np9852\ng26\n(S'Variable_Type'\n(I2\nttRp9853\nsS'Y:PMachine136'\np9854\ng26\n(S'Variable_Type'\n(I1\nttRp9855\nsS'Y:PMachine135'\np9856\ng26\n(S'Variable_Type'\n(I1\nttRp9857\nsS'Y:VBus64'\np9858\ng26\n(S'Variable_Type'\n(I2\nttRp9859\nsS'Y:PMachine94'\np9860\ng26\n(S'Variable_Type'\n(I2\nttRp9861\nsS'Y:VBus69'\np9862\ng26\n(S'Variable_Type'\n(I2\nttRp9863\nsS'Y:VBus108'\np9864\ng26\n(S'Variable_Type'\n(I2\nttRp9865\nsS'Y:PMachine139'\np9866\ng26\n(S'Variable_Type'\n(I1\nttRp9867\nsS'Y:PMachine97'\np9868\ng26\n(S'Variable_Type'\n(I2\nttRp9869\nsS'Y:PMachine92'\np9870\ng26\n(S'Variable_Type'\n(I2\nttRp9871\nsS'Y:VBus68'\np9872\ng26\n(S'Variable_Type'\n(I2\nttRp9873\nsS'Y:Load 61'\np9874\ng26\n(S'Variable_Type'\n(I2\nttRp9875\nsS'Y:VBus89'\np9876\ng26\n(S'Variable_Type'\n(I2\nttRp9877\nsS'Y21:%RateA 21-43'\np9878\ng26\n(S'Variable_Type'\n(I2\nttRp9879\nsS'Y:PMachine90'\np9880\ng26\n(S'Variable_Type'\n(I2\nttRp9881\nsS'Y:PMachine14'\np9882\ng26\n(S'Variable_Type'\n(I2\nttRp9883\nsS'Y:PMachine63'\np9884\ng26\n(S'Variable_Type'\n(I2\nttRp9885\nsS'Y:PMachine93'\np9886\ng26\n(S'Variable_Type'\n(I2\nttRp9887\nsS'Y:PConsoTot'\np9888\ng26\n(S'Variable_Type'\n(I2\nttRp9889\nsS'Y23:%RateA 22-31'\np9890\ng26\n(S'Variable_Type'\n(I2\nttRp9891\nsS'Y19:%RateA 20-26'\np9892\ng26\n(S'Variable_Type'\n(I2\nttRp9893\nsS'Y:PMachine18'\np9894\ng26\n(S'Variable_Type'\n(I2\nttRp9895\nsS'Y:VBus34'\np9896\ng26\n(S'Variable_Type'\n(I2\nttRp9897\nsS'Y:NbeTension'\np9898\ng26\n(S'Variable_Type'\n(I2\nttRp9899\nsS'Y:PMachine128'\np9900\ng26\n(S'Variable_Type'\n(I2\nttRp9901\nsS'Y:PMachine129'\np9902\ng26\n(S'Variable_Type'\n(I2\nttRp9903\nsS'Y:VBus133'\np9904\ng26\n(S'Variable_Type'\n(I2\nttRp9905\nsS'Y:Load 82'\np9906\ng26\n(S'Variable_Type'\n(I2\nttRp9907\nsS'Y:PMachine125'\np9908\ng26\n(S'Variable_Type'\n(I2\nttRp9909\nsS'Y:PMachine126'\np9910\ng26\n(S'Variable_Type'\n(I2\nttRp9911\nsS'Y:PMachine127'\np9912\ng26\n(S'Variable_Type'\n(I2\nttRp9913\nsS'Y:Load 86'\np9914\ng26\n(S'Variable_Type'\n(I2\nttRp9915\nsS'Y:PMachine121'\np9916\ng26\n(S'Variable_Type'\n(I2\nttRp9917\nsS'Y:Load 84'\np9918\ng26\n(S'Variable_Type'\n(I2\nttRp9919\nsS'Y:PMachine123'\np9920\ng26\n(S'Variable_Type'\n(I2\nttRp9921\nsS'Y:Load 102'\np9922\ng26\n(S'Variable_Type'\n(I2\nttRp9923\nsS'Y:VBus57'\np9924\ng26\n(S'Variable_Type'\n(I2\nttRp9925\nsS'Y:Load 100'\np9926\ng26\n(S'Variable_Type'\n(I2\nttRp9927\nsS'Y:Load 101'\np9928\ng26\n(S'Variable_Type'\n(I2\nttRp9929\nsS'Y:VBus52'\np9930\ng26\n(S'Variable_Type'\n(I2\nttRp9931\nsS'Y:VBus53'\np9932\ng26\n(S'Variable_Type'\n(I2\nttRp9933\nsS'Y:Load 104'\np9934\ng26\n(S'Variable_Type'\n(I2\nttRp9935\nsS'Y:VBus51'\np9936\ng26\n(S'Variable_Type'\n(I2\nttRp9937\nsS'Y:Load 108'\np9938\ng26\n(S'Variable_Type'\n(I2\nttRp9939\nsS'Y64:%RateA 102-103'\np9940\ng26\n(S'Variable_Type'\n(I1\nttRp9941\nsS'Y:PMachine112'\np9942\ng26\n(S'Variable_Type'\n(I2\nttRp9943\nsS'Y:VBus58'\np9944\ng26\n(S'Variable_Type'\n(I2\nttRp9945\nsS'Y:VBus59'\np9946\ng26\n(S'Variable_Type'\n(I2\nttRp9947\nsS'Y:Load 53'\np9948\ng26\n(S'Variable_Type'\n(I2\nttRp9949\nsS'Y10:%RateA 16-47'\np9950\ng26\n(S'Variable_Type'\n(I2\nttRp9951\nsS'Y:PMachine54'\np9952\ng26\n(S'Variable_Type'\n(I2\nttRp9953\nsS'Y:VBus56'\np9954\ng26\n(S'Variable_Type'\n(I2\nttRp9955\nsS'TOT WIND'\np9956\ng26\n(S'Variable_Type'\n(I2\nttRp9957\nsS'Y3:%RateA 12-24'\np9958\ng26\n(S'Variable_Type'\n(I2\nttRp9959\nsS'Y11:%RateA 17-27'\np9960\ng26\n(S'Variable_Type'\n(I2\nttRp9961\nsS'Y:PMachine114'\np9962\ng26\n(S'Variable_Type'\n(I2\nttRp9963\nsS'Y:VBus72'\np9964\ng26\n(S'Variable_Type'\n(I2\nttRp9965\nsS'Y:PMachine60'\np9966\ng26\n(S'Variable_Type'\n(I2\nttRp9967\nsS'Y:PMachine61'\np9968\ng26\n(S'Variable_Type'\n(I1\nttRp9969\nsS'Y:PMachine62'\np9970\ng26\n(S'Variable_Type'\n(I2\nttRp9971\nsS'Y:PMachine105'\np9972\ng26\n(S'Variable_Type'\n(I2\nttRp9973\nsS'Y:PMachine64'\np9974\ng26\n(S'Variable_Type'\n(I2\nttRp9975\nsS'Y:PMachine65'\np9976\ng26\n(S'Variable_Type'\n(I2\nttRp9977\nsS'Y:PMachine66'\np9978\ng26\n(S'Variable_Type'\n(I2\nttRp9979\nsS'Y:PMachine67'\np9980\ng26\n(S'Variable_Type'\n(I2\nttRp9981\nsS'Y:PMachine68'\np9982\ng26\n(S'Variable_Type'\n(I2\nttRp9983\nsS'Y:PMachine102'\np9984\ng26\n(S'Variable_Type'\n(I2\nttRp9985\nsS'X:ProdPV%Pnom'\np9986\ng26\n(S'Variable_Type'\n(I2\nttRp9987\nsS'Y:VBus138'\np9988\ng26\n(S'Variable_Type'\n(I2\nttRp9989\nsS'Y26:%RateA 24-25'\np9990\ng26\n(S'Variable_Type'\n(I1\nttRp9991\nssg630\n(dp9992\nsg632\n(dp9993\ng2509\n(S'Iteration'\np9994\ng9831\ntp9995\nsg2512\n(g638\nI0\ntp9996\nsg2514\n(g9994\ng9831\ntp9997\nsg2516\n(S''\nI0\ntp9998\nsg2518\n(S''\nI0\ntp9999\nsg2520\n(NI-2\ntp10000\nsg2522\n((lI-2\ntp10001\nssg650\nF1369931681.9349999\nsba(iOWContexts\nContext\np10002\n(dp10003\ng20\n(lp10004\ng1272\nasg23\n(dp10005\nS'Y:VBus48'\np10006\ng26\n(S'Variable_Type'\n(I2\nttRp10007\nsS'Y15:%RateA 18-44'\np10008\ng26\n(S'Variable_Type'\n(I2\nttRp10009\nsS'Y:VBus41'\np10010\ng26\n(S'Variable_Type'\n(I2\nttRp10011\nsS'Y:VBus40'\np10012\ng26\n(S'Variable_Type'\n(I2\nttRp10013\nsS'Y:VBus43'\np10014\ng26\n(S'Variable_Type'\n(I2\nttRp10015\nsS'Y:VBus42'\np10016\ng26\n(S'Variable_Type'\n(I2\nttRp10017\nsS'Y:VBus45'\np10018\ng26\n(S'Variable_Type'\n(I2\nttRp10019\nsS'Y:VBus44'\np10020\ng26\n(S'Variable_Type'\n(I2\nttRp10021\nsS'Y:VBus47'\np10022\ng26\n(S'Variable_Type'\n(I2\nttRp10023\nsS'Y:VBus46'\np10024\ng26\n(S'Variable_Type'\n(I2\nttRp10025\nsS'Y39:%RateA 32-45'\np10026\ng26\n(S'Variable_Type'\n(I2\nttRp10027\nsS'Y:Load 110'\np10028\ng26\n(S'Variable_Type'\n(I2\nttRp10029\nsS'Y:Load 115'\np10030\ng26\n(S'Variable_Type'\n(I2\nttRp10031\nsS'Y:VBus79'\np10032\ng26\n(S'Variable_Type'\n(I2\nttRp10033\nsS'Y13:%RateA 18-30'\np10034\ng26\n(S'Variable_Type'\n(I2\nttRp10035\nsS'Y34:%RateA 28-38'\np10036\ng26\n(S'Variable_Type'\n(I2\nttRp10037\nsS'Y:NbeTransit'\np10038\ng26\n(S'Variable_Type'\n(I1\nttRp10039\nsS'Y:VBus104'\np10040\ng26\n(S'Variable_Type'\n(I2\nttRp10041\nsS'Y20:%RateA 20-44'\np10042\ng26\n(S'Variable_Type'\n(I2\nttRp10043\nsS'Y38:%RateA 32-45'\np10044\ng26\n(S'Variable_Type'\n(I2\nttRp10045\nsS'Y:PMachine73'\np10046\ng26\n(S'Variable_Type'\n(I2\nttRp10047\nsS'Y:PMachine72'\np10048\ng26\n(S'Variable_Type'\n(I2\nttRp10049\nsS'Y49:%RateA 40-48'\np10050\ng26\n(S'Variable_Type'\n(I2\nttRp10051\nsS'Y:PMachine77'\np10052\ng26\n(S'Variable_Type'\n(I2\nttRp10053\nsS'Y:PMachine75'\np10054\ng26\n(S'Variable_Type'\n(I2\nttRp10055\nsS'Y:PMachine74'\np10056\ng26\n(S'Variable_Type'\n(I2\nttRp10057\nsS'Y:PMachine78'\np10058\ng26\n(S'Variable_Type'\n(I1\nttRp10059\nsS'Y:PMachine138'\np10060\ng26\n(S'Variable_Type'\n(I1\nttRp10061\nsS'Y28:%RateA 24-42'\np10062\ng26\n(S'Variable_Type'\n(I2\nttRp10063\nsS'Y:PProdTot'\np10064\ng26\n(S'Variable_Type'\n(I2\nttRp10065\nsS'Y:PMachine69'\np10066\ng26\n(S'Variable_Type'\n(I2\nttRp10067\nsS'Y:VBus38'\np10068\ng26\n(S'Variable_Type'\n(I2\nttRp10069\nsS'Y:VBus39'\np10070\ng26\n(S'Variable_Type'\n(I2\nttRp10071\nsS'Y62:%RateA 86-87'\np10072\ng26\n(S'Variable_Type'\n(I1\nttRp10073\nsS'Y:PMachine1'\np10074\ng26\n(S'Variable_Type'\n(I2\nttRp10075\nsS'Y:VBus35'\np10076\ng26\n(S'Variable_Type'\n(I2\nttRp10077\nsS'Y:VBus36'\np10078\ng26\n(S'Variable_Type'\n(I2\nttRp10079\nsS'Y:VBus37'\np10080\ng26\n(S'Variable_Type'\n(I2\nttRp10081\nsS'Y:VBus30'\np10082\ng26\n(S'Variable_Type'\n(I2\nttRp10083\nsS'Y:VBus31'\np10084\ng26\n(S'Variable_Type'\n(I2\nttRp10085\nsS'Y:VBus32'\np10086\ng26\n(S'Variable_Type'\n(I2\nttRp10087\nsS'Y:VBus33'\np10088\ng26\n(S'Variable_Type'\n(I2\nttRp10089\nsS'Y53:%RateA 57-58'\np10090\ng26\n(S'Variable_Type'\n(I1\nttRp10091\nsS'Y14:%RateA 18-31'\np10092\ng26\n(S'Variable_Type'\n(I2\nttRp10093\nsS'Y48:%RateA 39-46'\np10094\ng26\n(S'Variable_Type'\n(I2\nttRp10095\nsS'Y60:%RateA 82-83'\np10096\ng26\n(S'Variable_Type'\n(I1\nttRp10097\nsS'Y:PMachine87'\np10098\ng26\n(S'Variable_Type'\n(I2\nttRp10099\nsS'Y:VBus121'\np10100\ng26\n(S'Variable_Type'\n(I2\nttRp10101\nsS'Y:VBus120'\np10102\ng26\n(S'Variable_Type'\n(I2\nttRp10103\nsS'Y:VBus123'\np10104\ng26\n(S'Variable_Type'\n(I2\nttRp10105\nsS'Y:VBus122'\np10106\ng26\n(S'Variable_Type'\n(I2\nttRp10107\nsS'Y:VBus125'\np10108\ng26\n(S'Variable_Type'\n(I2\nttRp10109\nsS'Y:VBus124'\np10110\ng26\n(S'Variable_Type'\n(I2\nttRp10111\nsS'Y:VBus127'\np10112\ng26\n(S'Variable_Type'\n(I2\nttRp10113\nsS'Y:VBus126'\np10114\ng26\n(S'Variable_Type'\n(I2\nttRp10115\nsS'Y:VBus129'\np10116\ng26\n(S'Variable_Type'\n(I2\nttRp10117\nsS'Y:VBus128'\np10118\ng26\n(S'Variable_Type'\n(I2\nttRp10119\nsS'Y37:%RateA 32-34'\np10120\ng26\n(S'Variable_Type'\n(I2\nttRp10121\nsS'Y43:%RateA 35-37'\np10122\ng26\n(S'Variable_Type'\n(I2\nttRp10123\nsS'Y:PMachine42'\np10124\ng26\n(S'Variable_Type'\n(I2\nttRp10125\nsS'Y0:%RateA 11-28'\np10126\ng26\n(S'Variable_Type'\n(I2\nttRp10127\nsS'Y:VBus67'\np10128\ng26\n(S'Variable_Type'\n(I2\nttRp10129\nsS'Y:Load 37'\np10130\ng26\n(S'Variable_Type'\n(I2\nttRp10131\nsS'Y65:%RateA 104-105'\np10132\ng26\n(S'Variable_Type'\n(I1\nttRp10133\nsS'Y40:%RateA 32-47'\np10134\ng26\n(S'Variable_Type'\n(I2\nttRp10135\nsS'Y:PMachine47'\np10136\ng26\n(S'Variable_Type'\n(I2\nttRp10137\nsS'Y6:%RateA 14-15'\np10138\ng26\n(S'Variable_Type'\n(I1\nttRp10139\nsS'Y:VBus1'\np10140\ng26\n(S'Variable_Type'\n(I2\nttRp10141\nsS'Y44:%RateA 35-39'\np10142\ng26\n(S'Variable_Type'\n(I2\nttRp10143\nsS'Y:PMachine88'\np10144\ng26\n(S'Variable_Type'\n(I1\nttRp10145\nsS'Y42:%RateA 34-36'\np10146\ng26\n(S'Variable_Type'\n(I2\nttRp10147\nsS'Y57:%RateA 76-77'\np10148\ng26\n(S'Variable_Type'\n(I1\nttRp10149\nsS'Y:PMachine89'\np10150\ng26\n(S'Variable_Type'\n(I1\nttRp10151\nsS'Y:VBus77'\np10152\ng26\n(S'Variable_Type'\n(I2\nttRp10153\nsS'Y:VBus29'\np10154\ng26\n(S'Variable_Type'\n(I2\nttRp10155\nsS'Y:VBus28'\np10156\ng26\n(S'Variable_Type'\n(I2\nttRp10157\nsS'Y:VBus27'\np10158\ng26\n(S'Variable_Type'\n(I2\nttRp10159\nsS'Y:VBus26'\np10160\ng26\n(S'Variable_Type'\n(I2\nttRp10161\nsS'Y:VBus25'\np10162\ng26\n(S'Variable_Type'\n(I2\nttRp10163\nsS'Y:VBus24'\np10164\ng26\n(S'Variable_Type'\n(I2\nttRp10165\nsS'Y:VBus23'\np10166\ng26\n(S'Variable_Type'\n(I2\nttRp10167\nsS'Y:VBus22'\np10168\ng26\n(S'Variable_Type'\n(I2\nttRp10169\nsS'Y:VBus21'\np10170\ng26\n(S'Variable_Type'\n(I2\nttRp10171\nsS'Y:VBus20'\np10172\ng26\n(S'Variable_Type'\n(I2\nttRp10173\nsS'Y:VBus85'\np10174\ng26\n(S'Variable_Type'\n(I2\nttRp10175\nsS'Y:VBus84'\np10176\ng26\n(S'Variable_Type'\n(I2\nttRp10177\nsS'Y52:%RateA 55-56'\np10178\ng26\n(S'Variable_Type'\n(I1\nttRp10179\nsS'Y2:%RateA 12-24'\np10180\ng26\n(S'Variable_Type'\n(I2\nttRp10181\nsS'Y:VBus112'\np10182\ng26\n(S'Variable_Type'\n(I2\nttRp10183\nsS'Y:VBus132'\np10184\ng26\n(S'Variable_Type'\n(I2\nttRp10185\nsS'Y:PMachine58'\np10186\ng26\n(S'Variable_Type'\n(I2\nttRp10187\nsS'Y:VBus130'\np10188\ng26\n(S'Variable_Type'\n(I2\nttRp10189\nsS'Y:VBus131'\np10190\ng26\n(S'Variable_Type'\n(I2\nttRp10191\nsS'Y:VBus136'\np10192\ng26\n(S'Variable_Type'\n(I2\nttRp10193\nsS'Y:VBus137'\np10194\ng26\n(S'Variable_Type'\n(I2\nttRp10195\nsS'Y:VBus134'\np10196\ng26\n(S'Variable_Type'\n(I2\nttRp10197\nsS'Y:VBus135'\np10198\ng26\n(S'Variable_Type'\n(I2\nttRp10199\nsS'Y:VBus81'\np10200\ng26\n(S'Variable_Type'\n(I2\nttRp10201\nsS'Y:PMachine53'\np10202\ng26\n(S'Variable_Type'\n(I2\nttRp10203\nsS'Y:VBus139'\np10204\ng26\n(S'Variable_Type'\n(I2\nttRp10205\nsS'Y30:%RateA 25-29'\np10206\ng26\n(S'Variable_Type'\n(I2\nttRp10207\nsS'Y:VBus115'\np10208\ng26\n(S'Variable_Type'\n(I2\nttRp10209\nsS'Y:PMachine124'\np10210\ng26\n(S'Variable_Type'\n(I2\nttRp10211\nsS'Y:VBus83'\np10212\ng26\n(S'Variable_Type'\n(I2\nttRp10213\nsS'Y66:%RateA 106-107'\np10214\ng26\n(S'Variable_Type'\n(I1\nttRp10215\nsS'Y25:%RateA 23-41'\np10216\ng26\n(S'Variable_Type'\n(I2\nttRp10217\nsS'Y:%Losses'\np10218\ng26\n(S'Variable_Type'\n(I2\nttRp10219\nsS'Y:VBus12'\np10220\ng26\n(S'Variable_Type'\n(I2\nttRp10221\nsS'Y:VBus13'\np10222\ng26\n(S'Variable_Type'\n(I2\nttRp10223\nsS'Y50:%RateA 51-52'\np10224\ng26\n(S'Variable_Type'\n(I1\nttRp10225\nsS'Y:VBus11'\np10226\ng26\n(S'Variable_Type'\n(I2\nttRp10227\nsS'Y:VBus16'\np10228\ng26\n(S'Variable_Type'\n(I2\nttRp10229\nsS'Y:VBus17'\np10230\ng26\n(S'Variable_Type'\n(I2\nttRp10231\nsS'Y:VBus14'\np10232\ng26\n(S'Variable_Type'\n(I2\nttRp10233\nsS'Y:VBus15'\np10234\ng26\n(S'Variable_Type'\n(I2\nttRp10235\nsS'Y:VBus113'\np10236\ng26\n(S'Variable_Type'\n(I2\nttRp10237\nsS'Y:PMachine120'\np10238\ng26\n(S'Variable_Type'\n(I2\nttRp10239\nsS'Y:VBus18'\np10240\ng26\n(S'Variable_Type'\n(I2\nttRp10241\nsS'Y:VBus19'\np10242\ng26\n(S'Variable_Type'\n(I2\nttRp10243\nsS'Y4:%RateA 13-25'\np10244\ng26\n(S'Variable_Type'\n(I2\nttRp10245\nsS'DIESEL VAZZIO'\np10246\ng26\n(S'Variable_Type'\n(I2\nttRp10247\nsS'Y35:%RateA 28-47'\np10248\ng26\n(S'Variable_Type'\n(I2\nttRp10249\nsS'Y:PMachine122'\np10250\ng26\n(S'Variable_Type'\n(I2\nttRp10251\nsS'Y16:%RateA 19-21'\np10252\ng26\n(S'Variable_Type'\n(I2\nttRp10253\nsS'Y:VBus92'\np10254\ng26\n(S'Variable_Type'\n(I2\nttRp10255\nsS'Y7:%RateA 14-35'\np10256\ng26\n(S'Variable_Type'\n(I2\nttRp10257\nsS'Y:VBus90'\np10258\ng26\n(S'Variable_Type'\n(I2\nttRp10259\nsS'Y:VBus96'\np10260\ng26\n(S'Variable_Type'\n(I2\nttRp10261\nsS'Y:VBus97'\np10262\ng26\n(S'Variable_Type'\n(I2\nttRp10263\nsS'Y:VBus94'\np10264\ng26\n(S'Variable_Type'\n(I2\nttRp10265\nsS'Y:VBus95'\np10266\ng26\n(S'Variable_Type'\n(I2\nttRp10267\nsS'Y:VBus107'\np10268\ng26\n(S'Variable_Type'\n(I2\nttRp10269\nsS'Y:VBus106'\np10270\ng26\n(S'Variable_Type'\n(I2\nttRp10271\nsS'Y:VBus105'\np10272\ng26\n(S'Variable_Type'\n(I2\nttRp10273\nsS'Y22:%RateA 22-23'\np10274\ng26\n(S'Variable_Type'\n(I1\nttRp10275\nsS'Y:VBus103'\np10276\ng26\n(S'Variable_Type'\n(I2\nttRp10277\nsS'Y:VBus102'\np10278\ng26\n(S'Variable_Type'\n(I2\nttRp10279\nsS'Y:VBus101'\np10280\ng26\n(S'Variable_Type'\n(I2\nttRp10281\nsS'Y:VBus100'\np10282\ng26\n(S'Variable_Type'\n(I2\nttRp10283\nsS'Y:Load 55'\np10284\ng26\n(S'Variable_Type'\n(I2\nttRp10285\nsS'Y:Load 57'\np10286\ng26\n(S'Variable_Type'\n(I2\nttRp10287\nsS'Y:Load 51'\np10288\ng26\n(S'Variable_Type'\n(I2\nttRp10289\nsS'Y:VBus54'\np10290\ng26\n(S'Variable_Type'\n(I2\nttRp10291\nsS'Y:VBus109'\np10292\ng26\n(S'Variable_Type'\n(I2\nttRp10293\nsS'Y46:%RateA 36-48'\np10294\ng26\n(S'Variable_Type'\n(I2\nttRp10295\nsS'Y:Load 80'\np10296\ng26\n(S'Variable_Type'\n(I2\nttRp10297\nsS'Y:PMachine133'\np10298\ng26\n(S'Variable_Type'\n(I2\nttRp10299\nsS'Y:VBus55'\np10300\ng26\n(S'Variable_Type'\n(I2\nttRp10301\nsS'Y:PMachine29'\np10302\ng26\n(S'Variable_Type'\n(I1\nttRp10303\nsS'Y24:%RateA 23-32'\np10304\ng26\n(S'Variable_Type'\n(I2\nttRp10305\nsS'X:lineOff#'\np10306\ng26\n(S'Variable_Type'\n(I2\nttRp10307\nsS'Y:Max%A'\np10308\ng26\n(S'Variable_Type'\n(I2\nttRp10309\nsS'Y:NbeTransit_0.9-1'\np10310\ng26\n(S'Variable_Type'\n(I1\nttRp10311\nsS'XProdEolienne%Pnom'\np10312\ng26\n(S'Variable_Type'\n(I2\nttRp10313\nsS'Y33:%RateA 27-33'\np10314\ng26\n(S'Variable_Type'\n(I2\nttRp10315\nsS'Y59:%RateA 80-81'\np10316\ng26\n(S'Variable_Type'\n(I1\nttRp10317\nsS'Y:VBus65'\np10318\ng26\n(S'Variable_Type'\n(I2\nttRp10319\nsS'Y:VBus118'\np10320\ng26\n(S'Variable_Type'\n(I2\nttRp10321\nsS'Y:VBus119'\np10322\ng26\n(S'Variable_Type'\n(I2\nttRp10323\nsS'Y:PMachine117'\np10324\ng26\n(S'Variable_Type'\n(I2\nttRp10325\nsS'Y:PMachine116'\np10326\ng26\n(S'Variable_Type'\n(I2\nttRp10327\nsS'Y:PMachine111'\np10328\ng26\n(S'Variable_Type'\n(I2\nttRp10329\nsS'Y:VBus88'\np10330\ng26\n(S'Variable_Type'\n(I2\nttRp10331\nsS'Y:PMachine113'\np10332\ng26\n(S'Variable_Type'\n(I2\nttRp10333\nsS'Y:VBus93'\np10334\ng26\n(S'Variable_Type'\n(I2\nttRp10335\nsS'Y:VBus110'\np10336\ng26\n(S'Variable_Type'\n(I2\nttRp10337\nsS'Y:VBus111'\np10338\ng26\n(S'Variable_Type'\n(I2\nttRp10339\nsS'Y:VBus87'\np10340\ng26\n(S'Variable_Type'\n(I2\nttRp10341\nsS'Y12:%RateA 18-30'\np10342\ng26\n(S'Variable_Type'\n(I2\nttRp10343\nsS'Y:VBus114'\np10344\ng26\n(S'Variable_Type'\n(I2\nttRp10345\nsS'Y:VBus80'\np10346\ng26\n(S'Variable_Type'\n(I2\nttRp10347\nsS'Y:VBus116'\np10348\ng26\n(S'Variable_Type'\n(I2\nttRp10349\nsS'Y:VBus82'\np10350\ng26\n(S'Variable_Type'\n(I2\nttRp10351\nsS'Y61:%RateA 84-85'\np10352\ng26\n(S'Variable_Type'\n(I1\nttRp10353\nsS'Y31:%RateA 26-41'\np10354\ng26\n(S'Variable_Type'\n(I2\nttRp10355\nsS'Y:PMachine131'\np10356\ng26\n(S'Variable_Type'\n(I2\nttRp10357\nsS'Y47:%RateA 38-43'\np10358\ng26\n(S'Variable_Type'\n(I2\nttRp10359\nsS'Y:Load 42'\np10360\ng26\n(S'Variable_Type'\n(I2\nttRp10361\nsS'Y:PMachine85'\np10362\ng26\n(S'Variable_Type'\n(I2\nttRp10363\nsS'Y32:%RateA 26-46'\np10364\ng26\n(S'Variable_Type'\n(I2\nttRp10365\nsS'Y:PMachine132'\np10366\ng26\n(S'Variable_Type'\n(I2\nttRp10367\nsS'Y18:%RateA 19-27'\np10368\ng26\n(S'Variable_Type'\n(I2\nttRp10369\nsS'Y:VBus86'\np10370\ng26\n(S'Variable_Type'\n(I2\nttRp10371\nsS'Y63:%RateA 95-96'\np10372\ng26\n(S'Variable_Type'\n(I1\nttRp10373\nsS'Y17:%RateA 19-22'\np10374\ng26\n(S'Variable_Type'\n(I2\nttRp10375\nsS'Y41:%RateA 32-48'\np10376\ng26\n(S'Variable_Type'\n(I2\nttRp10377\nsS'Y:PMachine30'\np10378\ng26\n(S'Variable_Type'\n(I2\nttRp10379\nsS'Y:VBus117'\np10380\ng26\n(S'Variable_Type'\n(I2\nttRp10381\nsS'Y56:%RateA 72-73'\np10382\ng26\n(S'Variable_Type'\n(I1\nttRp10383\nsS'Y68:%RateA 112-113'\np10384\ng26\n(S'Variable_Type'\n(I1\nttRp10385\nsS'Y:PMachine130'\np10386\ng26\n(S'Variable_Type'\n(I2\nttRp10387\nsS'Y27:%RateA 24-33'\np10388\ng26\n(S'Variable_Type'\n(I2\nttRp10389\nsS'Y:PMachine106'\np10390\ng26\n(S'Variable_Type'\n(I2\nttRp10391\nsS'Y:PMachine107'\np10392\ng26\n(S'Variable_Type'\n(I2\nttRp10393\nsS'Y:PMachine104'\np10394\ng26\n(S'Variable_Type'\n(I2\nttRp10395\nsS'Y:VBus73'\np10396\ng26\n(S'Variable_Type'\n(I2\nttRp10397\nsS'Y:VBus74'\np10398\ng26\n(S'Variable_Type'\n(I2\nttRp10399\nsS'Y:VBus75'\np10400\ng26\n(S'Variable_Type'\n(I2\nttRp10401\nsS'Y:VBus76'\np10402\ng26\n(S'Variable_Type'\n(I2\nttRp10403\nsS'Y:PMachine101'\np10404\ng26\n(S'Variable_Type'\n(I2\nttRp10405\nsS'Y:VBus78'\np10406\ng26\n(S'Variable_Type'\n(I2\nttRp10407\nsS'Y:Load 59'\np10408\ng26\n(S'Variable_Type'\n(I2\nttRp10409\nsS'Y:PMachine115'\np10410\ng26\n(S'Variable_Type'\n(I2\nttRp10411\nsS'Y51:%RateA 53-54'\np10412\ng26\n(S'Variable_Type'\n(I1\nttRp10413\nsS'Y67:%RateA 108-109'\np10414\ng26\n(S'Variable_Type'\n(I1\nttRp10415\nsS'Y:PMachine109'\np10416\ng26\n(S'Variable_Type'\n(I2\nttRp10417\nsS'Y:PMachine83'\np10418\ng26\n(S'Variable_Type'\n(I2\nttRp10419\nsS'Y:PMachine81'\np10420\ng26\n(S'Variable_Type'\n(I2\nttRp10421\nsS'Y:PMachine86'\np10422\ng26\n(S'Variable_Type'\n(I2\nttRp10423\nsS'Y:Load 76'\np10424\ng26\n(S'Variable_Type'\n(I2\nttRp10425\nsS'Y:Load 74'\np10426\ng26\n(S'Variable_Type'\n(I2\nttRp10427\nsS'Y45:%RateA 36-37'\np10428\ng26\n(S'Variable_Type'\n(I2\nttRp10429\nsS'Y58:%RateA 78-79'\np10430\ng26\n(S'Variable_Type'\n(I1\nttRp10431\nsS'Y:Load 78'\np10432\ng26\n(S'Variable_Type'\n(I2\nttRp10433\nsS'X:Load(pu)'\np10434\ng26\n(S'Variable_Type'\n(I2\nttRp10435\nsS'Y5:%RateA 13-29'\np10436\ng26\n(S'Variable_Type'\n(I2\nttRp10437\nsS'Y:PMachine118'\np10438\ng26\n(S'Variable_Type'\n(I2\nttRp10439\nsS'Y1:%RateA 11-47'\np10440\ng26\n(S'Variable_Type'\n(I2\nttRp10441\nsS'Y:VBus60'\np10442\ng26\n(S'Variable_Type'\n(I2\nttRp10443\nsS'Y:PMachine137'\np10444\ng26\n(S'Variable_Type'\n(I1\nttRp10445\nsS'Y29:%RateA 25-29'\np10446\ng26\n(S'Variable_Type'\n(I2\nttRp10447\nsS'Y:VBus66'\np10448\ng26\n(S'Variable_Type'\n(I2\nttRp10449\nsS'Iteration'\np10450\ng26\n(S'Variable_Type'\n(I2\nttRp10451\nsS'Y36:%RateA 29-30'\np10452\ng26\n(S'Variable_Type'\n(I1\nttRp10453\nsS'Y54:%RateA 59-60'\np10454\ng26\n(S'Variable_Type'\n(I1\nttRp10455\nsS'Y:Load 90'\np10456\ng26\n(S'Variable_Type'\n(I2\nttRp10457\nsS'Y9:%RateA 16-32'\np10458\ng26\n(S'Variable_Type'\n(I2\nttRp10459\nsS'Y:PMachine134'\np10460\ng26\n(S'Variable_Type'\n(I1\nttRp10461\nsS'Y:Load 95'\np10462\ng26\n(S'Variable_Type'\n(I2\nttRp10463\nsS'Y:VBus63'\np10464\ng26\n(S'Variable_Type'\n(I2\nttRp10465\nsS'Y:VBus62'\np10466\ng26\n(S'Variable_Type'\n(I2\nttRp10467\nsS'Y:VBus61'\np10468\ng26\n(S'Variable_Type'\n(I2\nttRp10469\nsS'Y55:%RateA 61-62'\np10470\ng26\n(S'Variable_Type'\n(I1\nttRp10471\nsS'Y8:%RateA 15-35'\np10472\ng26\n(S'Variable_Type'\n(I2\nttRp10473\nsS'Y:PMachine136'\np10474\ng26\n(S'Variable_Type'\n(I1\nttRp10475\nsS'Y:PMachine135'\np10476\ng26\n(S'Variable_Type'\n(I1\nttRp10477\nsS'Y:VBus64'\np10478\ng26\n(S'Variable_Type'\n(I2\nttRp10479\nsS'Y:PMachine94'\np10480\ng26\n(S'Variable_Type'\n(I2\nttRp10481\nsS'Y:VBus69'\np10482\ng26\n(S'Variable_Type'\n(I2\nttRp10483\nsS'Y:VBus108'\np10484\ng26\n(S'Variable_Type'\n(I2\nttRp10485\nsS'Y:PMachine139'\np10486\ng26\n(S'Variable_Type'\n(I1\nttRp10487\nsS'Y:PMachine97'\np10488\ng26\n(S'Variable_Type'\n(I2\nttRp10489\nsS'Y:PMachine92'\np10490\ng26\n(S'Variable_Type'\n(I2\nttRp10491\nsS'Y:VBus68'\np10492\ng26\n(S'Variable_Type'\n(I2\nttRp10493\nsS'Y:Load 61'\np10494\ng26\n(S'Variable_Type'\n(I2\nttRp10495\nsS'Y:VBus89'\np10496\ng26\n(S'Variable_Type'\n(I2\nttRp10497\nsS'Y21:%RateA 21-43'\np10498\ng26\n(S'Variable_Type'\n(I2\nttRp10499\nsS'Y:PMachine90'\np10500\ng26\n(S'Variable_Type'\n(I2\nttRp10501\nsS'Y:PMachine14'\np10502\ng26\n(S'Variable_Type'\n(I2\nttRp10503\nsS'Y:PMachine63'\np10504\ng26\n(S'Variable_Type'\n(I2\nttRp10505\nsS'Y:PMachine93'\np10506\ng26\n(S'Variable_Type'\n(I2\nttRp10507\nsS'Y:PConsoTot'\np10508\ng26\n(S'Variable_Type'\n(I2\nttRp10509\nsS'Y23:%RateA 22-31'\np10510\ng26\n(S'Variable_Type'\n(I2\nttRp10511\nsS'Y19:%RateA 20-26'\np10512\ng26\n(S'Variable_Type'\n(I2\nttRp10513\nsS'Y:PMachine18'\np10514\ng26\n(S'Variable_Type'\n(I2\nttRp10515\nsS'Y:VBus34'\np10516\ng26\n(S'Variable_Type'\n(I2\nttRp10517\nsS'Y:NbeTension'\np10518\ng26\n(S'Variable_Type'\n(I2\nttRp10519\nsS'Y:PMachine128'\np10520\ng26\n(S'Variable_Type'\n(I2\nttRp10521\nsS'Y:PMachine129'\np10522\ng26\n(S'Variable_Type'\n(I2\nttRp10523\nsS'Y:VBus133'\np10524\ng26\n(S'Variable_Type'\n(I2\nttRp10525\nsS'Y:Load 82'\np10526\ng26\n(S'Variable_Type'\n(I2\nttRp10527\nsS'Y:PMachine125'\np10528\ng26\n(S'Variable_Type'\n(I2\nttRp10529\nsS'Y:PMachine126'\np10530\ng26\n(S'Variable_Type'\n(I2\nttRp10531\nsS'Y:PMachine127'\np10532\ng26\n(S'Variable_Type'\n(I2\nttRp10533\nsS'Y:Load 86'\np10534\ng26\n(S'Variable_Type'\n(I2\nttRp10535\nsS'Y:PMachine121'\np10536\ng26\n(S'Variable_Type'\n(I2\nttRp10537\nsS'Y:Load 84'\np10538\ng26\n(S'Variable_Type'\n(I2\nttRp10539\nsS'Y:PMachine123'\np10540\ng26\n(S'Variable_Type'\n(I2\nttRp10541\nsS'Y:Load 102'\np10542\ng26\n(S'Variable_Type'\n(I2\nttRp10543\nsS'Y:VBus57'\np10544\ng26\n(S'Variable_Type'\n(I2\nttRp10545\nsS'Y:Load 100'\np10546\ng26\n(S'Variable_Type'\n(I2\nttRp10547\nsS'Y:Load 101'\np10548\ng26\n(S'Variable_Type'\n(I2\nttRp10549\nsS'Y:VBus52'\np10550\ng26\n(S'Variable_Type'\n(I2\nttRp10551\nsS'Y:VBus53'\np10552\ng26\n(S'Variable_Type'\n(I2\nttRp10553\nsS'Y:Load 104'\np10554\ng26\n(S'Variable_Type'\n(I2\nttRp10555\nsS'Y:VBus51'\np10556\ng26\n(S'Variable_Type'\n(I2\nttRp10557\nsS'Y:Load 108'\np10558\ng26\n(S'Variable_Type'\n(I2\nttRp10559\nsS'Y64:%RateA 102-103'\np10560\ng26\n(S'Variable_Type'\n(I1\nttRp10561\nsS'Y:PMachine112'\np10562\ng26\n(S'Variable_Type'\n(I2\nttRp10563\nsS'Y:VBus58'\np10564\ng26\n(S'Variable_Type'\n(I2\nttRp10565\nsS'Y:VBus59'\np10566\ng26\n(S'Variable_Type'\n(I2\nttRp10567\nsS'Y:Load 53'\np10568\ng26\n(S'Variable_Type'\n(I2\nttRp10569\nsS'Y10:%RateA 16-47'\np10570\ng26\n(S'Variable_Type'\n(I2\nttRp10571\nsS'Y:PMachine54'\np10572\ng26\n(S'Variable_Type'\n(I2\nttRp10573\nsS'Y:VBus56'\np10574\ng26\n(S'Variable_Type'\n(I2\nttRp10575\nsS'TOT WIND'\np10576\ng26\n(S'Variable_Type'\n(I2\nttRp10577\nsS'Y3:%RateA 12-24'\np10578\ng26\n(S'Variable_Type'\n(I2\nttRp10579\nsS'Y11:%RateA 17-27'\np10580\ng26\n(S'Variable_Type'\n(I2\nttRp10581\nsS'Y:PMachine114'\np10582\ng26\n(S'Variable_Type'\n(I2\nttRp10583\nsS'Y:VBus72'\np10584\ng26\n(S'Variable_Type'\n(I2\nttRp10585\nsS'Y:PMachine60'\np10586\ng26\n(S'Variable_Type'\n(I2\nttRp10587\nsS'Y:PMachine61'\np10588\ng26\n(S'Variable_Type'\n(I1\nttRp10589\nsS'Y:PMachine62'\np10590\ng26\n(S'Variable_Type'\n(I2\nttRp10591\nsS'Y:PMachine105'\np10592\ng26\n(S'Variable_Type'\n(I2\nttRp10593\nsS'Y:PMachine64'\np10594\ng26\n(S'Variable_Type'\n(I2\nttRp10595\nsS'Y:PMachine65'\np10596\ng26\n(S'Variable_Type'\n(I2\nttRp10597\nsS'Y:PMachine66'\np10598\ng26\n(S'Variable_Type'\n(I2\nttRp10599\nsS'Y:PMachine67'\np10600\ng26\n(S'Variable_Type'\n(I2\nttRp10601\nsS'Y:PMachine68'\np10602\ng26\n(S'Variable_Type'\n(I2\nttRp10603\nsS'Y:PMachine102'\np10604\ng26\n(S'Variable_Type'\n(I2\nttRp10605\nsS'X:ProdPV%Pnom'\np10606\ng26\n(S'Variable_Type'\n(I2\nttRp10607\nsS'Y:VBus138'\np10608\ng26\n(S'Variable_Type'\n(I2\nttRp10609\nsS'Y26:%RateA 24-25'\np10610\ng26\n(S'Variable_Type'\n(I1\nttRp10611\nssg630\n(dp10612\nsg632\n(dp10613\ng2509\n(S'Iteration'\np10614\ng10451\ntp10615\nsg2512\n(g638\nI0\ntp10616\nsg2514\n(g10614\ng10451\ntp10617\nsg2516\n(S''\nI0\ntp10618\nsg2518\n(S''\nI0\ntp10619\nsg2520\n(NI-2\ntp10620\nsg2522\n((lI-2\ntp10621\nssg650\nF1369931650.8399999\nsba(iOWContexts\nContext\np10622\n(dp10623\ng20\n(lp10624\ng1272\nasg23\n(dp10625\nS'Y:VBus48'\np10626\ng26\n(S'Variable_Type'\n(I2\nttRp10627\nsS'Y15:%RateA 18-44'\np10628\ng26\n(S'Variable_Type'\n(I2\nttRp10629\nsS'Y:VBus41'\np10630\ng26\n(S'Variable_Type'\n(I2\nttRp10631\nsS'Y:VBus40'\np10632\ng26\n(S'Variable_Type'\n(I2\nttRp10633\nsS'Y:VBus43'\np10634\ng26\n(S'Variable_Type'\n(I2\nttRp10635\nsS'Y:VBus42'\np10636\ng26\n(S'Variable_Type'\n(I2\nttRp10637\nsS'Y:VBus45'\np10638\ng26\n(S'Variable_Type'\n(I2\nttRp10639\nsS'Y:VBus44'\np10640\ng26\n(S'Variable_Type'\n(I2\nttRp10641\nsS'Y:VBus47'\np10642\ng26\n(S'Variable_Type'\n(I2\nttRp10643\nsS'Y:VBus46'\np10644\ng26\n(S'Variable_Type'\n(I2\nttRp10645\nsS'Y39:%RateA 32-45'\np10646\ng26\n(S'Variable_Type'\n(I2\nttRp10647\nsS'Y:Load 110'\np10648\ng26\n(S'Variable_Type'\n(I2\nttRp10649\nsS'Y:Load 115'\np10650\ng26\n(S'Variable_Type'\n(I2\nttRp10651\nsS'Y:VBus79'\np10652\ng26\n(S'Variable_Type'\n(I2\nttRp10653\nsS'Y13:%RateA 18-30'\np10654\ng26\n(S'Variable_Type'\n(I2\nttRp10655\nsS'Y34:%RateA 28-38'\np10656\ng26\n(S'Variable_Type'\n(I2\nttRp10657\nsS'Y:NbeTransit'\np10658\ng26\n(S'Variable_Type'\n(I1\nttRp10659\nsS'Y:VBus104'\np10660\ng26\n(S'Variable_Type'\n(I2\nttRp10661\nsS'Y20:%RateA 20-44'\np10662\ng26\n(S'Variable_Type'\n(I2\nttRp10663\nsS'Y38:%RateA 32-45'\np10664\ng26\n(S'Variable_Type'\n(I2\nttRp10665\nsS'Y:PMachine73'\np10666\ng26\n(S'Variable_Type'\n(I2\nttRp10667\nsS'Y:PMachine72'\np10668\ng26\n(S'Variable_Type'\n(I2\nttRp10669\nsS'Y49:%RateA 40-48'\np10670\ng26\n(S'Variable_Type'\n(I2\nttRp10671\nsS'Y:PMachine77'\np10672\ng26\n(S'Variable_Type'\n(I2\nttRp10673\nsS'Y:PMachine75'\np10674\ng26\n(S'Variable_Type'\n(I2\nttRp10675\nsS'Y:PMachine74'\np10676\ng26\n(S'Variable_Type'\n(I2\nttRp10677\nsS'Y:PMachine78'\np10678\ng26\n(S'Variable_Type'\n(I1\nttRp10679\nsS'Y:PMachine138'\np10680\ng26\n(S'Variable_Type'\n(I1\nttRp10681\nsS'Y28:%RateA 24-42'\np10682\ng26\n(S'Variable_Type'\n(I2\nttRp10683\nsS'Y:PProdTot'\np10684\ng26\n(S'Variable_Type'\n(I2\nttRp10685\nsS'Y:PMachine69'\np10686\ng26\n(S'Variable_Type'\n(I2\nttRp10687\nsS'Y:VBus38'\np10688\ng26\n(S'Variable_Type'\n(I2\nttRp10689\nsS'Y:VBus39'\np10690\ng26\n(S'Variable_Type'\n(I2\nttRp10691\nsS'Y62:%RateA 86-87'\np10692\ng26\n(S'Variable_Type'\n(I1\nttRp10693\nsS'Y:PMachine1'\np10694\ng26\n(S'Variable_Type'\n(I2\nttRp10695\nsS'Y:VBus35'\np10696\ng26\n(S'Variable_Type'\n(I2\nttRp10697\nsS'Y:VBus36'\np10698\ng26\n(S'Variable_Type'\n(I2\nttRp10699\nsS'Y:VBus37'\np10700\ng26\n(S'Variable_Type'\n(I2\nttRp10701\nsS'Y:VBus30'\np10702\ng26\n(S'Variable_Type'\n(I2\nttRp10703\nsS'Y:VBus31'\np10704\ng26\n(S'Variable_Type'\n(I2\nttRp10705\nsS'Y:VBus32'\np10706\ng26\n(S'Variable_Type'\n(I2\nttRp10707\nsS'Y:VBus33'\np10708\ng26\n(S'Variable_Type'\n(I2\nttRp10709\nsS'Y53:%RateA 57-58'\np10710\ng26\n(S'Variable_Type'\n(I1\nttRp10711\nsS'Y14:%RateA 18-31'\np10712\ng26\n(S'Variable_Type'\n(I2\nttRp10713\nsS'Y48:%RateA 39-46'\np10714\ng26\n(S'Variable_Type'\n(I2\nttRp10715\nsS'Y60:%RateA 82-83'\np10716\ng26\n(S'Variable_Type'\n(I1\nttRp10717\nsS'Y:PMachine87'\np10718\ng26\n(S'Variable_Type'\n(I2\nttRp10719\nsS'Y:VBus121'\np10720\ng26\n(S'Variable_Type'\n(I2\nttRp10721\nsS'Y:VBus120'\np10722\ng26\n(S'Variable_Type'\n(I2\nttRp10723\nsS'Y:VBus123'\np10724\ng26\n(S'Variable_Type'\n(I2\nttRp10725\nsS'Y:VBus122'\np10726\ng26\n(S'Variable_Type'\n(I2\nttRp10727\nsS'Y:VBus125'\np10728\ng26\n(S'Variable_Type'\n(I2\nttRp10729\nsS'Y:VBus124'\np10730\ng26\n(S'Variable_Type'\n(I2\nttRp10731\nsS'Y:VBus127'\np10732\ng26\n(S'Variable_Type'\n(I2\nttRp10733\nsS'Y:VBus126'\np10734\ng26\n(S'Variable_Type'\n(I2\nttRp10735\nsS'Y:VBus129'\np10736\ng26\n(S'Variable_Type'\n(I2\nttRp10737\nsS'Y:VBus128'\np10738\ng26\n(S'Variable_Type'\n(I2\nttRp10739\nsS'Y37:%RateA 32-34'\np10740\ng26\n(S'Variable_Type'\n(I2\nttRp10741\nsS'Y43:%RateA 35-37'\np10742\ng26\n(S'Variable_Type'\n(I2\nttRp10743\nsS'Y:PMachine42'\np10744\ng26\n(S'Variable_Type'\n(I2\nttRp10745\nsS'Y0:%RateA 11-28'\np10746\ng26\n(S'Variable_Type'\n(I2\nttRp10747\nsS'Y:VBus67'\np10748\ng26\n(S'Variable_Type'\n(I2\nttRp10749\nsS'Y:Load 37'\np10750\ng26\n(S'Variable_Type'\n(I2\nttRp10751\nsS'Y65:%RateA 104-105'\np10752\ng26\n(S'Variable_Type'\n(I1\nttRp10753\nsS'Y40:%RateA 32-47'\np10754\ng26\n(S'Variable_Type'\n(I2\nttRp10755\nsS'Y:PMachine47'\np10756\ng26\n(S'Variable_Type'\n(I2\nttRp10757\nsS'Y6:%RateA 14-15'\np10758\ng26\n(S'Variable_Type'\n(I1\nttRp10759\nsS'Y:VBus1'\np10760\ng26\n(S'Variable_Type'\n(I2\nttRp10761\nsS'Y44:%RateA 35-39'\np10762\ng26\n(S'Variable_Type'\n(I2\nttRp10763\nsS'Y:PMachine88'\np10764\ng26\n(S'Variable_Type'\n(I1\nttRp10765\nsS'Y42:%RateA 34-36'\np10766\ng26\n(S'Variable_Type'\n(I2\nttRp10767\nsS'Y57:%RateA 76-77'\np10768\ng26\n(S'Variable_Type'\n(I1\nttRp10769\nsS'Y:PMachine89'\np10770\ng26\n(S'Variable_Type'\n(I1\nttRp10771\nsS'Y:VBus77'\np10772\ng26\n(S'Variable_Type'\n(I2\nttRp10773\nsS'Y:VBus29'\np10774\ng26\n(S'Variable_Type'\n(I2\nttRp10775\nsS'Y:VBus28'\np10776\ng26\n(S'Variable_Type'\n(I2\nttRp10777\nsS'Y:VBus27'\np10778\ng26\n(S'Variable_Type'\n(I2\nttRp10779\nsS'Y:VBus26'\np10780\ng26\n(S'Variable_Type'\n(I2\nttRp10781\nsS'Y:VBus25'\np10782\ng26\n(S'Variable_Type'\n(I2\nttRp10783\nsS'Y:VBus24'\np10784\ng26\n(S'Variable_Type'\n(I2\nttRp10785\nsS'Y:VBus23'\np10786\ng26\n(S'Variable_Type'\n(I2\nttRp10787\nsS'Y:VBus22'\np10788\ng26\n(S'Variable_Type'\n(I2\nttRp10789\nsS'Y:VBus21'\np10790\ng26\n(S'Variable_Type'\n(I2\nttRp10791\nsS'Y:VBus20'\np10792\ng26\n(S'Variable_Type'\n(I2\nttRp10793\nsS'Y:VBus85'\np10794\ng26\n(S'Variable_Type'\n(I2\nttRp10795\nsS'TOT VAZZIO'\np10796\ng26\n(S'Variable_Type'\n(I2\nttRp10797\nsS'Y:VBus84'\np10798\ng26\n(S'Variable_Type'\n(I2\nttRp10799\nsS'Y52:%RateA 55-56'\np10800\ng26\n(S'Variable_Type'\n(I1\nttRp10801\nsS'Y2:%RateA 12-24'\np10802\ng26\n(S'Variable_Type'\n(I2\nttRp10803\nsS'Y:VBus112'\np10804\ng26\n(S'Variable_Type'\n(I2\nttRp10805\nsS'Y:VBus132'\np10806\ng26\n(S'Variable_Type'\n(I2\nttRp10807\nsS'Y:PMachine58'\np10808\ng26\n(S'Variable_Type'\n(I2\nttRp10809\nsS'Y:VBus130'\np10810\ng26\n(S'Variable_Type'\n(I2\nttRp10811\nsS'Y:VBus131'\np10812\ng26\n(S'Variable_Type'\n(I2\nttRp10813\nsS'Y:VBus136'\np10814\ng26\n(S'Variable_Type'\n(I2\nttRp10815\nsS'Y:VBus137'\np10816\ng26\n(S'Variable_Type'\n(I2\nttRp10817\nsS'Y:VBus134'\np10818\ng26\n(S'Variable_Type'\n(I2\nttRp10819\nsS'Y:VBus135'\np10820\ng26\n(S'Variable_Type'\n(I2\nttRp10821\nsS'Y:VBus81'\np10822\ng26\n(S'Variable_Type'\n(I2\nttRp10823\nsS'Y:PMachine53'\np10824\ng26\n(S'Variable_Type'\n(I2\nttRp10825\nsS'Y:VBus139'\np10826\ng26\n(S'Variable_Type'\n(I2\nttRp10827\nsS'Y30:%RateA 25-29'\np10828\ng26\n(S'Variable_Type'\n(I2\nttRp10829\nsS'Y:VBus115'\np10830\ng26\n(S'Variable_Type'\n(I2\nttRp10831\nsS'Y:PMachine124'\np10832\ng26\n(S'Variable_Type'\n(I2\nttRp10833\nsS'Y:VBus83'\np10834\ng26\n(S'Variable_Type'\n(I2\nttRp10835\nsS'Y66:%RateA 106-107'\np10836\ng26\n(S'Variable_Type'\n(I1\nttRp10837\nsS'Y25:%RateA 23-41'\np10838\ng26\n(S'Variable_Type'\n(I2\nttRp10839\nsS'Y:%Losses'\np10840\ng26\n(S'Variable_Type'\n(I2\nttRp10841\nsS'Y:VBus12'\np10842\ng26\n(S'Variable_Type'\n(I2\nttRp10843\nsS'Y:VBus13'\np10844\ng26\n(S'Variable_Type'\n(I2\nttRp10845\nsS'Y50:%RateA 51-52'\np10846\ng26\n(S'Variable_Type'\n(I1\nttRp10847\nsS'Y:VBus11'\np10848\ng26\n(S'Variable_Type'\n(I2\nttRp10849\nsS'Y:VBus16'\np10850\ng26\n(S'Variable_Type'\n(I2\nttRp10851\nsS'Y:VBus17'\np10852\ng26\n(S'Variable_Type'\n(I2\nttRp10853\nsS'Y:VBus14'\np10854\ng26\n(S'Variable_Type'\n(I2\nttRp10855\nsS'Y:VBus15'\np10856\ng26\n(S'Variable_Type'\n(I2\nttRp10857\nsS'Y:VBus113'\np10858\ng26\n(S'Variable_Type'\n(I2\nttRp10859\nsS'Y:PMachine120'\np10860\ng26\n(S'Variable_Type'\n(I2\nttRp10861\nsS'Y:VBus18'\np10862\ng26\n(S'Variable_Type'\n(I2\nttRp10863\nsS'Y:VBus19'\np10864\ng26\n(S'Variable_Type'\n(I2\nttRp10865\nsS'Y4:%RateA 13-25'\np10866\ng26\n(S'Variable_Type'\n(I2\nttRp10867\nsS'Y35:%RateA 28-47'\np10868\ng26\n(S'Variable_Type'\n(I2\nttRp10869\nsS'Y:PMachine122'\np10870\ng26\n(S'Variable_Type'\n(I2\nttRp10871\nsS'Y16:%RateA 19-21'\np10872\ng26\n(S'Variable_Type'\n(I2\nttRp10873\nsS'Y:VBus92'\np10874\ng26\n(S'Variable_Type'\n(I2\nttRp10875\nsS'Y7:%RateA 14-35'\np10876\ng26\n(S'Variable_Type'\n(I2\nttRp10877\nsS'Y:VBus90'\np10878\ng26\n(S'Variable_Type'\n(I2\nttRp10879\nsS'Y:VBus96'\np10880\ng26\n(S'Variable_Type'\n(I2\nttRp10881\nsS'Y:VBus97'\np10882\ng26\n(S'Variable_Type'\n(I2\nttRp10883\nsS'Y:VBus94'\np10884\ng26\n(S'Variable_Type'\n(I2\nttRp10885\nsS'Y:VBus95'\np10886\ng26\n(S'Variable_Type'\n(I2\nttRp10887\nsS'Y:VBus107'\np10888\ng26\n(S'Variable_Type'\n(I2\nttRp10889\nsS'Y:VBus106'\np10890\ng26\n(S'Variable_Type'\n(I2\nttRp10891\nsS'Y:VBus105'\np10892\ng26\n(S'Variable_Type'\n(I2\nttRp10893\nsS'Y22:%RateA 22-23'\np10894\ng26\n(S'Variable_Type'\n(I1\nttRp10895\nsS'Y:VBus103'\np10896\ng26\n(S'Variable_Type'\n(I2\nttRp10897\nsS'Y:VBus102'\np10898\ng26\n(S'Variable_Type'\n(I2\nttRp10899\nsS'Y:VBus101'\np10900\ng26\n(S'Variable_Type'\n(I2\nttRp10901\nsS'Y:VBus100'\np10902\ng26\n(S'Variable_Type'\n(I2\nttRp10903\nsS'Y:Load 55'\np10904\ng26\n(S'Variable_Type'\n(I2\nttRp10905\nsS'Y:Load 57'\np10906\ng26\n(S'Variable_Type'\n(I2\nttRp10907\nsS'Y:Load 51'\np10908\ng26\n(S'Variable_Type'\n(I2\nttRp10909\nsS'Y:VBus54'\np10910\ng26\n(S'Variable_Type'\n(I2\nttRp10911\nsS'Y:VBus109'\np10912\ng26\n(S'Variable_Type'\n(I2\nttRp10913\nsS'Y46:%RateA 36-48'\np10914\ng26\n(S'Variable_Type'\n(I2\nttRp10915\nsS'Y:Load 80'\np10916\ng26\n(S'Variable_Type'\n(I2\nttRp10917\nsS'Y:PMachine133'\np10918\ng26\n(S'Variable_Type'\n(I2\nttRp10919\nsS'Y:VBus55'\np10920\ng26\n(S'Variable_Type'\n(I2\nttRp10921\nsS'Y:PMachine29'\np10922\ng26\n(S'Variable_Type'\n(I1\nttRp10923\nsS'Y24:%RateA 23-32'\np10924\ng26\n(S'Variable_Type'\n(I2\nttRp10925\nsS'X:lineOff#'\np10926\ng26\n(S'Variable_Type'\n(I2\nttRp10927\nsS'Y:Max%A'\np10928\ng26\n(S'Variable_Type'\n(I2\nttRp10929\nsS'Y:NbeTransit_0.9-1'\np10930\ng26\n(S'Variable_Type'\n(I1\nttRp10931\nsS'XProdEolienne%Pnom'\np10932\ng26\n(S'Variable_Type'\n(I2\nttRp10933\nsS'Y33:%RateA 27-33'\np10934\ng26\n(S'Variable_Type'\n(I2\nttRp10935\nsS'Y59:%RateA 80-81'\np10936\ng26\n(S'Variable_Type'\n(I1\nttRp10937\nsS'Y:VBus65'\np10938\ng26\n(S'Variable_Type'\n(I2\nttRp10939\nsS'Y:VBus118'\np10940\ng26\n(S'Variable_Type'\n(I2\nttRp10941\nsS'Y:VBus119'\np10942\ng26\n(S'Variable_Type'\n(I2\nttRp10943\nsS'Y:PMachine117'\np10944\ng26\n(S'Variable_Type'\n(I2\nttRp10945\nsS'Y:PMachine116'\np10946\ng26\n(S'Variable_Type'\n(I2\nttRp10947\nsS'Y:PMachine111'\np10948\ng26\n(S'Variable_Type'\n(I2\nttRp10949\nsS'Y:VBus88'\np10950\ng26\n(S'Variable_Type'\n(I2\nttRp10951\nsS'Y:PMachine113'\np10952\ng26\n(S'Variable_Type'\n(I2\nttRp10953\nsS'Y:VBus93'\np10954\ng26\n(S'Variable_Type'\n(I2\nttRp10955\nsS'Y:VBus110'\np10956\ng26\n(S'Variable_Type'\n(I2\nttRp10957\nsS'Y:VBus111'\np10958\ng26\n(S'Variable_Type'\n(I2\nttRp10959\nsS'Y:VBus87'\np10960\ng26\n(S'Variable_Type'\n(I2\nttRp10961\nsS'Y12:%RateA 18-30'\np10962\ng26\n(S'Variable_Type'\n(I2\nttRp10963\nsS'Y:VBus114'\np10964\ng26\n(S'Variable_Type'\n(I2\nttRp10965\nsS'Y:VBus80'\np10966\ng26\n(S'Variable_Type'\n(I2\nttRp10967\nsS'Y:VBus116'\np10968\ng26\n(S'Variable_Type'\n(I2\nttRp10969\nsS'Y:VBus82'\np10970\ng26\n(S'Variable_Type'\n(I2\nttRp10971\nsS'Y61:%RateA 84-85'\np10972\ng26\n(S'Variable_Type'\n(I1\nttRp10973\nsS'Y31:%RateA 26-41'\np10974\ng26\n(S'Variable_Type'\n(I2\nttRp10975\nsS'Y:PMachine131'\np10976\ng26\n(S'Variable_Type'\n(I2\nttRp10977\nsS'Y47:%RateA 38-43'\np10978\ng26\n(S'Variable_Type'\n(I2\nttRp10979\nsS'Y:Load 42'\np10980\ng26\n(S'Variable_Type'\n(I2\nttRp10981\nsS'Y:PMachine85'\np10982\ng26\n(S'Variable_Type'\n(I2\nttRp10983\nsS'Y32:%RateA 26-46'\np10984\ng26\n(S'Variable_Type'\n(I2\nttRp10985\nsS'Y:PMachine132'\np10986\ng26\n(S'Variable_Type'\n(I2\nttRp10987\nsS'Y18:%RateA 19-27'\np10988\ng26\n(S'Variable_Type'\n(I2\nttRp10989\nsS'Y:VBus86'\np10990\ng26\n(S'Variable_Type'\n(I2\nttRp10991\nsS'Y63:%RateA 95-96'\np10992\ng26\n(S'Variable_Type'\n(I1\nttRp10993\nsS'Y17:%RateA 19-22'\np10994\ng26\n(S'Variable_Type'\n(I2\nttRp10995\nsS'Y41:%RateA 32-48'\np10996\ng26\n(S'Variable_Type'\n(I2\nttRp10997\nsS'Y:PMachine30'\np10998\ng26\n(S'Variable_Type'\n(I2\nttRp10999\nsS'Y:VBus117'\np11000\ng26\n(S'Variable_Type'\n(I2\nttRp11001\nsS'Y56:%RateA 72-73'\np11002\ng26\n(S'Variable_Type'\n(I1\nttRp11003\nsS'Y68:%RateA 112-113'\np11004\ng26\n(S'Variable_Type'\n(I1\nttRp11005\nsS'Y:PMachine130'\np11006\ng26\n(S'Variable_Type'\n(I2\nttRp11007\nsS'Y27:%RateA 24-33'\np11008\ng26\n(S'Variable_Type'\n(I2\nttRp11009\nsS'Y:PMachine106'\np11010\ng26\n(S'Variable_Type'\n(I2\nttRp11011\nsS'Y:PMachine107'\np11012\ng26\n(S'Variable_Type'\n(I2\nttRp11013\nsS'Y:PMachine104'\np11014\ng26\n(S'Variable_Type'\n(I2\nttRp11015\nsS'Y:VBus73'\np11016\ng26\n(S'Variable_Type'\n(I2\nttRp11017\nsS'Y:VBus74'\np11018\ng26\n(S'Variable_Type'\n(I2\nttRp11019\nsS'Y:VBus75'\np11020\ng26\n(S'Variable_Type'\n(I2\nttRp11021\nsS'Y:VBus76'\np11022\ng26\n(S'Variable_Type'\n(I2\nttRp11023\nsS'Y:PMachine101'\np11024\ng26\n(S'Variable_Type'\n(I2\nttRp11025\nsS'Y:VBus78'\np11026\ng26\n(S'Variable_Type'\n(I2\nttRp11027\nsS'Y:Load 59'\np11028\ng26\n(S'Variable_Type'\n(I2\nttRp11029\nsS'Y:PMachine115'\np11030\ng26\n(S'Variable_Type'\n(I2\nttRp11031\nsS'Y51:%RateA 53-54'\np11032\ng26\n(S'Variable_Type'\n(I1\nttRp11033\nsS'Y67:%RateA 108-109'\np11034\ng26\n(S'Variable_Type'\n(I1\nttRp11035\nsS'Y:PMachine109'\np11036\ng26\n(S'Variable_Type'\n(I2\nttRp11037\nsS'Y:PMachine83'\np11038\ng26\n(S'Variable_Type'\n(I2\nttRp11039\nsS'Y:PMachine81'\np11040\ng26\n(S'Variable_Type'\n(I2\nttRp11041\nsS'Y:PMachine86'\np11042\ng26\n(S'Variable_Type'\n(I2\nttRp11043\nsS'Y:Load 76'\np11044\ng26\n(S'Variable_Type'\n(I2\nttRp11045\nsS'Y:Load 74'\np11046\ng26\n(S'Variable_Type'\n(I2\nttRp11047\nsS'Y45:%RateA 36-37'\np11048\ng26\n(S'Variable_Type'\n(I2\nttRp11049\nsS'Y58:%RateA 78-79'\np11050\ng26\n(S'Variable_Type'\n(I1\nttRp11051\nsS'Y:Load 78'\np11052\ng26\n(S'Variable_Type'\n(I2\nttRp11053\nsS'X:Load(pu)'\np11054\ng26\n(S'Variable_Type'\n(I2\nttRp11055\nsS'Y5:%RateA 13-29'\np11056\ng26\n(S'Variable_Type'\n(I2\nttRp11057\nsS'Y:PMachine118'\np11058\ng26\n(S'Variable_Type'\n(I2\nttRp11059\nsS'Y1:%RateA 11-47'\np11060\ng26\n(S'Variable_Type'\n(I2\nttRp11061\nsS'Y:VBus60'\np11062\ng26\n(S'Variable_Type'\n(I2\nttRp11063\nsS'Y:PMachine137'\np11064\ng26\n(S'Variable_Type'\n(I1\nttRp11065\nsS'Y29:%RateA 25-29'\np11066\ng26\n(S'Variable_Type'\n(I2\nttRp11067\nsS'Y:VBus66'\np11068\ng26\n(S'Variable_Type'\n(I2\nttRp11069\nsS'Iteration'\np11070\ng26\n(S'Variable_Type'\n(I2\nttRp11071\nsS'Y36:%RateA 29-30'\np11072\ng26\n(S'Variable_Type'\n(I1\nttRp11073\nsS'Y54:%RateA 59-60'\np11074\ng26\n(S'Variable_Type'\n(I1\nttRp11075\nsS'Y:Load 90'\np11076\ng26\n(S'Variable_Type'\n(I2\nttRp11077\nsS'Y9:%RateA 16-32'\np11078\ng26\n(S'Variable_Type'\n(I2\nttRp11079\nsS'Y:PMachine134'\np11080\ng26\n(S'Variable_Type'\n(I1\nttRp11081\nsS'Y:Load 95'\np11082\ng26\n(S'Variable_Type'\n(I2\nttRp11083\nsS'Y:VBus63'\np11084\ng26\n(S'Variable_Type'\n(I2\nttRp11085\nsS'Y:VBus62'\np11086\ng26\n(S'Variable_Type'\n(I2\nttRp11087\nsS'Y:VBus61'\np11088\ng26\n(S'Variable_Type'\n(I2\nttRp11089\nsS'Y55:%RateA 61-62'\np11090\ng26\n(S'Variable_Type'\n(I1\nttRp11091\nsS'Y8:%RateA 15-35'\np11092\ng26\n(S'Variable_Type'\n(I2\nttRp11093\nsS'Y:PMachine136'\np11094\ng26\n(S'Variable_Type'\n(I1\nttRp11095\nsS'Y:PMachine135'\np11096\ng26\n(S'Variable_Type'\n(I1\nttRp11097\nsS'Y:VBus64'\np11098\ng26\n(S'Variable_Type'\n(I2\nttRp11099\nsS'Y:PMachine94'\np11100\ng26\n(S'Variable_Type'\n(I2\nttRp11101\nsS'Y:VBus69'\np11102\ng26\n(S'Variable_Type'\n(I2\nttRp11103\nsS'Y:VBus108'\np11104\ng26\n(S'Variable_Type'\n(I2\nttRp11105\nsS'Y:PMachine139'\np11106\ng26\n(S'Variable_Type'\n(I1\nttRp11107\nsS'Y:PMachine97'\np11108\ng26\n(S'Variable_Type'\n(I2\nttRp11109\nsS'Y:PMachine92'\np11110\ng26\n(S'Variable_Type'\n(I2\nttRp11111\nsS'Y:VBus68'\np11112\ng26\n(S'Variable_Type'\n(I2\nttRp11113\nsS'Y:Load 61'\np11114\ng26\n(S'Variable_Type'\n(I2\nttRp11115\nsS'Y:VBus89'\np11116\ng26\n(S'Variable_Type'\n(I2\nttRp11117\nsS'Y21:%RateA 21-43'\np11118\ng26\n(S'Variable_Type'\n(I2\nttRp11119\nsS'Y:PMachine90'\np11120\ng26\n(S'Variable_Type'\n(I2\nttRp11121\nsS'Y:PMachine14'\np11122\ng26\n(S'Variable_Type'\n(I2\nttRp11123\nsS'Y:PMachine63'\np11124\ng26\n(S'Variable_Type'\n(I2\nttRp11125\nsS'Y:PMachine93'\np11126\ng26\n(S'Variable_Type'\n(I2\nttRp11127\nsS'Y:PConsoTot'\np11128\ng26\n(S'Variable_Type'\n(I2\nttRp11129\nsS'Y23:%RateA 22-31'\np11130\ng26\n(S'Variable_Type'\n(I2\nttRp11131\nsS'Y19:%RateA 20-26'\np11132\ng26\n(S'Variable_Type'\n(I2\nttRp11133\nsS'Y:PMachine18'\np11134\ng26\n(S'Variable_Type'\n(I2\nttRp11135\nsS'Y:VBus34'\np11136\ng26\n(S'Variable_Type'\n(I2\nttRp11137\nsS'Y:NbeTension'\np11138\ng26\n(S'Variable_Type'\n(I2\nttRp11139\nsS'Y:PMachine128'\np11140\ng26\n(S'Variable_Type'\n(I2\nttRp11141\nsS'Y:PMachine129'\np11142\ng26\n(S'Variable_Type'\n(I2\nttRp11143\nsS'Y:VBus133'\np11144\ng26\n(S'Variable_Type'\n(I2\nttRp11145\nsS'Y:Load 82'\np11146\ng26\n(S'Variable_Type'\n(I2\nttRp11147\nsS'Y:PMachine125'\np11148\ng26\n(S'Variable_Type'\n(I2\nttRp11149\nsS'Y:PMachine126'\np11150\ng26\n(S'Variable_Type'\n(I2\nttRp11151\nsS'Y:PMachine127'\np11152\ng26\n(S'Variable_Type'\n(I2\nttRp11153\nsS'Y:Load 86'\np11154\ng26\n(S'Variable_Type'\n(I2\nttRp11155\nsS'Y:PMachine121'\np11156\ng26\n(S'Variable_Type'\n(I2\nttRp11157\nsS'Y:Load 84'\np11158\ng26\n(S'Variable_Type'\n(I2\nttRp11159\nsS'Y:PMachine123'\np11160\ng26\n(S'Variable_Type'\n(I2\nttRp11161\nsS'Y:Load 102'\np11162\ng26\n(S'Variable_Type'\n(I2\nttRp11163\nsS'Y:VBus57'\np11164\ng26\n(S'Variable_Type'\n(I2\nttRp11165\nsS'Y:Load 100'\np11166\ng26\n(S'Variable_Type'\n(I2\nttRp11167\nsS'Y:Load 101'\np11168\ng26\n(S'Variable_Type'\n(I2\nttRp11169\nsS'Y:VBus52'\np11170\ng26\n(S'Variable_Type'\n(I2\nttRp11171\nsS'Y:VBus53'\np11172\ng26\n(S'Variable_Type'\n(I2\nttRp11173\nsS'Y:Load 104'\np11174\ng26\n(S'Variable_Type'\n(I2\nttRp11175\nsS'Y:VBus51'\np11176\ng26\n(S'Variable_Type'\n(I2\nttRp11177\nsS'Y:Load 108'\np11178\ng26\n(S'Variable_Type'\n(I2\nttRp11179\nsS'Y64:%RateA 102-103'\np11180\ng26\n(S'Variable_Type'\n(I1\nttRp11181\nsS'Y:PMachine112'\np11182\ng26\n(S'Variable_Type'\n(I2\nttRp11183\nsS'Y:VBus58'\np11184\ng26\n(S'Variable_Type'\n(I2\nttRp11185\nsS'Y:VBus59'\np11186\ng26\n(S'Variable_Type'\n(I2\nttRp11187\nsS'Y:Load 53'\np11188\ng26\n(S'Variable_Type'\n(I2\nttRp11189\nsS'Y10:%RateA 16-47'\np11190\ng26\n(S'Variable_Type'\n(I2\nttRp11191\nsS'Y:PMachine54'\np11192\ng26\n(S'Variable_Type'\n(I2\nttRp11193\nsS'Y:VBus56'\np11194\ng26\n(S'Variable_Type'\n(I2\nttRp11195\nsS'TOT WIND'\np11196\ng26\n(S'Variable_Type'\n(I2\nttRp11197\nsS'Y3:%RateA 12-24'\np11198\ng26\n(S'Variable_Type'\n(I2\nttRp11199\nsS'Y11:%RateA 17-27'\np11200\ng26\n(S'Variable_Type'\n(I2\nttRp11201\nsS'Y:PMachine114'\np11202\ng26\n(S'Variable_Type'\n(I2\nttRp11203\nsS'Y:VBus72'\np11204\ng26\n(S'Variable_Type'\n(I2\nttRp11205\nsS'Y:PMachine60'\np11206\ng26\n(S'Variable_Type'\n(I2\nttRp11207\nsS'Y:PMachine61'\np11208\ng26\n(S'Variable_Type'\n(I1\nttRp11209\nsS'Y:PMachine62'\np11210\ng26\n(S'Variable_Type'\n(I2\nttRp11211\nsS'Y:PMachine105'\np11212\ng26\n(S'Variable_Type'\n(I2\nttRp11213\nsS'Y:PMachine64'\np11214\ng26\n(S'Variable_Type'\n(I2\nttRp11215\nsS'Y:PMachine65'\np11216\ng26\n(S'Variable_Type'\n(I2\nttRp11217\nsS'Y:PMachine66'\np11218\ng26\n(S'Variable_Type'\n(I2\nttRp11219\nsS'Y:PMachine67'\np11220\ng26\n(S'Variable_Type'\n(I2\nttRp11221\nsS'Y:PMachine68'\np11222\ng26\n(S'Variable_Type'\n(I2\nttRp11223\nsS'Y:PMachine102'\np11224\ng26\n(S'Variable_Type'\n(I2\nttRp11225\nsS'X:ProdPV%Pnom'\np11226\ng26\n(S'Variable_Type'\n(I2\nttRp11227\nsS'Y:VBus138'\np11228\ng26\n(S'Variable_Type'\n(I2\nttRp11229\nsS'Y26:%RateA 24-25'\np11230\ng26\n(S'Variable_Type'\n(I1\nttRp11231\nssg630\n(dp11232\nsg632\n(dp11233\ng2509\n(S'Iteration'\np11234\ng11071\ntp11235\nsg2512\n(g638\nI0\ntp11236\nsg2514\n(g11234\ng11071\ntp11237\nsg2516\n(S''\nI0\ntp11238\nsg2518\n(S''\nI0\ntp11239\nsg2520\n(NI-2\ntp11240\nsg2522\n((lI-2\ntp11241\nssg650\nF1369931616.7509999\nsba(iOWContexts\nContext\np11242\n(dp11243\ng20\n(lp11244\ng1272\nasg23\n(dp11245\nS'Y:VBus48'\np11246\ng26\n(S'Variable_Type'\n(I2\nttRp11247\nsS'Y15:%RateA 18-44'\np11248\ng26\n(S'Variable_Type'\n(I2\nttRp11249\nsS'Y:VBus41'\np11250\ng26\n(S'Variable_Type'\n(I2\nttRp11251\nsS'Y:VBus40'\np11252\ng26\n(S'Variable_Type'\n(I2\nttRp11253\nsS'Y:VBus43'\np11254\ng26\n(S'Variable_Type'\n(I2\nttRp11255\nsS'Y:VBus42'\np11256\ng26\n(S'Variable_Type'\n(I2\nttRp11257\nsS'Y:VBus45'\np11258\ng26\n(S'Variable_Type'\n(I2\nttRp11259\nsS'Y:VBus44'\np11260\ng26\n(S'Variable_Type'\n(I2\nttRp11261\nsS'Y:VBus47'\np11262\ng26\n(S'Variable_Type'\n(I2\nttRp11263\nsS'Y:VBus46'\np11264\ng26\n(S'Variable_Type'\n(I2\nttRp11265\nsS'Y39:%RateA 32-45'\np11266\ng26\n(S'Variable_Type'\n(I2\nttRp11267\nsS'Y:Load 110'\np11268\ng26\n(S'Variable_Type'\n(I2\nttRp11269\nsS'Y:Load 115'\np11270\ng26\n(S'Variable_Type'\n(I2\nttRp11271\nsS'Y:VBus79'\np11272\ng26\n(S'Variable_Type'\n(I2\nttRp11273\nsS'Y13:%RateA 18-30'\np11274\ng26\n(S'Variable_Type'\n(I2\nttRp11275\nsS'Y34:%RateA 28-38'\np11276\ng26\n(S'Variable_Type'\n(I2\nttRp11277\nsS'Y:NbeTransit'\np11278\ng26\n(S'Variable_Type'\n(I1\nttRp11279\nsS'Y:VBus104'\np11280\ng26\n(S'Variable_Type'\n(I2\nttRp11281\nsS'Y20:%RateA 20-44'\np11282\ng26\n(S'Variable_Type'\n(I2\nttRp11283\nsS'Y38:%RateA 32-45'\np11284\ng26\n(S'Variable_Type'\n(I2\nttRp11285\nsS'Y:PMachine73'\np11286\ng26\n(S'Variable_Type'\n(I2\nttRp11287\nsS'Y:PMachine72'\np11288\ng26\n(S'Variable_Type'\n(I2\nttRp11289\nsS'Y49:%RateA 40-48'\np11290\ng26\n(S'Variable_Type'\n(I2\nttRp11291\nsS'Y:PMachine77'\np11292\ng26\n(S'Variable_Type'\n(I2\nttRp11293\nsS'Y:PMachine75'\np11294\ng26\n(S'Variable_Type'\n(I2\nttRp11295\nsS'Y:PMachine74'\np11296\ng26\n(S'Variable_Type'\n(I2\nttRp11297\nsS'Y:PMachine78'\np11298\ng26\n(S'Variable_Type'\n(I1\nttRp11299\nsS'Y:PMachine138'\np11300\ng26\n(S'Variable_Type'\n(I1\nttRp11301\nsS'Y28:%RateA 24-42'\np11302\ng26\n(S'Variable_Type'\n(I2\nttRp11303\nsS'Y:PProdTot'\np11304\ng26\n(S'Variable_Type'\n(I2\nttRp11305\nsS'Y:PMachine69'\np11306\ng26\n(S'Variable_Type'\n(I2\nttRp11307\nsS'Y:VBus38'\np11308\ng26\n(S'Variable_Type'\n(I2\nttRp11309\nsS'Y:VBus39'\np11310\ng26\n(S'Variable_Type'\n(I2\nttRp11311\nsS'Y62:%RateA 86-87'\np11312\ng26\n(S'Variable_Type'\n(I1\nttRp11313\nsS'Y:PMachine1'\np11314\ng26\n(S'Variable_Type'\n(I2\nttRp11315\nsS'Y:VBus35'\np11316\ng26\n(S'Variable_Type'\n(I2\nttRp11317\nsS'Y:VBus36'\np11318\ng26\n(S'Variable_Type'\n(I2\nttRp11319\nsS'Y:VBus37'\np11320\ng26\n(S'Variable_Type'\n(I2\nttRp11321\nsS'Y:VBus30'\np11322\ng26\n(S'Variable_Type'\n(I2\nttRp11323\nsS'Y:VBus31'\np11324\ng26\n(S'Variable_Type'\n(I2\nttRp11325\nsS'Y:VBus32'\np11326\ng26\n(S'Variable_Type'\n(I2\nttRp11327\nsS'Y:VBus33'\np11328\ng26\n(S'Variable_Type'\n(I2\nttRp11329\nsS'Y53:%RateA 57-58'\np11330\ng26\n(S'Variable_Type'\n(I1\nttRp11331\nsS'Y14:%RateA 18-31'\np11332\ng26\n(S'Variable_Type'\n(I2\nttRp11333\nsS'Y48:%RateA 39-46'\np11334\ng26\n(S'Variable_Type'\n(I2\nttRp11335\nsS'Y60:%RateA 82-83'\np11336\ng26\n(S'Variable_Type'\n(I1\nttRp11337\nsS'Y:PMachine87'\np11338\ng26\n(S'Variable_Type'\n(I2\nttRp11339\nsS'Y:VBus121'\np11340\ng26\n(S'Variable_Type'\n(I2\nttRp11341\nsS'Y:VBus120'\np11342\ng26\n(S'Variable_Type'\n(I2\nttRp11343\nsS'Y:VBus123'\np11344\ng26\n(S'Variable_Type'\n(I2\nttRp11345\nsS'Y:VBus122'\np11346\ng26\n(S'Variable_Type'\n(I2\nttRp11347\nsS'Y:VBus125'\np11348\ng26\n(S'Variable_Type'\n(I2\nttRp11349\nsS'Y:VBus124'\np11350\ng26\n(S'Variable_Type'\n(I2\nttRp11351\nsS'Y:VBus127'\np11352\ng26\n(S'Variable_Type'\n(I2\nttRp11353\nsS'Y:VBus126'\np11354\ng26\n(S'Variable_Type'\n(I2\nttRp11355\nsS'Y:VBus129'\np11356\ng26\n(S'Variable_Type'\n(I2\nttRp11357\nsS'Y:VBus128'\np11358\ng26\n(S'Variable_Type'\n(I2\nttRp11359\nsS'Y37:%RateA 32-34'\np11360\ng26\n(S'Variable_Type'\n(I2\nttRp11361\nsS'Y43:%RateA 35-37'\np11362\ng26\n(S'Variable_Type'\n(I2\nttRp11363\nsS'Y:PMachine42'\np11364\ng26\n(S'Variable_Type'\n(I2\nttRp11365\nsS'Y0:%RateA 11-28'\np11366\ng26\n(S'Variable_Type'\n(I2\nttRp11367\nsS'Y:VBus67'\np11368\ng26\n(S'Variable_Type'\n(I2\nttRp11369\nsS'Y:Load 37'\np11370\ng26\n(S'Variable_Type'\n(I2\nttRp11371\nsS'Y65:%RateA 104-105'\np11372\ng26\n(S'Variable_Type'\n(I1\nttRp11373\nsS'Y40:%RateA 32-47'\np11374\ng26\n(S'Variable_Type'\n(I2\nttRp11375\nsS'Y:PMachine47'\np11376\ng26\n(S'Variable_Type'\n(I2\nttRp11377\nsS'Y6:%RateA 14-15'\np11378\ng26\n(S'Variable_Type'\n(I1\nttRp11379\nsS'Y:VBus1'\np11380\ng26\n(S'Variable_Type'\n(I2\nttRp11381\nsS'Y44:%RateA 35-39'\np11382\ng26\n(S'Variable_Type'\n(I2\nttRp11383\nsS'Y:PMachine88'\np11384\ng26\n(S'Variable_Type'\n(I1\nttRp11385\nsS'Y42:%RateA 34-36'\np11386\ng26\n(S'Variable_Type'\n(I2\nttRp11387\nsS'Y57:%RateA 76-77'\np11388\ng26\n(S'Variable_Type'\n(I1\nttRp11389\nsS'Y:PMachine89'\np11390\ng26\n(S'Variable_Type'\n(I1\nttRp11391\nsS'Y:VBus77'\np11392\ng26\n(S'Variable_Type'\n(I2\nttRp11393\nsS'Y:VBus29'\np11394\ng26\n(S'Variable_Type'\n(I2\nttRp11395\nsS'Y:VBus28'\np11396\ng26\n(S'Variable_Type'\n(I2\nttRp11397\nsS'Y:VBus27'\np11398\ng26\n(S'Variable_Type'\n(I2\nttRp11399\nsS'Y:VBus26'\np11400\ng26\n(S'Variable_Type'\n(I2\nttRp11401\nsS'Y:VBus25'\np11402\ng26\n(S'Variable_Type'\n(I2\nttRp11403\nsS'Y:VBus24'\np11404\ng26\n(S'Variable_Type'\n(I2\nttRp11405\nsS'Y:VBus23'\np11406\ng26\n(S'Variable_Type'\n(I2\nttRp11407\nsS'Y:VBus22'\np11408\ng26\n(S'Variable_Type'\n(I2\nttRp11409\nsS'Y:VBus21'\np11410\ng26\n(S'Variable_Type'\n(I2\nttRp11411\nsS'Y:VBus20'\np11412\ng26\n(S'Variable_Type'\n(I2\nttRp11413\nsS'Y:VBus85'\np11414\ng26\n(S'Variable_Type'\n(I2\nttRp11415\nsS'Y:VBus84'\np11416\ng26\n(S'Variable_Type'\n(I2\nttRp11417\nsS'Y52:%RateA 55-56'\np11418\ng26\n(S'Variable_Type'\n(I1\nttRp11419\nsS'Y2:%RateA 12-24'\np11420\ng26\n(S'Variable_Type'\n(I2\nttRp11421\nsS'Y:VBus112'\np11422\ng26\n(S'Variable_Type'\n(I2\nttRp11423\nsS'Y:VBus132'\np11424\ng26\n(S'Variable_Type'\n(I2\nttRp11425\nsS'Y:PMachine58'\np11426\ng26\n(S'Variable_Type'\n(I2\nttRp11427\nsS'Y:VBus130'\np11428\ng26\n(S'Variable_Type'\n(I2\nttRp11429\nsS'Y:VBus131'\np11430\ng26\n(S'Variable_Type'\n(I2\nttRp11431\nsS'Y:VBus136'\np11432\ng26\n(S'Variable_Type'\n(I2\nttRp11433\nsS'Y:VBus137'\np11434\ng26\n(S'Variable_Type'\n(I2\nttRp11435\nsS'Y:VBus134'\np11436\ng26\n(S'Variable_Type'\n(I2\nttRp11437\nsS'Y:VBus135'\np11438\ng26\n(S'Variable_Type'\n(I2\nttRp11439\nsS'Y:VBus81'\np11440\ng26\n(S'Variable_Type'\n(I2\nttRp11441\nsS'Y:PMachine53'\np11442\ng26\n(S'Variable_Type'\n(I2\nttRp11443\nsS'Y:VBus139'\np11444\ng26\n(S'Variable_Type'\n(I2\nttRp11445\nsS'Y30:%RateA 25-29'\np11446\ng26\n(S'Variable_Type'\n(I2\nttRp11447\nsS'Y:VBus115'\np11448\ng26\n(S'Variable_Type'\n(I2\nttRp11449\nsS'Y:PMachine124'\np11450\ng26\n(S'Variable_Type'\n(I2\nttRp11451\nsS'Y:VBus83'\np11452\ng26\n(S'Variable_Type'\n(I2\nttRp11453\nsS'Y66:%RateA 106-107'\np11454\ng26\n(S'Variable_Type'\n(I1\nttRp11455\nsS'Y25:%RateA 23-41'\np11456\ng26\n(S'Variable_Type'\n(I2\nttRp11457\nsS'Y:%Losses'\np11458\ng26\n(S'Variable_Type'\n(I2\nttRp11459\nsS'Y:VBus12'\np11460\ng26\n(S'Variable_Type'\n(I2\nttRp11461\nsS'Y:VBus13'\np11462\ng26\n(S'Variable_Type'\n(I2\nttRp11463\nsS'Y50:%RateA 51-52'\np11464\ng26\n(S'Variable_Type'\n(I1\nttRp11465\nsS'Y:VBus11'\np11466\ng26\n(S'Variable_Type'\n(I2\nttRp11467\nsS'Y:VBus16'\np11468\ng26\n(S'Variable_Type'\n(I2\nttRp11469\nsS'Y:VBus17'\np11470\ng26\n(S'Variable_Type'\n(I2\nttRp11471\nsS'Y:VBus14'\np11472\ng26\n(S'Variable_Type'\n(I2\nttRp11473\nsS'Y:VBus15'\np11474\ng26\n(S'Variable_Type'\n(I2\nttRp11475\nsS'Y:VBus113'\np11476\ng26\n(S'Variable_Type'\n(I2\nttRp11477\nsS'Y:PMachine120'\np11478\ng26\n(S'Variable_Type'\n(I2\nttRp11479\nsS'Y:VBus18'\np11480\ng26\n(S'Variable_Type'\n(I2\nttRp11481\nsS'Y:VBus19'\np11482\ng26\n(S'Variable_Type'\n(I2\nttRp11483\nsS'Y4:%RateA 13-25'\np11484\ng26\n(S'Variable_Type'\n(I2\nttRp11485\nsS'Y35:%RateA 28-47'\np11486\ng26\n(S'Variable_Type'\n(I2\nttRp11487\nsS'Y:PMachine122'\np11488\ng26\n(S'Variable_Type'\n(I2\nttRp11489\nsS'Y16:%RateA 19-21'\np11490\ng26\n(S'Variable_Type'\n(I2\nttRp11491\nsS'Y:VBus92'\np11492\ng26\n(S'Variable_Type'\n(I2\nttRp11493\nsS'Y7:%RateA 14-35'\np11494\ng26\n(S'Variable_Type'\n(I2\nttRp11495\nsS'Y:VBus90'\np11496\ng26\n(S'Variable_Type'\n(I2\nttRp11497\nsS'Y:VBus96'\np11498\ng26\n(S'Variable_Type'\n(I2\nttRp11499\nsS'Y:VBus97'\np11500\ng26\n(S'Variable_Type'\n(I2\nttRp11501\nsS'Y:VBus94'\np11502\ng26\n(S'Variable_Type'\n(I2\nttRp11503\nsS'Y:VBus95'\np11504\ng26\n(S'Variable_Type'\n(I2\nttRp11505\nsS'Y:VBus107'\np11506\ng26\n(S'Variable_Type'\n(I2\nttRp11507\nsS'Y:VBus106'\np11508\ng26\n(S'Variable_Type'\n(I2\nttRp11509\nsS'Y:VBus105'\np11510\ng26\n(S'Variable_Type'\n(I2\nttRp11511\nsS'Y22:%RateA 22-23'\np11512\ng26\n(S'Variable_Type'\n(I1\nttRp11513\nsS'Y:VBus103'\np11514\ng26\n(S'Variable_Type'\n(I2\nttRp11515\nsS'Y:VBus102'\np11516\ng26\n(S'Variable_Type'\n(I2\nttRp11517\nsS'Y:VBus101'\np11518\ng26\n(S'Variable_Type'\n(I2\nttRp11519\nsS'Y:VBus100'\np11520\ng26\n(S'Variable_Type'\n(I2\nttRp11521\nsS'Y:Load 55'\np11522\ng26\n(S'Variable_Type'\n(I2\nttRp11523\nsS'Y:Load 57'\np11524\ng26\n(S'Variable_Type'\n(I2\nttRp11525\nsS'Y:Load 51'\np11526\ng26\n(S'Variable_Type'\n(I2\nttRp11527\nsS'Y:VBus54'\np11528\ng26\n(S'Variable_Type'\n(I2\nttRp11529\nsS'Y:VBus109'\np11530\ng26\n(S'Variable_Type'\n(I2\nttRp11531\nsS'Y46:%RateA 36-48'\np11532\ng26\n(S'Variable_Type'\n(I2\nttRp11533\nsS'Y:Load 80'\np11534\ng26\n(S'Variable_Type'\n(I2\nttRp11535\nsS'Y:PMachine133'\np11536\ng26\n(S'Variable_Type'\n(I2\nttRp11537\nsS'Y:VBus55'\np11538\ng26\n(S'Variable_Type'\n(I2\nttRp11539\nsS'Y:PMachine29'\np11540\ng26\n(S'Variable_Type'\n(I1\nttRp11541\nsS'Y24:%RateA 23-32'\np11542\ng26\n(S'Variable_Type'\n(I2\nttRp11543\nsS'X:lineOff#'\np11544\ng26\n(S'Variable_Type'\n(I2\nttRp11545\nsS'Y:Max%A'\np11546\ng26\n(S'Variable_Type'\n(I2\nttRp11547\nsS'Y:NbeTransit_0.9-1'\np11548\ng26\n(S'Variable_Type'\n(I1\nttRp11549\nsS'XProdEolienne%Pnom'\np11550\ng26\n(S'Variable_Type'\n(I2\nttRp11551\nsS'Y33:%RateA 27-33'\np11552\ng26\n(S'Variable_Type'\n(I2\nttRp11553\nsS'Y59:%RateA 80-81'\np11554\ng26\n(S'Variable_Type'\n(I1\nttRp11555\nsS'Y:VBus65'\np11556\ng26\n(S'Variable_Type'\n(I2\nttRp11557\nsS'Y:VBus118'\np11558\ng26\n(S'Variable_Type'\n(I2\nttRp11559\nsS'Y:VBus119'\np11560\ng26\n(S'Variable_Type'\n(I2\nttRp11561\nsS'Y:PMachine117'\np11562\ng26\n(S'Variable_Type'\n(I2\nttRp11563\nsS'Y:PMachine116'\np11564\ng26\n(S'Variable_Type'\n(I2\nttRp11565\nsS'Y:PMachine111'\np11566\ng26\n(S'Variable_Type'\n(I2\nttRp11567\nsS'Y:VBus88'\np11568\ng26\n(S'Variable_Type'\n(I2\nttRp11569\nsS'Y:PMachine113'\np11570\ng26\n(S'Variable_Type'\n(I2\nttRp11571\nsS'Y:VBus93'\np11572\ng26\n(S'Variable_Type'\n(I2\nttRp11573\nsS'Y:VBus110'\np11574\ng26\n(S'Variable_Type'\n(I2\nttRp11575\nsS'Y:VBus111'\np11576\ng26\n(S'Variable_Type'\n(I2\nttRp11577\nsS'Y:VBus87'\np11578\ng26\n(S'Variable_Type'\n(I2\nttRp11579\nsS'Y12:%RateA 18-30'\np11580\ng26\n(S'Variable_Type'\n(I2\nttRp11581\nsS'Y:VBus114'\np11582\ng26\n(S'Variable_Type'\n(I2\nttRp11583\nsS'Y:VBus80'\np11584\ng26\n(S'Variable_Type'\n(I2\nttRp11585\nsS'Y:VBus116'\np11586\ng26\n(S'Variable_Type'\n(I2\nttRp11587\nsS'Y:VBus82'\np11588\ng26\n(S'Variable_Type'\n(I2\nttRp11589\nsS'Y61:%RateA 84-85'\np11590\ng26\n(S'Variable_Type'\n(I1\nttRp11591\nsS'Y31:%RateA 26-41'\np11592\ng26\n(S'Variable_Type'\n(I2\nttRp11593\nsS'Y:PMachine131'\np11594\ng26\n(S'Variable_Type'\n(I2\nttRp11595\nsS'Y47:%RateA 38-43'\np11596\ng26\n(S'Variable_Type'\n(I2\nttRp11597\nsS'Y:Load 42'\np11598\ng26\n(S'Variable_Type'\n(I2\nttRp11599\nsS'Y:PMachine85'\np11600\ng26\n(S'Variable_Type'\n(I2\nttRp11601\nsS'Y32:%RateA 26-46'\np11602\ng26\n(S'Variable_Type'\n(I2\nttRp11603\nsS'Y:PMachine132'\np11604\ng26\n(S'Variable_Type'\n(I2\nttRp11605\nsS'Y18:%RateA 19-27'\np11606\ng26\n(S'Variable_Type'\n(I2\nttRp11607\nsS'Y:VBus86'\np11608\ng26\n(S'Variable_Type'\n(I2\nttRp11609\nsS'Y63:%RateA 95-96'\np11610\ng26\n(S'Variable_Type'\n(I1\nttRp11611\nsS'Y17:%RateA 19-22'\np11612\ng26\n(S'Variable_Type'\n(I2\nttRp11613\nsS'Y41:%RateA 32-48'\np11614\ng26\n(S'Variable_Type'\n(I2\nttRp11615\nsS'Y:PMachine30'\np11616\ng26\n(S'Variable_Type'\n(I2\nttRp11617\nsS'Y:VBus117'\np11618\ng26\n(S'Variable_Type'\n(I2\nttRp11619\nsS'Y56:%RateA 72-73'\np11620\ng26\n(S'Variable_Type'\n(I1\nttRp11621\nsS'Y68:%RateA 112-113'\np11622\ng26\n(S'Variable_Type'\n(I1\nttRp11623\nsS'Y:PMachine130'\np11624\ng26\n(S'Variable_Type'\n(I2\nttRp11625\nsS'Y27:%RateA 24-33'\np11626\ng26\n(S'Variable_Type'\n(I2\nttRp11627\nsS'Y:PMachine106'\np11628\ng26\n(S'Variable_Type'\n(I2\nttRp11629\nsS'Y:PMachine107'\np11630\ng26\n(S'Variable_Type'\n(I2\nttRp11631\nsS'Y:PMachine104'\np11632\ng26\n(S'Variable_Type'\n(I2\nttRp11633\nsS'Y:VBus73'\np11634\ng26\n(S'Variable_Type'\n(I2\nttRp11635\nsS'Y:VBus74'\np11636\ng26\n(S'Variable_Type'\n(I2\nttRp11637\nsS'Y:VBus75'\np11638\ng26\n(S'Variable_Type'\n(I2\nttRp11639\nsS'Y:VBus76'\np11640\ng26\n(S'Variable_Type'\n(I2\nttRp11641\nsS'Y:PMachine101'\np11642\ng26\n(S'Variable_Type'\n(I2\nttRp11643\nsS'Y:VBus78'\np11644\ng26\n(S'Variable_Type'\n(I2\nttRp11645\nsS'Y:Load 59'\np11646\ng26\n(S'Variable_Type'\n(I2\nttRp11647\nsS'Y:PMachine115'\np11648\ng26\n(S'Variable_Type'\n(I2\nttRp11649\nsS'Y51:%RateA 53-54'\np11650\ng26\n(S'Variable_Type'\n(I1\nttRp11651\nsS'Y67:%RateA 108-109'\np11652\ng26\n(S'Variable_Type'\n(I1\nttRp11653\nsS'Y:PMachine109'\np11654\ng26\n(S'Variable_Type'\n(I2\nttRp11655\nsS'Y:PMachine83'\np11656\ng26\n(S'Variable_Type'\n(I2\nttRp11657\nsS'Y:PMachine81'\np11658\ng26\n(S'Variable_Type'\n(I2\nttRp11659\nsS'Y:PMachine86'\np11660\ng26\n(S'Variable_Type'\n(I2\nttRp11661\nsS'Y:Load 76'\np11662\ng26\n(S'Variable_Type'\n(I2\nttRp11663\nsS'Y:Load 74'\np11664\ng26\n(S'Variable_Type'\n(I2\nttRp11665\nsS'Y45:%RateA 36-37'\np11666\ng26\n(S'Variable_Type'\n(I2\nttRp11667\nsS'Y58:%RateA 78-79'\np11668\ng26\n(S'Variable_Type'\n(I1\nttRp11669\nsS'Y:Load 78'\np11670\ng26\n(S'Variable_Type'\n(I2\nttRp11671\nsS'X:Load(pu)'\np11672\ng26\n(S'Variable_Type'\n(I2\nttRp11673\nsS'Y5:%RateA 13-29'\np11674\ng26\n(S'Variable_Type'\n(I2\nttRp11675\nsS'Y:PMachine118'\np11676\ng26\n(S'Variable_Type'\n(I2\nttRp11677\nsS'Y1:%RateA 11-47'\np11678\ng26\n(S'Variable_Type'\n(I2\nttRp11679\nsS'Y:VBus60'\np11680\ng26\n(S'Variable_Type'\n(I2\nttRp11681\nsS'Y:PMachine137'\np11682\ng26\n(S'Variable_Type'\n(I1\nttRp11683\nsS'Y29:%RateA 25-29'\np11684\ng26\n(S'Variable_Type'\n(I2\nttRp11685\nsS'Y:VBus66'\np11686\ng26\n(S'Variable_Type'\n(I2\nttRp11687\nsS'Iteration'\np11688\ng26\n(S'Variable_Type'\n(I2\nttRp11689\nsS'Y36:%RateA 29-30'\np11690\ng26\n(S'Variable_Type'\n(I1\nttRp11691\nsS'Y54:%RateA 59-60'\np11692\ng26\n(S'Variable_Type'\n(I1\nttRp11693\nsS'Y:Load 90'\np11694\ng26\n(S'Variable_Type'\n(I2\nttRp11695\nsS'Y9:%RateA 16-32'\np11696\ng26\n(S'Variable_Type'\n(I2\nttRp11697\nsS'Y:PMachine134'\np11698\ng26\n(S'Variable_Type'\n(I1\nttRp11699\nsS'Y:Load 95'\np11700\ng26\n(S'Variable_Type'\n(I2\nttRp11701\nsS'Y:VBus63'\np11702\ng26\n(S'Variable_Type'\n(I2\nttRp11703\nsS'Y:VBus62'\np11704\ng26\n(S'Variable_Type'\n(I2\nttRp11705\nsS'Y:VBus61'\np11706\ng26\n(S'Variable_Type'\n(I2\nttRp11707\nsS'Y55:%RateA 61-62'\np11708\ng26\n(S'Variable_Type'\n(I1\nttRp11709\nsS'Y8:%RateA 15-35'\np11710\ng26\n(S'Variable_Type'\n(I2\nttRp11711\nsS'Y:PMachine136'\np11712\ng26\n(S'Variable_Type'\n(I1\nttRp11713\nsS'Y:PMachine135'\np11714\ng26\n(S'Variable_Type'\n(I1\nttRp11715\nsS'Y:VBus64'\np11716\ng26\n(S'Variable_Type'\n(I2\nttRp11717\nsS'Y:PMachine94'\np11718\ng26\n(S'Variable_Type'\n(I2\nttRp11719\nsS'Y:VBus69'\np11720\ng26\n(S'Variable_Type'\n(I2\nttRp11721\nsS'Y:VBus108'\np11722\ng26\n(S'Variable_Type'\n(I2\nttRp11723\nsS'Y:PMachine139'\np11724\ng26\n(S'Variable_Type'\n(I1\nttRp11725\nsS'Y:PMachine97'\np11726\ng26\n(S'Variable_Type'\n(I2\nttRp11727\nsS'Y:PMachine92'\np11728\ng26\n(S'Variable_Type'\n(I2\nttRp11729\nsS'Y:VBus68'\np11730\ng26\n(S'Variable_Type'\n(I2\nttRp11731\nsS'Y:Load 61'\np11732\ng26\n(S'Variable_Type'\n(I2\nttRp11733\nsS'Y:VBus89'\np11734\ng26\n(S'Variable_Type'\n(I2\nttRp11735\nsS'Y21:%RateA 21-43'\np11736\ng26\n(S'Variable_Type'\n(I2\nttRp11737\nsS'Y:PMachine90'\np11738\ng26\n(S'Variable_Type'\n(I2\nttRp11739\nsS'Y:PMachine14'\np11740\ng26\n(S'Variable_Type'\n(I2\nttRp11741\nsS'Y:PMachine63'\np11742\ng26\n(S'Variable_Type'\n(I2\nttRp11743\nsS'Y:PMachine93'\np11744\ng26\n(S'Variable_Type'\n(I2\nttRp11745\nsS'Y:PConsoTot'\np11746\ng26\n(S'Variable_Type'\n(I2\nttRp11747\nsS'Y23:%RateA 22-31'\np11748\ng26\n(S'Variable_Type'\n(I2\nttRp11749\nsS'Y19:%RateA 20-26'\np11750\ng26\n(S'Variable_Type'\n(I2\nttRp11751\nsS'Y:PMachine18'\np11752\ng26\n(S'Variable_Type'\n(I2\nttRp11753\nsS'Y:VBus34'\np11754\ng26\n(S'Variable_Type'\n(I2\nttRp11755\nsS'Y:NbeTension'\np11756\ng26\n(S'Variable_Type'\n(I2\nttRp11757\nsS'Y:PMachine128'\np11758\ng26\n(S'Variable_Type'\n(I2\nttRp11759\nsS'Y:PMachine129'\np11760\ng26\n(S'Variable_Type'\n(I2\nttRp11761\nsS'Y:VBus133'\np11762\ng26\n(S'Variable_Type'\n(I2\nttRp11763\nsS'Y:Load 82'\np11764\ng26\n(S'Variable_Type'\n(I2\nttRp11765\nsS'Y:PMachine125'\np11766\ng26\n(S'Variable_Type'\n(I2\nttRp11767\nsS'Y:PMachine126'\np11768\ng26\n(S'Variable_Type'\n(I2\nttRp11769\nsS'Y:PMachine127'\np11770\ng26\n(S'Variable_Type'\n(I2\nttRp11771\nsS'Y:Load 86'\np11772\ng26\n(S'Variable_Type'\n(I2\nttRp11773\nsS'Y:PMachine121'\np11774\ng26\n(S'Variable_Type'\n(I2\nttRp11775\nsS'Y:Load 84'\np11776\ng26\n(S'Variable_Type'\n(I2\nttRp11777\nsS'Y:PMachine123'\np11778\ng26\n(S'Variable_Type'\n(I2\nttRp11779\nsS'Y:Load 102'\np11780\ng26\n(S'Variable_Type'\n(I2\nttRp11781\nsS'Y:VBus57'\np11782\ng26\n(S'Variable_Type'\n(I2\nttRp11783\nsS'Y:Load 100'\np11784\ng26\n(S'Variable_Type'\n(I2\nttRp11785\nsS'Y:Load 101'\np11786\ng26\n(S'Variable_Type'\n(I2\nttRp11787\nsS'Y:VBus52'\np11788\ng26\n(S'Variable_Type'\n(I2\nttRp11789\nsS'Y:VBus53'\np11790\ng26\n(S'Variable_Type'\n(I2\nttRp11791\nsS'Y:Load 104'\np11792\ng26\n(S'Variable_Type'\n(I2\nttRp11793\nsS'Y:VBus51'\np11794\ng26\n(S'Variable_Type'\n(I2\nttRp11795\nsS'Y:Load 108'\np11796\ng26\n(S'Variable_Type'\n(I2\nttRp11797\nsS'Y64:%RateA 102-103'\np11798\ng26\n(S'Variable_Type'\n(I1\nttRp11799\nsS'Y:PMachine112'\np11800\ng26\n(S'Variable_Type'\n(I2\nttRp11801\nsS'Y:VBus58'\np11802\ng26\n(S'Variable_Type'\n(I2\nttRp11803\nsS'Y:VBus59'\np11804\ng26\n(S'Variable_Type'\n(I2\nttRp11805\nsS'Y:Load 53'\np11806\ng26\n(S'Variable_Type'\n(I2\nttRp11807\nsS'Y10:%RateA 16-47'\np11808\ng26\n(S'Variable_Type'\n(I2\nttRp11809\nsS'Y:PMachine54'\np11810\ng26\n(S'Variable_Type'\n(I2\nttRp11811\nsS'Y:VBus56'\np11812\ng26\n(S'Variable_Type'\n(I2\nttRp11813\nsS'TOT WIND'\np11814\ng26\n(S'Variable_Type'\n(I2\nttRp11815\nsS'Y3:%RateA 12-24'\np11816\ng26\n(S'Variable_Type'\n(I2\nttRp11817\nsS'Y11:%RateA 17-27'\np11818\ng26\n(S'Variable_Type'\n(I2\nttRp11819\nsS'Y:PMachine114'\np11820\ng26\n(S'Variable_Type'\n(I2\nttRp11821\nsS'Y:VBus72'\np11822\ng26\n(S'Variable_Type'\n(I2\nttRp11823\nsS'Y:PMachine60'\np11824\ng26\n(S'Variable_Type'\n(I2\nttRp11825\nsS'Y:PMachine61'\np11826\ng26\n(S'Variable_Type'\n(I1\nttRp11827\nsS'Y:PMachine62'\np11828\ng26\n(S'Variable_Type'\n(I2\nttRp11829\nsS'Y:PMachine105'\np11830\ng26\n(S'Variable_Type'\n(I2\nttRp11831\nsS'Y:PMachine64'\np11832\ng26\n(S'Variable_Type'\n(I2\nttRp11833\nsS'Y:PMachine65'\np11834\ng26\n(S'Variable_Type'\n(I2\nttRp11835\nsS'Y:PMachine66'\np11836\ng26\n(S'Variable_Type'\n(I2\nttRp11837\nsS'Y:PMachine67'\np11838\ng26\n(S'Variable_Type'\n(I2\nttRp11839\nsS'Y:PMachine68'\np11840\ng26\n(S'Variable_Type'\n(I2\nttRp11841\nsS'Y:PMachine102'\np11842\ng26\n(S'Variable_Type'\n(I2\nttRp11843\nsS'X:ProdPV%Pnom'\np11844\ng26\n(S'Variable_Type'\n(I2\nttRp11845\nsS'Y:VBus138'\np11846\ng26\n(S'Variable_Type'\n(I2\nttRp11847\nsS'Y26:%RateA 24-25'\np11848\ng26\n(S'Variable_Type'\n(I1\nttRp11849\nssg630\n(dp11850\nsg632\n(dp11851\ng2509\n(S'TOT WIND'\np11852\ng11815\ntp11853\nsg2512\n(g638\nI0\ntp11854\nsg2514\n(g11852\ng11815\ntp11855\nsg2516\n(S''\nI0\ntp11856\nsg2518\n(S''\nI0\ntp11857\nsg2520\n(NI-2\ntp11858\nsg2522\n((lI-2\ntp11859\nssg650\nF1369931478.9059999\nsba(iOWContexts\nContext\np11860\n(dp11861\ng20\n(lp11862\nS'orderedDomain'\np11863\nasg23\n(dp11864\nS'X:Interco(bin)'\np11865\ng26\n(S'Variable_Type'\n(I1\nttRp11866\nsS'X:Load(pu)'\np11867\ng26\n(S'Variable_Type'\n(I2\nttRp11868\nsS'X:ProdEolienne%Pnom'\np11869\ng26\n(S'Variable_Type'\n(I2\nttRp11870\nssg630\n(dp11871\nsg632\n(dp11872\nS'attribute'\np11873\n(S'X:Load(pu)'\np11874\ng11868\ntp11875\nsS'yaxisTitle'\np11876\n(S'frequency'\nI0\ntp11877\nsS'xaxisTitle'\np11878\n(g11874\ng11868\ntp11879\nsS'mainTitle'\np11880\n(S''\nI0\ntp11881\nsS'yPaxisTitle'\np11882\n(S''\nI0\ntp11883\nsS'targetValue'\np11884\n(NI-2\ntp11885\nsS'visibleOutcomes'\np11886\n((lI-2\ntp11887\nssg650\nF1368453819.7379999\nsba(iOWContexts\nContext\np11888\n(dp11889\ng632\n(dp11890\nS'attribute'\np11891\n(S'Y:%RateA 104-105'\np11892\ng26\n(S'Variable_Type'\n(I1\nttRp11893\ntp11894\nsS'yaxisTitle'\np11895\n(S'frequency'\nI0\ntp11896\nsS'xaxisTitle'\np11897\n(g11892\ng11893\ntp11898\nsS'mainTitle'\np11899\n(S''\nI0\ntp11900\nsS'yPaxisTitle'\np11901\n(S''\nI0\ntp11902\nsS'targetValue'\np11903\n(I1\nI-2\ntp11904\nsS'visibleOutcomes'\np11905\n((lp11906\nI0\naI-2\ntp11907\nssg23\n(dp11908\nS'Y:NbeTension'\np11909\ng26\n(S'Variable_Type'\n(I1\nttRp11910\nsS'Y:%RateA 29-30'\np11911\ng26\n(S'Variable_Type'\n(I1\nttRp11912\nsS'Y:%RateA 61-62'\np11913\ng26\n(S'Variable_Type'\n(I1\nttRp11914\nsS'Y:%RateA 76-77'\np11915\ng26\n(S'Variable_Type'\n(I1\nttRp11916\nsS'Y:PMachine114'\np11917\ng26\n(S'Variable_Type'\n(I1\nttRp11918\nsS'Y:%RateA 55-56'\np11919\ng26\n(S'Variable_Type'\n(I1\nttRp11920\nsS'Y:%RateA 59-60'\np11921\ng26\n(S'Variable_Type'\n(I1\nttRp11922\nsS'Y:%RateA 102-103'\np11923\ng26\n(S'Variable_Type'\n(I1\nttRp11924\nsS'Y:PMachine90'\np11925\ng26\n(S'Variable_Type'\n(I1\nttRp11926\nsS'Y:%RateA 106-107'\np11927\ng26\n(S'Variable_Type'\n(I1\nttRp11928\nsS'Y:NbeTransit'\np11929\ng26\n(S'Variable_Type'\n(I1\nttRp11930\nsS'Y:PMachine54'\np11931\ng26\n(S'Variable_Type'\n(I1\nttRp11932\nsS'Y:PMachine75'\np11933\ng26\n(S'Variable_Type'\n(I1\nttRp11934\nsS'Y:%RateA 22-23'\np11935\ng26\n(S'Variable_Type'\n(I1\nttRp11936\nsS'Y:%RateA 53-54'\np11937\ng26\n(S'Variable_Type'\n(I1\nttRp11938\nsS'Y:%RateA 108-109'\np11939\ng26\n(S'Variable_Type'\n(I1\nttRp11940\nsS'X:Interco(bin)'\np11941\ng26\n(S'Variable_Type'\n(I1\nttRp11942\nsS'Y:%RateA 14-15'\np11943\ng26\n(S'Variable_Type'\n(I1\nttRp11944\nsS'Y:%RateA 51-52'\np11945\ng26\n(S'Variable_Type'\n(I1\nttRp11946\nsS'Y:PMachine74'\np11947\ng26\n(S'Variable_Type'\n(I1\nttRp11948\nsS'Y:%RateA 57-58'\np11949\ng26\n(S'Variable_Type'\n(I1\nttRp11950\nsS'Y:PMachine106'\np11951\ng26\n(S'Variable_Type'\n(I1\nttRp11952\nsS'Y:PMachine107'\np11953\ng26\n(S'Variable_Type'\n(I1\nttRp11954\nsS'Y:%RateA 86-87'\np11955\ng26\n(S'Variable_Type'\n(I1\nttRp11956\nsS'Y:%RateA 95-96'\np11957\ng26\n(S'Variable_Type'\n(I1\nttRp11958\nsS'Y:%RateA 24-25'\np11959\ng26\n(S'Variable_Type'\n(I1\nttRp11960\nsS'Y:%RateA 82-83'\np11961\ng26\n(S'Variable_Type'\n(I1\nttRp11962\nsS'Y:PMachine86'\np11963\ng26\n(S'Variable_Type'\n(I1\nttRp11964\nsS'Y:%RateA 78-79'\np11965\ng26\n(S'Variable_Type'\n(I1\nttRp11966\nsS'Y:%RateA 112-113'\np11967\ncOrange.core\nStringList\np11968\n(tRp11969\nS'0'\naS'CSAMPO31    -CSAMPO32'\na(dbsS'Y:%RateA 104-105'\np11970\ng11893\nsS'Y:PMachine61'\np11971\ng26\n(S'Variable_Type'\n(I1\nttRp11972\nsS'Y:%RateA 80-81'\np11973\ng26\n(S'Variable_Type'\n(I1\nttRp11974\nsS'Y:PMachine29'\np11975\ng26\n(S'Variable_Type'\n(I1\nttRp11976\nsS'Y:%RateA 84-85'\np11977\ng26\n(S'Variable_Type'\n(I1\nttRp11978\nsS'Y:%RateA 72-73'\np11979\ng26\n(S'Variable_Type'\n(I1\nttRp11980\nssg630\n(dp11981\nsg20\n(lp11982\nS'orderedDomain'\np11983\nasg650\nF1368433401.563\nsba(iOWContexts\nContext\np11984\n(dp11985\ng632\n(dp11986\nS'attribute'\np11987\n(S'Y:%RateA 104-105'\np11988\ng26\n(S'Variable_Type'\n(I1\nttRp11989\ntp11990\nsS'yaxisTitle'\np11991\n(S'frequency'\nI0\ntp11992\nsS'xaxisTitle'\np11993\n(g11988\ng11989\ntp11994\nsS'mainTitle'\np11995\n(S''\nI0\ntp11996\nsS'yPaxisTitle'\np11997\n(S''\nI0\ntp11998\nsS'targetValue'\np11999\n(I1\nI-2\ntp12000\nsS'visibleOutcomes'\np12001\n((lp12002\nI0\naI-2\ntp12003\nssg23\n(dp12004\nS'Y:NbeTension'\np12005\ng26\n(S'Variable_Type'\n(I1\nttRp12006\nsS'Y:%RateA 29-30'\np12007\ng26\n(S'Variable_Type'\n(I1\nttRp12008\nsS'Y:%RateA 61-62'\np12009\ng26\n(S'Variable_Type'\n(I1\nttRp12010\nsS'Y:%RateA 76-77'\np12011\ng26\n(S'Variable_Type'\n(I1\nttRp12012\nsS'Y:PMachine114'\np12013\ng26\n(S'Variable_Type'\n(I1\nttRp12014\nsS'Y:%RateA 55-56'\np12015\ng26\n(S'Variable_Type'\n(I1\nttRp12016\nsS'Y:%RateA 59-60'\np12017\ng26\n(S'Variable_Type'\n(I1\nttRp12018\nsS'Y:%RateA 102-103'\np12019\ng26\n(S'Variable_Type'\n(I1\nttRp12020\nsS'Y:PMachine90'\np12021\ng26\n(S'Variable_Type'\n(I1\nttRp12022\nsS'Y:%RateA 106-107'\np12023\ng26\n(S'Variable_Type'\n(I1\nttRp12024\nsS'Y:NbeTransit'\np12025\ng26\n(S'Variable_Type'\n(I1\nttRp12026\nsS'Y:PMachine54'\np12027\ng26\n(S'Variable_Type'\n(I1\nttRp12028\nsS'Y:PMachine75'\np12029\ng26\n(S'Variable_Type'\n(I1\nttRp12030\nsS'Y:%RateA 22-23'\np12031\ng26\n(S'Variable_Type'\n(I1\nttRp12032\nsS'Y:%RateA 53-54'\np12033\ng26\n(S'Variable_Type'\n(I1\nttRp12034\nsS'Y:%RateA 108-109'\np12035\ng26\n(S'Variable_Type'\n(I1\nttRp12036\nsS'X:Interco(bin)'\np12037\ng26\n(S'Variable_Type'\n(I1\nttRp12038\nsS'Y:%RateA 14-15'\np12039\ng26\n(S'Variable_Type'\n(I1\nttRp12040\nsS'Y:%RateA 51-52'\np12041\ng26\n(S'Variable_Type'\n(I1\nttRp12042\nsS'Y:PMachine74'\np12043\ng26\n(S'Variable_Type'\n(I1\nttRp12044\nsS'Y:%RateA 57-58'\np12045\ng26\n(S'Variable_Type'\n(I1\nttRp12046\nsS'Y:PMachine106'\np12047\ng26\n(S'Variable_Type'\n(I1\nttRp12048\nsS'Y:PMachine107'\np12049\ng26\n(S'Variable_Type'\n(I1\nttRp12050\nsS'Y:%RateA 86-87'\np12051\ng26\n(S'Variable_Type'\n(I1\nttRp12052\nsS'Y:%RateA 95-96'\np12053\ng26\n(S'Variable_Type'\n(I1\nttRp12054\nsS'Y:%RateA 24-25'\np12055\ng26\n(S'Variable_Type'\n(I1\nttRp12056\nsS'Y:%RateA 82-83'\np12057\ng26\n(S'Variable_Type'\n(I1\nttRp12058\nsS'Y:PMachine86'\np12059\ng26\n(S'Variable_Type'\n(I1\nttRp12060\nsS'Y:%RateA 78-79'\np12061\ng26\n(S'Variable_Type'\n(I1\nttRp12062\nsS'Y:%RateA 112-113'\np12063\ng11968\n(tRp12064\nS'0'\naS'CSAMPO31    -CSAMPO32'\na(dbsS'Y:%RateA 104-105'\np12065\ng11989\nsS'Y:PMachine61'\np12066\ng26\n(S'Variable_Type'\n(I1\nttRp12067\nsS'Y:%RateA 80-81'\np12068\ng26\n(S'Variable_Type'\n(I1\nttRp12069\nsS'Y:PMachine29'\np12070\ng26\n(S'Variable_Type'\n(I1\nttRp12071\nsS'Y:%RateA 84-85'\np12072\ng26\n(S'Variable_Type'\n(I1\nttRp12073\nsS'Y:%RateA 72-73'\np12074\ng26\n(S'Variable_Type'\n(I1\nttRp12075\nssg630\n(dp12076\nsg20\n(lp12077\nS'orderedDomain'\np12078\nasg650\nF1368433401.563\nsba(iOWContexts\nContext\np12079\n(dp12080\ng20\n(lp12081\nS'orderedDomain'\np12082\nasg23\n(dp12083\nS'Y:%RateA 59-60'\np12084\ng26\n(S'Variable_Type'\n(I1\nttRp12085\nsS'Y:%RateA 29-30'\np12086\ng26\n(S'Variable_Type'\n(I1\nttRp12087\nsS'Y:%RateA 61-62'\np12088\ng26\n(S'Variable_Type'\n(I1\nttRp12089\nsS'Y:%RateA 76-77'\np12090\ng26\n(S'Variable_Type'\n(I1\nttRp12091\nsS'Y:PMachine114'\np12092\ng26\n(S'Variable_Type'\n(I1\nttRp12093\nsS'Y:VBus61'\np12094\ng26\n(S'Variable_Type'\n(I1\nttRp12095\nsS'Y:PMachine116'\np12096\ng26\n(S'Variable_Type'\n(I1\nttRp12097\nsS'Y:PMachine111'\np12098\ng26\n(S'Variable_Type'\n(I1\nttRp12099\nsS'Y:%RateA 55-56'\np12100\ng26\n(S'Variable_Type'\n(I1\nttRp12101\nsS'Y:PMachine113'\np12102\ng26\n(S'Variable_Type'\n(I1\nttRp12103\nsS'Y:PMachine112'\np12104\ng26\n(S'Variable_Type'\n(I1\nttRp12105\nsS'Y:PMachine94'\np12106\ng26\n(S'Variable_Type'\n(I1\nttRp12107\nsS'Y:%RateA 102-103'\np12108\ng26\n(S'Variable_Type'\n(I1\nttRp12109\nsS'Y:PMachine90'\np12110\ng26\n(S'Variable_Type'\n(I1\nttRp12111\nsS'Y:PMachine93'\np12112\ng26\n(S'Variable_Type'\n(I1\nttRp12113\nsS'Y:NbeTransit'\np12114\ng26\n(S'Variable_Type'\n(I1\nttRp12115\nsS'Y:PMachine54'\np12116\ng26\n(S'Variable_Type'\n(I1\nttRp12117\nsS'Y:PMachine73'\np12118\ng26\n(S'Variable_Type'\n(I1\nttRp12119\nsS'Y:PMachine72'\np12120\ng26\n(S'Variable_Type'\n(I1\nttRp12121\nsS'Y:%RateA 80-81'\np12122\ng26\n(S'Variable_Type'\n(I1\nttRp12123\nsS'Y:PMachine74'\np12124\ng26\n(S'Variable_Type'\n(I1\nttRp12125\nsS'Y:%RateA 53-54'\np12126\ng26\n(S'Variable_Type'\n(I1\nttRp12127\nsS'Y:%RateA 108-109'\np12128\ng26\n(S'Variable_Type'\n(I1\nttRp12129\nsS'X:Interco(bin)'\np12130\ng26\n(S'Variable_Type'\n(I1\nttRp12131\nsS'Y:%RateA 14-15'\np12132\ng26\n(S'Variable_Type'\n(I1\nttRp12133\nsS'Y:%RateA 22-23'\np12134\ng26\n(S'Variable_Type'\n(I1\nttRp12135\nsS'Y:%RateA 57-58'\np12136\ng26\n(S'Variable_Type'\n(I1\nttRp12137\nsS'Y:PMachine106'\np12138\ng26\n(S'Variable_Type'\n(I1\nttRp12139\nsS'Y:PMachine107'\np12140\ng26\n(S'Variable_Type'\n(I1\nttRp12141\nsS'Y:%RateA 106-107'\np12142\ng26\n(S'Variable_Type'\n(I1\nttRp12143\nsS'Y:%RateA 51-52'\np12144\ng26\n(S'Variable_Type'\n(I1\nttRp12145\nsS'Y:%RateA 24-25'\np12146\ng26\n(S'Variable_Type'\n(I1\nttRp12147\nsS'Y:%RateA 82-83'\np12148\ng26\n(S'Variable_Type'\n(I1\nttRp12149\nsS'Y:%RateA 72-73'\np12150\ng26\n(S'Variable_Type'\n(I1\nttRp12151\nsS'Y:PMachine86'\np12152\ng26\n(S'Variable_Type'\n(I1\nttRp12153\nsS'Y:%RateA 78-79'\np12154\ng26\n(S'Variable_Type'\n(I1\nttRp12155\nsS'Y:VBus62'\np12156\ng26\n(S'Variable_Type'\n(I1\nttRp12157\nsS'Y:PMachine42'\np12158\ng26\n(S'Variable_Type'\n(I1\nttRp12159\nsS'Y:PMachine117'\np12160\ng26\n(S'Variable_Type'\n(I1\nttRp12161\nsS'Y:%RateA 112-113'\np12162\ng11968\n(tRp12163\nS'0'\naS'CSAMPO31    -CSAMPO32'\na(dbsS'Y:%RateA 104-105'\np12164\ng26\n(S'Variable_Type'\n(I1\nttRp12165\nsS'Y:PMachine61'\np12166\ng26\n(S'Variable_Type'\n(I1\nttRp12167\nsS'Y:%RateA 86-87'\np12168\ng26\n(S'Variable_Type'\n(I1\nttRp12169\nsS'Y:PMachine29'\np12170\ng26\n(S'Variable_Type'\n(I1\nttRp12171\nsS'Y:%RateA 84-85'\np12172\ng26\n(S'Variable_Type'\n(I1\nttRp12173\nsS'Y:%RateA 95-96'\np12174\ng26\n(S'Variable_Type'\n(I1\nttRp12175\nssg630\n(dp12176\nsg632\n(dp12177\nS'attribute'\np12178\n(S'X:Interco(bin)'\np12179\ng12131\ntp12180\nsS'yaxisTitle'\np12181\n(S'frequency'\nI0\ntp12182\nsS'xaxisTitle'\np12183\n(g12179\ng12131\ntp12184\nsS'mainTitle'\np12185\n(S''\nI0\ntp12186\nsS'yPaxisTitle'\np12187\n(S''\nI0\ntp12188\nsS'targetValue'\np12189\n(I0\nI-2\ntp12190\nsS'visibleOutcomes'\np12191\n((lp12192\nI0\naI1\naI-2\ntp12193\nssg650\nF1367937614.72\nsba(iOWContexts\nContext\np12194\n(dp12195\ng20\n(lp12196\nS'orderedDomain'\np12197\nasg23\n(dp12198\nS'Y:%RateA 59-60'\np12199\ng26\n(S'Variable_Type'\n(I1\nttRp12200\nsS'Y:%RateA 29-30'\np12201\ng26\n(S'Variable_Type'\n(I1\nttRp12202\nsS'Y:%RateA 61-62'\np12203\ng26\n(S'Variable_Type'\n(I1\nttRp12204\nsS'Y:%RateA 76-77'\np12205\ng26\n(S'Variable_Type'\n(I1\nttRp12206\nsS'Y:PMachine114'\np12207\ng26\n(S'Variable_Type'\n(I1\nttRp12208\nsS'Y:VBus61'\np12209\ng26\n(S'Variable_Type'\n(I1\nttRp12210\nsS'Y:PMachine116'\np12211\ng26\n(S'Variable_Type'\n(I1\nttRp12212\nsS'Y:PMachine111'\np12213\ng26\n(S'Variable_Type'\n(I1\nttRp12214\nsS'Y:%RateA 55-56'\np12215\ng26\n(S'Variable_Type'\n(I1\nttRp12216\nsS'Y:PMachine113'\np12217\ng26\n(S'Variable_Type'\n(I1\nttRp12218\nsS'Y:PMachine112'\np12219\ng26\n(S'Variable_Type'\n(I1\nttRp12220\nsS'Y:PMachine94'\np12221\ng26\n(S'Variable_Type'\n(I1\nttRp12222\nsS'Y:%RateA 102-103'\np12223\ng26\n(S'Variable_Type'\n(I1\nttRp12224\nsS'Y:PMachine90'\np12225\ng26\n(S'Variable_Type'\n(I1\nttRp12226\nsS'Y:PMachine93'\np12227\ng26\n(S'Variable_Type'\n(I1\nttRp12228\nsS'Y:NbeTransit'\np12229\ng26\n(S'Variable_Type'\n(I1\nttRp12230\nsS'Y:PMachine54'\np12231\ng26\n(S'Variable_Type'\n(I1\nttRp12232\nsS'Y:PMachine73'\np12233\ng26\n(S'Variable_Type'\n(I1\nttRp12234\nsS'Y:PMachine72'\np12235\ng26\n(S'Variable_Type'\n(I1\nttRp12236\nsS'Y:%RateA 80-81'\np12237\ng26\n(S'Variable_Type'\n(I1\nttRp12238\nsS'Y:PMachine74'\np12239\ng26\n(S'Variable_Type'\n(I1\nttRp12240\nsS'Y:%RateA 53-54'\np12241\ng26\n(S'Variable_Type'\n(I1\nttRp12242\nsS'Y:%RateA 108-109'\np12243\ng26\n(S'Variable_Type'\n(I1\nttRp12244\nsS'X:Interco(bin)'\np12245\ng26\n(S'Variable_Type'\n(I1\nttRp12246\nsS'Y:%RateA 14-15'\np12247\ng26\n(S'Variable_Type'\n(I1\nttRp12248\nsS'Y:%RateA 22-23'\np12249\ng26\n(S'Variable_Type'\n(I1\nttRp12250\nsS'Y:%RateA 57-58'\np12251\ng26\n(S'Variable_Type'\n(I1\nttRp12252\nsS'Y:PMachine106'\np12253\ng26\n(S'Variable_Type'\n(I1\nttRp12254\nsS'Y:PMachine107'\np12255\ng26\n(S'Variable_Type'\n(I1\nttRp12256\nsS'Y:%RateA 106-107'\np12257\ng26\n(S'Variable_Type'\n(I1\nttRp12258\nsS'Y:%RateA 51-52'\np12259\ng26\n(S'Variable_Type'\n(I1\nttRp12260\nsS'Y:%RateA 24-25'\np12261\ng26\n(S'Variable_Type'\n(I1\nttRp12262\nsS'Y:%RateA 82-83'\np12263\ng26\n(S'Variable_Type'\n(I1\nttRp12264\nsS'Y:%RateA 72-73'\np12265\ng26\n(S'Variable_Type'\n(I1\nttRp12266\nsS'Y:PMachine86'\np12267\ng26\n(S'Variable_Type'\n(I1\nttRp12268\nsS'Y:%RateA 78-79'\np12269\ng26\n(S'Variable_Type'\n(I1\nttRp12270\nsS'Y:VBus62'\np12271\ng26\n(S'Variable_Type'\n(I1\nttRp12272\nsS'Y:PMachine42'\np12273\ng26\n(S'Variable_Type'\n(I1\nttRp12274\nsS'Y:PMachine117'\np12275\ng26\n(S'Variable_Type'\n(I1\nttRp12276\nsS'Y:%RateA 112-113'\np12277\ng11968\n(tRp12278\nS'0'\naS'CSAMPO31    -CSAMPO32'\na(dbsS'Y:%RateA 104-105'\np12279\ng26\n(S'Variable_Type'\n(I1\nttRp12280\nsS'Y:PMachine61'\np12281\ng26\n(S'Variable_Type'\n(I1\nttRp12282\nsS'Y:%RateA 86-87'\np12283\ng26\n(S'Variable_Type'\n(I1\nttRp12284\nsS'Y:PMachine29'\np12285\ng26\n(S'Variable_Type'\n(I1\nttRp12286\nsS'Y:%RateA 84-85'\np12287\ng26\n(S'Variable_Type'\n(I1\nttRp12288\nsS'Y:%RateA 95-96'\np12289\ng26\n(S'Variable_Type'\n(I1\nttRp12290\nssg630\n(dp12291\nsg632\n(dp12292\nS'attribute'\np12293\n(S'X:Interco(bin)'\np12294\ng12246\ntp12295\nsS'yaxisTitle'\np12296\n(S'frequency'\nI0\ntp12297\nsS'xaxisTitle'\np12298\n(g12294\ng12246\ntp12299\nsS'mainTitle'\np12300\n(S''\nI0\ntp12301\nsS'yPaxisTitle'\np12302\n(S''\nI0\ntp12303\nsS'targetValue'\np12304\n(I0\nI-2\ntp12305\nsS'visibleOutcomes'\np12306\n((lp12307\nI0\naI1\naI-2\ntp12308\nssg650\nF1367937614.72\nsba(iOWContexts\nContext\np12309\n(dp12310\ng20\n(lp12311\nS'orderedDomain'\np12312\nasg23\n(dp12313\nS'Y:%RateA 59-60'\np12314\ng26\n(S'Variable_Type'\n(I1\nttRp12315\nsS'Y:%RateA 29-30'\np12316\ng26\n(S'Variable_Type'\n(I1\nttRp12317\nsS'Y:%RateA 61-62'\np12318\ng26\n(S'Variable_Type'\n(I1\nttRp12319\nsS'Y:%RateA 76-77'\np12320\ng26\n(S'Variable_Type'\n(I1\nttRp12321\nsS'Y:PMachine114'\np12322\ng26\n(S'Variable_Type'\n(I1\nttRp12323\nsS'Y:VBus61'\np12324\ng26\n(S'Variable_Type'\n(I1\nttRp12325\nsS'Y:PMachine116'\np12326\ng26\n(S'Variable_Type'\n(I1\nttRp12327\nsS'Y:PMachine111'\np12328\ng26\n(S'Variable_Type'\n(I1\nttRp12329\nsS'Y:%RateA 55-56'\np12330\ng26\n(S'Variable_Type'\n(I1\nttRp12331\nsS'Y:PMachine113'\np12332\ng26\n(S'Variable_Type'\n(I1\nttRp12333\nsS'Y:PMachine112'\np12334\ng26\n(S'Variable_Type'\n(I1\nttRp12335\nsS'Y:PMachine94'\np12336\ng26\n(S'Variable_Type'\n(I1\nttRp12337\nsS'Y:%RateA 102-103'\np12338\ng26\n(S'Variable_Type'\n(I1\nttRp12339\nsS'Y:PMachine90'\np12340\ng26\n(S'Variable_Type'\n(I1\nttRp12341\nsS'Y:PMachine93'\np12342\ng26\n(S'Variable_Type'\n(I1\nttRp12343\nsS'Y:NbeTransit'\np12344\ng26\n(S'Variable_Type'\n(I1\nttRp12345\nsS'Y:PMachine54'\np12346\ng26\n(S'Variable_Type'\n(I1\nttRp12347\nsS'Y:PMachine73'\np12348\ng26\n(S'Variable_Type'\n(I1\nttRp12349\nsS'Y:PMachine72'\np12350\ng26\n(S'Variable_Type'\n(I1\nttRp12351\nsS'Y:%RateA 80-81'\np12352\ng26\n(S'Variable_Type'\n(I1\nttRp12353\nsS'Y:PMachine74'\np12354\ng26\n(S'Variable_Type'\n(I1\nttRp12355\nsS'Y:%RateA 53-54'\np12356\ng26\n(S'Variable_Type'\n(I1\nttRp12357\nsS'Y:%RateA 108-109'\np12358\ng26\n(S'Variable_Type'\n(I1\nttRp12359\nsS'X:Interco(bin)'\np12360\ng26\n(S'Variable_Type'\n(I1\nttRp12361\nsS'Y:%RateA 14-15'\np12362\ng26\n(S'Variable_Type'\n(I1\nttRp12363\nsS'Y:%RateA 22-23'\np12364\ng26\n(S'Variable_Type'\n(I1\nttRp12365\nsS'Y:%RateA 57-58'\np12366\ng26\n(S'Variable_Type'\n(I1\nttRp12367\nsS'Y:PMachine106'\np12368\ng26\n(S'Variable_Type'\n(I1\nttRp12369\nsS'Y:PMachine107'\np12370\ng26\n(S'Variable_Type'\n(I1\nttRp12371\nsS'Y:%RateA 106-107'\np12372\ng26\n(S'Variable_Type'\n(I1\nttRp12373\nsS'Y:%RateA 51-52'\np12374\ng26\n(S'Variable_Type'\n(I1\nttRp12375\nsS'Y:%RateA 24-25'\np12376\ng26\n(S'Variable_Type'\n(I1\nttRp12377\nsS'Y:%RateA 82-83'\np12378\ng26\n(S'Variable_Type'\n(I1\nttRp12379\nsS'Y:%RateA 72-73'\np12380\ng26\n(S'Variable_Type'\n(I1\nttRp12381\nsS'Y:PMachine86'\np12382\ng26\n(S'Variable_Type'\n(I1\nttRp12383\nsS'Y:%RateA 78-79'\np12384\ng26\n(S'Variable_Type'\n(I1\nttRp12385\nsS'Y:VBus62'\np12386\ng26\n(S'Variable_Type'\n(I1\nttRp12387\nsS'Y:PMachine42'\np12388\ng26\n(S'Variable_Type'\n(I1\nttRp12389\nsS'Y:PMachine117'\np12390\ng26\n(S'Variable_Type'\n(I1\nttRp12391\nsS'Y:%RateA 112-113'\np12392\ng11968\n(tRp12393\nS'0'\naS'CSAMPO31    -CSAMPO32'\na(dbsS'Y:%RateA 104-105'\np12394\ng26\n(S'Variable_Type'\n(I1\nttRp12395\nsS'Y:PMachine61'\np12396\ng26\n(S'Variable_Type'\n(I1\nttRp12397\nsS'Y:%RateA 86-87'\np12398\ng26\n(S'Variable_Type'\n(I1\nttRp12399\nsS'Y:PMachine29'\np12400\ng26\n(S'Variable_Type'\n(I1\nttRp12401\nsS'Y:%RateA 84-85'\np12402\ng26\n(S'Variable_Type'\n(I1\nttRp12403\nsS'Y:%RateA 95-96'\np12404\ng26\n(S'Variable_Type'\n(I1\nttRp12405\nssg630\n(dp12406\nsg632\n(dp12407\nS'attribute'\np12408\n(S'X:Interco(bin)'\np12409\ng12361\ntp12410\nsS'yaxisTitle'\np12411\n(S'frequency'\nI0\ntp12412\nsS'xaxisTitle'\np12413\n(g12409\ng12361\ntp12414\nsS'mainTitle'\np12415\n(S''\nI0\ntp12416\nsS'yPaxisTitle'\np12417\n(S''\nI0\ntp12418\nsS'targetValue'\np12419\n(I0\nI-2\ntp12420\nsS'visibleOutcomes'\np12421\n((lp12422\nI0\naI1\naI-2\ntp12423\nssg650\nF1367937614.72\nsba(iOWContexts\nContext\np12424\n(dp12425\ng20\n(lp12426\nS'orderedDomain'\np12427\nasg23\n(dp12428\nS'Y:%RateA 59-60'\np12429\ng26\n(S'Variable_Type'\n(I1\nttRp12430\nsS'Y:%RateA 29-30'\np12431\ng26\n(S'Variable_Type'\n(I1\nttRp12432\nsS'Y:%RateA 61-62'\np12433\ng26\n(S'Variable_Type'\n(I1\nttRp12434\nsS'Y:%RateA 76-77'\np12435\ng26\n(S'Variable_Type'\n(I1\nttRp12436\nsS'Y:PMachine114'\np12437\ng26\n(S'Variable_Type'\n(I1\nttRp12438\nsS'Y:VBus61'\np12439\ng26\n(S'Variable_Type'\n(I1\nttRp12440\nsS'Y:PMachine116'\np12441\ng26\n(S'Variable_Type'\n(I1\nttRp12442\nsS'Y:PMachine111'\np12443\ng26\n(S'Variable_Type'\n(I1\nttRp12444\nsS'Y:%RateA 55-56'\np12445\ng26\n(S'Variable_Type'\n(I1\nttRp12446\nsS'Y:PMachine113'\np12447\ng26\n(S'Variable_Type'\n(I1\nttRp12448\nsS'Y:PMachine112'\np12449\ng26\n(S'Variable_Type'\n(I1\nttRp12450\nsS'Y:PMachine94'\np12451\ng26\n(S'Variable_Type'\n(I1\nttRp12452\nsS'Y:%RateA 102-103'\np12453\ng26\n(S'Variable_Type'\n(I1\nttRp12454\nsS'Y:PMachine90'\np12455\ng26\n(S'Variable_Type'\n(I1\nttRp12456\nsS'Y:PMachine93'\np12457\ng26\n(S'Variable_Type'\n(I1\nttRp12458\nsS'Y:NbeTransit'\np12459\ng26\n(S'Variable_Type'\n(I1\nttRp12460\nsS'Y:PMachine54'\np12461\ng26\n(S'Variable_Type'\n(I1\nttRp12462\nsS'Y:PMachine73'\np12463\ng26\n(S'Variable_Type'\n(I1\nttRp12464\nsS'Y:PMachine72'\np12465\ng26\n(S'Variable_Type'\n(I1\nttRp12466\nsS'Y:%RateA 80-81'\np12467\ng26\n(S'Variable_Type'\n(I1\nttRp12468\nsS'Y:PMachine74'\np12469\ng26\n(S'Variable_Type'\n(I1\nttRp12470\nsS'Y:%RateA 53-54'\np12471\ng26\n(S'Variable_Type'\n(I1\nttRp12472\nsS'Y:%RateA 108-109'\np12473\ng26\n(S'Variable_Type'\n(I1\nttRp12474\nsS'X:Interco(bin)'\np12475\ng26\n(S'Variable_Type'\n(I1\nttRp12476\nsS'Y:%RateA 14-15'\np12477\ng26\n(S'Variable_Type'\n(I1\nttRp12478\nsS'Y:%RateA 22-23'\np12479\ng26\n(S'Variable_Type'\n(I1\nttRp12480\nsS'Y:%RateA 57-58'\np12481\ng26\n(S'Variable_Type'\n(I1\nttRp12482\nsS'Y:PMachine106'\np12483\ng26\n(S'Variable_Type'\n(I1\nttRp12484\nsS'Y:PMachine107'\np12485\ng26\n(S'Variable_Type'\n(I1\nttRp12486\nsS'Y:%RateA 106-107'\np12487\ng26\n(S'Variable_Type'\n(I1\nttRp12488\nsS'Y:%RateA 51-52'\np12489\ng26\n(S'Variable_Type'\n(I1\nttRp12490\nsS'Y:%RateA 24-25'\np12491\ng26\n(S'Variable_Type'\n(I1\nttRp12492\nsS'Y:%RateA 82-83'\np12493\ng26\n(S'Variable_Type'\n(I1\nttRp12494\nsS'Y:%RateA 72-73'\np12495\ng26\n(S'Variable_Type'\n(I1\nttRp12496\nsS'Y:PMachine86'\np12497\ng26\n(S'Variable_Type'\n(I1\nttRp12498\nsS'Y:%RateA 78-79'\np12499\ng26\n(S'Variable_Type'\n(I1\nttRp12500\nsS'Y:VBus62'\np12501\ng26\n(S'Variable_Type'\n(I1\nttRp12502\nsS'Y:PMachine42'\np12503\ng26\n(S'Variable_Type'\n(I1\nttRp12504\nsS'Y:PMachine117'\np12505\ng26\n(S'Variable_Type'\n(I1\nttRp12506\nsS'Y:%RateA 112-113'\np12507\ng11968\n(tRp12508\nS'0'\naS'CSAMPO31    -CSAMPO32'\na(dbsS'Y:%RateA 104-105'\np12509\ng26\n(S'Variable_Type'\n(I1\nttRp12510\nsS'Y:PMachine61'\np12511\ng26\n(S'Variable_Type'\n(I1\nttRp12512\nsS'Y:%RateA 86-87'\np12513\ng26\n(S'Variable_Type'\n(I1\nttRp12514\nsS'Y:PMachine29'\np12515\ng26\n(S'Variable_Type'\n(I1\nttRp12516\nsS'Y:%RateA 84-85'\np12517\ng26\n(S'Variable_Type'\n(I1\nttRp12518\nsS'Y:%RateA 95-96'\np12519\ng26\n(S'Variable_Type'\n(I1\nttRp12520\nssg630\n(dp12521\nsg632\n(dp12522\nS'attribute'\np12523\n(S'X:Interco(bin)'\np12524\ng12476\ntp12525\nsS'yaxisTitle'\np12526\n(S'frequency'\nI0\ntp12527\nsS'xaxisTitle'\np12528\n(g12524\ng12476\ntp12529\nsS'mainTitle'\np12530\n(S''\nI0\ntp12531\nsS'yPaxisTitle'\np12532\n(S''\nI0\ntp12533\nsS'targetValue'\np12534\n(I0\nI-2\ntp12535\nsS'visibleOutcomes'\np12536\n((lp12537\nI0\naI1\naI-2\ntp12538\nssg650\nF1367937614.72\nsba(iOWContexts\nContext\np12539\n(dp12540\ng20\n(lp12541\nS'orderedDomain'\np12542\nasg23\n(dp12543\nS'Y:%RateA 59-60'\np12544\ng26\n(S'Variable_Type'\n(I1\nttRp12545\nsS'Y:%RateA 29-30'\np12546\ng26\n(S'Variable_Type'\n(I1\nttRp12547\nsS'Y:%RateA 61-62'\np12548\ng26\n(S'Variable_Type'\n(I1\nttRp12549\nsS'Y:%RateA 76-77'\np12550\ng26\n(S'Variable_Type'\n(I1\nttRp12551\nsS'Y:PMachine114'\np12552\ng26\n(S'Variable_Type'\n(I1\nttRp12553\nsS'Y:VBus61'\np12554\ng26\n(S'Variable_Type'\n(I1\nttRp12555\nsS'Y:PMachine116'\np12556\ng26\n(S'Variable_Type'\n(I1\nttRp12557\nsS'Y:PMachine111'\np12558\ng26\n(S'Variable_Type'\n(I1\nttRp12559\nsS'Y:%RateA 55-56'\np12560\ng26\n(S'Variable_Type'\n(I1\nttRp12561\nsS'Y:PMachine113'\np12562\ng26\n(S'Variable_Type'\n(I1\nttRp12563\nsS'Y:PMachine112'\np12564\ng26\n(S'Variable_Type'\n(I1\nttRp12565\nsS'Y:PMachine94'\np12566\ng26\n(S'Variable_Type'\n(I1\nttRp12567\nsS'Y:%RateA 102-103'\np12568\ng26\n(S'Variable_Type'\n(I1\nttRp12569\nsS'Y:PMachine90'\np12570\ng26\n(S'Variable_Type'\n(I1\nttRp12571\nsS'Y:PMachine93'\np12572\ng26\n(S'Variable_Type'\n(I1\nttRp12573\nsS'Y:NbeTransit'\np12574\ng26\n(S'Variable_Type'\n(I1\nttRp12575\nsS'Y:PMachine54'\np12576\ng26\n(S'Variable_Type'\n(I1\nttRp12577\nsS'Y:PMachine73'\np12578\ng26\n(S'Variable_Type'\n(I1\nttRp12579\nsS'Y:PMachine72'\np12580\ng26\n(S'Variable_Type'\n(I1\nttRp12581\nsS'Y:%RateA 80-81'\np12582\ng26\n(S'Variable_Type'\n(I1\nttRp12583\nsS'Y:PMachine74'\np12584\ng26\n(S'Variable_Type'\n(I1\nttRp12585\nsS'Y:%RateA 53-54'\np12586\ng26\n(S'Variable_Type'\n(I1\nttRp12587\nsS'Y:%RateA 108-109'\np12588\ng26\n(S'Variable_Type'\n(I1\nttRp12589\nsS'X:Interco(bin)'\np12590\ng26\n(S'Variable_Type'\n(I1\nttRp12591\nsS'Y:%RateA 14-15'\np12592\ng26\n(S'Variable_Type'\n(I1\nttRp12593\nsS'Y:%RateA 22-23'\np12594\ng26\n(S'Variable_Type'\n(I1\nttRp12595\nsS'Y:%RateA 57-58'\np12596\ng26\n(S'Variable_Type'\n(I1\nttRp12597\nsS'Y:PMachine106'\np12598\ng26\n(S'Variable_Type'\n(I1\nttRp12599\nsS'Y:PMachine107'\np12600\ng26\n(S'Variable_Type'\n(I1\nttRp12601\nsS'Y:%RateA 106-107'\np12602\ng26\n(S'Variable_Type'\n(I1\nttRp12603\nsS'Y:%RateA 51-52'\np12604\ng26\n(S'Variable_Type'\n(I1\nttRp12605\nsS'Y:%RateA 24-25'\np12606\ng26\n(S'Variable_Type'\n(I1\nttRp12607\nsS'Y:%RateA 82-83'\np12608\ng26\n(S'Variable_Type'\n(I1\nttRp12609\nsS'Y:%RateA 72-73'\np12610\ng26\n(S'Variable_Type'\n(I1\nttRp12611\nsS'Y:PMachine86'\np12612\ng26\n(S'Variable_Type'\n(I1\nttRp12613\nsS'Y:%RateA 78-79'\np12614\ng26\n(S'Variable_Type'\n(I1\nttRp12615\nsS'Y:VBus62'\np12616\ng26\n(S'Variable_Type'\n(I1\nttRp12617\nsS'Y:PMachine42'\np12618\ng26\n(S'Variable_Type'\n(I1\nttRp12619\nsS'Y:PMachine117'\np12620\ng26\n(S'Variable_Type'\n(I1\nttRp12621\nsS'Y:%RateA 112-113'\np12622\ng11968\n(tRp12623\nS'0'\naS'CSAMPO31    -CSAMPO32'\na(dbsS'Y:%RateA 104-105'\np12624\ng26\n(S'Variable_Type'\n(I1\nttRp12625\nsS'Y:PMachine61'\np12626\ng26\n(S'Variable_Type'\n(I1\nttRp12627\nsS'Y:%RateA 86-87'\np12628\ng26\n(S'Variable_Type'\n(I1\nttRp12629\nsS'Y:PMachine29'\np12630\ng26\n(S'Variable_Type'\n(I1\nttRp12631\nsS'Y:%RateA 84-85'\np12632\ng26\n(S'Variable_Type'\n(I1\nttRp12633\nsS'Y:%RateA 95-96'\np12634\ng26\n(S'Variable_Type'\n(I1\nttRp12635\nssg630\n(dp12636\nsg632\n(dp12637\nS'attribute'\np12638\n(S'X:Interco(bin)'\np12639\ng12591\ntp12640\nsS'yaxisTitle'\np12641\n(S'frequency'\nI0\ntp12642\nsS'xaxisTitle'\np12643\n(g12639\ng12591\ntp12644\nsS'mainTitle'\np12645\n(S''\nI0\ntp12646\nsS'yPaxisTitle'\np12647\n(S''\nI0\ntp12648\nsS'targetValue'\np12649\n(I0\nI-2\ntp12650\nsS'visibleOutcomes'\np12651\n((lp12652\nI0\naI1\naI-2\ntp12653\nssg650\nF1367937614.72\nsba(iOWContexts\nContext\np12654\n(dp12655\ng20\n(lp12656\nS'orderedDomain'\np12657\nasg23\n(dp12658\nS'Y:%RateA 59-60'\np12659\ng26\n(S'Variable_Type'\n(I1\nttRp12660\nsS'Y:%RateA 29-30'\np12661\ng26\n(S'Variable_Type'\n(I1\nttRp12662\nsS'Y:%RateA 61-62'\np12663\ng26\n(S'Variable_Type'\n(I1\nttRp12664\nsS'Y:%RateA 76-77'\np12665\ng26\n(S'Variable_Type'\n(I1\nttRp12666\nsS'Y:PMachine114'\np12667\ng26\n(S'Variable_Type'\n(I1\nttRp12668\nsS'Y:VBus61'\np12669\ng26\n(S'Variable_Type'\n(I1\nttRp12670\nsS'Y:PMachine116'\np12671\ng26\n(S'Variable_Type'\n(I1\nttRp12672\nsS'Y:PMachine111'\np12673\ng26\n(S'Variable_Type'\n(I1\nttRp12674\nsS'Y:%RateA 55-56'\np12675\ng26\n(S'Variable_Type'\n(I1\nttRp12676\nsS'Y:PMachine113'\np12677\ng26\n(S'Variable_Type'\n(I1\nttRp12678\nsS'Y:PMachine112'\np12679\ng26\n(S'Variable_Type'\n(I1\nttRp12680\nsS'Y:PMachine94'\np12681\ng26\n(S'Variable_Type'\n(I1\nttRp12682\nsS'Y:%RateA 102-103'\np12683\ng26\n(S'Variable_Type'\n(I1\nttRp12684\nsS'Y:PMachine90'\np12685\ng26\n(S'Variable_Type'\n(I1\nttRp12686\nsS'Y:PMachine93'\np12687\ng26\n(S'Variable_Type'\n(I1\nttRp12688\nsS'Y:NbeTransit'\np12689\ng26\n(S'Variable_Type'\n(I1\nttRp12690\nsS'Y:PMachine54'\np12691\ng26\n(S'Variable_Type'\n(I1\nttRp12692\nsS'Y:PMachine73'\np12693\ng26\n(S'Variable_Type'\n(I1\nttRp12694\nsS'Y:PMachine72'\np12695\ng26\n(S'Variable_Type'\n(I1\nttRp12696\nsS'Y:%RateA 80-81'\np12697\ng26\n(S'Variable_Type'\n(I1\nttRp12698\nsS'Y:PMachine74'\np12699\ng26\n(S'Variable_Type'\n(I1\nttRp12700\nsS'Y:%RateA 53-54'\np12701\ng26\n(S'Variable_Type'\n(I1\nttRp12702\nsS'Y:%RateA 108-109'\np12703\ng26\n(S'Variable_Type'\n(I1\nttRp12704\nsS'X:Interco(bin)'\np12705\ng26\n(S'Variable_Type'\n(I1\nttRp12706\nsS'Y:%RateA 14-15'\np12707\ng26\n(S'Variable_Type'\n(I1\nttRp12708\nsS'Y:%RateA 22-23'\np12709\ng26\n(S'Variable_Type'\n(I1\nttRp12710\nsS'Y:%RateA 57-58'\np12711\ng26\n(S'Variable_Type'\n(I1\nttRp12712\nsS'Y:PMachine106'\np12713\ng26\n(S'Variable_Type'\n(I1\nttRp12714\nsS'Y:PMachine107'\np12715\ng26\n(S'Variable_Type'\n(I1\nttRp12716\nsS'Y:%RateA 106-107'\np12717\ng26\n(S'Variable_Type'\n(I1\nttRp12718\nsS'Y:%RateA 51-52'\np12719\ng26\n(S'Variable_Type'\n(I1\nttRp12720\nsS'Y:%RateA 24-25'\np12721\ng26\n(S'Variable_Type'\n(I1\nttRp12722\nsS'Y:%RateA 82-83'\np12723\ng26\n(S'Variable_Type'\n(I1\nttRp12724\nsS'Y:%RateA 72-73'\np12725\ng26\n(S'Variable_Type'\n(I1\nttRp12726\nsS'Y:PMachine86'\np12727\ng26\n(S'Variable_Type'\n(I1\nttRp12728\nsS'Y:%RateA 78-79'\np12729\ng26\n(S'Variable_Type'\n(I1\nttRp12730\nsS'Y:VBus62'\np12731\ng26\n(S'Variable_Type'\n(I1\nttRp12732\nsS'Y:PMachine42'\np12733\ng26\n(S'Variable_Type'\n(I1\nttRp12734\nsS'Y:PMachine117'\np12735\ng26\n(S'Variable_Type'\n(I1\nttRp12736\nsS'Y:%RateA 112-113'\np12737\ng11968\n(tRp12738\nS'0'\naS'CSAMPO31    -CSAMPO32'\na(dbsS'Y:%RateA 104-105'\np12739\ng26\n(S'Variable_Type'\n(I1\nttRp12740\nsS'Y:PMachine61'\np12741\ng26\n(S'Variable_Type'\n(I1\nttRp12742\nsS'Y:%RateA 86-87'\np12743\ng26\n(S'Variable_Type'\n(I1\nttRp12744\nsS'Y:PMachine29'\np12745\ng26\n(S'Variable_Type'\n(I1\nttRp12746\nsS'Y:%RateA 84-85'\np12747\ng26\n(S'Variable_Type'\n(I1\nttRp12748\nsS'Y:%RateA 95-96'\np12749\ng26\n(S'Variable_Type'\n(I1\nttRp12750\nssg630\n(dp12751\nsg632\n(dp12752\nS'attribute'\np12753\n(S'X:Interco(bin)'\np12754\ng12706\ntp12755\nsS'yaxisTitle'\np12756\n(S'frequency'\nI0\ntp12757\nsS'xaxisTitle'\np12758\n(g12754\ng12706\ntp12759\nsS'mainTitle'\np12760\n(S''\nI0\ntp12761\nsS'yPaxisTitle'\np12762\n(S''\nI0\ntp12763\nsS'targetValue'\np12764\n(I0\nI-2\ntp12765\nsS'visibleOutcomes'\np12766\n((lp12767\nI0\naI1\naI-2\ntp12768\nssg650\nF1367937614.72\nsba(iOWContexts\nContext\np12769\n(dp12770\ng632\n(dp12771\nS'attribute'\np12772\n(S''\nI0\ntp12773\nsS'yaxisTitle'\np12774\n(S'frequency'\nI0\ntp12775\nsS'xaxisTitle'\np12776\n(S''\nI0\ntp12777\nsS'mainTitle'\np12778\n(S''\nI0\ntp12779\nsS'yPaxisTitle'\np12780\n(S''\nI0\ntp12781\nsS'targetValue'\np12782\n(NI-2\ntp12783\nsS'visibleOutcomes'\np12784\n((lI-2\ntp12785\nssg23\n(dp12786\nsg630\n(dp12787\nsg20\n(lp12788\nS'orderedDomain'\np12789\nasg650\nF1367855073.569\nsba(iOWContexts\nContext\np12790\n(dp12791\ng632\n(dp12792\nS'attribute'\np12793\n(S''\nI0\ntp12794\nsS'yaxisTitle'\np12795\n(S'frequency'\nI0\ntp12796\nsS'xaxisTitle'\np12797\n(S''\nI0\ntp12798\nsS'mainTitle'\np12799\n(S''\nI0\ntp12800\nsS'yPaxisTitle'\np12801\n(S''\nI0\ntp12802\nsS'targetValue'\np12803\n(NI-2\ntp12804\nsS'visibleOutcomes'\np12805\n((lI-2\ntp12806\nssg23\n(dp12807\nsg630\n(dp12808\nsg20\n(lp12809\nS'orderedDomain'\np12810\nasg650\nF1367855073.569\nsba(iOWContexts\nContext\np12811\n(dp12812\ng632\n(dp12813\nS'attribute'\np12814\n(S''\nI0\ntp12815\nsS'yaxisTitle'\np12816\n(S'frequency'\nI0\ntp12817\nsS'xaxisTitle'\np12818\n(S''\nI0\ntp12819\nsS'mainTitle'\np12820\n(S''\nI0\ntp12821\nsS'yPaxisTitle'\np12822\n(S''\nI0\ntp12823\nsS'targetValue'\np12824\n(NI-2\ntp12825\nsS'visibleOutcomes'\np12826\n((lI-2\ntp12827\nssg23\n(dp12828\nsg630\n(dp12829\nsg20\n(lp12830\nS'orderedDomain'\np12831\nasg650\nF1367855073.569\nsba(iOWContexts\nContext\np12832\n(dp12833\ng632\n(dp12834\nS'attribute'\np12835\n(S''\nI0\ntp12836\nsS'yaxisTitle'\np12837\n(S'frequency'\nI0\ntp12838\nsS'xaxisTitle'\np12839\n(S''\nI0\ntp12840\nsS'mainTitle'\np12841\n(S''\nI0\ntp12842\nsS'yPaxisTitle'\np12843\n(S''\nI0\ntp12844\nsS'targetValue'\np12845\n(NI-2\ntp12846\nsS'visibleOutcomes'\np12847\n((lI-2\ntp12848\nssg23\n(dp12849\nsg630\n(dp12850\nsg20\n(lp12851\nS'orderedDomain'\np12852\nasg650\nF1367855073.569\nsba(iOWContexts\nContext\np12853\n(dp12854\ng632\n(dp12855\nS'attribute'\np12856\n(S''\nI0\ntp12857\nsS'yaxisTitle'\np12858\n(S'frequency'\nI0\ntp12859\nsS'xaxisTitle'\np12860\n(S''\nI0\ntp12861\nsS'mainTitle'\np12862\n(S''\nI0\ntp12863\nsS'yPaxisTitle'\np12864\n(S''\nI0\ntp12865\nsS'targetValue'\np12866\n(NI-2\ntp12867\nsS'visibleOutcomes'\np12868\n((lI-2\ntp12869\nssg23\n(dp12870\nsg630\n(dp12871\nsg20\n(lp12872\nS'orderedDomain'\np12873\nasg650\nF1367855073.569\nsba(iOWContexts\nContext\np12874\n(dp12875\ng632\n(dp12876\nS'attribute'\np12877\n(S''\nI0\ntp12878\nsS'yaxisTitle'\np12879\n(S'frequency'\nI0\ntp12880\nsS'xaxisTitle'\np12881\n(S''\nI0\ntp12882\nsS'mainTitle'\np12883\n(S''\nI0\ntp12884\nsS'yPaxisTitle'\np12885\n(S''\nI0\ntp12886\nsS'targetValue'\np12887\n(NI-2\ntp12888\nsS'visibleOutcomes'\np12889\n((lI-2\ntp12890\nssg23\n(dp12891\nsg630\n(dp12892\nsg20\n(lp12893\nS'orderedDomain'\np12894\nasg650\nF1367855073.569\nsbasS'showProbabilities'\np12895\nI1\nsS'numberOfBars'\np12896\nI60\ns.&quot;, 'Distributions': &quot;(dp1\nS'showYaxisTitle'\np2\nI1\nsS'graph.showContinuousClassGraph'\np3\nI00\nsS'barSize'\np4\nI50\nsS'showXaxisTitle'\np5\nI1\nsS'localContextsVersion'\np6\n(I100\nI2\ntp7\nsS'smoothLines'\np8\nI0\nsS'showYPaxisTitle'\np9\nI1\nsS'savedWidgetGeometry'\np10\nS'\\x01\\xd9\\xd0\\xcb\\x00\\x01\\x00\\x00\\x00\\x00\\x01\\xc9\\x00\\x00\\x00?\\x00\\x00\\x04\\xdd\\x00\\x00\\x02|\\x00\\x00\\x01\\xd1\\x00\\x00\\x00[\\x00\\x00\\x04\\xd5\\x00\\x00\\x02t\\x00\\x00\\x00\\x00\\x00\\x00'\np11\nsS'showMainTitle'\np12\nI00\nsS'showConfidenceIntervals'\np13\nI0\nsS'widgetShown'\np14\nI0\nsS'lineWidth'\np15\nI1\nsS'localContexts'\np16\n(lp17\n(iOWContexts\nContext\np18\n(dp19\nS'noCopy'\np20\n(lp21\nS'orderedDomain'\np22\nasS'attributes'\np23\n(dp24\nS'Y:PMachine134 - CLUCCI35'\np25\ncOrange.orange\n__pickleLoaderNamedConstants\np26\n(S'Variable_Type'\n(I2\nttRp27\nsS'Y:VBus77 - CCORTE32'\np28\ng26\n(S'Variable_Type'\n(I2\nttRp29\nsS'Y:VBus134 - CLUCCI35'\np30\ng26\n(S'Variable_Type'\n(I2\nttRp31\nsS'Y:VBus109 - CSAGON32'\np32\ng26\n(S'Variable_Type'\n(I2\nttRp33\nsS'Y:VBus102 - CPORTO31'\np34\ng26\n(S'Variable_Type'\n(I2\nttRp35\nsS'XProdEolienne%Pnom'\np36\ng26\n(S'Variable_Type'\n(I2\nttRp37\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np38\ng26\n(S'Variable_Type'\n(I2\nttRp39\nsS'Y:PMachine94 - COCANA33'\np40\ng26\n(S'Variable_Type'\n(I2\nttRp41\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np42\ng26\n(S'Variable_Type'\n(I2\nttRp43\nsS'Y:PMachine87 - CLUCCI32'\np44\ng26\n(S'Variable_Type'\n(I2\nttRp45\nsS'Y:PMachine113 - CSAMPO32'\np46\ng26\n(S'Variable_Type'\n(I2\nttRp47\nsS'Y:Load 84 - CLORET31'\np48\ng26\n(S'Variable_Type'\n(I2\nttRp49\nsS'Y:PMachine89 - CLUCCI34'\np50\ng26\n(S'Variable_Type'\n(I2\nttRp51\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np52\ng26\n(S'Variable_Type'\n(I2\nttRp53\nsS'Y:Load 80 - CGHISO31'\np54\ng26\n(S'Variable_Type'\n(I2\nttRp55\nsS'Y:PMachine74 - CCERVI31'\np56\ng26\n(S'Variable_Type'\n(I2\nttRp57\nsS'Y:PMachine125 - CVAZZI36'\np58\ng26\n(S'Variable_Type'\n(I2\nttRp59\nsS'Y:Load 59 - CCALDA31'\np60\ng26\n(S'Variable_Type'\n(I2\nttRp61\nsS'Y:PMachine88 - CLUCCI33'\np62\ng26\n(S'Variable_Type'\n(I2\nttRp63\nsS'Y:PMachine120 - CVAZZI31'\np64\ng26\n(S'Variable_Type'\n(I2\nttRp65\nsS'Y:PMachine111 - CSTMAR31'\np66\ng26\n(S'Variable_Type'\n(I2\nttRp67\nsS'Y:NbeTransit'\np68\ng26\n(S'Variable_Type'\n(I2\nttRp69\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np70\ng26\n(S'Variable_Type'\n(I2\nttRp71\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np72\ng26\n(S'Variable_Type'\n(I2\nttRp73\nsS'Y:PMachine130 - CVAZZI311'\np74\ng26\n(S'Variable_Type'\n(I2\nttRp75\nsS'Y:PMachine127 - CVAZZI38'\np76\ng26\n(S'Variable_Type'\n(I2\nttRp77\nsS'Y:VBus131 - CVAZZI312'\np78\ng26\n(S'Variable_Type'\n(I2\nttRp79\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np80\ng26\n(S'Variable_Type'\n(I2\nttRp81\nsS'Y:PMachine123 - CVAZZI34'\np82\ng26\n(S'Variable_Type'\n(I2\nttRp83\nsS'Y:VBus118 - CTOLLA33'\np84\ng26\n(S'Variable_Type'\n(I2\nttRp85\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np86\ng26\n(S'Variable_Type'\n(I2\nttRp87\nsS'Y:PMachine58 - CBONIF32'\np88\ng26\n(S'Variable_Type'\n(I2\nttRp89\nsS'Y:Load 104 - CPROPR31'\np90\ng26\n(S'Variable_Type'\n(I2\nttRp91\nsS'Y:PMachine30 - CLUCCI22'\np92\ng26\n(S'Variable_Type'\n(I2\nttRp93\nsS'Y:VBus100 - COLETT31'\np94\ng26\n(S'Variable_Type'\n(I2\nttRp95\nsS'Y:PProdTot'\np96\ng26\n(S'Variable_Type'\n(I2\nttRp97\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np98\ng26\n(S'Variable_Type'\n(I2\nttRp99\nsS'Y:VBus57 - CBONIF31'\np100\ng26\n(S'Variable_Type'\n(I2\nttRp101\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np102\ng26\n(S'Variable_Type'\n(I2\nttRp103\nsS'Y:PConsoTot'\np104\ng26\n(S'Variable_Type'\n(I2\nttRp105\nsS'Iteration'\np106\ng26\n(S'Variable_Type'\n(I2\nttRp107\nsS'Y:PMachine109 - CSAGON32'\np108\ng26\n(S'Variable_Type'\n(I2\nttRp109\nsS'Y:PMachine135 - CLUCCI36'\np110\ng26\n(S'Variable_Type'\n(I2\nttRp111\nsS'Y:VBus30 - CLUCCI22'\np112\ng26\n(S'Variable_Type'\n(I2\nttRp113\nsS'Y:VBus122 - CVAZZI33'\np114\ng26\n(S'Variable_Type'\n(I2\nttRp115\nsS'Y:VBus22 - CCORTE21'\np116\ng26\n(S'Variable_Type'\n(I2\nttRp117\nsS'Y:VBus117 - CTOLLA32'\np118\ng26\n(S'Variable_Type'\n(I2\nttRp119\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np120\ng26\n(S'Variable_Type'\n(I2\nttRp121\nsS'Y:PMachine107 - CRIZZA32'\np122\ng26\n(S'Variable_Type'\n(I2\nttRp123\nsS'Y:VBus16 - CCALDA21'\np124\ng26\n(S'Variable_Type'\n(I2\nttRp125\nsS'Y:Load 102 - CPORTO31'\np126\ng26\n(S'Variable_Type'\n(I2\nttRp127\nsS'Y:VBus107 - CRIZZA32'\np128\ng26\n(S'Variable_Type'\n(I2\nttRp129\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np130\ng26\n(S'Variable_Type'\n(I2\nttRp131\nsS'Y:VBus41 - CSAMPO21'\np132\ng26\n(S'Variable_Type'\n(I2\nttRp133\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np134\ng26\n(S'Variable_Type'\n(I2\nttRp135\nsS'Y:VBus34 - CPIETR21'\np136\ng26\n(S'Variable_Type'\n(I2\nttRp137\nsS'Y:Load 108 - CSAGON31'\np138\ng26\n(S'Variable_Type'\n(I2\nttRp139\nsS'Y:VBus56 - CBIGUG32'\np140\ng26\n(S'Variable_Type'\n(I2\nttRp141\nsS'Y:PMachine42 - CSISCO21'\np142\ng26\n(S'Variable_Type'\n(I2\nttRp143\nsS'Y:PMachine138 - CLUCCI39'\np144\ng26\n(S'Variable_Type'\n(I2\nttRp145\nsS'Y:PMachine112 - CSAMPO31'\np146\ng26\n(S'Variable_Type'\n(I2\nttRp147\nsS'Y:VBus105 - CPROPR32'\np148\ng26\n(S'Variable_Type'\n(I2\nttRp149\nsS'Y:VBus1 - CBONIF11'\np150\ng26\n(S'Variable_Type'\n(I2\nttRp151\nsS'Y:VBus12 - CBASTI21'\np152\ng26\n(S'Variable_Type'\n(I2\nttRp153\nsS'Y:PMachine129 - CVAZZI310'\np154\ng26\n(S'Variable_Type'\n(I2\nttRp155\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np156\ng26\n(S'Variable_Type'\n(I2\nttRp157\nsS'Y:VBus35 - CPORTO21'\np158\ng26\n(S'Variable_Type'\n(I2\nttRp159\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np160\ng26\n(S'Variable_Type'\n(I2\nttRp161\nsS'Y:VBus54 - CBASTI32'\np162\ng26\n(S'Variable_Type'\n(I2\nttRp163\nsS'Y:VBus69 - CCASAM37'\np164\ng26\n(S'Variable_Type'\n(I2\nttRp165\nsS'Y:VBus45 - CTOLLA21'\np166\ng26\n(S'Variable_Type'\n(I2\nttRp167\nsS'Y:PMachine115 - CTAGLI31'\np168\ng26\n(S'Variable_Type'\n(I2\nttRp169\nsS'Y:VBus43 - CSOVEN21'\np170\ng26\n(S'Variable_Type'\n(I2\nttRp171\nsS'Y:VBus76 - CCORTE31'\np172\ng26\n(S'Variable_Type'\n(I2\nttRp173\nsS'Y:VBus75 - CCORSC31'\np174\ng26\n(S'Variable_Type'\n(I2\nttRp175\nsS'Y:PMachine78 - CFURIA31'\np176\ng26\n(S'Variable_Type'\n(I2\nttRp177\nsS'Y:VBus127 - CVAZZI38'\np178\ng26\n(S'Variable_Type'\n(I2\nttRp179\nsS'Y:VBus115 - CTAGLI31'\np180\ng26\n(S'Variable_Type'\n(I2\nttRp181\nsS'Y:Load 61 - CCALVI31'\np182\ng26\n(S'Variable_Type'\n(I2\nttRp183\nsS'Y:VBus55 - CBIGUG31'\np184\ng26\n(S'Variable_Type'\n(I2\nttRp185\nsS'Y:Load 42 - CSISCO21'\np186\ng26\n(S'Variable_Type'\n(I2\nttRp187\nsS'Y:VBus72 - CCASTI31'\np188\ng26\n(S'Variable_Type'\n(I2\nttRp189\nsS'Y:Load 37 - CRIZZA21'\np190\ng26\n(S'Variable_Type'\n(I2\nttRp191\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np192\ng26\n(S'Variable_Type'\n(I2\nttRp193\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np194\ng26\n(S'Variable_Type'\n(I2\nttRp195\nsS'Y:PMachine137 - CLUCCI38'\np196\ng26\n(S'Variable_Type'\n(I2\nttRp197\nsS'Y:PMachine67 - CCASAM35'\np198\ng26\n(S'Variable_Type'\n(I2\nttRp199\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np200\ng26\n(S'Variable_Type'\n(I2\nttRp201\nsS'Y:VBus31 - CMOROS21'\np202\ng26\n(S'Variable_Type'\n(I2\nttRp203\nsS'Y:VBus103 - CPORTO32'\np204\ng26\n(S'Variable_Type'\n(I2\nttRp205\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np206\ng26\n(S'Variable_Type'\n(I2\nttRp207\nsS'Y:PMachine128 - CVAZZI39'\np208\ng26\n(S'Variable_Type'\n(I2\nttRp209\nsS'Y:PMachine72 - CCASTI31'\np210\ng26\n(S'Variable_Type'\n(I2\nttRp211\nsS'Y:VBus27 - CILERO21'\np212\ng26\n(S'Variable_Type'\n(I2\nttRp213\nsS'Y:VBus11 - CASPRE21'\np214\ng26\n(S'Variable_Type'\n(I2\nttRp215\nsS'Y:PMachine75 - CCORSC31'\np216\ng26\n(S'Variable_Type'\n(I2\nttRp217\nsS'Y:Load 51 - CASPRE31'\np218\ng26\n(S'Variable_Type'\n(I2\nttRp219\nsS'Y:PMachine61 - CCALVI31'\np220\ng26\n(S'Variable_Type'\n(I2\nttRp221\nsS'Y:VBus51 - CASPRE31'\np222\ng26\n(S'Variable_Type'\n(I2\nttRp223\nsS'Y:VBus114 - CSOVEN31'\np224\ng26\n(S'Variable_Type'\n(I2\nttRp225\nsS'Y:VBus116 - CTOLLA31'\np226\ng26\n(S'Variable_Type'\n(I2\nttRp227\nsS'Y:Load 86 - CLUCCI31'\np228\ng26\n(S'Variable_Type'\n(I2\nttRp229\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np230\ng26\n(S'Variable_Type'\n(I2\nttRp231\nsS'Y:PMachine116 - CTOLLA31'\np232\ng26\n(S'Variable_Type'\n(I2\nttRp233\nsS'Y:PMachine104 - CPROPR31'\np234\ng26\n(S'Variable_Type'\n(I2\nttRp235\nsS'Y:VBus128 - CVAZZI39'\np236\ng26\n(S'Variable_Type'\n(I2\nttRp237\nsS'Y:PMachine136 - CLUCCI37'\np238\ng26\n(S'Variable_Type'\n(I2\nttRp239\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np240\ng26\n(S'Variable_Type'\n(I2\nttRp241\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np242\ng26\n(S'Variable_Type'\n(I2\nttRp243\nsS'Y:PMachine68 - CCASAM36'\np244\ng26\n(S'Variable_Type'\n(I2\nttRp245\nsS'Y:PMachine29 - CLUCCI21'\np246\ng26\n(S'Variable_Type'\n(I2\nttRp247\nsS'Y:VBus42 - CSISCO21'\np248\ng26\n(S'Variable_Type'\n(I2\nttRp249\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np250\ng26\n(S'Variable_Type'\n(I2\nttRp251\nsS'Y:VBus14 - CBONIF21'\np252\ng26\n(S'Variable_Type'\n(I2\nttRp253\nsS'Y:VBus73 - CCASTI32'\np254\ng26\n(S'Variable_Type'\n(I2\nttRp255\nsS'Y:VBus64 - CCASAM32'\np256\ng26\n(S'Variable_Type'\n(I2\nttRp257\nsS'Y:PMachine14 - CBONIF21'\np258\ng26\n(S'Variable_Type'\n(I2\nttRp259\nsS'Y:PMachine62 - CCALVI32'\np260\ng26\n(S'Variable_Type'\n(I2\nttRp261\nsS'Y:VBus133 - CVAZZI314'\np262\ng26\n(S'Variable_Type'\n(I2\nttRp263\nsS'Y:VBus63 - CCASAM31'\np264\ng26\n(S'Variable_Type'\n(I2\nttRp265\nsS'Y:PMachine101 - CPIETR31'\np266\ng26\n(S'Variable_Type'\n(I2\nttRp267\nsS'Y:%Losses'\np268\ng26\n(S'Variable_Type'\n(I2\nttRp269\nsS'Y:VBus85 - CLORET32'\np270\ng26\n(S'Variable_Type'\n(I2\nttRp271\nsS'Y:Load 115 - CTAGLI31'\np272\ng26\n(S'Variable_Type'\n(I2\nttRp273\nsS'Y:VBus129 - CVAZZI310'\np274\ng26\n(S'Variable_Type'\n(I2\nttRp275\nsS'Y:VBus101 - CPIETR31'\np276\ng26\n(S'Variable_Type'\n(I2\nttRp277\nsS'Y:PMachine106 - CRIZZA31'\np278\ng26\n(S'Variable_Type'\n(I2\nttRp279\nsS'Y:VBus132 - CVAZZI313'\np280\ng26\n(S'Variable_Type'\n(I2\nttRp281\nsS'Y:PMachine118 - CTOLLA33'\np282\ng26\n(S'Variable_Type'\n(I2\nttRp283\nsS'Y:VBus19 - CCASTI21'\np284\ng26\n(S'Variable_Type'\n(I2\nttRp285\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np286\ng26\n(S'Variable_Type'\n(I2\nttRp287\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np288\ng26\n(S'Variable_Type'\n(I2\nttRp289\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np290\ng26\n(S'Variable_Type'\n(I2\nttRp291\nsS'Y:PMachine53 - CBASTI31'\np292\ng26\n(S'Variable_Type'\n(I2\nttRp293\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np294\ng26\n(S'Variable_Type'\n(I2\nttRp295\nsS'Y:VBus15 - CBONIF22'\np296\ng26\n(S'Variable_Type'\n(I2\nttRp297\nsS'Y:PMachine47 - CVAZZI21'\np298\ng26\n(S'Variable_Type'\n(I2\nttRp299\nsS'Y:VBus123 - CVAZZI34'\np300\ng26\n(S'Variable_Type'\n(I2\nttRp301\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np302\ng26\n(S'Variable_Type'\n(I2\nttRp303\nsS'Y:VBus60 - CCALDA32'\np304\ng26\n(S'Variable_Type'\n(I2\nttRp305\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np306\ng26\n(S'Variable_Type'\n(I2\nttRp307\nsS'Y:VBus65 - CCASAM33'\np308\ng26\n(S'Variable_Type'\n(I2\nttRp309\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np310\ng26\n(S'Variable_Type'\n(I2\nttRp311\nsS'Y:PMachine139 - CLUCCI310'\np312\ng26\n(S'Variable_Type'\n(I2\nttRp313\nsS'Y:VBus112 - CSAMPO31'\np314\ng26\n(S'Variable_Type'\n(I2\nttRp315\nsS'Y:VBus68 - CCASAM36'\np316\ng26\n(S'Variable_Type'\n(I2\nttRp317\nsS'Y:Load 55 - CBIGUG31'\np318\ng26\n(S'Variable_Type'\n(I2\nttRp319\nsS'Y:Max%A'\np320\ng26\n(S'Variable_Type'\n(I2\nttRp321\nsS'Y:NbeTransit_0.9-1'\np322\ng26\n(S'Variable_Type'\n(I2\nttRp323\nsS'Y:VBus24 - CFURIA21'\np324\ng26\n(S'Variable_Type'\n(I2\nttRp325\nsS'Y:VBus23 - CCORTE22'\np326\ng26\n(S'Variable_Type'\n(I2\nttRp327\nsS'Y:VBus18 - CCASAM21'\np328\ng26\n(S'Variable_Type'\n(I2\nttRp329\nsS'Y:VBus40 - CSTMAR21'\np330\ng26\n(S'Variable_Type'\n(I2\nttRp331\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np332\ng26\n(S'Variable_Type'\n(I2\nttRp333\nsS'Y:PMachine124 - CVAZZI35'\np334\ng26\n(S'Variable_Type'\n(I2\nttRp335\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np336\ng26\n(S'Variable_Type'\n(I2\nttRp337\nsS'Y:PMachine117 - CTOLLA32'\np338\ng26\n(S'Variable_Type'\n(I2\nttRp339\nsS'Y:Load 82 - CILERO31'\np340\ng26\n(S'Variable_Type'\n(I2\nttRp341\nsS'Y:VBus33 - COLETT21'\np342\ng26\n(S'Variable_Type'\n(I2\nttRp343\nsS'Y:VBus32 - COCANA21'\np344\ng26\n(S'Variable_Type'\n(I2\nttRp345\nsS'Y:PMachine121 - CVAZZI32'\np346\ng26\n(S'Variable_Type'\n(I2\nttRp347\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np348\ng26\n(S'Variable_Type'\n(I2\nttRp349\nsS'Y:VBus59 - CCALDA31'\np350\ng26\n(S'Variable_Type'\n(I2\nttRp351\nsS'Y:VBus82 - CILERO31'\np352\ng26\n(S'Variable_Type'\n(I2\nttRp353\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np354\ng26\n(S'Variable_Type'\n(I2\nttRp355\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np356\ng26\n(S'Variable_Type'\n(I2\nttRp357\nsS'Y:VBus37 - CRIZZA21'\np358\ng26\n(S'Variable_Type'\n(I2\nttRp359\nsS'Y:PMachine73 - CCASTI32'\np360\ng26\n(S'Variable_Type'\n(I2\nttRp361\nsS'Y:PMachine86 - CLUCCI31'\np362\ng26\n(S'Variable_Type'\n(I2\nttRp363\nsS'Y:Load 53 - CBASTI31'\np364\ng26\n(S'Variable_Type'\n(I2\nttRp365\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np366\ng26\n(S'Variable_Type'\n(I2\nttRp367\nsS'Y:VBus21 - CCORSC21'\np368\ng26\n(S'Variable_Type'\n(I2\nttRp369\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np370\ng26\n(S'Variable_Type'\n(I2\nttRp371\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np372\ng26\n(S'Variable_Type'\n(I2\nttRp373\nsS'Y:PMachine126 - CVAZZI37'\np374\ng26\n(S'Variable_Type'\n(I2\nttRp375\nsS'Y:PMachine64 - CCASAM32'\np376\ng26\n(S'Variable_Type'\n(I2\nttRp377\nsS'Y:VBus67 - CCASAM35'\np378\ng26\n(S'Variable_Type'\n(I2\nttRp379\nsS'Y:VBus53 - CBASTI31'\np380\ng26\n(S'Variable_Type'\n(I2\nttRp381\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np382\ng26\n(S'Variable_Type'\n(I2\nttRp383\nsS'Y:VBus61 - CCALVI31'\np384\ng26\n(S'Variable_Type'\n(I2\nttRp385\nsS'Y:VBus93 - COCANA32'\np386\ng26\n(S'Variable_Type'\n(I2\nttRp387\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np388\ng26\n(S'Variable_Type'\n(I2\nttRp389\nsS'Y:VBus104 - CPROPR31'\np390\ng26\n(S'Variable_Type'\n(I2\nttRp391\nsS'Y:VBus48 - CZSSS621'\np392\ng26\n(S'Variable_Type'\n(I2\nttRp393\nsS'Y:PMachine85 - CLORET32'\np394\ng26\n(S'Variable_Type'\n(I2\nttRp395\nsS'Y:VBus74 - CCERVI31'\np396\ng26\n(S'Variable_Type'\n(I2\nttRp397\nsS'X:ProdPV%Pnom'\np398\ng26\n(S'Variable_Type'\n(I2\nttRp399\nsS'Y:VBus89 - CLUCCI34'\np400\ng26\n(S'Variable_Type'\n(I2\nttRp401\nsS'Y:Load 100 - COLETT31'\np402\ng26\n(S'Variable_Type'\n(I2\nttRp403\nsS'Y:PMachine54 - CBASTI32'\np404\ng26\n(S'Variable_Type'\n(I2\nttRp405\nsS'Y:VBus138 - CLUCCI39'\np406\ng26\n(S'Variable_Type'\n(I2\nttRp407\nsS'Y:VBus39 - CSTLUC21'\np408\ng26\n(S'Variable_Type'\n(I2\nttRp409\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np410\ng26\n(S'Variable_Type'\n(I2\nttRp411\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np412\ng26\n(S'Variable_Type'\n(I2\nttRp413\nsS'Y:Load 78 - CFURIA31'\np414\ng26\n(S'Variable_Type'\n(I2\nttRp415\nsS'Y:VBus28 - CLORET21'\np416\ng26\n(S'Variable_Type'\n(I2\nttRp417\nsS'Y:PMachine105 - CPROPR32'\np418\ng26\n(S'Variable_Type'\n(I2\nttRp419\nsS'Y:VBus96 - COCANA35'\np420\ng26\n(S'Variable_Type'\n(I2\nttRp421\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np422\ng26\n(S'Variable_Type'\n(I2\nttRp423\nsS'Y:PMachine18 - CCASAM21'\np424\ng26\n(S'Variable_Type'\n(I2\nttRp425\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np426\ng26\n(S'Variable_Type'\n(I2\nttRp427\nsS'Y:VBus13 - CBIGUG21'\np428\ng26\n(S'Variable_Type'\n(I2\nttRp429\nsS'Y:VBus92 - COCANA31'\np430\ng26\n(S'Variable_Type'\n(I2\nttRp431\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np432\ng26\n(S'Variable_Type'\n(I2\nttRp433\nsS'Y:Load 57 - CBONIF31'\np434\ng26\n(S'Variable_Type'\n(I2\nttRp435\nsS'Y:VBus58 - CBONIF32'\np436\ng26\n(S'Variable_Type'\n(I2\nttRp437\nsS'Y:VBus84 - CLORET31'\np438\ng26\n(S'Variable_Type'\n(I2\nttRp439\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np440\ng26\n(S'Variable_Type'\n(I2\nttRp441\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np442\ng26\n(S'Variable_Type'\n(I2\nttRp443\nsS'Y:VBus97 - COCANA36'\np444\ng26\n(S'Variable_Type'\n(I2\nttRp445\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np446\ng26\n(S'Variable_Type'\n(I2\nttRp447\nsS'Y:VBus79 - CFURIA32'\np448\ng26\n(S'Variable_Type'\n(I2\nttRp449\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np450\ng26\n(S'Variable_Type'\n(I2\nttRp451\nsS'Y:Load 110 - CSTLUC31'\np452\ng26\n(S'Variable_Type'\n(I2\nttRp453\nsS'Y:VBus80 - CGHISO31'\np454\ng26\n(S'Variable_Type'\n(I2\nttRp455\nsS'Y:PMachine114 - CSOVEN31'\np456\ng26\n(S'Variable_Type'\n(I2\nttRp457\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np458\ng26\n(S'Variable_Type'\n(I2\nttRp459\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np460\ng26\n(S'Variable_Type'\n(I2\nttRp461\nsS'Y:PMachine93 - COCANA32'\np462\ng26\n(S'Variable_Type'\n(I2\nttRp463\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np464\ng26\n(S'Variable_Type'\n(I2\nttRp465\nsS'Y:VBus87 - CLUCCI32'\np466\ng26\n(S'Variable_Type'\n(I2\nttRp467\nsS'Y:VBus62 - CCALVI32'\np468\ng26\n(S'Variable_Type'\n(I2\nttRp469\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np470\ng26\n(S'Variable_Type'\n(I2\nttRp471\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np472\ng26\n(S'Variable_Type'\n(I2\nttRp473\nsS'Y:VBus81 - CGHISO32'\np474\ng26\n(S'Variable_Type'\n(I2\nttRp475\nsS'Y:PMachine63 - CCASAM31'\np476\ng26\n(S'Variable_Type'\n(I2\nttRp477\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np478\ng26\n(S'Variable_Type'\n(I2\nttRp479\nsS'Y:VBus86 - CLUCCI31'\np480\ng26\n(S'Variable_Type'\n(I2\nttRp481\nsS'X:Load(pu)'\np482\ng26\n(S'Variable_Type'\n(I2\nttRp483\nsS'Y:VBus95 - COCANA34'\np484\ng26\n(S'Variable_Type'\n(I2\nttRp485\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np486\ng26\n(S'Variable_Type'\n(I2\nttRp487\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np488\ng26\n(S'Variable_Type'\n(I2\nttRp489\nsS'Y:Load 95 - COCANA34'\np490\ng26\n(S'Variable_Type'\n(I2\nttRp491\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np492\ng26\n(S'Variable_Type'\n(I2\nttRp493\nsS'Y:PMachine90 - CMOROS31'\np494\ng26\n(S'Variable_Type'\n(I2\nttRp495\nsS'Y:Load 101 - CPIETR31'\np496\ng26\n(S'Variable_Type'\n(I2\nttRp497\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np498\ng26\n(S'Variable_Type'\n(I2\nttRp499\nsS'Y:PMachine132 - CVAZZI313'\np500\ng26\n(S'Variable_Type'\n(I2\nttRp501\nsS'Y:VBus125 - CVAZZI36'\np502\ng26\n(S'Variable_Type'\n(I2\nttRp503\nsS'Y:VBus135 - CLUCCI36'\np504\ng26\n(S'Variable_Type'\n(I2\nttRp505\nsS'Y:VBus47 - CVAZZI21'\np506\ng26\n(S'Variable_Type'\n(I2\nttRp507\nsS'Y:VBus94 - COCANA33'\np508\ng26\n(S'Variable_Type'\n(I2\nttRp509\nsS'Y:VBus17 - CCALVI21'\np510\ng26\n(S'Variable_Type'\n(I2\nttRp511\nsS'Y:VBus36 - CPROPR21'\np512\ng26\n(S'Variable_Type'\n(I2\nttRp513\nsS'Y:Load 90 - CMOROS31'\np514\ng26\n(S'Variable_Type'\n(I2\nttRp515\nsS'Y:VBus120 - CVAZZI31'\np516\ng26\n(S'Variable_Type'\n(I2\nttRp517\nsS'Y:VBus52 - CASPRE32'\np518\ng26\n(S'Variable_Type'\n(I2\nttRp519\nsS'Y:VBus25 - CFURIA22'\np520\ng26\n(S'Variable_Type'\n(I2\nttRp521\nsS'Y:Load 76 - CCORTE31'\np522\ng26\n(S'Variable_Type'\n(I2\nttRp523\nsS'Y:PMachine69 - CCASAM37'\np524\ng26\n(S'Variable_Type'\n(I2\nttRp525\nsS'Y:Load 74 - CCERVI31'\np526\ng26\n(S'Variable_Type'\n(I2\nttRp527\nsS'Y:PMachine92 - COCANA31'\np528\ng26\n(S'Variable_Type'\n(I2\nttRp529\nsS'Y:PMachine102 - CPORTO31'\np530\ng26\n(S'Variable_Type'\n(I2\nttRp531\nsS'Y:PMachine122 - CVAZZI33'\np532\ng26\n(S'Variable_Type'\n(I2\nttRp533\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np534\ng26\n(S'Variable_Type'\n(I2\nttRp535\nsS'Y:PMachine77 - CCORTE32'\np536\ng26\n(S'Variable_Type'\n(I2\nttRp537\nsS'Y:NbeTension'\np538\ng26\n(S'Variable_Type'\n(I2\nttRp539\nsS'Y:VBus126 - CVAZZI37'\np540\ng26\n(S'Variable_Type'\n(I2\nttRp541\nsS'Y:PMachine60 - CCALDA32'\np542\ng26\n(S'Variable_Type'\n(I2\nttRp543\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np544\ng26\n(S'Variable_Type'\n(I2\nttRp545\nsS'Y:VBus20 - CCERVI21'\np546\ng26\n(S'Variable_Type'\n(I2\nttRp547\nsS'Y:VBus119 - CTRAVO31'\np548\ng26\n(S'Variable_Type'\n(I2\nttRp549\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np550\ng26\n(S'Variable_Type'\n(I2\nttRp551\nsS'Y:VBus139 - CLUCCI310'\np552\ng26\n(S'Variable_Type'\n(I2\nttRp553\nsS'Y:VBus106 - CRIZZA31'\np554\ng26\n(S'Variable_Type'\n(I2\nttRp555\nsS'Y:PMachine66 - CCASAM34'\np556\ng26\n(S'Variable_Type'\n(I2\nttRp557\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np558\ng26\n(S'Variable_Type'\n(I2\nttRp559\nsS'Y:VBus136 - CLUCCI37'\np560\ng26\n(S'Variable_Type'\n(I2\nttRp561\nsS'Y:VBus90 - CMOROS31'\np562\ng26\n(S'Variable_Type'\n(I2\nttRp563\nsS'X:lineOff#'\np564\ng26\n(S'Variable_Type'\n(I2\nttRp565\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np566\ng26\n(S'Variable_Type'\n(I2\nttRp567\nsS'Y:VBus108 - CSAGON31'\np568\ng26\n(S'Variable_Type'\n(I2\nttRp569\nsS'Y:VBus137 - CLUCCI38'\np570\ng26\n(S'Variable_Type'\n(I2\nttRp571\nsS'Y:VBus130 - CVAZZI311'\np572\ng26\n(S'Variable_Type'\n(I2\nttRp573\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np574\ng26\n(S'Variable_Type'\n(I2\nttRp575\nsS'Y:VBus46 - CTRAVO21'\np576\ng26\n(S'Variable_Type'\n(I2\nttRp577\nsS'Y:VBus113 - CSAMPO32'\np578\ng26\n(S'Variable_Type'\n(I2\nttRp579\nsS'Y:PMachine133 - CVAZZI314'\np580\ng26\n(S'Variable_Type'\n(I2\nttRp581\nsS'Y:PMachine65 - CCASAM33'\np582\ng26\n(S'Variable_Type'\n(I2\nttRp583\nsS'Y:VBus78 - CFURIA31'\np584\ng26\n(S'Variable_Type'\n(I2\nttRp585\nsS'Y:VBus26 - CGHISO21'\np586\ng26\n(S'Variable_Type'\n(I2\nttRp587\nsS'Y:VBus121 - CVAZZI32'\np588\ng26\n(S'Variable_Type'\n(I2\nttRp589\nsS'Y:PMachine81 - CGHISO32'\np590\ng26\n(S'Variable_Type'\n(I2\nttRp591\nsS'Y:PMachine97 - COCANA36'\np592\ng26\n(S'Variable_Type'\n(I2\nttRp593\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np594\ng26\n(S'Variable_Type'\n(I2\nttRp595\nsS'Y:PMachine83 - CILERO32'\np596\ng26\n(S'Variable_Type'\n(I2\nttRp597\nsS'Y:VBus83 - CILERO32'\np598\ng26\n(S'Variable_Type'\n(I2\nttRp599\nsS'Y:VBus66 - CCASAM34'\np600\ng26\n(S'Variable_Type'\n(I2\nttRp601\nsS'Y:PMachine1 - CBONIF11'\np602\ng26\n(S'Variable_Type'\n(I2\nttRp603\nsS'Y:VBus111 - CSTMAR31'\np604\ng26\n(S'Variable_Type'\n(I2\nttRp605\nsS'Y:VBus124 - CVAZZI35'\np606\ng26\n(S'Variable_Type'\n(I2\nttRp607\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np608\ng26\n(S'Variable_Type'\n(I2\nttRp609\nsS'Y:PMachine131 - CVAZZI312'\np610\ng26\n(S'Variable_Type'\n(I2\nttRp611\nsS'Y:VBus44 - CTAGLI21'\np612\ng26\n(S'Variable_Type'\n(I2\nttRp613\nsS'Y:VBus88 - CLUCCI33'\np614\ng26\n(S'Variable_Type'\n(I2\nttRp615\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np616\ng26\n(S'Variable_Type'\n(I2\nttRp617\nsS'Y:VBus38 - CSAGON21'\np618\ng26\n(S'Variable_Type'\n(I2\nttRp619\nsS'Y:VBus29 - CLUCCI21'\np620\ng26\n(S'Variable_Type'\n(I2\nttRp621\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np622\ng26\n(S'Variable_Type'\n(I2\nttRp623\nsS'Y:VBus110 - CSTLUC31'\np624\ng26\n(S'Variable_Type'\n(I2\nttRp625\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np626\ng26\n(S'Variable_Type'\n(I2\nttRp627\nssS'metas'\np628\n(dp629\nsS'values'\np630\n(dp631\nS'attribute'\np632\n(S'Y:NbeTransit_0.9-1'\np633\ng323\ntp634\nsS'yaxisTitle'\np635\n(S'frequency'\np636\nI0\ntp637\nsS'xaxisTitle'\np638\n(g633\ng323\ntp639\nsS'mainTitle'\np640\n(S''\nI0\ntp641\nsS'yPaxisTitle'\np642\n(S''\nI0\ntp643\nsS'targetValue'\np644\n(NI-2\ntp645\nsS'visibleOutcomes'\np646\n((lI-2\ntp647\nssS'time'\np648\nF1370016690.9660001\nsba(iOWContexts\nContext\np649\n(dp650\ng630\n(dp651\nS'attribute'\np652\n(S'XProdEolienne%Pnom'\np653\ng26\n(S'Variable_Type'\n(I2\nttRp654\ntp655\nsS'yaxisTitle'\np656\n(g636\nI0\ntp657\nsS'xaxisTitle'\np658\n(g653\ng654\ntp659\nsS'mainTitle'\np660\n(S''\nI0\ntp661\nsS'yPaxisTitle'\np662\n(S''\nI0\ntp663\nsS'targetValue'\np664\n(NI-2\ntp665\nsS'visibleOutcomes'\np666\n((lI-2\ntp667\nssg23\n(dp668\nS'Y:PMachine134 - CLUCCI35'\np669\ng26\n(S'Variable_Type'\n(I2\nttRp670\nsS'Y:VBus77 - CCORTE32'\np671\ng26\n(S'Variable_Type'\n(I2\nttRp672\nsS'Y:VBus134 - CLUCCI35'\np673\ng26\n(S'Variable_Type'\n(I2\nttRp674\nsS'Y:VBus109 - CSAGON32'\np675\ng26\n(S'Variable_Type'\n(I2\nttRp676\nsS'Y:VBus102 - CPORTO31'\np677\ng26\n(S'Variable_Type'\n(I2\nttRp678\nsS'Y:VBus18 - CCASAM21'\np679\ng26\n(S'Variable_Type'\n(I2\nttRp680\nsS'Y:VBus114 - CSOVEN31'\np681\ng26\n(S'Variable_Type'\n(I2\nttRp682\nsS'Y:VBus83 - CILERO32'\np683\ng26\n(S'Variable_Type'\n(I2\nttRp684\nsS'Y:VBus117 - CTOLLA32'\np685\ng26\n(S'Variable_Type'\n(I2\nttRp686\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np687\ng26\n(S'Variable_Type'\n(I2\nttRp688\nsS'Y:PMachine87 - CLUCCI32'\np689\ng26\n(S'Variable_Type'\n(I2\nttRp690\nsS'Y:PMachine113 - CSAMPO32'\np691\ng26\n(S'Variable_Type'\n(I2\nttRp692\nsS'Y:Load 84 - CLORET31'\np693\ng26\n(S'Variable_Type'\n(I2\nttRp694\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np695\ng26\n(S'Variable_Type'\n(I2\nttRp696\nsS'Y:Load 80 - CGHISO31'\np697\ng26\n(S'Variable_Type'\n(I2\nttRp698\nsS'Y:PMachine125 - CVAZZI36'\np699\ng26\n(S'Variable_Type'\n(I2\nttRp700\nsS'Y:VBus116 - CTOLLA31'\np701\ng26\n(S'Variable_Type'\n(I2\nttRp702\nsS'Y:PMachine88 - CLUCCI33'\np703\ng26\n(S'Variable_Type'\n(I2\nttRp704\nsS'Y:PMachine124 - CVAZZI35'\np705\ng26\n(S'Variable_Type'\n(I2\nttRp706\nsS'Y:PMachine111 - CSTMAR31'\np707\ng26\n(S'Variable_Type'\n(I2\nttRp708\nsS'Y:NbeTransit'\np709\ng26\n(S'Variable_Type'\n(I2\nttRp710\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np711\ng26\n(S'Variable_Type'\n(I2\nttRp712\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np713\ng26\n(S'Variable_Type'\n(I2\nttRp714\nsS'Y:PMachine130 - CVAZZI311'\np715\ng26\n(S'Variable_Type'\n(I2\nttRp716\nsS'Y:PMachine127 - CVAZZI38'\np717\ng26\n(S'Variable_Type'\n(I2\nttRp718\nsS'Y:VBus131 - CVAZZI312'\np719\ng26\n(S'Variable_Type'\n(I2\nttRp720\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np721\ng26\n(S'Variable_Type'\n(I2\nttRp722\nsS'Y:PMachine123 - CVAZZI34'\np723\ng26\n(S'Variable_Type'\n(I2\nttRp724\nsS'Y:VBus118 - CTOLLA33'\np725\ng26\n(S'Variable_Type'\n(I2\nttRp726\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np727\ng26\n(S'Variable_Type'\n(I2\nttRp728\nsS'Y:PMachine58 - CBONIF32'\np729\ng26\n(S'Variable_Type'\n(I2\nttRp730\nsS'Y:VBus90 - CMOROS31'\np731\ng26\n(S'Variable_Type'\n(I2\nttRp732\nsS'Y:Load 104 - CPROPR31'\np733\ng26\n(S'Variable_Type'\n(I2\nttRp734\nsS'Y:PMachine30 - CLUCCI22'\np735\ng26\n(S'Variable_Type'\n(I2\nttRp736\nsS'Y:VBus100 - COLETT31'\np737\ng26\n(S'Variable_Type'\n(I2\nttRp738\nsS'Y:PProdTot'\np739\ng26\n(S'Variable_Type'\n(I2\nttRp740\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np741\ng26\n(S'Variable_Type'\n(I2\nttRp742\nsS'Y:VBus57 - CBONIF31'\np743\ng26\n(S'Variable_Type'\n(I2\nttRp744\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np745\ng26\n(S'Variable_Type'\n(I2\nttRp746\nsS'Y:PMachine131 - CVAZZI312'\np747\ng26\n(S'Variable_Type'\n(I2\nttRp748\nsS'Y:PMachine109 - CSAGON32'\np749\ng26\n(S'Variable_Type'\n(I2\nttRp750\nsS'Y:PMachine135 - CLUCCI36'\np751\ng26\n(S'Variable_Type'\n(I2\nttRp752\nsS'Y:VBus30 - CLUCCI22'\np753\ng26\n(S'Variable_Type'\n(I2\nttRp754\nsS'Y:VBus122 - CVAZZI33'\np755\ng26\n(S'Variable_Type'\n(I2\nttRp756\nsS'Y:VBus22 - CCORTE21'\np757\ng26\n(S'Variable_Type'\n(I2\nttRp758\nsS'Y:PMachine89 - CLUCCI34'\np759\ng26\n(S'Variable_Type'\n(I2\nttRp760\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np761\ng26\n(S'Variable_Type'\n(I2\nttRp762\nsS'Y:PMachine107 - CRIZZA32'\np763\ng26\n(S'Variable_Type'\n(I2\nttRp764\nsS'Y:VBus16 - CCALDA21'\np765\ng26\n(S'Variable_Type'\n(I2\nttRp766\nsS'Y:Load 102 - CPORTO31'\np767\ng26\n(S'Variable_Type'\n(I2\nttRp768\nsS'Y:VBus107 - CRIZZA32'\np769\ng26\n(S'Variable_Type'\n(I2\nttRp770\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np771\ng26\n(S'Variable_Type'\n(I2\nttRp772\nsS'Y:VBus41 - CSAMPO21'\np773\ng26\n(S'Variable_Type'\n(I2\nttRp774\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np775\ng26\n(S'Variable_Type'\n(I2\nttRp776\nsS'Y:VBus34 - CPIETR21'\np777\ng26\n(S'Variable_Type'\n(I2\nttRp778\nsS'Y:Load 108 - CSAGON31'\np779\ng26\n(S'Variable_Type'\n(I2\nttRp780\nsS'Y:VBus56 - CBIGUG32'\np781\ng26\n(S'Variable_Type'\n(I2\nttRp782\nsS'Y:PMachine42 - CSISCO21'\np783\ng26\n(S'Variable_Type'\n(I2\nttRp784\nsS'Y:PMachine138 - CLUCCI39'\np785\ng26\n(S'Variable_Type'\n(I2\nttRp786\nsS'Y:PMachine112 - CSAMPO31'\np787\ng26\n(S'Variable_Type'\n(I2\nttRp788\nsS'Y:VBus105 - CPROPR32'\np789\ng26\n(S'Variable_Type'\n(I2\nttRp790\nsS'Y:VBus1 - CBONIF11'\np791\ng26\n(S'Variable_Type'\n(I2\nttRp792\nsS'Y:VBus12 - CBASTI21'\np793\ng26\n(S'Variable_Type'\n(I2\nttRp794\nsS'Y:PMachine129 - CVAZZI310'\np795\ng26\n(S'Variable_Type'\n(I2\nttRp796\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np797\ng26\n(S'Variable_Type'\n(I2\nttRp798\nsS'Y:VBus35 - CPORTO21'\np799\ng26\n(S'Variable_Type'\n(I2\nttRp800\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np801\ng26\n(S'Variable_Type'\n(I2\nttRp802\nsS'Y:VBus54 - CBASTI32'\np803\ng26\n(S'Variable_Type'\n(I2\nttRp804\nsS'Y:VBus69 - CCASAM37'\np805\ng26\n(S'Variable_Type'\n(I2\nttRp806\nsS'Y:VBus45 - CTOLLA21'\np807\ng26\n(S'Variable_Type'\n(I2\nttRp808\nsS'Y:PMachine115 - CTAGLI31'\np809\ng26\n(S'Variable_Type'\n(I2\nttRp810\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np811\ng26\n(S'Variable_Type'\n(I2\nttRp812\nsS'Y:VBus43 - CSOVEN21'\np813\ng26\n(S'Variable_Type'\n(I2\nttRp814\nsS'Y:VBus76 - CCORTE31'\np815\ng26\n(S'Variable_Type'\n(I2\nttRp816\nsS'Y:VBus75 - CCORSC31'\np817\ng26\n(S'Variable_Type'\n(I2\nttRp818\nsS'Y:PMachine78 - CFURIA31'\np819\ng26\n(S'Variable_Type'\n(I2\nttRp820\nsS'Y:VBus127 - CVAZZI38'\np821\ng26\n(S'Variable_Type'\n(I2\nttRp822\nsS'Y:VBus115 - CTAGLI31'\np823\ng26\n(S'Variable_Type'\n(I2\nttRp824\nsS'Y:Load 61 - CCALVI31'\np825\ng26\n(S'Variable_Type'\n(I2\nttRp826\nsS'Y:VBus55 - CBIGUG31'\np827\ng26\n(S'Variable_Type'\n(I2\nttRp828\nsS'Y:Load 42 - CSISCO21'\np829\ng26\n(S'Variable_Type'\n(I2\nttRp830\nsS'Y:VBus72 - CCASTI31'\np831\ng26\n(S'Variable_Type'\n(I2\nttRp832\nsS'Y:Load 37 - CRIZZA21'\np833\ng26\n(S'Variable_Type'\n(I2\nttRp834\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np835\ng26\n(S'Variable_Type'\n(I2\nttRp836\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np837\ng26\n(S'Variable_Type'\n(I2\nttRp838\nsS'Y:PMachine137 - CLUCCI38'\np839\ng26\n(S'Variable_Type'\n(I2\nttRp840\nsS'Y:PMachine67 - CCASAM35'\np841\ng26\n(S'Variable_Type'\n(I2\nttRp842\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np843\ng26\n(S'Variable_Type'\n(I2\nttRp844\nsS'Y:VBus31 - CMOROS21'\np845\ng26\n(S'Variable_Type'\n(I2\nttRp846\nsS'Y:VBus103 - CPORTO32'\np847\ng26\n(S'Variable_Type'\n(I2\nttRp848\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np849\ng26\n(S'Variable_Type'\n(I2\nttRp850\nsS'Y:PMachine14 - CBONIF21'\np851\ng26\n(S'Variable_Type'\n(I2\nttRp852\nsS'Y:PMachine72 - CCASTI31'\np853\ng26\n(S'Variable_Type'\n(I2\nttRp854\nsS'Y:VBus27 - CILERO21'\np855\ng26\n(S'Variable_Type'\n(I2\nttRp856\nsS'Y:PMachine75 - CCORSC31'\np857\ng26\n(S'Variable_Type'\n(I2\nttRp858\nsS'Y:Load 51 - CASPRE31'\np859\ng26\n(S'Variable_Type'\n(I2\nttRp860\nsS'Y:VBus51 - CASPRE31'\np861\ng26\n(S'Variable_Type'\n(I2\nttRp862\nsS'Y:PMachine94 - COCANA33'\np863\ng26\n(S'Variable_Type'\n(I2\nttRp864\nsS'Y:PMachine126 - CVAZZI37'\np865\ng26\n(S'Variable_Type'\n(I2\nttRp866\nsS'Y:Load 86 - CLUCCI31'\np867\ng26\n(S'Variable_Type'\n(I2\nttRp868\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np869\ng26\n(S'Variable_Type'\n(I2\nttRp870\nsS'Y:PMachine104 - CPROPR31'\np871\ng26\n(S'Variable_Type'\n(I2\nttRp872\nsS'Y:VBus128 - CVAZZI39'\np873\ng26\n(S'Variable_Type'\n(I2\nttRp874\nsS'Y:PMachine136 - CLUCCI37'\np875\ng26\n(S'Variable_Type'\n(I2\nttRp876\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np877\ng26\n(S'Variable_Type'\n(I2\nttRp878\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np879\ng26\n(S'Variable_Type'\n(I2\nttRp880\nsS'Y:PMachine29 - CLUCCI21'\np881\ng26\n(S'Variable_Type'\n(I2\nttRp882\nsS'Y:VBus42 - CSISCO21'\np883\ng26\n(S'Variable_Type'\n(I2\nttRp884\nsS'Y:Load 110 - CSTLUC31'\np885\ng26\n(S'Variable_Type'\n(I2\nttRp886\nsS'Y:VBus14 - CBONIF21'\np887\ng26\n(S'Variable_Type'\n(I2\nttRp888\nsS'Y:VBus73 - CCASTI32'\np889\ng26\n(S'Variable_Type'\n(I2\nttRp890\nsS'Y:VBus64 - CCASAM32'\np891\ng26\n(S'Variable_Type'\n(I2\nttRp892\nsS'Y:PMachine128 - CVAZZI39'\np893\ng26\n(S'Variable_Type'\n(I2\nttRp894\nsS'Y:VBus133 - CVAZZI314'\np895\ng26\n(S'Variable_Type'\n(I2\nttRp896\nsS'Y:VBus63 - CCASAM31'\np897\ng26\n(S'Variable_Type'\n(I2\nttRp898\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np899\ng26\n(S'Variable_Type'\n(I2\nttRp900\nsS'Y:%Losses'\np901\ng26\n(S'Variable_Type'\n(I2\nttRp902\nsS'Y:VBus85 - CLORET32'\np903\ng26\n(S'Variable_Type'\n(I2\nttRp904\nsS'Y:Load 59 - CCALDA31'\np905\ng26\n(S'Variable_Type'\n(I2\nttRp906\nsS'Y:VBus129 - CVAZZI310'\np907\ng26\n(S'Variable_Type'\n(I2\nttRp908\nsS'Y:VBus101 - CPIETR31'\np909\ng26\n(S'Variable_Type'\n(I2\nttRp910\nsS'Y:PMachine106 - CRIZZA31'\np911\ng26\n(S'Variable_Type'\n(I2\nttRp912\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np913\ng26\n(S'Variable_Type'\n(I2\nttRp914\nsS'Y:PMachine118 - CTOLLA33'\np915\ng26\n(S'Variable_Type'\n(I2\nttRp916\nsS'Y:VBus19 - CCASTI21'\np917\ng26\n(S'Variable_Type'\n(I2\nttRp918\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np919\ng26\n(S'Variable_Type'\n(I2\nttRp920\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np921\ng26\n(S'Variable_Type'\n(I2\nttRp922\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np923\ng26\n(S'Variable_Type'\n(I2\nttRp924\nsS'Y:Load 115 - CTAGLI31'\np925\ng26\n(S'Variable_Type'\n(I2\nttRp926\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np927\ng26\n(S'Variable_Type'\n(I2\nttRp928\nsS'Y:VBus15 - CBONIF22'\np929\ng26\n(S'Variable_Type'\n(I2\nttRp930\nsS'Y:PMachine47 - CVAZZI21'\np931\ng26\n(S'Variable_Type'\n(I2\nttRp932\nsS'Y:VBus123 - CVAZZI34'\np933\ng26\n(S'Variable_Type'\n(I2\nttRp934\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np935\ng26\n(S'Variable_Type'\n(I2\nttRp936\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np937\ng26\n(S'Variable_Type'\n(I2\nttRp938\nsS'Y:VBus44 - CTAGLI21'\np939\ng26\n(S'Variable_Type'\n(I2\nttRp940\nsS'Y:VBus65 - CCASAM33'\np941\ng26\n(S'Variable_Type'\n(I2\nttRp942\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np943\ng26\n(S'Variable_Type'\n(I2\nttRp944\nsS'Y:PMachine139 - CLUCCI310'\np945\ng26\n(S'Variable_Type'\n(I2\nttRp946\nsS'Y:VBus112 - CSAMPO31'\np947\ng26\n(S'Variable_Type'\n(I2\nttRp948\nsS'Y:VBus68 - CCASAM36'\np949\ng26\n(S'Variable_Type'\n(I2\nttRp950\nsS'Y:Load 55 - CBIGUG31'\np951\ng26\n(S'Variable_Type'\n(I2\nttRp952\nsS'Y:PMachine53 - CBASTI31'\np953\ng26\n(S'Variable_Type'\n(I2\nttRp954\nsS'Y:NbeTransit_0.9-1'\np955\ng26\n(S'Variable_Type'\n(I2\nttRp956\nsS'Y:VBus24 - CFURIA21'\np957\ng26\n(S'Variable_Type'\n(I2\nttRp958\nsS'Y:VBus23 - CCORTE22'\np959\ng26\n(S'Variable_Type'\n(I2\nttRp960\nsS'XProdEolienne%Pnom'\np961\ng654\nsS'Y:VBus40 - CSTMAR21'\np962\ng26\n(S'Variable_Type'\n(I2\nttRp963\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np964\ng26\n(S'Variable_Type'\n(I2\nttRp965\nsS'Y:PMachine120 - CVAZZI31'\np966\ng26\n(S'Variable_Type'\n(I2\nttRp967\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np968\ng26\n(S'Variable_Type'\n(I2\nttRp969\nsS'Y:PMachine117 - CTOLLA32'\np970\ng26\n(S'Variable_Type'\n(I2\nttRp971\nsS'Y:VBus89 - CLUCCI34'\np972\ng26\n(S'Variable_Type'\n(I2\nttRp973\nsS'Y:VBus33 - COLETT21'\np974\ng26\n(S'Variable_Type'\n(I2\nttRp975\nsS'Y:VBus32 - COCANA21'\np976\ng26\n(S'Variable_Type'\n(I2\nttRp977\nsS'Y:PMachine121 - CVAZZI32'\np978\ng26\n(S'Variable_Type'\n(I2\nttRp979\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np980\ng26\n(S'Variable_Type'\n(I2\nttRp981\nsS'Y:VBus59 - CCALDA31'\np982\ng26\n(S'Variable_Type'\n(I2\nttRp983\nsS'Y:VBus82 - CILERO31'\np984\ng26\n(S'Variable_Type'\n(I2\nttRp985\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np986\ng26\n(S'Variable_Type'\n(I2\nttRp987\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np988\ng26\n(S'Variable_Type'\n(I2\nttRp989\nsS'Y:VBus37 - CRIZZA21'\np990\ng26\n(S'Variable_Type'\n(I2\nttRp991\nsS'Y:PMachine73 - CCASTI32'\np992\ng26\n(S'Variable_Type'\n(I2\nttRp993\nsS'Y:PMachine86 - CLUCCI31'\np994\ng26\n(S'Variable_Type'\n(I2\nttRp995\nsS'Y:Load 53 - CBASTI31'\np996\ng26\n(S'Variable_Type'\n(I2\nttRp997\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np998\ng26\n(S'Variable_Type'\n(I2\nttRp999\nsS'Y:VBus21 - CCORSC21'\np1000\ng26\n(S'Variable_Type'\n(I2\nttRp1001\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np1002\ng26\n(S'Variable_Type'\n(I2\nttRp1003\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np1004\ng26\n(S'Variable_Type'\n(I2\nttRp1005\nsS'Y:Load 82 - CILERO31'\np1006\ng26\n(S'Variable_Type'\n(I2\nttRp1007\nsS'Y:PMachine64 - CCASAM32'\np1008\ng26\n(S'Variable_Type'\n(I2\nttRp1009\nsS'Y:VBus67 - CCASAM35'\np1010\ng26\n(S'Variable_Type'\n(I2\nttRp1011\nsS'Y:VBus53 - CBASTI31'\np1012\ng26\n(S'Variable_Type'\n(I2\nttRp1013\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np1014\ng26\n(S'Variable_Type'\n(I2\nttRp1015\nsS'Y:VBus61 - CCALVI31'\np1016\ng26\n(S'Variable_Type'\n(I2\nttRp1017\nsS'Y:VBus93 - COCANA32'\np1018\ng26\n(S'Variable_Type'\n(I2\nttRp1019\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np1020\ng26\n(S'Variable_Type'\n(I2\nttRp1021\nsS'Y:PMachine92 - COCANA31'\np1022\ng26\n(S'Variable_Type'\n(I2\nttRp1023\nsS'Y:VBus104 - CPROPR31'\np1024\ng26\n(S'Variable_Type'\n(I2\nttRp1025\nsS'Y:VBus48 - CZSSS621'\np1026\ng26\n(S'Variable_Type'\n(I2\nttRp1027\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np1028\ng26\n(S'Variable_Type'\n(I2\nttRp1029\nsS'Y:VBus74 - CCERVI31'\np1030\ng26\n(S'Variable_Type'\n(I2\nttRp1031\nsS'Y:VBus36 - CPROPR21'\np1032\ng26\n(S'Variable_Type'\n(I2\nttRp1033\nsS'Y:Load 100 - COLETT31'\np1034\ng26\n(S'Variable_Type'\n(I2\nttRp1035\nsS'Y:PMachine54 - CBASTI32'\np1036\ng26\n(S'Variable_Type'\n(I2\nttRp1037\nsS'Y:VBus138 - CLUCCI39'\np1038\ng26\n(S'Variable_Type'\n(I2\nttRp1039\nsS'Y:VBus39 - CSTLUC21'\np1040\ng26\n(S'Variable_Type'\n(I2\nttRp1041\nsS'Y:PMachine74 - CCERVI31'\np1042\ng26\n(S'Variable_Type'\n(I2\nttRp1043\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np1044\ng26\n(S'Variable_Type'\n(I2\nttRp1045\nsS'Y:Load 78 - CFURIA31'\np1046\ng26\n(S'Variable_Type'\n(I2\nttRp1047\nsS'Y:VBus28 - CLORET21'\np1048\ng26\n(S'Variable_Type'\n(I2\nttRp1049\nsS'Y:PMachine105 - CPROPR32'\np1050\ng26\n(S'Variable_Type'\n(I2\nttRp1051\nsS'Y:VBus96 - COCANA35'\np1052\ng26\n(S'Variable_Type'\n(I2\nttRp1053\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np1054\ng26\n(S'Variable_Type'\n(I2\nttRp1055\nsS'Y:PMachine18 - CCASAM21'\np1056\ng26\n(S'Variable_Type'\n(I2\nttRp1057\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np1058\ng26\n(S'Variable_Type'\n(I2\nttRp1059\nsS'Y:VBus13 - CBIGUG21'\np1060\ng26\n(S'Variable_Type'\n(I2\nttRp1061\nsS'Y:VBus92 - COCANA31'\np1062\ng26\n(S'Variable_Type'\n(I2\nttRp1063\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np1064\ng26\n(S'Variable_Type'\n(I2\nttRp1065\nsS'Y:Load 76 - CCORTE31'\np1066\ng26\n(S'Variable_Type'\n(I2\nttRp1067\nsS'Y:VBus58 - CBONIF32'\np1068\ng26\n(S'Variable_Type'\n(I2\nttRp1069\nsS'Y:VBus84 - CLORET31'\np1070\ng26\n(S'Variable_Type'\n(I2\nttRp1071\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np1072\ng26\n(S'Variable_Type'\n(I2\nttRp1073\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np1074\ng26\n(S'Variable_Type'\n(I2\nttRp1075\nsS'Y:VBus97 - COCANA36'\np1076\ng26\n(S'Variable_Type'\n(I2\nttRp1077\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np1078\ng26\n(S'Variable_Type'\n(I2\nttRp1079\nsS'Y:VBus106 - CRIZZA31'\np1080\ng26\n(S'Variable_Type'\n(I2\nttRp1081\nsS'Y:VBus79 - CFURIA32'\np1082\ng26\n(S'Variable_Type'\n(I2\nttRp1083\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np1084\ng26\n(S'Variable_Type'\n(I2\nttRp1085\nsS'Y:VBus80 - CGHISO31'\np1086\ng26\n(S'Variable_Type'\n(I2\nttRp1087\nsS'Y:PMachine114 - CSOVEN31'\np1088\ng26\n(S'Variable_Type'\n(I2\nttRp1089\nsS'Y:VBus132 - CVAZZI313'\np1090\ng26\n(S'Variable_Type'\n(I2\nttRp1091\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np1092\ng26\n(S'Variable_Type'\n(I2\nttRp1093\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np1094\ng26\n(S'Variable_Type'\n(I2\nttRp1095\nsS'Y:VBus87 - CLUCCI32'\np1096\ng26\n(S'Variable_Type'\n(I2\nttRp1097\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np1098\ng26\n(S'Variable_Type'\n(I2\nttRp1099\nsS'Y:VBus88 - CLUCCI33'\np1100\ng26\n(S'Variable_Type'\n(I2\nttRp1101\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np1102\ng26\n(S'Variable_Type'\n(I2\nttRp1103\nsS'Y:PMachine85 - CLORET32'\np1104\ng26\n(S'Variable_Type'\n(I2\nttRp1105\nsS'Y:VBus81 - CGHISO32'\np1106\ng26\n(S'Variable_Type'\n(I2\nttRp1107\nsS'Y:PMachine63 - CCASAM31'\np1108\ng26\n(S'Variable_Type'\n(I2\nttRp1109\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np1110\ng26\n(S'Variable_Type'\n(I2\nttRp1111\nsS'X:Load(pu)'\np1112\ng26\n(S'Variable_Type'\n(I2\nttRp1113\nsS'Y:NbeTension'\np1114\ng26\n(S'Variable_Type'\n(I2\nttRp1115\nsS'Y:VBus95 - COCANA34'\np1116\ng26\n(S'Variable_Type'\n(I2\nttRp1117\nsS'Y:VBus62 - CCALVI32'\np1118\ng26\n(S'Variable_Type'\n(I2\nttRp1119\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np1120\ng26\n(S'Variable_Type'\n(I2\nttRp1121\nsS'Y:Load 95 - COCANA34'\np1122\ng26\n(S'Variable_Type'\n(I2\nttRp1123\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np1124\ng26\n(S'Variable_Type'\n(I2\nttRp1125\nsS'Y:PMachine90 - CMOROS31'\np1126\ng26\n(S'Variable_Type'\n(I2\nttRp1127\nsS'Y:Load 101 - CPIETR31'\np1128\ng26\n(S'Variable_Type'\n(I2\nttRp1129\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np1130\ng26\n(S'Variable_Type'\n(I2\nttRp1131\nsS'Y:PMachine132 - CVAZZI313'\np1132\ng26\n(S'Variable_Type'\n(I2\nttRp1133\nsS'Y:PMachine65 - CCASAM33'\np1134\ng26\n(S'Variable_Type'\n(I2\nttRp1135\nsS'Y:VBus125 - CVAZZI36'\np1136\ng26\n(S'Variable_Type'\n(I2\nttRp1137\nsS'Y:VBus135 - CLUCCI36'\np1138\ng26\n(S'Variable_Type'\n(I2\nttRp1139\nsS'Y:VBus47 - CVAZZI21'\np1140\ng26\n(S'Variable_Type'\n(I2\nttRp1141\nsS'Y:VBus94 - COCANA33'\np1142\ng26\n(S'Variable_Type'\n(I2\nttRp1143\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np1144\ng26\n(S'Variable_Type'\n(I2\nttRp1145\nsS'Y:VBus17 - CCALVI21'\np1146\ng26\n(S'Variable_Type'\n(I2\nttRp1147\nsS'Y:Load 90 - CMOROS31'\np1148\ng26\n(S'Variable_Type'\n(I2\nttRp1149\nsS'Y:VBus120 - CVAZZI31'\np1150\ng26\n(S'Variable_Type'\n(I2\nttRp1151\nsS'Y:VBus52 - CASPRE32'\np1152\ng26\n(S'Variable_Type'\n(I2\nttRp1153\nsS'Y:VBus25 - CFURIA22'\np1154\ng26\n(S'Variable_Type'\n(I2\nttRp1155\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np1156\ng26\n(S'Variable_Type'\n(I2\nttRp1157\nsS'Y:PMachine69 - CCASAM37'\np1158\ng26\n(S'Variable_Type'\n(I2\nttRp1159\nsS'Y:PConsoTot'\np1160\ng26\n(S'Variable_Type'\n(I2\nttRp1161\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np1162\ng26\n(S'Variable_Type'\n(I2\nttRp1163\nsS'Y:PMachine102 - CPORTO31'\np1164\ng26\n(S'Variable_Type'\n(I2\nttRp1165\nsS'Y:VBus136 - CLUCCI37'\np1166\ng26\n(S'Variable_Type'\n(I2\nttRp1167\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np1168\ng26\n(S'Variable_Type'\n(I2\nttRp1169\nsS'Y:PMachine122 - CVAZZI33'\np1170\ng26\n(S'Variable_Type'\n(I2\nttRp1171\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np1172\ng26\n(S'Variable_Type'\n(I2\nttRp1173\nsS'Y:PMachine77 - CCORTE32'\np1174\ng26\n(S'Variable_Type'\n(I2\nttRp1175\nsS'Y:PMachine116 - CTOLLA31'\np1176\ng26\n(S'Variable_Type'\n(I2\nttRp1177\nsS'Y:VBus126 - CVAZZI37'\np1178\ng26\n(S'Variable_Type'\n(I2\nttRp1179\nsS'Y:PMachine60 - CCALDA32'\np1180\ng26\n(S'Variable_Type'\n(I2\nttRp1181\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np1182\ng26\n(S'Variable_Type'\n(I2\nttRp1183\nsS'Y:VBus20 - CCERVI21'\np1184\ng26\n(S'Variable_Type'\n(I2\nttRp1185\nsS'Y:VBus119 - CTRAVO31'\np1186\ng26\n(S'Variable_Type'\n(I2\nttRp1187\nsS'Y:VBus11 - CASPRE21'\np1188\ng26\n(S'Variable_Type'\n(I2\nttRp1189\nsS'Y:VBus139 - CLUCCI310'\np1190\ng26\n(S'Variable_Type'\n(I2\nttRp1191\nsS'Y:VBus60 - CCALDA32'\np1192\ng26\n(S'Variable_Type'\n(I2\nttRp1193\nsS'Y:PMachine66 - CCASAM34'\np1194\ng26\n(S'Variable_Type'\n(I2\nttRp1195\nsS'Y:PMachine101 - CPIETR31'\np1196\ng26\n(S'Variable_Type'\n(I2\nttRp1197\nsS'Y:PMachine133 - CVAZZI314'\np1198\ng26\n(S'Variable_Type'\n(I2\nttRp1199\nsS'Y:PMachine62 - CCALVI32'\np1200\ng26\n(S'Variable_Type'\n(I2\nttRp1201\nsS'Y:Load 74 - CCERVI31'\np1202\ng26\n(S'Variable_Type'\n(I2\nttRp1203\nsS'X:lineOff#'\np1204\ng26\n(S'Variable_Type'\n(I2\nttRp1205\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np1206\ng26\n(S'Variable_Type'\n(I2\nttRp1207\nsS'Y:VBus108 - CSAGON31'\np1208\ng26\n(S'Variable_Type'\n(I2\nttRp1209\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np1210\ng26\n(S'Variable_Type'\n(I2\nttRp1211\nsS'Y:VBus137 - CLUCCI38'\np1212\ng26\n(S'Variable_Type'\n(I2\nttRp1213\nsS'Y:VBus130 - CVAZZI311'\np1214\ng26\n(S'Variable_Type'\n(I2\nttRp1215\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np1216\ng26\n(S'Variable_Type'\n(I2\nttRp1217\nsS'Y:VBus46 - CTRAVO21'\np1218\ng26\n(S'Variable_Type'\n(I2\nttRp1219\nsS'Y:VBus113 - CSAMPO32'\np1220\ng26\n(S'Variable_Type'\n(I2\nttRp1221\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np1222\ng26\n(S'Variable_Type'\n(I2\nttRp1223\nsS'Y:PMachine68 - CCASAM36'\np1224\ng26\n(S'Variable_Type'\n(I2\nttRp1225\nsS'Y:VBus78 - CFURIA31'\np1226\ng26\n(S'Variable_Type'\n(I2\nttRp1227\nsS'Y:VBus26 - CGHISO21'\np1228\ng26\n(S'Variable_Type'\n(I2\nttRp1229\nsS'Y:VBus121 - CVAZZI32'\np1230\ng26\n(S'Variable_Type'\n(I2\nttRp1231\nsS'Y:PMachine97 - COCANA36'\np1232\ng26\n(S'Variable_Type'\n(I2\nttRp1233\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np1234\ng26\n(S'Variable_Type'\n(I2\nttRp1235\nsS'Y:PMachine83 - CILERO32'\np1236\ng26\n(S'Variable_Type'\n(I2\nttRp1237\nsS'Y:Max%A'\np1238\ng26\n(S'Variable_Type'\n(I2\nttRp1239\nsS'Y:VBus66 - CCASAM34'\np1240\ng26\n(S'Variable_Type'\n(I2\nttRp1241\nsS'Y:PMachine1 - CBONIF11'\np1242\ng26\n(S'Variable_Type'\n(I2\nttRp1243\nsS'Y:VBus111 - CSTMAR31'\np1244\ng26\n(S'Variable_Type'\n(I2\nttRp1245\nsS'Y:VBus124 - CVAZZI35'\np1246\ng26\n(S'Variable_Type'\n(I2\nttRp1247\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np1248\ng26\n(S'Variable_Type'\n(I2\nttRp1249\nsS'Y:VBus29 - CLUCCI21'\np1250\ng26\n(S'Variable_Type'\n(I2\nttRp1251\nsS'Y:PMachine93 - COCANA32'\np1252\ng26\n(S'Variable_Type'\n(I2\nttRp1253\nsS'Y:Load 57 - CBONIF31'\np1254\ng26\n(S'Variable_Type'\n(I2\nttRp1255\nsS'Y:VBus86 - CLUCCI31'\np1256\ng26\n(S'Variable_Type'\n(I2\nttRp1257\nsS'Y:VBus38 - CSAGON21'\np1258\ng26\n(S'Variable_Type'\n(I2\nttRp1259\nsS'Y:PMachine81 - CGHISO32'\np1260\ng26\n(S'Variable_Type'\n(I2\nttRp1261\nsS'Y:PMachine61 - CCALVI31'\np1262\ng26\n(S'Variable_Type'\n(I2\nttRp1263\nsS'Y:VBus110 - CSTLUC31'\np1264\ng26\n(S'Variable_Type'\n(I2\nttRp1265\nsS'X:ProdPV%Pnom'\np1266\ng26\n(S'Variable_Type'\n(I2\nttRp1267\nssg628\n(dp1268\nsg20\n(lp1269\nS'orderedDomain'\np1270\nasg648\nF1369744625.4059999\nsba(iOWContexts\nContext\np1271\n(dp1272\ng20\n(lp1273\ng1270\nasg23\n(dp1274\nS'Y:PMachine134 - CLUCCI35'\np1275\ng26\n(S'Variable_Type'\n(I1\nttRp1276\nsS'Y:VBus77 - CCORTE32'\np1277\ng26\n(S'Variable_Type'\n(I2\nttRp1278\nsS'Y:VBus134 - CLUCCI35'\np1279\ng26\n(S'Variable_Type'\n(I2\nttRp1280\nsS'Y:VBus109 - CSAGON32'\np1281\ng26\n(S'Variable_Type'\n(I2\nttRp1282\nsS'Y:VBus102 - CPORTO31'\np1283\ng26\n(S'Variable_Type'\n(I2\nttRp1284\nsS'XProdEolienne%Pnom'\np1285\ng26\n(S'Variable_Type'\n(I1\nttRp1286\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np1287\ng26\n(S'Variable_Type'\n(I2\nttRp1288\nsS'Y:PMachine94 - COCANA33'\np1289\ng26\n(S'Variable_Type'\n(I2\nttRp1290\nsS'Y:VBus117 - CTOLLA32'\np1291\ng26\n(S'Variable_Type'\n(I2\nttRp1292\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np1293\ng26\n(S'Variable_Type'\n(I2\nttRp1294\nsS'Y:PMachine87 - CLUCCI32'\np1295\ng26\n(S'Variable_Type'\n(I2\nttRp1296\nsS'Y:PMachine113 - CSAMPO32'\np1297\ng26\n(S'Variable_Type'\n(I2\nttRp1298\nsS'Y:Load 84 - CLORET31'\np1299\ng26\n(S'Variable_Type'\n(I2\nttRp1300\nsS'Y:PMachine89 - CLUCCI34'\np1301\ng26\n(S'Variable_Type'\n(I1\nttRp1302\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np1303\ng26\n(S'Variable_Type'\n(I2\nttRp1304\nsS'Y:Load 80 - CGHISO31'\np1305\ng26\n(S'Variable_Type'\n(I2\nttRp1306\nsS'Y:PMachine125 - CVAZZI36'\np1307\ng26\n(S'Variable_Type'\n(I2\nttRp1308\nsS'Y:PMachine116 - CTOLLA31'\np1309\ng26\n(S'Variable_Type'\n(I2\nttRp1310\nsS'Y:PMachine88 - CLUCCI33'\np1311\ng26\n(S'Variable_Type'\n(I1\nttRp1312\nsS'Y:PMachine120 - CVAZZI31'\np1313\ng26\n(S'Variable_Type'\n(I2\nttRp1314\nsS'Y:PMachine111 - CSTMAR31'\np1315\ng26\n(S'Variable_Type'\n(I2\nttRp1316\nsS'Y:NbeTransit'\np1317\ng26\n(S'Variable_Type'\n(I1\nttRp1318\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np1319\ng26\n(S'Variable_Type'\n(I2\nttRp1320\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np1321\ng26\n(S'Variable_Type'\n(I2\nttRp1322\nsS'Y:VBus92 - COCANA31'\np1323\ng26\n(S'Variable_Type'\n(I2\nttRp1324\nsS'Y:PMachine130 - CVAZZI311'\np1325\ng26\n(S'Variable_Type'\n(I2\nttRp1326\nsS'Y:PMachine127 - CVAZZI38'\np1327\ng26\n(S'Variable_Type'\n(I2\nttRp1328\nsS'Y:VBus131 - CVAZZI312'\np1329\ng26\n(S'Variable_Type'\n(I2\nttRp1330\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np1331\ng26\n(S'Variable_Type'\n(I2\nttRp1332\nsS'Y:PMachine123 - CVAZZI34'\np1333\ng26\n(S'Variable_Type'\n(I2\nttRp1334\nsS'Y:VBus118 - CTOLLA33'\np1335\ng26\n(S'Variable_Type'\n(I2\nttRp1336\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np1337\ng26\n(S'Variable_Type'\n(I1\nttRp1338\nsS'Y:PMachine58 - CBONIF32'\np1339\ng26\n(S'Variable_Type'\n(I2\nttRp1340\nsS'Y:Load 104 - CPROPR31'\np1341\ng26\n(S'Variable_Type'\n(I2\nttRp1342\nsS'Y:PMachine30 - CLUCCI22'\np1343\ng26\n(S'Variable_Type'\n(I1\nttRp1344\nsS'Y:VBus100 - COLETT31'\np1345\ng26\n(S'Variable_Type'\n(I2\nttRp1346\nsS'Y:PProdTot'\np1347\ng26\n(S'Variable_Type'\n(I2\nttRp1348\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np1349\ng26\n(S'Variable_Type'\n(I1\nttRp1350\nsS'Y:VBus57 - CBONIF31'\np1351\ng26\n(S'Variable_Type'\n(I2\nttRp1352\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np1353\ng26\n(S'Variable_Type'\n(I2\nttRp1354\nsS'Y:PConsoTot'\np1355\ng26\n(S'Variable_Type'\n(I2\nttRp1356\nsS'Iteration'\np1357\ng26\n(S'Variable_Type'\n(I2\nttRp1358\nsS'Y:PMachine109 - CSAGON32'\np1359\ng26\n(S'Variable_Type'\n(I2\nttRp1360\nsS'Y:PMachine135 - CLUCCI36'\np1361\ng26\n(S'Variable_Type'\n(I1\nttRp1362\nsS'Y:VBus30 - CLUCCI22'\np1363\ng26\n(S'Variable_Type'\n(I2\nttRp1364\nsS'Y:VBus122 - CVAZZI33'\np1365\ng26\n(S'Variable_Type'\n(I2\nttRp1366\nsS'Y:VBus22 - CCORTE21'\np1367\ng26\n(S'Variable_Type'\n(I2\nttRp1368\nsS'Y:VBus35 - CPORTO21'\np1369\ng26\n(S'Variable_Type'\n(I2\nttRp1370\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np1371\ng26\n(S'Variable_Type'\n(I1\nttRp1372\nsS'Y:PMachine107 - CRIZZA32'\np1373\ng26\n(S'Variable_Type'\n(I2\nttRp1374\nsS'Y:VBus16 - CCALDA21'\np1375\ng26\n(S'Variable_Type'\n(I2\nttRp1376\nsS'Y:Load 102 - CPORTO31'\np1377\ng26\n(S'Variable_Type'\n(I2\nttRp1378\nsS'Y:VBus107 - CRIZZA32'\np1379\ng26\n(S'Variable_Type'\n(I2\nttRp1380\nsS'Y:VBus59 - CCALDA31'\np1381\ng26\n(S'Variable_Type'\n(I2\nttRp1382\nsS'Y:VBus41 - CSAMPO21'\np1383\ng26\n(S'Variable_Type'\n(I2\nttRp1384\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np1385\ng26\n(S'Variable_Type'\n(I2\nttRp1386\nsS'Y:VBus34 - CPIETR21'\np1387\ng26\n(S'Variable_Type'\n(I2\nttRp1388\nsS'Y:Load 108 - CSAGON31'\np1389\ng26\n(S'Variable_Type'\n(I2\nttRp1390\nsS'Y:VBus56 - CBIGUG32'\np1391\ng26\n(S'Variable_Type'\n(I2\nttRp1392\nsS'Y:PMachine42 - CSISCO21'\np1393\ng26\n(S'Variable_Type'\n(I2\nttRp1394\nsS'Y:PMachine138 - CLUCCI39'\np1395\ng26\n(S'Variable_Type'\n(I1\nttRp1396\nsS'Y:PMachine112 - CSAMPO31'\np1397\ng26\n(S'Variable_Type'\n(I2\nttRp1398\nsS'Y:VBus105 - CPROPR32'\np1399\ng26\n(S'Variable_Type'\n(I2\nttRp1400\nsS'Y:VBus1 - CBONIF11'\np1401\ng26\n(S'Variable_Type'\n(I2\nttRp1402\nsS'Y:VBus12 - CBASTI21'\np1403\ng26\n(S'Variable_Type'\n(I2\nttRp1404\nsS'Y:PMachine129 - CVAZZI310'\np1405\ng26\n(S'Variable_Type'\n(I2\nttRp1406\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np1407\ng26\n(S'Variable_Type'\n(I1\nttRp1408\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np1409\ng26\n(S'Variable_Type'\n(I1\nttRp1410\nsS'Y:VBus54 - CBASTI32'\np1411\ng26\n(S'Variable_Type'\n(I2\nttRp1412\nsS'Y:VBus69 - CCASAM37'\np1413\ng26\n(S'Variable_Type'\n(I2\nttRp1414\nsS'Y:VBus45 - CTOLLA21'\np1415\ng26\n(S'Variable_Type'\n(I2\nttRp1416\nsS'Y:PMachine115 - CTAGLI31'\np1417\ng26\n(S'Variable_Type'\n(I2\nttRp1418\nsS'Y:PMachine77 - CCORTE32'\np1419\ng26\n(S'Variable_Type'\n(I2\nttRp1420\nsS'Y:VBus43 - CSOVEN21'\np1421\ng26\n(S'Variable_Type'\n(I2\nttRp1422\nsS'Y:VBus76 - CCORTE31'\np1423\ng26\n(S'Variable_Type'\n(I2\nttRp1424\nsS'Y:VBus75 - CCORSC31'\np1425\ng26\n(S'Variable_Type'\n(I2\nttRp1426\nsS'Y:PMachine78 - CFURIA31'\np1427\ng26\n(S'Variable_Type'\n(I1\nttRp1428\nsS'Y:VBus127 - CVAZZI38'\np1429\ng26\n(S'Variable_Type'\n(I2\nttRp1430\nsS'Y:VBus115 - CTAGLI31'\np1431\ng26\n(S'Variable_Type'\n(I2\nttRp1432\nsS'Y:Load 61 - CCALVI31'\np1433\ng26\n(S'Variable_Type'\n(I2\nttRp1434\nsS'Y:VBus55 - CBIGUG31'\np1435\ng26\n(S'Variable_Type'\n(I2\nttRp1436\nsS'Y:Load 42 - CSISCO21'\np1437\ng26\n(S'Variable_Type'\n(I2\nttRp1438\nsS'Y:VBus72 - CCASTI31'\np1439\ng26\n(S'Variable_Type'\n(I2\nttRp1440\nsS'Y:Load 37 - CRIZZA21'\np1441\ng26\n(S'Variable_Type'\n(I2\nttRp1442\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np1443\ng26\n(S'Variable_Type'\n(I2\nttRp1444\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np1445\ng26\n(S'Variable_Type'\n(I2\nttRp1446\nsS'Y:PMachine137 - CLUCCI38'\np1447\ng26\n(S'Variable_Type'\n(I1\nttRp1448\nsS'Y:PMachine67 - CCASAM35'\np1449\ng26\n(S'Variable_Type'\n(I2\nttRp1450\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np1451\ng26\n(S'Variable_Type'\n(I1\nttRp1452\nsS'Y:VBus31 - CMOROS21'\np1453\ng26\n(S'Variable_Type'\n(I2\nttRp1454\nsS'Y:VBus103 - CPORTO32'\np1455\ng26\n(S'Variable_Type'\n(I2\nttRp1456\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np1457\ng26\n(S'Variable_Type'\n(I1\nttRp1458\nsS'Y:PMachine128 - CVAZZI39'\np1459\ng26\n(S'Variable_Type'\n(I2\nttRp1460\nsS'Y:PMachine72 - CCASTI31'\np1461\ng26\n(S'Variable_Type'\n(I2\nttRp1462\nsS'Y:VBus27 - CILERO21'\np1463\ng26\n(S'Variable_Type'\n(I2\nttRp1464\nsS'Y:PMachine75 - CCORSC31'\np1465\ng26\n(S'Variable_Type'\n(I2\nttRp1466\nsS'Y:Load 51 - CASPRE31'\np1467\ng26\n(S'Variable_Type'\n(I2\nttRp1468\nsS'Y:PMachine61 - CCALVI31'\np1469\ng26\n(S'Variable_Type'\n(I1\nttRp1470\nsS'Y:VBus51 - CASPRE31'\np1471\ng26\n(S'Variable_Type'\n(I2\nttRp1472\nsS'Y:VBus114 - CSOVEN31'\np1473\ng26\n(S'Variable_Type'\n(I2\nttRp1474\nsS'Y:Load 82 - CILERO31'\np1475\ng26\n(S'Variable_Type'\n(I2\nttRp1476\nsS'Y:VBus116 - CTOLLA31'\np1477\ng26\n(S'Variable_Type'\n(I2\nttRp1478\nsS'Y:Load 86 - CLUCCI31'\np1479\ng26\n(S'Variable_Type'\n(I2\nttRp1480\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np1481\ng26\n(S'Variable_Type'\n(I2\nttRp1482\nsS'Y:Load 57 - CBONIF31'\np1483\ng26\n(S'Variable_Type'\n(I2\nttRp1484\nsS'Y:PMachine104 - CPROPR31'\np1485\ng26\n(S'Variable_Type'\n(I2\nttRp1486\nsS'Y:VBus128 - CVAZZI39'\np1487\ng26\n(S'Variable_Type'\n(I2\nttRp1488\nsS'Y:PMachine136 - CLUCCI37'\np1489\ng26\n(S'Variable_Type'\n(I1\nttRp1490\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np1491\ng26\n(S'Variable_Type'\n(I2\nttRp1492\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np1493\ng26\n(S'Variable_Type'\n(I2\nttRp1494\nsS'Y:PMachine68 - CCASAM36'\np1495\ng26\n(S'Variable_Type'\n(I2\nttRp1496\nsS'Y:PMachine29 - CLUCCI21'\np1497\ng26\n(S'Variable_Type'\n(I1\nttRp1498\nsS'Y:VBus42 - CSISCO21'\np1499\ng26\n(S'Variable_Type'\n(I2\nttRp1500\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np1501\ng26\n(S'Variable_Type'\n(I1\nttRp1502\nsS'Y:VBus14 - CBONIF21'\np1503\ng26\n(S'Variable_Type'\n(I2\nttRp1504\nsS'Y:VBus73 - CCASTI32'\np1505\ng26\n(S'Variable_Type'\n(I2\nttRp1506\nsS'Y:VBus64 - CCASAM32'\np1507\ng26\n(S'Variable_Type'\n(I2\nttRp1508\nsS'Y:PMachine14 - CBONIF21'\np1509\ng26\n(S'Variable_Type'\n(I1\nttRp1510\nsS'Y:PMachine62 - CCALVI32'\np1511\ng26\n(S'Variable_Type'\n(I2\nttRp1512\nsS'Y:VBus133 - CVAZZI314'\np1513\ng26\n(S'Variable_Type'\n(I2\nttRp1514\nsS'Y:VBus63 - CCASAM31'\np1515\ng26\n(S'Variable_Type'\n(I2\nttRp1516\nsS'Y:PMachine101 - CPIETR31'\np1517\ng26\n(S'Variable_Type'\n(I2\nttRp1518\nsS'Y:%Losses'\np1519\ng26\n(S'Variable_Type'\n(I2\nttRp1520\nsS'Y:VBus85 - CLORET32'\np1521\ng26\n(S'Variable_Type'\n(I2\nttRp1522\nsS'Y:Load 59 - CCALDA31'\np1523\ng26\n(S'Variable_Type'\n(I2\nttRp1524\nsS'Y:VBus129 - CVAZZI310'\np1525\ng26\n(S'Variable_Type'\n(I2\nttRp1526\nsS'Y:VBus101 - CPIETR31'\np1527\ng26\n(S'Variable_Type'\n(I2\nttRp1528\nsS'Y:PMachine106 - CRIZZA31'\np1529\ng26\n(S'Variable_Type'\n(I2\nttRp1530\nsS'Y:VBus132 - CVAZZI313'\np1531\ng26\n(S'Variable_Type'\n(I2\nttRp1532\nsS'Y:PMachine118 - CTOLLA33'\np1533\ng26\n(S'Variable_Type'\n(I2\nttRp1534\nsS'Y:VBus19 - CCASTI21'\np1535\ng26\n(S'Variable_Type'\n(I2\nttRp1536\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np1537\ng26\n(S'Variable_Type'\n(I2\nttRp1538\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np1539\ng26\n(S'Variable_Type'\n(I1\nttRp1540\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np1541\ng26\n(S'Variable_Type'\n(I2\nttRp1542\nsS'Y:Load 115 - CTAGLI31'\np1543\ng26\n(S'Variable_Type'\n(I2\nttRp1544\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np1545\ng26\n(S'Variable_Type'\n(I2\nttRp1546\nsS'Y:VBus79 - CFURIA32'\np1547\ng26\n(S'Variable_Type'\n(I2\nttRp1548\nsS'Y:PMachine47 - CVAZZI21'\np1549\ng26\n(S'Variable_Type'\n(I1\nttRp1550\nsS'Y:VBus123 - CVAZZI34'\np1551\ng26\n(S'Variable_Type'\n(I2\nttRp1552\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np1553\ng26\n(S'Variable_Type'\n(I2\nttRp1554\nsS'Y:VBus60 - CCALDA32'\np1555\ng26\n(S'Variable_Type'\n(I2\nttRp1556\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np1557\ng26\n(S'Variable_Type'\n(I2\nttRp1558\nsS'Y:VBus65 - CCASAM33'\np1559\ng26\n(S'Variable_Type'\n(I2\nttRp1560\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np1561\ng26\n(S'Variable_Type'\n(I1\nttRp1562\nsS'Y:PMachine139 - CLUCCI310'\np1563\ng26\n(S'Variable_Type'\n(I1\nttRp1564\nsS'Y:VBus112 - CSAMPO31'\np1565\ng26\n(S'Variable_Type'\n(I2\nttRp1566\nsS'Y:VBus68 - CCASAM36'\np1567\ng26\n(S'Variable_Type'\n(I2\nttRp1568\nsS'Y:Load 55 - CBIGUG31'\np1569\ng26\n(S'Variable_Type'\n(I2\nttRp1570\nsS'Y:PMachine53 - CBASTI31'\np1571\ng26\n(S'Variable_Type'\n(I2\nttRp1572\nsS'Y:NbeTransit_0.9-1'\np1573\ng26\n(S'Variable_Type'\n(I1\nttRp1574\nsS'Y:VBus24 - CFURIA21'\np1575\ng26\n(S'Variable_Type'\n(I2\nttRp1576\nsS'Y:VBus23 - CCORTE22'\np1577\ng26\n(S'Variable_Type'\n(I2\nttRp1578\nsS'Y:VBus18 - CCASAM21'\np1579\ng26\n(S'Variable_Type'\n(I2\nttRp1580\nsS'Y:VBus40 - CSTMAR21'\np1581\ng26\n(S'Variable_Type'\n(I2\nttRp1582\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np1583\ng26\n(S'Variable_Type'\n(I2\nttRp1584\nsS'Y:PMachine124 - CVAZZI35'\np1585\ng26\n(S'Variable_Type'\n(I2\nttRp1586\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np1587\ng26\n(S'Variable_Type'\n(I2\nttRp1588\nsS'Y:PMachine117 - CTOLLA32'\np1589\ng26\n(S'Variable_Type'\n(I2\nttRp1590\nsS'Y:VBus89 - CLUCCI34'\np1591\ng26\n(S'Variable_Type'\n(I2\nttRp1592\nsS'Y:VBus33 - COLETT21'\np1593\ng26\n(S'Variable_Type'\n(I2\nttRp1594\nsS'Y:VBus32 - COCANA21'\np1595\ng26\n(S'Variable_Type'\n(I2\nttRp1596\nsS'Y:PMachine121 - CVAZZI32'\np1597\ng26\n(S'Variable_Type'\n(I2\nttRp1598\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np1599\ng26\n(S'Variable_Type'\n(I1\nttRp1600\nsS'Y:VBus82 - CILERO31'\np1601\ng26\n(S'Variable_Type'\n(I2\nttRp1602\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np1603\ng26\n(S'Variable_Type'\n(I2\nttRp1604\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np1605\ng26\n(S'Variable_Type'\n(I2\nttRp1606\nsS'Y:VBus37 - CRIZZA21'\np1607\ng26\n(S'Variable_Type'\n(I2\nttRp1608\nsS'Y:PMachine73 - CCASTI32'\np1609\ng26\n(S'Variable_Type'\n(I2\nttRp1610\nsS'Y:PMachine86 - CLUCCI31'\np1611\ng26\n(S'Variable_Type'\n(I2\nttRp1612\nsS'Y:Load 53 - CBASTI31'\np1613\ng26\n(S'Variable_Type'\n(I2\nttRp1614\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np1615\ng26\n(S'Variable_Type'\n(I2\nttRp1616\nsS'Y:VBus21 - CCORSC21'\np1617\ng26\n(S'Variable_Type'\n(I2\nttRp1618\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np1619\ng26\n(S'Variable_Type'\n(I2\nttRp1620\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np1621\ng26\n(S'Variable_Type'\n(I2\nttRp1622\nsS'Y:PMachine126 - CVAZZI37'\np1623\ng26\n(S'Variable_Type'\n(I2\nttRp1624\nsS'Y:PMachine64 - CCASAM32'\np1625\ng26\n(S'Variable_Type'\n(I2\nttRp1626\nsS'Y:VBus67 - CCASAM35'\np1627\ng26\n(S'Variable_Type'\n(I2\nttRp1628\nsS'Y:VBus53 - CBASTI31'\np1629\ng26\n(S'Variable_Type'\n(I2\nttRp1630\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np1631\ng26\n(S'Variable_Type'\n(I2\nttRp1632\nsS'Y:VBus61 - CCALVI31'\np1633\ng26\n(S'Variable_Type'\n(I2\nttRp1634\nsS'Y:VBus93 - COCANA32'\np1635\ng26\n(S'Variable_Type'\n(I2\nttRp1636\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np1637\ng26\n(S'Variable_Type'\n(I2\nttRp1638\nsS'Y:VBus104 - CPROPR31'\np1639\ng26\n(S'Variable_Type'\n(I2\nttRp1640\nsS'Y:VBus48 - CZSSS621'\np1641\ng26\n(S'Variable_Type'\n(I2\nttRp1642\nsS'Y:PMachine85 - CLORET32'\np1643\ng26\n(S'Variable_Type'\n(I2\nttRp1644\nsS'Y:Max%A'\np1645\ng26\n(S'Variable_Type'\n(I2\nttRp1646\nsS'Y:VBus36 - CPROPR21'\np1647\ng26\n(S'Variable_Type'\n(I2\nttRp1648\nsS'Y:Load 100 - COLETT31'\np1649\ng26\n(S'Variable_Type'\n(I2\nttRp1650\nsS'Y:PMachine54 - CBASTI32'\np1651\ng26\n(S'Variable_Type'\n(I2\nttRp1652\nsS'Y:VBus138 - CLUCCI39'\np1653\ng26\n(S'Variable_Type'\n(I2\nttRp1654\nsS'Y:VBus39 - CSTLUC21'\np1655\ng26\n(S'Variable_Type'\n(I2\nttRp1656\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np1657\ng26\n(S'Variable_Type'\n(I2\nttRp1658\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np1659\ng26\n(S'Variable_Type'\n(I2\nttRp1660\nsS'Y:Load 78 - CFURIA31'\np1661\ng26\n(S'Variable_Type'\n(I2\nttRp1662\nsS'Y:VBus28 - CLORET21'\np1663\ng26\n(S'Variable_Type'\n(I2\nttRp1664\nsS'Y:PMachine105 - CPROPR32'\np1665\ng26\n(S'Variable_Type'\n(I2\nttRp1666\nsS'Y:VBus96 - COCANA35'\np1667\ng26\n(S'Variable_Type'\n(I2\nttRp1668\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np1669\ng26\n(S'Variable_Type'\n(I1\nttRp1670\nsS'Y:PMachine18 - CCASAM21'\np1671\ng26\n(S'Variable_Type'\n(I1\nttRp1672\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np1673\ng26\n(S'Variable_Type'\n(I2\nttRp1674\nsS'Y:VBus13 - CBIGUG21'\np1675\ng26\n(S'Variable_Type'\n(I2\nttRp1676\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np1677\ng26\n(S'Variable_Type'\n(I2\nttRp1678\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np1679\ng26\n(S'Variable_Type'\n(I2\nttRp1680\nsS'Y:VBus29 - CLUCCI21'\np1681\ng26\n(S'Variable_Type'\n(I2\nttRp1682\nsS'Y:VBus58 - CBONIF32'\np1683\ng26\n(S'Variable_Type'\n(I2\nttRp1684\nsS'Y:VBus84 - CLORET31'\np1685\ng26\n(S'Variable_Type'\n(I2\nttRp1686\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np1687\ng26\n(S'Variable_Type'\n(I1\nttRp1688\nsS'Y:VBus97 - COCANA36'\np1689\ng26\n(S'Variable_Type'\n(I2\nttRp1690\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np1691\ng26\n(S'Variable_Type'\n(I1\nttRp1692\nsS'Y:VBus15 - CBONIF22'\np1693\ng26\n(S'Variable_Type'\n(I2\nttRp1694\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np1695\ng26\n(S'Variable_Type'\n(I2\nttRp1696\nsS'Y:Load 110 - CSTLUC31'\np1697\ng26\n(S'Variable_Type'\n(I2\nttRp1698\nsS'Y:VBus80 - CGHISO31'\np1699\ng26\n(S'Variable_Type'\n(I2\nttRp1700\nsS'Y:PMachine114 - CSOVEN31'\np1701\ng26\n(S'Variable_Type'\n(I2\nttRp1702\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np1703\ng26\n(S'Variable_Type'\n(I1\nttRp1704\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np1705\ng26\n(S'Variable_Type'\n(I2\nttRp1706\nsS'Y:PMachine93 - COCANA32'\np1707\ng26\n(S'Variable_Type'\n(I2\nttRp1708\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np1709\ng26\n(S'Variable_Type'\n(I1\nttRp1710\nsS'Y:VBus87 - CLUCCI32'\np1711\ng26\n(S'Variable_Type'\n(I2\nttRp1712\nsS'Y:VBus62 - CCALVI32'\np1713\ng26\n(S'Variable_Type'\n(I2\nttRp1714\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np1715\ng26\n(S'Variable_Type'\n(I1\nttRp1716\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np1717\ng26\n(S'Variable_Type'\n(I1\nttRp1718\nsS'Y:VBus81 - CGHISO32'\np1719\ng26\n(S'Variable_Type'\n(I2\nttRp1720\nsS'Y:PMachine74 - CCERVI31'\np1721\ng26\n(S'Variable_Type'\n(I2\nttRp1722\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np1723\ng26\n(S'Variable_Type'\n(I2\nttRp1724\nsS'Y:VBus86 - CLUCCI31'\np1725\ng26\n(S'Variable_Type'\n(I2\nttRp1726\nsS'X:Load(pu)'\np1727\ng26\n(S'Variable_Type'\n(I2\nttRp1728\nsS'Y:NbeTension'\np1729\ng26\n(S'Variable_Type'\n(I2\nttRp1730\nsS'Y:VBus95 - COCANA34'\np1731\ng26\n(S'Variable_Type'\n(I2\nttRp1732\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np1733\ng26\n(S'Variable_Type'\n(I2\nttRp1734\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np1735\ng26\n(S'Variable_Type'\n(I2\nttRp1736\nsS'Y:Load 95 - COCANA34'\np1737\ng26\n(S'Variable_Type'\n(I2\nttRp1738\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np1739\ng26\n(S'Variable_Type'\n(I1\nttRp1740\nsS'Y:PMachine90 - CMOROS31'\np1741\ng26\n(S'Variable_Type'\n(I2\nttRp1742\nsS'Y:Load 101 - CPIETR31'\np1743\ng26\n(S'Variable_Type'\n(I2\nttRp1744\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np1745\ng26\n(S'Variable_Type'\n(I1\nttRp1746\nsS'Y:PMachine132 - CVAZZI313'\np1747\ng26\n(S'Variable_Type'\n(I2\nttRp1748\nsS'Y:VBus125 - CVAZZI36'\np1749\ng26\n(S'Variable_Type'\n(I2\nttRp1750\nsS'Y:VBus135 - CLUCCI36'\np1751\ng26\n(S'Variable_Type'\n(I2\nttRp1752\nsS'Y:VBus47 - CVAZZI21'\np1753\ng26\n(S'Variable_Type'\n(I2\nttRp1754\nsS'Y:VBus94 - COCANA33'\np1755\ng26\n(S'Variable_Type'\n(I2\nttRp1756\nsS'Y:VBus17 - CCALVI21'\np1757\ng26\n(S'Variable_Type'\n(I2\nttRp1758\nsS'Y:Load 90 - CMOROS31'\np1759\ng26\n(S'Variable_Type'\n(I2\nttRp1760\nsS'Y:VBus120 - CVAZZI31'\np1761\ng26\n(S'Variable_Type'\n(I2\nttRp1762\nsS'X:ProdPV%Pnom'\np1763\ng26\n(S'Variable_Type'\n(I2\nttRp1764\nsS'Y:VBus52 - CASPRE32'\np1765\ng26\n(S'Variable_Type'\n(I2\nttRp1766\nsS'Y:VBus25 - CFURIA22'\np1767\ng26\n(S'Variable_Type'\n(I2\nttRp1768\nsS'Y:Load 76 - CCORTE31'\np1769\ng26\n(S'Variable_Type'\n(I2\nttRp1770\nsS'Y:PMachine69 - CCASAM37'\np1771\ng26\n(S'Variable_Type'\n(I2\nttRp1772\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np1773\ng26\n(S'Variable_Type'\n(I2\nttRp1774\nsS'Y:PMachine92 - COCANA31'\np1775\ng26\n(S'Variable_Type'\n(I2\nttRp1776\nsS'Y:PMachine102 - CPORTO31'\np1777\ng26\n(S'Variable_Type'\n(I2\nttRp1778\nsS'Y:PMachine122 - CVAZZI33'\np1779\ng26\n(S'Variable_Type'\n(I2\nttRp1780\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np1781\ng26\n(S'Variable_Type'\n(I1\nttRp1782\nsS'Y:PMachine63 - CCASAM31'\np1783\ng26\n(S'Variable_Type'\n(I2\nttRp1784\nsS'Y:VBus74 - CCERVI31'\np1785\ng26\n(S'Variable_Type'\n(I2\nttRp1786\nsS'Y:VBus126 - CVAZZI37'\np1787\ng26\n(S'Variable_Type'\n(I2\nttRp1788\nsS'Y:PMachine60 - CCALDA32'\np1789\ng26\n(S'Variable_Type'\n(I2\nttRp1790\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np1791\ng26\n(S'Variable_Type'\n(I1\nttRp1792\nsS'Y:VBus20 - CCERVI21'\np1793\ng26\n(S'Variable_Type'\n(I2\nttRp1794\nsS'Y:VBus119 - CTRAVO31'\np1795\ng26\n(S'Variable_Type'\n(I2\nttRp1796\nsS'Y:VBus11 - CASPRE21'\np1797\ng26\n(S'Variable_Type'\n(I2\nttRp1798\nsS'Y:VBus139 - CLUCCI310'\np1799\ng26\n(S'Variable_Type'\n(I2\nttRp1800\nsS'Y:VBus106 - CRIZZA31'\np1801\ng26\n(S'Variable_Type'\n(I2\nttRp1802\nsS'Y:PMachine66 - CCASAM34'\np1803\ng26\n(S'Variable_Type'\n(I2\nttRp1804\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np1805\ng26\n(S'Variable_Type'\n(I2\nttRp1806\nsS'Y:VBus136 - CLUCCI37'\np1807\ng26\n(S'Variable_Type'\n(I2\nttRp1808\nsS'Y:VBus90 - CMOROS31'\np1809\ng26\n(S'Variable_Type'\n(I2\nttRp1810\nsS'Y:Load 74 - CCERVI31'\np1811\ng26\n(S'Variable_Type'\n(I2\nttRp1812\nsS'X:lineOff#'\np1813\ng26\n(S'Variable_Type'\n(I2\nttRp1814\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np1815\ng26\n(S'Variable_Type'\n(I2\nttRp1816\nsS'Y:VBus108 - CSAGON31'\np1817\ng26\n(S'Variable_Type'\n(I2\nttRp1818\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np1819\ng26\n(S'Variable_Type'\n(I2\nttRp1820\nsS'Y:VBus137 - CLUCCI38'\np1821\ng26\n(S'Variable_Type'\n(I2\nttRp1822\nsS'Y:VBus130 - CVAZZI311'\np1823\ng26\n(S'Variable_Type'\n(I2\nttRp1824\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np1825\ng26\n(S'Variable_Type'\n(I2\nttRp1826\nsS'Y:VBus46 - CTRAVO21'\np1827\ng26\n(S'Variable_Type'\n(I2\nttRp1828\nsS'Y:VBus113 - CSAMPO32'\np1829\ng26\n(S'Variable_Type'\n(I2\nttRp1830\nsS'Y:PMachine133 - CVAZZI314'\np1831\ng26\n(S'Variable_Type'\n(I2\nttRp1832\nsS'Y:PMachine65 - CCASAM33'\np1833\ng26\n(S'Variable_Type'\n(I2\nttRp1834\nsS'Y:VBus78 - CFURIA31'\np1835\ng26\n(S'Variable_Type'\n(I2\nttRp1836\nsS'Y:VBus26 - CGHISO21'\np1837\ng26\n(S'Variable_Type'\n(I2\nttRp1838\nsS'Y:VBus121 - CVAZZI32'\np1839\ng26\n(S'Variable_Type'\n(I2\nttRp1840\nsS'Y:PMachine97 - COCANA36'\np1841\ng26\n(S'Variable_Type'\n(I2\nttRp1842\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np1843\ng26\n(S'Variable_Type'\n(I2\nttRp1844\nsS'Y:PMachine83 - CILERO32'\np1845\ng26\n(S'Variable_Type'\n(I2\nttRp1846\nsS'Y:VBus83 - CILERO32'\np1847\ng26\n(S'Variable_Type'\n(I2\nttRp1848\nsS'Y:VBus66 - CCASAM34'\np1849\ng26\n(S'Variable_Type'\n(I2\nttRp1850\nsS'Y:PMachine1 - CBONIF11'\np1851\ng26\n(S'Variable_Type'\n(I2\nttRp1852\nsS'Y:VBus111 - CSTMAR31'\np1853\ng26\n(S'Variable_Type'\n(I2\nttRp1854\nsS'Y:VBus124 - CVAZZI35'\np1855\ng26\n(S'Variable_Type'\n(I2\nttRp1856\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np1857\ng26\n(S'Variable_Type'\n(I2\nttRp1858\nsS'Y:PMachine131 - CVAZZI312'\np1859\ng26\n(S'Variable_Type'\n(I2\nttRp1860\nsS'Y:VBus44 - CTAGLI21'\np1861\ng26\n(S'Variable_Type'\n(I2\nttRp1862\nsS'Y:VBus88 - CLUCCI33'\np1863\ng26\n(S'Variable_Type'\n(I2\nttRp1864\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np1865\ng26\n(S'Variable_Type'\n(I1\nttRp1866\nsS'Y:VBus38 - CSAGON21'\np1867\ng26\n(S'Variable_Type'\n(I2\nttRp1868\nsS'Y:PMachine81 - CGHISO32'\np1869\ng26\n(S'Variable_Type'\n(I2\nttRp1870\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np1871\ng26\n(S'Variable_Type'\n(I2\nttRp1872\nsS'Y:VBus110 - CSTLUC31'\np1873\ng26\n(S'Variable_Type'\n(I2\nttRp1874\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np1875\ng26\n(S'Variable_Type'\n(I2\nttRp1876\nssg628\n(dp1877\nsg630\n(dp1878\nS'attribute'\np1879\n(S'XProdEolienne%Pnom'\np1880\ng1286\ntp1881\nsS'yaxisTitle'\np1882\n(g636\nI0\ntp1883\nsS'xaxisTitle'\np1884\n(g1880\ng1286\ntp1885\nsS'mainTitle'\np1886\n(S''\nI0\ntp1887\nsS'yPaxisTitle'\np1888\n(S''\nI0\ntp1889\nsS'targetValue'\np1890\n(NI-2\ntp1891\nsS'visibleOutcomes'\np1892\n((lI-2\ntp1893\nssg648\nF1369988696.1170001\nsba(iOWContexts\nContext\np1894\n(dp1895\ng20\n(lp1896\ng1270\nasg23\n(dp1897\nS'Y:VBus48'\np1898\ng26\n(S'Variable_Type'\n(I2\nttRp1899\nsS'Y15:%RateA 18-44'\np1900\ng26\n(S'Variable_Type'\n(I2\nttRp1901\nsS'Y:VBus41'\np1902\ng26\n(S'Variable_Type'\n(I2\nttRp1903\nsS'Y:VBus40'\np1904\ng26\n(S'Variable_Type'\n(I2\nttRp1905\nsS'Y:VBus43'\np1906\ng26\n(S'Variable_Type'\n(I2\nttRp1907\nsS'Y:VBus42'\np1908\ng26\n(S'Variable_Type'\n(I2\nttRp1909\nsS'Y:VBus45'\np1910\ng26\n(S'Variable_Type'\n(I2\nttRp1911\nsS'Y:VBus44'\np1912\ng26\n(S'Variable_Type'\n(I2\nttRp1913\nsS'Y:VBus47'\np1914\ng26\n(S'Variable_Type'\n(I2\nttRp1915\nsS'Y:VBus46'\np1916\ng26\n(S'Variable_Type'\n(I2\nttRp1917\nsS'Y39:%RateA 32-45'\np1918\ng26\n(S'Variable_Type'\n(I2\nttRp1919\nsS'Y:Load 110'\np1920\ng26\n(S'Variable_Type'\n(I2\nttRp1921\nsS'Y:Load 115'\np1922\ng26\n(S'Variable_Type'\n(I2\nttRp1923\nsS'Y:VBus79'\np1924\ng26\n(S'Variable_Type'\n(I2\nttRp1925\nsS'Y13:%RateA 18-30'\np1926\ng26\n(S'Variable_Type'\n(I2\nttRp1927\nsS'Y34:%RateA 28-38'\np1928\ng26\n(S'Variable_Type'\n(I2\nttRp1929\nsS'Y:NbeTransit'\np1930\ng26\n(S'Variable_Type'\n(I1\nttRp1931\nsS'Y:VBus104'\np1932\ng26\n(S'Variable_Type'\n(I2\nttRp1933\nsS'Y20:%RateA 20-44'\np1934\ng26\n(S'Variable_Type'\n(I2\nttRp1935\nsS'Y38:%RateA 32-45'\np1936\ng26\n(S'Variable_Type'\n(I2\nttRp1937\nsS'Y:PMachine73'\np1938\ng26\n(S'Variable_Type'\n(I2\nttRp1939\nsS'Y:PMachine72'\np1940\ng26\n(S'Variable_Type'\n(I2\nttRp1941\nsS'Y49:%RateA 40-48'\np1942\ng26\n(S'Variable_Type'\n(I2\nttRp1943\nsS'Y:PMachine77'\np1944\ng26\n(S'Variable_Type'\n(I2\nttRp1945\nsS'Y:PMachine75'\np1946\ng26\n(S'Variable_Type'\n(I2\nttRp1947\nsS'Y:PMachine74'\np1948\ng26\n(S'Variable_Type'\n(I2\nttRp1949\nsS'Y:PMachine78'\np1950\ng26\n(S'Variable_Type'\n(I1\nttRp1951\nsS'Y:PMachine138'\np1952\ng26\n(S'Variable_Type'\n(I1\nttRp1953\nsS'Y28:%RateA 24-42'\np1954\ng26\n(S'Variable_Type'\n(I2\nttRp1955\nsS'Y:PProdTot'\np1956\ng26\n(S'Variable_Type'\n(I2\nttRp1957\nsS'Y:PMachine69'\np1958\ng26\n(S'Variable_Type'\n(I2\nttRp1959\nsS'Y:VBus38'\np1960\ng26\n(S'Variable_Type'\n(I2\nttRp1961\nsS'Y:VBus39'\np1962\ng26\n(S'Variable_Type'\n(I2\nttRp1963\nsS'Y62:%RateA 86-87'\np1964\ng26\n(S'Variable_Type'\n(I1\nttRp1965\nsS'Y:PMachine1'\np1966\ng26\n(S'Variable_Type'\n(I2\nttRp1967\nsS'Y:VBus35'\np1968\ng26\n(S'Variable_Type'\n(I2\nttRp1969\nsS'Y:VBus36'\np1970\ng26\n(S'Variable_Type'\n(I2\nttRp1971\nsS'Y:VBus37'\np1972\ng26\n(S'Variable_Type'\n(I2\nttRp1973\nsS'Y:VBus30'\np1974\ng26\n(S'Variable_Type'\n(I2\nttRp1975\nsS'Y:VBus31'\np1976\ng26\n(S'Variable_Type'\n(I2\nttRp1977\nsS'Y:VBus32'\np1978\ng26\n(S'Variable_Type'\n(I2\nttRp1979\nsS'Y:VBus33'\np1980\ng26\n(S'Variable_Type'\n(I2\nttRp1981\nsS'Y53:%RateA 57-58'\np1982\ng26\n(S'Variable_Type'\n(I1\nttRp1983\nsS'Y14:%RateA 18-31'\np1984\ng26\n(S'Variable_Type'\n(I2\nttRp1985\nsS'Y48:%RateA 39-46'\np1986\ng26\n(S'Variable_Type'\n(I2\nttRp1987\nsS'Y60:%RateA 82-83'\np1988\ng26\n(S'Variable_Type'\n(I1\nttRp1989\nsS'Y:PMachine87'\np1990\ng26\n(S'Variable_Type'\n(I2\nttRp1991\nsS'Y:VBus121'\np1992\ng26\n(S'Variable_Type'\n(I2\nttRp1993\nsS'Y:VBus120'\np1994\ng26\n(S'Variable_Type'\n(I2\nttRp1995\nsS'Y:VBus123'\np1996\ng26\n(S'Variable_Type'\n(I2\nttRp1997\nsS'Y:VBus122'\np1998\ng26\n(S'Variable_Type'\n(I2\nttRp1999\nsS'Y:VBus125'\np2000\ng26\n(S'Variable_Type'\n(I2\nttRp2001\nsS'Y:VBus124'\np2002\ng26\n(S'Variable_Type'\n(I2\nttRp2003\nsS'Y:VBus127'\np2004\ng26\n(S'Variable_Type'\n(I2\nttRp2005\nsS'Y:VBus126'\np2006\ng26\n(S'Variable_Type'\n(I2\nttRp2007\nsS'Y:VBus129'\np2008\ng26\n(S'Variable_Type'\n(I2\nttRp2009\nsS'Y:VBus128'\np2010\ng26\n(S'Variable_Type'\n(I2\nttRp2011\nsS'Y37:%RateA 32-34'\np2012\ng26\n(S'Variable_Type'\n(I2\nttRp2013\nsS'Y43:%RateA 35-37'\np2014\ng26\n(S'Variable_Type'\n(I2\nttRp2015\nsS'Y:PMachine42'\np2016\ng26\n(S'Variable_Type'\n(I2\nttRp2017\nsS'Y0:%RateA 11-28'\np2018\ng26\n(S'Variable_Type'\n(I2\nttRp2019\nsS'Y:VBus67'\np2020\ng26\n(S'Variable_Type'\n(I2\nttRp2021\nsS'Y:Load 37'\np2022\ng26\n(S'Variable_Type'\n(I2\nttRp2023\nsS'Y65:%RateA 104-105'\np2024\ng26\n(S'Variable_Type'\n(I1\nttRp2025\nsS'Y40:%RateA 32-47'\np2026\ng26\n(S'Variable_Type'\n(I2\nttRp2027\nsS'Y:PMachine47'\np2028\ng26\n(S'Variable_Type'\n(I2\nttRp2029\nsS'Y6:%RateA 14-15'\np2030\ng26\n(S'Variable_Type'\n(I1\nttRp2031\nsS'Y:VBus1'\np2032\ng26\n(S'Variable_Type'\n(I2\nttRp2033\nsS'Y44:%RateA 35-39'\np2034\ng26\n(S'Variable_Type'\n(I2\nttRp2035\nsS'Y:PMachine88'\np2036\ng26\n(S'Variable_Type'\n(I1\nttRp2037\nsS'Y42:%RateA 34-36'\np2038\ng26\n(S'Variable_Type'\n(I2\nttRp2039\nsS'Y57:%RateA 76-77'\np2040\ng26\n(S'Variable_Type'\n(I1\nttRp2041\nsS'Y:PMachine89'\np2042\ng26\n(S'Variable_Type'\n(I1\nttRp2043\nsS'Y:VBus77'\np2044\ng26\n(S'Variable_Type'\n(I2\nttRp2045\nsS'Y:VBus29'\np2046\ng26\n(S'Variable_Type'\n(I2\nttRp2047\nsS'Y:VBus28'\np2048\ng26\n(S'Variable_Type'\n(I2\nttRp2049\nsS'Y:VBus27'\np2050\ng26\n(S'Variable_Type'\n(I2\nttRp2051\nsS'Y:VBus26'\np2052\ng26\n(S'Variable_Type'\n(I2\nttRp2053\nsS'Y:VBus25'\np2054\ng26\n(S'Variable_Type'\n(I2\nttRp2055\nsS'Y:VBus24'\np2056\ng26\n(S'Variable_Type'\n(I2\nttRp2057\nsS'Y:VBus23'\np2058\ng26\n(S'Variable_Type'\n(I2\nttRp2059\nsS'Y:VBus22'\np2060\ng26\n(S'Variable_Type'\n(I2\nttRp2061\nsS'Y:VBus21'\np2062\ng26\n(S'Variable_Type'\n(I2\nttRp2063\nsS'Y:VBus20'\np2064\ng26\n(S'Variable_Type'\n(I2\nttRp2065\nsS'Y:VBus85'\np2066\ng26\n(S'Variable_Type'\n(I2\nttRp2067\nsS'Y:VBus84'\np2068\ng26\n(S'Variable_Type'\n(I2\nttRp2069\nsS'Y52:%RateA 55-56'\np2070\ng26\n(S'Variable_Type'\n(I1\nttRp2071\nsS'Y2:%RateA 12-24'\np2072\ng26\n(S'Variable_Type'\n(I2\nttRp2073\nsS'Y:VBus112'\np2074\ng26\n(S'Variable_Type'\n(I2\nttRp2075\nsS'Y:VBus132'\np2076\ng26\n(S'Variable_Type'\n(I2\nttRp2077\nsS'Y:PMachine58'\np2078\ng26\n(S'Variable_Type'\n(I2\nttRp2079\nsS'Y:VBus130'\np2080\ng26\n(S'Variable_Type'\n(I2\nttRp2081\nsS'Y:VBus131'\np2082\ng26\n(S'Variable_Type'\n(I2\nttRp2083\nsS'Y:VBus136'\np2084\ng26\n(S'Variable_Type'\n(I2\nttRp2085\nsS'Y:VBus137'\np2086\ng26\n(S'Variable_Type'\n(I2\nttRp2087\nsS'Y:VBus134'\np2088\ng26\n(S'Variable_Type'\n(I2\nttRp2089\nsS'Y:VBus135'\np2090\ng26\n(S'Variable_Type'\n(I2\nttRp2091\nsS'Y:VBus81'\np2092\ng26\n(S'Variable_Type'\n(I2\nttRp2093\nsS'Y:PMachine53'\np2094\ng26\n(S'Variable_Type'\n(I2\nttRp2095\nsS'Y:VBus139'\np2096\ng26\n(S'Variable_Type'\n(I2\nttRp2097\nsS'Y30:%RateA 25-29'\np2098\ng26\n(S'Variable_Type'\n(I2\nttRp2099\nsS'Y:VBus115'\np2100\ng26\n(S'Variable_Type'\n(I2\nttRp2101\nsS'Y:PMachine124'\np2102\ng26\n(S'Variable_Type'\n(I2\nttRp2103\nsS'Y:VBus83'\np2104\ng26\n(S'Variable_Type'\n(I2\nttRp2105\nsS'Y66:%RateA 106-107'\np2106\ng26\n(S'Variable_Type'\n(I1\nttRp2107\nsS'Y25:%RateA 23-41'\np2108\ng26\n(S'Variable_Type'\n(I2\nttRp2109\nsS'Y:%Losses'\np2110\ng26\n(S'Variable_Type'\n(I2\nttRp2111\nsS'Y:VBus12'\np2112\ng26\n(S'Variable_Type'\n(I2\nttRp2113\nsS'Y:VBus13'\np2114\ng26\n(S'Variable_Type'\n(I2\nttRp2115\nsS'Y50:%RateA 51-52'\np2116\ng26\n(S'Variable_Type'\n(I1\nttRp2117\nsS'Y:VBus11'\np2118\ng26\n(S'Variable_Type'\n(I2\nttRp2119\nsS'Y:VBus16'\np2120\ng26\n(S'Variable_Type'\n(I2\nttRp2121\nsS'Y:VBus17'\np2122\ng26\n(S'Variable_Type'\n(I2\nttRp2123\nsS'Y:VBus14'\np2124\ng26\n(S'Variable_Type'\n(I2\nttRp2125\nsS'Y:VBus15'\np2126\ng26\n(S'Variable_Type'\n(I2\nttRp2127\nsS'Y:VBus113'\np2128\ng26\n(S'Variable_Type'\n(I2\nttRp2129\nsS'Y:PMachine120'\np2130\ng26\n(S'Variable_Type'\n(I2\nttRp2131\nsS'Y:VBus18'\np2132\ng26\n(S'Variable_Type'\n(I2\nttRp2133\nsS'Y:VBus19'\np2134\ng26\n(S'Variable_Type'\n(I2\nttRp2135\nsS'Y4:%RateA 13-25'\np2136\ng26\n(S'Variable_Type'\n(I2\nttRp2137\nsS'Y35:%RateA 28-47'\np2138\ng26\n(S'Variable_Type'\n(I2\nttRp2139\nsS'Y:PMachine122'\np2140\ng26\n(S'Variable_Type'\n(I2\nttRp2141\nsS'Y16:%RateA 19-21'\np2142\ng26\n(S'Variable_Type'\n(I2\nttRp2143\nsS'Y:VBus92'\np2144\ng26\n(S'Variable_Type'\n(I2\nttRp2145\nsS'Y7:%RateA 14-35'\np2146\ng26\n(S'Variable_Type'\n(I2\nttRp2147\nsS'Y:VBus90'\np2148\ng26\n(S'Variable_Type'\n(I2\nttRp2149\nsS'Y:VBus96'\np2150\ng26\n(S'Variable_Type'\n(I2\nttRp2151\nsS'Y:VBus97'\np2152\ng26\n(S'Variable_Type'\n(I2\nttRp2153\nsS'Y:VBus94'\np2154\ng26\n(S'Variable_Type'\n(I2\nttRp2155\nsS'Y:VBus95'\np2156\ng26\n(S'Variable_Type'\n(I2\nttRp2157\nsS'Y:VBus107'\np2158\ng26\n(S'Variable_Type'\n(I2\nttRp2159\nsS'Y:VBus106'\np2160\ng26\n(S'Variable_Type'\n(I2\nttRp2161\nsS'Y:VBus105'\np2162\ng26\n(S'Variable_Type'\n(I2\nttRp2163\nsS'Y22:%RateA 22-23'\np2164\ng26\n(S'Variable_Type'\n(I1\nttRp2165\nsS'Y:VBus103'\np2166\ng26\n(S'Variable_Type'\n(I2\nttRp2167\nsS'Y:VBus102'\np2168\ng26\n(S'Variable_Type'\n(I2\nttRp2169\nsS'Y:VBus101'\np2170\ng26\n(S'Variable_Type'\n(I2\nttRp2171\nsS'Y:VBus100'\np2172\ng26\n(S'Variable_Type'\n(I2\nttRp2173\nsS'Y:Load 55'\np2174\ng26\n(S'Variable_Type'\n(I2\nttRp2175\nsS'Y:Load 57'\np2176\ng26\n(S'Variable_Type'\n(I2\nttRp2177\nsS'Y:Load 51'\np2178\ng26\n(S'Variable_Type'\n(I2\nttRp2179\nsS'Y:VBus54'\np2180\ng26\n(S'Variable_Type'\n(I2\nttRp2181\nsS'Y:VBus109'\np2182\ng26\n(S'Variable_Type'\n(I2\nttRp2183\nsS'Y46:%RateA 36-48'\np2184\ng26\n(S'Variable_Type'\n(I2\nttRp2185\nsS'Y:Load 80'\np2186\ng26\n(S'Variable_Type'\n(I2\nttRp2187\nsS'Y:PMachine133'\np2188\ng26\n(S'Variable_Type'\n(I2\nttRp2189\nsS'Y:VBus55'\np2190\ng26\n(S'Variable_Type'\n(I2\nttRp2191\nsS'Y:PMachine29'\np2192\ng26\n(S'Variable_Type'\n(I1\nttRp2193\nsS'Y24:%RateA 23-32'\np2194\ng26\n(S'Variable_Type'\n(I2\nttRp2195\nsS'X:lineOff#'\np2196\ng26\n(S'Variable_Type'\n(I2\nttRp2197\nsS'Y:Max%A'\np2198\ng26\n(S'Variable_Type'\n(I2\nttRp2199\nsS'Y:NbeTransit_0.9-1'\np2200\ng26\n(S'Variable_Type'\n(I1\nttRp2201\nsS'XProdEolienne%Pnom'\np2202\ng26\n(S'Variable_Type'\n(I2\nttRp2203\nsS'Y33:%RateA 27-33'\np2204\ng26\n(S'Variable_Type'\n(I2\nttRp2205\nsS'Y59:%RateA 80-81'\np2206\ng26\n(S'Variable_Type'\n(I1\nttRp2207\nsS'Y:VBus65'\np2208\ng26\n(S'Variable_Type'\n(I2\nttRp2209\nsS'Y:VBus118'\np2210\ng26\n(S'Variable_Type'\n(I2\nttRp2211\nsS'Y:VBus119'\np2212\ng26\n(S'Variable_Type'\n(I2\nttRp2213\nsS'Y:PMachine117'\np2214\ng26\n(S'Variable_Type'\n(I2\nttRp2215\nsS'Y:PMachine116'\np2216\ng26\n(S'Variable_Type'\n(I2\nttRp2217\nsS'Y:PMachine111'\np2218\ng26\n(S'Variable_Type'\n(I2\nttRp2219\nsS'Y:VBus88'\np2220\ng26\n(S'Variable_Type'\n(I2\nttRp2221\nsS'Y:PMachine113'\np2222\ng26\n(S'Variable_Type'\n(I2\nttRp2223\nsS'Y:VBus93'\np2224\ng26\n(S'Variable_Type'\n(I2\nttRp2225\nsS'Y:VBus110'\np2226\ng26\n(S'Variable_Type'\n(I2\nttRp2227\nsS'Y:VBus111'\np2228\ng26\n(S'Variable_Type'\n(I2\nttRp2229\nsS'Y:VBus87'\np2230\ng26\n(S'Variable_Type'\n(I2\nttRp2231\nsS'Y12:%RateA 18-30'\np2232\ng26\n(S'Variable_Type'\n(I2\nttRp2233\nsS'Y:VBus114'\np2234\ng26\n(S'Variable_Type'\n(I2\nttRp2235\nsS'Y:VBus80'\np2236\ng26\n(S'Variable_Type'\n(I2\nttRp2237\nsS'Y:VBus116'\np2238\ng26\n(S'Variable_Type'\n(I2\nttRp2239\nsS'Y:VBus82'\np2240\ng26\n(S'Variable_Type'\n(I2\nttRp2241\nsS'Y61:%RateA 84-85'\np2242\ng26\n(S'Variable_Type'\n(I1\nttRp2243\nsS'Y31:%RateA 26-41'\np2244\ng26\n(S'Variable_Type'\n(I2\nttRp2245\nsS'Y:PMachine131'\np2246\ng26\n(S'Variable_Type'\n(I2\nttRp2247\nsS'Y47:%RateA 38-43'\np2248\ng26\n(S'Variable_Type'\n(I2\nttRp2249\nsS'Y:Load 42'\np2250\ng26\n(S'Variable_Type'\n(I2\nttRp2251\nsS'Y:PMachine85'\np2252\ng26\n(S'Variable_Type'\n(I2\nttRp2253\nsS'Y32:%RateA 26-46'\np2254\ng26\n(S'Variable_Type'\n(I2\nttRp2255\nsS'Y:PMachine132'\np2256\ng26\n(S'Variable_Type'\n(I2\nttRp2257\nsS'Y18:%RateA 19-27'\np2258\ng26\n(S'Variable_Type'\n(I2\nttRp2259\nsS'Y:VBus86'\np2260\ng26\n(S'Variable_Type'\n(I2\nttRp2261\nsS'Y63:%RateA 95-96'\np2262\ng26\n(S'Variable_Type'\n(I1\nttRp2263\nsS'Y17:%RateA 19-22'\np2264\ng26\n(S'Variable_Type'\n(I2\nttRp2265\nsS'Y41:%RateA 32-48'\np2266\ng26\n(S'Variable_Type'\n(I2\nttRp2267\nsS'Y:PMachine30'\np2268\ng26\n(S'Variable_Type'\n(I2\nttRp2269\nsS'Y:VBus117'\np2270\ng26\n(S'Variable_Type'\n(I2\nttRp2271\nsS'Y56:%RateA 72-73'\np2272\ng26\n(S'Variable_Type'\n(I1\nttRp2273\nsS'Y68:%RateA 112-113'\np2274\ng26\n(S'Variable_Type'\n(I1\nttRp2275\nsS'Y:PMachine130'\np2276\ng26\n(S'Variable_Type'\n(I2\nttRp2277\nsS'Y27:%RateA 24-33'\np2278\ng26\n(S'Variable_Type'\n(I2\nttRp2279\nsS'Y:PMachine106'\np2280\ng26\n(S'Variable_Type'\n(I2\nttRp2281\nsS'Y:PMachine107'\np2282\ng26\n(S'Variable_Type'\n(I2\nttRp2283\nsS'Y:PMachine104'\np2284\ng26\n(S'Variable_Type'\n(I2\nttRp2285\nsS'Y:VBus73'\np2286\ng26\n(S'Variable_Type'\n(I2\nttRp2287\nsS'Y:VBus74'\np2288\ng26\n(S'Variable_Type'\n(I2\nttRp2289\nsS'Y:VBus75'\np2290\ng26\n(S'Variable_Type'\n(I2\nttRp2291\nsS'Y:VBus76'\np2292\ng26\n(S'Variable_Type'\n(I2\nttRp2293\nsS'Y:PMachine101'\np2294\ng26\n(S'Variable_Type'\n(I2\nttRp2295\nsS'Y:VBus78'\np2296\ng26\n(S'Variable_Type'\n(I2\nttRp2297\nsS'Y:Load 59'\np2298\ng26\n(S'Variable_Type'\n(I2\nttRp2299\nsS'Y:PMachine115'\np2300\ng26\n(S'Variable_Type'\n(I2\nttRp2301\nsS'Y51:%RateA 53-54'\np2302\ng26\n(S'Variable_Type'\n(I1\nttRp2303\nsS'Y67:%RateA 108-109'\np2304\ng26\n(S'Variable_Type'\n(I1\nttRp2305\nsS'Y:PMachine109'\np2306\ng26\n(S'Variable_Type'\n(I2\nttRp2307\nsS'Y:PMachine83'\np2308\ng26\n(S'Variable_Type'\n(I2\nttRp2309\nsS'Y:PMachine81'\np2310\ng26\n(S'Variable_Type'\n(I2\nttRp2311\nsS'Y:PMachine86'\np2312\ng26\n(S'Variable_Type'\n(I2\nttRp2313\nsS'Y:Load 76'\np2314\ng26\n(S'Variable_Type'\n(I2\nttRp2315\nsS'Y:Load 74'\np2316\ng26\n(S'Variable_Type'\n(I2\nttRp2317\nsS'Y45:%RateA 36-37'\np2318\ng26\n(S'Variable_Type'\n(I2\nttRp2319\nsS'Y58:%RateA 78-79'\np2320\ng26\n(S'Variable_Type'\n(I1\nttRp2321\nsS'Y:Load 78'\np2322\ng26\n(S'Variable_Type'\n(I2\nttRp2323\nsS'X:Load(pu)'\np2324\ng26\n(S'Variable_Type'\n(I2\nttRp2325\nsS'Y5:%RateA 13-29'\np2326\ng26\n(S'Variable_Type'\n(I2\nttRp2327\nsS'Y:PMachine118'\np2328\ng26\n(S'Variable_Type'\n(I2\nttRp2329\nsS'Y1:%RateA 11-47'\np2330\ng26\n(S'Variable_Type'\n(I2\nttRp2331\nsS'Y:VBus60'\np2332\ng26\n(S'Variable_Type'\n(I2\nttRp2333\nsS'Y:PMachine137'\np2334\ng26\n(S'Variable_Type'\n(I1\nttRp2335\nsS'Y29:%RateA 25-29'\np2336\ng26\n(S'Variable_Type'\n(I2\nttRp2337\nsS'Y:VBus66'\np2338\ng26\n(S'Variable_Type'\n(I2\nttRp2339\nsS'Iteration'\np2340\ng26\n(S'Variable_Type'\n(I2\nttRp2341\nsS'Y36:%RateA 29-30'\np2342\ng26\n(S'Variable_Type'\n(I1\nttRp2343\nsS'Y54:%RateA 59-60'\np2344\ng26\n(S'Variable_Type'\n(I1\nttRp2345\nsS'Y:Load 90'\np2346\ng26\n(S'Variable_Type'\n(I2\nttRp2347\nsS'Y9:%RateA 16-32'\np2348\ng26\n(S'Variable_Type'\n(I2\nttRp2349\nsS'Y:PMachine134'\np2350\ng26\n(S'Variable_Type'\n(I1\nttRp2351\nsS'Y:Load 95'\np2352\ng26\n(S'Variable_Type'\n(I2\nttRp2353\nsS'Y:VBus63'\np2354\ng26\n(S'Variable_Type'\n(I2\nttRp2355\nsS'Y:VBus62'\np2356\ng26\n(S'Variable_Type'\n(I2\nttRp2357\nsS'Y:VBus61'\np2358\ng26\n(S'Variable_Type'\n(I2\nttRp2359\nsS'Y55:%RateA 61-62'\np2360\ng26\n(S'Variable_Type'\n(I1\nttRp2361\nsS'Y8:%RateA 15-35'\np2362\ng26\n(S'Variable_Type'\n(I2\nttRp2363\nsS'Y:PMachine136'\np2364\ng26\n(S'Variable_Type'\n(I1\nttRp2365\nsS'Y:PMachine135'\np2366\ng26\n(S'Variable_Type'\n(I1\nttRp2367\nsS'Y:VBus64'\np2368\ng26\n(S'Variable_Type'\n(I2\nttRp2369\nsS'Y:PMachine94'\np2370\ng26\n(S'Variable_Type'\n(I2\nttRp2371\nsS'Y:VBus69'\np2372\ng26\n(S'Variable_Type'\n(I2\nttRp2373\nsS'Y:VBus108'\np2374\ng26\n(S'Variable_Type'\n(I2\nttRp2375\nsS'Y:PMachine139'\np2376\ng26\n(S'Variable_Type'\n(I1\nttRp2377\nsS'Y:PMachine97'\np2378\ng26\n(S'Variable_Type'\n(I2\nttRp2379\nsS'Y:PMachine92'\np2380\ng26\n(S'Variable_Type'\n(I2\nttRp2381\nsS'Y:VBus68'\np2382\ng26\n(S'Variable_Type'\n(I2\nttRp2383\nsS'Y:Load 61'\np2384\ng26\n(S'Variable_Type'\n(I2\nttRp2385\nsS'Y:VBus89'\np2386\ng26\n(S'Variable_Type'\n(I2\nttRp2387\nsS'Y21:%RateA 21-43'\np2388\ng26\n(S'Variable_Type'\n(I2\nttRp2389\nsS'Y:PMachine90'\np2390\ng26\n(S'Variable_Type'\n(I2\nttRp2391\nsS'Y:PMachine14'\np2392\ng26\n(S'Variable_Type'\n(I2\nttRp2393\nsS'Y:PMachine63'\np2394\ng26\n(S'Variable_Type'\n(I2\nttRp2395\nsS'Y:PMachine93'\np2396\ng26\n(S'Variable_Type'\n(I2\nttRp2397\nsS'Y:PConsoTot'\np2398\ng26\n(S'Variable_Type'\n(I2\nttRp2399\nsS'Y23:%RateA 22-31'\np2400\ng26\n(S'Variable_Type'\n(I2\nttRp2401\nsS'Y19:%RateA 20-26'\np2402\ng26\n(S'Variable_Type'\n(I2\nttRp2403\nsS'Y:PMachine18'\np2404\ng26\n(S'Variable_Type'\n(I2\nttRp2405\nsS'Y:VBus34'\np2406\ng26\n(S'Variable_Type'\n(I2\nttRp2407\nsS'Y:NbeTension'\np2408\ng26\n(S'Variable_Type'\n(I2\nttRp2409\nsS'Y:PMachine128'\np2410\ng26\n(S'Variable_Type'\n(I2\nttRp2411\nsS'Y:PMachine129'\np2412\ng26\n(S'Variable_Type'\n(I2\nttRp2413\nsS'Y:VBus133'\np2414\ng26\n(S'Variable_Type'\n(I2\nttRp2415\nsS'Y:Load 82'\np2416\ng26\n(S'Variable_Type'\n(I2\nttRp2417\nsS'Y:PMachine125'\np2418\ng26\n(S'Variable_Type'\n(I2\nttRp2419\nsS'Y:PMachine126'\np2420\ng26\n(S'Variable_Type'\n(I2\nttRp2421\nsS'Y:PMachine127'\np2422\ng26\n(S'Variable_Type'\n(I2\nttRp2423\nsS'Y:Load 86'\np2424\ng26\n(S'Variable_Type'\n(I2\nttRp2425\nsS'Y:PMachine121'\np2426\ng26\n(S'Variable_Type'\n(I2\nttRp2427\nsS'Y:Load 84'\np2428\ng26\n(S'Variable_Type'\n(I2\nttRp2429\nsS'Y:PMachine123'\np2430\ng26\n(S'Variable_Type'\n(I2\nttRp2431\nsS'Y:Load 102'\np2432\ng26\n(S'Variable_Type'\n(I2\nttRp2433\nsS'Y:VBus57'\np2434\ng26\n(S'Variable_Type'\n(I2\nttRp2435\nsS'Y:Load 100'\np2436\ng26\n(S'Variable_Type'\n(I2\nttRp2437\nsS'Y:Load 101'\np2438\ng26\n(S'Variable_Type'\n(I2\nttRp2439\nsS'Y:VBus52'\np2440\ng26\n(S'Variable_Type'\n(I2\nttRp2441\nsS'Y:VBus53'\np2442\ng26\n(S'Variable_Type'\n(I2\nttRp2443\nsS'Y:Load 104'\np2444\ng26\n(S'Variable_Type'\n(I2\nttRp2445\nsS'Y:VBus51'\np2446\ng26\n(S'Variable_Type'\n(I2\nttRp2447\nsS'Y:Load 108'\np2448\ng26\n(S'Variable_Type'\n(I2\nttRp2449\nsS'Y64:%RateA 102-103'\np2450\ng26\n(S'Variable_Type'\n(I1\nttRp2451\nsS'Y:PMachine112'\np2452\ng26\n(S'Variable_Type'\n(I2\nttRp2453\nsS'Y:VBus58'\np2454\ng26\n(S'Variable_Type'\n(I2\nttRp2455\nsS'Y:VBus59'\np2456\ng26\n(S'Variable_Type'\n(I2\nttRp2457\nsS'Y:Load 53'\np2458\ng26\n(S'Variable_Type'\n(I2\nttRp2459\nsS'Y10:%RateA 16-47'\np2460\ng26\n(S'Variable_Type'\n(I2\nttRp2461\nsS'Y:PMachine54'\np2462\ng26\n(S'Variable_Type'\n(I2\nttRp2463\nsS'Y:VBus56'\np2464\ng26\n(S'Variable_Type'\n(I2\nttRp2465\nsS'Y3:%RateA 12-24'\np2466\ng26\n(S'Variable_Type'\n(I2\nttRp2467\nsS'Y11:%RateA 17-27'\np2468\ng26\n(S'Variable_Type'\n(I2\nttRp2469\nsS'Y:PMachine114'\np2470\ng26\n(S'Variable_Type'\n(I2\nttRp2471\nsS'Y:VBus72'\np2472\ng26\n(S'Variable_Type'\n(I2\nttRp2473\nsS'Y:PMachine60'\np2474\ng26\n(S'Variable_Type'\n(I2\nttRp2475\nsS'Y:PMachine61'\np2476\ng26\n(S'Variable_Type'\n(I1\nttRp2477\nsS'Y:PMachine62'\np2478\ng26\n(S'Variable_Type'\n(I2\nttRp2479\nsS'Y:PMachine105'\np2480\ng26\n(S'Variable_Type'\n(I2\nttRp2481\nsS'Y:PMachine64'\np2482\ng26\n(S'Variable_Type'\n(I2\nttRp2483\nsS'Y:PMachine65'\np2484\ng26\n(S'Variable_Type'\n(I2\nttRp2485\nsS'Y:PMachine66'\np2486\ng26\n(S'Variable_Type'\n(I2\nttRp2487\nsS'Y:PMachine67'\np2488\ng26\n(S'Variable_Type'\n(I2\nttRp2489\nsS'Y:PMachine68'\np2490\ng26\n(S'Variable_Type'\n(I2\nttRp2491\nsS'Y:PMachine102'\np2492\ng26\n(S'Variable_Type'\n(I2\nttRp2493\nsS'X:ProdPV%Pnom'\np2494\ng26\n(S'Variable_Type'\n(I2\nttRp2495\nsS'Y:VBus138'\np2496\ng26\n(S'Variable_Type'\n(I2\nttRp2497\nsS'Y26:%RateA 24-25'\np2498\ng26\n(S'Variable_Type'\n(I1\nttRp2499\nssg628\n(dp2500\nsg630\n(dp2501\ng1879\n(S'Y:PMachine18'\np2502\ng2405\ntp2503\nsg1882\n(g636\nI0\ntp2504\nsg1884\n(g2502\ng2405\ntp2505\nsg1886\n(S''\nI0\ntp2506\nsg1888\n(S''\nI0\ntp2507\nsg1890\n(NI-2\ntp2508\nsg1892\n((lI-2\ntp2509\nssg648\nF1369930725.322\nsba(iOWContexts\nContext\np2510\n(dp2511\ng20\n(lp2512\nS'orderedDomain'\np2513\nasg23\n(dp2514\nS'X:Interco(bin)'\np2515\ng26\n(S'Variable_Type'\n(I1\nttRp2516\nsS'X:Load(pu)'\np2517\ng26\n(S'Variable_Type'\n(I2\nttRp2518\nsS'X:ProdEolienne%Pnom'\np2519\ng26\n(S'Variable_Type'\n(I2\nttRp2520\nssg628\n(dp2521\nsg630\n(dp2522\nS'attribute'\np2523\n(S'X:Load(pu)'\np2524\ng2518\ntp2525\nsS'yaxisTitle'\np2526\n(S'frequency'\nI0\ntp2527\nsS'xaxisTitle'\np2528\n(g2524\ng2518\ntp2529\nsS'mainTitle'\np2530\n(S''\nI0\ntp2531\nsS'yPaxisTitle'\np2532\n(S''\nI0\ntp2533\nsS'targetValue'\np2534\n(NI-2\ntp2535\nsS'visibleOutcomes'\np2536\n((lI-2\ntp2537\nssg648\nF1368453819.7379999\nsba(iOWContexts\nContext\np2538\n(dp2539\ng630\n(dp2540\nS'attribute'\np2541\n(S'Y:%RateA 104-105'\np2542\ng26\n(S'Variable_Type'\n(I1\nttRp2543\ntp2544\nsS'yaxisTitle'\np2545\n(S'frequency'\nI0\ntp2546\nsS'xaxisTitle'\np2547\n(g2542\ng2543\ntp2548\nsS'mainTitle'\np2549\n(S''\nI0\ntp2550\nsS'yPaxisTitle'\np2551\n(S''\nI0\ntp2552\nsS'targetValue'\np2553\n(I1\nI-2\ntp2554\nsS'visibleOutcomes'\np2555\n((lp2556\nI0\naI-2\ntp2557\nssg23\n(dp2558\nS'Y:NbeTension'\np2559\ng26\n(S'Variable_Type'\n(I1\nttRp2560\nsS'Y:%RateA 29-30'\np2561\ng26\n(S'Variable_Type'\n(I1\nttRp2562\nsS'Y:%RateA 61-62'\np2563\ng26\n(S'Variable_Type'\n(I1\nttRp2564\nsS'Y:%RateA 76-77'\np2565\ng26\n(S'Variable_Type'\n(I1\nttRp2566\nsS'Y:PMachine114'\np2567\ng26\n(S'Variable_Type'\n(I1\nttRp2568\nsS'Y:%RateA 55-56'\np2569\ng26\n(S'Variable_Type'\n(I1\nttRp2570\nsS'Y:%RateA 59-60'\np2571\ng26\n(S'Variable_Type'\n(I1\nttRp2572\nsS'Y:%RateA 102-103'\np2573\ng26\n(S'Variable_Type'\n(I1\nttRp2574\nsS'Y:PMachine90'\np2575\ng26\n(S'Variable_Type'\n(I1\nttRp2576\nsS'Y:%RateA 106-107'\np2577\ng26\n(S'Variable_Type'\n(I1\nttRp2578\nsS'Y:NbeTransit'\np2579\ng26\n(S'Variable_Type'\n(I1\nttRp2580\nsS'Y:PMachine54'\np2581\ng26\n(S'Variable_Type'\n(I1\nttRp2582\nsS'Y:PMachine75'\np2583\ng26\n(S'Variable_Type'\n(I1\nttRp2584\nsS'Y:%RateA 22-23'\np2585\ng26\n(S'Variable_Type'\n(I1\nttRp2586\nsS'Y:%RateA 53-54'\np2587\ng26\n(S'Variable_Type'\n(I1\nttRp2588\nsS'Y:%RateA 108-109'\np2589\ng26\n(S'Variable_Type'\n(I1\nttRp2590\nsS'X:Interco(bin)'\np2591\ng26\n(S'Variable_Type'\n(I1\nttRp2592\nsS'Y:%RateA 14-15'\np2593\ng26\n(S'Variable_Type'\n(I1\nttRp2594\nsS'Y:%RateA 51-52'\np2595\ng26\n(S'Variable_Type'\n(I1\nttRp2596\nsS'Y:PMachine74'\np2597\ng26\n(S'Variable_Type'\n(I1\nttRp2598\nsS'Y:%RateA 57-58'\np2599\ng26\n(S'Variable_Type'\n(I1\nttRp2600\nsS'Y:PMachine106'\np2601\ng26\n(S'Variable_Type'\n(I1\nttRp2602\nsS'Y:PMachine107'\np2603\ng26\n(S'Variable_Type'\n(I1\nttRp2604\nsS'Y:%RateA 86-87'\np2605\ng26\n(S'Variable_Type'\n(I1\nttRp2606\nsS'Y:%RateA 95-96'\np2607\ng26\n(S'Variable_Type'\n(I1\nttRp2608\nsS'Y:%RateA 24-25'\np2609\ng26\n(S'Variable_Type'\n(I1\nttRp2610\nsS'Y:%RateA 82-83'\np2611\ng26\n(S'Variable_Type'\n(I1\nttRp2612\nsS'Y:PMachine86'\np2613\ng26\n(S'Variable_Type'\n(I1\nttRp2614\nsS'Y:%RateA 78-79'\np2615\ng26\n(S'Variable_Type'\n(I1\nttRp2616\nsS'Y:%RateA 112-113'\np2617\ncOrange.core\nStringList\np2618\n(tRp2619\nS'0'\naS'CSAMPO31    -CSAMPO32'\na(dbsS'Y:%RateA 104-105'\np2620\ng2543\nsS'Y:PMachine61'\np2621\ng26\n(S'Variable_Type'\n(I1\nttRp2622\nsS'Y:%RateA 80-81'\np2623\ng26\n(S'Variable_Type'\n(I1\nttRp2624\nsS'Y:PMachine29'\np2625\ng26\n(S'Variable_Type'\n(I1\nttRp2626\nsS'Y:%RateA 84-85'\np2627\ng26\n(S'Variable_Type'\n(I1\nttRp2628\nsS'Y:%RateA 72-73'\np2629\ng26\n(S'Variable_Type'\n(I1\nttRp2630\nssg628\n(dp2631\nsg20\n(lp2632\nS'orderedDomain'\np2633\nasg648\nF1368433401.563\nsba(iOWContexts\nContext\np2634\n(dp2635\ng630\n(dp2636\nS'attribute'\np2637\n(S'Y:%RateA 104-105'\np2638\ng26\n(S'Variable_Type'\n(I1\nttRp2639\ntp2640\nsS'yaxisTitle'\np2641\n(S'frequency'\nI0\ntp2642\nsS'xaxisTitle'\np2643\n(g2638\ng2639\ntp2644\nsS'mainTitle'\np2645\n(S''\nI0\ntp2646\nsS'yPaxisTitle'\np2647\n(S''\nI0\ntp2648\nsS'targetValue'\np2649\n(I1\nI-2\ntp2650\nsS'visibleOutcomes'\np2651\n((lp2652\nI0\naI-2\ntp2653\nssg23\n(dp2654\nS'Y:NbeTension'\np2655\ng26\n(S'Variable_Type'\n(I1\nttRp2656\nsS'Y:%RateA 29-30'\np2657\ng26\n(S'Variable_Type'\n(I1\nttRp2658\nsS'Y:%RateA 61-62'\np2659\ng26\n(S'Variable_Type'\n(I1\nttRp2660\nsS'Y:%RateA 76-77'\np2661\ng26\n(S'Variable_Type'\n(I1\nttRp2662\nsS'Y:PMachine114'\np2663\ng26\n(S'Variable_Type'\n(I1\nttRp2664\nsS'Y:%RateA 55-56'\np2665\ng26\n(S'Variable_Type'\n(I1\nttRp2666\nsS'Y:%RateA 59-60'\np2667\ng26\n(S'Variable_Type'\n(I1\nttRp2668\nsS'Y:%RateA 102-103'\np2669\ng26\n(S'Variable_Type'\n(I1\nttRp2670\nsS'Y:PMachine90'\np2671\ng26\n(S'Variable_Type'\n(I1\nttRp2672\nsS'Y:%RateA 106-107'\np2673\ng26\n(S'Variable_Type'\n(I1\nttRp2674\nsS'Y:NbeTransit'\np2675\ng26\n(S'Variable_Type'\n(I1\nttRp2676\nsS'Y:PMachine54'\np2677\ng26\n(S'Variable_Type'\n(I1\nttRp2678\nsS'Y:PMachine75'\np2679\ng26\n(S'Variable_Type'\n(I1\nttRp2680\nsS'Y:%RateA 22-23'\np2681\ng26\n(S'Variable_Type'\n(I1\nttRp2682\nsS'Y:%RateA 53-54'\np2683\ng26\n(S'Variable_Type'\n(I1\nttRp2684\nsS'Y:%RateA 108-109'\np2685\ng26\n(S'Variable_Type'\n(I1\nttRp2686\nsS'X:Interco(bin)'\np2687\ng26\n(S'Variable_Type'\n(I1\nttRp2688\nsS'Y:%RateA 14-15'\np2689\ng26\n(S'Variable_Type'\n(I1\nttRp2690\nsS'Y:%RateA 51-52'\np2691\ng26\n(S'Variable_Type'\n(I1\nttRp2692\nsS'Y:PMachine74'\np2693\ng26\n(S'Variable_Type'\n(I1\nttRp2694\nsS'Y:%RateA 57-58'\np2695\ng26\n(S'Variable_Type'\n(I1\nttRp2696\nsS'Y:PMachine106'\np2697\ng26\n(S'Variable_Type'\n(I1\nttRp2698\nsS'Y:PMachine107'\np2699\ng26\n(S'Variable_Type'\n(I1\nttRp2700\nsS'Y:%RateA 86-87'\np2701\ng26\n(S'Variable_Type'\n(I1\nttRp2702\nsS'Y:%RateA 95-96'\np2703\ng26\n(S'Variable_Type'\n(I1\nttRp2704\nsS'Y:%RateA 24-25'\np2705\ng26\n(S'Variable_Type'\n(I1\nttRp2706\nsS'Y:%RateA 82-83'\np2707\ng26\n(S'Variable_Type'\n(I1\nttRp2708\nsS'Y:PMachine86'\np2709\ng26\n(S'Variable_Type'\n(I1\nttRp2710\nsS'Y:%RateA 78-79'\np2711\ng26\n(S'Variable_Type'\n(I1\nttRp2712\nsS'Y:%RateA 112-113'\np2713\ng2618\n(tRp2714\nS'0'\naS'CSAMPO31    -CSAMPO32'\na(dbsS'Y:%RateA 104-105'\np2715\ng2639\nsS'Y:PMachine61'\np2716\ng26\n(S'Variable_Type'\n(I1\nttRp2717\nsS'Y:%RateA 80-81'\np2718\ng26\n(S'Variable_Type'\n(I1\nttRp2719\nsS'Y:PMachine29'\np2720\ng26\n(S'Variable_Type'\n(I1\nttRp2721\nsS'Y:%RateA 84-85'\np2722\ng26\n(S'Variable_Type'\n(I1\nttRp2723\nsS'Y:%RateA 72-73'\np2724\ng26\n(S'Variable_Type'\n(I1\nttRp2725\nssg628\n(dp2726\nsg20\n(lp2727\nS'orderedDomain'\np2728\nasg648\nF1368433401.563\nsba(iOWContexts\nContext\np2729\n(dp2730\ng20\n(lp2731\nS'orderedDomain'\np2732\nasg23\n(dp2733\nS'Y:%RateA 59-60'\np2734\ng26\n(S'Variable_Type'\n(I1\nttRp2735\nsS'Y:%RateA 29-30'\np2736\ng26\n(S'Variable_Type'\n(I1\nttRp2737\nsS'Y:%RateA 61-62'\np2738\ng26\n(S'Variable_Type'\n(I1\nttRp2739\nsS'Y:%RateA 76-77'\np2740\ng26\n(S'Variable_Type'\n(I1\nttRp2741\nsS'Y:PMachine114'\np2742\ng26\n(S'Variable_Type'\n(I1\nttRp2743\nsS'Y:VBus61'\np2744\ng26\n(S'Variable_Type'\n(I1\nttRp2745\nsS'Y:PMachine116'\np2746\ng26\n(S'Variable_Type'\n(I1\nttRp2747\nsS'Y:PMachine111'\np2748\ng26\n(S'Variable_Type'\n(I1\nttRp2749\nsS'Y:%RateA 55-56'\np2750\ng26\n(S'Variable_Type'\n(I1\nttRp2751\nsS'Y:PMachine113'\np2752\ng26\n(S'Variable_Type'\n(I1\nttRp2753\nsS'Y:PMachine112'\np2754\ng26\n(S'Variable_Type'\n(I1\nttRp2755\nsS'Y:PMachine94'\np2756\ng26\n(S'Variable_Type'\n(I1\nttRp2757\nsS'Y:%RateA 102-103'\np2758\ng26\n(S'Variable_Type'\n(I1\nttRp2759\nsS'Y:PMachine90'\np2760\ng26\n(S'Variable_Type'\n(I1\nttRp2761\nsS'Y:PMachine93'\np2762\ng26\n(S'Variable_Type'\n(I1\nttRp2763\nsS'Y:NbeTransit'\np2764\ng26\n(S'Variable_Type'\n(I1\nttRp2765\nsS'Y:PMachine54'\np2766\ng26\n(S'Variable_Type'\n(I1\nttRp2767\nsS'Y:PMachine73'\np2768\ng26\n(S'Variable_Type'\n(I1\nttRp2769\nsS'Y:PMachine72'\np2770\ng26\n(S'Variable_Type'\n(I1\nttRp2771\nsS'Y:%RateA 80-81'\np2772\ng26\n(S'Variable_Type'\n(I1\nttRp2773\nsS'Y:PMachine74'\np2774\ng26\n(S'Variable_Type'\n(I1\nttRp2775\nsS'Y:%RateA 53-54'\np2776\ng26\n(S'Variable_Type'\n(I1\nttRp2777\nsS'Y:%RateA 108-109'\np2778\ng26\n(S'Variable_Type'\n(I1\nttRp2779\nsS'X:Interco(bin)'\np2780\ng26\n(S'Variable_Type'\n(I1\nttRp2781\nsS'Y:%RateA 14-15'\np2782\ng26\n(S'Variable_Type'\n(I1\nttRp2783\nsS'Y:%RateA 22-23'\np2784\ng26\n(S'Variable_Type'\n(I1\nttRp2785\nsS'Y:%RateA 57-58'\np2786\ng26\n(S'Variable_Type'\n(I1\nttRp2787\nsS'Y:PMachine106'\np2788\ng26\n(S'Variable_Type'\n(I1\nttRp2789\nsS'Y:PMachine107'\np2790\ng26\n(S'Variable_Type'\n(I1\nttRp2791\nsS'Y:%RateA 106-107'\np2792\ng26\n(S'Variable_Type'\n(I1\nttRp2793\nsS'Y:%RateA 51-52'\np2794\ng26\n(S'Variable_Type'\n(I1\nttRp2795\nsS'Y:%RateA 24-25'\np2796\ng26\n(S'Variable_Type'\n(I1\nttRp2797\nsS'Y:%RateA 82-83'\np2798\ng26\n(S'Variable_Type'\n(I1\nttRp2799\nsS'Y:%RateA 72-73'\np2800\ng26\n(S'Variable_Type'\n(I1\nttRp2801\nsS'Y:PMachine86'\np2802\ng26\n(S'Variable_Type'\n(I1\nttRp2803\nsS'Y:%RateA 78-79'\np2804\ng26\n(S'Variable_Type'\n(I1\nttRp2805\nsS'Y:VBus62'\np2806\ng26\n(S'Variable_Type'\n(I1\nttRp2807\nsS'Y:PMachine42'\np2808\ng26\n(S'Variable_Type'\n(I1\nttRp2809\nsS'Y:PMachine117'\np2810\ng26\n(S'Variable_Type'\n(I1\nttRp2811\nsS'Y:%RateA 112-113'\np2812\ng2618\n(tRp2813\nS'0'\naS'CSAMPO31    -CSAMPO32'\na(dbsS'Y:%RateA 104-105'\np2814\ng26\n(S'Variable_Type'\n(I1\nttRp2815\nsS'Y:PMachine61'\np2816\ng26\n(S'Variable_Type'\n(I1\nttRp2817\nsS'Y:%RateA 86-87'\np2818\ng26\n(S'Variable_Type'\n(I1\nttRp2819\nsS'Y:PMachine29'\np2820\ng26\n(S'Variable_Type'\n(I1\nttRp2821\nsS'Y:%RateA 84-85'\np2822\ng26\n(S'Variable_Type'\n(I1\nttRp2823\nsS'Y:%RateA 95-96'\np2824\ng26\n(S'Variable_Type'\n(I1\nttRp2825\nssg628\n(dp2826\nsg630\n(dp2827\nS'attribute'\np2828\n(S'X:Interco(bin)'\np2829\ng2781\ntp2830\nsS'yaxisTitle'\np2831\n(S'frequency'\nI0\ntp2832\nsS'xaxisTitle'\np2833\n(g2829\ng2781\ntp2834\nsS'mainTitle'\np2835\n(S''\nI0\ntp2836\nsS'yPaxisTitle'\np2837\n(S''\nI0\ntp2838\nsS'targetValue'\np2839\n(I0\nI-2\ntp2840\nsS'visibleOutcomes'\np2841\n((lp2842\nI0\naI1\naI-2\ntp2843\nssg648\nF1367937614.72\nsba(iOWContexts\nContext\np2844\n(dp2845\ng20\n(lp2846\nS'orderedDomain'\np2847\nasg23\n(dp2848\nS'Y:%RateA 59-60'\np2849\ng26\n(S'Variable_Type'\n(I1\nttRp2850\nsS'Y:%RateA 29-30'\np2851\ng26\n(S'Variable_Type'\n(I1\nttRp2852\nsS'Y:%RateA 61-62'\np2853\ng26\n(S'Variable_Type'\n(I1\nttRp2854\nsS'Y:%RateA 76-77'\np2855\ng26\n(S'Variable_Type'\n(I1\nttRp2856\nsS'Y:PMachine114'\np2857\ng26\n(S'Variable_Type'\n(I1\nttRp2858\nsS'Y:VBus61'\np2859\ng26\n(S'Variable_Type'\n(I1\nttRp2860\nsS'Y:PMachine116'\np2861\ng26\n(S'Variable_Type'\n(I1\nttRp2862\nsS'Y:PMachine111'\np2863\ng26\n(S'Variable_Type'\n(I1\nttRp2864\nsS'Y:%RateA 55-56'\np2865\ng26\n(S'Variable_Type'\n(I1\nttRp2866\nsS'Y:PMachine113'\np2867\ng26\n(S'Variable_Type'\n(I1\nttRp2868\nsS'Y:PMachine112'\np2869\ng26\n(S'Variable_Type'\n(I1\nttRp2870\nsS'Y:PMachine94'\np2871\ng26\n(S'Variable_Type'\n(I1\nttRp2872\nsS'Y:%RateA 102-103'\np2873\ng26\n(S'Variable_Type'\n(I1\nttRp2874\nsS'Y:PMachine90'\np2875\ng26\n(S'Variable_Type'\n(I1\nttRp2876\nsS'Y:PMachine93'\np2877\ng26\n(S'Variable_Type'\n(I1\nttRp2878\nsS'Y:NbeTransit'\np2879\ng26\n(S'Variable_Type'\n(I1\nttRp2880\nsS'Y:PMachine54'\np2881\ng26\n(S'Variable_Type'\n(I1\nttRp2882\nsS'Y:PMachine73'\np2883\ng26\n(S'Variable_Type'\n(I1\nttRp2884\nsS'Y:PMachine72'\np2885\ng26\n(S'Variable_Type'\n(I1\nttRp2886\nsS'Y:%RateA 80-81'\np2887\ng26\n(S'Variable_Type'\n(I1\nttRp2888\nsS'Y:PMachine74'\np2889\ng26\n(S'Variable_Type'\n(I1\nttRp2890\nsS'Y:%RateA 53-54'\np2891\ng26\n(S'Variable_Type'\n(I1\nttRp2892\nsS'Y:%RateA 108-109'\np2893\ng26\n(S'Variable_Type'\n(I1\nttRp2894\nsS'X:Interco(bin)'\np2895\ng26\n(S'Variable_Type'\n(I1\nttRp2896\nsS'Y:%RateA 14-15'\np2897\ng26\n(S'Variable_Type'\n(I1\nttRp2898\nsS'Y:%RateA 22-23'\np2899\ng26\n(S'Variable_Type'\n(I1\nttRp2900\nsS'Y:%RateA 57-58'\np2901\ng26\n(S'Variable_Type'\n(I1\nttRp2902\nsS'Y:PMachine106'\np2903\ng26\n(S'Variable_Type'\n(I1\nttRp2904\nsS'Y:PMachine107'\np2905\ng26\n(S'Variable_Type'\n(I1\nttRp2906\nsS'Y:%RateA 106-107'\np2907\ng26\n(S'Variable_Type'\n(I1\nttRp2908\nsS'Y:%RateA 51-52'\np2909\ng26\n(S'Variable_Type'\n(I1\nttRp2910\nsS'Y:%RateA 24-25'\np2911\ng26\n(S'Variable_Type'\n(I1\nttRp2912\nsS'Y:%RateA 82-83'\np2913\ng26\n(S'Variable_Type'\n(I1\nttRp2914\nsS'Y:%RateA 72-73'\np2915\ng26\n(S'Variable_Type'\n(I1\nttRp2916\nsS'Y:PMachine86'\np2917\ng26\n(S'Variable_Type'\n(I1\nttRp2918\nsS'Y:%RateA 78-79'\np2919\ng26\n(S'Variable_Type'\n(I1\nttRp2920\nsS'Y:VBus62'\np2921\ng26\n(S'Variable_Type'\n(I1\nttRp2922\nsS'Y:PMachine42'\np2923\ng26\n(S'Variable_Type'\n(I1\nttRp2924\nsS'Y:PMachine117'\np2925\ng26\n(S'Variable_Type'\n(I1\nttRp2926\nsS'Y:%RateA 112-113'\np2927\ng2618\n(tRp2928\nS'0'\naS'CSAMPO31    -CSAMPO32'\na(dbsS'Y:%RateA 104-105'\np2929\ng26\n(S'Variable_Type'\n(I1\nttRp2930\nsS'Y:PMachine61'\np2931\ng26\n(S'Variable_Type'\n(I1\nttRp2932\nsS'Y:%RateA 86-87'\np2933\ng26\n(S'Variable_Type'\n(I1\nttRp2934\nsS'Y:PMachine29'\np2935\ng26\n(S'Variable_Type'\n(I1\nttRp2936\nsS'Y:%RateA 84-85'\np2937\ng26\n(S'Variable_Type'\n(I1\nttRp2938\nsS'Y:%RateA 95-96'\np2939\ng26\n(S'Variable_Type'\n(I1\nttRp2940\nssg628\n(dp2941\nsg630\n(dp2942\nS'attribute'\np2943\n(S'X:Interco(bin)'\np2944\ng2896\ntp2945\nsS'yaxisTitle'\np2946\n(S'frequency'\nI0\ntp2947\nsS'xaxisTitle'\np2948\n(g2944\ng2896\ntp2949\nsS'mainTitle'\np2950\n(S''\nI0\ntp2951\nsS'yPaxisTitle'\np2952\n(S''\nI0\ntp2953\nsS'targetValue'\np2954\n(I0\nI-2\ntp2955\nsS'visibleOutcomes'\np2956\n((lp2957\nI0\naI1\naI-2\ntp2958\nssg648\nF1367937614.72\nsba(iOWContexts\nContext\np2959\n(dp2960\ng20\n(lp2961\nS'orderedDomain'\np2962\nasg23\n(dp2963\nS'Y:%RateA 59-60'\np2964\ng26\n(S'Variable_Type'\n(I1\nttRp2965\nsS'Y:%RateA 29-30'\np2966\ng26\n(S'Variable_Type'\n(I1\nttRp2967\nsS'Y:%RateA 61-62'\np2968\ng26\n(S'Variable_Type'\n(I1\nttRp2969\nsS'Y:%RateA 76-77'\np2970\ng26\n(S'Variable_Type'\n(I1\nttRp2971\nsS'Y:PMachine114'\np2972\ng26\n(S'Variable_Type'\n(I1\nttRp2973\nsS'Y:VBus61'\np2974\ng26\n(S'Variable_Type'\n(I1\nttRp2975\nsS'Y:PMachine116'\np2976\ng26\n(S'Variable_Type'\n(I1\nttRp2977\nsS'Y:PMachine111'\np2978\ng26\n(S'Variable_Type'\n(I1\nttRp2979\nsS'Y:%RateA 55-56'\np2980\ng26\n(S'Variable_Type'\n(I1\nttRp2981\nsS'Y:PMachine113'\np2982\ng26\n(S'Variable_Type'\n(I1\nttRp2983\nsS'Y:PMachine112'\np2984\ng26\n(S'Variable_Type'\n(I1\nttRp2985\nsS'Y:PMachine94'\np2986\ng26\n(S'Variable_Type'\n(I1\nttRp2987\nsS'Y:%RateA 102-103'\np2988\ng26\n(S'Variable_Type'\n(I1\nttRp2989\nsS'Y:PMachine90'\np2990\ng26\n(S'Variable_Type'\n(I1\nttRp2991\nsS'Y:PMachine93'\np2992\ng26\n(S'Variable_Type'\n(I1\nttRp2993\nsS'Y:NbeTransit'\np2994\ng26\n(S'Variable_Type'\n(I1\nttRp2995\nsS'Y:PMachine54'\np2996\ng26\n(S'Variable_Type'\n(I1\nttRp2997\nsS'Y:PMachine73'\np2998\ng26\n(S'Variable_Type'\n(I1\nttRp2999\nsS'Y:PMachine72'\np3000\ng26\n(S'Variable_Type'\n(I1\nttRp3001\nsS'Y:%RateA 80-81'\np3002\ng26\n(S'Variable_Type'\n(I1\nttRp3003\nsS'Y:PMachine74'\np3004\ng26\n(S'Variable_Type'\n(I1\nttRp3005\nsS'Y:%RateA 53-54'\np3006\ng26\n(S'Variable_Type'\n(I1\nttRp3007\nsS'Y:%RateA 108-109'\np3008\ng26\n(S'Variable_Type'\n(I1\nttRp3009\nsS'X:Interco(bin)'\np3010\ng26\n(S'Variable_Type'\n(I1\nttRp3011\nsS'Y:%RateA 14-15'\np3012\ng26\n(S'Variable_Type'\n(I1\nttRp3013\nsS'Y:%RateA 22-23'\np3014\ng26\n(S'Variable_Type'\n(I1\nttRp3015\nsS'Y:%RateA 57-58'\np3016\ng26\n(S'Variable_Type'\n(I1\nttRp3017\nsS'Y:PMachine106'\np3018\ng26\n(S'Variable_Type'\n(I1\nttRp3019\nsS'Y:PMachine107'\np3020\ng26\n(S'Variable_Type'\n(I1\nttRp3021\nsS'Y:%RateA 106-107'\np3022\ng26\n(S'Variable_Type'\n(I1\nttRp3023\nsS'Y:%RateA 51-52'\np3024\ng26\n(S'Variable_Type'\n(I1\nttRp3025\nsS'Y:%RateA 24-25'\np3026\ng26\n(S'Variable_Type'\n(I1\nttRp3027\nsS'Y:%RateA 82-83'\np3028\ng26\n(S'Variable_Type'\n(I1\nttRp3029\nsS'Y:%RateA 72-73'\np3030\ng26\n(S'Variable_Type'\n(I1\nttRp3031\nsS'Y:PMachine86'\np3032\ng26\n(S'Variable_Type'\n(I1\nttRp3033\nsS'Y:%RateA 78-79'\np3034\ng26\n(S'Variable_Type'\n(I1\nttRp3035\nsS'Y:VBus62'\np3036\ng26\n(S'Variable_Type'\n(I1\nttRp3037\nsS'Y:PMachine42'\np3038\ng26\n(S'Variable_Type'\n(I1\nttRp3039\nsS'Y:PMachine117'\np3040\ng26\n(S'Variable_Type'\n(I1\nttRp3041\nsS'Y:%RateA 112-113'\np3042\ng2618\n(tRp3043\nS'0'\naS'CSAMPO31    -CSAMPO32'\na(dbsS'Y:%RateA 104-105'\np3044\ng26\n(S'Variable_Type'\n(I1\nttRp3045\nsS'Y:PMachine61'\np3046\ng26\n(S'Variable_Type'\n(I1\nttRp3047\nsS'Y:%RateA 86-87'\np3048\ng26\n(S'Variable_Type'\n(I1\nttRp3049\nsS'Y:PMachine29'\np3050\ng26\n(S'Variable_Type'\n(I1\nttRp3051\nsS'Y:%RateA 84-85'\np3052\ng26\n(S'Variable_Type'\n(I1\nttRp3053\nsS'Y:%RateA 95-96'\np3054\ng26\n(S'Variable_Type'\n(I1\nttRp3055\nssg628\n(dp3056\nsg630\n(dp3057\nS'attribute'\np3058\n(S'X:Interco(bin)'\np3059\ng3011\ntp3060\nsS'yaxisTitle'\np3061\n(S'frequency'\nI0\ntp3062\nsS'xaxisTitle'\np3063\n(g3059\ng3011\ntp3064\nsS'mainTitle'\np3065\n(S''\nI0\ntp3066\nsS'yPaxisTitle'\np3067\n(S''\nI0\ntp3068\nsS'targetValue'\np3069\n(I0\nI-2\ntp3070\nsS'visibleOutcomes'\np3071\n((lp3072\nI0\naI1\naI-2\ntp3073\nssg648\nF1367937614.72\nsba(iOWContexts\nContext\np3074\n(dp3075\ng20\n(lp3076\nS'orderedDomain'\np3077\nasg23\n(dp3078\nS'Y:%RateA 59-60'\np3079\ng26\n(S'Variable_Type'\n(I1\nttRp3080\nsS'Y:%RateA 29-30'\np3081\ng26\n(S'Variable_Type'\n(I1\nttRp3082\nsS'Y:%RateA 61-62'\np3083\ng26\n(S'Variable_Type'\n(I1\nttRp3084\nsS'Y:%RateA 76-77'\np3085\ng26\n(S'Variable_Type'\n(I1\nttRp3086\nsS'Y:PMachine114'\np3087\ng26\n(S'Variable_Type'\n(I1\nttRp3088\nsS'Y:VBus61'\np3089\ng26\n(S'Variable_Type'\n(I1\nttRp3090\nsS'Y:PMachine116'\np3091\ng26\n(S'Variable_Type'\n(I1\nttRp3092\nsS'Y:PMachine111'\np3093\ng26\n(S'Variable_Type'\n(I1\nttRp3094\nsS'Y:%RateA 55-56'\np3095\ng26\n(S'Variable_Type'\n(I1\nttRp3096\nsS'Y:PMachine113'\np3097\ng26\n(S'Variable_Type'\n(I1\nttRp3098\nsS'Y:PMachine112'\np3099\ng26\n(S'Variable_Type'\n(I1\nttRp3100\nsS'Y:PMachine94'\np3101\ng26\n(S'Variable_Type'\n(I1\nttRp3102\nsS'Y:%RateA 102-103'\np3103\ng26\n(S'Variable_Type'\n(I1\nttRp3104\nsS'Y:PMachine90'\np3105\ng26\n(S'Variable_Type'\n(I1\nttRp3106\nsS'Y:PMachine93'\np3107\ng26\n(S'Variable_Type'\n(I1\nttRp3108\nsS'Y:NbeTransit'\np3109\ng26\n(S'Variable_Type'\n(I1\nttRp3110\nsS'Y:PMachine54'\np3111\ng26\n(S'Variable_Type'\n(I1\nttRp3112\nsS'Y:PMachine73'\np3113\ng26\n(S'Variable_Type'\n(I1\nttRp3114\nsS'Y:PMachine72'\np3115\ng26\n(S'Variable_Type'\n(I1\nttRp3116\nsS'Y:%RateA 80-81'\np3117\ng26\n(S'Variable_Type'\n(I1\nttRp3118\nsS'Y:PMachine74'\np3119\ng26\n(S'Variable_Type'\n(I1\nttRp3120\nsS'Y:%RateA 53-54'\np3121\ng26\n(S'Variable_Type'\n(I1\nttRp3122\nsS'Y:%RateA 108-109'\np3123\ng26\n(S'Variable_Type'\n(I1\nttRp3124\nsS'X:Interco(bin)'\np3125\ng26\n(S'Variable_Type'\n(I1\nttRp3126\nsS'Y:%RateA 14-15'\np3127\ng26\n(S'Variable_Type'\n(I1\nttRp3128\nsS'Y:%RateA 22-23'\np3129\ng26\n(S'Variable_Type'\n(I1\nttRp3130\nsS'Y:%RateA 57-58'\np3131\ng26\n(S'Variable_Type'\n(I1\nttRp3132\nsS'Y:PMachine106'\np3133\ng26\n(S'Variable_Type'\n(I1\nttRp3134\nsS'Y:PMachine107'\np3135\ng26\n(S'Variable_Type'\n(I1\nttRp3136\nsS'Y:%RateA 106-107'\np3137\ng26\n(S'Variable_Type'\n(I1\nttRp3138\nsS'Y:%RateA 51-52'\np3139\ng26\n(S'Variable_Type'\n(I1\nttRp3140\nsS'Y:%RateA 24-25'\np3141\ng26\n(S'Variable_Type'\n(I1\nttRp3142\nsS'Y:%RateA 82-83'\np3143\ng26\n(S'Variable_Type'\n(I1\nttRp3144\nsS'Y:%RateA 72-73'\np3145\ng26\n(S'Variable_Type'\n(I1\nttRp3146\nsS'Y:PMachine86'\np3147\ng26\n(S'Variable_Type'\n(I1\nttRp3148\nsS'Y:%RateA 78-79'\np3149\ng26\n(S'Variable_Type'\n(I1\nttRp3150\nsS'Y:VBus62'\np3151\ng26\n(S'Variable_Type'\n(I1\nttRp3152\nsS'Y:PMachine42'\np3153\ng26\n(S'Variable_Type'\n(I1\nttRp3154\nsS'Y:PMachine117'\np3155\ng26\n(S'Variable_Type'\n(I1\nttRp3156\nsS'Y:%RateA 112-113'\np3157\ng2618\n(tRp3158\nS'0'\naS'CSAMPO31    -CSAMPO32'\na(dbsS'Y:%RateA 104-105'\np3159\ng26\n(S'Variable_Type'\n(I1\nttRp3160\nsS'Y:PMachine61'\np3161\ng26\n(S'Variable_Type'\n(I1\nttRp3162\nsS'Y:%RateA 86-87'\np3163\ng26\n(S'Variable_Type'\n(I1\nttRp3164\nsS'Y:PMachine29'\np3165\ng26\n(S'Variable_Type'\n(I1\nttRp3166\nsS'Y:%RateA 84-85'\np3167\ng26\n(S'Variable_Type'\n(I1\nttRp3168\nsS'Y:%RateA 95-96'\np3169\ng26\n(S'Variable_Type'\n(I1\nttRp3170\nssg628\n(dp3171\nsg630\n(dp3172\nS'attribute'\np3173\n(S'X:Interco(bin)'\np3174\ng3126\ntp3175\nsS'yaxisTitle'\np3176\n(S'frequency'\nI0\ntp3177\nsS'xaxisTitle'\np3178\n(g3174\ng3126\ntp3179\nsS'mainTitle'\np3180\n(S''\nI0\ntp3181\nsS'yPaxisTitle'\np3182\n(S''\nI0\ntp3183\nsS'targetValue'\np3184\n(I0\nI-2\ntp3185\nsS'visibleOutcomes'\np3186\n((lp3187\nI0\naI1\naI-2\ntp3188\nssg648\nF1367937614.72\nsba(iOWContexts\nContext\np3189\n(dp3190\ng20\n(lp3191\nS'orderedDomain'\np3192\nasg23\n(dp3193\nS'Y:%RateA 59-60'\np3194\ng26\n(S'Variable_Type'\n(I1\nttRp3195\nsS'Y:%RateA 29-30'\np3196\ng26\n(S'Variable_Type'\n(I1\nttRp3197\nsS'Y:%RateA 61-62'\np3198\ng26\n(S'Variable_Type'\n(I1\nttRp3199\nsS'Y:%RateA 76-77'\np3200\ng26\n(S'Variable_Type'\n(I1\nttRp3201\nsS'Y:PMachine114'\np3202\ng26\n(S'Variable_Type'\n(I1\nttRp3203\nsS'Y:VBus61'\np3204\ng26\n(S'Variable_Type'\n(I1\nttRp3205\nsS'Y:PMachine116'\np3206\ng26\n(S'Variable_Type'\n(I1\nttRp3207\nsS'Y:PMachine111'\np3208\ng26\n(S'Variable_Type'\n(I1\nttRp3209\nsS'Y:%RateA 55-56'\np3210\ng26\n(S'Variable_Type'\n(I1\nttRp3211\nsS'Y:PMachine113'\np3212\ng26\n(S'Variable_Type'\n(I1\nttRp3213\nsS'Y:PMachine112'\np3214\ng26\n(S'Variable_Type'\n(I1\nttRp3215\nsS'Y:PMachine94'\np3216\ng26\n(S'Variable_Type'\n(I1\nttRp3217\nsS'Y:%RateA 102-103'\np3218\ng26\n(S'Variable_Type'\n(I1\nttRp3219\nsS'Y:PMachine90'\np3220\ng26\n(S'Variable_Type'\n(I1\nttRp3221\nsS'Y:PMachine93'\np3222\ng26\n(S'Variable_Type'\n(I1\nttRp3223\nsS'Y:NbeTransit'\np3224\ng26\n(S'Variable_Type'\n(I1\nttRp3225\nsS'Y:PMachine54'\np3226\ng26\n(S'Variable_Type'\n(I1\nttRp3227\nsS'Y:PMachine73'\np3228\ng26\n(S'Variable_Type'\n(I1\nttRp3229\nsS'Y:PMachine72'\np3230\ng26\n(S'Variable_Type'\n(I1\nttRp3231\nsS'Y:%RateA 80-81'\np3232\ng26\n(S'Variable_Type'\n(I1\nttRp3233\nsS'Y:PMachine74'\np3234\ng26\n(S'Variable_Type'\n(I1\nttRp3235\nsS'Y:%RateA 53-54'\np3236\ng26\n(S'Variable_Type'\n(I1\nttRp3237\nsS'Y:%RateA 108-109'\np3238\ng26\n(S'Variable_Type'\n(I1\nttRp3239\nsS'X:Interco(bin)'\np3240\ng26\n(S'Variable_Type'\n(I1\nttRp3241\nsS'Y:%RateA 14-15'\np3242\ng26\n(S'Variable_Type'\n(I1\nttRp3243\nsS'Y:%RateA 22-23'\np3244\ng26\n(S'Variable_Type'\n(I1\nttRp3245\nsS'Y:%RateA 57-58'\np3246\ng26\n(S'Variable_Type'\n(I1\nttRp3247\nsS'Y:PMachine106'\np3248\ng26\n(S'Variable_Type'\n(I1\nttRp3249\nsS'Y:PMachine107'\np3250\ng26\n(S'Variable_Type'\n(I1\nttRp3251\nsS'Y:%RateA 106-107'\np3252\ng26\n(S'Variable_Type'\n(I1\nttRp3253\nsS'Y:%RateA 51-52'\np3254\ng26\n(S'Variable_Type'\n(I1\nttRp3255\nsS'Y:%RateA 24-25'\np3256\ng26\n(S'Variable_Type'\n(I1\nttRp3257\nsS'Y:%RateA 82-83'\np3258\ng26\n(S'Variable_Type'\n(I1\nttRp3259\nsS'Y:%RateA 72-73'\np3260\ng26\n(S'Variable_Type'\n(I1\nttRp3261\nsS'Y:PMachine86'\np3262\ng26\n(S'Variable_Type'\n(I1\nttRp3263\nsS'Y:%RateA 78-79'\np3264\ng26\n(S'Variable_Type'\n(I1\nttRp3265\nsS'Y:VBus62'\np3266\ng26\n(S'Variable_Type'\n(I1\nttRp3267\nsS'Y:PMachine42'\np3268\ng26\n(S'Variable_Type'\n(I1\nttRp3269\nsS'Y:PMachine117'\np3270\ng26\n(S'Variable_Type'\n(I1\nttRp3271\nsS'Y:%RateA 112-113'\np3272\ng2618\n(tRp3273\nS'0'\naS'CSAMPO31    -CSAMPO32'\na(dbsS'Y:%RateA 104-105'\np3274\ng26\n(S'Variable_Type'\n(I1\nttRp3275\nsS'Y:PMachine61'\np3276\ng26\n(S'Variable_Type'\n(I1\nttRp3277\nsS'Y:%RateA 86-87'\np3278\ng26\n(S'Variable_Type'\n(I1\nttRp3279\nsS'Y:PMachine29'\np3280\ng26\n(S'Variable_Type'\n(I1\nttRp3281\nsS'Y:%RateA 84-85'\np3282\ng26\n(S'Variable_Type'\n(I1\nttRp3283\nsS'Y:%RateA 95-96'\np3284\ng26\n(S'Variable_Type'\n(I1\nttRp3285\nssg628\n(dp3286\nsg630\n(dp3287\nS'attribute'\np3288\n(S'X:Interco(bin)'\np3289\ng3241\ntp3290\nsS'yaxisTitle'\np3291\n(S'frequency'\nI0\ntp3292\nsS'xaxisTitle'\np3293\n(g3289\ng3241\ntp3294\nsS'mainTitle'\np3295\n(S''\nI0\ntp3296\nsS'yPaxisTitle'\np3297\n(S''\nI0\ntp3298\nsS'targetValue'\np3299\n(I0\nI-2\ntp3300\nsS'visibleOutcomes'\np3301\n((lp3302\nI0\naI1\naI-2\ntp3303\nssg648\nF1367937614.72\nsba(iOWContexts\nContext\np3304\n(dp3305\ng20\n(lp3306\nS'orderedDomain'\np3307\nasg23\n(dp3308\nS'Y:%RateA 59-60'\np3309\ng26\n(S'Variable_Type'\n(I1\nttRp3310\nsS'Y:%RateA 29-30'\np3311\ng26\n(S'Variable_Type'\n(I1\nttRp3312\nsS'Y:%RateA 61-62'\np3313\ng26\n(S'Variable_Type'\n(I1\nttRp3314\nsS'Y:%RateA 76-77'\np3315\ng26\n(S'Variable_Type'\n(I1\nttRp3316\nsS'Y:PMachine114'\np3317\ng26\n(S'Variable_Type'\n(I1\nttRp3318\nsS'Y:VBus61'\np3319\ng26\n(S'Variable_Type'\n(I1\nttRp3320\nsS'Y:PMachine116'\np3321\ng26\n(S'Variable_Type'\n(I1\nttRp3322\nsS'Y:PMachine111'\np3323\ng26\n(S'Variable_Type'\n(I1\nttRp3324\nsS'Y:%RateA 55-56'\np3325\ng26\n(S'Variable_Type'\n(I1\nttRp3326\nsS'Y:PMachine113'\np3327\ng26\n(S'Variable_Type'\n(I1\nttRp3328\nsS'Y:PMachine112'\np3329\ng26\n(S'Variable_Type'\n(I1\nttRp3330\nsS'Y:PMachine94'\np3331\ng26\n(S'Variable_Type'\n(I1\nttRp3332\nsS'Y:%RateA 102-103'\np3333\ng26\n(S'Variable_Type'\n(I1\nttRp3334\nsS'Y:PMachine90'\np3335\ng26\n(S'Variable_Type'\n(I1\nttRp3336\nsS'Y:PMachine93'\np3337\ng26\n(S'Variable_Type'\n(I1\nttRp3338\nsS'Y:NbeTransit'\np3339\ng26\n(S'Variable_Type'\n(I1\nttRp3340\nsS'Y:PMachine54'\np3341\ng26\n(S'Variable_Type'\n(I1\nttRp3342\nsS'Y:PMachine73'\np3343\ng26\n(S'Variable_Type'\n(I1\nttRp3344\nsS'Y:PMachine72'\np3345\ng26\n(S'Variable_Type'\n(I1\nttRp3346\nsS'Y:%RateA 80-81'\np3347\ng26\n(S'Variable_Type'\n(I1\nttRp3348\nsS'Y:PMachine74'\np3349\ng26\n(S'Variable_Type'\n(I1\nttRp3350\nsS'Y:%RateA 53-54'\np3351\ng26\n(S'Variable_Type'\n(I1\nttRp3352\nsS'Y:%RateA 108-109'\np3353\ng26\n(S'Variable_Type'\n(I1\nttRp3354\nsS'X:Interco(bin)'\np3355\ng26\n(S'Variable_Type'\n(I1\nttRp3356\nsS'Y:%RateA 14-15'\np3357\ng26\n(S'Variable_Type'\n(I1\nttRp3358\nsS'Y:%RateA 22-23'\np3359\ng26\n(S'Variable_Type'\n(I1\nttRp3360\nsS'Y:%RateA 57-58'\np3361\ng26\n(S'Variable_Type'\n(I1\nttRp3362\nsS'Y:PMachine106'\np3363\ng26\n(S'Variable_Type'\n(I1\nttRp3364\nsS'Y:PMachine107'\np3365\ng26\n(S'Variable_Type'\n(I1\nttRp3366\nsS'Y:%RateA 106-107'\np3367\ng26\n(S'Variable_Type'\n(I1\nttRp3368\nsS'Y:%RateA 51-52'\np3369\ng26\n(S'Variable_Type'\n(I1\nttRp3370\nsS'Y:%RateA 24-25'\np3371\ng26\n(S'Variable_Type'\n(I1\nttRp3372\nsS'Y:%RateA 82-83'\np3373\ng26\n(S'Variable_Type'\n(I1\nttRp3374\nsS'Y:%RateA 72-73'\np3375\ng26\n(S'Variable_Type'\n(I1\nttRp3376\nsS'Y:PMachine86'\np3377\ng26\n(S'Variable_Type'\n(I1\nttRp3378\nsS'Y:%RateA 78-79'\np3379\ng26\n(S'Variable_Type'\n(I1\nttRp3380\nsS'Y:VBus62'\np3381\ng26\n(S'Variable_Type'\n(I1\nttRp3382\nsS'Y:PMachine42'\np3383\ng26\n(S'Variable_Type'\n(I1\nttRp3384\nsS'Y:PMachine117'\np3385\ng26\n(S'Variable_Type'\n(I1\nttRp3386\nsS'Y:%RateA 112-113'\np3387\ng2618\n(tRp3388\nS'0'\naS'CSAMPO31    -CSAMPO32'\na(dbsS'Y:%RateA 104-105'\np3389\ng26\n(S'Variable_Type'\n(I1\nttRp3390\nsS'Y:PMachine61'\np3391\ng26\n(S'Variable_Type'\n(I1\nttRp3392\nsS'Y:%RateA 86-87'\np3393\ng26\n(S'Variable_Type'\n(I1\nttRp3394\nsS'Y:PMachine29'\np3395\ng26\n(S'Variable_Type'\n(I1\nttRp3396\nsS'Y:%RateA 84-85'\np3397\ng26\n(S'Variable_Type'\n(I1\nttRp3398\nsS'Y:%RateA 95-96'\np3399\ng26\n(S'Variable_Type'\n(I1\nttRp3400\nssg628\n(dp3401\nsg630\n(dp3402\nS'attribute'\np3403\n(S'X:Interco(bin)'\np3404\ng3356\ntp3405\nsS'yaxisTitle'\np3406\n(S'frequency'\nI0\ntp3407\nsS'xaxisTitle'\np3408\n(g3404\ng3356\ntp3409\nsS'mainTitle'\np3410\n(S''\nI0\ntp3411\nsS'yPaxisTitle'\np3412\n(S''\nI0\ntp3413\nsS'targetValue'\np3414\n(I0\nI-2\ntp3415\nsS'visibleOutcomes'\np3416\n((lp3417\nI0\naI1\naI-2\ntp3418\nssg648\nF1367937614.72\nsba(iOWContexts\nContext\np3419\n(dp3420\ng630\n(dp3421\nS'attribute'\np3422\n(S''\nI0\ntp3423\nsS'yaxisTitle'\np3424\n(S'frequency'\nI0\ntp3425\nsS'xaxisTitle'\np3426\n(S''\nI0\ntp3427\nsS'mainTitle'\np3428\n(S''\nI0\ntp3429\nsS'yPaxisTitle'\np3430\n(S''\nI0\ntp3431\nsS'targetValue'\np3432\n(NI-2\ntp3433\nsS'visibleOutcomes'\np3434\n((lI-2\ntp3435\nssg23\n(dp3436\nsg628\n(dp3437\nsg20\n(lp3438\nS'orderedDomain'\np3439\nasg648\nF1367855073.569\nsba(iOWContexts\nContext\np3440\n(dp3441\ng630\n(dp3442\nS'attribute'\np3443\n(S''\nI0\ntp3444\nsS'yaxisTitle'\np3445\n(S'frequency'\nI0\ntp3446\nsS'xaxisTitle'\np3447\n(S''\nI0\ntp3448\nsS'mainTitle'\np3449\n(S''\nI0\ntp3450\nsS'yPaxisTitle'\np3451\n(S''\nI0\ntp3452\nsS'targetValue'\np3453\n(NI-2\ntp3454\nsS'visibleOutcomes'\np3455\n((lI-2\ntp3456\nssg23\n(dp3457\nsg628\n(dp3458\nsg20\n(lp3459\nS'orderedDomain'\np3460\nasg648\nF1367855073.569\nsba(iOWContexts\nContext\np3461\n(dp3462\ng630\n(dp3463\nS'attribute'\np3464\n(S''\nI0\ntp3465\nsS'yaxisTitle'\np3466\n(S'frequency'\nI0\ntp3467\nsS'xaxisTitle'\np3468\n(S''\nI0\ntp3469\nsS'mainTitle'\np3470\n(S''\nI0\ntp3471\nsS'yPaxisTitle'\np3472\n(S''\nI0\ntp3473\nsS'targetValue'\np3474\n(NI-2\ntp3475\nsS'visibleOutcomes'\np3476\n((lI-2\ntp3477\nssg23\n(dp3478\nsg628\n(dp3479\nsg20\n(lp3480\nS'orderedDomain'\np3481\nasg648\nF1367855073.569\nsba(iOWContexts\nContext\np3482\n(dp3483\ng630\n(dp3484\nS'attribute'\np3485\n(S''\nI0\ntp3486\nsS'yaxisTitle'\np3487\n(S'frequency'\nI0\ntp3488\nsS'xaxisTitle'\np3489\n(S''\nI0\ntp3490\nsS'mainTitle'\np3491\n(S''\nI0\ntp3492\nsS'yPaxisTitle'\np3493\n(S''\nI0\ntp3494\nsS'targetValue'\np3495\n(NI-2\ntp3496\nsS'visibleOutcomes'\np3497\n((lI-2\ntp3498\nssg23\n(dp3499\nsg628\n(dp3500\nsg20\n(lp3501\nS'orderedDomain'\np3502\nasg648\nF1367855073.569\nsba(iOWContexts\nContext\np3503\n(dp3504\ng630\n(dp3505\nS'attribute'\np3506\n(S''\nI0\ntp3507\nsS'yaxisTitle'\np3508\n(S'frequency'\nI0\ntp3509\nsS'xaxisTitle'\np3510\n(S''\nI0\ntp3511\nsS'mainTitle'\np3512\n(S''\nI0\ntp3513\nsS'yPaxisTitle'\np3514\n(S''\nI0\ntp3515\nsS'targetValue'\np3516\n(NI-2\ntp3517\nsS'visibleOutcomes'\np3518\n((lI-2\ntp3519\nssg23\n(dp3520\nsg628\n(dp3521\nsg20\n(lp3522\nS'orderedDomain'\np3523\nasg648\nF1367855073.569\nsba(iOWContexts\nContext\np3524\n(dp3525\ng630\n(dp3526\nS'attribute'\np3527\n(S''\nI0\ntp3528\nsS'yaxisTitle'\np3529\n(S'frequency'\nI0\ntp3530\nsS'xaxisTitle'\np3531\n(S''\nI0\ntp3532\nsS'mainTitle'\np3533\n(S''\nI0\ntp3534\nsS'yPaxisTitle'\np3535\n(S''\nI0\ntp3536\nsS'targetValue'\np3537\n(NI-2\ntp3538\nsS'visibleOutcomes'\np3539\n((lI-2\ntp3540\nssg23\n(dp3541\nsg628\n(dp3542\nsg20\n(lp3543\nS'orderedDomain'\np3544\nasg648\nF1367855073.569\nsbasS'showProbabilities'\np3545\nI1\nsS'numberOfBars'\np3546\nI60\ns.&quot;, 'Attribute Statistics': &quot;(dp1\nS'widgetShown'\np2\nI0\nsS'localContextsVersion'\np3\n(I100\nI0\ntp4\nsS'savedWidgetGeometry'\np5\nS'\\x01\\xd9\\xd0\\xcb\\x00\\x01\\x00\\x00\\x00\\x00\\x02\\x80\\x00\\x00\\x01\\x81\\x00\\x00\\x03\\x94\\x00\\x00\\x02\\x91\\x00\\x00\\x02\\x88\\x00\\x00\\x01\\x9d\\x00\\x00\\x03\\x8c\\x00\\x00\\x02\\x89\\x00\\x00\\x00\\x00\\x00\\x00'\np6\nsS'sorting'\np7\nI2\nsS'localContexts'\np8\n(lp9\n(iOWContexts\nContext\np10\n(dp11\nS'noCopy'\np12\n(lp13\nS'orderedDomain'\np14\nasS'attributes'\np15\n(dp16\nS'Y:PMachine134 - CLUCCI35'\np17\ncOrange.orange\n__pickleLoaderNamedConstants\np18\n(S'Variable_Type'\n(I2\nttRp19\nsS'Y:VBus77 - CCORTE32'\np20\ng18\n(S'Variable_Type'\n(I2\nttRp21\nsS'Y:VBus134 - CLUCCI35'\np22\ng18\n(S'Variable_Type'\n(I2\nttRp23\nsS'Y:VBus109 - CSAGON32'\np24\ng18\n(S'Variable_Type'\n(I2\nttRp25\nsS'Y:VBus102 - CPORTO31'\np26\ng18\n(S'Variable_Type'\n(I2\nttRp27\nsS'XProdEolienne%Pnom'\np28\ng18\n(S'Variable_Type'\n(I2\nttRp29\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np30\ng18\n(S'Variable_Type'\n(I2\nttRp31\nsS'Y:PMachine94 - COCANA33'\np32\ng18\n(S'Variable_Type'\n(I2\nttRp33\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np34\ng18\n(S'Variable_Type'\n(I2\nttRp35\nsS'Y:PMachine87 - CLUCCI32'\np36\ng18\n(S'Variable_Type'\n(I2\nttRp37\nsS'Y:PMachine113 - CSAMPO32'\np38\ng18\n(S'Variable_Type'\n(I2\nttRp39\nsS'Y:Load 84 - CLORET31'\np40\ng18\n(S'Variable_Type'\n(I2\nttRp41\nsS'Y:PMachine89 - CLUCCI34'\np42\ng18\n(S'Variable_Type'\n(I2\nttRp43\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np44\ng18\n(S'Variable_Type'\n(I2\nttRp45\nsS'Y:Load 80 - CGHISO31'\np46\ng18\n(S'Variable_Type'\n(I2\nttRp47\nsS'Y:PMachine74 - CCERVI31'\np48\ng18\n(S'Variable_Type'\n(I2\nttRp49\nsS'Y:PMachine125 - CVAZZI36'\np50\ng18\n(S'Variable_Type'\n(I2\nttRp51\nsS'Y:Load 59 - CCALDA31'\np52\ng18\n(S'Variable_Type'\n(I2\nttRp53\nsS'Y:PMachine88 - CLUCCI33'\np54\ng18\n(S'Variable_Type'\n(I2\nttRp55\nsS'Y:PMachine120 - CVAZZI31'\np56\ng18\n(S'Variable_Type'\n(I2\nttRp57\nsS'Y:PMachine111 - CSTMAR31'\np58\ng18\n(S'Variable_Type'\n(I2\nttRp59\nsS'Y:NbeTransit'\np60\ng18\n(S'Variable_Type'\n(I2\nttRp61\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np62\ng18\n(S'Variable_Type'\n(I2\nttRp63\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np64\ng18\n(S'Variable_Type'\n(I2\nttRp65\nsS'Y:PMachine130 - CVAZZI311'\np66\ng18\n(S'Variable_Type'\n(I2\nttRp67\nsS'Y:PMachine127 - CVAZZI38'\np68\ng18\n(S'Variable_Type'\n(I2\nttRp69\nsS'Y:VBus131 - CVAZZI312'\np70\ng18\n(S'Variable_Type'\n(I2\nttRp71\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np72\ng18\n(S'Variable_Type'\n(I2\nttRp73\nsS'Y:PMachine123 - CVAZZI34'\np74\ng18\n(S'Variable_Type'\n(I2\nttRp75\nsS'Y:VBus118 - CTOLLA33'\np76\ng18\n(S'Variable_Type'\n(I2\nttRp77\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np78\ng18\n(S'Variable_Type'\n(I2\nttRp79\nsS'Y:PMachine58 - CBONIF32'\np80\ng18\n(S'Variable_Type'\n(I2\nttRp81\nsS'Y:Load 104 - CPROPR31'\np82\ng18\n(S'Variable_Type'\n(I2\nttRp83\nsS'Y:PMachine30 - CLUCCI22'\np84\ng18\n(S'Variable_Type'\n(I2\nttRp85\nsS'Y:VBus100 - COLETT31'\np86\ng18\n(S'Variable_Type'\n(I2\nttRp87\nsS'Y:PProdTot'\np88\ng18\n(S'Variable_Type'\n(I2\nttRp89\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np90\ng18\n(S'Variable_Type'\n(I2\nttRp91\nsS'Y:VBus57 - CBONIF31'\np92\ng18\n(S'Variable_Type'\n(I2\nttRp93\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np94\ng18\n(S'Variable_Type'\n(I2\nttRp95\nsS'Y:PConsoTot'\np96\ng18\n(S'Variable_Type'\n(I2\nttRp97\nsS'Iteration'\np98\ng18\n(S'Variable_Type'\n(I2\nttRp99\nsS'Y:PMachine109 - CSAGON32'\np100\ng18\n(S'Variable_Type'\n(I2\nttRp101\nsS'Y:PMachine135 - CLUCCI36'\np102\ng18\n(S'Variable_Type'\n(I2\nttRp103\nsS'Y:VBus30 - CLUCCI22'\np104\ng18\n(S'Variable_Type'\n(I2\nttRp105\nsS'Y:VBus122 - CVAZZI33'\np106\ng18\n(S'Variable_Type'\n(I2\nttRp107\nsS'Y:VBus22 - CCORTE21'\np108\ng18\n(S'Variable_Type'\n(I2\nttRp109\nsS'Y:VBus117 - CTOLLA32'\np110\ng18\n(S'Variable_Type'\n(I2\nttRp111\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np112\ng18\n(S'Variable_Type'\n(I2\nttRp113\nsS'Y:PMachine107 - CRIZZA32'\np114\ng18\n(S'Variable_Type'\n(I2\nttRp115\nsS'Y:VBus16 - CCALDA21'\np116\ng18\n(S'Variable_Type'\n(I2\nttRp117\nsS'Y:Load 102 - CPORTO31'\np118\ng18\n(S'Variable_Type'\n(I2\nttRp119\nsS'Y:VBus107 - CRIZZA32'\np120\ng18\n(S'Variable_Type'\n(I2\nttRp121\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np122\ng18\n(S'Variable_Type'\n(I2\nttRp123\nsS'Y:VBus41 - CSAMPO21'\np124\ng18\n(S'Variable_Type'\n(I2\nttRp125\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np126\ng18\n(S'Variable_Type'\n(I2\nttRp127\nsS'Y:VBus34 - CPIETR21'\np128\ng18\n(S'Variable_Type'\n(I2\nttRp129\nsS'Y:Load 108 - CSAGON31'\np130\ng18\n(S'Variable_Type'\n(I2\nttRp131\nsS'Y:VBus56 - CBIGUG32'\np132\ng18\n(S'Variable_Type'\n(I2\nttRp133\nsS'Y:PMachine42 - CSISCO21'\np134\ng18\n(S'Variable_Type'\n(I2\nttRp135\nsS'Y:PMachine138 - CLUCCI39'\np136\ng18\n(S'Variable_Type'\n(I2\nttRp137\nsS'Y:PMachine112 - CSAMPO31'\np138\ng18\n(S'Variable_Type'\n(I2\nttRp139\nsS'Y:VBus105 - CPROPR32'\np140\ng18\n(S'Variable_Type'\n(I2\nttRp141\nsS'Y:VBus1 - CBONIF11'\np142\ng18\n(S'Variable_Type'\n(I2\nttRp143\nsS'Y:VBus12 - CBASTI21'\np144\ng18\n(S'Variable_Type'\n(I2\nttRp145\nsS'Y:PMachine129 - CVAZZI310'\np146\ng18\n(S'Variable_Type'\n(I2\nttRp147\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np148\ng18\n(S'Variable_Type'\n(I2\nttRp149\nsS'Y:VBus35 - CPORTO21'\np150\ng18\n(S'Variable_Type'\n(I2\nttRp151\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np152\ng18\n(S'Variable_Type'\n(I2\nttRp153\nsS'Y:VBus54 - CBASTI32'\np154\ng18\n(S'Variable_Type'\n(I2\nttRp155\nsS'Y:VBus69 - CCASAM37'\np156\ng18\n(S'Variable_Type'\n(I2\nttRp157\nsS'Y:VBus45 - CTOLLA21'\np158\ng18\n(S'Variable_Type'\n(I2\nttRp159\nsS'Y:PMachine115 - CTAGLI31'\np160\ng18\n(S'Variable_Type'\n(I2\nttRp161\nsS'Y:VBus43 - CSOVEN21'\np162\ng18\n(S'Variable_Type'\n(I2\nttRp163\nsS'Y:VBus76 - CCORTE31'\np164\ng18\n(S'Variable_Type'\n(I2\nttRp165\nsS'Y:VBus75 - CCORSC31'\np166\ng18\n(S'Variable_Type'\n(I2\nttRp167\nsS'Y:PMachine78 - CFURIA31'\np168\ng18\n(S'Variable_Type'\n(I2\nttRp169\nsS'Y:VBus127 - CVAZZI38'\np170\ng18\n(S'Variable_Type'\n(I2\nttRp171\nsS'Y:VBus115 - CTAGLI31'\np172\ng18\n(S'Variable_Type'\n(I2\nttRp173\nsS'Y:Load 61 - CCALVI31'\np174\ng18\n(S'Variable_Type'\n(I2\nttRp175\nsS'Y:VBus55 - CBIGUG31'\np176\ng18\n(S'Variable_Type'\n(I2\nttRp177\nsS'Y:Load 42 - CSISCO21'\np178\ng18\n(S'Variable_Type'\n(I2\nttRp179\nsS'Y:VBus72 - CCASTI31'\np180\ng18\n(S'Variable_Type'\n(I2\nttRp181\nsS'Y:Load 37 - CRIZZA21'\np182\ng18\n(S'Variable_Type'\n(I2\nttRp183\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np184\ng18\n(S'Variable_Type'\n(I2\nttRp185\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np186\ng18\n(S'Variable_Type'\n(I2\nttRp187\nsS'Y:PMachine137 - CLUCCI38'\np188\ng18\n(S'Variable_Type'\n(I2\nttRp189\nsS'Y:PMachine67 - CCASAM35'\np190\ng18\n(S'Variable_Type'\n(I2\nttRp191\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np192\ng18\n(S'Variable_Type'\n(I2\nttRp193\nsS'Y:VBus31 - CMOROS21'\np194\ng18\n(S'Variable_Type'\n(I2\nttRp195\nsS'Y:VBus103 - CPORTO32'\np196\ng18\n(S'Variable_Type'\n(I2\nttRp197\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np198\ng18\n(S'Variable_Type'\n(I2\nttRp199\nsS'Y:PMachine128 - CVAZZI39'\np200\ng18\n(S'Variable_Type'\n(I2\nttRp201\nsS'Y:PMachine72 - CCASTI31'\np202\ng18\n(S'Variable_Type'\n(I2\nttRp203\nsS'Y:VBus27 - CILERO21'\np204\ng18\n(S'Variable_Type'\n(I2\nttRp205\nsS'Y:VBus11 - CASPRE21'\np206\ng18\n(S'Variable_Type'\n(I2\nttRp207\nsS'Y:PMachine75 - CCORSC31'\np208\ng18\n(S'Variable_Type'\n(I2\nttRp209\nsS'Y:Load 51 - CASPRE31'\np210\ng18\n(S'Variable_Type'\n(I2\nttRp211\nsS'Y:PMachine61 - CCALVI31'\np212\ng18\n(S'Variable_Type'\n(I2\nttRp213\nsS'Y:VBus51 - CASPRE31'\np214\ng18\n(S'Variable_Type'\n(I2\nttRp215\nsS'Y:VBus114 - CSOVEN31'\np216\ng18\n(S'Variable_Type'\n(I2\nttRp217\nsS'Y:VBus116 - CTOLLA31'\np218\ng18\n(S'Variable_Type'\n(I2\nttRp219\nsS'Y:Load 86 - CLUCCI31'\np220\ng18\n(S'Variable_Type'\n(I2\nttRp221\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np222\ng18\n(S'Variable_Type'\n(I2\nttRp223\nsS'Y:PMachine116 - CTOLLA31'\np224\ng18\n(S'Variable_Type'\n(I2\nttRp225\nsS'Y:PMachine104 - CPROPR31'\np226\ng18\n(S'Variable_Type'\n(I2\nttRp227\nsS'Y:VBus128 - CVAZZI39'\np228\ng18\n(S'Variable_Type'\n(I2\nttRp229\nsS'Y:PMachine136 - CLUCCI37'\np230\ng18\n(S'Variable_Type'\n(I2\nttRp231\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np232\ng18\n(S'Variable_Type'\n(I2\nttRp233\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np234\ng18\n(S'Variable_Type'\n(I2\nttRp235\nsS'Y:PMachine68 - CCASAM36'\np236\ng18\n(S'Variable_Type'\n(I2\nttRp237\nsS'Y:PMachine29 - CLUCCI21'\np238\ng18\n(S'Variable_Type'\n(I2\nttRp239\nsS'Y:VBus42 - CSISCO21'\np240\ng18\n(S'Variable_Type'\n(I2\nttRp241\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np242\ng18\n(S'Variable_Type'\n(I2\nttRp243\nsS'Y:VBus14 - CBONIF21'\np244\ng18\n(S'Variable_Type'\n(I2\nttRp245\nsS'Y:VBus73 - CCASTI32'\np246\ng18\n(S'Variable_Type'\n(I2\nttRp247\nsS'Y:VBus64 - CCASAM32'\np248\ng18\n(S'Variable_Type'\n(I2\nttRp249\nsS'Y:PMachine14 - CBONIF21'\np250\ng18\n(S'Variable_Type'\n(I2\nttRp251\nsS'Y:PMachine62 - CCALVI32'\np252\ng18\n(S'Variable_Type'\n(I2\nttRp253\nsS'Y:VBus133 - CVAZZI314'\np254\ng18\n(S'Variable_Type'\n(I2\nttRp255\nsS'Y:VBus63 - CCASAM31'\np256\ng18\n(S'Variable_Type'\n(I2\nttRp257\nsS'Y:PMachine101 - CPIETR31'\np258\ng18\n(S'Variable_Type'\n(I2\nttRp259\nsS'Y:%Losses'\np260\ng18\n(S'Variable_Type'\n(I2\nttRp261\nsS'Y:VBus85 - CLORET32'\np262\ng18\n(S'Variable_Type'\n(I2\nttRp263\nsS'Y:Load 115 - CTAGLI31'\np264\ng18\n(S'Variable_Type'\n(I2\nttRp265\nsS'ENR'\np266\ng18\n(S'Variable_Type'\n(I2\nttRp267\nsS'Y:VBus101 - CPIETR31'\np268\ng18\n(S'Variable_Type'\n(I2\nttRp269\nsS'Y:PMachine106 - CRIZZA31'\np270\ng18\n(S'Variable_Type'\n(I2\nttRp271\nsS'Y:VBus132 - CVAZZI313'\np272\ng18\n(S'Variable_Type'\n(I2\nttRp273\nsS'Y:PMachine118 - CTOLLA33'\np274\ng18\n(S'Variable_Type'\n(I2\nttRp275\nsS'Y:VBus19 - CCASTI21'\np276\ng18\n(S'Variable_Type'\n(I2\nttRp277\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np278\ng18\n(S'Variable_Type'\n(I2\nttRp279\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np280\ng18\n(S'Variable_Type'\n(I2\nttRp281\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np282\ng18\n(S'Variable_Type'\n(I2\nttRp283\nsS'Y:PMachine53 - CBASTI31'\np284\ng18\n(S'Variable_Type'\n(I2\nttRp285\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np286\ng18\n(S'Variable_Type'\n(I2\nttRp287\nsS'Y:VBus15 - CBONIF22'\np288\ng18\n(S'Variable_Type'\n(I2\nttRp289\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np290\ng18\n(S'Variable_Type'\n(I2\nttRp291\nsS'Y:VBus129 - CVAZZI310'\np292\ng18\n(S'Variable_Type'\n(I2\nttRp293\nsS'Y:VBus123 - CVAZZI34'\np294\ng18\n(S'Variable_Type'\n(I2\nttRp295\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np296\ng18\n(S'Variable_Type'\n(I2\nttRp297\nsS'Y:VBus60 - CCALDA32'\np298\ng18\n(S'Variable_Type'\n(I2\nttRp299\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np300\ng18\n(S'Variable_Type'\n(I2\nttRp301\nsS'Y:VBus65 - CCASAM33'\np302\ng18\n(S'Variable_Type'\n(I2\nttRp303\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np304\ng18\n(S'Variable_Type'\n(I2\nttRp305\nsS'Y:PMachine139 - CLUCCI310'\np306\ng18\n(S'Variable_Type'\n(I2\nttRp307\nsS'Y:VBus112 - CSAMPO31'\np308\ng18\n(S'Variable_Type'\n(I2\nttRp309\nsS'Y:VBus68 - CCASAM36'\np310\ng18\n(S'Variable_Type'\n(I2\nttRp311\nsS'Y:Load 55 - CBIGUG31'\np312\ng18\n(S'Variable_Type'\n(I2\nttRp313\nsS'Y:Max%A'\np314\ng18\n(S'Variable_Type'\n(I2\nttRp315\nsS'Y:NbeTransit_0.9-1'\np316\ng18\n(S'Variable_Type'\n(I2\nttRp317\nsS'Y:VBus24 - CFURIA21'\np318\ng18\n(S'Variable_Type'\n(I2\nttRp319\nsS'Y:VBus23 - CCORTE22'\np320\ng18\n(S'Variable_Type'\n(I2\nttRp321\nsS'Y:VBus18 - CCASAM21'\np322\ng18\n(S'Variable_Type'\n(I2\nttRp323\nsS'Y:VBus40 - CSTMAR21'\np324\ng18\n(S'Variable_Type'\n(I2\nttRp325\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np326\ng18\n(S'Variable_Type'\n(I2\nttRp327\nsS'Y:PMachine124 - CVAZZI35'\np328\ng18\n(S'Variable_Type'\n(I2\nttRp329\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np330\ng18\n(S'Variable_Type'\n(I2\nttRp331\nsS'Y:PMachine117 - CTOLLA32'\np332\ng18\n(S'Variable_Type'\n(I2\nttRp333\nsS'Y:Load 82 - CILERO31'\np334\ng18\n(S'Variable_Type'\n(I2\nttRp335\nsS'Y:VBus33 - COLETT21'\np336\ng18\n(S'Variable_Type'\n(I2\nttRp337\nsS'Y:VBus32 - COCANA21'\np338\ng18\n(S'Variable_Type'\n(I2\nttRp339\nsS'Y:PMachine121 - CVAZZI32'\np340\ng18\n(S'Variable_Type'\n(I2\nttRp341\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np342\ng18\n(S'Variable_Type'\n(I2\nttRp343\nsS'Y:VBus59 - CCALDA31'\np344\ng18\n(S'Variable_Type'\n(I2\nttRp345\nsS'Y:VBus82 - CILERO31'\np346\ng18\n(S'Variable_Type'\n(I2\nttRp347\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np348\ng18\n(S'Variable_Type'\n(I2\nttRp349\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np350\ng18\n(S'Variable_Type'\n(I2\nttRp351\nsS'Y:VBus37 - CRIZZA21'\np352\ng18\n(S'Variable_Type'\n(I2\nttRp353\nsS'Y:PMachine73 - CCASTI32'\np354\ng18\n(S'Variable_Type'\n(I2\nttRp355\nsS'Y:PMachine86 - CLUCCI31'\np356\ng18\n(S'Variable_Type'\n(I2\nttRp357\nsS'Y:Load 53 - CBASTI31'\np358\ng18\n(S'Variable_Type'\n(I2\nttRp359\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np360\ng18\n(S'Variable_Type'\n(I2\nttRp361\nsS'Y:VBus21 - CCORSC21'\np362\ng18\n(S'Variable_Type'\n(I2\nttRp363\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np364\ng18\n(S'Variable_Type'\n(I2\nttRp365\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np366\ng18\n(S'Variable_Type'\n(I2\nttRp367\nsS'Y:PMachine126 - CVAZZI37'\np368\ng18\n(S'Variable_Type'\n(I2\nttRp369\nsS'Y:PMachine64 - CCASAM32'\np370\ng18\n(S'Variable_Type'\n(I2\nttRp371\nsS'Y:VBus67 - CCASAM35'\np372\ng18\n(S'Variable_Type'\n(I2\nttRp373\nsS'Y:VBus53 - CBASTI31'\np374\ng18\n(S'Variable_Type'\n(I2\nttRp375\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np376\ng18\n(S'Variable_Type'\n(I2\nttRp377\nsS'Y:VBus61 - CCALVI31'\np378\ng18\n(S'Variable_Type'\n(I2\nttRp379\nsS'Y:VBus93 - COCANA32'\np380\ng18\n(S'Variable_Type'\n(I2\nttRp381\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np382\ng18\n(S'Variable_Type'\n(I2\nttRp383\nsS'Y:VBus104 - CPROPR31'\np384\ng18\n(S'Variable_Type'\n(I2\nttRp385\nsS'Y:VBus48 - CZSSS621'\np386\ng18\n(S'Variable_Type'\n(I2\nttRp387\nsS'Y:PMachine85 - CLORET32'\np388\ng18\n(S'Variable_Type'\n(I2\nttRp389\nsS'Y:VBus74 - CCERVI31'\np390\ng18\n(S'Variable_Type'\n(I2\nttRp391\nsS'X:ProdPV%Pnom'\np392\ng18\n(S'Variable_Type'\n(I2\nttRp393\nsS'Y:VBus89 - CLUCCI34'\np394\ng18\n(S'Variable_Type'\n(I2\nttRp395\nsS'Y:Load 100 - COLETT31'\np396\ng18\n(S'Variable_Type'\n(I2\nttRp397\nsS'Y:PMachine54 - CBASTI32'\np398\ng18\n(S'Variable_Type'\n(I2\nttRp399\nsS'Y:VBus138 - CLUCCI39'\np400\ng18\n(S'Variable_Type'\n(I2\nttRp401\nsS'Y:VBus39 - CSTLUC21'\np402\ng18\n(S'Variable_Type'\n(I2\nttRp403\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np404\ng18\n(S'Variable_Type'\n(I2\nttRp405\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np406\ng18\n(S'Variable_Type'\n(I2\nttRp407\nsS'Y:Load 78 - CFURIA31'\np408\ng18\n(S'Variable_Type'\n(I2\nttRp409\nsS'Y:VBus28 - CLORET21'\np410\ng18\n(S'Variable_Type'\n(I2\nttRp411\nsS'Y:PMachine105 - CPROPR32'\np412\ng18\n(S'Variable_Type'\n(I2\nttRp413\nsS'Y:VBus96 - COCANA35'\np414\ng18\n(S'Variable_Type'\n(I2\nttRp415\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np416\ng18\n(S'Variable_Type'\n(I2\nttRp417\nsS'Y:PMachine18 - CCASAM21'\np418\ng18\n(S'Variable_Type'\n(I2\nttRp419\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np420\ng18\n(S'Variable_Type'\n(I2\nttRp421\nsS'Y:VBus13 - CBIGUG21'\np422\ng18\n(S'Variable_Type'\n(I2\nttRp423\nsS'Y:VBus92 - COCANA31'\np424\ng18\n(S'Variable_Type'\n(I2\nttRp425\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np426\ng18\n(S'Variable_Type'\n(I2\nttRp427\nsS'Y:Load 57 - CBONIF31'\np428\ng18\n(S'Variable_Type'\n(I2\nttRp429\nsS'Y:VBus58 - CBONIF32'\np430\ng18\n(S'Variable_Type'\n(I2\nttRp431\nsS'Y:VBus84 - CLORET31'\np432\ng18\n(S'Variable_Type'\n(I2\nttRp433\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np434\ng18\n(S'Variable_Type'\n(I2\nttRp435\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np436\ng18\n(S'Variable_Type'\n(I2\nttRp437\nsS'Y:VBus97 - COCANA36'\np438\ng18\n(S'Variable_Type'\n(I2\nttRp439\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np440\ng18\n(S'Variable_Type'\n(I2\nttRp441\nsS'Y:VBus79 - CFURIA32'\np442\ng18\n(S'Variable_Type'\n(I2\nttRp443\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np444\ng18\n(S'Variable_Type'\n(I2\nttRp445\nsS'Y:Load 110 - CSTLUC31'\np446\ng18\n(S'Variable_Type'\n(I2\nttRp447\nsS'Y:VBus80 - CGHISO31'\np448\ng18\n(S'Variable_Type'\n(I2\nttRp449\nsS'Y:PMachine114 - CSOVEN31'\np450\ng18\n(S'Variable_Type'\n(I2\nttRp451\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np452\ng18\n(S'Variable_Type'\n(I2\nttRp453\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np454\ng18\n(S'Variable_Type'\n(I2\nttRp455\nsS'Y:PMachine93 - COCANA32'\np456\ng18\n(S'Variable_Type'\n(I2\nttRp457\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np458\ng18\n(S'Variable_Type'\n(I2\nttRp459\nsS'Y:VBus87 - CLUCCI32'\np460\ng18\n(S'Variable_Type'\n(I2\nttRp461\nsS'Y:VBus62 - CCALVI32'\np462\ng18\n(S'Variable_Type'\n(I2\nttRp463\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np464\ng18\n(S'Variable_Type'\n(I2\nttRp465\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np466\ng18\n(S'Variable_Type'\n(I2\nttRp467\nsS'Y:VBus81 - CGHISO32'\np468\ng18\n(S'Variable_Type'\n(I2\nttRp469\nsS'Y:PMachine63 - CCASAM31'\np470\ng18\n(S'Variable_Type'\n(I2\nttRp471\nsS'Y:PMachine47 - CVAZZI21'\np472\ng18\n(S'Variable_Type'\n(I2\nttRp473\nsS'Y:VBus86 - CLUCCI31'\np474\ng18\n(S'Variable_Type'\n(I2\nttRp475\nsS'X:Load(pu)'\np476\ng18\n(S'Variable_Type'\n(I2\nttRp477\nsS'Y:VBus95 - COCANA34'\np478\ng18\n(S'Variable_Type'\n(I2\nttRp479\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np480\ng18\n(S'Variable_Type'\n(I2\nttRp481\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np482\ng18\n(S'Variable_Type'\n(I2\nttRp483\nsS'Y:Load 95 - COCANA34'\np484\ng18\n(S'Variable_Type'\n(I2\nttRp485\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np486\ng18\n(S'Variable_Type'\n(I2\nttRp487\nsS'Y:PMachine90 - CMOROS31'\np488\ng18\n(S'Variable_Type'\n(I2\nttRp489\nsS'Y:Load 101 - CPIETR31'\np490\ng18\n(S'Variable_Type'\n(I2\nttRp491\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np492\ng18\n(S'Variable_Type'\n(I2\nttRp493\nsS'Y:PMachine132 - CVAZZI313'\np494\ng18\n(S'Variable_Type'\n(I2\nttRp495\nsS'Y:VBus125 - CVAZZI36'\np496\ng18\n(S'Variable_Type'\n(I2\nttRp497\nsS'Y:VBus135 - CLUCCI36'\np498\ng18\n(S'Variable_Type'\n(I2\nttRp499\nsS'Y:VBus47 - CVAZZI21'\np500\ng18\n(S'Variable_Type'\n(I2\nttRp501\nsS'Y:VBus94 - COCANA33'\np502\ng18\n(S'Variable_Type'\n(I2\nttRp503\nsS'Y:VBus17 - CCALVI21'\np504\ng18\n(S'Variable_Type'\n(I2\nttRp505\nsS'Y:VBus36 - CPROPR21'\np506\ng18\n(S'Variable_Type'\n(I2\nttRp507\nsS'Y:Load 90 - CMOROS31'\np508\ng18\n(S'Variable_Type'\n(I2\nttRp509\nsS'Y:VBus120 - CVAZZI31'\np510\ng18\n(S'Variable_Type'\n(I2\nttRp511\nsS'Y:VBus52 - CASPRE32'\np512\ng18\n(S'Variable_Type'\n(I2\nttRp513\nsS'Y:VBus25 - CFURIA22'\np514\ng18\n(S'Variable_Type'\n(I2\nttRp515\nsS'Y:Load 76 - CCORTE31'\np516\ng18\n(S'Variable_Type'\n(I2\nttRp517\nsS'Y:PMachine69 - CCASAM37'\np518\ng18\n(S'Variable_Type'\n(I2\nttRp519\nsS'Y:Load 74 - CCERVI31'\np520\ng18\n(S'Variable_Type'\n(I2\nttRp521\nsS'Y:PMachine92 - COCANA31'\np522\ng18\n(S'Variable_Type'\n(I2\nttRp523\nsS'Y:PMachine102 - CPORTO31'\np524\ng18\n(S'Variable_Type'\n(I2\nttRp525\nsS'Y:PMachine122 - CVAZZI33'\np526\ng18\n(S'Variable_Type'\n(I2\nttRp527\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np528\ng18\n(S'Variable_Type'\n(I2\nttRp529\nsS'Y:PMachine77 - CCORTE32'\np530\ng18\n(S'Variable_Type'\n(I2\nttRp531\nsS'Y:NbeTension'\np532\ng18\n(S'Variable_Type'\n(I2\nttRp533\nsS'Y:VBus126 - CVAZZI37'\np534\ng18\n(S'Variable_Type'\n(I2\nttRp535\nsS'Y:PMachine60 - CCALDA32'\np536\ng18\n(S'Variable_Type'\n(I2\nttRp537\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np538\ng18\n(S'Variable_Type'\n(I2\nttRp539\nsS'Y:VBus20 - CCERVI21'\np540\ng18\n(S'Variable_Type'\n(I2\nttRp541\nsS'Y:VBus119 - CTRAVO31'\np542\ng18\n(S'Variable_Type'\n(I2\nttRp543\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np544\ng18\n(S'Variable_Type'\n(I2\nttRp545\nsS'Y:VBus139 - CLUCCI310'\np546\ng18\n(S'Variable_Type'\n(I2\nttRp547\nsS'Y:VBus106 - CRIZZA31'\np548\ng18\n(S'Variable_Type'\n(I2\nttRp549\nsS'Y:PMachine66 - CCASAM34'\np550\ng18\n(S'Variable_Type'\n(I2\nttRp551\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np552\ng18\n(S'Variable_Type'\n(I2\nttRp553\nsS'Y:VBus136 - CLUCCI37'\np554\ng18\n(S'Variable_Type'\n(I2\nttRp555\nsS'Y:VBus90 - CMOROS31'\np556\ng18\n(S'Variable_Type'\n(I2\nttRp557\nsS'X:lineOff#'\np558\ng18\n(S'Variable_Type'\n(I2\nttRp559\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np560\ng18\n(S'Variable_Type'\n(I2\nttRp561\nsS'Y:VBus108 - CSAGON31'\np562\ng18\n(S'Variable_Type'\n(I2\nttRp563\nsS'Y:VBus137 - CLUCCI38'\np564\ng18\n(S'Variable_Type'\n(I2\nttRp565\nsS'Y:VBus130 - CVAZZI311'\np566\ng18\n(S'Variable_Type'\n(I2\nttRp567\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np568\ng18\n(S'Variable_Type'\n(I2\nttRp569\nsS'Y:VBus46 - CTRAVO21'\np570\ng18\n(S'Variable_Type'\n(I2\nttRp571\nsS'Y:VBus113 - CSAMPO32'\np572\ng18\n(S'Variable_Type'\n(I2\nttRp573\nsS'Y:PMachine133 - CVAZZI314'\np574\ng18\n(S'Variable_Type'\n(I2\nttRp575\nsS'Y:PMachine65 - CCASAM33'\np576\ng18\n(S'Variable_Type'\n(I2\nttRp577\nsS'Y:VBus78 - CFURIA31'\np578\ng18\n(S'Variable_Type'\n(I2\nttRp579\nsS'Y:VBus26 - CGHISO21'\np580\ng18\n(S'Variable_Type'\n(I2\nttRp581\nsS'Y:VBus121 - CVAZZI32'\np582\ng18\n(S'Variable_Type'\n(I2\nttRp583\nsS'Y:PMachine81 - CGHISO32'\np584\ng18\n(S'Variable_Type'\n(I2\nttRp585\nsS'Y:PMachine97 - COCANA36'\np586\ng18\n(S'Variable_Type'\n(I2\nttRp587\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np588\ng18\n(S'Variable_Type'\n(I2\nttRp589\nsS'Y:PMachine83 - CILERO32'\np590\ng18\n(S'Variable_Type'\n(I2\nttRp591\nsS'Y:VBus83 - CILERO32'\np592\ng18\n(S'Variable_Type'\n(I2\nttRp593\nsS'Y:VBus66 - CCASAM34'\np594\ng18\n(S'Variable_Type'\n(I2\nttRp595\nsS'Y:PMachine1 - CBONIF11'\np596\ng18\n(S'Variable_Type'\n(I2\nttRp597\nsS'Y:VBus111 - CSTMAR31'\np598\ng18\n(S'Variable_Type'\n(I2\nttRp599\nsS'Y:VBus124 - CVAZZI35'\np600\ng18\n(S'Variable_Type'\n(I2\nttRp601\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np602\ng18\n(S'Variable_Type'\n(I2\nttRp603\nsS'Y:PMachine131 - CVAZZI312'\np604\ng18\n(S'Variable_Type'\n(I2\nttRp605\nsS'Y:VBus44 - CTAGLI21'\np606\ng18\n(S'Variable_Type'\n(I2\nttRp607\nsS'Y:VBus88 - CLUCCI33'\np608\ng18\n(S'Variable_Type'\n(I2\nttRp609\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np610\ng18\n(S'Variable_Type'\n(I2\nttRp611\nsS'Y:VBus38 - CSAGON21'\np612\ng18\n(S'Variable_Type'\n(I2\nttRp613\nsS'Y:VBus29 - CLUCCI21'\np614\ng18\n(S'Variable_Type'\n(I2\nttRp615\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np616\ng18\n(S'Variable_Type'\n(I2\nttRp617\nsS'Y:VBus110 - CSTLUC31'\np618\ng18\n(S'Variable_Type'\n(I2\nttRp619\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np620\ng18\n(S'Variable_Type'\n(I2\nttRp621\nssS'metas'\np622\n(dp623\nsS'values'\np624\n(dp625\nS'HighlightedAttribute'\np626\n(I0\nI-2\ntp627\nssS'time'\np628\nF1370016679.8940001\nsba(iOWContexts\nContext\np629\n(dp630\ng624\n(dp631\nS'HighlightedAttribute'\np632\n(I4\nI-2\ntp633\nssg15\n(dp634\nS'Y:PMachine134 - CLUCCI35'\np635\ng18\n(S'Variable_Type'\n(I2\nttRp636\nsS'Y:VBus77 - CCORTE32'\np637\ng18\n(S'Variable_Type'\n(I2\nttRp638\nsS'Y:VBus134 - CLUCCI35'\np639\ng18\n(S'Variable_Type'\n(I2\nttRp640\nsS'Y:VBus109 - CSAGON32'\np641\ng18\n(S'Variable_Type'\n(I2\nttRp642\nsS'Y:VBus102 - CPORTO31'\np643\ng18\n(S'Variable_Type'\n(I2\nttRp644\nsS'Y:VBus18 - CCASAM21'\np645\ng18\n(S'Variable_Type'\n(I2\nttRp646\nsS'Y:VBus114 - CSOVEN31'\np647\ng18\n(S'Variable_Type'\n(I2\nttRp648\nsS'Y:VBus83 - CILERO32'\np649\ng18\n(S'Variable_Type'\n(I2\nttRp650\nsS'Y:VBus117 - CTOLLA32'\np651\ng18\n(S'Variable_Type'\n(I2\nttRp652\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np653\ng18\n(S'Variable_Type'\n(I2\nttRp654\nsS'Y:PMachine87 - CLUCCI32'\np655\ng18\n(S'Variable_Type'\n(I2\nttRp656\nsS'Y:PMachine113 - CSAMPO32'\np657\ng18\n(S'Variable_Type'\n(I2\nttRp658\nsS'Y:Load 84 - CLORET31'\np659\ng18\n(S'Variable_Type'\n(I2\nttRp660\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np661\ng18\n(S'Variable_Type'\n(I2\nttRp662\nsS'Y:Load 80 - CGHISO31'\np663\ng18\n(S'Variable_Type'\n(I2\nttRp664\nsS'Y:PMachine125 - CVAZZI36'\np665\ng18\n(S'Variable_Type'\n(I2\nttRp666\nsS'Y:VBus116 - CTOLLA31'\np667\ng18\n(S'Variable_Type'\n(I2\nttRp668\nsS'Y:PMachine88 - CLUCCI33'\np669\ng18\n(S'Variable_Type'\n(I2\nttRp670\nsS'Y:PMachine124 - CVAZZI35'\np671\ng18\n(S'Variable_Type'\n(I2\nttRp672\nsS'Y:PMachine111 - CSTMAR31'\np673\ng18\n(S'Variable_Type'\n(I2\nttRp674\nsS'Y:NbeTransit'\np675\ng18\n(S'Variable_Type'\n(I2\nttRp676\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np677\ng18\n(S'Variable_Type'\n(I2\nttRp678\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np679\ng18\n(S'Variable_Type'\n(I2\nttRp680\nsS'Y:PMachine130 - CVAZZI311'\np681\ng18\n(S'Variable_Type'\n(I2\nttRp682\nsS'Y:PMachine127 - CVAZZI38'\np683\ng18\n(S'Variable_Type'\n(I2\nttRp684\nsS'Y:VBus131 - CVAZZI312'\np685\ng18\n(S'Variable_Type'\n(I2\nttRp686\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np687\ng18\n(S'Variable_Type'\n(I2\nttRp688\nsS'Y:PMachine123 - CVAZZI34'\np689\ng18\n(S'Variable_Type'\n(I2\nttRp690\nsS'Y:VBus118 - CTOLLA33'\np691\ng18\n(S'Variable_Type'\n(I2\nttRp692\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np693\ng18\n(S'Variable_Type'\n(I2\nttRp694\nsS'Y:PMachine58 - CBONIF32'\np695\ng18\n(S'Variable_Type'\n(I2\nttRp696\nsS'Y:VBus90 - CMOROS31'\np697\ng18\n(S'Variable_Type'\n(I2\nttRp698\nsS'Y:Load 104 - CPROPR31'\np699\ng18\n(S'Variable_Type'\n(I2\nttRp700\nsS'Y:PMachine30 - CLUCCI22'\np701\ng18\n(S'Variable_Type'\n(I2\nttRp702\nsS'Y:VBus100 - COLETT31'\np703\ng18\n(S'Variable_Type'\n(I2\nttRp704\nsS'Y:PProdTot'\np705\ng18\n(S'Variable_Type'\n(I2\nttRp706\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np707\ng18\n(S'Variable_Type'\n(I2\nttRp708\nsS'Y:VBus57 - CBONIF31'\np709\ng18\n(S'Variable_Type'\n(I2\nttRp710\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np711\ng18\n(S'Variable_Type'\n(I2\nttRp712\nsS'Y:PMachine131 - CVAZZI312'\np713\ng18\n(S'Variable_Type'\n(I2\nttRp714\nsS'Y:PMachine109 - CSAGON32'\np715\ng18\n(S'Variable_Type'\n(I2\nttRp716\nsS'Y:PMachine135 - CLUCCI36'\np717\ng18\n(S'Variable_Type'\n(I2\nttRp718\nsS'Y:VBus30 - CLUCCI22'\np719\ng18\n(S'Variable_Type'\n(I2\nttRp720\nsS'Y:VBus122 - CVAZZI33'\np721\ng18\n(S'Variable_Type'\n(I2\nttRp722\nsS'Y:VBus22 - CCORTE21'\np723\ng18\n(S'Variable_Type'\n(I2\nttRp724\nsS'Y:PMachine89 - CLUCCI34'\np725\ng18\n(S'Variable_Type'\n(I2\nttRp726\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np727\ng18\n(S'Variable_Type'\n(I2\nttRp728\nsS'Y:PMachine107 - CRIZZA32'\np729\ng18\n(S'Variable_Type'\n(I2\nttRp730\nsS'Y:VBus16 - CCALDA21'\np731\ng18\n(S'Variable_Type'\n(I2\nttRp732\nsS'Y:Load 102 - CPORTO31'\np733\ng18\n(S'Variable_Type'\n(I2\nttRp734\nsS'Y:VBus107 - CRIZZA32'\np735\ng18\n(S'Variable_Type'\n(I2\nttRp736\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np737\ng18\n(S'Variable_Type'\n(I2\nttRp738\nsS'Y:VBus41 - CSAMPO21'\np739\ng18\n(S'Variable_Type'\n(I2\nttRp740\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np741\ng18\n(S'Variable_Type'\n(I2\nttRp742\nsS'Y:VBus34 - CPIETR21'\np743\ng18\n(S'Variable_Type'\n(I2\nttRp744\nsS'Y:Load 108 - CSAGON31'\np745\ng18\n(S'Variable_Type'\n(I2\nttRp746\nsS'Y:VBus56 - CBIGUG32'\np747\ng18\n(S'Variable_Type'\n(I2\nttRp748\nsS'Y:PMachine42 - CSISCO21'\np749\ng18\n(S'Variable_Type'\n(I2\nttRp750\nsS'Y:PMachine138 - CLUCCI39'\np751\ng18\n(S'Variable_Type'\n(I2\nttRp752\nsS'Y:PMachine112 - CSAMPO31'\np753\ng18\n(S'Variable_Type'\n(I2\nttRp754\nsS'Y:VBus105 - CPROPR32'\np755\ng18\n(S'Variable_Type'\n(I2\nttRp756\nsS'Y:VBus1 - CBONIF11'\np757\ng18\n(S'Variable_Type'\n(I2\nttRp758\nsS'Y:VBus12 - CBASTI21'\np759\ng18\n(S'Variable_Type'\n(I2\nttRp760\nsS'Y:PMachine129 - CVAZZI310'\np761\ng18\n(S'Variable_Type'\n(I2\nttRp762\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np763\ng18\n(S'Variable_Type'\n(I2\nttRp764\nsS'Y:VBus35 - CPORTO21'\np765\ng18\n(S'Variable_Type'\n(I2\nttRp766\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np767\ng18\n(S'Variable_Type'\n(I2\nttRp768\nsS'Y:VBus54 - CBASTI32'\np769\ng18\n(S'Variable_Type'\n(I2\nttRp770\nsS'Y:VBus69 - CCASAM37'\np771\ng18\n(S'Variable_Type'\n(I2\nttRp772\nsS'Y:VBus45 - CTOLLA21'\np773\ng18\n(S'Variable_Type'\n(I2\nttRp774\nsS'Y:PMachine115 - CTAGLI31'\np775\ng18\n(S'Variable_Type'\n(I2\nttRp776\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np777\ng18\n(S'Variable_Type'\n(I2\nttRp778\nsS'Y:VBus43 - CSOVEN21'\np779\ng18\n(S'Variable_Type'\n(I2\nttRp780\nsS'Y:VBus76 - CCORTE31'\np781\ng18\n(S'Variable_Type'\n(I2\nttRp782\nsS'Y:VBus75 - CCORSC31'\np783\ng18\n(S'Variable_Type'\n(I2\nttRp784\nsS'Y:PMachine78 - CFURIA31'\np785\ng18\n(S'Variable_Type'\n(I2\nttRp786\nsS'Y:VBus127 - CVAZZI38'\np787\ng18\n(S'Variable_Type'\n(I2\nttRp788\nsS'Y:VBus115 - CTAGLI31'\np789\ng18\n(S'Variable_Type'\n(I2\nttRp790\nsS'Y:Load 61 - CCALVI31'\np791\ng18\n(S'Variable_Type'\n(I2\nttRp792\nsS'Y:VBus55 - CBIGUG31'\np793\ng18\n(S'Variable_Type'\n(I2\nttRp794\nsS'Y:Load 42 - CSISCO21'\np795\ng18\n(S'Variable_Type'\n(I2\nttRp796\nsS'Y:VBus72 - CCASTI31'\np797\ng18\n(S'Variable_Type'\n(I2\nttRp798\nsS'Y:Load 37 - CRIZZA21'\np799\ng18\n(S'Variable_Type'\n(I2\nttRp800\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np801\ng18\n(S'Variable_Type'\n(I2\nttRp802\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np803\ng18\n(S'Variable_Type'\n(I2\nttRp804\nsS'Y:PMachine137 - CLUCCI38'\np805\ng18\n(S'Variable_Type'\n(I2\nttRp806\nsS'Y:PMachine67 - CCASAM35'\np807\ng18\n(S'Variable_Type'\n(I2\nttRp808\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np809\ng18\n(S'Variable_Type'\n(I2\nttRp810\nsS'Y:VBus31 - CMOROS21'\np811\ng18\n(S'Variable_Type'\n(I2\nttRp812\nsS'Y:VBus103 - CPORTO32'\np813\ng18\n(S'Variable_Type'\n(I2\nttRp814\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np815\ng18\n(S'Variable_Type'\n(I2\nttRp816\nsS'Y:PMachine14 - CBONIF21'\np817\ng18\n(S'Variable_Type'\n(I2\nttRp818\nsS'Y:PMachine72 - CCASTI31'\np819\ng18\n(S'Variable_Type'\n(I2\nttRp820\nsS'Y:VBus27 - CILERO21'\np821\ng18\n(S'Variable_Type'\n(I2\nttRp822\nsS'Y:PMachine75 - CCORSC31'\np823\ng18\n(S'Variable_Type'\n(I2\nttRp824\nsS'Y:Load 51 - CASPRE31'\np825\ng18\n(S'Variable_Type'\n(I2\nttRp826\nsS'Y:VBus51 - CASPRE31'\np827\ng18\n(S'Variable_Type'\n(I2\nttRp828\nsS'Y:PMachine94 - COCANA33'\np829\ng18\n(S'Variable_Type'\n(I2\nttRp830\nsS'Y:PMachine126 - CVAZZI37'\np831\ng18\n(S'Variable_Type'\n(I2\nttRp832\nsS'Y:Load 86 - CLUCCI31'\np833\ng18\n(S'Variable_Type'\n(I2\nttRp834\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np835\ng18\n(S'Variable_Type'\n(I2\nttRp836\nsS'Y:PMachine104 - CPROPR31'\np837\ng18\n(S'Variable_Type'\n(I2\nttRp838\nsS'Y:VBus128 - CVAZZI39'\np839\ng18\n(S'Variable_Type'\n(I2\nttRp840\nsS'Y:PMachine136 - CLUCCI37'\np841\ng18\n(S'Variable_Type'\n(I2\nttRp842\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np843\ng18\n(S'Variable_Type'\n(I2\nttRp844\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np845\ng18\n(S'Variable_Type'\n(I2\nttRp846\nsS'Y:PMachine29 - CLUCCI21'\np847\ng18\n(S'Variable_Type'\n(I2\nttRp848\nsS'Y:VBus42 - CSISCO21'\np849\ng18\n(S'Variable_Type'\n(I2\nttRp850\nsS'Y:Load 110 - CSTLUC31'\np851\ng18\n(S'Variable_Type'\n(I2\nttRp852\nsS'Y:VBus14 - CBONIF21'\np853\ng18\n(S'Variable_Type'\n(I2\nttRp854\nsS'Y:VBus73 - CCASTI32'\np855\ng18\n(S'Variable_Type'\n(I2\nttRp856\nsS'Y:VBus64 - CCASAM32'\np857\ng18\n(S'Variable_Type'\n(I2\nttRp858\nsS'Y:PMachine128 - CVAZZI39'\np859\ng18\n(S'Variable_Type'\n(I2\nttRp860\nsS'Y:VBus133 - CVAZZI314'\np861\ng18\n(S'Variable_Type'\n(I2\nttRp862\nsS'Y:VBus63 - CCASAM31'\np863\ng18\n(S'Variable_Type'\n(I2\nttRp864\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np865\ng18\n(S'Variable_Type'\n(I2\nttRp866\nsS'Y:%Losses'\np867\ng18\n(S'Variable_Type'\n(I2\nttRp868\nsS'Y:VBus85 - CLORET32'\np869\ng18\n(S'Variable_Type'\n(I2\nttRp870\nsS'Y:Load 59 - CCALDA31'\np871\ng18\n(S'Variable_Type'\n(I2\nttRp872\nsS'Y:VBus129 - CVAZZI310'\np873\ng18\n(S'Variable_Type'\n(I2\nttRp874\nsS'Y:VBus101 - CPIETR31'\np875\ng18\n(S'Variable_Type'\n(I2\nttRp876\nsS'Y:PMachine106 - CRIZZA31'\np877\ng18\n(S'Variable_Type'\n(I2\nttRp878\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np879\ng18\n(S'Variable_Type'\n(I2\nttRp880\nsS'Y:PMachine118 - CTOLLA33'\np881\ng18\n(S'Variable_Type'\n(I2\nttRp882\nsS'Y:VBus19 - CCASTI21'\np883\ng18\n(S'Variable_Type'\n(I2\nttRp884\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np885\ng18\n(S'Variable_Type'\n(I2\nttRp886\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np887\ng18\n(S'Variable_Type'\n(I2\nttRp888\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np889\ng18\n(S'Variable_Type'\n(I2\nttRp890\nsS'Y:Load 115 - CTAGLI31'\np891\ng18\n(S'Variable_Type'\n(I2\nttRp892\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np893\ng18\n(S'Variable_Type'\n(I2\nttRp894\nsS'Y:VBus15 - CBONIF22'\np895\ng18\n(S'Variable_Type'\n(I2\nttRp896\nsS'Y:PMachine47 - CVAZZI21'\np897\ng18\n(S'Variable_Type'\n(I2\nttRp898\nsS'Y:VBus123 - CVAZZI34'\np899\ng18\n(S'Variable_Type'\n(I2\nttRp900\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np901\ng18\n(S'Variable_Type'\n(I2\nttRp902\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np903\ng18\n(S'Variable_Type'\n(I2\nttRp904\nsS'Y:VBus44 - CTAGLI21'\np905\ng18\n(S'Variable_Type'\n(I2\nttRp906\nsS'Y:VBus65 - CCASAM33'\np907\ng18\n(S'Variable_Type'\n(I2\nttRp908\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np909\ng18\n(S'Variable_Type'\n(I2\nttRp910\nsS'Y:PMachine139 - CLUCCI310'\np911\ng18\n(S'Variable_Type'\n(I2\nttRp912\nsS'Y:VBus112 - CSAMPO31'\np913\ng18\n(S'Variable_Type'\n(I2\nttRp914\nsS'Y:VBus68 - CCASAM36'\np915\ng18\n(S'Variable_Type'\n(I2\nttRp916\nsS'Y:Load 55 - CBIGUG31'\np917\ng18\n(S'Variable_Type'\n(I2\nttRp918\nsS'Y:PMachine53 - CBASTI31'\np919\ng18\n(S'Variable_Type'\n(I2\nttRp920\nsS'Y:NbeTransit_0.9-1'\np921\ng18\n(S'Variable_Type'\n(I2\nttRp922\nsS'Y:VBus24 - CFURIA21'\np923\ng18\n(S'Variable_Type'\n(I2\nttRp924\nsS'Y:VBus23 - CCORTE22'\np925\ng18\n(S'Variable_Type'\n(I2\nttRp926\nsS'XProdEolienne%Pnom'\np927\ng18\n(S'Variable_Type'\n(I2\nttRp928\nsS'Y:VBus40 - CSTMAR21'\np929\ng18\n(S'Variable_Type'\n(I2\nttRp930\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np931\ng18\n(S'Variable_Type'\n(I2\nttRp932\nsS'Y:PMachine120 - CVAZZI31'\np933\ng18\n(S'Variable_Type'\n(I2\nttRp934\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np935\ng18\n(S'Variable_Type'\n(I2\nttRp936\nsS'Y:PMachine117 - CTOLLA32'\np937\ng18\n(S'Variable_Type'\n(I2\nttRp938\nsS'Y:VBus89 - CLUCCI34'\np939\ng18\n(S'Variable_Type'\n(I2\nttRp940\nsS'Y:VBus33 - COLETT21'\np941\ng18\n(S'Variable_Type'\n(I2\nttRp942\nsS'Y:VBus32 - COCANA21'\np943\ng18\n(S'Variable_Type'\n(I2\nttRp944\nsS'Y:PMachine121 - CVAZZI32'\np945\ng18\n(S'Variable_Type'\n(I2\nttRp946\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np947\ng18\n(S'Variable_Type'\n(I2\nttRp948\nsS'Y:VBus59 - CCALDA31'\np949\ng18\n(S'Variable_Type'\n(I2\nttRp950\nsS'Y:VBus82 - CILERO31'\np951\ng18\n(S'Variable_Type'\n(I2\nttRp952\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np953\ng18\n(S'Variable_Type'\n(I2\nttRp954\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np955\ng18\n(S'Variable_Type'\n(I2\nttRp956\nsS'Y:VBus37 - CRIZZA21'\np957\ng18\n(S'Variable_Type'\n(I2\nttRp958\nsS'Y:PMachine73 - CCASTI32'\np959\ng18\n(S'Variable_Type'\n(I2\nttRp960\nsS'Y:PMachine86 - CLUCCI31'\np961\ng18\n(S'Variable_Type'\n(I2\nttRp962\nsS'Y:Load 53 - CBASTI31'\np963\ng18\n(S'Variable_Type'\n(I2\nttRp964\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np965\ng18\n(S'Variable_Type'\n(I2\nttRp966\nsS'Y:VBus21 - CCORSC21'\np967\ng18\n(S'Variable_Type'\n(I2\nttRp968\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np969\ng18\n(S'Variable_Type'\n(I2\nttRp970\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np971\ng18\n(S'Variable_Type'\n(I2\nttRp972\nsS'Y:Load 82 - CILERO31'\np973\ng18\n(S'Variable_Type'\n(I2\nttRp974\nsS'Y:PMachine64 - CCASAM32'\np975\ng18\n(S'Variable_Type'\n(I2\nttRp976\nsS'Y:VBus67 - CCASAM35'\np977\ng18\n(S'Variable_Type'\n(I2\nttRp978\nsS'Y:VBus53 - CBASTI31'\np979\ng18\n(S'Variable_Type'\n(I2\nttRp980\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np981\ng18\n(S'Variable_Type'\n(I2\nttRp982\nsS'Y:VBus61 - CCALVI31'\np983\ng18\n(S'Variable_Type'\n(I2\nttRp984\nsS'Y:VBus93 - COCANA32'\np985\ng18\n(S'Variable_Type'\n(I2\nttRp986\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np987\ng18\n(S'Variable_Type'\n(I2\nttRp988\nsS'Y:PMachine92 - COCANA31'\np989\ng18\n(S'Variable_Type'\n(I2\nttRp990\nsS'Y:VBus104 - CPROPR31'\np991\ng18\n(S'Variable_Type'\n(I2\nttRp992\nsS'Y:VBus48 - CZSSS621'\np993\ng18\n(S'Variable_Type'\n(I2\nttRp994\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np995\ng18\n(S'Variable_Type'\n(I2\nttRp996\nsS'Y:VBus74 - CCERVI31'\np997\ng18\n(S'Variable_Type'\n(I2\nttRp998\nsS'Y:VBus36 - CPROPR21'\np999\ng18\n(S'Variable_Type'\n(I2\nttRp1000\nsS'Y:Load 100 - COLETT31'\np1001\ng18\n(S'Variable_Type'\n(I2\nttRp1002\nsS'Y:PMachine54 - CBASTI32'\np1003\ng18\n(S'Variable_Type'\n(I2\nttRp1004\nsS'Y:VBus138 - CLUCCI39'\np1005\ng18\n(S'Variable_Type'\n(I2\nttRp1006\nsS'Y:VBus39 - CSTLUC21'\np1007\ng18\n(S'Variable_Type'\n(I2\nttRp1008\nsS'Y:PMachine74 - CCERVI31'\np1009\ng18\n(S'Variable_Type'\n(I2\nttRp1010\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np1011\ng18\n(S'Variable_Type'\n(I2\nttRp1012\nsS'Y:Load 78 - CFURIA31'\np1013\ng18\n(S'Variable_Type'\n(I2\nttRp1014\nsS'Y:VBus28 - CLORET21'\np1015\ng18\n(S'Variable_Type'\n(I2\nttRp1016\nsS'Y:PMachine105 - CPROPR32'\np1017\ng18\n(S'Variable_Type'\n(I2\nttRp1018\nsS'Y:VBus96 - COCANA35'\np1019\ng18\n(S'Variable_Type'\n(I2\nttRp1020\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np1021\ng18\n(S'Variable_Type'\n(I2\nttRp1022\nsS'Y:PMachine18 - CCASAM21'\np1023\ng18\n(S'Variable_Type'\n(I2\nttRp1024\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np1025\ng18\n(S'Variable_Type'\n(I2\nttRp1026\nsS'Y:VBus13 - CBIGUG21'\np1027\ng18\n(S'Variable_Type'\n(I2\nttRp1028\nsS'Y:VBus92 - COCANA31'\np1029\ng18\n(S'Variable_Type'\n(I2\nttRp1030\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np1031\ng18\n(S'Variable_Type'\n(I2\nttRp1032\nsS'Y:Load 76 - CCORTE31'\np1033\ng18\n(S'Variable_Type'\n(I2\nttRp1034\nsS'Y:VBus58 - CBONIF32'\np1035\ng18\n(S'Variable_Type'\n(I2\nttRp1036\nsS'Y:VBus84 - CLORET31'\np1037\ng18\n(S'Variable_Type'\n(I2\nttRp1038\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np1039\ng18\n(S'Variable_Type'\n(I2\nttRp1040\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np1041\ng18\n(S'Variable_Type'\n(I2\nttRp1042\nsS'Y:VBus97 - COCANA36'\np1043\ng18\n(S'Variable_Type'\n(I2\nttRp1044\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np1045\ng18\n(S'Variable_Type'\n(I2\nttRp1046\nsS'Y:VBus106 - CRIZZA31'\np1047\ng18\n(S'Variable_Type'\n(I2\nttRp1048\nsS'Y:VBus79 - CFURIA32'\np1049\ng18\n(S'Variable_Type'\n(I2\nttRp1050\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np1051\ng18\n(S'Variable_Type'\n(I2\nttRp1052\nsS'Y:VBus80 - CGHISO31'\np1053\ng18\n(S'Variable_Type'\n(I2\nttRp1054\nsS'Y:PMachine114 - CSOVEN31'\np1055\ng18\n(S'Variable_Type'\n(I2\nttRp1056\nsS'Y:VBus132 - CVAZZI313'\np1057\ng18\n(S'Variable_Type'\n(I2\nttRp1058\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np1059\ng18\n(S'Variable_Type'\n(I2\nttRp1060\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np1061\ng18\n(S'Variable_Type'\n(I2\nttRp1062\nsS'Y:VBus87 - CLUCCI32'\np1063\ng18\n(S'Variable_Type'\n(I2\nttRp1064\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np1065\ng18\n(S'Variable_Type'\n(I2\nttRp1066\nsS'Y:VBus88 - CLUCCI33'\np1067\ng18\n(S'Variable_Type'\n(I2\nttRp1068\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np1069\ng18\n(S'Variable_Type'\n(I2\nttRp1070\nsS'Y:PMachine85 - CLORET32'\np1071\ng18\n(S'Variable_Type'\n(I2\nttRp1072\nsS'Y:VBus81 - CGHISO32'\np1073\ng18\n(S'Variable_Type'\n(I2\nttRp1074\nsS'Y:PMachine63 - CCASAM31'\np1075\ng18\n(S'Variable_Type'\n(I2\nttRp1076\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np1077\ng18\n(S'Variable_Type'\n(I2\nttRp1078\nsS'X:Load(pu)'\np1079\ng18\n(S'Variable_Type'\n(I2\nttRp1080\nsS'Y:NbeTension'\np1081\ng18\n(S'Variable_Type'\n(I2\nttRp1082\nsS'Y:VBus95 - COCANA34'\np1083\ng18\n(S'Variable_Type'\n(I2\nttRp1084\nsS'Y:VBus62 - CCALVI32'\np1085\ng18\n(S'Variable_Type'\n(I2\nttRp1086\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np1087\ng18\n(S'Variable_Type'\n(I2\nttRp1088\nsS'Y:Load 95 - COCANA34'\np1089\ng18\n(S'Variable_Type'\n(I2\nttRp1090\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np1091\ng18\n(S'Variable_Type'\n(I2\nttRp1092\nsS'Y:PMachine90 - CMOROS31'\np1093\ng18\n(S'Variable_Type'\n(I2\nttRp1094\nsS'Y:Load 101 - CPIETR31'\np1095\ng18\n(S'Variable_Type'\n(I2\nttRp1096\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np1097\ng18\n(S'Variable_Type'\n(I2\nttRp1098\nsS'Y:PMachine132 - CVAZZI313'\np1099\ng18\n(S'Variable_Type'\n(I2\nttRp1100\nsS'Y:PMachine65 - CCASAM33'\np1101\ng18\n(S'Variable_Type'\n(I2\nttRp1102\nsS'Y:VBus125 - CVAZZI36'\np1103\ng18\n(S'Variable_Type'\n(I2\nttRp1104\nsS'Y:VBus135 - CLUCCI36'\np1105\ng18\n(S'Variable_Type'\n(I2\nttRp1106\nsS'Y:VBus47 - CVAZZI21'\np1107\ng18\n(S'Variable_Type'\n(I2\nttRp1108\nsS'Y:VBus94 - COCANA33'\np1109\ng18\n(S'Variable_Type'\n(I2\nttRp1110\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np1111\ng18\n(S'Variable_Type'\n(I2\nttRp1112\nsS'Y:VBus17 - CCALVI21'\np1113\ng18\n(S'Variable_Type'\n(I2\nttRp1114\nsS'Y:Load 90 - CMOROS31'\np1115\ng18\n(S'Variable_Type'\n(I2\nttRp1116\nsS'Y:VBus120 - CVAZZI31'\np1117\ng18\n(S'Variable_Type'\n(I2\nttRp1118\nsS'Y:VBus52 - CASPRE32'\np1119\ng18\n(S'Variable_Type'\n(I2\nttRp1120\nsS'Y:VBus25 - CFURIA22'\np1121\ng18\n(S'Variable_Type'\n(I2\nttRp1122\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np1123\ng18\n(S'Variable_Type'\n(I2\nttRp1124\nsS'Y:PMachine69 - CCASAM37'\np1125\ng18\n(S'Variable_Type'\n(I2\nttRp1126\nsS'Y:PConsoTot'\np1127\ng18\n(S'Variable_Type'\n(I2\nttRp1128\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np1129\ng18\n(S'Variable_Type'\n(I2\nttRp1130\nsS'Y:PMachine102 - CPORTO31'\np1131\ng18\n(S'Variable_Type'\n(I2\nttRp1132\nsS'Y:VBus136 - CLUCCI37'\np1133\ng18\n(S'Variable_Type'\n(I2\nttRp1134\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np1135\ng18\n(S'Variable_Type'\n(I2\nttRp1136\nsS'Y:PMachine122 - CVAZZI33'\np1137\ng18\n(S'Variable_Type'\n(I2\nttRp1138\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np1139\ng18\n(S'Variable_Type'\n(I2\nttRp1140\nsS'Y:PMachine77 - CCORTE32'\np1141\ng18\n(S'Variable_Type'\n(I2\nttRp1142\nsS'Y:PMachine116 - CTOLLA31'\np1143\ng18\n(S'Variable_Type'\n(I2\nttRp1144\nsS'Y:VBus126 - CVAZZI37'\np1145\ng18\n(S'Variable_Type'\n(I2\nttRp1146\nsS'Y:PMachine60 - CCALDA32'\np1147\ng18\n(S'Variable_Type'\n(I2\nttRp1148\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np1149\ng18\n(S'Variable_Type'\n(I2\nttRp1150\nsS'Y:VBus20 - CCERVI21'\np1151\ng18\n(S'Variable_Type'\n(I2\nttRp1152\nsS'Y:VBus119 - CTRAVO31'\np1153\ng18\n(S'Variable_Type'\n(I2\nttRp1154\nsS'Y:VBus11 - CASPRE21'\np1155\ng18\n(S'Variable_Type'\n(I2\nttRp1156\nsS'Y:VBus139 - CLUCCI310'\np1157\ng18\n(S'Variable_Type'\n(I2\nttRp1158\nsS'Y:VBus60 - CCALDA32'\np1159\ng18\n(S'Variable_Type'\n(I2\nttRp1160\nsS'Y:PMachine66 - CCASAM34'\np1161\ng18\n(S'Variable_Type'\n(I2\nttRp1162\nsS'Y:PMachine101 - CPIETR31'\np1163\ng18\n(S'Variable_Type'\n(I2\nttRp1164\nsS'Y:PMachine133 - CVAZZI314'\np1165\ng18\n(S'Variable_Type'\n(I2\nttRp1166\nsS'Y:PMachine62 - CCALVI32'\np1167\ng18\n(S'Variable_Type'\n(I2\nttRp1168\nsS'Y:Load 74 - CCERVI31'\np1169\ng18\n(S'Variable_Type'\n(I2\nttRp1170\nsS'X:lineOff#'\np1171\ng18\n(S'Variable_Type'\n(I2\nttRp1172\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np1173\ng18\n(S'Variable_Type'\n(I2\nttRp1174\nsS'Y:VBus108 - CSAGON31'\np1175\ng18\n(S'Variable_Type'\n(I2\nttRp1176\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np1177\ng18\n(S'Variable_Type'\n(I2\nttRp1178\nsS'Y:VBus137 - CLUCCI38'\np1179\ng18\n(S'Variable_Type'\n(I2\nttRp1180\nsS'Y:VBus130 - CVAZZI311'\np1181\ng18\n(S'Variable_Type'\n(I2\nttRp1182\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np1183\ng18\n(S'Variable_Type'\n(I2\nttRp1184\nsS'Y:VBus46 - CTRAVO21'\np1185\ng18\n(S'Variable_Type'\n(I2\nttRp1186\nsS'Y:VBus113 - CSAMPO32'\np1187\ng18\n(S'Variable_Type'\n(I2\nttRp1188\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np1189\ng18\n(S'Variable_Type'\n(I2\nttRp1190\nsS'Y:PMachine68 - CCASAM36'\np1191\ng18\n(S'Variable_Type'\n(I2\nttRp1192\nsS'Y:VBus78 - CFURIA31'\np1193\ng18\n(S'Variable_Type'\n(I2\nttRp1194\nsS'Y:VBus26 - CGHISO21'\np1195\ng18\n(S'Variable_Type'\n(I2\nttRp1196\nsS'Y:VBus121 - CVAZZI32'\np1197\ng18\n(S'Variable_Type'\n(I2\nttRp1198\nsS'Y:PMachine97 - COCANA36'\np1199\ng18\n(S'Variable_Type'\n(I2\nttRp1200\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np1201\ng18\n(S'Variable_Type'\n(I2\nttRp1202\nsS'Y:PMachine83 - CILERO32'\np1203\ng18\n(S'Variable_Type'\n(I2\nttRp1204\nsS'Y:Max%A'\np1205\ng18\n(S'Variable_Type'\n(I2\nttRp1206\nsS'Y:VBus66 - CCASAM34'\np1207\ng18\n(S'Variable_Type'\n(I2\nttRp1208\nsS'Y:PMachine1 - CBONIF11'\np1209\ng18\n(S'Variable_Type'\n(I2\nttRp1210\nsS'Y:VBus111 - CSTMAR31'\np1211\ng18\n(S'Variable_Type'\n(I2\nttRp1212\nsS'Y:VBus124 - CVAZZI35'\np1213\ng18\n(S'Variable_Type'\n(I2\nttRp1214\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np1215\ng18\n(S'Variable_Type'\n(I2\nttRp1216\nsS'Y:VBus29 - CLUCCI21'\np1217\ng18\n(S'Variable_Type'\n(I2\nttRp1218\nsS'Y:PMachine93 - COCANA32'\np1219\ng18\n(S'Variable_Type'\n(I2\nttRp1220\nsS'Y:Load 57 - CBONIF31'\np1221\ng18\n(S'Variable_Type'\n(I2\nttRp1222\nsS'Y:VBus86 - CLUCCI31'\np1223\ng18\n(S'Variable_Type'\n(I2\nttRp1224\nsS'Y:VBus38 - CSAGON21'\np1225\ng18\n(S'Variable_Type'\n(I2\nttRp1226\nsS'Y:PMachine81 - CGHISO32'\np1227\ng18\n(S'Variable_Type'\n(I2\nttRp1228\nsS'Y:PMachine61 - CCALVI31'\np1229\ng18\n(S'Variable_Type'\n(I2\nttRp1230\nsS'Y:VBus110 - CSTLUC31'\np1231\ng18\n(S'Variable_Type'\n(I2\nttRp1232\nsS'X:ProdPV%Pnom'\np1233\ng18\n(S'Variable_Type'\n(I2\nttRp1234\nssg622\n(dp1235\nsg12\n(lp1236\nS'orderedDomain'\np1237\nasg628\nF1369744626.3099999\nsba(iOWContexts\nContext\np1238\n(dp1239\ng624\n(dp1240\ng632\n(I0\nI-2\ntp1241\nssg15\n(dp1242\nS'Y:PMachine134 - CLUCCI35'\np1243\ng18\n(S'Variable_Type'\n(I2\nttRp1244\nsS'Y:VBus77 - CCORTE32'\np1245\ng18\n(S'Variable_Type'\n(I2\nttRp1246\nsS'Y:VBus134 - CLUCCI35'\np1247\ng18\n(S'Variable_Type'\n(I2\nttRp1248\nsS'Y:VBus109 - CSAGON32'\np1249\ng18\n(S'Variable_Type'\n(I2\nttRp1250\nsS'Y:VBus102 - CPORTO31'\np1251\ng18\n(S'Variable_Type'\n(I2\nttRp1252\nsS'Y:VBus18 - CCASAM21'\np1253\ng18\n(S'Variable_Type'\n(I2\nttRp1254\nsS'Y:VBus114 - CSOVEN31'\np1255\ng18\n(S'Variable_Type'\n(I2\nttRp1256\nsS'Y:VBus83 - CILERO32'\np1257\ng18\n(S'Variable_Type'\n(I2\nttRp1258\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np1259\ng18\n(S'Variable_Type'\n(I2\nttRp1260\nsS'Y:PMachine87 - CLUCCI32'\np1261\ng18\n(S'Variable_Type'\n(I2\nttRp1262\nsS'Y:PMachine113 - CSAMPO32'\np1263\ng18\n(S'Variable_Type'\n(I2\nttRp1264\nsS'Y:Load 84 - CLORET31'\np1265\ng18\n(S'Variable_Type'\n(I2\nttRp1266\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np1267\ng18\n(S'Variable_Type'\n(I2\nttRp1268\nsS'Y:Load 42 - CSISCO21'\np1269\ng18\n(S'Variable_Type'\n(I2\nttRp1270\nsS'Y:PMachine125 - CVAZZI36'\np1271\ng18\n(S'Variable_Type'\n(I2\nttRp1272\nsS'Y:VBus116 - CTOLLA31'\np1273\ng18\n(S'Variable_Type'\n(I2\nttRp1274\nsS'Y:PMachine88 - CLUCCI33'\np1275\ng18\n(S'Variable_Type'\n(I2\nttRp1276\nsS'Y:PMachine124 - CVAZZI35'\np1277\ng18\n(S'Variable_Type'\n(I2\nttRp1278\nsS'Y:PMachine111 - CSTMAR31'\np1279\ng18\n(S'Variable_Type'\n(I2\nttRp1280\nsS'Y:NbeTransit'\np1281\ng18\n(S'Variable_Type'\n(I2\nttRp1282\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np1283\ng18\n(S'Variable_Type'\n(I2\nttRp1284\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np1285\ng18\n(S'Variable_Type'\n(I2\nttRp1286\nsS'Y:PMachine130 - CVAZZI311'\np1287\ng18\n(S'Variable_Type'\n(I2\nttRp1288\nsS'Y:PMachine127 - CVAZZI38'\np1289\ng18\n(S'Variable_Type'\n(I2\nttRp1290\nsS'Y:VBus131 - CVAZZI312'\np1291\ng18\n(S'Variable_Type'\n(I2\nttRp1292\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np1293\ng18\n(S'Variable_Type'\n(I2\nttRp1294\nsS'Y:PMachine123 - CVAZZI34'\np1295\ng18\n(S'Variable_Type'\n(I2\nttRp1296\nsS'Y:VBus118 - CTOLLA33'\np1297\ng18\n(S'Variable_Type'\n(I2\nttRp1298\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np1299\ng18\n(S'Variable_Type'\n(I2\nttRp1300\nsS'Y:PMachine58 - CBONIF32'\np1301\ng18\n(S'Variable_Type'\n(I2\nttRp1302\nsS'Y:VBus90 - CMOROS31'\np1303\ng18\n(S'Variable_Type'\n(I2\nttRp1304\nsS'Y:Load 104 - CPROPR31'\np1305\ng18\n(S'Variable_Type'\n(I2\nttRp1306\nsS'Y:PMachine30 - CLUCCI22'\np1307\ng18\n(S'Variable_Type'\n(I2\nttRp1308\nsS'Y:VBus100 - COLETT31'\np1309\ng18\n(S'Variable_Type'\n(I2\nttRp1310\nsS'Y:PProdTot'\np1311\ng18\n(S'Variable_Type'\n(I2\nttRp1312\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np1313\ng18\n(S'Variable_Type'\n(I2\nttRp1314\nsS'Y:VBus57 - CBONIF31'\np1315\ng18\n(S'Variable_Type'\n(I2\nttRp1316\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np1317\ng18\n(S'Variable_Type'\n(I2\nttRp1318\nsS'Iteration'\np1319\ng18\n(S'Variable_Type'\n(I2\nttRp1320\nsS'Y:PMachine109 - CSAGON32'\np1321\ng18\n(S'Variable_Type'\n(I2\nttRp1322\nsS'Y:PMachine135 - CLUCCI36'\np1323\ng18\n(S'Variable_Type'\n(I2\nttRp1324\nsS'Y:VBus30 - CLUCCI22'\np1325\ng18\n(S'Variable_Type'\n(I2\nttRp1326\nsS'Y:VBus122 - CVAZZI33'\np1327\ng18\n(S'Variable_Type'\n(I2\nttRp1328\nsS'Y:VBus22 - CCORTE21'\np1329\ng18\n(S'Variable_Type'\n(I2\nttRp1330\nsS'Y:VBus117 - CTOLLA32'\np1331\ng18\n(S'Variable_Type'\n(I2\nttRp1332\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np1333\ng18\n(S'Variable_Type'\n(I2\nttRp1334\nsS'Y:PMachine107 - CRIZZA32'\np1335\ng18\n(S'Variable_Type'\n(I2\nttRp1336\nsS'Y:VBus16 - CCALDA21'\np1337\ng18\n(S'Variable_Type'\n(I2\nttRp1338\nsS'Y:Load 102 - CPORTO31'\np1339\ng18\n(S'Variable_Type'\n(I2\nttRp1340\nsS'Y:VBus107 - CRIZZA32'\np1341\ng18\n(S'Variable_Type'\n(I2\nttRp1342\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np1343\ng18\n(S'Variable_Type'\n(I2\nttRp1344\nsS'Y:VBus41 - CSAMPO21'\np1345\ng18\n(S'Variable_Type'\n(I2\nttRp1346\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np1347\ng18\n(S'Variable_Type'\n(I2\nttRp1348\nsS'Y:VBus34 - CPIETR21'\np1349\ng18\n(S'Variable_Type'\n(I2\nttRp1350\nsS'Y:Load 108 - CSAGON31'\np1351\ng18\n(S'Variable_Type'\n(I2\nttRp1352\nsS'Y:VBus56 - CBIGUG32'\np1353\ng18\n(S'Variable_Type'\n(I2\nttRp1354\nsS'Y:PMachine42 - CSISCO21'\np1355\ng18\n(S'Variable_Type'\n(I2\nttRp1356\nsS'Y:PMachine138 - CLUCCI39'\np1357\ng18\n(S'Variable_Type'\n(I2\nttRp1358\nsS'Y:PMachine112 - CSAMPO31'\np1359\ng18\n(S'Variable_Type'\n(I2\nttRp1360\nsS'Y:VBus105 - CPROPR32'\np1361\ng18\n(S'Variable_Type'\n(I2\nttRp1362\nsS'Y:VBus1 - CBONIF11'\np1363\ng18\n(S'Variable_Type'\n(I2\nttRp1364\nsS'Y:VBus12 - CBASTI21'\np1365\ng18\n(S'Variable_Type'\n(I2\nttRp1366\nsS'Y:PMachine129 - CVAZZI310'\np1367\ng18\n(S'Variable_Type'\n(I2\nttRp1368\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np1369\ng18\n(S'Variable_Type'\n(I2\nttRp1370\nsS'Y:VBus35 - CPORTO21'\np1371\ng18\n(S'Variable_Type'\n(I2\nttRp1372\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np1373\ng18\n(S'Variable_Type'\n(I2\nttRp1374\nsS'Y:VBus54 - CBASTI32'\np1375\ng18\n(S'Variable_Type'\n(I2\nttRp1376\nsS'Y:VBus69 - CCASAM37'\np1377\ng18\n(S'Variable_Type'\n(I2\nttRp1378\nsS'Y:VBus45 - CTOLLA21'\np1379\ng18\n(S'Variable_Type'\n(I2\nttRp1380\nsS'Y:PMachine115 - CTAGLI31'\np1381\ng18\n(S'Variable_Type'\n(I2\nttRp1382\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np1383\ng18\n(S'Variable_Type'\n(I2\nttRp1384\nsS'Y:VBus43 - CSOVEN21'\np1385\ng18\n(S'Variable_Type'\n(I2\nttRp1386\nsS'Y:VBus76 - CCORTE31'\np1387\ng18\n(S'Variable_Type'\n(I2\nttRp1388\nsS'Y:VBus75 - CCORSC31'\np1389\ng18\n(S'Variable_Type'\n(I2\nttRp1390\nsS'Y:PMachine78 - CFURIA31'\np1391\ng18\n(S'Variable_Type'\n(I2\nttRp1392\nsS'Y:VBus127 - CVAZZI38'\np1393\ng18\n(S'Variable_Type'\n(I2\nttRp1394\nsS'Y:VBus115 - CTAGLI31'\np1395\ng18\n(S'Variable_Type'\n(I2\nttRp1396\nsS'Y:Load 61 - CCALVI31'\np1397\ng18\n(S'Variable_Type'\n(I2\nttRp1398\nsS'Y:VBus55 - CBIGUG31'\np1399\ng18\n(S'Variable_Type'\n(I2\nttRp1400\nsS'Y:Load 80 - CGHISO31'\np1401\ng18\n(S'Variable_Type'\n(I2\nttRp1402\nsS'Y:VBus72 - CCASTI31'\np1403\ng18\n(S'Variable_Type'\n(I2\nttRp1404\nsS'Y:Load 37 - CRIZZA21'\np1405\ng18\n(S'Variable_Type'\n(I2\nttRp1406\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np1407\ng18\n(S'Variable_Type'\n(I2\nttRp1408\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np1409\ng18\n(S'Variable_Type'\n(I2\nttRp1410\nsS'Y:PMachine102 - CPORTO31'\np1411\ng18\n(S'Variable_Type'\n(I2\nttRp1412\nsS'Y:PMachine67 - CCASAM35'\np1413\ng18\n(S'Variable_Type'\n(I2\nttRp1414\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np1415\ng18\n(S'Variable_Type'\n(I2\nttRp1416\nsS'Y:VBus31 - CMOROS21'\np1417\ng18\n(S'Variable_Type'\n(I2\nttRp1418\nsS'Y:VBus103 - CPORTO32'\np1419\ng18\n(S'Variable_Type'\n(I2\nttRp1420\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np1421\ng18\n(S'Variable_Type'\n(I2\nttRp1422\nsS'Y:PMachine14 - CBONIF21'\np1423\ng18\n(S'Variable_Type'\n(I2\nttRp1424\nsS'Y:PMachine72 - CCASTI31'\np1425\ng18\n(S'Variable_Type'\n(I2\nttRp1426\nsS'Y:VBus27 - CILERO21'\np1427\ng18\n(S'Variable_Type'\n(I2\nttRp1428\nsS'Y:PMachine75 - CCORSC31'\np1429\ng18\n(S'Variable_Type'\n(I2\nttRp1430\nsS'Y:Load 51 - CASPRE31'\np1431\ng18\n(S'Variable_Type'\n(I2\nttRp1432\nsS'Y:VBus51 - CASPRE31'\np1433\ng18\n(S'Variable_Type'\n(I2\nttRp1434\nsS'Y:PMachine94 - COCANA33'\np1435\ng18\n(S'Variable_Type'\n(I2\nttRp1436\nsS'Y:PMachine126 - CVAZZI37'\np1437\ng18\n(S'Variable_Type'\n(I2\nttRp1438\nsS'Y:Load 86 - CLUCCI31'\np1439\ng18\n(S'Variable_Type'\n(I2\nttRp1440\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np1441\ng18\n(S'Variable_Type'\n(I2\nttRp1442\nsS'Y:PMachine104 - CPROPR31'\np1443\ng18\n(S'Variable_Type'\n(I2\nttRp1444\nsS'Y:VBus128 - CVAZZI39'\np1445\ng18\n(S'Variable_Type'\n(I2\nttRp1446\nsS'Y:PMachine136 - CLUCCI37'\np1447\ng18\n(S'Variable_Type'\n(I2\nttRp1448\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np1449\ng18\n(S'Variable_Type'\n(I2\nttRp1450\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np1451\ng18\n(S'Variable_Type'\n(I2\nttRp1452\nsS'Y:PMachine29 - CLUCCI21'\np1453\ng18\n(S'Variable_Type'\n(I2\nttRp1454\nsS'Y:VBus42 - CSISCO21'\np1455\ng18\n(S'Variable_Type'\n(I2\nttRp1456\nsS'Y:Load 110 - CSTLUC31'\np1457\ng18\n(S'Variable_Type'\n(I2\nttRp1458\nsS'Y:VBus14 - CBONIF21'\np1459\ng18\n(S'Variable_Type'\n(I2\nttRp1460\nsS'Y:VBus73 - CCASTI32'\np1461\ng18\n(S'Variable_Type'\n(I2\nttRp1462\nsS'Y:VBus64 - CCASAM32'\np1463\ng18\n(S'Variable_Type'\n(I2\nttRp1464\nsS'Y:PMachine128 - CVAZZI39'\np1465\ng18\n(S'Variable_Type'\n(I2\nttRp1466\nsS'Y:VBus133 - CVAZZI314'\np1467\ng18\n(S'Variable_Type'\n(I2\nttRp1468\nsS'Y:VBus63 - CCASAM31'\np1469\ng18\n(S'Variable_Type'\n(I2\nttRp1470\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np1471\ng18\n(S'Variable_Type'\n(I2\nttRp1472\nsS'Y:%Losses'\np1473\ng18\n(S'Variable_Type'\n(I2\nttRp1474\nsS'Y:VBus85 - CLORET32'\np1475\ng18\n(S'Variable_Type'\n(I2\nttRp1476\nsS'Y:Load 59 - CCALDA31'\np1477\ng18\n(S'Variable_Type'\n(I2\nttRp1478\nsS'Y:VBus129 - CVAZZI310'\np1479\ng18\n(S'Variable_Type'\n(I2\nttRp1480\nsS'Y:VBus101 - CPIETR31'\np1481\ng18\n(S'Variable_Type'\n(I2\nttRp1482\nsS'Y:PMachine106 - CRIZZA31'\np1483\ng18\n(S'Variable_Type'\n(I2\nttRp1484\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np1485\ng18\n(S'Variable_Type'\n(I2\nttRp1486\nsS'Y:PMachine118 - CTOLLA33'\np1487\ng18\n(S'Variable_Type'\n(I2\nttRp1488\nsS'Y:VBus19 - CCASTI21'\np1489\ng18\n(S'Variable_Type'\n(I2\nttRp1490\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np1491\ng18\n(S'Variable_Type'\n(I2\nttRp1492\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np1493\ng18\n(S'Variable_Type'\n(I2\nttRp1494\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np1495\ng18\n(S'Variable_Type'\n(I2\nttRp1496\nsS'Y:Load 115 - CTAGLI31'\np1497\ng18\n(S'Variable_Type'\n(I2\nttRp1498\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np1499\ng18\n(S'Variable_Type'\n(I2\nttRp1500\nsS'Y:VBus79 - CFURIA32'\np1501\ng18\n(S'Variable_Type'\n(I2\nttRp1502\nsS'Y:PMachine47 - CVAZZI21'\np1503\ng18\n(S'Variable_Type'\n(I2\nttRp1504\nsS'Y:VBus123 - CVAZZI34'\np1505\ng18\n(S'Variable_Type'\n(I2\nttRp1506\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np1507\ng18\n(S'Variable_Type'\n(I2\nttRp1508\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np1509\ng18\n(S'Variable_Type'\n(I2\nttRp1510\nsS'Y:VBus44 - CTAGLI21'\np1511\ng18\n(S'Variable_Type'\n(I2\nttRp1512\nsS'Y:VBus65 - CCASAM33'\np1513\ng18\n(S'Variable_Type'\n(I2\nttRp1514\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np1515\ng18\n(S'Variable_Type'\n(I2\nttRp1516\nsS'Y:PMachine139 - CLUCCI310'\np1517\ng18\n(S'Variable_Type'\n(I2\nttRp1518\nsS'Y:VBus112 - CSAMPO31'\np1519\ng18\n(S'Variable_Type'\n(I2\nttRp1520\nsS'Y:VBus68 - CCASAM36'\np1521\ng18\n(S'Variable_Type'\n(I2\nttRp1522\nsS'Y:Load 55 - CBIGUG31'\np1523\ng18\n(S'Variable_Type'\n(I2\nttRp1524\nsS'Y:PMachine53 - CBASTI31'\np1525\ng18\n(S'Variable_Type'\n(I2\nttRp1526\nsS'Y:NbeTransit_0.9-1'\np1527\ng18\n(S'Variable_Type'\n(I2\nttRp1528\nsS'Y:VBus24 - CFURIA21'\np1529\ng18\n(S'Variable_Type'\n(I2\nttRp1530\nsS'Y:VBus23 - CCORTE22'\np1531\ng18\n(S'Variable_Type'\n(I2\nttRp1532\nsS'XProdEolienne%Pnom'\np1533\ng18\n(S'Variable_Type'\n(I2\nttRp1534\nsS'Y:VBus40 - CSTMAR21'\np1535\ng18\n(S'Variable_Type'\n(I2\nttRp1536\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np1537\ng18\n(S'Variable_Type'\n(I2\nttRp1538\nsS'Y:PMachine120 - CVAZZI31'\np1539\ng18\n(S'Variable_Type'\n(I2\nttRp1540\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np1541\ng18\n(S'Variable_Type'\n(I2\nttRp1542\nsS'Y:PMachine117 - CTOLLA32'\np1543\ng18\n(S'Variable_Type'\n(I2\nttRp1544\nsS'Y:VBus89 - CLUCCI34'\np1545\ng18\n(S'Variable_Type'\n(I2\nttRp1546\nsS'Y:VBus33 - COLETT21'\np1547\ng18\n(S'Variable_Type'\n(I2\nttRp1548\nsS'Y:VBus32 - COCANA21'\np1549\ng18\n(S'Variable_Type'\n(I2\nttRp1550\nsS'Y:PMachine121 - CVAZZI32'\np1551\ng18\n(S'Variable_Type'\n(I2\nttRp1552\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np1553\ng18\n(S'Variable_Type'\n(I2\nttRp1554\nsS'Y:VBus59 - CCALDA31'\np1555\ng18\n(S'Variable_Type'\n(I2\nttRp1556\nsS'Y:VBus82 - CILERO31'\np1557\ng18\n(S'Variable_Type'\n(I2\nttRp1558\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np1559\ng18\n(S'Variable_Type'\n(I2\nttRp1560\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np1561\ng18\n(S'Variable_Type'\n(I2\nttRp1562\nsS'Y:VBus37 - CRIZZA21'\np1563\ng18\n(S'Variable_Type'\n(I2\nttRp1564\nsS'Y:PMachine73 - CCASTI32'\np1565\ng18\n(S'Variable_Type'\n(I2\nttRp1566\nsS'Y:PMachine86 - CLUCCI31'\np1567\ng18\n(S'Variable_Type'\n(I2\nttRp1568\nsS'Y:Load 53 - CBASTI31'\np1569\ng18\n(S'Variable_Type'\n(I2\nttRp1570\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np1571\ng18\n(S'Variable_Type'\n(I2\nttRp1572\nsS'Y:VBus21 - CCORSC21'\np1573\ng18\n(S'Variable_Type'\n(I2\nttRp1574\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np1575\ng18\n(S'Variable_Type'\n(I2\nttRp1576\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np1577\ng18\n(S'Variable_Type'\n(I2\nttRp1578\nsS'Y:Load 82 - CILERO31'\np1579\ng18\n(S'Variable_Type'\n(I2\nttRp1580\nsS'Y:PMachine64 - CCASAM32'\np1581\ng18\n(S'Variable_Type'\n(I2\nttRp1582\nsS'Y:VBus67 - CCASAM35'\np1583\ng18\n(S'Variable_Type'\n(I2\nttRp1584\nsS'Y:VBus53 - CBASTI31'\np1585\ng18\n(S'Variable_Type'\n(I2\nttRp1586\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np1587\ng18\n(S'Variable_Type'\n(I2\nttRp1588\nsS'Y:VBus61 - CCALVI31'\np1589\ng18\n(S'Variable_Type'\n(I2\nttRp1590\nsS'Y:VBus93 - COCANA32'\np1591\ng18\n(S'Variable_Type'\n(I2\nttRp1592\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np1593\ng18\n(S'Variable_Type'\n(I2\nttRp1594\nsS'Y:PMachine92 - COCANA31'\np1595\ng18\n(S'Variable_Type'\n(I2\nttRp1596\nsS'Y:VBus104 - CPROPR31'\np1597\ng18\n(S'Variable_Type'\n(I2\nttRp1598\nsS'Y:VBus48 - CZSSS621'\np1599\ng18\n(S'Variable_Type'\n(I2\nttRp1600\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np1601\ng18\n(S'Variable_Type'\n(I2\nttRp1602\nsS'Y:VBus74 - CCERVI31'\np1603\ng18\n(S'Variable_Type'\n(I2\nttRp1604\nsS'Y:VBus36 - CPROPR21'\np1605\ng18\n(S'Variable_Type'\n(I2\nttRp1606\nsS'Y:Load 100 - COLETT31'\np1607\ng18\n(S'Variable_Type'\n(I2\nttRp1608\nsS'Y:PMachine54 - CBASTI32'\np1609\ng18\n(S'Variable_Type'\n(I2\nttRp1610\nsS'Y:VBus138 - CLUCCI39'\np1611\ng18\n(S'Variable_Type'\n(I2\nttRp1612\nsS'Y:VBus39 - CSTLUC21'\np1613\ng18\n(S'Variable_Type'\n(I2\nttRp1614\nsS'Y:PMachine74 - CCERVI31'\np1615\ng18\n(S'Variable_Type'\n(I2\nttRp1616\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np1617\ng18\n(S'Variable_Type'\n(I2\nttRp1618\nsS'Y:Load 78 - CFURIA31'\np1619\ng18\n(S'Variable_Type'\n(I2\nttRp1620\nsS'Y:VBus28 - CLORET21'\np1621\ng18\n(S'Variable_Type'\n(I2\nttRp1622\nsS'Y:PMachine105 - CPROPR32'\np1623\ng18\n(S'Variable_Type'\n(I2\nttRp1624\nsS'Y:VBus96 - COCANA35'\np1625\ng18\n(S'Variable_Type'\n(I2\nttRp1626\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np1627\ng18\n(S'Variable_Type'\n(I2\nttRp1628\nsS'Y:PMachine18 - CCASAM21'\np1629\ng18\n(S'Variable_Type'\n(I2\nttRp1630\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np1631\ng18\n(S'Variable_Type'\n(I2\nttRp1632\nsS'Y:VBus13 - CBIGUG21'\np1633\ng18\n(S'Variable_Type'\n(I2\nttRp1634\nsS'Y:VBus92 - COCANA31'\np1635\ng18\n(S'Variable_Type'\n(I2\nttRp1636\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np1637\ng18\n(S'Variable_Type'\n(I2\nttRp1638\nsS'Y:Load 76 - CCORTE31'\np1639\ng18\n(S'Variable_Type'\n(I2\nttRp1640\nsS'Y:VBus58 - CBONIF32'\np1641\ng18\n(S'Variable_Type'\n(I2\nttRp1642\nsS'Y:VBus84 - CLORET31'\np1643\ng18\n(S'Variable_Type'\n(I2\nttRp1644\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np1645\ng18\n(S'Variable_Type'\n(I2\nttRp1646\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np1647\ng18\n(S'Variable_Type'\n(I2\nttRp1648\nsS'Y:VBus97 - COCANA36'\np1649\ng18\n(S'Variable_Type'\n(I2\nttRp1650\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np1651\ng18\n(S'Variable_Type'\n(I2\nttRp1652\nsS'Y:VBus106 - CRIZZA31'\np1653\ng18\n(S'Variable_Type'\n(I2\nttRp1654\nsS'Y:VBus15 - CBONIF22'\np1655\ng18\n(S'Variable_Type'\n(I2\nttRp1656\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np1657\ng18\n(S'Variable_Type'\n(I2\nttRp1658\nsS'Y:VBus80 - CGHISO31'\np1659\ng18\n(S'Variable_Type'\n(I2\nttRp1660\nsS'Y:PMachine114 - CSOVEN31'\np1661\ng18\n(S'Variable_Type'\n(I2\nttRp1662\nsS'Y:VBus132 - CVAZZI313'\np1663\ng18\n(S'Variable_Type'\n(I2\nttRp1664\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np1665\ng18\n(S'Variable_Type'\n(I2\nttRp1666\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np1667\ng18\n(S'Variable_Type'\n(I2\nttRp1668\nsS'Y:VBus87 - CLUCCI32'\np1669\ng18\n(S'Variable_Type'\n(I2\nttRp1670\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np1671\ng18\n(S'Variable_Type'\n(I2\nttRp1672\nsS'Y:VBus88 - CLUCCI33'\np1673\ng18\n(S'Variable_Type'\n(I2\nttRp1674\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np1675\ng18\n(S'Variable_Type'\n(I2\nttRp1676\nsS'Y:PMachine85 - CLORET32'\np1677\ng18\n(S'Variable_Type'\n(I2\nttRp1678\nsS'Y:VBus81 - CGHISO32'\np1679\ng18\n(S'Variable_Type'\n(I2\nttRp1680\nsS'Y:PMachine63 - CCASAM31'\np1681\ng18\n(S'Variable_Type'\n(I2\nttRp1682\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np1683\ng18\n(S'Variable_Type'\n(I2\nttRp1684\nsS'X:Load(pu)'\np1685\ng18\n(S'Variable_Type'\n(I2\nttRp1686\nsS'Y:NbeTension'\np1687\ng18\n(S'Variable_Type'\n(I2\nttRp1688\nsS'Y:VBus95 - COCANA34'\np1689\ng18\n(S'Variable_Type'\n(I2\nttRp1690\nsS'Y:VBus62 - CCALVI32'\np1691\ng18\n(S'Variable_Type'\n(I2\nttRp1692\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np1693\ng18\n(S'Variable_Type'\n(I2\nttRp1694\nsS'Y:Load 95 - COCANA34'\np1695\ng18\n(S'Variable_Type'\n(I2\nttRp1696\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np1697\ng18\n(S'Variable_Type'\n(I2\nttRp1698\nsS'Y:PMachine90 - CMOROS31'\np1699\ng18\n(S'Variable_Type'\n(I2\nttRp1700\nsS'Y:Load 101 - CPIETR31'\np1701\ng18\n(S'Variable_Type'\n(I2\nttRp1702\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np1703\ng18\n(S'Variable_Type'\n(I2\nttRp1704\nsS'Y:PMachine132 - CVAZZI313'\np1705\ng18\n(S'Variable_Type'\n(I2\nttRp1706\nsS'Y:PMachine65 - CCASAM33'\np1707\ng18\n(S'Variable_Type'\n(I2\nttRp1708\nsS'Y:VBus125 - CVAZZI36'\np1709\ng18\n(S'Variable_Type'\n(I2\nttRp1710\nsS'Y:VBus135 - CLUCCI36'\np1711\ng18\n(S'Variable_Type'\n(I2\nttRp1712\nsS'Y:VBus47 - CVAZZI21'\np1713\ng18\n(S'Variable_Type'\n(I2\nttRp1714\nsS'Y:VBus94 - COCANA33'\np1715\ng18\n(S'Variable_Type'\n(I2\nttRp1716\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np1717\ng18\n(S'Variable_Type'\n(I2\nttRp1718\nsS'Y:VBus17 - CCALVI21'\np1719\ng18\n(S'Variable_Type'\n(I2\nttRp1720\nsS'Y:Load 90 - CMOROS31'\np1721\ng18\n(S'Variable_Type'\n(I2\nttRp1722\nsS'Y:VBus120 - CVAZZI31'\np1723\ng18\n(S'Variable_Type'\n(I2\nttRp1724\nsS'Y:VBus52 - CASPRE32'\np1725\ng18\n(S'Variable_Type'\n(I2\nttRp1726\nsS'Y:VBus25 - CFURIA22'\np1727\ng18\n(S'Variable_Type'\n(I2\nttRp1728\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np1729\ng18\n(S'Variable_Type'\n(I2\nttRp1730\nsS'Y:PMachine69 - CCASAM37'\np1731\ng18\n(S'Variable_Type'\n(I2\nttRp1732\nsS'Y:PConsoTot'\np1733\ng18\n(S'Variable_Type'\n(I2\nttRp1734\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np1735\ng18\n(S'Variable_Type'\n(I2\nttRp1736\nsS'Y:PMachine89 - CLUCCI34'\np1737\ng18\n(S'Variable_Type'\n(I2\nttRp1738\nsS'Y:VBus136 - CLUCCI37'\np1739\ng18\n(S'Variable_Type'\n(I2\nttRp1740\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np1741\ng18\n(S'Variable_Type'\n(I2\nttRp1742\nsS'Y:PMachine122 - CVAZZI33'\np1743\ng18\n(S'Variable_Type'\n(I2\nttRp1744\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np1745\ng18\n(S'Variable_Type'\n(I2\nttRp1746\nsS'Y:PMachine77 - CCORTE32'\np1747\ng18\n(S'Variable_Type'\n(I2\nttRp1748\nsS'Y:PMachine116 - CTOLLA31'\np1749\ng18\n(S'Variable_Type'\n(I2\nttRp1750\nsS'Y:VBus126 - CVAZZI37'\np1751\ng18\n(S'Variable_Type'\n(I2\nttRp1752\nsS'Y:PMachine60 - CCALDA32'\np1753\ng18\n(S'Variable_Type'\n(I2\nttRp1754\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np1755\ng18\n(S'Variable_Type'\n(I2\nttRp1756\nsS'Y:VBus20 - CCERVI21'\np1757\ng18\n(S'Variable_Type'\n(I2\nttRp1758\nsS'Y:VBus119 - CTRAVO31'\np1759\ng18\n(S'Variable_Type'\n(I2\nttRp1760\nsS'Y:VBus11 - CASPRE21'\np1761\ng18\n(S'Variable_Type'\n(I2\nttRp1762\nsS'Y:VBus139 - CLUCCI310'\np1763\ng18\n(S'Variable_Type'\n(I2\nttRp1764\nsS'Y:VBus60 - CCALDA32'\np1765\ng18\n(S'Variable_Type'\n(I2\nttRp1766\nsS'Y:PMachine66 - CCASAM34'\np1767\ng18\n(S'Variable_Type'\n(I2\nttRp1768\nsS'Y:PMachine101 - CPIETR31'\np1769\ng18\n(S'Variable_Type'\n(I2\nttRp1770\nsS'Y:PMachine133 - CVAZZI314'\np1771\ng18\n(S'Variable_Type'\n(I2\nttRp1772\nsS'Y:PMachine62 - CCALVI32'\np1773\ng18\n(S'Variable_Type'\n(I2\nttRp1774\nsS'Y:Load 74 - CCERVI31'\np1775\ng18\n(S'Variable_Type'\n(I2\nttRp1776\nsS'X:lineOff#'\np1777\ng18\n(S'Variable_Type'\n(I2\nttRp1778\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np1779\ng18\n(S'Variable_Type'\n(I2\nttRp1780\nsS'Y:VBus108 - CSAGON31'\np1781\ng18\n(S'Variable_Type'\n(I2\nttRp1782\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np1783\ng18\n(S'Variable_Type'\n(I2\nttRp1784\nsS'Y:VBus137 - CLUCCI38'\np1785\ng18\n(S'Variable_Type'\n(I2\nttRp1786\nsS'Y:VBus130 - CVAZZI311'\np1787\ng18\n(S'Variable_Type'\n(I2\nttRp1788\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np1789\ng18\n(S'Variable_Type'\n(I2\nttRp1790\nsS'Y:VBus46 - CTRAVO21'\np1791\ng18\n(S'Variable_Type'\n(I2\nttRp1792\nsS'Y:VBus113 - CSAMPO32'\np1793\ng18\n(S'Variable_Type'\n(I2\nttRp1794\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np1795\ng18\n(S'Variable_Type'\n(I2\nttRp1796\nsS'Y:PMachine68 - CCASAM36'\np1797\ng18\n(S'Variable_Type'\n(I2\nttRp1798\nsS'Y:VBus78 - CFURIA31'\np1799\ng18\n(S'Variable_Type'\n(I2\nttRp1800\nsS'Y:VBus26 - CGHISO21'\np1801\ng18\n(S'Variable_Type'\n(I2\nttRp1802\nsS'Y:VBus121 - CVAZZI32'\np1803\ng18\n(S'Variable_Type'\n(I2\nttRp1804\nsS'Y:PMachine81 - CGHISO32'\np1805\ng18\n(S'Variable_Type'\n(I2\nttRp1806\nsS'Y:PMachine97 - COCANA36'\np1807\ng18\n(S'Variable_Type'\n(I2\nttRp1808\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np1809\ng18\n(S'Variable_Type'\n(I2\nttRp1810\nsS'Y:PMachine83 - CILERO32'\np1811\ng18\n(S'Variable_Type'\n(I2\nttRp1812\nsS'Y:Max%A'\np1813\ng18\n(S'Variable_Type'\n(I2\nttRp1814\nsS'Y:VBus66 - CCASAM34'\np1815\ng18\n(S'Variable_Type'\n(I2\nttRp1816\nsS'Y:PMachine1 - CBONIF11'\np1817\ng18\n(S'Variable_Type'\n(I2\nttRp1818\nsS'Y:VBus111 - CSTMAR31'\np1819\ng18\n(S'Variable_Type'\n(I2\nttRp1820\nsS'Y:VBus124 - CVAZZI35'\np1821\ng18\n(S'Variable_Type'\n(I2\nttRp1822\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np1823\ng18\n(S'Variable_Type'\n(I2\nttRp1824\nsS'Y:PMachine131 - CVAZZI312'\np1825\ng18\n(S'Variable_Type'\n(I2\nttRp1826\nsS'Y:PMachine137 - CLUCCI38'\np1827\ng18\n(S'Variable_Type'\n(I2\nttRp1828\nsS'Y:PMachine93 - COCANA32'\np1829\ng18\n(S'Variable_Type'\n(I2\nttRp1830\nsS'Y:Load 57 - CBONIF31'\np1831\ng18\n(S'Variable_Type'\n(I2\nttRp1832\nsS'Y:VBus86 - CLUCCI31'\np1833\ng18\n(S'Variable_Type'\n(I2\nttRp1834\nsS'Y:VBus38 - CSAGON21'\np1835\ng18\n(S'Variable_Type'\n(I2\nttRp1836\nsS'Y:VBus29 - CLUCCI21'\np1837\ng18\n(S'Variable_Type'\n(I2\nttRp1838\nsS'Y:PMachine61 - CCALVI31'\np1839\ng18\n(S'Variable_Type'\n(I2\nttRp1840\nsS'Y:VBus110 - CSTLUC31'\np1841\ng18\n(S'Variable_Type'\n(I2\nttRp1842\nsS'X:ProdPV%Pnom'\np1843\ng18\n(S'Variable_Type'\n(I2\nttRp1844\nssg622\n(dp1845\nsg12\n(lp1846\ng14\nasg628\nF1370267567.7190001\nsba(iOWContexts\nContext\np1847\n(dp1848\ng624\n(dp1849\nS'HighlightedAttribute'\np1850\n(I0\nI-2\ntp1851\nssg15\n(dp1852\nS'Y:PMachine134 - CLUCCI35'\np1853\ng18\n(S'Variable_Type'\n(I1\nttRp1854\nsS'Y:VBus77 - CCORTE32'\np1855\ng18\n(S'Variable_Type'\n(I2\nttRp1856\nsS'Y:VBus134 - CLUCCI35'\np1857\ng18\n(S'Variable_Type'\n(I2\nttRp1858\nsS'Y:VBus109 - CSAGON32'\np1859\ng18\n(S'Variable_Type'\n(I2\nttRp1860\nsS'Y:VBus102 - CPORTO31'\np1861\ng18\n(S'Variable_Type'\n(I2\nttRp1862\nsS'Y:VBus18 - CCASAM21'\np1863\ng18\n(S'Variable_Type'\n(I2\nttRp1864\nsS'Y:VBus114 - CSOVEN31'\np1865\ng18\n(S'Variable_Type'\n(I2\nttRp1866\nsS'Y:VBus83 - CILERO32'\np1867\ng18\n(S'Variable_Type'\n(I2\nttRp1868\nsS'Y28:%RateA 24-42 - CFURIA21    -CSISCO21'\np1869\ng18\n(S'Variable_Type'\n(I2\nttRp1870\nsS'Y:PMachine87 - CLUCCI32'\np1871\ng18\n(S'Variable_Type'\n(I2\nttRp1872\nsS'Y:PMachine113 - CSAMPO32'\np1873\ng18\n(S'Variable_Type'\n(I2\nttRp1874\nsS'Y:Load 84 - CLORET31'\np1875\ng18\n(S'Variable_Type'\n(I2\nttRp1876\nsS'Y37:%RateA 32-34 - COCANA21    -CPIETR21'\np1877\ng18\n(S'Variable_Type'\n(I2\nttRp1878\nsS'Y:Load 42 - CSISCO21'\np1879\ng18\n(S'Variable_Type'\n(I2\nttRp1880\nsS'Y:PMachine125 - CVAZZI36'\np1881\ng18\n(S'Variable_Type'\n(I2\nttRp1882\nsS'Y:PMachine88 - CLUCCI33'\np1883\ng18\n(S'Variable_Type'\n(I1\nttRp1884\nsS'Y:PMachine124 - CVAZZI35'\np1885\ng18\n(S'Variable_Type'\n(I2\nttRp1886\nsS'Y:PMachine133 - CVAZZI314'\np1887\ng18\n(S'Variable_Type'\n(I2\nttRp1888\nsS'Y:PMachine111 - CSTMAR31'\np1889\ng18\n(S'Variable_Type'\n(I2\nttRp1890\nsS'Y:NbeTransit'\np1891\ng18\n(S'Variable_Type'\n(I1\nttRp1892\nsS'Y18:%RateA 19-27 - CCASTI21    -CILERO21'\np1893\ng18\n(S'Variable_Type'\n(I2\nttRp1894\nsS'Y10:%RateA 16-47 - CCALDA21    -CVAZZI21'\np1895\ng18\n(S'Variable_Type'\n(I2\nttRp1896\nsS'Y:PMachine130 - CVAZZI311'\np1897\ng18\n(S'Variable_Type'\n(I2\nttRp1898\nsS'Y:PMachine127 - CVAZZI38'\np1899\ng18\n(S'Variable_Type'\n(I2\nttRp1900\nsS'Y:VBus131 - CVAZZI312'\np1901\ng18\n(S'Variable_Type'\n(I2\nttRp1902\nsS'Y29:%RateA 25-29 - CFURIA22    -CLUCCI21'\np1903\ng18\n(S'Variable_Type'\n(I2\nttRp1904\nsS'Y:PMachine123 - CVAZZI34'\np1905\ng18\n(S'Variable_Type'\n(I2\nttRp1906\nsS'Y:VBus118 - CTOLLA33'\np1907\ng18\n(S'Variable_Type'\n(I2\nttRp1908\nsS'Y57:%RateA 76-77 - CCORTE31    -CCORTE32'\np1909\ng18\n(S'Variable_Type'\n(I1\nttRp1910\nsS'Y:PMachine58 - CBONIF32'\np1911\ng18\n(S'Variable_Type'\n(I2\nttRp1912\nsS'Y:VBus90 - CMOROS31'\np1913\ng18\n(S'Variable_Type'\n(I2\nttRp1914\nsS'Y3:%RateA 12-24 - CBASTI21    -CFURIA21'\np1915\ng18\n(S'Variable_Type'\n(I2\nttRp1916\nsS'Y:Load 104 - CPROPR31'\np1917\ng18\n(S'Variable_Type'\n(I2\nttRp1918\nsS'Y:PMachine30 - CLUCCI22'\np1919\ng18\n(S'Variable_Type'\n(I1\nttRp1920\nsS'Y:VBus100 - COLETT31'\np1921\ng18\n(S'Variable_Type'\n(I2\nttRp1922\nsS'Y:PProdTot'\np1923\ng18\n(S'Variable_Type'\n(I2\nttRp1924\nsS'Y60:%RateA 82-83 - CILERO31    -CILERO32'\np1925\ng18\n(S'Variable_Type'\n(I1\nttRp1926\nsS'Y:VBus57 - CBONIF31'\np1927\ng18\n(S'Variable_Type'\n(I2\nttRp1928\nsS'Y32:%RateA 26-46 - CGHISO21    -CTRAVO21'\np1929\ng18\n(S'Variable_Type'\n(I2\nttRp1930\nsS'Iteration'\np1931\ng18\n(S'Variable_Type'\n(I2\nttRp1932\nsS'Y:PMachine109 - CSAGON32'\np1933\ng18\n(S'Variable_Type'\n(I2\nttRp1934\nsS'Y:PMachine135 - CLUCCI36'\np1935\ng18\n(S'Variable_Type'\n(I1\nttRp1936\nsS'Y:VBus30 - CLUCCI22'\np1937\ng18\n(S'Variable_Type'\n(I2\nttRp1938\nsS'Y:VBus122 - CVAZZI33'\np1939\ng18\n(S'Variable_Type'\n(I2\nttRp1940\nsS'Y:VBus22 - CCORTE21'\np1941\ng18\n(S'Variable_Type'\n(I2\nttRp1942\nsS'Y:VBus117 - CTOLLA32'\np1943\ng18\n(S'Variable_Type'\n(I2\nttRp1944\nsS'Y22:%RateA 22-23 - CCORTE21    -CCORTE22'\np1945\ng18\n(S'Variable_Type'\n(I1\nttRp1946\nsS'Y:PMachine107 - CRIZZA32'\np1947\ng18\n(S'Variable_Type'\n(I2\nttRp1948\nsS'Y:VBus16 - CCALDA21'\np1949\ng18\n(S'Variable_Type'\n(I2\nttRp1950\nsS'Y:Load 102 - CPORTO31'\np1951\ng18\n(S'Variable_Type'\n(I2\nttRp1952\nsS'Y:VBus107 - CRIZZA32'\np1953\ng18\n(S'Variable_Type'\n(I2\nttRp1954\nsS'Y:VBus92 - COCANA31'\np1955\ng18\n(S'Variable_Type'\n(I2\nttRp1956\nsS'Y:VBus41 - CSAMPO21'\np1957\ng18\n(S'Variable_Type'\n(I2\nttRp1958\nsS'Y46:%RateA 36-48 - CPROPR21    -CZSSS621'\np1959\ng18\n(S'Variable_Type'\n(I2\nttRp1960\nsS'Y:VBus34 - CPIETR21'\np1961\ng18\n(S'Variable_Type'\n(I2\nttRp1962\nsS'Y:Load 108 - CSAGON31'\np1963\ng18\n(S'Variable_Type'\n(I2\nttRp1964\nsS'Y:VBus56 - CBIGUG32'\np1965\ng18\n(S'Variable_Type'\n(I2\nttRp1966\nsS'Y:PMachine42 - CSISCO21'\np1967\ng18\n(S'Variable_Type'\n(I2\nttRp1968\nsS'Y:PMachine138 - CLUCCI39'\np1969\ng18\n(S'Variable_Type'\n(I1\nttRp1970\nsS'Y:PMachine112 - CSAMPO31'\np1971\ng18\n(S'Variable_Type'\n(I2\nttRp1972\nsS'Y:VBus105 - CPROPR32'\np1973\ng18\n(S'Variable_Type'\n(I2\nttRp1974\nsS'Y:VBus1 - CBONIF11'\np1975\ng18\n(S'Variable_Type'\n(I2\nttRp1976\nsS'Y:VBus12 - CBASTI21'\np1977\ng18\n(S'Variable_Type'\n(I2\nttRp1978\nsS'Y:PMachine129 - CVAZZI310'\np1979\ng18\n(S'Variable_Type'\n(I2\nttRp1980\nsS'Y66:%RateA 106-107 - CRIZZA31    -CRIZZA32'\np1981\ng18\n(S'Variable_Type'\n(I1\nttRp1982\nsS'Y:VBus35 - CPORTO21'\np1983\ng18\n(S'Variable_Type'\n(I2\nttRp1984\nsS'Y54:%RateA 59-60 - CCALDA31    -CCALDA32'\np1985\ng18\n(S'Variable_Type'\n(I1\nttRp1986\nsS'Y:VBus54 - CBASTI32'\np1987\ng18\n(S'Variable_Type'\n(I2\nttRp1988\nsS'Y:VBus69 - CCASAM37'\np1989\ng18\n(S'Variable_Type'\n(I2\nttRp1990\nsS'Y:VBus45 - CTOLLA21'\np1991\ng18\n(S'Variable_Type'\n(I2\nttRp1992\nsS'Y:PMachine115 - CTAGLI31'\np1993\ng18\n(S'Variable_Type'\n(I2\nttRp1994\nsS'Y15:%RateA 18-44 - CCASAM21    -CTAGLI21'\np1995\ng18\n(S'Variable_Type'\n(I2\nttRp1996\nsS'Y:VBus43 - CSOVEN21'\np1997\ng18\n(S'Variable_Type'\n(I2\nttRp1998\nsS'Y:VBus76 - CCORTE31'\np1999\ng18\n(S'Variable_Type'\n(I2\nttRp2000\nsS'Y:VBus75 - CCORSC31'\np2001\ng18\n(S'Variable_Type'\n(I2\nttRp2002\nsS'Y:PMachine78 - CFURIA31'\np2003\ng18\n(S'Variable_Type'\n(I1\nttRp2004\nsS'Y:VBus127 - CVAZZI38'\np2005\ng18\n(S'Variable_Type'\n(I2\nttRp2006\nsS'Y:VBus115 - CTAGLI31'\np2007\ng18\n(S'Variable_Type'\n(I2\nttRp2008\nsS'Y:Load 61 - CCALVI31'\np2009\ng18\n(S'Variable_Type'\n(I2\nttRp2010\nsS'Y:VBus55 - CBIGUG31'\np2011\ng18\n(S'Variable_Type'\n(I2\nttRp2012\nsS'Y:Load 80 - CGHISO31'\np2013\ng18\n(S'Variable_Type'\n(I2\nttRp2014\nsS'Y:VBus72 - CCASTI31'\np2015\ng18\n(S'Variable_Type'\n(I2\nttRp2016\nsS'Y:Load 37 - CRIZZA21'\np2017\ng18\n(S'Variable_Type'\n(I2\nttRp2018\nsS'Y5:%RateA 13-29 - CBIGUG21    -CLUCCI21'\np2019\ng18\n(S'Variable_Type'\n(I2\nttRp2020\nsS'Y0:%RateA 11-28 - CASPRE21    -CLORET21'\np2021\ng18\n(S'Variable_Type'\n(I2\nttRp2022\nsS'Y23:%RateA 22-31 - CCORTE21    -CMOROS21'\np2023\ng18\n(S'Variable_Type'\n(I2\nttRp2024\nsS'Y:PMachine67 - CCASAM35'\np2025\ng18\n(S'Variable_Type'\n(I2\nttRp2026\nsS'Y62:%RateA 86-87 - CLUCCI31    -CLUCCI32'\np2027\ng18\n(S'Variable_Type'\n(I1\nttRp2028\nsS'Y:VBus31 - CMOROS21'\np2029\ng18\n(S'Variable_Type'\n(I2\nttRp2030\nsS'Y:VBus103 - CPORTO32'\np2031\ng18\n(S'Variable_Type'\n(I2\nttRp2032\nsS'Y65:%RateA 104-105 - CPROPR31    -CPROPR32'\np2033\ng18\n(S'Variable_Type'\n(I1\nttRp2034\nsS'Y:PMachine14 - CBONIF21'\np2035\ng18\n(S'Variable_Type'\n(I1\nttRp2036\nsS'Y:PMachine72 - CCASTI31'\np2037\ng18\n(S'Variable_Type'\n(I2\nttRp2038\nsS'Y:VBus27 - CILERO21'\np2039\ng18\n(S'Variable_Type'\n(I2\nttRp2040\nsS'Y:PMachine75 - CCORSC31'\np2041\ng18\n(S'Variable_Type'\n(I2\nttRp2042\nsS'Y:Load 51 - CASPRE31'\np2043\ng18\n(S'Variable_Type'\n(I2\nttRp2044\nsS'Y:VBus51 - CASPRE31'\np2045\ng18\n(S'Variable_Type'\n(I2\nttRp2046\nsS'Y:PMachine94 - COCANA33'\np2047\ng18\n(S'Variable_Type'\n(I2\nttRp2048\nsS'Y:VBus116 - CTOLLA31'\np2049\ng18\n(S'Variable_Type'\n(I2\nttRp2050\nsS'Y:Load 86 - CLUCCI31'\np2051\ng18\n(S'Variable_Type'\n(I2\nttRp2052\nsS'Y8:%RateA 15-35 - CBONIF22    -CPORTO21'\np2053\ng18\n(S'Variable_Type'\n(I2\nttRp2054\nsS'Y:PMachine104 - CPROPR31'\np2055\ng18\n(S'Variable_Type'\n(I2\nttRp2056\nsS'Y:VBus128 - CVAZZI39'\np2057\ng18\n(S'Variable_Type'\n(I2\nttRp2058\nsS'Y:PMachine136 - CLUCCI37'\np2059\ng18\n(S'Variable_Type'\n(I1\nttRp2060\nsS'Y13:%RateA 18-30 - CCASAM21    -CLUCCI22'\np2061\ng18\n(S'Variable_Type'\n(I2\nttRp2062\nsS'Y30:%RateA 25-29 - CFURIA22    -CLUCCI21'\np2063\ng18\n(S'Variable_Type'\n(I2\nttRp2064\nsS'Y:PMachine29 - CLUCCI21'\np2065\ng18\n(S'Variable_Type'\n(I1\nttRp2066\nsS'Y:VBus42 - CSISCO21'\np2067\ng18\n(S'Variable_Type'\n(I2\nttRp2068\nsS'Y:Load 110 - CSTLUC31'\np2069\ng18\n(S'Variable_Type'\n(I2\nttRp2070\nsS'Y:VBus14 - CBONIF21'\np2071\ng18\n(S'Variable_Type'\n(I2\nttRp2072\nsS'Y:VBus73 - CCASTI32'\np2073\ng18\n(S'Variable_Type'\n(I2\nttRp2074\nsS'Y:VBus64 - CCASAM32'\np2075\ng18\n(S'Variable_Type'\n(I2\nttRp2076\nsS'Y:PMachine128 - CVAZZI39'\np2077\ng18\n(S'Variable_Type'\n(I2\nttRp2078\nsS'Y:VBus133 - CVAZZI314'\np2079\ng18\n(S'Variable_Type'\n(I2\nttRp2080\nsS'Y:VBus63 - CCASAM31'\np2081\ng18\n(S'Variable_Type'\n(I2\nttRp2082\nsS'Y24:%RateA 23-32 - CCORTE22    -COCANA21'\np2083\ng18\n(S'Variable_Type'\n(I2\nttRp2084\nsS'Y:%Losses'\np2085\ng18\n(S'Variable_Type'\n(I2\nttRp2086\nsS'Y:VBus85 - CLORET32'\np2087\ng18\n(S'Variable_Type'\n(I2\nttRp2088\nsS'Y:Load 59 - CCALDA31'\np2089\ng18\n(S'Variable_Type'\n(I2\nttRp2090\nsS'Y:VBus129 - CVAZZI310'\np2091\ng18\n(S'Variable_Type'\n(I2\nttRp2092\nsS'Y:VBus101 - CPIETR31'\np2093\ng18\n(S'Variable_Type'\n(I2\nttRp2094\nsS'Y:PMachine106 - CRIZZA31'\np2095\ng18\n(S'Variable_Type'\n(I2\nttRp2096\nsS'Y52:%RateA 55-56 - CBIGUG31    -CBIGUG32'\np2097\ng18\n(S'Variable_Type'\n(I1\nttRp2098\nsS'Y:PMachine118 - CTOLLA33'\np2099\ng18\n(S'Variable_Type'\n(I2\nttRp2100\nsS'Y:VBus19 - CCASTI21'\np2101\ng18\n(S'Variable_Type'\n(I2\nttRp2102\nsS'Y11:%RateA 17-27 - CCALVI21    -CILERO21'\np2103\ng18\n(S'Variable_Type'\n(I2\nttRp2104\nsS'Y64:%RateA 102-103 - CPORTO31    -CPORTO32'\np2105\ng18\n(S'Variable_Type'\n(I1\nttRp2106\nsS'Y48:%RateA 39-46 - CSTLUC21    -CTRAVO21'\np2107\ng18\n(S'Variable_Type'\n(I2\nttRp2108\nsS'Y:Load 115 - CTAGLI31'\np2109\ng18\n(S'Variable_Type'\n(I2\nttRp2110\nsS'Y49:%RateA 40-48 - CSTMAR21    -CZSSS621'\np2111\ng18\n(S'Variable_Type'\n(I2\nttRp2112\nsS'Y:VBus79 - CFURIA32'\np2113\ng18\n(S'Variable_Type'\n(I2\nttRp2114\nsS'Y:PMachine47 - CVAZZI21'\np2115\ng18\n(S'Variable_Type'\n(I1\nttRp2116\nsS'Y:VBus123 - CVAZZI34'\np2117\ng18\n(S'Variable_Type'\n(I2\nttRp2118\nsS'Y12:%RateA 18-30 - CCASAM21    -CLUCCI22'\np2119\ng18\n(S'Variable_Type'\n(I2\nttRp2120\nsS'Y25:%RateA 23-41 - CCORTE22    -CSAMPO21'\np2121\ng18\n(S'Variable_Type'\n(I2\nttRp2122\nsS'Y:VBus44 - CTAGLI21'\np2123\ng18\n(S'Variable_Type'\n(I2\nttRp2124\nsS'Y:VBus65 - CCASAM33'\np2125\ng18\n(S'Variable_Type'\n(I2\nttRp2126\nsS'Y50:%RateA 51-52 - CASPRE31    -CASPRE32'\np2127\ng18\n(S'Variable_Type'\n(I1\nttRp2128\nsS'Y:PMachine139 - CLUCCI310'\np2129\ng18\n(S'Variable_Type'\n(I1\nttRp2130\nsS'Y:VBus112 - CSAMPO31'\np2131\ng18\n(S'Variable_Type'\n(I2\nttRp2132\nsS'Y:VBus68 - CCASAM36'\np2133\ng18\n(S'Variable_Type'\n(I2\nttRp2134\nsS'Y:Load 55 - CBIGUG31'\np2135\ng18\n(S'Variable_Type'\n(I2\nttRp2136\nsS'Y:PMachine53 - CBASTI31'\np2137\ng18\n(S'Variable_Type'\n(I2\nttRp2138\nsS'Y:NbeTransit_0.9-1'\np2139\ng18\n(S'Variable_Type'\n(I1\nttRp2140\nsS'Y:VBus24 - CFURIA21'\np2141\ng18\n(S'Variable_Type'\n(I2\nttRp2142\nsS'Y:VBus23 - CCORTE22'\np2143\ng18\n(S'Variable_Type'\n(I2\nttRp2144\nsS'XProdEolienne%Pnom'\np2145\ng18\n(S'Variable_Type'\n(I1\nttRp2146\nsS'Y:VBus40 - CSTMAR21'\np2147\ng18\n(S'Variable_Type'\n(I2\nttRp2148\nsS'Y44:%RateA 35-39 - CPORTO21    -CSTLUC21'\np2149\ng18\n(S'Variable_Type'\n(I2\nttRp2150\nsS'Y:PMachine120 - CVAZZI31'\np2151\ng18\n(S'Variable_Type'\n(I2\nttRp2152\nsS'Y41:%RateA 32-48 - COCANA21    -CZSSS621'\np2153\ng18\n(S'Variable_Type'\n(I2\nttRp2154\nsS'Y:PMachine117 - CTOLLA32'\np2155\ng18\n(S'Variable_Type'\n(I2\nttRp2156\nsS'Y:VBus89 - CLUCCI34'\np2157\ng18\n(S'Variable_Type'\n(I2\nttRp2158\nsS'Y:VBus33 - COLETT21'\np2159\ng18\n(S'Variable_Type'\n(I2\nttRp2160\nsS'Y:VBus32 - COCANA21'\np2161\ng18\n(S'Variable_Type'\n(I2\nttRp2162\nsS'Y:PMachine121 - CVAZZI32'\np2163\ng18\n(S'Variable_Type'\n(I2\nttRp2164\nsS'Y67:%RateA 108-109 - CSAGON31    -CSAGON32'\np2165\ng18\n(S'Variable_Type'\n(I1\nttRp2166\nsS'Y:PMachine102 - CPORTO31'\np2167\ng18\n(S'Variable_Type'\n(I2\nttRp2168\nsS'Y:VBus82 - CILERO31'\np2169\ng18\n(S'Variable_Type'\n(I2\nttRp2170\nsS'Y:PMachine137 - CLUCCI38'\np2171\ng18\n(S'Variable_Type'\n(I1\nttRp2172\nsS'Y20:%RateA 20-44 - CCERVI21    -CTAGLI21'\np2173\ng18\n(S'Variable_Type'\n(I2\nttRp2174\nsS'Y:VBus37 - CRIZZA21'\np2175\ng18\n(S'Variable_Type'\n(I2\nttRp2176\nsS'Y:PMachine73 - CCASTI32'\np2177\ng18\n(S'Variable_Type'\n(I2\nttRp2178\nsS'Y:PMachine86 - CLUCCI31'\np2179\ng18\n(S'Variable_Type'\n(I2\nttRp2180\nsS'Y:Load 53 - CBASTI31'\np2181\ng18\n(S'Variable_Type'\n(I2\nttRp2182\nsS'Y4:%RateA 13-25 - CBIGUG21    -CFURIA22'\np2183\ng18\n(S'Variable_Type'\n(I2\nttRp2184\nsS'Y:VBus21 - CCORSC21'\np2185\ng18\n(S'Variable_Type'\n(I2\nttRp2186\nsS'Y42:%RateA 34-36 - CPIETR21    -CPROPR21'\np2187\ng18\n(S'Variable_Type'\n(I2\nttRp2188\nsS'Y21:%RateA 21-43 - CCORSC21    -CSOVEN21'\np2189\ng18\n(S'Variable_Type'\n(I2\nttRp2190\nsS'Y:PMachine63 - CCASAM31'\np2191\ng18\n(S'Variable_Type'\n(I2\nttRp2192\nsS'Y:Load 82 - CILERO31'\np2193\ng18\n(S'Variable_Type'\n(I2\nttRp2194\nsS'Y:PMachine64 - CCASAM32'\np2195\ng18\n(S'Variable_Type'\n(I2\nttRp2196\nsS'Y:VBus67 - CCASAM35'\np2197\ng18\n(S'Variable_Type'\n(I2\nttRp2198\nsS'Y:VBus53 - CBASTI31'\np2199\ng18\n(S'Variable_Type'\n(I2\nttRp2200\nsS'Y14:%RateA 18-31 - CCASAM21    -CMOROS21'\np2201\ng18\n(S'Variable_Type'\n(I2\nttRp2202\nsS'Y:VBus61 - CCALVI31'\np2203\ng18\n(S'Variable_Type'\n(I2\nttRp2204\nsS'Y:VBus93 - COCANA32'\np2205\ng18\n(S'Variable_Type'\n(I2\nttRp2206\nsS'Y33:%RateA 27-33 - CILERO21    -COLETT21'\np2207\ng18\n(S'Variable_Type'\n(I2\nttRp2208\nsS'Y:VBus104 - CPROPR31'\np2209\ng18\n(S'Variable_Type'\n(I2\nttRp2210\nsS'Y:VBus48 - CZSSS621'\np2211\ng18\n(S'Variable_Type'\n(I2\nttRp2212\nsS'Y6:%RateA 14-15 - CBONIF21    -CBONIF22'\np2213\ng18\n(S'Variable_Type'\n(I1\nttRp2214\nsS'Y:VBus74 - CCERVI31'\np2215\ng18\n(S'Variable_Type'\n(I2\nttRp2216\nsS'Y:VBus36 - CPROPR21'\np2217\ng18\n(S'Variable_Type'\n(I2\nttRp2218\nsS'Y:Load 100 - COLETT31'\np2219\ng18\n(S'Variable_Type'\n(I2\nttRp2220\nsS'Y:PMachine54 - CBASTI32'\np2221\ng18\n(S'Variable_Type'\n(I2\nttRp2222\nsS'Y:VBus138 - CLUCCI39'\np2223\ng18\n(S'Variable_Type'\n(I2\nttRp2224\nsS'Y:VBus39 - CSTLUC21'\np2225\ng18\n(S'Variable_Type'\n(I2\nttRp2226\nsS'Y:PMachine74 - CCERVI31'\np2227\ng18\n(S'Variable_Type'\n(I2\nttRp2228\nsS'Y19:%RateA 20-26 - CCERVI21    -CGHISO21'\np2229\ng18\n(S'Variable_Type'\n(I2\nttRp2230\nsS'Y:Load 78 - CFURIA31'\np2231\ng18\n(S'Variable_Type'\n(I2\nttRp2232\nsS'Y:VBus28 - CLORET21'\np2233\ng18\n(S'Variable_Type'\n(I2\nttRp2234\nsS'Y:PMachine105 - CPROPR32'\np2235\ng18\n(S'Variable_Type'\n(I2\nttRp2236\nsS'Y:VBus96 - COCANA35'\np2237\ng18\n(S'Variable_Type'\n(I2\nttRp2238\nsS'Y53:%RateA 57-58 - CBONIF31    -CBONIF32'\np2239\ng18\n(S'Variable_Type'\n(I1\nttRp2240\nsS'Y:PMachine18 - CCASAM21'\np2241\ng18\n(S'Variable_Type'\n(I1\nttRp2242\nsS'Y9:%RateA 16-32 - CCALDA21    -COCANA21'\np2243\ng18\n(S'Variable_Type'\n(I2\nttRp2244\nsS'Y:VBus13 - CBIGUG21'\np2245\ng18\n(S'Variable_Type'\n(I2\nttRp2246\nsS'Y:VBus59 - CCALDA31'\np2247\ng18\n(S'Variable_Type'\n(I2\nttRp2248\nsS'Y27:%RateA 24-33 - CFURIA21    -COLETT21'\np2249\ng18\n(S'Variable_Type'\n(I2\nttRp2250\nsS'Y:Load 76 - CCORTE31'\np2251\ng18\n(S'Variable_Type'\n(I2\nttRp2252\nsS'Y:VBus58 - CBONIF32'\np2253\ng18\n(S'Variable_Type'\n(I2\nttRp2254\nsS'Y:VBus84 - CLORET31'\np2255\ng18\n(S'Variable_Type'\n(I2\nttRp2256\nsS'Y34:%RateA 28-38 - CLORET21    -CSAGON21'\np2257\ng18\n(S'Variable_Type'\n(I2\nttRp2258\nsS'Y26:%RateA 24-25 - CFURIA21    -CFURIA22'\np2259\ng18\n(S'Variable_Type'\n(I1\nttRp2260\nsS'Y:VBus97 - COCANA36'\np2261\ng18\n(S'Variable_Type'\n(I2\nttRp2262\nsS'Y68:%RateA 112-113 - CSAMPO31    -CSAMPO32'\np2263\ng18\n(S'Variable_Type'\n(I1\nttRp2264\nsS'Y:VBus106 - CRIZZA31'\np2265\ng18\n(S'Variable_Type'\n(I2\nttRp2266\nsS'Y:VBus29 - CLUCCI21'\np2267\ng18\n(S'Variable_Type'\n(I2\nttRp2268\nsS'Y61:%RateA 84-85 - CLORET31    -CLORET32'\np2269\ng18\n(S'Variable_Type'\n(I1\nttRp2270\nsS'Y:VBus80 - CGHISO31'\np2271\ng18\n(S'Variable_Type'\n(I2\nttRp2272\nsS'Y:PMachine114 - CSOVEN31'\np2273\ng18\n(S'Variable_Type'\n(I2\nttRp2274\nsS'Y:VBus132 - CVAZZI313'\np2275\ng18\n(S'Variable_Type'\n(I2\nttRp2276\nsS'Y35:%RateA 28-47 - CLORET21    -CVAZZI21'\np2277\ng18\n(S'Variable_Type'\n(I2\nttRp2278\nsS'Y:NbeTension'\np2279\ng18\n(S'Variable_Type'\n(I2\nttRp2280\nsS'Y55:%RateA 61-62 - CCALVI31    -CCALVI32'\np2281\ng18\n(S'Variable_Type'\n(I1\nttRp2282\nsS'Y:VBus87 - CLUCCI32'\np2283\ng18\n(S'Variable_Type'\n(I2\nttRp2284\nsS'Y2:%RateA 12-24 - CBASTI21    -CFURIA21'\np2285\ng18\n(S'Variable_Type'\n(I2\nttRp2286\nsS'Y:VBus88 - CLUCCI33'\np2287\ng18\n(S'Variable_Type'\n(I2\nttRp2288\nsS'Y51:%RateA 53-54 - CBASTI31    -CBASTI32'\np2289\ng18\n(S'Variable_Type'\n(I1\nttRp2290\nsS'Y:PMachine85 - CLORET32'\np2291\ng18\n(S'Variable_Type'\n(I2\nttRp2292\nsS'Y:VBus81 - CGHISO32'\np2293\ng18\n(S'Variable_Type'\n(I2\nttRp2294\nsS'Y17:%RateA 19-22 - CCASTI21    -CCORTE21'\np2295\ng18\n(S'Variable_Type'\n(I2\nttRp2296\nsS'Y39:%RateA 32-45 - COCANA21    -CTOLLA21'\np2297\ng18\n(S'Variable_Type'\n(I2\nttRp2298\nsS'Y:VBus15 - CBONIF22'\np2299\ng18\n(S'Variable_Type'\n(I2\nttRp2300\nsS'X:Load(pu)'\np2301\ng18\n(S'Variable_Type'\n(I2\nttRp2302\nsS'Y:PMachine126 - CVAZZI37'\np2303\ng18\n(S'Variable_Type'\n(I2\nttRp2304\nsS'Y:VBus95 - COCANA34'\np2305\ng18\n(S'Variable_Type'\n(I2\nttRp2306\nsS'Y:VBus62 - CCALVI32'\np2307\ng18\n(S'Variable_Type'\n(I2\nttRp2308\nsS'Y56:%RateA 72-73 - CCASTI31    -CCASTI32'\np2309\ng18\n(S'Variable_Type'\n(I1\nttRp2310\nsS'Y:Load 95 - COCANA34'\np2311\ng18\n(S'Variable_Type'\n(I2\nttRp2312\nsS'Y45:%RateA 36-37 - CPROPR21    -CRIZZA21'\np2313\ng18\n(S'Variable_Type'\n(I2\nttRp2314\nsS'Y:PMachine90 - CMOROS31'\np2315\ng18\n(S'Variable_Type'\n(I2\nttRp2316\nsS'Y:Load 101 - CPIETR31'\np2317\ng18\n(S'Variable_Type'\n(I2\nttRp2318\nsS'Y59:%RateA 80-81 - CGHISO31    -CGHISO32'\np2319\ng18\n(S'Variable_Type'\n(I1\nttRp2320\nsS'Y:PMachine132 - CVAZZI313'\np2321\ng18\n(S'Variable_Type'\n(I2\nttRp2322\nsS'Y:PMachine65 - CCASAM33'\np2323\ng18\n(S'Variable_Type'\n(I2\nttRp2324\nsS'Y:VBus125 - CVAZZI36'\np2325\ng18\n(S'Variable_Type'\n(I2\nttRp2326\nsS'Y:VBus135 - CLUCCI36'\np2327\ng18\n(S'Variable_Type'\n(I2\nttRp2328\nsS'Y:VBus47 - CVAZZI21'\np2329\ng18\n(S'Variable_Type'\n(I2\nttRp2330\nsS'Y:VBus94 - COCANA33'\np2331\ng18\n(S'Variable_Type'\n(I2\nttRp2332\nsS'Y58:%RateA 78-79 - CFURIA31    -CFURIA32'\np2333\ng18\n(S'Variable_Type'\n(I1\nttRp2334\nsS'Y:VBus17 - CCALVI21'\np2335\ng18\n(S'Variable_Type'\n(I2\nttRp2336\nsS'Y:Load 90 - CMOROS31'\np2337\ng18\n(S'Variable_Type'\n(I2\nttRp2338\nsS'Y:VBus120 - CVAZZI31'\np2339\ng18\n(S'Variable_Type'\n(I2\nttRp2340\nsS'Y:VBus52 - CASPRE32'\np2341\ng18\n(S'Variable_Type'\n(I2\nttRp2342\nsS'Y:VBus25 - CFURIA22'\np2343\ng18\n(S'Variable_Type'\n(I2\nttRp2344\nsS'Y43:%RateA 35-37 - CPORTO21    -CRIZZA21'\np2345\ng18\n(S'Variable_Type'\n(I2\nttRp2346\nsS'Y:PMachine69 - CCASAM37'\np2347\ng18\n(S'Variable_Type'\n(I2\nttRp2348\nsS'Y:PConsoTot'\np2349\ng18\n(S'Variable_Type'\n(I2\nttRp2350\nsS'Y:PMachine92 - COCANA31'\np2351\ng18\n(S'Variable_Type'\n(I2\nttRp2352\nsS'Y:PMachine89 - CLUCCI34'\np2353\ng18\n(S'Variable_Type'\n(I1\nttRp2354\nsS'Y38:%RateA 32-45 - COCANA21    -CTOLLA21'\np2355\ng18\n(S'Variable_Type'\n(I2\nttRp2356\nsS'Y:PMachine122 - CVAZZI33'\np2357\ng18\n(S'Variable_Type'\n(I2\nttRp2358\nsS'Y36:%RateA 29-30 - CLUCCI21    -CLUCCI22'\np2359\ng18\n(S'Variable_Type'\n(I1\nttRp2360\nsS'Y:PMachine77 - CCORTE32'\np2361\ng18\n(S'Variable_Type'\n(I2\nttRp2362\nsS'Y:PMachine116 - CTOLLA31'\np2363\ng18\n(S'Variable_Type'\n(I2\nttRp2364\nsS'Y:VBus126 - CVAZZI37'\np2365\ng18\n(S'Variable_Type'\n(I2\nttRp2366\nsS'Y:PMachine60 - CCALDA32'\np2367\ng18\n(S'Variable_Type'\n(I2\nttRp2368\nsS'Y63:%RateA 95-96 - COCANA34    -COCANA35'\np2369\ng18\n(S'Variable_Type'\n(I1\nttRp2370\nsS'Y:VBus20 - CCERVI21'\np2371\ng18\n(S'Variable_Type'\n(I2\nttRp2372\nsS'Y:VBus119 - CTRAVO31'\np2373\ng18\n(S'Variable_Type'\n(I2\nttRp2374\nsS'Y:VBus11 - CASPRE21'\np2375\ng18\n(S'Variable_Type'\n(I2\nttRp2376\nsS'Y:VBus139 - CLUCCI310'\np2377\ng18\n(S'Variable_Type'\n(I2\nttRp2378\nsS'Y:VBus60 - CCALDA32'\np2379\ng18\n(S'Variable_Type'\n(I2\nttRp2380\nsS'Y:PMachine66 - CCASAM34'\np2381\ng18\n(S'Variable_Type'\n(I2\nttRp2382\nsS'Y:PMachine101 - CPIETR31'\np2383\ng18\n(S'Variable_Type'\n(I2\nttRp2384\nsS'Y:VBus136 - CLUCCI37'\np2385\ng18\n(S'Variable_Type'\n(I2\nttRp2386\nsS'Y:PMachine62 - CCALVI32'\np2387\ng18\n(S'Variable_Type'\n(I2\nttRp2388\nsS'Y:Load 74 - CCERVI31'\np2389\ng18\n(S'Variable_Type'\n(I2\nttRp2390\nsS'X:lineOff#'\np2391\ng18\n(S'Variable_Type'\n(I2\nttRp2392\nsS'Y31:%RateA 26-41 - CGHISO21    -CSAMPO21'\np2393\ng18\n(S'Variable_Type'\n(I2\nttRp2394\nsS'Y:VBus108 - CSAGON31'\np2395\ng18\n(S'Variable_Type'\n(I2\nttRp2396\nsS'Y47:%RateA 38-43 - CSAGON21    -CSOVEN21'\np2397\ng18\n(S'Variable_Type'\n(I2\nttRp2398\nsS'Y:VBus137 - CLUCCI38'\np2399\ng18\n(S'Variable_Type'\n(I2\nttRp2400\nsS'Y:VBus130 - CVAZZI311'\np2401\ng18\n(S'Variable_Type'\n(I2\nttRp2402\nsS'Y16:%RateA 19-21 - CCASTI21    -CCORSC21'\np2403\ng18\n(S'Variable_Type'\n(I2\nttRp2404\nsS'Y:VBus46 - CTRAVO21'\np2405\ng18\n(S'Variable_Type'\n(I2\nttRp2406\nsS'Y:VBus113 - CSAMPO32'\np2407\ng18\n(S'Variable_Type'\n(I2\nttRp2408\nsS'Y40:%RateA 32-47 - COCANA21    -CVAZZI21'\np2409\ng18\n(S'Variable_Type'\n(I2\nttRp2410\nsS'Y:PMachine68 - CCASAM36'\np2411\ng18\n(S'Variable_Type'\n(I2\nttRp2412\nsS'Y:VBus78 - CFURIA31'\np2413\ng18\n(S'Variable_Type'\n(I2\nttRp2414\nsS'Y:VBus26 - CGHISO21'\np2415\ng18\n(S'Variable_Type'\n(I2\nttRp2416\nsS'Y:VBus121 - CVAZZI32'\np2417\ng18\n(S'Variable_Type'\n(I2\nttRp2418\nsS'Y:PMachine97 - COCANA36'\np2419\ng18\n(S'Variable_Type'\n(I2\nttRp2420\nsS'Y1:%RateA 11-47 - CASPRE21    -CVAZZI21'\np2421\ng18\n(S'Variable_Type'\n(I2\nttRp2422\nsS'Y:PMachine83 - CILERO32'\np2423\ng18\n(S'Variable_Type'\n(I2\nttRp2424\nsS'Y:Max%A'\np2425\ng18\n(S'Variable_Type'\n(I2\nttRp2426\nsS'Y:VBus66 - CCASAM34'\np2427\ng18\n(S'Variable_Type'\n(I2\nttRp2428\nsS'Y:PMachine1 - CBONIF11'\np2429\ng18\n(S'Variable_Type'\n(I2\nttRp2430\nsS'Y:VBus111 - CSTMAR31'\np2431\ng18\n(S'Variable_Type'\n(I2\nttRp2432\nsS'Y:VBus124 - CVAZZI35'\np2433\ng18\n(S'Variable_Type'\n(I2\nttRp2434\nsS'Y7:%RateA 14-35 - CBONIF21    -CPORTO21'\np2435\ng18\n(S'Variable_Type'\n(I2\nttRp2436\nsS'Y:PMachine131 - CVAZZI312'\np2437\ng18\n(S'Variable_Type'\n(I2\nttRp2438\nsS'Y:PMachine93 - COCANA32'\np2439\ng18\n(S'Variable_Type'\n(I2\nttRp2440\nsS'Y:Load 57 - CBONIF31'\np2441\ng18\n(S'Variable_Type'\n(I2\nttRp2442\nsS'Y:VBus86 - CLUCCI31'\np2443\ng18\n(S'Variable_Type'\n(I2\nttRp2444\nsS'Y:VBus38 - CSAGON21'\np2445\ng18\n(S'Variable_Type'\n(I2\nttRp2446\nsS'Y:PMachine81 - CGHISO32'\np2447\ng18\n(S'Variable_Type'\n(I2\nttRp2448\nsS'Y:PMachine61 - CCALVI31'\np2449\ng18\n(S'Variable_Type'\n(I1\nttRp2450\nsS'Y:VBus110 - CSTLUC31'\np2451\ng18\n(S'Variable_Type'\n(I2\nttRp2452\nsS'X:ProdPV%Pnom'\np2453\ng18\n(S'Variable_Type'\n(I2\nttRp2454\nssg622\n(dp2455\nsg12\n(lp2456\nS'orderedDomain'\np2457\nasg628\nF1369988698.6760001\nsba(iOWContexts\nContext\np2458\n(dp2459\ng624\n(dp2460\ng1850\n(I17\nI-2\ntp2461\nssg15\n(dp2462\nS'Y15:%RateA 18-44'\np2463\ng18\n(S'Variable_Type'\n(I2\nttRp2464\nsS'Y36:%RateA 29-30'\np2465\ng18\n(S'Variable_Type'\n(I1\nttRp2466\nsS'Y17:%RateA 19-22'\np2467\ng18\n(S'Variable_Type'\n(I2\nttRp2468\nsS'Y56:%RateA 72-73'\np2469\ng18\n(S'Variable_Type'\n(I1\nttRp2470\nsS'Y30:%RateA 25-29'\np2471\ng18\n(S'Variable_Type'\n(I2\nttRp2472\nsS'Y39:%RateA 32-45'\np2473\ng18\n(S'Variable_Type'\n(I2\nttRp2474\nsS'Y52:%RateA 55-56'\np2475\ng18\n(S'Variable_Type'\n(I1\nttRp2476\nsS'X:Load(pu)'\np2477\ng18\n(S'Variable_Type'\n(I2\nttRp2478\nsS'Y55:%RateA 61-62'\np2479\ng18\n(S'Variable_Type'\n(I1\nttRp2480\nsS'Y:Load 115'\np2481\ng18\n(S'Variable_Type'\n(I2\nttRp2482\nsS'Y1:%RateA 11-47'\np2483\ng18\n(S'Variable_Type'\n(I2\nttRp2484\nsS'Y13:%RateA 18-30'\np2485\ng18\n(S'Variable_Type'\n(I2\nttRp2486\nsS'Y2:%RateA 12-24'\np2487\ng18\n(S'Variable_Type'\n(I2\nttRp2488\nsS'Y38:%RateA 32-45'\np2489\ng18\n(S'Variable_Type'\n(I2\nttRp2490\nsS'Y48:%RateA 39-46'\np2491\ng18\n(S'Variable_Type'\n(I2\nttRp2492\nsS'Y23:%RateA 22-31'\np2493\ng18\n(S'Variable_Type'\n(I2\nttRp2494\nsS'Y34:%RateA 28-38'\np2495\ng18\n(S'Variable_Type'\n(I2\nttRp2496\nsS'Y31:%RateA 26-41'\np2497\ng18\n(S'Variable_Type'\n(I2\nttRp2498\nsS'Y11:%RateA 17-27'\np2499\ng18\n(S'Variable_Type'\n(I2\nttRp2500\nsS'Y20:%RateA 20-44'\np2501\ng18\n(S'Variable_Type'\n(I2\nttRp2502\nsS'Y47:%RateA 38-43'\np2503\ng18\n(S'Variable_Type'\n(I2\nttRp2504\nsS'Y57:%RateA 76-77'\np2505\ng18\n(S'Variable_Type'\n(I1\nttRp2506\nsS'Y54:%RateA 59-60'\np2507\ng18\n(S'Variable_Type'\n(I1\nttRp2508\nsS'Y12:%RateA 18-30'\np2509\ng18\n(S'Variable_Type'\n(I2\nttRp2510\nsS'Y18:%RateA 19-27'\np2511\ng18\n(S'Variable_Type'\n(I2\nttRp2512\nsS'Y49:%RateA 40-48'\np2513\ng18\n(S'Variable_Type'\n(I2\nttRp2514\nsS'Y63:%RateA 95-96'\np2515\ng18\n(S'Variable_Type'\n(I1\nttRp2516\nsS'Y21:%RateA 21-43'\np2517\ng18\n(S'Variable_Type'\n(I2\nttRp2518\nsS'Y68:%RateA 112-113'\np2519\ng18\n(S'Variable_Type'\n(I1\nttRp2520\nsS'Y25:%RateA 23-41'\np2521\ng18\n(S'Variable_Type'\n(I2\nttRp2522\nsS'Y19:%RateA 20-26'\np2523\ng18\n(S'Variable_Type'\n(I2\nttRp2524\nsS'Y9:%RateA 16-32'\np2525\ng18\n(S'Variable_Type'\n(I2\nttRp2526\nsS'Y41:%RateA 32-48'\np2527\ng18\n(S'Variable_Type'\n(I2\nttRp2528\nsS'Y61:%RateA 84-85'\np2529\ng18\n(S'Variable_Type'\n(I1\nttRp2530\nsS'Y50:%RateA 51-52'\np2531\ng18\n(S'Variable_Type'\n(I1\nttRp2532\nsS'Y40:%RateA 32-47'\np2533\ng18\n(S'Variable_Type'\n(I2\nttRp2534\nsS'Y66:%RateA 106-107'\np2535\ng18\n(S'Variable_Type'\n(I1\nttRp2536\nsS'Y4:%RateA 13-25'\np2537\ng18\n(S'Variable_Type'\n(I2\nttRp2538\nsS'Y27:%RateA 24-33'\np2539\ng18\n(S'Variable_Type'\n(I2\nttRp2540\nsS'Y35:%RateA 28-47'\np2541\ng18\n(S'Variable_Type'\n(I2\nttRp2542\nsS'Y28:%RateA 24-42'\np2543\ng18\n(S'Variable_Type'\n(I2\nttRp2544\nsS'Y53:%RateA 57-58'\np2545\ng18\n(S'Variable_Type'\n(I1\nttRp2546\nsS'Y14:%RateA 18-31'\np2547\ng18\n(S'Variable_Type'\n(I2\nttRp2548\nsS'Y26:%RateA 24-25'\np2549\ng18\n(S'Variable_Type'\n(I1\nttRp2550\nsS'Y16:%RateA 19-21'\np2551\ng18\n(S'Variable_Type'\n(I2\nttRp2552\nsS'Y33:%RateA 27-33'\np2553\ng18\n(S'Variable_Type'\n(I2\nttRp2554\nsS'Y7:%RateA 14-35'\np2555\ng18\n(S'Variable_Type'\n(I2\nttRp2556\nsS'Y64:%RateA 102-103'\np2557\ng18\n(S'Variable_Type'\n(I1\nttRp2558\nsS'Y51:%RateA 53-54'\np2559\ng18\n(S'Variable_Type'\n(I1\nttRp2560\nsS'Y67:%RateA 108-109'\np2561\ng18\n(S'Variable_Type'\n(I1\nttRp2562\nsS'Y60:%RateA 82-83'\np2563\ng18\n(S'Variable_Type'\n(I1\nttRp2564\nsS'Y62:%RateA 86-87'\np2565\ng18\n(S'Variable_Type'\n(I1\nttRp2566\nsS'Y59:%RateA 80-81'\np2567\ng18\n(S'Variable_Type'\n(I1\nttRp2568\nsS'Y8:%RateA 15-35'\np2569\ng18\n(S'Variable_Type'\n(I2\nttRp2570\nsS'Y3:%RateA 12-24'\np2571\ng18\n(S'Variable_Type'\n(I2\nttRp2572\nsS'Y32:%RateA 26-46'\np2573\ng18\n(S'Variable_Type'\n(I2\nttRp2574\nsS'Y22:%RateA 22-23'\np2575\ng18\n(S'Variable_Type'\n(I1\nttRp2576\nsS'Y37:%RateA 32-34'\np2577\ng18\n(S'Variable_Type'\n(I2\nttRp2578\nsS'Y43:%RateA 35-37'\np2579\ng18\n(S'Variable_Type'\n(I2\nttRp2580\nsS'Y0:%RateA 11-28'\np2581\ng18\n(S'Variable_Type'\n(I2\nttRp2582\nsS'Y46:%RateA 36-48'\np2583\ng18\n(S'Variable_Type'\n(I2\nttRp2584\nsS'Y45:%RateA 36-37'\np2585\ng18\n(S'Variable_Type'\n(I2\nttRp2586\nsS'Y65:%RateA 104-105'\np2587\ng18\n(S'Variable_Type'\n(I1\nttRp2588\nsS'Y5:%RateA 13-29'\np2589\ng18\n(S'Variable_Type'\n(I2\nttRp2590\nsS'Y24:%RateA 23-32'\np2591\ng18\n(S'Variable_Type'\n(I2\nttRp2592\nsS'Y6:%RateA 14-15'\np2593\ng18\n(S'Variable_Type'\n(I1\nttRp2594\nsS'Y29:%RateA 25-29'\np2595\ng18\n(S'Variable_Type'\n(I2\nttRp2596\nsS'Y44:%RateA 35-39'\np2597\ng18\n(S'Variable_Type'\n(I2\nttRp2598\nsS'Y58:%RateA 78-79'\np2599\ng18\n(S'Variable_Type'\n(I1\nttRp2600\nsS'Y42:%RateA 34-36'\np2601\ng18\n(S'Variable_Type'\n(I2\nttRp2602\nsS'Y10:%RateA 16-47'\np2603\ng18\n(S'Variable_Type'\n(I2\nttRp2604\nssg622\n(dp2605\nsg12\n(lp2606\ng2457\nasg628\nF1369933161.6689999\nsbas.&quot;}"/>\r
-</schema>\r
diff --git a/PSEN_Eficas/PSEN/support_functions.py b/PSEN_Eficas/PSEN/support_functions.py
deleted file mode 100755 (executable)
index 4a84a08..0000000
+++ /dev/null
@@ -1,599 +0,0 @@
-# -*- coding: utf-8 -*-\r
-"""\r
-Created on Mon Jun 03 15:31:42 2013\r
-\r
-@author: B31272\r
-\r
-Fonctions de support\r
-"""\r
-import os,sys,random,string\r
-sys.path.append(r"C:\Program Files\PTI\PSSE33\PSSBIN")\r
-os.environ['PATH'] = r"C:\Program Files\PTI\PSSE33\PSSBIN;"+ os.environ['PATH']\r
-#os.chdir(folder)\r
-import psspy\r
-import pssarrays\r
-import redirect\r
-_i=psspy.getdefaultint()\r
-_f=psspy.getdefaultreal()\r
-_s=psspy.getdefaultchar()\r
-redirect.psse2py()\r
-#import pssdb\r
-psspy.psseinit(80000)\r
-\r
-import numpy as np\r
-from math import*\r
-from openturns import *\r
-\r
-#===============================================================================\r
-#    DEFINITION DES FONCTIONS   -   CREATION OF THE FUNCTIONS\r
-#===============================================================================\r
-\r
-#Fonction de transfert vent-puissance d'une eolienne\r
-def eol(wind, WTconfig):\r
-    Vcin = WTconfig [0]\r
-    Vrate = WTconfig [1]\r
-    Vcout = WTconfig [2]\r
-    Rho = WTconfig [3]\r
-    lossrate = WTconfig [4]\r
-    if wind <= Vcin : \r
-        Pnorm=0\r
-    elif wind < Vrate :\r
-        Pnorm=wind*(1-lossrate)#((wind**2-Vcin**2)/(Vrate**2-Vcin**2)*Rho/1.225*(1-lossrate))\r
-    elif wind < Vcout :\r
-        Pnorm = 1*(1-lossrate)\r
-    else : \r
-        Pnorm=0\r
-    return Pnorm\r
-\r
-#Fonction permettant de lire les donnees qui nous interessent et de les mettre dans une matrice\r
-def read_sav(doc): \r
-    psspy.case(doc)\r
-    # Select what to report\r
-    if psspy.bsysisdef(0):\r
-        sid = 0\r
-    else:   # Select subsytem with all buses\r
-        sid = -1    \r
-    \r
-    flag_bus     = 1    # in-service\r
-    flag_plant   = 4    # in-service\r
-    flag_load    = 1    # in-service\r
-    flag_swsh    = 1    # in-service\r
-    flag_brflow  = 1    # in-service\r
-    owner_brflow = 1    # bus, ignored if sid is -ve\r
-    ties_brflow  = 5    # ignored if sid is -ve\r
-    entry = 1   # gives a single entry (each branch once)\r
-    \r
-    #Bus data (number, basekV, pu, name, ...) : PSSe has 3 functions one for integer data, one for real data and one for strings\r
-    istrings = ['number']\r
-    ierr, idata = psspy.abusint(sid, flag_bus, istrings)\r
-    buses=idata\r
-    \r
-    rstrings = ['base','pu']\r
-    ierr, rdata = psspy.abusreal(sid, flag_bus, rstrings)\r
-    buses.append(rdata[0])\r
-    buses.append(rdata[1])\r
-    \r
-    cstrings = ['name']\r
-    ierr, cdata = psspy.abuschar(sid, flag_bus, cstrings)\r
-    buses.append(cdata[0])\r
-    \r
-    buses=zip(*buses) # transpose the matrix\r
-    \r
-    del idata, rdata, istrings, rstrings\r
-    \r
-    #Lines data (from, to, amps, rate%a, ploss, qloss)\r
-    flag=2 #All non-transformer branches    \r
-    istrings = ['fromnumber','tonumber']\r
-    ierr, idata = psspy.abrnint(sid, owner_brflow, ties_brflow, flag, entry, istrings)\r
-    lines=idata\r
-    \r
-    rstrings=['amps','pctratea','pctrateb','pctratec','p','q']\r
-    ierr, rdata = psspy.abrnreal(sid, owner_brflow, ties_brflow, flag, entry, rstrings)\r
-    for rc in range (np.matrix(rdata).shape[0]) :\r
-        lines.append(rdata[rc])\r
-    \r
-    cstrings=['fromname','toname','id']\r
-    ierr, cdata = psspy.abrnchar(sid, owner_brflow, ties_brflow, flag, entry, cstrings)\r
-    for rc in range (np.matrix(cdata).shape[0]) :\r
-        lines.append(cdata[rc])\r
-    \r
-    lines=zip(*lines) # transpose the matrix\r
-    \r
-    del idata, rdata, istrings, rstrings\r
-\r
-    #2 windings transformers data (from, to, amps, rate%a, ploss, qloss)\r
-    flag=6 #All transformer branches    \r
-    istrings = ['fromnumber','tonumber']\r
-    ierr, idata = psspy.abrnint(sid, owner_brflow, ties_brflow, flag, entry, istrings)\r
-    transf=idata\r
-    \r
-    rstrings=['amps','pctratea','ploss','qloss']\r
-    ierr, rdata = psspy.abrnreal(sid, owner_brflow, ties_brflow, flag, entry, rstrings)\r
-    for rc in range (np.matrix(rdata).shape[0]) :\r
-        transf.append(rdata[rc])\r
-    \r
-    transf=zip(*transf) # transpose the matrix\r
-    \r
-    del idata, rdata, istrings, rstrings    \r
-    \r
-    #Machines data (bus, inservice, number, pgen, qgen, mvabase)\r
-    istrings = ['number','status']\r
-    ierr, idata = psspy.amachint(sid, flag_plant, istrings)\r
-    plants=idata\r
-    \r
-    cstrings = ['id']\r
-    ierr, cdata = psspy.amachchar(sid, flag_plant, cstrings)\r
-    for rc in range (np.matrix(cdata).shape[0]) :\r
-        plants.append(cdata[rc])   \r
-    \r
-    rstrings = ['pgen','qgen','mbase','pmax','qmax']\r
-    ierr, rdata = psspy.amachreal(sid, flag_plant, rstrings)\r
-    for rc in range (np.matrix(rdata).shape[0]) :\r
-        plants.append(rdata[rc])\r
-        \r
-    cstrings = ['name']\r
-    ierr, cdata = psspy.amachchar(sid, flag_plant, cstrings)\r
-    plants.append(cdata[0])   \r
-    \r
-    nb_plants=np.matrix(plants).shape[1]\r
-    for rc in range (0,nb_plants) :\r
-        plants[3][rc]=float(plants[3][rc]*int(plants[1][rc])) # If the plant isn't in service its production is fixed to zero\r
-        plants[4][rc]=float(plants[4][rc]*int(plants[1][rc])) # If the plant isn't in service its production is fixed to zero\r
-    \r
-    plants=zip(*plants) # transpose the matrix\r
-        \r
-    #Loads data (bus, active, reactive)\r
-    istrings = ['number']\r
-    ierr, idata = psspy.aloadint(sid, flag_load, istrings)\r
-    loads=idata\r
-    \r
-    xstrings = ['mvaact']\r
-    ierr, xdata = psspy.aloadcplx(sid, flag_load, xstrings)  \r
-    loads.append(np.real(xdata)[0]) # Append the real part of the load\r
-    loads.append(np.imag(xdata)[0]) #Append the imaginary part of the load\r
-    \r
-    istrings = ['status']\r
-    ierr, idata = psspy.aloadint(sid, flag_load, istrings)\r
-    loads.append(idata[0])\r
-    \r
-    cstrings = ['name']\r
-    ierr, cdata = psspy.aloadchar(sid, flag_load, cstrings)\r
-    loads.append(cdata[0])\r
-    \r
-    nb_loads=np.matrix(loads).shape[1]\r
-    for rc in range (0,nb_loads) :\r
-        loads[1][rc]=float(loads[1][rc]*int(loads[3][rc])) # If the load isn't in service its consumption is fixed to zero\r
-        loads[2][rc]=float(loads[2][rc]*int(loads[3][rc])) # If the load isn't in service its consumption is fixed to zero\r
-    \r
-    loads=zip(*loads) # transpose the matrix\r
-    \r
-    #Fixed shunt data (number, MVAR, name, ...) \r
-    istrings = ['number','status']\r
-    ierr, idata = psspy.afxshntbusint(sid, flag_bus, istrings)\r
-    shunt=idata\r
-    \r
-    xstrings = ['shuntact']\r
-    ierr, xdata = psspy.afxshntbuscplx(sid, flag_bus, xstrings)\r
-    shunt.append(np.imag(xdata)[0]) #Append the imaginary part of the load\r
-    \r
-    cstrings = ['name']\r
-    ierr, cdata = psspy.afxshntbuschar(sid, flag_bus, cstrings)\r
-    shunt.append(cdata[0])\r
-    \r
-    shunt=zip(*shunt) # transpose the matrix\r
-       \r
-    return buses, lines, transf, plants, loads, shunt\r
-\r
-# Fonction pour ecrire un fichier de sortie type csv\r
-def MyLogger(x,y,z,logCSVfilename,logTXTfilename,ite):  \r
-    f=open(logCSVfilename, 'a')\r
-    f.write("%f;" % (ite))\r
-    f.write(";")\r
-    nx = len(x)\r
-    for i in range(0,nx):\r
-        f.write(str(x[i]))#f.write("%f;" % (x[i]))\r
-        f.write(";")\r
-    f.write(";")\r
-    nz = len(z)\r
-    for i in range(0,nz):\r
-        f.write("%f;" % (z[i]))\r
-    f.write(";")\r
-    ny = len(y)\r
-    for j in range(0,ny):\r
-        f.write("%f;" % (y[j]))\r
-    f.write("\n")\r
-    f.close()\r
-    \r
-    f=open(logTXTfilename, 'a')\r
-    f.write("%f\t" % (ite))\r
-    nx = len(x)\r
-    for i in range(0,nx):\r
-        f.write(str(x[i]))#f.write("%f\t" % (x[i]))\r
-        f.write("\t")\r
-    nz = len(z)\r
-    for i in range(0,nz):\r
-        f.write("%f\t" % (z[i]))\r
-    ny = len(y)\r
-    for j in range(0,ny):\r
-        f.write("%f\t" % (y[j]))\r
-    f.write("\n")\r
-    f.close()\r
-\r
-    \r
-# Fonction pour ecrire un fichier de sortie type csv pour chaque type de grandeur de sortie\r
-def MyMultiLogger (x, y, sizeY, z, ite, folder, day, fich, hour):\r
-    global ny\r
-    y0=0\r
-    for fich in range (np.size(sizeY,0)):\r
-        multilogfilename=folder+"\N"+day+"\Y"+str(fich)+"simulationDClog"+hour+".csv"\r
-        f=open(multilogfilename, 'a')\r
-        f.write("%f;" % (ite))\r
-        f.write(";")\r
-        nx = len(x)\r
-        for i in range(0,nx):\r
-            f.write("%f;" % (x[i]))\r
-        f.write(";")\r
-        nz = len(z)\r
-        for i in range(0,nz):\r
-            f.write("%f;" % (z[i]))\r
-        f.write(";")\r
-        ny = sizeY[fich]\r
-        for j in range(0,ny):\r
-            f.write("%f;" % (y[j+y0]))\r
-        f.write("\n")\r
-        f.close()\r
-        y0 += ny\r
-    print "Fichiers "+str(ite)+" enregistres\n\n"\r
-    \r
-# Analyses graphiques\r
-def graphical_out (inputSample, outputSampleAll, inputDim, outputDim, montecarlosize) :\r
-    print "\n\n\n                     Writing graphical analysis files..."\r
-    # A Pairwise scatter plot of the inputs\r
-    myGraph = Graph()\r
-    myPairs = Pairs(inputSample, 'Inputs relations', inputSample.getDescription(), "red", "bullet")\r
-    myGraph.add(Drawable(myPairs))\r
-    myGraph.draw("Input Samples",640,480,GraphImplementation.PDF)\r
-    #View(myGraph.getBitmap())\r
-    print 'Input pairwise scatterplot done...'\r
-    \r
-    # A Pairwise scatter plot of the outputs\r
-    myGraph = Graph()\r
-    myPairs = Pairs(outputSampleAll, 'Output relations', outputSampleAll.getDescription(), "red", "bullet")\r
-    myGraph.add(Drawable(myPairs))\r
-    myGraph.draw("Output Samples",640,480,GraphImplementation.PDF)\r
-    #View(myGraph.getBitmap())\r
-    print 'Output pairwise scatterplot done...'\r
-    \r
-    # A Pairwise scatter plot of the inputs/outputs\r
-    # Draw all scatter plots yj vs xi\r
-    for j in range(outputDim):\r
-        outputSamplej=outputSampleAll.getMarginal(j)\r
-        Ylabelstr=outputSamplej.getDescription()[0]\r
-        for i in range(inputDim):\r
-            inputSamplei=inputSample.getMarginal(i)\r
-            Xlabelstr=inputSamplei.getDescription()[0]\r
-            X=NumericalSample(montecarlosize,2)\r
-            for k in range(montecarlosize):\r
-                X[k,0]=inputSamplei[k][0]\r
-                X[k,1]=outputSamplej[k][0]\r
-            myGraph = Graph()\r
-            myCloud=Cloud(X);\r
-            mytitle=Ylabelstr+"vs"+Xlabelstr\r
-            myGraph.add(Drawable(myCloud))\r
-            myGraph.setAxes(1)\r
-            myGraph.setXTitle(Xlabelstr)\r
-            myGraph.setYTitle(Ylabelstr)\r
-            myGraph.draw(mytitle,640,480,GraphImplementation.PDF)\r
-            #ViewImage(myGraph.getBitmap())\r
-    print 'Input/Output pairwise scatterplot done...'\r
-    \r
-    # An histogram of the inputs\r
-    for i in range(inputDim):\r
-        inputSamplei=inputSample.getMarginal(i)\r
-        myGraph = VisualTest.DrawHistogram(inputSamplei)\r
-        labelarray=inputSamplei.getDescription()\r
-        labelstr=labelarray[0]\r
-        myGraph.setTitle(labelstr)\r
-        myGraph.setName(labelstr)\r
-        myGraph.setXTitle(labelstr)\r
-        myGraph.setYTitle("Frequency")\r
-        myGraph.draw(labelstr,640,480,GraphImplementation.PDF)\r
-        #View(myGraph.getBitmap())\r
-    print 'Input histogram done...'\r
-    \r
-    # An histogram of the outputs\r
-    for j in range(outputDim):\r
-        outputSamplej=outputSampleAll.getMarginal(j)\r
-        myGraph = VisualTest.DrawHistogram(outputSamplej)\r
-        labelarray=outputSamplej.getDescription()\r
-        labelstr=labelarray[0]\r
-        myGraph.setTitle(labelstr)\r
-        myGraph.setName(labelstr)\r
-        myGraph.setXTitle(labelstr)\r
-        myGraph.setYTitle("Frequency")\r
-        myGraph.draw(labelstr,640,480,GraphImplementation.PDF)\r
-        #View(myGraph.getBitmap())\r
-    print 'Output histogram done'\r
-    print 'Graphical output terminated'\r
-    \r
-def config_ENR(path_config_ENR) :\r
-    PV=[]\r
-    Wind1=[]\r
-    Wind2=[]\r
-    Interco=[]\r
-    f=open(path_config_ENR,"r")\r
-    lines=f.readlines()\r
-    for i in range (len(lines)) :\r
-        line = lines[i].split(";")\r
-        if str(line[0]).upper() == 'PV' :\r
-            PV.append([int(line[1]),i-1,int(line[3])])\r
-        elif str(line[0]).upper() == 'W1' :\r
-            Wind1.append([int(line[1]),i-1,int(line[3])])\r
-        elif str(line[0]).upper() == 'W2' :\r
-            Wind2.append([int(line[1]),i-1,int(line[3])])\r
-        elif str(line[0]).upper() == 'I' :\r
-            Interco.append([int(line[1]),i-1,int(line[3])])\r
-        else :\r
-            pass\r
-    return PV, Wind1, Wind2, Interco\r
-    \r
-def config_contingency(path_config_contin) :\r
-    lines_con=[]\r
-    groups_con=[]\r
-    # Loading of lines contingency configuration\r
-    f=open(path_config_contin[0],"r")\r
-    lines=f.readlines()\r
-    f.close()\r
-    for i in range (len(lines)) :\r
-        line=lines[i].split(";")\r
-        try :\r
-            int(line[1])\r
-        except ValueError :\r
-            pass\r
-        else :\r
-            if line[0] == '' :\r
-                line[0] = '0'\r
-            lines_con.append([int(line[1]), int(line[3]), str(line[5]),float(line[0].replace(',','.'))])\r
-            \r
-    # Loading of groups contingency configuration\r
-    f=open(path_config_contin[1],"r")\r
-    lines=f.readlines()\r
-    f.close()\r
-    for i in range (len(lines)) :\r
-        line=lines[i].split(";")\r
-        try :\r
-            int(line[1])\r
-        except ValueError :\r
-            pass\r
-        else :\r
-            if line[0] == '' :\r
-                line[0] = '0'\r
-            groups_con.append([int(line[1]), int(line[3]),float(line[0].replace(',','.'))])\r
-            \r
-    sizeLines = len(lines_con)\r
-    sizeGroups = len(groups_con)\r
-    val=[]\r
-    prob=[]\r
-    for i in range(sizeLines+sizeGroups) :\r
-        val.append(int(i))\r
-        \r
-    for i in range (sizeLines) :\r
-        prob.append(lines_con[i][3])\r
-    for i in range (sizeGroups) :\r
-        prob.append(groups_con[i][2])\r
-        \r
-    return lines_con, groups_con, val, prob\r
-    \r
-def LoadARMA(time_serie_file, time_serie_SS, time_serie_TH) :\r
-    f=open(time_serie_file,"r")\r
-    lines=f.readlines()\r
-    N=len(lines)\r
-    Xt=[]\r
-    for i in range(N) :\r
-        Xt.append([float(lines[i])])\r
-    \r
-    myTG=RegularGrid(0,float(time_serie_SS),N)\r
-    TS=TimeSeries(myTG,NumericalSample(Xt))\r
-    myWN=WhiteNoise(Distribution(Normal(0,1)),myTG)\r
-    myState=ARMAState(TS.getSample(),NumericalSample())\r
-    p=12\r
-    q=0\r
-    d=1\r
-    myFactory = ARMALikelihoodFactory ( p , q , d )\r
-    myARMA = myFactory.build(TS)\r
-    \r
-    myARMA.setState(myState)\r
-    \r
-    AR = myARMA.getARCoefficients()\r
-    MA = myARMA.getMACoefficients()\r
-    \r
-    ts = myARMA.getRealization()\r
-    ts.setName('A realization')\r
-    myTSGraph=ts.drawMarginal(0)\r
-    myTSGraph.draw('Realization'+str(p)+","+str(q),640,480,GraphImplementation.PDF)\r
-    myARMAState=myARMA.getState()\r
-    \r
-    #Make a prediction of the future on next Nit instants\r
-    Nit = int(time_serie_TH)\r
-    myARMA2=ARMA(AR,MA,myWN,myARMAState)\r
-    possibleFuture=myARMA2.getFuture(Nit)\r
-    possibleFuture.setName('Possible future')\r
-    \r
-    Xt2=[]\r
-    for i in range (len(possibleFuture)):\r
-        Xt2.append(possibleFuture.getValueAtIndex(i)[0])\r
-    Max=float(max(Xt2))\r
-    Min=float(min(Xt2))\r
-    h=float(Max-Min)\r
-    for i in range (len(possibleFuture)):\r
-        value= (Xt2[i]-Min+h/3)/(Max-Min+h/3)\r
-        possibleFuture.setValueAtIndex(i,NumericalPoint(1,value))\r
-        \r
-    myFG=possibleFuture.drawMarginal(0)\r
-    myFG.draw('Future'+str(Nit),640,480,GraphImplementation.PDF)\r
-    \r
-    return possibleFuture\r
-    \r
-def LoadTS(time_serie_file) :\r
-    TS=[]\r
-    for i in range(len(time_serie_file)) :\r
-        if time_serie_file[i] == -1 :\r
-            pass\r
-        else :\r
-            f=open(time_serie_file[i],"r")\r
-            lines=f.readlines()\r
-            N=len(lines)\r
-            Xt=[]\r
-            for j in range(N) :\r
-                try :\r
-                    float(lines[i])\r
-                except ValueError :\r
-                    lines[i] = commaToPoint(lines[i])\r
-                else :\r
-                    pass\r
-                Xt.append([float(lines[j])])\r
-            TS.append(Xt)\r
-    return TS\r
-\r
-\r
-def KSDist(filename) :\r
-    f=open(filename,"r")\r
-    print "Creating Kernel Smoothing distribution from: "+str(filename)\r
-    lines=f.readlines()\r
-    N=len(lines)\r
-    Xt=[]\r
-    for i in range(N) :\r
-        if lines[i] == "\n" :\r
-            print "End of file"\r
-            break\r
-        else :\r
-            try :\r
-                float(lines[i])\r
-            except ValueError :\r
-                lines[i] = commaToPoint(lines[i])\r
-            else :\r
-                pass\r
-            Xt.append([float(lines[i])])\r
-    NS=NumericalSample(Xt)\r
-    kernel=KernelSmoothing(Uniform())\r
-    myBandwith = kernel.computeSilvermanBandwidth(NS)\r
-    KS=kernel.build(NS,myBandwith,1)\r
-    return KS\r
-    \r
-def threshold (inputRandomVector, outputVariableOfInterest,pssefun,inputDistribution) :\r
-    # We create a quadraticCumul algorithm\r
-    myQuadraticCumul = QuadraticCumul(outputVariableOfInterest)\r
-    \r
-    # We compute the several elements provided by the quadratic cumul algorithm\r
-    # and evaluate the number of calculus needed\r
-    nbBefr = pssefun.getEvaluationCallsNumber()\r
-    \r
-    # Mean first order\r
-    meanFirstOrder = myQuadraticCumul.getMeanFirstOrder()[0]\r
-    nbAfter1 = pssefun.getEvaluationCallsNumber()\r
-    \r
-    # Mean second order\r
-    meanSecondOrder = myQuadraticCumul.getMeanSecondOrder()[0]\r
-    nbAfter2 = pssefun.getEvaluationCallsNumber()\r
-    \r
-    # Standard deviation\r
-    stdDeviation = sqrt(myQuadraticCumul.getCovariance()[0,0])\r
-    nbAfter3 = pssefun.getEvaluationCallsNumber()\r
-    \r
-    print "First order mean=", myQuadraticCumul.getMeanFirstOrder()[0]\r
-    print "Evaluation calls number = ", nbAfter1 - nbBefr\r
-    print "Second order mean=", myQuadraticCumul.getMeanSecondOrder()[0]\r
-    print "Evaluation calls number = ", nbAfter2 - nbAfter1\r
-    print "Standard deviation=", sqrt(myQuadraticCumul.getCovariance()[0,0])\r
-    print "Evaluation calls number = ", nbAfter3 - nbAfter2\r
-    \r
-    print  "Importance factors="\r
-    for i in range(inputRandomVector.getDimension()) :\r
-      print inputDistribution.getDescription()[i], " = ", myQuadraticCumul.getImportanceFactors()[i]\r
-    print ""\r
-    \r
-def getUserDefined (val, prob):\r
-    try :\r
-        val = val.split(',')\r
-        prob = prob.split(',')\r
-    except AttributeError :\r
-        pass\r
-    dim = len (val)\r
-    coll = UserDefinedPairCollection()\r
-    for i in range (dim) :\r
-        UDpair=UserDefinedPair(NumericalPoint(1,float(val[i])),float(prob[i]))\r
-        coll.add(UDpair)\r
-    return UserDefined(coll)\r
-    \r
-def getHistogram (step, prob) :\r
-    try :\r
-        step = step.split(',')\r
-        prob = prob.split(',')\r
-    except AttributeError :\r
-        pass\r
-    dim = len (step)\r
-    myHistogram = HistogramPairCollection(dim)\r
-    for i in range (dim) :\r
-        myHistogram[i]=HistogramPair(float(step[i]),float(prob[i]))\r
-    return myHistogram\r
-    \r
-def getUserLaw (description) :\r
-    law_num=int(description[0])\r
-    time_serie=0\r
-    time_serie_file=''\r
-    time_serie_SS=0\r
-    time_serie_TH=0    \r
-    if law_num == 1 :\r
-        law=Normal(float(description[1]),float(description[2]))\r
-    elif law_num == 2 :\r
-        law=Uniform(float(description[1]),float(description[2]))\r
-    elif law_num == 3 :\r
-        law=Exponential(float(description[1]),float(description[2]))\r
-    elif law_num == 4 :\r
-        law=Weibull(float(description[1]),float(description[2]),float(description[3]))\r
-    elif law_num == 5 :\r
-        law=TruncatedNormal(float(description[1]),float(description[2]),float(description[3]),float(description[4]))\r
-    elif law_num == 6 :\r
-        law=UserDefined(getUserDefined (description[1], description[2]))\r
-    elif law_num == 7 :\r
-        law=Histogram(0.0, getHistogram (description[1], description[2]))\r
-    elif law_num == 10 :\r
-        law=KSDist(description[1])\r
-    elif law_num == 20 :\r
-        law = Uniform(0.999999,1)\r
-        time_serie=1\r
-        time_serie_file=description[1]\r
-        """time_serie_SS=description[2]\r
-        time_serie_TH=description[3]"""\r
-    else :\r
-        law = Uniform(0.999999,1)\r
-    return law, [time_serie, time_serie_file] #[time_serie, time_serie_file, time_serie_SS, time_serie_TH]\r
-    \r
-def contingency_automatic (dfxPath, acccPath, rate) :\r
-    psspy.accc_with_dsp_3( 0.5,[0,0,0,1,1,2,0,0,0,0,0],r"""ALL""",dfxPath,acccPath,"","","")\r
-    psspy.accc_single_run_report_4([1,int(rate),int(rate),1,1,0,1,0,0,0,0,0],[0,0,0,0,6000],[ 0.5, 5.0, 100.0,0.0,0.0,0.0, 99999.],acccPath)\r
-    \r
-    rslt_summary=pssarrays.accc_summary(acccPath)\r
-    if int(rate) == 1 :\r
-        rate = rslt_summary.rating.a\r
-    elif int(rate) == 2 :\r
-        rate = rslt_summary.rating.b\r
-    elif int(rate) == 3 :\r
-        rate = rslt_summary.rating.c\r
-    else :\r
-        print "NO RATE CHOOSEN"\r
-        \r
-    Labels=rlst.colabel\r
-    contin_load=[]\r
-    for label in Labels :\r
-        t=[]\r
-        rslt=pssarrays.accc_solution(acccPath,contingency,label,0.5,5.0)\r
-        ampFlow=rslt.ampflow\r
-        for i in range (len(rA)) : \r
-            t.append(ampFlow[i]/rate[i])\r
-        contin_load.append(t)\r
-    return contin_load\r
-    \r
-def commaToPoint (string) :\r
-    stringReplaced = string.replace(',','.')\r
-    return stringReplaced
\ No newline at end of file
diff --git a/PSEN_Eficas/PSEN_Cata.py b/PSEN_Eficas/PSEN_Cata.py
deleted file mode 100644 (file)
index d74d7e4..0000000
+++ /dev/null
@@ -1,2498 +0,0 @@
-# -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2013   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-
-# --------------------------------------------------
-# debut entete
-# --------------------------------------------------
-
-#from Accas import ASSD, JDC_CATA, AU_MOINS_UN, PROC, SIMP, FACT, OPER, MACRO, BLOC, A_VALIDATOR
-from Accas import *
-import opsPSEN
-
-class loi      ( ASSD ) : pass
-class variable ( ASSD ) : pass
-class sd_charge     ( ASSD ) : pass
-class sd_generateur ( ASSD ) : pass
-class sd_ligne     ( ASSD ) : pass
-class sd_transfo ( ASSD ) : pass
-class sd_moteur (ASSD) : pass
-#class sd_busbar ( sd_generateur,sd_charge ) : pass
-
-import types
-class Tuple:
-  def __init__(self,ntuple):
-    self.ntuple=ntuple
-
-  def __convert__(self,valeur):
-    if type(valeur) == types.StringType:
-      return None
-    if len(valeur) != self.ntuple:
-      return None
-    return valeur
-
-  def info(self):
-    return "Tuple de %s elements" % self.ntuple
-
-  __repr__=info
-  __str__=info
-
-class Matrice:
-  def __init__(self,nbLigs=None,nbCols=None,methodeCalculTaille=None,formatSortie="ligne",valSup=None,valMin=None,structure=None):
-      self.nbLigs=nbLigs
-      self.nbCols=nbCols
-      self.methodeCalculTaille=methodeCalculTaille
-      self.formatSortie=formatSortie
-      self.valSup=valSup
-      self.valMin=valMin
-      self.structure=structure
-
-  def __convert__(self,valeur):
-    # Attention ne verifie pas grand chose
-    if type(valeur) != types.ListType :
-      return None
-    return valeur
-
-  def info(self):
-      return "Matrice %s x %s" % (self.nbLigs, self.nbCols)
-
-      __repr__=info
-      __str__=info
-
-
-#CONTEXT.debug = 1
-JdC = JDC_CATA ( code = 'PSEN',
-                 execmodul = None,
-                 regles = ( AU_MOINS_UN ( 'PSSE_PARAMETERS' ),
-                            AU_MOINS_UN ( 'DIRECTORY' ),
-                            AU_MOINS_UN ( 'DISTRIBUTION' ),
-                            AU_MOINS_UN ( 'SIMULATION' ),
-                            AU_PLUS_UN ( 'PSSE_PARAMETERS' ),
-                            AU_PLUS_UN ( 'DIRECTORY' ),
-                            AU_PLUS_UN ( 'SIMULATION' ),
-                            AU_PLUS_UN ( 'CORRELATION' ),
-                            AU_PLUS_UN ( 'N_1_GENERATORS' ),
-                            AU_PLUS_UN ( 'N_1_LINES' ),
-                            AU_PLUS_UN ( 'N_1_LOADS' ),
-                            AU_PLUS_UN ( 'N_1_MOTORS' ),
-                            AU_PLUS_UN ( 'N_1_TRANSFORMERS' ),
-
-                            ),
-                 ) # Fin JDC_CATA
-
-
-# --------------------------------------------------
-# fin entete
-# --------------------------------------------------
-
-MONGENER =  OPER ( nom = "MONGENER",
-            sd_prod = sd_generateur,
-            UIinfo = {"groupes": ("CACHE")},
-            op = None,
-            fr = "Generateur",
-            ang = "Generator",
-
-  ID = SIMP ( statut = 'o', typ = "TXM", fr = "num bus", ang = "num bus",),
-)
-MONMOTEUR =  OPER ( nom = "MONMOTEUR",
-            sd_prod = sd_moteur,
-            UIinfo = {"groupes": ("CACHE")},
-            op = None,
-            fr = "Moteur",
-            ang = "Motor",
-
-  ID = SIMP ( statut = 'o', typ = "TXM", fr = "num bus", ang = "num bus",),
-)
-MACHARGE =  OPER ( nom = "MACHARGE",
-            sd_prod = sd_charge,
-            UIinfo = {"groupes": ("CACHE")},
-            op = None,
-            fr = "Charge",
-            ang = "Load",
-
-  ID = SIMP ( statut = 'o', typ = "TXM", fr = "nom charge", ang = "load name",),
-)
-MALIGNE =  OPER ( nom = "MALIGNE",
-            sd_prod = sd_ligne,
-            UIinfo = {"groupes": ("CACHE")},
-            op = None,
-            fr = "Ligne",
-            ang = "Line",
-
-  ID = SIMP ( statut = 'o', typ = "TXM", fr = "nom ligne", ang = "line name",),
-)
-MONTRANSFO =  OPER ( nom = "MONTRANSFO",
-            sd_prod = sd_transfo,
-            UIinfo = {"groupes": ("CACHE")},
-            op = None,
-            fr = "Transformateur",
-            ang = "Transformer",
-
-  ID = SIMP ( statut = 'o', typ = "TXM", fr = "nom transformateur", ang = "transformer name",),
-)
-
-
-
-PSSE_PARAMETERS = PROC ( nom = "PSSE_PARAMETERS",
-             op=None,
-             docu = "",
-  ALGORITHM = SIMP ( statut = "o",
-                     typ='TXM',
-                     into=["Optimum Power Flow","Economic Dispatch and Power Flow"],
-                     defaut="Optimum Power Flow",
-                    ),
-  I_MAX = SIMP ( statut = "o",
-                     typ='TXM',
-                     into=['RateA','RateB','RateC'],
-                     defaut='RateA',
-                    ),
-  LOCK_TAPS = SIMP ( statut = "o",
-                     typ=bool,
-                     defaut=True,
-                     ),
-
-  b_OPF = BLOC (condition = "ALGORITHM == 'Optimum Power Flow'",
-  FUEL_COST = SIMP ( statut = "o",
-                     typ=bool,
-                     defaut=True,
-                     ),
-  LOADSHEDDING_COST = SIMP ( statut = "o",
-                     typ=bool,
-                     defaut=False,
-                     ),
-  MVAR_COST = SIMP ( statut = "o",
-                     typ=bool,
-                     defaut=False,
-                    ),
-  ITERATION_LIMIT = SIMP ( statut = "o",
-                 typ = "I",
-                 val_min=1,
-                 defaut=20,
-                 ),
-  QGEN_CONTROL = SIMP ( statut = "o",
-                        typ = bool,
-                        defaut = True,
-                        ),
-  b_QgenControl = BLOC (condition = "QGEN_CONTROL == True",
-  SAVE_CASE_BEFORE_QCONTROL = SIMP ( statut = "o",
-                        typ = bool,
-                        defaut = False,
-                        fr = "Sauvegarder des fichiers de cas avant d'avoir deconnecte les groupes ne produisant pas de la puissance active",
-                        ang = "Save network case files before having disconnected groups that dont generate active power.",
-                        ),
-  ),
-  ),
-
-  b_ECD = BLOC (condition = "ALGORITHM == 'Economic Dispatch and Power Flow'",
-  ecd_file=SIMP(statut="o", typ = ('Fichier', 'Economic Dispatch Files (*.ecd);;All Files (*)',),),
-  ),
-
-##  P_MIN= SIMP ( statut = "o",
-##                     typ=bool,
-##                     defaut=True,
-##                     ),
-)
-
-SIMULATION = PROC ( nom = "SIMULATION",
-             op = None,
-             docu = "",
-  regles             =(EXCLUS('NUMBER_PACKAGE','CONVERGENCE'), UN_PARMI('NUMBER_PACKAGE','CONVERGENCE'),),
-
-  SIZE_PACKAGE = SIMP ( statut = "o",
-                 typ = "I",
-                 val_min=10,
-                 defaut=100,
-                 ),
-  NUMBER_PACKAGE = SIMP ( statut = "f",
-                 typ = "I",
-                 val_min=1,
-                 ),
-  CONVERGENCE = SIMP ( statut = "f",
-                 typ="I",
-                 into=[1],
-                ),
-
-##  STUDY = SIMP ( statut = "o",
-##                 typ = "TXM",
-##                 into = ( 'N-1', 'Load', 'Wind-1', 'Wind-2', 'PV' ),
-##                 max=5,
-##                 fr = "Affichage du niveau de wrapper de la bibliotheque Open TURNS",
-##                 ang = "Open TURNS library debug level print",
-##                 ),
-)
-
-
-#================================
-# Definition du modele physique
-#================================
-
-
-
-CORRELATION = PROC ( nom = 'CORRELATION',
-                     op = None,
-                     docu = "",
-                     fr = "Correlation entre variables",
-                     ang = "Variable correlation",
-
-####  Copula = SIMP ( statut = "o",
-####                  typ = 'TXM',
-####                  into = ( "Independent", "Normal" ),
-####                  defaut = "Independent",
-####                  fr = "Type de la copule",
-####                  ang = "Copula kind",
-####                  ),
-##
-## # Matrix = BLOC ( condition = "Copula in ( 'Normal', )",
-##
-    CorrelationMatrix = SIMP ( statut = "o",
-                               typ = Matrice(nbLigs=None,
-                                             nbCols=None,
-                                             methodeCalculTaille='NbDeDistributions',
-                                             structure="symetrique"),
-                               fr = "Matrice de correlation entre les variables d'entree",
-                               ang = "Correlation matrix for input variables",
-                               #val_max=1.0,
-                               #val_min=-1.0
-                               ),
-##  #), # Fin BLOC Matrix
-##
-##
-)
-
-DIRECTORY = MACRO ( nom = 'DIRECTORY',
-        op=None,
-        fr = "Chargement des directoires et fichiers",
-        ang = "Load directories and files necessary to run PSEN",
-                sd_prod = opsPSEN.INCLUDE,
-                op_init = opsPSEN.INCLUDE_context,
-                #sd_prod=None,
-                fichier_ini = 1,
-
-        PSSE_path=SIMP(statut="o",typ='Repertoire',defaut='C:\Program Files\PTI\PSSE33\PSSBIN'),
-        sav_file=SIMP(statut="o", typ = ('Fichier', 'Network Case Files (*.sav);;All Files (*)',),),
-        results_folder=SIMP(statut="o",typ='Repertoire'),
-        #lines_file=SIMP(statut="o" ,typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),),
-        #groups_file=SIMP(statut="o", typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),),
-        #generationsystem_file=SIMP(statut="o" ,typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),),
-
-)
-
-
-
-#================================
-# Importation des fichiers csv N-1
-#================================
-
-N_1_LINES = PROC( nom="N_1_LINES",
-                     op = None,
-                     docu = "",
-                     fr = "N-1 lignes",
-                     ang = "N-1 lines",
-  Activated = SIMP ( statut='o', typ=bool, defaut=True),
-##  FileName = SIMP ( statut = "o",
-##                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
-##                    fr = "chemin du fichier csv des probabilites des defauts lignes",
-##                    ang = "csv file path with probabilities of line outages",
-##                    ),
-  Probability = SIMP ( statut = 'o',
-                       typ = Tuple(2),
-                       max = '**',
-                       fr = "Probabilite d'indisponibilite de la ligne",
-                       ang = "Probability that the line is not available",
-                       validators=VerifTypeTuple((sd_ligne,'R')),),
-              )
-
-N_1_TRANSFORMERS = PROC( nom="N_1_TRANSFORMERS",
-                     op = None,
-                     docu = "",
-                     fr = "N-1 transformateurs",
-                     ang = "N-1 transformers",
-  Activated = SIMP ( statut='o', typ=bool, defaut=True),
-##  FileName = SIMP ( statut = "o",
-##                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
-##                    fr = "chemin du fichier csv des probabilites des defauts transformateur",
-##                    ang = "csv file path with probabilities of transformer outages",
-##                    ),
-  Probability = SIMP ( statut = 'o',
-                       typ = Tuple(2),
-                       max = '**',
-                       fr = "Probabilite d'indisponibilite de la ligne",
-                       ang = "Probability that the line is not available",
-                       validators=VerifTypeTuple((sd_transfo,'R')),),
-              )
-N_1_GENERATORS = PROC( nom="N_1_GENERATORS",
-                     op = None,
-                     docu = "",
-                     fr = "N-1 generateurs",
-                     ang = "N-1 generators",
-  Activated = SIMP ( statut='o', typ=bool, defaut=True),
-##  FileName = SIMP ( statut = "o",
-##                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
-##                    fr = "chemin du fichier csv des probabilites des defauts generateurs",
-##                    ang = "csv file path with probabilities of generator outages",
-##                    ),
-  Probability = SIMP ( statut = 'o',
-                       typ = Tuple(2),
-                       max = '**',
-                       fr = "Probabilite d'indisponibilite du generateur",
-                       ang = "Probability that the generator is not available",
-                       validators=VerifTypeTuple((sd_generateur,'R')),),
-              )
-N_1_MOTORS = PROC( nom="N_1_MOTORS",
-                     op = None,
-                     docu = "",
-                     fr = "N-1 moteurs",
-                     ang = "N-1 motors",
-  Activated = SIMP ( statut='o', typ=bool, defaut=True),
-##  FileName = SIMP ( statut = "o",
-##                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
-##                    fr = "chemin du fichier csv des probabilites des defauts generateurs",
-##                    ang = "csv file path with probabilities of generator outages",
-##                    ),
-  Probability = SIMP ( statut = 'o',
-                       typ = Tuple(2),
-                       max = '**',
-                       fr = "Probabilite d'indisponibilite du moteur",
-                       ang = "Probability that the motor is not available",
-                       validators=VerifTypeTuple((sd_moteur,'R')),),
-              )
-N_1_LOADS = PROC( nom="N_1_LOADS",
-                     op = None,
-                     docu = "",
-                     fr = "N-1 charges",
-                     ang = "N-1 loads",
-  Activated = SIMP ( statut='o', typ=bool, defaut=True),
-##  FileName = SIMP ( statut = "o",
-##                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
-##                    fr = "chemin du fichier csv des probabilites des defauts charges",
-##                    ang = "csv file path with probabilities of load outages",
-##                    ),
-  Probability = SIMP ( statut = 'o',
-                       typ = Tuple(2),
-                       max = '**',
-                       fr = "Probabilite d'indisponibilite du generateur",
-                       ang = "Probability that the generator is not available",
-                       validators=VerifTypeTuple((sd_charge,'R')),),
-              )
-
-
-
-
-#================================
-# Definition des LOIS
-#================================
-
-# Nota : les variables de type OPER doivent etre en majuscules !
-# Nota : les variables de type OPER doivent etre de premier niveau (pas imbriquees dans un autre type)
-DISTRIBUTION = OPER ( nom = "DISTRIBUTION",
-                      sd_prod = loi,
-                      op = 68,
-                      fr = "Definitions des lois marginales utilisees par les variables d'entree",
-
-#====
-# Choisir generateur ou charge
-#====
-
-##  TypeMachine = SIMP ( statut='o', typ='TXM',
-##                      into = ('charge','vent1','vent2','pv','N-1',),
-##                      ),
-  Activated = SIMP ( statut='o', typ=bool, defaut=True),
-  ComponentType = SIMP (statut='o', typ='TXM',
-                      into = ('Generator','Load','Motor','Line','Transformer'),),
-  b_gener = BLOC (condition = "ComponentType == 'Generator'",
-
-  Type = SIMP (statut= "o", typ = "TXM",
-               into = ("Generator Power Level", "Generator Availability"),
-               fr = "Choisir si c'est le niveau de puissance ou la disponibilit� du generateur qui sera tiree",
-               ang= "Choose whether the power level or the availability of the generator will be set by the law",
-               defaut = "Generator Power Level",
-               ),
-
-  Sampling = SIMP (statut= "o", typ = "TXM",
-               into = ("Same sample for all generators", "One sample per generator"),
-               fr = "Choisir si une seule tirage sera fait pour tous les generateurs ou si des tirages differents seront faits pour chaque generateur",
-               ang= "Choose whether one drawing/sample will be performed for all of the generators or whether a different drawing/sample will be performed for each generator.",
-               defaut = "Same sample for all generators",
-               ),
-
-  Generator   = SIMP(statut='o',typ=sd_generateur,max="**", homo="SansOrdreNiDoublon",docu="sd_generateur"),
-
-#====
-# Type de distribution
-#====
-
-  b_gener_level = BLOC (condition= "Type == 'Generator Power Level'",
-
-  Law = SIMP ( statut = "o", typ = "TXM",
-                into = ( "Exponential",
-                         "Histogram",
-                         "Normal",
-                         #"Rayleigh",
-                         "PDF_from_file",
-                         "TruncatedNormal",
-                         "TimeSeries_from_file",
-                         "Uniform",
-                         "UserDefined",
-                         "Weibull",
-                         ),
-                fr = "Choix du type de la loi marginale",
-                ang = "1D marginal distribution",
-                ),
-
-
-#====
-# Definition des parametres selon le type de la loi
-#====
-
-
-  EXPONENTIAL = BLOC ( condition = " Law in ( 'Exponential', ) ",
-
-                         Lambda = SIMP ( statut = "o",
-                                         typ = "R",
-                                         max = 1,
-                                         val_min = 0.,
-                                         fr = "Parametre Lambda | Lambda > 0",
-                                         ang = "Lambda parameter | Lambda > 0",
-                                         ),
-
-                         Gamma = SIMP ( statut = "o",
-                                        typ = "R",
-                                        max = 1,
-                                        fr = "Borne inferieure du support de la loi",
-                                        ang = "Support lower bound",
-                                        ),
-
-  ), # Fin BLOC EXPONENTIAL
-
-
-  HISTOGRAM = BLOC ( condition = " Law in ( 'Histogram', ) ",
-
-                       First = SIMP ( statut = "o",
-                                    typ = "R",
-                                    max = 1,
-                                    fr = "Borne inferieure du supoport de la loi",
-                                    ang = "Support lower bound",
-                                    ),
-
-                       # Il faut definir une collection de couples ( x,p )
-                       Values = SIMP ( statut = 'o',
-                                       typ = Tuple(2),
-                                       max = '**',
-                                       fr = "Liste de couples : largeur de classe, hauteur de classe",
-                                       ang = "Class bandwidth, class height couple list",
-                                       validators=VerifTypeTuple(('R','R')),
-                                       ),
-
-  ), # Fin BLOC HISTOGRAM
-
-
-   NORMAL = BLOC ( condition = " Law in ( 'Normal', ) ",
-
-                    Mu = SIMP ( statut = "o",
-                                typ = "R",
-                                max = 1,
-                                fr = "Moyenne de la loi",
-                                ang = "Mean value",
-                                ),
-
-                   Sigma = SIMP ( statut = "o",
-                                  typ = "R",
-                                  max = 1,
-                                  val_min = 0.,
-                                  fr = "Ecart type de la loi",
-                                  ang = "Standard deviation",
-                                  ),
-
-   ), # Fin BLOC NORMAL
-
-
-  RAYLEIGH = BLOC ( condition = " Law in ( 'Rayleigh', ) ",
-
-                   Sigma = SIMP ( statut = "o",
-                                  typ = "R",
-                                  max = 1,
-                                  fr = "Parametre Sigma de la loi | Sigma > 0",
-                                  ang = "Sigma parameter | Sigma > 0",
-                                  ),
-
-                   Gamma = SIMP ( statut = "o",
-                                  typ = "R",
-                                  max = 1,
-                                  fr = "Borne inferieure du support de la loi",
-                                  ang = "Support lower bound",
-                                  ),
- ), # Fin BLOC RAYLEIGH
-
-  PDF = BLOC ( condition = " Law in ( 'PDF_from_file', ) ",
-
-  FileName = SIMP ( statut = "o",
-                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
-                    fr = "Nom du fichier .csv",
-                    ang = ".csv file name",
-                    ),
-              ),
-
-
-
-   TRUNCATEDNORMAL = BLOC ( condition = " Law in ( 'TruncatedNormal', ) ",
-
-                             MuN = SIMP ( statut = "o",
-                                          typ = "R",
-                                          max = 1,
-                                          fr = "Moyenne de la loi Normale non tronqu�e",
-                                          ang = "Mean value of the associated non truncated normal distribution",
-                                          ),
-
-                             SigmaN = SIMP ( statut = "o",
-                                             typ = "R",
-                                             max = 1,
-                                             val_min = 0.,
-                                             fr = "Ecart-type de la loi Normale non tronqu�e",
-                                             ang = "Standard deviation of the associated non truncated normal distribution",
-                                             ),
-
-                             A = SIMP ( statut = "o",
-                                        typ = "R",
-                                        max = 1,
-                                        fr = "Borne inferieure de la loi | A < B",
-                                        ang = "Lower bound | A < B",
-                                        ),
-
-                             B = SIMP ( statut = "o",
-                                        typ = "R",
-                                        max = 1,
-                                        fr = "Borne superieure de la loi | A < B",
-                                        ang = "Upper bound | A < B",
-                                        ),
-
-   ), # Fin BLOC TRUNCATEDNORMAL
-
-
-  TimeSeries = BLOC ( condition = " Law in ( 'TimeSeries_from_file', ) ",
-
-  FileName = SIMP ( statut = "o",
-                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
-                    fr = "Fichier CSV d'une serie temporelle",
-                    ang = "CSV file of a time series",
-                    ),
-              ),
-
-
-   UNIFORM = BLOC ( condition = " Law in ( 'Uniform', ) ",
-
-                     A = SIMP ( statut = "o",
-                                typ = "R",
-                                max = 1,
-                                fr = "Borne inferieure du support de la loi | A < B",
-                                ang = "Support lower bound | A < B",
-                                ),
-
-                     B = SIMP ( statut = "o",
-                                typ = "R",
-                                max = 1,
-                                fr = "Borne superieure du support de la loi | A < B",
-                                ang = "Support upper bound | A < B",
-                                ),
-
-   ), # Fin BLOC UNIFORM
-
-
-   USERDEFINED = BLOC ( condition = " Law in ( 'UserDefined', ) ",
-
-                       # Il faut definir une collection de couples ( x,p )
-                       Values = SIMP ( statut = 'o',
-                                       typ = Tuple(2),
-                                       max = '**',
-                                       fr = "Liste de couples : (valeur, prob.)",
-                                       ang = "List of pairs : (value, prob.)",
-                                       validators=VerifTypeTuple(('R','R')),
-                                       ),
-
-  ), # Fin BLOC USERDEFINED
-
-
-   WEIBULL = BLOC ( condition = " Law in ( 'Weibull', ) ",
-
-                     Settings = SIMP ( statut = "o",
-                                          typ = "TXM",
-                                          max = 1,
-                                          into = ( "AlphaBeta", "MuSigma" ),
-                                          defaut = "AlphaBeta",
-                                          fr = "Parametrage de la loi weibull",
-                                          ang = "Weibull distribution parameter set",
-                                          ),
-
-                     AlphaBeta_Parameters = BLOC ( condition = " Settings in ( 'AlphaBeta', ) ",
-
-                                         Alpha = SIMP ( statut = "o",
-                                                        typ = "R",
-                                                        max = 1,
-                                                        val_min = 0.,
-                                                        fr = "Parametre Alpha de la loi | Alpha > 0",
-                                                        ang = "Alpha parameter | Alpha > 0",
-                                                        ),
-
-                                         Beta = SIMP ( statut = "o",
-                                                       typ = "R",
-                                                       max = 1,
-                                                       val_min = 0.,
-                                                       fr = "Parametre Beta de la loi | Beta > 0",
-                                                       ang = "Beta parameter | Beta > 0",
-                                                       ),
-
-                                         ), # Fin BLOC AlphaBeta_Parameters
-
-
-                     MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
-
-                                         Mu = SIMP ( statut = "o",
-                                                     typ = "R",
-                                                     max = 1,
-                                                     fr = "Moyenne de la loi",
-                                                     ang = "Mean value",
-                                                     ),
-
-                                         Sigma = SIMP ( statut = "o",
-                                                        typ = "R",
-                                                        max = 1,
-                                                        val_min = 0.,
-                                                        fr = "Ecart type de la loi",
-                                                        ang = "Standard deviation",
-                                                        ),
-
-                                         ), # Fin BLOC MuSigma_Parameters
-
-                     Gamma = SIMP ( statut = "o",
-                                    typ = "R",
-                                    max = 1,
-                                    fr = "Borne inferieure du support de la loi",
-                                    ang = "Support lower bound",
-                                    ),
-
-    ), # Fin BLOC WEIBULL
-
-
-    Transfer_Function = FACT(statut='f',
-
-        TF_Input = SIMP ( statut='o',
-                       typ = 'TXM',
-                       fr = 'Entrer une fonction de transfert � partir d''un fichier .pow (vitesse de vent - puissance eolienne)\n \
-                             ou entrer une liste de tuples (valeur tiree - puissance normalisee)',
-                       ang = 'Enter wind speed - turbine production transfer function as a .pow file, \n \
-                              or enter a generic list of (law output value, normalized power output) tuples',
-                       into = ('.pow file', 'tuples list'),
-                             ),
-        b_file = BLOC(condition = "TF_Input == '.pow file'",
-                      File_Name = SIMP ( statut = "o",
-                                        typ = ('Fichier', 'Pow files (*.pow);;All Files (*)',),
-                                        fr = "Nom du fichier de transfer .pow",
-                                        ang = ".pow file name",
-                                        ),
-                      Wind_Speed_Measurement_Height = SIMP ( statut = 'o',
-                                        typ = "R",
-                                        max = 1,
-                                        fr = 'Hauteur (en metres) a laquelle les mesures de vitesse du vent ont ete prises',
-                                        ang = 'Height of wind speed measurements (m)',
-                                        sug = 10,
-                                        val_min = 0,
-                                        ),
-                      Hub_Height = SIMP (statut = 'o',
-                                         typ = "R",
-                                         fr = 'hauteur de moyeu de l''eolienne',
-                                         ang = 'wind turbine hub height',
-                                         sug = 80,
-                                         val_min = 0,),
-                      AlphaWS = SIMP (statut = 'o',
-                                         typ = "R",
-                                         fr = 'l''alpha pour extrapoler les mesures de vitesse du vent a la hauteur du moyeu ',
-                                         ang = 'alpha used to extrapolate wind speed measurements to hub height',
-                                         defaut = 1./7,
-                                         val_min = 0,
-                                         val_max = 1,
-                                            ),
-                      Percent_Losses = SIMP (statut = 'o',
-                                         typ = "R",
-                                         fr = 'pourcentage de pertes entre la sortie theorique d''une turbine et la sortie de la centrale',
-                                         ang = 'percent losses between theoretical power output of a single turbine and the output of the farm',
-                                         defaut = 5,
-                                         val_min = 0,
-                                         val_max = 100,
-                                             ),
-                      ), #fin du bloc FileName
-
-        b_tuples = BLOC(condition = "TF_Input == 'tuples list'",
-
-                       TF_Values = SIMP ( statut = 'o',
-                                       typ = Tuple(2),
-                                       max = '**',
-                                       min = 2,
-                                       fr = "Liste de couples : valeur tiree, puissance normalisee sortie",
-                                       ang = "List of couples : value set by law, normalized power output",
-                                       validators=VerifTypeTuple(('R','R')),
-                                       ),
-                      ), #fin du block Tuples List
-
-        ), #fin du FACT Transfer Function
-
-  ), #fin du bloc generator level
-
-
-  b_gener_avail = BLOC (condition= "Type == 'Generator Availability'",
-
-  Law = SIMP ( statut = "o", typ = "TXM",
-                into = ( #"Exponential",
-                         #"Histogram",
-                         #"Normal",
-                         #"Rayleigh",
-                         #"PDF_from_file",
-                         #"TruncatedNormal",
-                         "TimeSeries_from_file",
-                         #"Uniform",
-                         "UserDefined",
-                         #"Weibull",
-                         ),
-                fr = "Choix du type de la loi marginale",
-                ang = "1D marginal distribution",
-                defaut="UserDefined",
-                ),
-
-
-#====
-# Definition des parametres selon le type de la loi
-#====
-
-
-  TimeSeries = BLOC ( condition = " Law in ( 'TimeSeries_from_file', ) ",
-
-  FileName = SIMP ( statut = "o",
-                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
-                    fr = "Fichier CSV d'une serie temporelle",
-                    ang = "CSV file of a time series",
-                    ),
-              ),
-
-
-   USERDEFINED = BLOC ( condition = " Law in ( 'UserDefined', ) ",
-
-                       # Il faut definir une collection de couples ( x,p )
-                       Values = SIMP ( statut = 'o',
-                                       typ = Tuple(2),
-                                       max = '**',
-                                       fr = "Liste de couples : (valeur, prob.)",
-                                       ang = "List of pairs : (value, prob.)",
-                                       validators=VerifTypeTuple(('R','R')),
-                                       defaut=((0,0.0),(1,1.0)),
-                                       ),
-
-  ), # Fin BLOC USERDEFINED
-
-
-  ), #fin du bloc generator avail
-
-
-  ), #fin du bloc generateur
-
-#Bloc Charge
-  b_charge = BLOC (condition = "ComponentType == 'Load'",
-
-
-#====
-# Type de distribution
-#====
-
-  Type = SIMP (statut= "o", typ = "TXM",
-               into = ("Load Level", "Load Availability"),
-               fr = "Choisir si c'est le niveau de charge ou la disponibilit� de la charge qui sera tiree",
-               ang= "Choose whether the power level or the availability of the load will be set by the law",
-               defaut = "Load Level",
-               ),
-
-  Sampling = SIMP (statut= "o", typ = "TXM",
-               into = ("Same sample for all loads", "One sample per load"),
-               fr = "Choisir si une seule tirage sera fait pour tous les charges ou si des tirages differents seront faits pour chaque charge",
-               ang= "Choose whether one drawing/sample will be performed for all of the loads or whether a different drawing/sample will be performed for each load.",
-               defaut = "Same sample for all loads",
-               ),
-
-  Load       = SIMP(statut='o',typ=sd_charge,max="**", homo="SansOrdreNiDoublon",),
-
-
-  b_charge_level = BLOC (condition = "Type == 'Load Level'",
-
-  Law = SIMP ( statut = "o", typ = "TXM",
-                into = ( "Exponential",
-                         "Histogram",
-                         "Normal",
-                         #"Rayleigh",
-                         "PDF_from_file",
-                         "TruncatedNormal",
-                         "TimeSeries_from_file",
-                         "Uniform",
-                         "UserDefined",
-                         "Weibull",
-                         ),
-                fr = "Choix du type de la loi marginale",
-                ang = "1D marginal distribution",
-                ),
-
-
-#====
-# Definition des parametres selon le type de la loi
-#====
-
-
-  EXPONENTIAL = BLOC ( condition = " Law in ( 'Exponential', ) ",
-
-                         Lambda = SIMP ( statut = "o",
-                                         typ = "R",
-                                         max = 1,
-                                         val_min = 0.,
-                                         fr = "Parametre Lambda | Lambda > 0",
-                                         ang = "Lambda parameter | Lambda > 0",
-                                         ),
-
-                         Gamma = SIMP ( statut = "o",
-                                        typ = "R",
-                                        max = 1,
-                                        fr = "Borne inferieure du support de la loi",
-                                        ang = "Support lower bound",
-                                        ),
-
-  ), # Fin BLOC EXPONENTIAL
-
-
-  HISTOGRAM = BLOC ( condition = " Law in ( 'Histogram', ) ",
-
-                       First = SIMP ( statut = "o",
-                                    typ = "R",
-                                    max = 1,
-                                    fr = "Borne inferieure du supoport de la loi",
-                                    ang = "Support lower bound",
-                                    ),
-
-                       # Il faut definir une collection de couples ( x,p )
-                       Values = SIMP ( statut = 'o',
-                                       typ = Tuple(2),
-                                       max = '**',
-                                       fr = "Liste de couples : largeur de classe, hauteur de classe",
-                                       ang = "Class bandwidth, class height couple list",
-                                       validators=VerifTypeTuple(('R','R')),
-                                       ),
-
-  ), # Fin BLOC HISTOGRAM
-
-
-   NORMAL = BLOC ( condition = " Law in ( 'Normal', ) ",
-
-                    Mu = SIMP ( statut = "o",
-                                typ = "R",
-                                max = 1,
-                                fr = "Moyenne de la loi",
-                                ang = "Mean value",
-                                ),
-
-                   Sigma = SIMP ( statut = "o",
-                                  typ = "R",
-                                  max = 1,
-                                  val_min = 0.,
-                                  fr = "Ecart type de la loi",
-                                  ang = "Standard deviation",
-                                  ),
-
-   ), # Fin BLOC NORMAL
-
-
-  RAYLEIGH = BLOC ( condition = " Law in ( 'Rayleigh', ) ",
-
-                   Sigma = SIMP ( statut = "o",
-                                  typ = "R",
-                                  max = 1,
-                                  fr = "Parametre Sigma de la loi | Sigma > 0",
-                                  ang = "Sigma parameter | Sigma > 0",
-                                  ),
-
-                   Gamma = SIMP ( statut = "o",
-                                  typ = "R",
-                                  max = 1,
-                                  fr = "Borne inferieure du support de la loi",
-                                  ang = "Support lower bound",
-                                  ),
- ), # Fin BLOC RAYLEIGH
-
-  PDF = BLOC ( condition = " Law in ( 'PDF_from_file', ) ",
-
-  FileName = SIMP ( statut = "o",
-                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
-                    fr = "Nom du fichier .csv",
-                    ang = ".csv file name",
-                    ),
-              ),
-
-
-
-   TRUNCATEDNORMAL = BLOC ( condition = " Law in ( 'TruncatedNormal', ) ",
-
-                             MuN = SIMP ( statut = "o",
-                                          typ = "R",
-                                          max = 1,
-                                          fr = "Moyenne de la loi Normale non tronqu�e",
-                                          ang = "Mean value of the associated non truncated normal distribution",
-                                          ),
-
-                             SigmaN = SIMP ( statut = "o",
-                                             typ = "R",
-                                             max = 1,
-                                             val_min = 0.,
-                                             fr = "Ecart-type de la loi Normale non tronqu�e",
-                                             ang = "Standard deviation of the associated non truncated normal distribution",
-                                             ),
-
-                             A = SIMP ( statut = "o",
-                                        typ = "R",
-                                        max = 1,
-                                        fr = "Borne inferieure de la loi | A < B",
-                                        ang = "Lower bound | A < B",
-                                        ),
-
-                             B = SIMP ( statut = "o",
-                                        typ = "R",
-                                        max = 1,
-                                        fr = "Borne superieure de la loi | A < B",
-                                        ang = "Upper bound | A < B",
-                                        ),
-
-   ), # Fin BLOC TRUNCATEDNORMAL
-
-
-  TimeSeries = BLOC ( condition = " Law in ( 'TimeSeries_from_file', ) ",
-
-  FileName = SIMP ( statut = "o",
-                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
-                    fr = "Fichier CSV d'une serie temporelle",
-                    ang = "CSV file of a time series",
-                    ),
-              ),
-
-
-   UNIFORM = BLOC ( condition = " Law in ( 'Uniform', ) ",
-
-                     A = SIMP ( statut = "o",
-                                typ = "R",
-                                max = 1,
-                                fr = "Borne inferieure du support de la loi | A < B",
-                                ang = "Support lower bound | A < B",
-                                ),
-
-                     B = SIMP ( statut = "o",
-                                typ = "R",
-                                max = 1,
-                                fr = "Borne superieure du support de la loi | A < B",
-                                ang = "Support upper bound | A < B",
-                                ),
-
-   ), # Fin BLOC UNIFORM
-
-
-   USERDEFINED = BLOC ( condition = " Law in ( 'UserDefined', ) ",
-
-                       # Il faut definir une collection de couples ( x,p )
-                       Values = SIMP ( statut = 'o',
-                                       typ = Tuple(2),
-                                       max = '**',
-                                       fr = "Liste de couples : (valeur, probabilite)",
-                                       ang = "List of pairs : (value, probability)",
-                                       validators=VerifTypeTuple(('R','R')),
-                                       ),
-
-  ), # Fin BLOC USERDEFINED
-
-
-   WEIBULL = BLOC ( condition = " Law in ( 'Weibull', ) ",
-
-                     Settings = SIMP ( statut = "o",
-                                          typ = "TXM",
-                                          max = 1,
-                                          into = ( "AlphaBeta", "MuSigma" ),
-                                          defaut = "AlphaBeta",
-                                          fr = "Parametrage de la loi weibull",
-                                          ang = "Weibull distribution parameter set",
-                                          ),
-
-                     AlphaBeta_Parameters = BLOC ( condition = " Settings in ( 'AlphaBeta', ) ",
-
-                                         Alpha = SIMP ( statut = "o",
-                                                        typ = "R",
-                                                        max = 1,
-                                                        val_min = 0.,
-                                                        fr = "Parametre Alpha de la loi | Alpha > 0",
-                                                        ang = "Alpha parameter | Alpha > 0",
-                                                        ),
-
-                                         Beta = SIMP ( statut = "o",
-                                                       typ = "R",
-                                                       max = 1,
-                                                       val_min = 0.,
-                                                       fr = "Parametre Beta de la loi | Beta > 0",
-                                                       ang = "Beta parameter | Beta > 0",
-                                                       ),
-
-                                         ), # Fin BLOC AlphaBeta_Parameters
-
-
-                     MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
-
-                                         Mu = SIMP ( statut = "o",
-                                                     typ = "R",
-                                                     max = 1,
-                                                     fr = "Moyenne de la loi",
-                                                     ang = "Mean value",
-                                                     ),
-
-                                         Sigma = SIMP ( statut = "o",
-                                                        typ = "R",
-                                                        max = 1,
-                                                        val_min = 0.,
-                                                        fr = "Ecart type de la loi",
-                                                        ang = "Standard deviation",
-                                                        ),
-
-                                         ), # Fin BLOC MuSigma_Parameters
-
-                     Gamma = SIMP ( statut = "o",
-                                    typ = "R",
-                                    max = 1,
-                                    fr = "Borne inferieure du support de la loi",
-                                    ang = "Support lower bound",
-                                    ),
-
-    ), # Fin BLOC WEIBULL
-
-  ), #fin du block Load Level
-
-
-  b_charge_avail = BLOC (condition = "Type == 'Load Availability'",
-
-  Law = SIMP ( statut = "o", typ = "TXM",
-                into = ( #"Exponential",
-                         #"Histogram",
-                         #"Normal",
-                         #"Rayleigh",
-                         #"PDF_from_file",
-                         #"TruncatedNormal",
-                         "TimeSeries_from_file",
-                         #"Uniform",
-                         "UserDefined",
-                         #"Weibull",
-                         ),
-                fr = "Choix du type de la loi marginale",
-                ang = "1D marginal distribution",
-                defaut = "UserDefined",
-                ),
-
-
-#====
-# Definition des parametres selon le type de la loi
-#====
-
-  TimeSeries = BLOC ( condition = " Law in ( 'TimeSeries_from_file', ) ",
-
-  FileName = SIMP ( statut = "o",
-                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
-                    fr = "Fichier CSV d'une serie temporelle",
-                    ang = "CSV file of a time series",
-                    ),
-              ),
-
-
-
-   USERDEFINED = BLOC ( condition = " Law in ( 'UserDefined', ) ",
-
-                       # Il faut definir une collection de couples ( x,p )
-                       Values = SIMP ( statut = 'o',
-                                       typ = Tuple(2),
-                                       max = '**',
-                                       fr = "Liste de couples : (valeur, probabilite)",
-                                       ang = "List of pairs : (value, probability)",
-                                       validators=VerifTypeTuple(('R','R')),
-                                       defaut=((0,0.0),(1,1.0)),
-                                       ),
-
-  ), # Fin BLOC USERDEFINED
-
-
-  ), #fin du block Load Avail
-
-
-  ), #fin du bloc charge
-
-
-
-#Bloc Moteur
-  b_moteur = BLOC (condition = "ComponentType == 'Motor'",
-
-
-#====
-# Type de distribution
-#====
-
-  Type = SIMP (statut= "o", typ = "TXM",
-               into = ("Motor Level", "Motor Availability"),
-               fr = "Choisir si c'est le niveau de charge du moteur ou la disponibilit� du moteur qui sera tiree",
-               ang= "Choose whether the power level or the availability of the motor will be set by the law",
-               defaut = "Motor Level",
-               ),
-
-  Sampling = SIMP (statut= "o", typ = "TXM",
-               into = ("Same sample for all motors", "One sample per motor"),
-               fr = "Choisir si une seule tirage sera fait pour tous les moteurs ou si des tirages differents seront faits pour chaque moteur",
-               ang= "Choose whether one drawing/sample will be performed for all of the motors or whether a different drawing/sample will be performed for each motor.",
-               defaut = "Same sample for all motors",
-               ),
-
-  Motor       = SIMP(statut='o',typ=sd_moteur,max="**", homo="SansOrdreNiDoublon",),
-
-
-  b_moteur_level = BLOC (condition = "Type == 'Motor Level'",
-
-  Law = SIMP ( statut = "o", typ = "TXM",
-                into = ( "Exponential",
-                         "Histogram",
-                         "Normal",
-                         #"Rayleigh",
-                         "PDF_from_file",
-                         "TruncatedNormal",
-                         "TimeSeries_from_file",
-                         "Uniform",
-                         "UserDefined",
-                         "Weibull",
-                         ),
-                fr = "Choix du type de la loi marginale",
-                ang = "1D marginal distribution",
-                ),
-
-
-#====
-# Definition des parametres selon le type de la loi
-#====
-
-
-  EXPONENTIAL = BLOC ( condition = " Law in ( 'Exponential', ) ",
-
-                         Lambda = SIMP ( statut = "o",
-                                         typ = "R",
-                                         max = 1,
-                                         val_min = 0.,
-                                         fr = "Parametre Lambda | Lambda > 0",
-                                         ang = "Lambda parameter | Lambda > 0",
-                                         ),
-
-                         Gamma = SIMP ( statut = "o",
-                                        typ = "R",
-                                        max = 1,
-                                        fr = "Borne inferieure du support de la loi",
-                                        ang = "Support lower bound",
-                                        ),
-
-  ), # Fin BLOC EXPONENTIAL
-
-
-  HISTOGRAM = BLOC ( condition = " Law in ( 'Histogram', ) ",
-
-                       First = SIMP ( statut = "o",
-                                    typ = "R",
-                                    max = 1,
-                                    fr = "Borne inferieure du supoport de la loi",
-                                    ang = "Support lower bound",
-                                    ),
-
-                       # Il faut definir une collection de couples ( x,p )
-                       Values = SIMP ( statut = 'o',
-                                       typ = Tuple(2),
-                                       max = '**',
-                                       fr = "Liste de couples : largeur de classe, hauteur de classe",
-                                       ang = "Class bandwidth, class height couple list",
-                                       validators=VerifTypeTuple(('R','R')),
-                                       ),
-
-  ), # Fin BLOC HISTOGRAM
-
-
-   NORMAL = BLOC ( condition = " Law in ( 'Normal', ) ",
-
-                    Mu = SIMP ( statut = "o",
-                                typ = "R",
-                                max = 1,
-                                fr = "Moyenne de la loi",
-                                ang = "Mean value",
-                                ),
-
-                   Sigma = SIMP ( statut = "o",
-                                  typ = "R",
-                                  max = 1,
-                                  val_min = 0.,
-                                  fr = "Ecart type de la loi",
-                                  ang = "Standard deviation",
-                                  ),
-
-   ), # Fin BLOC NORMAL
-
-
-  RAYLEIGH = BLOC ( condition = " Law in ( 'Rayleigh', ) ",
-
-                   Sigma = SIMP ( statut = "o",
-                                  typ = "R",
-                                  max = 1,
-                                  fr = "Parametre Sigma de la loi | Sigma > 0",
-                                  ang = "Sigma parameter | Sigma > 0",
-                                  ),
-
-                   Gamma = SIMP ( statut = "o",
-                                  typ = "R",
-                                  max = 1,
-                                  fr = "Borne inferieure du support de la loi",
-                                  ang = "Support lower bound",
-                                  ),
- ), # Fin BLOC RAYLEIGH
-
-  PDF = BLOC ( condition = " Law in ( 'PDF_from_file', ) ",
-
-  FileName = SIMP ( statut = "o",
-                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
-                    fr = "Nom du fichier .csv",
-                    ang = ".csv file name",
-                    ),
-              ),
-
-
-
-   TRUNCATEDNORMAL = BLOC ( condition = " Law in ( 'TruncatedNormal', ) ",
-
-                             MuN = SIMP ( statut = "o",
-                                          typ = "R",
-                                          max = 1,
-                                          fr = "Moyenne de la loi Normale non tronqu�e",
-                                          ang = "Mean value of the associated non truncated normal distribution",
-                                          ),
-
-                             SigmaN = SIMP ( statut = "o",
-                                             typ = "R",
-                                             max = 1,
-                                             val_min = 0.,
-                                             fr = "Ecart-type de la loi Normale non tronqu�e",
-                                             ang = "Standard deviation of the associated non truncated normal distribution",
-                                             ),
-
-                             A = SIMP ( statut = "o",
-                                        typ = "R",
-                                        max = 1,
-                                        fr = "Borne inferieure de la loi | A < B",
-                                        ang = "Lower bound | A < B",
-                                        ),
-
-                             B = SIMP ( statut = "o",
-                                        typ = "R",
-                                        max = 1,
-                                        fr = "Borne superieure de la loi | A < B",
-                                        ang = "Upper bound | A < B",
-                                        ),
-
-   ), # Fin BLOC TRUNCATEDNORMAL
-
-
-  TimeSeries = BLOC ( condition = " Law in ( 'TimeSeries_from_file', ) ",
-
-  FileName = SIMP ( statut = "o",
-                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
-                    fr = "Fichier CSV d'une serie temporelle",
-                    ang = "CSV file of a time series",
-                    ),
-              ),
-
-
-   UNIFORM = BLOC ( condition = " Law in ( 'Uniform', ) ",
-
-                     A = SIMP ( statut = "o",
-                                typ = "R",
-                                max = 1,
-                                fr = "Borne inferieure du support de la loi | A < B",
-                                ang = "Support lower bound | A < B",
-                                ),
-
-                     B = SIMP ( statut = "o",
-                                typ = "R",
-                                max = 1,
-                                fr = "Borne superieure du support de la loi | A < B",
-                                ang = "Support upper bound | A < B",
-                                ),
-
-   ), # Fin BLOC UNIFORM
-
-
-   USERDEFINED = BLOC ( condition = " Law in ( 'UserDefined', ) ",
-
-                       # Il faut definir une collection de couples ( x,p )
-                       Values = SIMP ( statut = 'o',
-                                       typ = Tuple(2),
-                                       max = '**',
-                                       fr = "Liste de couples : (valeur, probabilite)",
-                                       ang = "List of pairs : (value, probability)",
-                                       validators=VerifTypeTuple(('R','R')),
-                                       ),
-
-  ), # Fin BLOC USERDEFINED
-
-
-   WEIBULL = BLOC ( condition = " Law in ( 'Weibull', ) ",
-
-                     Settings = SIMP ( statut = "o",
-                                          typ = "TXM",
-                                          max = 1,
-                                          into = ( "AlphaBeta", "MuSigma" ),
-                                          defaut = "AlphaBeta",
-                                          fr = "Parametrage de la loi weibull",
-                                          ang = "Weibull distribution parameter set",
-                                          ),
-
-                     AlphaBeta_Parameters = BLOC ( condition = " Settings in ( 'AlphaBeta', ) ",
-
-                                         Alpha = SIMP ( statut = "o",
-                                                        typ = "R",
-                                                        max = 1,
-                                                        val_min = 0.,
-                                                        fr = "Parametre Alpha de la loi | Alpha > 0",
-                                                        ang = "Alpha parameter | Alpha > 0",
-                                                        ),
-
-                                         Beta = SIMP ( statut = "o",
-                                                       typ = "R",
-                                                       max = 1,
-                                                       val_min = 0.,
-                                                       fr = "Parametre Beta de la loi | Beta > 0",
-                                                       ang = "Beta parameter | Beta > 0",
-                                                       ),
-
-                                         ), # Fin BLOC AlphaBeta_Parameters
-
-
-                     MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
-
-                                         Mu = SIMP ( statut = "o",
-                                                     typ = "R",
-                                                     max = 1,
-                                                     fr = "Moyenne de la loi",
-                                                     ang = "Mean value",
-                                                     ),
-
-                                         Sigma = SIMP ( statut = "o",
-                                                        typ = "R",
-                                                        max = 1,
-                                                        val_min = 0.,
-                                                        fr = "Ecart type de la loi",
-                                                        ang = "Standard deviation",
-                                                        ),
-
-                                         ), # Fin BLOC MuSigma_Parameters
-
-                     Gamma = SIMP ( statut = "o",
-                                    typ = "R",
-                                    max = 1,
-                                    fr = "Borne inferieure du support de la loi",
-                                    ang = "Support lower bound",
-                                    ),
-
-    ), # Fin BLOC WEIBULL
-
-  ), #fin du block Load Level
-
-
-  b_moteur_avail = BLOC (condition = "Type == 'Motor Availability'",
-
-  Law = SIMP ( statut = "o", typ = "TXM",
-                into = ( #"Exponential",
-                         #"Histogram",
-                         #"Normal",
-                         #"Rayleigh",
-                         #"PDF_from_file",
-                         #"TruncatedNormal",
-                         "TimeSeries_from_file",
-                         #"Uniform",
-                         "UserDefined",
-                         #"Weibull",
-                         ),
-                fr = "Choix du type de la loi marginale",
-                ang = "1D marginal distribution",
-                defaut = "UserDefined",
-                ),
-
-
-#====
-# Definition des parametres selon le type de la loi
-#====
-
-  TimeSeries = BLOC ( condition = " Law in ( 'TimeSeries_from_file', ) ",
-
-  FileName = SIMP ( statut = "o",
-                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
-                    fr = "Fichier CSV d'une serie temporelle",
-                    ang = "CSV file of a time series",
-                    ),
-              ),
-
-
-
-   USERDEFINED = BLOC ( condition = " Law in ( 'UserDefined', ) ",
-
-                       # Il faut definir une collection de couples ( x,p )
-                       Values = SIMP ( statut = 'o',
-                                       typ = Tuple(2),
-                                       max = '**',
-                                       fr = "Liste de couples : (valeur, probabilite)",
-                                       ang = "List of pairs : (value, probability)",
-                                       validators=VerifTypeTuple(('R','R')),
-                                       defaut=((0,0.0),(1,1.0)),
-                                       ),
-
-  ), # Fin BLOC USERDEFINED
-
-
-  ), #fin du block Load Avail
-
-
-  ), #fin du bloc moteur
-
-
-  b_ligne = BLOC (condition = "ComponentType == 'Line'",
-
-
-#====
-# Type de distribution
-#====
-
-  Type = SIMP (statut= "o", typ = "TXM",
-               into = ("Line Availability",),
-               fr = "La disponibilite de la ligne sera tiree",
-               ang= "Line availability will be set by the law",
-               defaut = "Line Availability",
-               ),
-
-  Sampling = SIMP (statut= "o", typ = "TXM",
-               into = ("Same sample for all lines", "One sample per line"),
-               fr = "Choisir si une seule tirage sera fait pour tous les lignes ou si des tirages differents seront faits pour chaque ligne",
-               ang= "Choose whether one drawing/sample will be performed for all of the lines or whether a different drawing/sample will be performed for each line.",
-               defaut = "Same sample for all lines",
-               ),
-
-  Line   = SIMP(statut='o',typ=sd_ligne,max="**", homo="SansOrdreNiDoublon"),
-
-  Law = SIMP ( statut = "o", typ = "TXM",
-                into = ( #"Exponential",
-                         #"Histogram",
-                         #"Normal",
-                         #"Rayleigh",
-                         #"PDF_from_file",
-                         #"TruncatedNormal",
-                         "TimeSeries_from_file",
-                         #"Uniform",
-                         "UserDefined",
-                         #"Weibull",
-                         ),
-                defaut = "UserDefined",
-                fr = "Choix du type de la loi marginale",
-                ang = "1D marginal distribution",
-                ),
-
-
-#====
-# Definition des parametres selon le type de la loi
-#====
-
-
-  EXPONENTIAL = BLOC ( condition = " Law in ( 'Exponential', ) ",
-
-                         Lambda = SIMP ( statut = "o",
-                                         typ = "R",
-                                         max = 1,
-                                         val_min = 0.,
-                                         fr = "Parametre Lambda | Lambda > 0",
-                                         ang = "Lambda parameter | Lambda > 0",
-                                         ),
-
-                         Gamma = SIMP ( statut = "o",
-                                        typ = "R",
-                                        max = 1,
-                                        fr = "Borne inferieure du support de la loi",
-                                        ang = "Support lower bound",
-                                        ),
-
-  ), # Fin BLOC EXPONENTIAL
-
-
-  HISTOGRAM = BLOC ( condition = " Law in ( 'Histogram', ) ",
-
-                       First = SIMP ( statut = "o",
-                                    typ = "R",
-                                    max = 1,
-                                    fr = "Borne inferieure du supoport de la loi",
-                                    ang = "Support lower bound",
-                                    ),
-
-                       # Il faut definir une collection de couples ( x,p )
-                       Values = SIMP ( statut = 'o',
-                                       typ = Tuple(2),
-                                       max = '**',
-                                       fr = "Liste de couples : largeur de classe, hauteur de classe",
-                                       ang = "Class bandwidth, class height couple list",
-                                       validators=VerifTypeTuple(('R','R')),
-                                       ),
-
-  ), # Fin BLOC HISTOGRAM
-
-
-   NORMAL = BLOC ( condition = " Law in ( 'Normal', ) ",
-
-                    Mu = SIMP ( statut = "o",
-                                typ = "R",
-                                max = 1,
-                                fr = "Moyenne de la loi",
-                                ang = "Mean value",
-                                ),
-
-                   Sigma = SIMP ( statut = "o",
-                                  typ = "R",
-                                  max = 1,
-                                  val_min = 0.,
-                                  fr = "Ecart type de la loi",
-                                  ang = "Standard deviation",
-                                  ),
-
-   ), # Fin BLOC NORMAL
-
-
-  RAYLEIGH = BLOC ( condition = " Law in ( 'Rayleigh', ) ",
-
-                   Sigma = SIMP ( statut = "o",
-                                  typ = "R",
-                                  max = 1,
-                                  fr = "Parametre Sigma de la loi | Sigma > 0",
-                                  ang = "Sigma parameter | Sigma > 0",
-                                  ),
-
-                   Gamma = SIMP ( statut = "o",
-                                  typ = "R",
-                                  max = 1,
-                                  fr = "Borne inferieure du support de la loi",
-                                  ang = "Support lower bound",
-                                  ),
- ), # Fin BLOC RAYLEIGH
-
-  PDF = BLOC ( condition = " Law in ( 'PDF_from_file', ) ",
-
-  FileName = SIMP ( statut = "o",
-                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
-                    fr = "Nom du fichier .csv",
-                    ang = ".csv file name",
-                    ),
-              ),
-
-
-
-   TRUNCATEDNORMAL = BLOC ( condition = " Law in ( 'TruncatedNormal', ) ",
-
-                             MuN = SIMP ( statut = "o",
-                                          typ = "R",
-                                          max = 1,
-                                          fr = "Moyenne de la loi Normale non tronqu�e",
-                                          ang = "Mean value of the associated non truncated normal distribution",
-                                          ),
-
-                             SigmaN = SIMP ( statut = "o",
-                                             typ = "R",
-                                             max = 1,
-                                             val_min = 0.,
-                                             fr = "Ecart-type de la loi Normale non tronqu�e",
-                                             ang = "Standard deviation of the associated non truncated normal distribution",
-                                             ),
-
-                             A = SIMP ( statut = "o",
-                                        typ = "R",
-                                        max = 1,
-                                        fr = "Borne inferieure de la loi | A < B",
-                                        ang = "Lower bound | A < B",
-                                        ),
-
-                             B = SIMP ( statut = "o",
-                                        typ = "R",
-                                        max = 1,
-                                        fr = "Borne superieure de la loi | A < B",
-                                        ang = "Upper bound | A < B",
-                                        ),
-
-   ), # Fin BLOC TRUNCATEDNORMAL
-
-
-  TimeSeries = BLOC ( condition = " Law in ( 'TimeSeries_from_file', ) ",
-
-  FileName = SIMP ( statut = "o",
-                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
-                    fr = "Fichier CSV d'une serie temporelle",
-                    ang = "CSV file of a time series",
-                    ),
-              ),
-
-
-   UNIFORM = BLOC ( condition = " Law in ( 'Uniform', ) ",
-
-                     A = SIMP ( statut = "o",
-                                typ = "R",
-                                max = 1,
-                                fr = "Borne inferieure du support de la loi | A < B",
-                                ang = "Support lower bound | A < B",
-                                ),
-
-                     B = SIMP ( statut = "o",
-                                typ = "R",
-                                max = 1,
-                                fr = "Borne superieure du support de la loi | A < B",
-                                ang = "Support upper bound | A < B",
-                                ),
-
-   ), # Fin BLOC UNIFORM
-
-
-   USERDEFINED = BLOC ( condition = " Law in ( 'UserDefined', ) ",
-
-                       # Il faut definir une collection de couples ( x,p )
-                       Values = SIMP ( statut = 'o',
-                                       typ = Tuple(2),
-                                       max = '**',
-                                       fr = "Liste de couples : (valeur, probabilite)",
-                                       ang = "List of pairs : (value, probability)",
-                                       validators=VerifTypeTuple(('R','R')),
-                                       defaut=((0,0.0),(1,1.0)),
-                                       ),
-
-  ), # Fin BLOC USERDEFINED
-
-
-   WEIBULL = BLOC ( condition = " Law in ( 'Weibull', ) ",
-
-                     Settings = SIMP ( statut = "o",
-                                          typ = "TXM",
-                                          max = 1,
-                                          into = ( "AlphaBeta", "MuSigma" ),
-                                          defaut = "AlphaBeta",
-                                          fr = "Parametrage de la loi weibull",
-                                          ang = "Weibull distribution parameter set",
-                                          ),
-
-                     AlphaBeta_Parameters = BLOC ( condition = " Settings in ( 'AlphaBeta', ) ",
-
-                                         Alpha = SIMP ( statut = "o",
-                                                        typ = "R",
-                                                        max = 1,
-                                                        val_min = 0.,
-                                                        fr = "Parametre Alpha de la loi | Alpha > 0",
-                                                        ang = "Alpha parameter | Alpha > 0",
-                                                        ),
-
-                                         Beta = SIMP ( statut = "o",
-                                                       typ = "R",
-                                                       max = 1,
-                                                       val_min = 0.,
-                                                       fr = "Parametre Beta de la loi | Beta > 0",
-                                                       ang = "Beta parameter | Beta > 0",
-                                                       ),
-
-                                         ), # Fin BLOC AlphaBeta_Parameters
-
-
-                     MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
-
-                                         Mu = SIMP ( statut = "o",
-                                                     typ = "R",
-                                                     max = 1,
-                                                     fr = "Moyenne de la loi",
-                                                     ang = "Mean value",
-                                                     ),
-
-                                         Sigma = SIMP ( statut = "o",
-                                                        typ = "R",
-                                                        max = 1,
-                                                        val_min = 0.,
-                                                        fr = "Ecart type de la loi",
-                                                        ang = "Standard deviation",
-                                                        ),
-
-                                         ), # Fin BLOC MuSigma_Parameters
-
-                     Gamma = SIMP ( statut = "o",
-                                    typ = "R",
-                                    max = 1,
-                                    fr = "Borne inferieure du support de la loi",
-                                    ang = "Support lower bound",
-                                    ),
-
-    ), # Fin BLOC WEIBULL
-
-  ), #fin du bloc ligne
-
-  b_transfo = BLOC (condition = "ComponentType == 'Transformer'",
-
-
-#====
-# Type de distribution
-#====
-
-  Type = SIMP (statut= "o", typ = "TXM",
-               into = ("Transformer Availability",),
-               fr = "La disponibilite du transformateur sera tiree",
-               ang= "Transformer availability will be set by the law",
-               defaut = "Transformer Availability"
-               ),
-
-  Sampling = SIMP (statut= "o", typ = "TXM",
-               into = ("Same sample for all transformers", "One sample per transformer"),
-               fr = "Choisir si une seule tirage sera fait pour tous les transforamteurs ou si des tirages differents seront faits pour chaque transformateur",
-               ang= "Choose whether one drawing/sample will be performed for all of the tranformers or whether a different drawing/sample will be performed for each transformer.",
-               defaut = "Same sample for all transformers",
-               ),
-
-  Transformer = SIMP(statut='o',typ=sd_transfo,max="**", homo="SansOrdreNiDoublon"),
-
-  Law = SIMP ( statut = "o", typ = "TXM",
-                into = ( #"Beta",
-                         #"Exponential",
-                         #"Gamma",
-                         #"Geometric",
-                         #"Gumbel",
-                         #"Histogram",
-                         #"Laplace",
-                         #"Logistic",
-                         #"LogNormal",
-                         #"MultiNomial",
-                         #"NonCentralStudent",
-                         #"Normal",
-                         #"Poisson",
-                         #"Rayleigh",
-                         #"Student",
-                         #"PDF_from_file",
-                         #"Triangular",
-                         #"TruncatedNormal",
-                         "TimeSeries_from_file",
-                         #"Uniform",
-                         "UserDefined",
-                         #"Weibull",
-                         ),
-                defaut="UserDefined",
-                fr = "Choix du type de la loi marginale",
-                ang = "1D marginal distribution",
-                ),
-
-
-#====
-# Definition des parametres selon le type de la loi
-#====
-
-##  NONPARAM = BLOC ( condition = " Law in ( 'NonParametrique', ) ",
-##
-##  FileName = SIMP ( statut = "o",
-##                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
-##                    fr = "Nom du modele physique",
-##                    ang = "Physical model identifier",
-##                    ),
-##              ),
-
-#  BETA = BLOC ( condition = " Law in ( 'Beta', ) ",
-#
-#                  Settings = SIMP ( statut = "o",
-#                                       typ = "TXM",
-#                                       max = 1,
-#                                       into = ( "RT", "MuSigma" ),
-#                                       defaut = "RT",
-#                                       fr = "Parametrage de la loi beta",
-#                                       ang = "Beta distribution parameter set",
-#                                       ),
-#
-#                  RT_Parameters = BLOC ( condition = " Settings in ( 'RT', ) ",
-#
-#                                      R = SIMP ( statut = "o",
-#                                                 typ = "R",
-#                                                 max = 1,
-#                                                 val_min = 0.,
-#                                                 fr = "Parametre R de la loi | R > 0",
-#                                                 ang = "R parameter | R > 0",
-#                                                 ),
-#
-#                                      # T > R
-#                                      T = SIMP ( statut = "o",
-#                                                 typ = "R",
-#                                                 max = 1,
-#                                                 val_min = 0.,
-#                                                 fr = "Parametre T de la loi | T > R",
-#                                                 ang = "T parameter | T > R",
-#                                                 ),
-#
-#                                      ), # Fin BLOC RT_Parameters
-#
-#
-#                  MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
-#
-#                                      Mu = SIMP ( statut = "o",
-#                                                  typ = "R",
-#                                                  max = 1,
-#                                                  fr = "Moyenne de la loi",
-#                                                  ang = "Mean value",
-#                                                  ),
-#
-#                                      Sigma = SIMP ( statut = "o",
-#                                                     typ = "R",
-#                                                     max = 1,
-#                                                     val_min = 0.,
-#                                                     fr = "Ecart type de la loi",
-#                                                     ang = "Standard deviation",
-#                                                     ),
-#
-#                                      ), # Fin BLOC MuSigma_Parameters
-#
-#
-#                  A = SIMP ( statut = "o",
-#                             typ = "R",
-#                             max = 1,
-#                             fr = "Borne inferieure du support de la loi",
-#                             ang = "Support lower bound",
-#                             ),
-#
-#                  # B > A
-#                  B = SIMP ( statut = "o",
-#                             typ = "R",
-#                             max = 1,
-#                             fr = "Borne superieure du support de la loi",
-#                             ang = "Support upper bound",
-#                             ),
-#
-#  ), # Fin BLOC BETA
-
-
-
-  EXPONENTIAL = BLOC ( condition = " Law in ( 'Exponential', ) ",
-
-                         Lambda = SIMP ( statut = "o",
-                                         typ = "R",
-                                         max = 1,
-                                         val_min = 0.,
-                                         fr = "Parametre Lambda | Lambda > 0",
-                                         ang = "Lambda parameter | Lambda > 0",
-                                         ),
-
-                         Gamma = SIMP ( statut = "o",
-                                        typ = "R",
-                                        max = 1,
-                                        fr = "Borne inferieure du support de la loi",
-                                        ang = "Support lower bound",
-                                        ),
-
-  ), # Fin BLOC EXPONENTIAL
-
-
-
-#  GAMMA = BLOC ( condition = " Law in ( 'Gamma', ) ",
-#
-#                   Settings = SIMP ( statut = "o",
-#                                        typ = "TXM",
-#                                        max = 1,
-#                                        into = ( "KLambda", "MuSigma" ),
-#                                        defaut = "KLambda",
-#                                        fr = "Parametrage de la loi gamma",
-#                                        ang = "Gamma distribution parameter set",
-#                                        ),
-#
-#                   KLambda_Parameters = BLOC ( condition = " Settings in ( 'KLambda', ) ",
-#
-#                                       K = SIMP ( statut = "o",
-#                                                  typ = "R",
-#                                                  max = 1,
-#                                                  val_min = 0.,
-#                                                  fr = "Parametre K de la loi | K > 0",
-#                                                  ang = "K parameter | K > 0",
-#                                                  ),
-#
-#                                       Lambda = SIMP ( statut = "o",
-#                                                       typ = "R",
-#                                                       max = 1,
-#                                                       val_min = 0.,
-#                                                       fr = "Parametre Lambda de la loi | Lambda > 0",
-#                                                       ang = "Lambda parameter | Lambda > 0",
-#                                                       ),
-#
-#                                       ), # Fin BLOC KLambda_Parameters
-#
-#
-#                   MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
-#
-#                                       Mu = SIMP ( statut = "o",
-#                                                   typ = "R",
-#                                                   max = 1,
-#                                                   fr = "Moyenne de la loi",
-#                                                   ang = "Mean value",
-#                                                   ),
-#
-#                                       Sigma = SIMP ( statut = "o",
-#                                                      typ = "R",
-#                                                      max = 1,
-#                                                      val_min = 0.,
-#                                                      fr = "Ecart type de la loi",
-#                                                      ang = "Standard deviation",
-#                                                      ),
-#
-#                                       ), # Fin BLOC MuSigma_Parameters
-#
-#                   Gamma = SIMP ( statut = "o",
-#                                  typ = "R",
-#                                  max = 1,
-#                                  fr = "Borne inferieure du supoport de la loi",
-#                                  ang = "Support lower bound",
-#                                  ),
-#
-#
-#  ), # Fin BLOC GAMMA
-
-
-#
-#  GEOMETRIC = BLOC ( condition = " Law in ( 'Geometric', ) ",
-#
-#                       P = SIMP ( statut = "o",
-#                                  typ = "R",
-#                                  max = 1,
-#                                  val_min = 0.,
-#                                  val_max = 1.,
-#                                  fr = "Parametre P | 0 < P < 1",
-#                                  ang = "P parameter | 0 < P < 1",
-#                                  ),
-#
-#  ), # Fin BLOC GEOMETRIC
-#
-#
-#
-#  GUMBEL = BLOC ( condition = " Law in ( 'Gumbel', ) ",
-#
-#                    Settings = SIMP ( statut = "o",
-#                                         typ = "TXM",
-#                                         max = 1,
-#                                         into = ( "AlphaBeta", "MuSigma" ),
-#                                         defaut = "AlphaBeta",
-#                                         fr = "Parametrage de la loi gumbel",
-#                                         ang = "Gumbel distribution parameter set",
-#                                         ),
-#
-#                    AlphaBeta_Parameters = BLOC ( condition = " Settings in ( 'AlphaBeta', ) ",
-#
-#                                        Alpha = SIMP ( statut = "o",
-#                                                       typ = "R",
-#                                                       max = 1,
-#                                                       val_min = 0.,
-#                                                       fr = "Parametre Alpha de la loi | Alpha > 0",
-#                                                       ang = "Alpha parameter | Alpha > 0",
-#                                                       ),
-#
-#                                        Beta = SIMP ( statut = "o",
-#                                                      typ = "R",
-#                                                      max = 1,
-#                                                      fr = "Parametre Beta de la loi",
-#                                                      ang = "Beta parameter",
-#                                                      ),
-#
-#                                        ), # Fin BLOC AlphaBeta_Parameters
-#
-#
-#                    MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
-#
-#                                        Mu = SIMP ( statut = "o",
-#                                                    typ = "R",
-#                                                    max = 1,
-#                                                    fr = "Moyenne de la loi",
-#                                                    ang = "Mean value",
-#                                                    ),
-#
-#                                        Sigma = SIMP ( statut = "o",
-#                                                       typ = "R",
-#                                                       max = 1,
-#                                                       val_min = 0.,
-#                                                       fr = "Ecart type de la loi",
-#                                                       ang = "Standard deviation",
-#                                                       ),
-#
-#                                        ), # Fin BLOC MuSigma_Parameters
-#
-#  ), # Fin BLOC GUMBEL
-
-
-
-  HISTOGRAM = BLOC ( condition = " Law in ( 'Histogram', ) ",
-
-                       First = SIMP ( statut = "o",
-                                    typ = "R",
-                                    max = 1,
-                                    fr = "Borne inferieure du supoport de la loi",
-                                    ang = "Support lower bound",
-                                    ),
-
-                       # Il faut definir une collection de couples ( x,p )
-                       Values = SIMP ( statut = 'o',
-                                       typ = Tuple(2),
-                                       max = '**',
-                                       fr = "Liste de couples : largeur de classe, hauteur de classe",
-                                       ang = "Class bandwidth, class height couple list",
-                                       validators=VerifTypeTuple(('R','R')),
-                                       ),
-
-  ), # Fin BLOC HISTOGRAM
-
-
-
-#  LAPLACE = BLOC ( condition = " Law in ( 'Laplace', ) ",
-#
-#                   Lambda = SIMP ( statut = "o",
-#                                   typ = "R",
-#                                   max = 1,
-#                                   val_min = 0.,
-#                                   fr = "Parametre Lambda | Lambda > 0",
-#                                   ang = "Lambda parameter | Lambda > 0",
-#                                   ),
-#
-#                   Mu = SIMP ( statut = "o",
-#                               typ = "R",
-#                               max = 1,
-#                               fr = "Moyenne de la loi",
-#                               ang = "Mean value",
-#                              ),
-#
-#  ), # Fin BLOC LAPLACE
-#
-#  LOGNORMAL = BLOC ( condition = " Law in ( 'LogNormal', ) ",
-#
-#                     Settings = SIMP ( statut = "o",
-#                                       typ = "TXM",
-#                                       max = 1,
-#                                       into = ( "MuSigmaLog", "MuSigma", "MuSigmaOverMu" ),
-#                                       defaut = "MuSigmaLog",
-#                                       fr = "Parametrage de la loi lognormale",
-#                                       ang = "Lognormal distribution parameter set",
-#                                       ),
-#
-#                     MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
-#
-#                                                 Mu = SIMP ( statut = "o",
-#                                                             typ = "R",
-#                                                             max = 1,
-#                                                             fr = "Moyenne de la loi",
-#                                                             ang = "Mean value",
-#                                                             ),
-#
-#                                                 Sigma = SIMP ( statut = "o",
-#                                                                typ = "R",
-#                                                                max = 1,
-#                                                                val_min = 0.,
-#                                                                fr = "Ecart type de la loi",
-#                                                                ang = "Standard deviation",
-#                                                                ),
-#
-#                                                 ), # Fin BLOC MuSigma_Parameters
-#
-#                     MuSigmaOverMu_Parameters = BLOC ( condition = " Settings in ( 'MuSigmaOverMu', ) ",
-#
-#                                                 Mu = SIMP ( statut = "o",
-#                                                             typ = "R",
-#                                                             max = 1,
-#                                                             fr = "Moyenne de la loi",
-#                                                             ang = "Mean value",
-#                                                             ),
-#
-#                                                 SigmaOverMu = SIMP ( statut = "o",
-#                                                                typ = "R",
-#                                                                max = 1,
-#                                                                val_min = 0.,
-#                                                                fr = "Rapport ecart type / moyenne de la loi",
-#                                                                ang = "Standard deviation / mean value ratio",
-#                                                                ),
-#
-#                                                 ), # Fin BLOC MuSigmaOverMu_Parameters
-#
-#                     MuSigmaLog_Parameters = BLOC ( condition = " Settings in ( 'MuSigmaLog', ) ",
-#
-#                                                    MuLog = SIMP ( statut = "o",
-#                                                                   typ = "R",
-#                                                                   max = 1,
-#                                                                   fr = "Moyenne du log",
-#                                                                   ang = "Log mean value",
-#                                                                   ),
-#
-#                                                    SigmaLog = SIMP ( statut = "o",
-#                                                                      typ = "R",
-#                                                                      max = 1,
-#                                                                      val_min = 0.,
-#                                                                      fr = "Ecart type du log",
-#                                                                      ang = "Log standard deviation",
-#                                                                      ),
-#
-#                                                    ), # Fin BLOC MuSigmaLog_Parameters
-#
-#                     Gamma = SIMP ( statut = "o",
-#                                    typ = "R",
-#                                    max = 1,
-#                                    fr = "Borne inferieure du support de la loi",
-#                                    ang = "Support lower bound",
-#                                    ),
-#
-#   ), # Fin BLOC LOGNORMAL
-#
-#
-#
-#   LOGISTIC = BLOC ( condition = " Law in ( 'Logistic', ) ",
-#
-#                       Alpha = SIMP ( statut = "o",
-#                                      typ = "R",
-#                                      max = 1,
-#                                      fr = "Borne inferieure du supoport de la loi",
-#                                      ang = "Support lower bound",
-#                                      ),
-#
-#                       Beta = SIMP ( statut = "o",
-#                                     typ = "R",
-#                                     max = 1,
-#                                     val_min = 0.,
-#                                     fr = "Parametre Beta de la loi | Beta > 0",
-#                                     ang = "Beta parameter | Beta > 0",
-#                                     ),
-#
-#   ), # Fin BLOC LOGISTIC
-#
-#
-#
-#   MULTINOMIAL = BLOC ( condition = " Law in ( 'MultiNomial', ) ",
-#
-#                         N = SIMP ( statut = "o",
-#                                    typ = "I",
-#                                    max = 1,
-#                                    fr = "Parametre N de la loi | N > 0",
-#                                    ang = "N parameter | N > 0",
-#                                    ),
-#
-#                       # Il faut definir une collection de couples ( x,p )
-#                       Values = SIMP ( statut = 'o',
-#                                       typ = "R",
-#                                       max = '**',
-#                                       fr = "Liste de probabilit�s",
-#                                       ang = "Probability list",
-#                                       validators=VerifTypeTuple(('R','R')),
-#                                       ),
-#
-#   ), # Fin BLOC MULTINOMIAL
-#
-#
-#  NONCENTRALSTUDENT = BLOC ( condition = " Law in ( 'NonCentralStudent', ) ",
-#
-#                   Nu = SIMP ( statut = "o",
-#                               typ = "R",
-#                               max = 1,
-#                               fr = "Parametre Nu de la loi | Nu > 0",
-#                               ang = "Nu parameter | Nu > 0",
-#                              ),
-#
-#                   Delta = SIMP ( statut = "o",
-#                                  typ = "R",
-#                                  max = 1,
-#                                  fr = "Parametre Delta de la loi | Delta > 0",
-#                                  ang = "Delta parameter | Delta > 0",
-#                                  ),
-#
-#                   Gamma = SIMP ( statut = "o",
-#                                  typ = "R",
-#                                  max = 1,
-#                                  fr = "Parametre Gamma de centrage de la loi",
-#                                  ang = "Gamma parameter",
-#                                  ),
-#
-#  ), # Fin BLOC NONCENTRALSTUDENT
-
-
-   NORMAL = BLOC ( condition = " Law in ( 'Normal', ) ",
-
-                    Mu = SIMP ( statut = "o",
-                                typ = "R",
-                                max = 1,
-                                fr = "Moyenne de la loi",
-                                ang = "Mean value",
-                                ),
-
-                   Sigma = SIMP ( statut = "o",
-                                  typ = "R",
-                                  max = 1,
-                                  val_min = 0.,
-                                  fr = "Ecart type de la loi",
-                                  ang = "Standard deviation",
-                                  ),
-
-   ), # Fin BLOC NORMAL
-
-
-#
-#   POISSON = BLOC ( condition = " Law in ( 'Poisson', ) ",
-#
-#                     Lambda = SIMP ( statut = "o",
-#                                     typ = "R",
-#                                     max = 1,
-#                                     val_min = 0.,
-#                                     fr = "Parametre Lambda de la loi | Lambda > 0",
-#                                     ang = "Lambda parameter | Lambda > 0",
-#                                     ),
-#
-#   ), # Fin BLOC POISSON
-#
-#
-#
-#  RAYLEIGH = BLOC ( condition = " Law in ( 'Rayleigh', ) ",
-#
-#                   Sigma = SIMP ( statut = "o",
-#                                  typ = "R",
-#                                  max = 1,
-#                                  fr = "Parametre Sigma de la loi | Sigma > 0",
-#                                  ang = "Sigma parameter | Sigma > 0",
-#                                  ),
-#
-#                   Gamma = SIMP ( statut = "o",
-#                                  typ = "R",
-#                                  max = 1,
-#                                  fr = "Borne inferieure du support de la loi",
-#                                  ang = "Support lower bound",
-#                                  ),
-# ), # Fin BLOC RAYLEIGH
-
-  PDF = BLOC ( condition = " Law in ( 'PDF_from_file', ) ",
-
-  FileName = SIMP ( statut = "o",
-                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
-                    fr = "Nom du fichier .csv",
-                    ang = ".csv file name",
-                    ),
-              ),
-
-#   STUDENT = BLOC ( condition = " Law in ( 'Student', ) ",
-#
-#                     Mu = SIMP ( statut = "o",
-#                                 typ = "R",
-#                                 max = 1,
-#                                 fr = "Parametre Mu de la loi",
-#                                 ang = "Mu parameter",
-#                                 ),
-#
-#                     Nu = SIMP ( statut = "o",
-#                                 typ = "R",
-#                                 max = 1,
-#                                 val_min = 2.,
-#                                 fr = "Parametre Nu de la loi | Nu > 2",
-#                                 ang = "Nu parameter | Nu > 2",
-#                                 ),
-#
-#                   Sigma = SIMP ( statut = "o",
-#                                  typ = "R",
-#                                  max = 1,
-#                                  fr = "Parametre Sigma de la loi",
-#                                  ang = "Sigma parameter",
-#                                  ),
-#
-#   ), # Fin BLOC STUDENT
-#
-#
-#
-#   TRIANGULAR = BLOC ( condition = " Law in ( 'Triangular', ) ",
-#
-#                         A = SIMP ( statut = "o",
-#                                    typ = "R",
-#                                    max = 1,
-#                                    fr = "Borne inferieure du support de la loi | A < M < B",
-#                                    ang = "Support lower bound | A < M < B",
-#                                    ),
-#
-#                         M = SIMP ( statut = "o",
-#                                    typ = "R",
-#                                    max = 1,
-#                                    fr = "Mode de la loi | A < M < B",
-#                                    ang = "Mode | A < M < B",
-#                                    ),
-#
-#                         B = SIMP ( statut = "o",
-#                                    typ = "R",
-#                                    max = 1,
-#                                    fr = "Borne superieure du support de la loi | A < M < B",
-#                                    ang = "Support upper bound | A < M < B",
-#                                    ),
-#
-#   ), # Fin BLOC TRIANGULAR
-#
-#
-
-   TRUNCATEDNORMAL = BLOC ( condition = " Law in ( 'TruncatedNormal', ) ",
-
-                             MuN = SIMP ( statut = "o",
-                                          typ = "R",
-                                          max = 1,
-                                          fr = "Moyenne de la loi Normale non tronqu�e",
-                                          ang = "Mean value of the associated non truncated normal distribution",
-                                          ),
-
-                             SigmaN = SIMP ( statut = "o",
-                                             typ = "R",
-                                             max = 1,
-                                             val_min = 0.,
-                                             fr = "Ecart-type de la loi Normale non tronqu�e",
-                                             ang = "Standard deviation of the associated non truncated normal distribution",
-                                             ),
-
-                             A = SIMP ( statut = "o",
-                                        typ = "R",
-                                        max = 1,
-                                        fr = "Borne inferieure de la loi | A < B",
-                                        ang = "Lower bound | A < B",
-                                        ),
-
-                             B = SIMP ( statut = "o",
-                                        typ = "R",
-                                        max = 1,
-                                        fr = "Borne superieure de la loi | A < B",
-                                        ang = "Upper bound | A < B",
-                                        ),
-
-   ), # Fin BLOC TRUNCATEDNORMAL
-
-
-  TimeSeries = BLOC ( condition = " Law in ( 'TimeSeries_from_file', ) ",
-
-  FileName = SIMP ( statut = "o",
-                    typ = ('Fichier', 'Wrapper Files (*.csv);;All Files (*)',),
-                    fr = "Fichier CSV d'une serie temporelle",
-                    ang = "CSV file of a time series",
-                    ),
-              ),
-
-
-   UNIFORM = BLOC ( condition = " Law in ( 'Uniform', ) ",
-
-                     A = SIMP ( statut = "o",
-                                typ = "R",
-                                max = 1,
-                                fr = "Borne inferieure du support de la loi | A < B",
-                                ang = "Support lower bound | A < B",
-                                ),
-
-                     B = SIMP ( statut = "o",
-                                typ = "R",
-                                max = 1,
-                                fr = "Borne superieure du support de la loi | A < B",
-                                ang = "Support upper bound | A < B",
-                                ),
-
-   ), # Fin BLOC UNIFORM
-
-
-   USERDEFINED = BLOC ( condition = " Law in ( 'UserDefined', ) ",
-
-                       # Il faut definir une collection de couples ( x,p )
-                       Values = SIMP ( statut = 'o',
-                                       typ = Tuple(2),
-                                       max = '**',
-                                       fr = "Liste de couples : (valeur, probabilite)",
-                                       ang = "List of pairs : (value, probability)",
-                                       validators=VerifTypeTuple(('R','R')),
-                                       defaut=((0,0.0),(1,1.0)),
-                                       ),
-
-  ), # Fin BLOC USERDEFINED
-
-
-   WEIBULL = BLOC ( condition = " Law in ( 'Weibull', ) ",
-
-                     Settings = SIMP ( statut = "o",
-                                          typ = "TXM",
-                                          max = 1,
-                                          into = ( "AlphaBeta", "MuSigma" ),
-                                          defaut = "AlphaBeta",
-                                          fr = "Parametrage de la loi weibull",
-                                          ang = "Weibull distribution parameter set",
-                                          ),
-
-                     AlphaBeta_Parameters = BLOC ( condition = " Settings in ( 'AlphaBeta', ) ",
-
-                                         Alpha = SIMP ( statut = "o",
-                                                        typ = "R",
-                                                        max = 1,
-                                                        val_min = 0.,
-                                                        fr = "Parametre Alpha de la loi | Alpha > 0",
-                                                        ang = "Alpha parameter | Alpha > 0",
-                                                        ),
-
-                                         Beta = SIMP ( statut = "o",
-                                                       typ = "R",
-                                                       max = 1,
-                                                       val_min = 0.,
-                                                       fr = "Parametre Beta de la loi | Beta > 0",
-                                                       ang = "Beta parameter | Beta > 0",
-                                                       ),
-
-                                         ), # Fin BLOC AlphaBeta_Parameters
-
-
-                     MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
-
-                                         Mu = SIMP ( statut = "o",
-                                                     typ = "R",
-                                                     max = 1,
-                                                     fr = "Moyenne de la loi",
-                                                     ang = "Mean value",
-                                                     ),
-
-                                         Sigma = SIMP ( statut = "o",
-                                                        typ = "R",
-                                                        max = 1,
-                                                        val_min = 0.,
-                                                        fr = "Ecart type de la loi",
-                                                        ang = "Standard deviation",
-                                                        ),
-
-                                         ), # Fin BLOC MuSigma_Parameters
-
-                     Gamma = SIMP ( statut = "o",
-                                    typ = "R",
-                                    max = 1,
-                                    fr = "Borne inferieure du support de la loi",
-                                    ang = "Support lower bound",
-                                    ),
-
-    ), # Fin BLOC WEIBULL
-
-
-
-  ), #fin du bloc transformer
-
-
-)
-
-Classement_Commandes_Ds_Arbre=('DIRECTORY', 'DISTRIBUTION', 'CORRELATION',)
-
-Ordre_Des_Commandes = ( 'DIRECTORY', 'PSSE_PARAMETERS', 'SIMULATION', 'DISTRIBUTION', 'CORRELATION',
-                        'N_1_GENERATORS', 'N_1_LINES', 'N_1_TRANSFORMERS', 'N_1_LOADS',)
diff --git a/PSEN_Eficas/configuration_PSEN.py b/PSEN_Eficas/configuration_PSEN.py
deleted file mode 100755 (executable)
index 4ab64b8..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-# -*- coding: utf-8 -*-\r
-#            CONFIGURATION MANAGEMENT OF EDF VERSION\r
-# ======================================================================\r
-# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG\r
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY\r
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY\r
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR\r
-# (AT YOUR OPTION) ANY LATER VERSION.\r
-#\r
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT\r
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF\r
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU\r
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.\r
-#\r
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE\r
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,\r
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.\r
-#\r
-#\r
-# ======================================================================\r
-"""\r
-    Ce module sert pour charger les paramètres de configuration d'EFICAS\r
-"""\r
-# Modules Python\r
-from InterfaceQT4 import configuration\r
-import os\r
-\r
-\r
-class CONFIG(configuration.CONFIG_BASE):\r
-\r
-  #-----------------------------------\r
-  def __init__(self,appli,repIni):\r
-  #-----------------------------------\r
-\r
-      self.labels_user=['catalogues','lang']\r
-      self.labels_eficas=['lang','rep_cata','catalogues']\r
-\r
-      configuration.CONFIG_BASE.__init__(self,appli,'.Eficas_monCode')\r
-\r
-\r
-def make_config(appli,rep):\r
-    return CONFIG(appli,rep)\r
-\r
diff --git a/PSEN_Eficas/mesScripts.py b/PSEN_Eficas/mesScripts.py
deleted file mode 100755 (executable)
index 15f80ed..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-def view_zone(listeparam) :
-    item=listeparam[0]
-    import visu_geom
-    visu_zone = visu_geom.VisuGeom(from_eficas=True,
-                          eficas_item=item,
-                          ligne_arbre=False)
-    visu_zone.visualize()
-
-def view_ligne_arbre(listeparam) :
-    item=listeparam[0]
-    import visu_geom
-    visu_arbre = visu_geom.VisuGeom(from_eficas=True,
-                           eficas_item=item,
-                           ligne_arbre=True)
-    visu_arbre.visualize()
-
-def import_zone(listeparam,appli) :
-    item=listeparam[0]
-    # simulation de la recuperation zone
-    #import eficasSalome
-    #eficasSalome.runEficas(code='MT',fichier='/home/I29518/test_zone.comm')
-    appli.viewmanager.handleOpen(fichier='/home/A96028/Install_EficasV1/EficasV1/MT/MT_include.comm')
-
-def import_zone2(listeparam,appli) :
-    editor=listeparam[0]
-    itemWidget=listeparam[1]
-    texte="sansnom=ZONE(NOEUDS=(_F(NOM='N1', X=0.0,), _F(NOM='N2', X=0.19,),), ELEMENTS=(_F(NOM='E1', DEBUT='N1', FIN='N2', RAFFINAGE='NON', MATERIAU=MAT_R01, SECTION_MASSE=_F(TYPE_SECTION='CONSTANTE', DIAM_EXTERN_DEBUT=0.1, DIAM_INTERN_DEBUT=0,), SECTION_RIGIDITE=_F(TYPE_SECTION='CONSTANTE', DIAM_EXTERN_DEBUT=0.1, DIAM_INTERN_DEBUT=0.0,),), _F(NOM='E2', DEBUT='N2', FIN='N3', RAFFINAGE='NON', MATERIAU=MAT_R01, SECTION_MASSE=_F(TYPE_SECTION='VARIABLE', DIAM_EXTERN_DEBUT=0.1, DIAM_INTERN_DEBUT=0, DIAM_EXTERN_SORTIE=0.2, DIAM_INTERN_SORTIE=0.0,), SECTION_RIGIDITE=_F(TYPE_SECTION='VARIABLE', DIAM_EXTERN_DEBUT=0.1, DIAM_INTERN_DEBUT=0.0, DIAM_EXTERN_SORTIE=0.2, DIAM_INTERN_SORTIE=0.0,),),),);"
-    editor.updateJdc(itemWidget,texte)
-
-def Source():
-    print "jjjjjjjjjjjjjjjjjjj"
-
-dict_commandes={
-       'GENDOF':(Source,"Source",(),False,True,"affiche un message"),
-               }
diff --git a/PSEN_Eficas/mesScripts_PSEN.py b/PSEN_Eficas/mesScripts_PSEN.py
deleted file mode 100644 (file)
index 3e79541..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-def exportToCsv(listeparam) :
-    texte=""
-    editor= listeparam[0]
-    item  = listeparam[1]
-    fn=None
-    try :
-      from PyQt4.QtGui import QFileDialog, QMessageBox
-      fichier = QFileDialog.getOpenFileName()
-      if fichier == None : return
-    except :
-      try :
-        from PyQt5.QtWidgets import QFileDialog, QMessageBox
-        fichier = QFileDialog.getOpenFileName()
-        if fichier[0] == None : return
-        fichier=fichier[0]
-      except:
-        pass
-
-    nouvelleVal=[]
-    prob=item.object.get_child('Probability')
-    valeur=prob.get_valeur()
-    texte=""
-    for v in valeur :
-        texte+=v[0].nom+";"+str(v[1]).replace('.',',')+"\n"
-
-    try :
-      fn=open(fichier,'wb')
-      fn.write(texte)
-      fn.close()
-    except Exception, why:
-      QMessageBox.critical(editor, ("Save file failed"),
-      ('unable to save ')+str(fn) + str(why))
-
-
-def importFromCsv(listeparam) :
-    texte=""
-    editor= listeparam[0]
-    item  = listeparam[1]
-    node  = listeparam[2]
-    fn=None
-    try :
-      from PyQt4.QtGui import QFileDialog
-      fichier = QFileDialog.getOpenFileName()
-      if fichier == None : return
-      fn=open(fichier)
-    except :
-      try :
-        from PyQt5.QtWidgets import QFileDialog
-        fichier = QFileDialog.getOpenFileName()
-        if fichier[0] == None : return
-        fn=open(fichier[0])
-      except:
-        pass
-    #fn=open('Classeur1.csv')
-    if not fn : return
-    nouvelleVal=[]
-    prob=item.object.get_child('Probability')
-    monType=prob.definition.validators.typeDesTuples[0]
-    listeObjet=item.object.etape.parent.get_sd_avant_du_bon_type(item.object.etape,(monType,))
-    for ligne in fn.readlines():
-      try :
-        nom,valeur = ligne.split(';')
-      except :
-        texte += "not able to process: "+ ligne
-        continue
-      if nom not in listeObjet :
-        texte += nom + " : ignored (not known in Eficas) \n "
-        continue
-      try :
-        concept=item.jdc.get_concept(nom)
-      except :
-        texte += nom + ": ignored (not known in Eficas) \n "
-        continue
-      try :
-        valNum=valeur.replace (',','.')
-        valeur=eval (valNum, {})
-      except :
-        texte += valeur + " : unable to eval \n "
-        continue
-      nouvelleVal.append((concept,valeur))
-      #  exec nom in self.jdc
-
-    if nouvelleVal != [] : prob.set_valeur(nouvelleVal)
-    if texte != "" :
-       try :
-         from  PyQt5.QtWidgets  import QMessageBox
-       except :
-         from  PyQt4.QtGui  import QMessageBox
-       QMessageBox.information( None,'unable to append values',texte,) 
-
-    node.affichePanneau()
-        
-    print "et ici"
-
-# le dictionnaire des commandes a la structure suivante :
-# la clef est la commande qui va proposer l action
-# puis un tuple qui contient
-#      - la fonction a appeler
-#       - le label dans le menu du clic droit
-#      - un tuple contenant les parametres attendus par la fonction
-#      - appelable depuis Salome uniquement -)
-#      - appelable depuis un item valide uniquement 
-#      - toolTip
-dict_commandes={
-   'N_1_GENERATORS':( 
-           (exportToCsv,"exportToCsv",('editor','item'),False,False,"export values to cvs File"),
-           (importFromCsv,"importFromCsv",('editor','item','self'),False,False,"import values from cvs File"),
-                    ),
-   'N_1_LINES':( 
-           (exportToCsv,"exportToCsv",('editor','item'),False,False,"export values to cvs File"),
-           (importFromCsv,"importFromCsv",('editor','item','self'),False,False,"import values from cvs File"),
-                    )
-               }
diff --git a/PSEN_Eficas/opsPSEN.py b/PSEN_Eficas/opsPSEN.py
deleted file mode 100755 (executable)
index 09c331f..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-# -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2013   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-
-#from ExtractGeneratorLoadLineandTransfoDico import ExtractGeneratorLoadLineandTransfoDico
-from ExtractGeneratorLoadLineandTransfoDico import ExtractGeneratorLoadLineandTransfoDico2
-
-def INCLUDE(self,PSSE_path,sav_file,**args):
-   """ 
-       Fonction sd_prod pour la macro INCLUDE
-   """
-   
-   if sav_file==None: return
-   reevalue=0
-   listeADeTruire=[]
-   listeNouveau=[]
-   toClean=False
-   if hasattr(self,'fichier_ini'):
-       reevalue=1
-       if self.fichier_ini == sav_file : return
-       self.fichier_ini=sav_file
-       if hasattr(self,'old_context_fichier_init' ):
-         toClean=True
-         for concept in self.old_context_fichier_init.values():
-             #self.jdc.delete_concept(concept)
-             listeADeTruire.append(concept)
-         self.jdc_aux=None
-         self.contexte_fichier_init={}
-         #self.reevalue_sd_jdc()
-         self.jdc.reset_context()
-
-   self.fichier_ini=sav_file
-   self.contexte_fichier_init = {}
-   self.fichier_unite = 999
-   self.fichier_err = None
-   self.fichier_text=""
-    
-   unite = 999
-
-   #try :
-   if 1:
-     MachineDico,LoadDico,LineDico,TransfoDico, MotorDico = ExtractGeneratorLoadLineandTransfoDico2(sav_file,PSSE_path)
-   else :
-   #except :
-     if self.jdc.appli is not None:
-        self.jdc.appli.affiche_alerte("Error", 'An error happened in ExtractGeneratorandLoadList execution ')
-        self.g_context = {}
-        self.etapes = []
-        self.jdc_aux = None
-        self.fichier_err = str(exc)
-        self.contexte_fichier_init = {}
-
-   
-   for nom in MachineDico.keys():
-      self.fichier_text += "%s=MONGENER(ID='%s',);\n" % (nom, 'a')
-      listeNouveau.append(nom)
-
-   for nom in LoadDico.keys():
-      self.fichier_text += "%s=MACHARGE(ID='%s',);\n" % (nom, 'a')
-      listeNouveau.append(nom)
-      
-   for nom in LineDico.keys():
-      self.fichier_text += "%s=MALIGNE(ID='%s',);\n" % (nom,'a')
-      listeNouveau.append(nom)
-
-   for nom in TransfoDico.keys():
-      self.fichier_text += "%s=MONTRANSFO(ID='%s',);\n" % (nom,'a')
-      listeNouveau.append(nom)
-
-   for nom in MotorDico.keys():
-      self.fichier_text += "%s=MONMOTEUR(ID='%s',);\n" % (nom,'a')
-      listeNouveau.append(nom)
-
-   import Extensions.jdc_include
-   self.JdC_aux = Extensions.jdc_include.JDC_CATA_INCLUDE(code='PSEN', execmodul=None)
-   self.make_contexte_include(None, self.fichier_text)
-   self.old_context_fichier_init = self.contexte_fichier_init
-   self.parent.record_unit(unite, self)
-
-   self.jdc.MachineDico=MachineDico
-   self.jdc.LoadDico=LoadDico
-   self.jdc.LineDico=LineDico
-   self.jdc.TransfoDico=TransfoDico
-   self.jdc.MotorDico = MotorDico
-
-   if toClean:
-    for concept in listeADeTruire :
-      if concept.nom not in listeNouveau: self.jdc.delete_concept(concept)
-    self.reevalue_sd_jdc()
-
-def INCLUDE_context(self,d):
-   """ 
-       Fonction op_init pour macro INCLUDE
-   """
-   for k,v in self.g_context.items():
-      d[k]=v
-
diff --git a/PSEN_Eficas/prefs.py b/PSEN_Eficas/prefs.py
deleted file mode 100755 (executable)
index c19b171..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright (C) 2007-2012   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-code="PSEN" 
-import sys, os
-if os.path.dirname(os.path.abspath(__file__)) not in sys.path :
-   sys.path.insert(0,os.path.dirname(os.path.abspath(__file__)))
diff --git a/PSEN_Eficas/prefs_PSEN.py b/PSEN_Eficas/prefs_PSEN.py
deleted file mode 100755 (executable)
index 4d2dcc2..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-# -*- coding: utf-8 -*-
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-#
-#
-# ======================================================================
-
-import os,sys
-# repIni sert a localiser le fichier editeur.ini
-# Obligatoire
-repIni=os.path.dirname(os.path.abspath(__file__))
-INSTALLDIR=os.path.join(repIni,'..')
-sys.path[:0]=[INSTALLDIR]
-
-
-# lang indique la langue utilisee pour les chaines d'aide : fr ou ang
-lang='ang' #'fr'
-
-# Codage des strings qui accepte les accents (en remplacement de 'ascii')
-encoding='iso-8859-1'
-docPath=repIni
-
-
-#
-catalogues=(
-   ('PSEN','default',os.path.join(repIni,'PSEN_Cata.py'),'PSEN','python'),
-)
diff --git a/PSEN_Eficas/properties.py b/PSEN_Eficas/properties.py
deleted file mode 100755 (executable)
index 1d328a4..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#@ MODIF properties Accas DATE 11/06/2008 AUTEUR aster M.ADMINISTRATEUR
-# RESPONSABLE D6BHHHH J-P.LEFEBVRE
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-#     IDENTIFICATION DU GESTIONNAIRE DE COMMANDE ACCAS A PARTIR
-#     DE LA VERSION DU CODE_ASTER ASSOCIE
-#----------------------------------------------------------------------
-version = "1.2"
-date = "25/05/2010"
-exploit = False
diff --git a/PSEN_Eficas/qtEficas_PSEN.py b/PSEN_Eficas/qtEficas_PSEN.py
deleted file mode 100755 (executable)
index 94598c5..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2012   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-"""
-   Ce module sert a lancer EFICAS configure pour Code_Aster
-"""
-# Modules Python
-# Modules Eficas
-
-import sys,os
-#sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..'))
-import prefs
-name='prefs_'+prefs.code
-__import__(name)
-
-
-from InterfaceQT4 import eficas_go
-eficas_go.lance_eficas(code=prefs.code)
diff --git a/ProcessOutputs_Eficas/EssaiMulti.py b/ProcessOutputs_Eficas/EssaiMulti.py
deleted file mode 100755 (executable)
index 87f9905..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-import os
-import sys
-from multiprocessing import Process
-from multiprocessing import Lock
-from multiprocessing import Pool
-
-def worker(num):
-    """thread worker function"""
-    print 'Worker:', num
-    return
-
-def test1():
-    for i in range(5):
-        p = Process(target=worker, args=(i,))
-        p.start()
-        p.join()
-
-def info(title):
-    print(title)
-    print('parent process:', os.getppid())
-    print('process id:', os.getpid())
-
-def f(name):
-    info('function f')
-    print('hello', name)
-
-def test2():
-    info('test2')
-    p = Process(target=f, args=('pascale',))
-    p.start()
-    p.join()
-
-def f(l, i):
-    l.acquire()
-    try:
-        print('hello world', i)
-    finally:
-        l.release()
-
-
-def test3(lock):
-    for num in range(10):
-        Process(target=f, args=(lock, num)).start()
-
-    # sorties evt desordonnees
-    for i in range(50):
-        p = Process(target=worker, args=(i,)).start()
-
-def g(x):
-    return x*x
-
-
-def test4():
-    import traceback
-    traceback.print_stack()
-    num_cores = 4
-    FolderPath='tmp'
-
-    monPool=Pool(maxtasksperchild=1) #create a multiprocessing.Pool object
-    for l in range(num_cores):
-        print(" lct on core "+str(l) )
-        p= monPool.apply_async(g,(l,))
-
-    res = monPool.apply_async(g, (20,))      # runs in *only* one process
-    print res.get(timeout=1)                 # prints "400"
-
-    # evaluate "os.getpid()" asynchronously
-    res = monPool.apply_async(os.getpid, ()) # runs in *only* one process
-    print res.get(timeout=1)              # prints the PID of that process
-
-    # launching multiple evaluations asynchronously *may* use more processes
-    multiple_results = [monPool.apply_async(os.getpid, ()) for i in range(4)]
-    print [res.get(timeout=1) for res in multiple_results]
-
-
-
-if __name__ == '__main__':
-   #test1()
-
-   #test2()
-   
-   #lock = Lock()
-   #test3(lock)
-   print ('je suis dans main du run')
-   test4()
-
diff --git a/ProcessOutputs_Eficas/ExtractGeneratorLoadLineandTransfoDico.py b/ProcessOutputs_Eficas/ExtractGeneratorLoadLineandTransfoDico.py
deleted file mode 100644 (file)
index d918810..0000000
+++ /dev/null
@@ -1,620 +0,0 @@
-import os\r
-import sys\r
-import numpy as np\r
-import copy\r
-\r
-#import Storage\r
-\r
-\r
-def getNominalkV(NetworkFile):\r
-    print "begin getNominalkV for ", NetworkFile\r
-\r
-    print "version en dur"\r
-    BusList=(1,2,3,4,6)\r
-    LinesList=(7,8,9,10)\r
-    TransfosList=('Transfos_A', 'Transfos_B', 'Transfos_C', 'Transfos_D')\r
-    return BusList, LinesList, TransfosList\r
-\r
-    import psspy\r
-    import redirect\r
-\r
-    psspy.psseinit(80000)\r
-    redirect.psse2py()\r
-    psspy.progress_output(6)\r
-\r
-    psspy.case(NetworkFile)\r
-    print "before buses"\r
-    # Buses\r
-\r
-    sid = -1\r
-    flag = 2\r
-    ierr, ret = psspy.abusreal(sid, flag, ['BASE'])\r
-    Storage.BusBase = ret[0]\r
-\r
-    ierr, carray = psspy.abuschar(sid, flag, ['NAME'])\r
-    Storage.BusBaseList = {}\r
-    for i in range(len(carray[0])):\r
-        Storage.BusBaseList[carray[0][i]] = ret[0][i]\r
-\r
-    BusList = []\r
-    for item in Storage.BusBase:\r
-        if item not in BusList:\r
-            BusList.append(item)\r
-    BusList = sorted(BusList)\r
-\r
-    print "after buses"\r
-\r
-    # Lines\r
-\r
-    owner = 1\r
-    ties = 1\r
-    flag = 2\r
-    entry = 1\r
-    string = ['FROMNAME', 'TONAME']\r
-    ierr, carray = psspy.abrnchar(sid, owner, ties, flag, entry, string)\r
-\r
-    for i in range(len(carray[0])):\r
-        nom = Storage.BusBaseList[carray[0][i]]\r
-        name = carray[0][i] + '-' + carray[1][i]\r
-        Storage.LinesBaseList[name] = nom\r
-        Storage.LinesBase.append(nom)\r
-\r
-    LinesList = []\r
-    for item in Storage.LinesBase:\r
-        if item not in LinesList:\r
-            LinesList.append(item)\r
-    LinesList = sorted(LinesList)\r
-\r
-    print "after lines"\r
-\r
-    # Transfos\r
-\r
-    owner = 1\r
-    ties = 1\r
-    flag = 6\r
-    entry = 1\r
-    string = ['FROMNAME', 'TONAME']\r
-    ierr, carray = psspy.abrnchar(sid, owner, ties, flag, entry, string)\r
-\r
-    for i in range(len(carray[0])):\r
-        nom1 = Storage.BusBaseList[carray[0][i]]\r
-        nom2 = Storage.BusBaseList[carray[1][i]]\r
-        name = carray[0][i] + '-' + carray[1][i]\r
-        Storage.TransfoBaseList[name] = [nom1, nom2]\r
-        Storage.TransfoBase.append([nom1, nom2])\r
-\r
-    TransfosList = []\r
-    for item in Storage.TransfoBase:\r
-        string = str(item[0]) + ' - ' + str(item[1])\r
-        if string not in TransfosList:\r
-            TransfosList.append(string)\r
-    TransfosList = sorted(TransfosList)\r
-\r
-    print "after transfos"\r
-\r
-    # Generators\r
-\r
-    sid = -1 #all buses\r
-    flag = 1 #all in service loads/generators (4 all loads/generators)\r
-\r
-    string = ['NUMBER']\r
-    ierr,iarray = psspy.amachint(sid,flag,string)\r
-\r
-    string = ['NAME','ID']\r
-    ierr,carray = psspy.amachchar(sid,flag,string)\r
-\r
-    for i in range(len(iarray[0])):\r
-        idname = "GR" + carray[1][i]\r
-        machinename = carray[0][i].strip()+ "__" + idname\r
-        machinename = machinename.replace(" ","_")\r
-        machinename = machinename.replace("-","_")\r
-        machinename = machinename.replace(".","_")\r
-        machinename = machinename.replace("&","and")\r
-        try:\r
-            int(machinename[0])\r
-            machinename = "_" + machinename\r
-        except:\r
-            pass\r
-        Storage.GenBaseList[machinename] = iarray[0][i]\r
-\r
-    return BusList, LinesList, TransfosList\r
-\r
-#PN --> inutiles\r
-#def getBusNominalkV(NetworkFile):\r
-#    import psspy\r
-#    import redirect\r
-#\r
-#    psspy.psseinit(80000)\r
-#    redirect.psse2py()\r
-#    psspy.progress_output(6)\r
-#\r
-#    psspy.case(NetworkFile)\r
-#\r
-#    sid = -1\r
-#    flag = 2\r
-#    ierr, ret = psspy.abusreal(sid, flag, ['BASE'])\r
-#    Storage.BusBase = ret[0]\r
-#\r
-#    ierr, carray = psspy.abuschar(sid, flag, ['NAME'])\r
-#    buses = {}\r
-#    for i in range(len(carray[0])):\r
-#        buses[carray[0][i]] = ret[0][i]\r
-#    Storage.BusNames = buses\r
-#    ret = []\r
-#    for item in Storage.BusBase:\r
-#        if item not in ret:\r
-#            ret.append(item)\r
-#    return sorted(ret)\r
-\r
-#def updateConts():\r
-#    Storage.ContFullList = []\r
-#    tmp = Storage.BusBaseList.keys()\r
-#    tmp.sort()\r
-#    for key in tmp:\r
-#        Storage.ContFullList.append(key)\r
-#    tmp = Storage.GenBaseList.keys()\r
-#    tmp.sort()\r
-#    for key in tmp:\r
-#        Storage.ContFullList.append(key)\r
-#    tmp = Storage.LinesBaseList.keys()\r
-#    tmp.sort()\r
-#    for key in tmp:\r
-#        Storage.ContFullList.append(key)\r
-#    tmp = Storage.TransfoBaseList.keys()\r
-#    tmp.sort()\r
-#    for key in tmp:\r
-#        Storage.ContFullList.append(key)\r
-#    print Storage.ContFullList\r
-#    return Storage.ContFullList\r
-#\r
-#def newContingency(MatList):\r
-#    Storage.CustomContingencies.append(MatList)\r
-#\r
-#def checkIfBorder(graph, key, depth, tmplist):\r
-#    if key in tmplist:\r
-#        return True\r
-#    if depth == 0:\r
-#        return False\r
-#    NonBorders = 0\r
-#    for item in graph[key]:\r
-#        if not checkIfBorder(graph, item, depth - 1, tmplist):\r
-#            NonBorders += 1\r
-#    if NonBorders < 2: # A generator is considered as isolated if it has less than two non-borders neighbours\r
-#        if key not in tmplist:\r
-#            tmplist.append(key)\r
-#        return True\r
-#    return False\r
-#\r
-#def getTrueLines(NetworkFile):\r
-#    import psspy\r
-#    import redirect\r
-#\r
-#    psspy.psseinit(80000)\r
-#    redirect.psse2py()\r
-#    psspy.progress_output(6)\r
-#\r
-#    psspy.case(NetworkFile)\r
-#\r
-#    sid = -1\r
-#    owner = 1\r
-#    ties = 1\r
-#    flag = 4 # 6 for two-winding transfos\r
-#    entry = 1 #each branch once, not both directions\r
-#    string = ['FROMNAME', 'TONAME', 'ID']\r
-#    ierr, iarray = psspy.abrnchar(sid, owner, ties, flag, entry, string)\r
-#    string = ['FROMNUMBER', 'TONUMBER']\r
-#    ierr, carray = psspy.abrnint(sid, owner, ties, flag, entry, string)\r
-#\r
-#    lst = []\r
-#    tmplist = []\r
-#    try:\r
-#        for i in range(len(carray[0])):\r
-#            if carray[0][i] not in lst and carray[0][i] not in tmplist:\r
-#                tmplist.append(carray[0][i])\r
-#            elif carray[0][i] not in lst and carray[0][i] in tmplist:\r
-#                tmplist.remove(carray[0][i])\r
-#                lst.append(carray[0][i])\r
-#            if carray[1][i] not in lst and carray[1][i] not in tmplist:\r
-#                tmplist.append(carray[1][i])\r
-#            elif carray[1][i] not in lst and carray[1][i] in tmplist:\r
-#                tmplist.remove(carray[1][i])\r
-#                lst.append(carray[1][i])\r
-#    except:\r
-#        pass\r
-#\r
-#    # Create the graph\r
-#    graph = {}\r
-#    for i in range(len(carray[0])):\r
-#        try:\r
-#            if graph[carray[0][i]]:\r
-#                pass\r
-#        except:\r
-#            graph[carray[0][i]] = []\r
-#        if carray[1][i] not in graph[carray[0][i]]:\r
-#            graph[carray[0][i]].append(carray[1][i])\r
-#        try:\r
-#            if graph[carray[1][i]]:\r
-#                pass\r
-#        except:\r
-#            graph[carray[1][i]] = []\r
-#        if carray[0][i] not in graph[carray[1][i]]:\r
-#            graph[carray[1][i]].append(carray[0][i])\r
-#\r
-#    # Search it twice, to ensure everything is mapped\r
-#    for key in sorted(graph.keys()):\r
-#        checkIfBorder(graph, key, Storage.RecursiveDepth, tmplist)\r
-#    for key in reversed(sorted(graph.keys())):\r
-#        checkIfBorder(graph, key, Storage.RecursiveDepth, tmplist)\r
-#\r
-#    Storage.IsolatedGenList = []\r
-#    # Unfold it\r
-#    for i in range(len(carray[0])):\r
-#        if carray[0][i] in tmplist:\r
-#            if iarray[0][i] not in Storage.IsolatedGenList:\r
-#                Storage.IsolatedGenList.append(iarray[0][i])\r
-#        if carray[1][i] in tmplist:\r
-#            if iarray[1][i] not in Storage.IsolatedGenList:\r
-#                Storage.IsolatedGenList.append(iarray[1][i])\r
-#\r
-#    lines = []\r
-#    outLines = []\r
-#    for i in range(len(iarray[0])):\r
-#        name = iarray[0][i] + '-' + iarray[1][i]\r
-#        if '@' in iarray[2][i] or '*' in iarray[2][i]:\r
-#            outLines.append(name)\r
-#        elif iarray[0][i] not in Storage.IsolatedGenList and iarray[1][i] not in Storage.IsolatedGenList:\r
-#            lines.append(name)\r
-#        else:\r
-#            outLines.append(name)\r
-#    Storage.TrueLines = lines\r
-#    return lines\r
-#\r
-#NoBreakersandSwitches = True\r
-#\r
-#def ExtractGeneratorLoadLineandTransfoDico(NetworkFile,PSSE_PATH):\r
-#    import os\r
-#    import sys\r
-#    import numpy as np\r
-#\r
-#    print NetworkFile\r
-#    print PSSE_PATH\r
-#    sys.path.append(PSSE_PATH)\r
-#    os.environ['PATH'] +=  ';' + PSSE_PATH + ';'\r
-#\r
-#    import psspy\r
-#    import redirect\r
-#\r
-#    ###initialization PSSE\r
-#    psspy.psseinit(10000)\r
-#    _i=psspy.getdefaultint()\r
-#    _f=psspy.getdefaultreal()\r
-#    _s=psspy.getdefaultchar()\r
-#    redirect.psse2py()\r
-#\r
-#    # Silent execution of PSSe\r
-#    islct=6 # 6=no output; 1=standard\r
-#    psspy.progress_output(islct)\r
-#\r
-#    #open Network File\r
-#    psspy.case(NetworkFile)\r
-#\r
-#    # Extract Buses\r
-#    sid = -1 # all buses\r
-#    flag = 2\r
-#    string = ['NUMBER']\r
-#    ierr, iarray = psspy.abusint(sid, flag, string)\r
-#\r
-#    string = ['NAME', 'EXNAME']\r
-#    ierr, carray = psspy.abuschar(sid, flag, string)\r
-#\r
-#    string = ['BASE']\r
-#    ierr, ret = psspy.abusreal(sid, flag, string)\r
-#\r
-#    BusDico = {}\r
-#    BusNominal = {}\r
-#    for i in range(len(iarray[0])):\r
-#        BusNum = iarray[0][i]\r
-#        BusDico[str(BusNum)] = carray[0][i].strip()\r
-#        BusNominal[BusDico[str(BusNum)]] = ret[0][i]    \r
-#\r
-#    #Extract Loads\r
-#    sid = -1 #all buses\r
-#    flag = 1 #all in service loads/generators (4 all loads/generators)\r
-#\r
-#\r
-#    string = ['NUMBER']\r
-#    ierr,iarray = psspy.aloadint(sid,flag,string)\r
-#\r
-#    string = ['NAME','ID','EXNAME']\r
-#    ierr,carray = psspy.aloadchar(sid,flag,string)\r
-#\r
-#    string = ['mvaact']\r
-#    ierr, xdata = psspy.aloadcplx(sid, flag, string)\r
-#\r
-#    LoadDico = {}  # [Bus name, load ID, extended bus name, bus number]\r
-#    for i in range(len(iarray[0])):\r
-#        idname = "Lo" + carray[1][i].strip()\r
-##        try: #id is an integer\r
-##            idname = "Lo" + str(int(carray[1][i]))\r
-##        except: #id is not an integer\r
-##            idname = "Lo" + carray[1][i]\r
-#        loadname = carray[0][i].strip()+ "__" + idname\r
-#        loadname = loadname.replace(" ","_")\r
-#        loadname = loadname.replace("-","_")\r
-#        loadname = loadname.replace(".","_")\r
-#        loadname = loadname.replace("&","and")\r
-#        try:\r
-#            int(loadname[0])\r
-#            loadname="_" + loadname\r
-#        except:\r
-#            pass\r
-#        LoadDico[loadname]= {}\r
-#        LoadDico[loadname]['NAME'] = carray[0][i].strip()\r
-#        LoadDico[loadname]['ID'] = carray[1][i]\r
-#        LoadDico[loadname]['EXNAME'] =carray[2][i]\r
-#        LoadDico[loadname]['NUMBER']=iarray[0][i]\r
-#        LoadDico[loadname]['P']=np.real(xdata)[0][i]\r
-#        LoadDico[loadname]['Q']=np.imag(xdata)[0][i]\r
-#\r
-#    #Extract Generators\r
-#    sid = -1 #all buses\r
-#    flag = 1 #all in service loads/generators (4 all loads/generators)\r
-#\r
-#    string = ['NUMBER']\r
-#    ierr,iarray = psspy.amachint(sid,flag,string)\r
-#\r
-#    string = ['NAME','ID','EXNAME']\r
-#    ierr,carray = psspy.amachchar(sid,flag,string)\r
-#\r
-#    rstrings = ['pgen','qgen','mbase','pmax','qmax','pmin','qmin']\r
-#    ierr, rarray = psspy.amachreal(sid, flag, rstrings)\r
-#\r
-#    MachineDico = {} # [Bus name, machine ID, extended bus name, bus number]\r
-#    for i in range(len(iarray[0])):\r
-#        idname = "Gr" + carray[1][i].strip()\r
-###        try:\r
-###            idname = "Gr" + str(int(carray[1][i]))\r
-###        except:\r
-###            idname = "Gr" + carray[1][i]\r
-#        machinename = carray[0][i].strip()+ "__" + idname\r
-#        machinename = machinename.replace(" ","_")\r
-#        machinename = machinename.replace("-","_")\r
-#        machinename = machinename.replace(".","_")\r
-#        machinename = machinename.replace("&","and")\r
-#        try:\r
-#            int(machinename[0])\r
-#            machinename="_" + machinename\r
-#        except:\r
-#            pass\r
-#        MachineDico[machinename]={}\r
-#        MachineDico[machinename]['NAME'] = carray[0][i].strip()\r
-#        MachineDico[machinename]['ID'] = carray[1][i]\r
-#        MachineDico[machinename]['EXNAME'] =carray[2][i]\r
-#        MachineDico[machinename]['NUMBER']=iarray[0][i]\r
-#        MachineDico[machinename]['P']=rarray[0][i]\r
-#        MachineDico[machinename]['Q']=rarray[1][i]\r
-#        MachineDico[machinename]['PMAX']=rarray[3][i]\r
-#        MachineDico[machinename]['QMAX']=rarray[4][i]\r
-#        MachineDico[machinename]['PMIN']=rarray[5][i]\r
-#        MachineDico[machinename]['QMIN']=rarray[6][i]\r
-#\r
-#    #Extract Motors\r
-#    sid = -1 #all buses\r
-#    flag = 1 #all in service loads/generators (4 all loads/generators)\r
-#\r
-#    string = ['NUMBER','PSETCODE','BASECODE']\r
-#    ierr,iarray = psspy.aindmacint(sid,flag,string)\r
-#\r
-#    string = ['NAME','ID','EXNAME']\r
-#    ierr,carray = psspy.aindmacchar(sid,flag,string)\r
-#\r
-#    rstrings = ['psetpoint','mbase','p','q']\r
-#    ierr, rarray = psspy.aindmacreal(sid, flag, rstrings)\r
-#\r
-#\r
-#    MotorDico = {} # [Bus name, machine ID, extended bus name, bus number]\r
-#    for i in range(len(iarray[0])):\r
-#        idname = "Mo" + carray[1][i].strip()\r
-###        try:\r
-###            idname = "Gr" + str(int(carray[1][i]))\r
-###        except:\r
-###            idname = "Gr" + carray[1][i]\r
-#        motorname = carray[0][i].strip()+ "__" + idname\r
-#        motorname = motorname.replace(" ","_")\r
-#        motorname = motorname.replace("-","_")\r
-#        motorname = motorname.replace(".","_")\r
-#        motorname = motorname.replace("&","and")\r
-#        try:\r
-#            int(motorname[0])\r
-#            motorname="_" + motorname\r
-#        except:\r
-#            pass\r
-#        MotorDico[motorname]={}\r
-#        MotorDico[motorname]['NAME'] = carray[0][i].strip()\r
-#        MotorDico[motorname]['ID'] = carray[1][i]\r
-#        MotorDico[motorname]['EXNAME'] =carray[2][i]\r
-#        MotorDico[motorname]['NUMBER']=iarray[0][i]\r
-#        MotorDico[motorname]['PSETCODE']=iarray[1][i]\r
-#        MotorDico[motorname]['BASECODE']=iarray[2][i]\r
-#        MotorDico[motorname]['PSETPOINT']=rarray[0][i]\r
-#        MotorDico[motorname]['MBASE']=rarray[1][i]\r
-#        MotorDico[motorname]['P']=rarray[2][i]\r
-#        MotorDico[motorname]['Q']=rarray[3][i]\r
-#\r
-#\r
-#    #Extract Lignes\r
-#    sid = -1\r
-#    owner = 1\r
-#    ties = 1\r
-#    flag = 2 #6 for two-winding transfos\r
-#    entry = 1 #each branch once, not both directions\r
-#    string = ['FROMNUMBER','TONUMBER']\r
-#    ierr,iarray = psspy.abrnint(sid,owner,ties,flag,entry,string)\r
-#    string = ['FROMNAME','TONAME','FROMEXNAME','TOEXNAME','ID']\r
-#    ierr,carray = psspy.abrnchar(sid,owner,ties,flag,entry,string)\r
-#\r
-#    LineDico = {} #[linename, Bus name 1, Bus name 2, ID, extended bus name 1, extended bus name 2, bus number 1, bus number 2]\r
-#    for i in range(len(iarray[0])):\r
-#        idname = carray[4][i].strip()\r
-#        #idname = carray[4][i]\r
-#        if '@' in idname:\r
-#            idname = idname.replace('@','Br')\r
-#        elif '*' in idname:\r
-#            idname = idname.replace('*','Sw')\r
-#        else:\r
-#            try:\r
-#                idname = 'Li' + str(int(idname))\r
-#            except:\r
-#                idname = 'Li' + idname\r
-#        linename =carray[0][i].strip() + "__" + carray[1][i].strip() + "__" + idname\r
-#        linename = linename.replace(" ","_")\r
-#        linename = linename.replace("-","_")\r
-#        linename = linename.replace(".","_")\r
-#        linename = linename.replace("&","and")\r
-#        try:\r
-#            int(linename[0])\r
-#            linename="_" + linename\r
-#        except:\r
-#            pass\r
-#        if NoBreakersandSwitches:\r
-#            if 'Br' not in idname and 'Sw' not in idname:\r
-#                LineDico[linename]={}\r
-#                LineDico[linename]['FROMNAME']=carray[0][i].strip()\r
-#                LineDico[linename]['TONAME']=carray[1][i].strip()\r
-#                LineDico[linename]['ID']=carray[4][i]\r
-#                LineDico[linename]['FROMEXNAME']=carray[2][i]\r
-#                LineDico[linename]['TOEXNAME']=carray[3][i]\r
-#                LineDico[linename]['FROMNUMBER']=iarray[0][i]\r
-#                LineDico[linename]['TONUMBER']=iarray[1][i]\r
-#\r
-#    #Extract Branches\r
-#    sid = -1\r
-#    owner = 1\r
-#    ties = 1\r
-#    flag = 4 # lines & transfos\r
-#    entry = 1 #each branch once, not both directions\r
-#    string = ['FROMNUMBER','TONUMBER']\r
-#    ierr, iarray = psspy.abrnint(sid, owner, ties, flag, entry, string)\r
-#    string = ['FROMNAME','TONAME','FROMEXNAME','TOEXNAME','ID']\r
-#    ierr, carray = psspy.abrnchar(sid, owner, ties, flag, entry, string)\r
-#\r
-#    BranchesDico = {} #[linename, Bus name 1, Bus name 2, ID, extended bus name 1, extended bus name 2, bus number 1, bus number 2]\r
-#    for i in range(len(iarray[0])):\r
-#        idname = carray[4][i]\r
-#        if '@' in idname:\r
-#            idname = idname.replace('@','Br')\r
-#        elif '*' in idname:\r
-#            idname = idname.replace('*','Sw')\r
-#        else:\r
-#            idname = 'LI' + idname\r
-#        linename = carray[0][i].strip() + "__" + carray[1][i].strip() + "__" + idname\r
-#        linename = linename.replace(" ","_")\r
-#        linename = linename.replace("-","_")\r
-#        linename = linename.replace(".","_")\r
-#        linename = linename.replace("&","and")\r
-#        try:\r
-#            int(linename[0])\r
-#            linename = "_" + linename\r
-#        except:\r
-#            pass\r
-#        if linename[-1] == '_':\r
-#            linename = linename[:-1]\r
-#        BranchesDico[linename] = {}\r
-#        BranchesDico[linename]['FROMNAME'] = carray[0][i].strip()\r
-#        BranchesDico[linename]['TONAME'] = carray[1][i].strip()\r
-#        BranchesDico[linename]['ID'] = carray[4][i]\r
-#        BranchesDico[linename]['FROMEXNAME'] = carray[2][i]\r
-#        BranchesDico[linename]['TOEXNAME'] = carray[3][i]\r
-#        BranchesDico[linename]['FROMNUMBER'] = iarray[0][i]\r
-#        BranchesDico[linename]['TONUMBER'] = iarray[1][i]\r
-#\r
-#    \r
-#    #Extract Transfos\r
-#    sid = -1\r
-#    owner = 1\r
-#    ties = 1\r
-#    flag = 6 #two-winding transfos\r
-#    entry = 1 #each branch once, not both directions\r
-#    string = ['FROMNUMBER','TONUMBER']\r
-#    ierr,iarray = psspy.abrnint(sid,owner,ties,flag,entry,string)\r
-#    string = ['FROMNAME','TONAME','FROMEXNAME','TOEXNAME','ID']\r
-#    ierr,carray = psspy.abrnchar(sid,owner,ties,flag,entry,string)\r
-#\r
-#    TfoDico = {} #[linename, Bus name 1, Bus name 2, machine ID, extended bus name 1, extended bus name 2, bus number 1, bus number 2]\r
-#    for i in range(len(iarray[0])):\r
-#        idname = 'Tr' + carray[4][i].strip()\r
-###        try:\r
-###            idname = 'Tr' + str(int(carray[4][i]))\r
-###        except:\r
-###            idname = 'Tr' + carray[4][i]\r
-#        tfoname = carray[0][i].strip() + "__" + carray[1][i].strip() + "__" + idname\r
-#        tfoname = tfoname.replace(" ","_")\r
-#        tfoname = tfoname.replace("-","_")\r
-#        tfoname = tfoname.replace(".","_")\r
-#        tfoname = tfoname.replace("&","and")\r
-#        try:\r
-#            int(tfoname[0])\r
-#            tfoname="_" + tfoname\r
-#        except:\r
-#            pass\r
-#        TfoDico[tfoname]={}\r
-#        TfoDico[tfoname]['FROMNAME']=carray[0][i].strip()\r
-#        TfoDico[tfoname]['TONAME']=carray[1][i].strip()\r
-#        TfoDico[tfoname]['ID']=carray[4][i]\r
-#        TfoDico[tfoname]['FROMEXNAME']=carray[2][i]\r
-#        TfoDico[tfoname]['TOEXNAME']=carray[3][i]\r
-#        TfoDico[tfoname]['FROMNUMBER']=iarray[0][i]\r
-#        TfoDico[tfoname]['TONUMBER']=iarray[1][i]\r
-#        TfoDico[tfoname]['#WIND']=2\r
-#    print "Read Transfos"\r
-#\r
-#    #Extract 3 winding Transfos\r
-#    sid = -1 #assume a subsystem containing all buses in working case\r
-#    owner_3flow = 1 #1 = use bus ownership 2 = use tfo ownership\r
-#    ties_3flow = 3 #ignored bc sid is negative. 3 = interior subsystem and subsystem tie 3 winding transformers \r
-#    flag=3 #all 3 winding transfo windings\r
-#    string = ['wind1number','wind2number','wind3number']\r
-#    ierr,iarray = psspy.awndint(sid,owner,ties,flag,entry,string)\r
-#    string = ['wind1name','wind2name','wind3name','wind1exname','wind2exname','wind3exname','id']\r
-#    ierr,carray = psspy.awndchar(sid,owner,ties,flag,entry,string)\r
-#\r
-#    #[Bus name 1, Bus name 2, Bus name 3, machine ID, extended bus name 1, extended bus name 2, extended bus name 3, bus number 1, bus number 2, bus number 3]\r
-#    for i in range(len(iarray[0])):\r
-#        idname = 'Tr' + carray[6][i].strip()\r
-###        try:\r
-###            idname = 'Tr' + str(int(carray[4][i]))\r
-###        except:\r
-###            idname = 'Tr' + carray[4][i]\r
-#        tfoname = carray[0][i].strip() + "__" + carray[1][i].strip() + "__" + carray[2][i].strip() + "__" + idname\r
-#        tfoname = tfoname.replace(" ","_")\r
-#        tfoname = tfoname.replace("-","_")\r
-#        tfoname = tfoname.replace(".","_")\r
-#        tfoname = tfoname.replace("&","and")\r
-#        try:\r
-#            int(tfoname[0])\r
-#            tfoname="_" + tfoname\r
-#        except:\r
-#            pass\r
-#        TfoDico[tfoname]={}\r
-#        TfoDico[tfoname]['FROMNAME']=carray[0][i].strip()\r
-#        TfoDico[tfoname]['TONAME']=carray[1][i].strip()\r
-#        TfoDico[tfoname]['3NAME']=carray[2][i].strip()\r
-#        TfoDico[tfoname]['ID']=carray[6][i]\r
-#        TfoDico[tfoname]['FROMEXNAME']=carray[3][i]\r
-#        TfoDico[tfoname]['TOEXNAME']=carray[4][i]\r
-#        TfoDico[tfoname]['3EXNAME']=carray[5][i]\r
-#        TfoDico[tfoname]['FROMNUMBER']=iarray[0][i]\r
-#        TfoDico[tfoname]['TONUMBER']=iarray[1][i]\r
-#        TfoDico[tfoname]['3NUMBER']=iarray[2][i]\r
-#        TfoDico[tfoname]['#WIND']=3\r
-#    print "Read 3-Winding Transfos"\r
-#\r
-#    return MachineDico, LoadDico, LineDico, TfoDico, MotorDico, BusDico, BranchesDico, BusNominal\r
-#\r
-#\r
-##NetworkFile = r'\\Atlas.edf.fr\co\dpit-cist-siege\Der.012\Dpt-Etudes-Reseaux.001\Outils DER - Divers (excel, codes python, etc.)\PSEN_V15\Example\Results\N_20160705_17h36m34\package0_N_20160705_17h36m34\BaseCase.sav'\r
-##PSSE_PATH=r"C:\Program Files (x86)\PTI\PSSE33\PSSBIN"\r
-##sys.path.append(PSSE_PATH)\r
-##os.environ['PATH'] +=  ';' + PSSE_PATH + ';'\r
-##getNominalkV(NetworkFile)\r
-##updateConts()\r
diff --git a/ProcessOutputs_Eficas/ExtractGeneratorLoadLineandTransfoDicoProcess.py b/ProcessOutputs_Eficas/ExtractGeneratorLoadLineandTransfoDicoProcess.py
deleted file mode 100644 (file)
index 653e23f..0000000
+++ /dev/null
@@ -1,631 +0,0 @@
-import os\r
-import sys\r
-import numpy as np\r
-import copy\r
-\r
-path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','TreatOutputs'))\r
-sys.path.append(path1)\r
-import Options\r
-\r
-\r
-def getNominalkV(NetworkFile):\r
-\r
-    print "version en dur"\r
-\r
-    BusList=[11.0, 30.0, 90.0]\r
-    LinesList=[30.0, 90.0]\r
-    TransfosList=['11.0 - 30.0', '11.0 - 90.0', '30.0 - 90.0', '90.0 - 30.0']\r
-    return BusList, LinesList, TransfosList\r
-\r
-\r
-\r
-\r
-\r
-    import psspy\r
-    import redirect\r
-\r
-    psspy.psseinit(80000)\r
-    redirect.psse2py()\r
-    psspy.progress_output(6)\r
-\r
-    psspy.case(NetworkFile)\r
-    # Buses\r
-\r
-    sid = -1\r
-    flag = 2\r
-    ierr, ret = psspy.abusreal(sid, flag, ['BASE'])\r
-    Options.BusBase = ret[0]\r
-\r
-    ierr, carray = psspy.abuschar(sid, flag, ['NAME'])\r
-    Options.BusBaseList = {}\r
-    for i in range(len(carray[0])):\r
-        Options.BusBaseList[carray[0][i]] = ret[0][i]\r
-\r
-    BusList = []\r
-    for item in Options.BusBase:\r
-        if item not in BusList:\r
-            BusList.append(item)\r
-    BusList = sorted(BusList)\r
-\r
-    # Lines\r
-\r
-    owner = 1\r
-    ties = 1\r
-    flag = 2\r
-    entry = 1\r
-    string = ['FROMNAME', 'TONAME']\r
-    ierr, carray = psspy.abrnchar(sid, owner, ties, flag, entry, string)\r
-\r
-    for i in range(len(carray[0])):\r
-        nom = Options.BusBaseList[carray[0][i]]\r
-        name = carray[0][i] + '-' + carray[1][i]\r
-        Options.LinesBaseList[name] = nom\r
-        Options.LinesBase.append(nom)\r
-\r
-    LinesList = []\r
-    for item in Options.LinesBase:\r
-        if item not in LinesList:\r
-            LinesList.append(item)\r
-    LinesList = sorted(LinesList)\r
-\r
-    # Transfos\r
-\r
-    owner = 1\r
-    ties = 1\r
-    flag = 6\r
-    entry = 1\r
-    string = ['FROMNAME', 'TONAME']\r
-    ierr, carray = psspy.abrnchar(sid, owner, ties, flag, entry, string)\r
-\r
-    for i in range(len(carray[0])):\r
-        nom1 = Options.BusBaseList[carray[0][i]]\r
-        nom2 = Options.BusBaseList[carray[1][i]]\r
-        name = carray[0][i] + '-' + carray[1][i]\r
-        Options.TransfoBaseList[name] = [nom1, nom2]\r
-        Options.TransfoBase.append([nom1, nom2])\r
-\r
-    TransfosList = []\r
-    for item in Options.TransfoBase:\r
-        string = str(item[0]) + ' - ' + str(item[1])\r
-        if string not in TransfosList:\r
-            TransfosList.append(string)\r
-    TransfosList = sorted(TransfosList)\r
-\r
-    # Generators\r
-\r
-    sid = -1 #all buses\r
-    flag = 1 #all in service loads/generators (4 all loads/generators)\r
-\r
-    string = ['NUMBER']\r
-    ierr,iarray = psspy.amachint(sid,flag,string)\r
-\r
-    string = ['NAME','ID']\r
-    ierr,carray = psspy.amachchar(sid,flag,string)\r
-\r
-    for i in range(len(iarray[0])):\r
-        idname = "GR" + carray[1][i]\r
-        machinename = carray[0][i].strip()+ "__" + idname\r
-        machinename = machinename.replace(" ","_")\r
-        machinename = machinename.replace("-","_")\r
-        machinename = machinename.replace(".","_")\r
-        machinename = machinename.replace("&","and")\r
-        try:\r
-            int(machinename[0])\r
-            machinename = "_" + machinename\r
-        except:\r
-            pass\r
-        Options.GenBaseList[machinename] = iarray[0][i]\r
-\r
-    return BusList, LinesList, TransfosList\r
-\r
-def getBusNominalkV(NetworkFile):\r
-    import psspy\r
-    import redirect\r
-\r
-    psspy.psseinit(80000)\r
-    redirect.psse2py()\r
-    psspy.progress_output(6)\r
-\r
-    psspy.case(NetworkFile)\r
-\r
-    sid = -1\r
-    flag = 2\r
-    ierr, ret = psspy.abusreal(sid, flag, ['BASE'])\r
-    Options.BusBase = ret[0]\r
-\r
-    ierr, carray = psspy.abuschar(sid, flag, ['NAME'])\r
-    buses = {}\r
-    for i in range(len(carray[0])):\r
-        buses[carray[0][i]] = ret[0][i]\r
-    Options.BusNames = buses\r
-    ret = []\r
-    for item in Options.BusBase:\r
-        if item not in ret:\r
-            ret.append(item)\r
-    return sorted(ret)\r
-\r
-def updateConts():\r
-    Options.ContFullList = []\r
-    tmp = Options.BusBaseList\r
-    tmp.sort()\r
-    for key in tmp:\r
-        Options.ContFullList.append(key)\r
-    tmp = Options.GenBaseList\r
-    tmp.sort()\r
-    for key in tmp:\r
-        Options.ContFullList.append(key)\r
-    tmp = Options.LinesBaseList\r
-    tmp.sort()\r
-    for key in tmp:\r
-        Options.ContFullList.append(key)\r
-    tmp = Options.TransfoBaseList\r
-    tmp.sort()\r
-    for key in tmp:\r
-        Options.ContFullList.append(key)\r
-    print Options.ContFullList\r
-    return Options.ContFullList\r
-\r
-def newContingency(MatList):\r
-    Options.CustomContingencies.append(MatList)\r
-\r
-def checkIfBorder(graph, key, depth, tmplist):\r
-    #print "in checkifBorder"\r
-    #print "depth ",depth\r
-    #print graph\r
-    if key in tmplist:\r
-        return True\r
-    if depth == 0:\r
-        return False\r
-    NonBorders = 0\r
-    for item in graph[key]:\r
-        if not checkIfBorder(graph, item, depth - 1, tmplist):\r
-            NonBorders += 1\r
-    if NonBorders < 2: # A generator is considered as isolated if it has less than two non-borders neighbours\r
-        if key not in tmplist:\r
-            tmplist.append(key)\r
-        return True\r
-    return False\r
-\r
-def getTrueLines(NetworkFile):\r
-    import psspy\r
-    import redirect\r
-\r
-    psspy.psseinit(80000)\r
-    redirect.psse2py()\r
-    psspy.progress_output(6)\r
-\r
-    psspy.case(NetworkFile)\r
-\r
-    sid = -1\r
-    owner = 1\r
-    ties = 1\r
-    flag = 4 # 6 for two-winding transfos\r
-    entry = 1 #each branch once, not both directions\r
-    string = ['FROMNAME', 'TONAME', 'ID']\r
-    ierr, iarray = psspy.abrnchar(sid, owner, ties, flag, entry, string)\r
-    string = ['FROMNUMBER', 'TONUMBER']\r
-    ierr, carray = psspy.abrnint(sid, owner, ties, flag, entry, string)\r
-\r
-    lst = []\r
-    tmplist = []\r
-    try:\r
-        for i in range(len(carray[0])):\r
-            if carray[0][i] not in lst and carray[0][i] not in tmplist:\r
-                tmplist.append(carray[0][i])\r
-            elif carray[0][i] not in lst and carray[0][i] in tmplist:\r
-                tmplist.remove(carray[0][i])\r
-                lst.append(carray[0][i])\r
-            if carray[1][i] not in lst and carray[1][i] not in tmplist:\r
-                tmplist.append(carray[1][i])\r
-            elif carray[1][i] not in lst and carray[1][i] in tmplist:\r
-                tmplist.remove(carray[1][i])\r
-                lst.append(carray[1][i])\r
-    except:\r
-        pass\r
-\r
-    # Create the graph\r
-    graph = {}\r
-    for i in range(len(carray[0])):\r
-        try:\r
-            if graph[carray[0][i]]:\r
-                pass\r
-        except:\r
-            graph[carray[0][i]] = []\r
-        if carray[1][i] not in graph[carray[0][i]]:\r
-            graph[carray[0][i]].append(carray[1][i])\r
-        try:\r
-            if graph[carray[1][i]]:\r
-                pass\r
-        except:\r
-            graph[carray[1][i]] = []\r
-        if carray[0][i] not in graph[carray[1][i]]:\r
-            graph[carray[1][i]].append(carray[0][i])\r
-\r
-\r
-    # Search it twice, to ensure everything is mapped\r
-    for key in sorted(graph):\r
-        #print key\r
-        checkIfBorder(graph, key, Options.RecursiveDepth, tmplist)\r
-        #print "out of Checkif 0"\r
-        #print ""\r
-    for key in reversed(sorted(graph)):\r
-        checkIfBorder(graph, key, Options.RecursiveDepth, tmplist)\r
-\r
-    Options.IsolatedGenList = []\r
-    # Unfold it\r
-    for i in range(len(carray[0])):\r
-        if carray[0][i] in tmplist:\r
-            if iarray[0][i] not in Options.IsolatedGenList:\r
-                Options.IsolatedGenList.append(iarray[0][i])\r
-        if carray[1][i] in tmplist:\r
-            if iarray[1][i] not in Options.IsolatedGenList:\r
-                Options.IsolatedGenList.append(iarray[1][i])\r
-\r
-    lines = []\r
-    outLines = []\r
-    for i in range(len(iarray[0])):\r
-        name = iarray[0][i] + '-' + iarray[1][i]\r
-        if '@' in iarray[2][i] or '*' in iarray[2][i]:\r
-            outLines.append(name)\r
-        elif iarray[0][i] not in Options.IsolatedGenList and iarray[1][i] not in Options.IsolatedGenList:\r
-            lines.append(name)\r
-        else:\r
-            outLines.append(name)\r
-    Options.TrueLines = lines\r
-\r
-    return lines\r
-\r
-NoBreakersandSwitches = True\r
-\r
-def ExtractGeneratorLoadLineandTransfoDico(NetworkFile,PSSE_PATH):\r
\r
-    print "version en dur"\r
-    MachineDico={'M1':'M1','M2':'M2','M3':'M3','M4':'M4','B6_BUS13__1':'AZ','CSPRING__1':'DD','GT12B__1':'ER','BSTMB__1':'JJ'}\r
-    LoadDico={'C1':'C1','C2':'C2','C3':'C3','C4':'C4'}\r
-    LineDico={'L1':'L1','L2':'L2','L3':'L3','L4':'L4'}\r
-    TfoDico={'T1':'T1','T2':'T2','T3':'T3','T4':'T4'}\r
-    MDico={'MZ1':'MZ1','MZ2':'MZ2','MZ3':'MZ3','MZ4':'MZ4'}\r
-    BranchesDico={'B11':'B1','B2':'B2','B3':'B3','B4':'B4'}\r
-    BusNomial={'Bus1':'Bus1','Bus2':'Bus2','Bus3':'Bus3','Bus4':'Bus4'}\r
-\r
-    return MachineDico, LoadDico, LineDico, TfoDico, MotorDico, BusDico, BranchesDico, BusNominal\r
-\r
-\r
-    import os\r
-    import sys\r
-    import numpy as np\r
-\r
-    sys.path.append(PSSE_PATH)\r
-    os.environ['PATH'] +=  ';' + PSSE_PATH + ';'\r
-\r
-    import psspy\r
-    import redirect\r
-\r
-    ###initialization PSSE\r
-    psspy.psseinit(10000)\r
-    _i=psspy.getdefaultint()\r
-    _f=psspy.getdefaultreal()\r
-    _s=psspy.getdefaultchar()\r
-    redirect.psse2py()\r
-\r
-    # Silent execution of PSSe\r
-    islct=6 # 6=no output; 1=standard\r
-    psspy.progress_output(islct)\r
-\r
-    #open Network File\r
-    psspy.case(NetworkFile)\r
-\r
-    # Extract Buses\r
-    sid = -1 # all buses\r
-    flag = 2\r
-    string = ['NUMBER']\r
-    ierr, iarray = psspy.abusint(sid, flag, string)\r
-\r
-    string = ['NAME', 'EXNAME']\r
-    ierr, carray = psspy.abuschar(sid, flag, string)\r
-\r
-    string = ['BASE']\r
-    ierr, ret = psspy.abusreal(sid, flag, string)\r
-\r
-    BusDico = {}\r
-    BusNominal = {}\r
-    for i in range(len(iarray[0])):\r
-        BusNum = iarray[0][i]\r
-        BusDico[str(BusNum)] = carray[0][i].strip()\r
-        BusNominal[BusDico[str(BusNum)]] = ret[0][i]    \r
-\r
-    #Extract Loads\r
-    sid = -1 #all buses\r
-    flag = 1 #all in service loads/generators (4 all loads/generators)\r
-\r
-\r
-    string = ['NUMBER']\r
-    ierr,iarray = psspy.aloadint(sid,flag,string)\r
-\r
-    string = ['NAME','ID','EXNAME']\r
-    ierr,carray = psspy.aloadchar(sid,flag,string)\r
-\r
-    string = ['mvaact']\r
-    ierr, xdata = psspy.aloadcplx(sid, flag, string)\r
-\r
-    LoadDico = {}  # [Bus name, load ID, extended bus name, bus number]\r
-    for i in range(len(iarray[0])):\r
-        idname = "Lo" + carray[1][i].strip()\r
-#        try: #id is an integer\r
-#            idname = "Lo" + str(int(carray[1][i]))\r
-#        except: #id is not an integer\r
-#            idname = "Lo" + carray[1][i]\r
-        loadname = carray[0][i].strip()+ "__" + idname\r
-        loadname = loadname.replace(" ","_")\r
-        loadname = loadname.replace("-","_")\r
-        loadname = loadname.replace(".","_")\r
-        loadname = loadname.replace("&","and")\r
-        try:\r
-            int(loadname[0])\r
-            loadname="_" + loadname\r
-        except:\r
-            pass\r
-        LoadDico[loadname]= {}\r
-        LoadDico[loadname]['NAME'] = carray[0][i].strip()\r
-        LoadDico[loadname]['ID'] = carray[1][i]\r
-        LoadDico[loadname]['EXNAME'] =carray[2][i]\r
-        LoadDico[loadname]['NUMBER']=iarray[0][i]\r
-        LoadDico[loadname]['P']=np.real(xdata)[0][i]\r
-        LoadDico[loadname]['Q']=np.imag(xdata)[0][i]\r
-\r
-    #Extract Generators\r
-    sid = -1 #all buses\r
-    flag = 1 #all in service loads/generators (4 all loads/generators)\r
-\r
-    string = ['NUMBER']\r
-    ierr,iarray = psspy.amachint(sid,flag,string)\r
-\r
-    string = ['NAME','ID','EXNAME']\r
-    ierr,carray = psspy.amachchar(sid,flag,string)\r
-\r
-    rstrings = ['pgen','qgen','mbase','pmax','qmax','pmin','qmin']\r
-    ierr, rarray = psspy.amachreal(sid, flag, rstrings)\r
-\r
-    MachineDico = {} # [Bus name, machine ID, extended bus name, bus number]\r
-    for i in range(len(iarray[0])):\r
-        idname = "Gr" + carray[1][i].strip()\r
-##        try:\r
-##            idname = "Gr" + str(int(carray[1][i]))\r
-##        except:\r
-##            idname = "Gr" + carray[1][i]\r
-        machinename = carray[0][i].strip()+ "__" + idname\r
-        machinename = machinename.replace(" ","_")\r
-        machinename = machinename.replace("-","_")\r
-        machinename = machinename.replace(".","_")\r
-        machinename = machinename.replace("&","and")\r
-        try:\r
-            int(machinename[0])\r
-            machinename="_" + machinename\r
-        except:\r
-            pass\r
-        MachineDico[machinename]={}\r
-        MachineDico[machinename]['NAME'] = carray[0][i].strip()\r
-        MachineDico[machinename]['ID'] = carray[1][i]\r
-        MachineDico[machinename]['EXNAME'] =carray[2][i]\r
-        MachineDico[machinename]['NUMBER']=iarray[0][i]\r
-        MachineDico[machinename]['P']=rarray[0][i]\r
-        MachineDico[machinename]['Q']=rarray[1][i]\r
-        MachineDico[machinename]['PMAX']=rarray[3][i]\r
-        MachineDico[machinename]['QMAX']=rarray[4][i]\r
-        MachineDico[machinename]['PMIN']=rarray[5][i]\r
-        MachineDico[machinename]['QMIN']=rarray[6][i]\r
-\r
-    #Extract Motors\r
-    sid = -1 #all buses\r
-    flag = 1 #all in service loads/generators (4 all loads/generators)\r
-\r
-    string = ['NUMBER','PSETCODE','BASECODE']\r
-    ierr,iarray = psspy.aindmacint(sid,flag,string)\r
-\r
-    string = ['NAME','ID','EXNAME']\r
-    ierr,carray = psspy.aindmacchar(sid,flag,string)\r
-\r
-    rstrings = ['psetpoint','mbase','p','q']\r
-    ierr, rarray = psspy.aindmacreal(sid, flag, rstrings)\r
-\r
-\r
-    MotorDico = {} # [Bus name, machine ID, extended bus name, bus number]\r
-    for i in range(len(iarray[0])):\r
-        idname = "Mo" + carray[1][i].strip()\r
-##        try:\r
-##            idname = "Gr" + str(int(carray[1][i]))\r
-##        except:\r
-##            idname = "Gr" + carray[1][i]\r
-        motorname = carray[0][i].strip()+ "__" + idname\r
-        motorname = motorname.replace(" ","_")\r
-        motorname = motorname.replace("-","_")\r
-        motorname = motorname.replace(".","_")\r
-        motorname = motorname.replace("&","and")\r
-        try:\r
-            int(motorname[0])\r
-            motorname="_" + motorname\r
-        except:\r
-            pass\r
-        MotorDico[motorname]={}\r
-        MotorDico[motorname]['NAME'] = carray[0][i].strip()\r
-        MotorDico[motorname]['ID'] = carray[1][i]\r
-        MotorDico[motorname]['EXNAME'] =carray[2][i]\r
-        MotorDico[motorname]['NUMBER']=iarray[0][i]\r
-        MotorDico[motorname]['PSETCODE']=iarray[1][i]\r
-        MotorDico[motorname]['BASECODE']=iarray[2][i]\r
-        MotorDico[motorname]['PSETPOINT']=rarray[0][i]\r
-        MotorDico[motorname]['MBASE']=rarray[1][i]\r
-        MotorDico[motorname]['P']=rarray[2][i]\r
-        MotorDico[motorname]['Q']=rarray[3][i]\r
-\r
-\r
-    #Extract Lignes\r
-    sid = -1\r
-    owner = 1\r
-    ties = 1\r
-    flag = 2 #6 for two-winding transfos\r
-    entry = 1 #each branch once, not both directions\r
-    string = ['FROMNUMBER','TONUMBER']\r
-    ierr,iarray = psspy.abrnint(sid,owner,ties,flag,entry,string)\r
-    string = ['FROMNAME','TONAME','FROMEXNAME','TOEXNAME','ID']\r
-    ierr,carray = psspy.abrnchar(sid,owner,ties,flag,entry,string)\r
-\r
-    LineDico = {} #[linename, Bus name 1, Bus name 2, ID, extended bus name 1, extended bus name 2, bus number 1, bus number 2]\r
-    for i in range(len(iarray[0])):\r
-        idname = carray[4][i].strip()\r
-        #idname = carray[4][i]\r
-        if '@' in idname:\r
-            idname = idname.replace('@','Br')\r
-        elif '*' in idname:\r
-            idname = idname.replace('*','Sw')\r
-        else:\r
-            try:\r
-                idname = 'Li' + str(int(idname))\r
-            except:\r
-                idname = 'Li' + idname\r
-        linename =carray[0][i].strip() + "__" + carray[1][i].strip() + "__" + idname\r
-        linename = linename.replace(" ","_")\r
-        linename = linename.replace("-","_")\r
-        linename = linename.replace(".","_")\r
-        linename = linename.replace("&","and")\r
-        try:\r
-            int(linename[0])\r
-            linename="_" + linename\r
-        except:\r
-            pass\r
-        if NoBreakersandSwitches:\r
-            if 'Br' not in idname and 'Sw' not in idname:\r
-                LineDico[linename]={}\r
-                LineDico[linename]['FROMNAME']=carray[0][i].strip()\r
-                LineDico[linename]['TONAME']=carray[1][i].strip()\r
-                LineDico[linename]['ID']=carray[4][i]\r
-                LineDico[linename]['FROMEXNAME']=carray[2][i]\r
-                LineDico[linename]['TOEXNAME']=carray[3][i]\r
-                LineDico[linename]['FROMNUMBER']=iarray[0][i]\r
-                LineDico[linename]['TONUMBER']=iarray[1][i]\r
-\r
-    #Extract Branches\r
-    sid = -1\r
-    owner = 1\r
-    ties = 1\r
-    flag = 4 # lines & transfos\r
-    entry = 1 #each branch once, not both directions\r
-    string = ['FROMNUMBER','TONUMBER']\r
-    ierr, iarray = psspy.abrnint(sid, owner, ties, flag, entry, string)\r
-    string = ['FROMNAME','TONAME','FROMEXNAME','TOEXNAME','ID']\r
-    ierr, carray = psspy.abrnchar(sid, owner, ties, flag, entry, string)\r
-\r
-    BranchesDico = {} #[linename, Bus name 1, Bus name 2, ID, extended bus name 1, extended bus name 2, bus number 1, bus number 2]\r
-    for i in range(len(iarray[0])):\r
-        idname = carray[4][i]\r
-        if '@' in idname:\r
-            idname = idname.replace('@','Br')\r
-        elif '*' in idname:\r
-            idname = idname.replace('*','Sw')\r
-        else:\r
-            idname = 'LI' + idname\r
-        linename = carray[0][i].strip() + "__" + carray[1][i].strip() + "__" + idname\r
-        linename = linename.replace(" ","_")\r
-        linename = linename.replace("-","_")\r
-        linename = linename.replace(".","_")\r
-        linename = linename.replace("&","and")\r
-        try:\r
-            int(linename[0])\r
-            linename = "_" + linename\r
-        except:\r
-            pass\r
-        if linename[-1] == '_':\r
-            linename = linename[:-1]\r
-        BranchesDico[linename] = {}\r
-        BranchesDico[linename]['FROMNAME'] = carray[0][i].strip()\r
-        BranchesDico[linename]['TONAME'] = carray[1][i].strip()\r
-        BranchesDico[linename]['ID'] = carray[4][i]\r
-        BranchesDico[linename]['FROMEXNAME'] = carray[2][i]\r
-        BranchesDico[linename]['TOEXNAME'] = carray[3][i]\r
-        BranchesDico[linename]['FROMNUMBER'] = iarray[0][i]\r
-        BranchesDico[linename]['TONUMBER'] = iarray[1][i]\r
-\r
-    \r
-    #Extract Transfos\r
-    sid = -1\r
-    owner = 1\r
-    ties = 1\r
-    flag = 6 #two-winding transfos\r
-    entry = 1 #each branch once, not both directions\r
-    string = ['FROMNUMBER','TONUMBER']\r
-    ierr,iarray = psspy.abrnint(sid,owner,ties,flag,entry,string)\r
-    string = ['FROMNAME','TONAME','FROMEXNAME','TOEXNAME','ID']\r
-    ierr,carray = psspy.abrnchar(sid,owner,ties,flag,entry,string)\r
-\r
-    TfoDico = {} #[linename, Bus name 1, Bus name 2, machine ID, extended bus name 1, extended bus name 2, bus number 1, bus number 2]\r
-    for i in range(len(iarray[0])):\r
-        idname = 'Tr' + carray[4][i].strip()\r
-##        try:\r
-##            idname = 'Tr' + str(int(carray[4][i]))\r
-##        except:\r
-##            idname = 'Tr' + carray[4][i]\r
-        tfoname = carray[0][i].strip() + "__" + carray[1][i].strip() + "__" + idname\r
-        tfoname = tfoname.replace(" ","_")\r
-        tfoname = tfoname.replace("-","_")\r
-        tfoname = tfoname.replace(".","_")\r
-        tfoname = tfoname.replace("&","and")\r
-        try:\r
-            int(tfoname[0])\r
-            tfoname="_" + tfoname\r
-        except:\r
-            pass\r
-        TfoDico[tfoname]={}\r
-        TfoDico[tfoname]['FROMNAME']=carray[0][i].strip()\r
-        TfoDico[tfoname]['TONAME']=carray[1][i].strip()\r
-        TfoDico[tfoname]['ID']=carray[4][i]\r
-        TfoDico[tfoname]['FROMEXNAME']=carray[2][i]\r
-        TfoDico[tfoname]['TOEXNAME']=carray[3][i]\r
-        TfoDico[tfoname]['FROMNUMBER']=iarray[0][i]\r
-        TfoDico[tfoname]['TONUMBER']=iarray[1][i]\r
-        TfoDico[tfoname]['#WIND']=2\r
-\r
-    #Extract 3 winding Transfos\r
-    sid = -1 #assume a subsystem containing all buses in working case\r
-    owner_3flow = 1 #1 = use bus ownership 2 = use tfo ownership\r
-    ties_3flow = 3 #ignored bc sid is negative. 3 = interior subsystem and subsystem tie 3 winding transformers \r
-    flag=3 #all 3 winding transfo windings\r
-    string = ['wind1number','wind2number','wind3number']\r
-    ierr,iarray = psspy.awndint(sid,owner,ties,flag,entry,string)\r
-    string = ['wind1name','wind2name','wind3name','wind1exname','wind2exname','wind3exname','id']\r
-    ierr,carray = psspy.awndchar(sid,owner,ties,flag,entry,string)\r
-\r
-    #[Bus name 1, Bus name 2, Bus name 3, machine ID, extended bus name 1, extended bus name 2, extended bus name 3, bus number 1, bus number 2, bus number 3]\r
-    for i in range(len(iarray[0])):\r
-        idname = 'Tr' + carray[6][i].strip()\r
-##        try:\r
-##            idname = 'Tr' + str(int(carray[4][i]))\r
-##        except:\r
-##            idname = 'Tr' + carray[4][i]\r
-        tfoname = carray[0][i].strip() + "__" + carray[1][i].strip() + "__" + carray[2][i].strip() + "__" + idname\r
-        tfoname = tfoname.replace(" ","_")\r
-        tfoname = tfoname.replace("-","_")\r
-        tfoname = tfoname.replace(".","_")\r
-        tfoname = tfoname.replace("&","and")\r
-        try:\r
-            int(tfoname[0])\r
-            tfoname="_" + tfoname\r
-        except:\r
-            pass\r
-        TfoDico[tfoname]={}\r
-        TfoDico[tfoname]['FROMNAME']=carray[0][i].strip()\r
-        TfoDico[tfoname]['TONAME']=carray[1][i].strip()\r
-        TfoDico[tfoname]['3NAME']=carray[2][i].strip()\r
-        TfoDico[tfoname]['ID']=carray[6][i]\r
-        TfoDico[tfoname]['FROMEXNAME']=carray[3][i]\r
-        TfoDico[tfoname]['TOEXNAME']=carray[4][i]\r
-        TfoDico[tfoname]['3EXNAME']=carray[5][i]\r
-        TfoDico[tfoname]['FROMNUMBER']=iarray[0][i]\r
-        TfoDico[tfoname]['TONUMBER']=iarray[1][i]\r
-        TfoDico[tfoname]['3NUMBER']=iarray[2][i]\r
-        TfoDico[tfoname]['#WIND']=3\r
-\r
-    #print MachineDico, LoadDico, LineDico, TfoDico, MotorDico, BusDico, BranchesDico, BusNominal\r
-    return MachineDico, LoadDico, LineDico, TfoDico, MotorDico, BusDico, BranchesDico, BusNominal\r
-\r
-\r
-\r
diff --git a/ProcessOutputs_Eficas/PSEN_Cata_N1.py b/ProcessOutputs_Eficas/PSEN_Cata_N1.py
deleted file mode 100644 (file)
index 92d795f..0000000
+++ /dev/null
@@ -1,280 +0,0 @@
-# -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2013   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-
-# --------------------------------------------------
-# debut entete
-# --------------------------------------------------
-
-#from Accas import ASSD, JDC_CATA, AU_MOINS_UN, PROC, SIMP, FACT, OPER, MACRO, BLOC, A_VALIDATOR
-from Accas import *
-import opsPSEN_N1
-import pn
-#
-#class loi      ( ASSD ) : pass
-#class variable ( ASSD ) : pass
-class sd_charge     ( ASSD ) : pass
-class sd_generateur ( ASSD ) : pass
-class sd_ligne     ( ASSD ) : pass
-class sd_transfo ( ASSD ) : pass
-class sd_moteur ( ASSD ) : pass
-#
-
-# import types
-class Tuple:
-   def __init__(self,ntuple):
-     self.ntuple=ntuple
-
-   def __convert__(self,valeur):
-     import types
-     if type(valeur) == types.StringType:
-       return None
-     if len(valeur) != self.ntuple:
-       return None
-     return valeur
-
-   def info(self):
-     return "Tuple de %s elements" % self.ntuple
-
-   __repr__=info
-   __str__=info
-
-# class Matrice:
-#   def __init__(self,nbLigs=None,nbCols=None,methodeCalculTaille=None,formatSortie="ligne",valSup=None,valMin=None,structure=None):
-#       self.nbLigs=nbLigs
-#       self.nbCols=nbCols
-#       self.methodeCalculTaille=methodeCalculTaille
-#       self.formatSortie=formatSortie
-#       self.valSup=valSup
-#       self.valMin=valMin
-#       self.structure=structure
-#
-#   def __convert__(self,valeur):
-#     # Attention ne verifie pas grand chose
-#     if type(valeur) != types.ListType :
-#       return None
-#     return valeur
-#
-#   def info(self):
-#       return "Matrice %s x %s" % (self.nbLigs, self.nbCols)
-#
-#       __repr__=info
-#       __str__=info
-
-
-#CONTEXT.debug = 1
-JdC = JDC_CATA ( code = 'PSEN',
-                 execmodul = None,
-                 regles = ( AU_MOINS_UN ( 'CASE_SELECTION', 'CONTINGENCY_PROCESSING' ),
-                            AU_MOINS_UN ( 'CONTINGENCY_SELECTION','N_PROCESSING_OPTIONS','CONTINGENCY_PROCESSING' ),
-                            PRESENT_PRESENT ( 'CONTINGENCY_SELECTION','CONTINGENCY_OPTIONS' ),
-                            PRESENT_PRESENT ( 'CONTINGENCY_PROCESSING','CONTINGENCY_OPTIONS' ),
-                             AU_MOINS_UN ( 'SIMULATION' ),
-                            # AU_PLUS_UN ( 'PSSE_PARAMETERS' ),
-                            AU_PLUS_UN ( 'CASE_SELECTION' ),
-                            AU_PLUS_UN ( 'CONTINGENCY_OPTIONS' ),
-                            AU_PLUS_UN ( 'CONTINGENCY_SELECTION' ),
-                            AU_PLUS_UN ( 'CONTINGENCY_PROCESSING' ),
-                            AU_PLUS_UN ( 'N_PROCESSING_OPTIONS' ),
-                            # AU_PLUS_UN ( 'N_1_LINES' ),
-                            # AU_PLUS_UN ( 'N_1_LOADS' ),
-                            # AU_PLUS_UN ( 'N_1_TRANSFORMERS' ),
-
-                            ),
-                 ) # Fin JDC_CATA
-
-MODIFICATION_CATALOGUE = MACRO ( nom = "MODIFICATION_CATALOGUE",
-                     sd_prod = pn.modification_catalogue,
-                     op_init=  pn.modification_catalogue2,
-                     op=None,
-                     UIinfo={"groupes":("CACHE")},
-                     Fonction=SIMP(statut='o', typ='TXM', into=['ajoutDefinitionMC']),
-                     Etape=SIMP(statut='o', typ='TXM',),
-                     Genea=SIMP(statut='o', typ='TXM', min=0, max='**'),
-                     NomSIMP=SIMP(statut='o', typ='TXM',),
-                     TypeSIMP=SIMP(statut='o', typ='TXM',),
-                     PhraseArguments=SIMP(statut='o', typ='TXM',),)
-
-
-# --------------------------------------------------
-# fin entete
-# --------------------------------------------------
-## TODO : RUN
-CASE_SELECTION = MACRO ( nom = "CASE_SELECTION",
-                      sd_prod = opsPSEN_N1.INCLUDE,
-                      op_init = opsPSEN_N1.INCLUDE_context,
-                      fichier_ini = 1,
-                      op = None,
-                      fr = "Selectionnez les cas a analyser",
-                      ang = 'Select the cases to analyze',
-                      PSSE_path = SIMP(statut="o",typ='Repertoire',defaut='C:\Program Files (x86)\PTI\PSSE33\PSSBIN'),
-                      output_folder = SIMP(statut="o", typ="Repertoire"),
-
-
-                      BusesList = SIMP(statut = 'f', typ = 'R', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
-                      LinesList = SIMP(statut = 'f', typ = 'R', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
-                      TransformersList = SIMP(statut = 'f', typ = 'TXM', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
-                      MaxDepth = SIMP(statut = 'o', typ = 'I', defaut = 5),
-                      OutputNewCsv = SIMP ( statut = "o",typ=bool,defaut=False,),
-                 )
-N_PROCESSING_OPTIONS = PROC ( nom = 'N_PROCESSING_OPTIONS',
-                            op = None,
-                            ang = "Select whether the program should be displaying data about the different categories.\nThe values displayed will be the min, max, and mean of each item, plus a chart.",
-                           Output_bus_values = SIMP(statut = 'o', typ = bool, defaut = True),
-                           Output_lines_values = SIMP(statut = 'o', typ = bool, defaut = True),
-                           Output_transformer_values = SIMP(statut = 'o', typ = bool, defaut = True),
-                           Threshold_selection_for_the_treated_cases = FACT(
-                              statut = 'f',
-                              Branches = SIMP(statut="o",typ=Tuple(3),defaut=(0,0,0),validators=VerifTypeTuple(('R','R','R'),),),
-                              Transformers = SIMP(statut="o",typ=Tuple(3),defaut=(0,0,0),validators=VerifTypeTuple(('R','R','R'),),),
-                              High_voltage = SIMP(statut="o",typ=Tuple(3),defaut=(0,0,0),validators=VerifTypeTuple(('R','R','R'),),),
-                              Low_voltage = SIMP(statut="o",typ=Tuple(3),defaut=(0,0,0),validators=VerifTypeTuple(('R','R','R'),),),
-                           ),
-                           )
-
-
-CONTINGENCY_OPTIONS = PROC (nom = 'CONTINGENCY_OPTIONS',
-                            op = None,
-
-                            GeneralOptions = FACT(statut='o',
-                                Vmin = SIMP(statut = 'o', typ = 'R', defaut = 0.9, val_min = 0),
-                                Vmax = SIMP(statut = 'o', typ = 'R', defaut = 1.1, val_min = 0),
-                                ContingencyRate = SIMP(statut = 'o', typ = 'TXM', defaut = 'a', into=['a', 'b']),
-                                FlowLimitLines = SIMP(statut = 'o', typ = 'I', defaut = 120, val_min = 0),
-                                FlowLimitTransformers = SIMP(statut = 'o', typ = 'I', defaut = 120, val_min = 0),
-                                Tolerance = SIMP(statut = 'o', typ = 'R', defaut = 0.5, val_min = 0),
-                                TripLines = SIMP(statut = 'o', typ = bool, defaut = True),
-                                TripTransfos = SIMP(statut = 'o', typ = bool, defaut = True),
-                                TripGenerators = SIMP(statut = 'o', typ = bool, defaut = True),
-                                TripBuses = SIMP(statut = 'o', typ = bool, defaut = False),
-                                ),
-
-                            LoadFlowOptions = FACT(statut='o',
-                                AdjustTaps = SIMP(statut = 'o', typ = 'TXM', into = ['0 - Lock', '1 - Stepping', '2 - Direct'], defaut = '1 - Stepping'),
-                                AdjustDCtaps = SIMP(statut = 'o', typ = 'TXM', into = ['0 - Disable', '1 - Enable'], defaut = '1 - Enable'),
-                                SolutionMethod = SIMP(statut = 'o', typ = 'TXM', into = ['0 - FDNS', '1 - FNSL', '2 - Optimized FDNS'], defaut = '1 - FNSL'),
-                                AdjustSwitchedShunts = SIMP(statut = 'o', typ = 'TXM', into = ['0 - Disable', '1 - Enable', '2 - Enable continuous mode'], defaut = '1 - Enable'),
-                                DispatchMode = SIMP(statut = 'o', typ = 'TXM', into = ['0 - Disable', '1 - Reserve', '2 - Pmax', '3 - Inertia', '4 - Droop'], defaut = '1 - Reserve'),
-                                FlatStart = SIMP(statut = 'o', typ = bool, defaut = False),
-                                VarLimits = SIMP(statut = 'o', typ = 'I', defaut = 99,ang = 'if set to -1, var limits will not be applied'),
-                                ),
-
-#                            OutputOptions = FACT(statut='o',
-#                                consigne1 = SIMP(statut='o',homo='information',typ = "TXM",defaut = 'Output PSSE multiple contingency report to Shell?'),
-#                                MultipleContingencyReport = SIMP(statut = 'o', typ = bool, defaut = True, ang = 'Output PSSE multiple contingency report to Shell?'),
-#                                consigne2 = SIMP(statut='o',homo='information',typ = "TXM",defaut = 'Write an Excel file for the results of each case file?'),
-#                                WriteIndivExcels = SIMP(statut = 'o', typ = bool, defaut = True),
-#                                consigne3 = SIMP(statut='o',homo='information',typ = "TXM",defaut = 'Add a tab in Excel results file for the differences between the max flow rate (MVAR) and the actual flow rate in lines and transformers?'),
-#                                WriteFlowDifs = SIMP(statut = 'o', typ = bool, defaut = True),
-#                            ),
-                        )
-
-
-
-
-CONTINGENCY_SELECTION = PROC(nom='CONTINGENCY_SELECTION',op = None,
-                      SelectionMethod = SIMP(statut='o',typ='TXM',into=['CaseSelectionFromFile','SelectAllCases','SelectWorstCases'],
-                      ),
-
-                      b_file = BLOC(condition="SelectionMethod=='CaseSelectionFromFile'",
-                      CaseSelectionFromFiles = FACT(
-                           statut = 'o',
-                           case = FACT(statut='o',max='**',
-                                       case_name=SIMP(statut='o',typ='TXM'),
-                                       csv_file= SIMP(statut='o', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)',),),),
-#                           regles=(AU_MOINS_UN('branch_cases','transformer_cases','high_voltage_cases','low_voltage_cases',),),
-#                           branch_cases = SIMP(statut='o', defaut='', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)','Sauvegarde'),),
-#                           transformer_cases = SIMP(statut='o', defaut='', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)','Sauvegarde',),),
-#                           high_voltage_cases = SIMP(statut='o', defaut='', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)','Sauvegarde'),),
-#                           low_voltage_cases = SIMP(statut='o', defaut='', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)','Sauvegarde'),),
-                        ),
-
-#                      CaseSelectionFromFile = FACT(
-#                           statut = 'o',
-#                           input_path = SIMP(statut="o",typ='Repertoire'),
-#                           branch_cases = SIMP(statut='o', typ='TXM'),
-#                           transformer_cases = SIMP(statut='o', typ='TXM'),
-#                           high_cases = SIMP(statut='o', typ='TXM'),
-#                           low_cases = SIMP(statut='o', typ='TXM'),
-#                        ),
-
-                        ),
-
-#                      b_all = BLOC(condition="SelectionMethod=='SelectAllCases'",
-#                      SelectAllCases = FACT(
-#                           statut='o',
-#                           all_cases = SIMP(statut='o', typ=bool, defaut = True),
-#                         ),
-#                         ),
-
-                      b_worst = BLOC(condition="SelectionMethod=='SelectWorstCases'",
-                      SelectWorstCases = FACT(
-                          regles = (AU_MOINS_UN('AvgLineLoad', 'AvgLineLoadPercent','AvgTransformerLoad','AvgTransformerLoadPercent','AvgHighVoltage', 'AvgHighVoltagePercent','AvgLowVoltage', 'AvgLowVoltagePercent'),
-                                    EXCLUS('AvgLineLoad', 'AvgLineLoadPercent'),EXCLUS('AvgTransformerLoad','AvgTransformerLoadPercent'),EXCLUS('AvgHighVoltage', 'AvgHighVoltagePercent'),EXCLUS('AvgLowVoltage', 'AvgLowVoltagePercent'),),
-                          statut = 'o',
-                          consigne = SIMP(statut='o',homo='information',typ = "TXM",defaut = 'Choose at least one of the potential selection criteria from the SelectWorstCases list on the right.'),
-                          AvgLineLoad = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0),
-                          AvgLineLoadPercent = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0, val_max = 100),
-                          AvgTransformerLoad = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0),
-                          AvgTransformerLoadPercent = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0, val_max = 100),
-                          AvgHighVoltage = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0),
-                          AvgHighVoltagePercent = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0, val_max = 100),
-                          AvgLowVoltage = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0),
-                          AvgLowVoltagePercent = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0, val_max = 100),
-                        ),
-                        ),
-
-
-                      Automatic_N_2_Selection = FACT(statut='f',
-
-                          BusesList = SIMP(statut = 'o', typ = 'R', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
-                          LinesList = SIMP(statut = 'o', typ = 'R', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
-                          TransformersList = SIMP(statut = 'o', typ = 'TXM', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
-                        ),
-
-                     MultipleContingencyList = FACT (statut='f',
-                                                          max="**",
-                                                          ComponentList=SIMP(statut='o', typ = 'TXM', max='**', homo = 'SansOrdreNiDoublon',),
-                     ),
-
-                      )
-
-CONTINGENCY_PROCESSING = MACRO ( nom = 'CONTINGENCY_PROCESSING',
-                        sd_prod = opsPSEN_N1.PROCESS,
-                        op_init = opsPSEN_N1.PROCESS_context,
-
-                        #sd_prod=None,
-
-                        op = None,
-                        fichier_ini = 1,
-                        fr = "",
-                        ang="",
-                        XLS_file = SIMP(statut="o", typ = ('Fichier', 'XLS file (*.xls);;All Files (*)',),),
-                        b_TabList = BLOC(condition="XLS_file != None and XLS_file != ''",
-                            TabList = SIMP(statut = 'o', typ = 'TXM', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'), ),
-
-#                        b_highVoltage = BLOC(condition="'High Voltage 0' in TabList",
-#                                                     HighVoltageBuses = SIMP(statut = 'o', typ = 'TXM', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
-#                                                     HighVoltageContingencies = SIMP(statut = 'o', typ = 'TXM', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
-#                                                     ),
-
-                    )
-
-Ordre_Des_Commandes = ('CASE_SELECTION' , 'N_PROCESSING_OPTIONS' , 'CONTINGENCY_SELECTION', 'CONTINGENCY_OPTIONS' ,'CONTINGENCY_PROCESSING',)
-Classement_Commandes_Ds_Arbre = ('CASE_SELECTION' , 'N_PROCESSING_OPTIONS' , 'CONTINGENCY_SELECTION', 'CONTINGENCY_OPTIONS' ,'CONTINGENCY_PROCESSING',)
diff --git a/ProcessOutputs_Eficas/PSEN_Cata_N1.py.ok b/ProcessOutputs_Eficas/PSEN_Cata_N1.py.ok
deleted file mode 100644 (file)
index f259816..0000000
+++ /dev/null
@@ -1,250 +0,0 @@
-# -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2013   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-
-# --------------------------------------------------
-# debut entete
-# --------------------------------------------------
-
-#from Accas import ASSD, JDC_CATA, AU_MOINS_UN, PROC, SIMP, FACT, OPER, MACRO, BLOC, A_VALIDATOR
-from Accas import *
-import opsPSEN_N1
-#
-#
-
-# import types
-class Tuple:
-   def __init__(self,ntuple):
-     self.ntuple=ntuple
-
-   def __convert__(self,valeur):
-     if type(valeur) == types.StringType:
-       return None
-     if len(valeur) != self.ntuple:
-       return None
-     return valeur
-
-   def info(self):
-     return "Tuple de %s elements" % self.ntuple
-
-   __repr__=info
-   __str__=info
-
-# class Matrice:
-#   def __init__(self,nbLigs=None,nbCols=None,methodeCalculTaille=None,formatSortie="ligne",valSup=None,valMin=None,structure=None):
-#       self.nbLigs=nbLigs
-#       self.nbCols=nbCols
-#       self.methodeCalculTaille=methodeCalculTaille
-#       self.formatSortie=formatSortie
-#       self.valSup=valSup
-#       self.valMin=valMin
-#       self.structure=structure
-#
-#   def __convert__(self,valeur):
-#     # Attention ne verifie pas grand chose
-#     if type(valeur) != types.ListType :
-#       return None
-#     return valeur
-#
-#   def info(self):
-#       return "Matrice %s x %s" % (self.nbLigs, self.nbCols)
-#
-#       __repr__=info
-#       __str__=info
-
-
-#CONTEXT.debug = 1
-JdC = JDC_CATA ( code = 'PSEN',
-                 execmodul = None,
-                 regles = ( AU_MOINS_UN ( 'CASE_SELECTION' ),
-                            # AU_MOINS_UN ( 'DIRECTORY' ),
-                            # AU_MOINS_UN ( 'DISTRIBUTION' ),
-                            # AU_MOINS_UN ( 'SIMULATION' ),
-                            # AU_PLUS_UN ( 'PSSE_PARAMETERS' ),
-                            # AU_PLUS_UN ( 'DIRECTORY' ),
-                            # AU_PLUS_UN ( 'SIMULATION' ),
-                            # AU_PLUS_UN ( 'CORRELATION' ),
-                            # AU_PLUS_UN ( 'N_1_GENERATORS' ),
-                            # AU_PLUS_UN ( 'N_1_LINES' ),
-                            # AU_PLUS_UN ( 'N_1_LOADS' ),
-                            # AU_PLUS_UN ( 'N_1_TRANSFORMERS' ),
-
-                            ),
-                 ) # Fin JDC_CATA
-
-
-# --------------------------------------------------
-# fin entete
-# --------------------------------------------------
-## TODO : RUN
-CASE_SELECTION = MACRO ( nom = "CASE_SELECTION",
-                      sd_prod = opsPSEN_N1.INCLUDE,
-                      op_init = opsPSEN_N1.INCLUDE_context,
-                      fichier_ini = 1,
-                      op = None,
-                      fr = "Sélectionnez les cas à analyser",
-                      ang = 'Select the cases to analyze',
-                      PSSE_path = SIMP(statut="o",typ='Repertoire',defaut='C:\Program Files (x86)\PTI\PSSE33\PSSBIN'),
-                      output_folder = SIMP(statut="o", typ="Repertoire"),
-
-
-                      BusesList = SIMP(statut = 'f', typ = 'R', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
-                      LinesList = SIMP(statut = 'f', typ = 'R', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
-                      TransformersList = SIMP(statut = 'f', typ = 'TXM', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
-                      MaxDepth = SIMP(statut = 'o', typ = 'I', defaut = 5),
-                      OutputNewCsv = SIMP ( statut = "o",typ=bool,defaut=False,),
-                 )
-N_PROCESSING_OPTIONS = PROC ( nom = 'N_PROCESSING_OPTIONS',
-                            op = None,
-                            ang = "Select whether the program should be displaying data ablout the different categories. The values displayed will be the min, max, and mean of each item, plus a chart.",  
-                           Output_bus_values = SIMP(statut = 'o', typ = bool, defaut = True),
-                           Output_lines_values = SIMP(statut = 'o', typ = bool, defaut = True),
-                           Output_transformer_values = SIMP(statut = 'o', typ = bool, defaut = True),
-                           Threshold_selection_for_the_treated_cases = FACT(
-                              statut = 'f',
-                              Branches = SIMP(statut="o",typ=Tuple(3),defaut=(0,0,0),validators=VerifTypeTuple(('R','R','R'),),),
-                              Transformers = SIMP(statut="o",typ=Tuple(3),defaut=(0,0,0),validators=VerifTypeTuple(('R','R','R'),),),
-                              High_voltage = SIMP(statut="o",typ=Tuple(3),defaut=(0,0,0),validators=VerifTypeTuple(('R','R','R'),),),
-                              Low_voltage = SIMP(statut="o",typ=Tuple(3),defaut=(0,0,0),validators=VerifTypeTuple(('R','R','R'),),),
-                           ),
-                           )
-
-
-CONTINGENCY_OPTIONS = PROC (nom = 'CONTINGENCY_OPTIONS',
-                            op = None,
-                            
-                            GeneralOptions = FACT(statut='o',
-                                Vmin = SIMP(statut = 'o', typ = 'R', defaut = 0.9, val_min = 0),
-                                Vmax = SIMP(statut = 'o', typ = 'R', defaut = 1.1, val_min = 0),
-                                ContingencyRate = SIMP(statut = 'o', typ = 'TXM', defaut = 'a', into=['a', 'b']),
-                                FlowLimitLines = SIMP(statut = 'o', typ = 'I', defaut = 120, val_min = 0),
-                                FlowLimitTransformers = SIMP(statut = 'o', typ = 'I', defaut = 120, val_min = 0),
-                                Tolerance = SIMP(statut = 'o', typ = 'R', defaut = 0.5, val_min = 0),
-                                TripLines = SIMP(statut = 'o', typ = bool, defaut = True),
-                                TripTransfos = SIMP(statut = 'o', typ = bool, defaut = True),
-                                TripGenerators = SIMP(statut = 'o', typ = bool, defaut = True),
-                                ),                            
-
-                            LoadFlowOptions = FACT(statut='o',
-                                AdjustTaps = SIMP(statut = 'o', typ = 'TXM', into = ['0 - Lock', '1 - Stepping', '2 - Direct'], defaut = '1 - Stepping'),
-                                AdjustDCtaps = SIMP(statut = 'o', typ = 'TXM', into = ['0 - Disable', '1 - Enable'], defaut = '1 - Enable'),
-                                SolutionMethod = SIMP(statut = 'o', typ = 'TXM', into = ['0 - FDNS', '1 - FNSL', '2 - Optimized FDNS'], defaut = '1 - FNSL'),
-                                AdjustSwitchedShunts = SIMP(statut = 'o', typ = 'TXM', into = ['0 - Disable', '1 - Enable', '2 - Enable continuous mode'], defaut = '1 - Enable'),
-                                DispatchMode = SIMP(statut = 'o', typ = 'TXM', into = ['0 - Disable', '1 - Reserve', '2 - Pmax', '3 - Inertia', '4 - Droop'], defaut = '1 - Reserve'),
-                                FlatStart = SIMP(statut = 'o', typ = bool, defaut = False),
-                                VarLimits = SIMP(statut = 'o', typ = 'I', defaut = 99,ang = 'if set to -1, var limits will not be applied'),
-                                ),
-                            
-                            OutputOptions = FACT(statut='o',
-                                consigne1 = SIMP(statut='o',homo='information',typ = "TXM",defaut = 'Output PSSE multiple contingency report to Shell?'),
-                                MultipleContingencyReport = SIMP(statut = 'o', typ = bool, defaut = True, ang = 'Output PSSE multiple contingency report to Shell?'),
-                                consigne2 = SIMP(statut='o',homo='information',typ = "TXM",defaut = 'Write an Excel file for the results of each case file?'),
-                                WriteIndivExcels = SIMP(statut = 'o', typ = bool, defaut = True),
-                                consigne3 = SIMP(statut='o',homo='information',typ = "TXM",defaut = 'Add a tab in Excel results file for the differences between the max flow rate (MVAR) and the actual flow rate in lines and transformers?'),
-                                WriteFlowDifs = SIMP(statut = 'o', typ = bool, defaut = True),                            
-                            ),
-                        )
-
-
-
-
-CONTINGENCY_SELECTION = PROC(nom='CONTINGENCY_SELECTION',op = None,
-                      SelectionMethod = SIMP(statut='o',typ='TXM',into=['CaseSelectionFromFile','SelectAllCases','SelectWorstCases'],
-                      ),
-                      
-                      b_file = BLOC(condition="SelectionMethod=='CaseSelectionFromFile'",
-                      CaseSelectionFromFiles = FACT(
-                           statut = 'o',
-                           regles=(AU_MOINS_UN('branch_cases','transformer_cases','high_voltage_cases','low_voltage_cases',),),
-                           branch_cases = SIMP(statut='o', defaut='', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)','Sauvegarde'),),
-                           transformer_cases = SIMP(statut='o', defaut='', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)','Sauvegarde',),),
-                           high_voltage_cases = SIMP(statut='o', defaut='', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)','Sauvegarde'),),
-                           low_voltage_cases = SIMP(statut='o', defaut='', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)','Sauvegarde'),),
-                        ),
-                        
-#                      CaseSelectionFromFile = FACT(
-#                           statut = 'o',
-#                           input_path = SIMP(statut="o",typ='Repertoire'),
-#                           branch_cases = SIMP(statut='o', typ='TXM'),
-#                           transformer_cases = SIMP(statut='o', typ='TXM'),
-#                           high_cases = SIMP(statut='o', typ='TXM'),
-#                           low_cases = SIMP(statut='o', typ='TXM'),
-#                        ),
-                        
-                        ),
-                        
-#                      b_all = BLOC(condition="SelectionMethod=='SelectAllCases'",
-#                      SelectAllCases = FACT(
-#                           statut='o',
-#                           all_cases = SIMP(statut='o', typ=bool, defaut = True),
-#                         ),
-#                         ),
-                         
-                      b_worst = BLOC(condition="SelectionMethod=='SelectWorstCases'",
-                      SelectWorstCases = FACT(
-                          regles = (UN_PARMI('AvgBranchLoad', 'AvgBranchLoadPercent'), UN_PARMI('AvgTransformerLoad', 'AvgTransformerLoadPercent'), UN_PARMI('AvgHighVoltage', 'AvgHighVoltagePercent'), UN_PARMI('AvgLowVoltage', 'AvgLowVoltagePercent'),),
-                          statut = 'o',
-                          consigne = SIMP(statut='o',homo='information',typ = "TXM",defaut = 'Choose at least one of the potential selection criteria from the SelectWorstCases list on the right.'),
-                          AvgBranchLoad = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0),
-                          AvgBranchLoadPercent = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0, val_max = 100),
-                          AvgTransformerLoad = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0),
-                          AvgTransformerLoadPercent = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0, val_max = 100),
-                          AvgHighVoltage = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0),
-                          AvgHighVoltagePercent = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0, val_max = 100),
-                          AvgLowVoltage = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0),
-                          AvgLowVoltagePercent = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0, val_max = 100),
-                        ),
-                        ),
-
-
-                      Automatic_N_2_Selection = FACT(statut='f',
-                                                     
-                          BusesList = SIMP(statut = 'o', typ = 'R', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
-                          LinesList = SIMP(statut = 'o', typ = 'R', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
-                          TransformersList = SIMP(statut = 'o', typ = 'TXM', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),                                                    
-                        ),
-
-                     MultipleContingencyList = FACT (statut='f',
-                                                          max="**",
-                                                          ComponentList=SIMP(statut='o', typ = 'TXM', max='**', homo = 'SansOrdreNiDoublon',),
-                     ),
-
-                      )
-
-CONTINGENCY_PROCESSING = MACRO ( nom = 'CONTINGENCY_PROCESSING',
-                        sd_prod = opsPSEN_N1.PROCESS,
-                        op_init = opsPSEN_N1.PROCESS_context,
-                                                
-                        #sd_prod=None,
-
-                        op = None,
-                        fichier_ini = 1,
-                        fr = "",
-                        ang="",
-                        XLS_file = SIMP(statut="o", typ = ('Fichier', 'XLS file (*.xls);;All Files (*)',),),
-                        TabList = SIMP(statut = 'f', typ = 'TXM', min = 0, max = '**',  homo = 'SansOrdreNiDoublon'), 
-                        
-#                        b_highVoltage = BLOC(condition="'High Voltage 0' in TabList",
-#                                                     HighVoltageBuses = SIMP(statut = 'o', typ = 'TXM', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
-#                                                     HighVoltageContingencies = SIMP(statut = 'o', typ = 'TXM', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
-#                                                     ),
-                        
-                    )
-
-Ordre_Des_Commandes = ('CASE_SELECTION' , 'N_PROCESSING_OPTIONS' , 'CONTINGENCY_OPTIONS' , 'CONTINGENCY_SELECTION',)
diff --git a/ProcessOutputs_Eficas/ProcessOutputs_Cata.py b/ProcessOutputs_Eficas/ProcessOutputs_Cata.py
deleted file mode 100644 (file)
index 7014466..0000000
+++ /dev/null
@@ -1,240 +0,0 @@
-# -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2013   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-
-# --------------------------------------------------
-# debut entete
-# --------------------------------------------------
-
-from Accas import *
-import opsPSEN_N1
-import pn
-#
-
-# import types
-class Tuple:
-   def __init__(self,ntuple):
-     self.ntuple=ntuple
-
-   def __convert__(self,valeur):
-     import types
-     if type(valeur) == types.StringType:
-       return None
-     if len(valeur) != self.ntuple:
-       return None
-     return valeur
-
-   def info(self):
-     return "Tuple de %s elements" % self.ntuple
-
-   __repr__=info
-   __str__=info
-
-
-#CONTEXT.debug = 1
-JdC = JDC_CATA ( code = 'PSEN',
-                 execmodul = None,
-                 regles = ( AU_MOINS_UN ( 'CASE_SELECTION', 'CONTINGENCY_PROCESSING' ),
-                            AU_MOINS_UN ( 'CONTINGENCY_SELECTION','N_PROCESSING_OPTIONS','CONTINGENCY_PROCESSING' ),
-                            PRESENT_PRESENT ( 'CONTINGENCY_SELECTION','CONTINGENCY_OPTIONS' ),
-                            # AU_MOINS_UN ( 'SIMULATION' ),
-                            # AU_PLUS_UN ( 'PSSE_PARAMETERS' ),
-                            AU_PLUS_UN ( 'CASE_SELECTION' ),
-                            AU_PLUS_UN ( 'CONTINGENCY_OPTIONS' ),
-                            AU_PLUS_UN ( 'CONTINGENCY_SELECTION' ),
-                            AU_PLUS_UN ( 'CONTINGENCY_PROCESSING' ),
-                            AU_PLUS_UN ( 'N_PROCESSING_OPTIONS' ),
-                            # AU_PLUS_UN ( 'N_1_LINES' ),
-                            # AU_PLUS_UN ( 'N_1_LOADS' ),
-                            # AU_PLUS_UN ( 'N_1_TRANSFORMERS' ),
-
-                            ),
-                 ) # Fin JDC_CATA
-
-MODIFICATION_CATALOGUE = MACRO ( nom = "MODIFICATION_CATALOGUE",
-                     sd_prod = pn.modification_catalogue,
-                     op_init=  pn.modification_catalogue2,
-                     op=None,
-                     UIinfo={"groupes":("CACHE")},
-                     Fonction=SIMP(statut='o', typ='TXM', into=['ajoutDefinitionMC']),
-                     Etape=SIMP(statut='o', typ='TXM',),
-                     Genea=SIMP(statut='o', typ='TXM', min=0, max='**'),
-                     NomSIMP=SIMP(statut='o', typ='TXM',),
-                     TypeSIMP=SIMP(statut='o', typ='TXM',),
-                     PhraseArguments=SIMP(statut='o', typ='TXM',),
-)
-# --------------------------------------------------
-# fin entete
-# --------------------------------------------------
-## TODO : RUN
-CASE_SELECTION = MACRO ( nom = "CASE_SELECTION",
-                      sd_prod = opsPSEN_N1.INCLUDE,
-                      op_init = opsPSEN_N1.INCLUDE_context,
-                      fichier_ini = 1,
-                      op = None,
-                      fr = "Sélectionnez les cas à analyser",
-                      ang = 'Select the cases to analyze',
-                      PSSE_path = SIMP(statut="o",typ='Repertoire',defaut='C:\Program Files (x86)\PTI\PSSE33\PSSBIN'),
-                      output_folder = SIMP(statut="o", typ="Repertoire"),
-
-
-                      BusesList = SIMP(statut = 'f', typ = 'R', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
-                      LinesList = SIMP(statut = 'f', typ = 'R', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
-                      TransformersList = SIMP(statut = 'f', typ = 'TXM', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
-                      MaxDepth = SIMP(statut = 'o', typ = 'I', defaut = 5),
-                      OutputNewCsv = SIMP ( statut = "o",typ=bool,defaut=False,),
-                 )
-N_PROCESSING_OPTIONS = PROC ( nom = 'N_PROCESSING_OPTIONS',
-                            op = None,
-                            ang = "Select whether the program should be displaying data about the different categories.\nThe values displayed will be the min, max, and mean of each item, plus a chart.",  
-                           Output_bus_values = SIMP(statut = 'o', typ = bool, defaut = True),
-                           Output_lines_values = SIMP(statut = 'o', typ = bool, defaut = True),
-                           Output_transformer_values = SIMP(statut = 'o', typ = bool, defaut = True),
-                           Threshold_selection_for_the_treated_cases = FACT(
-                              statut = 'f',
-                              Branches = SIMP(statut="o",typ=Tuple(3),defaut=(0,0,0),validators=VerifTypeTuple(('R','R','R'),),),
-                              Transformers = SIMP(statut="o",typ=Tuple(3),defaut=(0,0,0),validators=VerifTypeTuple(('R','R','R'),),),
-                              High_voltage = SIMP(statut="o",typ=Tuple(3),defaut=(0,0,0),validators=VerifTypeTuple(('R','R','R'),),),
-                              Low_voltage = SIMP(statut="o",typ=Tuple(3),defaut=(0,0,0),validators=VerifTypeTuple(('R','R','R'),),),
-                           ),
-                           )
-
-
-CONTINGENCY_OPTIONS = PROC (nom = 'CONTINGENCY_OPTIONS',
-                            op = None,
-                            
-                            GeneralOptions = FACT(statut='o',
-                                Vmin = SIMP(statut = 'o', typ = 'R', defaut = 0.9, val_min = 0),
-                                Vmax = SIMP(statut = 'o', typ = 'R', defaut = 1.1, val_min = 0),
-                                ContingencyRate = SIMP(statut = 'o', typ = 'TXM', defaut = 'a', into=['a', 'b']),
-                                FlowLimitLines = SIMP(statut = 'o', typ = 'I', defaut = 120, val_min = 0),
-                                FlowLimitTransformers = SIMP(statut = 'o', typ = 'I', defaut = 120, val_min = 0),
-                                Tolerance = SIMP(statut = 'o', typ = 'R', defaut = 0.5, val_min = 0),
-                                TripLines = SIMP(statut = 'o', typ = bool, defaut = True),
-                                TripTransfos = SIMP(statut = 'o', typ = bool, defaut = True),
-                                TripGenerators = SIMP(statut = 'o', typ = bool, defaut = True),
-                                ),                            
-
-                            LoadFlowOptions = FACT(statut='o',
-                                AdjustTaps = SIMP(statut = 'o', typ = 'TXM', into = ['0 - Lock', '1 - Stepping', '2 - Direct'], defaut = '1 - Stepping'),
-                                AdjustDCtaps = SIMP(statut = 'o', typ = 'TXM', into = ['0 - Disable', '1 - Enable'], defaut = '1 - Enable'),
-                                SolutionMethod = SIMP(statut = 'o', typ = 'TXM', into = ['0 - FDNS', '1 - FNSL', '2 - Optimized FDNS'], defaut = '1 - FNSL'),
-                                AdjustSwitchedShunts = SIMP(statut = 'o', typ = 'TXM', into = ['0 - Disable', '1 - Enable', '2 - Enable continuous mode'], defaut = '1 - Enable'),
-                                DispatchMode = SIMP(statut = 'o', typ = 'TXM', into = ['0 - Disable', '1 - Reserve', '2 - Pmax', '3 - Inertia', '4 - Droop'], defaut = '1 - Reserve'),
-                                FlatStart = SIMP(statut = 'o', typ = bool, defaut = False),
-                                VarLimits = SIMP(statut = 'o', typ = 'I', defaut = 99,ang = 'if set to -1, var limits will not be applied'),
-                                ),
-                            
-#                            OutputOptions = FACT(statut='o',
-#                                consigne1 = SIMP(statut='o',homo='information',typ = "TXM",defaut = 'Output PSSE multiple contingency report to Shell?'),
-#                                MultipleContingencyReport = SIMP(statut = 'o', typ = bool, defaut = True, ang = 'Output PSSE multiple contingency report to Shell?'),
-#                                consigne2 = SIMP(statut='o',homo='information',typ = "TXM",defaut = 'Write an Excel file for the results of each case file?'),
-#                                WriteIndivExcels = SIMP(statut = 'o', typ = bool, defaut = True),
-#                                consigne3 = SIMP(statut='o',homo='information',typ = "TXM",defaut = 'Add a tab in Excel results file for the differences between the max flow rate (MVAR) and the actual flow rate in lines and transformers?'),
-#                                WriteFlowDifs = SIMP(statut = 'o', typ = bool, defaut = True),                            
-#                            ),
-                        )
-
-
-
-
-CONTINGENCY_SELECTION = PROC(nom='CONTINGENCY_SELECTION',op = None,
-                      SelectionMethod = SIMP(statut='o',typ='TXM',into=['CaseSelectionFromFile','SelectAllCases','SelectWorstCases'],
-                      ),
-                      
-                      b_file = BLOC(condition="SelectionMethod=='CaseSelectionFromFile'",
-                      CaseSelectionFromFiles = FACT(
-                           statut = 'o',
-                           case = FACT(statut='o',max='**',
-                                       case_name=SIMP(statut='o',typ='TXM'),
-                                       csv_file= SIMP(statut='o', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)',),),),
-#                           regles=(AU_MOINS_UN('branch_cases','transformer_cases','high_voltage_cases','low_voltage_cases',),),
-#                           branch_cases = SIMP(statut='o', defaut='', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)','Sauvegarde'),),
-#                           transformer_cases = SIMP(statut='o', defaut='', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)','Sauvegarde',),),
-#                           high_voltage_cases = SIMP(statut='o', defaut='', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)','Sauvegarde'),),
-#                           low_voltage_cases = SIMP(statut='o', defaut='', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)','Sauvegarde'),),
-                        ),
-#                        ',
-#                      CaseSelectionFromFile = FACT(
-#                           statut = 'o',
-#                           input_path = SIMP(statut="o",typ='Repertoire'),
-#                           branch_cases = SIMP(statut='o', typ='TXM'),
-#                           transformer_cases = SIMP(statut='o', typ='TXM'),
-#                           high_cases = SIMP(statut='o', typ='TXM'),
-#                           low_cases = SIMP(statut='o', typ='TXM'),
-#                        ),
-                        
-                        ),
-                        
-#                      b_all = BLOC(condition="SelectionMethod=='SelectAllCases'",
-#                      SelectAllCases = FACT(
-#                           statut='o',
-#                           all_cases = SIMP(statut='o', typ=bool, defaut = True),
-#                         ),
-#                         ),
-                         
-                      b_worst = BLOC(condition="SelectionMethod=='SelectWorstCases'",
-                      SelectWorstCases = FACT(
-                          regles = (AU_MOINS_UN('AvgBranchLoad', 'AvgBranchLoadPercent','AvgTransformerLoad','AvgTransformerLoadPercent','AvgHighVoltage', 'AvgHighVoltagePercent','AvgLowVoltage', 'AvgLowVoltagePercent'),
-                                    EXCLUS('AvgBranchLoad', 'AvgBranchLoadPercent'),EXCLUS('AvgTransformerLoad','AvgTransformerLoadPercent'),EXCLUS('AvgHighVoltage', 'AvgHighVoltagePercent'),EXCLUS('AvgLowVoltage', 'AvgLowVoltagePercent'),),
-                          statut = 'o',
-                          consigne = SIMP(statut='o',homo='information',typ = "TXM",defaut = 'Choose at least one of the potential selection criteria from the SelectWorstCases list on the right.'),
-                          AvgBranchLoad = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0),
-                          AvgBranchLoadPercent = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0, val_max = 100),
-                          AvgTransformerLoad = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0),
-                          AvgTransformerLoadPercent = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0, val_max = 100),
-                          AvgHighVoltage = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0),
-                          AvgHighVoltagePercent = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0, val_max = 100),
-                          AvgLowVoltage = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0),
-                          AvgLowVoltagePercent = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0, val_max = 100),
-                        ),
-                        ),
-
-
-                      Automatic_N_2_Selection = FACT(statut='f',
-                                                     
-                          BusesList = SIMP(statut = 'o', typ = 'R', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
-                          LinesList = SIMP(statut = 'o', typ = 'R', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
-                          TransformersList = SIMP(statut = 'o', typ = 'TXM', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),                                                    
-                        ),
-
-                     MultipleContingencyList = FACT (statut='f',
-                                                          max="**",
-                                                          ComponentList=SIMP(statut='o', typ = 'TXM', max='**', homo = 'SansOrdreNiDoublon',),
-                     ),
-
-                      )
-
-CONTINGENCY_PROCESSING = MACRO ( nom = 'CONTINGENCY_PROCESSING',
-                        sd_prod = opsPSEN_N1.PROCESS,
-                        op_init = opsPSEN_N1.PROCESS_context,
-                        op = None,
-                        fichier_ini = 1,
-                        fr = "",
-                        ang="",
-                        XLS_file = SIMP(statut="f", typ = ('Fichier', 'XLS file (*.xls);;All Files (*)',),),
-                        b_TabList = BLOC(condition="XLS_file != None and XLS_file != ''",
-                            TabList = SIMP(statut = 'o', typ = 'TXM', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'), 
-                        
-                          ),
-                        
-                    )
-
-Ordre_Des_Commandes = ('CASE_SELECTION' , 'N_PROCESSING_OPTIONS' , 'CONTINGENCY_SELECTION', 'CONTINGENCY_OPTIONS' ,'CONTINGENCY_PROCESSING',)
-Classement_Commandes_Ds_Arbre = ('CASE_SELECTION' , 'N_PROCESSING_OPTIONS' , 'CONTINGENCY_SELECTION', 'CONTINGENCY_OPTIONS' ,'CONTINGENCY_PROCESSING',)
diff --git a/ProcessOutputs_Eficas/configuration_PSEN_N1.py b/ProcessOutputs_Eficas/configuration_PSEN_N1.py
deleted file mode 100644 (file)
index e17d491..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-# -*- coding: utf-8 -*-\r
-#            CONFIGURATION MANAGEMENT OF EDF VERSION\r
-# ======================================================================\r
-# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG\r
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY\r
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY\r
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR\r
-# (AT YOUR OPTION) ANY LATER VERSION.\r
-#\r
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT\r
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF\r
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU\r
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.\r
-#\r
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE\r
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,\r
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.\r
-#\r
-#\r
-# ======================================================================\r
-"""\r
-    Ce module sert pour charger les paramètres de configuration d'EFICAS\r
-"""\r
-# Modules Python\r
-from InterfaceQT4 import configuration\r
-import os\r
-\r
-\r
-class CONFIG(configuration.CONFIG_BASE):\r
-  ## test\r
-  #-----------------------------------\r
-  def __init__(self,appli,repIni):\r
-  #-----------------------------------\r
-\r
-      self.labels_user=['catalogues','lang']\r
-      self.labels_eficas=['lang','rep_cata','catalogues','affiche']\r
-\r
-      configuration.CONFIG_BASE.__init__(self,appli,'.Eficas_monCode')\r
-\r
-\r
-def make_config(appli,rep):\r
-    return CONFIG(appli,rep)\r
-\r
diff --git a/ProcessOutputs_Eficas/mesScripts_PSEN_N1.py b/ProcessOutputs_Eficas/mesScripts_PSEN_N1.py
deleted file mode 100644 (file)
index 12bf5db..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-def EficasProcessXLS(listeparam) :
-    print "dans processXLS"
-    item=listeparam[0]
-    dico=item.process_N1()
-    print dico
-
-    print "version pour Pascale --> decommenter les 2 lignes suivantes pour Laura"
-    #from Processor import processXLS
-    #processXLS(dico)
-    
-
-# le dictionnaire des commandes a la structure suivante :
-# la clef est la commande qui va proposer l action
-# puis un tuple qui contient
-#      - la fonction a appeler
-#       - le label dans le menu du clic droit
-#      - un tuple contenant les parametres attendus par la fonction
-#      - appelable depuis Salome uniquement -)
-#      - appelable depuis un item valide uniquement 
-#      - toolTip
-dict_commandes={
-   'CONTINGENCY_PROCESSING': ( (EficasProcessXLS,"process",('editor','item',),False,True,"process values "),),
-               }
diff --git a/ProcessOutputs_Eficas/opsPSEN_N1.py b/ProcessOutputs_Eficas/opsPSEN_N1.py
deleted file mode 100644 (file)
index 9554556..0000000
+++ /dev/null
@@ -1,195 +0,0 @@
-
-# -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2013   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-
-from ExtractGeneratorLoadLineandTransfoDicoProcess import *
-import os
-
-path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','TreatOutputs'))
-sys.path.append(path1)
-import Options
-
-def INCLUDE(self,PSSE_path,**args):
-   """
-       Fonction sd_prod pour la macro INCLUDE
-   """
-   CaseFolder = args['output_folder']
-   Options.RecursiveDepth = args['MaxDepth']
-   if CaseFolder==None:
-      return
-   reevalue=0
-   if hasattr(self,'fichier_ini'):
-       reevalue=1
-       if self.fichier_ini == CaseFolder : return
-       if hasattr(self,'old_context_fichier_init' ):
-         for concept in self.old_context_fichier_init.values():
-             self.jdc.delete_concept(concept)
-         self.jdc_aux=None
-         self.contexte_fichier_init={}
-         self.reevalue_sd_jdc()
-         self.jdc.reset_context()
-
-   self.fichier_ini=CaseFolder
-   self.contexte_fichier_init = {}
-   self.fichier_unite = 999
-   self.fichier_err = None
-   self.fichier_text=""
-
-   unite = 999
-
-   CaseFile = ''
-   FolderList = os.listdir(CaseFolder)
-   for folder in FolderList:
-      if folder[0:7] == 'package' or folder[0:4]== 'core':
-         # Get BaseCase.sav inside the first package folder we find
-         FolderContents = os.listdir(os.path.join(CaseFolder, folder))
-         for file in FolderContents:
-            if file == 'BaseCase.sav':
-               CaseFile = os.path.join(os.path.join(CaseFolder, folder), file)
-               break
-         break
-
-           
-   #try:
-   if 1 :
-      BusList, LinesList, TransfosList = getNominalkV(CaseFile)
-      #print "version en dur : decommenter la ligne suivante"
-      #getTrueLines(CaseFile)
-   #except Exception, e:
-   #   exc_type, exc_obj, exc_tb = sys.exec_info()
-   #   print(e)
-   #   print(exc_type, exc_tb.tb_lineno)
-
-   
-   for e in self.jdc.etapes:
-       if e.nom == 'CASE_SELECTION' : 
-          etape=e
-          break
-   self.jdc.editor.changeIntoMC(e, 'BusesList', BusList)
-   self.jdc.editor.changeIntoMC(e, 'LinesList', LinesList)
-   self.jdc.editor.changeIntoMC(e, 'TransformersList', TransfosList)
-
-   self.jdc.editor.changeIntoDefMC('CONTINGENCY_SELECTION', ('Automatic_N_2_Selection', 'BusesList'), BusList)
-   self.jdc.editor.changeIntoDefMC('CONTINGENCY_SELECTION', ('Automatic_N_2_Selection', 'LinesList'), LinesList)
-   self.jdc.editor.changeIntoDefMC('CONTINGENCY_SELECTION', ('Automatic_N_2_Selection', 'TransformersList'), TransfosList)
-   
-
-   try:
-       print "version en dur : decommenter la ligne suivante"
-       #a = updateConts()
-       self.jdc.editor.changeIntoDefMC('CONTINGENCY_SELECTION', ('MultipleContingencyList', 'ComponentList'), Options.ContFullList)
-   except Exception as e:
-      exc_type, exc_obj, exc_tb = sys.exec_info()
-      print(e)
-      print(exc_type, exc_tb.tb_lineno)
-
-
-
-
-
-def INCLUDE_context(self,d):
-   """
-       Fonction op_init pour macro INCLUDE
-   """
-   for k,v in self.g_context.items():
-      d[k]=v
-
-
-def PROCESS_context(self,d):
-    print "dans le init du Process"
-    if self.get_child('XLS_file').valeur == "" or self.get_child('XLS_file').valeur== None : return
-    self.OngletsSelectionnes= self.get_child('b_TabList').get_child('TabList').valeur
-    print "fin de PROCESS_context"
-
-def PROCESS(self,XLS_file,**args):
-
-    # self = Accas.A_MACRO_ETAPE.MACRO_ETAPE
-    self.sauve_args=args
-    if XLS_file == "" or XLS_file == None: return
-    #print XLS_file
-    #Storage.csvFileName = XLS_file
-    # c est la premiere fois
-    
-    if not (hasattr(self,'sheets')) :
-       #print 'attention en dur'
-       #from Processor_Storage import *
-       #print getSheets
-       #getSheets()
-       #ComponentList, ContingencyList = getComponentandContingencyList(Storage.sheets[0])
-       #print ComponentList
-       #print ContingencyList
-       #Storage.selectedDoubleRow[Storage.sheets[0]]=['PV MATIMBA']
-       #Storage.selectedDoubleCol[Storage.sheets[0]]=['MAZENOD_MHDAM_LI1_']
-       #self.jdc.editor.changeIntoMC(self,'TabList',Storage.sheets)
-       #self.sheets=Storage.sheets
-       #self.OngletsValeurs=[]
-
-       from Processor import getXLSinfo        
-       self.sheets = getXLSinfo(XLS_file)
-       self.jdc.editor.changeIntoMC(self,'TabList',self.sheets.keys(),('b_TabList',))
-       self.MCAjoutes=[]
-       self.OngletsSelectionnes=[]
-       
-    else :
-       # On a selectionne un onglet 
-       # On teste si on a modifie la liste des onglets
-
-       nouveauxOngletsSelectionnes= self.get_child('b_TabList').get_child('TabList').valeur
-       if  nouveauxOngletsSelectionnes==self.OngletsSelectionnes : return
-       if nouveauxOngletsSelectionnes==() or nouveauxOngletsSelectionnes == [] :
-          for MC in self.MCAjoutes : self.jdc.editor.deleteMC(self,MC,('b_TabList',))
-          self.MCAjoutes=[]
-          self.OngletsSelectionnes=[]
-          self.jdc.editor.fenetreCentraleAffichee.reaffiche()
-          return
-          
-       for Onglet in nouveauxOngletsSelectionnes:
-           if Onglet in self.OngletsSelectionnes : continue
-
-           MCFils='Component_List_For_'+Onglet
-           monInto=self.sheets[Onglet][0]
-           self.jdc.editor.ajoutDefinitionMC('CONTINGENCY_PROCESSING',('b_TabList',),MCFils,'TXM',min=0, max='**', into=monInto, homo= 'SansOrdreNiDoublon')
-           self.jdc.editor.ajoutMC(self,MCFils,[],('b_TabList',))
-           self.MCAjoutes.append(MCFils)
-
-           MCFils='Contingency_List_For_'+Onglet
-           monInto=self.sheets[Onglet][1]
-           self.jdc.editor.ajoutDefinitionMC('CONTINGENCY_PROCESSING',('b_TabList',),MCFils,'TXM',min=0, max='**', into=monInto, homo= 'SansOrdreNiDoublon')
-           self.jdc.editor.ajoutMC(self,MCFils,[],('b_TabList',))
-           self.MCAjoutes.append(MCFils)
-
-
-       for Onglet in self.OngletsSelectionnes:
-           if Onglet in nouveauxOngletsSelectionnes : continue
-
-           MCFils='Contingency_List_For_'+Onglet
-           self.jdc.editor.deleteMC(self,MCFils,('b_TabList',))
-           self.jdc.editor.deleteDefinitionMC('CONTINGENCY_PROCESSING',('b_TabList',),MCFils)
-           self.MCAjoutes.remove(MCFils)
-
-           MCFils='Component_List_For_'+Onglet
-           self.jdc.editor.deleteMC(self,MCFils,('b_TabList',))
-           self.jdc.editor.deleteDefinitionMC('CONTINGENCY_PROCESSING',('b_TabList',),MCFils)
-           self.MCAjoutes.remove(MCFils)
-
-       self.OngletsSelectionnes=nouveauxOngletsSelectionnes
-       self.jdc.editor.fenetreCentraleAffichee.reaffiche()
-   
diff --git a/ProcessOutputs_Eficas/prefs.py b/ProcessOutputs_Eficas/prefs.py
deleted file mode 100644 (file)
index 647d0ae..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright (C) 2007-2012   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-code="PSEN_N1" 
-import sys, os
-if os.path.dirname(os.path.abspath(__file__)) not in sys.path :
-   sys.path.insert(0,os.path.dirname(os.path.abspath(__file__)))
diff --git a/ProcessOutputs_Eficas/prefs_PSEN_N1.py b/ProcessOutputs_Eficas/prefs_PSEN_N1.py
deleted file mode 100644 (file)
index ffebe86..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-# -*- coding: utf-8 -*-
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-#
-#
-# ======================================================================
-
-import os,sys
-# repIni sert a localiser le fichier editeur.ini
-# Obligatoire
-repIni=os.path.dirname(os.path.abspath(__file__))
-INSTALLDIR=os.path.join(repIni,'..')
-sys.path[:0]=[INSTALLDIR]
-
-
-# lang indique la langue utilisee pour les chaines d'aide : fr ou ang
-lang='en' #'fr'
-
-# Codage des strings qui accepte les accents (en remplacement de 'ascii')
-encoding='iso-8859-1'
-docPath=repIni
-
-affiche='ordre'
-
-#
-catalogues=(
-   ('PSEN_N1','default',os.path.join(repIni,'PSEN_Cata_N1.py'),'ProcessOutputs','python'),
-)
diff --git a/ProcessOutputs_Eficas/properties.py b/ProcessOutputs_Eficas/properties.py
deleted file mode 100644 (file)
index 1d328a4..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#@ MODIF properties Accas DATE 11/06/2008 AUTEUR aster M.ADMINISTRATEUR
-# RESPONSABLE D6BHHHH J-P.LEFEBVRE
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-#     IDENTIFICATION DU GESTIONNAIRE DE COMMANDE ACCAS A PARTIR
-#     DE LA VERSION DU CODE_ASTER ASSOCIE
-#----------------------------------------------------------------------
-version = "1.2"
-date = "25/05/2010"
-exploit = False
diff --git a/ProcessOutputs_Eficas/qtEficas_PSEN_N1.py b/ProcessOutputs_Eficas/qtEficas_PSEN_N1.py
deleted file mode 100755 (executable)
index 948867b..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2012   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-"""
-   Ce module sert a lancer EFICAS configure pour Code_Aster
-"""
-# Modules Python
-# Modules Eficas
-
-import sys,os
-#sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..'))
-import prefs
-name='prefs_'+prefs.code
-__import__(name)
-
-#acceder scripts de Lucie
-path1 = os.path.abspath(os.path.join(os.path.abspath(__file__),'TreatOutputs'))
-path1 = 'C:\\Logiciels DER\\PSEN_V15\\Code\\ProcessOutputs_Eficas\TreatOutputs'
-sys.path.append(path1)
-
-print ('kjlkjlkjkl')
-print ('kjlkjlkjkl')
-print ('kjlkjlkjkl')
-print ('kjlkjlkjkl')
-print ('kjlkjlkjkl')
-print ('kjlkjlkjkl')
-print ('kjlkjlkjkl')
-
-from InterfaceQT4 import eficas_go
-if __name__ == '__main__': eficas_go.lance_eficas(code=prefs.code)
diff --git a/SPECA/SPECA_Cata_V1.py b/SPECA/SPECA_Cata_V1.py
deleted file mode 100644 (file)
index 72771cf..0000000
+++ /dev/null
@@ -1,542 +0,0 @@
-## -*- coding: utf-8 -*-\r
-#\r
-## --------------------------------------------------\r
-## debut entete\r
-## --------------------------------------------------\r
-#\r
-from Accas import *\r
-\r
-\r
-# rend disponible le type tuple (liste)\r
-import types\r
-class Tuple:\r
-  def __init__(self,ntuple):\r
-    self.ntuple=ntuple\r
-\r
-  def __convert__(self,valeur):\r
-    if type(valeur) == types.StringType:\r
-      return None\r
-    if len(valeur) != self.ntuple:\r
-      return None\r
-    return valeur\r
-\r
-  def info(self):\r
-    return "Tuple de %s elements" % self.ntuple\r
-\r
-  __repr__=info\r
-  __str__=info\r
-\r
-\r
-\r
-#\r
-#CONTEXT.debug = 1\r
-\r
-VERSION_CATALOGUE="2.0.0";\r
-\r
-JdC = JDC_CATA ( code = 'SPECA',\r
-                execmodul = None,\r
-                regles=(AU_MOINS_UN('SPECIFICATION_ANALYSE',),\r
-                        AU_PLUS_UN('SPECIFICATION_ANALYSE',),\r
-                        ),\r
-                       )# Fin JDC_CATA\r
-\r
-## ----- SPECIFICATION DE L'ETUDE ----- ##\r
-SPECIFICATION_ANALYSE= MACRO (nom       = 'SPECIFICATION_ANALYSE',\r
-              op        = None,\r
-              UIinfo    = {"groupes":("Machine tournante",)},\r
-              fr        = "Specification des analyses",\r
-              TYPE_ANALYSE     = SIMP(statut='o', typ='TXM',into=('STATIQUE', 'MODALE', 'HARMONIQUE', 'TRANSITOIRE', 'TRANSITOIRE_ACCIDENTEL','SYNTHESE')),\r
-              # pour V1.1 flexion uniquement\r
-              TYPE_COMPORTEMENT = BLOC(condition = "TYPE_ANALYSE in ('MODALE','HARMONIQUE','STATIQUE','TRANSITOIRE','TRANSITOIRE_ACCIDENTEL','SYNTHESE')",\r
-                                        FLEXION = SIMP(statut='o',typ='TXM',into=('OUI',),defaut='OUI',fr="Inclure la flexion ?"),\r
-                                        TORSION = SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='NON',fr="Inclure la torsion ?"),\r
-                                        COMPRESSION = SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='NON',fr="Inclure la compression ?"),\r
-                                      ),\r
-### ----- CALCUL STATIQUE ----- ##\r
-              ANALYSE_STATIQUE = BLOC(condition = "TYPE_ANALYSE == 'STATIQUE' ",\r
-              \r
-                      POIDS = SIMP(statut='o',typ='TXM',into=('OUI','NON'),defaut='OUI',fr="Choix d'application d'un poids"),\r
-                      CHARGES = SIMP(statut='o',typ='TXM',into=('DELIGNAGE','FORCE','AUCUNE'),defaut=None,fr="Choix d'application d'une charge"),\r
-                      DELIGNAGE = BLOC(condition = "CHARGES == 'DELIGNAGE' ",fr="Application d'un delignage",\r
-                              PARAM_DELIGNAGE = FACT(statut='o',min=1,max='**',fr="Parametres du delignage",\r
-                                     NOM_PALIER = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom d'un palier deligne"),\r
-                                     #VALEURS = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des valeurs du delignage du palier"),\r
-                                     DX = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du DX du delignage du palier"),\r
-                                     DY = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du DY du delignage du palier"),\r
-                             ), # fin PARAM_DELIGNAGE\r
-                      ), # fin DELIGNAGE\r
-                      # min=1,max=2,\r
-                      FORCE = BLOC(condition = "CHARGES == 'FORCE' ",fr="Application d'une force",\r
-                              PARAM_FORCE = FACT(statut='o',min=1,max='**',fr="Parametres de la force",\r
-                                     POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la coordonnee de la force"),\r
-                                     MAGNITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement de la magnitude de la force"),\r
-                                     FONC_APPLI = SIMP(statut='f',typ='R',min=2,max=2,defaut=None,fr="Renseignement de la fonction appliquee"),\r
-                              ), # fin PARAM_FORCE\r
-                      ), # fin FORCE\r
-                      ## fin specification calcul statique\r
-                      \r
-                      ## POST-TRAITEMENTS DU CALCUL STATIQUE\r
-                     POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Choix du type de post-traitement",\r
-                         TYPE = SIMP(statut='o',typ='TXM',into=('DEPL_ABS','DEPL_RELA','EFFORTS_PAL','REAC_NODA','CONTRAINTES'),defaut=None,fr="Choix du type de post-traitement"),\r
-                          DEPL = BLOC(condition="TYPE in ('DEPL_ABS','DEPL_RELA') ",fr="Deplacement",regles=UN_PARMI('POSITION','PALIER'),\r
-                              POSITION = SIMP(statut='f',typ='R',defaut=None,fr="Renseignement de la coordonnee du deplacement"),\r
-                              PALIER = SIMP(statut='f',max='**',typ='TXM',defaut=None,fr="Renseignement du nom du palier"),\r
-                          ), # fin DEPL\r
-                          CONTRAINTES = BLOC(condition="TYPE == 'CONTRAINTES' ",fr="Contraintes",regles=UN_PARMI('POSITION','ZONE','TOUT'),\r
-                              POSITION = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee de la contrainte"),\r
-                              ZONE = SIMP(statut='f',typ='TXM',defaut=None,fr="Renseignement de la zone de la contrainte"),\r
-                              TOUT = SIMP(statut='f',typ='TXM',into=('OUI'),fr="Choix de toutes les containtes"),\r
-                          ), # fin CONTRAINTES\r
-                          #REAC_NODA = BLOC(condition="TYPE == 'REAC_NODA' ", fr="Reaction nodale",regles=UN_PARMI('POSITION','ZONE','TOUT'),\r
-                          #REAC_NODA = BLOC(condition="TYPE == 'REAC_NODA' ", fr="Reaction nodale",regles=UN_PARMI('POSITION','TOUT'),\r
-                          REAC_NODA = BLOC(condition="TYPE == 'REAC_NODA' ", fr="Reaction nodale",regles=UN_PARMI('POSITION','PALIER'),\r
-                              POSITION = SIMP(statut='f',typ='R',max=1,defaut=None,fr="Renseignement de la coordonnee de la reaction"),\r
-                              #ZONE = SIMP(statut='f',typ='TXM',defaut=None,fr="Renseignement de l'etiquette de la zone de la reaction"),\r
-                              PALIER = SIMP(statut='f',max='**',typ='TXM',defaut=None,fr="Renseignement du nom du palier"),\r
-                          ), # fin REAC_NODA\r
-                     ), # fin POST_TRAITEMENT\r
-                      ## fin bloc POST_TRAITEMENTS\r
-                      \r
-              ),# fin ANALYSE_STATIQUE\r
-\r
-### ----- CALCUL MODALE ----- ##\r
-              ANALYSE_MODALE = BLOC(condition = "TYPE_ANALYSE == 'MODALE' ",\r
-                      BASE_CALCUL = SIMP(statut='o',typ="TXM",into=('MODALE','PHYSIQUE'),defaut=None,fr="Choix de la base du calcul modal"),\r
-                      BASE_MODALE = BLOC(condition="BASE_CALCUL=='MODALE'",fr="Calcul sur base modale",\r
-                                         regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
-                                         NB_MODES=SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de mode"),\r
-                                         FREQ_MAX=SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale"),\r
-                      ), # fin BASE_MODALE\r
-                      AMORTISSEMENT = SIMP(statut='o',typ='TXM',min=1,max=1,into=('OUI','NON'),defaut='OUI',fr="Choix de prise en compte de l'amortissment"),\r
-                      GYROSCOPIE = SIMP(statut='o',typ='TXM',min=1,max=1,into=('OUI','NON'),defaut='OUI',fr="Choix de prise en compte de la gyroscopie"),\r
-                      VITESSE_ROTATION = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la liste des vitesses de rotation (tr/min)"),\r
-                     OPTION_CALCUL = SIMP(statut='o',typ='TXM',min=1,max=1,into=('PLUS_PETITE','CENTRE'),defaut=None,fr="Choix de l'option de calcul"),\r
-                     # 20121018 EDF demande de retirer cette option : l'option bande ne fonctionne pas avec MODE_ITER_SIMULT\r
-                     #OPTION_CALCUL = SIMP(statut='o',typ='TXM',min=1,max=1,into=('BANDE','PLUS_PETITE','CENTRE'),defaut=None,fr="Choix de l'option de calcul"),\r
-                      #BANDE = BLOC(condition="OPTION_CALCUL=='BANDE'",fr="Option BANDE",\r
-                       #      FREQ_MIN = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence minimale (Hz)"),\r
-                       #     FREQ_MAX = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale (Hz)"),\r
-                      #), # fin BANDE\r
-                      PLUS_PETITE = BLOC(condition="OPTION_CALCUL=='PLUS_PETITE'",fr="Option PLUS_PETITE",\r
-                             NMAX_FREQ = SIMP(statut='o',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre maximal de frequence"),\r
-                      ), # fin PLUS_PETITE\r
-                      CENTRE = BLOC(condition="OPTION_CALCUL=='CENTRE'",fr="Option CENTRE",\r
-                             FREQ = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence centrale (Hz)"),\r
-                             NMAX_FREQ = SIMP(statut='o',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre maximal de frequence"),\r
-                      ), # fin CENTRE\r
-                      METHODE=SIMP(statut='f',typ='TXM',min=1,max=1,into=('QZ','SORENSEN'),defaut='SORENSEN',fr="Choix de la méthode de résolution"),\r
-                      \r
-                      POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Choix du type de post-traitement",\r
-                             TYPE = SIMP(statut='o',typ='TXM',defaut=None,into=('TABLEAU_PARAM_MODAUX','DIAG_CAMPBELL'),),\r
-                             #TABLEAU_PARAM_MODAUX = SIMP(statut='f',typ='TXM',min=1,max=1,defaut=None,into=('SIMPLE','COMPLET'),fr="Choix du type de tableau"),\r
-                             TABLEAU_PARAM_MODAUX = BLOC(condition = "TYPE == 'TABLEAU_PARAM_MODAUX'",fr="Choix du type de tableau",\r
-                                     TABLEAU = SIMP(statut='o',max=1,typ='TXM',defaut='SIMPLE',into=('SIMPLE','COMPLET'),),\r
-                             ), # fin TABLEAU_PARAM_MODAUX\r
-                             DIAG_CAMPBELL = BLOC(condition = "TYPE == 'DIAG_CAMPBELL'", fr = "Choix des options du diagramme de Campbell",\r
-                                     PRECESSION = SIMP(statut='o',typ='TXM',max=1,defaut=None,into=('SOMME','PLUS_GRANDE_ORBITE'),),\r
-                                     SUIVI = SIMP(statut='o',typ='TXM',max=1,defaut=None,into=('SANS_TRI','TRI_PREC','TRI_FORM_MOD'),),\r
-                                      # 20121018 ajout de NB_MODES a la demande de Ionel Nistor\r
-                                     NB_MODES = SIMP(statut='o',typ='I',max=1,defaut=None,fr="Nombre de modes affiches dans le diagramme, doit etre inferieur au nombre de modes calcules"),\r
-                             ), # fin DIAG_CAMPBELL\r
-                             #DIAG_CAMPBELL = SIMP(statut='f',typ='TXM',min=1,max=1,defaut=None,into=('OUI','NON'),fr="Choix de calcul du diagramme de Campbell (uniquement si plusieurs vitesses de rotation ont ete renseignees)",),\r
-                      ), # fin POST_TRAITEMENTS\r
-                      \r
-                      \r
-              ), # fin ANALYSE_MODALE\r
-\r
-## ----- CALCUL HARMONIQUE ----- ##\r
-              ANALYSE_HARMONIQUE = BLOC(condition = "TYPE_ANALYSE == 'HARMONIQUE' ",fr="Analyse harmonique",\r
-              \r
-                      ## specification calcul harmonique\r
-                     BASE_CALCUL = SIMP(statut='o',typ='TXM',into=('PHYSIQUE','MODALE'),defaut=None,fr="Choix de la base du calcul harmonique"),\r
-                     BASE_MODALE = BLOC(condition = "BASE_CALCUL == 'MODALE' ", fr="Calcul harmonique sur base modale",\r
-                             #MODALE = FACT(statut='o',\r
-                                     regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
-                                     NB_MODES = SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de mode"),\r
-                                     FREQ_MAX = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale"),\r
-                             #),# fin MODALE\r
-                     ),# fin BASE_MODALE\r
-                     AMORTISSEMENT_P = BLOC(condition = "BASE_CALCUL == 'PHYSIQUE' ",\r
-                             AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
-                     ), # fin AMORTISSEMENT_P\r
-                     AMORTISSEMENT_M = BLOC(condition = "BASE_CALCUL == 'MODALE' ",\r
-                             AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('REDUIT','STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
-                             # cft modif 20130603\r
-                             #AMOR_REDUIT = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
-                             #        LIST_AMOR = SIMP(statut='o', typ='R', min=1,max='**',defaut=None,fr="Renseignement de la liste des amortissements"),\r
-                             #),# fin AMOR_REDUIT\r
-                             AMOR_MODAL = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
-                                     #AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max=1,defaut=None,fr="Renseignement de l'amortissement modal reduit (en %)"),\r
-                                     AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max='**',defaut=None,fr="Renseignement de l'amortissement modal reduit (en %), la taille de la liste doit etre egale au nombre de modes"),\r
-                             ),# fin AMOR_MODALE\r
-                     ), # fin AMORTISSEMENT_M\r
-                      VITESSE_ROTATION = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la liste des vitesses de rotation"),\r
-                      # 20121018 retrait de defaut_fn a la demande de EDF\r
-                      #CHARGES = SIMP(statut='o',typ='TXM',into=('BALOURD','HARMONIQUE','DEFAUT_FN','EXTERNE'),defaut=None,min=1,max=1,fr="Choix du type de charge a appliquer"),\r
-                      #CHARGES = SIMP(statut='o',typ='TXM',into=('BALOURD','DELIGNAGE','HARMONIQUE','EXTERNE'),defaut=None,min=1,max=1,fr="Choix du type de charge a appliquer"),\r
-                      CHARGES = SIMP(statut='o',typ='TXM',into=('BALOURD','HARMONIQUE','EXTERNE','AUCUNE'),defaut=None,min=1,max=1,fr="Choix du type de charge a appliquer"),\r
-                      BALOURD = BLOC(condition = "CHARGES == 'BALOURD' ",fr="Charge balourd appliquee",\r
-                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee de la charge balourd"),\r
-                              MAGNITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la magnitude de la charge balourd (en kg.m)"),\r
-                              FONC_APPLI = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la fonction appliquee de la charge balourd (autant de valeurs que de vitesses de rotation)"),\r
-                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge balourd (en degres)"),\r
-                      ),# fin BALOURD\r
-                      # 20121106 retrait de delgnage a le demande de EDF\r
-                      #DELIGNAGE = BLOC(condition = "CHARGES == 'DELIGNAGE' ",fr="Application d'un delignage",\r
-                              #PARAM_DELIGNAGE = FACT(statut='o',min=1,max='**',fr="Parametres du delignage",\r
-                                     #PALIERS = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom d'un palier deligne"),\r
-                                     #VALEURS = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des valeurs du delignage du palier"),\r
-                             #), # fin PARAM_DELIGNAGE\r
-                      #), # fin DELIGNAGE\r
-                      HARMONIQUE = BLOC(condition = "CHARGES == 'HARMONIQUE' ",fr="Charge harmonique appliquee",\r
-                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee de la charge harmonique"),\r
-                              PUIS_PULS = SIMP(statut='o',typ='I',min=1,max=1,into=(0,1,2),defaut=None,fr="Renseignement de la puissance de pulsation de la charge harmonique"),\r
-                              PULSATION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la pulsation d'excitation harmonique (en rad/s)"),\r
-                              MAGNITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la magnitude de la charge harmonique, (unite : N.s^i (avec i = PUIS_PULS))"),\r
-                              FONC_APPLI = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la fonction appliquee de la charge harmonique (autant de valeurs que de vitesses de rotation)"),\r
-                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge harmonique (en degres)"),\r
-                              TYPE_DDL = SIMP(statut='o',typ='TXM',min=1,max=1,into=('DX','DRX','DY','DRY'),defaut=None,fr="Renseignement du type de DDL excite sur lequel porte la charge"),\r
-                      ), # fin HARMONIQUE\r
-                      # 20121018 retrait de defaut_fn a la demande de EDF\r
-                      #DEFAUT_FN = BLOC(condition = "CHARGES == 'DEFAUT_FN' ",fr="Charge defaut de fibre neutre appliquee",\r
-                              #POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee du defaut de fibre neutre"),\r
-                              #TR_Y = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du vecteur de translation en Y du defaut de fibre neutre"),\r
-                              #TR_Z = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du vecteur de translation en Z du defaut de fibre neutre"),\r
-                              #ROT_Y = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du moment de rotation en Y du defaut de fibre neutre"),\r
-                              #ROT_Z = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du moment de rotation en Z du defaut de fibre neutre"),\r
-                      #), # fin DEFAUT_FN\r
-                      EXTERNE = BLOC(condition = "CHARGES == 'EXTERNE' ",fr="Charge externe appliquee",\r
-                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee de la charge externe"),\r
-                              FONC_APPLI = SIMP(typ=('Fichier','Charge Externe (*.csv)'),docu='',min=1,max=1,statut='o',defaut=None,fr="Renseignement de la fonction appliquee à la charge externe (fichier cvs)"),\r
-                      ), # fin EXTERNE\r
-                      ## fin secification calcul harmonique\r
-                      \r
-                      # test cft 20120531\r
-                      ## POST-TRAITEMENTS DU CALCUL HARMONIQUE\r
-                      POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Choix du type de post-traitement",\r
-                         #TYPE = SIMP(statut='o',typ='TXM',into=('DEPL_ABS','DEPL_RELA','EFFORTS_PAL','CONTRAINTES'),defaut=None,fr="Choix du type de post-traitement"),\r
-                         # 2012119 retrait de DEPL_ABS\r
-                         #TYPE = SIMP(statut='o',typ='TXM',into=('DEPL_RELA','EFFORTS_PAL','CONTRAINTES'),defaut=None,fr="Choix du type de post-traitement"),\r
-                         # 20130513 ajout de REAC_NODA\r
-                         TYPE = SIMP(statut='o',typ='TXM',into=('DEPL_RELA','REAC_NODA','EFFORTS_PAL','CONTRAINTES'),defaut=None,fr="Choix du type de post-traitement"),\r
-                         DEPL = BLOC(condition = "TYPE in ('DEPL_ABS','DEPL_RELA') ",fr="Deplacement",regles=UN_PARMI('POSITION','PALIER'),\r
-                              POSITION = SIMP(statut='f',typ='R',defaut=None,fr="Renseignement de la coordonnee du deplacement"),\r
-                              PALIER = SIMP(statut='f',max='**',typ='TXM',defaut=None,fr="Renseignement du nom du palier"),\r
-                         ), # fin DEPL\r
-                         # pas d'options pour EFFORTS_PAL et REAC_NODA\r
-                         #EFFORTS_PAL = BLOC(condition = "TYPE == 'EFFORTS_PAL'", fr = "Efforts paliers",\r
-                                 #PALIER = SIMP(statut='o',typ='TXM',max=1,defaut=None,fr="Renseignement de l'etiquette du palier"),\r
-                         #), # fin EFFORTS_PAL\r
-                         # BASE_CALCUL == 'MODALE'\r
-                         CONTRAINTES = BLOC(condition="TYPE == 'CONTRAINTES' ",fr="Contraintes",regles=UN_PARMI('POSITION','ZONE','TOUT'),\r
-                                 POSITION = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee de la contrainte"),\r
-                                 ZONE = SIMP(statut='f',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom de la zone de la contrainte"),\r
-                                 TOUT = SIMP(statut='f',typ='TXM',into=('OUI'),min=1,max=1,fr="Renseignement de la contrainte"),\r
-                         ), # fin CONTRAINTES\r
-                     ),\r
-                     ## fin bloc POST_TRAITEMENTS\r
-                      \r
-              ),# fin ANALYSE_HARMONIQUE\r
-\r
-### ----- CALCUL TRANSITOIRE ----- ##\r
-              ANALYSE_TRANSISTOIRE = BLOC(condition = "TYPE_ANALYSE == 'TRANSITOIRE' ",fr="Analyse transitoire",\r
-                      POIDS = SIMP(statut='o',typ='TXM',into=('OUI','NON'),defaut='OUI',fr="Choix d'application d'un poids"),\r
-                      VITESSE = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,into=('CONSTANTE','VARIABLE'),fr="Renseignement du type de vitesse de rotation"),\r
-                      BASE_C = BLOC(condition ="VITESSE == 'CONSTANTE'",\r
-                              BASE_CALCUL = SIMP(statut='o',typ='TXM',into=('PHYSIQUE','MODALE'),defaut=None,fr="Choix de la base du calcul transitoire"),\r
-                              BASE_MODALE = BLOC(condition = "BASE_CALCUL == 'MODALE' ", fr="Calcul transitoire sur base modale",\r
-                                                regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
-                                      NB_MODES = SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de mode"),\r
-                                     FREQ_MAX = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale"),\r
-                             ),# fin BASE_MODALE\r
-                             AMORTISSEMENT_M = BLOC(condition = "BASE_CALCUL == 'MODALE' ",\r
-                                     AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('REDUIT','STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
-                                     # cft modif 20130603\r
-                                     #AMOR_REDUIT = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
-                                     #        LIST_AMOR = SIMP(statut='o', typ='R', min=1,max='**',defaut=None,fr="Renseignement de la liste des amortissements"),\r
-                                     #),# fin AMOR_REDUIT\r
-                                     AMOR_MODAL = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
-                                             AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max='**',defaut=None,fr="Renseignement de l'amortissement modal reduit (en %), la taille de la liste doit etre egale au nombre de modes"),\r
-                                     ),# fin AMOR_MODALE\r
-                             ), # fin AMORTISSEMENT_M\r
-                      ), # fin BASE_C\r
-                      BASE_V = BLOC(condition ="VITESSE == 'VARIABLE'",\r
-                              BASE_CALCUL = SIMP(statut='o',typ='TXM',into=('MODALE'),defaut='MODALE',fr="Choix de la base du calcul transitoire"),\r
-                              BASE_MODALE = BLOC(condition = "BASE_CALCUL == 'MODALE' ", fr="Calcul transitoire sur base modale",\r
-                                                regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
-                                      NB_MODES = SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de mode"),\r
-                                     FREQ_MAX = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale"),\r
-                             ),# fin BASE_MODALE\r
-                             AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('REDUIT','STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
-                             # cft modif 20130603\r
-                             #AMOR_REDUIT = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
-                             #        LIST_AMOR = SIMP(statut='o', typ='R', min=1,max='**',defaut=None,fr="Renseignement de la liste des amortissements"),\r
-                             #),# fin AMOR_REDUIT\r
-                             AMOR_MODAL = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
-                                     #AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max=1,defaut=None,fr="Renseignement de l'amortissement modal reduit (en %)"),\r
-                                     AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max='**',defaut=None,fr="Renseignement de l'amortissement modal reduit (en %), la taille de la liste doit etre egale au nombre de modes"),\r
-                             ),# fin AMOR_MODALE\r
-                      ), # fin BASE_C\r
-                      #BASE_MODALE = BLOC(condition = "BASE_CALCUL == 'MODALE' ", fr="Calcul transitoire sur base modale",\r
-                     #                   regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
-                      #        NB_MODES = SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de mode"),\r
-                     #        FREQ_MAX = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale"),\r
-                     #),# fin BASE_MODALE\r
-                     # cft modif 20130603\r
-                     \r
-                     #AMORTISSEMENT_P = BLOC(condition = "BASE_CALCUL == 'PHYSIQUE' ",\r
-                     #        AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
-                     #), # fin AMORTISSEMENT_P\r
-                     #AMORTISSEMENT_M = BLOC(condition = "BASE_CALCUL == 'MODALE' ",\r
-                     #        AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('REDUIT','STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
-                     #        # cft modif 20130603\r
-                     #        #AMOR_REDUIT = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
-                     #        #        LIST_AMOR = SIMP(statut='o', typ='R', min=1,max='**',defaut=None,fr="Renseignement de la liste des amortissements"),\r
-                     #        #),# fin AMOR_REDUIT\r
-                     #        AMOR_MODAL = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
-                     #                AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max=1,defaut=None,fr="Renseignement de l'amortissement modal reduit (en %)"),\r
-                     #        ),# fin AMOR_MODALE\r
-                     #), # fin AMORTISSEMENT_M\r
-                     \r
-                     \r
-                     #AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('STRUCTUREL','REDUIT'),defaut=None,fr="Choix du type d'amortissement"),\r
-                     #AMOR_REDUIT = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
-                     #        LIST_AMOR = SIMP(statut='o', typ='R', min=1,max='**',defaut=None,fr="Renseignement de la liste des amortissements"),\r
-                     #),# fin AMOR_REDUIT\r
-                     #AMOR_MODAL = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
-                     #        AMOR_REDUIT = SIMP(statut='o', typ='R', min=1,max=1,defaut=None,fr="Renseignement de l'amortissement modal reduit (en %)"),\r
-                     #),# fin AMOR_MODALE\r
-                     #VITESSE = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,into=('CONSTANTE','VARIABLE'),fr="Renseignement du type de vitesse de rotation"),\r
-                     VITESSE_CONSTANTE = BLOC(condition = "VITESSE == 'CONSTANTE' ", fr="Vitesse de rotation constante",\r
-                              VITESSE_ROTATION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation"),\r
-                      ),# fin VITESSE_CONSTANTE\r
-                      VITESSE_VARIABLE = BLOC(condition = "VITESSE == 'VARIABLE' ", fr="Vitesse de rotation variable", regles=UN_PARMI('LINEAIRE','EXPONENTIELLE','FORMULE'),\r
-                              LINEAIRE = FACT(statut='f',min=1,max=1,fr="Renseignement de la fonction lineaire de la vitesse de rotation",\r
-                                      VITESSE_INITIALE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation initiale (en tr/min)",),\r
-                                      VITESSE_FINALE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation finale (en tr/min)",),\r
-                                      DEPHASAGE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la postion angulaire (en degre)"),\r
-                                      PAS_MAJ = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement du pas (ou liste) de mise a jour des matrices des paliers (en tours)"),\r
-                              ),# fin LINEAIRE\r
-                              EXPONENTIELLE = FACT(statut='f',min=1,max=1,fr="Renseignement de la fonction exponentielle de la vitesse de rotation",\r
-                                      VITESSE_INITIALE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation initiale (en tr/min)",),\r
-                                      VITESSE_FINALE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation finale (en tr/min)",),\r
-                                      DEPHASAGE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la postion angulaire (en degre)"),\r
-                                      LAMBDA = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du parametre de l'exponentielle"),\r
-                                      PAS_MAJ = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement du pas (ou liste) de mise a jour des matrices des paliers (en tours)"),\r
-                              ),# fin VITESSE_EXPONENTIELLE\r
-                              FORMULE = FACT(statut='f',min=1,max=1,fr="Renseignement de la fonction de la vitesse de rotation",\r
-                                      FICHIER = SIMP(statut='o',typ=('Fichier','Formule vitesse rotation (*.*)'),min=1,max=1,defaut=None,fr="Renseignement du fichier contenant les fonctions de la vitesse de rotation"),\r
-                                      OM = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom de la formule de position angulaire (max 8 caractere)"),\r
-                                      PHI = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom de la formule de vitesse angulaire (max 8 caractere)"),\r
-                                      ACC = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom de la formule d'acceleration angulaire (max 8 caractere)"),\r
-                                      PAS_MAJ = SIMP(statut='f',typ='R',min=1,max='**',defaut=None,fr="Renseignement du pas (ou liste) de mise a jour des matrices des paliers (en tours)"),\r
-                              ),# fin VITESSE_EXPONENTIELLE\r
-                      ),# fin VITESSE_VARIABLE\r
-                      #POIDS_PROPRE = SIMP(statut='o',typ='TXM',into=('OUI','NON'),defaut='NON',fr="Choix d'application du poids propre (pesanteur)"),\r
-                      # 20121018 retrait de defaut_fn a la demande de EDF\r
-                      #CHARGES = SIMP(statut='o',typ='TXM',into=('BALOURD','DEFAUT_FN','DELIGNAGE','EXTERNE'),defaut=None,min=1,max=1,fr="Choix du type de charge a appliquer"),\r
-                      # 20121119 retrait de delignage\r
-                      #CHARGES = SIMP(statut='o',typ='TXM',into=('BALOURD','DELIGNAGE','EXTERNE'),defaut=None,min=1,max=1,fr="Choix du type de charge a appliquer"),\r
-                      CHARGES = SIMP(statut='o',typ='TXM',into=('BALOURD','FORCE','HARMONIQUE'),defaut=None,min=1,max=1,fr="Choix du type de charge a appliquer"),\r
-                      BALOURD = BLOC(condition = "CHARGES == 'BALOURD' ",fr="Charge balourd appliquee",\r
-                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee de la charge balourd"),\r
-                              MAGNITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la magnitude de la charge balourd (en kg.m)"),\r
-                              FONC_APPLI = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la fonction appliquee de la charge balourd (autant de valeurs que de vitesses de rotation)"),\r
-                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge balourd (en degres)"),\r
-                              INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseigner l'instant pour déclencher le balourd"),\r
-                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseigner le temps pour la montée jusqu'à la valeur finale du balourd"),\r
-                      ),# fin BALOURD\r
-                      FORCE = BLOC(condition = "CHARGES == 'FORCE' ",fr="Application d'une force",\r
-                              PARAM_FORCE = FACT(statut='o',min=1,max='**',fr="Parametres de la force",\r
-                                     POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la coordonnee de la force"),\r
-                                     MAGNITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement de la magnitude de la force"),\r
-                                     FONC_APPLI = SIMP(statut='f',typ='R',min=2,max=2,defaut=None,fr="Renseignement de la fonction appliquee"),\r
-                              ), # fin PARAM_FORCE\r
-                      ), # fin FORCE\r
-                      HARMONIQUE = BLOC(condition = "CHARGES == 'HARMONIQUE' ",fr="Charge harmonique appliquee",\r
-                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee de la charge harmonique"),\r
-                              PUIS_PULS = SIMP(statut='o',typ='I',min=1,max=1,into=(0,1,2),defaut=None,fr="Renseignement de la puissance de pulsation de la charge harmonique"),\r
-                              PULSATION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la pulsation d'excitation harmonique (en rad/s)"),\r
-                              MAGNITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la magnitude de la charge harmonique, (unite : N.s^i (avec i = PUIS_PULS)"),\r
-                              FONC_APPLI = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la fonction appliquee de la charge harmonique (autant de valeurs que de vitesses de rotation)"),\r
-                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge harmonique (en degres)"),\r
-                              TYPE_DDL = SIMP(statut='o',typ='TXM',min=1,max=1,into=('DX','DRX','DY','DRY'),defaut=None,fr="Renseignement du type de DDL excite sur lequel porte la charge"),\r
-                      ), # fin HARMONIQUE\r
-                     # 20121018 retrait de defaut_fn a la demande de EDF\r
-                      #DEFAUT_FN = BLOC(condition = "CHARGES == 'DEFAUT_FN' ",fr="Charge defaut de fibre neutre appliquee",\r
-                              #POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee du defaut de fibre neutre"),\r
-                              #TR_Y = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du vecteur de translation en Y du defaut de fibre neutre"),\r
-                              #TR_Z = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du vecteur de translation en Z du defaut de fibre neutre"),\r
-                              #ROT_Y = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du moment de rotation en Y du defaut de fibre neutre"),\r
-                              #ROT_Z = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du moment de rotation en Z du defaut de fibre neutre"),\r
-                      #), # fin DEFAUT_FN\r
-                      # 20121119 retrait de delignage\r
-                      #DELIGNAGE = BLOC(condition = "CHARGES == 'DELIGNAGE' ",fr="Application d'un delignage",\r
-                              #PARAM_DELIGNAGE = FACT(statut='o',min=1,max='**',fr="Parametres du delignage",\r
-                                     #PALIERS = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom d'un palier deligne"),\r
-                                     #VALEURS = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des valeurs du delignage du palier"),\r
-                             #), # fin PARAM_DELIGNAGE\r
-                      #), # fin DELIGNAGE\r
-                      # retrait force fichier externe\r
-                      #EXTERNE = BLOC(condition = "CHARGES == 'EXTERNE' ",fr="Charge externe appliquee",\r
-                              #POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee de la charge externe"),\r
-                              #FONC_APPLI = SIMP(typ=('Fichier','Charge Externe (*.csv)'),docu='',min=1,max=1,statut='o',defaut=None,fr="Renseignement de la fonction appliquee à la charge externe (fichier cvs)"),\r
-                      #), # fin EXTERNE\r
-                      ETAT_INIT = FACT(statut='o',fr="Renseignement de l'etat initial",\r
-                              #RESULTAT = SIMP(statut='o',typ=('sd_resultat'),max=1,defaut=None,fr="Choix de la structure de donnees resultat de code aster "),\r
-                              RESULTAT = SIMP(statut='f',typ='TXM',max=1,defaut=None,fr="Choix de la structure de donnees resultat de code aster "),\r
-                              INST_INIT = SIMP(statut='f',typ='R',max=1,defaut=0.0,fr="Renseignement de l'instant initial"),\r
-                      ), # fin ETAT_INIT\r
-                      PARAM_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('PAS','LISTE'),defaut=None,fr="Choix du type de parametrage temporel"),\r
-                      #PAS = BLOC(condition = "VITESSE == 'VARIABLE'",fr="Renseignement des parametres des pas",\r
-                      PAS = BLOC(condition = "PARAM_TEMPS == 'PAS'",fr="Renseignement des parametres des pas",\r
-                              TEMPS_PAS = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement du pas de temps (en s)"),\r
-                              INST_INI = SIMP(statut='f',typ='R',max=1,defaut=None,fr="Renseignement de l'instant initial du pas"),\r
-                              INST_FIN = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement de l'instant final du pas"),\r
-                      ), # fin TEMPS_PAS\r
-                      LIST_INST = BLOC(condition = "PARAM_TEMPS == 'LISTE'",fr="Renseignement d'une liste de pas",\r
-                              LISTE = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement d'une liste de pas"),\r
-                      ), # fin LIST_INST\r
-                      PAS_ARCHIVAGE = SIMP(statut='o',typ='I',max=1,defaut=None,fr="Renseignement du pas d'archivage",),\r
-                      SCHEMA_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('NEWMARK','EULER','WILSON','ADAPT_ORDRE1','ADAPT_ORDRE2','DIFF_CENTRE'),defaut='NEWMARK',fr="Choix d'un schema temporel"),\r
-                      NEWMARK = BLOC(condition = "SCHEMA_TEMPS == 'NEWMARK' ",fr="Choix de la methode de NEWMARK",\r
-                              BETA = SIMP(statut='f',typ='R',max=1,defaut=0.25,fr="Renseignement de la valeur beta pour la methode de NEWMARK"),\r
-                              GAMMA = SIMP(statut='f',typ='R',max=1,defaut=0.25,fr="Renseignement de la valeur gamma pour la methode de NEWMARK"),\r
-                      ),# fin NEWMARK\r
-                      WILSON = BLOC(condition = "SCHEMA_TEMPS == 'WILSON' ",fr="Choix de la methode de WILSON",\r
-                              THETA = SIMP(statut='f',typ='R',max=1,defaut=1.4,fr="Renseignement de la valeur theta pour la methode de WILSON"),\r
-                      ), # fin WILSON\r
-                      #Ionel le 19122012, FISSURE n'est pas dans la V1\r
-                     #FISSURE = BLOC(condition = "BASE_CALCUL == 'MODALE' ",fr="Choix de calcul avec fissure",\r
-                      #        EMPLACEMENT = FACT(statut='o',fr="Renseignement de l'emplacement de la fissure",\r
-                      #                           regles=UN_PARMI('POSITION','NOEUD'),\r
-                      #                POSITION = SIMP(statut='f',typ='R',max=1,defaut=None,fr="Renseignement de la coordonnee de la fissure"),\r
-                      #                NOEUD = SIMP(statut='f',typ='TXM',max=1,defaut=None,fr="Renseignement de l'etiquette du noeud de la fissure"),\r
-                      #        ), # fin EMPLACEMENT\r
-                      #        VITE_ROTA = SIMP(statut='f',typ='R',max=1,defaut=None,fr="Renseignement de ?? "),\r
-                      #        ANGL_INIT = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement de ?? "),\r
-                      #        K_PHI = SIMP(statut='o',typ=('Fichier','K.PHI (*.*)'),docu='',min=1,max=1,defaut=None,fr="Renseignement de la loi de comportement en raideur de la fissure"),\r
-                      #        DK_DPHI = SIMP(statut='o',typ=('Fichier','DK.DPHI (*.*)'),docu='',min=1,max=1,defaut=None,fr="Renseignement de la deivee de la loi de comportement en raideur de la fissure"),\r
-                      #), # fin FISSURE\r
-                      \r
-                      ## POST_TRAITEMENTS de l'analyse transitoire\r
-                      POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Choix des post-traitements",\r
-                             TYPE = SIMP(statut='o',typ='TXM',into=('DEPL_ABS','DEPL_RELA','EFFORTS_PAL','CONTRAINTES'),defaut=None,fr="Choix du type de post-traitement"),\r
-                             DEPL = BLOC(condition = "TYPE in ('DEPL_ABS','DEPL_RELA') ",fr="Deplacement",regles=UN_PARMI('POSITION','PALIER'),\r
-                                     #POSITION_DEPL = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee du deplacement"),\r
-                                     POSITION = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee du deplacement"),\r
-                                     PALIER = SIMP(statut='f',typ='TXM',max=1,defaut=None,fr="Renseignement de l'etiquette du palier"),\r
-                             ), # fin DEPL\r
-                             # 20121119 pas de mots-cles specifique pour efforts_paliers\r
-                             #EFFORTS_PAL = BLOC(condition = "TYPE == 'EFFORTS_PAL'", fr = "Efforts paliers",\r
-                                 #PALIER = SIMP(statut='o',typ='TXM',max=1,defaut=None,fr="Renseignement de l'etiquette du palier"),\r
-                             #), # fin EFFORTS_PAL\r
-                             CONTRAINTES = BLOC(condition = "TYPE == 'CONTRAINTES' ",fr="Contraintes",\r
-                                               regles=UN_PARMI('POSITION','ZONE','TOUT'),\r
-                                     POSITION = SIMP(statut='f',typ='R',max=1,defaut=None,fr="Renseignement de la coordonnee de la contrainte"),\r
-                                     ZONE = SIMP(statut='f',typ='TXM',max=1,defaut=None,fr="Renseignement de l'etiquette de la zone de la contrainte"),\r
-                                     TOUT = SIMP(statut='f',typ='TXM',into=('OUI'),max=1,fr="tout"),\r
-                             ), # fin CONTRAINTES\r
-                     ), # fin POST_TRAITEMENTS\r
-              \r
-              ), # fin ANALYSE_TRANSISTOIRE\r
-              \r
-\r
-### ----- CALCUL COUPLE CODE_ASTER/EYDOS ----- ##\r
-              ANALYSE_TRANSITOIRE_ACCIDENTEL = BLOC(condition = "TYPE_ANALYSE == 'TRANSITOIRE_ACCIDENTEL' ",fr="Analyse transitoire accidentelle",\r
-                      #BASE_MODALE = FACT(statut='o', fr="Choix des parametres de la base modale",                                \r
-                     POIDS = SIMP(statut='o',typ='TXM',into=('OUI','NON'),defaut='OUI',fr="Choix d'application d'un poids"),\r
-                     BASE_MODALE = BLOC(condition = "True", fr="Choix des parametres de la base modale",\r
-                                        regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
-                              NB_MODES = SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de mode"),\r
-                             FREQ_MAX = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale"),\r
-                     ),# fin BASE_MODALE      \r
-                      # cft 20131217 suppression amortissement reduit\r
-                     #AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('STRUCTUREL','REDUIT'),defaut=None,fr="Choix du type d'amortissement"),\r
-                     AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
-                     AMOR_REDUIT = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
-                             #LIST_AMOR = SIMP(statut='o', typ='R', min=1,max='**',defaut=None,fr="Renseignement de la liste des amortissements"),\r
-                             LIST_AMOR = SIMP(statut='o', typ='R', min=1,max='**',defaut=None,fr="Renseignement de la liste des amortissements modaux reduits (en %), la taille de la liste doit etre egale au nombre de modes"),\r
-                     ),# fin AMOR_REDUIT\r
-                      VITESSE_ROTATION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation"),\r
-                      #POIDS_PROPRE = SIMP(statut='o',typ='TXM',into=('OUI','NON'),defaut='NON',fr="Choix d'application du poids propre (pesanteur)"),\r
-                      # 20121018 retrait de defaut_fn a la demande de EDF\r
-                      #CHARGES = SIMP(statut='o',typ='TXM',into=('BALOURD','DEFAUT_FN','DELIGNAGE','EXTERNE','EFFORTS_PALIERS'),defaut=None,min=1,max=1,fr="Choix du type de charge a appliquer"),\r
-                      #CHARGES = SIMP(statut='o',typ='TXM',into=('BALOURD','DELIGNAGE','EXTERNE','EFFORTS_PALIERS'),defaut=None,min=1,max=1,fr="Choix du type de charge a appliquer"),\r
-                      CHARGES = SIMP(statut='o',typ='TXM',into=('BALOURD','EXTERNE'),defaut=None,min=1,max=1,fr="Choix du type de charge a appliquer"),\r
-                      BALOURD = BLOC(condition = "CHARGES == 'BALOURD' ",fr="Charge balourd appliquee",\r
-                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee de la charge balourd"),\r
-                              MAGNITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la magnitude de la charge balourd (en kg.m)"),\r
-                              FONC_APPLI = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la fonction appliquee de la charge balourd (autant de valeurs que de vitesses de rotation)"),\r
-                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge balourd (en degres)"),\r
-                              INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseigner l'instant pour déclencher le balourd"),\r
-                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseigner le temps pour la montée jusqu'à la valeur finale du balourd"),\r
-                      ),# fin BALOURD\r
-                     # a commenter\r
-                     # 20121018 retrait de defaut_fn a la demande de EDF\r
-                      #DEFAUT_FN = BLOC(condition = "CHARGES == 'DEFAUT_FN' ",fr="Charge defaut de fibre neutre appliquee",\r
-                              #POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee du defaut de fibre neutre"),\r
-                              #TR_Y = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du vecteur de translation en Y du defaut de fibre neutre"),\r
-                              #TR_Z = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du vecteur de translation en Z du defaut de fibre neutre"),\r
-                              #ROT_Y = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du moment de rotation en Y du defaut de fibre neutre"),\r
-                              #ROT_Z = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du moment de rotation en Z du defaut de fibre neutre"),\r
-                      #), # fin DEFAUT_FN\r
-                      #DELIGNAGE = BLOC(condition = "CHARGES == 'DELIGNAGE' ",fr="Application d'un delignage",\r
-                              #PARAM_DELIGNAGE = FACT(statut='o',min=1,max='**',fr="Parametres du delignage",\r
-                                     #PALIERS = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom d'un palier deligne"),\r
-                                     #VALEURS = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des valeurs du delignage du palier"),\r
-                             #), # fin PARAM_DELIGNAGE\r
-                      #), # fin DELIGNAGE\r
-                      EXTERNE = BLOC(condition = "CHARGES == 'EXTERNE' ",fr="Charge externe appliquee",\r
-                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee de la charge externe"),\r
-                              FONC_APPLI = SIMP(typ=('Fichier','Charge Externe (*.csv)'),docu='',min=1,max=1,statut='o',defaut=None,fr="Renseignement de la fonction appliquee à la charge externe (fichier cvs)"),\r
-                      ), # fin EXTERNE\r
-                      #EFFORTS_PALIERS = BLOC(condition = "CHARGES == 'EFFORTS_PALIERS' ",fr="Application d'un effort palier",\r
-                              #PALIER = SIMP(statut='o',typ='TXM',max=1,defaut=None,fr="Renseignement de l'etiquette du palier de l'effort"),\r
-                              #VALEURS = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignment de la valeur de l'effort sur le palier"),\r
-                      #), # fin EFFORTS_PALIERS\r
-                      ETAT_INIT = FACT(statut='o',fr="Renseignement de l'etat initial",\r
-                              #RESULTAT = SIMP(statut='o',typ=('sd_resultat'),max=1,defaut=None,fr="Choix de la structure de donnees resultat de code aster "),\r
-                              # 20121126\r
-                              #RESULTAT = SIMP(statut='o',typ='TXM',max=1,defaut=None,fr="Choix de la structure de donnees resultat de code aster "),\r
-                              INST_INIT = SIMP(statut='f',typ='R',max=1,defaut=None,fr="Renseignement de l'instant initial"),\r
-                      ), # fin ETAT_INIT\r
-                      #PARAM_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('PAS','LIST_INST'),defaut=None,fr="Choix du type de parametrage temporel"),\r
-                      # 20121126\r
-                      PARAM_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('PAS'),defaut="PAS",fr="Choix du type de parametrage temporel",),\r
-                      PAS = BLOC(condition = "PARAM_TEMPS == 'PAS' ",fr="Renseignement des parametres des pas",\r
-                              PAS_ASTER = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement du pas de temps Aster (en s)",),\r
-                              PAS_EDYOS = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement du pas de temps Edyos (en s)",),\r
-                              INST_FIN = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement de l'instant final (en s)",),\r
-                      ), # fin TEMPS_PAS\r
-                      #LIST_INST = BLOC(condition = "PARAM_TEMPS == 'LIST_INST' ",fr="Renseignement d'une liste de pas",\r
-                              #LISTE = SIMP(statut='f',typ='R',min=1,max='**',defaut=None,fr="Renseignement d'une liste de pas"),\r
-                      #), # fin LIST_INST\r
-                      PAS_ARCHIVAGE = SIMP(statut='o',typ='I',max=1,defaut=None,fr="Renseignement du pas d'archivage",),\r
-                      PARA_MEM = SIMP(statut='f',typ='I',max=1,defaut=6400,fr="Renseigner la taille de la memoire en Mo",),\r
-                      PARA_CPU = SIMP(statut='f',typ='I',max=1,defaut=10000,fr="Renseigner le temps CPU max en secondes",),\r
-                      SCHEMA_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('EULER','ADAPT_ORDRE1','ADAPT_ORDRE2'),defaut='ADAPT_ORDRE2',fr="Choix d'un schema temporel"),\r
-                      \r
-                      ## POST_TRAITEMENTS de l'analyse transitoire\r
-                      POST_TRAITEMENTS = FACT(statut='o',fr="Choix des post-traitements",\r
-                             TYPE = SIMP(statut='o',typ='TXM',into=('DEPL_ABS','DEPL_RELA','EFFORTS_PAL','CONTRAINTES'),defaut=None,fr="Choix du type de post-traitement"),\r
-                             DEPL = BLOC(condition = "TYPE in ('DEPL_ABS','DEPL_RELA') ",fr="Deplacement",\r
-                                     POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee du deplacement"),\r
-                                     PALIER = SIMP(statut='f',typ='TXM',max=1,defaut=None,fr="Renseignement de l'etiquette du palier"),\r
-                             ), # fin DEPL\r
-                             # pas d'info à rentrer pour les efforts palier (post-traitement sur tout les paliers)\r
-                             #EFFORTS_PAL = BLOC(condition = "TYPE == 'EFFORTS_PAL'", fr = "Efforts paliers",\r
-                                 #PALIER = SIMP(statut='o',typ='TXM',max=1,defaut=None,fr="Renseignement de l'etiquette du palier"),\r
-                             #), # fin EFFORTS_PAL\r
-                             CONTRAINTES = BLOC(condition = "TYPE == 'CONTRAINTES' ",fr="Contraintes",\r
-                                               regles=UN_PARMI('POSITION','ZONE','TOUT'),\r
-                                     POSITION = SIMP(statut='f',typ='R',max=1,defaut=None,fr="Renseignement de la coordonnee de la contrainte"),\r
-                                     ZONE = SIMP(statut='f',typ='TXM',max=1,defaut=None,fr="Renseignement de l'etiquette de la zone de la contrainte"),\r
-                                     TOUT = SIMP(statut='f',typ='TXM',into=('OUI'),max=1,fr="tout"),\r
-                             ), # fin CONTRAINTES\r
-                     ), # fin POST_TRAITEMENTS\r
-                      \r
-                      \r
-              ), # fin ANALYSE_TRANSITOIRE_ACCIDENTEL\r
-                 \r
-)# fin SPECIFICATION_ANALYSE\r
diff --git a/SPECA/SPECA_Cata_V2016.py b/SPECA/SPECA_Cata_V2016.py
deleted file mode 100644 (file)
index fddaecb..0000000
+++ /dev/null
@@ -1,415 +0,0 @@
-## -*- coding: utf-8 -*-\r
-#\r
-## --------------------------------------------------\r
-## debut entete\r
-## --------------------------------------------------\r
-#\r
-from Accas import *\r
-\r
-\r
-# rend disponible le type tuple (liste)\r
-import types\r
-class Tuple:\r
-  def __init__(self,ntuple):\r
-    self.ntuple=ntuple\r
-\r
-  def __convert__(self,valeur):\r
-    if type(valeur) == types.StringType:\r
-      return None\r
-    if len(valeur) != self.ntuple:\r
-      return None\r
-    return valeur\r
-\r
-  def info(self):\r
-    return "Tuple de %s elements" % self.ntuple\r
-\r
-  __repr__=info\r
-  __str__=info\r
-\r
-\r
-\r
-#\r
-#CONTEXT.debug = 1\r
-\r
-VERSION_CATALOGUE="2016.0.0";\r
-\r
-JdC = JDC_CATA ( code = 'SPECA',\r
-                execmodul = None,\r
-                regles=(AU_MOINS_UN('SPECIFICATION_ANALYSE',),\r
-                        AU_PLUS_UN('SPECIFICATION_ANALYSE',),\r
-                        ),\r
-                       )# Fin JDC_CATA\r
-\r
-## ----- SPECIFICATION DE L'ETUDE ----- ##\r
-SPECIFICATION_ANALYSE= MACRO (nom       = 'SPECIFICATION_ANALYSE',\r
-              op        = None,\r
-              UIinfo    = {"groupes":("Machine tournante",)},\r
-              fr        = "Specification des analyses",\r
-              TYPE_ANALYSE     = SIMP(statut='o', typ='TXM',into=('STATIQUE', 'MODALE', 'HARMONIQUE', 'TRANSITOIRE', 'TRANSITOIRE_ACCIDENTEL','SYNTHESE')),\r
-              # pour V1.1 flexion uniquement\r
-              #TYPE_COMPORTEMENT = SIMP(statut='o', typ='TXM',into=('FLEXION',),defaut='FLEXION',fr="Renseignement du type de comportement voulu"),\r
-              TYPE_COMPORTEMENT = BLOC(condition = "TYPE_ANALYSE in ('MODALE','HARMONIQUE','STATIQUE','TRANSITOIRE','TRANSITOIRE_ACCIDENTEL')",\r
-                                        FLEXION = SIMP(statut='o',typ='TXM',into=('OUI',),defaut='OUI',fr="Prise en compte la flexion de la ligne d'arbres: obligatoire"),\r
-                                        TORSION = SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='NON',fr="Choix de la prise en compte la torsion de la ligne d'arbres"),\r
-                                        COMPRESSION = SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='NON',fr="Choix de la prise en compte la traction/compression de la ligne d'arbres"),\r
-                                      ),\r
-\r
-                 SURCHARGE=BLOC(condition = "TYPE_ANALYSE in ('MODALE','HARMONIQUE','STATIQUE','TRANSITOIRE','TRANSITOIRE_ACCIDENTEL','SYNTHESE')",statut="f",\r
-                                               TEMPLATE=SIMP(  statut="f",\r
-                                                               typ=("Fichier","Fichier Template (*.tpl)"),\r
-                                                               min=1,max=1,\r
-                                                                fr="Utiliser un template d'analyse modifie"\r
-                                                               ),\r
-                                               PARAMETRES= FACT(statut='f',min=1,max='**',fr="Definition et renseignement des parametres utilises dans le template surcharge",\r
-                                                                               CLE=SIMP(statut='o',typ='TXM',defaut=None,fr="Nom du parametre dans le template"),\r
-                                                                               TYPE=SIMP(statut='o',typ='TXM',into=('ENTIER','REEL','CHAINE','FICHIER','REPERTOIRE'),fr="Nature du parametre a renseigner"),\r
-                                                                               ENTIER=BLOC(condition="TYPE=='ENTIER'",\r
-                                                                                       VALUE=SIMP(statut='o',typ='I',defaut=0,fr="Renseignement d'un nombre entier"),\r
-                                                                                       ),\r
-                                                                               REEL=BLOC(condition="TYPE=='REEL'",\r
-                                                                                       VALUE=SIMP(statut='o',typ='R',defaut=0.0,fr="Renseignement d'un nombre reel"),\r
-                                                                                       ),\r
-                                                                               CHAINE=BLOC(condition="TYPE=='CHAINE'",\r
-                                                                                       VALUE=SIMP(statut='o',typ='TXM',defaut='',fr="Renseignement d'une chaine de caracteres"),\r
-                                                                                       ),\r
-                                                                               FICHIER=BLOC(condition="TYPE=='FICHIER'",\r
-                                                                                       VALUE=SIMP(statut='o',typ=("Fichier","All files (*.*)"),fr="Renseignement d'un fichier")\r
-                                                                                       ),\r
-                                                                               REPERTOIRE =BLOC(condition="TYPE=='REPERTOIRE'",\r
-                                                                                       VALUE=SIMP(statut='o',typ="Repertoire",fr="Renseignement d'un repertoire")\r
-                                                                                       ),\r
-\r
-                                                                       ),\r
-                       ),\r
-\r
-\r
-\r
-### ----- CALCUL STATIQUE ----- ##\r
-              ANALYSE_STATIQUE = BLOC(condition = "TYPE_ANALYSE == 'STATIQUE' ",fr="Analyse statique (vitesse de rotation nulle de la ligne d'arbres)",              \r
-                      CHARGES= FACT(statut='o',min=1,max='**',fr="Definition et renseignement du chargement applique",\r
-                      TYPE = SIMP(statut='o',typ='TXM',into=('POIDS','FORCE','MOMENT','DELIGNAGE'),defaut=None,min=1,max=1,fr="Choix du type de chargement a appliquer"),\r
-                      POIDS = BLOC(condition = "TYPE == 'POIDS' ",fr="Prise en compte du champ de pesanteur",\r
-                                             GRAVITE = SIMP(statut='o',typ='R',defaut=9.81,fr="Renseignement de l'intensite de la gravite (m/s^2)"),\r
-                                             DIRECTION = SIMP(statut='o',typ='R',min=3,max=3,defaut=(1,0,0),fr="Renseignement de la direction de la force de gravite"),\r
-                      ), # fin POIDS\r
-                      FORCE = BLOC(condition = "TYPE == 'FORCE' ",fr="Application d'une force ponctuelle",\r
-                                             POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la position axiale ou s'applique la force (m)"),\r
-                                             AMPLITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des 3 composantes decrivant la force (N)"),\r
-                                             #FONC_APPLI = SIMP(statut='f',typ='R',min=2,max=2,defaut=None,fr="Renseignement de la fonction appliquee"),\r
-                      ), # fin FORCE\r
-                      MOMENT = BLOC(condition = "TYPE == 'MOMENT' ",fr="Application d'un moment ponctuel",\r
-                                             POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la position axiale ou s'applique le moment (m)"),\r
-                                             AMPLITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des 3 composantes decrivant le moment (N/m)"),\r
-                      ), # fin MOMENT\r
-                      DELIGNAGE = BLOC(condition = "TYPE == 'DELIGNAGE' ",fr="Application d'un delignage sur un ou plusieurs paliers",\r
-                              NOM_PALIER = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom du palier deligne"),\r
-                              DX = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du delignage suivant X du palier (m)"),\r
-                              DY = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du delignage suivant Y du palier (m)"),\r
-                      ), # fin Delignage\r
-                      ), #fin CHARGES\r
-                     \r
-                      # POST-TRAITEMENTS DU CALCUL STATIQUE\r
-                      POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Definition et renseignement des post-traitements",\r
-                      CONTRAINTES = SIMP(statut='o',typ='TXM',into=('OUI', 'NON'),defaut='NON',fr="Export des contraintes en tout noeud de la ligne d'arbres"),\r
-                  ),  #fin POST_TRAITEMENTS\r
-              ),# fin ANALYSE_STATIQUE\r
-\r
-### ----- CALCUL MODALE ----- ##\r
-              ANALYSE_MODALE = BLOC(condition = "TYPE_ANALYSE == 'MODALE' ",fr="Analyse modale de la ligne d'arbres",\r
-                      BASE_CALCUL = SIMP(statut='o',typ="TXM",into=('MODALE','PHYSIQUE'),defaut=None,fr="Choix du type de resolution de l'analyse modale (sur base physique ou sur base modale)"),\r
-                      BASE_MODALE = BLOC(condition="BASE_CALCUL=='MODALE'",fr="Resolution sur base modale",\r
-                                         regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
-                                         NB_MODES=SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de modes constituant la base de projection"),\r
-                                         FREQ_MAX=SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale des modes constituant la base de projection (Hz)"),\r
-                      ), # fin BASE_MODALE\r
-                      AMORTISSEMENT = SIMP(statut='o',typ='TXM',min=1,max=1,into=('OUI','NON'),defaut='OUI',fr="Choix de la prise en compte de l'amortissment"),\r
-                      GYROSCOPIE = SIMP(statut='o',typ='TXM',min=1,max=1,into=('OUI','NON'),defaut='OUI',fr="Choix de la prise en compte de la gyroscopie"),\r
-                      VITESSE_ROTATION = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la liste des vitesses de rotation etudiees (tr/min)"),\r
-                     OPTION_CALCUL = SIMP(statut='o',typ='TXM',min=1,max=1,into=('PLUS_PETITE','CENTRE'),defaut=None,fr="Choix de l'option de calcul"),\r
-                      PLUS_PETITE = BLOC(condition="OPTION_CALCUL=='PLUS_PETITE'",fr="Calcul des n premieres frequences",\r
-                             NMAX_FREQ = SIMP(statut='o',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre maximal de frequences a calculer"),\r
-                      ), # fin PLUS_PETITE\r
-                      CENTRE = BLOC(condition="OPTION_CALCUL=='CENTRE'",fr="Calcul d'un nombre n de frequences autour d'une frequence donnee",\r
-                             FREQ = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence centrale (Hz)"),\r
-                             NMAX_FREQ = SIMP(statut='o',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre maximal de frequences"),\r
-                      ), # fin CENTRE\r
-                      METHODE=SIMP(statut='f',typ='TXM',min=1,max=1,into=('QZ','SORENSEN'),defaut='SORENSEN',fr="Choix de la methode de resolution"),\r
-\r
-                     # POST-TRAITEMENTS DU CALCUL MODAL\r
-                     POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Definition et renseignement des post-traitements",\r
-                                               TYPE = SIMP(statut='o',typ='TXM',into=('AUCUN','DIAG_CAMPBELL'), defaut = 'AUCUN'),\r
-                                               DIAG_CAMPBELL = BLOC(condition="TYPE == 'DIAG_CAMPBELL'",fr="Choix des options du diagramme de Campbell",\r
-                                               PRECESSION = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,into=('SOMME','PLUS_GRANDE_ORBITE'),fr="Critere de determination de la precession"),\r
-                                               SUIVI= SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,into=('SANS_TRI','TRI_PREC','TRI_FORM_MOD'),fr="Methode de suivi des modes"),\r
-                                               NB_MODES = SIMP(statut='o',typ='I',min=1,max=1,defaut=None,fr="Nombre de modes affiches dans le diagramme, doit etre inferieur au nombre de modes calcules (NMAX_FREQ)"),\r
-                                               ), # fin DIAG_CAMPBELL\r
-                              ),# fin POST_TRAITEMENTS\r
-              ), # fin ANALYSE_MODALE\r
-\r
-## ----- CALCUL HARMONIQUE ----- ##\r
-              ANALYSE_HARMONIQUE = BLOC(condition = "TYPE_ANALYSE == 'HARMONIQUE' ",fr="Analyse harmonique de la ligne d'arbres",\r
-              \r
-                      ## specification calcul harmonique\r
-                     BASE_CALCUL = SIMP(statut='o',typ='TXM',into=('PHYSIQUE','MODALE'),defaut=None,fr="Choix du type de resolution de l'analyse modale (sur base physique ou sur base modale)"),\r
-                     BASE_MODALE = BLOC(condition = "BASE_CALCUL == 'MODALE' ", fr="Resolution sur base modale",\r
-                             #MODALE = FACT(statut='o',\r
-                                     regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
-                                     NB_MODES = SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de modes constituant la base de projection"),\r
-                                     FREQ_MAX = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale des modes constituant la base de projection (Hz)"),\r
-                             #),# fin MODALE\r
-                     ),# fin BASE_MODALE\r
-                     AMORTISSEMENT_P = BLOC(condition = "BASE_CALCUL == 'PHYSIQUE' ",\r
-                             AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('STRUCTUREL',),defaut='STRUCTUREL',fr="Choix du type d'amortissement"),\r
-                     ), # fin AMORTISSEMENT_P\r
-                     AMORTISSEMENT_M = BLOC(condition = "BASE_CALCUL == 'MODALE' ",\r
-                             AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('REDUIT','STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
-                             AMOR_MODAL = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
-                                     #AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max=1,defaut=None,fr="Renseignement de l'amortissement modal reduit (en %)"),\r
-                                     AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max='**',defaut=None,fr="Renseignement de l'amortissement modal reduit (en %), la taille de la liste doit etre egale au nombre de modes constituant la base de projection"),\r
-                             ),# fin AMOR_MODALE\r
-                     ), # fin AMORTISSEMENT_M\r
-                      VITESSE_ROTATION = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la liste des vitesses de rotation etudiees (tr/min)"),\r
-                      # 20121018 retrait de defaut_fn a la demande de EDF\r
-                      CHARGES= FACT(statut='o',min=1,max='**',fr="Definition et renseignement du chargement applique",\r
-                      TYPE = SIMP(statut='o',typ='TXM',into=('BALOURD','HARMONIQUE'),defaut=None,min=1,max=1,fr="Choix du type de chargement a appliquer"),\r
-                      BALOURD = BLOC(condition = "TYPE == 'BALOURD' ",fr="Chargement de type balourd",\r
-                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la position axiale ou s'applique le balourd (m)"),\r
-                              AMPLITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de l'amplitude du balourd (kg.m)"),\r
-                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge balourd (degres)"),\r
-                      ),# fin BALOURD\r
-                      HARMONIQUE = BLOC(condition = "TYPE == 'HARMONIQUE' ",fr="Charge harmonique",\r
-                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la position axiale ou s'applique la charge harmonique (m)"),\r
-                              FREQUENCE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence d'excitation harmonique (Hz)"),\r
-                              AMPLITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de l'amplitude de la charge harmonique, (N)"),\r
-                              FONC_APPLI = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la liste de coefficients appliques sur la charge harmonique (autant que de vitesses de rotation)"),\r
-                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge harmonique (degres)"),\r
-                              TYPE_DDL = SIMP(statut='o',typ='TXM',min=1,max=1,into=('DX','DRX','DY','DRY','DZ','DRZ'),defaut=None,fr="Renseignement du DDL sur lequel s'applique la charge harmonique"),\r
-                      ), # fin HARMONIQUE\r
-                      ), #FIN CHARGES\r
-\r
-                      # POST-TRAITEMENTS DU CALCUL HARMONIQUE\r
-                  POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Definition et renseignement des post-traitements",\r
-                      CONTRAINTES = SIMP(statut='o',typ='TXM',into=('OUI', 'NON'),defaut='NON',fr="Export des contraintes en tout noeud de la ligne d'arbres"),\r
-                  ),\r
-                     ## fin POST_TRAITEMENTS\r
-                      \r
-              ),# fin ANALYSE_HARMONIQUE\r
-\r
-### ----- CALCUL TRANSITOIRE ----- ##\r
-              ANALYSE_TRANSISTOIRE = BLOC(condition = "TYPE_ANALYSE == 'TRANSITOIRE' ",fr="Analyse transitoire de la ligne d'arbres",\r
-                      \r
-                      VITESSE = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,into=('CONSTANTE','VARIABLE'),fr="Renseignement du type de vitesse de rotation consideree"),\r
-                      BASE_C = BLOC(condition ="VITESSE == 'CONSTANTE'",fr="Analyse transitoire a vitesse constante",\r
-                              BASE_CALCUL = SIMP(statut='o',typ='TXM',into=('PHYSIQUE','MODALE'),defaut=None,fr="Choix du type de resolution de l'analyse transitoire (sur base physique ou sur base modale)"),\r
-                              BASE_MODALE = BLOC(condition = "BASE_CALCUL == 'MODALE' ", fr="Resolution sur base modale",\r
-                                               regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
-                                                NB_MODES = SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de modes constituant la base de projection"),\r
-                                               FREQ_MAX = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale des modes constituant la base de projection (Hz)"),\r
-                             ),# fin BASE_MODALE\r
-                             AMORTISSEMENT_M = BLOC(condition = "BASE_CALCUL == 'MODALE' ",\r
-                                     AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('REDUIT','STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
-                                     AMOR_MODAL = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
-                                             AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max='**',defaut=None,fr="Renseignement de l'amortissement modal reduit (en %), la taille de la liste doit etre egale au nombre de modes constituant la base de projection"),\r
-                                     ),# fin AMOR_MODALE\r
-                             ), # fin AMORTISSEMENT_M\r
-                      ), # fin BASE_C\r
-                      BASE_V = BLOC(condition ="VITESSE == 'VARIABLE'",fr="Analyse transitoire a vitesse variable",\r
-                              BASE_CALCUL = SIMP(statut='o',typ='TXM',into=('MODALE',),defaut='MODALE',fr="Choix du type de resolution de l'analyse transitoire (obligatoirement sur base modale)"),\r
-                              BASE_MODALE = BLOC(condition = "BASE_CALCUL == 'MODALE' ", fr="Resolution sur base modale",\r
-                                                regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
-                                      NB_MODES = SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de modes constituant la base de projection"),\r
-                                     FREQ_MAX = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale des modes constituant la base de projection (Hz)"),\r
-                             ),# fin BASE_MODALE\r
-                             AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('REDUIT','STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
-                             AMOR_MODAL = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
-                                     #AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max=1,defaut=None,fr="Renseignement de l'amortissement modal reduit (en %)"),\r
-                                     AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max='**',defaut=None,fr="Renseignement de l'amortissement modal reduit (en %), la taille de la liste doit etre egale au nombre de modes constituant la base de projection"),\r
-                             ),# fin AMOR_MODALE\r
-                      ), # fin BASE_C\r
-                     VITESSE_CONSTANTE = BLOC(condition = "VITESSE == 'CONSTANTE' ", fr="Vitesse de rotation constante",\r
-                              VITESSE_ROTATION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation (tr/min)"),\r
-                      ),# fin VITESSE_CONSTANTE\r
-                      VITESSE_VARIABLE = BLOC(condition = "VITESSE == 'VARIABLE' ", fr="Vitesse de rotation variable", regles=UN_PARMI('LINEAIRE','EXPONENTIELLE','FORMULE'),\r
-                              LINEAIRE = FACT(statut='f',min=1,max=1,fr="Variation lineaire de la vitesse de rotation",\r
-                                      VITESSE_INITIALE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation initiale (tr/min)",),\r
-                                      VITESSE_FINALE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation finale (tr/min)",),\r
-                                      DEPHASAGE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la postion angulaire initiale (degres)"),\r
-                                      PAS_MAJ = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement du pas de mise a jour des matrices des paliers (tr/min)"),\r
-                              ),# fin LINEAIRE\r
-                              EXPONENTIELLE = FACT(statut='f',min=1,max=1,fr="Variation exponentielle de la vitesse de rotation",\r
-                                      VITESSE_INITIALE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation initiale (tr/min)",),\r
-                                      VITESSE_FINALE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation finale (tr/min)",),\r
-                                      DEPHASAGE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la postion angulaire initiale (degres)"),\r
-                                      LAMBDA = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du parametre de la loi exponentielle (Hz)"),\r
-                                      PAS_MAJ = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement du pas de mise a jour des matrices des paliers (tr/min)"),\r
-                              ),# fin EXPONENTIELLE\r
-                              FORMULE = FACT(statut='f',min=1,max=1,fr="Fonction personnalisee decrivant la variation de la vitesse de rotation",\r
-                                      FICHIER = SIMP(statut='o',typ=('Fichier','Formule vitesse rotation (*.*)'),min=1,max=1,defaut=None,fr="Renseignement du fichier contenant les fonctions de la vitesse de rotation"),\r
-                                      PHI = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom de la formule de position angulaire (max 8 caractere)"),\r
-                                      OM = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom de la formule de vitesse angulaire (max 8 caractere)"),\r
-                                      ACC = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom de la formule d'acceleration angulaire (max 8 caractere)"),\r
-                                      VITE_MOY = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la moyenne des vitesses balayees (tr/min)"),\r
-                                      PAS_MAJ = SIMP(statut='f',typ='R',min=1,max='**',defaut=None,fr="Renseignement du pas de mise a jour des matrices des paliers (tr/min)"),\r
-                              ),# fin FORMULE\r
-                      ),# fin VITESSE_VARIABLE\r
-                      #POIDS = SIMP(statut='o',typ='TXM',into=('OUI','NON'),defaut='OUI',fr="Choix d'application d'un poids"),\r
-\r
-                      CHARGES= FACT(statut='o',min=1,max='**',fr="Definition et renseignement du chargement applique",\r
-                      TYPE = SIMP(statut='o',typ='TXM',into=('POIDS','BALOURD','FORCE','MOMENT','HARMONIQUE'),defaut=None,min=1,max=1,fr="Choix du type de chargement a appliquer"),\r
-                      BALOURD = BLOC(condition = "TYPE == 'BALOURD' ",fr="Chargement de type balourd",\r
-                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la position axiale ou s'applique le balourd (m)"),\r
-                              AMPLITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de l'amplitude du balourd (kg.m)"),\r
-                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge balourd (degres)"),\r
-                              INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition du balourd (s)"),\r
-                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre l'amplitude nominale du balourd (s)"),\r
-                      ),# fin BALOURD\r
-                      POIDS = BLOC(condition = "TYPE == 'POIDS' ",fr="Prise en compte du champ de pesanteur",\r
-                                             GRAVITE = SIMP(statut='o',typ='R',defaut=9.81,fr="Renseignement de l'intensite de la gravite (m/s^2)"),\r
-                                             DIRECTION = SIMP(statut='o',typ='R',min=3,max=3,defaut=(1,0,0),fr="Renseignement de la direction de la force de gravite"),\r
-                                             INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition du poids (s)"),\r
-                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre la valeur nominale du poids (s)"),\r
-                      ), # fin POIDS\r
-                      FORCE = BLOC(condition = "TYPE == 'FORCE' ",fr="Application d'une force ponctuelle",\r
-                                             POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la position axiale ou s'applique la force (m)"),\r
-                                             AMPLITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des 3 composantes decrivant la force (N)"),\r
-                                             INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition de la force (s)"),\r
-                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre la valeur nominale de la force (s)"),\r
-                                             #FONC_APPLI = SIMP(statut='f',typ='R',min=2,max=2,defaut=None,fr="Renseignement de la fonction appliquee"),\r
-                      ), # fin FORCE\r
-                      MOMENT = BLOC(condition = "TYPE == 'MOMENT' ",fr="Application d'un moment ponctuel",\r
-                                             POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la position axiale ou s'applique le moment (m)"),\r
-                                             AMPLITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des 3 composantes decrivant le moment (N/m)"),\r
-                                             INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition du moment (s)"),\r
-                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre la valeur nominale du moment (s)"),\r
-                      ), # fin MOMENT\r
-                      HARMONIQUE = BLOC(condition = "TYPE == 'HARMONIQUE' ",fr="Charge harmonique",\r
-                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la position axiale ou s'applique la charge harmonique (m)"),\r
-                              FREQUENCE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence d'excitation harmonique (Hz)"),\r
-                              AMPLITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de l'amplitude de la charge harmonique, (N)"),\r
-                              INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition de la charge harmonique (s)"),\r
-                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre la valeur nominale de la charge harmonique (s)"),\r
-                              #FONC_APPLI = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la fonction appliquee de la charge harmonique (autant de valeurs que de vitesses de rotation)"),\r
-                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge harmonique (degres)"),\r
-                              TYPE_DDL = SIMP(statut='o',typ='TXM',min=1,max=1,into=('DX','DRX','DY','DRY','DZ','DRZ'),defaut=None,fr="Renseignement du DDL sur lequel s'applique la charge harmonique"),\r
-                      ), # fin HARMONIQUE\r
-                      ), #fin CHARGES\r
-\r
-                      ETAT_INIT = FACT(statut='o',fr="Renseignement de l'etat initial du calcul",\r
-                              #RESULTAT = SIMP(statut='o',typ=('sd_resultat'),max=1,defaut=None,fr="Choix de la structure de donnees resultat de code aster "),\r
-                              RESULTAT = SIMP(statut='f',typ='TXM',max=1,defaut=None,fr="Choix de la structure de donnees de type 'resultat' de Code_Aster"),\r
-                              INST_INIT = SIMP(statut='f',typ='R',max=1,defaut=0.0,fr="Renseignement de l'instant de la structure de donnees a partir duquel il faut lancer le calcul (s)"),\r
-                      ), # fin ETAT_INIT\r
-                      PARAM_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('PAS','LISTE'),defaut=None,fr="Choix du type de discretisation temporelle"),\r
-                      #PAS = BLOC(condition = "VITESSE == 'VARIABLE'",fr="Renseignement des parametres des pas",\r
-                      PAS = BLOC(condition = "PARAM_TEMPS == 'PAS'",fr="Renseignement de pas de temps",\r
-                              TEMPS_PAS = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement du pas de temps d'integration(en s)"),\r
-                              INST_INI = SIMP(statut='f',typ='R',max=1,defaut=None,fr="Renseignement de l'instant initial du calcul (s)"),\r
-                              INST_FIN = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement de l'instant final du calcul (s)"),\r
-                      ), # fin TEMPS_PAS\r
-                      LIST_INST = BLOC(condition = "PARAM_TEMPS == 'LISTE'",fr="Renseignement d'une liste d'instants",\r
-                              LISTE = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement d'une liste d'instants auxquels resoudre le calcul (s)"),\r
-                      ), # fin LIST_INST\r
-                      PAS_ARCHIVAGE = SIMP(statut='o',typ='I',max=1,defaut=1,fr="Renseignement du pas d'archivage des resultats (une sauvegarde tous les 'PAS_ARCHIVAGE' instants d'integration)",),\r
-                      SCHEMA_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('NEWMARK','EULER','WILSON','ADAPT_ORDRE1','ADAPT_ORDRE2','DIFF_CENTRE'),defaut='NEWMARK',fr="Choix d'un schema d'integration temporelle"),\r
-                      NEWMARK = BLOC(condition = "SCHEMA_TEMPS == 'NEWMARK' ",fr="Methode de NEWMARK",\r
-                              BETA = SIMP(statut='f',typ='R',max=1,defaut=0.25,fr="Renseignement de la valeur beta pour la methode de NEWMARK"),\r
-                              GAMMA = SIMP(statut='f',typ='R',max=1,defaut=0.25,fr="Renseignement de la valeur gamma pour la methode de NEWMARK"),\r
-                      ),# fin NEWMARK\r
-                      WILSON = BLOC(condition = "SCHEMA_TEMPS == 'WILSON' ",fr="Methode de WILSON",\r
-                              THETA = SIMP(statut='f',typ='R',max=1,defaut=1.4,fr="Renseignement de la valeur theta pour la methode de WILSON"),\r
-                      ), # fin WILSON\r
-                      \r
-                      # POST-TRAITEMENTS DU CALCUL TRANSITOIRE\r
-                  POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Definition et renseignement des post-traitements",\r
-                      CONTRAINTES = SIMP(statut='o',typ='TXM',into=('OUI', 'NON'),defaut='NON',fr="Export des contraintes en tout noeud de la ligne d'arbres"),\r
-                  ), # fin POST_TRAITEMENTS\r
-              \r
-              ), # fin ANALYSE_TRANSISTOIRE\r
-              \r
-\r
-### ----- CALCUL COUPLE CODE_ASTER/EYDOS ----- ##\r
-              ANALYSE_TRANSITOIRE_ACCIDENTEL = BLOC(condition = "TYPE_ANALYSE == 'TRANSITOIRE_ACCIDENTEL' ",fr="Analyse transitoire accidentelle de la ligne d'arbres",\r
-                      #BASE_MODALE = FACT(statut='o', fr="Choix des parametres de la base modale",                                \r
-                     #POIDS = SIMP(statut='o',typ='TXM',into=('OUI','NON'),defaut='OUI',fr="Choix d'application d'un poids"),\r
-                     BASE_MODALE = BLOC(condition = "True", fr="Resolution sur base modale",\r
-                                        regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
-                              NB_MODES = SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de modes constituant la base de projection"),\r
-                             FREQ_MAX = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale des modes constituant la base de projection (Hz)"),\r
-                     ),# fin BASE_MODALE      \r
-                      # cft 20131217 suppression amortissement reduit\r
-                     #AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('STRUCTUREL','REDUIT'),defaut=None,fr="Choix du type d'amortissement"),\r
-                     AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('STRUCTUREL',),defaut='STRUCTUREL',fr="Choix du type d'amortissement"),\r
-                     AMOR_REDUIT = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
-                             #LIST_AMOR = SIMP(statut='o', typ='R', min=1,max='**',defaut=None,fr="Renseignement de la liste des amortissements"),\r
-                             LIST_AMOR = SIMP(statut='o', typ='R', min=1,max='**',defaut=None,fr="Renseignement de la liste des amortissements modaux reduits (en %), la taille de la liste doit etre egale au nombre de modes constituant la base de projection"),\r
-                     ),# fin AMOR_REDUIT\r
-                      VITESSE_ROTATION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation (tr/min)"),\r
-\r
-                      CHARGES= FACT(statut='o',min=1,max='**',fr="Definition et renseignement du chargement applique",\r
-                      TYPE = SIMP(statut='o',typ='TXM',into=('POIDS','BALOURD','FORCE','MOMENT','HARMONIQUE'),defaut=None,min=1,max=1,fr="Choix du type de chargement a appliquer"),\r
-                      BALOURD = BLOC(condition = "TYPE == 'BALOURD' ",fr="Chargement de type balourd",\r
-                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la position axiale ou s'applique le balourd (m)"),\r
-                              AMPLITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de l'amplitude du balourd (kg.m)"),\r
-                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge balourd (degres)"),\r
-                              INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition du balourd (s)"),\r
-                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre l'amplitude nominale du balourd (s)"),\r
-                      ),# fin BALOURD\r
-                      POIDS = BLOC(condition = "TYPE == 'POIDS' ",fr="Prise en compte du champ de pesanteur",\r
-                                             GRAVITE = SIMP(statut='o',typ='R',defaut=9.81,fr="Renseignement de l'intensite de la gravite (m/s^2)"),\r
-                                             DIRECTION = SIMP(statut='o',typ='R',min=3,max=3,defaut=(1,0,0),fr="Renseignement de la direction de la force de gravite"),\r
-                                             INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition du poids (s)"),\r
-                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre la valeur nominale du poids (s)"),\r
-                      ), # fin POIDS\r
-                      FORCE = BLOC(condition = "TYPE == 'FORCE' ",fr="Application d'une force ponctuelle",\r
-                                             POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la position axiale ou s'applique le moment (m)"),\r
-                                             AMPLITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des 3 composantes decrivant le moment (N/m)"),\r
-                                             INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition de la force (s)"),\r
-                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre la valeur nominale de la force (s)"),\r
-                                             #FONC_APPLI = SIMP(statut='f',typ='R',min=2,max=2,defaut=None,fr="Renseignement de la fonction appliquee"),\r
-                      ), # fin FORCE\r
-                      MOMENT = BLOC(condition = "TYPE == 'MOMENT' ",fr="Application d'un moment ponctuel",\r
-                                             POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la position axiale ou s'applique le moment (m)"),\r
-                                             AMPLITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des 3 composantes decrivant le moment (N/m)"),\r
-                                             INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition du moment (s)"),\r
-                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre la valeur nominale du moment (s)"),\r
-                      ), # fin MOMENT\r
-                      HARMONIQUE = BLOC(condition = "TYPE == 'HARMONIQUE' ",fr="Charge harmonique",\r
-                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la position axiale ou s'applique la charge harmonique (m)"),\r
-                              FREQUENCE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence d'excitation harmonique (Hz)"),\r
-                              AMPLITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de l'amplitude de la charge harmonique, (N)"),\r
-                              INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition de la charge harmonique (s)"),\r
-                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre la valeur nominale de la charge harmonique (s)"),\r
-                              #FONC_APPLI = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la fonction appliquee de la charge harmonique (autant de valeurs que de vitesses de rotation)"),\r
-                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge harmonique (degres)"),\r
-                              TYPE_DDL = SIMP(statut='o',typ='TXM',min=1,max=1,into=('DX','DRX','DY','DRY','DZ','DRZ'),defaut=None,fr="Renseignement du DDL sur lequel s'applique la charge harmonique"),\r
-                      ), # fin HARMONIQUE\r
-                      ), #fin CHARGES\r
-                      ETAT_INIT = FACT(statut='o',fr="Renseignement de l'etat initial du calcul",\r
-                              #RESULTAT = SIMP(statut='o',typ=('sd_resultat'),max=1,defaut=None,fr="Choix de la structure de donnees resultat de code aster "),\r
-                              # 20121126\r
-                              #RESULTAT = SIMP(statut='o',typ='TXM',max=1,defaut=None,fr="Choix de la structure de donnees resultat de code aster "),\r
-                              INST_INIT = SIMP(statut='f',typ='R',max=1,defaut=None,fr="Renseignement de l'instant initial a partir duquel il faut lancer le calcul (s)"),\r
-                      ), # fin ETAT_INIT\r
-                      #PARAM_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('PAS','LIST_INST'),defaut=None,fr="Choix du type de parametrage temporel"),\r
-                      # 20121126\r
-                      PARAM_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('PAS',),defaut="PAS",fr="Choix du type de discretisation temporelle",),\r
-                      PAS = BLOC(condition = "PARAM_TEMPS == 'PAS' ",fr="Renseignement de pas de temps",\r
-                              PAS_ASTER = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement du pas de temps d'integration Code_Aster (en s)",),\r
-                              PAS_EDYOS = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement du pas de temps d'integration Edyos (en s)",),\r
-                              INST_FIN = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement de l'instant final du calcul (en s)",),\r
-                      ), # fin TEMPS_PAS\r
-                      #LIST_INST = BLOC(condition = "PARAM_TEMPS == 'LIST_INST' ",fr="Renseignement d'une liste de pas",\r
-                              #LISTE = SIMP(statut='f',typ='R',min=1,max='**',defaut=None,fr="Renseignement d'une liste de pas"),\r
-                      #), # fin LIST_INST\r
-                      PAS_ARCHIVAGE = SIMP(statut='o',typ='I',max=1,defaut=1,fr="Renseignement du pas d'archivage des resultats (une sauvegarde tous les 'PAS_ARCHIVAGE' instants d'integration)",),\r
-                      PARA_MEM = SIMP(statut='f',typ='I',max=1,defaut=6400,fr="Renseigner la taille maximale de la memoire (Mo)",),\r
-                      PARA_CPU = SIMP(statut='f',typ='I',max=1,defaut=10000,fr="Renseigner le temps CPU maximal (s)",),\r
-                      SCHEMA_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('EULER','ADAPT_ORDRE1','ADAPT_ORDRE2'),defaut='ADAPT_ORDRE2',fr="Choix d'un schema d'integration temporelle"),\r
-                      \r
-                      # POST-TRAITEMENTS DU CALCUL TRANSITOIRE ACCIDENTEL\r
-                  POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Definition et renseignement des post-traitements",\r
-                      CONTRAINTES = SIMP(statut='o',typ='TXM',into=('OUI', 'NON'),defaut='NON',fr="Export des contraintes en tout noeud de la ligne d'arbres"),\r
-                  ), # fin POST_TRAITEMENTS\r
-              ), # fin ANALYSE_TRANSITOIRE_ACCIDENTEL\r
-                 \r
-)# fin SPECIFICATION_ANALYSE\r
diff --git a/SPECA/SPECA_Cata_V2_00.py b/SPECA/SPECA_Cata_V2_00.py
deleted file mode 100644 (file)
index f6c34ac..0000000
+++ /dev/null
@@ -1,458 +0,0 @@
-## -*- coding: utf-8 -*-\r
-#\r
-## --------------------------------------------------\r
-## debut entete\r
-## --------------------------------------------------\r
-#\r
-from Accas import *\r
-\r
-\r
-# rend disponible le type tuple (liste)\r
-import types\r
-class Tuple:\r
-  def __init__(self,ntuple):\r
-    self.ntuple=ntuple\r
-\r
-  def __convert__(self,valeur):\r
-    if type(valeur) == types.StringType:\r
-      return None\r
-    if len(valeur) != self.ntuple:\r
-      return None\r
-    return valeur\r
-\r
-  def info(self):\r
-    return "Tuple de %s elements" % self.ntuple\r
-\r
-  __repr__=info\r
-  __str__=info\r
-\r
-\r
-\r
-#\r
-#CONTEXT.debug = 1\r
-\r
-VERSION_CATALOGUE="2.0.0";\r
-\r
-JdC = JDC_CATA ( code = 'SPECA',\r
-                execmodul = None,\r
-                regles=(AU_MOINS_UN('SPECIFICATION_ANALYSE',),\r
-                        AU_PLUS_UN('SPECIFICATION_ANALYSE',),\r
-                        ),\r
-                       )# Fin JDC_CATA\r
-\r
-## ----- SPECIFICATION DE L'ETUDE ----- ##\r
-SPECIFICATION_ANALYSE= MACRO (nom       = 'SPECIFICATION_ANALYSE',\r
-              op        = None,\r
-              UIinfo    = {"groupes":("Machine tournante",)},\r
-              fr        = "Specification des analyses",\r
-              TYPE_ANALYSE     = SIMP(statut='o', typ='TXM',into=('STATIQUE', 'MODALE', 'HARMONIQUE', 'TRANSITOIRE', 'TRANSITOIRE_ACCIDENTEL','SYNTHESE')),\r
-              # pour V1.1 flexion uniquement\r
-              #TYPE_COMPORTEMENT = SIMP(statut='o', typ='TXM',into=('FLEXION'),defaut='FLEXION',fr="Renseignement du type de comportement voulu"),\r
-              TYPE_COMPORTEMENT = BLOC(condition = "TYPE_ANALYSE in ('MODALE','HARMONIQUE','STATIQUE','TRANSITOIRE','TRANSITOIRE_ACCIDENTEL','SYNTHESE')",\r
-                                        FLEXION = SIMP(statut='o',typ='TXM',into=('OUI',),defaut='OUI',fr="Prise en compte la flexion de la ligne d'arbres: obligatoire"),\r
-                                        TORSION = SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='NON',fr="Choix de la prise en compte la torsion de la ligne d'arbres"),\r
-                                        COMPRESSION = SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='NON',fr="Choix de la prise en compte la traction/compression de la ligne d'arbres"),\r
-                                      ),\r
-\r
-                 SURCHARGE=BLOC(condition = "TYPE_ANALYSE in ('MODALE','HARMONIQUE','STATIQUE','TRANSITOIRE','TRANSITOIRE_ACCIDENTEL','SYNTHESE')",statut="f",\r
-                                               TEMPLATE=SIMP(  statut="f",\r
-                                                               typ=("Fichier","Fichier Template (*.tpl)"),\r
-                                                               min=1,max=1,\r
-                                                                fr="Utiliser un template d'analyse modifie"\r
-                                                               ),\r
-                                               PARAMETRES= FACT(statut='f',min=1,max='**',fr="Definition et renseignement des parametres utilises dans le template surcharge",\r
-                                                                               CLE=SIMP(statut='o',typ='TXM',defaut=None,fr="Nom du parametre dans le template"),\r
-                                                                               TYPE=SIMP(statut='o',typ='TXM',into=('ENTIER','REEL','CHAINE','FICHIER','REPERTOIRE'),fr="Nature du parametre a renseigner"),\r
-                                                                               ENTIER=BLOC(condition="TYPE=='ENTIER'",\r
-                                                                                       VALUE=SIMP(statut='o',typ='I',defaut=0,fr="Renseignement d'un nombre entier"),\r
-                                                                                       ),\r
-                                                                               REEL=BLOC(condition="TYPE=='REEL'",\r
-                                                                                       VALUE=SIMP(statut='o',typ='R',defaut=0.0,fr="Renseignement d'un nombre reel"),\r
-                                                                                       ),\r
-                                                                               CHAINE=BLOC(condition="TYPE=='CHAINE'",\r
-                                                                                       VALUE=SIMP(statut='o',typ='TXM',defaut='',fr="Renseignement d'une chaine de caracteres"),\r
-                                                                                       ),\r
-                                                                               FICHIER=BLOC(condition="TYPE=='FICHIER'",\r
-                                                                                       VALUE=SIMP(statut='o',typ=("Fichier","All files (*.*)"),fr="Renseignement d'un fichier")\r
-                                                                                       ),\r
-                                                                               REPERTOIRE =BLOC(condition="TYPE=='REPERTOIRE'",\r
-                                                                                       VALUE=SIMP(statut='o',typ="Repertoire",fr="Renseignement d'un repertoire")\r
-                                                                                       ),\r
-\r
-                                                                       ),\r
-                       ),\r
-\r
-\r
-\r
-### ----- CALCUL STATIQUE ----- ##\r
-              ANALYSE_STATIQUE = BLOC(condition = "TYPE_ANALYSE == 'STATIQUE' ",fr="Analyse statique (vitesse de rotation nulle de la ligne d'arbres)"\r
-              \r
-                      CHARGES= FACT(statut='o',min=1,max='**',fr="Definition et renseignement du chargement applique",\r
-                      TYPE = SIMP(statut='o',typ='TXM',into=('POIDS','FORCE','MOMENT','DELIGNAGE'),defaut=None,min=1,max=1,fr="Choix du type de chargement a appliquer"),\r
-                      POIDS = BLOC(condition = "TYPE == 'POIDS' ",fr="Prise en compte du champ de pesanteur",\r
-                                             GRAVITE = SIMP(statut='o',typ='R',defaut=9.81,fr="Renseignement de l'intensite de la gravite (m/s^2)"),\r
-                                             DIRECTION = SIMP(statut='o',typ='R',min=3,max=3,defaut=(1,0,0),fr="Renseignement de la direction de la force de gravite"),\r
-                      ), # fin POIDS\r
-                      FORCE = BLOC(condition = "TYPE == 'FORCE' ",fr="Application d'une force ponctuelle",\r
-                                             POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la position axiale ou s'applique la force (m)"),\r
-                                             MAGNITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des 3 composantes decrivant la force (N)"),\r
-                                             #FONC_APPLI = SIMP(statut='f',typ='R',min=2,max=2,defaut=None,fr="Renseignement de la fonction appliquee"),\r
-                      ), # fin FORCE\r
-                      MOMENT = BLOC(condition = "TYPE == 'MOMENT' ",fr="Application d'un moment ponctuel",\r
-                                             POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la position axiale ou s'applique le moment (m)"),\r
-                                             MAGNITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des 3 composantes decrivant le moment (N/m)"),\r
-                      ), # fin MOMENT\r
-                      DELIGNAGE = BLOC(condition = "TYPE == 'DELIGNAGE' ",fr="Application d'un delignage sur un ou plusieurs paliers",\r
-                              NOM_PALIER = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom du palier deligne"),\r
-                              DX = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du delignage suivant X du palier (m)"),\r
-                              DY = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du delignage suivant Y du palier (m)"),\r
-                      ), # fin Delignage\r
-                      ), #fin CHARGES\r
-                     \r
-                      ## POST-TRAITEMENTS DU CALCUL STATIQUE\r
-                     POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Definition et renseignement des post-traitements",\r
-                         TYPE = SIMP(statut='o',typ='TXM',into=('DEPL_ABS','DEPL_RELA','EFFORTS_PAL','REAC_NODA','CONTRAINTES'),defaut=None,fr="Choix du type de post-traitement"),\r
-                          DEPL = BLOC(condition="TYPE in ('DEPL_ABS','DEPL_RELA') ",fr="Deplacement",regles=UN_PARMI('POSITION','PALIER'),\r
-                              POSITION = SIMP(statut='f',typ='R',defaut=None,fr="Renseignement de la coordonnee du deplacement"),\r
-                              PALIER = SIMP(statut='f',max='**',typ='TXM',defaut=None,fr="Renseignement du nom du palier"),\r
-                          ), # fin DEPL\r
-                          CONTRAINTES = BLOC(condition="TYPE == 'CONTRAINTES' ",fr="Export des contraintes",regles=UN_PARMI('POSITION','ZONE','TOUT'),\r
-                              POSITION = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee de la contrainte"),\r
-                              ZONE = SIMP(statut='f',typ='TXM',defaut=None,fr="Renseignement de la zone de la contrainte"),\r
-                              TOUT = SIMP(statut='f',typ='TXM',into=('OUI'),fr="Export pour tous les noeuds"),\r
-                          ), # fin CONTRAINTES\r
-                          REAC_NODA = BLOC(condition="TYPE == 'REAC_NODA' ", fr="Reaction nodale",regles=UN_PARMI('POSITION','PALIER'),\r
-                              POSITION = SIMP(statut='f',typ='R',max=1,defaut=None,fr="Renseignement de la coordonnee de la reaction"),\r
-                              #ZONE = SIMP(statut='f',typ='TXM',defaut=None,fr="Renseignement de l'etiquette de la zone de la reaction"),\r
-                              PALIER = SIMP(statut='f',max='**',typ='TXM',defaut=None,fr="Renseignement du nom du palier"),\r
-                          ), # fin REAC_NODA\r
-                     ), # fin POST_TRAITEMENT\r
-                      ## fin bloc POST_TRAITEMENTS\r
-                      \r
-              ),# fin ANALYSE_STATIQUE\r
-\r
-### ----- CALCUL MODALE ----- ##\r
-              ANALYSE_MODALE = BLOC(condition = "TYPE_ANALYSE == 'MODALE' ",fr="Analyse modale de la ligne d'arbres"\r
-                      BASE_CALCUL = SIMP(statut='o',typ="TXM",into=('MODALE','PHYSIQUE'),defaut=None,fr="Choix du type de resolution de l'analyse modale (sur base physique ou sur base modale)"),\r
-                      BASE_MODALE = BLOC(condition="BASE_CALCUL=='MODALE'",fr="Resolution sur base modale",\r
-                                         regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
-                                         NB_MODES=SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de modes constituant la base de projection"),\r
-                                         FREQ_MAX=SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale des modes constituant la base de projection (Hz)"),\r
-                      ), # fin BASE_MODALE\r
-                      AMORTISSEMENT = SIMP(statut='o',typ='TXM',min=1,max=1,into=('OUI','NON'),defaut='OUI',fr="Choix de la prise en compte de l'amortissment"),\r
-                      GYROSCOPIE = SIMP(statut='o',typ='TXM',min=1,max=1,into=('OUI','NON'),defaut='OUI',fr="Choix de la prise en compte de la gyroscopie"),\r
-                      VITESSE_ROTATION = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la liste des vitesses de rotation etudiees (tr/min)"),\r
-                     OPTION_CALCUL = SIMP(statut='o',typ='TXM',min=1,max=1,into=('PLUS_PETITE','CENTRE'),defaut=None,fr="Choix de l'option de calcul"),\r
-                      PLUS_PETITE = BLOC(condition="OPTION_CALCUL=='PLUS_PETITE'",fr="Option PLUS_PETITE",fr="Calcul des n premieres frequences"\r
-                             NMAX_FREQ = SIMP(statut='o',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre maximal de frequences a calculer"),\r
-                      ), # fin PLUS_PETITE\r
-                      CENTRE = BLOC(condition="OPTION_CALCUL=='CENTRE'",fr="Option CENTRE",fr="Calcul d'un nombre n de frequences autour d'une frequence donnee"\r
-                             FREQ = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence centrale (Hz)"),\r
-                             NMAX_FREQ = SIMP(statut='o',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre maximal de frequences"),\r
-                      ), # fin CENTRE\r
-                      METHODE=SIMP(statut='f',typ='TXM',min=1,max=1,into=('QZ','SORENSEN'),defaut='SORENSEN',fr="Choix de la methode de resolution"),\r
-                      \r
-                      POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Definition et renseignement des post-traitements",\r
-                             TYPE = SIMP(statut='o',typ='TXM',defaut=None,into=('TABLEAU_PARAM_MODAUX','DIAG_CAMPBELL'),fr="Choix du type de post-traitement",),\r
-                             #TABLEAU_PARAM_MODAUX = SIMP(statut='f',typ='TXM',min=1,max=1,defaut=None,into=('SIMPLE','COMPLET'),fr="Choix du type de tableau"),\r
-                             TABLEAU_PARAM_MODAUX = BLOC(condition = "TYPE == 'TABLEAU_PARAM_MODAUX'",fr="Choix du type de tableau",\r
-                                     TABLEAU = SIMP(statut='o',max=1,typ='TXM',defaut='SIMPLE',into=('SIMPLE','COMPLET'),),\r
-                             ), # fin TABLEAU_PARAM_MODAUX\r
-                             DIAG_CAMPBELL = BLOC(condition = "TYPE == 'DIAG_CAMPBELL'", fr = "Choix des options du diagramme de Campbell",\r
-                                     PRECESSION = SIMP(statut='o',typ='TXM',max=1,defaut=None,into=('SOMME','PLUS_GRANDE_ORBITE'),fr="Critere de determination de la precession"),\r
-                                     SUIVI = SIMP(statut='o',typ='TXM',max=1,defaut=None,into=('SANS_TRI','TRI_PREC','TRI_FORM_MOD'),fr="Methode de suivi des modes"),\r
-                                      # 20121018 ajout de NB_MODES a la demande de Ionel Nistor\r
-                                     NB_MODES = SIMP(statut='o',typ='I',max=1,defaut=None,fr="Nombre de modes affiches dans le diagramme, doit etre inferieur au nombre de modes calcules (NMAX_FREQ)"),\r
-                             ), # fin DIAG_CAMPBELL\r
-                             #DIAG_CAMPBELL = SIMP(statut='f',typ='TXM',min=1,max=1,defaut=None,into=('OUI','NON'),fr="Choix de calcul du diagramme de Campbell (uniquement si plusieurs vitesses de rotation ont ete renseignees)",),\r
-                      ), # fin POST_TRAITEMENTS\r
-                      \r
-                      \r
-              ), # fin ANALYSE_MODALE\r
-\r
-## ----- CALCUL HARMONIQUE ----- ##\r
-              ANALYSE_HARMONIQUE = BLOC(condition = "TYPE_ANALYSE == 'HARMONIQUE' ",fr="Analyse harmonique de la ligne d'arbres",\r
-              \r
-                      ## specification calcul harmonique\r
-                     BASE_CALCUL = SIMP(statut='o',typ='TXM',into=('PHYSIQUE','MODALE'),defaut=None,fr="Choix du type de resolution de l'analyse modale (sur base physique ou sur base modale)"),\r
-                     BASE_MODALE = BLOC(condition = "BASE_CALCUL == 'MODALE' ", fr="Resolution sur base modale",\r
-                             #MODALE = FACT(statut='o',\r
-                                     regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
-                                     NB_MODES = SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de modes constituant la base de projection"),\r
-                                     FREQ_MAX = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale des modes constituant la base de projection (Hz)"),\r
-                             #),# fin MODALE\r
-                     ),# fin BASE_MODALE\r
-                     AMORTISSEMENT_P = BLOC(condition = "BASE_CALCUL == 'PHYSIQUE' ",\r
-                             AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
-                     ), # fin AMORTISSEMENT_P\r
-                     AMORTISSEMENT_M = BLOC(condition = "BASE_CALCUL == 'MODALE' ",\r
-                             AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('REDUIT','STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
-                             AMOR_MODAL = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
-                                     #AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max=1,defaut=None,fr="Renseignement de l'amortissement modal reduit (en %)"),\r
-                                     AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max='**',defaut=None,fr="Renseignement de l'amortissement modal reduit (en %), la taille de la liste doit etre egale au nombre de modes constituant la base de projection"),\r
-                             ),# fin AMOR_MODALE\r
-                     ), # fin AMORTISSEMENT_M\r
-                      VITESSE_ROTATION = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la liste des vitesses de rotation etudiees (tr/min)"),\r
-                      # 20121018 retrait de defaut_fn a la demande de EDF\r
-                      CHARGES= FACT(statut='o',min=1,max='**',fr="Definition et renseignement du chargement applique",\r
-                      TYPE = SIMP(statut='o',typ='TXM',into=('BALOURD','HARMONIQUE'),defaut=None,min=1,max=1,fr="Choix du type de chargement a appliquer"),\r
-                      BALOURD = BLOC(condition = "TYPE == 'BALOURD' ",fr="Chargement de type balourd",\r
-                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la position axiale ou s'applique le balourd (m)"),\r
-                              MAGNITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de l'amplitude du balourd (kg.m)"),\r
-                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge balourd (degres)"),\r
-                      ),# fin BALOURD\r
-                      HARMONIQUE = BLOC(condition = "TYPE == 'HARMONIQUE' ",fr="Charge harmonique",\r
-                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la position axiale ou s'applique la charge harmonique (m)"),\r
-                              FREQUENCE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence d'excitation harmonique (Hz)"),\r
-                              MAGNITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de l'amplitude de la charge harmonique, (N)"),\r
-                              FONC_APPLI = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la liste de coefficients appliques sur la charge harmonique (autant que de vitesses de rotation)"),\r
-                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge harmonique (degres)"),\r
-                              TYPE_DDL = SIMP(statut='o',typ='TXM',min=1,max=1,into=('DX','DRX','DY','DRY','DZ','DRZ'),defaut=None,fr="Renseignement du DDL sur lequel s'applique la charge harmonique"),\r
-                      ), # fin HARMONIQUE\r
-                      ), #FIN CHARGES\r
-                      ## POST-TRAITEMENTS DU CALCUL HARMONIQUE\r
-                      POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Definition et renseignement des post-traitements",\r
-                         TYPE = SIMP(statut='o',typ='TXM',into=('DEPL_RELA','REAC_NODA','EFFORTS_PAL','CONTRAINTES'),defaut=None,fr="Choix du type de post-traitement"),\r
-                         DEPL = BLOC(condition = "TYPE in ('DEPL_ABS','DEPL_RELA') ",fr="Deplacement",regles=UN_PARMI('POSITION','PALIER'),\r
-                              POSITION = SIMP(statut='f',typ='R',defaut=None,fr="Renseignement de la coordonnee du deplacement"),\r
-                              PALIER = SIMP(statut='f',max='**',typ='TXM',defaut=None,fr="Renseignement du nom du palier"),\r
-                         ), # fin DEPL\r
-                         CONTRAINTES = BLOC(condition="TYPE == 'CONTRAINTES' ",fr="Export des contraintes",regles=UN_PARMI('POSITION','ZONE','TOUT'),\r
-                                 POSITION = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee de la contrainte"),\r
-                                 ZONE = SIMP(statut='f',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom de la zone de la contrainte"),\r
-                                 TOUT = SIMP(statut='f',typ='TXM',into=('OUI'),min=1,max=1,fr="Export pour tous les noeuds"),\r
-                         ), # fin CONTRAINTES\r
-                     ),\r
-                     ## fin bloc POST_TRAITEMENTS\r
-                      \r
-              ),# fin ANALYSE_HARMONIQUE\r
-\r
-### ----- CALCUL TRANSITOIRE ----- ##\r
-              ANALYSE_TRANSISTOIRE = BLOC(condition = "TYPE_ANALYSE == 'TRANSITOIRE' ",fr="Analyse transitoire de la ligne d'arbres",\r
-                      \r
-                      VITESSE = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,into=('CONSTANTE','VARIABLE'),fr="Renseignement du type de vitesse de rotation consideree"),\r
-                      BASE_C = BLOC(condition ="VITESSE == 'CONSTANTE'",fr="Analyse transitoire a vitesse constante"\r
-                              BASE_CALCUL = SIMP(statut='o',typ='TXM',into=('PHYSIQUE','MODALE'),defaut=None,fr="Choix du type de resolution de l'analyse transitoire (sur base physique ou sur base modale)"),\r
-                              BASE_MODALE = BLOC(condition = "BASE_CALCUL == 'MODALE' ", fr="Resolution sur base modale",\r
-                                               regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
-                                                NB_MODES = SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de modes constituant la base de projection"),\r
-                                               FREQ_MAX = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale des modes constituant la base de projection (Hz)"),\r
-                             ),# fin BASE_MODALE\r
-                             AMORTISSEMENT_M = BLOC(condition = "BASE_CALCUL == 'MODALE' ",\r
-                                     AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('REDUIT','STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
-                                     AMOR_MODAL = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
-                                             AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max='**',defaut=None,fr="Renseignement de l'amortissement modal reduit (en %), la taille de la liste doit etre egale au nombre de modes constituant la base de projection"),\r
-                                     ),# fin AMOR_MODALE\r
-                             ), # fin AMORTISSEMENT_M\r
-                      ), # fin BASE_C\r
-                      BASE_V = BLOC(condition ="VITESSE == 'VARIABLE'",fr="Analyse transitoire a vitesse variable"\r
-                              BASE_CALCUL = SIMP(statut='o',typ='TXM',into=('MODALE'),defaut='MODALE',fr="Choix du type de resolution de l'analyse transitoire (obligatoirement sur base modale)"),\r
-                              BASE_MODALE = BLOC(condition = "BASE_CALCUL == 'MODALE' ", fr="Resolution sur base modale",\r
-                                                regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
-                                      NB_MODES = SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de modes constituant la base de projection"),\r
-                                     FREQ_MAX = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale des modes constituant la base de projection (Hz)"),\r
-                             ),# fin BASE_MODALE\r
-                             AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('REDUIT','STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
-                             AMOR_MODAL = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
-                                     #AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max=1,defaut=None,fr="Renseignement de l'amortissement modal reduit (en %)"),\r
-                                     AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max='**',defaut=None,fr="Renseignement de l'amortissement modal reduit (en %), la taille de la liste doit etre egale au nombre de modes constituant la base de projection"),\r
-                             ),# fin AMOR_MODALE\r
-                      ), # fin BASE_C\r
-                     VITESSE_CONSTANTE = BLOC(condition = "VITESSE == 'CONSTANTE' ", fr="Vitesse de rotation constante",\r
-                              VITESSE_ROTATION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation (tr/min)"),\r
-                      ),# fin VITESSE_CONSTANTE\r
-                      VITESSE_VARIABLE = BLOC(condition = "VITESSE == 'VARIABLE' ", fr="Vitesse de rotation variable", regles=UN_PARMI('LINEAIRE','EXPONENTIELLE','FORMULE'),\r
-                              LINEAIRE = FACT(statut='f',min=1,max=1,fr="Variation lineaire de la vitesse de rotation",\r
-                                      VITESSE_INITIALE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation initiale (tr/min)",),\r
-                                      VITESSE_FINALE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation finale (tr/min)",),\r
-                                      DEPHASAGE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la postion angulaire initiale (degres)"),\r
-                                      PAS_MAJ = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement du pas de mise a jour des matrices des paliers (tr/min)"),\r
-                              ),# fin LINEAIRE\r
-                              EXPONENTIELLE = FACT(statut='f',min=1,max=1,fr="Variation exponentielle de la vitesse de rotation",\r
-                                      VITESSE_INITIALE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation initiale (tr/min)",),\r
-                                      VITESSE_FINALE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation finale (tr/min)",),\r
-                                      DEPHASAGE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la postion angulaire initiale (degres)"),\r
-                                      LAMBDA = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du parametre de la loi exponentielle (Hz)"),\r
-                                      PAS_MAJ = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement du pas de mise a jour des matrices des paliers (tr/min)"),\r
-                              ),# fin EXPONENTIELLE\r
-                              FORMULE = FACT(statut='f',min=1,max=1,fr="Fonction personnalisee decrivant la variation de la vitesse de rotation",\r
-                                      FICHIER = SIMP(statut='o',typ=('Fichier','Formule vitesse rotation (*.*)'),min=1,max=1,defaut=None,fr="Renseignement du fichier contenant les fonctions de la vitesse de rotation"),\r
-                                      PHI = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom de la formule de position angulaire (max 8 caractere)"),\r
-                                      OM = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom de la formule de vitesse angulaire (max 8 caractere)"),\r
-                                      ACC = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom de la formule d'acceleration angulaire (max 8 caractere)"),\r
-                                      VITE_MOY = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la moyenne des vitesses balayees (tr/min)"),\r
-                                      PAS_MAJ = SIMP(statut='f',typ='R',min=1,max='**',defaut=None,fr="Renseignement du pas de mise a jour des matrices des paliers (tr/min)"),\r
-                              ),# fin FORMULE\r
-                      ),# fin VITESSE_VARIABLE\r
-                      #POIDS = SIMP(statut='o',typ='TXM',into=('OUI','NON'),defaut='OUI',fr="Choix d'application d'un poids"),\r
-\r
-                      CHARGES= FACT(statut='o',min=1,max='**',fr="Definition et renseignement du chargement applique",\r
-                      TYPE = SIMP(statut='o',typ='TXM',into=('POIDS','BALOURD','FORCE','MOMENT','HARMONIQUE'),defaut=None,min=1,max=1,fr="Choix du type de chargement a appliquer"),\r
-                      BALOURD = BLOC(condition = "TYPE == 'BALOURD' ",fr="Chargement de type balourd",\r
-                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la position axiale ou s'applique le balourd (m)"),\r
-                              MAGNITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de l'amplitude du balourd (kg.m)"),\r
-                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge balourd (degres)"),\r
-                              INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition du balourd (s)"),\r
-                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre l'amplitude nominale du balourd (s)"),\r
-                      ),# fin BALOURD\r
-                      POIDS = BLOC(condition = "TYPE == 'POIDS' ",fr="Prise en compte du champ de pesanteur",\r
-                                             GRAVITE = SIMP(statut='o',typ='R',defaut=9.81,fr="Renseignement de l'intensite de la gravite (m/s^2)"),\r
-                                             DIRECTION = SIMP(statut='o',typ='R',min=3,max=3,defaut=(1,0,0),fr="Renseignement de la direction de la force de gravite"),\r
-                      ), # fin POIDS\r
-                      FORCE = BLOC(condition = "TYPE == 'FORCE' ",fr="Application d'une force ponctuelle",\r
-                                             POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la position axiale ou s'applique la force (m)"),\r
-                                             MAGNITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des 3 composantes decrivant la force (N)"),\r
-                                             #FONC_APPLI = SIMP(statut='f',typ='R',min=2,max=2,defaut=None,fr="Renseignement de la fonction appliquee"),\r
-                      ), # fin FORCE\r
-                      MOMENT = BLOC(condition = "TYPE == 'MOMENT' ",fr="Application d'un moment ponctuel",\r
-                                             POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la position axiale ou s'applique le moment (m)"),\r
-                                             MAGNITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des 3 composantes decrivant le moment (N/m)"),\r
-                      ), # fin MOMENT\r
-                      HARMONIQUE = BLOC(condition = "TYPE == 'HARMONIQUE' ",fr="Charge harmonique",\r
-                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la position axiale ou s'applique la charge harmonique (m)"),\r
-                              FREQUENCE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence d'excitation harmonique (Hz)"),\r
-                              MAGNITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de l'amplitude de la charge harmonique, (N)"),\r
-                              #FONC_APPLI = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la fonction appliquee de la charge harmonique (autant de valeurs que de vitesses de rotation)"),\r
-                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge harmonique (degres)"),\r
-                              TYPE_DDL = SIMP(statut='o',typ='TXM',min=1,max=1,into=('DX','DRX','DY','DRY','DZ','DRZ'),defaut=None,fr="Renseignement du DDL sur lequel s'applique la charge harmonique"),\r
-                      ), # fin HARMONIQUE\r
-                      ), #fin CHARGES\r
-\r
-                      ETAT_INIT = FACT(statut='o',fr="Renseignement de l'etat initial du calcul",\r
-                              #RESULTAT = SIMP(statut='o',typ=('sd_resultat'),max=1,defaut=None,fr="Choix de la structure de donnees resultat de code aster "),\r
-                              RESULTAT = SIMP(statut='f',typ='TXM',max=1,defaut=None,fr="Choix de la structure de donnees de type 'resultat' de Code_Aster"),\r
-                              INST_INIT = SIMP(statut='f',typ='R',max=1,defaut=0.0,fr="Renseignement de l'instant de la structure de donnees a partir duquel il faut lancer le calcul (s)"),\r
-                      ), # fin ETAT_INIT\r
-                      PARAM_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('PAS','LISTE'),defaut=None,fr="Choix du type de discretisation temporelle"),\r
-                      #PAS = BLOC(condition = "VITESSE == 'VARIABLE'",fr="Renseignement des parametres des pas",\r
-                      PAS = BLOC(condition = "PARAM_TEMPS == 'PAS'",fr="Renseignement de pas de temps",\r
-                              TEMPS_PAS = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement du pas de temps d'integration(en s)"),\r
-                              INST_INI = SIMP(statut='f',typ='R',max=1,defaut=None,fr="Renseignement de l'instant initial du calcul (s)"),\r
-                              INST_FIN = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement de l'instant final du calcul (s)"),\r
-                      ), # fin TEMPS_PAS\r
-                      LIST_INST = BLOC(condition = "PARAM_TEMPS == 'LISTE'",fr="Renseignement d'une liste d'instants",\r
-                              LISTE = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement d'une liste d'instants auxquels resoudre le calcul (s)"),\r
-                      ), # fin LIST_INST\r
-                      PAS_ARCHIVAGE = SIMP(statut='o',typ='I',max=1,defaut=1,fr="Renseignement du pas d'archivage des resultats (une sauvegarde tous les 'PAS_ARCHIVAGE' instants d'integration)",),\r
-                      SCHEMA_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('NEWMARK','EULER','WILSON','ADAPT_ORDRE1','ADAPT_ORDRE2','DIFF_CENTRE'),defaut='NEWMARK',fr="Choix d'un schema d'integration temporelle"),\r
-                      NEWMARK = BLOC(condition = "SCHEMA_TEMPS == 'NEWMARK' ",fr="Methode de NEWMARK",\r
-                              BETA = SIMP(statut='f',typ='R',max=1,defaut=0.25,fr="Renseignement de la valeur beta pour la methode de NEWMARK"),\r
-                              GAMMA = SIMP(statut='f',typ='R',max=1,defaut=0.25,fr="Renseignement de la valeur gamma pour la methode de NEWMARK"),\r
-                      ),# fin NEWMARK\r
-                      WILSON = BLOC(condition = "SCHEMA_TEMPS == 'WILSON' ",fr="Methode de WILSON",\r
-                              THETA = SIMP(statut='f',typ='R',max=1,defaut=1.4,fr="Renseignement de la valeur theta pour la methode de WILSON"),\r
-                      ), # fin WILSON\r
-                      \r
-                      ## POST_TRAITEMENTS de l'analyse transitoire\r
-                      POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Definition et renseignement des post-traitements",\r
-                             TYPE = SIMP(statut='o',typ='TXM',into=('DEPL_ABS','DEPL_RELA','EFFORTS_PAL','CONTRAINTES'),defaut=None,fr="Choix du type de post-traitement"),\r
-                             DEPL = BLOC(condition = "TYPE in ('DEPL_ABS','DEPL_RELA') ",fr="Deplacement",regles=UN_PARMI('POSITION','PALIER'),\r
-                                     #POSITION_DEPL = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee du deplacement"),\r
-                                     POSITION = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee du deplacement"),\r
-                                     PALIER = SIMP(statut='f',typ='TXM',max=1,defaut=None,fr="Renseignement de l'etiquette du palier"),\r
-                             ), # fin DEPL\r
-                             CONTRAINTES = BLOC(condition = "TYPE == 'CONTRAINTES' ",fr="Export des contraintes",\r
-                                               regles=UN_PARMI('POSITION','ZONE','TOUT'),\r
-                                     POSITION = SIMP(statut='f',typ='R',max=1,defaut=None,fr="Renseignement de la coordonnee de la contrainte"),\r
-                                     ZONE = SIMP(statut='f',typ='TXM',max=1,defaut=None,fr="Renseignement de l'etiquette de la zone de la contrainte"),\r
-                                     TOUT = SIMP(statut='f',typ='TXM',into=('OUI'),max=1,fr="Export pour tous les noeuds"),\r
-                             ), # fin CONTRAINTES\r
-                     ), # fin POST_TRAITEMENTS\r
-              \r
-              ), # fin ANALYSE_TRANSISTOIRE\r
-              \r
-\r
-### ----- CALCUL COUPLE CODE_ASTER/EYDOS ----- ##\r
-              ANALYSE_TRANSITOIRE_ACCIDENTEL = BLOC(condition = "TYPE_ANALYSE == 'TRANSITOIRE_ACCIDENTEL' ",fr="Analyse transitoire accidentelle de la ligne d'arbres",\r
-                      #BASE_MODALE = FACT(statut='o', fr="Choix des parametres de la base modale",                                \r
-                     #POIDS = SIMP(statut='o',typ='TXM',into=('OUI','NON'),defaut='OUI',fr="Choix d'application d'un poids"),\r
-                     BASE_MODALE = BLOC(condition = "True", fr="Resolution sur base modale",\r
-                                        regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
-                              NB_MODES = SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de modes constituant la base de projection"),\r
-                             FREQ_MAX = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale des modes constituant la base de projection (Hz)"),\r
-                     ),# fin BASE_MODALE      \r
-                      # cft 20131217 suppression amortissement reduit\r
-                     #AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('STRUCTUREL','REDUIT'),defaut=None,fr="Choix du type d'amortissement"),\r
-                     AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
-                     AMOR_REDUIT = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
-                             #LIST_AMOR = SIMP(statut='o', typ='R', min=1,max='**',defaut=None,fr="Renseignement de la liste des amortissements"),\r
-                             LIST_AMOR = SIMP(statut='o', typ='R', min=1,max='**',defaut=None,fr="Renseignement de la liste des amortissements modaux reduits (en %), la taille de la liste doit etre egale au nombre de modes constituant la base de projection"),\r
-                     ),# fin AMOR_REDUIT\r
-                      VITESSE_ROTATION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation (tr/min)"),\r
-\r
-                      CHARGES= FACT(statut='o',min=1,max='**',fr="Definition et renseignement du chargement applique",\r
-                      TYPE = SIMP(statut='o',typ='TXM',into=('POIDS','BALOURD','FORCE','MOMENT','HARMONIQUE'),defaut=None,min=1,max=1,fr="Choix du type de chargement a appliquer"),\r
-                      BALOURD = BLOC(condition = "TYPE == 'BALOURD' ",fr="Chargement de type balourd",\r
-                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la position axiale ou s'applique le balourd (m)"),\r
-                              MAGNITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de l'amplitude du balourd (kg.m)"),\r
-                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge balourd (degres)"),\r
-                              INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition du balourd (s)"),\r
-                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre l'amplitude nominale du balourd (s)"),\r
-                      ),# fin BALOURD\r
-                      POIDS = BLOC(condition = "TYPE == 'POIDS' ",fr="Prise en compte du champ de pesanteur",\r
-                                             GRAVITE = SIMP(statut='o',typ='R',defaut=9.81,fr="Renseignement de l'intensite de la gravite (m/s^2)"),\r
-                                             DIRECTION = SIMP(statut='o',typ='R',min=3,max=3,defaut=(1,0,0),fr="Renseignement de la direction de la force de gravite"),\r
-                      ), # fin POIDS\r
-                      FORCE = BLOC(condition = "TYPE == 'FORCE' ",fr="Application d'une force ponctuelle",\r
-                                             POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la position axiale ou s'applique le moment (m)"),\r
-                                             MAGNITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des 3 composantes decrivant le moment (N/m)"),\r
-                                             #FONC_APPLI = SIMP(statut='f',typ='R',min=2,max=2,defaut=None,fr="Renseignement de la fonction appliquee"),\r
-                      ), # fin FORCE\r
-                      MOMENT = BLOC(condition = "TYPE == 'MOMENT' ",fr="Application d'un moment ponctuel",\r
-                                             POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la position axiale ou s'applique le moment (m)"),\r
-                                             MAGNITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des 3 composantes decrivant le moment (N/m)"),\r
-                      ), # fin MOMENT\r
-                      HARMONIQUE = BLOC(condition = "TYPE == 'HARMONIQUE' ",fr="Charge harmonique",\r
-                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la position axiale ou s'applique la charge harmonique (m)"),\r
-                              FREQUENCE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence d'excitation harmonique (Hz)"),\r
-                              MAGNITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de l'amplitude de la charge harmonique, (N)"),\r
-                              #FONC_APPLI = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la fonction appliquee de la charge harmonique (autant de valeurs que de vitesses de rotation)"),\r
-                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge harmonique (degres)"),\r
-                              TYPE_DDL = SIMP(statut='o',typ='TXM',min=1,max=1,into=('DX','DRX','DY','DRY','DZ','DRZ'),defaut=None,fr="Renseignement du DDL sur lequel s'applique la charge harmonique"),\r
-                      ), # fin HARMONIQUE\r
-                      ), #fin CHARGES\r
-                      ETAT_INIT = FACT(statut='o',fr="Renseignement de l'etat initial du calcul",\r
-                              #RESULTAT = SIMP(statut='o',typ=('sd_resultat'),max=1,defaut=None,fr="Choix de la structure de donnees resultat de code aster "),\r
-                              # 20121126\r
-                              #RESULTAT = SIMP(statut='o',typ='TXM',max=1,defaut=None,fr="Choix de la structure de donnees resultat de code aster "),\r
-                              INST_INIT = SIMP(statut='f',typ='R',max=1,defaut=None,fr="Renseignement de l'instant initial a partir duquel il faut lancer le calcul (s)"),\r
-                      ), # fin ETAT_INIT\r
-                      #PARAM_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('PAS','LIST_INST'),defaut=None,fr="Choix du type de parametrage temporel"),\r
-                      # 20121126\r
-                      PARAM_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('PAS'),defaut="PAS",fr="Choix du type de discretisation temporelle",),\r
-                      PAS = BLOC(condition = "PARAM_TEMPS == 'PAS' ",fr="Renseignement de pas de temps",\r
-                              PAS_ASTER = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement du pas de temps d'integration Code_Aster (en s)",),\r
-                              PAS_EDYOS = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement du pas de temps d'integration Edyos (en s)",),\r
-                              INST_FIN = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement de l'instant final du calcul (en s)",),\r
-                      ), # fin TEMPS_PAS\r
-                      #LIST_INST = BLOC(condition = "PARAM_TEMPS == 'LIST_INST' ",fr="Renseignement d'une liste de pas",\r
-                              #LISTE = SIMP(statut='f',typ='R',min=1,max='**',defaut=None,fr="Renseignement d'une liste de pas"),\r
-                      #), # fin LIST_INST\r
-                      PAS_ARCHIVAGE = SIMP(statut='o',typ='I',max=1,defaut=1,fr="Renseignement du pas d'archivage des resultats (une sauvegarde tous les 'PAS_ARCHIVAGE' instants d'integration)",),\r
-                      PARA_MEM = SIMP(statut='f',typ='I',max=1,defaut=6400,fr="Renseigner la taille maximale de la memoire (Mo)",),\r
-                      PARA_CPU = SIMP(statut='f',typ='I',max=1,defaut=10000,fr="Renseigner le temps CPU maximal (s)",),\r
-                      SCHEMA_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('EULER','ADAPT_ORDRE1','ADAPT_ORDRE2'),defaut='ADAPT_ORDRE2',fr="Choix d'un schema d'integration temporelle"),\r
-                      \r
-                      ## POST_TRAITEMENTS de l'analyse transitoire\r
-                      POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Definition et renseignement des post-traitements",\r
-                             TYPE = SIMP(statut='o',typ='TXM',into=('DEPL_ABS','DEPL_RELA','EFFORTS_PAL','CONTRAINTES'),defaut=None,fr="Choix du type de post-traitement"),\r
-                             DEPL = BLOC(condition = "TYPE in ('DEPL_ABS','DEPL_RELA') ",fr="Deplacement",\r
-                                     POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la coordonnee du deplacement"),\r
-                                     PALIER = SIMP(statut='f',typ='TXM',max=1,defaut=None,fr="Renseignement de l'etiquette du palier"),\r
-                             ), # fin DEPL\r
-                             # pas d'info à rentrer pour les efforts palier (post-traitement sur tout les paliers)\r
-                             #EFFORTS_PAL = BLOC(condition = "TYPE == 'EFFORTS_PAL'", fr = "Efforts paliers",\r
-                                 #PALIER = SIMP(statut='o',typ='TXM',max=1,defaut=None,fr="Renseignement de l'etiquette du palier"),\r
-                             #), # fin EFFORTS_PAL\r
-                             CONTRAINTES = BLOC(condition = "TYPE == 'CONTRAINTES' ",fr="Export des contraintes",\r
-                                               regles=UN_PARMI('POSITION','ZONE','TOUT'),\r
-                                     POSITION = SIMP(statut='f',typ='R',max=1,defaut=None,fr="Renseignement de la coordonnee de la contrainte"),\r
-                                     ZONE = SIMP(statut='f',typ='TXM',max=1,defaut=None,fr="Renseignement de l'etiquette de la zone de la contrainte"),\r
-                                     TOUT = SIMP(statut='f',typ='TXM',into=('OUI'),max=1,fr="Export pour tous les noeuds"),\r
-                             ), # fin CONTRAINTES\r
-                     ), # fin POST_TRAITEMENTS\r
-                      \r
-                      \r
-              ), # fin ANALYSE_TRANSITOIRE_ACCIDENTEL\r
-                 \r
-)# fin SPECIFICATION_ANALYSE\r
diff --git a/SPECA/configuration_SPECA.py b/SPECA/configuration_SPECA.py
deleted file mode 100644 (file)
index b9b56fe..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-# -*- coding: utf-8 -*-\r
-#            CONFIGURATION MANAGEMENT OF EDF VERSION\r
-# ======================================================================\r
-# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG\r
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY\r
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY\r
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR\r
-# (AT YOUR OPTION) ANY LATER VERSION.\r
-#\r
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT\r
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF\r
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU\r
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.\r
-#\r
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE\r
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,\r
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.\r
-#\r
-#\r
-# ======================================================================\r
-"""\r
-    Ce module sert pour charger les paramètres de configuration d'EFICAS\r
-"""\r
-# Modules Python\r
-from InterfaceQT4 import configuration\r
-import os\r
-\r
-\r
-class CONFIG(configuration.CONFIG_BASE):\r
-\r
-  #-----------------------------------\r
-  def __init__(self,appli,repIni):\r
-  #-----------------------------------\r
-\r
-      self.labels_user=['catalogues','lang']\r
-      self.labels_eficas=['lang','rep_cata','catalogues']\r
-\r
-      configuration.CONFIG_BASE.__init__(self,appli,repIni)\r
-\r
-\r
-def make_config(appli,rep):\r
-    return CONFIG(appli,rep)\r
-\r
diff --git a/SPECA/prefs.py b/SPECA/prefs.py
deleted file mode 100644 (file)
index cba8343..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-code='SPECA'
-import sys, os
-if os.path.abspath(__file__) not in sys.path :
-   sys.path.insert(0,os.path.dirname(os.path.abspath(__file__)))
diff --git a/SPECA/prefs_SPECA.py b/SPECA/prefs_SPECA.py
deleted file mode 100644 (file)
index 21b1e76..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-# -*- coding: utf-8 -*-
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-#
-#
-# ======================================================================
-
-import os,sys
-# repIni sert a localiser le fichier editeur.ini
-# Obligatoire
-repIni=os.path.dirname(os.path.abspath(__file__))
-INSTALLDIR=os.path.join(repIni,'..')
-sys.path[:0]=[INSTALLDIR]
-
-# lang indique la langue utilisee pour les chaines d'aide : fr ou ang
-lang='fr'
-
-# Codage des strings qui accepte les accents (en remplacement de 'ascii')
-encoding='iso-8859-1'
-
-#
-catalogues=(
-   ('SPECA','V2016',os.path.join(repIni,'SPECA_Cata_V2016.py'),'python','python'),
-)
diff --git a/SPECA/properties.py b/SPECA/properties.py
deleted file mode 100644 (file)
index 1d328a4..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#@ MODIF properties Accas DATE 11/06/2008 AUTEUR aster M.ADMINISTRATEUR
-# RESPONSABLE D6BHHHH J-P.LEFEBVRE
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-#     IDENTIFICATION DU GESTIONNAIRE DE COMMANDE ACCAS A PARTIR
-#     DE LA VERSION DU CODE_ASTER ASSOCIE
-#----------------------------------------------------------------------
-version = "1.2"
-date = "25/05/2010"
-exploit = False
diff --git a/SPECA/qtEficasSPECA.py b/SPECA/qtEficasSPECA.py
deleted file mode 100755 (executable)
index e02b8c7..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-"""
-   Ce module sert a lancer EFICAS configure pour MAP 
-"""
-# Modules Python
-# Modules Eficas
-import prefs
-name='prefs_'+prefs.code
-__import__(name)
-
-
-import sys,os
-sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..'))
-
-import prefs
-from InterfaceQT4 import eficas_go
-eficas_go.lance_eficas(code=prefs.code)
diff --git a/Telemac/mascaret/CMakeLists.txt b/Telemac/mascaret/CMakeLists.txt
new file mode 100644 (file)
index 0000000..deb3c65
--- /dev/null
@@ -0,0 +1,31 @@
+#  Copyright (C) 2012-2013 EDF
+#
+#  This file is part of SALOME HYDRO module.
+#
+#  SALOME HYDRO module is free software: you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation, either version 3 of the License, or
+#  (at your option) any later version.
+#
+#  SALOME HYDRO module is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with SALOME HYDRO module.  If not, see <http://www.gnu.org/licenses/>.
+
+# --- Python files ---
+
+SET(PYFILES
+  __init__.py
+  appli.py
+  configuration_mascaret.py
+  prefs_mascaret.py
+  prefs.py
+  mascaret_V7_cata.py
+)
+
+# --- rules ---
+
+SALOME_INSTALL_SCRIPTS("${PYFILES}" ${SALOME_INSTALL_PYTHON}/salome/hydro/mascaret/eficas)
diff --git a/Telemac/mascaret/__init__.py b/Telemac/mascaret/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/Telemac/mascaret/appli.py b/Telemac/mascaret/appli.py
new file mode 100644 (file)
index 0000000..754a719
--- /dev/null
@@ -0,0 +1,76 @@
+# -*- coding: utf-8 -*-
+#
+#  Copyright (C) 2012-2021 EDF
+#
+#  This file is part of SALOME HYDRO module.
+#
+#  SALOME HYDRO module is free software: you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation, either version 3 of the License, or
+#  (at your option) any later version.
+#
+#  SALOME HYDRO module is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with SALOME HYDRO module.  If not, see <http://www.gnu.org/licenses/>.
+
+import os
+import sys
+import re
+
+from PyQt5.QtWidgets import QMessageBox 
+
+
+import salome
+import SalomePyQt
+sgPyQt = SalomePyQt.SalomePyQt()
+
+from salome.kernel.logger import Logger
+from salome.kernel import termcolor
+logger = Logger("salome.hydro.mascaret.eficas.appli",
+                color = termcolor.GREEN_FG)
+
+import eficasSalome
+
+from salome.hydro.study import HydroStudyEditor
+
+class EficasForMascaretAppli(eficasSalome.MyEficas):
+    """
+    This class launches Eficas and adds entries for the created files in
+    MASCARET component in the study tree. The messages in this class are in
+    french because they are displayed in Eficas interface.
+
+    :type  fichier: string
+    :param fichier: path of an Eficas file to open
+
+    """
+    def __init__(self, fichier = None, version = None):
+        self.ed = HydroStudyEditor()
+        self.codedir = os.path.dirname(__file__)
+        sys.path[:0] = [self.codedir]
+        eficasSalome.MyEficas.__init__(self, sgPyQt.getDesktop(),
+                                       "mascaret",
+                                       fichier, version = version)
+        sgPyQt.createView("Eficas Mascaret", self)
+
+    def addJdcInSalome(self, jdcPath):
+        """
+        Add the newly created file in Salome study
+        """
+        try:
+            self.ed.find_or_create_mascaret_case(jdcPath)
+        except Exception, exc:
+            msgError = "Can't add file to Salome study tree"
+            logger.exception(msgError)
+            QMessageBox.warning(self, self.tr("Warning"),
+                                self.tr("%s. Reason:\n%s\n\nSee logs for "
+                                        "more details." % (msgError, exc)))
+        salome.sg.updateObjBrowser(0)
+
+    def closeEvent(self, event):
+        while self.codedir in sys.path:
+            sys.path.remove(self.codedir)
+        eficasSalome.MyEficas.closeEvent(self, event)
diff --git a/Telemac/mascaret/configuration_mascaret.py b/Telemac/mascaret/configuration_mascaret.py
new file mode 100644 (file)
index 0000000..08fd6d9
--- /dev/null
@@ -0,0 +1,46 @@
+# -*- coding: utf-8 -*-
+#
+#  Copyright (C) 2012-2021 EDF
+#
+#  This file is part of SALOME HYDRO module.
+#
+#  SALOME HYDRO module is free software: you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation, either version 3 of the License, or
+#  (at your option) any later version.
+#
+#  SALOME HYDRO module is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with SALOME HYDRO module.  If not, see <http://www.gnu.org/licenses/>.
+
+import os
+
+from Editeur.catadesc import CatalogDescription
+from InterfaceQT4.configuration import CONFIG_BASE
+
+class CONFIG(CONFIG_BASE):
+
+    def __init__(self, appli, repIni):
+        """
+        This class stores the configuration parameters for Eficas
+        """
+        CONFIG_BASE.__init__(self, appli, repIni)
+
+        # Configuration parameters
+        self.savedir    = os.getenv("HOME")
+        self.catalogues = (CatalogDescription("mascaret_V7",
+                                              os.path.join(repIni, "mascaret_V7_cata.py")),)
+        self.lang = 'fr'
+
+    def save_params(self):
+        pass
+
+def make_config(appli, rep):
+    return CONFIG(appli, rep)
+
+def make_config_style(appli, rep):
+    return None
diff --git a/Telemac/mascaret/mascaret_V7_cata.py b/Telemac/mascaret/mascaret_V7_cata.py
new file mode 100644 (file)
index 0000000..c3a97a3
--- /dev/null
@@ -0,0 +1,107 @@
+# -*- coding: utf-8 -*-
+#
+#  Copyright (C) 2012-2013 EDF
+#
+#  This file is part of SALOME HYDRO module.
+#
+#  SALOME HYDRO module is free software: you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation, either version 3 of the License, or
+#  (at your option) any later version.
+#
+#  SALOME HYDRO module is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with SALOME HYDRO module.  If not, see <http://www.gnu.org/licenses/>.
+
+from Accas import *
+
+JdC = JDC_CATA(regles = (UN_PARMI('MASCARET',)),
+                        )
+
+MASCARET = PROC(
+    nom = "MASCARET", op = None,
+    fr = u"Définition d'un cas d'étude Mascaret",
+    ang = u"Definition of a Mascaret study case",
+    FICHIER_DICO = SIMP(statut = "o", typ = 'Fichier',
+                        fr = u"Fichier Dictionnaire",
+                        ang = u"Dictionary file"),
+    FICHIER_MOT_CLE = SIMP(statut = "o",
+            typ = ('Fichier', 'Fichiers CAS (*.cas);;Tous les fichiers (*)',),
+            fr = u"Fichier Mot Clé",
+            ang = u"Keyword file"),
+    FICHIER_GEOMETRIE = SIMP(statut = "f",
+            typ = ('Fichier', 'Fichiers GEO (*.geo);;Tous les fichiers (*)',),
+            fr = u"Fichier de géométrie",
+            ang = u"Geometry file"),
+    FICHIER_LOI = FACT(statut = 'f', max = '**',
+        NOM = SIMP(statut = "o",
+                   typ = ('Fichier', 'Fichiers LOI (*.loi);;Tous les fichiers (*)',),
+                   fr = u"Fichier de lois",
+                   ang = u"Laws file"),
+                       ),
+    FICHIER_ABAQUES = SIMP(statut = "f",
+            typ = ('Fichier', 'Tous les fichiers (*)',),
+            fr = u"Fichier abaques",
+            ang = u"Abacus file"),
+    FICHIER_CASIER = SIMP(statut = "f",
+            typ = ('Fichier', 'Tous les fichiers (*)',),
+            fr = u"Fichier casier",
+            ang = u"Compartment file"),
+    FICHIER_DAMOCLE = SIMP(statut = "f",
+            typ = ('Fichier', 'Tous les fichiers (*)',),
+            fr = u"Fichier damocle",
+            ang = u"Damocle file"),
+    FICHIER_LIG = SIMP(statut = "o",
+            typ = ('Fichier', 'Fichiers LIG (*.lig);;Tous les fichiers (*)',),
+            fr = u"Fichier LIG",
+            ang = u"LIG file"),
+    LISTING = SIMP(statut = "f",
+            typ = ('Fichier', 'Tous les fichiers (*)', "Sauvegarde"),
+            fr = u"Fichier de listing",
+            ang = u"Listing file"),
+    LISTING_CASIER = SIMP(statut = "f",
+            typ = ('Fichier', 'Tous les fichiers (*)', "Sauvegarde"),
+            fr = u"Fichier de listing casier",
+            ang = u"Compartment listing file"),
+    LISTING_LIAISON = SIMP(statut = "f",
+            typ = ('Fichier', 'Tous les fichiers (*)', "Sauvegarde"),
+            fr = u"Fichier de listing liaison",
+            ang = u"Link listing file"),
+    RESULTAT = SIMP(statut = "f",
+            typ = ('Fichier', 'Tous les fichiers (*)', "Sauvegarde"),
+            fr = u"Fichier de résultat",
+            ang = u"Result file"),
+    RESULTAT_CASIER = SIMP(statut = "f",
+            typ = ('Fichier', 'Tous les fichiers (*)', "Sauvegarde"),
+            fr = u"Fichier de résultat casier",
+            ang = u"Compartment result file"),
+    RESULTAT_LIAISON = SIMP(statut = "f",
+            typ = ('Fichier', 'Tous les fichiers (*)', "Sauvegarde"),
+            fr = u"Fichier de résultat liaison",
+            ang = u"Link result file"),
+    VARIABLE_SORTIE = FACT(statut = 'f', max = '**',
+                           fr = u"Variable de sortie du calcul",
+                           ang = u"Computation output variable",
+        NOM = SIMP(statut = "o", typ = 'TXM',
+                   fr = u"Nom de la variable",
+                   ang = u"Variable name"),
+        VARIABLE_MASCARET = SIMP(statut = "o", typ = 'TXM',
+                   fr = u'Variable Mascaret (ex : "Etat.Z(1,0,0)")',
+                   ang = u'Mascaret variable (ex : "Etat.Z(1,0,0)")'),
+                           ),
+    VARIABLE_ENTREE = FACT(statut = 'f', max = '**',
+                           fr = u"Variable d'entrée du calcul",
+                           ang = u"Computation input variable",
+        NOM = SIMP(statut = "o", typ = 'TXM',
+                   fr = u"Nom de la variable",
+                   ang = u"Variable name"),
+        VARIABLE_MASCARET = SIMP(statut = "o", typ = 'TXM',
+                   fr = u'Variable Mascaret (ex : "Modele.Lois.Debit(1,1-2,0)")',
+                   ang = u'Mascaret variable (ex : "Modele.Lois.Debit(1,1-2,0)")'),
+                           ),
+)
+TEXTE_NEW_JDC="MASCARET()"
diff --git a/Telemac/mascaret/prefs.py b/Telemac/mascaret/prefs.py
new file mode 100644 (file)
index 0000000..d0e8113
--- /dev/null
@@ -0,0 +1,18 @@
+#  Copyright (C) 2012-2013 EDF
+#
+#  This file is part of SALOME HYDRO module.
+#
+#  SALOME HYDRO module is free software: you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation, either version 3 of the License, or
+#  (at your option) any later version.
+#
+#  SALOME HYDRO module is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with SALOME HYDRO module.  If not, see <http://www.gnu.org/licenses/>.
+
+code = "mascaret"
diff --git a/Telemac/mascaret/prefs_mascaret.py b/Telemac/mascaret/prefs_mascaret.py
new file mode 100644 (file)
index 0000000..2586f5f
--- /dev/null
@@ -0,0 +1,28 @@
+#  Copyright (C) 2012-2021 EDF
+#
+#  This file is part of SALOME HYDRO module.
+#
+#  SALOME HYDRO module is free software: you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation, either version 3 of the License, or
+#  (at your option) any later version.
+#
+#  SALOME HYDRO module is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with SALOME HYDRO module.  If not, see <http://www.gnu.org/licenses/>.
+
+import os
+import sys
+
+repIni = os.path.dirname(__file__)
+INSTALLDIR = os.getenv("EFICAS_ROOT")
+closeAutreCommande=True
+closeFrameRechercheCommande=True
+closeArbre=True
+closeCopier=True
+suiteTelemac=True
+
diff --git a/Telemac/transforme/ReadMe b/Telemac/transforme/ReadMe
deleted file mode 100644 (file)
index f81dd84..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-il faut les 2 fichiers cata_name2eng_name.ts et cata_name2fra_name.ts
-./reEcrittsEn.py -i cata_name2eng_name.ts -d dicoCasEnToCata.py -t labelCataToIhmEn.ts
-regler à la main les histoires de ""
-modifier  DicoCasEnToCata en dicoCataToEng
-
-
-./reEcrittsFr.py -i cata_name2fra_name.ts -d dicoCasFrToCata.py -t labelCataToIhmFr.ts
-regler à la main les histoires de ""
-modifier  DicoCasEnToCata en dicoCataToFr
-attention a defaut default...
diff --git a/Telemac/transforme/reEcrittsEn.py b/Telemac/transforme/reEcrittsEn.py
deleted file mode 100755 (executable)
index 2613e0a..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-#!/usr/bin/env python
-import sys, re
-dicoCataToLabel={}
-dicoCataToTelemac={}
-Entete  = '<?xml version="1.0" encoding="utf-8"?>'
-Entete +='<!DOCTYPE TS><TS version="1.1" language="en">'
-Entete +='<context>\n'
-Entete +='    <name>@defaut</name>\n'
-
-Fin ='</context>\n</TS>\n'
-
-pattern_In=re.compile(r'^\s*<source>(?P<ident>.*)</source>\s*$')
-pattern_Out=re.compile(r'^\s*<translation>(?P<traduit>.*)</translation>\s*$')
-
-listeMaj=[]
-listeMaj.append(('for h','for H'))
-listeMaj.append(('pour h','pour H'))
-listeMaj.append(('for u','for U'))
-listeMaj.append(('pour u','pour U'))
-listeMaj.append(('of k','of K'))
-listeMaj.append(('de k','de K'))
-listeMaj.append(('of h','of H'))
-listeMaj.append(('de h','de H'))
-listeMaj.append(('u and v','U and V'))
-listeMaj.append(('u et v','U et V'))
-listeMaj.append(('on h','on H'))
-listeMaj.append(('sur h','sur H'))
-listeMaj.append(('supg','SUPG'))
-listeMaj.append(('k and epsilon','K and Epsilon'))
-listeMaj.append(('k-epsilon','K-Epsilon'))
-listeMaj.append(('gmres','GMRES'))
-listeMaj.append(('cgstab','CGSTAB'))
-listeMaj.append(('q(z)','Q(Z)'))
-listeMaj.append(('z(q)','Z(Q)'))
-listeMaj.append(('wgs84','WGS84'))
-listeMaj.append(('wgs84','UTM'))
-listeMaj.append(('n-scheme','N-Scheme'))
-listeMaj.append(('scheme n','Scheme N'))
-listeMaj.append(('psi-scheme','PSI-Scheme'))
-listeMaj.append((' psi',' PSI'))
-listeMaj.append(('f(t90)','F(T90)'))
-listeMaj.append(('(pa)','(Pa)'))
-listeMaj.append(('h clipping','H clipping'))
-listeMaj.append(('delwaq','DELWAQ'))
-listeMaj.append(('tomawac','TOMAWAC'))
-listeMaj.append(('chezy','CHEZY'))
-listeMaj.append(('hllc','HLLC'))
-listeMaj.append(('c-u','C-U'))
-listeMaj.append(('c,u,v','C,U,V'))
-listeMaj.append(('h,u,v','H,U,V'))
-listeMaj.append(('previmer','PREVIMER'))
-listeMaj.append(('fes20xx','FES20XX'))
-listeMaj.append(('legos-nea','LEGOS-NEA'))
-listeMaj.append(('tpxo','TPXO'))
-listeMaj.append((' x',' X'))
-listeMaj.append((' y',' Y'))
-listeMaj.append(('waf','WAF'))
-listeMaj.append(('(w/kg)','(W/kg)'))
-listeMaj.append(('(j/kg)','(W/kg)'))
-listeMaj.append(('zokagoa','Zokagoa'))
-listeMaj.append(('nikuradse','Nikuradse'))
-listeMaj.append(('froude','Froude'))
-listeMaj.append(('gauss','Gauss'))
-listeMaj.append(('seidel','Seidel'))
-listeMaj.append(('leo','Leo'))
-listeMaj.append(('postma','Postma'))
-listeMaj.append(('crout','Crout'))
-listeMaj.append(('okada','Okada'))
-listeMaj.append(('jmj','JMJ'))
-listeMaj.append(('haaland','HAALAND'))
-listeMaj.append(('grad(u)','grad(U)'))
-listeMaj.append(('variable z','variable Z'))
-listeMaj.append(('variable r','variable R'))
-listeMaj.append(('ascii','ASCII'))
-
-
-def traite(fichier,fichierDico, fichierTs):
-  f=open(fichier,'r')
-  t=f.read()
-  for ligne in t.split('\n'):
-     if pattern_In.match(ligne): 
-        m=pattern_In.match(ligne)
-        ident=m.group('ident')
-     if pattern_Out.match(ligne): 
-        m=pattern_Out.match(ligne)
-        traduit=m.group('traduit')
-        dicoCataToTelemac[ident]=traduit
-        traduitMin=traduit.lower()
-        for t in listeMaj :
-           traduit=traduitMin.replace(t[0],t[1])
-           traduitMin=traduit
-        chaine=traduitMin[0].upper()+traduitMin[1:]
-        dicoCataToLabel[ident]=chaine
-  f.close()
-
-  f=open(fichierDico,'w')
-  f.write ("dicoCataToEngTelemac = {\n")
-  for k in dicoCataToTelemac.keys() :
-       l= '   "'+  k +'" : "'+ dicoCataToTelemac[k]+'",\n'
-       f.write(l)
-  f.write(" }\n")
-  f.write( "dicoCasEnToCata = {\n")
-  for k in dicoCataToTelemac.keys() :
-      l= '   "'+ dicoCataToTelemac[k] +'" : "'+ k+'",\n'
-      f.write(l)
-  f.write( " }\n")
-  f.close()
-
-  f=open(fichierTs,'w')
-  f.write( Entete)
-  for k in dicoCataToTelemac.keys() :
-      texte = "    <message>\n        <source>"
-      texte+= k
-      texte+= "</source>\n        <translation>"
-      texte+= dicoCataToLabel[k]
-      texte+= "</translation>\n    </message>\n"
-      f.write( texte)
-
-  f.write( Fin)
-
-    
-if __name__ == "__main__":
-  import optparse
-  parser=optparse.OptionParser(usage="utilisation : %prog [options]")
-  parser.add_option(u"-i","--input",dest="fichierIn",type='string',
-                    help=("nom du fichier ts a traduire"))
-  parser.add_option(u"-d","--dico",dest="fichierDico",type='string',
-                    help=("nom du fichier contenant les dictionnaires labelTelemac:labelCata en sortie"))
-  parser.add_option(u"-t","--tsFile",dest="fichierTs",type='string',
-                    help=("nom du fichier ts contenant labelCata vers label IHM"))
-
-
-  (options,args)=parser.parse_args(sys.argv[1:])
-  if options.fichierIn == None or options.fichierDico == None or options.fichierTs==None :
-      print 'reEcrittsEn.py -i <inputfile> -d <dicofile> -t <tsfile>'
-      print './reEcrittsEn.py -i cata_name2eng_name.ts -d dicoCasEnToCata.py -t labelCataToIhmEn.ts'
-      sys.exit(1)
-  traite(options.fichierIn,options.fichierDico,options.fichierTs)
-
diff --git a/Telemac/transforme/reEcrittsFr.py b/Telemac/transforme/reEcrittsFr.py
deleted file mode 100755 (executable)
index 5d486c7..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-#!/usr/bin/env python
-import sys, re
-dicoCataToLabel={}
-dicoCataToTelemac={}
-Entete  = '<?xml version="1.0" encoding="utf-8"?>'
-Entete +='<!DOCTYPE TS><TS version="1.1" language="en">'
-Entete +='<context>\n'
-Entete +='    <name>@defaut</name>\n'
-
-Fin ='</context>\n</TS>\n'
-
-pattern_In=re.compile(r'^\s*<source>(?P<ident>.*)</source>\s*$')
-pattern_Out=re.compile(r'^\s*<translation>(?P<traduit>.*)</translation>\s*$')
-
-listeMaj=[]
-listeMaj.append(('for h','for H'))
-listeMaj.append(('pour h','pour H'))
-listeMaj.append(('for u','for U'))
-listeMaj.append(('pour u','pour U'))
-listeMaj.append(('of k','of K'))
-listeMaj.append(('de k','de K'))
-listeMaj.append(('of h','of H'))
-listeMaj.append(('de h','de H'))
-listeMaj.append(('u and v','U and V'))
-listeMaj.append(('u et v','U et V'))
-listeMaj.append(('on h','on H'))
-listeMaj.append(('sur h','sur H'))
-listeMaj.append(('supg','SUPG'))
-listeMaj.append(('k and epsilon','K and Epsilon'))
-listeMaj.append(('k-epsilon','K-Epsilon'))
-listeMaj.append(('gmres','GMRES'))
-listeMaj.append(('cgstab','CGSTAB'))
-listeMaj.append(('q(z)','Q(Z)'))
-listeMaj.append(('z(q)','Z(Q)'))
-listeMaj.append(('wgs84','WGS84'))
-listeMaj.append(('wgs84','UTM'))
-listeMaj.append(('n-scheme','N-Scheme'))
-listeMaj.append(('scheme n','Scheme N'))
-listeMaj.append(('psi-scheme','PSI-Scheme'))
-listeMaj.append((' psi',' PSI'))
-listeMaj.append(('f(t90)','F(T90)'))
-listeMaj.append(('(pa)','(Pa)'))
-listeMaj.append(('h clipping','H clipping'))
-listeMaj.append(('delwaq','DELWAQ'))
-listeMaj.append(('tomawac','TOMAWAC'))
-listeMaj.append(('chezy','CHEZY'))
-listeMaj.append(('hllc','HLLC'))
-listeMaj.append(('c-u','C-U'))
-listeMaj.append(('c,u,v','C,U,V'))
-listeMaj.append(('h,u,v','H,U,V'))
-listeMaj.append(('previmer','PREVIMER'))
-listeMaj.append(('fes20xx','FES20XX'))
-listeMaj.append(('legos-nea','LEGOS-NEA'))
-listeMaj.append(('tpxo','TPXO'))
-listeMaj.append((' x',' X'))
-listeMaj.append((' y',' Y'))
-listeMaj.append(('waf','WAF'))
-listeMaj.append(('(w/kg)','(W/kg)'))
-listeMaj.append(('(j/kg)','(W/kg)'))
-listeMaj.append(('zokagoa','Zokagoa'))
-listeMaj.append(('nikuradse','Nikuradse'))
-listeMaj.append(('froude','Froude'))
-listeMaj.append(('gauss','Gauss'))
-listeMaj.append(('seidel','Seidel'))
-listeMaj.append(('leo','Leo'))
-listeMaj.append(('postma','Postma'))
-listeMaj.append(('crout','Crout'))
-listeMaj.append(('okada','Okada'))
-listeMaj.append(('jmj','JMJ'))
-listeMaj.append(('haaland','HAALAND'))
-listeMaj.append(('grad(u)','grad(U)'))
-listeMaj.append(('variable z','variable Z'))
-listeMaj.append(('variable r','variable R'))
-listeMaj.append(('ascii','ASCII'))
-
-
-def traite(fichier,fichierDico, fichierTs):
-  f=open(fichier,'r')
-  t=f.read()
-  for ligne in t.split('\n'):
-     if pattern_In.match(ligne): 
-        m=pattern_In.match(ligne)
-        ident=m.group('ident')
-     if pattern_Out.match(ligne): 
-        m=pattern_Out.match(ligne)
-        traduit=m.group('traduit')
-        dicoCataToTelemac[ident]=traduit
-        traduitMin=traduit.lower()
-        for t in listeMaj :
-           traduit=traduitMin.replace(t[0],t[1])
-           traduitMin=traduit
-        chaine=traduitMin[0].upper()+traduitMin[1:]
-        dicoCataToLabel[ident]=chaine
-  f.close()
-
-  f=open(fichierDico,'w')
-  f.write ("dicoCataToFrTelemac = {\n")
-  for k in dicoCataToTelemac.keys() :
-       l= '   "'+  k +'" : "'+ dicoCataToTelemac[k]+'",\n'
-       f.write(l)
-  f.write(" }\n")
-  f.write( "dicoCasFrToCata = {\n")
-  for k in dicoCataToTelemac.keys() :
-      l= '   "'+ dicoCataToTelemac[k] +'" : "'+ k+'",\n'
-      f.write(l)
-  f.write( " }\n")
-  f.close()
-
-  f=open(fichierTs,'w')
-  f.write( Entete)
-  for k in dicoCataToTelemac.keys() :
-      texte = "    <message>\n        <source>"
-      texte+= k
-      texte+= "</source>\n        <translation>"
-      texte+= dicoCataToLabel[k]
-      texte+= "</translation>\n    </message>\n"
-      f.write( texte)
-
-  f.write( Fin)
-
-    
-if __name__ == "__main__":
-  import optparse
-  parser=optparse.OptionParser(usage="utilisation : %prog [options]")
-  parser.add_option(u"-i","--input",dest="fichierIn",type='string',
-                    help=("nom du fichier ts a traduire"))
-  parser.add_option(u"-d","--dico",dest="fichierDico",type='string',
-                    help=("nom du fichier contenant les dictionnaires labelTelemac:labelCata en sortie"))
-  parser.add_option(u"-t","--tsFile",dest="fichierTs",type='string',
-                    help=("nom du fichier ts contenant labelCata vers label IHM"))
-
-
-  (options,args)=parser.parse_args(sys.argv[1:])
-  if options.fichierIn == None or options.fichierDico == None or options.fichierTs==None :
-      print 'reEcritts.py -i <inputfile> -d <dicofile> -t <tsfile>'
-      print './reEcritts.py -i cata_name2eng_name.ts -d dicoCasEnToCata.py -t tsfile'
-      sys.exit(1)
-  traite(options.fichierIn,options.fichierDico,options.fichierTs)
-
diff --git a/Tests/HTMLTestRunner.py b/Tests/HTMLTestRunner.py
deleted file mode 100644 (file)
index 0439bf4..0000000
+++ /dev/null
@@ -1,824 +0,0 @@
-"""
-A TestRunner for use with the Python unit testing framework. It
-generates a HTML report to show the result at a glance.
-
-The simplest way to use this is to invoke its main method. E.g.
-
-    import unittest
-    import HTMLTestRunner
-
-    ... define your tests ...
-
-    if __name__ == '__main__':
-        HTMLTestRunner.main()
-
-
-For more customization options, instantiates a HTMLTestRunner object.
-HTMLTestRunner is a counterpart to unittest's TextTestRunner. E.g.
-
-    # output to a file
-    fp = file('my_report.html', 'wb')
-    runner = HTMLTestRunner.HTMLTestRunner(
-                stream=fp,
-                title='My unit test',
-                description='This demonstrates the report output by HTMLTestRunner.'
-                )
-
-    # Use an external stylesheet.
-    # See the Template_mixin class for more customizable options
-    runner.STYLESHEET_TMPL = '<link rel="stylesheet" href="my_stylesheet.css" type="text/css">'
-
-    # run the test
-    runner.run(my_test_suite)
-
-
-------------------------------------------------------------------------
-Copyright (c) 2004-2007, Wai Yip Tung
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-* Redistributions of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright
-  notice, this list of conditions and the following disclaimer in the
-  documentation and/or other materials provided with the distribution.
-* Neither the name Wai Yip Tung nor the names of its contributors may be
-  used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
-OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-"""
-
-# URL: http://tungwaiyip.info/software/HTMLTestRunner.html
-
-__author__ = "Wai Yip Tung"
-__version__ = "0.8.2"
-
-
-"""
-Change History
-
-Version 0.8.2
-* Show output inline instead of popup window (Viorel Lupu).
-
-Version in 0.8.1
-* Validated XHTML (Wolfgang Borgert).
-* Added description of test classes and test cases.
-
-Version in 0.8.0
-* Define Template_mixin class for customization.
-* Workaround a IE 6 bug that it does not treat <script> block as CDATA.
-
-Version in 0.7.1
-* Back port to Python 2.3 (Frank Horowitz).
-* Fix missing scroll bars in detail log (Podi).
-"""
-
-# TODO: color stderr
-# TODO: simplify javascript using ,ore than 1 class in the class attribute?
-
-import datetime
-import StringIO
-import sys
-import time
-import unittest
-from xml.sax import saxutils
-
-
-# ------------------------------------------------------------------------
-# The redirectors below are used to capture output during testing. Output
-# sent to sys.stdout and sys.stderr are automatically captured. However
-# in some cases sys.stdout is already cached before HTMLTestRunner is
-# invoked (e.g. calling logging.basicConfig). In order to capture those
-# output, use the redirectors for the cached stream.
-#
-# e.g.
-#   >>> logging.basicConfig(stream=HTMLTestRunner.stdout_redirector)
-#   >>>
-
-class OutputRedirector(object):
-    """ Wrapper to redirect stdout or stderr """
-    def __init__(self, fp):
-        self.fp = fp
-
-    def write(self, s):
-        self.fp.write(s)
-
-    def writelines(self, lines):
-        self.fp.writelines(lines)
-
-    def flush(self):
-        self.fp.flush()
-
-stdout_redirector = OutputRedirector(sys.stdout)
-stderr_redirector = OutputRedirector(sys.stderr)
-
-
-
-# ----------------------------------------------------------------------
-# Template
-
-class Template_mixin(object):
-    """
-    Define a HTML template for report customerization and generation.
-
-    Overall structure of an HTML report
-
-    HTML
-    +------------------------+
-    |<html>                  |
-    |  <head>                |
-    |                        |
-    |   STYLESHEET           |
-    |   +----------------+   |
-    |   |                |   |
-    |   +----------------+   |
-    |                        |
-    |  </head>               |
-    |                        |
-    |  <body>                |
-    |                        |
-    |   HEADING              |
-    |   +----------------+   |
-    |   |                |   |
-    |   +----------------+   |
-    |                        |
-    |   REPORT               |
-    |   +----------------+   |
-    |   |                |   |
-    |   +----------------+   |
-    |                        |
-    |   ENDING               |
-    |   +----------------+   |
-    |   |                |   |
-    |   +----------------+   |
-    |                        |
-    |  </body>               |
-    |</html>                 |
-    +------------------------+
-    """
-
-    STATUS = {
-    0: 'pass',
-    1: 'fail',
-    2: 'error',
-    }
-
-    DEFAULT_TITLE = 'Unit Test Report'
-    DEFAULT_DESCRIPTION = ''
-
-    # ------------------------------------------------------------------------
-    # HTML Template
-
-    HTML_TMPL = r"""<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-    <title>%(title)s</title>
-    <meta name="generator" content="%(generator)s"/>
-    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-    %(stylesheet)s
-</head>
-<body>
-<script language="javascript" type="text/javascript"><!--
-output_list = Array();
-
-/* level - 0:Summary; 1:Failed; 2:All */
-function showCase(level) {
-    trs = document.getElementsByTagName("tr");
-    for (var i = 0; i < trs.length; i++) {
-        tr = trs[i];
-        id = tr.id;
-        if (id.substr(0,2) == 'ft') {
-            if (level < 1) {
-                tr.className = 'hiddenRow';
-            }
-            else {
-                tr.className = '';
-            }
-        }
-        if (id.substr(0,2) == 'pt') {
-            if (level > 1) {
-                tr.className = '';
-            }
-            else {
-                tr.className = 'hiddenRow';
-            }
-        }
-    }
-}
-
-
-function showClassDetail(cid, count) {
-    var id_list = Array(count);
-    var toHide = 1;
-    for (var i = 0; i < count; i++) {
-        tid0 = 't' + cid.substr(1) + '.' + (i+1);
-        tid = 'f' + tid0;
-        tr = document.getElementById(tid);
-        if (!tr) {
-            tid = 'p' + tid0;
-            tr = document.getElementById(tid);
-        }
-        id_list[i] = tid;
-        if (tr.className) {
-            toHide = 0;
-        }
-    }
-    for (var i = 0; i < count; i++) {
-        tid = id_list[i];
-        if (toHide) {
-            document.getElementById('div_'+tid).style.display = 'none'
-            document.getElementById(tid).className = 'hiddenRow';
-        }
-        else {
-            document.getElementById(tid).className = '';
-        }
-    }
-}
-
-
-function showTestDetail(div_id){
-    var details_div = document.getElementById(div_id)
-    var displayState = details_div.style.display
-    // alert(displayState)
-    if (displayState != 'block' ) {
-        displayState = 'block'
-        details_div.style.display = 'block'
-    }
-    else {
-        details_div.style.display = 'none'
-    }
-}
-
-
-function html_escape(s) {
-    s = s.replace(/&/g,'&amp;');
-    s = s.replace(/</g,'&lt;');
-    s = s.replace(/>/g,'&gt;');
-    return s;
-}
-
-/* obsoleted by detail in <div>
-function showOutput(id, name) {
-    var w = window.open("", //url
-                    name,
-                    "resizable,scrollbars,status,width=800,height=450");
-    d = w.document;
-    d.write("<pre>");
-    d.write(html_escape(output_list[id]));
-    d.write("\n");
-    d.write("<a href='javascript:window.close()'>close</a>\n");
-    d.write("</pre>\n");
-    d.close();
-}
-*/
---></script>
-
-%(heading)s
-%(report)s
-%(ending)s
-
-</body>
-</html>
-"""
-    # variables: (title, generator, stylesheet, heading, report, ending)
-
-
-    # ------------------------------------------------------------------------
-    # Stylesheet
-    #
-    # alternatively use a <link> for external style sheet, e.g.
-    #   <link rel="stylesheet" href="$url" type="text/css">
-
-    STYLESHEET_TMPL = """
-<style type="text/css" media="screen">
-body        { font-family: verdana, arial, helvetica, sans-serif; font-size: 80%; }
-table       { font-size: 100%; }
-pre         { }
-
-/* -- heading ---------------------------------------------------------------------- */
-h1 {
-       font-size: 16pt;
-       color: gray;
-}
-.heading {
-    margin-top: 0ex;
-    margin-bottom: 1ex;
-}
-
-.heading .attribute {
-    margin-top: 1ex;
-    margin-bottom: 0;
-}
-
-.heading .description {
-    margin-top: 4ex;
-    margin-bottom: 6ex;
-}
-
-/* -- css div popup ------------------------------------------------------------------------ */
-a.popup_link {
-}
-
-a.popup_link:hover {
-    color: red;
-}
-
-.popup_window {
-    display: none;
-    position: relative;
-    left: 0px;
-    top: 0px;
-    /*border: solid #627173 1px; */
-    padding: 10px;
-    background-color: #E6E6D6;
-    font-family: "Lucida Console", "Courier New", Courier, monospace;
-    text-align: left;
-    font-size: 8pt;
-    width: 500px;
-}
-
-}
-/* -- report ------------------------------------------------------------------------ */
-#show_detail_line {
-    margin-top: 3ex;
-    margin-bottom: 1ex;
-}
-#result_table {
-    width: 80%;
-    border-collapse: collapse;
-    border: 1px solid #777;
-}
-#header_row {
-    font-weight: bold;
-    color: white;
-    background-color: #777;
-}
-#result_table td {
-    border: 1px solid #777;
-    padding: 2px;
-}
-#total_row  { font-weight: bold; }
-.passClass  { background-color: #6c6; }
-.failClass  { background-color: #c60; }
-.errorClass { background-color: #c00; }
-.passCase   { color: #6c6; }
-.failCase   { color: #c60; font-weight: bold; }
-.errorCase  { color: #c00; font-weight: bold; }
-.hiddenRow  { display: none; }
-.testcase   { margin-left: 2em; }
-
-
-/* -- ending ---------------------------------------------------------------------- */
-#ending {
-}
-
-</style>
-"""
-
-
-
-    # ------------------------------------------------------------------------
-    # Heading
-    #
-
-    HEADING_TMPL = """<div class='heading'>
-<h1>%(title)s</h1>
-%(parameters)s
-<p class='description'>%(description)s</p>
-</div>
-
-""" # variables: (title, parameters, description)
-
-    HEADING_ATTRIBUTE_TMPL = """<p class='attribute'><strong>%(name)s:</strong> %(value)s</p>
-""" # variables: (name, value)
-
-
-
-    # ------------------------------------------------------------------------
-    # Report
-    #
-
-    REPORT_TMPL = """
-<p id='show_detail_line'>Show
-<a href='javascript:showCase(0)'>Summary</a>
-<a href='javascript:showCase(1)'>Failed</a>
-<a href='javascript:showCase(2)'>All</a>
-</p>
-<table id='result_table'>
-<colgroup>
-<col align='left' />
-<col align='right' />
-<col align='right' />
-<col align='right' />
-<col align='right' />
-<col align='right' />
-</colgroup>
-<tr id='header_row'>
-    <td>Test Group/Test case</td>
-    <td>Count</td>
-    <td>Pass</td>
-    <td>Fail</td>
-    <td>Error</td>
-    <td>View</td>
-</tr>
-%(test_list)s
-<tr id='total_row'>
-    <td>Total</td>
-    <td>%(count)s</td>
-    <td>%(Pass)s</td>
-    <td>%(fail)s</td>
-    <td>%(error)s</td>
-    <td>&nbsp;</td>
-</tr>
-</table>
-""" # variables: (test_list, count, Pass, fail, error)
-
-    REPORT_CLASS_TMPL = r"""
-<tr class='%(style)s'>
-    <td>%(desc)s</td>
-    <td>%(count)s</td>
-    <td>%(Pass)s</td>
-    <td>%(fail)s</td>
-    <td>%(error)s</td>
-    <td><a href="javascript:showClassDetail('%(cid)s',%(count)s)">Detail</a></td>
-</tr>
-""" # variables: (style, desc, count, Pass, fail, error, cid)
-
-
-    REPORT_TEST_WITH_OUTPUT_TMPL = r"""
-<tr id='%(tid)s' class='%(Class)s'>
-    <td class='%(style)s'><div class='testcase'>%(desc)s</div></td>
-    <td colspan='5' align='center'>
-
-    <!--css div popup start-->
-    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_%(tid)s')" >
-        %(status)s</a>
-
-    <div id='div_%(tid)s' class="popup_window">
-        <div style='text-align: right; color:red;cursor:pointer'>
-        <a onfocus='this.blur();' onclick="document.getElementById('div_%(tid)s').style.display = 'none' " >
-           [x]</a>
-        </div>
-        <pre>
-        %(script)s
-        </pre>
-    </div>
-    <!--css div popup end-->
-
-    </td>
-</tr>
-""" # variables: (tid, Class, style, desc, status)
-
-
-    REPORT_TEST_NO_OUTPUT_TMPL = r"""
-<tr id='%(tid)s' class='%(Class)s'>
-    <td class='%(style)s'><div class='testcase'>%(desc)s</div></td>
-    <td colspan='5' align='center'>%(status)s</td>
-</tr>
-""" # variables: (tid, Class, style, desc, status)
-
-
-    REPORT_TEST_OUTPUT_TMPL = r"""
-%(id)s: %(output)s
-""" # variables: (id, output)
-
-
-
-    # ------------------------------------------------------------------------
-    # ENDING
-    #
-
-    ENDING_TMPL = """<div id='ending'>&nbsp;</div>"""
-
-# -------------------- The end of the Template class -------------------
-
-
-TestResult = unittest.TestResult
-
-class _TestResult(TestResult):
-    # note: _TestResult is a pure representation of results.
-    # It lacks the output and reporting ability compares to unittest._TextTestResult.
-
-    def __init__(self, verbosity=1):
-        TestResult.__init__(self)
-        self.stdout0 = None
-        self.stderr0 = None
-        self.success_count = 0
-        self.failure_count = 0
-        self.error_count = 0
-        self.verbosity = verbosity
-
-        # result is a list of result in 4 tuple
-        # (
-        #   result code (0: success; 1: fail; 2: error),
-        #   TestCase object,
-        #   Test output (byte string),
-        #   stack trace,
-        # )
-        self.result = []
-
-
-    def startTest(self, test):
-        TestResult.startTest(self, test)
-        # just one buffer for both stdout and stderr
-        self.outputBuffer = StringIO.StringIO()
-        stdout_redirector.fp = self.outputBuffer
-        stderr_redirector.fp = self.outputBuffer
-        self.stdout0 = sys.stdout
-        self.stderr0 = sys.stderr
-        sys.stdout = stdout_redirector
-        sys.stderr = stderr_redirector
-
-
-    def complete_output(self):
-        """
-        Disconnect output redirection and return buffer.
-        Safe to call multiple times.
-        """
-        if self.stdout0:
-            sys.stdout = self.stdout0
-            sys.stderr = self.stderr0
-            self.stdout0 = None
-            self.stderr0 = None
-        return self.outputBuffer.getvalue()
-
-
-    def stopTest(self, test):
-        # Usually one of addSuccess, addError or addFailure would have been called.
-        # But there are some path in unittest that would bypass this.
-        # We must disconnect stdout in stopTest(), which is guaranteed to be called.
-        self.complete_output()
-
-
-    def addSuccess(self, test):
-        self.success_count += 1
-        TestResult.addSuccess(self, test)
-        output = self.complete_output()
-        self.result.append((0, test, output, ''))
-        if self.verbosity > 1:
-            sys.stderr.write('ok ')
-            sys.stderr.write(str(test))
-            sys.stderr.write('\n')
-        else:
-            sys.stderr.write('.')
-
-    def addError(self, test, err):
-        self.error_count += 1
-        TestResult.addError(self, test, err)
-        _, _exc_str = self.errors[-1]
-        output = self.complete_output()
-        self.result.append((2, test, output, _exc_str))
-        if self.verbosity > 1:
-            sys.stderr.write('E  ')
-            sys.stderr.write(str(test))
-            sys.stderr.write('\n')
-        else:
-            sys.stderr.write('E')
-
-    def addFailure(self, test, err):
-        self.failure_count += 1
-        TestResult.addFailure(self, test, err)
-        _, _exc_str = self.failures[-1]
-        output = self.complete_output()
-        self.result.append((1, test, output, _exc_str))
-        if self.verbosity > 1:
-            sys.stderr.write('F  ')
-            sys.stderr.write(str(test))
-            sys.stderr.write('\n')
-        else:
-            sys.stderr.write('F')
-
-
-class HTMLTestRunner(Template_mixin):
-    """
-    """
-    def __init__(self, stream=sys.stdout, verbosity=1, title=None, description=None):
-        self.stream = stream
-        self.verbosity = verbosity
-        if title is None:
-            self.title = self.DEFAULT_TITLE
-        else:
-            self.title = title
-        if description is None:
-            self.description = self.DEFAULT_DESCRIPTION
-        else:
-            self.description = description
-
-        self.startTime = datetime.datetime.now()
-
-
-    def run(self, test):
-        "Run the given test case or test suite."
-        result = _TestResult(self.verbosity)
-        test(result)
-        self.stopTime = datetime.datetime.now()
-        self.generateReport(test, result)
-        print >>sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime)
-        return result
-
-
-    def sortResult(self, result_list):
-        # unittest does not seems to run in any particular order.
-        # Here at least we want to group them together by class.
-        rmap = {}
-        classes = []
-        for n,t,o,e in result_list:
-            cls = t.__class__
-            if not rmap.has_key(cls):
-                rmap[cls] = []
-                classes.append(cls)
-            rmap[cls].append((n,t,o,e))
-        r = [(cls, rmap[cls]) for cls in classes]
-        return r
-
-
-    def getReportAttributes(self, result):
-        """
-        Return report attributes as a list of (name, value).
-        Override this to add custom attributes.
-        """
-        startTime = str(self.startTime)[:19]
-        duration = str(self.stopTime - self.startTime)
-        status = []
-        if result.success_count: status.append('Pass %s'    % result.success_count)
-        if result.failure_count: status.append('Failure %s' % result.failure_count)
-        if result.error_count:   status.append('Error %s'   % result.error_count  )
-        if status:
-            status = ' '.join(status)
-        else:
-            status = 'none'
-        return [
-            ('Start Time', startTime),
-            ('Duration', duration),
-            ('Status', status),
-        ]
-
-
-    def generateReport(self, test, result):
-        report_attrs = self.getReportAttributes(result)
-        generator = 'HTMLTestRunner %s' % __version__
-        stylesheet = self._generate_stylesheet()
-        heading = self._generate_heading(report_attrs)
-        report = self._generate_report(result)
-        ending = self._generate_ending()
-        output = self.HTML_TMPL % dict(
-            title = saxutils.escape(self.title),
-            generator = generator,
-            stylesheet = stylesheet,
-            heading = heading,
-            report = report,
-            ending = ending,
-        )
-        self.stream.write(output.encode('utf8'))
-
-
-    def _generate_stylesheet(self):
-        return self.STYLESHEET_TMPL
-
-
-    def _generate_heading(self, report_attrs):
-        a_lines = []
-        for name, value in report_attrs:
-            line = self.HEADING_ATTRIBUTE_TMPL % dict(
-                    name = saxutils.escape(name),
-                    value = saxutils.escape(value),
-                )
-            a_lines.append(line)
-        heading = self.HEADING_TMPL % dict(
-            title = saxutils.escape(self.title),
-            parameters = ''.join(a_lines),
-            description = saxutils.escape(self.description),
-        )
-        return heading
-
-
-    def _generate_report(self, result):
-        rows = []
-        sortedResult = self.sortResult(result.result)
-        for cid, (cls, cls_results) in enumerate(sortedResult):
-            # subtotal for a class
-            np = nf = ne = 0
-            for n,t,o,e in cls_results:
-                if n == 0: np += 1
-                elif n == 1: nf += 1
-                else: ne += 1
-
-            # format class description
-            if cls.__module__ == "__main__":
-                name = cls.__name__
-            else:
-                name = "%s.%s" % (cls.__module__, cls.__name__)
-            doc = cls.__doc__ and cls.__doc__.split("\n")[0] or ""
-            desc = doc and '%s: %s' % (name, doc) or name
-
-            row = self.REPORT_CLASS_TMPL % dict(
-                style = ne > 0 and 'errorClass' or nf > 0 and 'failClass' or 'passClass',
-                desc = desc,
-                count = np+nf+ne,
-                Pass = np,
-                fail = nf,
-                error = ne,
-                cid = 'c%s' % (cid+1),
-            )
-            rows.append(row)
-
-            for tid, (n,t,o,e) in enumerate(cls_results):
-                self._generate_report_test(rows, cid, tid, n, t, o, e)
-
-        report = self.REPORT_TMPL % dict(
-            test_list = ''.join(rows),
-            count = str(result.success_count+result.failure_count+result.error_count),
-            Pass = str(result.success_count),
-            fail = str(result.failure_count),
-            error = str(result.error_count),
-        )
-        return report
-
-
-    def _generate_report_test(self, rows, cid, tid, n, t, o, e):
-        # e.g. 'pt1.1', 'ft1.1', etc
-        has_output = bool(o or e)
-        tid = (n == 0 and 'p' or 'f') + 't%s.%s' % (cid+1,tid+1)
-        name = t.id().split('.')[-1]
-        doc = t.shortDescription() or ""
-        desc = doc and ('%s: %s' % (name, doc)) or name
-        tmpl = has_output and self.REPORT_TEST_WITH_OUTPUT_TMPL or self.REPORT_TEST_NO_OUTPUT_TMPL
-
-        # o and e should be byte string because they are collected from stdout and stderr?
-        if isinstance(o,str):
-            # TODO: some problem with 'string_escape': it escape \n and mess up formating
-            # uo = unicode(o.encode('string_escape'))
-            uo = o.decode('latin-1')
-        else:
-            uo = o
-        if isinstance(e,str):
-            # TODO: some problem with 'string_escape': it escape \n and mess up formating
-            # ue = unicode(e.encode('string_escape'))
-            ue = e.decode('latin-1')
-        else:
-            ue = e
-
-        script = self.REPORT_TEST_OUTPUT_TMPL % dict(
-            id = tid,
-            output = saxutils.escape(uo+ue),
-        )
-
-        row = tmpl % dict(
-            tid = tid,
-            Class = (n == 0 and 'hiddenRow' or 'none'),
-            style = n == 2 and 'errorCase' or (n == 1 and 'failCase' or 'none'),
-            desc = desc,
-            script = script,
-            status = self.STATUS[n],
-        )
-        rows.append(row)
-        if not has_output:
-            return
-
-    def _generate_ending(self):
-        return self.ENDING_TMPL
-
-
-##############################################################################
-# Facilities for running tests from the command line
-##############################################################################
-
-# Note: Reuse unittest.TestProgram to launch test. In the future we may
-# build our own launcher to support more specific command line
-# parameters like test title, CSS, etc.
-class TestProgram(unittest.TestProgram):
-    """
-    A variation of the unittest.TestProgram. Please refer to the base
-    class for command line parameters.
-    """
-    def runTests(self):
-        # Pick HTMLTestRunner as the default test runner.
-        # base class's testRunner parameter is not useful because it means
-        # we have to instantiate HTMLTestRunner before we know self.verbosity.
-        if self.testRunner is None:
-            self.testRunner = HTMLTestRunner(verbosity=self.verbosity)
-        unittest.TestProgram.runTests(self)
-
-main = TestProgram
-
-##############################################################################
-# Executing this module from the command line
-##############################################################################
-
-if __name__ == "__main__":
-    main(module=None)
index e4044aece5a73542979b38954309cbcfb95194a3..5b4f0e3bad684df41a50070961e4915c4e341a15 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 0fb34d91e925ade103e3b4345f4040eff96d7193..c8879f13491b31d9e9f9344bf26e7d6a786bc328 100644 (file)
@@ -1,5 +1,5 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+#### -*- coding: utf-8 -*-
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -18,7 +18,7 @@
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 from Traducteur.parseur import FactNode
-from Traducteur.load import jdcSet 
+from Traducteur.load import jdcSet
 import logging
 
 dict_commande={}
@@ -29,129 +29,127 @@ import sys
 #--------------------------------------------------------------------------
 def traitementRayon(jdc):
 #--------------------------------------------------------------------------
-   
+
     if "DEFI_FONCTION" not in jdcSet : return
     for c in jdc.root.childNodes:
-       if c.name != "DEFI_FONCTION" : continue
-       monTexte=jdc.getLines()[c.lineno-1]
-       monNomVariable=monTexte.split("=")[0]
-       aExecuter=monNomVariable+'=0'
-       dict_commande[monNomVariable]=c
-       exec aExecuter in dict_contexte
+        if c.name != "DEFI_FONCTION" : continue
+        monTexte=jdc.getLines()[c.lineno-1]
+        monNomVariable=monTexte.split("=")[0]
+        aExecuter=monNomVariable+'=0'
+        dict_commande[monNomVariable]=c
+        exec aExecuter in dict_contexte
     liste_MC=(("CALC_G","R_INF_FO"),("CALC_G","R_SUP_FO"),("CALC_G","MODULE_FO"))
     liste_achanger = chercheValeurSelonGenea2 (jdc,liste_MC)
     liste_MC=(("CALC_THETA","THETA_3D","R_INF_FO"),("CALC_THETA","THETA_3D","R_SUP_FO"),("CALC_THETA","THETA_3D","MODULE_FO"))
     liste_achanger2 = chercheValeurSelonGenea3 (jdc,liste_MC)
     liste_achanger=liste_achanger+liste_achanger2
     for item in liste_achanger :
-       commande=dict_commande[item]
-       changeValeurABSCNiveau1(commande,jdc)
+        commande=dict_commande[item]
+        changeValeurABSCNiveau1(commande,jdc)
 
 #----------------------------------
 def changeValeurABSCNiveau1(c,jdc):
 #----------------------------------
     for child in c.childNodes:
-       if child.name != "NOM_PARA":continue
-       MonTexte=child.getText(jdc)
-       if len(MonTexte.splitlines()) > 1 :
-          print "Le Traducteur ne sait pas gerer"
-          assert(0)
-       MonTexte=jdc.getLines()[child.lineno-1]
-       debut=MonTexte.find("NOM_PARA")
-       debChaine=MonTexte[0:debut+8]
-       ancien=MonTexte[debut+8:]
-       egal,nomval,fin=ancien.split("'",2)
-       nouvelleLigne=debChaine+egal+"'ABSC'"+fin
-       jdc.getLines()[child.lineno-1]=nouvelleLigne
-       logging.info("renommage parametre ABSC ligne %d",child.lineno-1)
+        if child.name != "NOM_PARA":continue
+        MonTexte=child.getText(jdc)
+        if len(MonTexte.splitlines()) > 1 :
+            print "Le Traducteur ne sait pas gerer"
+            assert(0)
+        MonTexte=jdc.getLines()[child.lineno-1]
+        debut=MonTexte.find("NOM_PARA")
+        debChaine=MonTexte[0:debut+8]
+        ancien=MonTexte[debut+8:]
+        egal,nomval,fin=ancien.split("'",2)
+        nouvelleLigne=debChaine+egal+"'ABSC'"+fin
+        jdc.getLines()[child.lineno-1]=nouvelleLigne
+        logging.info("renommage parametre ABSC ligne %d",child.lineno-1)
     return
-      
+
 #--------------------------------------------------------------------------
 def chercheValeurSelonGenea2(jdc,liste_cherche_valeur):
 #
 #--------------------------------------------------------------------------
     liste_valeurs=[]
     for genea in liste_cherche_valeur:
-       profondeur=len(genea)
-       if profondeur > 2 :
-          print "la methode chercheValeurSelonGenea ne convient"
-          print "pas pour cette généalogie"
-          assert(0)
-       command=genea[0]
-       fact=genea[1]
-      
-       for c in jdc.root.childNodes:
-          if c.name != command:continue
-          for mc in c.childNodes:
-             if mc.name != fact:continue
-             MonTexte=mc.getText(jdc)
-             try :
-             #if ( 1) :
-                exec MonTexte in dict_contexte
-                monNomVar=MonTexte.split("=")[1]
-                monNomVarOk=monNomVar
-                i=-1
-                while (monNomVar[i] == "," or  monNomVar[i] == " ") :
-                   monNomVarOk=monNomVar[0:i]
-                   i=i-1
-                monNomVar=monNomVarOk
-                i=0
-                while (monNomVar[i] == " ") :
-                   monNomVarOk=monNomVar[1:]
-                   i=i+1
-                monNomVar=monNomVarOk
-                if monNomVar not in liste_valeurs : liste_valeurs.append(monNomVar)
-             except :
-             #else :
-                logging.error("Pb pour renommer le parametre ABSC dans defi_fonctions selon calcg")
-                pass
+        profondeur=len(genea)
+        if profondeur > 2 :
+            print "la methode chercheValeurSelonGenea ne convient"
+            print "pas pour cette genealogie"
+            assert(0)
+        command=genea[0]
+        fact=genea[1]
+
+        for c in jdc.root.childNodes:
+            if c.name != command:continue
+            for mc in c.childNodes:
+                if mc.name != fact:continue
+                MonTexte=mc.getText(jdc)
+                try :
+                #if ( 1) :
+                    exec MonTexte in dict_contexte
+                    monNomVar=MonTexte.split("=")[1]
+                    monNomVarOk=monNomVar
+                    i=-1
+                    while (monNomVar[i] == "," or  monNomVar[i] == " ") :
+                        monNomVarOk=monNomVar[0:i]
+                        i=i-1
+                    monNomVar=monNomVarOk
+                    i=0
+                    while (monNomVar[i] == " ") :
+                        monNomVarOk=monNomVar[1:]
+                        i=i+1
+                    monNomVar=monNomVarOk
+                    if monNomVar not in liste_valeurs : liste_valeurs.append(monNomVar)
+                except :
+                #else :
+                    logging.error("Pb pour renommer le parametre ABSC dans defi_fonctions selon calcg")
+                    pass
     return liste_valeurs
 
-      
+
 #--------------------------------------------------------------------------
 def chercheValeurSelonGenea3(jdc,liste_cherche_valeur):
 #--------------------------------------------------------------------------
     liste_valeurs=[]
     for genea in liste_cherche_valeur:
-       profondeur=len(genea)
-       if profondeur > 3 :
-          print "la methode chercheValeurSelonGenea ne convient"
-          print "pas pour cette généalogie"
-          assert(0)
-       command=genea[0]
-       fact=genea[1]
-       mc=genea[2]
-      
-       for c in jdc.root.childNodes:
-          if c.name != command : continue
-          for mcf in c.childNodes:
-             if mcf.name != fact : continue
-             l=mcf.childNodes[:]
-             for ll in l:
-                 for lc in ll.childNodes:
-                    if lc.name !=mc : continue
-                    MonTexte=lc.getText(jdc)
-                    try :
-                    #if ( 1) :
-                       exec MonTexte in dict_contexte
-                       #monNomVar=MonTexte.split("=")[1][0:-1]
-                       monNomVar=MonTexte.split("=")[1]
-                       monNomVarOk=monNomVar
-                       i=-1
-                       while (monNomVar[i] == "," or  monNomVar[i] == " ") :
-                         monNomVarOk=monNomVar[0:i]
-                         i=i-1
-                       monNomVar=monNomVarOk
-                       i=0
-                       while (monNomVar[i] == " ") :
-                          monNomVarOk=monNomVar[1:]
-                          i=i+1
-                       monNomVar=monNomVarOk
-                       if monNomVar not in liste_valeurs : liste_valeurs.append(monNomVar)
-                    except :
-                    #else :
-                       logging.error("Pb pour renommer le parametre ABSC dans defi_fonctions selon calcg")
-                       pass
-    return liste_valeurs
-
+        profondeur=len(genea)
+        if profondeur > 3 :
+            print "la methode chercheValeurSelonGenea ne convient"
+            print "pas pour cette genealogie"
+            assert(0)
+        command=genea[0]
+        fact=genea[1]
+        mc=genea[2]
 
+        for c in jdc.root.childNodes:
+            if c.name != command : continue
+            for mcf in c.childNodes:
+                if mcf.name != fact : continue
+                l=mcf.childNodes[:]
+                for ll in l:
+                    for lc in ll.childNodes:
+                        if lc.name !=mc : continue
+                        MonTexte=lc.getText(jdc)
+                        try :
+                        #if ( 1) :
+                            exec MonTexte in dict_contexte
+                            #monNomVar=MonTexte.split("=")[1][0:-1]
+                            monNomVar=MonTexte.split("=")[1]
+                            monNomVarOk=monNomVar
+                            i=-1
+                            while (monNomVar[i] == "," or  monNomVar[i] == " ") :
+                                monNomVarOk=monNomVar[0:i]
+                                i=i-1
+                            monNomVar=monNomVarOk
+                            i=0
+                            while (monNomVar[i] == " ") :
+                                monNomVarOk=monNomVar[1:]
+                                i=i+1
+                            monNomVar=monNomVarOk
+                            if monNomVar not in liste_valeurs : liste_valeurs.append(monNomVar)
+                        except :
+                        #else :
+                            logging.error("Pb pour renommer le parametre ABSC dans defi_fonctions selon calcg")
+                            pass
+    return liste_valeurs
index f913001627838adc41a7297fe04eac2b2040c2a8..3beb5fe1ee0aaf62a8e1f6d87db3ae376fbbf556 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -20,7 +20,7 @@
 from Traducteur.utils import lineToDict
 import logging
 from Traducteur.dictErreurs import ecritErreur
-from Traducteur.load import jdcSet 
+from Traducteur.load import jdcSet
 from Traducteur.renamemocle import decaleLignesdeNBlancs
 from Traducteur.removemocle import removeMotCleInFact
 from Traducteur import regles
@@ -32,45 +32,45 @@ def changementValeur(jdc,command,motcle,DictNouvVal,liste=(),defaut=0):
     if command  not in jdcSet : return
     boolChange=0
     for c in jdc.root.childNodes:
-       if c.name != command  : continue
-       trouveUnMC=0
-       for mc in c.childNodes:
-          if mc.name != motcle : continue
-          trouveUnMC=1
-          TexteMC=mc.getText(jdc)
-          liste_ligne_MC=TexteMC.splitlines()
-          indexLigneGlob=mc.lineno-1
-          indexTexteMC=0
-          while indexLigneGlob < mc.endline  :
-             if indexTexteMC > len(liste_ligne_MC)-1 : break
-             MaLigneGlob=jdc.getLines()[indexLigneGlob]
-             MaLigneTexte=liste_ligne_MC[indexTexteMC]
-             for Valeur in DictNouvVal :
-                MaLigneTexteDict=lineToDict(MaLigneTexte)
-                trouvecol=MaLigneTexte.find(Valeur)
-                if trouvecol > -1:
-                    trouve=(Valeur==MaLigneTexteDict[trouvecol])
-                else:
-                    trouve=False
-                if trouve:
-                   debut=MaLigneGlob.find(motcle)
-                   if debut==-1 : debut=0
-                  Nouveau=MaLigneGlob[debut:].replace(Valeur,DictNouvVal[Valeur])
-                   Nouveau=MaLigneGlob[0:debut]+Nouveau
-                   jdc.getLines()[indexLigneGlob]=Nouveau
-                   MaLigneTexte=Nouveau # raccourci honteux mais ...
-                   MaLigneGlob=Nouveau
-                   if Valeur in liste :
-                      ecritErreur((command,motcle,Valeur),indexLigneGlob)
-                   else :
-                      logging.info("Changement de %s par %s dans %s ligne %d",Valeur,DictNouvVal[Valeur],command,indexLigneGlob)
-                   boolChange=1
-             indexLigneGlob=indexLigneGlob+1
-             indexTexteMC=indexTexteMC+1
-       if (trouveUnMC == 0) and ( defaut == 1):
-          ecritErreur((command,motcle,"DEFAUT"),c.lineno)
+        if c.name != command  : continue
+        trouveUnMC=0
+        for mc in c.childNodes:
+            if mc.name != motcle : continue
+            trouveUnMC=1
+            TexteMC=mc.getText(jdc)
+            liste_ligne_MC=TexteMC.splitlines()
+            indexLigneGlob=mc.lineno-1
+            indexTexteMC=0
+            while indexLigneGlob < mc.endline  :
+                if indexTexteMC > len(liste_ligne_MC)-1 : break
+                MaLigneGlob=jdc.getLines()[indexLigneGlob]
+                MaLigneTexte=liste_ligne_MC[indexTexteMC]
+                for Valeur in DictNouvVal :
+                    MaLigneTexteDict=lineToDict(MaLigneTexte)
+                    trouvecol=MaLigneTexte.find(Valeur)
+                    if trouvecol > -1:
+                        trouve=(Valeur==MaLigneTexteDict[trouvecol])
+                    else:
+                        trouve=False
+                    if trouve:
+                        debut=MaLigneGlob.find(motcle)
+                        if debut==-1 : debut=0
+                        Nouveau=MaLigneGlob[debut:].replace(Valeur,DictNouvVal[Valeur])
+                        Nouveau=MaLigneGlob[0:debut]+Nouveau
+                        jdc.getLines()[indexLigneGlob]=Nouveau
+                        MaLigneTexte=Nouveau # raccourci honteux mais ...
+                        MaLigneGlob=Nouveau
+                        if Valeur in liste :
+                            ecritErreur((command,motcle,Valeur),indexLigneGlob)
+                        else :
+                            logging.info("Changement de %s par %s dans %s ligne %d",Valeur,DictNouvVal[Valeur],command,indexLigneGlob)
+                        boolChange=1
+                indexLigneGlob=indexLigneGlob+1
+                indexTexteMC=indexTexteMC+1
+        if (trouveUnMC == 0) and ( defaut == 1):
+            ecritErreur((command,motcle,"DEFAUT"),c.lineno)
     if boolChange : jdc.reset(jdc.getSource())
-             
+
 #--------------------------------------------------------------------------------
 def changementValeurDsMCF(jdc,command,fact,motcle,DictNouvVal,liste=(),ensemble=regles.SansRegle,defaut=0):
 #--------------------------------------------------------------------------------
@@ -86,7 +86,7 @@ def changementValeurDsMCF(jdc,command,fact,motcle,DictNouvVal,liste=(),ensemble=
             for ll in l:
                 trouveUnMC=0
                 for mc in ll.childNodes:
-                    if mc.name != motcle:continue                    
+                    if mc.name != motcle:continue
                     if ensemble.verif(c) == 0 : continue
                     trouveUnMC=1
                     TexteMC=mc.getText(jdc)
@@ -113,17 +113,17 @@ def changementValeurDsMCF(jdc,command,fact,motcle,DictNouvVal,liste=(),ensemble=
                                 MaLigneTexte=Nouveau # raccourci honteux mais ...
                                 MaLigneGlob=Nouveau
                                 if Valeur in liste :
-                                   ecritErreur((command,fact,motcle,Valeur),indexLigneGlob)
+                                    ecritErreur((command,fact,motcle,Valeur),indexLigneGlob)
                                 else :
-                                   logging.info("Changement de %s par %s dans %s ligne %d",Valeur,DictNouvVal[Valeur],command,indexLigneGlob)
+                                    logging.info("Changement de %s par %s dans %s ligne %d",Valeur,DictNouvVal[Valeur],command,indexLigneGlob)
                         boolChange=1
                         indexLigneGlob=indexLigneGlob+1
                         indexTexteMC=indexTexteMC+1
                 if (trouveUnMC == 0) and ( defaut == 1):
-                   logging.warning("OPTION  (defaut) de CALCG à verifier ligne %s" ,c.lineno )                     
-                   ecritErreur((command,fact,motcle,"DEFAUT"),c.lineno)
+                    logging.warning("OPTION  (defaut) de CALCG a verifier ligne %s" ,c.lineno )
+                    ecritErreur((command,fact,motcle,"DEFAUT"),c.lineno)
     if boolChange : jdc.reset(jdc.getSource())
-             
+
 #--------------------------------------------------------------------------------
 def changementValeurDsMCFSiRegle(jdc,command,fact,motcle,DictNouvVal,liste_regles,defaut=0):
 #--------------------------------------------------------------------------------
@@ -131,14 +131,14 @@ def changementValeurDsMCFSiRegle(jdc,command,fact,motcle,DictNouvVal,liste_regle
     mesRegles=regles.ensembleRegles(liste_regles)
     liste=()
     changementValeurDsMCF(jdc,command,fact,motcle,DictNouvVal,liste,mesRegles,defaut)
-             
+
 #---------------------------------------------------------------------------------------
 def changementValeurDsMCFAvecAvertissement(jdc, command, fact,motcle,DictNouvVal,liste):
 #---------------------------------------------------------------------------------------
     if command  not in jdcSet : return
     defaut=0
-    if liste[-1] == "defaut" : 
-       defaut=1
+    if liste[-1] == "defaut" :
+        defaut=1
     changementValeurDsMCF(jdc,command,fact,motcle,DictNouvVal,liste,defaut)
 
 #--------------------------------------------------------------------------
@@ -146,8 +146,8 @@ def changementValeurAvecAvertissement(jdc, command,motcle,DictNouvVal,liste):
 #--------------------------------------------------------------------------
     if command  not in jdcSet : return
     defaut=0
-    if liste[-1] == "defaut" : 
-       defaut=1
+    if liste[-1] == "defaut" :
+        defaut=1
     changementValeur(jdc,command,motcle,DictNouvVal,liste,defaut)
 
 #--------------------------------------------------------------------------
@@ -157,52 +157,52 @@ def suppressionValeurs(jdc, command,motcle,liste):
     if command not in jdcSet : return
     boolChange=0
     for c in jdc.root.childNodes:
-       if c.name != command  : continue
-       for mc in c.childNodes:
-          if mc.name != motcle : continue
-          indexLigneGlob=mc.lineno-1
-          while indexLigneGlob < mc.endline-1  :
-             MaLigneTexte = jdc.getLines()[indexLigneGlob]
-             MaLigne=MaLigneTexte
-             for Valeur in liste :
-                debutMC =MaLigne.find(motcle)
-                if debutMC ==-1 : debutMC=0
-                debut1=MaLigne[0:debutMC]
-                chercheLigne=MaLigne[debutMC:]
-                trouve=chercheLigne.find(Valeur)
-                premier=0
-                if trouve > 1 : #on a au moins une quote
-                   debut=debut1 + chercheLigne[0:trouve-1]
-                   index = -1
-                   while (-1 * index) < len(debut) :
-                      if (debut[index] == "(")  :
-                         premier = 1
-                         if index == -1 :
-                            index=len(debut)
-                         else :
-                            index=index+1
-                         break
-                      if (debut[index] == "," ) : 
-                          break
-                      if (debut[index] != " " ) :
-                         assert(0)
-                      index = index -1
-                   debLigne = debut[0:index]
-                   fin=trouve+len(Valeur)+1
-                   if premier == 1 and chercheLigne[fin] == ',': fin = fin + 1 # on supprime la ,
-                   finLigne = chercheLigne[fin:]
-                   MaLigne_tmp=debLigne+finLigne
-                   # traitement ligne commancant par ,
-                   if len(MaLigne_tmp.strip()) > 0 :
-                      if MaLigne_tmp.strip()[0]==',' :
-                         MaLigne=MaLigne_tmp.strip()[1:]
-                      else :
-                         MaLigne=MaLigne_tmp[0:]
-                   else :
-                      MaLigne=MaLigne_tmp[0:]
-                   boolChange=1
-                jdc.getLines()[indexLigneGlob]=MaLigne
-             indexLigneGlob=indexLigneGlob+1
+        if c.name != command  : continue
+        for mc in c.childNodes:
+            if mc.name != motcle : continue
+            indexLigneGlob=mc.lineno-1
+            while indexLigneGlob < mc.endline-1  :
+                MaLigneTexte = jdc.getLines()[indexLigneGlob]
+                MaLigne=MaLigneTexte
+                for Valeur in liste :
+                    debutMC =MaLigne.find(motcle)
+                    if debutMC ==-1 : debutMC=0
+                    debut1=MaLigne[0:debutMC]
+                    chercheLigne=MaLigne[debutMC:]
+                    trouve=chercheLigne.find(Valeur)
+                    premier=0
+                    if trouve > 1 : #on a au moins une quote
+                        debut=debut1 + chercheLigne[0:trouve-1]
+                        index = -1
+                        while (-1 * index) < len(debut) :
+                            if (debut[index] == "(")  :
+                                premier = 1
+                                if index == -1 :
+                                    index=len(debut)
+                                else :
+                                    index=index+1
+                                break
+                            if (debut[index] == "," ) :
+                                break
+                            if (debut[index] != " " ) :
+                                assert(0)
+                            index = index -1
+                        debLigne = debut[0:index]
+                        fin=trouve+len(Valeur)+1
+                        if premier == 1 and chercheLigne[fin] == ',': fin = fin + 1 # on supprime la ,
+                        finLigne = chercheLigne[fin:]
+                        MaLigne_tmp=debLigne+finLigne
+                        # traitement ligne commancant par ,
+                        if len(MaLigne_tmp.strip()) > 0 :
+                            if MaLigne_tmp.strip()[0]==',' :
+                                MaLigne=MaLigne_tmp.strip()[1:]
+                            else :
+                                MaLigne=MaLigne_tmp[0:]
+                        else :
+                            MaLigne=MaLigne_tmp[0:]
+                        boolChange=1
+                    jdc.getLines()[indexLigneGlob]=MaLigne
+                indexLigneGlob=indexLigneGlob+1
     if boolChange : jdc.reset(jdc.getSource())
 
 #----------------------------------------------
@@ -214,100 +214,100 @@ def appelleMacroSelonValeurConcept(jdc,macro,genea):
     motcle=genea[1]
     chaine="CO"
     for c in jdc.root.childNodes:
-       if c.name != macro  : continue
-       for mcF in c.childNodes:
-          if mcF.name != fact : continue
-          l=mcF.childNodes[:]
-          l.reverse()
-          for ll in l:
-             trouveValeur=0
-             for mc in ll.childNodes:
-                if mc.name != motcle:continue
-                TexteMC=mc.getText(jdc)
-                liste_ligne_MC=TexteMC.splitlines()
-                indexLigneGlob=mc.lineno-2
-                trouveTexteMC=0
-                trouveegal=0
-                trouvechaine=0
-                trouveparent=0
-                trouvequote=0
-                while indexLigneGlob < mc.endline  :
-                   indexLigneGlob=indexLigneGlob+1
-                   MaLigneTexte=jdc.getLines()[indexLigneGlob]
+        if c.name != macro  : continue
+        for mcF in c.childNodes:
+            if mcF.name != fact : continue
+            l=mcF.childNodes[:]
+            l.reverse()
+            for ll in l:
+                trouveValeur=0
+                for mc in ll.childNodes:
+                    if mc.name != motcle:continue
+                    TexteMC=mc.getText(jdc)
+                    liste_ligne_MC=TexteMC.splitlines()
+                    indexLigneGlob=mc.lineno-2
+                    trouveTexteMC=0
+                    trouveegal=0
+                    trouvechaine=0
+                    trouveparent=0
+                    trouvequote=0
+                    while indexLigneGlob < mc.endline  :
+                        indexLigneGlob=indexLigneGlob+1
+                        MaLigneTexte=jdc.getLines()[indexLigneGlob]
+
+                        # on commence par chercher TABLE par exemple
+                        # si on ne trouve pas on passe a la ligne suivante
+                        if ( trouveTexteMC == 0 ) :
+                            indice=MaLigneTexte.find(motcle)
+                            if indice < 0 : continue
+                            trouveTexteMC=1
+                        else :
+                            indice=0
+
+                        # on cherche =
+                        aChercher=MaLigneTexte[indice:]
+                        if (trouveegal == 0 ):
+                            indice=aChercher.find("=")
+                            if indice < 0 : continue
+                            trouveegal = 1
+                        else :
+                            indice = 0
+
+                        # on cherche CO
+                        aChercher2=aChercher[indice:]
+                        if (trouvechaine == 0 ):
+                            indice=aChercher2.find(chaine)
+                            if indice < 0 : continue
+                            trouvechaine = 1
+                        else :
+                            indice = 0
 
-                   # on commence par chercher TABLE par exemple
-                   # si on ne trouve pas on passe a la ligne suivante
-                   if ( trouveTexteMC == 0 ) :
-                       indice=MaLigneTexte.find(motcle)
-                       if indice < 0 : continue
-                       trouveTexteMC=1
-                   else :
-                      indice=0
+                        #on cherche (
+                        aChercher3=aChercher2[indice:]
+                        if (trouveparent == 0 ):
+                            indice=aChercher3.find('(')
+                            if indice < 0 : continue
+                            trouveparent = 1
+                        else :
+                            indice = 0
 
-                   # on cherche =
-                   aChercher=MaLigneTexte[indice:]
-                   if (trouveegal == 0 ):
-                       indice=aChercher.find("=")
-                       if indice < 0 : continue
-                       trouveegal = 1
-                   else :
-                       indice = 0
+                        #on cherche la '
+                        aChercher4=aChercher3[indice:]
+                        if (trouvequote == 0 ):
+                            indice=aChercher4.find("'")
+                            indice2=aChercher4.find('"')
+                            if (indice < 0) and (indice2 < 0): continue
+                            if (indice < 0) : indice=indice2
+                            trouvequote = 1
+                        else :
+                            indice = 0
 
-                   # on cherche CO
-                   aChercher2=aChercher[indice:]
-                   if (trouvechaine == 0 ):
-                       indice=aChercher2.find(chaine)
-                       if indice < 0 : continue
-                       trouvechaine = 1
-                   else :
-                       indice = 0
+                        trouveValeur=1
+                        aChercher5=aChercher4[indice+1:]
+                        indice=aChercher5.find("'")
+                        if indice < 0 :  indice=aChercher5.find('"')
+                        valeur=aChercher5[:indice]
+                        break
 
-                   #on cherche (
-                   aChercher3=aChercher2[indice:]
-                   if (trouveparent == 0 ):
-                       indice=aChercher3.find('(')
-                       if indice < 0 : continue
-                       trouveparent = 1
-                   else :
-                       indice = 0
-                 
-                   #on cherche la '
-                   aChercher4=aChercher3[indice:]
-                   if (trouvequote == 0 ):
-                       indice=aChercher4.find("'")
-                       indice2=aChercher4.find('"')
-                       if (indice < 0) and (indice2 < 0): continue
-                       if (indice < 0) : indice=indice2
-                       trouvequote = 1
-                   else :
-                       indice = 0
+                if trouveValeur==0 :
+                    logging.error("Pb de traduction pour MACR_LIGNE_COUPE : Pas de nom de Concept identifiable")
+                    return
 
-                   trouveValeur=1
-                   aChercher5=aChercher4[indice+1:]
-                   indice=aChercher5.find("'")
-                   if indice < 0 :  indice=aChercher5.find('"')
-                   valeur=aChercher5[:indice]
-                   break
-                    
-             if trouveValeur==0 :
-                  logging.error("Pb de traduction pour MACR_LIGNE_COUPE : Pas de nom de Concept identifiable")
-                  return
-             
-             if boolChange :
-                  jdc.reset(jdc.getSource())
-                  logging.error("Pb du traduction pour MACR_LIGNE_COUPE : Deux noms de Concept possibles")
-                  return
+                if boolChange :
+                    jdc.reset(jdc.getSource())
+                    logging.error("Pb du traduction pour MACR_LIGNE_COUPE : Deux noms de Concept possibles")
+                    return
 
-             boolChange=1
-             ligneaTraiter=jdc.getLines()[c.lineno-1]
-             debut=ligneaTraiter[0:c.colno]
-             suite=valeur+"="
-             fin=ligneaTraiter[c.colno:]
-             ligne=debut+suite+fin
-             jdc.getLines()[c.lineno-1]=ligne
-             nbBlanc=len(valeur)+1
-             if c.lineno < c.endline:
-                decaleLignesdeNBlancs(jdc,c.lineno,c.endline-1,nbBlanc)
+                boolChange=1
+                ligneaTraiter=jdc.getLines()[c.lineno-1]
+                debut=ligneaTraiter[0:c.colno]
+                suite=valeur+"="
+                fin=ligneaTraiter[c.colno:]
+                ligne=debut+suite+fin
+                jdc.getLines()[c.lineno-1]=ligne
+                nbBlanc=len(valeur)+1
+                if c.lineno < c.endline:
+                    decaleLignesdeNBlancs(jdc,c.lineno,c.endline-1,nbBlanc)
     if boolChange : jdc.reset(jdc.getSource())
 
 #----------------------------------------------
index 1f057c3ef35d6ec30d0a3217e09a01a1e8a85f5a..9499e408ae056eb7c1aba2f380e25b6824ad9dfc 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -19,7 +19,7 @@
 #
 
 import logging
-from Traducteur.load import jdcSet 
+from Traducteur.load import jdcSet
 
 
 def ecritErreur(listeGena,ligne=None) :
@@ -29,23 +29,23 @@ def ecritErreur(listeGena,ligne=None) :
         maCle=maCle+"_"+Mot
     #try :
     if ( 1 == 1) :
-       maClef=maCle[1:]
+        maClef=maCle[1:]
         if maClef in dict_erreurs :
-           if ligne != None :
-             logging.warning("ligne %d : %s ",ligne,dict_erreurs[maClef])
-           else :
-             logging.warning("%s",dict_erreurs[maClef])
+            if ligne != None :
+                logging.warning("ligne %d : %s ",ligne,dict_erreurs[maClef])
+            else :
+                logging.warning("%s",dict_erreurs[maClef])
         else :
-           maCle=""
-           for Mot in listeGena[:-1] :
-              maCle=maCle+"_"+Mot
-          maClef=maCle[1:]
-          maClef=maCle+"_"+"VALEUR"
-           if maClef in dict_erreurs :
-              if ligne != None :
-                 logging.warning("ligne %d : %s ",ligne,dict_erreurs[maClef])
-              else :
-                 logging.warning("%s",dict_erreurs[maClef])
+            maCle=""
+            for Mot in listeGena[:-1] :
+                maCle=maCle+"_"+Mot
+            maClef=maCle[1:]
+            maClef=maCle+"_"+"VALEUR"
+            if maClef in dict_erreurs :
+                if ligne != None :
+                    logging.warning("ligne %d : %s ",ligne,dict_erreurs[maClef])
+                else :
+                    logging.warning("%s",dict_erreurs[maClef])
     #except :
     #    pass
 
@@ -53,10 +53,10 @@ def genereErreurPourCommande(jdc,listeCommande) :
     commands= jdc.root.childNodes[:]
     commands.reverse()
     for c in commands:
-        if type(listeCommande)==list: 
+        if type(listeCommande)==list:
             for Mot in listeCommande :
-               if c.name != Mot :continue
-               ecritErreur((Mot,),c.lineno)
+                if c.name != Mot :continue
+                ecritErreur((Mot,),c.lineno)
         else:
             if c.name != listeCommande :continue
             ecritErreur((listeCommande,),c.lineno)
@@ -70,9 +70,9 @@ def genereErreurMotCleInFact(jdc,command,fact,mocle):
             for ll in l:
                 for n in ll.childNodes:
                     if n.name != mocle:
-                       continue
-                   else :
-                       ecritErreur((command,fact,mocle,),c.lineno)
+                        continue
+                    else :
+                        ecritErreur((command,fact,mocle,),c.lineno)
 
 def genereErreurMCF(jdc,command,fact):
     for c in jdc.root.childNodes:
@@ -80,7 +80,7 @@ def genereErreurMCF(jdc,command,fact):
         for mc in c.childNodes:
             if mc.name != fact:
                 continue
-            else : 
+            else :
                 ecritErreur((command,fact,),c.lineno)
 
 def genereErreurValeur(jdc,command,fact,list_valeur):
@@ -90,9 +90,9 @@ def genereErreurValeur(jdc,command,fact,list_valeur):
             if mc.name != fact:continue
             texte=mc.getText(jdc)
             for valeur in list_valeur:
-               trouve=texte.find(valeur)
-               if trouve > -1 :  
-                  logging.warning("%s doit etre supprimee ou modifiee dans %s : ligne %d",valeur,c.name,mc.lineno)
+                trouve=texte.find(valeur)
+                if trouve > -1 :
+                    logging.warning("%s doit etre supprimee ou modifiee dans %s : ligne %d",valeur,c.name,mc.lineno)
 
 def genereErreurValeurDsMCF(jdc,command,fact,mocle,list_valeur):
     for c in jdc.root.childNodes:
@@ -106,5 +106,5 @@ def genereErreurValeurDsMCF(jdc,command,fact,mocle,list_valeur):
                     texte=n.getText(jdc)
                     for valeur in list_valeur:
                         trouve=texte.find(valeur)
-                        if trouve > -1 :  
+                        if trouve > -1 :
                             logging.warning("%s doit etre supprimee ou modifiee dans %s : ligne %d",valeur,c.name,n.lineno)
index 98448b9949babe8e48ff0338a14de293e4a05755..4de6dd02d3d664b491a4f421ea40ebea4d19ad08 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -19,7 +19,7 @@
 #
 import logging
 from Traducteur.parseur import FactNode
-from Traducteur.load import jdcSet 
+from Traducteur.load import jdcSet
 from Traducteur.dictErreurs import ecritErreur
 from Traducteur import regles
 debug=0
@@ -28,14 +28,14 @@ debug=0
 #-----------------------------------
 def insereMotCle(jdc,recepteur,texte):
 #-----------------------------------
-# appelle la methode selon la classe 
+# appelle la methode selon la classe
 # du recepteur
 
     if recepteur.name  not in jdcSet : return
     if recepteur.__class__.__name__ == "Command" :
-       if debug : print " Ajout de ", texte, "dans la commande : " ,recepteur.name 
-       insereMotCleDansCommande(jdc,recepteur,texte)
-       return
+        if debug : print (" Ajout de ", texte, "dans la commande : " ,recepteur.name )
+        insereMotCleDansCommande(jdc,recepteur,texte)
+        return
 
 
 #--------------------------------------------
@@ -44,27 +44,27 @@ def insereMotCleDansCommande(jdc,command,texte):
 # insere le texte comme 1er mot cle
 # de la commande
     if command.name  not in jdcSet : return
-    if debug : print "insereMotCle ", texte , " dans ", command.name
+    if debug : print ("insereMotCle ", texte , " dans ", command.name)
     numcol=chercheDebut1Mot(jdc,command)
     if numcol > 0 :
-       jdc.splitLine(command.lineno,numcol)
+        jdc.splitLine(command.lineno,numcol)
     indice = -1
-    while texte[indice] == " " or texte[indice] == "\n": 
-       indice = indice -1
+    while texte[indice] == " " or texte[indice] == "\n":
+        indice = indice -1
     if texte[indice] != "," : texte=texte+","
     texteinfo=texte
     texte=texte+'\n'
-    jdc.addLine(texte,command.lineno) 
+    jdc.addLine(texte,command.lineno)
     logging.info("Insertion de : %s ligne %d", texteinfo,command.lineno)
-    if numcol > 0 :            # Les mots clefs etaient sur la même ligne
+    if numcol > 0 :             # Les mots clefs etaient sur la meme ligne
         jdc.joinLineandNext(command.lineno)
 
 #-------------------------------------------------------------
 def insereMotCleDansFacteur(jdc,facteur,texte,plusieursFois=True):
 #----------------------------------------------------------------
-    if debug : print "insereMotCle ", texte , " dans ", facteur.name
+    if debug : print ("insereMotCle ", texte , " dans ", facteur.name)
 
-    if texte[-1] == "\n" : texte=texte[0:-1] 
+    if texte[-1] == "\n" : texte=texte[0:-1]
     ancien=jdc.getLine(facteur.lineno)
 
     # On va chercher la derniere ) pour ajouter avant
@@ -73,16 +73,16 @@ def insereMotCleDansFacteur(jdc,facteur,texte,plusieursFois=True):
     # on en met une
 
     indice = -1
-    while texte[indice] == " " : 
-       indice = indice -1
-    if texte[indice] != "," : 
-       texte=texte+","
+    while texte[indice] == " " :
+        indice = indice -1
+    if texte[indice] != "," :
+        texte=texte+","
     if (texte.find("#") > -1) and (texte.find("#") < texte.find(",")) :
-          texte=texte+"\n,"
-          
+        texte=texte+"\n,"
+
     texteinfo=texte
     texte=texte+"\n"
-  
+
     ligneaCouper=facteur.lineno
     while ligneaCouper < facteur.endline + 1 :
         trouve=0
@@ -93,31 +93,31 @@ def insereMotCleDansFacteur(jdc,facteur,texte,plusieursFois=True):
             longueur=len(ancien)
             indice=ancien.find("_F")
             indiceParcours=0
-            # pour ne pas tenir compte des autres noms 
+            # pour ne pas tenir compte des autres noms
             # Attention si 2 MCF sur la meme ligne (la 1ere)
             if trouveF == 0 :
                 if ((ligneaCouper!=facteur.lineno) or ((ancien.find(facteur.name) < indice ) or (ancien.find(facteur.name) < 0))) :
-                   trouveF=1
-                   indiceParcours=indice + 2
-            # attention pour regler DEFI_FONCTION .. 
+                    trouveF=1
+                    indiceParcours=indice + 2
+            # attention pour regler DEFI_FONCTION ..
                 else :
-                   indiceDeCoupe=indiceDeCoupe+indice+2
-                   ancien=ancien[indice +2:]
-                   continue
+                    indiceDeCoupe=indiceDeCoupe+indice+2
+                    ancien=ancien[indice +2:]
+                    continue
             if trouveF == 1 :
                 indiceDeCoupe=indiceDeCoupe+indice
     #            print "indice de Parcours" ,indiceParcours
-    #            print ancien[indiceParcours] 
-    #            print ancien[indiceParcours+1] 
-    #            print ancien[indiceParcours+2] 
+    #            print ancien[indiceParcours]
+    #            print ancien[indiceParcours+1]
+    #            print ancien[indiceParcours+2]
                 while  indiceParcours < longueur :
                     if ancien[indiceParcours] == "(" :
                         trouveP=1
-    #                    print "trouve"
+    #                    print ("trouve".
                         break
                     if ancien[indiceParcours] != " " :
                         trouveP=0
-    #                    print "mouv"
+    #                    print ("mouv")
                         break
                     indiceParcours = indiceParcours+1
             trouve = trouveP * trouveF
@@ -143,18 +143,18 @@ def insereMotCleDansFacteur(jdc,facteur,texte,plusieursFois=True):
 #-----------------------------------
 def chercheDebut1Mot(jdc,command):
 #-----------------------------------
-# Retourne le numero de colonne si le 1er mot clef est 
+# Retourne le numero de colonne si le 1er mot clef est
 # sur la meme ligne que le mot clef facteur
 # -1 sinon
     assert (command.childNodes != [])
     debut=-1
     node1=command.childNodes[0]
     if hasattr(node1,"lineno"):
-       if node1.lineno == command.lineno :
-          debut=node1.colno
+        if node1.lineno == command.lineno :
+            debut=node1.colno
     else:
-       debut=chercheDebutFacteur(jdc,command) 
-    if debut == -1 and debug : print "attention!!! pb pour trouver le debut dans ", command
+        debut=chercheDebutFacteur(jdc,command)
+    if debut == -1 and debug : print ("attention!!! pb pour trouver le debut dans ", command)
     return debut
 
 #-----------------------------------
@@ -165,14 +165,14 @@ def chercheDebutFacteur(jdc,facteur):
     debut=ligne.find("_F")
     if debut >  -1 : debut=debut + 3
     return debut
-    
+
 
 #-----------------------------------
 def chercheAlignement(jdc,command):
 #-----------------------------------
 # Retourne le nb de blanc
 # pour aligner sur le 1er mot clef fils
-    assert (command.childNodes != []) 
+    assert (command.childNodes != [])
     node1=command.childNodes[0]
     nbBlanc=node1.colno
     return " "*nbBlanc
@@ -185,10 +185,10 @@ def chercheOperInsereFacteur(jdc,nomcommande,nouveau,ensemble=regles.SansRegle,
 # appelle insereMotCle pour ajouter le texte
 #
     boolChange=0
-    if estunFacteur : 
-      texte=nouveau+"=_F(),"
+    if estunFacteur :
+        texte=nouveau+"=_F(),"
     else :
-      texte=nouveau
+        texte=nouveau
     if nomcommande  not in jdcSet : return
     commands= jdc.root.childNodes[:]
     commands.reverse()
@@ -218,7 +218,7 @@ def chercheOperInsereMotCleSiRegle(jdc,nomcommande,nouveau,liste_regles, estunFa
     mesRegles=regles.ensembleRegles(liste_regles)
     chercheOperInsereFacteur(jdc,nomcommande,nouveau,mesRegles,estunFacteur)
 
-    
+
 #---------------------------------------------------------------------------------------------------------
 def chercheOperInsereFacteurSiRegleAvecAvertissement(jdc,nomcommande,nouveau,liste_regles, estunFacteur=1):
 #---------------------------------------------------------------------------------------------------------
@@ -235,10 +235,10 @@ def ajouteMotClefDansFacteur(jdc,commande,fact,nouveau,ensemble=regles.SansRegle
 # appelle insereMotCle pour ajouter le texte
 #
     if commande  not in jdcSet : return
-    if estunFacteur : 
-      texte=nouveau+"=_F(),"
+    if estunFacteur :
+        texte=nouveau+"=_F(),"
     else :
-      texte=nouveau
+        texte=nouveau
     commands= jdc.root.childNodes[:]
     commands.reverse()
     boolChange=0
@@ -271,19 +271,19 @@ def ajouteMotClefDansFacteurCourantSiRegle(jdc,commande,fact,nouveau,liste_regle
     for c in commands:
         if c.name != commande : continue
         for mcF in c.childNodes:
-          if mcF.name != fact : continue
-          l=mcF.childNodes[:]
-          l.reverse()
-          for ll in l:
-             if ensemble.verif(ll) == 0 : continue
-             boolChange=1
-             n=ll.childNodes[0]
-             ligneaCouper=n.lineno-1
-             numcol=n.colno
-             jdc.splitLine(ligneaCouper+1,numcol)
-             texte=nouveau+",\n"
-             jdc.addLine(texte,ligneaCouper+1)
-             logging.info("Insertion de %s dans %s : ligne %d", nouveau,c.name,ligneaCouper+1)
-             if numcol > 0 :    
-                 jdc.joinLineandNext(ligneaCouper+1)
+            if mcF.name != fact : continue
+            l=mcF.childNodes[:]
+            l.reverse()
+            for ll in l:
+                if ensemble.verif(ll) == 0 : continue
+                boolChange=1
+                n=ll.childNodes[0]
+                ligneaCouper=n.lineno-1
+                numcol=n.colno
+                jdc.splitLine(ligneaCouper+1,numcol)
+                texte=nouveau+",\n"
+                jdc.addLine(texte,ligneaCouper+1)
+                logging.info("Insertion de %s dans %s : ligne %d", nouveau,c.name,ligneaCouper+1)
+                if numcol > 0 :
+                    jdc.joinLineandNext(ligneaCouper+1)
     if boolChange : jdc.reset(jdc.getSource())
index 2375e805ca503a3be4266843f9b15e4a7dd755dd..84702cb0c1be46342049ca3c4d0f0e2da74b6cab 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -28,7 +28,7 @@ jdcSet=sets.Set()
 
 
 class JDCTrad:
-    """Cet objet conserve toutes les informations relatives à un fichier de commandes .comm"""
+    """Cet objet conserve toutes les informations relatives a un fichier de commandes .comm"""
 
     def __init__(self,src,atraiter):
     #----------------------------------------
@@ -52,14 +52,14 @@ class JDCTrad:
 
     def reset(self,src):
     #-----------------------
-    # reconstruction 
+    # reconstruction
         self.init(src,self.atraiter)
         self.parseKeywords()
 
     def getSource(self):
     #-----------------------
     # retourne la concatenation de
-    # toutes les lignes 
+    # toutes les lignes
         return  "".join(self.getLines())
 
     def getLine(self,linenum):
@@ -69,7 +69,7 @@ class JDCTrad:
 
     def getLines(self):
     #----------------------------
-    # retourne toutes les lignes 
+    # retourne toutes les lignes
         return self.lines
 
     def addLine(self,ligne,numero) :
@@ -86,13 +86,13 @@ class JDCTrad:
     #----------------------------------------------
     # coupe la ligne numeroLigne en 2 a numeroColonne
     # ajoute des blancs en debut de 2nde Ligne pour
-    # aligner 
+    # aligner
         numeroLigne = numeroLigne -1
         Ldebut=self.lines[0:numeroLigne]
         if len(self.lines) > numeroLigne :
-           Lfin=self.lines[numeroLigne+1:]
+            Lfin=self.lines[numeroLigne+1:]
         else :
-           Lfin=[]
+            Lfin=[]
         Lsplit=self.lines[numeroLigne]
         LigneSplitDebut=Lsplit[0:numeroColonne]+"\n"
         LigneSplitFin=" "*numeroColonne+Lsplit[numeroColonne:]
@@ -106,17 +106,17 @@ class JDCTrad:
     # enleve les blancs de debut de la ligne (numeroLigne +1)
         Ldebut=self.lines[0:numeroLigne-1]
         if len(self.lines) > numeroLigne :
-           Lfin=self.lines[numeroLigne+1:]
+            Lfin=self.lines[numeroLigne+1:]
         else :
-           Lfin=[]
+            Lfin=[]
 
         ligneMilieuDeb=self.lines[numeroLigne - 1 ]
         ligneMilieuDeb=ligneMilieuDeb[0:-1]
         ligneMilieuFin=self.lines[numeroLigne]
         for i in range(len(ligneMilieuFin)):
             if ligneMilieuFin[i] != " " :
-               ligneMilieuFin=ligneMilieuFin[i:]
-               break
+                ligneMilieuFin=ligneMilieuFin[i:]
+                break
         Lmilieu=[ligneMilieuDeb+ligneMilieuFin,]
 
         self.lines=Ldebut+Lmilieu+Lfin
index 779a9bb5d5f30b9e6ba0c06ce2945e663d8d5a29..1fabade55361a28f74f611cc3717715e8d587d17 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -23,24 +23,23 @@ import os
 logger=logging.getLogger()
 
 def initialise(flog=None):
-    if flog == None : 
-          #MonHome=os.environ['HOME']
-          MonHome=os.path.expanduser("~")
-          MaDir=MonHome+"/Eficas_install"
-          try :
+    if flog == None :
+        MonHome=os.path.expanduser("~")
+        MaDir=MonHome+"/Eficas_install"
+        try :
             os.mkdir(MaDir)
-          except :
+        except :
             pass
-          try :
+        try :
             os.listdir(MaDir)
             flog=MaDir+"/convert.log"
-          except :
+        except :
             flog='/tmp/convert.log'
 
     hdlr=logging.FileHandler(flog,'w')
     formatter = logging.Formatter('%(levelname)s: %(message)s')
     hdlr.setFormatter(formatter)
-    logger.addHandler(hdlr) 
+    logger.addHandler(hdlr)
     logger.setLevel(logging.INFO)
     return hdlr
 
index 08b2c76502a3c79998d3aa9823956e2a6a554c80..dbbe738aa52f1875b337303ac1ae617ceb44be2c 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -32,7 +32,7 @@ def parseFact(match,c,kw):
     submatch=match[2]
     lastpar=match[0]+lastParen(c.src[match[0]:])
     if type(submatch[0][0]) ==types.IntType:
-        #mot cle facteur isolé
+        #mot cle facteur isole
         no=FactNode()
         kw.addChild(no)
         for ii in range(len(submatch)-1):
@@ -84,7 +84,7 @@ def parseFact(match,c,kw):
 #-----------------------
 def parseKeywords(root):
 #-----------------------
-    """A partir d'un arbre contenant des commandes, ajoute les noeuds 
+    """A partir d'un arbre contenant des commandes, ajoute les noeuds
        fils correspondant aux mocles de la commande
     """
     #print "parseKeywords"
@@ -103,9 +103,9 @@ def parseKeywords(root):
         visitor.walk(ast, matchFinder)
         #print matchFinder.matches
         if len(matchFinder.matches) > 1:
-            # plusieurs mocles trouvés : 
-            # un mocle commence au début du keyword (matchFinder.matches[i][0])
-            # et finit juste avant le keyword suivant 
+            # plusieurs mocles trouves :
+            # un mocle commence au debut du keyword (matchFinder.matches[i][0])
+            # et finit juste avant le keyword suivant
             # (matchFinder.matches[i+1][0]])
             for i in range(len(matchFinder.matches)-1):
                 if debug:print "texte:",c.src[matchFinder.matches[i][0]:matchFinder.matches[i+1][0]]
@@ -122,8 +122,8 @@ def parseKeywords(root):
                 if submatch:
                     parseFact(matchFinder.matches[i],c,kw)
 
-            # dernier mocle : 
-            #   il commence au debut du dernier keyword 
+            # dernier mocle :
+            #   il commence au debut du dernier keyword
             #   (matchFinder.matches[i+1][0]) et
             #   finit avant la parenthese fermante de la commande (c.lastParen)
 
@@ -142,9 +142,9 @@ def parseKeywords(root):
                 parseFact(matchFinder.matches[i+1],c,kw)
 
         elif len(matchFinder.matches) == 1:
-            #un seul mocle trouve : 
-            # il commence au début du keyword (matchFinder.matches[0][0]) et 
-            # finit juste avant la parenthese fermante de la 
+            #un seul mocle trouve :
+            # il commence au debut du keyword (matchFinder.matches[0][0]) et
+            # finit juste avant la parenthese fermante de la
             # commande (c.lastParen)
             if debug:print "texte:",c.src[matchFinder.matches[0][0]:c.lastParen]
             x,y=indexToCoordinates(c.src,matchFinder.matches[0][0])
@@ -161,4 +161,3 @@ def parseKeywords(root):
                 parseFact(matchFinder.matches[0],c,kw)
         else:
             pass
-
index d75ae999372b7a11aa21594b6959037f77086f87..f4f8fb31fc3594c23483270fd9353098f4e22d35 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -61,7 +61,7 @@ def moveMotCleFromFactToFactMulti(jdc,oper,factsource,mocle,liste_factcible):
 #----------------------------------------------------------------------------
 # exemple type STAT_NON_LINE et RESI_INTER_RELA
     for factcible in liste_factcible :
-       moveMotCleFromFactToFact(jdc,oper,factsource,mocle,factcible)
+        moveMotCleFromFactToFact(jdc,oper,factsource,mocle,factcible)
     removemocle.removeMotCleInFact(jdc,oper,factsource,mocle)
 
 
@@ -77,35 +77,35 @@ def moveMotCleFromFactToFact(jdc,oper,factsource,mocle,factcible):
         if c.name != oper : continue
         cible=None
         for mc in c.childNodes:
-           if mc.name != factcible : 
-              continue
-           else :
-              cible=mc
-              break
+            if mc.name != factcible :
+                continue
+            else :
+                cible=mc
+                break
         if cible==None :
-           if debug : print "Pas de changement pour ", oper, " ", factsource, " ",mocle, "cible non trouvée"
-           continue
+            if debug : print "Pas de changement pour ", oper, " ", factsource, " ",mocle, "cible non trouvée"
+            continue
 
         for mc in c.childNodes:
-           source=None
-           if mc.name != factsource:
-              continue
-           else :
-              source=mc
-              break
+            source=None
+            if mc.name != factsource:
+                continue
+            else :
+                source=mc
+                break
         if source==None :
-           if debug : print "Pas de changement pour ", oper, " ", factsource, " ",mocle, "source non trouvée"
-           continue
+            if debug : print "Pas de changement pour ", oper, " ", factsource, " ",mocle, "source non trouvée"
+            continue
 
         if debug : print "Changement pour ", oper, " ", factsource, " ",mocle, "cible et source trouvées"
         l=source.childNodes[:]
         for ll in l:
-           for n in ll.childNodes:
-              if n.name != mocle:continue
-              MonTexte=n.getText(jdc);
-              inseremocle.insereMotCleDansFacteur(jdc,cible,MonTexte)
-              boolChange=1
-              logging.info("Changement de place   %s ligne %s vers %s",n.name, n.lineno, cible.name)
+            for n in ll.childNodes:
+                if n.name != mocle:continue
+                MonTexte=n.getText(jdc);
+                inseremocle.insereMotCleDansFacteur(jdc,cible,MonTexte)
+                boolChange=1
+                logging.info("Changement de place   %s ligne %s vers %s",n.name, n.lineno, cible.name)
     if boolChange : jdc.reset(jdc.getSource())
     removemocle.removeMotCleInFact(jdc,oper,factsource,mocle)
 
@@ -126,25 +126,25 @@ def moveMotClefInOperToFact(jdc,oper,mocle,factcible,plusieursFois=True):
         if c.name != oper : continue
         cible=None
         for mc in c.childNodes:
-           if mc.name != factcible : 
-              continue
-           else :
-              cible=mc
-              break
+            if mc.name != factcible :
+                continue
+            else :
+                cible=mc
+                break
         if cible==None :
-           if debug : print "Pas de changement pour ", oper, " ", factcible, " ", "cible non trouvée"
-           continue
+            if debug : print "Pas de changement pour ", oper, " ", factcible, " ", "cible non trouvée"
+            continue
 
         source=None
         for mc in c.childNodes:
-           if mc.name != mocle:
-              continue
-           else :
-              source=mc
-              break
+            if mc.name != mocle:
+                continue
+            else :
+                source=mc
+                break
         if source==None :
-           if debug : print "Pas de changement pour ", oper, " ", mocle, " source non trouvée"
-           continue
+            if debug : print "Pas de changement pour ", oper, " ", mocle, " source non trouvée"
+            continue
         MonTexte=source.getText(jdc);
         boolChange=1
         inseremocle.insereMotCleDansFacteur(jdc,cible,MonTexte,plusieursFois)
@@ -164,51 +164,51 @@ def copyMotClefInOperToFact(jdc,oper,mocle,factcible):
         if c.name != oper : continue
         cible=None
         for mc in c.childNodes:
-           if mc.name != factcible : 
-              continue
-           else :
-              cible=mc
-              break
+            if mc.name != factcible :
+                continue
+            else :
+                cible=mc
+                break
         if cible==None :
-           if debug : print "Pas de changement pour ", oper, " ", factcible, " ", "cible non trouvée"
-           continue
+            if debug : print "Pas de changement pour ", oper, " ", factcible, " ", "cible non trouvée"
+            continue
 
         source=None
         for mc in c.childNodes:
-           if mc.name != mocle:
-              continue
-           else :
-              source=mc
-              break
+            if mc.name != mocle:
+                continue
+            else :
+                source=mc
+                break
         if source==None :
-           if debug : print "Pas de changement pour ", oper, " ", mocle, " source non trouvée"
-           continue
+            if debug : print "Pas de changement pour ", oper, " ", mocle, " source non trouvée"
+            continue
         MonTexte=source.getText(jdc);
         boolChange=1
         inseremocle.insereMotCleDansFacteur(jdc,cible,MonTexte)
     if boolChange : jdc.reset(jdc.getSource())
-    
+
 #----------------------------------------------------------------------
 def moveMCFToCommand(jdc,command,factsource,commandcible,factcible):
 #----------------------------------------------------------------------
 # exemple CONTACT en 10
-# CONTACT devient commande DEFI_CONTACT/ZONE 
-# 
+# CONTACT devient commande DEFI_CONTACT/ZONE
+#
     if command not in jdcSet : return
     boolChange=0
     commands= jdc.root.childNodes[:]
     commands.reverse()
     for c in commands:
-       if c.name != command  : continue
-       for mcF in c.childNodes:
-           if mcF.name != factsource : continue
-           l=mcF.getText(jdc)
-           texte=l.replace(factsource,factcible)
-           texte='xxxx='+commandcible+'('+texte+')\n'
-           jdc.splitLine(c.lineno,0)
-           jdc.addLine(texte,c.lineno)
-           logging.info("Deplacement de %s dans %s ligne %s",factsource,commandcible,c.lineno)
-           boolChange=1
+        if c.name != command  : continue
+        for mcF in c.childNodes:
+            if mcF.name != factsource : continue
+            l=mcF.getText(jdc)
+            texte=l.replace(factsource,factcible)
+            texte='xxxx='+commandcible+'('+texte+')\n'
+            jdc.splitLine(c.lineno,0)
+            jdc.addLine(texte,c.lineno)
+            logging.info("Deplacement de %s dans %s ligne %s",factsource,commandcible,c.lineno)
+            boolChange=1
     if boolChange :
         jdc.reset(jdc.getSource())
         jdcSet.add(commandcible)
@@ -221,26 +221,26 @@ def fusionMotCleToFact(jdc,command,listeMc,factcible,defaut=0):
     commands= jdc.root.childNodes[:]
     commands.reverse()
     for c in commands:
-       if c.name != command  : continue
-       list_val=[]
-       trouveUnMC=0
-       for mc in c.childNodes:
-           if mc.name not in listeMc : continue
-           val=mc.getText(jdc).split("=")[1].split(",")[0]
-           list_val.append(val)
-           trouveUnMC=1
-       if trouveUnMC :
-           TexteMC=factcible+"=("
-           for val in list_val : TexteMC=TexteMC+val+","
-           TexteMC=TexteMC[:-1]+"),"
-           inseremocle.insereMotCle(jdc,c,TexteMC)
-           jdc.reset(jdc.getSource())
-           boolChange=1
+        if c.name != command  : continue
+        list_val=[]
+        trouveUnMC=0
+        for mc in c.childNodes:
+            if mc.name not in listeMc : continue
+            val=mc.getText(jdc).split("=")[1].split(",")[0]
+            list_val.append(val)
+            trouveUnMC=1
+        if trouveUnMC :
+            TexteMC=factcible+"=("
+            for val in list_val : TexteMC=TexteMC+val+","
+            TexteMC=TexteMC[:-1]+"),"
+            inseremocle.insereMotCle(jdc,c,TexteMC)
+            jdc.reset(jdc.getSource())
+            boolChange=1
     if boolChange :
         jdc.reset(jdc.getSource())
-        for mc in listeMc : 
-           removemocle.removeMotCle(jdc,command,mc)
-           jdc.reset(jdc.getSource())
+        for mc in listeMc :
+            removemocle.removeMotCle(jdc,command,mc)
+            jdc.reset(jdc.getSource())
 
 #-----------------------------------------------------
 def fusionMotCleInFact(jdc,command,fact,listeMc,new_name,defaut=0):
@@ -268,9 +268,9 @@ def fusionMotCleInFact(jdc,command,fact,listeMc,new_name,defaut=0):
                     boolChange=1
     if boolChange :
         jdc.reset(jdc.getSource())
-        for mc in listeMc : 
-           removemocle.removeMotCleInFact(jdc,command,fact,mc)
-           jdc.reset(jdc.getSource())
+        for mc in listeMc :
+            removemocle.removeMotCleInFact(jdc,command,fact,mc)
+            jdc.reset(jdc.getSource())
 
 #-----------------------------------------------------
 def fusionMCFToMCF(jdc,command,listeMcF,factcible,defaut=0):
@@ -312,7 +312,7 @@ def fusionMCFToMCF(jdc,command,listeMcF,factcible,defaut=0):
             boolChange=1
     if boolChange :
         jdc.reset(jdc.getSource())
-        for mcF in listeMcF : 
+        for mcF in listeMcF :
             removemocle.removeMotCle(jdc,command,mcF)
             jdc.reset(jdc.getSource())
 
@@ -326,21 +326,21 @@ def eclaMotCleToFact(jdc,command,motcle,mot1,mot2,defaut=0):
     if command  not in jdcSet : return
     boolChange=0
     for c in jdc.root.childNodes:
-       if c.name != command  : continue
-       trouveUnMC=0
-       for mc in c.childNodes:
-           if mc.name != motcle : continue
-           trouveUnMC=1
-           TexteMC=mc.getText(jdc)
-           indexLigneGlob=mc.lineno-1
-           MaLigneGlob=jdc.getLines()[indexLigneGlob]
-           Ligne=TexteMC.split('(')[1].split(')')[0].split(',')
-           motcle1=mot1+"="+Ligne[0]
-           motcle2=mot2+"=("+Ligne[1]+','+Ligne[2]+','+Ligne[3]+')'
-           texte=motcle+'=_F('+motcle1+','+motcle2+')'
-           num=lastParen(TexteMC)
-           Nouveau=MaLigneGlob.replace(TexteMC[0:num],texte)
-           jdc.getLines()[indexLigneGlob]=Nouveau
-           logging.info("Transformation de %s dans %s ligne %s",motcle,command,c.lineno)
-           boolChange=1
+        if c.name != command  : continue
+        trouveUnMC=0
+        for mc in c.childNodes:
+            if mc.name != motcle : continue
+            trouveUnMC=1
+            TexteMC=mc.getText(jdc)
+            indexLigneGlob=mc.lineno-1
+            MaLigneGlob=jdc.getLines()[indexLigneGlob]
+            Ligne=TexteMC.split('(')[1].split(')')[0].split(',')
+            motcle1=mot1+"="+Ligne[0]
+            motcle2=mot2+"=("+Ligne[1]+','+Ligne[2]+','+Ligne[3]+')'
+            texte=motcle+'=_F('+motcle1+','+motcle2+')'
+            num=lastParen(TexteMC)
+            Nouveau=MaLigneGlob.replace(TexteMC[0:num],texte)
+            jdc.getLines()[indexLigneGlob]=Nouveau
+            logging.info("Transformation de %s dans %s ligne %s",motcle,command,c.lineno)
+            boolChange=1
     if boolChange : jdc.reset(jdc.getSource())
index e715f2a9691374da2bbac8ec9e504403bcd2d285..88315dedd1a8385f5da75f8c6542499865a92074 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -110,14 +110,14 @@ class Keyword(Node):
             debut=jdc.getLines()[self.lineno-1][self.colno:]
             fin  = jdc.getLines()[self.endline-1][:self.endcol]
             texte=debut
-            lignecourante=self.lineno  
+            lignecourante=self.lineno
             while  lignecourante < self.endline -1  :
                 texte = texte + jdc.getLines()[lignecourante]
                 lignecourante = lignecourante + 1
-            if chaineBlanche(fin) == 0 :  
-               texte=texte + fin
+            if chaineBlanche(fin) == 0 :
+                texte=texte + fin
             if texte[-1] == "\n" :
-               texte=texte[0:-1]
+                texte=texte[0:-1]
         else:
             texte = jdc.getLines()[self.lineno-1][self.colno:self.endcol]
         return texte
@@ -147,7 +147,7 @@ def parser(src,atraiter):
 #------------------------
     """Parse le texte src et retourne un arbre syntaxique (root).
 
-       Cet arbre syntaxique a comme noeuds (childNodes) les commandes à traiter (liste atraiter)
+       Cet arbre syntaxique a comme noeuds (childNodes) les commandes a traiter (liste atraiter)
     """
     lines=src.splitlines(1)
     maskedSrc=maskStringsAndComments(src)
@@ -155,8 +155,8 @@ def parser(src,atraiter):
 
     root=JDCNode(src)
 
-    # (a) dans un premier temps on extrait les commandes et on les insère 
-    #     dans un arbre (root)  les noeuds fils sont stockés dans 
+    # (a) dans un premier temps on extrait les commandes et on les insere
+    #     dans un arbre (root)  les noeuds fils sont stockes dans
     #     root.childNodes (liste)
     lineno=0
     for line in maskedLines:
@@ -171,16 +171,16 @@ def parser(src,atraiter):
             if m and (m.group(2) in atraiter):
                 root.addChild(Command(m.group(2),lineno,m.start(2),m.end(4)))
 
-    #(b) dans un deuxième temps , on récupère le texte complet de la commande 
-    #    jusqu'à la  dernière parenthèse fermante
+    #(b) dans un deuxieme temps , on recupere le texte complet de la commande
+    #    jusqu'a la  derniere parenthese fermante
 
-    # iterateur sur les lignes physiques masquées
+    # iterateur sur les lignes physiques masquees
     iterlines=iter(maskedLines)
 
     linenum=0
     for c in root.childNodes:
         lineno=c.lineno
-        colno=c.colno                       # début de la commande
+        colno=c.colno                       # debut de la commande
         while linenum < lineno:
             line=iterlines.next()
             linenum=linenum+1
@@ -200,7 +200,7 @@ def parser(src,atraiter):
 
             hangingComments ^= line.count('"""') % 2
             hangingComments ^= line.count("'''") % 2
-    
+
             if hangingBraces[0] < 0 or hangingBraces[1] < 0 or hangingBraces[2] < 0:
                 raise UnbalancedBracesException()
 
@@ -271,4 +271,3 @@ def lastParen2(src):
             if level == 0:
                 #derniere parenthese fermante
                 return i
-
index dd11ff2984cdfacb5d4ca8cc96b81ed7d433f6a2..caed7b1fe711269b649f6947a65ef176c9503df3 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017    EDF R&D
+# Copyright (C) 2007-2021    EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -60,7 +60,7 @@ class pasDeRegle(ensembleRegles):
         Vérification
         """
         return 1
+
 
 #------------
 class regle :
@@ -79,7 +79,7 @@ class regle :
         """
         f = self.fonction(self.list_args)
         return f.verif(commande)
-        
+
 #---------------------
 class existeMCFParmi :
 #---------------------
@@ -95,7 +95,7 @@ class existeMCFParmi :
         """
         bool = 0
         for c in commande.childNodes :
-            if c.name in self.listeMCF : 
+            if c.name in self.listeMCF :
                 bool = 1
                 break
         return bool
@@ -116,7 +116,7 @@ class nexistepasMCFParmi(existeMCFParmi) :
         bool = existeMCFParmi.verif(self, commande)
         if bool : return 0
         return 1
-        
+
 #----------------------
 class existeMCsousMCF :
 #----------------------
@@ -134,7 +134,7 @@ class existeMCsousMCF :
         """
         bool = 0
         for mcf in commande.childNodes :
-            if mcf.name != self.MCF : continue 
+            if mcf.name != self.MCF : continue
             l = mcf.childNodes[:]
             l.reverse()
             for ll in l:
@@ -173,7 +173,7 @@ class nexistepasMCsousMCF(existeMCsousMCF):
     """
     def __init__(self, list_arg):
         existeMCsousMCF.__init__(self, list_arg)
-        
+
 
     def verif(self, commande):
         """
@@ -191,7 +191,7 @@ class nexistepasMCsousMCFcourant(existeMCsousMCFcourant):
     """
     def __init__(self, list_arg):
         existeMCsousMCFcourant.__init__(self, list_arg)
-        
+
 
     def verif(self, commande):
         """
@@ -218,7 +218,7 @@ class existe :
         if niveau == len(self.genea) : return 1
         texte = self.genea[niveau]
         for c in commande.childNodes :
-            if c.name == texte : 
+            if c.name == texte :
                 niveau = niveau+1
                 return self.chercheMot(niveau, c)
         return None
@@ -248,7 +248,7 @@ class nexistepas :
         if niveau    == len(self.genea) : return 1
         texte = self.genea[niveau]
         for c in commande.childNodes :
-            if c.name == texte : 
+            if c.name == texte :
                 niveau = niveau+1
                 return self.chercheMot(niveau, c)
         return None
@@ -281,7 +281,7 @@ class MCsousMCFaPourValeur :
         """
         bool = 0
         for mcf in commande.childNodes :
-            if mcf.name != self.MCF : continue 
+            if mcf.name != self.MCF : continue
             l = mcf.childNodes[:]
             l.reverse()
             for ll in l:
@@ -324,7 +324,7 @@ class MCsousMCFcourantaPourValeur :
 class MCsousMCFaPourValeurDansListe :
 #----------------------------
     """
-    Égalité du mot-clé simple à une valeur dans une liste 
+    Égalité du mot-clé simple à une valeur dans une liste
     sous le mot-clé facteur
     """
     def __init__(self, list_arg):
@@ -341,7 +341,7 @@ class MCsousMCFaPourValeurDansListe :
         """
         bool = 0
         for mcf in commande.childNodes :
-            if mcf.name != self.MCF : continue 
+            if mcf.name != self.MCF : continue
             l = mcf.childNodes[:]
             l.reverse()
             for ll in l:
@@ -351,13 +351,13 @@ class MCsousMCFaPourValeurDansListe :
                     for Val in self.LVal:
                         if (TexteMC.find(Val) < 0 ): continue
                         bool = 1
-        return bool        
+        return bool
 
 #-----------------------------
 class MCsousMCFcourantaPourValeurDansListe :
 #----------------------------
     """
-    Égalité du mot-clé simple à une valeur dans une liste 
+    Égalité du mot-clé simple à une valeur dans une liste
     sous le mot-clé facteur
     """
     def __init__(self, list_arg):
@@ -371,7 +371,7 @@ class MCsousMCFcourantaPourValeurDansListe :
         """
         Vérification
         """
-        bool = 0        
+        bool = 0
         l = mcf.childNodes[:]
         l.reverse()
         for mc in l:
@@ -380,40 +380,40 @@ class MCsousMCFcourantaPourValeurDansListe :
             for Val in self.LVal:
                 if (TexteMC.find(Val) < 0 ): continue
                 bool = 1
-        return bool    
+        return bool
 
 #-----------------------------------------
 class MCsousMCFcourantnaPasPourValeurDansListe(MCsousMCFcourantaPourValeurDansListe) :
 #-----------------------------------------
     """
-    Non égalité du mot-clé simple à une valeur dans une liste 
+    Non égalité du mot-clé simple à une valeur dans une liste
     sous le mot-clé facteur
     """
     def __init__(self, list_arg):
         MCsousMCFcourantaPourValeurDansListe.__init__(self, list_arg)
-        
+
 
     def verif(self, commande):
         bool = MCsousMCFcourantaPourValeurDansListe.verif(self, commande)
         if bool : return 0
         return 1
-  
+
 #-----------------------------------------
 class MCsousMCFnaPasPourValeurDansListe(MCsousMCFaPourValeurDansListe) :
 #-----------------------------------------
     """
-    Non égalité du mot-clé simple à une valeur dans une liste 
+    Non égalité du mot-clé simple à une valeur dans une liste
     sous le mot-clé facteur
     """
     def __init__(self, list_arg):
         MCsousMCFaPourValeurDansListe.__init__(self, list_arg)
-        
+
 
     def verif(self, commande):
         bool = MCsousMCFaPourValeurDansListe.verif(self, commande)
         if bool : return 0
         return 1
-  
+
 #------------------------------
 class MCaPourValeur :
 #------------------------------
@@ -432,7 +432,7 @@ class MCaPourValeur :
         """
         bool = 0
         for mc in commande.childNodes :
-            if mc.name != self.MC : continue 
+            if mc.name != self.MC : continue
             TexteMC = mc.getText(self.Jdc)
             if (TexteMC.find(self.Val) < 0 ): continue
             bool = 1
@@ -442,7 +442,7 @@ class MCaPourValeur :
 class MCnaPasPourValeur(MCaPourValeur) :
 #-----------------------------------------
     """
-       Non égalité du mot-clé à une valeur 
+        Non égalité du mot-clé à une valeur
     """
     def __init__(self, list_arg):
         MCaPourValeur.__init__(self, list_arg)
@@ -473,7 +473,7 @@ class MCaPourValeurDansListe :
         """
         bool = 0
         for mc in commande.childNodes :
-            if mc.name != self.MC : continue 
+            if mc.name != self.MC : continue
             TexteMC = mc.getText(self.Jdc)
             #print "TexteMC=",type(TexteMC),TexteMC
             #print "LVal=",type(self.LVal),self.LVal
@@ -488,7 +488,7 @@ class MCaPourValeurDansListe :
 class MCnaPasPourValeurDansListe(MCaPourValeurDansListe) :
 #-----------------------------------------
     """
-       Non égalité du mot-clé à une valeur dans une liste
+        Non égalité du mot-clé à une valeur dans une liste
     """
     def __init__(self, list_arg):
         MCaPourValeurDansListe.__init__(self, list_arg)
index f9da53458aab7eaf6ef9e8d55b6d71512a2903c6..b960e22adc706c845935dcae1de96fb443bd094d 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -25,8 +25,8 @@ from Traducteur.load import jdcSet
 
 debug=0
 #debug=1
-#on n'a qu'un mocle par commande. On peut donc supprimer le mocle sans trop de précautions (a part iterer a l'envers sur les commandes)
-#avant de supprimer un autre mocle, on remet à jour l'arbre syntaxique (lineno,colno,etc.)
+#on n'a qu'un mocle par commande. On peut donc supprimer le mocle sans trop de precautions (a part iterer a l'envers sur les commandes)
+#avant de supprimer un autre mocle, on remet a jour l'arbre syntaxique (lineno,colno,etc.)
 
 
 #-----------------------------------------------------------------------
@@ -67,7 +67,7 @@ def removeMotCleAvecErreur(jdc,command,mocle) :
 #--------------------------------------------------------------
     if command not in jdcSet : return
     removeMotCle(jdc,command,mocle,erreur=1)
-      
+
 
 #--------------------------------------------------------------------
 def removeCommande(jdc,command,ensemble=regles.SansRegle,erreur=0):
@@ -98,7 +98,7 @@ def removeCommandeSiRegleAvecErreur(jdc,command,liste_regles):
     if command not in jdcSet : return
     mesRegles=regles.ensembleRegles(liste_regles)
     removeCommande(jdc,command,mesRegles,1)
-                
+
 #---------------------------------
 def removeMC(jdc,c,mc):
 #---------------------------------
@@ -110,7 +110,7 @@ def removeMC(jdc,c,mc):
         jdc.getLines()[mc.lineno-1]=jdc.getLines()[mc.lineno-1][:mc.colno]
         jdc.getLines()[mc.endline-1]=jdc.getLines()[mc.endline-1][mc.endcol:]
 
-        #attention : supprimer les lignes à la fin
+        #attention : supprimer les lignes a la fin
         jdc.getLines()[mc.lineno:mc.endline-1]=[]
     else:
         if debug:print "mocle sur une ligne--%s--" % jdc.getLines()[mc.lineno-1][mc.colno:mc.endcol]
@@ -121,7 +121,7 @@ def removeMC(jdc,c,mc):
 #---------------------------------------------------------------------------------
 def removeMotCleInFact(jdc,command,fact,mocle,ensemble=regles.SansRegle,erreur=0):
 #----------------------------------------------------------------------------------
-    # on itere sur les commandes a l'envers pour ne pas polluer 
+    # on itere sur les commandes a l'envers pour ne pas polluer
     # les numeros de ligne avec les modifications
     if command not in jdcSet : return
     commands= jdc.root.childNodes[:]
@@ -183,7 +183,7 @@ def removeMotCleInFactCourantSiRegle(jdc,command,fact,mocle,liste_regles,erreur=
                     removeMC(jdc,c,n)
 
     if boolChange : jdc.reset(jdc.getSource())
-    
+
 #------------------------------------------
 def fusionne(jdc,numLigne):
 #------------------------------------------
@@ -198,18 +198,18 @@ def fusionne(jdc,numLigne):
     texte=jdc.getLines()[numLigne]
     fusion=1
     while (index < len(texte)) :
-      if texte[index] not in (" ",",",")",";","\n") :
-         fusion=0
-         break
-      index=index+1
-       
+        if texte[index] not in (" ",",",")",";","\n") :
+            fusion=0
+            break
+        index=index+1
+
     if fusion == 0 : return;
 
     texte=jdc.getLines()[numLigne -1]
     if texte.find("#") < 0 :
-       fusion=1
+        fusion=1
     else :
-       fusion=0
-    if fusion : 
-       jdc.joinLineandNext(numLigne)
+        fusion=0
+
+    if fusion :
+        jdc.joinLineandNext(numLigne)
index 188a24a6ca7578e56219943893046071a45403f8..da2862e5e40794f944d37ae3fe45543b51f29c68 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 import logging
 import sys
 from Traducteur.parseur import FactNode
-from Traducteur.load import jdcSet 
+from Traducteur.load import jdcSet
 from Traducteur import regles
 from Traducteur.dictErreurs import ecritErreur
 #debug=1
 debug=0
 
-#on n'a qu'un mocle par commande. 
-#en fin de traitement, on remet à jour l'arbre syntaxique (lineno,colno,etc.)
+#on n'a qu'un mocle par commande.
+#en fin de traitement, on remet a jour l'arbre syntaxique (lineno,colno,etc.)
 
 #--------------------------------------------------------------------------------
 def renameMotCle(jdc,command,mocle,new_name, erreur=0,ensemble=regles.SansRegle):
@@ -42,16 +42,16 @@ def renameMotCle(jdc,command,mocle,new_name, erreur=0,ensemble=regles.SansRegle)
             boolChange=1
             if debug:print "Renommage de:",c.name,mc.name,mc.lineno,mc.colno
             if erreur :
-               ecritErreur((command,mocle),c.lineno)
+                ecritErreur((command,mocle),c.lineno)
             else :
-               logging.info("Renommage de: %s  %s ligne %d en %s",c.name,mc.name,mc.lineno,new_name)
+                logging.info("Renommage de: %s  %s ligne %d en %s",c.name,mc.name,mc.lineno,new_name)
             s=jdc.getLines()[mc.lineno-1]
             jdc.getLines()[mc.lineno-1]=s[:mc.colno]+new_name+s[mc.colno+len(mocle):]
             diff=len(new_name) - len(mocle)
             decaleLignesdeNBlancs(jdc,mc.lineno,mc.endline-1,diff)
 
     if boolChange : jdc.reset(jdc.getSource())
-                
+
 #------------------------------------------------------
 def renameMotCleAvecErreur(jdc,command,mocle,new_name):
 #------------------------------------------------------
@@ -87,14 +87,14 @@ def decaleLignesdeNBlancs(jdc,premiere,derniere,nbBlanc):
 #----------------------------------------------------------
     ligne = premiere + 1
     while ligne < derniere :
-       s=jdc.getLines()[ligne]
-       if nbBlanc > 0 :
-         jdc.getLines()[ligne] = nbBlanc*" " + s
-       else :
-         toutblancs=-1*nbBlanc*" "
-         if jdc.getLines()[ligne][0:-1*nbBlanc] == toutblancs: 
-            jdc.getLines()[ligne] = s[-1*nbBlanc:]
-       ligne=ligne+1
+        s=jdc.getLines()[ligne]
+        if nbBlanc > 0 :
+            jdc.getLines()[ligne] = nbBlanc*" " + s
+        else :
+            toutblancs=-1*nbBlanc*" "
+            if jdc.getLines()[ligne][0:-1*nbBlanc] == toutblancs:
+                jdc.getLines()[ligne] = s[-1*nbBlanc:]
+        ligne=ligne+1
 
 #---------------------------------------------------------------------------------------------
 def renameMotCleInFact(jdc,command,fact,mocle,new_name, ensemble=regles.SansRegle, erreur=0):
@@ -116,9 +116,9 @@ def renameMotCleInFact(jdc,command,fact,mocle,new_name, ensemble=regles.SansRegl
                     jdc.getLines()[n.lineno-1]=s[:n.colno]+new_name+s[n.colno+len(mocle):]
                     boolChange=1
                     if erreur :
-                       ecritErreur((command,fact,mocle),c.lineno)
+                        ecritErreur((command,fact,mocle),c.lineno)
                     else :
-                       logging.info("Renommage de: %s, ligne %s, en %s",n.name,n.lineno,new_name)
+                        logging.info("Renommage de: %s, ligne %s, en %s",n.name,n.lineno,new_name)
 
     if boolChange : jdc.reset(jdc.getSource())
 
@@ -149,13 +149,13 @@ def renameMotCleInFactCourantSiRegle(jdc,command,fact,mocle,new_name,liste_regle
                     jdc.getLines()[n.lineno-1]=s[:n.colno]+new_name+s[n.colno+len(mocle):]
                     boolChange=1
                     if erreur :
-                       ecritErreur((command,fact,mocle),c.lineno)
+                        ecritErreur((command,fact,mocle),c.lineno)
                     else :
-                       logging.info("Renommage de: %s, ligne %s, en %s",n.name,n.lineno,new_name)
+                        logging.info("Renommage de: %s, ligne %s, en %s",n.name,n.lineno,new_name)
 
     if boolChange : jdc.reset(jdc.getSource())
-    
-    
+
+
 #-----------------------------------------------------------------
 def renameCommande(jdc,command,new_name,ensemble=regles.SansRegle):
 #-----------------------------------------------------------------
@@ -165,9 +165,9 @@ def renameCommande(jdc,command,new_name,ensemble=regles.SansRegle):
     boolChange=0
     if debug :
         if ensemble != regles.SansRegle :
-          logging.info("traitement de %s renomme en %s sous conditions", command, new_name)
+            logging.info("traitement de %s renomme en %s sous conditions", command, new_name)
         else  :
-          logging.info("traitement de %s renomme en %s ", command, new_name)
+            logging.info("traitement de %s renomme en %s ", command, new_name)
     for c in jdc.root.childNodes:
         if c.name != command:continue
         if ensemble.verif(c) == 0 : continue
@@ -182,8 +182,7 @@ def renameCommande(jdc,command,new_name,ensemble=regles.SansRegle):
 #-----------------------------------------------------------
 def renameCommandeSiRegle(jdc,command,new_name,liste_regles):
 #-----------------------------------------------------------
-    
+
     if command not in jdcSet : return
     mesRegles=regles.ensembleRegles(liste_regles)
     renameCommande(jdc,command,new_name,mesRegles)
-
diff --git a/Traducteur/toto.comm b/Traducteur/toto.comm
deleted file mode 100644 (file)
index a2f211e..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-DEBUT();
-
-CALC_NONO(reuse=MSLIN,
-        RESULTAT=MSLIN,
-        OPTION=('EPSI_NOEU','SIEQ_NOEU','EPEQ_NOEU','SIGM_NOEU',),);
-
-CALC_NONO(reuse=MSLIN,
-        RESULTAT=MSLIN,
-        OPTION=('AA','EPSI_NOEU','SIEQ_NOEU','EPEQ_NOEU','SIGM_NOEU',),);
-FIN();
index aeb62ea8e1f2b6a13260d372edfa0e43f2084428..5f638c2c2a5911cfb9f9cfd8f689d847fa0b777f 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -221,11 +221,11 @@ atraiter=(
           "THER_LINEAIRE",
           "THER_NON_LINE",
           "THER_NON_LINE_MO",
-          
+
           "CALC_CHAMPNO",
           "CALC_METANO",
           "CALC_ERREURNO",
-          
+
           )
 
 dict_erreurs={
@@ -497,7 +497,7 @@ def traduc(infile,outfile,flog=None):
     suppressionValeurs(jdc,"CALC_CHAMP","ACOUSTIQUE",list(set(lTOUT)-set(lACOUSTIQUE)))
     suppressionValeurs(jdc,"CALC_CHAMP","ERREUR",list(set(lTOUT)-set(lERREUR)))
     suppressionValeurs(jdc,"CALC_CHAMP","META",list(set(lTOUT)-set(lMETA)))
-    ## ajout CALC_META ou CALC_ERREUR   
+    ## ajout CALC_META ou CALC_ERREUR
     lMOTCLE=[]
     lMOTCLE=["reuse","RESULTAT","TOUT_ORDRE","NUME_ORDRE","NUME_MODE","NOEUD_CMP","NOM_CAS",
               "INST","FREQ","LIST_INST","LIST_FREQ","LIST_ORDRE","CRITERE","PRECISION","EXCIT"]
@@ -506,10 +506,10 @@ def traduc(infile,outfile,flog=None):
     llistMETA=list(lMOTCLE)
     llistMETA.extend(["META",])
     for mc in llistMETA :
-               copyMotClefInOperToFact(jdc,"CALC_CHAMP",mc,"TEMPORAIRE")
+        copyMotClefInOperToFact(jdc,"CALC_CHAMP",mc,"TEMPORAIRE")
     moveMCFToCommand(jdc,"CALC_CHAMP","TEMPORAIRE","CALC_META","TEMPORAIRE")
     for mc in llistMETA :
-               moveMotCleFromFactToFather(jdc,"CALC_META","TEMPORAIRE",mc)
+        moveMotCleFromFactToFather(jdc,"CALC_META","TEMPORAIRE",mc)
     removeCommandeSiRegle(jdc,"CALC_META",((("META","COMP_INCR","ETAT_INIT"),"nexistepasMCFParmi"),))
     renameMotCle(jdc,"CALC_META","META","OPTION")
     removeMotCle(jdc,"CALC_META","TEMPORAIRE",pasDeRegle(),0)
@@ -519,10 +519,10 @@ def traduc(infile,outfile,flog=None):
     llistERREUR=list(lMOTCLE)
     llistERREUR.extend(["ERREUR","SOLVEUR","RESU_DUAL","PREC_ESTI","TYPE_ESTI"])
     for mc in llistERREUR :
-               copyMotClefInOperToFact(jdc,"CALC_CHAMP",mc,"TEMPORAIRE")
+        copyMotClefInOperToFact(jdc,"CALC_CHAMP",mc,"TEMPORAIRE")
     moveMCFToCommand(jdc,"CALC_CHAMP","TEMPORAIRE","CALC_ERREUR","TEMPORAIRE")
     for mc in llistERREUR :
-               moveMotCleFromFactToFather(jdc,"CALC_ERREUR","TEMPORAIRE",mc)
+        moveMotCleFromFactToFather(jdc,"CALC_ERREUR","TEMPORAIRE",mc)
     removeCommandeSiRegle(jdc,"CALC_ERREUR",((("ERREUR"),"nexistepasMCFParmi"),))
     renameMotCle(jdc,"CALC_ERREUR","ERREUR","OPTION")
     removeMotCle(jdc,"CALC_ERREUR","TEMPORAIRE",pasDeRegle(),0)
@@ -703,7 +703,7 @@ def traduc(infile,outfile,flog=None):
     suppressionValeurs(jdc,"CALC_CHAMPNO","FORCE",list(set(lTOUT)-set(lFORCE)))
     suppressionValeurs(jdc,"CALC_CHAMPNO","ERREUR",list(set(lTOUT)-set(lERREUR)))
     suppressionValeurs(jdc,"CALC_CHAMPNO","META",list(set(lTOUT)-set(lMETA)))
-    ## ajout CALC_METANO ou CALC_ERREURNO   
+    ## ajout CALC_METANO ou CALC_ERREURNO
     lMOTCLE=[]
     lMOTCLE=["reuse","RESULTAT","TOUT_ORDRE","NUME_ORDRE","NUME_MODE","NOEUD_CMP","NOM_CAS",
               "INST","FREQ","LIST_INST","LIST_FREQ","LIST_ORDRE","CRITERE","PRECISION","EXCIT"]
@@ -712,10 +712,10 @@ def traduc(infile,outfile,flog=None):
     llistMETA=list(lMOTCLE)
     llistMETA.append("META")
     for mc in llistMETA :
-               copyMotClefInOperToFact(jdc,"CALC_CHAMPNO",mc,"TEMPORAIRE")
+        copyMotClefInOperToFact(jdc,"CALC_CHAMPNO",mc,"TEMPORAIRE")
     moveMCFToCommand(jdc,"CALC_CHAMPNO","TEMPORAIRE","CALC_METANO","TEMPORAIRE")
     for mc in llistMETA :
-               moveMotCleFromFactToFather(jdc,"CALC_METANO","TEMPORAIRE",mc)
+        moveMotCleFromFactToFather(jdc,"CALC_METANO","TEMPORAIRE",mc)
     removeCommandeSiRegle(jdc,"CALC_METANO",((("META"),"nexistepasMCFParmi"),))
     renameMotCle(jdc,"CALC_METANO","META","OPTION")
     removeMotCle(jdc,"CALC_METANO","TEMPORAIRE",pasDeRegle(),0)
@@ -725,10 +725,10 @@ def traduc(infile,outfile,flog=None):
     llistERREUR=list(lMOTCLE)
     llistERREUR.append("ERREUR")
     for mc in llistERREUR :
-               copyMotClefInOperToFact(jdc,"CALC_CHAMPNO",mc,"TEMPORAIRE")
+        copyMotClefInOperToFact(jdc,"CALC_CHAMPNO",mc,"TEMPORAIRE")
     moveMCFToCommand(jdc,"CALC_CHAMPNO","TEMPORAIRE","CALC_ERREURNO","TEMPORAIRE")
     for mc in llistERREUR :
-               moveMotCleFromFactToFather(jdc,"CALC_ERREURNO","TEMPORAIRE",mc)
+        moveMotCleFromFactToFather(jdc,"CALC_ERREURNO","TEMPORAIRE",mc)
     removeCommandeSiRegle(jdc,"CALC_ERREURNO",((("ERREUR"),"nexistepasMCFParmi"),))
     renameMotCle(jdc,"CALC_ERREURNO","ERREUR","OPTION")
     removeMotCle(jdc,"CALC_ERREURNO","TEMPORAIRE",pasDeRegle(),0)
@@ -1126,7 +1126,7 @@ def traduc(infile,outfile,flog=None):
 
     ####   traitement de FORMULE   ##############################
     # Rien à faire
-    
+
     ####   traitement de GENE_ACCE_SEISME   ##############################
     # Rien à faire, n'existe pas en 10
 
@@ -1353,7 +1353,7 @@ def traduc(infile,outfile,flog=None):
     renameMotCleInFact(jdc,"MACRO_MODE_MECA","CALC_FREQ","STOP_FREQ_VIDE","STOP_BANDE_VIDE",pasDeRegle(),0)
     # Renommage critere de Sturm
     changementValeurDsMCF(jdc,"MACRO_MODE_MECA","VERI_MODE","STURM",{"OUI":"GLOBAL",})
+
     ####   traitement de MACRO_PROJ_BASE   ##############################
     renameMotCle(jdc,"MACRO_PROJ_BASE","PROFIL","STOCKAGE")
     # Renommage de la commande
@@ -1434,7 +1434,7 @@ def traduc(infile,outfile,flog=None):
 
     ####   traitement de POST_BORDET   ##############################
     # Rien à faire
-    
+
     ####   traitement de POST_CHAMP   ##############################
     # Rien à faire, n'existe pas en 10
 
index 37212deb7ee37302f89e6a3bb14c9507c33b8a35..da0acf71838fc2e92ad56827cd7c7aa9696e89c4 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -107,7 +107,7 @@ atraiter=(
           "SIMU_POINT_MAT",
           "TEST_COMPOR",
           "THER_NON_LINE",
-          "DEFI_PART_FETI"       
+          "DEFI_PART_FETI"
           )
 
 dict_erreurs={
@@ -162,7 +162,7 @@ def traduc(infile,outfile,flog=None):
 
     #Parse les mocles des commandes
     parseKeywords(root)
-    
+
     ####   traitement de DEFI_PART_PA_OPS   ##############################
     genereErreurPourCommande(jdc,"DEFI_PART_PA_OPS")
 
@@ -177,7 +177,7 @@ def traduc(infile,outfile,flog=None):
 
     ####   traitement de AFFE_CHAR_MECA   ##############################
     # Suppression du mot-clé METHODE
-    removeMotCle(jdc,"AFFE_CHAR_MECA","METHODE",pasDeRegle(),0)    
+    removeMotCle(jdc,"AFFE_CHAR_MECA","METHODE",pasDeRegle(),0)
     # Suppression des mot-clés LIAISON_XFEM
     removeMotCle(jdc,"AFFE_CHAR_MECA","LIAISON_XFEM",pasDeRegle(),0)
     removeMotCle(jdc,"AFFE_CHAR_MECA","CONTACT_XFEM",pasDeRegle(),0)
@@ -270,9 +270,9 @@ def traduc(infile,outfile,flog=None):
     ####   traitement de CREA_MAILLAGE   ##############################
     renameMotCle(jdc,"CREA_MAILLAGE","CREA_GROUP_MA","CREA_MAILLE")
     genereErreurMCF(jdc,"CREA_MAILLAGE","ECLA_PG")
-    
+
     lMCLEF=['COQU_VOLU', 'CREA_FISS', 'CREA_GROUP_MA', 'CREA_MAILLE', 'CREA_POI1',
-    'ECLA_PG', 'HEXA20_27', 'LINE_QUAD', 'MODI_MAILLE','QUAD_LINE', 
+    'ECLA_PG', 'HEXA20_27', 'LINE_QUAD', 'MODI_MAILLE','QUAD_LINE',
     'REPERE','RESTREINT','PENTA15_18']
     genereErreurMCF(jdc,"CREA_MAILLAGE","DETR_GROUP_MA")
     removeMotCleInFactSiRegle(jdc,"CREA_MAILLAGE","DETR_GROUP_MA","NB_MAILLE",((lMCLEF,"nexistepasMCFParmi"),))
@@ -284,7 +284,7 @@ def traduc(infile,outfile,flog=None):
     removeMotCleInFact(jdc,"DEBUT","CODE","NOM",pasDeRegle(),0)
 
     ####   traitement de DEFI_COMPOR   ##############################
-    genereErreurValeur(jdc,"DEFI_COMPOR","LOCALISATION",["'RL'",]) 
+    genereErreurValeur(jdc,"DEFI_COMPOR","LOCALISATION",["'RL'",])
     genereErreurValeur(jdc,"DEFI_COMPOR","RELATION_KIT",["'RVMIS_ISOT_CINE'",])
     genereErreurValeurDsMCF(jdc,"DEFI_COMPOR","MULTIFIBRE","RELATION",["'LABORD_1D'"])
     genereErreurMCF(jdc,"DEFI_COMPOR","POLYCRISTAL")
@@ -309,8 +309,8 @@ def traduc(infile,outfile,flog=None):
     genereErreurMCF(jdc,"DEFI_MATER_GC","MAZARS")
 
     ####   traitement de DEFI_MATERIAU   ##############################
-    lMLA=["F_MRR_RR", "C_MRR_RR", "F_MTT_TT", "C_MTT_TT", "F_MZZ_ZZ", 
-           "C_MZZ_ZZ", "F_MRT_RT", "C_MRT_RT", "F_MRZ_RZ", "C_MRZ_RZ", 
+    lMLA=["F_MRR_RR", "C_MRR_RR", "F_MTT_TT", "C_MTT_TT", "F_MZZ_ZZ",
+           "C_MZZ_ZZ", "F_MRT_RT", "C_MRT_RT", "F_MRZ_RZ", "C_MRZ_RZ",
            "F_MTZ_TZ", "C_MTZ_TZ",]
     for param in lMLA:
         removeMotCleInFact(jdc,"DEFI_MATERIAU","META_LEMA_ANI",param,pasDeRegle(),0)
@@ -320,15 +320,15 @@ def traduc(infile,outfile,flog=None):
     for mcle in lMDC:
         removeMotCleInFact(jdc,"DEFI_MATERIAU","MONO_DD_CC",mcle,pasDeRegle(),0)
         removeMotCleInFact(jdc,"DEFI_MATERIAU","MONO_DD_CC_IRRA",mcle,pasDeRegle(),0)
-    
+
     removeMotCleInFact(jdc,"DEFI_MATERIAU","UMAT","NB_VALE",pasDeRegle(),0)
     removeMotCleInFact(jdc,"DEFI_MATERIAU","UMAT_FO","NB_VALE",pasDeRegle(),0)
     listeMc=["C"+str(i) for i in range(1,198)]
     fusionMotCleInFact(jdc,"DEFI_MATERIAU","UMAT",listeMc,"LISTE_COEF")
     fusionMotCleInFact(jdc,"DEFI_MATERIAU","UMAT_FO",listeMc,"LISTE_COEF")
-    
-    removeMotCle(jdc,"DEFI_MATERIAU","LABORD_1D",pasDeRegle(),0) 
-    
+
+    removeMotCle(jdc,"DEFI_MATERIAU","LABORD_1D",pasDeRegle(),0)
+
     genereErreurMCF(jdc,"DEFI_MATERIAU","DIS_VISC")
     lDISC=["PUIS_DX", "PUIS_DY", "PUIS_DZ", "PUIS_RX", "PUIS_RY", "PUIS_RZ",
      "COEF_DX", "COEF_DY", "COEF_DZ", "COEF_RX", "COEF_RY", "COEF_RZ"]
@@ -383,7 +383,7 @@ def traduc(infile,outfile,flog=None):
     ####   traitement de EXTR_TABLE   ##############################
     changementValeurDsMCF(jdc,"EXTR_TABLE","FILTRE","VALE_K",{"MATR_ELEM":"MATR_TANG_ELEM"})
     changementValeurDsMCF(jdc,"EXTR_TABLE","FILTRE","VALE_K",{"CODE_RETOUR":"CODE_RETOUR_INTE"})
-    
+
     ####   traitement de FACTORISER   ##############################
     renameMotCle(jdc,"FACTORISER","ELIM_LAGR2","ELIM_LAGR")
     changementValeur(jdc,"FACTORISER","ELIM_LAGR",{"OUI":"LAGR2",})
@@ -427,7 +427,7 @@ def traduc(infile,outfile,flog=None):
     ####   traitement de MACR_ECREVISSE   ##############################
     genereErreurMCF(jdc,"MACR_ECREVISSE","COMP_INCR")
 
-    ####   traitement de MACR_INFO_MAIL   ##############################    
+    ####   traitement de MACR_INFO_MAIL   ##############################
     changementValeur(jdc,"MACR_INFO_MAIL","VERSION_HOMARD",{"V10_6":"V11_2"})
     changementValeur(jdc,"MACR_INFO_MAIL","VERSION_HOMARD",{"V10_N":"V11_N"})
     changementValeur(jdc,"MACR_INFO_MAIL","VERSION_HOMARD",{"V10_N_PERSO":"V11_N_PERSO"})
@@ -468,7 +468,7 @@ def traduc(infile,outfile,flog=None):
         moveMotCleFromFactToFact(jdc,"MODE_ITER_INV","CALC_FREQ",mcle,"SOLVEUR_MODAL")
     moveMotClefInOperToFact(jdc,"MODE_ITER_SIMULT","PREC_JACOBI","SOLVEUR_MODAL")
     moveMotClefInOperToFact(jdc,"MODE_ITER_SIMULT","PREC_BATHE","SOLVEUR_MODAL")
-    
+
     removeMotCle(jdc,"MODE_ITER_INV","CALC_MODE",pasDeRegle(),0)
 
     chercheOperInsereMotCleSiRegle(jdc,"MODE_ITER_INV","OPTION='AJUSTE'",((("OPTION",),"nexistepas"),),0)
@@ -493,7 +493,7 @@ def traduc(infile,outfile,flog=None):
     moveMotCleFromFactToFact(jdc,"MODE_ITER_SIMULT","CALC_FREQ","DIM_SOUS_ESPACE","SOLVEUR_MODAL")
     moveMotCleFromFactToFact(jdc,"MODE_ITER_SIMULT","CALC_CHAR_CRIT","COEF_DIM_ESPACE","SOLVEUR_MODAL")
     moveMotCleFromFactToFact(jdc,"MODE_ITER_SIMULT","CALC_CHAR_CRIT","DIM_SOUS_ESPACE","SOLVEUR_MODAL")
-    
+
     removeMotCleInFactSiRegle(jdc,"MODE_ITER_SIMULT","CALC_FREQ","APPROCHE",
                                     ((("SOLVEUR_MODAL","METHODE",["QZ"],jdc),"MCsousMCFnaPasPourValeurDansListe")or
                                      (("SOLVEUR_MODAL","METHODE",),"nexistepasMCsousMCF"),
@@ -564,7 +564,7 @@ def traduc(infile,outfile,flog=None):
         changementValeur(jdc,com,"OPTION",{"FORC_INT_ELEM":"FORC_INTE_ELEM"})
 
         removeMotCleInFactSiRegle(jdc,com,"COMPORTEMENT","NB_VARI",((("COMPORTEMENT","RELATION","'MFRONT'",jdc),"MCsousMCFaPourValeur"),))
-        
+
 
     ####   traitement de TEST_COMPOR   ##############################
     genereErreurPourCommande(jdc,"TEST_COMPOR")
@@ -574,9 +574,9 @@ def traduc(infile,outfile,flog=None):
 
     ####   traitement de C_SOLVEUR   ##############################
     lCOM=['CALC_ERREUR', 'CALC_FORC_AJOU', 'CALC_IFS_DNL', 'CALC_MATR_AJOU', 'CALC_PRECONT',
-        'CREA_ELEM_SSD', 'DEFI_BASE_MODALE', 'DYNA_LINE_HARM', 'DYNA_LINE_TRAN', 'DYNA_NON_LINE', 
-        'DYNA_TRAN_MODAL', 'INFO_MODE', 'MACR_ASCOUF_CALC', 'MACR_ASPIC_CALC', 'MACRO_BASCULE_SCHEMA', 
-        'MACRO_MATR_AJOU', 'MECA_STATIQUE', 'MODE_ITER_SIMULT', 'MODE_ITER_INV', 'MODE_STATIQUE', 
+        'CREA_ELEM_SSD', 'DEFI_BASE_MODALE', 'DYNA_LINE_HARM', 'DYNA_LINE_TRAN', 'DYNA_NON_LINE',
+        'DYNA_TRAN_MODAL', 'INFO_MODE', 'MACR_ASCOUF_CALC', 'MACR_ASPIC_CALC', 'MACRO_BASCULE_SCHEMA',
+        'MACRO_MATR_AJOU', 'MECA_STATIQUE', 'MODE_ITER_SIMULT', 'MODE_ITER_INV', 'MODE_STATIQUE',
         'STAT_NON_LINE', 'THER_LINEAIRE', 'THER_NON_LINE', 'THER_NON_LINE_MO', 'CALC_ERC_DYN','CALC_MODES',]
     for com in lCOM:
         # Suppression de ELIM_LAGR2
@@ -589,11 +589,11 @@ def traduc(infile,outfile,flog=None):
         lMCLE=["NB_REORTHO_DD","NMAX_ITER","INFO_FETI","RESI_RELA","PARTITION"]
         for mocle in lMCLE:
             genereErreurMotCleInFact(jdc,com,"SOLVEUR",mocle)
-    
+
     ####   traitement de DEFI_PART_FETI   ##############################
     genereErreurMCF(jdc,"DEFI_PART_FETI","EXCIT")
     removeMotCle(jdc,"DEFI_PART_FETI","EXCIT",pasDeRegle(),0)
-    removeMotCle(jdc,"DEFI_PART_FETI","CORRECTION_CONNEX",pasDeRegle(),0)    
+    removeMotCle(jdc,"DEFI_PART_FETI","CORRECTION_CONNEX",pasDeRegle(),0)
     genereErreurPourCommande(jdc,"DEFI_PART_FETI")
     renameCommande(jdc,"DEFI_PART_FETI","DEFI_PARTITION", )
 
index 5f3b688877ba25abe4f8b0c9a595ffa5c8e6da42..3962c0fdf92dc5e0fee6e7b55e858187e70430d1 100644 (file)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -86,11 +86,11 @@ dict_erreurs={
               "CALC_CHAM_ELEM":"reecrire la partie SOUR_ELGA_ELEC",
               "CALC_G_THETA_T_OPTION_VALEUR":"verifier la valeur d OPTION",
               "CALC_G_THETA_T_OPTION_DEFAUT":"verifier la valeur d OPTION donnee a la place du defaut",
-              "CALC_G_MODELE":"Mot Clef MODELE supprimé sous CALC_G",
-              "CALC_G_DEPL":"Mot Clef DEPL supprimé sous CALC_G",
-              "CALC_G_CHAM_MATER":"Mot Clef CHAM_MATER supprimé sous CALC_G",
-              "CALC_G_CARA_ELEM":"Mot Clef CARA_ELEM supprimé sous CALC_G",
-              "CALC_G_RESULTAT=XXX,":"Mot Clef RESULTAT à completer sous CALC_G",
+              "CALC_G_MODELE":"Mot Clef MODELE supprime sous CALC_G",
+              "CALC_G_DEPL":"Mot Clef DEPL supprime sous CALC_G",
+              "CALC_G_CHAM_MATER":"Mot Clef CHAM_MATER supprime sous CALC_G",
+              "CALC_G_CARA_ELEM":"Mot Clef CARA_ELEM supprime sous CALC_G",
+              "CALC_G_RESULTAT=XXX,":"Mot Clef RESULTAT a completer sous CALC_G",
               "AFFE_MODELE_AFFE_MODELISATION_VALEUR":"verifier la valeur de MODELISATION",
               "STAT_NON_LINE_COMP_INCR_RELATION_VALEUR":"verifier la valeur de RELATION",
               "STAT_NON_LINE_COMP_INCR_RELATION_KIT_VALEUR":"verifier la valeur de RELATION_KIT",
@@ -129,7 +129,7 @@ def traduc(infile,outfile,flog=None):
 
     #Parse les mocles des commandes
     parseKeywords(root)
-    
+
     ####################### traitement erreurs ########################
     genereErreurPourCommande(jdc,("DEBUT","POST_RCCM","DIST_LIGN_3D","IMPR_OAR","COMB_CHAM_NO","COMB_CHAM_ELEM"))
 
@@ -256,7 +256,7 @@ def traduc(infile,outfile,flog=None):
     moveMotClefInOperToFact(jdc,"CALC_G_LOCAL_T","LISSAGE_THETA","LISSAGE")
     moveMotClefInOperToFact(jdc,"CALC_G_LOCAL_T","LISSAGE_G","LISSAGE")
     moveMotClefInOperToFact(jdc,"CALC_G_LOCAL_T","DEGRE","LISSAGE")
-    
+
     dlocal={"CALC_G_LGLO":"G_LAGR", "G_BILINEAIRE":"G_BILI", "CALC_G_MAX":"G_MAX"}
     changementValeur(jdc,"CALC_G_LOCAL_T","OPTION",dlocal)
     #
@@ -268,13 +268,13 @@ def traduc(infile,outfile,flog=None):
     renameOper(jdc,"CALC_G_THETA_T","CALC_G")
 
     # Attention cela necessite un traitement particulier et ne peut pas etre generalise tel quel
-    # Attention egalement doit etre fait avant le regroupement dans THETA 
+    # Attention egalement doit etre fait avant le regroupement dans THETA
     calcG.traitementRayon(jdc)
     renameMotCle(jdc,"CALC_G","THETA","THETA_OLD")
     chercheOperInsereFacteur(jdc,"CALC_G","THETA")
     moveMotClefInOperToFact(jdc,"CALC_G","THETA_OLD","THETA")
     renameMotCleInFact(jdc,"CALC_G","THETA","THETA_OLD","THETA")
-    
+
     moveMotClefInOperToFact(jdc,"CALC_G","FOND_FISS","THETA")
     moveMotClefInOperToFact(jdc,"CALC_G","R_INF_FO","THETA")
     moveMotClefInOperToFact(jdc,"CALC_G","R_SUP_FO","THETA")
@@ -297,7 +297,7 @@ def traduc(infile,outfile,flog=None):
     removeMotCleSiRegleAvecErreur(jdc,"AFFE_MODELE","AFFE",((("AFFE","MODELISATION","ASSE_GRIL",jdc),"MCsousMCFaPourValeur"),))
     removeMotCleSiRegleAvecErreur(jdc,"AFFE_MODELE","AFFE",((("AFFE","MODELISATION","3D_JOINT_CT",jdc),"MCsousMCFaPourValeur"),))
     renameMotCleInFact(jdc,"AFFE_MODELE","AFFE_SOUS_STRUC","MAILLE","SUPER_MAILLE")
+
     ####################### traitement PROJ_MESU_MODAL #######################
     removeMotCleInFact(jdc,"PROJ_MESU_MODAL","MODELE_MESURE","NOM_PARA")
     removeMotCleInFactSiRegleAvecErreur(jdc,"AFFE_CHAR_MECA","CONTACT","FROTTEMENT",((("CONTACT","METHODE","CONTRAINTE",jdc),"MCsousMCFaPourValeur"),))
@@ -316,7 +316,7 @@ def traduc(infile,outfile,flog=None):
     moveMotClefInOperToFact(jdc,"CALC_ELEM","ANGLE","REPE_COQUE")
     moveMotClefInOperToFact(jdc,"CALC_ELEM","PLAN","REPE_COQUE")
 
-    
+
     ####################### traitement EXTR_MODE #######################
     ajouteMotClefDansFacteurSiRegle(jdc,"EXTR_MODE","FILTRE_MODE","SEUIL=1.E-3", ((("FILTRE_MODE","CRIT_EXTR",),"existeMCsousMCF"),(("FILTRE_MODE","SEUIL",),"nexistepasMCsousMCF")))
 
@@ -508,7 +508,7 @@ def main():
     parser = optparse.Optionparser(usage=usage)
 
     parser.add_option('-i','--infile', dest="infile", default='toto.comm',
-        help="Le fichier à traduire")
+        help="Le fichier a traduire")
     parser.add_option('-o','--outfile', dest="outfile", default='tutu.comm',
         help="Le fichier traduit")
 
@@ -517,4 +517,3 @@ def main():
 
 if __name__ == '__main__':
     main()
-
index 224e781b5e7450ee73c9ff6b77ef403cc759cf3e..975f4982b8ac8b38acf4d39524cc217d09c853e0 100644 (file)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -85,7 +85,7 @@ def traduc(infile,outfile,flog=None):
 
     #Parse les mocles des commandes
     parseKeywords(root)
-    
+
     ####################### traitement erreurs ########################
     genereErreurPourCommande(jdc,("POST_RCCM","DEFI_MATERIAU","TEST_FICHIER","DYNA_NON_LINE","DEFI_FISS_XFEM","POST_MAIL_XFEM"))
 
@@ -204,7 +204,7 @@ def traduc(infile,outfile,flog=None):
     renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB_FO","K_VP","UN_SUR_K")
     renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB_FO","SEDVP1","ALPHA_D")
     renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB_FO","SEDVP2","BETA_D")
-    # GLRC 
+    # GLRC
     renameCommandeSiRegle(jdc,"DEFI_MATERIAU","DEFI_GLRC", ((("GLRC_DAMAGE","GLRC_ACIER",),"existeMCFParmi"),))
     #########################################################################
 
@@ -425,7 +425,7 @@ def main():
     parser = optparse.Optionparser(usage=usage)
 
     parser.add_option('-i','--infile', dest="infile", default='toto.comm',
-        help="Le fichier à traduire")
+        help="Le fichier a traduire")
     parser.add_option('-o','--outfile', dest="outfile", default='tutu.comm',
         help="Le fichier traduit")
 
@@ -434,4 +434,3 @@ def main():
 
 if __name__ == '__main__':
     main()
-
index 45570a619820cb12a87e70757cb669fe3c50b982..36a23e29f65ba274929b2ffd175657188407a642 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -37,7 +37,7 @@ from Traducteur.renamemocle  import *
 from Traducteur.inseremocle  import *
 from Traducteur.changeValeur import *
 from Traducteur.movemocle    import *
-from Traducteur.dictErreurs  import * 
+from Traducteur.dictErreurs  import *
 from Traducteur.regles import pasDeRegle
 
 atraiter=("AFFE_CARA_ELEM","AFFE_CHAR_CINE","AFFE_CHAR_MECA","AFFE_CHAR_MECA_F","AFFE_MATERIAU","AFFE_MODELE",
@@ -56,16 +56,16 @@ atraiter=("AFFE_CARA_ELEM","AFFE_CHAR_CINE","AFFE_CHAR_MECA","AFFE_CHAR_MECA_F",
 dict_erreurs={
 # STA10
 #
-             "AFFE_CHAR_MECA_CONTACT":"Attention, modification de la définition du CONTACT : nommer DEFI_CONTACT,verifier les paramètres globaux et le mettre dans le calcul",
-             "AFFE_CHAR_MECA_LIAISON_UNILATER":"Attention, modification de la définition du CONTACT : nommer DEFI_CONTACT,verifier les paramètres globaux et le mettre dans le calcul",
-             "AFFE_CHAR_MECA_F_LIAISON_UNILATER":"Attention, modification de la définition du CONTACT : nommer DEFI_CONTACT,verifier les paramètres globaux et le mettre dans le calcul",
+             "AFFE_CHAR_MECA_CONTACT":"Attention, modification de la definition du CONTACT : nommer DEFI_CONTACT,verifier les parametres globaux et le mettre dans le calcul",
+             "AFFE_CHAR_MECA_LIAISON_UNILATER":"Attention, modification de la definition du CONTACT : nommer DEFI_CONTACT,verifier les parametres globaux et le mettre dans le calcul",
+             "AFFE_CHAR_MECA_F_LIAISON_UNILATER":"Attention, modification de la definition du CONTACT : nommer DEFI_CONTACT,verifier les parametres globaux et le mettre dans le calcul",
              "AFFE_CHAR_MECA_GRAPPE_FLUIDE":"Resorption de GRAPPE_FLUIDE en version 10",
              "DEFI_MATERIAU_LMARC":"Resorption loi LMARC en version 10",
              "DEFI_MATERIAU_LMARC_FO":"Resorption loi LMARC en version 10",
              "POST_ZAC":"Resorption POST_ZAC en version 10",
              "AFFE_CHAR_MECA_ARLEQUIN":"Resorption ARLEQUIN en version 10",
-             
-             "PROJ_CHAMP_CHAM_NO":"Attention, verifier pour PROJ_CHAMP la présence de MODELE1/MAILLAGE1 et MODELE2/MAILLAGE2",
+
+             "PROJ_CHAMP_CHAM_NO":"Attention, verifier pour PROJ_CHAMP la presence de MODELE1/MAILLAGE1 et MODELE2/MAILLAGE2",
 
              "COMB_SISM_MODAL_COMB_MULT_APPUI":"Attention, verifier GROUP_APPUI pour COMB_SISM_MODAL car on est dans le cas MULTI_APPUI=DECORRELE",
 
@@ -103,7 +103,7 @@ dict_erreurs={
              "MACR_ASPIQ_CALC_INCREMENT":"Attention, modification de la subdivision des pas : nommer DEFI_LIST_INST et verifier son appel dans MACR_ASPIQ_CALC",
              "SIMU_POINT_MAT_INCREMENT":"Attention, modification de la subdivision des pas : nommer DEFI_LIST_INST et verifier son appel dans SIMU_POINT_MAT",
 
-             "CALC_ELEM_SENSIBILITE":"Le post-traitement SENSIBILITE est à supprimer de CALC_ELEM et à faire via CALC_SENSI",
+             "CALC_ELEM_SENSIBILITE":"Le post-traitement SENSIBILITE est a supprimer de CALC_ELEM et a faire via CALC_SENSI",
 
              "CALC_MISS_OPTION":"Attention, transfert MACRO_MISS_3D en CALC_MISS : utiliser un DEFI_SOL_MISS pour obtenir TABLE_SOL",
               }
@@ -132,7 +132,7 @@ def traduc(infile,outfile,flog=None):
 
 
     #####SOLVEUR
-    
+
     ####################### traitement MUMPS/PARALELLISME-PARTITION ##################
     #commandes concernes en plus : CALC_FORC_AJOU?,CALC_MATR_AJOU?
      # */SOLVEUR/CHARGE_PROCO_MA(SD)--> AFFE_MODELE (ou MODI_MODELE)/PARTITION/.
@@ -197,7 +197,7 @@ def traduc(infile,outfile,flog=None):
     removeMotCleInFact(jdc,"CALC_PRECONT","INCREMENT_NEW","SUBD_PAS_MINI",pasDeRegle(),0)
     renameMotCle(jdc,"CALC_PRECONT","INCREMENT_NEW","INCREMENT")
 
-    
+
     renameMotCleSiRegle(jdc,"DYNA_NON_LINE","INCREMENT","INCREMENT_NEW",((("INCREMENT","SUBD_METHODE"),"existeMCsousMCF"),),1)
     moveMCFToCommand(jdc,"DYNA_NON_LINE","INCREMENT_NEW","DEFI_LIST_INST","ECHEC")
     removeMotCleInFact(jdc,"DYNA_NON_LINE","INCREMENT_NEW","SUBD_COEF_PAS_1",pasDeRegle(),0)
@@ -210,7 +210,7 @@ def traduc(infile,outfile,flog=None):
     removeMotCleInFact(jdc,"DYNA_NON_LINE","INCREMENT_NEW","SUBD_PAS",pasDeRegle(),0)
     removeMotCleInFact(jdc,"DYNA_NON_LINE","INCREMENT_NEW","SUBD_PAS_MINI",pasDeRegle(),0)
     renameMotCle(jdc,"DYNA_NON_LINE","INCREMENT_NEW","INCREMENT")
-    
+
     renameMotCleSiRegle(jdc,"MACR_ASCOUF_CALC","INCREMENT","INCREMENT_NEW",((("INCREMENT","SUBD_METHODE"),"existeMCsousMCF"),),1)
     moveMCFToCommand(jdc,"MACR_ASCOUF_CALC","INCREMENT_NEW","DEFI_LIST_INST","ECHEC")
     removeMotCleInFact(jdc,"MACR_ASCOUF_CALC","INCREMENT_NEW","SUBD_COEF_PAS_1",pasDeRegle(),0)
@@ -223,7 +223,7 @@ def traduc(infile,outfile,flog=None):
     removeMotCleInFact(jdc,"MACR_ASCOUF_CALC","INCREMENT_NEW","SUBD_PAS",pasDeRegle(),0)
     removeMotCleInFact(jdc,"MACR_ASCOUF_CALC","INCREMENT_NEW","SUBD_PAS_MINI",pasDeRegle(),0)
     renameMotCle(jdc,"MACR_ASCOUF_CALC","INCREMENT_NEW","INCREMENT")
-    
+
     renameMotCleSiRegle(jdc,"MACR_ASPIQ_CALC","INCREMENT","INCREMENT_NEW",((("INCREMENT","SUBD_METHODE"),"existeMCsousMCF"),),1)
     moveMCFToCommand(jdc,"MACR_ASPIQ_CALC","INCREMENT_NEW","DEFI_LIST_INST","ECHEC")
     removeMotCleInFact(jdc,"MACR_ASPIQ_CALC","INCREMENT_NEW","SUBD_COEF_PAS_1",pasDeRegle(),0)
@@ -236,7 +236,7 @@ def traduc(infile,outfile,flog=None):
     removeMotCleInFact(jdc,"MACR_ASPIQ_CALC","INCREMENT_NEW","SUBD_PAS",pasDeRegle(),0)
     removeMotCleInFact(jdc,"MACR_ASPIQ_CALC","INCREMENT_NEW","SUBD_PAS_MINI",pasDeRegle(),0)
     renameMotCle(jdc,"MACR_ASPIQ_CALC","INCREMENT_NEW","INCREMENT")
-    
+
     renameMotCleSiRegle(jdc,"SIMU_POINT_MAT","INCREMENT","INCREMENT_NEW",((("INCREMENT","SUBD_METHODE"),"existeMCsousMCF"),),1)
     moveMCFToCommand(jdc,"SIMU_POINT_MAT","INCREMENT_NEW","DEFI_LIST_INST","ECHEC")
     removeMotCleInFact(jdc,"SIMU_POINT_MAT","INCREMENT_NEW","SUBD_COEF_PAS_1",pasDeRegle(),0)
@@ -247,7 +247,7 @@ def traduc(infile,outfile,flog=None):
     removeMotCleInFact(jdc,"SIMU_POINT_MAT","INCREMENT_NEW","SUBD_NIVEAU",pasDeRegle(),0)
     removeMotCleInFact(jdc,"SIMU_POINT_MAT","INCREMENT_NEW","SUBD_OPTION",pasDeRegle(),0)
     removeMotCleInFact(jdc,"SIMU_POINT_MAT","INCREMENT_NEW","SUBD_PAS",pasDeRegle(),0)
-    removeMotCleInFact(jdc,"SIMU_POINT_MAT","INCREMENT_NEW","SUBD_PAS_MINI",pasDeRegle(),0)  
+    removeMotCleInFact(jdc,"SIMU_POINT_MAT","INCREMENT_NEW","SUBD_PAS_MINI",pasDeRegle(),0)
     renameMotCle(jdc,"SIMU_POINT_MAT","INCREMENT_NEW","INCREMENT")
 
     removeMotCleInFact(jdc,"DEFI_LIST_INST","ECHEC","INST_INIT")
@@ -265,7 +265,7 @@ def traduc(infile,outfile,flog=None):
     removeMotCleInFact(jdc,"CALC_MODAL","CALC_FREQ","NPREC_SOLVEUR",pasDeRegle(),0)
     removeMotCle(jdc,"IMPR_STURM","NPREC_SOLVEUR")
     removeMotCleInFact(jdc,"MACRO_MATR_AJOU","CALC_FREQ","NPREC_SOLVEUR",pasDeRegle(),0)
-    
+
     ###################### traitement CALC_MODAL SOLVEUR ############
     removeMotCle(jdc,"CALC_MODAL","SOLVEUR",pasDeRegle())
 
@@ -289,7 +289,7 @@ def traduc(infile,outfile,flog=None):
 
     ###################  traitement AFFE_MODELE/SHB8 ##########################
     changementValeurDsMCF(jdc,"AFFE_MODELE","AFFE","MODELISATION",{"SHB8":"SHB"})
-    
+
     ###################  traitement COMP_ELAS et COMP_INCR  DEFORMATION = GREEN ##############"
     dGREEN={"GREEN_GR":"GROT_GDEP","GREEN":"GROT_GDEP","REAC_GEOM":"GROT_GDEP","EULER_ALMANSI":"GROT_GDEP","COROTATIONNEL":"GDEF_HYPO_ELAS"}
     changementValeurDsMCF(jdc,"SIMU_POINT_MAT","COMP_ELAS","DEFORMATION",dGREEN)
@@ -388,7 +388,7 @@ def traduc(infile,outfile,flog=None):
 
     ################ traitement DEFI_MATERIAU/THER_HYDR #######
     removeMotCleInFact(jdc,"DEFI_MATERIAU","THER_HYDR","QSR_K")
-     
+
     ##################### traitement AFFE_CARA_ELEM/DISCRET ###############"
     dDISCRET={"K_T_N_NS":"K_T_N",  "K_T_L_NS":"K_T_L",  "K_TR_N_NS":"K_TR_N",  "K_TR_L_NS":"K_TR_L",
               "M_T_N_NS":"M_T_N",  "M_T_L_NS":"M_T_L",  "M_TR_N_NS":"M_TR_N",  "M_TR_L_NS":"M_TR_L",
@@ -403,7 +403,7 @@ def traduc(infile,outfile,flog=None):
     changementValeurDsMCF(jdc,"AFFE_CARA_ELEM","DISCRET","CARA",dDISCRET)
 
     #####CHARGEMENT
-    
+
     ####################### traitement  CONTACT ###############################################
 
 
@@ -414,13 +414,13 @@ def traduc(infile,outfile,flog=None):
     moveMCFToCommand(jdc,"AFFE_CHAR_MECA","CONTACT","DEFI_CONTACT","ZONE")
     removeMotCle(jdc,"AFFE_CHAR_MECA","CONTACT",pasDeRegle(),1)
 
-    
+
     removeMotCleInFact(jdc,"AFFE_CHAR_MECA","LIAISON_UNILATER","METHODE")
     ajouteMotClefDansFacteur(jdc,"AFFE_CHAR_MECA","LIAISON_UNILATER","METHODE='LIAISON_UNIL'",pasDeRegle())
     copyMotClefInOperToFact(jdc,"AFFE_CHAR_MECA","MODELE","LIAISON_UNILATER")
     moveMCFToCommand(jdc,"AFFE_CHAR_MECA","LIAISON_UNILATER","DEFI_CONTACT","ZONE")
     removeMotCle(jdc,"AFFE_CHAR_MECA","LIAISON_UNILATER",pasDeRegle(),1)
-    
+
     removeMotCleInFact(jdc,"AFFE_CHAR_MECA_F","LIAISON_UNILATER","METHODE")
     ajouteMotClefDansFacteur(jdc,"AFFE_CHAR_MECA_F","LIAISON_UNILATER","METHODE='LIAISON_UNIL'",pasDeRegle())
     ajouteMotClefDansFacteur(jdc,"AFFE_CHAR_MECA_F","LIAISON_UNILATER","FORMULATION='LIAISON_UNIL'",pasDeRegle())
@@ -441,8 +441,8 @@ def traduc(infile,outfile,flog=None):
     ajouteMotClefDansFacteurCourantSiRegle(jdc,"DEFI_CONTACT","ZONE","ALGO_FROT='PENALISATION'",((("METHODE","PENALISATION",jdc),"MCsousMCFcourantaPourValeur"),(("COULOMB",),"existeMCsousMCFcourant"),))
     ajouteMotClefDansFacteurCourantSiRegle(jdc,"DEFI_CONTACT","ZONE","ALGO_CONT='CONTRAINTE'",((("METHODE","CONTRAINTE",jdc),"MCsousMCFcourantaPourValeur"),))
     removeMotCleInFact(jdc,"DEFI_CONTACT","ZONE","METHODE")
-    
-    
+
+
     moveMotCleFromFactToFather(jdc,"DEFI_CONTACT","ZONE","COEF_RESI")
     moveMotCleFromFactToFather(jdc,"DEFI_CONTACT","ZONE","FROTTEMENT")
     moveMotCleFromFactToFather(jdc,"DEFI_CONTACT","ZONE","ITER_CONT_MAXI")
@@ -463,7 +463,7 @@ def traduc(infile,outfile,flog=None):
     moveMotCleFromFactToFather(jdc,"DEFI_CONTACT","ZONE","NB_ITER_GEOM")
     moveMotCleFromFactToFather(jdc,"DEFI_CONTACT","ZONE","MODELE")
 
-    
+
     # FORMULATION = DEPL/VITE
     # Si EXCL_FROT_1
     # Si EXCL_FROT_2
@@ -482,9 +482,9 @@ def traduc(infile,outfile,flog=None):
     renameMotCleInFact(jdc,"AFFE_CHAR_CINE","MECA_IMPO","DCZ","DZ")
     # QUESTION Non pris en compte : AFFE_CHAR_MECA/LIAISON_DDL","DDL",Liste de valeurs avec DC*)
     # peut_etre avec changeTouteValeur ?
-    
+
     ######################### traitement COMB_SISM_MODAL APPUI #######################""
-    # attention il faut traiter d'abord DECORRELE avant CORRELE sinon CORRELE apparaît dans DECORELLE
+    # attention il faut traiter d'abord DECORRELE avant CORRELE sinon CORRELE apparait dans DECORELLE
     moveMotCleFromFactToFather(jdc,"COMB_SISM_MODAL","EXCIT","MONO_APPUI")
     moveMotCleFromFactToFather(jdc,"COMB_SISM_MODAL","EXCIT","MULTI_APPUI")
     removeMotCleInFactSiRegle(jdc,"COMB_SISM_MODAL","COMB_MULT_APPUI","TYPE_COMBI",((("MULTI_APPUI","DECORRELE",jdc),"MCaPourValeur"),))
@@ -507,7 +507,7 @@ def traduc(infile,outfile,flog=None):
 
 
     #####IMPRESSION
-    
+
     #################### traitement IMPR_RESU  #######################
     removeMotCleInFact(jdc,"IMPR_RESU","RESU","INFO_RESU")
 
@@ -629,7 +629,7 @@ def traduc(infile,outfile,flog=None):
     changementValeurDsMCF(jdc,"POST_ELEM","INTEGRALE","NOM_CHAM",dOPTION)
     changementValeurDsMCF(jdc,"POST_ELEM","MINMAX","NOM_CHAM",dOPTION)
     changementValeurDsMCF(jdc,"POST_RCCM","RESU_MECA","NOM_CHAM",dOPTION)
-    changementValeurDsMCF(jdc,"POST_RELEVE_T","ACTION","NOM_CHAM",dOPTION)    
+    changementValeurDsMCF(jdc,"POST_RELEVE_T","ACTION","NOM_CHAM",dOPTION)
     changementValeur(jdc,"PROJ_CHAMP","NOM_CHAM",dOPTION)
     changementValeurDsMCF(jdc,"PROJ_MESU_MODAL","MODELE_MESURE","NOM_CHAM",dOPTION)
     changementValeur(jdc,"RECU_FONCTION","NOM_CHAM",dOPTION)
@@ -638,7 +638,7 @@ def traduc(infile,outfile,flog=None):
     changementValeur(jdc,"REST_SPEC_PHYS","NOM_CHAM",dOPTION)
     changementValeurDsMCF(jdc,"TEST_RESU","RESU","NOM_CHAM",dOPTION)
     changementValeurDsMCF(jdc,"TEST_RESU","GENE","NOM_CHAM",dOPTION)
-    
+
     changementValeur(jdc,"CALC_CHAM_ELEM","OPTION",dOPTION)
     changementValeur(jdc,"CALC_ELEM","OPTION",dOPTION)
     changementValeur(jdc,"CALC_META","OPTION",dOPTION)
@@ -656,7 +656,7 @@ def traduc(infile,outfile,flog=None):
              "'PRES_ELNO_DBEL'", "'VARI_NOEU'")
     # Options ambigue :  PRES_ELNO_DBEL --> prac_elno/prme_elno, ERRE* --> ERME_ELNO ou ERTH_ELNO selon PHENOMENE
     # En commentaires les commandes non concernees par rOPTION
-    
+
     genereErreurValeurDsMCF(jdc,"AFFE_MATERIAU","AFFE_VARC","NOM_CHAM",rOPTION)
     #genereErreurValeur(jdc,"COMB_FOURIER","NOM_CHAM",rOPTION)
     genereErreurValeur(jdc,"CREA_CHAMP","NOM_CHAM",rOPTION)
@@ -673,7 +673,7 @@ def traduc(infile,outfile,flog=None):
     #genereErreurValeurDsMCF(jdc,"POST_RCCM","RESU_MECA","NOM_CHAM",rOPTION)
     genereErreurValeurDsMCF(jdc,"POST_ELEM","INTEGRALE","NOM_CHAM",rOPTION)
     genereErreurValeurDsMCF(jdc,"POST_ELEM","MINMAX","NOM_CHAM",rOPTION)
-    genereErreurValeurDsMCF(jdc,"POST_RELEVE_T","ACTION","NOM_CHAM",rOPTION)    
+    genereErreurValeurDsMCF(jdc,"POST_RELEVE_T","ACTION","NOM_CHAM",rOPTION)
     genereErreurValeur(jdc,"PROJ_CHAMP","NOM_CHAM",rOPTION)
     #genereErreurValeurDsMCF(jdc,"PROJ_MESU_MODAL","MODELE_MESURE","NOM_CHAM",rOPTION)
     genereErreurValeur(jdc,"RECU_FONCTION","NOM_CHAM",rOPTION)
@@ -682,7 +682,7 @@ def traduc(infile,outfile,flog=None):
     #genereErreurValeur(jdc,"REST_SPEC_PHYS","NOM_CHAM",rOPTION)
     genereErreurValeurDsMCF(jdc,"TEST_RESU","RESU","NOM_CHAM",rOPTION)
     genereErreurValeurDsMCF(jdc,"TEST_RESU","GENE","NOM_CHAM",rOPTION)
-    
+
     genereErreurValeur(jdc,"CALC_CHAM_ELEM","OPTION",rOPTION)
     genereErreurValeur(jdc,"CALC_ELEM","OPTION",rOPTION)
     #genereErreurValeur(jdc,"CALC_META","OPTION",rOPTION)
@@ -690,8 +690,8 @@ def traduc(infile,outfile,flog=None):
     #genereErreurValeur(jdc,"COMB_SISM_MODAL","OPTION",rOPTION)
     #genereErreurValeur(jdc,"MECA_STATIQUE","OPTION",rOPTION)
     genereErreurValeurDsMCF(jdc,"MACRO_ELAS_MULT","CAS_CHARGE","OPTION",rOPTION)
-    #genereErreurValeur(jdc,"THER_NON_LINE","OPTION",rOPTION)        
-    
+    #genereErreurValeur(jdc,"THER_NON_LINE","OPTION",rOPTION)
+
     ########### Message si CALC_ELEM/SENSIBILITE
     genereErreurMCF(jdc,"CALC_ELEM","SENSIBILITE")
 
@@ -716,16 +716,16 @@ def traduc(infile,outfile,flog=None):
     for c in jdc.root.childNodes:
         if c.name != "IMPR_MACR_ELEM" : continue
         for mc in c.childNodes:
-             if mc.name == "MACR_ELEM_DYNA" : macr=mc.getText(jdc)
-             if mc.name == "GROUP_MA_INTERF": interf=mc.getText(jdc)
-             if mc.name == "AMOR_REDUIT": amor=mc.getText(jdc)
+            if mc.name == "MACR_ELEM_DYNA" : macr=mc.getText(jdc)
+            if mc.name == "GROUP_MA_INTERF": interf=mc.getText(jdc)
+            if mc.name == "AMOR_REDUIT": amor=mc.getText(jdc)
     if amor != "" : chercheOperInsereFacteur(jdc,"CALC_MISS",amor,pasDeRegle(),0)
     if interf != "" : chercheOperInsereFacteur(jdc,"CALC_MISS",interf,pasDeRegle(),0)
     if macr != "" : chercheOperInsereFacteur(jdc,"CALC_MISS",macr,pasDeRegle(),0)
 
     chercheOperInsereFacteur(jdc,"CALC_MISS","TABLE_SOL=''",pasDeRegle(),0)
     chercheOperInsereFacteur(jdc,"CALC_MISS","TYPE_RESU='FICHIER'",pasDeRegle(),0)
-    
+
     #################################################################
     f=open(outfile,'w')
     f.write(jdc.getSource())
@@ -737,7 +737,7 @@ def main():
     parser = optparse.Optionparser(usage=usage)
 
     parser.add_option('-i','--infile', dest="infile", default='toto.comm',
-        help="Le fichier à traduire")
+        help="Le fichier a traduire")
     parser.add_option('-o','--outfile', dest="outfile", default='tutu.comm',
         help="Le fichier traduit")
 
@@ -746,4 +746,3 @@ def main():
 
 if __name__ == '__main__':
     main()
-
index 9ab9601c4c64a1435f59b3f68aaf047876f0e275..51174a6c70286a7747f55de6b538a1883896545d 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -28,8 +28,8 @@ def indexToCoordinates(src, index):
     return x, y
 
 def lineToDict(line):
-    """Transforme une ligne (string) en un dictionnaire de mots 
-        repérés par le numéro de la colonne"""
+    """Transforme une ligne (string) en un dictionnaire de mots
+        reperes par le numero de la colonne"""
 
     words = re.split("(\w+)", line)
     h = {};i = 0
@@ -39,7 +39,7 @@ def lineToDict(line):
     return h
 
 def dictToLine(d):
-    """Transformation inverse: à partir d'un dictionnaire retourne une ligne"""
+    """Transformation inverse: a partir d'un dictionnaire retourne une ligne"""
     cols = d
     cols.sort()
     return "".join([d[colno]for colno in cols])
index b58fcba95d8f5066fc7b9155d8f4a69568e02081..c7d9db447d1085e0e3fa83f4e3ee1d84366bd2e9 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -71,7 +71,7 @@ class KeywordFinder(MatchFinder):
             self._matches = []
             self.visit(child)
             if self._matches:
-                # Pour eviter les tuples et listes ordinaires, 
+                # Pour eviter les tuples et listes ordinaires,
                 # on ne garde que les visites fructueuses
                 matchlist.append(self._matches)
         self._matches=matchlist
diff --git a/UiQT5/GNUmakefile b/UiQT5/GNUmakefile
new file mode 100644 (file)
index 0000000..70a5762
--- /dev/null
@@ -0,0 +1,63 @@
+PYUIC = pyuic5
+QTRELEASE = lrelease
+.PHONY : all
+.SUFFIXES : .ui .py .ts .qm
+
+SHELL=bash
+
+ifdef EFICAS4VIMMP_ROOT
+srcdir?=${EFICAS4VIMMP_ROOT}
+else
+srcdir?=..
+endif
+
+confdir?=$(srcdir)/config
+tooldir=$(srcdir)/Tools
+
+# Règle en tête de Makefile
+all : $(PY_FILES) $(QM_FILES)
+
+############# ENVIRONEMENT DE CONSTRUCTION VIMMP Traning ################
+
+ifeq ($(findstring vimmp,$dir($(realpath GNUmakefile))),vimmp)
+include $(confdir)/GNUmakefile.mdm
+include $(confdir)/GNUmakefile.env
+else
+include $(confdir)/GNUmakefile.env
+endif
+
+PYXB            ?=pyxbgen
+
+#################     REGLES DE CONSTRUCTION     ########################
+
+
+PY_FILES = myMain.py desBaseWidget.py desChoixCata.py desChoixCode.py desChoixCommandes.py \
+        desChoixLangue.py desRecherche.py  desRechercheCatalogue.py\
+       desSelectVal.py desViewTexte.py desViewRegles.py desVisu.py desWidgetCreeParam.py desWidgetCommande.py \
+       desWidgetOptionnel.py Tuple2.py Tuple3.py  Tuple4.py Tuple5.py Tuple6.py Tuple7.py Tuple8.py Tuple9.py\
+       Tuple10.py desWidgetBloc.py desWidgetCB.py desWidgetCBIntoSug.py desWidgetCommentaire.py desWidgetDate.py \
+       desWidgetFact.py desWidgetFactPlie.py desWidgetFactTableau.py desWidgetFormule.py desGroupeOptionnel.py \
+       desWidgetHeure.py  desWidgetInformation.py desWidgetIntoSug.py desWidgetInactif.py \
+       desWidgetMatrice.py desWidgetParam.py desWidgetPlusieursBase.py desWidgetPlusieursInto.py \
+       desWidgetPlusieursIntoOrdonne.py desWidgetPlusieursTuple.py desWidgetRadioButton.py \
+       desWidget4a6RadioButton.py desWidgetSimpBase.py desWidgetSDCOInto.py desWidgetSimpBool.py \
+        desWidgetSimpSalome.py  desPBOptionnelMT.py desWidgetTableau.py\
+       desWidgetSimpComplexe.py desWidgetSimpFichier.py desWidgetSimpTxt.py desWidgetTuple2.py \
+        desWidgetTuple3.py desWidgetTuple4.py desWidgetTuple5.py desWidgetTuple6.py desWidgetTuple7.py \
+        desWidgetTuple8.py desWidgetTuple9.py desWidgetTuple10.py desWidgetVide.py desWidgetUniqueSDCO.py \
+        desWidgetPlusieursPlie.py desWidgetNiveauFact.py dateEtHeure.py 
+
+
+
+QM_FILES=eficas_en.qm eficas_fr.qm
+
+%.py:%.ui
+       ${PYUIC} -x -o $@ $<
+
+%.qm:%.ts
+       ${QTRELEASE}  -qm $@ $<
+
+all : $(PY_FILES) $(QM_FILES)
+clean :
+       -rm -rf $(PY_FILES) *.pyc
+
index 102166a10eba4c626f90a47a69b02204ce66bfe6..c81497844a665cb013ff881306ae1121c0bd725c 100644 (file)
@@ -28,7 +28,7 @@
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_1">
+    <widget class="LECustomTuple" name="lineEditVal1">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -66,7 +66,7 @@ border:0px;
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_2">
+    <widget class="LECustomTuple" name="lineEditVal2">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -102,7 +102,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_3">
+    <widget class="LECustomTuple" name="lineEditVal3">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -138,7 +138,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_4">
+    <widget class="LECustomTuple" name="lineEditVal4">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -174,7 +174,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_5">
+    <widget class="LECustomTuple" name="lineEditVal5">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -210,7 +210,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_6">
+    <widget class="LECustomTuple" name="lineEditVal6">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -246,7 +246,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_7">
+    <widget class="LECustomTuple" name="lineEditVal7">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -282,7 +282,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_8">
+    <widget class="LECustomTuple" name="lineEditVal8">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -318,7 +318,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_9">
+    <widget class="LECustomTuple" name="lineEditVal9">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -347,7 +347,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_10">
+    <widget class="LECustomTuple" name="lineEditVal10">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
index fb7c2ab6703138e98531dfb5f3c01ed28c680fda..9a17ce5f00605884760623574cf9fa9eea3045b6 100644 (file)
@@ -43,7 +43,7 @@
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_1">
+    <widget class="LECustomTuple" name="lineEditVal1">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -84,7 +84,7 @@ border:0px;
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_2">
+    <widget class="LECustomTuple" name="lineEditVal2">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
index 9d77748364069fb93d4c047f3ee345fc811646c1..de3d4528fc40f3e23a5af220efd0a95e81c996f8 100644 (file)
@@ -43,7 +43,7 @@
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_1">
+    <widget class="LECustomTuple" name="lineEditVal1">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -81,7 +81,7 @@ border:0px;
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_2">
+    <widget class="LECustomTuple" name="lineEditVal2">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -117,7 +117,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_3">
+    <widget class="LECustomTuple" name="lineEditVal3">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
index d551c2b8e939ce9fdc1ee59e3e40dc552c9b5e8f..e2db872854ec3f6acb458cec4260da4f2b0e1564 100644 (file)
@@ -28,7 +28,7 @@
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_1">
+    <widget class="LECustomTuple" name="lineEditVal1">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -66,7 +66,7 @@ border:0px;
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_2">
+    <widget class="LECustomTuple" name="lineEditVal2">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -102,7 +102,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_3">
+    <widget class="LECustomTuple" name="lineEditVal3">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -138,7 +138,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_4">
+    <widget class="LECustomTuple" name="lineEditVal4">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
index b301339029d898faee33de28cfde2e126e0d65b6..e8b64bfdab34238d2ac269e5538923c03ff2c9d1 100644 (file)
@@ -28,7 +28,7 @@
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_1">
+    <widget class="LECustomTuple" name="lineEditVal1">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -66,7 +66,7 @@ border:0px;
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_2">
+    <widget class="LECustomTuple" name="lineEditVal2">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -102,7 +102,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_3">
+    <widget class="LECustomTuple" name="lineEditVal3">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -138,7 +138,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_4">
+    <widget class="LECustomTuple" name="lineEditVal4">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -174,7 +174,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_5">
+    <widget class="LECustomTuple" name="lineEditVal5">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
index 192bf670fd1a23910294784c48c82fdaaacd83e8..c870ea9af5f6b8e284a781bb6d5a4eec41b2839b 100644 (file)
@@ -28,7 +28,7 @@
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_1">
+    <widget class="LECustomTuple" name="lineEditVal1">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -66,7 +66,7 @@ border:0px;
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_2">
+    <widget class="LECustomTuple" name="lineEditVal2">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -102,7 +102,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_3">
+    <widget class="LECustomTuple" name="lineEditVal3">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -138,7 +138,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_4">
+    <widget class="LECustomTuple" name="lineEditVal4">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -174,7 +174,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_5">
+    <widget class="LECustomTuple" name="lineEditVal5">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -210,7 +210,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_6">
+    <widget class="LECustomTuple" name="lineEditVal6">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
index 242b5b17e12a6a1633cae78879782a7cf82d01ef..47df62d69dbefdfa2cb4e93b610f3ec1aede350f 100644 (file)
@@ -28,7 +28,7 @@
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_1">
+    <widget class="LECustomTuple" name="lineEditVal1">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -66,7 +66,7 @@ border:0px;
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_2">
+    <widget class="LECustomTuple" name="lineEditVal2">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -102,7 +102,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_3">
+    <widget class="LECustomTuple" name="lineEditVal3">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -138,7 +138,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_4">
+    <widget class="LECustomTuple" name="lineEditVal4">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -174,7 +174,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_5">
+    <widget class="LECustomTuple" name="lineEditVal5">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -210,7 +210,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_6">
+    <widget class="LECustomTuple" name="lineEditVal6">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -246,7 +246,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_7">
+    <widget class="LECustomTuple" name="lineEditVal7">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
index 169b2608aea22ace8b5152ae71dcbe1f0140dace..b3d0f63a3157d69cec003a4a67abe7f76c1718d0 100644 (file)
@@ -28,7 +28,7 @@
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_1">
+    <widget class="LECustomTuple" name="lineEditVal1">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -66,7 +66,7 @@ border:0px;
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_2">
+    <widget class="LECustomTuple" name="lineEditVal2">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -102,7 +102,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_3">
+    <widget class="LECustomTuple" name="lineEditVal3">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -138,7 +138,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_4">
+    <widget class="LECustomTuple" name="lineEditVal4">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -174,7 +174,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_5">
+    <widget class="LECustomTuple" name="lineEditVal5">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -210,7 +210,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_6">
+    <widget class="LECustomTuple" name="lineEditVal6">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -246,7 +246,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_7">
+    <widget class="LECustomTuple" name="lineEditVal7">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -282,7 +282,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_8">
+    <widget class="LECustomTuple" name="lineEditVal8">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
index 6a7f25a14e117313baec6b47ee966c5b3522ab41..7f8e3f0341a9088a197e64439e9acae114644779 100644 (file)
@@ -40,7 +40,7 @@
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_1">
+    <widget class="LECustomTuple" name="lineEditVal1">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -78,7 +78,7 @@ border:0px;
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_2">
+    <widget class="LECustomTuple" name="lineEditVal2">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -114,7 +114,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_3">
+    <widget class="LECustomTuple" name="lineEditVal3">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -150,7 +150,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_4">
+    <widget class="LECustomTuple" name="lineEditVal4">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -186,7 +186,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_5">
+    <widget class="LECustomTuple" name="lineEditVal5">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -222,7 +222,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_6">
+    <widget class="LECustomTuple" name="lineEditVal6">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -258,7 +258,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_7">
+    <widget class="LECustomTuple" name="lineEditVal7">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -294,7 +294,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_8">
+    <widget class="LECustomTuple" name="lineEditVal8">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
@@ -330,7 +330,7 @@ border:0px;</string>
     </widget>
    </item>
    <item>
-    <widget class="LECustomTuple" name="lineEditVal_9">
+    <widget class="LECustomTuple" name="lineEditVal9">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
index 43289173739015395cc57b52d482a165c21a3f32..dc7c0593342b9bbbcc807edcffbda3befef108f4 100644 (file)
    <string notr="true"/>
   </property>
   <layout class="QGridLayout" name="gridLayout">
-   <property name="margin">
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
     <number>0</number>
    </property>
    <item row="0" column="0">
 </string>
       </property>
       <layout class="QVBoxLayout" name="verticalLayout_2">
-       <property name="margin">
+       <property name="leftMargin">
+        <number>0</number>
+       </property>
+       <property name="topMargin">
+        <number>0</number>
+       </property>
+       <property name="rightMargin">
+        <number>0</number>
+       </property>
+       <property name="bottomMargin">
         <number>0</number>
        </property>
       </layout>
      </widget>
      <widget class="QWidget" name="widgetCentrale" native="true">
       <layout class="QVBoxLayout" name="widgetCentraleLayout">
-       <property name="margin">
+       <property name="leftMargin">
+        <number>0</number>
+       </property>
+       <property name="topMargin">
+        <number>0</number>
+       </property>
+       <property name="rightMargin">
+        <number>0</number>
+       </property>
+       <property name="bottomMargin">
         <number>0</number>
        </property>
+       <item>
+        <spacer name="verticalSpacer">
+         <property name="orientation">
+          <enum>Qt::Vertical</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>20</width>
+           <height>40</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
       </layout>
      </widget>
     </widget>
index 69b9c248cbcbd2c7dd977affd83a2322f733538f..76f9de749bb60b016a8183b2d399e5fcfd7cb268 100644 (file)
    </rect>
   </property>
   <property name="windowTitle">
-   <string>Coix du Code</string>
+   <string>Choix du Code</string>
   </property>
   <layout class="QVBoxLayout" name="verticalLayout">
    <property name="spacing">
     <number>0</number>
    </property>
-   <property name="leftMargin">
-    <number>0</number>
-   </property>
-   <property name="topMargin">
-    <number>0</number>
-   </property>
-   <property name="rightMargin">
-    <number>0</number>
-   </property>
-   <property name="bottomMargin">
+   <property name="margin">
     <number>0</number>
    </property>
    <item>
       <string/>
      </property>
      <layout class="QVBoxLayout" name="vlBouton">
-      <property name="leftMargin">
-       <number>0</number>
-      </property>
-      <property name="topMargin">
-       <number>0</number>
-      </property>
-      <property name="rightMargin">
-       <number>0</number>
-      </property>
-      <property name="bottomMargin">
+      <property name="margin">
        <number>0</number>
       </property>
       <item>
index 3dbe619589eecb73f1a50e40c919afc31f17c967..58580df946fcb6be7611037615431ea327ee2bd6 100644 (file)
@@ -6,14 +6,23 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>400</width>
-    <height>300</height>
+    <width>420</width>
+    <height>363</height>
    </rect>
   </property>
   <property name="windowTitle">
    <string>Form</string>
   </property>
   <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="spacing">
+    <number>2</number>
+   </property>
+   <property name="topMargin">
+    <number>1</number>
+   </property>
+   <property name="bottomMargin">
+    <number>1</number>
+   </property>
    <item>
     <widget class="QFrame" name="frameLabelMC">
      <property name="sizePolicy">
        <rect>
         <x>0</x>
         <y>0</y>
-        <width>382</width>
-        <height>223</height>
+        <width>402</width>
+        <height>306</height>
        </rect>
       </property>
       <property name="sizePolicy">
        </sizepolicy>
       </property>
       <layout class="QVBoxLayout" name="MCOptionnelLayout">
+       <property name="spacing">
+        <number>2</number>
+       </property>
+       <property name="topMargin">
+        <number>2</number>
+       </property>
+       <property name="bottomMargin">
+        <number>2</number>
+       </property>
        <item>
         <spacer name="verticalSpacer">
          <property name="orientation">
index 5bdd3224b76bb81d45b7dbffca96da875b5cb2f6..66881fcae5aa555ada5cb9f104f54ff8e3de0270 100644 (file)
@@ -48,9 +48,7 @@
       </size>
      </property>
      <property name="styleSheet">
-      <string notr="true">/*background-color : rgb(168, 227, 142);rgb(57, 146, 228)*/
-background-color : rgb(66, 165, 238);
-/*border-style : outset;*/
+      <string notr="true">background-color : rgb(66, 165, 238);
 border-radius : 10px;
 border-width : 30 px;
 border-color : beige;
index 6f25807aceb62d450fc820d4d0f3efe9b347c89d..9c013397a413ad9217358788c646c04c8db92c8a 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <ui version="4.0">
  <class>DVisu</class>
- <widget class="QWidget" name="DVisu">
+ <widget class="QDialog" name="DVisu">
   <property name="geometry">
    <rect>
     <x>0</x>
index f9a8b15a01e8540acf33e57ac59a9c341ad5faa4..8a0f4d8bbe631282554666b8df0e7e00d24e5580 100644 (file)
@@ -25,7 +25,7 @@
   <property name="maximumSize">
    <size>
     <width>16777215</width>
-    <height>16777215</height>
+    <height>160</height>
    </size>
   </property>
   <property name="windowTitle">
index 439dd60f0c273a62c0fe147d5256bc4e6c0d0786..9094f6a9511ed6734f4848579672a8d7ef9a6714 100644 (file)
@@ -17,7 +17,7 @@
    <string notr="true"> QGroupBox {
      border: 1px solid gray;
      border-radius: 5px;
-     margin-top: 1ex; /* leave space at the top for the title */
+     margin-top: 1ex; 
  }
 
  QGroupBox::title {
index cb31ccb2fe799e6ed8dc29c8e180270134e96354..9d4bfd0365c41d57d53b97bd65473030d8a92b58 100644 (file)
@@ -29,8 +29,7 @@
    <string/>
   </property>
   <property name="styleSheet">
-   <string notr="true">background-color : rgb(224,223,222);
-font : 'times' 9px</string>
+   <string notr="true"/>
   </property>
   <layout class="QVBoxLayout" name="verticalLayout_5">
    <property name="spacing">
@@ -200,14 +199,12 @@ font : 'times' 9px</string>
      border-radius: 10px;
      padding: 0 8px;
      background: darkgray;
-   /*  selection-background-color: darkgray;*/
  }
 QLineEdit:disabled
 {
     background: lightgray;
 }
-/*read-only {
-     background: lightblue;*/</string>
+</string>
             </property>
             <property name="readOnly">
              <bool>false</bool>
index c7f86cb3ed5dac856697173a90e92361a39d2d95..d57b619e80ccc5c6084b30c21b009c05fcd935c7 100644 (file)
           <string>...</string>
          </property>
          <property name="icon">
-          <iconset theme="add"/>
+          <iconset>
+           <normaloff>../Editeur/icons/PlusBleu.png</normaloff>../Editeur/icons/PlusBleu.png</iconset>
          </property>
          <property name="iconSize">
           <size>
index 766ca93bef56f45a8989d82b4dca574756c359e4..c2c2d878e6d17bf9c2dcf1f943751f5529a0fc43 100644 (file)
@@ -17,7 +17,7 @@
    <string notr="true"> QGroupBox {
      border: 1px solid gray;
      border-radius: 5px;
-     margin-top: 1ex; /* leave space at the top for the title */
+     margin-top: 1ex;
  }
 
  QGroupBox::title {
index b4d801dc97329ed612754e5f7c296c190d8469b7..660efa2a9b4972176bee294c02b698270fcf2826 100644 (file)
        </item>
       </layout>
      </item>
+     <item>
+      <widget class="QLabel" name="lineEditUnite">
+       <property name="text">
+        <string>TextLabel</string>
+       </property>
+      </widget>
+     </item>
      <item>
       <spacer name="verticalSpacer_6">
        <property name="orientation">
index fdddf0fa9a0e811f649842935d7248a253462827..7c684a7e42fa153c5ecd5e88e9e1aa56b1866551 100644 (file)
@@ -11,7 +11,7 @@
    </rect>
   </property>
   <property name="sizePolicy">
-   <sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
+   <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
     <horstretch>0</horstretch>
     <verstretch>0</verstretch>
    </sizepolicy>
   <property name="minimumSize">
    <size>
     <width>0</width>
-    <height>200</height>
+    <height>100</height>
    </size>
   </property>
   <property name="windowTitle">
    <string>Form</string>
   </property>
   <layout class="QHBoxLayout" name="horizontalLayout_2">
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
    <item>
     <layout class="QVBoxLayout" name="verticalLayout_2">
      <property name="spacing">
           <x>0</x>
           <y>0</y>
           <width>300</width>
-          <height>125</height>
+          <height>143</height>
          </rect>
         </property>
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
         <layout class="QGridLayout" name="gridLayout_2">
          <property name="leftMargin">
           <number>0</number>
        <rect>
         <x>0</x>
         <y>0</y>
-        <width>465</width>
+        <width>474</width>
         <height>308</height>
        </rect>
       </property>
          <property name="sizeHint" stdset="0">
           <size>
            <width>20</width>
-           <height>40</height>
+           <height>400</height>
           </size>
          </property>
         </spacer>
index 1b4ccfbf7531c5969ef1e7d6649900a497a2316c..c2aefeabcf192de5d4855e0ccff0f101de093b35 100644 (file)
    <string>Form</string>
   </property>
   <layout class="QHBoxLayout" name="horizontalLayout_2">
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
    <item>
     <layout class="QVBoxLayout" name="verticalLayout_5">
+     <property name="spacing">
+      <number>0</number>
+     </property>
      <item>
       <layout class="QVBoxLayout" name="verticalLayout_2">
        <property name="spacing">
             <rect>
              <x>0</x>
              <y>0</y>
-             <width>270</width>
+             <width>279</width>
              <height>307</height>
             </rect>
            </property>
            <string>...</string>
           </property>
           <property name="icon">
-           <iconset theme="find"/>
+           <iconset theme="find">
+            <normaloff>.</normaloff>.</iconset>
           </property>
           <property name="iconSize">
            <size>
       </layout>
      </item>
      <item>
-      <widget class="QPushButton" name="PBValideFeuille">
+      <widget class="QLabel" name="lineEditUnite">
        <property name="text">
-        <string>Valide</string>
+        <string>TextLabel</string>
        </property>
       </widget>
      </item>
        </property>
       </spacer>
      </item>
+     <item>
+      <widget class="QPushButton" name="PBValideFeuille">
+       <property name="text">
+        <string>Valide</string>
+       </property>
+      </widget>
+     </item>
     </layout>
    </item>
   </layout>
index 60c7dce52c33d88302b4e8a1c90811aecd4c0c6d..1169925d666f2818179d05155de43e78fb2eab3c 100644 (file)
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>743</width>
-    <height>60</height>
+    <width>613</width>
+    <height>56</height>
    </rect>
   </property>
   <property name="sizePolicy">
        <item>
         <widget class="QLineEdit" name="lineEditVal">
          <property name="sizePolicy">
-          <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+          <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
            <horstretch>0</horstretch>
            <verstretch>0</verstretch>
           </sizepolicy>
@@ -199,7 +199,7 @@ border:0px;</string>
         </widget>
        </item>
        <item>
-        <spacer name="horizontalSpacer_4">
+        <spacer name="horizontalSpacer">
          <property name="orientation">
           <enum>Qt::Horizontal</enum>
          </property>
@@ -208,23 +208,68 @@ border:0px;</string>
          </property>
          <property name="sizeHint" stdset="0">
           <size>
-           <width>3</width>
+           <width>5</width>
            <height>20</height>
           </size>
          </property>
         </spacer>
        </item>
+       <item>
+        <widget class="QLabel" name="lineEditUnite">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="text">
+          <string>TextLabel</string>
+         </property>
+        </widget>
+       </item>
        <item>
         <spacer name="horizontalSpacer_2">
          <property name="orientation">
           <enum>Qt::Horizontal</enum>
          </property>
          <property name="sizeType">
-          <enum>QSizePolicy::Expanding</enum>
+          <enum>QSizePolicy::Minimum</enum>
          </property>
          <property name="sizeHint" stdset="0">
           <size>
-           <width>58</width>
+           <width>5</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item>
+        <widget class="QCheckBox" name="checkBoxUQ">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="toolTip">
+          <string>Active le parametre comme variable UQ</string>
+         </property>
+         <property name="text">
+          <string/>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <spacer name="horizontalSpacer_4">
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeType">
+          <enum>QSizePolicy::Fixed</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>3</width>
            <height>20</height>
           </size>
          </property>
index 4e9db7e612d7752fc5019aa0bf84bb13309ce2a7..5d21e1560f522c7262b3db0aee571d90c1c47f5e 100644 (file)
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>1242</width>
-    <height>87</height>
+    <width>940</width>
+    <height>97</height>
    </rect>
   </property>
   <property name="sizePolicy">
@@ -45,13 +45,13 @@ border:0px;
     <number>0</number>
    </property>
    <property name="topMargin">
-    <number>1</number>
+    <number>0</number>
    </property>
    <property name="rightMargin">
     <number>0</number>
    </property>
    <property name="bottomMargin">
-    <number>1</number>
+    <number>0</number>
    </property>
    <item>
     <layout class="QVBoxLayout" name="verticalLayout_2">
@@ -178,74 +178,6 @@ border:0px;
      </property>
      <layout class="QGridLayout" name="gridLayout">
       <item row="0" column="0">
-       <layout class="QHBoxLayout" name="horizontalLayout_4">
-        <item>
-         <widget class="QLabel" name="label_2">
-          <property name="sizePolicy">
-           <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-           </sizepolicy>
-          </property>
-          <property name="minimumSize">
-           <size>
-            <width>0</width>
-            <height>29</height>
-           </size>
-          </property>
-          <property name="maximumSize">
-           <size>
-            <width>16777215</width>
-            <height>29</height>
-           </size>
-          </property>
-          <property name="text">
-           <string>Complexe : a+bj</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <spacer name="horizontalSpacer_2">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>19</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-       </layout>
-      </item>
-      <item row="1" column="0">
-       <widget class="QLineEdit" name="LEComp">
-        <property name="frame">
-         <bool>false</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="1">
-       <widget class="QLabel" name="label_3">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="maximumSize">
-         <size>
-          <width>50</width>
-          <height>24</height>
-         </size>
-        </property>
-        <property name="text">
-         <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;OU &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="2">
        <layout class="QHBoxLayout" name="horizontalLayout_2">
         <property name="leftMargin">
          <number>4</number>
@@ -269,7 +201,7 @@ border:0px;
         </item>
        </layout>
       </item>
-      <item row="1" column="2">
+      <item row="1" column="0">
        <layout class="QHBoxLayout" name="horizontalLayout_3">
         <item>
          <widget class="QLineEdit" name="LEReel">
@@ -300,22 +232,59 @@ border:0px;
         </item>
        </layout>
       </item>
-      <item row="1" column="1">
-       <spacer name="verticalSpacer_3">
-        <property name="orientation">
-         <enum>Qt::Vertical</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>17</width>
-          <height>20</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
      </layout>
     </widget>
    </item>
+   <item>
+    <spacer name="horizontalSpacer_2">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="sizeType">
+      <enum>QSizePolicy::Fixed</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>10</width>
+       <height>20</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item>
+    <widget class="MonLabelClic" name="lineEditUnite">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="minimumSize">
+      <size>
+       <width>25</width>
+       <height>25</height>
+      </size>
+     </property>
+     <property name="maximumSize">
+      <size>
+       <width>178</width>
+       <height>16777215</height>
+      </size>
+     </property>
+     <property name="frameShape">
+      <enum>QFrame::NoFrame</enum>
+     </property>
+     <property name="text">
+      <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+     </property>
+     <property name="scaledContents">
+      <bool>false</bool>
+     </property>
+     <property name="alignment">
+      <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+     </property>
+    </widget>
+   </item>
    <item>
     <layout class="QVBoxLayout" name="verticalLayout_3">
      <item>
@@ -380,8 +349,6 @@ border:0px;
   </customwidget>
  </customwidgets>
  <tabstops>
-  <tabstop>LEComp</tabstop>
-  <tabstop>RBRI</tabstop>
   <tabstop>RBMP</tabstop>
   <tabstop>RBPoubelle</tabstop>
  </tabstops>
index ecb561420a2e5e333efed3bc9278ec496643287b..30e2f41c72f92212ab8ecd440fa8c16f3d5bb3b3 100644 (file)
            <string>...</string>
           </property>
           <property name="icon">
-           <iconset>
-            <normaloff>../Editeur/icons/PlusBleu.png</normaloff>../Editeur/icons/PlusBleu.png</iconset>
+           <iconset theme="add"/>
           </property>
           <property name="iconSize">
            <size>
            <string notr="true">border : 0px</string>
           </property>
           <property name="icon">
-           <iconset>
-            <normaloff>../Editeur/icons/MoinsBleu.png</normaloff>../Editeur/icons/MoinsBleu.png</iconset>
+           <iconset theme="remove"/>
           </property>
           <property name="iconSize">
            <size>
            <string>...</string>
           </property>
           <property name="icon">
-           <iconset>
-            <normaloff>../Editeur/icons/verre-loupe-icone-6087-64.png</normaloff>../Editeur/icons/verre-loupe-icone-6087-64.png</iconset>
+           <iconset theme="find"/>
           </property>
           <property name="iconSize">
            <size>
index e3c047107aa5035798ca0638c0ac2039e6705b71..ef748cf48cd6f68a09017ea545aeb8275687a7c6 100644 (file)
    </item>
    <item>
     <layout class="QVBoxLayout" name="verticalLayout">
+     <property name="topMargin">
+      <number>2</number>
+     </property>
+     <property name="bottomMargin">
+      <number>2</number>
+     </property>
      <item>
       <layout class="QHBoxLayout" name="horizontalLayout">
        <item>
@@ -276,7 +282,7 @@ border:0px;</string>
         </widget>
        </item>
        <item>
-        <widget class="LECustomTuple" name="lineEditVal_4">
+        <widget class="QLineEdit" name="lineEditVal4">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
            <horstretch>0</horstretch>
@@ -312,7 +318,7 @@ border:0px;</string>
         </widget>
        </item>
        <item>
-        <widget class="LECustomTuple" name="lineEditVal_5">
+        <widget class="QLineEdit" name="lineEditVal5">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
            <horstretch>0</horstretch>
@@ -348,7 +354,7 @@ border:0px;</string>
         </widget>
        </item>
        <item>
-        <widget class="LECustomTuple" name="lineEditVal_6">
+        <widget class="QLineEdit" name="lineEditVal6">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
            <horstretch>0</horstretch>
@@ -384,7 +390,7 @@ border:0px;</string>
         </widget>
        </item>
        <item>
-        <widget class="LECustomTuple" name="lineEditVal_8">
+        <widget class="QLineEdit" name="lineEditVal8">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
            <horstretch>0</horstretch>
@@ -420,7 +426,7 @@ border:0px;</string>
         </widget>
        </item>
        <item>
-        <widget class="LECustomTuple" name="lineEditVal_7">
+        <widget class="QLineEdit" name="lineEditVal7">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
            <horstretch>0</horstretch>
@@ -456,7 +462,7 @@ border:0px;</string>
         </widget>
        </item>
        <item>
-        <widget class="LECustomTuple" name="lineEditVal_9">
+        <widget class="QLineEdit" name="lineEditVal9">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
            <horstretch>0</horstretch>
@@ -498,6 +504,45 @@ border:0px;</string>
          </property>
         </widget>
        </item>
+       <item>
+        <spacer name="horizontalSpacer_2">
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeType">
+          <enum>QSizePolicy::Fixed</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>10</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item>
+        <widget class="QLabel" name="lineEditUnite">
+         <property name="text">
+          <string>TextLabel</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <spacer name="horizontalSpacer_4">
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeType">
+          <enum>QSizePolicy::Fixed</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>10</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
        <item>
         <spacer name="horizontalSpacer">
          <property name="orientation">
@@ -579,11 +624,6 @@ border:0px;</string>
    <extends>QLabel</extends>
    <header>monLabelClic.h</header>
   </customwidget>
-  <customwidget>
-   <class>LECustomTuple</class>
-   <extends>QLineEdit</extends>
-   <header>gereListe.h</header>
-  </customwidget>
  </customwidgets>
  <resources/>
  <connections/>
index 9c45154bb6192029e38e01425efafa66a6c9496a..d540c45782f5869744f7b5e5f0f433eaba79b6b5 100644 (file)
     <number>0</number>
    </property>
    <property name="topMargin">
-    <number>1</number>
+    <number>2</number>
    </property>
    <property name="rightMargin">
     <number>0</number>
    </property>
    <property name="bottomMargin">
-    <number>1</number>
+    <number>2</number>
    </property>
    <item>
     <layout class="QVBoxLayout" name="verticalLayout_2">
@@ -261,7 +261,27 @@ border:0px;</string>
          </property>
          <property name="sizeHint" stdset="0">
           <size>
-           <width>58</width>
+           <width>5</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item>
+        <widget class="QLabel" name="lineEditUnite">
+         <property name="text">
+          <string>TextLabel</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <spacer name="horizontalSpacer">
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>80</width>
            <height>20</height>
           </size>
          </property>
@@ -315,7 +335,7 @@ border:0px;</string>
        <property name="sizeHint" stdset="0">
         <size>
          <width>20</width>
-         <height>5</height>
+         <height>13</height>
         </size>
        </property>
       </spacer>
index a31e9b551f0e8416ec4aaf3a00d36c60bfbb09b3..3e0fc3c21e194ba4e5cc11060ab8fe588ecbe44a 100644 (file)
     <number>1</number>
    </property>
    <property name="topMargin">
-    <number>0</number>
+    <number>2</number>
    </property>
    <property name="rightMargin">
     <number>0</number>
    </property>
    <property name="bottomMargin">
-    <number>1</number>
+    <number>2</number>
    </property>
    <item>
     <layout class="QVBoxLayout" name="verticalLayout_2">
@@ -275,6 +275,29 @@ border:0px;</string>
          </property>
         </widget>
        </item>
+       <item>
+        <spacer name="horizontalSpacer_2">
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeType">
+          <enum>QSizePolicy::Fixed</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>10</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item>
+        <widget class="QLabel" name="lineEditUnite">
+         <property name="text">
+          <string>TextLabel</string>
+         </property>
+        </widget>
+       </item>
        <item>
         <spacer name="horizontalSpacer">
          <property name="orientation">
index c939a9fbcd2a2f575c26ae9ae76102860e3e8c13..ef4d83ccd145fe8f49b37108a361c5bb0896118c 100644 (file)
     <number>1</number>
    </property>
    <property name="topMargin">
-    <number>0</number>
+    <number>2</number>
    </property>
    <property name="rightMargin">
     <number>0</number>
    </property>
    <property name="bottomMargin">
-    <number>1</number>
+    <number>2</number>
    </property>
    <item>
     <layout class="QVBoxLayout" name="verticalLayout_2">
@@ -276,7 +276,7 @@ border:0px;</string>
         </widget>
        </item>
        <item>
-        <widget class="LECustomTuple" name="lineEditVal_4">
+        <widget class="QLineEdit" name="lineEditVal4">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
            <horstretch>0</horstretch>
@@ -311,6 +311,29 @@ border:0px;</string>
          </property>
         </widget>
        </item>
+       <item>
+        <spacer name="horizontalSpacer_2">
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeType">
+          <enum>QSizePolicy::Fixed</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>10</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item>
+        <widget class="QLabel" name="lineEditUnite">
+         <property name="text">
+          <string>TextLabel</string>
+         </property>
+        </widget>
+       </item>
        <item>
         <spacer name="horizontalSpacer">
          <property name="orientation">
@@ -392,11 +415,6 @@ border:0px;</string>
    <extends>QLabel</extends>
    <header>monLabelClic.h</header>
   </customwidget>
-  <customwidget>
-   <class>LECustomTuple</class>
-   <extends>QLineEdit</extends>
-   <header>gereListe.h</header>
-  </customwidget>
  </customwidgets>
  <resources/>
  <connections/>
index c592ac6d34a6f20920e5fe87f7cfe4530dde58e7..b687f748776b54d6d78ecc123164f1a7b911f794 100644 (file)
     <number>1</number>
    </property>
    <property name="topMargin">
-    <number>0</number>
+    <number>2</number>
    </property>
    <property name="rightMargin">
     <number>0</number>
    </property>
    <property name="bottomMargin">
-    <number>1</number>
+    <number>2</number>
    </property>
    <item>
     <layout class="QVBoxLayout" name="verticalLayout_2">
@@ -276,7 +276,7 @@ border:0px;</string>
         </widget>
        </item>
        <item>
-        <widget class="LECustomTuple" name="lineEditVal_4">
+        <widget class="QLineEdit" name="lineEditVal4">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
            <horstretch>0</horstretch>
@@ -312,7 +312,7 @@ border:0px;</string>
         </widget>
        </item>
        <item>
-        <widget class="LECustomTuple" name="lineEditVal_5">
+        <widget class="QLineEdit" name="lineEditVal5">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
            <horstretch>0</horstretch>
@@ -347,6 +347,29 @@ border:0px;</string>
          </property>
         </widget>
        </item>
+       <item>
+        <spacer name="horizontalSpacer_2">
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeType">
+          <enum>QSizePolicy::Fixed</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>10</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item>
+        <widget class="QLabel" name="lineEditUnite">
+         <property name="text">
+          <string>TextLabel</string>
+         </property>
+        </widget>
+       </item>
        <item>
         <spacer name="horizontalSpacer">
          <property name="orientation">
@@ -428,11 +451,6 @@ border:0px;</string>
    <extends>QLabel</extends>
    <header>monLabelClic.h</header>
   </customwidget>
-  <customwidget>
-   <class>LECustomTuple</class>
-   <extends>QLineEdit</extends>
-   <header>gereListe.h</header>
-  </customwidget>
  </customwidgets>
  <resources/>
  <connections/>
index 92aac0af60b1931494a6128965ec3efcb1afbb55..b90b6fb10f5f46f292002fa5838126a3c45f4c67 100644 (file)
     <number>1</number>
    </property>
    <property name="topMargin">
-    <number>0</number>
+    <number>2</number>
    </property>
    <property name="rightMargin">
     <number>0</number>
    </property>
    <property name="bottomMargin">
-    <number>1</number>
+    <number>2</number>
    </property>
    <item>
     <layout class="QVBoxLayout" name="verticalLayout_2">
@@ -276,7 +276,7 @@ border:0px;</string>
         </widget>
        </item>
        <item>
-        <widget class="LECustomTuple" name="lineEditVal_4">
+        <widget class="QLineEdit" name="lineEditVal4">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
            <horstretch>0</horstretch>
@@ -312,7 +312,7 @@ border:0px;</string>
         </widget>
        </item>
        <item>
-        <widget class="LECustomTuple" name="lineEditVal_5">
+        <widget class="QLineEdit" name="lineEditVal5">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
            <horstretch>0</horstretch>
@@ -348,7 +348,7 @@ border:0px;</string>
         </widget>
        </item>
        <item>
-        <widget class="LECustomTuple" name="lineEditVal_6">
+        <widget class="QLineEdit" name="lineEditVal6">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
            <horstretch>0</horstretch>
@@ -383,6 +383,29 @@ border:0px;</string>
          </property>
         </widget>
        </item>
+       <item>
+        <spacer name="horizontalSpacer_2">
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeType">
+          <enum>QSizePolicy::Fixed</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>10</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item>
+        <widget class="QLabel" name="lineEditUnite">
+         <property name="text">
+          <string>TextLabel</string>
+         </property>
+        </widget>
+       </item>
        <item>
         <spacer name="horizontalSpacer">
          <property name="orientation">
@@ -464,11 +487,6 @@ border:0px;</string>
    <extends>QLabel</extends>
    <header>monLabelClic.h</header>
   </customwidget>
-  <customwidget>
-   <class>LECustomTuple</class>
-   <extends>QLineEdit</extends>
-   <header>gereListe.h</header>
-  </customwidget>
  </customwidgets>
  <resources/>
  <connections/>
index 43b719de6f95c990e6d02cce70fa8ec52177e98e..cb871f51727d00c36e50f0f044aeda01593fa827 100644 (file)
     <number>1</number>
    </property>
    <property name="topMargin">
-    <number>0</number>
+    <number>2</number>
    </property>
    <property name="rightMargin">
     <number>0</number>
    </property>
    <property name="bottomMargin">
-    <number>1</number>
+    <number>2</number>
    </property>
    <item>
     <layout class="QVBoxLayout" name="verticalLayout_2">
@@ -276,7 +276,7 @@ border:0px;</string>
         </widget>
        </item>
        <item>
-        <widget class="LECustomTuple" name="lineEditVal_4">
+        <widget class="QLineEdit" name="lineEditVal4">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
            <horstretch>0</horstretch>
@@ -312,7 +312,7 @@ border:0px;</string>
         </widget>
        </item>
        <item>
-        <widget class="LECustomTuple" name="lineEditVal_5">
+        <widget class="QLineEdit" name="lineEditVal5">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
            <horstretch>0</horstretch>
@@ -348,7 +348,7 @@ border:0px;</string>
         </widget>
        </item>
        <item>
-        <widget class="LECustomTuple" name="lineEditVal_6">
+        <widget class="QLineEdit" name="lineEditVal6">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
            <horstretch>0</horstretch>
@@ -384,7 +384,7 @@ border:0px;</string>
         </widget>
        </item>
        <item>
-        <widget class="LECustomTuple" name="lineEditVal_7">
+        <widget class="QLineEdit" name="lineEditVal7">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
            <horstretch>0</horstretch>
@@ -432,6 +432,42 @@ border:0px;</string>
          </property>
         </spacer>
        </item>
+       <item>
+        <spacer name="horizontalSpacer_2">
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeType">
+          <enum>QSizePolicy::Fixed</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>10</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item>
+        <widget class="QLabel" name="lineEditUnite">
+         <property name="text">
+          <string>TextLabel</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <spacer name="horizontalSpacer_4">
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>40</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
        <item>
         <widget class="QToolButton" name="RBPoubelle">
          <property name="minimumSize">
@@ -500,11 +536,6 @@ border:0px;</string>
    <extends>QLabel</extends>
    <header>monLabelClic.h</header>
   </customwidget>
-  <customwidget>
-   <class>LECustomTuple</class>
-   <extends>QLineEdit</extends>
-   <header>gereListe.h</header>
-  </customwidget>
  </customwidgets>
  <resources/>
  <connections/>
index 6cbb52dd943a7ea1ae8cb6e9c629f87991bfc059..a7c44b12f23a3da025c4339d326bc84cfb3fa33f 100644 (file)
     <number>1</number>
    </property>
    <property name="topMargin">
-    <number>0</number>
+    <number>2</number>
    </property>
    <property name="rightMargin">
     <number>0</number>
    </property>
    <property name="bottomMargin">
-    <number>1</number>
+    <number>2</number>
    </property>
    <item>
     <layout class="QVBoxLayout" name="verticalLayout_2">
@@ -276,7 +276,7 @@ border:0px;</string>
         </widget>
        </item>
        <item>
-        <widget class="LECustomTuple" name="lineEditVal_4">
+        <widget class="QLineEdit" name="lineEditVal4">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
            <horstretch>0</horstretch>
@@ -312,7 +312,7 @@ border:0px;</string>
         </widget>
        </item>
        <item>
-        <widget class="LECustomTuple" name="lineEditVal_5">
+        <widget class="QLineEdit" name="lineEditVal5">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
            <horstretch>0</horstretch>
@@ -348,7 +348,7 @@ border:0px;</string>
         </widget>
        </item>
        <item>
-        <widget class="LECustomTuple" name="lineEditVal_6">
+        <widget class="QLineEdit" name="lineEditVal6">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
            <horstretch>0</horstretch>
@@ -384,7 +384,7 @@ border:0px;</string>
         </widget>
        </item>
        <item>
-        <widget class="LECustomTuple" name="lineEditVal_8">
+        <widget class="QLineEdit" name="lineEditVal8">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
            <horstretch>0</horstretch>
@@ -420,7 +420,7 @@ border:0px;</string>
         </widget>
        </item>
        <item>
-        <widget class="LECustomTuple" name="lineEditVal_7">
+        <widget class="QLineEdit" name="lineEditVal7">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
            <horstretch>0</horstretch>
@@ -455,6 +455,22 @@ border:0px;</string>
          </property>
         </widget>
        </item>
+       <item>
+        <spacer name="horizontalSpacer_2">
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeType">
+          <enum>QSizePolicy::Fixed</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>10</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
        <item>
         <spacer name="horizontalSpacer">
          <property name="orientation">
@@ -468,6 +484,29 @@ border:0px;</string>
          </property>
         </spacer>
        </item>
+       <item>
+        <widget class="QLabel" name="lineEditUnite">
+         <property name="text">
+          <string>TextLabel</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <spacer name="horizontalSpacer_4">
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeType">
+          <enum>QSizePolicy::Fixed</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>10</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
        <item>
         <widget class="QToolButton" name="RBPoubelle">
          <property name="minimumSize">
@@ -536,11 +575,6 @@ border:0px;</string>
    <extends>QLabel</extends>
    <header>monLabelClic.h</header>
   </customwidget>
-  <customwidget>
-   <class>LECustomTuple</class>
-   <extends>QLineEdit</extends>
-   <header>gereListe.h</header>
-  </customwidget>
  </customwidgets>
  <resources/>
  <connections/>
index 7dde54399b823ffa10a3ada415ec5fbb4427fa09..87644824dc1e34b69760aab8e52264b8320a1907 100644 (file)
     <number>0</number>
    </property>
    <property name="leftMargin">
-    <number>1</number>
+    <number>0</number>
    </property>
    <property name="topMargin">
-    <number>0</number>
+    <number>2</number>
    </property>
    <property name="rightMargin">
     <number>0</number>
    </property>
    <property name="bottomMargin">
-    <number>1</number>
+    <number>2</number>
    </property>
    <item>
     <layout class="QVBoxLayout" name="verticalLayout_2">
@@ -276,7 +276,7 @@ border:0px;</string>
         </widget>
        </item>
        <item>
-        <widget class="LECustomTuple" name="lineEditVal_4">
+        <widget class="QLineEdit" name="lineEditVal4">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
            <horstretch>0</horstretch>
@@ -312,7 +312,7 @@ border:0px;</string>
         </widget>
        </item>
        <item>
-        <widget class="LECustomTuple" name="lineEditVal_5">
+        <widget class="QLineEdit" name="lineEditVal5">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
            <horstretch>0</horstretch>
@@ -348,7 +348,7 @@ border:0px;</string>
         </widget>
        </item>
        <item>
-        <widget class="LECustomTuple" name="lineEditVal_6">
+        <widget class="QLineEdit" name="lineEditVal6">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
            <horstretch>0</horstretch>
@@ -384,7 +384,7 @@ border:0px;</string>
         </widget>
        </item>
        <item>
-        <widget class="LECustomTuple" name="lineEditVal_8">
+        <widget class="QLineEdit" name="lineEditVal8">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
            <horstretch>0</horstretch>
@@ -420,7 +420,7 @@ border:0px;</string>
         </widget>
        </item>
        <item>
-        <widget class="LECustomTuple" name="lineEditVal_7">
+        <widget class="QLineEdit" name="lineEditVal7">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
            <horstretch>0</horstretch>
@@ -456,7 +456,7 @@ border:0px;</string>
         </widget>
        </item>
        <item>
-        <widget class="LECustomTuple" name="lineEditVal_9">
+        <widget class="QLineEdit" name="lineEditVal9">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
            <horstretch>0</horstretch>
@@ -491,6 +491,45 @@ border:0px;</string>
          </property>
         </widget>
        </item>
+       <item>
+        <spacer name="horizontalSpacer_2">
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeType">
+          <enum>QSizePolicy::Fixed</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>10</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item>
+        <widget class="QLabel" name="lineEditUnite">
+         <property name="text">
+          <string>TextLabel</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <spacer name="horizontalSpacer_4">
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeType">
+          <enum>QSizePolicy::Fixed</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>10</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
        <item>
         <spacer name="horizontalSpacer">
          <property name="orientation">
@@ -572,11 +611,6 @@ border:0px;</string>
    <extends>QLabel</extends>
    <header>monLabelClic.h</header>
   </customwidget>
-  <customwidget>
-   <class>LECustomTuple</class>
-   <extends>QLineEdit</extends>
-   <header>gereListe.h</header>
-  </customwidget>
  </customwidgets>
  <resources/>
  <connections/>
diff --git a/UiQT5/eficas_en.qm b/UiQT5/eficas_en.qm
new file mode 100644 (file)
index 0000000..3bc02db
Binary files /dev/null and b/UiQT5/eficas_en.qm differ
index 28a3e1fe67f5b425bf442f475bc66d6f782415e0..1ab63f61e8c6d7bbe5b4919e9245ad3e344d7ff8 100644 (file)
@@ -5,12 +5,12 @@
     <message>
         <location filename="convert/convert_ini.py" line="81"/>
         <source>lecture du fichier impossible :</source>
-        <translation type="obsolete">unable to read file :</translation>
+        <translation>unable to read file :</translation>
     </message>
     <message>
         <location filename="convert/convert_python.py" line="105"/>
         <source>Impossible d&apos;ouvrir le fichier %s</source>
-        <translation type="obsolete">unable to open file %s</translation>
+        <translation>unable to open file %s</translation>
     </message>
     <message>
         <location filename="convert/convert_python.py" line="116"/>
                                   On retourne le fichier non converti. Prevenir la maintenance.
 
  %s</source>
-        <translation type="obsolete">Unable to translate the file. it probably contains mistake
+        <translation>Unable to translate the file. it probably contains mistake
 ask eficas team
 %s</translation>
     </message>
     <message>
         <location filename="convert/convert_pyth.py" line="115"/>
         <source>Format de sortie : %s, non supporte</source>
-        <translation type="obsolete">Unsupported format  %s</translation>
+        <translation>Unsupported format  %s</translation>
     </message>
     <message>
         <location filename="Editeur/analyse_catalogue_initial.py" line="44"/>
         <source>Impossible d&apos;ouvrir le fichier : %s</source>
-        <translation type="obsolete">unable to open file: %s</translation>
+        <translation>unable to open file: %s</translation>
     </message>
     <message>
         <location filename="Editeur/analyse_catalogue.py" line="65"/>
         <source>Erreur ! Erreur !</source>
-        <translation type="obsolete">Error!</translation>
+        <translation>Error!</translation>
     </message>
     <message>
         <location filename="Editeur/analyse_catalogue.py" line="92"/>
         <source>Erreur rencontree dans recherche_enfants : %s</source>
-        <translation type="obsolete">Error in recherche_enfants : %s</translation>
+        <translation>Error in recherche_enfants : %s</translation>
     </message>
     <message>
         <location filename="Editeur/analyse_catalogue.py" line="102"/>
         <source>Erreur dans la creation du mot-cle : %s</source>
-        <translation type="obsolete">Error when creating %s</translation>
+        <translation>Error when creating %s</translation>
     </message>
     <message>
         <location filename="Editeur/analyse_catalogue.py" line="191"/>
         <source>Impossible d&apos;ouvrir le fichier : %s </source>
-        <translation type="obsolete">unable to open file : %s</translation>
+        <translation>unable to open file : %s</translation>
     </message>
     <message>
         <location filename="Editeur/analyse_catalogue.py" line="208"/>
         <source>le texte a analyser n&apos;est pas celui d&apos;une commande ou d&apos;un operateur : </source>
-        <translation type="obsolete">text is no eficas text:</translation>
+        <translation>text is no eficas text:</translation>
     </message>
     <message>
         <location filename="Editeur/analyse_catalogue.py" line="216"/>
         <source>Erreur dans la recherche  du nom de la commande : </source>
-        <translation type="obsolete">error when searching command&apos;s name :</translation>
+        <translation>error when searching command&apos;s name :</translation>
     </message>
     <message>
         <location filename="Editeur/analyse_catalogue.py" line="219"/>
         <source>Erreur dans la recherche des  args de la commande :</source>
-        <translation type="obsolete">error when searching argument&apos;s command :</translation>
+        <translation>error when searching argument&apos;s command :</translation>
     </message>
     <message>
         <location filename="Editeur/analyse_catalogue.py" line="238"/>
         <source>Erreur dans la recherche du  nom de la commande : </source>
-        <translation type="obsolete">error when searching command&apos;s name :</translation>
+        <translation>error when searching command&apos;s name :</translation>
     </message>
     <message>
         <location filename="Editeur/analyse_catalogue.py" line="241"/>
         <source>Erreur dans la recherche des args de la commande : </source>
-        <translation type="obsolete">error when searching argument&apos;s command :</translation>
+        <translation>error when searching argument&apos;s command :</translation>
     </message>
     <message>
         <location filename="Editeur/Objecttreeitem.py" line="304"/>
         <source>%d n&apos;est pas un index valide pour append_brother</source>
-        <translation type="obsolete">%d is not a valid  index for append-brother</translation>
+        <translation>%d is not a valid  index for append-brother</translation>
     </message>
     <message>
         <location filename="Editeur/session.py" line="96"/>
         <source>le fichier de commandes %s n&apos;existe pas</source>
-        <translation type="obsolete">commands file %s does not exist</translation>
+        <translation>commands file %s does not exist</translation>
     </message>
     <message>
         <location filename="Editeur/session.py" line="104"/>
         <source>un fichier de commandes doit etre defini avant une poursuite %s</source>
-        <translation type="obsolete">You have to define principal commands file before a secondary (poursuite) file %s</translation>
+        <translation>You have to define principal commands file before a secondary (poursuite) file %s</translation>
     </message>
     <message>
         <location filename="Editeur/session.py" line="106"/>
         <source>le fichier poursuite %s n&apos;existe pas</source>
-        <translation type="obsolete">the secondary (poursuite) file does not exist</translation>
+        <translation>the secondary (poursuite) file does not exist</translation>
     </message>
     <message>
         <location filename="Editeur/session.py" line="117"/>
         <source>include mal defini %s</source>
-        <translation type="obsolete">include is not correct %s</translation>
+        <translation>include is not correct %s</translation>
     </message>
     <message>
         <location filename="Editeur/session.py" line="123"/>
         <source>un fichier de commandes doit etre defini avant un include %s</source>
-        <translation type="obsolete">You have to define principal commands file before include %s</translation>
+        <translation>You have to define principal commands file before include %s</translation>
     </message>
     <message>
         <location filename="Editeur/session.py" line="125"/>
         <source>le fichier include %s n&apos;existe pas</source>
-        <translation type="obsolete">include file does not exist</translation>
+        <translation>include file does not exist</translation>
     </message>
     <message>
         <location filename="Editeur/session.py" line="154"/>
         <source>jdc %(v_1)s, le fichier
                                       de commandes %(v_2)s n&apos;existe pas</source>
         <comment>v_1</comment>
-        <translation type="obsolete">jdc %(v_1)s : .comm  %(v_2)s does not exist</translation>
+        <translation>jdc %(v_1)s : .comm  %(v_2)s does not exist</translation>
     </message>
     <message>
         <location filename="Editeur/session.py" line="188"/>
         <source> le fichier jdc %s n&apos;existe pas</source>
-        <translation type="obsolete">file %s does not exist</translation>
+        <translation>file %s does not exist</translation>
     </message>
     <message>
         <location filename="Editeur/session.py" line="198"/>
         <source> jdc %s manque option jdc dans section jdc</source>
-        <translation type="obsolete">jdc %s does not have jdc option in command line</translation>
+        <translation>jdc %s does not have jdc option in command line</translation>
     </message>
     <message>
         <location filename="Editeur/session.py" line="218"/>
         <source>%(v_1)s include %(v_2)s : %(v_3)s</source>
         <comment>v_1</comment>
-        <translation type="obsolete">%(v_1)s include %(v_2)s : %(v_3)s</translation>
+        <translation>%(v_1)s include %(v_2)s : %(v_3)s</translation>
     </message>
     <message>
         <location filename="Editeur/session.py" line="222"/>
         <source>%(v_1)s fichier poursuite: %(v_2)s</source>
         <comment>v_1</comment>
-        <translation type="obsolete">%(v_1)ssecondary (poursuite) file  %(v_2)s </translation>
+        <translation>%(v_1)ssecondary (poursuite) file  %(v_2)s </translation>
     </message>
     <message>
         <location filename="Editeur/session.py" line="229"/>
         <source>nom etude : %s</source>
-        <translation type="obsolete">study&apos;s name : %s</translation>
+        <translation>study&apos;s name : %s</translation>
     </message>
     <message>
         <location filename="Editeur/session.py" line="236"/>
         <source>utilisation : %prog [options]</source>
-        <translation type="obsolete">use : %prog[options]</translation>
+        <translation>use : %prog[options]</translation>
     </message>
     <message>
         <location filename="Editeur/session.py" line="238"/>
         <source>nom du fichier de commandes</source>
-        <translation type="obsolete">principal .comm file&apos;s name</translation>
+        <translation>principal .comm file&apos;s name</translation>
     </message>
     <message>
         <location filename="Editeur/session.py" line="242"/>
         <source>nom du fichier poursuite</source>
-        <translation type="obsolete">secondary (poursuite) file&apos;s name</translation>
+        <translation>secondary (poursuite) file&apos;s name</translation>
     </message>
     <message>
         <location filename="Editeur/session.py" line="246"/>
         <source>numero d&apos;unite suivi du nom du fichier include</source>
-        <translation type="obsolete">unit number and include file&apos;s name</translation>
+        <translation>unit number and include file&apos;s name</translation>
     </message>
     <message>
         <location filename="Editeur/session.py" line="250"/>
         <source>fichier decrivant une etude</source>
-        <translation type="obsolete">file containing a study</translation>
+        <translation>file containing a study</translation>
     </message>
     <message>
         <location filename="Editeur/session.py" line="254"/>
         <source>version de catalogue a utiliser</source>
-        <translation type="obsolete"> catalog&apos;s version</translation>
+        <translation> catalog&apos;s version</translation>
     </message>
     <message>
         <location filename="Editeur/session.py" line="257"/>
         <source>nom du code a utiliser</source>
-        <translation type="obsolete">code&apos;s name</translation>
+        <translation>code&apos;s name</translation>
     </message>
     <message>
         <location filename="Editeur/session.py" line="260"/>
         <source>niveau de debug</source>
-        <translation type="obsolete">debug level</translation>
+        <translation>debug level</translation>
     </message>
     <message>
         <location filename="Editeur/session.py" line="263"/>
         <source>schema</source>
-        <translation type="obsolete">schema</translation>
+        <translation>schema</translation>
     </message>
     <message>
         <location filename="Editeur/session.py" line="298"/>
         <source>Nombre incorrect d&apos;arguments</source>
-        <translation type="obsolete">incorrect number of arguments</translation>
+        <translation>incorrect number of arguments</translation>
     </message>
     <message>
         <location filename="Editeur/session.py" line="296"/>
         <source>Localisation specifiee pour l&apos;application.</source>
-        <translation type="obsolete">specified localization for the application.</translation>
+        <translation>specified localization for the application.</translation>
     </message>
     <message>
         <location filename="Editeur/utils.py" line="130"/>
         <source>Impossible de transferer les fichiers requis dans : %s</source>
-        <translation type="obsolete">unable to transfer files to : %s</translation>
+        <translation>unable to transfer files to : %s</translation>
     </message>
     <message>
         <location filename="Ihm/I_MCLIST.py" line="97"/>
         <source>Erreur</source>
-        <translation type="obsolete">error</translation>
+        <translation>error</translation>
     </message>
     <message>
         <location filename="Extensions/commande_comm.py" line="199"/>
         <source>Erreurs fatales</source>
-        <translation type="obsolete">fatale error</translation>
+        <translation>fatale error</translation>
     </message>
     <message>
         <location filename="Extensions/commande_comm.py" line="202"/>
         <source>Impossible reconstruire commande
 </source>
-        <translation type="obsolete">unable to construct command</translation>
+        <translation>unable to construct command</translation>
     </message>
     <message>
         <location filename="Extensions/commentaire.py" line="146"/>
         <source>Objet commentaire non valorise</source>
-        <translation type="obsolete">comment object has no value</translation>
+        <translation>comment object has no value</translation>
     </message>
     <message>
         <location filename="Extensions/interpreteur_formule.py" line="110"/>
         <source>Debut Fonction %s</source>
-        <translation type="obsolete">start function %s</translation>
+        <translation>start function %s</translation>
     </message>
     <message>
         <location filename="Extensions/interpreteur_formule.py" line="111"/>
         <source>Fin Fonction %s</source>
-        <translation type="obsolete">end function %s</translation>
+        <translation>end function %s</translation>
     </message>
     <message>
         <location filename="Extensions/jdc_include.py" line="94"/>
         <source>Nom de concept deja defini : %s</source>
-        <translation type="obsolete">Concept&apos;s name %s is already existing</translation>
+        <translation>Concept&apos;s name %s is already existing</translation>
     </message>
     <message>
         <location filename="Extensions/mcnuplet.py" line="104"/>
         <source>Longueur incorrecte</source>
-        <translation type="obsolete">incorrect length</translation>
+        <translation>incorrect length</translation>
     </message>
     <message>
         <location filename="Extensions/nuplet.py" line="65"/>
         <source>L&apos;attribut &apos;min&apos; doit etre un entier : </source>
-        <translation type="obsolete">min must be an integer :</translation>
+        <translation>min must be an integer :</translation>
     </message>
     <message>
         <location filename="Extensions/nuplet.py" line="68"/>
         <source>L&apos;attribut &apos;max&apos; doit etre un entier : </source>
-        <translation type="obsolete">max must be an integer :</translation>
+        <translation>max must be an integer :</translation>
     </message>
     <message>
         <location filename="Extensions/nuplet.py" line="70"/>
         <source>Nombres d&apos;occurrence min et max invalides :</source>
-        <translation type="obsolete">min and max are invalid:</translation>
+        <translation>min and max are invalid:</translation>
     </message>
     <message>
         <location filename="Extensions/nuplet.py" line="72"/>
         <source>L&apos;attribut &apos;fr&apos; doit etre une chaine de caracteres</source>
-        <translation type="obsolete">&apos;fr&apos; must be a string</translation>
+        <translation>&apos;fr&apos; must be a string</translation>
     </message>
     <message>
         <location filename="Extensions/nuplet.py" line="74"/>
         <source>L&apos;attribut &apos;statut&apos; doit valoir &apos;o&apos;,&apos;f&apos;,&apos;c&apos; ou &apos;d&apos;</source>
-        <translation type="obsolete">values for statut arguments are : &apos;o&apos;,&apos;f&apos;,&apos;c&apos; or &apos;d&apos;</translation>
+        <translation>values for statut arguments are : &apos;o&apos;,&apos;f&apos;,&apos;c&apos; or &apos;d&apos;</translation>
     </message>
     <message>
         <location filename="Extensions/nuplet.py" line="76"/>
         <source>L&apos;attribut &apos;docu&apos; doit etre une chaine de caracteres</source>
-        <translation type="obsolete">docu must be a string</translation>
+        <translation>docu must be a string</translation>
     </message>
     <message>
         <location filename="Extensions/nuplet.py" line="105"/>
         <source>Fin </source>
-        <translation type="obsolete">end</translation>
+        <translation>end</translation>
     </message>
     <message>
         <location filename="Extensions/parametre_eval.py" line="149"/>
         <source>Le parametre EVAL %s ne peut valoir None</source>
-        <translation type="obsolete">None is not a valid value for Eval parameter %s </translation>
+        <translation>None is not a valid value for Eval parameter %s </translation>
     </message>
     <message>
         <location filename="Extensions/parametre_eval.py" line="163"/>
         <source>Pas de nom donne au parametre EVAL</source>
-        <translation type="obsolete">No name for parameter EVAL</translation>
+        <translation>No name for parameter EVAL</translation>
     </message>
     <message>
         <location filename="Extensions/parametre_eval.py" line="166"/>
         <source>Un nom de parametre ne peut depasser 8 caracteres</source>
-        <translation type="obsolete">parameter&apos;s name can not exceed 8 characters</translation>
+        <translation>parameter&apos;s name can not exceed 8 characters</translation>
     </message>
     <message>
         <location filename="Ihm/I_FORM_ETAPE.py" line="159"/>
         <source>Un concept de nom %s existe deja !</source>
-        <translation type="obsolete">Concept&apos;s name %s is already existing!</translation>
+        <translation>Concept&apos;s name %s is already existing!</translation>
     </message>
     <message>
         <location filename="generator/Formatage.py" line="129"/>
         <source>ERREUR</source>
-        <translation type="obsolete">ERROR</translation>
+        <translation>ERROR</translation>
     </message>
     <message>
         <location filename="generator/generator_asterv5.py" line="101"/>
         <source>Format pas implemente : %s</source>
-        <translation type="obsolete">format : %s not implemented</translation>
+        <translation>format : %s not implemented</translation>
     </message>
     <message>
         <location filename="generator/generator_asterv5.py" line="145"/>
         <source>Type d&apos;objet non prevu : %s</source>
-        <translation type="obsolete">object type not expected : %s</translation>
+        <translation>object type not expected : %s</translation>
     </message>
     <message>
         <location filename="generator/generator_CARMEL3D.py" line="256"/>
         <source> ce groupe de maillage %s est associe a au moins un materiau  et au moins une source.</source>
-        <translation type="obsolete">mesh group %s is associated with at least one material and at least a source.</translation>
+        <translation>mesh group %s is associated with at least one material and at least a source.</translation>
     </message>
     <message>
         <location filename="generator/generator_CARMEL3D.py" line="267"/>
         <source>ce groupe de maillage %s  n&apos;est associe a aucun materiau ou source.</source>
-        <translation type="obsolete">mesh group %s is associated with no material or no source.</translation>
+        <translation>mesh group %s is associated with no material or no source.</translation>
     </message>
     <message>
         <location filename="generator/generator_Creation.py" line="83"/>
         <source>toutes les donnees ne sont pas connues</source>
-        <translation type="obsolete">all data are not available</translation>
+        <translation>all data are not available</translation>
     </message>
     <message>
         <location filename="generator/generator_file_from_template.py" line="59"/>
         <source>Fichier patron %s n&apos;existe pas.</source>
-        <translation type="obsolete">pattern file %s does not exist.</translation>
+        <translation>pattern file %s does not exist.</translation>
     </message>
     <message>
         <location filename="generator/generator_pyth.py" line="100"/>
         <source>Pas supporte</source>
-        <translation type="obsolete">not implemented</translation>
+        <translation>not implemented</translation>
     </message>
     <message>
         <location filename="generator/generator_ini.py" line="105"/>
         <source>Entite inconnue ou interdite :%s</source>
-        <translation type="obsolete">Unknown or unsupported entity : %s</translation>
+        <translation>Unknown or unsupported entity : %s</translation>
     </message>
     <message>
         <location filename="generator/generator_ini.py" line="123"/>
         <source>Entite inconnue ou interdite :%s. Elle est ignoree</source>
-        <translation type="obsolete">Unknown or unsupported entity : %s. ignored</translation>
+        <translation>Unknown or unsupported entity : %s. ignored</translation>
     </message>
     <message>
         <location filename="generator/generator_ini.py" line="133"/>
         <source>Les tuples ne sont pas supportes pour le format ini :%s </source>
-        <translation type="obsolete">Tuple are not allowed for format ini : %s</translation>
+        <translation>Tuple are not allowed for format ini : %s</translation>
     </message>
     <message>
         <location filename="generator/generator_ini.py" line="139"/>
         <source>Type de valeur non supportee par le format ini :%(nom)s
 %(exception)s</source>
         <comment>nom</comment>
-        <translation type="obsolete">Unsupported type of value for .ini format %(nom)s
+        <translation>Unsupported type of value for .ini format %(nom)s
 %(exception)s</translation>
     </message>
     <message>
         <location filename="generator/generator_openturns.py" line="124"/>
         <source>Il y a un pb a la Creation du XML</source>
-        <translation type="obsolete">problem when creating XML</translation>
+        <translation>problem when creating XML</translation>
     </message>
     <message>
         <location filename="generator/generator_openturns_study.py" line="127"/>
         <source>Il y a un pb a la Creation du STD</source>
-        <translation type="obsolete">problem when creating STD</translation>
+        <translation>problem when creating STD</translation>
     </message>
     <message>
         <location filename="generator/generator_pyth.py" line="130"/>
         <source>Entite inconnue ou interdite : %s. Elle est ignoree</source>
-        <translation type="obsolete">unkown ou unsupported entity : %s. ignored</translation>
+        <translation>unkown ou unsupported entity : %s. ignored</translation>
     </message>
     <message>
         <location filename="generator/OpenturnsXML.py" line="228"/>
         <source>Tag %s non-defini. Ceci est un bogue interne. en informer les developpeurs.</source>
-        <translation type="obsolete">Tag %s not defined. Ask developpeurs team.</translation>
+        <translation>Tag %s not defined. Ask developpeurs team.</translation>
     </message>
     <message>
         <location filename="generator/OpenturnsXML.py" line="240"/>
         <source> Le mot-cle %s est obligatoire.</source>
-        <translation type="obsolete">mandatory keyword : %s.</translation>
+        <translation>mandatory keyword : %s.</translation>
     </message>
     <message>
         <location filename="Ihm/I_ASSD.py" line="29"/>
         <source>concept %(inst_name)s de type %(class_name)s</source>
         <comment>inst_name</comment>
-        <translation type="obsolete">concept %(inst_name)s of type  %(class_name)s</translation>
+        <translation>concept %(inst_name)s of type  %(class_name)s</translation>
     </message>
     <message>
         <location filename="Ihm/I_ETAPE.py" line="108"/>
         <source>Un nom de concept doit etre un identificateur Python</source>
-        <translation type="obsolete">concept&apos;s name must be a python identifier</translation>
+        <translation>concept&apos;s name must be a python identifier</translation>
     </message>
     <message>
         <location filename="Ihm/I_ETAPE.py" line="126"/>
         <source>Concept existant</source>
-        <translation type="obsolete">allready existing concept</translation>
+        <translation>allready existing concept</translation>
     </message>
     <message>
         <location filename="Ihm/I_ETAPE.py" line="128"/>
         <source>Operateur reentrant mais concept non existant</source>
-        <translation type="obsolete">operator &apos;reentrant&apos; but concept does not exist</translation>
+        <translation>operator &apos;reentrant&apos; but concept does not exist</translation>
     </message>
     <message>
         <location filename="Ihm/I_ETAPE.py" line="140"/>
         <source>Operateur reentrant et concept existant trouve</source>
-        <translation type="obsolete">Operator &apos;re-entrant&apos; and concept exists</translation>
+        <translation>Operator &apos;re-entrant&apos; and concept exists</translation>
     </message>
     <message>
         <location filename="Ihm/I_ETAPE.py" line="142"/>
         <source>Concept deja existant et de mauvais type</source>
-        <translation type="obsolete">already existing concept of not supported type</translation>
+        <translation>already existing concept of not supported type</translation>
     </message>
     <message>
         <location filename="Ihm/I_ETAPE.py" line="198"/>
         <source>Nommage du concept refuse : un concept de meme nom existe deja</source>
-        <translation type="obsolete">Name is refused : already existing concept</translation>
+        <translation>Name is refused : already existing concept</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/compooper.py" line="52"/>
         <source>Nommage du concept effectue</source>
-        <translation type="obsolete">Concept named</translation>
+        <translation>Concept named</translation>
     </message>
     <message>
         <location filename="Ihm/I_ETAPE.py" line="176"/>
         <source>Nommage impossible %s</source>
-        <translation type="obsolete">unable to name %s</translation>
+        <translation>unable to name %s</translation>
     </message>
     <message>
         <location filename="Ihm/I_FORM_ETAPE.py" line="105"/>
         <source>La liste des arguments d&apos;une formule doit etre entre parentheses : parenthese ouvrante manquante</source>
-        <translation type="obsolete">formula expects a list of arguments : no left parenthesis</translation>
+        <translation>formula expects a list of arguments : no left parenthesis</translation>
     </message>
     <message>
         <location filename="Ihm/I_FORM_ETAPE.py" line="107"/>
         <source>La liste des arguments d&apos;une formule doit etre entre parentheses : parenthese fermante manquante</source>
-        <translation type="obsolete">formula expects a list of arguments : no right parenthes</translation>
+        <translation>formula expects a list of arguments : no right parenthes</translation>
     </message>
     <message>
         <location filename="Ihm/I_FORM_ETAPE.py" line="152"/>
         <source>Pas de nom donne a la FORMULE</source>
-        <translation type="obsolete">no name given</translation>
+        <translation>no name given</translation>
     </message>
     <message>
         <location filename="Ihm/I_FORM_ETAPE.py" line="154"/>
         <source>Un nom de FORMULE ne peut depasser 8 caracteres</source>
-        <translation type="obsolete">name too  long (8 characters max)</translation>
+        <translation>name too  long (8 characters max)</translation>
     </message>
     <message>
         <location filename="Ihm/I_FORM_ETAPE.py" line="156"/>
         <source>Un nom de FORMULE ne peut pas commencer par un chiffre</source>
-        <translation type="obsolete">name does not begin with a figure</translation>
+        <translation>name does not begin with a figure</translation>
     </message>
     <message>
         <location filename="Ihm/I_FORM_ETAPE.py" line="173"/>
         <source>Le type de la valeur retournee n&apos;est pas specifie</source>
-        <translation type="obsolete">no type is specified for the return value</translation>
+        <translation>no type is specified for the return value</translation>
     </message>
     <message>
         <location filename="Ihm/I_FORM_ETAPE.py" line="175"/>
         <source>Une formule ne peut retourner une valeur de type : %s</source>
-        <translation type="obsolete">impossible to return a value of type : %s</translation>
+        <translation>impossible to return a value of type : %s</translation>
     </message>
     <message>
         <location filename="Ihm/I_JDC.py" line="308"/>
         <source>Impossible d&apos;ajouter la commande</source>
-        <translation type="obsolete">unable to add the keyword (commande)</translation>
+        <translation>unable to add the keyword (commande)</translation>
     </message>
     <message>
         <location filename="Ihm/I_JDC.py" line="314"/>
         <source>Impossible d ajouter la commande</source>
-        <translation type="obsolete">unable to add the keyword (commande)</translation>
+        <translation>unable to add the keyword (commande)</translation>
     </message>
     <message>
         <location filename="Ihm/I_JDC.py" line="629"/>
         <source>Pas implemente</source>
-        <translation type="obsolete">not implemented</translation>
+        <translation>not implemented</translation>
     </message>
     <message>
         <location filename="Ihm/I_JDC.py" line="724"/>
         <source>Nom de concept deja defini </source>
-        <translation type="obsolete">already defined concept</translation>
+        <translation>already defined concept</translation>
     </message>
     <message>
         <location filename="Ihm/I_JDC.py" line="899"/>
         <source> Nom de concept deja  defini : </source>
-        <translation type="obsolete">already defined concept :</translation>
+        <translation>already defined concept :</translation>
     </message>
     <message>
         <location filename="Ihm/I_JDC.py" line="942"/>
         <source>Impossible de trouver le fichier correspondant a l&apos;unite </source>
-        <translation type="obsolete">unable to find file corresponding to unit</translation>
+        <translation>unable to find file corresponding to unit</translation>
     </message>
     <message>
         <location filename="Ihm/I_MACRO_ETAPE.py" line="725"/>
         <source> n&apos;est pas un fichier existant</source>
-        <translation type="obsolete">is not an existing file</translation>
+        <translation>is not an existing file</translation>
     </message>
     <message>
         <location filename="Ihm/I_MACRO_ETAPE.py" line="1107"/>
         <source>Fichier invalide %s</source>
-        <translation type="obsolete">invalid file %s</translation>
+        <translation>invalid file %s</translation>
     </message>
     <message>
         <location filename="Ihm/I_MACRO_ETAPE.py" line="559"/>
         <source>Impossible de construire le jeu de commandes correspondant au fichier</source>
-        <translation type="obsolete">unable to create the jdc corresponding to the file</translation>
+        <translation>unable to create the jdc corresponding to the file</translation>
     </message>
     <message>
         <location filename="Ihm/I_MACRO_ETAPE.py" line="1057"/>
         <source>Erreur lors de l&apos;evaluation du fichier inclus</source>
-        <translation type="obsolete">Error when reading the &apos;include&apos; file</translation>
+        <translation>Error when reading the &apos;include&apos; file</translation>
     </message>
     <message>
         <location filename="Ihm/I_MACRO_ETAPE.py" line="1195"/>
-        <source>Ce fichier ne sera pas pris en compte
- %s</source>
-        <translation type="obsolete">the file is ignored
-%s</translation>
+        <source>Ce fichier ne sera pas pris en compte</source>
+        <translation>the file is ignored</translation>
     </message>
     <message>
         <location filename="Ihm/I_MACRO_ETAPE.py" line="735"/>
         <source>Ce fichier ne sera pas pris en compte
 Le fichier associe n&apos;est pas defini</source>
-        <translation type="obsolete">the file is ignored : associated file is not defined</translation>
+        <translation>the file is ignored : associated file is not defined</translation>
     </message>
     <message>
         <location filename="Ihm/I_MACRO_ETAPE.py" line="907"/>
         <source>Le fichier n est pas defini</source>
-        <translation type="obsolete">file is not defined</translation>
+        <translation>file is not defined</translation>
     </message>
     <message>
         <location filename="Ihm/I_MACRO_ETAPE.py" line="944"/>
         <source>le fichier doit contenir une unique variable de sortie</source>
-        <translation type="obsolete">file must declare a single output variable</translation>
+        <translation>file must declare a single output variable</translation>
     </message>
     <message>
         <location filename="Ihm/I_MACRO_ETAPE.py" line="990"/>
         <source>Fichier invalide</source>
-        <translation type="obsolete">invalid file</translation>
+        <translation>invalid file</translation>
     </message>
     <message>
         <location filename="Ihm/I_MACRO_ETAPE.py" line="993"/>
         <source>Le contenu de ce fichier ne sera pas pris en compte
  %s</source>
-        <translation type="obsolete">the file will be ignored :
+        <translation>the file will be ignored :
 %s</translation>
     </message>
     <message>
         <location filename="Ihm/I_MACRO_ETAPE.py" line="1047"/>
         <source>Le fichier INCLUDE n est pas defini</source>
-        <translation type="obsolete">include file is not defined</translation>
+        <translation>include file is not defined</translation>
     </message>
     <message>
         <location filename="Ihm/I_MACRO_ETAPE.py" line="1057"/>
         <source>Le contenu de ce fichier ne sera pas pris en compte
 </source>
-        <translation type="obsolete">file will be ignored
+        <translation>file will be ignored
 </translation>
     </message>
     <message>
         <location filename="Ihm/I_MACRO_ETAPE.py" line="1195"/>
         <source>Erreur lors de l&apos;evaluation du fichier poursuite</source>
-        <translation type="obsolete">Error when creating secondary (poursuite) file</translation>
+        <translation>Error when creating secondary (poursuite) file</translation>
     </message>
     <message>
         <location filename="Ihm/I_MCCOMPO.py" line="224"/>
         <source>L&apos;objet %(v_1)s ne peut  etre un fils de %(v_2)s</source>
         <comment>v_1</comment>
-        <translation type="obsolete">Object %(v_1)s can not be a child for %(v_2)s</translation>
+        <translation>Object %(v_1)s can not be a child for %(v_2)s</translation>
     </message>
     <message>
         <location filename="Ihm/I_MCCOMPO.py" line="253"/>
         <source>L&apos;objet %s ne peut pas etre repete</source>
-        <translation type="obsolete">Object %s can not be repeated</translation>
+        <translation>Object %s can not be repeated</translation>
     </message>
     <message>
         <location filename="Ihm/I_MCFACT.py" line="50"/>
         <source>Erreur - mclist inexistante : %s</source>
-        <translation type="obsolete">Error - mclist does not exist : %s</translation>
+        <translation>Error - mclist does not exist : %s</translation>
     </message>
     <message>
         <location filename="Ihm/I_MCFACT.py" line="59"/>
         <source>Erreur - mot cle facteur de nom : %s</source>
-        <translation type="obsolete">Error - keyword &quot;mot-clef facteur&quot; nammed : %s</translation>
+        <translation>Error - keyword &quot;mot-clef facteur&quot; nammed : %s</translation>
     </message>
     <message>
         <location filename="Ihm/I_MCLIST.py" line="94"/>
         <source>traitement non-prevu</source>
-        <translation type="obsolete">unexpected task</translation>
+        <translation>unexpected task</translation>
     </message>
     <message>
         <location filename="Ihm/I_MCLIST.py" line="97"/>
         <source>L&apos;objet %s ne peut pas etre ajoute</source>
-        <translation type="obsolete">Object %s cannot be add</translation>
+        <translation>Object %s cannot be add</translation>
     </message>
     <message>
         <location filename="Ihm/I_MCSIMP.py" line="258"/>
         <source>None n&apos;est pas une valeur autorisee</source>
-        <translation type="obsolete">None is not a valid value</translation>
+        <translation>None is not a valid value</translation>
     </message>
     <message>
         <location filename="Ihm/I_MCSIMP.py" line="490"/>
         <source>un concept de meme nom existe deja</source>
-        <translation type="obsolete">concept already exists</translation>
+        <translation>concept already exists</translation>
     </message>
     <message>
         <location filename="Ihm/I_MCSIMP.py" line="512"/>
         <source>Concept cree</source>
-        <translation type="obsolete">concept created</translation>
+        <translation>concept created</translation>
     </message>
     <message>
         <location filename="Ihm/I_MCSIMP.py" line="643"/>
         <source>La matrice n&apos;est pas une matrice %(n_lign)d sur %(n_col)d</source>
         <comment>n_lign</comment>
-        <translation type="obsolete">matrix is not a %(n_lign)d x %(n_col)d matrix</translation>
+        <translation>matrix is not a %(n_lign)d x %(n_col)d matrix</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/compocomm.py" line="41"/>
         <source>Decommenter</source>
-        <translation type="obsolete">uncomment</translation>
+        <translation>uncomment</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/compocomm.py" line="43"/>
         <source>Decommente la commande </source>
-        <translation type="obsolete">uncomment the command</translation>
+        <translation>uncomment the command</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/compofact.py" line="133"/>
         <source>Impossible de supprimer un mot-cle obligatoire </source>
-        <translation type="obsolete">mandatory keyword cannot be deleted</translation>
+        <translation>mandatory keyword cannot be deleted</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/compofact.py" line="136"/>
         <source>Mot-cle %s supprime</source>
-        <translation type="obsolete">Keyword %s deleted</translation>
+        <translation>Keyword %s deleted</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/compofact.py" line="141"/>
         <source>Pb interne : impossible de supprimer ce mot-cle</source>
-        <translation type="obsolete">internal problem : unable to delete keyword</translation>
+        <translation>internal problem : unable to delete keyword</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/compojdc.py" line="86"/>
         <source>Commentaire supprime</source>
-        <translation type="obsolete">comment is deleted</translation>
+        <translation>comment is deleted</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/compojdc.py" line="88"/>
         <source>Commande %s supprimee</source>
-        <translation type="obsolete">command %s is deleted</translation>
+        <translation>command %s is deleted</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/compojdc.py" line="91"/>
         <source>Pb interne : impossible de supprimer cet objet</source>
-        <translation type="obsolete">internal problem : unable to delete object</translation>
+        <translation>internal problem : unable to delete object</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/compomacro.py" line="125"/>
         <source>Le fichier de commande n&apos;a pas pu etre converti pour etre editable par Eficas
 
 </source>
-        <translation type="obsolete">unable to convert .comm file in order to open it with Eficas</translation>
+        <translation>unable to convert .comm file in order to open it with Eficas</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/compomacro.py" line="157"/>
         <source>Include vide</source>
-        <translation type="obsolete">include file is empty</translation>
+        <translation>include file is empty</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/compomacro.py" line="157"/>
         <source>L&apos;include doit etre correctement initialise pour etre visualise</source>
-        <translation type="obsolete">include file must be correct</translation>
+        <translation>include file must be correct</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/compomclist.py" line="223"/>
         <source>Impossible de supprimer ce mot-clef</source>
-        <translation type="obsolete">unable to delete this keyword</translation>
+        <translation>unable to delete this keyword</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/compooper.py" line="67"/>
         <source>View3D</source>
-        <translation type="obsolete">View3D</translation>
+        <translation>View3D</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/compooper.py" line="69"/>
         <source>affiche dans Geom les elements de structure</source>
-        <translation type="obsolete">diplay SE in Geom</translation>
+        <translation>diplay SE in Geom</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/compooper.py" line="76"/>
         <source>Graphique</source>
-        <translation type="obsolete">graphic</translation>
+        <translation>graphic</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/compooper.py" line="78"/>
         <source>affiche la distribution </source>
-        <translation type="obsolete">display distribution</translation>
+        <translation>display distribution</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/compooper.py" line="201"/>
         <source>Impossible de supprimer un mot-clef obligatoire </source>
-        <translation type="obsolete">unable to delete a mandatory keyword</translation>
+        <translation>unable to delete a mandatory keyword</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/compooper.py" line="203"/>
         <source>Mot-clef %s supprime </source>
-        <translation type="obsolete">Keyword %s is deleted</translation>
+        <translation>Keyword %s is deleted</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/compoparam.py" line="146"/>
         <source>Definition d&apos;un parametre</source>
-        <translation type="obsolete">defines a parameter</translation>
+        <translation>defines a parameter</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/configuration.py" line="156"/>
         <source>Import du fichier de Configuration</source>
-        <translation type="obsolete">import configuration file</translation>
+        <translation>import configuration file</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/configuration.py" line="156"/>
         <source>Erreur a la lecture du fichier de configuration %s </source>
-        <translation type="obsolete">Error when reading configuration file</translation>
+        <translation>Error when reading configuration file</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="196"/>
         <source>Erreur fatale au chargement de %s</source>
-        <translation type="obsolete">fatal error when loading %s</translation>
+        <translation>fatal error when loading %s</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="197"/>
         <source>Erreur fatale au chargement d&apos;un fichier</source>
-        <translation type="obsolete">Fatal error when loading file</translation>
+        <translation>Fatal error when loading file</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="313"/>
         <source>fichier modifie</source>
-        <translation type="obsolete">file updated </translation>
+        <translation>file updated </translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="313"/>
         <source>Attention! fichier change hors EFICAS</source>
-        <translation type="obsolete">Warning ! this file was modified outside Eficas</translation>
+        <translation>Warning ! this file was modified outside Eficas</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="367"/>
         <source>Type de fichier non reconnu</source>
-        <translation type="obsolete">unsupported file type</translation>
+        <translation>unsupported file type</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="324"/>
         <source>EFICAS ne sait pas ouvrir le type de fichier %s</source>
-        <translation type="obsolete">Eficas is not able to open this file&apos;s type : %s</translation>
+        <translation>Eficas is not able to open this file&apos;s type : %s</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="367"/>
         <source>EFICAS ne sait pas ouvrir ce type de fichier</source>
-        <translation type="obsolete">Eficas is not able to open this file&apos;s type</translation>
+        <translation>Eficas is not able to open this file&apos;s type</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="610"/>
         <source>Copie impossible</source>
-        <translation type="obsolete">unable to copy</translation>
+        <translation>unable to copy</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="582"/>
         <source>Veuillez selectionner un objet a copier</source>
-        <translation type="obsolete">you have to select an object to copy</translation>
+        <translation>you have to select an object to copy</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="587"/>
         <source>Veuillez selectionner un seul objet : la copie se fera apres le noeud selectionne</source>
-        <translation type="obsolete">You have to select a single object : copy will be done after the selected node</translation>
+        <translation>You have to select a single object : copy will be done after the selected node</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="610"/>
         <source>Aucun Objet n a ete copie ou coupe</source>
-        <translation type="obsolete">No object was cut or copied</translation>
+        <translation>No object was cut or copied</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="636"/>
         <source>Copie refusee</source>
-        <translation type="obsolete">rejected copy</translation>
+        <translation>rejected copy</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="622"/>
         <source>Eficas n a pas reussi a copier l objet</source>
-        <translation type="obsolete">Eficas cannot copy this object</translation>
+        <translation>Eficas cannot copy this object</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="636"/>
         <source>Copie refusee pour ce type d objet</source>
-        <translation type="obsolete">Copy rejected : bad object type</translation>
+        <translation>Copy rejected : bad object type</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="648"/>
         <source>Deplacement refuse</source>
-        <translation type="obsolete">move rejected</translation>
+        <translation>move rejected</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="648"/>
         <source>Deplacement refuse entre 2 fichiers. Seule la copie est autorisee </source>
-        <translation type="obsolete">move rejected. no move between two files : only copy is available</translation>
+        <translation>move rejected. no move between two files : only copy is available</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="684"/>
         <source>Copie impossible a cet endroit</source>
-        <translation type="obsolete">unable to copy here</translation>
+        <translation>unable to copy here</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="684"/>
         <source>Veuillez selectionner une commande, un parametre, un commentaire ou une macro</source>
-        <translation type="obsolete">select a command; a parameter, a comment or a macro</translation>
+        <translation>select a command; a parameter, a comment or a macro</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="745"/>
         <source>Choix d&apos;un fichier XML</source>
-        <translation type="obsolete">Choice of XML file</translation>
+        <translation>Choice of XML file</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/viewManager.py" line="66"/>
         <source>Ouvrir Fichier</source>
-        <translation type="obsolete">Open file</translation>
+        <translation>Open file</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="1036"/>
         <source>Erreur a la generation</source>
-        <translation type="obsolete">Error when generating</translation>
+        <translation>Error when generating</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="1036"/>
         <source>EFICAS ne sait pas convertir ce JDC</source>
-        <translation type="obsolete">Eficas is unable to convert JDC</translation>
+        <translation>Eficas is unable to convert JDC</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="1040"/>
         <source>Format %s non reconnu</source>
-        <translation type="obsolete"> not supported format %s</translation>
+        <translation> not supported format %s</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="895"/>
         <source>Execution impossible </source>
-        <translation type="obsolete">Unable to execute</translation>
+        <translation>Unable to execute</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="832"/>
         <source>le JDC doit etre valide pour une execution MAP</source>
-        <translation type="obsolete">JDC has to be valid before run</translation>
+        <translation>JDC has to be valid before run</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="835"/>
         <source>le JDC doit contenir un et un seul composant</source>
-        <translation type="obsolete">JDC must contains a single componant</translation>
+        <translation>JDC must contains a single componant</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="935"/>
-        <source>sauvegarde</source>
-        <translation type="obsolete">save</translation>
+        <source>Sauvegarde du Fichier</source>
+        <translation>Save File</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="944"/>
-        <source>Sauvegarde du Fichier</source>
-        <translation type="obsolete">save file</translation>
+        <source>Le fichier</source>
+        <translation>file</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="944"/>
-        <source>Le fichier &lt;b&gt;%s&lt;/b&gt; existe deja.</source>
-        <translation type="obsolete">file  &lt;b&gt;%s&lt;/b&gt; already exists.</translation>
+        <source>existe deja</source>
+        <translation>allready exists</translation>
     </message>
     <message>
-        <location filename="InterfaceQT4/editor.py" line="944"/>
         <source>&amp;Ecraser</source>
-        <translation type="obsolete">&amp;Replace</translation>
+        <translation>&amp;Replace</translation>
     </message>
     <message>
-        <location filename="InterfaceQT4/editor.py" line="1178"/>
-        <source>Donnez le nom du fichier correspondant a l unite logique </source>
-        <translation type="obsolete">Choose file corresponding to unit </translation>
+        <source>&amp;Abandonner</source>
+        <translation>&amp;Cancel</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="1181"/>
         <source>Choix d&apos;un fichier de poursuite</source>
-        <translation type="obsolete">Choose poursuite file</translation>
+        <translation>Choose poursuite file</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="1182"/>
         <source>Le fichier %s contient une commande POURSUITE
 </source>
-        <translation type="obsolete">file %s contains a POURSUITE command</translation>
+        <translation>file %s contains a POURSUITE command</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/gereTraduction.py" line="37"/>
         <source>Traduire Fichier</source>
-        <translation type="obsolete">file translation</translation>
+        <translation>file translation</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/gereTraduction.py" line="37"/>
         <source>Fichiers JDC  (*.comm);;Tous les Fichiers (*)</source>
-        <translation type="obsolete">JDC files(*.comm);; All FIles(*)</translation>
+        <translation>JDC files(*.comm);; All FIles(*)</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/gereTraduction.py" line="62"/>
         <source>Fichier Traduit : %s
 
 </source>
-        <translation type="obsolete">Translated file : %s</translation>
+        <translation>Translated file : %s</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/gereTraduction.py" line="72"/>
         <source>Pas de difference entre le fichier origine et le fichier traduit</source>
-        <translation type="obsolete">No difference between the primary file and the translated file</translation>
+        <translation>No difference between the primary file and the translated file</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monChoixCata.py" line="42"/>
         <source>%d versions du catalogue sont disponibles</source>
-        <translation type="obsolete">%d catalogs versions are available</translation>
+        <translation>%d catalogs versions are available</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/typeNode.py" line="115"/>
         <source>&amp;Ok</source>
-        <translation type="obsolete">&amp;Ok</translation>
+        <translation>&amp;Ok</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/feuille.py" line="173"/>
         <source>Entrez </source>
-        <translation type="obsolete">enter</translation>
+        <translation>enter</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/feuille.py" line="119"/>
         <source> valeurs </source>
-        <translation type="obsolete"> values </translation>
+        <translation> values </translation>
     </message>
     <message>
         <location filename="InterfaceQT4/feuille.py" line="174"/>
         <source>Entrez entre </source>
-        <translation type="obsolete">enter between </translation>
+        <translation>enter between </translation>
     </message>
     <message>
         <location filename="InterfaceQT4/feuille.py" line="174"/>
         <source> et </source>
-        <translation type="obsolete"> and </translation>
+        <translation> and </translation>
     </message>
     <message>
         <location filename="InterfaceQT4/gereIcones.py" line="245"/>
         <source>Selection</source>
-        <translation type="obsolete">selection</translation>
+        <translation>selection</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetSimpBase.py" line="86"/>
         <source>Type de base inconnu</source>
-        <translation type="obsolete">unkown type</translation>
+        <translation>unkown type</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/gereIcones.py" line="209"/>
         <source>Visualisation Fichier </source>
-        <translation type="obsolete">view file</translation>
+        <translation>view file</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/gereIcones.py" line="209"/>
         <source>Impossibilite d&apos;afficher le Fichier</source>
-        <translation type="obsolete">Unable to display file</translation>
+        <translation>Unable to display file</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/gereIcones.py" line="222"/>
         <source>Sauvegarder Fichier</source>
-        <translation type="obsolete">save File</translation>
+        <translation>save File</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/gereIcones.py" line="236"/>
         <source>Fichier selectionne</source>
-        <translation type="obsolete">file selected</translation>
+        <translation>file selected</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetSimpComplexe.py" line="116"/>
         <source>expression valide</source>
-        <translation type="obsolete">valid expression</translation>
+        <translation>valid expression</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetSimpComplexe.py" line="122"/>
         <source>expression invalide</source>
-        <translation type="obsolete">unvalid expression</translation>
+        <translation>unvalid expression</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetSimpComplexe.py" line="128"/>
         <source>expression n est pas de la forme a+bj</source>
-        <translation type="obsolete">expression is not as a+bj</translation>
+        <translation>expression is not as a+bj</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetSimpComplexe.py" line="140"/>
         <source>entrer une seule valeur SVP</source>
-        <translation type="obsolete">Please, enter a single value</translation>
+        <translation>Please, enter a single value</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetSimpComplexe.py" line="158"/>
         <source>saisir le type de complexe</source>
-        <translation type="obsolete">choose complex&apos;s type</translation>
+        <translation>choose complex&apos;s type</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monViewTexte.py" line="69"/>
         <source>Sauvegarder le fichier</source>
-        <translation type="obsolete">save file</translation>
+        <translation>save file</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monViewTexte.py" line="69"/>
         <source>Le fichier &lt;b&gt;%(v_1)s&lt;/b&gt; n&apos;a pu etre sauvegarde. &lt;br&gt;Raison : %(v_2)s</source>
         <comment>v_1</comment>
-        <translation type="obsolete">file &lt;b&gt;%(v_1)s&lt;/b&gt; was not saved. Raison : %(v_2)s</translation>
+        <translation>file &lt;b&gt;%(v_1)s&lt;/b&gt; was not saved. Raison : %(v_2)s</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/qtEficas_with_log.py" line="78"/>
         <source>&amp;Recents</source>
-        <translation type="obsolete">&amp;Recently Opened</translation>
+        <translation>&amp;Recently Opened</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/qtEficas_with_log.py" line="147"/>
         <source>Aide specifique </source>
-        <translation type="obsolete">code&apos;s help</translation>
+        <translation>code&apos;s help</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/qtEficas_with_log.py" line="189"/>
         <source>Traduction</source>
-        <translation type="obsolete">translation</translation>
+        <translation>translation</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/qtEficas_with_log.py" line="194"/>
         <source>Options</source>
-        <translation type="obsolete">Options</translation>
+        <translation>Options</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/qtEficas_with_log.py" line="409"/>
         <source>version </source>
-        <translation type="obsolete">version</translation>
+        <translation>version</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/readercata.py" line="276"/>
         <source> pour </source>
-        <translation type="obsolete"> for </translation>
+        <translation> for </translation>
     </message>
     <message>
         <location filename="InterfaceQT4/qtEficas_with_log.py" line="436"/>
         <source>Aide Indisponible</source>
-        <translation type="obsolete">no help avalaible</translation>
+        <translation>no help avalaible</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/qtEficas_with_log.py" line="450"/>
         <source>Parametrage</source>
-        <translation type="obsolete">Options</translation>
+        <translation>Options</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/qtEficas_with_log.py" line="443"/>
         <source>Veuillez d abord choisir un code</source>
-        <translation type="obsolete">Choose a code</translation>
+        <translation>Choose a code</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/qtEficas_with_log.py" line="450"/>
         <source>Pas de possibilite de personnalisation de la configuration </source>
-        <translation type="obsolete">no options avalaible for configuration</translation>
+        <translation>no options avalaible for configuration</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/qtEficas_with_log.py" line="471"/>
         <source>&amp;Effacer</source>
-        <translation type="obsolete">&amp;Delete</translation>
+        <translation>&amp;Delete</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/qtSaisie.py" line="98"/>
         <source>Veuillez entrer le complexe sous forme aster ou sous forme python</source>
-        <translation type="obsolete">enter a complex</translation>
+        <translation>enter a complex</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/readercata.py" line="147"/>
         <source>Import du catalogue</source>
-        <translation type="obsolete">Loading catalog</translation>
+        <translation>Loading catalog</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/readercata.py" line="95"/>
         <source>Pas de catalogue defini pour le code </source>
-        <translation type="obsolete">No catalog for this code</translation>
+        <translation>No catalog for this code</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/readercata.py" line="119"/>
         <source>Aucun catalogue trouve</source>
-        <translation type="obsolete">No catalog</translation>
+        <translation>No catalog</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/readercata.py" line="278"/>
         <source> avec le catalogue </source>
-        <translation type="obsolete">with catalog  </translation>
+        <translation>with catalog  </translation>
     </message>
     <message>
         <location filename="InterfaceQT4/readercata.py" line="147"/>
         <source>Impossible d&apos;importer le catalogue </source>
-        <translation type="obsolete">unable to load catalog</translation>
+        <translation>unable to load catalog</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/readercata.py" line="268"/>
         <source>Choix d une version du code </source>
-        <translation type="obsolete">Choose a version for </translation>
+        <translation>Choose a version for </translation>
     </message>
     <message>
         <location filename="InterfaceQT4/readercata.py" line="270"/>
         <source>Choix d une version </source>
-        <translation type="obsolete">choose a version</translation>
+        <translation>choose a version</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/typeNode.py" line="219"/>
         <source>Parametre</source>
-        <translation type="obsolete">parameter</translation>
+        <translation>parameter</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/typeNode.py" line="37"/>
         <source>Insere un parametre</source>
-        <translation type="obsolete">insert a parameter</translation>
+        <translation>insert a parameter</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/typeNode.py" line="115"/>
         <source>item invalide</source>
-        <translation type="obsolete">invalid item</translation>
+        <translation>invalid item</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/typeNode.py" line="115"/>
         <source>l item doit etre valide</source>
-        <translation type="obsolete">item must be valid</translation>
+        <translation>item must be valid</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/typeNode.py" line="141"/>
         <source>apres</source>
-        <translation type="obsolete">after</translation>
+        <translation>after</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/typeNode.py" line="136"/>
         <source>Insere un commentaire apres la commande </source>
-        <translation type="obsolete">insert a comment after the command</translation>
+        <translation>insert a comment after the command</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/typeNode.py" line="144"/>
         <source>avant</source>
-        <translation type="obsolete">before</translation>
+        <translation>before</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/typeNode.py" line="139"/>
         <source>Insere un commentaire avant la commande </source>
-        <translation type="obsolete">insert a comment before the command</translation>
+        <translation>insert a comment before the command</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/typeNode.py" line="143"/>
         <source>Insere un parametre apres la commande </source>
-        <translation type="obsolete">insert a parameter after the command</translation>
+        <translation>insert a parameter after the command</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/typeNode.py" line="146"/>
         <source>Insere un parametre avant la commande </source>
-        <translation type="obsolete">insert a parameter before the commande</translation>
+        <translation>insert a parameter before the commande</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/typeNode.py" line="148"/>
         <source>Supprimer</source>
-        <translation type="obsolete">delete</translation>
+        <translation>delete</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/typeNode.py" line="150"/>
         <source>supprime le mot clef </source>
-        <translation type="obsolete">delete keyword</translation>
+        <translation>delete keyword</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/typeNode.py" line="151"/>
         <source>Documentation</source>
-        <translation type="obsolete">documentation</translation>
+        <translation>documentation</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/typeNode.py" line="153"/>
         <source>documentation sur la commande </source>
-        <translation type="obsolete">command&apos;s documentation</translation>
+        <translation>command&apos;s documentation</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/typeNode.py" line="183"/>
         <source>Documentation Vide</source>
-        <translation type="obsolete">empty documentation</translation>
+        <translation>empty documentation</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/typeNode.py" line="163"/>
         <source>Aucune documentation n&apos;est associee a ce noeud</source>
-        <translation type="obsolete">no documentation is available for this node</translation>
+        <translation>no documentation is available for this node</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/typeNode.py" line="170"/>
         <source>impossible de trouver la commande  </source>
-        <translation type="obsolete">unable to find command</translation>
+        <translation>unable to find command</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/typeNode.py" line="171"/>
         <source>Lecteur PDF</source>
-        <translation type="obsolete">PDF reader</translation>
+        <translation>PDF reader</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/typeNode.py" line="182"/>
         <source>impossible d&apos;ouvrir </source>
-        <translation type="obsolete">unable to open</translation>
+        <translation>unable to open</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/typeNode.py" line="215"/>
         <source>Commentaire</source>
-        <translation type="obsolete">Comment</translation>
+        <translation>Comment</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/typeNode.py" line="232"/>
         <source>ce noeud</source>
-        <translation type="obsolete">this node</translation>
+        <translation>this node</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/typeNode.py" line="234"/>
         <source>commente le noeud </source>
-        <translation type="obsolete">comment this node</translation>
+        <translation>comment this node</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/viewManager.py" line="64"/>
         <source>Fichiers JDC (*.comm);;Tous les Fichiers (*)</source>
-        <translation type="obsolete">JDC Files (*.comm);;All Files(*)</translation>
+        <translation>JDC Files (*.comm);;All Files(*)</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/viewManager.py" line="84"/>
         <source>&amp;Quitter</source>
-        <translation type="obsolete">&amp;Exit</translation>
+        <translation>&amp;Exit</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/viewManager.py" line="116"/>
         <source>Quitter</source>
-        <translation type="obsolete">Exit</translation>
+        <translation>Exit</translation>
+    </message>
+    <message>
+        <source>sauvegarde</source>
+        <translation>save</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/viewManager.py" line="337"/>
         <source>Fichier Duplique</source>
-        <translation type="obsolete">file is duplicated</translation>
+        <translation>file is duplicated</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/viewManager.py" line="337"/>
         <source>Le fichier ne sera pas sauvegarde.</source>
-        <translation type="obsolete">File will not be saved.</translation>
+        <translation>File will not be saved.</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/viewManager.py" line="349"/>
         <source>&amp;Annuler</source>
-        <translation type="obsolete">&amp;Cancel</translation>
+        <translation>&amp;Cancel</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/viewManager.py" line="267"/>
         <source>Fichier</source>
-        <translation type="obsolete">File</translation>
+        <translation>File</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/viewManager.py" line="267"/>
         <source>Le fichier &lt;b&gt;%s&lt;/b&gt; est deja ouvert.</source>
-        <translation type="obsolete">File  &lt;b&gt;%s&lt;/b&gt; is already open.</translation>
+        <translation>File  &lt;b&gt;%s&lt;/b&gt; is already open.</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/viewManager.py" line="267"/>
         <source>&amp;Duplication</source>
-        <translation type="obsolete">&amp;Duplication</translation>
+        <translation>&amp;Duplication</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/viewManager.py" line="267"/>
         <source>&amp;Abort</source>
-        <translation type="obsolete">&amp;Abort</translation>
+        <translation>&amp;Abort</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/viewManager.py" line="349"/>
         <source>Fichier Modifie</source>
-        <translation type="obsolete">File is modified</translation>
+        <translation>File is modified</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/viewManager.py" line="349"/>
         <source>Le fichier %s n a pas ete sauvegarde.</source>
-        <translation type="obsolete">file %s was not saved.</translation>
+        <translation>file %s was not saved.</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/viewManager.py" line="349"/>
         <source>&amp;Sauvegarder</source>
-        <translation type="obsolete">&amp;Save</translation>
+        <translation>&amp;Save</translation>
+    </message>
+    <message>
+        <location filename="InterfaceQT4/viewManager.py" line="349"/>
+        <source>&amp;Quitter sans sauvegarder</source>
+        <translation>&amp;Quit anyway</translation>
     </message>
     <message>
         <location filename="convert/convert_pyth.py" line="109"/>
         <source>Erreur a l&apos;evaluation :
  %s</source>
-        <translation type="obsolete">Error when loadind :
+        <translation>Error when loadind :
 %s</translation>
     </message>
     <message>
         <location filename="Editeur/utils.py" line="50"/>
         <source>Un fichier de nom %s existe deja : impossible de creer un repertoire de meme nom</source>
-        <translation type="obsolete">File %s already exists : unable to create a directory with the same name</translation>
+        <translation>File %s already exists : unable to create a directory with the same name</translation>
     </message>
     <message>
         <location filename="Editeur/utils.py" line="56"/>
         <source>Creation du repertoire %s impossible
  Verifiez vos droits d&apos;acces</source>
-        <translation type="obsolete">Unable to create directory : check your access rights</translation>
+        <translation>Unable to create directory : check your access rights</translation>
     </message>
     <message>
         <location filename="Editeur/session.py" line="266"/>
         <source>localisation de l&apos;application, pour la traduction</source>
-        <translation type="obsolete">use for application translation</translation>
+        <translation>use for application translation</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/browser.py" line="435"/>
         <source>  n&apos;est pas un index valide pour append_brother</source>
-        <translation type="obsolete">is not correct - no possible &quot;append_brother&quot;</translation>
+        <translation>is not correct - no possible &quot;append_brother&quot;</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/compooper.py" line="114"/>
         <source>Erreur interne</source>
-        <translation type="obsolete">Internal error</translation>
+        <translation>Internal error</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/compooper.py" line="114"/>
         <source>La PDF de la loi ne peut pas etre affichee.</source>
-        <translation type="obsolete">unable to display law&apos;s PDF.</translation>
+        <translation>unable to display law&apos;s PDF.</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="746"/>
         <source>Le fichier contient une commande MODEL
 </source>
-        <translation type="obsolete">file contains MODEL command </translation>
+        <translation>file contains MODEL command </translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="1176"/>
         <source>Choix unite %d </source>
-        <translation type="obsolete">Choice for unit %d</translation>
+        <translation>Choice for unit %d</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="1179"/>
         <source>Fichier pour unite </source>
-        <translation type="obsolete">File for unit </translation>
+        <translation>File for unit </translation>
     </message>
     <message>
         <location filename="Extensions/interpreteur_formule.py" line="97"/>
         <source>La formule passee a l&apos;interpreteur doit etre sous forme de tuple</source>
-        <translation type="obsolete">formula must be written as tuple</translation>
+        <translation>formula must be written as tuple</translation>
     </message>
     <message>
         <location filename="Extensions/nuplet.py" line="104"/>
         <source>Debut </source>
-        <translation type="obsolete">Beginning</translation>
+        <translation>Beginning</translation>
     </message>
     <message>
         <location filename="Extensions/parametre_eval.py" line="150"/>
         <source>Le parametre EVAL ne peut valoir None</source>
-        <translation type="obsolete">None is not a valid value for EVAL</translation>
+        <translation>None is not a valid value for EVAL</translation>
     </message>
     <message>
         <location filename="Extensions/parametre.py" line="188"/>
         <source>Pas de nom donne au parametre </source>
-        <translation type="obsolete">No name given</translation>
+        <translation>No name given</translation>
     </message>
     <message>
         <location filename="Extensions/parametre.py" line="193"/>
         <source>Le parametre %s ne peut valoir None</source>
-        <translation type="obsolete">None is an incorrect value for parameter %s</translation>
+        <translation>None is an incorrect value for parameter %s</translation>
     </message>
     <message>
         <location filename="generator/generator_aplat.py" line="147"/>
         <source>Format non implemente : %s</source>
-        <translation type="obsolete">Not implemented format</translation>
+        <translation>Not implemented format</translation>
     </message>
     <message>
         <location filename="generator/generator_pyth.py" line="143"/>
         <source>Type de valeur non supporte par le format pyth : n %(exception)s</source>
         <comment>nom</comment>
-        <translation type="obsolete">unsupported type of value</translation>
+        <translation>unsupported type of value</translation>
     </message>
     <message>
         <location filename="Ihm/I_FORM_ETAPE.py" line="138"/>
         <source>Impossible de realiser la verification de la formule</source>
-        <translation type="obsolete">unable to verify formula</translation>
+        <translation>unable to verify formula</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/compooper.py" line="208"/>
         <source>Pb interne : impossible de supprimer ce mot-clef</source>
-        <translation type="obsolete">internal problem : unable to delete keyword</translation>
+        <translation>internal problem : unable to delete keyword</translation>
     </message>
     <message>
         <location filename="convert/parseur_python.py" line="499"/>
         <source>Eficas ne peut pas traiter plusieurs instructions 
                                                  sur la meme ligne : %s</source>
-        <translation type="obsolete">Eficas is not able to manage many instructions on a same line</translation>
+        <translation>Eficas is not able to manage many instructions on a same line</translation>
     </message>
     <message>
         <location filename="Editeur/analyse_catalogue.py" line="209"/>
         <source>le texte a analyser n&apos;est pas celui d&apos;une commande ou 
                                          d&apos;un operateur : %s</source>
-        <translation type="obsolete">text is not valid for a command or a operaor</translation>
+        <translation>text is not valid for a command or a operaor</translation>
     </message>
     <message>
         <location filename="Editeur/analyse_catalogue.py" line="229"/>
         <source>le texte a analyser n&apos;est pas celui d&apos;une commande connue : 
                                         %(v_1)s %(v_2)s</source>
         <comment>v_1</comment>
-        <translation type="obsolete">text is not valid for command %(v_1)s %(v_2)s </translation>
+        <translation>text is not valid for command %(v_1)s %(v_2)s </translation>
     </message>
     <message>
         <location filename="Editeur/analyse_catalogue.py" line="231"/>
         <source>le texte a analyser n&apos;est pas celui d&apos;une commande connue : 
                                          %(v_1)s %(v_2)s</source>
         <comment>v_1</comment>
-        <translation type="obsolete">text is not valid for command %(v_1)s %(v_2)s</translation>
+        <translation>text is not valid for command %(v_1)s %(v_2)s</translation>
     </message>
     <message>
         <location filename="Editeur/session.py" line="149"/>
         <source> jdc %(v_1)s manque 
                                       fichier comm dans section %(v_2)s</source>
         <comment>v_1</comment>
-        <translation type="obsolete">file %(v_1)s need a .comm file in section %(v_2)s   </translation>
+        <translation>file %(v_1)s need a .comm file in section %(v_2)s   </translation>
     </message>
     <message>
         <location filename="Editeur/session.py" line="170"/>
@@ -1426,614 +1431,613 @@ Le fichier associe n&apos;est pas defini</source>
                                    fichier include %(v_2)s, %(v_3)s 
                                    n&apos;existe pas</source>
         <comment>v_1</comment>
-        <translation type="obsolete">file %(v_1)s need an include  file  %(v_2)s,%(v_3)s does not exist </translation>
+        <translation>file %(v_1)s need an include  file  %(v_2)s,%(v_3)s does not exist </translation>
     </message>
     <message>
         <location filename="Editeur/session.py" line="202"/>
         <source> jdc %(v_1)s manque fichier comm 
                                 dans section %(v_2)s</source>
         <comment>v_1</comment>
-        <translation type="obsolete">file %(v_1)s need a .comm file in section %(v_2)s</translation>
+        <translation>file %(v_1)s need a .comm file in section %(v_2)s</translation>
     </message>
     <message>
         <location filename="Editeur/session.py" line="206"/>
         <source>jdc %(v_1)s, le fichier de commandes 
                                 %(v_2)s n&apos;existe pas</source>
         <comment>v_1</comment>
-        <translation type="obsolete">jdc%(v_1)s, .comm  %(v_2)s does not exist</translation>
+        <translation>jdc%(v_1)s, .comm  %(v_2)s does not exist</translation>
     </message>
     <message>
         <location filename="Ihm/I_ETAPE.py" line="485"/>
         <source>
    Include Invalide. 
   ne sera pas pris en compte</source>
-        <translation type="obsolete">Invalid include file. text will not be included</translation>
+        <translation>Invalid include file. text will not be included</translation>
     </message>
     <message>
         <location filename="Ihm/I_MACRO_ETAPE.py" line="167"/>
         <source>Impossible de relire le fichier %s 
  </source>
-        <translation type="obsolete">unable to read file</translation>
+        <translation>unable to read file</translation>
     </message>
     <message>
         <location filename="Ihm/I_MACRO_ETAPE.py" line="178"/>
         <source>Le fichier include contient des erreurs </source>
-        <translation type="obsolete">include file contains errors</translation>
+        <translation>include file contains errors</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/compoparam.py" line="86"/>
         <source>PARAMETRE</source>
-        <translation type="obsolete">PARAMETER</translation>
+        <translation>PARAMETER</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="1041"/>
         <source>EFICAS ne sait pas convertir le JDC selon le format </source>
-        <translation type="obsolete">Eficas does not know how to convert data according to the defined format</translation>
+        <translation>Eficas does not know how to convert data according to the defined format</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="871"/>
         <source>le JDC doit etre valide pour une execution </source>
-        <translation type="obsolete">Before a run action, JDC must be valid</translation>
+        <translation>Before a run action, JDC must be valid</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="895"/>
         <source>Sauvegarder SVP avant l&apos;execution </source>
-        <translation type="obsolete">Save before run action</translation>
+        <translation>Save before run action</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="1020"/>
         <source>Sauvegarde de l&apos;input impossible </source>
-        <translation type="obsolete">unable to save input file</translation>
+        <translation>unable to save input file</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="1020"/>
         <source>Un JdC valide est necessaire pour creer un .input</source>
-        <translation type="obsolete">file must be valid to create a .input file</translation>
+        <translation>file must be valid to create a .input file</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="964"/>
         <source>Choix du composant obligatoire</source>
-        <translation type="obsolete">You have to choose a component</translation>
+        <translation>You have to choose a component</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="1177"/>
         <source>Le fichier %s contient une commande INCLUDE 
 </source>
-        <translation type="obsolete">file %s contains an &quot;INCLUDE&quot; command</translation>
+        <translation>file %s contains an &quot;INCLUDE&quot; command</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="1183"/>
         <source>Donnez le nom du fichier dont vous 
  voulez faire une poursuite</source>
-        <translation type="obsolete">Name the principal file</translation>
+        <translation>Name the principal file</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="1311"/>
         <source>Fichiers Med (*.med);;Tous les Fichiers (*)</source>
-        <translation type="obsolete">Med Files (*.med);;All Files(*)</translation>
+        <translation>Med Files (*.med);;All Files(*)</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="1314"/>
         <source>Fichier Med</source>
-        <translation type="obsolete">Med File</translation>
+        <translation>Med File</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/editor.py" line="1314"/>
         <source>Veuillez selectionner un fichier Med</source>
-        <translation type="obsolete">Choose a Med file</translation>
+        <translation>Choose a Med file</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/feuille.py" line="165"/>
         <source>reel</source>
-        <translation type="obsolete">float</translation>
+        <translation>float</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/feuille.py" line="166"/>
         <source>entier</source>
-        <translation type="obsolete">integer</translation>
+        <translation>integer</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/feuille.py" line="167"/>
         <source>complexe</source>
-        <translation type="obsolete">complex</translation>
+        <translation>complex</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/qtEficas_with_log.py" line="436"/>
         <source>l&apos;aide n est pas installee </source>
-        <translation type="obsolete">Help is not available</translation>
+        <translation>Help is not available</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/gereIcones.py" line="291"/>
         <source>Export Med vers Fichier </source>
-        <translation type="obsolete">export Med Mesh in a file</translation>
+        <translation>export Med Mesh in a file</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/gereIcones.py" line="291"/>
         <source>Impossibilite d exporter le Fichier</source>
-        <translation type="obsolete">Unable to export file</translation>
+        <translation>Unable to export file</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monBoutonValide.py" line="43"/>
         <source>objet valide</source>
-        <translation type="obsolete">valid object</translation>
+        <translation>valid object</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetSimpTuple3.py" line="47"/>
         <source>Valeur non modifiable</source>
-        <translation type="obsolete">value can not be changed</translation>
+        <translation>value can not be changed</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetOptionnel.py" line="91"/>
         <source>Options pour 
 </source>
-        <translation type="obsolete">Settings </translation>
+        <translation>Settings </translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetPlusieursInto.py" line="172"/>
         <source>Nombre minimal de valeurs : </source>
-        <translation type="obsolete">minimal number of values :</translation>
+        <translation>minimal number of values :</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetPlusieursInto.py" line="174"/>
         <source>Nombre maximal de valeurs : </source>
-        <translation type="obsolete">Maximal number of values :</translation>
+        <translation>Maximal number of values :</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetSimpComplexe.py" line="84"/>
         <source>l expression n est pas de la forme a+bj</source>
-        <translation type="obsolete">expression must be as a+bj</translation>
+        <translation>expression must be as a+bj</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/politiquesValidation.py" line="157"/>
         <source>Valeur du mot-cle enregistree</source>
-        <translation type="obsolete">Value is recorded</translation>
+        <translation>Value is recorded</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/politiquesValidation.py" line="162"/>
         <source>Valeur du mot-cle non autorisee </source>
-        <translation type="obsolete">Value is not authorized</translation>
+        <translation>Value is not authorized</translation>
     </message>
     <message>
-        <location filename="InterfaceQT4/viewManager.py" line="299"/>
-        <source>Fichier non encore nomme </source>
-        <translation type="obsolete">unnamed file</translation>
+        <source>Fichier non encore nomme</source>
+        <translation>unnamed file</translation>
     </message>
     <message>
         <location filename="CarmelCND/PourTraductionCarmel.py" line="1"/>
         <source>SOURCE</source>
-        <translation type="obsolete">SOURCE</translation>
+        <translation>SOURCE</translation>
     </message>
     <message>
         <location filename="CarmelCND/PourTraductionCarmel.py" line="2"/>
         <source>EnveloppeConnexeInducteur</source>
-        <translation type="obsolete">Bounding_Box</translation>
+        <translation>Bounding_Box</translation>
     </message>
     <message>
         <location filename="CarmelCND/PourTraductionCarmel.py" line="4"/>
         <source>VecteurDirecteur</source>
-        <translation type="obsolete">Direction_Vector</translation>
+        <translation>Direction_Vector</translation>
     </message>
     <message>
         <location filename="CarmelCND/PourTraductionCarmel.py" line="5"/>
         <source>Centre</source>
-        <translation type="obsolete">Center<byte value="x9"/></translation>
+        <translation>Center<byte value="x9"/></translation>
     </message>
     <message>
         <location filename="CarmelCND/PourTraductionCarmel.py" line="6"/>
         <source>SectionBobine</source>
-        <translation type="obsolete">Section</translation>
+        <translation>Section</translation>
     </message>
     <message>
         <location filename="CarmelCND/PourTraductionCarmel.py" line="7"/>
         <source>Amplitude</source>
-        <translation type="obsolete">Amplitude</translation>
+        <translation>Amplitude</translation>
     </message>
     <message>
         <location filename="CarmelCND/PourTraductionCarmel.py" line="8"/>
         <source>NbdeTours</source>
-        <translation type="obsolete">NbTurns</translation>
+        <translation>NbTurns</translation>
     </message>
     <message>
         <location filename="CarmelCND/PourTraductionCarmel.py" line="9"/>
         <source>CONDUCTEUR</source>
-        <translation type="obsolete">CONDUCTOR</translation>
+        <translation>CONDUCTOR</translation>
     </message>
     <message>
         <location filename="CarmelCND/PourTraductionCarmel.py" line="10"/>
         <source>Conductivite</source>
-        <translation type="obsolete">Conductivity</translation>
+        <translation>Conductivity</translation>
     </message>
     <message>
         <location filename="CarmelCND/PourTraductionCarmel.py" line="11"/>
         <source>PermeabiliteRelative</source>
-        <translation type="obsolete">Relative_Permeability</translation>
+        <translation>Relative_Permeability</translation>
     </message>
     <message>
         <location filename="CarmelCND/PourTraductionCarmel.py" line="12"/>
         <source>NOCOND</source>
-        <translation type="obsolete">DIELECTRIC</translation>
+        <translation>DIELECTRIC</translation>
     </message>
     <message>
         <location filename="CarmelCND/PourTraductionCarmel.py" line="13"/>
         <source>VCUT</source>
-        <translation type="obsolete">CUT</translation>
+        <translation>CUT</translation>
     </message>
     <message>
         <location filename="CarmelCND/PourTraductionCarmel.py" line="14"/>
         <source>Orientation</source>
-        <translation type="obsolete">Orientation</translation>
+        <translation>Orientation</translation>
     </message>
     <message>
         <location filename="CarmelCND/PourTraductionCarmel.py" line="15"/>
         <source>ZS</source>
-        <translation type="obsolete">ZS</translation>
+        <translation>ZS</translation>
     </message>
     <message>
         <location filename="Carmel3D/PourTraduction.py" line="5"/>
         <source>RepCarmel</source>
-        <translation type="obsolete">Carmel_Directory</translation>
+        <translation>Carmel_Directory</translation>
     </message>
     <message>
         <location filename="CarmelCND/PourTraductionCarmel.py" line="18"/>
         <source>TypedeFormule</source>
-        <translation type="obsolete">Formula</translation>
+        <translation>Formula</translation>
     </message>
     <message>
         <location filename="CarmelCND/PourTraductionCarmel.py" line="19"/>
         <source>Frequence</source>
-        <translation type="obsolete">Frequency</translation>
+        <translation>Frequency</translation>
     </message>
     <message>
         <location filename="CarmelCND/PourTraductionCarmel.py" line="20"/>
         <source>Nb_Max_Iterations</source>
-        <translation type="obsolete">Max_Nb_Iterations</translation>
+        <translation>Max_Nb_Iterations</translation>
     </message>
     <message>
         <location filename="CarmelCND/PourTraductionCarmel.py" line="21"/>
         <source>Erreur_Max</source>
-        <translation type="obsolete">Max_Error</translation>
+        <translation>Max_Error</translation>
     </message>
     <message>
         <location filename="generator/generator_python.py" line="112"/>
         <source>Format non implemente </source>
-        <translation type="obsolete">non implemented format</translation>
+        <translation>non implemented format</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/gereListe.py" line="193"/>
         <source>Fichier de donnees</source>
-        <translation type="obsolete">data file</translation>
+        <translation>data file</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/gereListe.py" line="193"/>
         <source>Tous les  Fichiers (*)</source>
-        <translation type="obsolete">all files (*)</translation>
+        <translation>all files (*)</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetCB.py" line="51"/>
         <source>Select</source>
-        <translation type="obsolete">select</translation>
+        <translation>select</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetPlusieursBase.py" line="226"/>
         <source>nb min de valeurs : </source>
-        <translation type="obsolete">minimal number of values :</translation>
+        <translation>minimal number of values :</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetPlusieursBase.py" line="231"/>
         <source>nb max de valeurs atteint</source>
-        <translation type="obsolete">maximum number of values</translation>
+        <translation>maximum number of values</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/qtEficas.py" line="389"/>
         <source>Sauve Format Ligne</source>
-        <translation type="obsolete">save file in line format</translation>
+        <translation>save file in line format</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/qtSaisie.py" line="138"/>
         <source>Valeur du mot-clef enregistree</source>
-        <translation type="obsolete">value recorded</translation>
+        <translation>value recorded</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/qtSaisie.py" line="142"/>
         <source>Valeur du mot-clef non autorisee :</source>
-        <translation type="obsolete">unvalid value</translation>
+        <translation>unvalid value</translation>
     </message>
     <message>
         <location filename="Noyau/N_VALIDATOR.py" line="170"/>
         <source>%s n&apos;est pas un fichier valide</source>
-        <translation type="obsolete">%s is not a valid file</translation>
+        <translation>%s is not a valid file</translation>
     </message>
     <message>
         <location filename="Noyau/N_VALIDATOR.py" line="1554"/>
         <source>: verifie les types dans un tuple</source>
-        <translation type="obsolete">valids type in a tuple</translation>
+        <translation>valids type in a tuple</translation>
     </message>
     <message>
         <location filename="Noyau/N_VALIDATOR.py" line="1557"/>
         <source>Les types entres ne sont pas permis</source>
-        <translation type="obsolete">unvalid type for values</translation>
+        <translation>unvalid type for values</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monFonctionPanel.py" line="62"/>
         <source>La cardinalite n&apos;est pas correcte, la derniere valeur est ignoree</source>
-        <translation type="obsolete">unvalid multiplicity. last value will be ignored</translation>
+        <translation>unvalid multiplicity. last value will be ignored</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monFonctionPanel.py" line="110"/>
         <source> n est pas un tuple de </source>
-        <translation type="obsolete">is not a tuple</translation>
+        <translation>is not a tuple</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monFonctionPanel.py" line="112"/>
         <source> valeurs</source>
-        <translation type="obsolete"> values </translation>
+        <translation> values </translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetCreeParam.py" line="96"/>
         <source>Valeur incorrecte</source>
-        <translation type="obsolete">incorrect value</translation>
+        <translation>incorrect value</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetCreeParam.py" line="105"/>
         <source> n est pas un identifiant correct
  </source>
-        <translation type="obsolete">is not a valid name</translation>
+        <translation>is not a valid name</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetMatrice.py" line="78"/>
         <source>Entrer un float SVP</source>
-        <translation type="obsolete">Float expected</translation>
+        <translation>Float expected</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetMatrice.py" line="83"/>
         <source>Entrer un float inferieur a </source>
-        <translation type="obsolete">float lower than</translation>
+        <translation>float lower than</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetMatrice.py" line="88"/>
         <source>Entrer un float superieur a </source>
-        <translation type="obsolete">float superior than</translation>
+        <translation>float superior than</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetMatrice.py" line="111"/>
         <source>Mauvaise execution </source>
-        <translation type="obsolete">bad run</translation>
+        <translation>bad run</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetMatrice.py" line="111"/>
         <source>impossible d executer la methode </source>
-        <translation type="obsolete">unable to run method</translation>
+        <translation>unable to run method</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetMatrice.py" line="135"/>
         <source>Mauvaise Commande </source>
-        <translation type="obsolete">bad command</translation>
+        <translation>bad command</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetMatrice.py" line="135"/>
         <source>Aucune variable connue</source>
-        <translation type="obsolete">no possible variable </translation>
+        <translation>no possible variable </translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetMatrice.py" line="183"/>
         <source>Mauvaise dimension de matrice</source>
-        <translation type="obsolete">bad matrix dimension</translation>
+        <translation>bad matrix dimension</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetMatrice.py" line="181"/>
         <source>le nombre de ligne n est pas egal a </source>
-        <translation type="obsolete">number of lines is not </translation>
+        <translation>number of lines is not </translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetMatrice.py" line="183"/>
         <source>le nombre de colonne n est pas egal a </source>
-        <translation type="obsolete">number of columns is not</translation>
+        <translation>number of columns is not</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetMatrice.py" line="191"/>
         <source>Mauvaise Valeur</source>
-        <translation type="obsolete">bad value</translation>
+        <translation>bad value</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetMatrice.py" line="191"/>
         <source>l element </source>
-        <translation type="obsolete">element</translation>
+        <translation>element</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetMatrice.py" line="191"/>
         <source>n est pas correct</source>
-        <translation type="obsolete">is not correct</translation>
+        <translation>is not correct</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetParam.py" line="94"/>
         <source>Modification Impossible</source>
-        <translation type="obsolete">unable to modify</translation>
+        <translation>unable to modify</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetParam.py" line="94"/>
         <source>le parametre n&apos;est pas valide</source>
-        <translation type="obsolete">parameter is not valid</translation>
+        <translation>parameter is not valid</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetParam.py" line="108"/>
         <source> n est pas un identifiant correct</source>
-        <translation type="obsolete">is not a correct name</translation>
+        <translation>is not a correct name</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetParam.py" line="127"/>
         <source>Valeur incorrecte: </source>
-        <translation type="obsolete">incorrect value :</translation>
+        <translation>incorrect value :</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetParam.py" line="130"/>
         <source>Valeur incorrecte </source>
-        <translation type="obsolete">incorrect value</translation>
+        <translation>incorrect value</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetParam.py" line="133"/>
         <source>Valeur correcte </source>
-        <translation type="obsolete">valid value</translation>
+        <translation>valid value</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetSDCOInto.py" line="77"/>
         <source>impossible d&apos;evaluer : </source>
-        <translation type="obsolete">unable to evaluate :</translation>
+        <translation>unable to evaluate :</translation>
     </message>
     <message>
         <location filename="Extensions/parametre_eval.py" line="170"/>
         <source>Un concept de nom %s existe d&#xe9;j&#xe0; !</source>
-        <translation type="obsolete">already existing concept with name : %s !</translation>
+        <translation>already existing concept with name : %s !</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetCreeParam.py" line="109"/>
         <source> existe deja
  </source>
-        <translation type="obsolete">already exists</translation>
+        <translation>already exists</translation>
     </message>
     <message>
         <location filename="Ihm/I_MCSIMP.py" line="624"/>
         <source>La matrice n&apos;a pas le bon entete</source>
-        <translation type="obsolete">header does not match with matrix</translation>
+        <translation>header does not match with matrix</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/browser.py" line="463"/>
         <source>le mot clef </source>
-        <translation type="obsolete">keyword </translation>
+        <translation>keyword </translation>
     </message>
     <message>
         <location filename="InterfaceQT4/browser.py" line="455"/>
         <source> doit etre insere avant </source>
-        <translation type="obsolete"> has to be inserted before </translation>
+        <translation> has to be inserted before </translation>
     </message>
     <message>
         <location filename="InterfaceQT4/browser.py" line="464"/>
         <source>insertion impossible</source>
-        <translation type="obsolete">unable to insert keyword</translation>
+        <translation>unable to insert keyword</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/browser.py" line="463"/>
         <source> doit etre insere apres </source>
-        <translation type="obsolete"> has to be inserted after </translation>
+        <translation> has to be inserted after </translation>
     </message>
     <message>
         <location filename="InterfaceQT4/monWidgetPlusieursTuple.py" line="244"/>
         <source>Nb maximum de valeurs atteint</source>
-        <translation type="obsolete">Maximal number of values </translation>
+        <translation>Maximal number of values </translation>
     </message>
     <message>
         <location filename="InterfaceQT4/gereRegles.py" line="58"/>
         <source>pas de regle de construction pour ce jeu de commandes</source>
-        <translation type="obsolete">No specific rules for building this dataset</translation>
+        <translation>No specific rules for building this dataset</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/qtEficas.py" line="260"/>
         <source>Gestion Maillage</source>
-        <translation type="obsolete">Mesh Menu</translation>
+        <translation>Mesh Menu</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/qtEficas.py" line="401"/>
         <source>Acquiert groupe mailles</source>
-        <translation type="obsolete">Read elements mesh</translation>
+        <translation>Read elements mesh</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/qtEficas.py" line="406"/>
         <source>Acquisition Groupe Maille</source>
-        <translation type="obsolete">Read elements mesh</translation>
+        <translation>Read elements mesh</translation>
     </message>
     <message>
         <location filename="Carmel3D/PourTraduction.py" line="1"/>
         <source>VERSION</source>
-        <translation type="obsolete">VERSION_EN</translation>
+        <translation>VERSION_EN</translation>
     </message>
     <message>
         <location filename="Carmel3D/PourTraduction.py" line="2"/>
         <source>NUM</source>
-        <translation type="obsolete">NUMBER</translation>
+        <translation>NUMBER</translation>
     </message>
     <message>
         <location filename="Carmel3D/PourTraduction.py" line="3"/>
         <source>FILETYPE</source>
-        <translation type="obsolete">FILETYPE</translation>
+        <translation>FILETYPE</translation>
     </message>
     <message>
         <location filename="Carmel3D/PourTraduction.py" line="4"/>
         <source>PARAMETERS</source>
-        <translation type="obsolete">Parametres</translation>
+        <translation>Parametres</translation>
     </message>
     <message>
         <location filename="Carmel3D/PourTraduction.py" line="6"/>
         <source>Fichier_maillage</source>
-        <translation type="obsolete">FichierMaillage</translation>
+        <translation>FichierMaillage</translation>
     </message>
     <message>
         <location filename="Carmel3D/PourTraduction.py" line="7"/>
         <source>Echelle_du_maillage</source>
-        <translation type="obsolete">MeshScale</translation>
+        <translation>MeshScale</translation>
     </message>
     <message>
         <location filename="Carmel3D/PourTraduction.py" line="8"/>
         <source>Formulation</source>
-        <translation type="obsolete">Fomulation</translation>
+        <translation>Fomulation</translation>
     </message>
     <message>
         <location filename="Carmel3D/PourTraduction.py" line="9"/>
         <source>Timeproblem</source>
-        <translation type="obsolete">TimeProblem</translation>
+        <translation>TimeProblem</translation>
     </message>
     <message>
         <location filename="Carmel3D/PourTraduction.py" line="10"/>
         <source>spectral </source>
-        <translation type="obsolete">EssaiSpectral</translation>
+        <translation>EssaiSpectral</translation>
     </message>
     <message>
         <location filename="Carmel3D/PourTraduction.py" line="11"/>
         <source>Basis</source>
-        <translation type="obsolete">Basis</translation>
+        <translation>Basis</translation>
     </message>
     <message>
         <location filename="Carmel3D/PourTraduction.py" line="12"/>
         <source>Fourier</source>
-        <translation type="obsolete">Fourier</translation>
+        <translation>Fourier</translation>
     </message>
     <message>
         <location filename="Carmel3D/PourTraduction.py" line="13"/>
         <source>Ordre</source>
-        <translation type="obsolete">Ordre</translation>
+        <translation>Ordre</translation>
     </message>
     <message>
         <location filename="Carmel3D/PourTraduction.py" line="14"/>
         <source>FREQUENCY</source>
-        <translation type="obsolete">Frequency</translation>
+        <translation>Frequency</translation>
     </message>
     <message>
         <location filename="Carmel3D/PourTraduction.py" line="15"/>
         <source>minimisation</source>
-        <translation type="obsolete">Minimisation</translation>
+        <translation>Minimisation</translation>
     </message>
     <message>
         <location filename="Carmel3D/PourTraduction.py" line="16"/>
         <source>no</source>
-        <translation type="obsolete">no</translation>
+        <translation>no</translation>
     </message>
     <message>
         <location filename="Carmel3D/PourTraduction.py" line="17"/>
         <source>yes</source>
-        <translation type="obsolete">yes</translation>
+        <translation>yes</translation>
     </message>
     <message>
         <location filename="Carmel3D/PourTraduction.py" line="18"/>
         <source>nb_procs_para</source>
-        <translation type="obsolete">NbProcs</translation>
+        <translation>NbProcs</translation>
     </message>
     <message>
         <location filename="monCode/EssaiTraduction.py" line="1"/>
         <source>POLYMER</source>
-        <translation type="obsolete">Polymer_en_Anglais</translation>
+        <translation>Polymer_en_Anglais</translation>
     </message>
     <message>
         <location filename="monCode/EssaiTraduction.py" line="2"/>
         <source>MODEL_DATABASE</source>
-        <translation type="obsolete">MoDEL_DATa_Anglais</translation>
+        <translation>MoDEL_DATa_Anglais</translation>
     </message>
 </context>
 <context>
@@ -2428,17 +2432,17 @@ p, li { white-space: pre-wrap; }
     <message>
         <location filename="InterfaceQT4/qtEficas_with_log.py" line="158"/>
         <source>Execution</source>
-        <translation type="obsolete">Run</translation>
+        <translation>Run</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/qtEficas_with_log.py" line="166"/>
         <source>Execution </source>
-        <translation type="obsolete">Run</translation>
+        <translation>Run</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/qtEficas_with_log.py" line="326"/>
         <source>Patrons</source>
-        <translation type="obsolete">Patterns</translation>
+        <translation>Patterns</translation>
     </message>
     <message>
         <location filename="myMain.ui" line="120"/>
@@ -2528,12 +2532,12 @@ p, li { white-space: pre-wrap; }
     <message>
         <location filename="InterfaceQT4/qtEficas_with_log.py" line="176"/>
         <source>Save Run</source>
-        <translation type="obsolete">Save run</translation>
+        <translation>Save run</translation>
     </message>
     <message>
         <location filename="InterfaceQT4/qtEficas.py" line="184"/>
         <source>Run</source>
-        <translation type="obsolete">run</translation>
+        <translation>run</translation>
     </message>
     <message>
         <location filename="myMain.ui" line="243"/>
@@ -2555,13 +2559,9 @@ p, li { white-space: pre-wrap; }
         <source>Afficher l&apos;Arbre</source>
         <translation>Show dataset tree</translation>
     </message>
-</context>
-<context>
-    <name>JDCEditor</name>
     <message>
-        <location filename="InterfaceQT4/editor.py" line="944"/>
         <source>&amp;Abandonner</source>
-        <translation type="obsolete">&amp;Cancel</translation>
+        <translation>&amp;Cancel</translation>
     </message>
 </context>
 <context>
@@ -2772,7 +2772,7 @@ p, li { white-space: pre-wrap; }
     <message>
         <location filename="UiQT4/desWidgetCommentaire.ui" line="147"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; color:#0000ff;&quot;&gt;Commentaire&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
-        <translation type="obsolete">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; color:#0000ff;&quot;&gt;Comment&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; color:#0000ff;&quot;&gt;Comment&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
     </message>
     <message>
         <location filename="desWidgetCommentaire.ui" line="330"/>
@@ -2787,7 +2787,7 @@ p, li { white-space: pre-wrap; }
     <message encoding="UTF-8">
         <location filename="UiQT4/desWidgetCommentaire.ui" line="182"/>
         <source>Détruit le commentaire</source>
-        <translation type="obsolete">Delete the comment</translation>
+        <translation>Delete the comment</translation>
     </message>
     <message>
         <location filename="desWidgetCommentaire.ui" line="339"/>
@@ -3221,7 +3221,7 @@ p, li { white-space: pre-wrap; }
     <message encoding="UTF-8">
         <location filename="UiQT4/desWidgetParam.ui" line="176"/>
         <source>Détruit le commentaire</source>
-        <translation type="obsolete">Delete the comment</translation>
+        <translation>Delete the comment</translation>
     </message>
     <message>
         <location filename="desWidgetParam.ui" line="568"/>
@@ -3440,7 +3440,7 @@ p, li { white-space: pre-wrap; }
     <message>
         <location filename="UiQT4/desWidgetPlusieursIntoOrdonne.ui" line="228"/>
         <source>TextLabel</source>
-        <translation type="obsolete">TextLabel</translation>
+        <translation>TextLabel</translation>
     </message>
     <message>
         <location filename="desWidgetPlusieursIntoOrdonne.ui" line="618"/>
diff --git a/UiQT5/eficas_fr.qm b/UiQT5/eficas_fr.qm
new file mode 100644 (file)
index 0000000..9dad8df
Binary files /dev/null and b/UiQT5/eficas_fr.qm differ
index 26143fd3c88b72b652bcdb6842370827a70ec8f6..31f48bb064bb073de73c27a9f932ec90c56b173a 100644 (file)
@@ -1,6 +1,7 @@
 # coding=utf-8
+# person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# Copyright (C) 2007-2021   EDF R&D
+# COPYRIGHT (C) 2007-2021  EDF R&D                  
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
@@ -20,8 +21,8 @@
 
 
 from __future__ import absolute_import
-try : 
-   from builtins import object
+try :
+    from builtins import object
 except : pass
 
 class AU_MOINS_UN(object):
index 8e1bd7ab00e1b701d833237b5a488f6b0f6c817c..2bb1f303ec6a62c4f159aac9f0385258e52a6700 100644 (file)
@@ -1,6 +1,7 @@
 # coding=utf-8
+# person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# Copyright (C) 2007-2021   EDF R&D
+# COPYRIGHT (C) 2007-2021  EDF R&D                  
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
@@ -18,8 +19,8 @@
 
 
 from __future__ import absolute_import
-try : 
-   from builtins import object
+try :
+    from builtins import object
 except : pass
 
 class AU_PLUS_UN(object):
index fe9fa9903476fc9fe62e1876e497e89b85c6d9eb..5f417fc47cd47bc0ddefe8fd1d1895ce8da1b9a8 100644 (file)
@@ -1,6 +1,7 @@
 # coding=utf-8
+# person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# Copyright (C) 2007-2021   EDF R&D
+# COPYRIGHT (C) 2007-2021  EDF R&D                  
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
 from __future__ import print_function
 from __future__ import absolute_import
 try :
-  from builtins import str
-  from builtins import object
-except : 
-  pass
+    from builtins import str
+    from builtins import object
+except :
+    pass
 
 class A_CLASSER(object):
 
index be325af7acf0f0a11b8826a86a8e35cd8f7648f5..b8dd83fcdde9e32124bf17561805a0e72b2ca28f 100644 (file)
@@ -1,6 +1,7 @@
 # coding=utf-8
+# person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# Copyright (C) 2007-2021   EDF R&D
+# COPYRIGHT (C) 1991 - 2017  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
@@ -20,8 +21,8 @@
 
 
 from __future__ import absolute_import
-try : 
-   from builtins import object
+try :
+    from builtins import object
 except : pass
 
 class ENSEMBLE(object):
index d2797a104ad1539dc8ed1bd76b325d3dcaa67c34..2d3d2b5251c00c828132791351397589eedbbed9 100644 (file)
@@ -1,6 +1,6 @@
 # coding=utf-8
 # ======================================================================
-# Copyright (C) 2007-2021   EDF R&D
+# COPYRIGHT (C) 2007-2021  EDF R&D                  
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
@@ -114,14 +114,22 @@ class ETAPE(V_MCCOMPO.MCCOMPO):
             - produire un compte-rendu : self.cr
 
         """
-        if CONTEXT.debug:
-            print(("ETAPE.isValid ", self.nom))
+        #if CONTEXT.debug:
+        #if 1 :
+        #   print(("ETAPE.isValid ", self.nom, self.state))
+        #   import traceback
+        #   traceback.print_stack()
         if self.state == 'unchanged':
             return self.valid
         else:
             valid = self.validChild()
             valid = valid * self.validRegles(cr)
-
+            if cr == 'oui' :
+                if not hasattr(self,'cr') :
+                    from Noyau.N_CR import CR
+                    self.cr=CR()
+                else :
+                    self.cr.purge()
             if self.reste_val != {}:
                 if cr == 'oui':
                     self.cr.fatal(
index e1c323718f23ec5671988852659ee1db884a0a00..ba1d6fc6fe253a894984f4fd954a97efd69b2d12 100644 (file)
@@ -1,6 +1,7 @@
 # coding=utf-8
+# person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# Copyright (C) 2007-2021   EDF R&D
+# COPYRIGHT (C) 2007-2021  EDF R&D                  
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
@@ -20,8 +21,8 @@
 
 
 from __future__ import absolute_import
-try : 
-   from builtins import object
+try :
+    from builtins import object
 except : pass
 
 class EXCLUS(object):
index 179aa96c3e21471e7fb44597d943807ac6d1fa91..23bfa89f4dc718ba5897691a45c2ccc125d2c1ca 100644 (file)
@@ -1,6 +1,7 @@
 # coding=utf-8
+# person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# Copyright (C) 2007-2021   EDF R&D
+# COPYRIGHT (C) 2007-2021  EDF R&D                  
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
index c56f91cd02510db756c6a0157d97f5919f673360..7b8e0a9e764f8c658abc55af653a34cbdb008705 100644 (file)
@@ -1,6 +1,7 @@
 # coding=utf-8
+# person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# Copyright (C) 2007-2021   EDF R&D
+# COPYRIGHT (C) 2007-2021  EDF R&D                  
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
index 250ec50af3ffe65dc72102701dacf088b84935e3..dad07df4dfb2a62c2385bfc956152f1575eb637f 100644 (file)
@@ -1,6 +1,7 @@
 # coding=utf-8
+# person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# Copyright (C) 2007-2021   EDF R&D
+# COPYRIGHT (C) 2007-2021  EDF R&D                  
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
index 1f2dec0f10ea579723e9fc8b655b8b1a6835dd30..7653734ed27a0e818bb5d0d54adebfff7514d3b2 100644 (file)
@@ -1,6 +1,7 @@
 # coding=utf-8
+# person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# Copyright (C) 2007-2021   EDF R&D
+# COPYRIGHT (C) 2007-2021  EDF R&D                  
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
@@ -27,8 +28,8 @@ from __future__ import print_function
 # Modules Python
 from __future__ import absolute_import
 try :
-  from builtins import str
-  from builtins import object
+    from builtins import str
+    from builtins import object
 except : pass
 
 import os
index 91ac6a271e3bc477d73874c2076eb086036f7083..0567294efeb6ba71060493a65a6526e210d32cf0 100644 (file)
@@ -1,6 +1,7 @@
 # coding=utf-8
+# person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# Copyright (C) 2007-2021   EDF R&D
+# COPYRIGHT (C) 2007-2021  EDF R&D                  
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
index 9e3beb6ea674414a0764a35f35c4e784f6211b10..875c741decad46cbc589d5c0b98fab5d76d08014 100644 (file)
@@ -1,6 +1,7 @@
 # coding=utf-8
+# person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# Copyright (C) 2007-2021   EDF R&D
+# COPYRIGHT (C) 2007-2021  EDF R&D                  
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
@@ -30,8 +31,8 @@
 # Modules Python
 from __future__ import print_function
 from __future__ import absolute_import
-try : 
-  from builtins import object
+try :
+    from builtins import object
 except : pass
 
 import traceback
index 1e5fdbc0a87d54f4dd58b3458e117d72f3926f30..49df4914b59ee209bc1c1c057253266ef4b76796 100644 (file)
@@ -1,6 +1,7 @@
 # coding=utf-8
+# person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# Copyright (C) 2007-2021   EDF R&D
+# COPYRIGHT (C) 2007-2021  EDF R&D                  
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
@@ -29,8 +30,8 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
-   from builtins import object
+    from builtins import str
+    from builtins import object
 except : pass
 import traceback
 
@@ -56,6 +57,7 @@ class MCSIMP(object):
 
            - Est il indispensable de faire l'evaluation de la valeur dans le contexte
              du jdc dans cette classe.
+             oui surtout pour les filtres et les validateurs
 
            - Ne pourrait on pas doter les objets en presence des methodes suffisantes
              pour eviter les tests un peu particuliers sur GEOM, PARAMETRE et autres. J'ai
@@ -112,10 +114,10 @@ class MCSIMP(object):
             # Ajout PN
             # Pour tenir compte des Tuples
             if hasattr(self.definition.type[0],'ntuple') :
-               try :
-                  if (not (type(lval[0]) is tuple)) and (not (type(lval[0]) is list)) : lval=(lval,)
-               except :
-                  pass
+                try :
+                    if (not (type(lval[0]) is tuple)) and (not (type(lval[0]) is list)) : lval=(lval,)
+                except :
+                    pass
             if lval is None:
                 valid = 0
                 if cr == 'oui':
index a5c12a4d97cbfb8c9d205aa25927415cc986ac4a..feb49dc63a87d75a0ced786637777c3090b1f0d5 100644 (file)
@@ -1,6 +1,6 @@
 # coding=utf-8
 # ======================================================================
-# Copyright (C) 2007-2021   EDF R&D
+# COPYRIGHT (C) 2007-2021  EDF R&D                  
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
@@ -19,8 +19,8 @@
 
 
 from __future__ import absolute_import
-try : 
-   from builtins import object
+try :
+    from builtins import object
 except : pass
 
 class MEME_NOMBRE(object):
index d6768f985c169dc7cc15037c9304e137f9535f0e..cf8cc210bf6a6c636d27a509bab8369c2988345f 100644 (file)
@@ -1,6 +1,7 @@
 # coding=utf-8
+# person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# Copyright (C) 2007-2021   EDF R&D
+# COPYRIGHT (C) 2007-2021  EDF R&D                  
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
@@ -21,7 +22,7 @@
 
 from __future__ import absolute_import
 try :
-   from builtins import object
+    from builtins import object
 except : pass
 
 class PRESENT_ABSENT(object):
index ee9c3a459ed94e2afb882161ad8c865bcf88118b..fe839d9e49de6a0aef7db6d3cc002cc5fd60e504 100644 (file)
@@ -1,6 +1,7 @@
 # coding=utf-8
+# person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# Copyright (C) 2007-2021   EDF R&D
+# COPYRIGHT (C) 2007-2021  EDF R&D                  
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
@@ -20,8 +21,8 @@
 
 
 from __future__ import absolute_import
-try : 
-   from builtins import object
+try :
+    from builtins import object
 except : pass
 
 class PRESENT_PRESENT(object):
index 175973b14390a7009c92ce45a97d0d2398af279a..63e55b76abd601e910e329f0635ee301e426cc3c 100644 (file)
@@ -1,6 +1,7 @@
 # coding=utf-8
+# person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# Copyright (C) 2007-2021   EDF R&D
+# COPYRIGHT (C) 2007-2021  EDF R&D                  
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
@@ -64,7 +65,10 @@ class PROC_ETAPE(V_ETAPE.ETAPE):
             valid = self.validChild()
             valid = valid * self.validRegles(cr)
             if self.reste_val != {}:
-                if cr == 'oui':
+                if not hasattr(self,'cr') :
+                    from Noyau.N_CR import CR
+                    self.cr=CR()
+                if  cr == 'oui':
                     self.cr.fatal(
                         tr("unknown keywords : %s") % ','.join(list(self.reste_val.keys())))
                 valid = 0
index 7a84cf5c0cbfe6934dabd20aa4e1108108fdcd3e..2b7780e53f76ca1159a5ad8f524ce847fe4a7dae 100644 (file)
@@ -1,6 +1,7 @@
 # coding=utf-8
+# person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# Copyright (C) 2007-2021   EDF R&D
+# COPYRIGHT (C) 2007-2021  EDF R&D                  
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
@@ -20,8 +21,8 @@
 
 
 from __future__ import absolute_import
-try : 
-   from builtins import object
+try :
+    from builtins import object
 except : pass
 
 class UN_PARMI(object):
index 5e849d2898de8d8ec09646cd7da213ea0b5832a5..b743c777c4eb507f972df157c5f450827c14e9d5 100644 (file)
@@ -18,8 +18,8 @@
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 """
-   Ce package contient la fonctionnalité de validation des objets de type OBJECT. 
+   Ce package contient la fonctionnalité de validation des objets de type OBJECT.
    Cette fonctionnalité est implémentée sous la forme de classes de type MIXIN qui
-   doivent etre combinées aux classes de bases de Noyau par héritage multiple dans 
+   doivent etre combinées aux classes de bases de Noyau par héritage multiple dans
    un troisième package, en général, Accas.
 """
index 08f74e6cb41e28e899af37fa59889e84e23bbaef..a4dadfdd77c5d997a7ce914d07ceca0f2f3b55bc 100644 (file)
@@ -13,33 +13,33 @@ monDico= { 'Equation_Liste' : ('initiation', 'propagation', 'termination', 'stab
          }\r
 \r
 class Tuple:\r
-  def __init__(self,ntuple):\r
-    self.ntuple=ntuple\r
+    def __init__(self,ntuple):\r
+        self.ntuple=ntuple\r
 \r
-  def __convert__(self,valeur):\r
-    if type(valeur) == types.StringType: return None\r
-    if len(valeur) != self.ntuple: return None\r
-    return valeur\r
+    def __convert__(self,valeur):\r
+        if type(valeur) == types.StringType: return None\r
+        if len(valeur) != self.ntuple: return None\r
+        return valeur\r
 \r
-  def info(self):\r
-    return "Tuple de %s elements" % self.ntuple\r
+    def info(self):\r
+        return "Tuple de %s elements" % self.ntuple\r
 \r
-  __repr__=info\r
-  __str__=info\r
+    __repr__=info\r
+    __str__=info\r
 \r
 #class ObjetUtilisateur(ASSD): pass\r
 \r
 class classeVisuEquation :\r
-   def __init__(self,dicoListeAffiche, listEquation, listModele,listPostTraitement):\r
-      self.dicoListeAffiche=dicoListeAffiche\r
-      self.listEquation=listEquation\r
-      self.listModele=listModele\r
-      self.listPostTraitement=listPostTraitement\r
-   \r
+    def __init__(self,dicoListeAffiche, listEquation, listModele,listPostTraitement):\r
+        self.dicoListeAffiche=dicoListeAffiche\r
+        self.listEquation=listEquation\r
+        self.listModele=listModele\r
+        self.listPostTraitement=listPostTraitement\r
+\r
 \r
 def maFunc():\r
     return ('a1','a2','a3')\r
-     \r
+\r
 def maFuncWithArg(monMC):\r
     if hasattr(monMC,'dsMaFunct') and monMC.dsMaFunct== True : return\r
     monMC.dsMaFunct = True\r
@@ -50,9 +50,9 @@ def maFuncWithArg(monMC):
 \r
     change=editor.changeIntoDefMC('AGING', ('Equation', 'b_approved','b_type_creation','Equation_Modification','Type2'), monInto )\r
     if change :\r
-       print ('j ai change le into')\r
-       editor.reCalculeValiditeMCApresChgtInto('AGING', 'Type2', ('Equation', 'b_approved','b_type_creation','Equation_Modification')) \r
-       if editor.fenetreCentraleAffichee : editor.fenetreCentraleAffichee.node.affichePanneau()\r
+        print ('j ai change le into')\r
+        editor.reCalculeValiditeMCApresChgtInto('AGING', 'Type2', ('Equation', 'b_approved','b_type_creation','Equation_Modification'))\r
+        if editor.fenetreCentraleAffichee : editor.fenetreCentraleAffichee.node.affichePanneau()\r
 \r
     monMC.dsMaFunct = False\r
 \r
@@ -64,7 +64,7 @@ def recupereDicoGenerique(monMC):
     if valeurDB == None : valeurDB=editor.getValeur('Modele','Modele_DB',())\r
     correspond=pckdb.DBRENAME\r
     if valeurDB != None :\r
-       listEquation, listModele,listPostTraitement=pckdb.read_pckdb(correspond[valeurDB])\r
+        listEquation, listModele,listPostTraitement=pckdb.read_pckdb(correspond[valeurDB])\r
     monMC.dsMaFunct = False\r
     return listEquation, listModele,listPostTraitement\r
 \r
@@ -76,7 +76,7 @@ def recupereDicoEquation(monMC):
     valeurEquationListe=editor.getValeur('Equation','Equation_Liste',('b_type_show',))\r
     valeurAgingType=editor.getValeur('Equation','Equation_reaction',('b_type_show','b_reaction_type',))\r
     if valeurAgingType == None :\r
-       valeurAgingType=editor.getValeur('Equation','Equation_reaction',('b_type_show','b_aging_type',))\r
+        valeurAgingType=editor.getValeur('Equation','Equation_reaction',('b_type_show','b_aging_type',))\r
     if valeurAgingType == None : monMC.dsMaFunct = False; return\r
 \r
     listeEquationPourIhm = []\r
@@ -84,19 +84,19 @@ def recupereDicoEquation(monMC):
     dicoListeAffiche={}\r
     for equation in listEquation :\r
         if valeurEquationListe == 'aging_type' :\r
-           if equation.type_vieil == valeurAgingType : \r
-              listeEquationPourIhm.append(equation)\r
-              listeReprEquationPourIhm.append(equation.representation)\r
-              dicoListeAffiche[equation.representation]=equation\r
+            if equation.type_vieil == valeurAgingType :\r
+                listeEquationPourIhm.append(equation)\r
+                listeReprEquationPourIhm.append(equation.representation)\r
+                dicoListeAffiche[equation.representation]=equation\r
         else:\r
-           if equation.type_react == valeurAgingType : \r
-              listeEquationPourIhm.append(equation)\r
-              listeReprEquationPourIhm.append(equation.representation)\r
-              dicoListeAffiche[equation.representation]=equation\r
+            if equation.type_react == valeurAgingType :\r
+                listeEquationPourIhm.append(equation)\r
+                listeReprEquationPourIhm.append(equation.representation)\r
+                dicoListeAffiche[equation.representation]=equation\r
     change=editor.changeIntoDefMC('Equation', ('b_type_show','ListeEquation'), listeReprEquationPourIhm )\r
     if change :\r
-       editor.reCalculeValiditeMCApresChgtInto('Equation', 'listeEquation', ('b_type_show',)) \r
-       if editor.fenetreCentraleAffichee : editor.fenetreCentraleAffichee.node.affichePanneau()\r
+        editor.reCalculeValiditeMCApresChgtInto('Equation', 'listeEquation', ('b_type_show',))\r
+        if editor.fenetreCentraleAffichee : editor.fenetreCentraleAffichee.node.affichePanneau()\r
     editor.maClasseVisuEquation = classeVisuEquation(dicoListeAffiche,listEquation, listModele,listPostTraitement)\r
     monMC.dsMaFunct = False\r
 \r
@@ -104,12 +104,12 @@ def afficheValeurEquation(monMC):
     if hasattr(monMC,'dsMaFunct') and monMC.dsMaFunct== True : return\r
     editor=monMC.jdc.editor\r
     valeur=monMC.valeur\r
-    if valeur == None : \r
-       monMC.dsMaFunct = False\r
-       return\r
+    if valeur == None :\r
+        monMC.dsMaFunct = False\r
+        return\r
     editor.maClasseVisuEquation.valeurEquationChoisie=valeur\r
     monMC.dsMaFunct = False\r
-              \r
+\r
 \r
 def instancieChemicalFormulation(monMC):\r
     if hasattr(monMC,'dsMaFunct') and monMC.dsMaFunct== True : return\r
@@ -130,7 +130,7 @@ def instancieChemicalFormulation(monMC):
     change=editor.changeDefautDefMC('Equation', ('b_type_show','b_modification','b_modif','Aging_Type'), type_vieil )\r
 \r
     for index,valeurConstituant in enumerate(monEquation.constituants):\r
-        valeurEquation=monEquation.equation[index] \r
+        valeurEquation=monEquation.equation[index]\r
         editor.ajoutMC(monMC.etape,'OptionnelConstituant',None,('b_type_show','b_modification','b_modif',))\r
         print (index,valeurConstituant,valeurEquation)\r
 \r
@@ -138,11 +138,11 @@ def instancieChemicalFormulation(monMC):
             #    Constituant = SIMP (statut = 'o', typ = 'TXM'),\r
             #    Differential_Equation =  SIMP(statut= 'o',typ= 'TXM'),\r
     for index,valeurConstituant in enumerate(monEquation.const_cine_nom):\r
-         valeurArrhe=monEquation.arrhenius[index] \r
-         if valeurArrhe : valeurConstanteType='Arrhenius type'\r
-         else           : valeurConstanteType='non Arrhenius type'\r
+        valeurArrhe=monEquation.arrhenius[index]\r
+        if valeurArrhe : valeurConstanteType='Arrhenius type'\r
+        else           : valeurConstanteType='non Arrhenius type'\r
 \r
-         print (index,valeurConstituant,valeurConstanteType)\r
+        print (index,valeurConstituant,valeurConstanteType)\r
             #OptionnelleConstante  = FACT (statut = 'f', max = '**',\r
             #     ConstanteName= SIMP (statut = 'o', typ = 'TXM',),\r
             #    ConstanteType =  SIMP(statut= 'o',typ= 'TXM', min=1,into=('Arrhenius type','non Arrhenius type'),defaut='Arrhenius type'),\r
@@ -152,8 +152,8 @@ def instancieChemicalFormulation(monMC):
     if editor.fenetreCentraleAffichee : editor.fenetreCentraleAffichee.node.affichePanneau()\r
     monMC.dsMaFunct = False\r
     editor.dsMaFunct = False\r
\r
-# TEMPORAIRE \r
+\r
+# TEMPORAIRE\r
 # TODO TODO TODO\r
 # PNPNPNPNPN\r
 \r
@@ -175,7 +175,7 @@ def creeListeEquation(monMC):
     if hasattr(monMC,'dsMaFunct') and monMC.dsMaFunct== True : return\r
 \r
     editor=monMC.jdc.editor\r
-# TEMPORAIRE \r
+# TEMPORAIRE\r
 # TODO TODO TODO\r
     listeEquationsAAfficher=[]\r
     listeConstantesAAfficher=[]\r
@@ -186,7 +186,7 @@ def creeListeEquation(monMC):
 \r
     monMC.dsMaFunct = False\r
 \r
-  #        listeEquation_stabilization=SIMP(statut='o', homo='SansOrdreNiDoublon', max='**', min=0 ),\r
+    #        listeEquation_stabilization=SIMP(statut='o', homo='SansOrdreNiDoublon', max='**', min=0 ),\r
 \r
 def recupereModeleEquation(monMC):\r
     if hasattr(monMC,'dsMaFunct') and monMC.dsMaFunct== True : return\r
@@ -198,12 +198,12 @@ def recupereModeleEquation(monMC):
     dicoListeEquationAAfficher={}\r
 \r
     for valeurReactionType in monDico['Equation_Liste']:\r
-      dicoListeEquationAAfficher[valeurReactionType] = [] \r
-      for index,equation in enumerate( editor.maClasseVisuEquation.listEquation):\r
-        if equation.type_react==valeurReactionType : \r
-           dicoListeEquationAAfficher[valeurReactionType].append(equation.representation)\r
+        dicoListeEquationAAfficher[valeurReactionType] = []\r
+        for index,equation in enumerate( editor.maClasseVisuEquation.listEquation):\r
+            if equation.type_react==valeurReactionType :\r
+                dicoListeEquationAAfficher[valeurReactionType].append(equation.representation)\r
     print (dicoListeEquationAAfficher)\r
-       \r
+\r
     change=editor.changeIntoDefMC('Modele', ('b_type_creation','b_ajout_equation','listeEquation_initiation'),dicoListeEquationAAfficher['initiation'] )\r
     change=editor.changeIntoDefMC('Modele', ('b_type_creation','b_ajout_equation','listeEquation_propagation'),dicoListeEquationAAfficher['propagation'] )\r
     change=editor.changeIntoDefMC('Modele', ('b_type_creation','b_ajout_equation','listeEquation_termination'),dicoListeEquationAAfficher['termination'] )\r
@@ -223,13 +223,13 @@ def prepareDiffusion(monMC):
     editor.dicoCoefD={}\r
     for c in maClasseDeModele.coef[0].keys() :\r
         if c[0]=='S':\r
-           clef=c[1:]\r
-           valeur= maClasseDeModele.coef[0][c]\r
-           editor.dicoCoefS[clef]=valeur\r
+            clef=c[1:]\r
+            valeur= maClasseDeModele.coef[0][c]\r
+            editor.dicoCoefS[clef]=valeur\r
         if c[0]=='D':\r
-           clef=c[1:]\r
-           valeur= maClasseDeModele.coef[0][c]\r
-           editor.dicoCoefD[clef]=valeur\r
+            clef=c[1:]\r
+            valeur= maClasseDeModele.coef[0][c]\r
+            editor.dicoCoefD[clef]=valeur\r
     print (editor.dicoCoefS,editor.dicoCoefD)\r
     monMC.dsMaFunct=False\r
     editor.dsMaFunct = False\r
@@ -250,7 +250,7 @@ def ajouteDiffusion(monMC):
         print (v)\r
         mesValeurs=editor.dicoCoefS[v]\r
         print (editor.dicoCoefS)\r
-        print (mesValeurs) \r
+        print (mesValeurs)\r
         MCFils='S'+v\r
         for e in monMC.jdc.etapes:\r
             if e.nom == Modele :break\r
@@ -269,7 +269,7 @@ JdC = JDC_CATA(code='VP',
                 )\r
 \r
 \r
-  \r
+\r
 #---------------------------------\r
 Equation = PROC (nom="Equation",\r
       op=None,\r
@@ -277,7 +277,7 @@ Equation = PROC (nom="Equation",
       Equation_DB=SIMP(statut= 'o',typ= 'TXM', into=("Approved data base", "My data base") ),\r
       Equation_Type = SIMP(statut= 'o',typ= 'TXM', into=("Show equation database", "Equation creation"),),\r
 \r
-      \r
+\r
 #     ---------------------------------------------------------------------------\r
        b_type_show = BLOC(condition = " Equation_Type == 'Show equation database'",\r
 #      ---------------------------------------------------------------------------\r
@@ -294,7 +294,7 @@ Equation = PROC (nom="Equation",
          ListeEquation = SIMP(statut='o', typ='TXM',  homo='SansOrdreNiDoublon',siValide=afficheValeurEquation),\r
          b_modification = BLOC(condition = " ListeEquation != None ",\r
            modification = SIMP(typ = bool, statut = 'o',defaut = False, fr='toto', ang='toto en anglais', siValide=instancieChemicalFormulation),\r
-           \r
+\r
            b_modif = BLOC(condition = "modification == True",\r
             Reaction_Type=SIMP(statut= 'o',typ= 'TXM', min=1,into=monDico['Equation_Liste'],),\r
             Aging_Type=SIMP(statut= 'o',typ= 'TXM', min=1,max='**', homo='SansOrdreNiDoublon', into=('All', 'thermo', 'radio'),),\r
@@ -310,7 +310,7 @@ Equation = PROC (nom="Equation",
             Commentaire =  SIMP (statut = 'f', typ = 'TXM', defaut = ' '),\r
 \r
            ),# fin b_modif\r
-         \r
+\r
          ), # fin b_modification\r
        ), # Fin b_type_show\r
 \r
@@ -319,7 +319,7 @@ Equation = PROC (nom="Equation",
       b_type_creation = BLOC(condition = " Equation_Type == 'Equation creation'",\r
 #         ---------------------------------------------------------------------------\r
          Equation_Modification = FACT ( statut = 'o',\r
\r
+\r
             ChemicalFormulation = SIMP(statut='o', typ='TXM', defaut = 'POOH -> 2P'),\r
 \r
             Reaction_Type=SIMP(statut= 'o',typ= 'TXM', min=1,into=monDico['Equation_Liste'],),\r
@@ -351,7 +351,7 @@ Equation = PROC (nom="Equation",
                   ),# fin ConstanteOptionnelle\r
             ), # fin constante\r
             Commentaire =  SIMP (statut = 'f', typ = 'TXM', defaut = ' '),\r
-                  \r
+\r
          ), # Fin Equation_Modification\r
 \r
                  #Chemical_Formulation =  SIMP(statut= 'o',typ= 'TXM', defaut = 'POOH->P',siValide=maFuncWithArg),\r
@@ -359,8 +359,8 @@ Equation = PROC (nom="Equation",
                  #Type2 = SIMP(statut='o', typ = 'TXM'),\r
 \r
         ),  # fin b_type_creation\r
-                 \r
-      \r
+\r
+\r
 ) # Fin Equation\r
 \r
 #---------------------------------\r
@@ -377,9 +377,9 @@ Modele = PROC (nom="Modele",
         stabilizer = SIMP(typ = bool, statut = 'o',defaut = maClasseDeModele.stabilise),\r
         model_developed_by_for_EDF = SIMP(typ = bool, statut = 'o',defaut = maClasseDeModele.dvt_EDF[0]),\r
         documentation=SIMP(statut='o',typ='TXM',defaut=maClasseDeModele.reference,),\r
-        \r
+\r
        # ajouter la liste des equations et le remove (il faut garder ceux qu on a enlever)\r
-      \r
+\r
 \r
        AjoutEquation=SIMP(statut= 'o',typ= bool, defaut=False, siValide=recupereModeleEquation),\r
        b_ajout_equation = BLOC(condition = " AjoutEquation == True",\r
@@ -388,7 +388,7 @@ Modele = PROC (nom="Modele",
           listeEquation_termination=SIMP(statut='o', typ='TXM',homo='SansOrdreNiDoublon', max='**', min=0, defaut=[] ),\r
           listeEquation_stabilization=SIMP(statut='o',typ='TXM', homo='SansOrdreNiDoublon', max='**', min=0, defaut=[] ),\r
        ),# fin b_ajout_equation\r
-       \r
+\r
         # coefficients maClasseDeModele.coef = liste de dictionnaire mais il faut prendre que le 0\r
         # on enleve ceux qui commence par D, S et B(casse imprtante)\r
         # la clef est le coef, puis les valeurs\r
@@ -399,9 +399,9 @@ Modele = PROC (nom="Modele",
         b_diffusion = BLOC(condition = " Diffusion == True",\r
          #coefficients maClasseDeModele.coef = liste de dictionnaire mais il faut prendre que le 0\r
         # on met ceux qui commence par D, S et pas les B ni les aitres( casse imprtante)\r
-           listeProduitPourLaDiffusion=SIMP(statut='o', typ='TXM', max='**', min=1,homo='SansOrdreNiDoublon', into = maClasseDeModele.param_ini.keys(),siValide=ajouteDiffusion), \r
+           listeProduitPourLaDiffusion=SIMP(statut='o', typ='TXM', max='**', min=1,homo='SansOrdreNiDoublon', into = maClasseDeModele.param_ini.keys(),siValide=ajouteDiffusion),\r
        ),  # fin b_diffusion\r
\r
+\r
        ),  # fin b_type_creation\r
 \r
 \r
index 87c0391867527cbd920064def518eb1cfec4e0c0..6aede499c461a1374379181677a2fa9d19f71e2f 100644 (file)
@@ -17,25 +17,25 @@ monPost=listesDB.sModele().monPost
 \r
 import types\r
 class Tuple:\r
-  def __init__(self,ntuple):\r
-    self.ntuple=ntuple\r
+    def __init__(self,ntuple):\r
+        self.ntuple=ntuple\r
 \r
-  def __convert__(self,valeur):\r
-    if type(valeur) == types.StringType:\r
-      return None\r
-    if len(valeur) != self.ntuple:\r
-      return None\r
-    return valeur\r
+    def __convert__(self,valeur):\r
+        if type(valeur) == types.StringType:\r
+            return None\r
+        if len(valeur) != self.ntuple:\r
+            return None\r
+        return valeur\r
 \r
-  def info(self):\r
-    return "Tuple de %s elements" % self.ntuple\r
+    def info(self):\r
+        return "Tuple de %s elements" % self.ntuple\r
 \r
 \r
 JdC = JDC_CATA(code='VP',\r
                execmodul=None,\r
                 )\r
 \r
-  \r
+\r
 #---------------------------------\r
 Equation = PROC (nom="Equation",\r
       op=None,\r
@@ -47,7 +47,7 @@ Equation = PROC (nom="Equation",
       #b_suite_2 = BLOC(condition = "Equation_DB ==  'Approved data base' ",\r
       #Equation_Type = SIMP(statut= 'o',typ= 'TXM', into=("Show equation database", ),),\r
       #),\r
-      \r
+\r
 #     ---------------------------------------------------------------------------\r
        b_type_show = BLOC(condition = " Equation_Type == 'Show equation database'",\r
 #      ---------------------------------------------------------------------------\r
@@ -65,7 +65,7 @@ Equation = PROC (nom="Equation",
          #ListeEquation = SIMP(statut='o', typ='TXM',  homo='SansOrdreNiDoublon'),\r
          b_modification = BLOC(condition = " ListeEquation != None ",\r
            modification = SIMP(typ = bool, statut = 'o',defaut = False, fr='toto', ang='toto en anglais', siValide=lienDB.instancieChemicalFormulation),\r
-           \r
+\r
            b_modif = BLOC(condition = "modification == True",\r
             Reaction_Type=SIMP(statut= 'o',typ= 'TXM', min=1,into=monDico['Equation_Liste'],),\r
             Aging_Type=SIMP(statut= 'o',typ= 'TXM', min=1,max='**', homo='SansOrdreNiDoublon', into=('All', 'thermo', 'radio'),),\r
@@ -83,7 +83,7 @@ Equation = PROC (nom="Equation",
 \r
 \r
            ),# fin b_modif\r
-         \r
+\r
          ), # fin b_modification\r
        ), # Fin b_type_show\r
 \r
@@ -92,7 +92,7 @@ Equation = PROC (nom="Equation",
       b_type_creation = BLOC(condition = " Equation_Type == 'Equation creation'",\r
 #         ---------------------------------------------------------------------------\r
          Equation_Modification = FACT ( statut = 'o',\r
\r
+\r
             ChemicalFormulation = SIMP(statut='o', typ='TXM', defaut = 'POOH -> 2P'),\r
 \r
             Reaction_Type=SIMP(statut= 'o',typ= 'TXM', min=1,into=monDico['Equation_Liste'],),\r
@@ -129,11 +129,11 @@ Equation = PROC (nom="Equation",
                   ),# fin ConstanteOptionnelle\r
             ), # fin constante\r
             Commentaire =  SIMP (statut = 'f', typ = 'TXM', defaut = ' '),\r
-                  \r
+\r
          ), # Fin Equation_Modification\r
         ),  # fin b_type_creation\r
-                 \r
-      \r
+\r
+\r
 ) # Fin Equation\r
 \r
 #---------------------------------\r
@@ -154,10 +154,10 @@ Modele = PROC (nom="Modele",
           # il faudrait que position=global_jdc fonctionne\r
           model_developed_by_for_EDF = SIMP(typ = bool, statut = 'o',defaut = monModele.dvt_EDF[0]),\r
           documentation=SIMP(statut='o',typ='TXM',defaut=monModele.reference,),\r
-        \r
+\r
        ), # fin ID\r
        # ajouter la liste des equations et le remove (il faut garder ceux qu on a enlever)\r
-      \r
+\r
       Chemical_Equation = FACT( statut='o',\r
        Initial_Equation_List=SIMP(statut='o',typ='TXM',max="**",homo='SansOrdreNiDoublon',into=[],defaut=[], siValide=lienDB.recupereModeleEquation),\r
 \r
@@ -168,13 +168,13 @@ Modele = PROC (nom="Modele",
           listeEquation_termination=SIMP(statut='o', typ='TXM',homo='SansOrdreNiDoublon', max='**', min=0, defaut=[],siValide=lienDB.ajoutDUneEquation ),\r
           listeEquation_stabilization=SIMP(statut='o',typ='TXM', homo='SansOrdreNiDoublon', max='**', min=0, defaut=[],siValide=lienDB.ajoutDUneEquation ),\r
        ),# fin b_ajout_equation\r
-       \r
+\r
       ), # fin Equation\r
         # coefficients monModele.coef = liste de dictionnaire mais il faut prendre que le 0\r
         # on enleve ceux qui commence par D, S et B(casse imprtante)\r
         # la clef est le coef, puis les valeurs\r
 \r
-      \r
+\r
       #b_material_thickness =  BLOC(condition = "material_thickness == 'thick'",\r
       # si position=global fonctionne\r
         Transport = FACT( statut = 'o',\r
@@ -182,15 +182,15 @@ Modele = PROC (nom="Modele",
         Diffusion = SIMP(typ = bool, statut = 'o',defaut = False ,siValide = lienDB.prepareDiffusion),\r
 \r
         b_diffusion = BLOC(condition = " Diffusion == True",\r
-           listeProduitPourLaDiffusion=SIMP(statut='o', typ='TXM', max='**', min=1,homo='SansOrdreNiDoublon', into = [],siValide=lienDB.ajouteDiffusion), \r
+           listeProduitPourLaDiffusion=SIMP(statut='o', typ='TXM', max='**', min=1,homo='SansOrdreNiDoublon', into = [],siValide=lienDB.ajouteDiffusion),\r
           ),  # fin b_diffusion\r
 \r
         Evaporation = SIMP(typ = bool, statut = 'o',defaut = False ,siValide = lienDB.prepareDiffusion),\r
         b_evaporation = BLOC(condition = " Evaporation == True",\r
-           listeProduitPourLEvaporation=SIMP(statut='o', typ='TXM', max='**', min=1,homo='SansOrdreNiDoublon', into = [],siValide=lienDB.ajouteEvaporation), \r
+           listeProduitPourLEvaporation=SIMP(statut='o', typ='TXM', max='**', min=1,homo='SansOrdreNiDoublon', into = [],siValide=lienDB.ajouteEvaporation),\r
          ),  # fin b_evaporation\r
\r
\r
+\r
+\r
          ),  # fin TRANSPORT\r
        #),  # fin b_material_thickness\r
 \r
@@ -235,7 +235,7 @@ Modele = PROC (nom="Modele",
 \r
 # il faut recopier toute la suite en changeant eventuellement le nom du modele\r
 # il faut cocher toutes les equations par defaut\r
-        \r
+\r
               ), # fin ID\r
              ), # fin b_type_modify\r
 #     ---------------------------------------------------------------------------\r
@@ -293,10 +293,10 @@ PostTraitement = PROC (nom="PostTraitement",
         results_units=SIMP(statut= 'o',typ= 'TXM', min=0,max='**', intoSug=monPost.results_units,defaut=monPost.results_units),\r
         #integrate=SIMP(statut= 'o',typ= 'TXM', min=0,max='**', intoSug=monPost.results_units,defaut=monPost.results_units),\r
         prerequisite=SIMP(statut= 'o',typ= 'TXM', min=0,max='**', intoSug=monPost.prerequisite,defaut=monPost.prerequisite),\r
-        \r
+\r
         ),\r
-        constituant=SIMP(statut= 'o',typ= 'TXM', min=0,max='**', intoSug=monPost.constituants,defaut=monPost.constituants) \r
-        \r
+        constituant=SIMP(statut= 'o',typ= 'TXM', min=0,max='**', intoSug=monPost.constituants,defaut=monPost.constituants)\r
+\r
       )# fin b_post_creation\r
 #         ---------------------------------------------------------------------------\r
 #---------------------------------\r
index b9b56fe0ffdafaa203382b58347dfbfc0fa3bc87..af6212934ed07e7a966a1be5b7a276553586ac42 100644 (file)
@@ -28,16 +28,15 @@ import os
 \r
 class CONFIG(configuration.CONFIG_BASE):\r
 \r
-  #-----------------------------------\r
-  def __init__(self,appli,repIni):\r
-  #-----------------------------------\r
+    #-----------------------------------\r
+    def __init__(self,appli,repIni):\r
+    #-----------------------------------\r
 \r
-      self.labels_user=['catalogues','lang']\r
-      self.labels_eficas=['lang','rep_cata','catalogues']\r
+        self.labels_user=['catalogues','lang']\r
+        self.labels_eficas=['lang','rep_cata','catalogues']\r
 \r
-      configuration.CONFIG_BASE.__init__(self,appli,repIni)\r
+        configuration.CONFIG_BASE.__init__(self,appli,repIni)\r
 \r
 \r
 def make_config(appli,rep):\r
     return CONFIG(appli,rep)\r
-\r
index b834fc4d93c77be8e9b8800b3efd85075b7d85cb..a53b62e213866f9039e2d5f1911f399dad63fc4b 100644 (file)
@@ -12,21 +12,21 @@ monPost=listesDB.sModele().monPost
 \r
 import types\r
 class Tuple:\r
-  def __init__(self,ntuple):\r
-    self.ntuple=ntuple\r
+    def __init__(self,ntuple):\r
+        self.ntuple=ntuple\r
 \r
-  def __convert__(self,valeur):\r
-    if type(valeur) == types.StringType:\r
-      return None\r
-    if len(valeur) != self.ntuple:\r
-      return None\r
-    return valeur\r
+    def __convert__(self,valeur):\r
+        if type(valeur) == types.StringType:\r
+            return None\r
+        if len(valeur) != self.ntuple:\r
+            return None\r
+        return valeur\r
 \r
-  def info(self):\r
-    return "Tuple de %s elements" % self.ntuple\r
+    def info(self):\r
+        return "Tuple de %s elements" % self.ntuple\r
 \r
-  __repr__=info\r
-  __str__=info\r
+    __repr__=info\r
+    __str__=info\r
 \r
 \r
 dicoAgingFactor={ '40years BR top' : {'temperature' : 50, 'simulationTime' : 350640}}\r
@@ -34,15 +34,15 @@ dicoAgingFactor={ '40years BR top' : {'temperature' : 50, 'simulationTime' : 350
 # --------------------------------------\r
 # Fonctions appellees depuis le catalogue\r
 # --------------------------------------\r
\r
+\r
 # --------------------------------------\r
 # Dans Equation\r
 # --------------------------------------\r
 \r
 def recupereDicoEquation(monMC):\r
-    # Equation_reaction (ds 2 blocs)\r
-    #  ou dans Equation b_type_show b_reaction_type\r
-    #  ou dans Equation b_type_show b_aging_type\r
+        # Equation_reaction (ds 2 blocs)\r
+        #  ou dans Equation b_type_show b_reaction_type\r
+        #  ou dans Equation b_type_show b_aging_type\r
 \r
     if hasattr(monMC,'dsMaFunct') and monMC.dsMaFunct== True : return\r
     editor=monMC.jdc.editor\r
@@ -55,30 +55,30 @@ def recupereDicoEquation(monMC):
     valeurEquationListe=editor.getValeur('Equation','Equation_Liste',('b_type_show',))\r
     valeurAgingType=editor.getValeur('Equation','Equation_reaction',('b_type_show','b_reaction_type',))\r
     if valeurAgingType == None :\r
-       valeurAgingType=editor.getValeur('Equation','Equation_reaction',('b_type_show','b_aging_type',))\r
+        valeurAgingType=editor.getValeur('Equation','Equation_reaction',('b_type_show','b_aging_type',))\r
     if valeurAgingType == None : monMC.dsMaFunct = False; return\r
 \r
     listeEquationPourIhm = []\r
     listeReprEquationPourIhm = []\r
     dicoListAffiche = {}\r
-   \r
+\r
     for equation in listEquation :\r
         if valeurEquationListe == 'aging_type' :\r
-           if equation.type_vieil == valeurAgingType : \r
-              listeEquationPourIhm.append(equation)\r
-              listeReprEquationPourIhm.append(equation.representation)\r
-              dicoListAffiche[equation.representation]=equation\r
+            if equation.type_vieil == valeurAgingType :\r
+                listeEquationPourIhm.append(equation)\r
+                listeReprEquationPourIhm.append(equation.representation)\r
+                dicoListAffiche[equation.representation]=equation\r
         else:\r
-           if equation.type_react == valeurAgingType : \r
-              listeEquationPourIhm.append(equation)\r
-              listeReprEquationPourIhm.append(equation.representation)\r
-              dicoListAffiche[equation.representation]=equation\r
+            if equation.type_react == valeurAgingType :\r
+                listeEquationPourIhm.append(equation)\r
+                listeReprEquationPourIhm.append(equation.representation)\r
+                dicoListAffiche[equation.representation]=equation\r
     maClasseDelistesDB.dicoListAffiche = dicoListAffiche\r
 \r
     change=editor.changeIntoDefMC('Equation', ('b_type_show','ListeEquation'), listeReprEquationPourIhm )\r
     if change :\r
-       editor.reCalculeValiditeMCApresChgtInto('Equation', 'listeEquation', ('b_type_show',)) \r
-       if editor.fenetreCentraleAffichee : editor.fenetreCentraleAffichee.node.affichePanneau()\r
+        editor.reCalculeValiditeMCApresChgtInto('Equation', 'listeEquation', ('b_type_show',))\r
+        if editor.fenetreCentraleAffichee : editor.fenetreCentraleAffichee.node.affichePanneau()\r
     monMC.dsMaFunct = False\r
 \r
 def afficheValeurEquation(monMC):\r
@@ -93,9 +93,9 @@ def afficheValeurEquation(monMC):
     aAfficher=str(monEquation)\r
     editor=monMC.jdc.editor\r
     editor._viewText(aAfficher, "Id",largeur=80,hauteur=300)\r
-    \r
+\r
     monMC.dsMaFunct = False\r
-              \r
+\r
 \r
 def instancieChemicalFormulation(monMC):\r
     print ('instancieChemicalFormulation pour ', monMC.nom)\r
@@ -120,8 +120,8 @@ def instancieChemicalFormulation(monMC):
     change=editor.changeDefautDefMC('Equation', ('b_type_show','b_modification','b_modif','Aging_Type'), type_vieil )\r
 \r
     for index,valeurConstituant in enumerate(monEquation.constituants):\r
-        valeurEquation=monEquation.equation[index] \r
-        \r
+        valeurEquation=monEquation.equation[index]\r
+\r
         #PNPNPN --> decider des noms SVP ave un nom python\r
         monMcl1=('Constituant','TXM',{'statut':'o','defaut':valeurConstituant})\r
         monMcl2=('Differential_Equation','TXM',{'statut':'o','defaut':valeurEquation})\r
@@ -135,14 +135,14 @@ def instancieChemicalFormulation(monMC):
             #    Differential_Equation =  SIMP(statut= 'o',typ= 'TXM'),\r
 \r
     for index,valeurConstituant in enumerate(monEquation.const_cine_nom):\r
-         valeurArrhe=monEquation.arrhenius[index] \r
-         if valeurArrhe : valeurConstanteType='Arrhenius type'\r
-         else           : valeurConstanteType='non Arrhenius type'\r
-         monMcl1=('ConstanteName','TXM',{'statut':'o','defaut':valeurConstituant})\r
-         monMcl2=('ConstanteType','TXM',{'statut':'o','defaut':valeurConstanteType,'into': ('Arrhenius type','non Arrhenius type') })\r
-         listeMC=(monMcl1,monMcl2)\r
-         editor.ajoutDefinitionMCFact ('Equation',('b_type_show','b_modification','b_modif',),valeurConstituant,listeMC,statut='f')\r
-         #editor.ajoutMC(e,MCFils,mesValeurs,('b_type_creation','b_diffusion',))\r
+        valeurArrhe=monEquation.arrhenius[index]\r
+        if valeurArrhe : valeurConstanteType='Arrhenius type'\r
+        else           : valeurConstanteType='non Arrhenius type'\r
+        monMcl1=('ConstanteName','TXM',{'statut':'o','defaut':valeurConstituant})\r
+        monMcl2=('ConstanteType','TXM',{'statut':'o','defaut':valeurConstanteType,'into': ('Arrhenius type','non Arrhenius type') })\r
+        listeMC=(monMcl1,monMcl2)\r
+        editor.ajoutDefinitionMCFact ('Equation',('b_type_show','b_modification','b_modif',),valeurConstituant,listeMC,statut='f')\r
+        #editor.ajoutMC(e,MCFils,mesValeurs,('b_type_creation','b_diffusion',))\r
 \r
 \r
     change=editor.changeDefautDefMC('Equation', ('b_type_show','b_modification','b_modif','Commentaire'),monEquation.comment )\r
@@ -151,7 +151,7 @@ def instancieChemicalFormulation(monMC):
 \r
     monMC.dsMaFunct = False\r
     editor.dsMaFunct = False\r
\r
+\r
 \r
 \r
 \r
@@ -197,7 +197,7 @@ def creeListeEquation(monMC):
 \r
     editor.dsMaFunct = False\r
 \r
-  #        listeEquation_stabilization=SIMP(statut='o', homo='SansOrdreNiDoublon', max='**', min=0 ),\r
+    #        listeEquation_stabilization=SIMP(statut='o', homo='SansOrdreNiDoublon', max='**', min=0 ),\r
 \r
 def recupereModeleEquation(monMC):\r
     if hasattr(monMC,'dsMaFunct') and monMC.dsMaFunct== True : return\r
@@ -213,15 +213,15 @@ def recupereModeleEquation(monMC):
     from VP_Cata_V2 import monDico\r
     listEquation=maClasseDelistesDB.getListEquation()\r
     for valeurReactionType in monDico['Equation_Liste']:\r
-      dicoListeEquationAAfficher[valeurReactionType] = [] \r
-      for index,equation in enumerate( listEquation):\r
-        if equation.type_react==valeurReactionType : \r
-           dicoListeEquationAAfficher[valeurReactionType].append(equation.representation)\r
-           maClasseDelistesDB.dictParametresInitiaux[equation.representation]=equation\r
+        dicoListeEquationAAfficher[valeurReactionType] = []\r
+        for index,equation in enumerate( listEquation):\r
+            if equation.type_react==valeurReactionType :\r
+                dicoListeEquationAAfficher[valeurReactionType].append(equation.representation)\r
+                maClasseDelistesDB.dictParametresInitiaux[equation.representation]=equation\r
     #print (dicoListeEquationAAfficher)\r
     #print('maClasseDelistesDB.dictParametresInitiaux', maClasseDelistesDB.dictParametresInitiaux)\r
     prepareDiffusionSansMC(editor,monMC.nom)\r
-       \r
+\r
     change=editor.changeIntoDefMC('Modele', ('b_type_creation','Chemical_Equation','b_ajout_equation','listeEquation_initiation'),dicoListeEquationAAfficher['initiation'])\r
     change=editor.changeIntoDefMC('Modele', ('b_type_creation','Chemical_Equation','b_ajout_equation','listeEquation_propagation'),dicoListeEquationAAfficher['propagation'] )\r
     change=editor.changeIntoDefMC('Modele', ('b_type_creation','Chemical_Equation','b_ajout_equation','listeEquation_termination'),dicoListeEquationAAfficher['termination'] )\r
@@ -265,42 +265,42 @@ def prepareDiffusionSansMC(editor,monMCNom):
 \r
     print (lInitialCoche,lInititiationCoche,lPropagationCoche,lTerminationCoche,lStabilizationCoche)\r
     for liste in (lInitialCoche,lInititiationCoche,lPropagationCoche,lTerminationCoche,lStabilizationCoche):\r
-        # Il est possible qu'une liste soit vide lors de l initialisation\r
-        if liste == None : continue \r
+            # Il est possible qu'une liste soit vide lors de l initialisation\r
+        if liste == None : continue\r
         for equation in liste :\r
             print (equation)\r
             for const in maClasseDelistesDB.dictParametresInitiaux[equation].constituants :\r
-              if const not in maClasseDelistesDB.listeParametresInitiaux : maClasseDelistesDB.listeParametresInitiaux.append(const)\r
+                if const not in maClasseDelistesDB.listeParametresInitiaux : maClasseDelistesDB.listeParametresInitiaux.append(const)\r
             #for coef in maClasseDelistesDB.dictParametresInitiaux[equation].const_cine_nom :\r
             #  if coef not in maClasseDelistesDB.listeCoefInitiaux : maClasseDelistesDB.listeCoefInitiaux.append(coef)\r
             for num,coef in enumerate(maClasseDelistesDB.dictParametresInitiaux[equation].const_cine_nom ):\r
-              maClasseDelistesDB.dicoCoefAffichageArr[coef]=maClasseDelistesDB.dictParametresInitiaux[equation].arrhenius[num]\r
-              if coef not in maClasseDelistesDB.listeCoefInitiaux : maClasseDelistesDB.listeCoefInitiaux.append(coef)\r
+                maClasseDelistesDB.dicoCoefAffichageArr[coef]=maClasseDelistesDB.dictParametresInitiaux[equation].arrhenius[num]\r
+                if coef not in maClasseDelistesDB.listeCoefInitiaux : maClasseDelistesDB.listeCoefInitiaux.append(coef)\r
 \r
     #print('maClasseDelistesDB.dictParametresInitiaux', maClasseDelistesDB.dictParametresInitiaux)\r
     if monMCNom == 'Diffusion' :\r
-       change=editor.changeIntoDefMC('Modele', ('b_type_creation','Transport','b_diffusion','listeProduitPourLaDiffusion'), maClasseDelistesDB.listeParametresInitiaux )\r
+        change=editor.changeIntoDefMC('Modele', ('b_type_creation','Transport','b_diffusion','listeProduitPourLaDiffusion'), maClasseDelistesDB.listeParametresInitiaux )\r
     if monMCNom == 'Evaporation' :\r
-       change=editor.changeIntoDefMC('Modele', ('b_type_creation','Transport','b_evaporation','listeProduitPourLEvaporation'), maClasseDelistesDB.listeParametresInitiaux )\r
+        change=editor.changeIntoDefMC('Modele', ('b_type_creation','Transport','b_evaporation','listeProduitPourLEvaporation'), maClasseDelistesDB.listeParametresInitiaux )\r
 \r
     if monMCNom in ('Evaporation','Diffusion') :\r
-       for c in list(monModele.coef[0].keys()) :\r
-        if c[0]=='D':\r
-           clef=c[1:]\r
-           if clef in maClasseDelistesDB.listeParametresInitiaux :\r
-              maClasseDelistesDB.listeCoefD.append(clef)\r
-              maClasseDelistesDB.listeCoefInitiaux.append('D'+clef)\r
-              maClasseDelistesDB.listeCoefInitiaux.append('S'+clef)\r
-           else :\r
-              maClasseDelistesDB.listeCoefASupprimer.append('S'+clef)\r
-              maClasseDelistesDB.listeCoefASupprimer.append('D'+clef)\r
-        if c[0]=='B':\r
-           clef=c[1:]\r
-           if clef in maClasseDelistesDB.listeParametresInitiaux :\r
-              maClasseDelistesDB.listeCoefB.append(clef)\r
-              maClasseDelistesDB.listeCoefInitiaux.append(c)\r
-           else :\r
-              maClasseDelistesDB.listeCoefASupprimer.append(c)\r
+        for c in list(monModele.coef[0].keys()) :\r
+            if c[0]=='D':\r
+                clef=c[1:]\r
+                if clef in maClasseDelistesDB.listeParametresInitiaux :\r
+                    maClasseDelistesDB.listeCoefD.append(clef)\r
+                    maClasseDelistesDB.listeCoefInitiaux.append('D'+clef)\r
+                    maClasseDelistesDB.listeCoefInitiaux.append('S'+clef)\r
+                else :\r
+                    maClasseDelistesDB.listeCoefASupprimer.append('S'+clef)\r
+                    maClasseDelistesDB.listeCoefASupprimer.append('D'+clef)\r
+            if c[0]=='B':\r
+                clef=c[1:]\r
+                if clef in maClasseDelistesDB.listeParametresInitiaux :\r
+                    maClasseDelistesDB.listeCoefB.append(clef)\r
+                    maClasseDelistesDB.listeCoefInitiaux.append(c)\r
+                else :\r
+                    maClasseDelistesDB.listeCoefASupprimer.append(c)\r
     print ('aClasseDelistesDB.listeCoefB',maClasseDelistesDB.listeCoefB)\r
     print ('aClasseDelistesDB.listeCoefB',maClasseDelistesDB.listeCoefD)\r
     print ('maClasseDelistesDB.listeCoefInitiaux',maClasseDelistesDB.listeCoefInitiaux)\r
@@ -310,9 +310,9 @@ def prepareDiffusionSansMC(editor,monMCNom):
     # Paraetres_initiaux avec maClasseDelistesDB.listeParametresInitiaux\r
     # TO DO TO DO PNPN\r
     # si on arrive avex\r
-    # if monMC.nom = Diffusion \r
+    # if monMC.nom = Diffusion\r
     if monMCNom == 'Diffusion' :\r
-      editor.setValeur('Modele','listeProduitPourLaDiffusion' ,maClasseDelistesDB.listeCoefD, ('b_type_creation','Transport','b_diffusion',))\r
+        editor.setValeur('Modele','listeProduitPourLaDiffusion' ,maClasseDelistesDB.listeCoefD, ('b_type_creation','Transport','b_diffusion',))\r
     #editor.changeValeur(....,'listeProduitPourLaDiffusion',maClasseDelistesDB.listeCoefD')\r
     # if monMCNom == 'Evaporation' :\r
     #editor.changeValeur(....,'listeProduitPourLaDiffusion',maClasseDelistesDB.listeCoefB')\r
@@ -330,7 +330,7 @@ def ajouteEvaporation(monMC):
     for v in monMC.valeur :\r
         clef='B'+v\r
         if clef not in maClasseDelistesDB.listeCoefInitiaux :\r
-              maClasseDelistesDB.listeCoefInitiaux.append(clef)\r
+            maClasseDelistesDB.listeCoefInitiaux.append(clef)\r
 \r
     print ('sortie de ajouteDiffusion' , maClasseDelistesDB.listeCoefInitiaux)\r
     monMC.dsMaFunct=False\r
@@ -347,32 +347,32 @@ def ajouteDiffusion(monMC):
     for v in monMC.valeur :\r
         clef='D'+v\r
         if clef not in maClasseDelistesDB.listeCoefInitiaux :\r
-              maClasseDelistesDB.listeCoefInitiaux.append(clef)\r
-              maClasseDelistesDB.listeCoefInitiaux.append('S'+v)\r
-              maClasseDelistesDB.dicoCoefAffichageArr[clef] = True\r
-              maClasseDelistesDB.dicoCoefAffichageArr['S'+v] = False\r
-              #maClasseDelistesDB.dicoCoefAffichageArr['B'+v] = True\r
-        \r
-        # on affiche dans l interface  un mot clef avec clef comme nom et \r
+            maClasseDelistesDB.listeCoefInitiaux.append(clef)\r
+            maClasseDelistesDB.listeCoefInitiaux.append('S'+v)\r
+            maClasseDelistesDB.dicoCoefAffichageArr[clef] = True\r
+            maClasseDelistesDB.dicoCoefAffichageArr['S'+v] = False\r
+            #maClasseDelistesDB.dicoCoefAffichageArr['B'+v] = True\r
+\r
+        # on affiche dans l interface  un mot clef avec clef comme nom et\r
         # 2 reels si ce commence par D soit iniitialise a 0 si pas de valeur\r
         # soit avec comme deifaut nomCoef in monModele.coef[0].keys()\r
     print ('sortie de ajouteDiffusion' , maClasseDelistesDB.listeCoefInitiaux)\r
 \r
     for nomCoef in maClasseDelistesDB.listeCoefInitiaux:\r
-        #A jout Ds Coef d'un MC \r
-        nomMC='Coef_'+nomCoef \r
+        #A jout Ds Coef d'un MC\r
+        nomMC='Coef_'+nomCoef\r
         if maClasseDelistesDB.dicoCoefAffichageArr[nomCoef]  == True:\r
-           print ('2 r'), \r
-           if nomCoef in monModele.coef[0].keys() :\r
-              print (monModele.coef[0][nomCoef])\r
-           else :\r
-              print ((0,0))\r
+            print ('2 r'),\r
+            if nomCoef in monModele.coef[0].keys() :\r
+                print (monModele.coef[0][nomCoef])\r
+            else :\r
+                print ((0,0))\r
         else :\r
-           print ('1 r') \r
-           if nomCoef in monModele.coef[0].keys() :\r
-              print (monModele.coef[0][nomCoef])\r
-           else :\r
-              print (0)\r
+            print ('1 r')\r
+            if nomCoef in monModele.coef[0].keys() :\r
+                print (monModele.coef[0][nomCoef])\r
+            else :\r
+                print (0)\r
 \r
     print ('______________________')\r
     #for v in monMC.valeur :\r
@@ -405,17 +405,17 @@ def creeListeMateriauxSelonModele(monMC):
     listMateriauxFiltre=[]\r
     for modele in listModele :\r
         if modele.technical_use == monMC.valeur :\r
-           maClasseDelistesDB.dicoModeleFiltre[modele.nom]=modele\r
-           listModeleFiltre.append(modele.nom)\r
-           if type(modele.materiaux) not in (list, tuple): modeleATraiter= modele.materiaux\r
-           else : modeleATraiter= modele.materiaux[0]\r
-           if modeleATraiter not in listMateriauxFiltre :\r
-              listMateriauxFiltre.append(modeleATraiter)\r
-              maClasseDelistesDB.dicoMateriauxFiltre[modeleATraiter]=[modele.nom,]\r
-           else :\r
-              maClasseDelistesDB.dicoMateriauxFiltre[modeleATraiter].append(modele.nom)\r
\r
-           \r
+            maClasseDelistesDB.dicoModeleFiltre[modele.nom]=modele\r
+            listModeleFiltre.append(modele.nom)\r
+            if type(modele.materiaux) not in (list, tuple): modeleATraiter= modele.materiaux\r
+            else : modeleATraiter= modele.materiaux[0]\r
+            if modeleATraiter not in listMateriauxFiltre :\r
+                listMateriauxFiltre.append(modeleATraiter)\r
+                maClasseDelistesDB.dicoMateriauxFiltre[modeleATraiter]=[modele.nom,]\r
+            else :\r
+                maClasseDelistesDB.dicoMateriauxFiltre[modeleATraiter].append(modele.nom)\r
+\r
+\r
 \r
     change=editor.changeIntoDefMC('Modele', ('b_type_modification','b_technicalUse','material'),listMateriauxFiltre )\r
 \r
@@ -451,9 +451,9 @@ def afficheModele(monMC):
     aAfficher=str(maClasseDelistesDB.monModele)\r
     editor=monMC.jdc.editor\r
     editor._viewText(aAfficher, "Id",largeur=700,hauteur=500)\r
-    \r
+\r
     monMC.dsMaFunct = False\r
-              \r
+\r
 def changeValeurDefautModele(monMC):\r
     if hasattr(monMC,'dsMaFunct') and monMC.dsMaFunct== True : return\r
     monMC.dsMaFunct = True\r
@@ -487,15 +487,15 @@ def creeCoefAModifier(monMC):
     dicoNonArr={}\r
     for coef in maClasseDelistesDB.monModele.coef[0] :\r
         if len (maClasseDelistesDB.monModele.coef[0][coef]) == 1 :\r
-               dicoNonArr[coef]=maClasseDelistesDB.monModele.coef[0][coef][0]\r
+            dicoNonArr[coef]=maClasseDelistesDB.monModele.coef[0][coef][0]\r
         else :\r
-               dicoArr[coef]=maClasseDelistesDB.monModele.coef[0][coef]\r
-               if coef[0] == 'D' : maClasseDelistesDB.listeDiffusion.append(coef[1:])\r
+            dicoArr[coef]=maClasseDelistesDB.monModele.coef[0][coef]\r
+            if coef[0] == 'D' : maClasseDelistesDB.listeDiffusion.append(coef[1:])\r
     print (dicoNonArr)\r
     print (dicoArr)\r
     if 'ri' in dicoNonArr :\r
-       print ('ajoutDefinitionMC debitOfDose')\r
-       editor.ajoutDefinitionMC('Modele', ('b_type_modification','b_technicalUse','b_modele','b_type_use2','Aging_Factor'), 'debitOfDose',typ='R',statut='o' )\r
+        print ('ajoutDefinitionMC debitOfDose')\r
+        editor.ajoutDefinitionMC('Modele', ('b_type_modification','b_technicalUse','b_modele','b_type_use2','Aging_Factor'), 'debitOfDose',typ='R',statut='o' )\r
 \r
     for coef in dicoNonArr :\r
         print (coef)\r
@@ -503,9 +503,9 @@ def creeCoefAModifier(monMC):
         editor.ajoutDefinitionMC('Modele',('b_type_modification','b_technicalUse','b_modele','b_type_use',),coef, 'R', statut='o',defaut=dicoNonArr[coef])\r
         # a faire marcher\r
         # pour les Arr il faut un tuple(2)\r
-       \r
+\r
     # il fait creer un fact Boundary_Conditions_Param pour chacque espece de listeDiffusion\r
-   \r
+\r
     if editor.fenetreCentraleAffichee : editor.fenetreCentraleAffichee.node.affichePanneau()\r
 \r
     monMC.dsMaFunct = False\r
@@ -517,11 +517,11 @@ def remplirAgingFactor(monMC):
     monMC.dsMaFunct = True\r
     editor=monMC.jdc.editor\r
     if monMC.valeur in dicoAgingFactor:\r
-       print (monMC.valeur, 'trouve')\r
-       for MC in dicoAgingFactor[monMC.valeur]:\r
-           print (MC)\r
-           print (dicoAgingFactor[monMC.valeur][MC]),\r
-           editor.setValeur('Modele',MC,dicoAgingFactor[monMC.valeur][MC],('b_type_modification','b_technicalUse','b_modele','b_type_use2','Aging_Factor'))\r
+        print (monMC.valeur, 'trouve')\r
+        for MC in dicoAgingFactor[monMC.valeur]:\r
+            print (MC)\r
+            print (dicoAgingFactor[monMC.valeur][MC]),\r
+            editor.setValeur('Modele',MC,dicoAgingFactor[monMC.valeur][MC],('b_type_modification','b_technicalUse','b_modele','b_type_use2','Aging_Factor'))\r
     monMC.dsMaFunct = False\r
 \r
 \r
index e95cfa78835dac54c8d67b17d5e434955d8e0faf..957060e5667f9cf107ed64fce3a3d4337423bcad 100644 (file)
@@ -10,71 +10,70 @@ import pckdb, class_data, instruction, equation_part, utils
 class sModele :\r
 # --------------------------------------\r
 \r
-   _instance = None\r
+    _instance = None\r
 \r
-   def __new__(cls, *args, **kwargs):\r
+    def __new__(cls, *args, **kwargs):\r
         if not cls._instance:\r
             cls._instance = super(sModele, cls).__new__(\r
                                 cls, *args, **kwargs)\r
 \r
         return cls._instance\r
 \r
-   def __init__ (self):\r
-       self.monModele=class_data.Modele()\r
-       self.monPost=class_data.Post_traitement()\r
+    def __init__ (self):\r
+        self.monModele=class_data.Modele()\r
+        self.monPost=class_data.Post_traitement()\r
 \r
 \r
 # --------------------------------------\r
 class classeListesDB :\r
 # --------------------------------------\r
 \r
-   _instance = None\r
+    _instance = None\r
 \r
-   def __new__(cls, *args, **kwargs):\r
+    def __new__(cls, *args, **kwargs):\r
         if not cls._instance:\r
             cls._instance = super(listesDB, cls).__new__(\r
                                 cls, *args, **kwargs)\r
 \r
         return cls._instance\r
 \r
-   def __init__ (self):\r
-      self.listEquation       = None\r
-      self.listModele         = None\r
-      self.listPostTraitement = None\r
-      self.dicoListAffiche   = {}\r
-      self.valeurEquationChoisie = None\r
-      self.listeConstantesAAfficher = []\r
-      self.listeEquationsAAfficher = []\r
-      self.listeCoefD  = []\r
-      self.listeCoefB  = []\r
-      self.dictParametresInitiaux = {}\r
-      self.listeParametresInitiaux= []\r
-      self.listeCoefInitiaux= []\r
-      self.listeCoefASupprimer= []\r
-      self.dicoCoefAffichageArr   = {}\r
-      self.dicoModeleFiltre = {}\r
-      self.dicoMateriauxFiltre = {}\r
-      self.monModele = None\r
-      self.listeDiffusion = []\r
-   \r
-   def metAJour(self,valeur):\r
-      print ('metAJour')\r
-      if valeur == None : return\r
-      correspond=pckdb.DBRENAME\r
-      self.listEquation, self.listModele,self.listPostTraitement=pckdb.read_pckdb(correspond[valeur])\r
-      self.dicoListeEquation   = {}\r
-      for equation in self.listEquation :\r
-          self.dicoListeEquation[equation.representation]=equation\r
-\r
-   def getListEquation(self):\r
-      return self.listEquation\r
-    \r
-   def getListModele(self):\r
-      return self.listModele\r
-\r
-   def getListPostTraitement(self):\r
-      return self.listPostTraitement\r
-    \r
-   def getdicoListAffiche(self):\r
-      return self.dicoListAffiche\r
+    def __init__ (self):\r
+        self.listEquation       = None\r
+        self.listModele         = None\r
+        self.listPostTraitement = None\r
+        self.dicoListAffiche   = {}\r
+        self.valeurEquationChoisie = None\r
+        self.listeConstantesAAfficher = []\r
+        self.listeEquationsAAfficher = []\r
+        self.listeCoefD  = []\r
+        self.listeCoefB  = []\r
+        self.dictParametresInitiaux = {}\r
+        self.listeParametresInitiaux= []\r
+        self.listeCoefInitiaux= []\r
+        self.listeCoefASupprimer= []\r
+        self.dicoCoefAffichageArr   = {}\r
+        self.dicoModeleFiltre = {}\r
+        self.dicoMateriauxFiltre = {}\r
+        self.monModele = None\r
+        self.listeDiffusion = []\r
 \r
+    def metAJour(self,valeur):\r
+        print ('metAJour')\r
+        if valeur == None : return\r
+        correspond=pckdb.DBRENAME\r
+        self.listEquation, self.listModele,self.listPostTraitement=pckdb.read_pckdb(correspond[valeur])\r
+        self.dicoListeEquation   = {}\r
+        for equation in self.listEquation :\r
+            self.dicoListeEquation[equation.representation]=equation\r
+\r
+    def getListEquation(self):\r
+        return self.listEquation\r
+\r
+    def getListModele(self):\r
+        return self.listModele\r
+\r
+    def getListPostTraitement(self):\r
+        return self.listPostTraitement\r
+\r
+    def getdicoListAffiche(self):\r
+        return self.dicoListAffiche\r
index 6554d133755739c611fa5d99e3e0c48b66d1fcea..926aa4bc2ea47278e3aaf2d11ad9b7ac2c61bf68 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2012   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -16,7 +16,7 @@
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
-code="VP" 
+code="VP"
 import sys, os
 if os.path.dirname(os.path.abspath(__file__)) not in sys.path :
-   sys.path.insert(0,os.path.dirname(os.path.abspath(__file__)))
+    sys.path.insert(0,os.path.dirname(os.path.abspath(__file__)))
index 2d50d82184c4e481cd6e854a93499ca69d293105..6630de72da515e41fdb91d999eacd103b632b443 100644 (file)
@@ -39,7 +39,6 @@ catalogues=(
 )
 nombreDeBoutonParLigne=2
 closeFrameRechercheCommande = True
-closeEntete = True 
+closeEntete = True
 #closeArbre = True
 afficheOptionnelVide=False
-
index 1d328a4606b9f4b67459317ace64af77b19c000b..e5dd129708ea27ba20d3e6bcc3a02d3280747840 100644 (file)
@@ -4,17 +4,17 @@
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
 #
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
 #
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
 # ======================================================================
 #     IDENTIFICATION DU GESTIONNAIRE DE COMMANDE ACCAS A PARTIR
 #     DE LA VERSION DU CODE_ASTER ASSOCIE
index 00ced3c476ac8483fa13c5a140b241f8c372583e..bb1a346b5369560ebea1fd7ae0bf6c7409d3267e 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -19,7 +19,7 @@
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 """
-   Ce module sert a lancer EFICAS configure pour MAP 
+   Ce module sert a lancer EFICAS configure pour MAP
 """
 # Modules Python
 # Modules Eficas
diff --git a/boundary_conditions/CMakeLists.txt b/boundary_conditions/CMakeLists.txt
deleted file mode 100644 (file)
index 9d5d320..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#  Copyright (C) 2012-2013 EDF
-#
-#  This file is part of SALOME HYDRO module.
-#
-#  SALOME HYDRO module is free software: you can redistribute it and/or modify
-#  it under the terms of the GNU General Public License as published by
-#  the Free Software Foundation, either version 3 of the License, or
-#  (at your option) any later version.
-#
-#  SALOME HYDRO module is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with SALOME HYDRO module.  If not, see <http://www.gnu.org/licenses/>.
-
-# --- Python files ---
-
-SET(PYFILES
-  __init__.py
-  configuration_boundary_conditions.py
-  prefs_boundary_conditions.py
-  prefs.py
-  boundary_conditions_cata.py
-  appli.py
-  generator_boundary_conditions.py
-)
-
-# --- rules ---
-
-SALOME_INSTALL_SCRIPTS("${PYFILES}" ${SALOME_INSTALL_PYTHON}/salome/hydro/boundary_conditions/eficas)
diff --git a/boundary_conditions/__init__.py b/boundary_conditions/__init__.py
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/boundary_conditions/appli.py b/boundary_conditions/appli.py
deleted file mode 100644 (file)
index b378329..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-#  Copyright (C) 2012-2013 EDF
-#
-#  This file is part of SALOME HYDRO module.
-#
-#  SALOME HYDRO module is free software: you can redistribute it and/or modify
-#  it under the terms of the GNU General Public License as published by
-#  the Free Software Foundation, either version 3 of the License, or
-#  (at your option) any later version.
-#
-#  SALOME HYDRO module is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with SALOME HYDRO module.  If not, see <http://www.gnu.org/licenses/>.
-
-import os
-import sys
-
-import SalomePyQt
-sgPyQt = SalomePyQt.SalomePyQt()
-
-import eficasSalome
-
-class EficasForBoundaryConditionsAppli(eficasSalome.MyEficas):
-  """
-  This class launches Eficas with "boundary_conditions" catalog.
-  """
-  def __init__(self, fichier = None, version = None):
-    self.codedir = os.path.dirname(__file__)
-    sys.path[:0] = [self.codedir]
-    eficasSalome.MyEficas.__init__(self, sgPyQt.getDesktop(), "boundary_conditions",
-                                   fichier, version = version)
-
-  def addJdcInSalome(self, jdcPath):
-    """
-    Those files are not added in Salome study tree for now.
-    """
-    pass
-
-  def closeEvent(self, event):
-    while self.codedir in sys.path:
-      sys.path.remove(self.codedir)
-    eficasSalome.MyEficas.closeEvent(self, event)
diff --git a/boundary_conditions/boundary_conditions_cata.py b/boundary_conditions/boundary_conditions_cata.py
deleted file mode 100644 (file)
index f41671c..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-#  Copyright (C) 2012-2013 EDF
-#
-#  This file is part of SALOME HYDRO module.
-#
-#  SALOME HYDRO module is free software: you can redistribute it and/or modify
-#  it under the terms of the GNU General Public License as published by
-#  the Free Software Foundation, either version 3 of the License, or
-#  (at your option) any later version.
-#
-#  SALOME HYDRO module is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with SALOME HYDRO module.  If not, see <http://www.gnu.org/licenses/>.
-
-from Accas import *
-
-class grma(GEOM):
-  """
-  Class used to define the group on which the boundary condition is defined.
-  Method __convert__ is redefined to skip the test on the string length.
-  """
-  def __convert__(cls, valeur):
-    if isinstance(valeur, (str, unicode)):
-      return valeur.strip()
-    raise ValueError('A string is expected')
-
-  __convert__ = classmethod(__convert__)
-
-
-JdC = JDC_CATA(regles = (AU_MOINS_UN('BOUNDARY_CONDITION',)),
-                        )
-
-BOUNDARY_CONDITION = PROC(
-    nom = "BOUNDARY_CONDITION", op = None,
-    fr = u"Définition d'une condition limite pour Telemac2D",
-    ang = u"Definition of a boundary condition for Telemac2D",
-
-    GROUP = SIMP(statut = "o", typ = grma,
-                 fr = u"Groupe sur lequel la condition limite est définie",
-                 ang = u"Group on which the boundary condition is defined",
-                ),
-    LIHBOR = SIMP(statut = "o", typ = "I",
-                  fr = u"Type de condition limite pour la hauteur d'eau",
-                  ang = u"Boundary condition type for the water height",
-                 ),
-    LIUBOR = SIMP(statut = "o", typ = "I",
-                  fr = u"Type de condition limite pour la composante U de la vitesse",
-                  ang = u"Boundary condition type for the U component of the water velocity",
-                 ),
-    LIVBOR = SIMP(statut = "o", typ = "I",
-                  fr = u"Type de condition limite pour la composante V de la vitesse",
-                  ang = u"Boundary condition type for the V component of the water velocity",
-                 ),
-)
diff --git a/boundary_conditions/configuration_boundary_conditions.py b/boundary_conditions/configuration_boundary_conditions.py
deleted file mode 100644 (file)
index ffed4a6..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-#  Copyright (C) 2012-2013 EDF
-#
-#  This file is part of SALOME HYDRO module.
-#
-#  SALOME HYDRO module is free software: you can redistribute it and/or modify
-#  it under the terms of the GNU General Public License as published by
-#  the Free Software Foundation, either version 3 of the License, or
-#  (at your option) any later version.
-#
-#  SALOME HYDRO module is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with SALOME HYDRO module.  If not, see <http://www.gnu.org/licenses/>.
-
-import os
-
-from Editeur.catadesc import CatalogDescription
-from InterfaceQT4.configuration import CONFIG_BASE
-
-class CONFIG(CONFIG_BASE):
-
-  def __init__(self, appli, repIni):
-    """
-    This class stores the configuration parameters for Eficas
-    """
-    CONFIG_BASE.__init__(self, appli, repIni)
-
-    # Configuration parameters
-    self.savedir    = os.getenv("HOME")
-    self.catalogues = (CatalogDescription("boundary_conditions",
-                                          os.path.join(repIni, "boundary_conditions_cata.py"),
-                                          file_format = "boundary_conditions"),)
-    self.lang = 'fr'
-    self.generator_module = "generator_boundary_conditions"
-
-  def save_params(self):
-    pass
-
-def make_config(appli, rep):
-  return CONFIG(appli, rep)
-
-def make_config_style(appli, rep):
-  return None
diff --git a/boundary_conditions/generator_boundary_conditions.py b/boundary_conditions/generator_boundary_conditions.py
deleted file mode 100644 (file)
index ea7235d..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-#  Copyright (C) 2012-2013 EDF
-#
-#  This file is part of SALOME HYDRO module.
-#
-#  SALOME HYDRO module is free software: you can redistribute it and/or modify
-#  it under the terms of the GNU General Public License as published by
-#  the Free Software Foundation, either version 3 of the License, or
-#  (at your option) any later version.
-#
-#  SALOME HYDRO module is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with SALOME HYDRO module.  If not, see <http://www.gnu.org/licenses/>.
-
-import os
-from generator.generator_python import PythonGenerator
-
-def entryPoint():
-  return {'name': 'boundary_conditions',
-          'factory': BoundaryConditionsGenerator}
-
-class BoundaryConditionsGenerator(PythonGenerator):
-  """
-  This generator creates files containing associations between groups and
-  boundary conditions (.bcd files, for Boundary Conditions Definition).
-  Those files contain one line per group, each line containing four fields
-  separated by spaces: LIHBOR LIUBOR LIVBOR GROUP.
-  LIHBOR, LIUBOR and LIVBOR are integer values, GROUP is a string (the name of
-  the group).
-  
-  Example:
-  
-  
-  """
-
-  def gener(self, obj, format = 'brut', config = None):
-    self.group_list = []
-    self.text = PythonGenerator.gener(self, obj, format)
-    return self.text
-  
-  def generPROC_ETAPE(self, obj):
-    group_dict = {}
-    for keyword in obj.mc_liste:
-      group_dict[keyword.nom] = keyword.valeur
-    self.group_list.append(group_dict)
-    return PythonGenerator.generPROC_ETAPE(self, obj)
-
-  def writeDefault(self, basefilename):
-    output_filename = os.path.splitext(basefilename)[0] + ".bcd"
-    f = open(output_filename, 'w')
-    f.write("%d\n" % len(self.group_list))
-    for group_dict in self.group_list:
-      f.write("%(LIHBOR)d %(LIUBOR)d %(LIVBOR)d %(GROUP)s\n" % group_dict)
-    f.close()
diff --git a/boundary_conditions/prefs.py b/boundary_conditions/prefs.py
deleted file mode 100644 (file)
index 8f7d046..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#  Copyright (C) 2012-2013 EDF
-#
-#  This file is part of SALOME HYDRO module.
-#
-#  SALOME HYDRO module is free software: you can redistribute it and/or modify
-#  it under the terms of the GNU General Public License as published by
-#  the Free Software Foundation, either version 3 of the License, or
-#  (at your option) any later version.
-#
-#  SALOME HYDRO module is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with SALOME HYDRO module.  If not, see <http://www.gnu.org/licenses/>.
-
-code = "boundary_conditions"
diff --git a/boundary_conditions/prefs_boundary_conditions.py b/boundary_conditions/prefs_boundary_conditions.py
deleted file mode 100644 (file)
index bcf1ef2..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#  Copyright (C) 2012-2013 EDF
-#
-#  This file is part of SALOME HYDRO module.
-#
-#  SALOME HYDRO module is free software: you can redistribute it and/or modify
-#  it under the terms of the GNU General Public License as published by
-#  the Free Software Foundation, either version 3 of the License, or
-#  (at your option) any later version.
-#
-#  SALOME HYDRO module is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with SALOME HYDRO module.  If not, see <http://www.gnu.org/licenses/>.
-
-import os
-
-repIni = os.path.dirname(__file__)
-INSTALLDIR = os.getenv("EFICAS_ROOT")
index 778060675e262ff31ba532cbffd942a4b82e37ff..0a063d7a33061ca2466505deda285af52fd956c5 100644 (file)
@@ -30,4 +30,3 @@ from Extensions import pluginloader
 import convert
 
 plugins=pluginloader.PluginLoader(convert)
-
index 735382d4643a2a20a1fe93683ca73a65bde29ff7..02428b5bf638f754eb7ffa604ef67ebdcc95b80d 100644 (file)
 #
 from __future__ import absolute_import
 from __future__ import print_function
-try : 
-  from future import standard_library
-  standard_library.install_aliases()
+try :
+    from future import standard_library
+    standard_library.install_aliases()
 except :
-  pass
-try : 
-  from builtins import str
+    pass
+try :
+    from builtins import str
 except :
-  pass
+    pass
 from builtins import object
 import sys,re,tokenize
 import io
@@ -65,7 +65,7 @@ class COMMENTAIRE(ENTITE_JDC):
             # le diese n'est pas sur le premier caractere
             amont,aval = texte.split('#',1) # on decoupe suivant la premiere occurrence de #
             self.texte = self.texte +amont + aval
-        
+
 class AFFECTATION(ENTITE_JDC):
 
     def appendText(self,texte):
@@ -73,7 +73,7 @@ class AFFECTATION(ENTITE_JDC):
         Ajoute texte a self.texte en enlevant tout retour chariot et tout point virgule
         """
         self.texte = self.texte+texte
-        
+
     def __str__(self):
         """
         Retourne une expression de l'affectation comprehensible par ACCAS
@@ -100,7 +100,7 @@ class COMMANDE_COMMENTARISEE(ENTITE_JDC):
         """
         return "COMMANDE_COMM(texte="+repr(self.texte)+")\n"
 
-        
+
 next = {}
 next['if'] = next['elif'] = 'elif', 'else', 'end'
 next['while'] = next['for'] = 'else', 'end'
@@ -112,7 +112,7 @@ start = 'if', 'while', 'for', 'try', 'def', 'class'
 
 class PARSEUR_PYTHON(object):
     """
-    Cette classe sert a creer un objet PARSEUR_PYTHON qui realise l'analyse d'un texte 
+    Cette classe sert a creer un objet PARSEUR_PYTHON qui realise l'analyse d'un texte
     representant un JDC Python en distinguant :
       - les commentaires inter commandes
       - les affectations
@@ -155,14 +155,14 @@ class PARSEUR_PYTHON(object):
     def getOptions(self):
         m= self.optionprog.match(self.line)
         if m:
-           option=m.group(1)
-           name=option[1:]
-           flag=(option[0] == '+')
-           if name == "affectation": self.affectation_flag=flag
-           if name == "comment": self.comment_flag=flag
-           if name == "all": 
-              self.comment_flag=flag
-              self.affectation_flag=flag
+            option=m.group(1)
+            name=option[1:]
+            flag=(option[0] == '+')
+            if name == "affectation": self.affectation_flag=flag
+            if name == "comment": self.comment_flag=flag
+            if name == "all":
+                self.comment_flag=flag
+                self.affectation_flag=flag
 
     def readline(self):
         self.line= self.texte.readline()
@@ -171,7 +171,7 @@ class PARSEUR_PYTHON(object):
         self.getOptions()
         return self.line
 
-    def getTexte(self,appli=None):
+    def getTexte(self,appliEficas=None):
         """
            Retourne le texte issu de l'analyse
         """
@@ -226,8 +226,8 @@ class PARSEUR_PYTHON(object):
     def updateIndent(self):
         #print "updateIndent",len(self.indent_list[-1]),len(self.buffer_indent)
         if len(self.indent_list[-1]) > len(self.buffer_indent):
-           self.out=self.out+(len(self.indent_list[-1]) - len(self.buffer_indent))*" "
-           self.buffer_indent=self.indent_list[-1]
+            self.out=self.out+(len(self.indent_list[-1]) - len(self.buffer_indent))*" "
+            self.buffer_indent=self.indent_list[-1]
 
     def doIndent(self):
         #print "indentation dans doIndent",len(self.indent_list)
@@ -235,141 +235,141 @@ class PARSEUR_PYTHON(object):
         self.out=self.out+self.indent_list[-1]
         self.buffer_indent=self.indent_list[-1]
         if self.lastcol+len(self.indent_list[-1]) > self.thiscol:
-           self.lastcol=self.thiscol
+            self.lastcol=self.thiscol
         else:
-           self.lastcol=self.lastcol+len(self.indent_list[-1])
+            self.lastcol=self.lastcol+len(self.indent_list[-1])
         self.please_indent = None
 
     def flush_buffer(self):
         #if self.buffer:
         #   print len(self.indent_list),self.please_indent
         for ob in self.buffer:
-           self.out= self.out+ str(ob)
-           self.doIndent()
+            self.out= self.out+ str(ob)
+            self.doIndent()
         self.buffer=[]
         self.objet_courant=None
 
     def NL(self, tstring):
         if self.affectation:
-           if self.paren_level == 0:
-              # affectation en cours mais complete
-              self.out= self.out+ str(self.affectation_courante)
-              self.affectation_courante=None
-              self.please_indent=1
-              self.affectation=0
-           else:
-              # affectation en cours, on ajoute
-              if self.thiscol > self.lastcol :self.affectation_courante.appendText((self.thiscol - self.lastcol)*" ")
-              self.affectation_courante.appendText(tstring)
-              return
-           
+            if self.paren_level == 0:
+                # affectation en cours mais complete
+                self.out= self.out+ str(self.affectation_courante)
+                self.affectation_courante=None
+                self.please_indent=1
+                self.affectation=0
+            else:
+                # affectation en cours, on ajoute
+                if self.thiscol > self.lastcol :self.affectation_courante.appendText((self.thiscol - self.lastcol)*" ")
+                self.affectation_courante.appendText(tstring)
+                return
+
         if self.objet_courant:
-           self.objet_courant=None
-           self.buffer.append(tstring)
+            self.objet_courant=None
+            self.buffer.append(tstring)
         #   self.please_indent = None
-           return
+            return
         self.output(tstring)
         self.please_indent = 1
 
     def COMMENT(self, tstring):
         liste= string.split(self.line,"##",1)
         if len(liste) > 1:
-           # On a trouve un double commentaire
-           before,after=liste
-           if self.affectation:
-              # affectation en cours, on ignore
-              pass
-           elif self.paren_level > 0:
-              self.output(tstring)
-           elif self.comment_flag and not self.pattern_ligne_non_blanche.search(before):
-              # il s'agit d'une commande commentarisee
-              if self.objet_courant == None:
-                 if not self.buffer:self.buffer_indent=self.indent_list[-1]
-                 self.objet_courant=COMMANDE_COMMENTARISEE()
-                 self.buffer.append(self.objet_courant)
-                 self.objet_courant.appendText(tstring)
-                 self.please_indent = None
-              elif isinstance(self.objet_courant,COMMENTAIRE):
-                 self.objet_courant=COMMANDE_COMMENTARISEE()
-                 self.buffer.append(self.objet_courant)
-                 self.objet_courant.appendText(tstring)
-                 self.please_indent = None
-              else:
-                 self.objet_courant.appendText(tstring)
-                 self.please_indent = None
-           else:
-              # commentaire inline
-              self.output(tstring)
-              self.please_indent = 1
-           return
+            # On a trouve un double commentaire
+            before,after=liste
+            if self.affectation:
+                # affectation en cours, on ignore
+                pass
+            elif self.paren_level > 0:
+                self.output(tstring)
+            elif self.comment_flag and not self.pattern_ligne_non_blanche.search(before):
+                # il s'agit d'une commande commentarisee
+                if self.objet_courant == None:
+                    if not self.buffer:self.buffer_indent=self.indent_list[-1]
+                    self.objet_courant=COMMANDE_COMMENTARISEE()
+                    self.buffer.append(self.objet_courant)
+                    self.objet_courant.appendText(tstring)
+                    self.please_indent = None
+                elif isinstance(self.objet_courant,COMMENTAIRE):
+                    self.objet_courant=COMMANDE_COMMENTARISEE()
+                    self.buffer.append(self.objet_courant)
+                    self.objet_courant.appendText(tstring)
+                    self.please_indent = None
+                else:
+                    self.objet_courant.appendText(tstring)
+                    self.please_indent = None
+            else:
+                # commentaire inline
+                self.output(tstring)
+                self.please_indent = 1
+            return
 
         else:
-           # On a un commentaire simple
-           new_line = self.line.split('#')[0]
-           if self.affectation:
-              # affectation en cours, on ignore
-              pass
-           elif self.paren_level > 0:
-              self.output(tstring)
-           elif self.comment_flag and not self.pattern_ligne_non_blanche.search(new_line):
-              # commentaire precede de blancs
-              if self.objet_courant == None:
-                 if not self.buffer:self.buffer_indent=self.indent_list[-1]
-                 self.objet_courant=COMMENTAIRE()
-                 self.buffer.append(self.objet_courant)
-                 self.objet_courant.appendText(tstring)
-                 self.please_indent = None
-              elif isinstance(self.objet_courant,COMMANDE_COMMENTARISEE):
-                 self.objet_courant=COMMENTAIRE()
-                 self.buffer.append(self.objet_courant)
-                 self.objet_courant.appendText(tstring)
-                 self.please_indent = None
-              else:
-                 self.objet_courant.appendText(tstring)
-                 self.please_indent = None
-           else:
-              # commentaire inline
-              self.output(tstring)
-              self.please_indent = 1
-           return
+            # On a un commentaire simple
+            new_line = self.line.split('#')[0]
+            if self.affectation:
+                # affectation en cours, on ignore
+                pass
+            elif self.paren_level > 0:
+                self.output(tstring)
+            elif self.comment_flag and not self.pattern_ligne_non_blanche.search(new_line):
+                # commentaire precede de blancs
+                if self.objet_courant == None:
+                    if not self.buffer:self.buffer_indent=self.indent_list[-1]
+                    self.objet_courant=COMMENTAIRE()
+                    self.buffer.append(self.objet_courant)
+                    self.objet_courant.appendText(tstring)
+                    self.please_indent = None
+                elif isinstance(self.objet_courant,COMMANDE_COMMENTARISEE):
+                    self.objet_courant=COMMENTAIRE()
+                    self.buffer.append(self.objet_courant)
+                    self.objet_courant.appendText(tstring)
+                    self.please_indent = None
+                else:
+                    self.objet_courant.appendText(tstring)
+                    self.please_indent = None
+            else:
+                # commentaire inline
+                self.output(tstring)
+                self.please_indent = 1
+            return
 
     def ERRORTOKEN(self, tstring):
         print("ERRORTOKEN", tstring)
 
     def NAME(self, tstring):
         if self.buffer:
-           self.updateIndent()
+            self.updateIndent()
         self.flush_buffer()
 
         if self.affectation ==1:
-           # on a une expression du type NAME=NAME
-           # on ne veut pas des expressions qui commencent par NAME=NAME(NAME=
-           # on en prend le chemin : on met affectation a 3 pour le signaler
-           # on attend d'en savoir plus
-           if self.thiscol > self.lastcol :self.affectation_courante.appendText((self.thiscol - self.lastcol)*" ")
-           self.affectation_courante.appendText(tstring)
-           self.affectation=3
-           return
+            # on a une expression du type NAME=NAME
+            # on ne veut pas des expressions qui commencent par NAME=NAME(NAME=
+            # on en prend le chemin : on met affectation a 3 pour le signaler
+            # on attend d'en savoir plus
+            if self.thiscol > self.lastcol :self.affectation_courante.appendText((self.thiscol - self.lastcol)*" ")
+            self.affectation_courante.appendText(tstring)
+            self.affectation=3
+            return
         elif self.affectation ==4:
-           # on a une expression qui commence par NAME=NAME(NAME
-           # il s'agit tres probablement d'une commande
-           # on annule l'affectation en cours
-           if self.thiscol > self.lastcol :self.affectation_courante.appendText((self.thiscol - self.lastcol)*" ")
-           self.affectation_courante.appendText(tstring)
-           self.affectation=5
-           return
+            # on a une expression qui commence par NAME=NAME(NAME
+            # il s'agit tres probablement d'une commande
+            # on annule l'affectation en cours
+            if self.thiscol > self.lastcol :self.affectation_courante.appendText((self.thiscol - self.lastcol)*" ")
+            self.affectation_courante.appendText(tstring)
+            self.affectation=5
+            return
         elif self.affectation == 2:
-           # affectation en cours, on ajoute
-           if self.thiscol > self.lastcol :self.affectation_courante.appendText((self.thiscol - self.lastcol)*" ")
-           self.affectation_courante.appendText(tstring)
-           self.affectation=2
-           return
+            # affectation en cours, on ajoute
+            if self.thiscol > self.lastcol :self.affectation_courante.appendText((self.thiscol - self.lastcol)*" ")
+            self.affectation_courante.appendText(tstring)
+            self.affectation=2
+            return
         self.affectation=0
         self.name=None
-        if self.paren_level == 0 and self.affectation_flag: 
-           # si on est en dehors de parentheses et en mode transformation d'affectation
-           # on initialise l'attribut name qui indique une affectation en cours
-           self.name=tstring
+        if self.paren_level == 0 and self.affectation_flag:
+            # si on est en dehors de parentheses et en mode transformation d'affectation
+            # on initialise l'attribut name qui indique une affectation en cours
+            self.name=tstring
         self.output(tstring)
 
     def ident(self, tstring):
@@ -380,11 +380,11 @@ class PARSEUR_PYTHON(object):
     def NUMBER(self, tstring):
         self.flush_buffer()
         if self.affectation>=1:
-           # affectation en cours, on ajoute
-           if self.thiscol > self.lastcol :self.affectation_courante.appendText((self.thiscol - self.lastcol)*" ")
-           self.affectation_courante.appendText(tstring)
-           self.affectation=2
-           return
+            # affectation en cours, on ajoute
+            if self.thiscol > self.lastcol :self.affectation_courante.appendText((self.thiscol - self.lastcol)*" ")
+            self.affectation_courante.appendText(tstring)
+            self.affectation=2
+            return
         self.output(tstring)
 
     def OP(self,tstring):
@@ -393,45 +393,45 @@ class PARSEUR_PYTHON(object):
         if tstring in (')',']','}'): self.paren_level=self.paren_level-1
 
         if tstring == '=' and self.affectation ==5:
-           # on a une expression qui commence par NAME=NAME(NAME=)
-           # il peut s'agir d'une commande
-           # on annule l'affectation en cours
-           self.out= self.out+ self.affectation_courante.texte
-           self.affectation_courante=None
-           self.name=None
-           self.affectation=0
+            # on a une expression qui commence par NAME=NAME(NAME=)
+            # il peut s'agir d'une commande
+            # on annule l'affectation en cours
+            self.out= self.out+ self.affectation_courante.texte
+            self.affectation_courante=None
+            self.name=None
+            self.affectation=0
         elif tstring == ')' and self.affectation ==4:
-           # on a une expression qui commence par NAME=NAME()
-           # il peut s'agir d'une commande
-           # on annule l'affectation en cours
-           self.out= self.out+ self.affectation_courante.texte
-           self.affectation_courante=None
-           self.affectation=0
+            # on a une expression qui commence par NAME=NAME()
+            # il peut s'agir d'une commande
+            # on annule l'affectation en cours
+            self.out= self.out+ self.affectation_courante.texte
+            self.affectation_courante=None
+            self.affectation=0
         elif tstring == '(' and self.affectation == 3:
-           # on a deja trouve NAME=NAME
-           # on passe affectation a 4
-           if self.thiscol > self.lastcol :self.affectation_courante.appendText((self.thiscol - self.lastcol)*" ")
-           self.affectation_courante.appendText(tstring)
-           self.affectation=4
-           return
+            # on a deja trouve NAME=NAME
+            # on passe affectation a 4
+            if self.thiscol > self.lastcol :self.affectation_courante.appendText((self.thiscol - self.lastcol)*" ")
+            self.affectation_courante.appendText(tstring)
+            self.affectation=4
+            return
         elif tstring == ';' and self.affectation>=1:
-           # l'affectation est terminee
-           self.out= self.out+ str(self.affectation_courante)
-           self.affectation_courante=None
-           self.please_indent=1
-           self.affectation=0
+            # l'affectation est terminee
+            self.out= self.out+ str(self.affectation_courante)
+            self.affectation_courante=None
+            self.please_indent=1
+            self.affectation=0
         elif self.affectation>=1:
-           # on complete l'affectation
-           if self.thiscol > self.lastcol :self.affectation_courante.appendText((self.thiscol - self.lastcol)*" ")
-           self.affectation_courante.appendText(tstring)
-           self.affectation=2
-           return
+            # on complete l'affectation
+            if self.thiscol > self.lastcol :self.affectation_courante.appendText((self.thiscol - self.lastcol)*" ")
+            self.affectation_courante.appendText(tstring)
+            self.affectation=2
+            return
 
         self.affectation=0
-        if self.name and tstring=='=': 
-           self.affectation=1
-           self.affectation_courante=AFFECTATION()
-           self.affectation_courante.name=self.name
+        if self.name and tstring=='=':
+            self.affectation=1
+            self.affectation_courante=AFFECTATION()
+            self.affectation_courante.name=self.name
         self.output(tstring)
 
     ENDMARKER = ident
@@ -439,37 +439,37 @@ class PARSEUR_PYTHON(object):
 
     def INDENT(self, tstring):
         #tstring=str(len(self.indent_list))*len(tstring)
-        self.indent_list.append(tstring) 
+        self.indent_list.append(tstring)
         #print "indentation dans INDENT",len(self.indent_list),len(tstring)
         self.affectation=0
         if self.buffer:
-           self.updateIndent()
+            self.updateIndent()
         self.flush_buffer()
 
     def DEDENT(self, tstring):
         #print "DEDENT",tstring,len(tstring)
         if self.buffer:
-           self.out= self.out+ str(self.buffer[0])
-           if len(self.buffer) > 1:
-              for ob in self.buffer[1:]:
-                  self.doIndent()
-                  self.out= self.out+ str(ob)
-           self.buffer=[]
-           self.objet_courant=None
-           self.please_indent=1
+            self.out= self.out+ str(self.buffer[0])
+            if len(self.buffer) > 1:
+                for ob in self.buffer[1:]:
+                    self.doIndent()
+                    self.out= self.out+ str(ob)
+            self.buffer=[]
+            self.objet_courant=None
+            self.please_indent=1
 
         self.affectation=0
-        self.indent_list = self.indent_list[:-1] 
+        self.indent_list = self.indent_list[:-1]
         #print "indentation dans DEDENT",len(self.indent_list)
 
     def STRING(self, tstring):
         self.flush_buffer()
         if self.affectation>=1:
-           # affectation en cours, on ajoute
-           if self.thiscol > self.lastcol :self.affectation_courante.appendText((self.thiscol - self.lastcol)*" ")
-           self.affectation_courante.appendText(tstring)
-           self.affectation=2
-           return
+            # affectation en cours, on ajoute
+            if self.thiscol > self.lastcol :self.affectation_courante.appendText((self.thiscol - self.lastcol)*" ")
+            self.affectation_courante.appendText(tstring)
+            self.affectation=2
+            return
         self.output(tstring)
 
 if __name__ == "__main__" :
@@ -528,7 +528,7 @@ TEST_TABLE( TABLE=RELV[k],
                FILTRE=(
                         _F( NOM_PARA = 'QUANTITE',
                             VALE_K = 'MAXIMUM'),),
-        # commentaire 
+        # commentaire
                NOM_PARA='VMIS',  # comm
                VALE=1.9669824189084E9,
                REFERENCE='NON_REGRESSION',
@@ -770,7 +770,7 @@ for k in range(1,10):
 #comm
 
                if t:
-                 a=5  
+                 a=5
 #comm
 if 1:
   a=2
@@ -818,7 +818,7 @@ for k in range(1,10):
 
    f=open("coque.geo","w")
 #comm
-   if 1: 
+   if 1:
       if 2:
          if 3:
             a=1
@@ -896,12 +896,12 @@ def POST_GOUJ_ops(self,TABLE):
 
 """
     if len(sys.argv)== 2:
-       progname, input = sys.argv
-       f=open(input)
-       t=f.read()
-       f.close()
+        progname, input = sys.argv
+        f=open(input)
+        t=f.read()
+        f.close()
     else:
-       t=text
+        t=text
     txt = PARSEUR_PYTHON(t).getTexte()
     print (txt)
     compile(txt,"<string>",'exec')
index 624395c6fa313a8594dfaa70c28b999c76fd733d..a7cc908c6ab4ac1488cd85695bdff7b4c07c607f 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -27,9 +27,9 @@ from Extensions.i18n import tr
 
 from convert.convert_python import Pythonparser
 try:
-  basestring
+    basestring
 except NameError:
-  basestring = str
+    basestring = str
 
 pattern_comment_slash        = re.compile(r"^\s*/")
 pattern_comment_slash_vide   = re.compile(r"^\s*/\s*$")
@@ -75,422 +75,422 @@ from Extensions import localisation
 
 
 def entryPoint():
-   """
-   Return a dictionary containing the description needed to load the plugin
-   """
-   return {
-          'name' : 'TELEMAC',
-          'factory' : TELEMACparser
-          }
+    """
+    Return a dictionary containing the description needed to load the plugin
+    """
+    return {
+           'name' : 'TELEMAC',
+           'factory' : TELEMACparser
+           }
 
 class TELEMACparser(Pythonparser):
-   """
-   This converter works like Pythonparser, except that it also initializes all
-   model variables to None in order to avoid Python syntax errors when loading
-   a file with a different or inexistent definition of variables.
-   """
-
-
-
-   def convert(self, outformat, appliEficas=None):
-
-
-      from Accas import A_BLOC, A_FACT, A_SIMP
-      try :
-        self.dicoCasToCata = appliEficas.readercata.dicoCasToCata
-      except :
-        self.dicoCasToCata = {}
-        print ('pas de dicoCasToCata')
-      self.dicoInverse              = appliEficas.readercata.dicoInverse
-      self.dicoMC                   = appliEficas.readercata.dicoMC
-      self.Ordre_Des_Commandes      = appliEficas.readercata.Ordre_Des_Commandes
-      try :
-        self.TelemacdicoEn            = appliEficas.readercata.TelemacdicoEn
-      except :
-        self.TelemacdicoEn = {}
-        print('pas de TelemacdicoEn')
-      try :
-        self.DicoEnumCasFrToEnumCasEn = appliEficas.readercata.DicoEnumCasFrToEnumCasEn
-      except :
-        self.DicoEnumCasFrToEnumCasEn = {}
-        print ('pas de DicoEnumCasFrToEnumCasEn')
-
-
-      if appliEficas.langue=='fr' :
-          #from enum_Telemac2d_auto       import DicoEnumCasFrToEnumCasEn
-          for k in self.DicoEnumCasFrToEnumCasEn :
-              self.TelemacdicoEn[k]=self.DicoEnumCasFrToEnumCasEn[k]
-
-      text=""
-      self.dictSimp={}
-
-      l_lignes_texte_all = self.text.split('\n')
-      l_lignes_texte = []
-      listeComment = []
-      dicoComment={}
-      dicoCommentSimp={}
-      dicoCommentMC={}
-      texteComment=""
-      debut=True
-      trouveComment = 0
-      for l  in l_lignes_texte_all :
-        if pattern_eta.match(l) : continue
-        if pattern_fin.match(l) : continue
-        if pattern_blanc.match(l) : continue
-
-        if not(pattern_comment_slash.match(l)):
-              l_lignes_texte.append(l)
-              if trouveComment :
-                 if debut:  dicoComment['debut']=texteComment
-                 else : dicoComment[l]=texteComment
-                 trouveComment = 0
-                 texteComment=""
-              if debut : debut = False
-
-        if pattern_comment_slash.match(l):
-             #if pattern_comment_slash_vide.match(l) : continue
-             if pattern_comment_tiret.match(l) : continue
-             texteComment+=l.replace ('/','',1)
-             texteComment+='\n'
-             trouveComment=1
-
-      if texteComment != "" : dicoComment['fin']= texteComment
-
-
-      l_lignes=[]
-      i=0
-      while (i < len(l_lignes_texte)) :
-          ligne=l_lignes_texte[i]
-          i=i+1
-          if not(pattern_finit_par_virgule_ou_affect.match(ligne)):
-             l_lignes.append(ligne)
-             continue
-          nouvelle_ligne=ligne
-          while (i < len(l_lignes_texte)):
-             ligne_traitee=l_lignes_texte[i]
-             i=i+1
-             nouvelle_ligne += ligne_traitee
-             if not(pattern_finit_par_virgule_ou_affect.match(ligne_traitee)):
-                l_lignes.append(nouvelle_ligne)
-                break
-
-
-      for ligne in l_lignes :
-          if pattern_comment_slash.match(ligne) : continue
-          #PN : deja teste
-          #if pattern_eta.match(ligne) : continue
-          #if pattern_fin.match(ligne) : continue
-          #if pattern_blanc.match(ligne) : continue
-
-
-          finLigne=ligne
-          while finLigne != "" :
-              if pattern_comment_slash.match(finLigne) : finLigne=""; continue
-              valeur=""
-              if pattern_variables.match(finLigne) :
-                 m=pattern_variables.match(finLigne)
-                 simpCas=self.traiteIdent(m.group('ident'))
-                 if simpCas in ["COUPLING WITH", "COUPLAGE AVEC"]:
-                     if "," in m.group('valeur'):
-                         valeur=m.group('valeur').split(",")
-                     else:
-                         valeur=m.group('valeur').split(";")
-                 else:
-                     valeur=m.group('valeur')
-                 finLigne=m.group('reste')
-                 self.dictSimp[simpCas]=valeur
-                 continue
-
-
-              m=pattern_ligne.match(finLigne)
-              if m == None :
-                 #print( "________________________________________________")
-                 print ('pb avec ****', finLigne , '**** dans ', ligne)
-                 #print( "________________________________________________")
-                 break
-
-              simpCas=self.traiteIdent(m.group('ident'))
-              if not simpCas :
-                 finLigne=m.group('reste')
-                 continue
-
-              finLigne=m.group('reste')
-              # attention, l ordre des if est important
-              if pattern_liste.match(finLigne) :
-                 m=pattern_liste.match(finLigne)
-              elif pattern_liste_texte.match(finLigne) :
-                 m=pattern_liste_texte.match(finLigne)
-              elif pattern_texteQuote.match(finLigne) :
-                 m=pattern_texteQuote.match(finLigne)
-              elif pattern_flottant.match(finLigne) :
-                 m=pattern_flottant.match(finLigne)
-              elif pattern_texteVide.match(finLigne):
-                 m=pattern_texteVide.match(finLigne)
-              elif pattern_texteSimple.match(finLigne):
-                 m=pattern_texteSimple.match(finLigne)
-              else :
-                 #print ("________________________________________________")
-                 print ('pb avec ****', finLigne , '**** dans ', ligne)
-                 print ("non match")
-                 #print ("________________________________________________")
-                 break
-
-
-              valeur=m.group('valeur')
-              if pattern_blanc.match(valeur) : valeur=None
-
-              if pattern_flottant.match(finLigne) :
-                 valeur=re.sub("d","e",valeur)
-                 valeur=re.sub("D","E",valeur)
-
-              if pattern_liste.match(finLigne) or \
-                 pattern_liste_texte.match(finLigne):
-                 valeur=valeur.split(";")
-
-
-              finLigne=m.group('reste')
-              self.dictSimp[simpCas]=valeur
-
-              if ligne in dicoComment.keys():
-                 dicoCommentSimp[simpCas]=dicoComment[ligne]
-
-      if 'TITLE' not in self.dictSimp :
-          import os
-          #self.dictSimp['TITLE']=os.path.basename(self.filename)
-
-
-      dicoParMC={}
-      for simp in self.dictSimp:
-          if simp in TELEMACparser.__dict__ : TELEMACparser.__dict__[simp](self,)
-
-      for simp in self.dictSimp:
-          if simp not in self.dicoInverse :
-             #print ( "************")
-             print  ("pb avec dans dicoInverse", simp,'------')
-             print("dicoInverse",sorted(self.dicoInverse.keys()))
-             #print  ("************")
-             continue
-          listeGenea=self.dicoInverse[simp]
-          listeGeneaReverse=[]
-          for (u,v) in listeGenea :
-              if isinstance(v,A_BLOC.BLOC): continue
-              listeGeneaReverse.append(u)
-          listeGeneaReverse.reverse()
-          dicoTravail=dicoParMC
-          i=0
-          if simp in dicoCommentSimp :
-             MC=listeGeneaReverse[0]
-             if MC in dicoCommentMC : dicoCommentMC[MC]+dicoCommentSimp[simp]
-             else                   : dicoCommentMC[MC]=dicoCommentSimp[simp]
-          while i < len(listeGeneaReverse[0:-1]) :
-            mot=listeGeneaReverse[i]
+    """
+    This converter works like Pythonparser, except that it also initializes all
+    model variables to None in order to avoid Python syntax errors when loading
+    a file with a different or inexistent definition of variables.
+    """
+
+
+
+    def convert(self, outformat, appliEficas=None):
+
+
+        from Accas import A_BLOC, A_FACT, A_SIMP
+        try :
+            self.dicoCasToCata = appliEficas.readercata.dicoCasToCata
+        except :
+            self.dicoCasToCata = {}
+            print ('pas de dicoCasToCata')
+        self.dicoInverse              = appliEficas.readercata.dicoInverse
+        self.dicoMC                   = appliEficas.readercata.dicoMC
+        self.Ordre_Des_Commandes      = appliEficas.readercata.Ordre_Des_Commandes
+        try :
+            self.TelemacdicoEn            = appliEficas.readercata.TelemacdicoEn
+        except :
+            self.TelemacdicoEn = {}
+            print('pas de TelemacdicoEn')
+        try :
+            self.DicoEnumCasFrToEnumCasEn = appliEficas.readercata.DicoEnumCasFrToEnumCasEn
+        except :
+            self.DicoEnumCasFrToEnumCasEn = {}
+            print ('pas de DicoEnumCasFrToEnumCasEn')
+
+
+        if appliEficas.langue=='fr' :
+            #from enum_Telemac2d_auto       import DicoEnumCasFrToEnumCasEn
+            for k in self.DicoEnumCasFrToEnumCasEn :
+                self.TelemacdicoEn[k]=self.DicoEnumCasFrToEnumCasEn[k]
+
+        text=""
+        self.dictSimp={}
+
+        l_lignes_texte_all = self.text.split('\n')
+        l_lignes_texte = []
+        listeComment = []
+        dicoComment={}
+        dicoCommentSimp={}
+        dicoCommentMC={}
+        texteComment=""
+        debut=True
+        trouveComment = 0
+        for l  in l_lignes_texte_all :
+            if pattern_eta.match(l) : continue
+            if pattern_fin.match(l) : continue
+            if pattern_blanc.match(l) : continue
+
+            if not(pattern_comment_slash.match(l)):
+                l_lignes_texte.append(l)
+                if trouveComment :
+                    if debut:  dicoComment['debut']=texteComment
+                    else : dicoComment[l]=texteComment
+                    trouveComment = 0
+                    texteComment=""
+                if debut : debut = False
+
+            if pattern_comment_slash.match(l):
+                #if pattern_comment_slash_vide.match(l) : continue
+                if pattern_comment_tiret.match(l) : continue
+                texteComment+=l.replace ('/','',1)
+                texteComment+='\n'
+                trouveComment=1
+
+        if texteComment != "" : dicoComment['fin']= texteComment
+
+
+        l_lignes=[]
+        i=0
+        while (i < len(l_lignes_texte)) :
+            ligne=l_lignes_texte[i]
             i=i+1
-            if mot not in dicoTravail: dicoTravail[mot]={}
-            dicoTravail=dicoTravail[mot]
-          dicoTravail[simp]=self.dictSimp[simp]
-
-      self.textePy=""
-      listeMC=self.tri(list(dicoParMC.keys()))
-      for k in listeMC :
-          if k in dicoCommentMC :
+            if not(pattern_finit_par_virgule_ou_affect.match(ligne)):
+                l_lignes.append(ligne)
+                continue
+            nouvelle_ligne=ligne
+            while (i < len(l_lignes_texte)):
+                ligne_traitee=l_lignes_texte[i]
+                i=i+1
+                nouvelle_ligne += ligne_traitee
+                if not(pattern_finit_par_virgule_ou_affect.match(ligne_traitee)):
+                    l_lignes.append(nouvelle_ligne)
+                    break
+
+
+        for ligne in l_lignes :
+            if pattern_comment_slash.match(ligne) : continue
+            #PN : deja teste
+            #if pattern_eta.match(ligne) : continue
+            #if pattern_fin.match(ligne) : continue
+            #if pattern_blanc.match(ligne) : continue
+
+
+            finLigne=ligne
+            while finLigne != "" :
+                if pattern_comment_slash.match(finLigne) : finLigne=""; continue
+                valeur=""
+                if pattern_variables.match(finLigne) :
+                    m=pattern_variables.match(finLigne)
+                    simpCas=self.traiteIdent(m.group('ident'))
+                    if simpCas in ["COUPLING WITH", "COUPLAGE AVEC"]:
+                        if "," in m.group('valeur'):
+                            valeur=m.group('valeur').split(",")
+                        else:
+                            valeur=m.group('valeur').split(";")
+                    else:
+                        valeur=m.group('valeur')
+                    finLigne=m.group('reste')
+                    self.dictSimp[simpCas]=valeur
+                    continue
+
+
+                m=pattern_ligne.match(finLigne)
+                if m == None :
+                    #print( "________________________________________________")
+                    print ('pb avec ****', finLigne , '**** dans ', ligne)
+                    #print( "________________________________________________")
+                    break
+
+                simpCas=self.traiteIdent(m.group('ident'))
+                if not simpCas :
+                    finLigne=m.group('reste')
+                    continue
+
+                finLigne=m.group('reste')
+                # attention, l ordre des if est important
+                if pattern_liste.match(finLigne) :
+                    m=pattern_liste.match(finLigne)
+                elif pattern_liste_texte.match(finLigne) :
+                    m=pattern_liste_texte.match(finLigne)
+                elif pattern_texteQuote.match(finLigne) :
+                    m=pattern_texteQuote.match(finLigne)
+                elif pattern_flottant.match(finLigne) :
+                    m=pattern_flottant.match(finLigne)
+                elif pattern_texteVide.match(finLigne):
+                    m=pattern_texteVide.match(finLigne)
+                elif pattern_texteSimple.match(finLigne):
+                    m=pattern_texteSimple.match(finLigne)
+                else :
+                    #print ("________________________________________________")
+                    print ('pb avec ****', finLigne , '**** dans ', ligne)
+                    print ("non match")
+                    #print ("________________________________________________")
+                    break
+
+
+                valeur=m.group('valeur')
+                if pattern_blanc.match(valeur) : valeur=None
+
+                if pattern_flottant.match(finLigne) :
+                    valeur=re.sub("d","e",valeur)
+                    valeur=re.sub("D","E",valeur)
+
+                if pattern_liste.match(finLigne) or \
+                   pattern_liste_texte.match(finLigne):
+                    valeur=valeur.split(";")
+
+
+                finLigne=m.group('reste')
+                self.dictSimp[simpCas]=valeur
+
+                if ligne in dicoComment.keys():
+                    dicoCommentSimp[simpCas]=dicoComment[ligne]
+
+        if 'TITLE' not in self.dictSimp :
+            import os
+            #self.dictSimp['TITLE']=os.path.basename(self.filename)
+
+
+        dicoParMC={}
+        for simp in self.dictSimp:
+            if simp in TELEMACparser.__dict__ : TELEMACparser.__dict__[simp](self,)
+
+        for simp in self.dictSimp:
+            if simp not in self.dicoInverse :
+                #print ( "************")
+                print  ("pb avec dans dicoInverse", simp,'------')
+                print("dicoInverse",sorted(self.dicoInverse.keys()))
+                #print  ("************")
+                continue
+            listeGenea=self.dicoInverse[simp]
+            listeGeneaReverse=[]
+            for (u,v) in listeGenea :
+                if isinstance(v,A_BLOC.BLOC): continue
+                listeGeneaReverse.append(u)
+            listeGeneaReverse.reverse()
+            dicoTravail=dicoParMC
+            i=0
+            if simp in dicoCommentSimp :
+                MC=listeGeneaReverse[0]
+                if MC in dicoCommentMC : dicoCommentMC[MC]+dicoCommentSimp[simp]
+                else                   : dicoCommentMC[MC]=dicoCommentSimp[simp]
+            while i < len(listeGeneaReverse[0:-1]) :
+                mot=listeGeneaReverse[i]
+                i=i+1
+                if mot not in dicoTravail: dicoTravail[mot]={}
+                dicoTravail=dicoTravail[mot]
+            dicoTravail[simp]=self.dictSimp[simp]
+
+        self.textePy=""
+        listeMC=self.tri(list(dicoParMC.keys()))
+        for k in listeMC :
+            if k in dicoCommentMC :
                 commentaire="COMMENTAIRE("+repr(dicoCommentMC[k])+")\n"
                 self.textePy+=commentaire
-          self.textePy += str(k )+ "("
-          self.traiteMC(dicoParMC[k])
-          self.textePy += ");\n"
-
-
-      # ne sert plus
-      #appliEficas.listeTelemac=self.dictSimp
-      appliEficas.listeTelemac={}
-      if 'debut' in dicoComment :
-          commentaire="COMMENTAIRE("+repr(dicoComment['debut'])+")\n"
-          self.textePy=commentaire+self.textePy
-      if 'fin' in dicoComment :
-          commentaire="COMMENTAIRE("+repr(dicoComment['fin'])+")\n"
-          self.textePy=self.textePy+commentaire
-
-      #print (self.textePy)
-      return self.textePy
-
-
-   #----------------------------------------
-   def traiteIdent(self,ident):
-   # enleve les espaces de part et autre
-   # traduit du langage Telemac vers le langage Catalogue
-   #----------------------------------------
-          while ident[-1] == " " or ident[-1] == '\t' : ident=ident[0:-1]
-          while ident[0]  == " " or ident[0]  == '\t' : ident=ident[1:]
-          try : identCata=self.dicoCasToCata[ident]
-          except :
+            self.textePy += str(k )+ "("
+            self.traiteMC(dicoParMC[k])
+            self.textePy += ");\n"
+
+
+        # ne sert plus
+        #appliEficas.listeTelemac=self.dictSimp
+        appliEficas.listeTelemac={}
+        if 'debut' in dicoComment :
+            commentaire="COMMENTAIRE("+repr(dicoComment['debut'])+")\n"
+            self.textePy=commentaire+self.textePy
+        if 'fin' in dicoComment :
+            commentaire="COMMENTAIRE("+repr(dicoComment['fin'])+")\n"
+            self.textePy=self.textePy+commentaire
+
+        #print (self.textePy)
+        return self.textePy
+
+
+    #----------------------------------------
+    def traiteIdent(self,ident):
+    # enleve les espaces de part et autre
+    # traduit du langage Telemac vers le langage Catalogue
+    #----------------------------------------
+        while ident[-1] == " " or ident[-1] == '\t' : ident=ident[0:-1]
+        while ident[0]  == " " or ident[0]  == '\t' : ident=ident[1:]
+        try : identCata=self.dicoCasToCata[ident]
+        except :
             print ( "---> ", "pb mot clef  pour", ident)
             identCata=None
-          return identCata
-
-
-   def traiteMC(self,dico) :
-       from Accas import A_BLOC, A_FACT, A_SIMP
-       for k in dico :
-           valeur= dico[k]
-           if k not in self.dicoMC : kA=self.dicoFrancaisAnglais[k]
-           else : kA=k
-           obj=self.dicoMC[kA]
-           if isinstance(obj,A_FACT.FACT):   self.convertFACT(obj,kA,valeur)
-           elif isinstance(obj,A_BLOC.BLOC): self.convertBLOC(obj,kA,valeur)
-           elif isinstance(obj,A_SIMP.SIMP): self.convertSIMP(obj,kA,valeur)
-           else : print ("%%%%%%%%%%%\n", "pb conversion type pour", k, obj, "\n%%%%%%%%%%%")
-
-
-   def convertFACT(self,obj,nom,valeur):
-       # traitement LIQUID_BOUNDARIES
-       if nom in TELEMACparser.__dict__ :
-          TELEMACparser.__dict__[nom](self,)
-          return
-       self.textePy +=  nom + "=_F( "
-       self.traiteMC(valeur)
-       self.textePy += '),\n'
-
-
-   def convertBLOC(self,obj,nom,valeur):
-       print ("ANOMALIE _________ BLOC ")
-       print (nom)
-
-   def convertSIMP(self,obj,nom,valeur):
-       #print ('in convertSIMP', nom,valeur)
-       #if nom in ("PRESCRIBED_FLOWRATES", "PRESCRIBED_VELOCITIES", "PRESCRIBED_ELEVATIONS" ): return
-       if obj.max==1 :
-          if hasattr(obj.type[0],'ntuple') :
-             lval=[]
-             for v in valeur :
-               try :    v=eval(v,{})
-               except : pass
-               lval.append(v)
-             self.textePy += nom + "=" + str(lval) +","
-             return
-          if 'TXM' in obj.type :
-
-              if pattern_ContientDouble.match(str(valeur)):
-                 valeur=re.sub("''","\'\'",str(valeur))
-                 self.textePy += nom + "=" + str(valeur) +","
-                 return
-              valeur=str(valeur)
-
-              # ceinture et bretelle si les re sont correctes -)
-              while valeur[-1] == " " or valeur[-1] == '\t' : valeur=valeur[0:-1]
-              while valeur[0]  == " " or valeur[0]  == '\t' : valeur=valeur[1:]
-
-
-
-          # Pour les enum
-          try    : valeur=eval(valeur,{})
-          except : pass
-
-          if nom in self.TelemacdicoEn:
-             try    :
-               valeur=self.TelemacdicoEn[nom][valeur]
-               self.textePy += nom + "= '" + str(valeur) +"',"
-               return
-             except : pass
-
-
-          if obj.into != [] and obj.into != None and not('R' in obj.type) and not('I' in obj.type):
-             for possible in obj.into :
-                try :
-                  if possible.upper() == valeur.upper():
-                     valeur=possible
-                     break
-                  v=valeur[0].upper()+valeur[1:].lower()
-                  v2=tr(v)
-                  if possible.upper() == v2.upper():
-                     valeur=possible
-                     break
-                except:
-                   if valeur != None :
-                      print ("pb avec le type de ", obj.nom, obj.type, 'et la valeur ', valeur)
-
-          if 'Fichier' in obj.type or 'TXM' in obj.type or 'Repertoire' in obj.type or 'FichierOuRepertoire' in obj.type :
-              valeur=str(valeur)
-              if valeur == "" or valeur == " " :
-                 self.textePy += nom + "= '" + str(valeur) +"' ,"
-                 return
-              while valeur[-1] == " " : valeur=valeur[0:-1]
-              while valeur[0]  == " " : valeur=valeur[1:]
-              self.textePy += nom + "= '" + str(valeur) +"' ,"
-              return
-
-          if bool in obj.type :
-            if   valeur == True  :  self.textePy += nom + "= True,"
-            elif valeur == False :  self.textePy += nom + "= False,"
-            elif pattern_oui.match(valeur) : self.textePy += nom + "= True,"
-            elif pattern_non.match(valeur) : self.textePy += nom + "= False,"
-            else :  self.textePy += nom + "= None,"
+        return identCata
+
+
+    def traiteMC(self,dico) :
+        from Accas import A_BLOC, A_FACT, A_SIMP
+        for k in dico :
+            valeur= dico[k]
+            if k not in self.dicoMC : kA=self.dicoFrancaisAnglais[k]
+            else : kA=k
+            obj=self.dicoMC[kA]
+            if isinstance(obj,A_FACT.FACT):   self.convertFACT(obj,kA,valeur)
+            elif isinstance(obj,A_BLOC.BLOC): self.convertBLOC(obj,kA,valeur)
+            elif isinstance(obj,A_SIMP.SIMP): self.convertSIMP(obj,kA,valeur)
+            else : print ("%%%%%%%%%%%\n", "pb conversion type pour", k, obj, "\n%%%%%%%%%%%")
+
+
+    def convertFACT(self,obj,nom,valeur):
+        # traitement LIQUID_BOUNDARIES
+        if nom in TELEMACparser.__dict__ :
+            TELEMACparser.__dict__[nom](self,)
             return
-          self.textePy += nom + "=" + str(valeur) +","
-
-       else :
-          if valeur == () or valeur ==[] or pattern_listeVide.match(str(valeur)) :
-             self.textePy += nom + "= None,"
-             return
-
-          # les 4 lignes suivantes sont probablement inutiles
-          while valeur[-1] == " " or  valeur[-1]=="'" : valeur=valeur[0:-1]
-          while valeur[0]  == " " or  valeur[-0]=="'" : valeur=valeur[1:]
-          oldValeur=valeur
-          if isinstance(valeur, basestring) :
-             if   ";" in valeur : valeur=valeur.split(';')
-             else  : valeur=valeur.split(',')
-
-          if len(valeur)< 2 and pattern_flottant.match(oldValeur):
-          # Attention : on attend une liste mais on a une seule valeur!
-             try :    oldValeur=eval(oldValeur,{})
-             except : pass
-             if nom in self.TelemacdicoEn :
-                v=self.TelemacdicoEn[nom][oldValeur]
-                self.textePy += nom + "= ('" + str(v) +"',),"
-             else :
-                self.textePy += nom + "= (" + str(oldValeur) +",),"
-             return
-
-          # Cas des liste de booléen
-          if bool in obj.type:
-            values = []
-            for val in valeur:
-              if val == True or pattern_oui.match(val) or val == 'True':
-                values.append('True')
-              elif val == False or pattern_non.match(val) or val == 'False':
-                values.append('False')
-              else:
-                values.append('None')
-            self.textePy += nom + "= [" + ','.join(values) + '],'
-            return
-
-
-          if valeur == None : return
-          newVal=[]
-          for v in valeur :
-            try :    v=eval(v,{})
+        self.textePy +=  nom + "=_F( "
+        self.traiteMC(valeur)
+        self.textePy += '),\n'
+
+
+    def convertBLOC(self,obj,nom,valeur):
+        print ("ANOMALIE _________ BLOC ")
+        print (nom)
+
+    def convertSIMP(self,obj,nom,valeur):
+        #print ('in convertSIMP', nom,valeur)
+        #if nom in ("PRESCRIBED_FLOWRATES", "PRESCRIBED_VELOCITIES", "PRESCRIBED_ELEVATIONS" ): return
+        if obj.max==1 :
+            if hasattr(obj.type[0],'ntuple') :
+                lval=[]
+                for v in valeur :
+                    try :    v=eval(v,{})
+                    except : pass
+                    lval.append(v)
+                self.textePy += nom + "=" + str(lval) +","
+                return
+            if 'TXM' in obj.type :
+
+                if pattern_ContientDouble.match(str(valeur)):
+                    valeur=re.sub("''","\'\'",str(valeur))
+                    self.textePy += nom + "=" + str(valeur) +","
+                    return
+                valeur=str(valeur)
+
+                # ceinture et bretelle si les re sont correctes -)
+                while valeur[-1] == " " or valeur[-1] == '\t' : valeur=valeur[0:-1]
+                while valeur[0]  == " " or valeur[0]  == '\t' : valeur=valeur[1:]
+
+
+
+            # Pour les enum
+            try    : valeur=eval(valeur,{})
             except : pass
+
             if nom in self.TelemacdicoEn:
-               try    : v=self.TelemacdicoEn[nom][v]
-               except : pass
-            newVal.append(v)
-          self.textePy += nom + "=" + str(newVal) +","
-
-
-
-   def tri(self, listeIn):
-      if len(listeIn) == 1 : return listeIn
-      if self.Ordre_Des_Commandes == None : return listeIn
-      listeOut=[listeIn[0],]
-      for k in listeIn[1:]:
-          #k=str(self.dicoFrancaisAnglais[kF])
-          ordreK=self.Ordre_Des_Commandes.index(k)
-          i=0
-          while i < len(listeOut):
-             #ordreI=self.Ordre_Des_Commandes.index(self.dicoFrancaisAnglais[listeOut[i]])
-             ordreI=self.Ordre_Des_Commandes.index(listeOut[i])
-             if ordreK < ordreI : break
-             i=i+1
-          #listeOut.insert(i,kF)
-          listeOut.insert(i,k)
-      return listeOut
+                try    :
+                    valeur=self.TelemacdicoEn[nom][valeur]
+                    self.textePy += nom + "= '" + str(valeur) +"',"
+                    return
+                except : pass
+
+
+            if obj.into != [] and obj.into != None and not('R' in obj.type) and not('I' in obj.type):
+                for possible in obj.into :
+                    try :
+                        if possible.upper() == valeur.upper():
+                            valeur=possible
+                            break
+                        v=valeur[0].upper()+valeur[1:].lower()
+                        v2=tr(v)
+                        if possible.upper() == v2.upper():
+                            valeur=possible
+                            break
+                    except:
+                        if valeur != None :
+                            print ("pb avec le type de ", obj.nom, obj.type, 'et la valeur ', valeur)
+
+            if 'Fichier' in obj.type or 'TXM' in obj.type or 'Repertoire' in obj.type or 'FichierOuRepertoire' in obj.type :
+                valeur=str(valeur)
+                if valeur == "" or valeur == " " :
+                    self.textePy += nom + "= '" + str(valeur) +"' ,"
+                    return
+                while valeur[-1] == " " : valeur=valeur[0:-1]
+                while valeur[0]  == " " : valeur=valeur[1:]
+                self.textePy += nom + "= '" + str(valeur) +"' ,"
+                return
+
+            if bool in obj.type :
+                if   valeur == True  :  self.textePy += nom + "= True,"
+                elif valeur == False :  self.textePy += nom + "= False,"
+                elif pattern_oui.match(valeur) : self.textePy += nom + "= True,"
+                elif pattern_non.match(valeur) : self.textePy += nom + "= False,"
+                else :  self.textePy += nom + "= None,"
+                return
+            self.textePy += nom + "=" + str(valeur) +","
+
+        else :
+            if valeur == () or valeur ==[] or pattern_listeVide.match(str(valeur)) :
+                self.textePy += nom + "= None,"
+                return
+
+            # les 4 lignes suivantes sont probablement inutiles
+            while valeur[-1] == " " or  valeur[-1]=="'" : valeur=valeur[0:-1]
+            while valeur[0]  == " " or  valeur[-0]=="'" : valeur=valeur[1:]
+            oldValeur=valeur
+            if isinstance(valeur, basestring) :
+                if   ";" in valeur : valeur=valeur.split(';')
+                else  : valeur=valeur.split(',')
+
+            if len(valeur)< 2 and pattern_flottant.match(oldValeur):
+            # Attention : on attend une liste mais on a une seule valeur!
+                try :    oldValeur=eval(oldValeur,{})
+                except : pass
+                if nom in self.TelemacdicoEn :
+                    v=self.TelemacdicoEn[nom][oldValeur]
+                    self.textePy += nom + "= ('" + str(v) +"',),"
+                else :
+                    self.textePy += nom + "= (" + str(oldValeur) +",),"
+                return
+
+            # Cas des liste de booléen
+            if bool in obj.type:
+                values = []
+                for val in valeur:
+                    if val == True or pattern_oui.match(val) or val == 'True':
+                        values.append('True')
+                    elif val == False or pattern_non.match(val) or val == 'False':
+                        values.append('False')
+                    else:
+                        values.append('None')
+                self.textePy += nom + "= [" + ','.join(values) + '],'
+                return
+
+
+            if valeur == None : return
+            newVal=[]
+            for v in valeur :
+                try :    v=eval(v,{})
+                except : pass
+                if nom in self.TelemacdicoEn:
+                    try    : v=self.TelemacdicoEn[nom][v]
+                    except : pass
+                newVal.append(v)
+            self.textePy += nom + "=" + str(newVal) +","
+
+
+
+    def tri(self, listeIn):
+        if len(listeIn) == 1 : return listeIn
+        if self.Ordre_Des_Commandes == None : return listeIn
+        listeOut=[listeIn[0],]
+        for k in listeIn[1:]:
+            #k=str(self.dicoFrancaisAnglais[kF])
+            ordreK=self.Ordre_Des_Commandes.index(k)
+            i=0
+            while i < len(listeOut):
+                #ordreI=self.Ordre_Des_Commandes.index(self.dicoFrancaisAnglais[listeOut[i]])
+                ordreI=self.Ordre_Des_Commandes.index(listeOut[i])
+                if ordreK < ordreI : break
+                i=i+1
+            #listeOut.insert(i,kF)
+            listeOut.insert(i,k)
+        return listeOut
index 87ce35147f5b55c1377b828502522eba59f78cf8..7a6be7b06677eb893ae0c3c67e8bc4c5668ccb4d 100644 (file)
@@ -30,49 +30,46 @@ from Noyau import N_CR
 
 
 def entryPoint():
-   """
-   Return a dictionary containing the description needed to load the plugin
-   """
-   return {
-          'name' : 'xml',
-          'factory' : XMLparser
-          }
+    """
+    Return a dictionary containing the description needed to load the plugin
+    """
+    return {
+           'name' : 'xml',
+           'factory' : XMLparser
+           }
 
 class XMLparser:
-   """
-   This converter works like Pythonparser, except that it is supposed to read XML
-   """
+    """
+    This converter works like Pythonparser, except that it is supposed to read XML
+    """
 
-   def __init__(self,cr=None):
-      self.text=''
-      if cr : self.cr=cr
-      else: self.cr=N_CR.CR(debut='CR convertisseur format XML',
-                         fin='fin CR format XML')
+    def __init__(self,cr=None):
+        print ('dans XML convert')
+        self.text=''
+        if cr : self.cr=cr
+        else: self.cr=N_CR.CR(debut='CR convertisseur format XML',
+                           fin='fin CR format XML')
 
-   def readfile(self,filename):
-      self.filename=filename
-      try:
-         self.text=open(filename).read()
-      except:
-         self.cr.exception(tr("Impossible d'ouvrir le fichier %s" ,str(filename)))
-         self.cr.fatal(tr("Impossible d'ouvrir le fichier %s" ,str(filename)))
-         return
+    def readfile(self,filename):
+        self.filename=filename
+        try:
+            with open(filename) as fd :
+                self.text=fd.read()
+        except:
+            self.cr.exception(tr("Impossible d'ouvrir le fichier %s" ,str(filename)))
+            self.cr.fatal(tr("Impossible d'ouvrir le fichier %s" ,str(filename)))
+            return
 
 
 
-   def convert(self, outformat, appli=None):
-   # ici on ne fait rien
-   # on le fera a la creation du JDC
-       try:
+    def convert(self, outformat, appliEficas=None):
+    # ici on ne fait rien
+    # on le fera a la creation du JDC
+        try:
             return self.text
-       except EficasException:
+        except EficasException:
             # Erreur lors de la conversion
             l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],
                                          sys.exc_info()[2])
             self.cr.exception(tr("Impossible de convertir le fichier XML\n %s", ''.join(l)))
             return ""
-         
-
-      
-
-
index ae82cb79e1a5289c2aeae9aae36aaae52c2e84d1..9b77999d1e2f41fb7d8778da6b3d13d2f4d309cc 100644 (file)
@@ -27,74 +27,74 @@ from .convert_python import Pythonparser
 from Noyau import N_CR
 
 try:
-  basestring
+    basestring
 except NameError:
-  basestring = str
+    basestring = str
 
 
 
 def entryPoint():
-   """
-   Return a dictionary containing the description needed to load the plugin
-   """
-   return {
-          'name' : 'dico',
-          'factory' : Dicoparser
-          }
+    """
+    Return a dictionary containing the description needed to load the plugin
+    """
+    return {
+           'name' : 'dico',
+           'factory' : Dicoparser
+           }
 
 class Dicoparser(Pythonparser):
-  """
-   This converter initializes model variable from a python dictionnary
-  """
+    """
+     This converter initializes model variable from a python dictionnary
+    """
 
-  def __init__(self,cr=None):
-      # Si l'objet compte-rendu n'est pas fourni, on utilise le
-      # compte-rendu standard
-      self.text=''
-      self.textePy=''
-      if cr :
-         self.cr=cr
-      else:
-         self.cr=N_CR.CR(debut='CR convertisseur format dico',
-                         fin='fin CR format dico')
+    def __init__(self,cr=None):
+        # Si l'objet compte-rendu n'est pas fourni, on utilise le
+        # compte-rendu standard
+        self.text=''
+        self.textePy=''
+        if cr :
+            self.cr=cr
+        else:
+            self.cr=N_CR.CR(debut='CR convertisseur format dico',
+                            fin='fin CR format dico')
 
-  def readfile(self,filename):
-     self.filename=filename
-     try:
-        self.text=open(filename).read()
-     except:
-        self.cr.exception(tr("Impossible d'ouvrir le fichier %s" ,str(filename)))
-        self.cr.fatal(tr("Impossible d'ouvrir le fichier %s" ,str(filename)))
-        return
+    def readfile(self,filename):
+        self.filename=filename
+        try:
+            with open(filename) as fd :
+                self.text=fd.read()
+        except:
+            self.cr.exception(tr("Impossible d'ouvrir le fichier %s" ,str(filename)))
+            self.cr.fatal(tr("Impossible d'ouvrir le fichier %s" ,str(filename)))
+            return
 
-  def convert(self,outformat,appli=None):
-     monTexteDico={}
-     exec (self.text,globals(),monTexteDico)
-     if len(monTexteDico.keys()) != 1 : 
-        self.cr.exception(tr("Impossible de traiter le fichier %s" ,str(filename)))
-        self.cr.fatal(tr("Impossible de traiter le fichier %s" ,str(filename)))
-        return
-     self.textePy=""
-     monDico=monTexteDico[monTexteDico.keys()[0]]
-     for commande in monDico :
-         valeurs=monDico[commande]
-         if valeurs.has_key('NomDeLaSdCommande') :
-            # cas d un oper 
-              self.textePy+=valeurs['NomDeLaSdCommande']+' = '+commande+'('
-              del valeurs['NomDeLaSdCommande']
-         else :
-              self.textePy+=commande+'('
-         for mot in valeurs :
-             if isinstance(valeurs[mot],dict) : self.traiteMCFact(mot,valeurs[mot])
-             else : self.textePy += mot+' = ' +str(valeurs[mot])+','
-         self.textePy+=');\n' # fin de la commande
-     print (self.textePy)
-     return self.textePy
-
-  def traiteMCFact(self,mot,valeurs):
-      self.textePy += mot + '=_F('
-      for mot in valeurs :
-          if isinstance(valeurs[mot],dict) : self.traiteMCFact(mot,valeurs[mot])
-          else : self.textePy +=mot+' = ' +str(valeurs[mot])+','
-      self.textePy +='),'
+    def convert(self,outformat,appli=None):
+        monTexteDico={}
+        exec (self.text,globals(),monTexteDico)
+        if len(monTexteDico.keys()) != 1 :
+            self.cr.exception(tr("Impossible de traiter le fichier %s" ,str(filename)))
+            self.cr.fatal(tr("Impossible de traiter le fichier %s" ,str(filename)))
+            return
+        self.textePy=""
+        monDico=monTexteDico[monTexteDico.keys()[0]]
+        for commande in monDico :
+            valeurs=monDico[commande]
+            if valeurs.has_key('NomDeLaSdCommande') :
+               # cas d un oper
+                self.textePy+=valeurs['NomDeLaSdCommande']+' = '+commande+'('
+                del valeurs['NomDeLaSdCommande']
+            else :
+                self.textePy+=commande+'('
+            for mot in valeurs :
+                if isinstance(valeurs[mot],dict) : self.traiteMCFact(mot,valeurs[mot])
+                else : self.textePy += mot+' = ' +str(valeurs[mot])+','
+            self.textePy+=');\n' # fin de la commande
+        #print (self.textePy)
+        return self.textePy
 
+    def traiteMCFact(self,mot,valeurs):
+        self.textePy += mot + '=_F('
+        for mot in valeurs :
+            if isinstance(valeurs[mot],dict) : self.traiteMCFact(mot,valeurs[mot])
+            else : self.textePy +=mot+' = ' +str(valeurs[mot])+','
+        self.textePy +='),'
index 61dd60f07f811b2318387acc108bed1acfdfb362..f36a0b3a0b0fd4cdb02bda33815080781b43e5c2 100644 (file)
@@ -24,15 +24,13 @@ from __future__ import absolute_import
 from .convert_python import Pythonparser
 
 def entryPoint():
-   """
-       Retourne les informations necessaires pour le chargeur de plugins
-       Ces informations sont retournees dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'MAP',
-        # La factory pour creer une instance du plugin
-          'factory' : Pythonparser,
-          }
-
-
+    """
+        Retourne les informations necessaires pour le chargeur de plugins
+        Ces informations sont retournees dans un dictionnaire
+    """
+    return {
+         # Le nom du plugin
+           'name' : 'MAP',
+         # La factory pour creer une instance du plugin
+           'factory' : Pythonparser,
+           }
index cfe7097d7ba868dcd494ca618dbf6f24d6f2f515..b0dee9850feb91a11b0f3a353bfcdc853f126abc 100644 (file)
@@ -34,7 +34,7 @@
     Le format eval est un texte source Python qui peut etre evalue. Le
     resultat de l'evaluation est un objet Python quelconque.
     Le format dict est un dictionnaire Python.
-    Le format exec est un texte source Python qui peut etre execute. 
+    Le format exec est un texte source Python qui peut etre execute.
 
     La methode readfile a pour fonction de lire un fichier dont le
     nom est passe en argument de la fonction.
 """
 from __future__ import absolute_import
 try :
-   from builtins import str
-   from builtins import object
+    from builtins import str
+    from builtins import object
 except :
-   pass
+    pass
 
 import sys,traceback
 
@@ -61,68 +61,69 @@ from Extensions.i18n import tr
 from Extensions.eficas_exception import EficasException
 
 def entryPoint():
-   """
-       Retourne les informations necessaires pour le chargeur de plugins
-       Ces informations sont retournees dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'pyth',
-        # La factory pour creer une instance du plugin
-          'factory' : Pythparser,
-          }
+    """
+        Retourne les informations necessaires pour le chargeur de plugins
+        Ces informations sont retournees dans un dictionnaire
+    """
+    return {
+         # Le nom du plugin
+           'name' : 'pyth',
+         # La factory pour creer une instance du plugin
+           'factory' : Pythparser,
+           }
 
 
 class Pythparser(object):
-   """
-       Ce convertisseur lit un fichier au format pyth avec la 
-       methode readfile : convertisseur.readfile(nom_fichier)
-       et retourne le texte au format outformat avec la 
-       methode convertisseur.convert(outformat)
-
-       Ses caracteristiques principales sont exposees dans 2 attributs 
-       de classe :
-         - extensions : qui donne une liste d'extensions de fichier preconisees
-         - formats : qui donne une liste de formats de sortie supportes
-   """
-   # Les extensions de fichier preconisees
-   extensions=('.pyth',)
-   # Les formats de sortie supportes (eval dict ou exec)
-   formats=('dict',)
-
-   def __init__(self,cr=None):
-      # Si l'objet compte-rendu n'est pas fourni, on utilise le compte-rendu standard
-      if cr :
-         self.cr=cr
-      else:
-         self.cr=N_CR.CR(debut='CR convertisseur format pyth',
-                         fin='fin CR format pyth')
-      self.g={}
-
-   def readfile(self,filename):
-      self.filename=filename
-      try:
-         self.text=open(filename).read()
-      except:
-         self.cr.fatal(tr("Impossible d'ouvrir le fichier : %s",str( filename)))
-         return
-      self.g={}
-      try:
-         exec(self.text, self.g)
-      except EficasException as e:
-         l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])
-         s= ''.join(l[2:])
-         s= s.replace('"<string>"','"<%s>"'%self.filename)
-         self.cr.fatal(tr("Erreur a l'evaluation :\n %s", s))
-
-   def convert(self,outformat,appli=None):
-      if outformat == 'dict':
-         return self.getdict()
-      else:
-         raise EficasException(tr("Format de sortie : %s, non supporte", outformat))
-
-   def getdict(self):
-      d={}
-      for k,v in list(self.g.items()):
-         if k[0] != '_':d[k]=v
-      return d
+    """
+        Ce convertisseur lit un fichier au format pyth avec la
+        methode readfile : convertisseur.readfile(nom_fichier)
+        et retourne le texte au format outformat avec la
+        methode convertisseur.convert(outformat)
+
+        Ses caracteristiques principales sont exposees dans 2 attributs
+        de classe :
+          - extensions : qui donne une liste d'extensions de fichier preconisees
+          - formats : qui donne une liste de formats de sortie supportes
+    """
+    # Les extensions de fichier preconisees
+    extensions=('.pyth',)
+    # Les formats de sortie supportes (eval dict ou exec)
+    formats=('dict',)
+
+    def __init__(self,cr=None):
+        # Si l'objet compte-rendu n'est pas fourni, on utilise le compte-rendu standard
+        if cr :
+            self.cr=cr
+        else:
+            self.cr=N_CR.CR(debut='CR convertisseur format pyth',
+                            fin='fin CR format pyth')
+        self.g={}
+
+    def readfile(self,filename):
+        self.filename=filename
+        try:
+            with open(filename) as fd :
+                self.text=fd.read()
+        except:
+            self.cr.fatal(tr("Impossible d'ouvrir le fichier : %s",str( filename)))
+            return
+        self.g={}
+        try:
+            exec(self.text, self.g)
+        except EficasException as e:
+            l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])
+            s= ''.join(l[2:])
+            s= s.replace('"<string>"','"<%s>"'%self.filename)
+            self.cr.fatal(tr("Erreur a l'evaluation :\n %s", s))
+
+    def convert(self,outformat,appliEficas=None):
+        if outformat == 'dict':
+            return self.getdict()
+        else:
+            raise EficasException(tr("Format de sortie : %s, non supporte", outformat))
+
+    def getdict(self):
+        d={}
+        for k,v in list(self.g.items()):
+            if k[0] != '_':d[k]=v
+        return d
index 2684f68cf864651a1b25c343f2363a98e5411934..535dfaf42ed76969e3574c6a3a8054d3a5415ff5 100644 (file)
@@ -34,7 +34,7 @@
     Le format eval est un texte source Python qui peut etre evalue. Le
     resultat de l'evaluation est un objet Python quelconque.
     Le format dict est un dictionnaire Python.
-    Le format exec est un texte source Python qui peut etre execute. 
+    Le format exec est un texte source Python qui peut etre execute.
 
     La methode readfile a pour fonction de lire un fichier dont le
     nom est passe en argument de la fonction.
 """
 from __future__ import absolute_import
 try :
-  from builtins import str
-  from builtins import object
+    from builtins import str
+    from builtins import object
 except :
-  pass
+    pass
 import sys,traceback
 
 from .parseur_python import PARSEUR_PYTHON
@@ -61,82 +61,83 @@ from Extensions.i18n import tr
 from Extensions.eficas_exception import EficasException
 
 def entryPoint():
-   """
-       Retourne les informations necessaires pour le chargeur de plugins
-       Ces informations sont retournees dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'python',
-        # La factory pour creer une instance du plugin
-          'factory' : Pythonparser,
-          }
+    """
+        Retourne les informations necessaires pour le chargeur de plugins
+        Ces informations sont retournees dans un dictionnaire
+    """
+    return {
+         # Le nom du plugin
+           'name' : 'python',
+         # La factory pour creer une instance du plugin
+           'factory' : Pythonparser,
+           }
 
 
 class Pythonparser(object):
-   """
-       Ce convertisseur lit un fichier au format python avec la 
-       methode readfile : convertisseur.readfile(nom_fichier)
-       et retourne le texte au format outformat avec la 
-       methode convertisseur.convert(outformat)
-
-       Ses caracteristiques principales sont exposees dans 2 attributs 
-       de classe :
-          - extensions : qui donne une liste d'extensions de fichier preconisees
-          - formats : qui donne une liste de formats de sortie supportes
-   """
-   # Les extensions de fichier preconisees
-   extensions=('.py',)
-   # Les formats de sortie supportes (eval dict ou exec)
-   # Le format exec est du python executable (commande exec) converti avec PARSEUR_PYTHON
-   # Le format execnoparseur est du python executable (commande exec) non converti
-   formats=('exec','execnoparseur')
-
-   def __init__(self,cr=None):
-      # Si l'objet compte-rendu n'est pas fourni, on utilise le 
-      # compte-rendu standard
-      self.text=''
-      if cr :
-         self.cr=cr
-      else:
-         self.cr=N_CR.CR(debut='CR convertisseur format python',
-                         fin='fin CR format python')
-
-   def readfile(self,filename):
-      self.filename=filename
-      try:
-         self.text=open(filename).read()
-      except:
-         self.cr.exception(tr("Impossible d'ouvrir le fichier %s" ,str(filename)))
-         self.cr.fatal(tr("Impossible d'ouvrir le fichier %s" ,str(filename)))
-         return
-   
-   def convert(self,outformat,appli=None):
-      if outformat == 'exec':
-         try:
-            #import cProfile, pstats, StringIO
-            #pr = cProfile.Profile()
-            #pr.enable()            
-            l= PARSEUR_PYTHON(self.text).getTexte(appli)
-
-            #pr.disable()
-            #s = StringIO.StringIO()
-            #sortby = 'cumulative'
-            #ps = pstats.Stats(pr, stream=s).sort_stats(sortby)
-            #ps.print_stats()
-            #print (s.getValue())
-
-            return l
-         except EficasException:
-            # Erreur lors de la conversion
-            l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],
-                                         sys.exc_info()[2])
-            self.cr.exception(tr("Impossible de convertir le fichier Python qui doit contenir des erreurs.\n\
-                                  On retourne le fichier non converti. Prevenir la maintenance.\n\n %s", ''.join(l)))
-            # On retourne neanmoins le source initial non converti (au cas ou)
+    """
+        Ce convertisseur lit un fichier au format python avec la
+        methode readfile : convertisseur.readfile(nom_fichier)
+        et retourne le texte au format outformat avec la
+        methode convertisseur.convert(outformat)
+
+        Ses caracteristiques principales sont exposees dans 2 attributs
+        de classe :
+           - extensions : qui donne une liste d'extensions de fichier preconisees
+           - formats : qui donne une liste de formats de sortie supportes
+    """
+    # Les extensions de fichier preconisees
+    extensions=('.py',)
+    # Les formats de sortie supportes (eval dict ou exec)
+    # Le format exec est du python executable (commande exec) converti avec PARSEUR_PYTHON
+    # Le format execnoparseur est du python executable (commande exec) non converti
+    formats=('exec','execnoparseur')
+
+    def __init__(self,cr=None):
+        # Si l'objet compte-rendu n'est pas fourni, on utilise le
+        # compte-rendu standard
+        self.text=''
+        if cr :
+            self.cr=cr
+        else:
+            self.cr=N_CR.CR(debut='CR convertisseur format python',
+                            fin='fin CR format python')
+
+    def readfile(self,filename):
+        self.filename=filename
+        try:
+            with open(filename) as fd :
+                self.text=fd.read()
+        except:
+            self.cr.exception(tr("Impossible d'ouvrir le fichier %s" ,str(filename)))
+            self.cr.fatal(tr("Impossible d'ouvrir le fichier %s" ,str(filename)))
+            return
+
+    def convert(self,outformat,appliEficas=None):
+        if outformat == 'exec':
+            try:
+                #import cProfile, pstats, StringIO
+                #pr = cProfile.Profile()
+                #pr.enable()
+                l= PARSEUR_PYTHON(self.text).getTexte(appliEficas)
+
+                #pr.disable()
+                #s = StringIO.StringIO()
+                #sortby = 'cumulative'
+                #ps = pstats.Stats(pr, stream=s).sort_stats(sortby)
+                #ps.print_stats()
+                #print (s.getValue())
+
+                return l
+            except EficasException:
+                # Erreur lors de la conversion
+                l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],
+                                             sys.exc_info()[2])
+                self.cr.exception(tr("Impossible de convertir le fichier Python qui doit contenir des erreurs.\n\
+                                      On retourne le fichier non converti. Prevenir la maintenance.\n\n %s", ''.join(l)))
+                # On retourne neanmoins le source initial non converti (au cas ou)
+                return self.text
+        elif outformat == 'execnoparseur':
             return self.text
-      elif outformat == 'execnoparseur':
-         return self.text
-      else:
-         raise EficasException(tr("Format de sortie : %s, non supporte", outformat))
-         return None
+        else:
+            raise EficasException(tr("Format de sortie : %s, non supporte", outformat))
+            return None
index 55482e26058f6ee1670236e2c92bee9d004c0d29..59207522f3905c958468bb1e713402b4852d06e6 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -17,7 +17,7 @@
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 import re
-from convert_python import PythonParser
+from convert_python import Pythonparser
 
 def entryPoint():
    """
@@ -25,12 +25,12 @@ def entryPoint():
    """
    return {
           'name' : 'openturns_study',
-          'factory' : OTStudyParser
+          'factory' : OTStudyparser
           }
 
-class OTStudyParser(PythonParser):
+class OTStudyparser(Pythonparser):
    """
-   This converter works like PythonParser, except that it also initializes all
+   This converter works like Pythonparser, except that it also initializes all
    model variables to None in order to avoid Python syntax errors when loading
    a file with a different or inexistent definition of variables.
    """
@@ -38,7 +38,7 @@ class OTStudyParser(PythonParser):
    pattern_model_variable = re.compile(r'ModelVariable\s*=\s*(\w+)\s*,')
 
    def convert(self, outformat, appli=None):
-      text = PythonParser.convert(self, outformat, appli)
+      text = Pythonparser.convert(self, outformat, appli)
       varnames = self.pattern_model_variable.findall(text)
       newtext = ""
       for var in varnames:
index 14c26b8577598adb8d8ce8c8532b7769c9e44a28..d6a0b1d3837ae4405be67af126ad8107034ad382 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -32,7 +32,7 @@ def entryPoint():
         # Le nom du plugin
           'name' : 'openturns_wrapper',
         # La factory pour créer une instance du plugin
-          'factory' : PythonParser,
+          'factory' : Pythonparser,
           }
 
 
index daf004045fe9c1f2948de52ba69ac085595053f1..19d73256de77e60caf79b1e4929d2c6745ff8044 100644 (file)
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-  from builtins import str
-  from builtins import range
-  from builtins import object
+    from builtins import str
+    from builtins import object
 except :
-  pass
+    pass
 import sys,string,re
 import traceback
 from Extensions.i18n import tr
-from six.moves import range
 
 escapedQuotesRE = re.compile(r"(\\\\|\\\"|\\\')")
 stringsAndCommentsRE =  \
@@ -36,11 +34,11 @@ stringsAndCommentsRE =  \
 #stringsAndCommentsRE =  \
 #      re.compile(u"(\"\"\".*\"\"\"|'''.*'''|\"[^\"]*\"|\'[^\']*\'|#.*\n)", re.DOTALL)
 import six
-if six.PY2 : 
+if six.PY2 :
     allchars = string.maketrans(u"", "")
     allcharsExceptNewline = allchars[: allchars.index('\n')]+allchars[allchars.index('\n')+1:]
     allcharsExceptNewlineTranstable = string.maketrans(allcharsExceptNewline, '*'*len(allcharsExceptNewline))
-else : 
+else :
     allchars=bytes.maketrans(b"",b"")
     allcharsExceptNewline = allchars[: allchars.index(b'\n')]+allchars[allchars.index(b'\n')+1:]
     allcharsExceptNewlineTranstable = bytes.maketrans(allcharsExceptNewline, b'*'*len(allcharsExceptNewline))
@@ -55,12 +53,12 @@ else :
 def maskStringsAndComments(src):
     """Masque tous les caracteres de src contenus dans des commentaires ou des strings multilignes (triples
        quotes et guillemets.
-       Le masquage est realise en remplacant les caracteres par des * 
+       Le masquage est realise en remplacant les caracteres par des *
        Attention : cette fonction doit etre utilisee sur un texte complet et pas ligne par ligne
     """
 # remplace les \\, les \" les \'  par **
 # supprime toutes les chaines ou commentaires ,y compris multiligne i
-# entre 3 ou 1 simples ou doubles quotes (ouvrantes fermantes) ou # 
+# entre 3 ou 1 simples ou doubles quotes (ouvrantes fermantes) ou #
 # laisse les non fermantes ou non ouvrantes
 # on prend 1 sur 2 en raison du split qui donne python, commentaire, python, commentaire...
 
@@ -194,7 +192,7 @@ class COMMENTAIRE(ENTITE_JDC):
             # le diese n'est pas sur le premier caractere
             amont,aval = texte.split('#',1) # on decoupe suivant la premiere occurrence de #
             self.texte = self.texte +amont + aval
-        
+
 class COMMANDE(ENTITE_JDC):
 
     def __str__(self):
@@ -202,7 +200,7 @@ class COMMANDE(ENTITE_JDC):
         Retourne self.texte
         """
         return self.texte+'\n'
-        
+
     def getNbPar(self):
         """
         Retourne la difference entre le nombre de parentheses ouvrantes
@@ -230,7 +228,7 @@ class AFFECTATION(ENTITE_JDC):
         if texte[-1] == '\n' : texte = texte[0:-1].rstrip()
         if texte[-1] == ';'  : texte = texte[0:-1].rstrip()
         self.texte = self.texte+texte+'\n'
-        
+
     def __str__(self):
         """
         Retourne une expression de l'affectation comprehensible par ACCAS
@@ -268,7 +266,7 @@ class AFFECTATION_EVAL(ENTITE_JDC):
         """
         if texte[-1] == '\n' : texte = texte[1:-1]
         self.texte = self.texte+texte
-        
+
     def __str__(self):
         """
         Retourne une expression du parametre EVAL comprehensible par ACCAS
@@ -279,10 +277,10 @@ class AFFECTATION_EVAL(ENTITE_JDC):
         if valeur[-1] == '\n': valeur = valeur[:-1]
         valeur = valeur.strip()
         return nom+' = PARAMETRE_EVAL(nom=\''+nom+'\',valeur=\''+valeur+'\')\n\n'
-        
+
 class PARSEUR_PYTHON(object):
     """
-    Cette classe sert a generer un objet PARSEUR_PYTHON qui realise l'analyse d'un texte 
+    Cette classe sert a generer un objet PARSEUR_PYTHON qui realise l'analyse d'un texte
     representant un JDC Python en distinguant :
       - les commentaires inter commandes
       - les affectations
@@ -292,11 +290,11 @@ class PARSEUR_PYTHON(object):
     pattern_eval       = re.compile(r'^(EVAL)([ \t\r\f\v]*)\(([\w\W]*)')
     pattern_ligne_vide = re.compile(r'^[\t\r\f\v\n]+')
     pattern_name       = re.compile(r'[a-zA-Z_]\w*')
-    
+
     def __init__(self,texte):
         self.texte = texte
         self.l_objets=None
-        self.appli=None
+        self.appliEficas=None
 
     def isAffectation(self,texte):
         """
@@ -337,7 +335,7 @@ class PARSEUR_PYTHON(object):
             return 1
         else:
             return 0
-            
+
     def isCommande(self,texte):
         """
         Methode booleenne qui retourne 1 si le texte est celui d'une commande dans un jeu de commandes
@@ -359,7 +357,7 @@ class PARSEUR_PYTHON(object):
 
     def isModificationCatalogue(self,texte) :
         if self.pattern_commande.match(texte):
-           return 1
+            return 1
 
     def analyse(self):
         """
@@ -399,7 +397,7 @@ class PARSEUR_PYTHON(object):
             hangingComments ^= line.count('"""') % 2
             hangingComments ^= line.count(u"'''") % 2
             #print (hangingComments,hangingBraces)
-            if hangingBraces[0] < 0 or hangingBraces[1] < 0 or hangingBraces[2] < 0: 
+            if hangingBraces[0] < 0 or hangingBraces[1] < 0 or hangingBraces[2] < 0:
                 raise parserException()
 
             if ligne.strip() == '':
@@ -423,7 +421,7 @@ class PARSEUR_PYTHON(object):
                     commande_commentarisee_courante.appendText(ligne)
                     # on a 2 commandes commentarisees de suite
                     if pattern_finComments.match(ligne) :
-                       commande_commentarisee_courante = None
+                        commande_commentarisee_courante = None
                 else:
                     # debut de commande commentarisee : on cree un objet commande_commentarisee_courante
                     commande_commentarisee_courante = COMMANDE_COMMENTARISEE(self)
@@ -440,7 +438,7 @@ class PARSEUR_PYTHON(object):
 
                 if commande_courante :
                     # il s'agit d'un commentaire a l'interieur d'une commande --> on ne fait rien de special
-                    #on l'ajoute au texte de la commande 
+                    #on l'ajoute au texte de la commande
                     commande_courante.appendText(ligne)
                 elif commentaire_courant :
                     # il s'agit de la nieme ligne d'un commentaire entre deux commandes
@@ -470,7 +468,7 @@ class PARSEUR_PYTHON(object):
                 if not linecontinueRE.search(line) \
                    and (hangingBraces == emptyHangingBraces) \
                    and not hangingComments:
-                    #la commande est terminee 
+                    #la commande est terminee
                     self.analyseReel(commande_courante.texte)
                     commande_courante = None
 
@@ -538,13 +536,13 @@ class PARSEUR_PYTHON(object):
                 if not linecontinueRE.search(line) \
                    and (hangingBraces == emptyHangingBraces) \
                    and not hangingComments:
-                    #la commande est terminee 
+                    #la commande est terminee
                     self.analyseReel(commande_courante.texte)
                     commande_courante = None
                 #on passe a la ligne suivante
                 continue
 
+
     def enleve (self,texte) :
         """Supprime de texte tous les caracteres blancs, fins de ligne, tabulations
            Le nouveau texte est retourne
@@ -552,87 +550,87 @@ class PARSEUR_PYTHON(object):
         i=0
         chaine=""
         while (i<len(texte)):
-          if (texte[i] == " " or texte[i] == "\n" or texte[i] == "\t") :
-             i=i+1
-          else :
-             chaine=chaine+texte[i]
-             i=i+1
-        return chaine 
-            
+            if (texte[i] == " " or texte[i] == "\n" or texte[i] == "\t") :
+                i=i+1
+            else :
+                chaine=chaine+texte[i]
+                i=i+1
+        return chaine
+
     def construitGenea(self,texte):
         indiceC=0
         mot=""
         dict_reel_concept={}
 
         # traitement pour chaque caractere
-        while (indiceC < len(texte)): 
-           c=texte[indiceC]
-           if ( c == "," or c == "(u" or c == ")"):
-              mot=""
-           elif ( c== "="):
-              #on doit trouver derriere soit une valeur soit une parenthese
-              valeur=""
-              nouvelindice=indiceC+1
-              if texte[nouvelindice] != "(u":
-                 #pas de parenthese ouvrante derriere un signe =, on a une valeur.
-                 while ( texte[nouvelindice] != "," and texte[nouvelindice] != ")"):
-                    valeur=valeur+texte[nouvelindice]
-                    nouvelindice=nouvelindice+1
-                    if nouvelindice == len(texte) :
-                        nouvelindice=nouvelindice -1
-                        break
-                 if mot in self.appli.liste_simp_reel:
-                    if valeur[0] != "'":
-                       try :
-                         clef=eval(valeur)
-                         if str(clef) != str(valeur) :
-                            dict_reel_concept[clef]=valeur
-                       except :
-                         pass
-                 mot=""
-                 indiceC=nouvelindice
-              else:
-                 #parenthese ouvrante derriere un signe =, on a un tuple de valeur ou de mots cles facteurs.
-                 # s agit -il d un tuple 
-                 if texte[nouvelindice+1] != "(u":
-                    #le suivant n'est pas une parenthese ouvrante : on a un tuple de valeurs ou un mot cle facteur
-                    tuple=False
-                    #on avance jusqu'a la fin du tuple de valeurs ou jusqu'a la fin du premier mot cle simple
-                    #contenu dans le mot cle facteur
-                    while ( texte[nouvelindice] != "="):
-                       if texte[nouvelindice] == ")" :
-                          tuple=True
-                          break
-                       else :
-                          nouvelindice=nouvelindice+1
-                          if nouvelindice == len(texte) :
-                             nouvelindice=nouvelindice -1
-                             break
-                    if tuple :
-                       #cas du tuple de valeurs
-                       valeur=texte[indiceC+1:nouvelindice+1]
-                       indiceC=nouvelindice+1 
-                       if mot in self.appli.liste_simp_reel:
-                          valeur=valeur[1:-1]
-                          for val in valeur.split(',') :
-                          # Attention la derniere valeur est""
-                             try :
-                                if val[0] != "'":
-                                  clef=eval(val)
-                                  if str(clef) != str(val) :
-                                     dict_reel_concept[clef]=val
-                             except :
-                                  pass
-                       mot=""
-               # ou de ( imbriquees
-                 else :
-                    #cas du mocle facteur simple ou 
+        while (indiceC < len(texte)):
+            c=texte[indiceC]
+            if ( c == "," or c == "(u" or c == ")"):
+                mot=""
+            elif ( c== "="):
+                #on doit trouver derriere soit une valeur soit une parenthese
+                valeur=""
+                nouvelindice=indiceC+1
+                if texte[nouvelindice] != "(u":
+                    #pas de parenthese ouvrante derriere un signe =, on a une valeur.
+                    while ( texte[nouvelindice] != "," and texte[nouvelindice] != ")"):
+                        valeur=valeur+texte[nouvelindice]
+                        nouvelindice=nouvelindice+1
+                        if nouvelindice == len(texte) :
+                            nouvelindice=nouvelindice -1
+                            break
+                    if mot in self.appliEficas.liste_simp_reel:
+                        if valeur[0] != "'":
+                            try :
+                                clef=eval(valeur)
+                                if str(clef) != str(valeur) :
+                                    dict_reel_concept[clef]=valeur
+                            except :
+                                pass
                     mot=""
-           else :
-              mot=mot+texte[indiceC]
-           indiceC=indiceC+1
+                    indiceC=nouvelindice
+                else:
+                    #parenthese ouvrante derriere un signe =, on a un tuple de valeur ou de mots cles facteurs.
+                    # s agit -il d un tuple
+                    if texte[nouvelindice+1] != "(u":
+                        #le suivant n'est pas une parenthese ouvrante : on a un tuple de valeurs ou un mot cle facteur
+                        tuple=False
+                        #on avance jusqu'a la fin du tuple de valeurs ou jusqu'a la fin du premier mot cle simple
+                        #contenu dans le mot cle facteur
+                        while ( texte[nouvelindice] != "="):
+                            if texte[nouvelindice] == ")" :
+                                tuple=True
+                                break
+                            else :
+                                nouvelindice=nouvelindice+1
+                                if nouvelindice == len(texte) :
+                                    nouvelindice=nouvelindice -1
+                                    break
+                        if tuple :
+                            #cas du tuple de valeurs
+                            valeur=texte[indiceC+1:nouvelindice+1]
+                            indiceC=nouvelindice+1
+                            if mot in self.appliEficas.liste_simp_reel:
+                                valeur=valeur[1:-1]
+                                for val in valeur.split(',') :
+                                # Attention la derniere valeur est""
+                                    try :
+                                        if val[0] != "'":
+                                            clef=eval(val)
+                                            if str(clef) != str(val) :
+                                                dict_reel_concept[clef]=val
+                                    except :
+                                        pass
+                            mot=""
+                    # ou de ( imbriquees
+                    else :
+                        #cas du mocle facteur simple ou
+                        mot=""
+            else :
+                mot=mot+texte[indiceC]
+            indiceC=indiceC+1
         # traitement du dernier inutile
-        # c est un ; 
+        # c est un ;
         return dict_reel_concept
 
     def analyseReel(self,commande) :
@@ -640,31 +638,31 @@ class PARSEUR_PYTHON(object):
         # On verifie qu on a bien un OPER
         # et pas une MACRO
         if commande.find(u"=") > commande.find(u"(u") :
-           return
+            return
         if commande.find(u"=") > 0:
-           #epure1=self.enleve(commande)
-           epure1=pattern_blancs.sub(u"",commande)
-           nomConcept,corps=epure1.split(u"=",1)
-           epure2=corps.replace(u"_F(u","(u")
-           #nomConcept=epure1.split(u"=")[0]
-           #index=epure1.find(u"=")
-           #epure2=epure1[index+1:len(epure1)].replace(u"_F(u","(u")
-           #dict_reel_concept=self.construitGenea(epure2)
-           if self.appli:
-             dict_reel_concept=construitGenea(epure2,self.appli.liste_simp_reel)
-           else:
-             dict_reel_concept={}
+            #epure1=self.enleve(commande)
+            epure1=pattern_blancs.sub(u"",commande)
+            nomConcept,corps=epure1.split(u"=",1)
+            epure2=corps.replace(u"_F(u","(u")
+            #nomConcept=epure1.split(u"=")[0]
+            #index=epure1.find(u"=")
+            #epure2=epure1[index+1:len(epure1)].replace(u"_F(u","(u")
+            #dict_reel_concept=self.construitGenea(epure2)
+            if self.appliEficas:
+                dict_reel_concept=construitGenea(epure2,self.appliEficas.liste_simp_reel)
+            else:
+                dict_reel_concept={}
         if nomConcept == "sansnom" :
-           nomConcept = ""
+            nomConcept = ""
         if nomConcept !=None :
-           if len(dict_reel_concept) != 0:
-              self.appli.dict_reels[nomConcept]=dict_reel_concept
+            if len(dict_reel_concept) != 0:
+                self.appliEficas.dict_reels[nomConcept]=dict_reel_concept
 
-    def getTexte(self,appli=None):
+    def getTexte(self,appliEficas=None):
         """
         Retourne le texte issu de l'analyse
         """
-        self.appli=appli
+        self.appliEficas=appliEficas
         try:
         #if 1:
             if not self.l_objets : self.analyse()
@@ -678,20 +676,21 @@ class PARSEUR_PYTHON(object):
         return txt
 
 def test():
-  #import parseur_python
-  import doctest
-  doctest.testmod(parseur_python)
+    #import parseur_python
+    import doctest
+    doctest.testmod(parseur_python)
 
 
 if __name__ == "__main__" :
     import time
     #fichier = 'D:/Eficas_dev/Tests/zzzz100a.comm'
     #fichier = 'U:/Eficas_dev/Tests/test_eval.comm'
-    texte = open(fichier,'r').read()
-    class appli(object):
-       dict_reels={}
-       liste_simp_reel=["VALE","VALE_C","GROUP_MA","RAYON"]
-    a=appli()
+    with open(fichier) as fd:
+        texte = fd.read()
+    class appliEficas(object):
+        dict_reels={}
+        liste_simp_reel=["VALE","VALE_C","GROUP_MA","RAYON"]
+    a=appliEficas()
 
     compile(txt, '<string>', 'exec')
     print((a.dict_reels))
index aa4dbe296f4d66d91400106350389a3ea02fca12..6e71a4094aa8dc5e0ce121f5a69c211840260403 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -25,7 +25,7 @@
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import object
+    from builtins import object
 except : pass
 import types,re
 from Extensions.i18n import tr
@@ -33,294 +33,293 @@ filePattern="'[^\(\)]([^\(\)]*\([^\(\)]*\))*[^\(\)]*'"
 filePattern2='"[^\(\)]([^\(\)]*\([^\(\)]*\))*[^\(\)]*"'
 
 class Formatage (object):
-  """
-     Cette classe contient toutes les méthodes nécessaires au formatage
-     de la chaine de caracteres issue d'un generator en un fichier
-     'lisible' ie avec indentations
-
-     L'objet attend en parametre du constructeur (argument l_jdc) une representation
-     du jeu de commandes sous la forme d'une liste.
-
-     Chaque element de la liste est la representation d'une etape.
-
-     La representation d'une etape est une liste dont le premier element est une chaine de
-     caracteres donnant le debut de la commande ("xxx=lire_maillage(", par exemple).
-     Les elements suivants sont les representations des mots cles simples et facteurs.
-     Elle se termine avec un element de fin : ");"
-
-     La representation d'un mot cle simple est une chaine de caracteres (info=2, par exemple).
-
-     La representation d'un mot cle facteur est semblable à celle de l'étape : premier element
-     caracteristique du mot cle facteur suivi d'elements representatifs des mots cles simples.
-     Elle se termine avec un element de fin : ")" ou "),".
-  """
-  def __init__(self,l_jdc,code=None,mode=None,sep='=',l_max=72):
-    # l_jdc représente le jeu de commandes brut sous forme de liste
-    self.l_jdc = l_jdc
-    self.jdc_fini =''
-    self.count = 0
-    self.sep=sep
-    self.l_max=l_max
-    if mode == '.py':
-       self.sep = '='
-       self.l_max = 132
-    elif code == 'ASTER':
-       self.sep = ':'
-       self.l_max = 72
-
-  def formateJdc(self):
-    comment=re.compile("\n#")
-    commentaireavant=0
-    for etape in self.l_jdc:
-      self.count = self.count+1
-      self.texte_etape = ''
-      if type(etape)==list:
-        # L'etape est sous la forme d'une liste dont le premier element est une chaine
-        self.indent=[]
-        self.indent.append(len(etape[0]))
-        self.indent_courant = self.indent[0]
-        self.texte_etape = '\n' + etape[0]
-        if len(etape)>1 :
-          self.formateEtape(etape[1:])
-      else :
-        # L'etape est deja sous forme de chaine de caracteres
-        self.indent=[]
-        self.texte_etape = etape
+    """
+       Cette classe contient toutes les méthodes nécessaires au formatage
+       de la chaine de caracteres issue d'un generator en un fichier
+       'lisible' ie avec indentations
 
-      m=comment.match(self.texte_etape)
-      # si ce n est pas la premiere ligne
-      if self.jdc_fini != ""  :
-        # si il n y avait pas de commentaire avant on met un saut de ligne
-        if commentaireavant == 0 :
-           self.jdc_fini = self.jdc_fini + '\n' + self.texte_etape
-        else :
-           self.jdc_fini = self.jdc_fini + self.texte_etape
-      # si c est la premiere ligne
-      else :
-        # on ne met pas de saut de ligne avant la premiere ligne
-        # si c est un commentaire on enleve le saut de ligne precedent
-        if m : self.texte_etape=self.texte_etape[1:]
-        self.jdc_fini = self.texte_etape
-      if m :
-        commentaireavant=1
-      else :
-        commentaireavant=0
+       L'objet attend en parametre du constructeur (argument l_jdc) une representation
+       du jeu de commandes sous la forme d'une liste.
 
-    return self.jdc_fini
+       Chaque element de la liste est la representation d'une etape.
 
+       La representation d'une etape est une liste dont le premier element est une chaine de
+       caracteres donnant le debut de la commande ("xxx=lire_maillage(", par exemple).
+       Les elements suivants sont les representations des mots cles simples et facteurs.
+       Elle se termine avec un element de fin : ");"
 
+       La representation d'un mot cle simple est une chaine de caracteres (info=2, par exemple).
 
-  def formateEtape(self,liste):
+       La representation d'un mot cle facteur est semblable à celle de l'étape : premier element
+       caracteristique du mot cle facteur suivi d'elements representatifs des mots cles simples.
+       Elle se termine avec un element de fin : ")" ou "),".
     """
-        Enrichissement de la chaine de caracteres representant l'etape (attribut
-        texte_etape de l'objet Formatage).
-        Les elements a ajouter sont dans l'argument liste de la methode.
-        L'objet "liste" à traiter a été produit par le module generator. En particulier
-        les parenthèses et les virgules ont été produites par ce module
-    """
-    l_patterns_fin_etape = ( ');' , ');\n' )
-    l_patterns_fin_mcf   = ( ')'  , '),'   )
-
-    ind = 0
-    for element in liste :
-      if type(element)==list:
+    def __init__(self,l_jdc,code=None,mode=None,sep='=',l_max=72):
+        # l_jdc représente le jeu de commandes brut sous forme de liste
+        self.l_jdc = l_jdc
+        self.jdc_fini =''
+        self.count = 0
+        self.sep=sep
+        self.l_max=l_max
+        if mode == '.py':
+            self.sep = '='
+            self.l_max = 132
+        elif code == 'ASTER':
+            self.sep = ':'
+            self.l_max = 72
+
+    def formateJdc(self):
+        comment=re.compile("\n#")
+        commentaireavant=0
+        for etape in self.l_jdc:
+            self.count = self.count+1
+            self.texte_etape = ''
+            if type(etape)==list:
+                # L'etape est sous la forme d'une liste dont le premier element est une chaine
+                self.indent=[]
+                self.indent.append(len(etape[0]))
+                self.indent_courant = self.indent[0]
+                self.texte_etape = '\n' + etape[0]
+                if len(etape)>1 :
+                    self.formateEtape(etape[1:])
+            else :
+                # L'etape est deja sous forme de chaine de caracteres
+                self.indent=[]
+                self.texte_etape = etape
+
+            m=comment.match(self.texte_etape)
+            # si ce n est pas la premiere ligne
+            if self.jdc_fini != ""  :
+                # si il n y avait pas de commentaire avant on met un saut de ligne
+                if commentaireavant == 0 :
+                    self.jdc_fini = self.jdc_fini + '\n' + self.texte_etape
+                else :
+                    self.jdc_fini = self.jdc_fini + self.texte_etape
+            # si c est la premiere ligne
+            else :
+                # on ne met pas de saut de ligne avant la premiere ligne
+                # si c est un commentaire on enleve le saut de ligne precedent
+                if m : self.texte_etape=self.texte_etape[1:]
+                self.jdc_fini = self.texte_etape
+            if m :
+                commentaireavant=1
+            else :
+                commentaireavant=0
+
+        return self.jdc_fini
+
+
+
+    def formateEtape(self,liste):
+        """
+            Enrichissement de la chaine de caracteres representant l'etape (attribut
+            texte_etape de l'objet Formatage).
+            Les elements a ajouter sont dans l'argument liste de la methode.
+            L'objet "liste" à traiter a été produit par le module generator. En particulier
+            les parenthèses et les virgules ont été produites par ce module
+        """
+        l_patterns_fin_etape = ( ');' , ');\n' )
+        l_patterns_fin_mcf   = ( ')'  , '),'   )
+
+        ind = 0
+        for element in liste :
+            if type(element)==list:
+
+                # il s'agit d'un mot-clé facteur
+                # on écrit son nom (element[0])
+                longueur = self.longueur(self.texte_etape)
+                try:
+                    increment = len(('\n'+self.indent_courant*' ')*ind + element[0])
+                except:
+                    print (tr('ERREUR'))
+                    print (liste)
+                    print (element)
+                self.texte_etape = self.texte_etape + (u'\n'+self.indent_courant*' ')*ind + element[0]
+                length = len(self.indent)
+                self.indent.insert(length,self.indent[length-1]+len(element[0]))
+                self.indent_courant = self.indent[length]
+                # on écrit ses fils
+                self.formateEtape(element[1:])
+            #elif type(element) == types.StringType:
+            #elif type(element) == bytes:
+            # PNPNPN -> marre du python 2 et 3
+            # on remplace par else dans if
+            else :
 
-        # il s'agit d'un mot-clé facteur
-        # on écrit son nom (element[0])
-        longueur = self.longueur(self.texte_etape)
-        try:
-          increment = len(('\n'+self.indent_courant*' ')*ind + element[0])
-        except:
-          print (tr('ERREUR'))
-          print (liste)
-          print (element)
-        self.texte_etape = self.texte_etape + (u'\n'+self.indent_courant*' ')*ind + element[0]
+                # il s'agit d'un mot-clé simple ou de ')' ou ');' ou '),' ou ');\n'
+
+                if element in l_patterns_fin_mcf :
+                    self.traiteMcfact(s_mcfact=element,ind=ind)
+                elif element in l_patterns_fin_etape :
+                    self.traiteEtape(s_etape=element,ind=ind)
+                else :
+                    self.traiteMcsimp(s_mcsimp=element,ind=ind)
+
+            ind = 1
+
+    def traiteEtape(self,s_etape,ind) :
+        """
+            Traite une partie du jdc formaté : s_etape, une chaîne de caractères
+            contenant une étape
+            L'attribut self.texte_etape est modifié (complété) par le traitement
+            L'attribut self.indent est modifié par le traitement
+            L'attribut self.indent_courant est modifié par le traitement
+        """
         length = len(self.indent)
-        self.indent.insert(length,self.indent[length-1]+len(element[0]))
-        self.indent_courant = self.indent[length]
-        # on écrit ses fils
-        self.formateEtape(element[1:])
-      #elif type(element) == types.StringType:
-      #elif type(element) == bytes:
-      # PNPNPN -> marre du python 2 et 3
-      # on remplace par else dans if
-      else :
-
-        # il s'agit d'un mot-clé simple ou de ')' ou ');' ou '),' ou ');\n'
-
-        if element in l_patterns_fin_mcf :
-              self.traiteMcfact(s_mcfact=element,ind=ind)
-        elif element in l_patterns_fin_etape :
-              self.traiteEtape(s_etape=element,ind=ind)
+        if length > 1:
+            last = self.indent[length-1]
+            self.indent.remove(last)
+            self.indent_courant=self.indent[length-2]
         else :
-              self.traiteMcsimp(s_mcsimp=element,ind=ind)
-
-      ind = 1
-
-  def traiteEtape(self,s_etape,ind) :
-      """
-          Traite une partie du jdc formaté : s_etape, une chaîne de caractères
-          contenant une étape
-          L'attribut self.texte_etape est modifié (complété) par le traitement
-          L'attribut self.indent est modifié par le traitement
-          L'attribut self.indent_courant est modifié par le traitement
-      """
-      length = len(self.indent)
-      if length > 1:
-          last = self.indent[length-1]
-          self.indent.remove(last)
-          self.indent_courant=self.indent[length-2]
-      else :
-          self.indent_courant=self.indent[0]
-      self.texte_etape = self.texte_etape + s_etape.strip()
-
-  def traiteMcfact(self,s_mcfact,ind) :
-      """
-          Traite une partie du jdc formaté : s_mcfact, une chaîne de caractères
-          contenant un mot-clef facteur.
-          L'attribut self.texte_etape est modifié (complété) par le traitement
-          L'attribut self.indent est modifié par le traitement
-          L'attribut self.indent_courant est modifié par le traitement
-      """
-      self.texte_etape = self.texte_etape + s_mcfact.strip()
-      length = len(self.indent)
-      if length > 1:
-           last = self.indent[length-1]
-           self.indent.remove(last)
-           self.indent_courant=self.indent[length-2]
-      else :
-           self.indent_courant=self.indent[0]
-      return
-
-
-  def traiteMcsimp(self,s_mcsimp,ind) :
-      """
-          Traite une partie du jdc formaté : s_mcsimp, une chaîne de caractères
-          contenant un mot-clef simple.
-          L'attribut self.texte_etape est modifié (complété) par le traitement
-      """
-      #
-      # Ajout PN pour defi_fonction
-      if self.texte_etape.find("DEFI_FONCTION") > 1 :
-          bool_fonction=1
-          if s_mcsimp.find("\n")  > 1:
-              txt=""; bool = 0; numident=1
-              for l in s_mcsimp.splitlines() :
-                 if bool == 0 :
-                    bool = 1
-                    numident=s_mcsimp.find("=")+2
-                    txt=l
-                 else :
-                    txt=txt+('\n'+self.indent_courant*' '+numident*' ')*ind+l
-              s_mcsimp = txt
-      else :
-          bool_fonction=0
-      longueur = self.longueur(self.texte_etape)
-      increment = len((u'\n'+self.indent_courant*' ')*ind + s_mcsimp.strip())
-      if (bool_fonction == 1 ) :
-          self.texte_etape = self.texte_etape+'\n'+self.indent_courant*' ' +s_mcsimp
-      elif ( ((1-ind)*longueur+increment) <= self.l_max ) :
-          self.texte_etape = self.texte_etape + ('\n'+self.indent_courant*' ')*ind +s_mcsimp.strip()
-      else :
-          # il faut couper ...
-          #nom,valeur = string.split(s_mcsimp,self.sep,1)
-          nom,valeur = str.split(s_mcsimp,self.sep,1)
-          chaine = self.creerChaine(nom,valeur,'\n'+self.indent_courant*' ',ind)
-          #self.jdc_fini = self.jdc_fini + ('\n'+self.indent_courant*' ')*ind + s_mcsimp.strip()
-          self.texte_etape = self.texte_etape + chaine
-      return
-
-
-  def longueur(self,texte):
-    """
-       texte est une string qui peut contenir des retours chariots
-       Cette méthode retourne la longueur de la dernière ligne de texte
-    """
-    #liste = texte.split('\n')
-    #return len(liste[-1])
-    if texte [-1] == '\n' : return 0
-    return len(texte[texte.rfind('\n'):-1])
-
-
-  def creerChaine(self,nom,valeur,increment,ind):
-    """
-        La methode creerChaine reconstitue un objet Eficas à partir de
-             - son nom,
-             - sa valeur.
-    """
-    s=''
-    if len(increment + nom + self.sep) <= self.l_max:
-      texte = increment*ind
-      label = nom + self.sep
-      s=texte + label
-      longueur = len(increment + label)
+            self.indent_courant=self.indent[0]
+        self.texte_etape = self.texte_etape + s_etape.strip()
+
+    def traiteMcfact(self,s_mcfact,ind) :
+        """
+            Traite une partie du jdc formaté : s_mcfact, une chaîne de caractères
+            contenant un mot-clef facteur.
+            L'attribut self.texte_etape est modifié (complété) par le traitement
+            L'attribut self.indent est modifié par le traitement
+            L'attribut self.indent_courant est modifié par le traitement
+        """
+        self.texte_etape = self.texte_etape + s_mcfact.strip()
+        length = len(self.indent)
+        if length > 1:
+            last = self.indent[length-1]
+            self.indent.remove(last)
+            self.indent_courant=self.indent[length-2]
+        else :
+            self.indent_courant=self.indent[0]
+        return
+
+
+    def traiteMcsimp(self,s_mcsimp,ind) :
+        """
+            Traite une partie du jdc formaté : s_mcsimp, une chaîne de caractères
+            contenant un mot-clef simple.
+            L'attribut self.texte_etape est modifié (complété) par le traitement
+        """
+        #
+        # Ajout PN pour defi_fonction
+        if self.texte_etape.find("DEFI_FONCTION") > 1 :
+            bool_fonction=1
+            if s_mcsimp.find("\n")  > 1:
+                txt=""; bool = 0; numident=1
+                for l in s_mcsimp.splitlines() :
+                    if bool == 0 :
+                        bool = 1
+                        numident=s_mcsimp.find("=")+2
+                        txt=l
+                    else :
+                        txt=txt+('\n'+self.indent_courant*' '+numident*' ')*ind+l
+                s_mcsimp = txt
+        else :
+            bool_fonction=0
+        longueur = self.longueur(self.texte_etape)
+        increment = len((u'\n'+self.indent_courant*' ')*ind + s_mcsimp.strip())
+        if (bool_fonction == 1 ) :
+            self.texte_etape = self.texte_etape+'\n'+self.indent_courant*' ' +s_mcsimp
+        elif ( ((1-ind)*longueur+increment) <= self.l_max ) :
+            self.texte_etape = self.texte_etape + ('\n'+self.indent_courant*' ')*ind +s_mcsimp.strip()
+        else :
+            # il faut couper ...
+            nom,valeur = str.split(s_mcsimp,self.sep,1)
+            chaine = self.creerChaine(nom,valeur,'\n'+self.indent_courant*' ',ind)
+            self.texte_etape = self.texte_etape + chaine
+        return
+
+
+    def longueur(self,texte):
+        """
+           texte est une string qui peut contenir des retours chariots
+           Cette méthode retourne la longueur de la dernière ligne de texte
+        """
+        #liste = texte.split('\n')
+        #return len(liste[-1])
+        if texte [-1] == '\n' : return 0
+        return len(texte[texte.rfind('\n'):-1])
+
+
+    def creerChaine(self,nom,valeur,increment,ind):
+        """
+            La methode creerChaine reconstitue un objet Eficas à partir de
+                 - son nom,
+                 - sa valeur.
+        """
+        s=''
+        if len(increment + nom + self.sep) <= self.l_max:
+            texte = increment*ind
+            label = nom + self.sep
+            s=texte + label
+            longueur = len(increment + label)
+
+            if ('(' not in valeur) or (valeur[0:3]=='"""') :
+                # il s'agit d'une vraie chaîne de caractères
+                val = len(valeur)
+                texte = (self.l_max-2-val)*' '+valeur
+                s=s+'\\\n'+texte
+            elif re.match(filePattern,valeur) or re.match(filePattern2,valeur):
+                val = len(valeur)
+                texte = (self.l_max-2-val)*' '+valeur
+                s=s+'\\\n'+texte
+            elif ',' in valeur:
+                # il s'agit d'une liste de tuple
+                # c est trop complique on ne splitte pas
+                if valeur[0:2]=='((' or valeur[0:2]=='[(':
+                    s=s+valeur
+                    return s
+                # il s'agit d'une liste
+                liste = valeur.split(',')
+                i=0
+                for arg in liste :
+                    ajout = arg.strip()
+                    if len(ajout) == 0 : continue
+                    longueur = self.longueur(texte = (texte + label)) + len(ajout +',') + (1-i)*len(increment)
+                    if longueur  <= self.l_max:
+                        if ajout[-1] != ')':
+                            texte = texte + ajout +','
+                        else :
+                            texte = texte + ajout
+                    else :
+                        i=1
+                        if ajout[-1] != ')':
+                            texte = texte  + increment + (len(label)+2)*' ' + ajout  + ','
+                        else :
+                            texte = texte  + increment + (len(label)+2)*' ' + ajout
+
+                s=s+texte
+                s =  s + ','
 
-      if ('(' not in valeur) or (valeur[0:3]=='"""') :
-        # il s'agit d'une vraie chaîne de caractères
-        val = len(valeur)
-        texte = (self.l_max-2-val)*' '+valeur
-        s=s+'\n'+texte
-      elif re.match(filePattern,valeur) or re.match(filePattern2,valeur):
-        val = len(valeur)
-        texte = (self.l_max-2-val)*' '+valeur
-        s=s+'\n'+texte
-      elif ',' in valeur:
-        # il s'agit d'une liste de tuple
-        # c est trop complique on ne splitte pas
-        if valeur[0:2]=='((' or valeur[0:2]=='[(':
-           s=s+valeur
-           return s
-        # il s'agit d'une liste
-        liste = valeur.split(',')
-        i=0
-        for arg in liste :
-          ajout = arg.strip()
-          if len(ajout) == 0 : continue
-          longueur = self.longueur(texte = (texte + label)) + len(ajout +',') + (1-i)*len(increment)
-          if longueur  <= self.l_max:
-              if ajout[-1] != ')':
-                texte = texte + ajout +','
-              else :
-                texte = texte + ajout
-          else :
-            i=1
-            if ajout[-1] != ')':
-              texte = texte  + increment + (len(label)+2)*' ' + ajout  + ','
             else :
-              texte = texte  + increment + (len(label)+2)*' ' + ajout
-
-        s=s+texte
-        s =  s + ','
-
-      else :
-        # On a une ( mais pas de , . On passe la chaine sans modification
-        val = len(valeur)
-        texte = (self.l_max-2-val)*' '+valeur
-        s=s+'\n'+texte
-
-    return s
+                # On a une ( mais pas de , . On passe la chaine sans modification
+                val = len(valeur) +len(label)
+                texte = (self.l_max-2-val)*' '+valeur
+                s='\n'+s+texte
+        else :
+            label = nom + self.sep
+            val = len(valeur) +len(label)
+            s = '\n'+(self.l_max-2-val)*' '+label+valeur
+        return s
 
 class FormatageLigne(Formatage) :
-  def __init__(self,l_jdc,code=None,mode=None,sep='=',l_max="**"):
-      Formatage.__init__(self,l_jdc,code=None,mode=None,sep='=',l_max="**")
-
-  def formateJdc(self):
-      texte1=Formatage.formateJdc(self)
-      newText=""
-      lignes=texte1.split("\n")
-      texte=""
-      pattern_debut_blanc  = re.compile(r"^ \s*.*")
-      pattern_commentaire   = re.compile(r"^\s*#.*")
-      pattern_vide=re.compile(r"\s*^$")
-      for l in lignes :
-          if pattern_commentaire.match(l) or pattern_vide.match(l):
-             newText+=l+"\n"
-             continue
-          if not pattern_debut_blanc.match(l) : texte=l
-          else : texte+=re.sub(r'^ \s*',' ',l)
-          if texte[-1]==";" :
-             newText+=texte+"\n"
-             texte=""
-      return newText
-
-
+    def __init__(self,l_jdc,code=None,mode=None,sep='=',l_max="**"):
+        Formatage.__init__(self,l_jdc,code=None,mode=None,sep='=',l_max="**")
+
+    def formateJdc(self):
+        texte1=Formatage.formateJdc(self)
+        newText=""
+        lignes=texte1.split("\n")
+        texte=""
+        pattern_debut_blanc  = re.compile(r"^ \s*.*")
+        pattern_commentaire   = re.compile(r"^\s*#.*")
+        pattern_vide=re.compile(r"\s*^$")
+        for l in lignes :
+            if pattern_commentaire.match(l) or pattern_vide.match(l):
+                newText+=l+"\n"
+                continue
+            if not pattern_debut_blanc.match(l) : texte=l
+            else : texte+=re.sub(r'^ \s*',' ',l)
+            if texte[-1]==";" :
+                newText+=texte+"\n"
+                texte=""
+        return newText
index 9d4cb7f0b7e5766362156b220314856579804516..f75236bf22080736d0aada9ad67a6b3bac0b6c68 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -30,4 +30,3 @@ from Extensions import pluginloader
 import generator
 
 plugins=pluginloader.PluginLoader(generator)
-
index f10704fefe2d9963fff8e29e6d9ecac68e7d5f13..6a67088a4308063d06f73e95765c079591e6594a 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -26,55 +26,55 @@ import types,re
 
 from .generator_python import PythonGenerator
 def entryPoint():
-   """
-       Retourne les informations necessaires pour le chargeur de plugins
+    """
+        Retourne les informations necessaires pour le chargeur de plugins
 
-       Ces informations sont retournees dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'GroupMA',
-        # La factory pour creer une instance du plugin
-          'factory' : GroupMAGenerator,
-          }
+        Ces informations sont retournees dans un dictionnaire
+    """
+    return {
+         # Le nom du plugin
+           'name' : 'GroupMA',
+         # La factory pour creer une instance du plugin
+           'factory' : GroupMAGenerator,
+           }
 
 
 class GroupMAGenerator(PythonGenerator):
-   """
-       Ce generateur parcourt un objet de type JDC et produit
-       un texte au format eficas et 
-       un texte au format homard 
+    """
+        Ce generateur parcourt un objet de type JDC et produit
+        un texte au format eficas et
+        un texte au format homard
 
-   """
-   # Les extensions de fichier preconisees
-   extensions=('.comm',)
+    """
+    # Les extensions de fichier preconisees
+    extensions=('.comm',)
 
-   def __init__(self):
-      PythonGenerator.__init__(self)
-      self.listeMA=[]
-      self.listeNO=[]
+    def __init__(self):
+        PythonGenerator.__init__(self)
+        self.listeMA=[]
+        self.listeNO=[]
 
-   def gener(self,obj,format='brut',config=None):
-      self.liste=[]
-      self.text=PythonGenerator.gener(self,obj,'brut',config=None)
-      return self.listeMA,self.listeNO
+    def gener(self,obj,format='brut',config=None):
+        self.liste=[]
+        self.text=PythonGenerator.gener(self,obj,'brut',config=None)
+        return self.listeMA,self.listeNO
 
-   def generMCSIMP(self,obj) :
-       if 'grma' in repr(obj.definition.type) :
-          if not type(obj.valeur) in (list, tuple):
-             aTraiter=(obj.valeur,)
-          else :
-             aTraiter=obj.valeur
-          for group in aTraiter :
-             if group not in self.listeMA :
-                self.listeMA.append(group)
-       if 'grno' in repr(obj.definition.type) :
-          if not type(obj.valeur) in (list, tuple):
-             aTraiter=(obj.valeur,)
-          else :
-             aTraiter=obj.valeur
-          for group in aTraiter :
-             if group not in self.listeNO :
-                self.listeNO.append(group)
-       s=PythonGenerator.generMCSIMP(self,obj)
-       return s
+    def generMCSIMP(self,obj) :
+        if 'grma' in repr(obj.definition.type) :
+            if not type(obj.valeur) in (list, tuple):
+                aTraiter=(obj.valeur,)
+            else :
+                aTraiter=obj.valeur
+            for group in aTraiter :
+                if group not in self.listeMA :
+                    self.listeMA.append(group)
+        if 'grno' in repr(obj.definition.type) :
+            if not type(obj.valeur) in (list, tuple):
+                aTraiter=(obj.valeur,)
+            else :
+                aTraiter=obj.valeur
+            for group in aTraiter :
+                if group not in self.listeNO :
+                    self.listeNO.append(group)
+        s=PythonGenerator.generMCSIMP(self,obj)
+        return s
index e60d43e4bf26bc806430cbbaacd35cc8df0059d6..b083c96111127f3ea76fa7e8c275d25be12bed5a 100755 (executable)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -22,7 +22,7 @@
 
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 texte_debut="int main() \n{ \n   init_var();\n"
@@ -31,81 +31,80 @@ import traceback
 import types,re,os
 from Extensions.i18n import tr
 from .generator_dicoImbrique import DicoImbriqueGenerator
-import pdb
 
 def entryPoint():
-   """
-      Retourne les informations necessaires pour le chargeur de plugins
-      Ces informations sont retournees dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'PSEN',
-        # La factory pour creer une instance du plugin
-          'factory' : PSENGenerator,
-          }
+    """
+       Retourne les informations necessaires pour le chargeur de plugins
+       Ces informations sont retournees dans un dictionnaire
+    """
+    return {
+         # Le nom du plugin
+           'name' : 'PSEN',
+         # La factory pour creer une instance du plugin
+           'factory' : PSENGenerator,
+           }
 
 
 class PSENGenerator(DicoImbriqueGenerator):
-   """
-      Ce generateur parcourt un objet de type JDC et produit
-      un texte au format eficas et 
-      un texte au format dictionnaire
+    """
+       Ce generateur parcourt un objet de type JDC et produit
+       un texte au format eficas et
+       un texte au format dictionnaire
 
-   """
-   # Les extensions de fichier permis?
-   extensions=('.comm',)
+    """
+    # Les extensions de fichier permis?
+    extensions=('.comm',)
 
 #----------------------------------------------------------------------------------------
-   def gener(self,obj,format='brut',config=None, appli=None):
-
-      try :
-         self.MachineDico = obj.MachineDico
-         self.LoadDico = obj.LoadDico
-         self.LineDico = obj.LineDico
-         self.TransfoDico = obj.TransfoDico
-         self.MotorDico = obj.MotorDico
-      except :
-         self.MachineDico = None
-         self.LoadDico = None
-         self.LineDico = None
-         self.TransfoDico = None
-         self.MotorDico = None
-      
-      self.initDico()
-      # Cette instruction genere le contenu du fichier de commandes (persistance)
-      self.text=DicoImbriqueGenerator.gener(self,obj,format)
-      return self.text
+    def gener(self,obj,format='brut',config=None, appliEficas=None):
+
+        try :
+            self.MachineDico = obj.MachineDico
+            self.LoadDico = obj.LoadDico
+            self.LineDico = obj.LineDico
+            self.TransfoDico = obj.TransfoDico
+            self.MotorDico = obj.MotorDico
+        except :
+            self.MachineDico = None
+            self.LoadDico = None
+            self.LineDico = None
+            self.TransfoDico = None
+            self.MotorDico = None
+
+        self.initDico()
+        # Cette instruction genere le contenu du fichier de commandes (persistance)
+        self.text=DicoImbriqueGenerator.gener(self,obj,format)
+        return self.text
 
 
 #----------------------------------------------------------------------------------------
 # initialisations
 #----------------------------------------------------------------------------------------
-   
-   def initDico(self) :
-      DicoImbriqueGenerator.initDico(self)
-      self.Entete = 'MachineDico = ' + str(self.MachineDico) +'\n'
-      self.Entete += 'LoadDico = ' + str(self.LoadDico) +'\n'
-      self.Entete += 'LineDico = ' + str(self.LineDico) +'\n'
-      self.Entete += 'TransfoDico = ' + str(self.TransfoDico) +'\n'
-      self.Entete += 'MotorDico = ' + str(self.MotorDico) + '\n'
-      self.Entete +='\n'
+
+    def initDico(self) :
+        DicoImbriqueGenerator.initDico(self)
+        self.Entete = 'MachineDico = ' + str(self.MachineDico) +'\n'
+        self.Entete += 'LoadDico = ' + str(self.LoadDico) +'\n'
+        self.Entete += 'LineDico = ' + str(self.LineDico) +'\n'
+        self.Entete += 'TransfoDico = ' + str(self.TransfoDico) +'\n'
+        self.Entete += 'MotorDico = ' + str(self.MotorDico) + '\n'
+        self.Entete +='\n'
 
 
 #----------------------------------------------------------------------------------------
 # ecriture
 #----------------------------------------------------------------------------------------
 
-   def writeDefault(self,fn) :
-       fileDico=os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)),'..','PSEN_Eficas','PSEN','PSENconfig.py'))
-       f = open( str(fileDico), 'wb')
-       f.write( self.Entete + "Dico =" + str(self.Dico) )
-       f.close()
+    def writeDefault(self,fn) :
+        fileDico=os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)),'..','PSEN_Eficas','PSEN','PSENconfig.py'))
+        f = open( str(fileDico), 'wb')
+        f.write( self.Entete + "Dico =" + str(self.Dico) )
+        f.close()
+
 
-   
 
 #----------------------------------------------------------------------------------------
-#  analyse de chaque noeud de l'arbre 
+#  analyse de chaque noeud de l'arbre
 #----------------------------------------------------------------------------------------
 
 ##   def generMCSIMP(self,obj) :
@@ -123,5 +122,5 @@ class PSENGenerator(DicoImbriqueGenerator):
 ##        self.dicoTemp={}
 ##        return s
 
-  
+
 # si repertoire on change tous les noms de fichier
index 2c7b0fae8175c1143289a7b2fb14141b1942be97..7c87e7e84acdd8dbdcac433c2528a2265402f192 100755 (executable)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -27,38 +27,38 @@ from .generator_python import PythonGenerator
 from .generator_modification import ModificationGenerator
 
 def entryPoint():
-   """
-      Retourne les informations necessaires pour le chargeur de plugins
-      Ces informations sont retournees dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'ProcessOutputs',
-        # La factory pour creer une instance du plugin
-          'factory' : ProcessOutputsGenerator,
-          }
+    """
+       Retourne les informations necessaires pour le chargeur de plugins
+       Ces informations sont retournees dans un dictionnaire
+    """
+    return {
+         # Le nom du plugin
+           'name' : 'ProcessOutputs',
+         # La factory pour creer une instance du plugin
+           'factory' : ProcessOutputsGenerator,
+           }
 
 
 class ProcessOutputsGenerator(PythonGenerator,ModificationGenerator):
-   """
-      Ce generateur parcourt un objet de type JDC et produit
-      un texte au format eficas et 
-      un texte au format dictionnaire
+    """
+       Ce generateur parcourt un objet de type JDC et produit
+       un texte au format eficas et
+       un texte au format dictionnaire
 
-   """
-   # Les extensions de fichier permis?
-   extensions=('.comm',)
+    """
+    # Les extensions de fichier permis?
+    extensions=('.comm',)
 
 #----------------------------------------------------------------------------------------
-   def gener(self,obj,format='brut',config=None, appli=None):
+    def gener(self,obj,format='brut',config=None, appliEficas=None):
 
-      # Cette instruction genere le contenu du fichier de commandes (persistance)
-      texteModification=self.generTexteModif(obj)
-      text=PythonGenerator.gener(self,obj,format)
-      self.text=texteModification+text
+        # Cette instruction genere le contenu du fichier de commandes (persistance)
+        texteModification=self.generTexteModif(obj)
+        text=PythonGenerator.gener(self,obj,format)
+        self.text=texteModification+text
+
+        return self.text
 
-      return self.text
 
 
-  
 # si repertoire on change tous les noms de fichier
index cc0aed9f5a34128022ce476e9ea0716823697c47..0a50355294137b2d8fc1ec56d548124833bc4cf9 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -23,7 +23,7 @@
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import traceback
@@ -37,95 +37,95 @@ extensions=('.comm',)
 
 
 def entryPoint():
-   """
-      Retourne les informations necessaires pour le chargeur de plugins
-      Ces informations sont retournees dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'TELEMAC',
-        # La factory pour creer une instance du plugin
-          'factory' : TELEMACGenerator,
-          }
+    """
+       Retourne les informations necessaires pour le chargeur de plugins
+       Ces informations sont retournees dans un dictionnaire
+    """
+    return {
+         # Le nom du plugin
+           'name' : 'TELEMAC',
+         # La factory pour creer une instance du plugin
+           'factory' : TELEMACGenerator,
+           }
 
 
 class TELEMACGenerator(PythonGenerator):
-   """
-      Ce generateur parcourt un objet de type JDC et produit
-      un texte au format eficas et
-      un texte au format dictionnaire
+    """
+       Ce generateur parcourt un objet de type JDC et produit
+       un texte au format eficas et
+       un texte au format dictionnaire
 
-   """
+    """
 
 #----------------------------------------------------------------------------------------
-   def gener(self,obj,format='brut',config=None,appli=None,statut="Leger"):
-
-      self.statut        = statut
-      self.langue        = appli.langue
-      try : self.TelemacdicoEn = appli.readercata.TelemacdicoEn
-      except :
-        print ('Attention : pas de TelemacdicoEn declare')
-        self.TelemacdicoEn = {}
-      self.DicoEnumCasEnInverse = {}
-      #from enum_Telemac2d_auto       import self.TelemacdicoEn
-      for motClef in self.TelemacdicoEn:
-          d={}
-          for valTelemac in self.TelemacdicoEn[motClef]:
-             valEficas   = self.TelemacdicoEn[motClef][valTelemac]
-             d[valEficas] =valTelemac
-          self.DicoEnumCasEnInverse[motClef]=d
-      if self.langue == 'fr' :
-         #from  enum_Telemac2d_auto import DicoEnumCasFrToEnumCasEn
-         self.DicoEnumCasFrToEnumCasEn = appli.readercata.DicoEnumCasFrToEnumCasEn
-         for motClef in self.DicoEnumCasFrToEnumCasEn:
-              d={}
-              for valTelemac in self.DicoEnumCasFrToEnumCasEn[motClef]:
-                 valEficas    = self.DicoEnumCasFrToEnumCasEn[motClef][valTelemac]
-                 d[valEficas] = valTelemac
-              self.DicoEnumCasEnInverse[motClef]=d
-      self.initDico()
-      # Pour Simplifier les verifs d ecriture
-      if hasattr(appli,'listeTelemac') : self.listeTelemac=appli.listeTelemac
-      else : self.listeTelemac = ()
-
-      self.dicoCataToCas={}
-      try :
-        self.dicoCasToCata=appli.readercata.dicoCasToCata
-      except :
-        print ('Attention pas de dicoCasToCata declare')
-        self.dicoCasToCata={}
+    def gener(self,obj,format='brut',config=None,appliEficas=None,statut="Leger"):
+
+        self.statut        = statut
+        self.langue        = appliEficas.langue
+        try : self.TelemacdicoEn = appliEficas.readercata.TelemacdicoEn
+        except :
+            print ('Attention : pas de TelemacdicoEn declare')
+            self.TelemacdicoEn = {}
+        self.DicoEnumCasEnInverse = {}
+        #from enum_Telemac2d_auto       import self.TelemacdicoEn
+        for motClef in self.TelemacdicoEn:
+            d={}
+            for valTelemac in self.TelemacdicoEn[motClef]:
+                valEficas   = self.TelemacdicoEn[motClef][valTelemac]
+                d[valEficas] =valTelemac
+            self.DicoEnumCasEnInverse[motClef]=d
+        if self.langue == 'fr' :
+            #from  enum_Telemac2d_auto import DicoEnumCasFrToEnumCasEn
+            self.DicoEnumCasFrToEnumCasEn = appliEficas.readercata.DicoEnumCasFrToEnumCasEn
+            for motClef in self.DicoEnumCasFrToEnumCasEn:
+                d={}
+                for valTelemac in self.DicoEnumCasFrToEnumCasEn[motClef]:
+                    valEficas    = self.DicoEnumCasFrToEnumCasEn[motClef][valTelemac]
+                    d[valEficas] = valTelemac
+                self.DicoEnumCasEnInverse[motClef]=d
+        self.initDico()
+        # Pour Simplifier les verifs d ecriture
+        if hasattr(appliEficas,'listeTelemac') : self.listeTelemac=appliEficas.listeTelemac
+        else : self.listeTelemac = ()
+
         self.dicoCataToCas={}
-      for motClef in self.dicoCasToCata:
-           self.dicoCataToCas[self.dicoCasToCata[motClef]]=motClef
+        try :
+            self.dicoCasToCata=appliEficas.readercata.dicoCasToCata
+        except :
+            print ('Attention pas de dicoCasToCata declare')
+            self.dicoCasToCata={}
+            self.dicoCataToCas={}
+        for motClef in self.dicoCasToCata:
+            self.dicoCataToCas[self.dicoCasToCata[motClef]]=motClef
 
 
 
-      # Cette instruction genere le contenu du fichier de commandes (persistance)
-      self.text=PythonGenerator.gener(self,obj,format)
-      return self.text
+        # Cette instruction genere le contenu du fichier de commandes (persistance)
+        self.text=PythonGenerator.gener(self,obj,format)
+        return self.text
 
 
 #----------------------------------------------------------------------------------------
 # initialisations
 #----------------------------------------------------------------------------------------
 
-   def initDico(self) :
+    def initDico(self) :
 
-      self.PE=False
-      self.FE=False
-      self.VE=False
-      self.commentaireAvant = False
-      self.texteCom=''
-      if self.langue == "fr" :
-        self.textPE = 'COTES IMPOSEES :'
-        self.textFE = 'DEBITS IMPOSES :'
-        self.textVE = 'VITESSES IMPOSEES :'
-      else :
-        self.textPE = 'PRESCRIBED ELEVATIONS :'
-        self.textFE = 'PRESCRIBED FLOWRATES :'
-        self.textVE = 'PRESCRIBED VELOCITIES :'
-      self.nbTracers = 0
-      self.texteDico = ""
+        self.PE=False
+        self.FE=False
+        self.VE=False
+        self.commentaireAvant = False
+        self.texteCom=''
+        if self.langue == "fr" :
+            self.textPE = 'COTES IMPOSEES :'
+            self.textFE = 'DEBITS IMPOSES :'
+            self.textVE = 'VITESSES IMPOSEES :'
+        else :
+            self.textPE = 'PRESCRIBED ELEVATIONS :'
+            self.textFE = 'PRESCRIBED FLOWRATES :'
+            self.textVE = 'PRESCRIBED VELOCITIES :'
+        self.nbTracers = 0
+        self.texteDico = ""
 
 
 
@@ -134,30 +134,30 @@ class TELEMACGenerator(PythonGenerator):
 # ecriture de tout
 #----------------------------------------------------------------------------------------
 
-   def writeDefault(self,fn) :
-       self.texteDico+='&ETA\n'
-       #if self.statut == 'Leger' : extension = ".Lcas"
-       #else                      : extension = ".cas"
-       extension=".cas"
-       fileDico = fn[:fn.rfind(".")] + extension
-       f = open( str(fileDico), 'w')
-       f.write( self.texteDico )
-       f.close()
+    def writeDefault(self,fn) :
+        self.texteDico+='&ETA\n'
+        #if self.statut == 'Leger' : extension = ".Lcas"
+        #else                      : extension = ".cas"
+        extension=".cas"
+        fileDico = fn[:fn.rfind(".")] + extension
+        f = open( str(fileDico), 'w')
+        f.write( self.texteDico )
+        f.close()
 
 #----------------------------------------------------------------------------------------
 # ecriture de Leger
 #----------------------------------------------------------------------------------------
 
-   def writeComplet(self,fn,jdc,config,appli) :
-       jdc_formate=self.gener(jdc,config=config,appli=appli,statut="Entier")
-       self.writeDefault(fn)
+    def writeComplet(self,fn,jdc,config,appliEficas) :
+        jdc_formate=self.gener(jdc,config=config,appliEficas=appliEficas,statut="Entier")
+        self.writeDefault(fn)
 
 
 #----------------------------------------------------------------------------------------
 #  analyse de chaque noeud de l'arbre
 #----------------------------------------------------------------------------------------
 
-   def generPROC_ETAPE(self,obj):
+    def generPROC_ETAPE(self,obj):
         if  not self.commentaireAvant or self.texteCom.find(obj.nom) < 0:
             self.texteDico += '/------------------------------------------------------------------/\n'
             self.texteDico += '/\t\t\t'+obj.nom +'\n'
@@ -169,7 +169,7 @@ class TELEMACGenerator(PythonGenerator):
 
         return s
 
-   def generMCSIMP(self,obj) :
+    def generMCSIMP(self,obj) :
         """recuperation de l objet MCSIMP"""
         s=PythonGenerator.generMCSIMP(self,obj)
 
@@ -178,8 +178,8 @@ class TELEMACGenerator(PythonGenerator):
         # a reflechir avec Yoann
         # ajouter le statut ?
         if self.statut == 'Leger' :
-          if hasattr(obj.definition,'defaut') and (obj.definition.defaut == obj.valeur) and (obj.nom not in self.listeTelemac) : return s
-          if hasattr(obj.definition,'defaut') and obj.definition.defaut != None and (type(obj.valeur) == tuple or type(obj.valeur) == list) and (tuple(obj.definition.defaut) == tuple(obj.valeur)) and (obj.nom not in self.listeTelemac) : return s
+            if hasattr(obj.definition,'defaut') and (obj.definition.defaut == obj.valeur) and (obj.nom not in self.listeTelemac) : return s
+            if hasattr(obj.definition,'defaut') and obj.definition.defaut != None and (type(obj.valeur) == tuple or type(obj.valeur) == list) and (tuple(obj.definition.defaut) == tuple(obj.valeur)) and (obj.nom not in self.listeTelemac) : return s
 
 
         #nomMajuscule=obj.nom.upper()
@@ -190,48 +190,48 @@ class TELEMACGenerator(PythonGenerator):
 
         sTelemac=s[0:-1]
         if not( type(obj.valeur) in (tuple,list) ):
-           if obj.nom in self.DicoEnumCasEnInverse:
-             try : sTelemac=str(self.DicoEnumCasEnInverse[obj.nom][obj.valeur])
-             except :
-               if obj.valeur==None :  sTelemac=obj.valeur
-               else : print(("generMCSIMP Pb valeur avec ", obj.nom, obj.valeur))
-             # Si le resultat est du texte on ajoute des guillemets
-             if sTelemac[0] not in '0123456789':
-               sTelemac = "'" + sTelemac +"'"
+            if obj.nom in self.DicoEnumCasEnInverse:
+                try : sTelemac=str(self.DicoEnumCasEnInverse[obj.nom][obj.valeur])
+                except :
+                    if obj.valeur==None :  sTelemac=obj.valeur
+                    else : print(("generMCSIMP Pb valeur avec ", obj.nom, obj.valeur))
+                # Si le resultat est du texte on ajoute des guillemets
+                if sTelemac[0] not in '0123456789':
+                    sTelemac = "'" + sTelemac +"'"
 
         if type(obj.valeur) in (tuple,list) :
-           if obj.nom in self.DicoEnumCasEnInverse:
-             #sT = "'"
-             sT=''
-             for v in obj.valeur:
-               try : sT +=str(self.DicoEnumCasEnInverse[obj.nom][v]) +";"
-               except :
-                 if obj.definition.intoSug != [] : sT +=str(v) + ";"
-                 else : print(("generMCSIMP Pb Tuple avec ", obj.nom, v, obj.valeur))
-             #sTelemac=sT[0:-1]+"'"
-             sTelemac=sT[0:-1]
-           else  :
-             sTelemac=sTelemac[0:-1]
-             if sTelemac.find("'") > 0 :
-                sTelemac= sTelemac.replace (',',';\n   ')
-                # on enleve le dernier  ';'
-                index=(sTelemac.rfind(";"))
-                sTelemac=sTelemac[:index]+' '+sTelemac[index+1:]
+            if obj.nom in self.DicoEnumCasEnInverse:
+                #sT = "'"
+                sT=''
+                for v in obj.valeur:
+                    try : sT +=str(self.DicoEnumCasEnInverse[obj.nom][v]) +";"
+                    except :
+                        if obj.definition.intoSug != [] : sT +=str(v) + ";"
+                        else : print(("generMCSIMP Pb Tuple avec ", obj.nom, v, obj.valeur))
+                #sTelemac=sT[0:-1]+"'"
+                sTelemac=sT[0:-1]
+            else  :
+                sTelemac=sTelemac[0:-1]
+                if sTelemac.find("'") > 0 :
+                    sTelemac= sTelemac.replace (',',';\n    ')
+                    # on enleve le dernier  ';'
+                    index=(sTelemac.rfind(";"))
+                    sTelemac=sTelemac[:index]+' '+sTelemac[index+1:]
 
         if self.langue=='fr' :
-           s1=str(sTelemac).replace('True','OUI')
-           s2=s1.replace('False','NON')
+            s1=str(sTelemac).replace('True','OUI')
+            s2=s1.replace('False','NON')
         else :
-           s1=str(sTelemac).replace('True','YES')
-           s2=s1.replace('False','NO')
+            s1=str(sTelemac).replace('True','YES')
+            s2=s1.replace('False','NO')
         if hasattr(obj.definition,'max'):
-           if obj.definition.max != 1:
-              s3=s2.replace(',',';')
-           else:
-              s3=s2
+            if obj.definition.max != 1:
+                s3=s2.replace(',',';')
+            else:
+                s3=s2
         if s3 != "" and s3[0]=='(' :
-          try : s3=s3[1:-1] # cas de liste vide
-          except : s3 = ' '
+            try : s3=s3[1:-1] # cas de liste vide
+            except : s3 = ' '
 
 
         # LIQUID_BOUNDARIES
@@ -240,13 +240,13 @@ class TELEMACGenerator(PythonGenerator):
 
         # cas des Tuples
         if obj.waitTuple()  and s3 != '' and s3  != 'None':
-           s3=s
-           if s3[-1] == ',': s3=s3[:-1]
+            s3=s
+            if s3[-1] == ',': s3=s3[:-1]
 
 
         if obj.nom not in self.dicoCataToCas :
-           if obj.nom == 'Consigne' : return ""
-           return s
+            if obj.nom == 'Consigne' : return ""
+            return s
 
         nom=self.dicoCataToCas[obj.nom]
         if nom in ["VARIABLES FOR GRAPHIC PRINTOUTS", "VARIABLES POUR LES SORTIES GRAPHIQUES",
@@ -254,10 +254,10 @@ class TELEMACGenerator(PythonGenerator):
                    "VARIABLES FOR 3D GRAPHIC PRINTOUTS", "VARIABLES POUR LES SORTIES GRAPHIQUES 3D",
                    "VARIABLES POUR LES SORTIES GRAPHIQUES 2D", "VARIABLES FOR 2D GRAPHIC PRINTOUTS",
                    "C_VSM_PRINTOUT_SELECTION"]:
-              if s3 != '' and s3  != 'None':
+            if s3 != '' and s3  != 'None':
                 s3=s3.replace(';',',')
                 s3="'"+ s3 +"'"
-              else:
+            else:
                 s3 = "''"
         if nom in ["COUPLING WITH", "COUPLAGE AVEC"]:
             s3 = s3.strip().replace("\n","")\
@@ -269,99 +269,97 @@ class TELEMACGenerator(PythonGenerator):
         if len(ligne) > 72 : ligne=self.redecoupeLigne(nom,s3)
         self.texteDico+=ligne
 
-   def generMCFACT(self,obj):
-      """
-      """
-      s=PythonGenerator.generMCFACT(self,obj)
-      if obj.nom in TELEMACGenerator.__dict__ : TELEMACGenerator.__dict__[obj.nom](self,obj)
-
-      return s
-
-
-   def TRACERS(self,obj):
-       if self.nbTracers != 0 :  self.texteDico += 'NUMBER_OF_TRACERS : '+str(self.nbTracers) + '\n'
-
-
-   def NAME_OF_TRACER(self,obj):
-       print((dir(obj) ))
-       print((obj.getGenealogiePrecise()))
-
-   def Validation(self,obj):
-       self.texteDico += "VALIDATION : True \n"
-
-   def Date_De_L_Origine_Des_Temps (self,obj):
-       an=obj.getChild('Year').valeur
-       mois=obj.getChild('Month').valeur
-       jour=obj.getChild('Day').valeur
-       self.texteDico += "ORIGINAL DATE OF TIME  :"+ str(an)+ " ,"+str(mois)+ "," +str(jour)+ "\n"
-
-   def Original_Hour_Of_Time (self,obj):
-       hh=obj.getChild('Hour').valeur
-       mm=obj.getChild('Minute').valeur
-       ss=obj.getChild('Second').valeur
-       self.texteDico += "ORIGINAL HOUR OF TIME :"+str(hh)+" ,"+str(mm)+ ","+str(ss)+"\n"
-
-   def Type_Of_Advection(self,obj):
-       listeAdvection=[1,5,1,1]
-       listeSupg=[2,2,2,2]
-       listeUpwind=[1.,1.,1.,1.]
-       self.listeMCAdvection=[]
-       self.chercheChildren(obj)
-       dicoSuf={ 'U_And_V' : 0, 'H' : 1, 'K_And_Epsilon' : 2, 'Tracers' : 3}
-       for c in  self.listeMCAdvection:
-           if c.nom[0:18] == 'Type_Of_Advection_' and c.valeur!=None:
-              suf=c.nom[18:]
-              index=dicoSuf[suf]
-              listeAdvection[index]=self.DicoEnumCasEnInverse['Type_Of_Advection'][c.valeur]
-           if c.nom[0:13] == 'Supg_Option_' and c.valeur!=None:
-              suf=c.nom[13:]
-              index=dicoSuf[suf]
-              listeAdvection[index]=self.DicoEnumCasEnInverse['Supg_Option'][c.valeur]
-           if c.nom[0:23] == 'Upwind_Coefficients_Of_' and c.valeur!=None:
-              suf=c.nom[23:]
-              index=dicoSuf[suf]
-              listeUpwind[index]=c.valeur
-       self.texteDico += "TYPE OF ADVECTION = "+ str(listeAdvection) + "\n"
-       self.texteDico += "SUPG OPTION = "+ str(listeSupg) + "\n"
-       self.texteDico += "UPWIND COEFFICIENTS = "+ str(listeUpwind) + "\n"
-
-   def chercheChildren(self,obj):
-       for c in obj.listeMcPresents():
-           objc=obj.getChild(c)
-           if hasattr(objc,'listeMcPresents') and objc.listeMcPresents() != [] : self.chercheChildren(objc)
-           else : self.listeMCAdvection.append(objc)
-
-
-
-   def redecoupeLigne(self,nom,valeur) :
-       text=nom+ " : \n"
-       valeur=valeur
-       if valeur.find("'") > -1:
-          lval=valeur.split(";")
-          for v in lval : text+='   '+v+';'
-          text=text[0:-1]+'\n'
-       else :
-         lval=valeur.split(";")
-         ligne="   "
-         for v in lval :
-           if len(ligne+ str(v)+'; ') < 70 : ligne += str(v)+'; '
-           else :
-              text+= ligne+"\n"
-              ligne="   "+str(v)+'; '
-         text+= ligne[0:-2]+'\n'
-       return text
-
-   def generCOMMENTAIRE(self,obj):
-       sans_saut = re.sub("\n$","",obj.valeur)
-       l_lignes = sans_saut.split('\n')
-       txt='/'+66*'-'+'/'+'\n'
-       i=1
-       for ligne in l_lignes:
-         self.texteCom+=ligne+'\n'
-         txt = txt + '/'+ligne+'\n'
-       txt= txt + '/'+66*'-'+'/'+'\n'
-       self.texteDico += txt
-       self.commentaireAvant= True
-       return PythonGenerator.generCOMMENTAIRE(self,obj)
+    def generMCFACT(self,obj):
+        """
+        """
+        s=PythonGenerator.generMCFACT(self,obj)
+        if obj.nom in TELEMACGenerator.__dict__ : TELEMACGenerator.__dict__[obj.nom](self,obj)
+
+        return s
 
 
+    def TRACERS(self,obj):
+        if self.nbTracers != 0 :  self.texteDico += 'NUMBER_OF_TRACERS : '+str(self.nbTracers) + '\n'
+
+
+    def NAME_OF_TRACER(self,obj):
+        print((dir(obj) ))
+        print((obj.getGenealogiePrecise()))
+
+    def Validation(self,obj):
+        self.texteDico += "VALIDATION : True \n"
+
+    def Date_De_L_Origine_Des_Temps (self,obj):
+        an=obj.getChild('Year').valeur
+        mois=obj.getChild('Month').valeur
+        jour=obj.getChild('Day').valeur
+        self.texteDico += "ORIGINAL DATE OF TIME  :"+ str(an)+ " ,"+str(mois)+ "," +str(jour)+ "\n"
+
+    def Original_Hour_Of_Time (self,obj):
+        hh=obj.getChild('Hour').valeur
+        mm=obj.getChild('Minute').valeur
+        ss=obj.getChild('Second').valeur
+        self.texteDico += "ORIGINAL HOUR OF TIME :"+str(hh)+" ,"+str(mm)+ ","+str(ss)+"\n"
+
+    def Type_Of_Advection(self,obj):
+        listeAdvection=[1,5,1,1]
+        listeSupg=[2,2,2,2]
+        listeUpwind=[1.,1.,1.,1.]
+        self.listeMCAdvection=[]
+        self.chercheChildren(obj)
+        dicoSuf={ 'U_And_V' : 0, 'H' : 1, 'K_And_Epsilon' : 2, 'Tracers' : 3}
+        for c in  self.listeMCAdvection:
+            if c.nom[0:18] == 'Type_Of_Advection_' and c.valeur!=None:
+                suf=c.nom[18:]
+                index=dicoSuf[suf]
+                listeAdvection[index]=self.DicoEnumCasEnInverse['Type_Of_Advection'][c.valeur]
+            if c.nom[0:13] == 'Supg_Option_' and c.valeur!=None:
+                suf=c.nom[13:]
+                index=dicoSuf[suf]
+                listeAdvection[index]=self.DicoEnumCasEnInverse['Supg_Option'][c.valeur]
+            if c.nom[0:23] == 'Upwind_Coefficients_Of_' and c.valeur!=None:
+                suf=c.nom[23:]
+                index=dicoSuf[suf]
+                listeUpwind[index]=c.valeur
+        self.texteDico += "TYPE OF ADVECTION = "+ str(listeAdvection) + "\n"
+        self.texteDico += "SUPG OPTION = "+ str(listeSupg) + "\n"
+        self.texteDico += "UPWIND COEFFICIENTS = "+ str(listeUpwind) + "\n"
+
+    def chercheChildren(self,obj):
+        for c in obj.listeMcPresents():
+            objc=obj.getChild(c)
+            if hasattr(objc,'listeMcPresents') and objc.listeMcPresents() != [] : self.chercheChildren(objc)
+            else : self.listeMCAdvection.append(objc)
+
+
+
+    def redecoupeLigne(self,nom,valeur) :
+        text=nom+ " : \n"
+        valeur=valeur
+        if valeur.find("'") > -1:
+            lval=valeur.split(";")
+            for v in lval : text+='   '+v+';'
+            text=text[0:-1]+'\n'
+        else :
+            lval=valeur.split(";")
+            ligne="   "
+            for v in lval :
+                if len(ligne+ str(v)+'; ') < 70 : ligne += str(v)+'; '
+                else :
+                    text+= ligne+"\n"
+                    ligne="   "+str(v)+'; '
+            text+= ligne[0:-2]+'\n'
+        return text
+
+    def generCOMMENTAIRE(self,obj):
+        sans_saut = re.sub("\n$","",obj.valeur)
+        l_lignes = sans_saut.split('\n')
+        txt='/'+66*'-'+'/'+'\n'
+        i=1
+        for ligne in l_lignes:
+            self.texteCom+=ligne+'\n'
+            txt = txt + '/'+ligne+'\n'
+        txt= txt + '/'+66*'-'+'/'+'\n'
+        self.texteDico += txt
+        self.commentaireAvant= True
+        return PythonGenerator.generCOMMENTAIRE(self,obj)
index 4fc98f10134b13ab0b113f8c4dad6d5435abd23f..f336e41609ecf46c2ce1505d8fa36b9c29d58258 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -23,7 +23,7 @@
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import traceback
@@ -32,55 +32,85 @@ from Extensions.i18n import tr
 from .generator_python import PythonGenerator
 
 def entryPoint():
-   """
-      Retourne les informations necessaires pour le chargeur de plugins
-      Ces informations sont retournees dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'xml',
-        # La factory pour creer une instance du plugin
-          'factory' : XMLGenerator,
-          }
+    """
+       Retourne les informations necessaires pour le chargeur de plugins
+       Ces informations sont retournees dans un dictionnaire
+    """
+    return {
+         # Le nom du plugin
+           'name' : 'xml',
+         # La factory pour creer une instance du plugin
+           'factory' : XMLGenerator,
+           }
 
 
 class XMLGenerator(PythonGenerator):
-   """
-      Ce generateur parcourt un objet de type JDC et produit
-      un texte au format eficas et 
+    """
+       Ce generateur parcourt un objet de type JDC et produit
+       un texte au format eficas et
 
-   """
-   # Les extensions de fichier permis?
-   extensions=('.comm',)
+    """
+    # Les extensions de fichier permis?
+    extensions=('.comm',)
 
 #----------------------------------------------------------------------------------------
-   def gener(self,obj,format='brut',config=None,appli=None):
-       
-      try :
-        print (obj)
-        self.texteXML=obj.toXml()
-      except : 
-        self.texteXML='erreur generation'
-        pass
-      
-      # Cette instruction genere le contenu du fichier de commandes (persistance)
-      self.text=PythonGenerator.gener(self,obj,format)
-      return self.text
+    def gener(self,obj,format='brut',config=None,appliEficas=None):
+
+        try :
+        #if 1 :
+            self.texteXML=obj.toXml()
+        except :
+            self.texteXML='erreur generation'
+            #print (self.texteXML)
+        #  pass
+
+        self.textePourAide =""
+        self.dictNbNomObj={}
+        # Cette instruction genere le contenu du fichier de commandes (persistance)
+        self.text=PythonGenerator.gener(self,obj,format)
+        return self.text
 
 
 #----------------------------------------------------------------------------------------
 # initialisations
 #----------------------------------------------------------------------------------------
-   
+
 # ecriture
 #----------------------------------------------------------------------------------------
 
-   def writeDefault(self,fn) :
-       #fileDico = fn[:fn.rfind(".")] + '.py'
-       fileDico='/tmp/toto.xml'
-       print (self.texteXML)
-       f = open( str(fileDico), 'w')
-       f.write('Dico = '+str(self.texteXML))
-       f.close()
+    def writeDefault(self,fn) :
+        fileXML  = fn[:fn.rfind(".")] + '.xml'
+        #filePyxb = fn[:fn.rfind(".")] + '.py'
+        fileBase = os.path.basename(fileXML)
+        fileBase = fileBase[:fileBase.rfind(".")] + '.py'
+        filePyxb = '/tmp/example_' + fileBase
+        #print (filePyxb)
+        #fileDico='/tmp/toto.xml'
+        #print (self.texteXML)
+        f = open( str(fileXML), 'w')
+        f.write(str(self.texteXML))
+        f.close()
+
+        f = open( str(filePyxb), 'w')
+        self.textePourAide='txt=""'+'\n'+self.textePourAide
+        self.textePourAide=self.textePourAide+'print (txt)'+'\n'
+        f.write(str(self.textePourAide))
+        f.close()
+
+
+    def generMCSIMP(self,obj) :
+        if obj.nom != 'Consigne' :
+            if obj.nom in self.dictNbNomObj.keys():
+                nomUtil = obj.nom + "_" + str(self.dictNbNomObj[obj.nom])
+                self.dictNbNomObj[obj.nom] += 1
+            else :
+                nomUtil = obj.nom
+                self.dictNbNomObj[obj.nom] = 1
+            if obj.definition.avecBlancs : self.textePourAide +=  nomUtil + " = vimmpCase." + obj.getNomDsXML() + ".s\n"
+            else : self.textePourAide +=  nomUtil + " = vimmpCase." + obj.getNomDsXML() + "\n"
+            self.textePourAide +='txt += "' + nomUtil + '" + " = " +str( ' + nomUtil + ')+"\\n"'+ "\n"
+
 
 
+        s=PythonGenerator.generMCSIMP(self,obj)
+        return s
index 2bbdaade91961ae4805ab0af0c19d8d092891123..10511063f5f087a6e85ad4a2d99c5ff104bb4236 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 """
-    Ce module contient le plugin generateur de fichier au format 
+    Ce module contient le plugin generateur de fichier au format
     aplat pour EFICAS.
 
 """
 try :
-   from builtins import str
-   from builtins import object
+    from builtins import str
+    from builtins import object
 except : pass
 
 import traceback
@@ -40,308 +40,306 @@ from Accas import GEOM,ASSD,MCNUPLET
 from Accas import COMMENTAIRE,PARAMETRE, PARAMETRE_EVAL,COMMANDE_COMM
 
 def entryPoint():
-   """
-       Retourne les informations necessaires pour le chargeur de plugins
+    """
+        Retourne les informations necessaires pour le chargeur de plugins
 
-       Ces informations sont retournees dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'aplat',
-        # La factory pour creer une instance du plugin
-          'factory' : AplatGenerator,
-          }
+        Ces informations sont retournees dans un dictionnaire
+    """
+    return {
+         # Le nom du plugin
+           'name' : 'aplat',
+         # La factory pour creer une instance du plugin
+           'factory' : AplatGenerator,
+           }
 
 
 class AplatGenerator(object):
-   """
-       Ce generateur parcourt un objet de type JDC et produit
-       un fichier au format aplat 
-
-       L'acquisition et le parcours sont realises par la methode
-       generator.gener(objet_jdc,format)
-
-       L'ecriture du fichier au format ini par appel de la methode
-       generator.writefile(nom_fichier)
-
-       Ses caracteristiques principales sont exposees dans des attributs 
-       de classe :
-         - extensions : qui donne une liste d'extensions de fichier preconisees
-
-   """
-   # Les extensions de fichier preconisees
-   extensions=('.*',)
-
-   def __init__(self,cr=None):
-      # Si l'objet compte-rendu n'est pas fourni, on utilise le compte-rendu standard
-      if cr :
-         self.cr=cr
-      else:
-         self.cr=N_CR.CR(debut='CR generateur format aplat pour eficas',
-                         fin='fin CR format aplat pour eficas')
-      self.init=''
-      # Le separateur utiise
-      self.sep='//'
-      # Le texte au format aplat est stocke dans l'attribut text
-      self.text=''
-
-   def writefile(self,filename):
-      fp=open(filename,'w')
-      fp.write(self.text)
-      fp.close()
-
-   def gener(self,obj,format='brut',config=None,appli=None):
-      """
-          Retourne une representation du JDC obj sous une forme qui est parametree par format.
-          Si format vaut 'brut', 'standard' ou 'beautifie', retourne le texte issu de generator
-      """
-      liste= self.generator(obj)
-      if format == 'brut':
-         self.text=liste
-      elif format == 'standard':
-         self.text=liste
-      elif format == 'beautifie':
-         self.text=liste
-      else:
-        raise EficasException(tr("Format pas implemente : %s", format))
-      return self.text
-
-   def generator(self,obj):
-      """
-         Cette methode joue un role d'aiguillage en fonction du type de obj
-         On pourrait utiliser les methodes accept et visitxxx a la 
-         place (depend des gouts !!!)
-      """
-      # ATTENTION a l'ordre des tests : il peut avoir de l'importance (heritage)
-      if isinstance(obj,PROC_ETAPE):
-         return self.generPROC_ETAPE(obj)
-      elif isinstance(obj,MACRO_ETAPE):
-         return self.generMACRO_ETAPE(obj)
-      elif isinstance(obj,FORM_ETAPE):
-         return self.generFORM_ETAPE(obj)
-      elif isinstance(obj,ETAPE):
-         return self.generETAPE(obj)
-      elif isinstance(obj,MCFACT):
-         return self.generMCFACT(obj)
-      elif isinstance(obj,MCList):
-         return self.generMCList(obj)
-      elif isinstance(obj,MCBLOC):
-         return self.generMCBLOC(obj)
-      elif isinstance(obj,MCSIMP):
-         return self.generMCSIMP(obj)
-      elif isinstance(obj,ASSD):
-         return self.generASSD(obj)
-      elif isinstance(obj,ETAPE_NIVEAU):
-         return self.generETAPE_NIVEAU(obj)
-      elif isinstance(obj,COMMENTAIRE):
-         return self.generCOMMENTAIRE(obj)
-      # Attention doit etre place avant PARAMETRE (raison : heritage)
-      elif isinstance(obj,PARAMETRE_EVAL):
-         return self.generPARAMETRE_EVAL(obj)
-      elif isinstance(obj,PARAMETRE):
-         return self.generPARAMETRE(obj)
-      elif isinstance(obj,EVAL):
-         return self.generEVAL(obj)
-      elif isinstance(obj,COMMANDE_COMM):
-         return self.generCOMMANDE_COMM(obj)
-      elif isinstance(obj,JDC):
-         return self.generJDC(obj)
-      elif isinstance(obj,MCNUPLET):
-         return self.generMCNUPLET(obj)
-      else:
-         raise EficasException(tr("Format non implemente : %s", format))
-
-
-   def generJDC(self,obj):
-      """
-         Cette methode convertit un objet JDC en une chaine de
-         caracteres a la syntaxe aplat
-      """
-      text=''
-      if obj.definition.l_niveaux == ():
-         # Il n'y a pas de niveaux
-         for etape in obj.etapes:
-            text=text+self.generator(etape)+'\n'
-      else:
-         # Il y a des niveaux
-         for etape_niveau in obj.etapes_niveaux:
-            text=text+self.generator(etape_niveau)+'\n'
-      return text
-
-   def generCOMMANDE_COMM(self,obj):
-      """
-         Cette methode convertit un COMMANDE_COMM
-         en une chaine de caracteres a la syntaxe aplat 
-      """
-      l_lignes = obj.valeur.split('\n')
-      txt=''
-      for ligne in l_lignes:
-          txt = txt + '##'+ligne+'\n'
-      return txt
-
-   def generEVAL(self,obj):
-      """
-         Cette methode convertit un EVAL
-         en une chaine de caracteres a la syntaxe aplat 
-      """
-      return 'EVAL("""'+ obj.valeur +'""")'
-
-   def generCOMMENTAIRE(self,obj):
-      """
-         Cette methode convertit un COMMENTAIRE
-         en une chaine de caracteres a la syntaxe aplat  
-      """
-      l_lignes = obj.valeur.split('\n')
-      txt=''
-      for ligne in l_lignes:
-        txt = txt + '#'+ligne+'\n'
-      return txt
-
-   def generPARAMETRE_EVAL(self,obj):
-      """
-         Cette methode convertit un PARAMETRE_EVAL
-         en une chaine de caracteres a la syntaxe aplat 
-      """
-      if obj.valeur == None:
-         return obj.nom + ' = None ;\n'
-      else:
-         return obj.nom + ' = '+ self.generator(obj.valeur) +';\n'
-
-   def generPARAMETRE(self,obj):
-      """
-         Cette methode convertit un PARAMETRE
-         en une chaine de caracteres a la syntaxe aplat 
-      """
-      if type(obj.valeur) == bytes or  type(obj.valeur) == str:
-        # PN pour corriger le bug a='3+4' au lieu de a= 3+4
-        #return obj.nom + " = '" + obj.valeur + "';\n"
-        return obj.nom + " = " + obj.valeur + ";\n"
-      else:
-        return obj.nom + ' = ' + str(obj.valeur) + ';\n'
-
-   def generETAPE_NIVEAU(self,obj):
-      """
-         Cette methode convertit une etape niveau
-         en une chaine de caracteres a la syntaxe aplat 
-      """
-      text=''
-      if obj.etapes_niveaux == []:
-        for etape in obj.etapes:
-          text=text+self.generator(etape)+'\n'
-      else:
-        for etape_niveau in obj.etapes_niveaux:
-          text=text+self.generator(etape_niveau)+'\n'
-      return text
-
-   def gener_etape(self,obj):
-      """
-         Cette methode est utilise pour convertir les objets etape
-         en une chaine de caracteres a la syntaxe aplat 
-      """
-      text=''
-      for v in obj.mcListe:
-         text=text + self.generator(v)
-      if text=='':
-         return self.init+'\n'
-      else:
-         return text
-
-   def generETAPE(self,obj):
-      """
-         Cette methode convertit une etape
-         en une chaine de caracteres a la syntaxe aplat 
-      """
-      try:
-        sdname= self.generator(obj.sd)
-      except:
-        sdname='sansnom'
-      self.init = sdname + self.sep + obj.nom
-      return self.gener_etape(obj)
-
-   def generMACRO_ETAPE(self,obj):
-      """
-         Cette methode convertit une macro-etape
-         en une chaine de caracteres a la syntaxe aplat 
-      """
-      try:
-        if obj.sd == None:
-          self.init = obj.nom
-        else:
-          sdname= self.generator(obj.sd)
-          self.init = sdname + self.sep + obj.nom
-      except:
-        self.init = 'sansnom' + self.sep + obj.nom
-
-      return self.gener_etape(obj)
-
-   generPROC_ETAPE = generMACRO_ETAPE
-
-   generFORM_ETAPE = generMACRO_ETAPE
-
-   def generASSD(self,obj):
-      """
-          Convertit un objet derive d'ASSD en une chaine de caracteres a la
-          syntaxe aplat 
-      """
-      return obj.getName()
-
-   def generMCList(self,obj):
-      """
-          Convertit un objet MCList en une chaine de caracteres a la
-          syntaxe aplat
-      """
-      i=0
-      text = ''
-      init = self.init + self.sep + obj.nom
-      old_init=self.init
-      for data in obj.data :
-        i=i+1
-        self.init = init + self.sep + "occurrence n"+repr(i)
-        text = text + self.generator(data)
-      self.init=old_init
-      return text
-
-   def generMCSIMP(self,obj) :
-      """
-          Convertit un objet MCSIMP en une chaine de caracteres a la
-          syntaxe aplat 
-      """
-      if type(obj.valeur) in (tuple,list) :
-         # On est en presence d'une liste de valeur
-         rep = '('
-         for val in obj.valeur:
-           #if type(val) == types.InstanceType :
-           if isinstance(val,object):
-             rep = rep + self.generator(val) +','
-           else:
-             rep = rep + repr(val)+','
-         rep = rep + ')'
-      #elif type(obj.valeur) == types.InstanceType :
-      elif type(obj.valeur) == object :
-         # On est en presence d'une valeur unique de type instance
-         rep = self.generator(obj.valeur)
-      else :
-         # On est en presence d'une valeur unique
-         rep = repr(obj.valeur)
-      return self.init + self.sep + obj.nom + ' :' + rep + '\n'
-
-   def generMCCOMPO(self,obj):
-      """
-          Convertit un objet MCCOMPO en une chaine de caracteres a la
-          syntaxe aplat
-      """
-      text = ''
-      old_init=self.init
-      self.init = self.init + self.sep + obj.nom
-      for mocle in obj.mcListe :
-        text = text + self.generator(mocle)
-      self.init=old_init
-      return text
-
-   generMCFACT=generMCCOMPO
-
-   generMCBLOC=generMCCOMPO
-
-   generMCNUPLET=generMCCOMPO
+    """
+        Ce generateur parcourt un objet de type JDC et produit
+        un fichier au format aplat
+
+        L'acquisition et le parcours sont realises par la methode
+        generator.gener(objet_jdc,format)
+
+        L'ecriture du fichier au format ini par appel de la methode
+        generator.writeFile(nom_fichier)
 
+        Ses caracteristiques principales sont exposees dans des attributs
+        de classe :
+          - extensions : qui donne une liste d'extensions de fichier preconisees
 
+    """
+    # Les extensions de fichier preconisees
+    extensions=('.*',)
+
+    def __init__(self,cr=None):
+        # Si l'objet compte-rendu n'est pas fourni, on utilise le compte-rendu standard
+        if cr :
+            self.cr=cr
+        else:
+            self.cr=N_CR.CR(debut='CR generateur format aplat pour eficas',
+                            fin='fin CR format aplat pour eficas')
+        self.init=''
+        # Le separateur utiise
+        self.sep='//'
+        # Le texte au format aplat est stocke dans l'attribut text
+        self.text=''
+
+    def writefile(self,filename):
+        fp=open(filename,'w')
+        fp.write(self.text)
+        fp.close()
+
+    def gener(self,obj,format='brut',config=None,appliEficas=None):
+        """
+            Retourne une representation du JDC obj sous une forme qui est parametree par format.
+            Si format vaut 'brut', 'standard' ou 'beautifie', retourne le texte issu de generator
+        """
+        liste= self.generator(obj)
+        if format == 'brut':
+            self.text=liste
+        elif format == 'standard':
+            self.text=liste
+        elif format == 'beautifie':
+            self.text=liste
+        else:
+            raise EficasException(tr("Format pas implemente : %s", format))
+        return self.text
+
+    def generator(self,obj):
+        """
+           Cette methode joue un role d'aiguillage en fonction du type de obj
+           On pourrait utiliser les methodes accept et visitxxx a la
+           place (depend des gouts !!!)
+        """
+        # ATTENTION a l'ordre des tests : il peut avoir de l'importance (heritage)
+        if isinstance(obj,PROC_ETAPE):
+            return self.generPROC_ETAPE(obj)
+        elif isinstance(obj,MACRO_ETAPE):
+            return self.generMACRO_ETAPE(obj)
+        elif isinstance(obj,FORM_ETAPE):
+            return self.generFORM_ETAPE(obj)
+        elif isinstance(obj,ETAPE):
+            return self.generETAPE(obj)
+        elif isinstance(obj,MCFACT):
+            return self.generMCFACT(obj)
+        elif isinstance(obj,MCList):
+            return self.generMCList(obj)
+        elif isinstance(obj,MCBLOC):
+            return self.generMCBLOC(obj)
+        elif isinstance(obj,MCSIMP):
+            return self.generMCSIMP(obj)
+        elif isinstance(obj,ASSD):
+            return self.generASSD(obj)
+        elif isinstance(obj,ETAPE_NIVEAU):
+            return self.generETAPE_NIVEAU(obj)
+        elif isinstance(obj,COMMENTAIRE):
+            return self.generCOMMENTAIRE(obj)
+        # Attention doit etre place avant PARAMETRE (raison : heritage)
+        elif isinstance(obj,PARAMETRE_EVAL):
+            return self.generPARAMETRE_EVAL(obj)
+        elif isinstance(obj,PARAMETRE):
+            return self.generPARAMETRE(obj)
+        elif isinstance(obj,EVAL):
+            return self.generEVAL(obj)
+        elif isinstance(obj,COMMANDE_COMM):
+            return self.generCOMMANDE_COMM(obj)
+        elif isinstance(obj,JDC):
+            return self.generJDC(obj)
+        elif isinstance(obj,MCNUPLET):
+            return self.generMCNUPLET(obj)
+        else:
+            raise EficasException(tr("Format non implemente : %s", format))
+
+
+    def generJDC(self,obj):
+        """
+           Cette methode convertit un objet JDC en une chaine de
+           caracteres a la syntaxe aplat
+        """
+        text=''
+        if obj.definition.l_niveaux == ():
+            # Il n'y a pas de niveaux
+            for etape in obj.etapes:
+                text=text+self.generator(etape)+'\n'
+        else:
+            # Il y a des niveaux
+            for etape_niveau in obj.etapes_niveaux:
+                text=text+self.generator(etape_niveau)+'\n'
+        return text
+
+    def generCOMMANDE_COMM(self,obj):
+        """
+           Cette methode convertit un COMMANDE_COMM
+           en une chaine de caracteres a la syntaxe aplat
+        """
+        l_lignes = obj.valeur.split('\n')
+        txt=''
+        for ligne in l_lignes:
+            txt = txt + '##'+ligne+'\n'
+        return txt
+
+    def generEVAL(self,obj):
+        """
+           Cette methode convertit un EVAL
+           en une chaine de caracteres a la syntaxe aplat
+        """
+        return 'EVAL("""'+ obj.valeur +'""")'
+
+    def generCOMMENTAIRE(self,obj):
+        """
+           Cette methode convertit un COMMENTAIRE
+           en une chaine de caracteres a la syntaxe aplat
+        """
+        l_lignes = obj.valeur.split('\n')
+        txt=''
+        for ligne in l_lignes:
+            txt = txt + '#'+ligne+'\n'
+        return txt
+
+    def generPARAMETRE_EVAL(self,obj):
+        """
+           Cette methode convertit un PARAMETRE_EVAL
+           en une chaine de caracteres a la syntaxe aplat
+        """
+        if obj.valeur == None:
+            return obj.nom + ' = None ;\n'
+        else:
+            return obj.nom + ' = '+ self.generator(obj.valeur) +';\n'
+
+    def generPARAMETRE(self,obj):
+        """
+           Cette methode convertit un PARAMETRE
+           en une chaine de caracteres a la syntaxe aplat
+        """
+        if type(obj.valeur) == bytes or  type(obj.valeur) == str:
+            # PN pour corriger le bug a='3+4' au lieu de a= 3+4
+            #return obj.nom + " = '" + obj.valeur + "';\n"
+            return obj.nom + " = " + obj.valeur + ";\n"
+        else:
+            return obj.nom + ' = ' + str(obj.valeur) + ';\n'
+
+    def generETAPE_NIVEAU(self,obj):
+        """
+           Cette methode convertit une etape niveau
+           en une chaine de caracteres a la syntaxe aplat
+        """
+        text=''
+        if obj.etapes_niveaux == []:
+            for etape in obj.etapes:
+                text=text+self.generator(etape)+'\n'
+        else:
+            for etape_niveau in obj.etapes_niveaux:
+                text=text+self.generator(etape_niveau)+'\n'
+        return text
+
+    def gener_etape(self,obj):
+        """
+           Cette methode est utilise pour convertir les objets etape
+           en une chaine de caracteres a la syntaxe aplat
+        """
+        text=''
+        for v in obj.mcListe:
+            text=text + self.generator(v)
+        if text=='':
+            return self.init+'\n'
+        else:
+            return text
+
+    def generETAPE(self,obj):
+        """
+           Cette methode convertit une etape
+           en une chaine de caracteres a la syntaxe aplat
+        """
+        try:
+            sdname= self.generator(obj.sd)
+        except:
+            sdname='sansnom'
+        self.init = sdname + self.sep + obj.nom
+        return self.gener_etape(obj)
+
+    def generMACRO_ETAPE(self,obj):
+        """
+           Cette methode convertit une macro-etape
+           en une chaine de caracteres a la syntaxe aplat
+        """
+        try:
+            if obj.sd == None:
+                self.init = obj.nom
+            else:
+                sdname= self.generator(obj.sd)
+                self.init = sdname + self.sep + obj.nom
+        except:
+            self.init = 'sansnom' + self.sep + obj.nom
+
+        return self.gener_etape(obj)
+
+    generPROC_ETAPE = generMACRO_ETAPE
+
+    generFORM_ETAPE = generMACRO_ETAPE
+
+    def generASSD(self,obj):
+        """
+            Convertit un objet derive d'ASSD en une chaine de caracteres a la
+            syntaxe aplat
+        """
+        return obj.getName()
+
+    def generMCList(self,obj):
+        """
+            Convertit un objet MCList en une chaine de caracteres a la
+            syntaxe aplat
+        """
+        i=0
+        text = ''
+        init = self.init + self.sep + obj.nom
+        old_init=self.init
+        for data in obj.data :
+            i=i+1
+            self.init = init + self.sep + "occurrence n"+repr(i)
+            text = text + self.generator(data)
+        self.init=old_init
+        return text
+
+    def generMCSIMP(self,obj) :
+        """
+            Convertit un objet MCSIMP en une chaine de caracteres a la
+            syntaxe aplat
+        """
+        if type(obj.valeur) in (tuple,list) :
+            # On est en presence d'une liste de valeur
+            rep = '('
+            for val in obj.valeur:
+                #if type(val) == types.InstanceType :
+                if isinstance(val,object):
+                    rep = rep + self.generator(val) +','
+                else:
+                    rep = rep + repr(val)+','
+            rep = rep + ')'
+        #elif type(obj.valeur) == types.InstanceType :
+        elif type(obj.valeur) == object :
+            # On est en presence d'une valeur unique de type instance
+            rep = self.generator(obj.valeur)
+        else :
+            # On est en presence d'une valeur unique
+            rep = repr(obj.valeur)
+        return self.init + self.sep + obj.nom + ' :' + rep + '\n'
+
+    def generMCCOMPO(self,obj):
+        """
+            Convertit un objet MCCOMPO en une chaine de caracteres a la
+            syntaxe aplat
+        """
+        text = ''
+        old_init=self.init
+        self.init = self.init + self.sep + obj.nom
+        for mocle in obj.mcListe :
+            text = text + self.generator(mocle)
+        self.init=old_init
+        return text
+
+    generMCFACT=generMCCOMPO
+
+    generMCBLOC=generMCCOMPO
+
+    generMCNUPLET=generMCCOMPO
index 408ba95426b634b428e3d943553516a22f953117..5122789aa8b0e99f0c8c21c08c7eb96fd8e59ec6 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -23,7 +23,7 @@
 from __future__ import absolute_import
 from __future__ import print_function
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import traceback
@@ -32,68 +32,65 @@ from Extensions.i18n import tr
 from .generator_python import PythonGenerator
 
 def entryPoint():
-   """
-      Retourne les informations necessaires pour le chargeur de plugins
-      Ces informations sont retournees dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'dico',
-        # La factory pour creer une instance du plugin
-          'factory' : DicoGenerator,
-          }
+    """
+       Retourne les informations necessaires pour le chargeur de plugins
+       Ces informations sont retournees dans un dictionnaire
+    """
+    return {
+         # Le nom du plugin
+           'name' : 'dico',
+         # La factory pour creer une instance du plugin
+           'factory' : DicoGenerator,
+           }
 
 
 class DicoGenerator(PythonGenerator):
-   """
-      Ce generateur parcourt un objet de type JDC et produit
-      un texte au format eficas et 
-      un texte au format dictionnaire
+    """
+       Ce generateur parcourt un objet de type JDC et produit
+       un texte au format eficas et
+       un texte au format dictionnaire
 
-   """
-   # Les extensions de fichier permis?
-   extensions=('.comm',)
+    """
+    # Les extensions de fichier permis?
+    extensions=('.comm',)
 
 #----------------------------------------------------------------------------------------
-   def gener(self,obj,format='brut',config=None,appli=None):
-       
-      self.initDico()
-      
-      # Cette instruction genere le contenu du fichier de commandes (persistance)
-      self.text=PythonGenerator.gener(self,obj,format)
-      return self.text
+    def gener(self,obj,format='brut',config=None,appliEficas=None):
+
+        self.initDico()
+
+        # Cette instruction genere le contenu du fichier de commandes (persistance)
+        self.text=PythonGenerator.gener(self,obj,format)
+        return self.text
 
 
 #----------------------------------------------------------------------------------------
 # initialisations
 #----------------------------------------------------------------------------------------
-   
-   def initDico(self) :
-      self.Dico={}
-      self.texteDico = ""
+
+    def initDico(self) :
+
+        self.Dico={}
+        self.texteDico = ""
 
 
 #----------------------------------------------------------------------------------------
 # ecriture
 #----------------------------------------------------------------------------------------
 
-   def writeDefault(self,fn) :
-       fileDico = fn[:fn.rfind(".")] + '.py'
-       f = open( str(fileDico), 'w')
-       f.write('Dico = '+str(self.Dico))
-       f.close()
+    def writeDefault(self,fn) :
+        fileDico = fn[:fn.rfind(".")] + '.py'
+        f = open( str(fileDico), 'w')
+        f.write('Dico = '+str(self.Dico))
+        f.close()
 
 #----------------------------------------------------------------------------------------
-#  analyse de chaque noeud de l'arbre 
+#  analyse de chaque noeud de l'arbre
 #----------------------------------------------------------------------------------------
 
-   def generMCSIMP(self,obj) :
+    def generMCSIMP(self,obj) :
         """recuperation de l objet MCSIMP"""
         s=PythonGenerator.generMCSIMP(self,obj)
-        print ('jjjjjjjjjj')
-        print (obj.nom)
-        print (s)
         courant=self.Dico
         for p in obj.getGenealogiePrecise()[0:-1]:
             if not (p in courant.keys()) : courant[p]={}
@@ -101,4 +98,3 @@ class DicoGenerator(PythonGenerator):
         courant[obj.nom]=obj.val
         self.texteDico+=obj.nom+ "=" + s[0:-1]+ "\n"
         return s
-
index 4c201b9761a384cf3326084524a41c94c9e1313b..07c91ccd3f7b39e6c1f8e26dae15f38c98f3c423 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -22,7 +22,7 @@
 
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import traceback
@@ -31,121 +31,120 @@ from Extensions.i18n import tr
 from .generator_python import PythonGenerator
 
 def entryPoint():
-   """
-      Retourne les informations necessaires pour le chargeur de plugins
-      Ces informations sont retournees dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'dicoImbrique',
-        # La factory pour creer une instance du plugin
-          'factory' : DicoImbriqueGenerator,
-          }
+    """
+       Retourne les informations necessaires pour le chargeur de plugins
+       Ces informations sont retournees dans un dictionnaire
+    """
+    return {
+         # Le nom du plugin
+           'name' : 'dicoImbrique',
+         # La factory pour creer une instance du plugin
+           'factory' : DicoImbriqueGenerator,
+           }
 
 
 class DicoImbriqueGenerator(PythonGenerator):
-   """
-      Ce generateur parcourt un objet de type JDC et produit
-      un texte au format eficas et 
-      un texte au format dictionnaire
+    """
+       Ce generateur parcourt un objet de type JDC et produit
+       un texte au format eficas et
+       un texte au format dictionnaire
 
-   """
-   # Les extensions de fichier permis?
-   extensions=('.comm',)
+    """
+    # Les extensions de fichier permis?
+    extensions=('.comm',)
 
 #----------------------------------------------------------------------------------------
-   def gener(self,obj,format='brut',config=None, appli=None):
-       
-      self.initDico()
-      
-      # Cette instruction genere le contenu du fichier de commandes (persistance)
-      self.text=PythonGenerator.gener(self,obj,format)
-      #print (self.text)
-      print (self.Dico)
-      return self.text
+    def gener(self,obj,format='brut',config=None, appliEficas=None):
+
+        self.initDico()
+
+        # Cette instruction genere le contenu du fichier de commandes (persistance)
+        self.text=PythonGenerator.gener(self,obj,format)
+        #print (self.text)
+        print (self.Dico)
+        return self.text
 
 
 
 #----------------------------------------------------------------------------------------
 # initialisations
 #----------------------------------------------------------------------------------------
-   
-   def initDico(self) :
-      self.Dico={}
-      self.DicoDejaLa={}
-      self.Entete = ''
+
+    def initDico(self) :
+
+        self.Dico={}
+        self.DicoDejaLa={}
+        self.Entete = ''
 
 
 #----------------------------------------------------------------------------------------
 # ecriture
 #----------------------------------------------------------------------------------------
 
-   def writeDefault(self,fn) :
-       fileDico = fn[:fn.rfind(".")] + '.py'
-       f = open( str(fileDico), 'wb')
+    def writeDefault(self,fn) :
+        fileDico = fn[:fn.rfind(".")] + '.py'
+        f = open( str(fileDico), 'w')
 
-       f.write( self.Entete + "Dico =" + str(self.Dico) )
-       f.close()
+        f.write( "Dico =" + str(self.Dico) )
+        #f.write( self.Entete + "Dico =" + str(self.Dico) )
+        f.close()
 
 #----------------------------------------------------------------------------------------
-#  analyse de chaque noeud de l'arbre 
+#  analyse de chaque noeud de l'arbre
 #----------------------------------------------------------------------------------------
 
-   def generMCSIMP(self,obj) :
+    def generMCSIMP(self,obj) :
         """recuperation de l objet MCSIMP"""
 
         s=PythonGenerator.generMCSIMP(self,obj)
         if obj.isInformation() : return s
-        if not obj.isValid() :  return s 
+        if not obj.isValid() :  return s
 
-        liste=obj.getGenealogiePrecise() 
+        liste=obj.getGenealogiePrecise()
 
         if obj.etape.nom=='MODIFICATION_CATALOGUE' : return s
         nom = obj.etape.nom
-        
-        if hasattr(obj.etape,'sdnom') and obj.etape.sdnom != None and obj.etape.sdnom != "" : 
-           nom = nom+ obj.etape.sdnom
+
+        if hasattr(obj.etape,'sdnom') and obj.etape.sdnom != None and obj.etape.sdnom != "" :
+            nom = nom+ obj.etape.sdnom
 
         if not(nom in self.Dico) : dicoCourant={}
         else : dicoCourant=self.Dico [nom]
 
         nomFeuille=liste[-1]
         if nomFeuille in dicoCourant or nomFeuille in self.DicoDejaLa:
-           if nomFeuille in self.DicoDejaLa:
-              nomTravail= nomFeuille +'_'+str(self.DicoDejaLa[nomFeuille])
-              self.DicoDejaLa[nomFeuille]=self.DicoDejaLa[nomFeuille]+1
-              nomFeuille=nomTravail
-           else :
-              self.DicoDejaLa[nomFeuille]=3
-              nom1=nomFeuille +'_1'
-              dicoCourant[nom1]= dicoCourant[nomFeuille]
-              del dicoCourant[nomFeuille]
-              nomFeuille=nomFeuille +'_2'
+            if nomFeuille in self.DicoDejaLa:
+                nomTravail= nomFeuille +'_'+str(self.DicoDejaLa[nomFeuille])
+                self.DicoDejaLa[nomFeuille]=self.DicoDejaLa[nomFeuille]+1
+                nomFeuille=nomTravail
+            else :
+                self.DicoDejaLa[nomFeuille]=3
+                nom1=nomFeuille +'_1'
+                dicoCourant[nom1]= dicoCourant[nomFeuille]
+                del dicoCourant[nomFeuille]
+                nomFeuille=nomFeuille +'_2'
 
 
         if hasattr(obj.valeur,'nom'): dicoCourant[nomFeuille]=obj.valeur.nom
-        else : 
-           if type(obj.valeur)  in (list,tuple):
-              try :
+        else :
+            if type(obj.valeur)  in (list,tuple):
+                try :
 #PNPNPN a remplacer par plus propre
-                 if obj.definition.validators.typeDesTuples[0] !='R' :
-                    val=[]
-                    elt=[]
-                    for tupleElt in obj.valeur :
-                        elt=(str(tupleElt[0]),tupleElt[1])
-                        val.append(elt)
-                    dicoCourant[nomFeuille]=val
-                 else :
-                    dicoCourant[nomFeuille]=obj.valeur
-              except :
-                 dicoCourant[nomFeuille]=obj.valeurFormatee
-           #else :dicoCourant[nomFeuille]=obj.valeurFormatee
-           else :
-              dicoCourant[nomFeuille]=obj.valeurFormatee
-              #print nomFeuille, obj.valeurFormatee
+                    if obj.definition.validators.typeDesTuples[0] !='R' :
+                        val=[]
+                        elt=[]
+                        for tupleElt in obj.valeur :
+                            elt=(str(tupleElt[0]),tupleElt[1])
+                            val.append(elt)
+                        dicoCourant[nomFeuille]=val
+                    else :
+                        dicoCourant[nomFeuille]=obj.valeur
+                except :
+                    dicoCourant[nomFeuille]=obj.valeurFormatee
+            #else :dicoCourant[nomFeuille]=obj.valeurFormatee
+            else :
+                dicoCourant[nomFeuille]=obj.valeurFormatee
+                #print nomFeuille, obj.valeurFormatee
         self.Dico[nom]=dicoCourant
 
         return s
-
-  
index 43b4bb716237f1f7a066c06013d2a58b8b56d502..32cee7be66def2773834b97d2b429bc10d8d6f0f 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 """
-   Ce module contient le plugin generateur de fichier au format 
+   Ce module contient le plugin generateur de fichier au format
    CARMEL3D pour EFICAS.
 
 """
 from __future__ import print_function
 from __future__ import absolute_import
 try :
-   from builtins import str
+    from builtins import str
 except : pass
 
 import traceback
@@ -35,77 +35,77 @@ import Accas
 from .generator_python import PythonGenerator
 
 def entryPoint():
-   """
-      Retourne les informations necessaires pour le chargeur de plugins
+    """
+       Retourne les informations necessaires pour le chargeur de plugins
 
-      Ces informations sont retournees dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'MAP',
-        # La factory pour creer une instance du plugin
-          'factory' : MapGenerator,
-          }
+       Ces informations sont retournees dans un dictionnaire
+    """
+    return {
+         # Le nom du plugin
+           'name' : 'MAP',
+         # La factory pour creer une instance du plugin
+           'factory' : MapGenerator,
+           }
 
 
 class MapGenerator(PythonGenerator):
-   """
-      Ce generateur parcourt un objet de type JDC et produit
-      un texte au format eficas et 
-      un texte au format py 
-
-   """
-
-   def gener(self,obj,format='brut',config=None,appli=None):
-      self.initDico()
-      self.text=PythonGenerator.gener(self,obj,format)
-      if obj.isValid() :self.genereExeMap()
-      return self.text
-
-
-   def genereExeMap(self) :
-      '''
-      Prepare le contenu du fichier de parametres python
-      peut ensuite etre obtenu au moyen de la fonction getTubePy().
-      '''
-      nomSpec="spec_"+self.schema
-      self.texteEXE="from map.spec import %s;\n"%nomSpec
-      self.texteEXE+="node=%s.new();\n"%nomSpec
-      self.texteEXE+="node.getInputData();\n"
-      self.texteEXE+="node.setInputData(%s);\n"%self.dictValeur
-      self.texteEXE+="node.execute();\n"
-      self.texteEXE+="res=node.getOutputData();\n"
-      
-
-   def initDico(self) :
-      if not hasattr(self,'schema') : self.schema=""
-      self.dictParam={}
-      self.dictValeur={}
-  
-   def writeDefault(self, fn):
-      fileEXE = fn[:fn.rfind(".")] + '.py'
-      f = open( str(fileEXE), 'wb')
-      f.write( self.texteEXE )
-      f.close()
-
-   def generMCSIMP(self,obj) :
-      """
-      Convertit un objet MCSIMP en texte python
-      Remplit le dictionnaire des MCSIMP 
-      """
-      
-      if obj.getGenealogie()[0][-6:-1]=="_PARA":
-         self.dictParam[obj.nom]=obj.valeur
-      else :
-         self.dictValeur[obj.nom]=obj.valeur
-      s=PythonGenerator.generMCSIMP(self,obj)
-      return s
-  
-  
-   def generRUN(self,obj,schema):
-       if not(obj.isValid()) :
-          print ("TODO TODO TODO")
-       self.texteEXE=""
-       self.schema=schema
-       textComm=self.gener(obj)
-       return self.texteEXE
+    """
+       Ce generateur parcourt un objet de type JDC et produit
+       un texte au format eficas et
+       un texte au format py
+
+    """
+
+    def gener(self,obj,format='brut',config=None,appliEficas=None):
+        self.initDico()
+        self.text=PythonGenerator.gener(self,obj,format)
+        if obj.isValid() :self.genereExeMap()
+        return self.text
+
+
+    def genereExeMap(self) :
+        '''
+        Prepare le contenu du fichier de parametres python
+        peut ensuite etre obtenu au moyen de la fonction getTubePy().
+        '''
+        nomSpec="spec_"+self.schema
+        self.texteEXE="from map.spec import %s;\n"%nomSpec
+        self.texteEXE+="node=%s.new();\n"%nomSpec
+        self.texteEXE+="node.getInputData();\n"
+        self.texteEXE+="node.setInputData(%s);\n"%self.dictValeur
+        self.texteEXE+="node.execute();\n"
+        self.texteEXE+="res=node.getOutputData();\n"
+
+
+    def initDico(self) :
+        if not hasattr(self,'schema') : self.schema=""
+        self.dictParam={}
+        self.dictValeur={}
+
+    def writeDefault(self, fn):
+        fileEXE = fn[:fn.rfind(".")] + '.py'
+        f = open( str(fileEXE), 'wb')
+        f.write( self.texteEXE )
+        f.close()
+
+    def generMCSIMP(self,obj) :
+        """
+        Convertit un objet MCSIMP en texte python
+        Remplit le dictionnaire des MCSIMP
+        """
+
+        if obj.getGenealogie()[0][-6:-1]=="_PARA":
+            self.dictParam[obj.nom]=obj.valeur
+        else :
+            self.dictValeur[obj.nom]=obj.valeur
+        s=PythonGenerator.generMCSIMP(self,obj)
+        return s
+
+
+    def generRUN(self,obj,schema):
+        if not(obj.isValid()) :
+            print ("TODO TODO TODO")
+        self.texteEXE=""
+        self.schema=schema
+        textComm=self.gener(obj)
+        return self.texteEXE
diff --git a/generator/generator_mapVP.py b/generator/generator_mapVP.py
new file mode 100644 (file)
index 0000000..a5b8ef4
--- /dev/null
@@ -0,0 +1,237 @@
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2021   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+"""
+   Ce module contient le plugin generateur de fichier au format
+   CARMEL3D pour EFICAS.
+
+"""
+from __future__ import print_function
+from __future__ import absolute_import
+try :
+    from builtins import str
+except : pass
+
+import traceback
+import types,re,os
+import Accas
+
+from .generator_python import PythonGenerator
+
+listeCalParName = ('Time' , 'Temperature', 'DoseRate', 'Thickness')        #'calculation_parameter_names'
+
+
+def entryPoint():
+    """
+       Retourne les informations necessaires pour le chargeur de plugins
+
+       Ces informations sont retournees dans un dictionnaire
+    """
+    return {
+         # Le nom du plugin
+           'name' : 'MAPVp',
+         # La factory pour creer une instance du plugin
+           'factory' : MapGenerator,
+           }
+
+
+class MapGenerator(PythonGenerator):
+    """
+       Ce generateur parcourt un objet de type JDC et produit
+       un texte au format eficas et
+       un texte au format py
+
+    """
+
+    def gener(self,obj,format='brut',config=None,appliEficas=None):
+        self.appliEficas=appliEficas
+        self.cata=self.appliEficas.readercata.cata
+        self.initDico()
+        self.text=PythonGenerator.gener(self,obj,format)
+        if obj.isValid() :self.genereTexte(obj)
+        return self.text
+
+    def initDico(self) :
+        self.texteInput = ""
+        self.dictParam={}
+        self.dictValeur={}
+        self.listeEquations=[]
+        self.typeEtude = ""
+
+
+    def genereTexte(self,obj) :
+        print ('genereTexte', self.typeEtude)
+        if self.typeEtude == "Calculation" : self.genereCalculation()
+
+
+    def generPROC_ETAPE(self,obj):
+        s=PythonGenerator.generPROC_ETAPE(self,obj)
+        if obj.nom == "Calculation_for_Mechanistic" : print ('hjkhjkh');self.typeEtude="Calculation"
+        return s
+
+    def genereCalculation(self) :
+        '''
+        Prepare le contenu du fichier de parametres python
+        '''
+        self.texteInput = ""
+        self.texteInput += self.genereCsv()
+        self.texteInput += self.genereCalculationParams()
+        self.texteInput += self.txtNomCst
+        self.texteInput += self.txtVal
+        self.texteInput += self.txtValAct
+        self.texteInput += self.txtNomCstNA
+        self.texteInput += self.txtValNA
+        self.texteInput += self.txtInitName
+        self.texteInput += self.txtInitVal
+        self.texteInput += self.genereEquations()
+        print (self.texteInput)
+
+    def writeDefault(self, fn):
+        # normalement c_solver_polymer_kinetics_myStudy.input ou myStudy est le nom de l etude
+        fileInput = fn[:fn.rfind(".")] + '.input'
+        f = open( str(fileInput), 'wb')
+        f.write( self.texteInput )
+        f.close()
+
+
+    def genereCalculationParams(self) :
+        txtNom  = "calculation_parameter_names = [ "
+        txtVal = "calculation_parameters = [ "
+        for param in ('Time' , 'Temperature', 'DoseRate', 'Thickness')  :
+            if param in self.dictValeur.keys() :
+                txtNom  += "'"+param +  "', "
+                txtVal += str(self.dictValeur[param]) + ", "
+        # on enleve les dernieres , et on ferme
+        txtNom = txtNom[0:-2]
+        txtNom += "]\n"
+        txtVal = txtVal[0:-2]
+        txtVal += "]\n"
+        txt = txtNom + txtVal
+        return txt
+
+    def genereEquations(self) :
+        txt="equation =["
+        index=0
+        TechnicalUse = self.dictValeur['TechnicalUse']
+        ModelName    = self.dictValeur['ModelName']
+        for param in  self.listInitialParameters:
+            print ('*******************************************')
+            print (' je  traite ', param , 'index : ', index)
+            trouveParam=False
+
+            if index != 0 : txtParam = 'Dy[j*5 + '+str(index)+ '] = '
+            else :          txtParam = 'Dy[j*5] = '
+
+            for equation in  self.listeEquations :
+                if param in (self.cata.dicoEquations[TechnicalUse][ModelName]['equa_diff'][equation].keys()):
+                    print ('____________ trouve : ', param , 'in ', equation, ' ',  self.cata.dicoEquations[TechnicalUse][ModelName]['equa_diff'][equation][param])
+                    trouveParam = True
+                    if self.cata.dicoEquations[TechnicalUse][ModelName]['equa_diff'][equation][param][0] == '-' :
+                        txtParam += ' ' + self.cata.dicoEquations[TechnicalUse][ModelName]['equa_diff'][equation][param]
+                    else :
+                        if index != 0 :
+                            txtParam += ' + ' + self.cata.dicoEquations[TechnicalUse][ModelName]['equa_diff'][equation][param]
+                        else :
+                            txtParam +=  self.cata.dicoEquations[TechnicalUse][ModelName]['equa_diff'][equation][param]
+                    print ('         txtParam   intermediaire ', txtParam)
+
+            if trouveParam :
+                txtParam = txtParam + ", "
+                txt += txtParam
+                index = index+1
+            print (txtParam)
+            print ('fin param', param, 'trouve ', trouveParam, '___________________________')
+            print ('*************************************************')
+            print (' ')
+        print ('_________________fin for')
+        txt=txt[0:-3]
+        txt+="]\n"
+        return txt
+
+    def genereCsv(self) :
+        txt =  'study_name = ' +self.dictValeur['SimulationName'] +  "\n"
+        txt += 'csv_output_file_name = ' + self.dictValeur['OutPutFolder'] + '/c_solver_stiff_ode_1d_' + self.dictValeur['SimulationName']+ '.csv\n'
+        return txt
+
+
+    def generMCList(self,obj):
+        s=PythonGenerator.generMCList(self,obj)
+        if obj.nom == 'ConstantesArrhenius' :
+            self.txtNomCst  = "Arrhenius_Name = [ "
+            self.txtVal     = "Arrhenius_A = [ "
+            self.txtValAct  = "Arrhenius_Ea = [ "
+            for objFils in obj.data:
+                for mc in objFils.mcListe :
+                    self.txtNomCst +=  "'" + mc.nom + "', "
+                    self.txtVal    +=  str(mc.valeur[0]) + ", "
+                    self.txtValAct +=  str(mc.valeur[1]) + ", "
+            self.txtNomCst = self.txtNomCst[0:-2]
+            self.txtVal    = self.txtVal[0:-2]
+            self.txtValAct = self.txtValAct [0:-2]
+            self.txtNomCst += ']\n'
+            self.txtVal    += ']\n'
+            self.txtValAct += ']\n'
+
+        if obj.nom == 'ConstantesNonArrhenius' :
+            self.txtNomCstNA  = "non_Arrhenius_coefs_names = [ "
+            self.txtValNA     = "non_Arrhenius_coefs = [ "
+            for objFils in obj.data:
+                for mc in objFils.mcListe :
+                    self.txtNomCstNA +=  "'" + mc.nom + "', "
+                    self.txtValNA    +=  str(mc.valeur) + ", "
+            self.txtNomCstNA  = self.txtNomCstNA[0:-2]
+            self.txtValNA     = self.txtValNA[0:-2]
+            self.txtNomCstNA += ']\n'
+            self.txtValNA    += ']\n'
+
+        if obj.nom == 'InitialParameters' :
+            self.listInitialParameters =[]
+            self.txtInitName  = "initial_Value_names = [ "
+            self.txtInitVal   = "initial_Values = [ "
+            for objFils in obj.data:
+                for mc in objFils.mcListe :
+                    self.txtInitName +=  "'" + mc.nom + "', "
+                    self.txtInitVal  +=  str(mc.valeur) + ", "
+                    self.listInitialParameters.append(mc.nom)
+            self.txtInitName  = self.txtInitName[0:-2]
+            self.txtInitVal   = self.txtInitVal[0:-2]
+            self.txtInitName += ']\n'
+            self.txtInitVal  += ']\n'
+
+        if obj.nom in( 'initiation','propagation','termination','stabilization') :
+            for o in obj :
+                for mc  in o.mcListe :
+                    nom=mc.nom.replace (' ','').replace ('+','_').replace ('-','_').replace ('>','_').replace('(','').replace(')','').replace('*','').replace('[','').replace(']','')
+                    nom=obj.nom+'_'+nom
+                    self.listeEquations.append(nom )
+        return s
+
+    def generMCSIMP(self,obj) :
+        """
+        Convertit un objet MCSIMP en texte python
+        Remplit le dictionnaire des MCSIMP
+        """
+        s=PythonGenerator.generMCSIMP(self,obj)
+        if obj.nom=='Consigne' : return s
+
+        if obj.getGenealogie()[0][-6:-1]=="_PARA":
+            self.dictParam[obj.nom]=obj.valeur
+        else :
+            self.dictValeur[obj.nom]=obj.valeur
+        return s
index d309d52a04d2ff936b16f13035ff6d32605f043e..bcb3d3409d0989b13fba0ddd26d524e6adbce27e 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -23,8 +23,8 @@
 # Modules Python
 from __future__ import absolute_import
 try :
-   from builtins import str
-   from builtins import object
+    from builtins import str
+    from builtins import object
 except : pass
 
 import os, sys,  types, re
@@ -32,16 +32,16 @@ from Extensions.i18n import tr
 
 class ModificationGenerator(object):
     def generTexteModif(self,obj):
-      texteModification=""
-      for t in  list(obj.editor.dicoNouveauxMC.keys()) :
-          # 'ajoutDefinitionMC',etape,listeAvant,nomDuMC,typ,args
-          fonction,Etape,Genea,nomSIMP,typeSIMP,arguments = obj.editor.dicoNouveauxMC[t]
-          texteModification += "MODIFICATION_CATALOGUE(Fonction  = '" + str(fonction)+ "',\n"
-          texteModification += "                       Etape     = '" + str(Etape)   + "',\n"
-          texteModification += "                       Genea     = "  + str(Genea)   + ",\n" 
-          texteModification += "                       NomSIMP   = '" + str(nomSIMP) + "',\n"
-          texteModification += "                       TypeSIMP  = '" + str(typeSIMP)+ "',\n"
-          texteModification += "                       PhraseArguments = " +'"' + str(arguments)+ '"'+ ",);\n"
-          
+        texteModification=""
+        for t in  list(obj.editor.dicoNouveauxMC.keys()) :
+            # 'ajoutDefinitionMC',etape,listeAvant,nomDuMC,typ,args
+            fonction,Etape,Genea,nomSIMP,typeSIMP,arguments = obj.editor.dicoNouveauxMC[t]
+            texteModification += "MODIFICATION_CATALOGUE(Fonction  = '" + str(fonction)+ "',\n"
+            texteModification += "                       Etape     = '" + str(Etape)   + "',\n"
+            texteModification += "                       Genea     = "  + str(Genea)   + ",\n"
+            texteModification += "                       NomSIMP   = '" + str(nomSIMP) + "',\n"
+            texteModification += "                       TypeSIMP  = '" + str(typeSIMP)+ "',\n"
+            texteModification += "                       PhraseArguments = " +'"' + str(arguments)+ '"'+ ",);\n"
 
-      return texteModification
+
+        return texteModification
index 479c472a91678836e63ffed1056b62ff33432610..de0032511cc0565de93d16da40baafe851c5c304 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 """
-    Ce module contient le plugin generateur de fichier au format 
+    Ce module contient le plugin generateur de fichier au format
     python pour EFICAS.
 
 """
 from __future__ import absolute_import
 try :
-   from builtins import str
-   from builtins import object
-   from builtins import range
+    from builtins import str
+    from builtins import object
+    from builtins import range
 except : pass
 
 import traceback
@@ -37,7 +37,7 @@ from Noyau.N_utils import repr_float
 import Accas
 import Extensions
 from Extensions.parametre import ITEM_PARAMETRE
-from .Formatage import Formatage 
+from .Formatage import Formatage
 from .Formatage import FormatageLigne
 from Extensions.param2 import Formula
 from Extensions.eficas_exception import EficasException
@@ -45,296 +45,306 @@ from Extensions.i18n import tr
 
 
 def entryPoint():
-   """
-       Retourne les informations necessaires pour le chargeur de plugins
+    """
+        Retourne les informations necessaires pour le chargeur de plugins
 
-       Ces informations sont retournees dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'python',
-        # La factory pour creer une instance du plugin
-          'factory' : PythonGenerator,
-          }
+        Ces informations sont retournees dans un dictionnaire
+    """
+    return {
+         # Le nom du plugin
+           'name' : 'python',
+         # La factory pour creer une instance du plugin
+           'factory' : PythonGenerator,
+           }
 
 
 class PythonGenerator(object):
-   """
-       Ce generateur parcourt un objet de type JDC et produit
-       un fichier au format python 
-
-       L'acquisition et le parcours sont realises par la methode
-       generator.gener(objet_jdc,format)
-
-       L'ecriture du fichier au format ini par appel de la methode
-       generator.writefile(nom_fichier)
-
-       Ses caracteristiques principales sont exposees dans des attributs 
-       de classe :
-         - extensions : qui donne une liste d'extensions de fichier preconisees
-
-   """
-   # Les extensions de fichier preconisees
-   extensions=('.comm',)
-
-   def __init__(self,cr=None):
-      # Si l'objet compte-rendu n'est pas fourni, on utilise le compte-rendu standard
-      if cr :
-         self.cr=cr
-      else:
-         self.cr=N_CR.CR(debut='CR generateur format python pour python',
-                         fin='fin CR format python pour python')
-      # Le texte au format python est stocke dans l'attribut text
-      self.text=''
-      self.appli=None
-
-   def writefile(self,filename):
-      fp=open(filename,'w')
-      fp.write(self.text)
-      fp.close()
-
-   def gener(self,obj,format='brut',config=None,appli=None):
-      """
-          Retourne une representation du JDC obj sous une
-          forme qui est parametree par format.
-          Si format vaut 'brut', retourne une liste de listes de ...
-          Si format vaut 'standard', retourne un texte obtenu par concatenation de la liste
-          Si format vaut 'beautifie', retourne le meme texte beautifie
-      """
-      import logging
-      if obj == None : 
-         print ('appel a gener avec None')
-         return
-      self.appli=obj.getJdcRoot().appli
-      #self.appli=obj.appli
-      liste= self.generator(obj)
-      #format='standard'
-      if format == 'brut':
-         self.text=liste
-      elif format == 'standard':
-         self.text=''.join(liste)
-      elif format == 'beautifie':
-         jdc_formate = Formatage(liste,mode='.py')
-         #import cProfile, pstats, StringIO
-         #pr = cProfile.Profile()
-         #pr.enable()
-         self.text=jdc_formate.formateJdc()
-         #pr.disable()
-         #s = StringIO.StringIO()
-         #sortby = 'cumulative'
-         #ps = pstats.Stats(pr, stream=s).sort_stats(sortby)
-         #ps.print_stats()
-         #print (s.getValue())
-
-      elif format == 'Ligne':
-         jdc_formate = FormatageLigne(liste,mode='.py')
-         self.text=jdc_formate.formateJdc()
-      else:
-         raise EficasException(tr("Format non implemente ") +format)
-      return self.text
-
-   def generator(self,obj):
-      """
-         Cette methode joue un role d'aiguillage en fonction du type de obj
-         On pourrait utiliser les methodes accept et visitxxx a la 
-         place (depend des gouts !!!)
-      """
-      # ATTENTION a l'ordre des tests : il peut avoir de l'importance (heritage)
-      if isinstance(obj,Accas.PROC_ETAPE):
-         return self.generPROC_ETAPE(obj)
-      # Attention doit etre place avant MACRO (raison : heritage)
-      elif isinstance(obj,Accas.FORM_ETAPE):
-         return self.generFORM_ETAPE(obj)
-      elif isinstance(obj,Accas.MACRO_ETAPE):
-         return self.generMACRO_ETAPE(obj)
-      elif isinstance(obj,Accas.ETAPE):
-         return self.generETAPE(obj)
-      elif isinstance(obj,Accas.MCFACT):
-         return self.generMCFACT(obj)
-      elif isinstance(obj,Accas.MCList):
-         return self.generMCList(obj)
-      elif isinstance(obj,Accas.MCBLOC):
-         return self.generMCBLOC(obj)
-      elif isinstance(obj,Accas.MCSIMP):
-         return self.generMCSIMP(obj)
-      elif isinstance(obj,Accas.ASSD):
-         return self.generASSD(obj)
-      elif isinstance(obj,Accas.ETAPE_NIVEAU):
-         return self.generETAPE_NIVEAU(obj)
-      elif isinstance(obj,Accas.COMMENTAIRE):
-         return self.generCOMMENTAIRE(obj)
-      # Attention doit etre place avant PARAMETRE (raison : heritage)
-      elif isinstance(obj,Accas.PARAMETRE_EVAL):
-         return self.generPARAMETRE_EVAL(obj)
-      elif isinstance(obj,Accas.PARAMETRE):
-         return self.generPARAMETRE(obj)
-      elif isinstance(obj,Accas.EVAL):
-         return self.generEVAL(obj)
-      elif isinstance(obj,Accas.COMMANDE_COMM):
-         return self.generCOMMANDE_COMM(obj)
-      elif isinstance(obj,Accas.JDC):
-         return self.generJDC(obj)
-      elif isinstance(obj,Accas.MCNUPLET):
-         return self.generMCNUPLET(obj)
-      elif isinstance(obj,ITEM_PARAMETRE):
-         return self.generITEM_PARAMETRE(obj)
-      elif isinstance(obj,Formula):
-         return self.generFormula(obj)
-      else:
-         raise EficasException(tr("Type d'objet non prevu") +obj)
-
-   def generJDC(self,obj):
-      """
-         Cette methode convertit un objet JDC en une liste de chaines de
-         caracteres a la syntaxe python
-      """
-      l=[]
-      if obj.definition.l_niveaux == ():
-         # Il n'y a pas de niveaux
-         for etape in obj.etapes:
-            l.append(self.generator(etape))
-      else:
-         # Il y a des niveaux
-         for etape_niveau in obj.etapes_niveaux:
-            l.extend(self.generator(etape_niveau))
-      if l != [] :
-         # Si au moins une etape, on ajoute le retour chariot sur la derniere etape
-         if type(l[-1])==list:
-            l[-1][-1] = l[-1][-1]+'\n'
-         elif type(l[-1])==bytes or  type(l[-1])==str:
-            l[-1] = l[-1]+'\n'
-      return l
-
-   def generMCNUPLET(self,obj):
-      """ 
-          Methode generant une representation de self permettant son ecriture
-          dans le format python
-      """
-      l=[]
-      l.append('(')
-      for v in obj.mcListe:
-        text = re.sub(".*=","",self.generator(v))
-        l.append(text)
-      l.append('),')
-      return l
-
-   def generCOMMANDE_COMM(self,obj):
-      """
-         Cette methode convertit un COMMANDE_COMM
-         en une liste de chaines de caracteres a la syntaxe python
-      """
-      l_lignes = obj.valeur.split('\n')
-      txt=''
-      for ligne in l_lignes:
-          txt = txt + '##'+ligne+'\n'
-      return txt
-
-   def generEVAL(self,obj):
-      """
-         Cette methode convertit un EVAL
-         en une liste de chaines de caracteres a la syntaxe python
-      """
-      return 'EVAL("""'+ obj.valeur +'""")'
-
-   def generCOMMENTAIRE(self,obj):
-      """
-         Cette methode convertit un COMMENTAIRE
-         en une liste de chaines de caracteres a la syntaxe python
-      """
-      # modification pour repondre a la demande de C. Durand, d'eviter
-      # l'ajout systematique d'un diese, a la suite du commentaire
-      # Dans la chaine de caracteres obj.valeur, on supprime le dernier
-      # saut de ligne
-      sans_saut = re.sub("\n$","",obj.valeur)
-      l_lignes = sans_saut.split('\n')
-      txt=''
-      i=1
-      for ligne in l_lignes:
-        txt = txt + '#'+ligne+'\n'
-
-      # suppression du dernier saut de ligne
-      #txt = re.sub("\n$","",txt)
-      # on ajoute un saut de ligne avant
-      pattern=re.compile(" ?\#")
-      m=pattern.match(txt)
-      if m:
-         txt="\n"+txt
-      return txt
-
-   def generPARAMETRE_EVAL(self,obj):
-      """
-         Cette methode convertit un PARAMETRE_EVAL
-         en une liste de chaines de caracteres a la syntaxe python
-      """
-      if obj.valeur == None:
-         return obj.nom + ' = None ;\n'
-      else:
-         return obj.nom + ' = '+ self.generator(obj.valeur) +';\n'
-
-   def generITEM_PARAMETRE(self,obj):
-       return repr(obj) 
-
-   def generFormula(self,obj):
-       #return repr(obj) 
-       return str(obj) 
-
-   def generPARAMETRE(self,obj):
-      """
-         Cette methode convertit un PARAMETRE
-         en une liste de chaines de caracteres a la syntaxe python
-      """
-      return repr(obj) + ";\n"
-
-   def generETAPE_NIVEAU(self,obj):
-      """
-         Cette methode convertit une etape niveau
-         en une liste de chaines de caracteres a la syntaxe python
-      """
-      l=[]
-      if obj.etapes_niveaux == []:
-        for etape in obj.etapes:
-          l.append(self.generator(etape))
-      else:
-        for etape_niveau in obj.etapes_niveaux:
-          l.extend(self.generator(etape_niveau))
-      return l
-
-   def generETAPE(self,obj):
-      """
-         Cette methode convertit une etape
-         en une liste de chaines de caracteres a la syntaxe python
-      """
-      try:
-        sdname= self.generator(obj.sd)
-        if  sdname.find('SD_') != -1: sdname='sansnom'
-      except:
-        sdname='sansnom'
-      l=[]
-      label=sdname + '='+obj.definition.nom+'('
-      l.append(label)
-      if obj.reuse != None :
-        str = 'reuse ='+ self.generator(obj.reuse) + ','
-        l.append(str)
-      for v in obj.mcListe:
-        if isinstance(v,Accas.MCBLOC) :
-          liste=self.generator(v)
-          for mocle in liste :
-            l.append(mocle)
-        elif isinstance(v,Accas.MCSIMP) :
-          text=self.generator(v)
-          l.append(v.nom+'='+text)
+    """
+        Ce generateur parcourt un objet de type JDC et produit
+        un fichier au format python
+
+        L'acquisition et le parcours sont realises par la methode
+        generator.gener(objet_jdc,format)
+
+        L'ecriture du fichier au format ini par appel de la methode
+        generator.writeFile(nom_fichier)
+
+        Ses caracteristiques principales sont exposees dans des attributs
+        de classe :
+          - extensions : qui donne une liste d'extensions de fichier preconisees
+
+    """
+    # Les extensions de fichier preconisees
+    extensions=('.comm',)
+
+    def __init__(self,cr=None):
+        # Si l'objet compte-rendu n'est pas fourni, on utilise le compte-rendu standard
+        if cr :
+            self.cr=cr
         else:
-          # MCFACT ou MCList
-          liste=self.generator(v)
-          liste[0]=v.nom+'='+liste[0]
-          l.append(liste)
-      if len(l) == 1:
-        l[0]=label+');'
-      else :
-        l.append(');')
-      return l
+            self.cr=N_CR.CR(debut='CR generateur format python pour python',
+                            fin='fin CR format python pour python')
+        # Le texte au format python est stocke dans l'attribut text
+        self.text=''
+        self.appliEficas=None
+
+    def writeFile(self,filename):
+        fp=open(filename,'w')
+        fp.write(self.text)
+        fp.close()
+
+    def gener(self,obj,format='brut',config=None,appliEficas=None):
+        """
+            Retourne une representation du JDC obj sous une
+            forme qui est parametree par format.
+            Si format vaut 'brut', retourne une liste de listes de ...
+            Si format vaut 'standard', retourne un texte obtenu par concatenation de la liste
+            Si format vaut 'beautifie', retourne le meme texte beautifie
+        """
+        import logging
+        if obj == None :
+            print ('appel a gener avec None')
+            return
+        self.appliEficas=appliEficas
+        liste= self.generator(obj)
+        #format='standard'
+        if format == 'brut':
+            self.text=liste
+        elif format == 'standard':
+            self.text=''.join(liste)
+        elif format == 'beautifie':
+            jdc_formate = Formatage(liste,mode='.py')
+            #import cProfile, pstats, StringIO
+            #pr = cProfile.Profile()
+            #pr.enable()
+            self.text=jdc_formate.formateJdc()
+            #pr.disable()
+            #s = StringIO.StringIO()
+            #sortby = 'cumulative'
+            #ps = pstats.Stats(pr, stream=s).sort_stats(sortby)
+            #ps.print_stats()
+            #print (s.getValue())
+
+        elif format == 'Ligne':
+            jdc_formate = FormatageLigne(liste,mode='.py')
+            self.text=jdc_formate.formateJdc()
+        else:
+            raise EficasException(tr("Format non implemente ") +format)
+        return self.text
+
+    def generator(self,obj):
+        """
+           Cette methode joue un role d'aiguillage en fonction du type de obj
+           On pourrait utiliser les methodes accept et visitxxx a la
+           place (depend des gouts !!!)
+        """
+        # ATTENTION a l'ordre des tests : il peut avoir de l'importance (heritage)
+        if isinstance(obj,Accas.PROC_ETAPE):
+            return self.generPROC_ETAPE(obj)
+        # Attention doit etre place avant MACRO (raison : heritage)
+        elif isinstance(obj,Accas.FORM_ETAPE):
+            return self.generFORM_ETAPE(obj)
+        elif isinstance(obj,Accas.MACRO_ETAPE):
+            return self.generMACRO_ETAPE(obj)
+        elif isinstance(obj,Accas.ETAPE):
+            return self.generETAPE(obj)
+        elif isinstance(obj,Accas.MCFACT):
+            return self.generMCFACT(obj)
+        elif isinstance(obj,Accas.MCList):
+            return self.generMCList(obj)
+        elif isinstance(obj,Accas.MCBLOC):
+            return self.generMCBLOC(obj)
+        elif isinstance(obj,Accas.MCSIMP):
+            return self.generMCSIMP(obj)
+        elif isinstance(obj,Accas.ASSD):
+            return self.generASSD(obj)
+        elif isinstance(obj,Accas.ETAPE_NIVEAU):
+            return self.generETAPE_NIVEAU(obj)
+        elif isinstance(obj,Accas.COMMENTAIRE):
+            return self.generCOMMENTAIRE(obj)
+        # Attention doit etre place avant PARAMETRE (raison : heritage)
+        elif isinstance(obj,Accas.PARAMETRE_EVAL):
+            return self.generPARAMETRE_EVAL(obj)
+        elif isinstance(obj,Accas.PARAMETRE):
+            return self.generPARAMETRE(obj)
+        elif isinstance(obj,Accas.EVAL):
+            return self.generEVAL(obj)
+        elif isinstance(obj,Accas.COMMANDE_COMM):
+            return self.generCOMMANDE_COMM(obj)
+        elif isinstance(obj,Accas.JDC):
+            return self.generJDC(obj)
+        elif isinstance(obj,Accas.MCNUPLET):
+            return self.generMCNUPLET(obj)
+        elif isinstance(obj,ITEM_PARAMETRE):
+            return self.generITEM_PARAMETRE(obj)
+        elif isinstance(obj,Formula):
+            return self.generFormula(obj)
+        else:
+            raise EficasException(tr("Type d'objet non prevu") +obj)
+
+    def generJDC(self,obj):
+        """
+           Cette methode convertit un objet JDC en une liste de chaines de
+           caracteres a la syntaxe python
+        """
+        l=[]
+
+        #print ('generJDC', obj.sdsDict)
+        for objRef in obj.sdsDict :
+            if (isinstance(obj.sdsDict[objRef],Accas.UserASSD)):
+                l.append(self.generUserASSD(obj.sdsDict[objRef]))
+        if obj.definition.l_niveaux == ():
+            # Il n'y a pas de niveaux
+            for etape in obj.etapes:
+                l.append(self.generator(etape))
+        else:
+            # Il y a des niveaux
+            for etape_niveau in obj.etapes_niveaux:
+                l.extend(self.generator(etape_niveau))
+        if l != [] :
+            # Si au moins une etape, on ajoute le retour chariot sur la derniere etape
+            if type(l[-1])==list:
+                l[-1][-1] = l[-1][-1]+'\n'
+            elif type(l[-1])==bytes or  type(l[-1])==str:
+                l[-1] = l[-1]+'\n'
+        return l
+
+    def generUserASSD(self,obj):
+        classeName =  obj.__class__.__name__
+        if obj.valeur == None :
+            texte = obj.nom + '=' + classeName + '()'
+            return texte
+
+    def generMCNUPLET(self,obj):
+        """
+            Methode generant une representation de self permettant son ecriture
+            dans le format python
+        """
+        l=[]
+        l.append('(')
+        for v in obj.mcListe:
+            text = re.sub(".*=","",self.generator(v))
+            l.append(text)
+        l.append('),')
+        return l
+
+    def generCOMMANDE_COMM(self,obj):
+        """
+           Cette methode convertit un COMMANDE_COMM
+           en une liste de chaines de caracteres a la syntaxe python
+        """
+        l_lignes = obj.valeur.split('\n')
+        txt=''
+        for ligne in l_lignes:
+            txt = txt + '##'+ligne+'\n'
+        return txt
+
+    def generEVAL(self,obj):
+        """
+           Cette methode convertit un EVAL
+           en une liste de chaines de caracteres a la syntaxe python
+        """
+        return 'EVAL("""'+ obj.valeur +'""")'
+
+    def generCOMMENTAIRE(self,obj):
+        """
+           Cette methode convertit un COMMENTAIRE
+           en une liste de chaines de caracteres a la syntaxe python
+        """
+        # modification pour repondre a la demande de C. Durand, d'eviter
+        # l'ajout systematique d'un diese, a la suite du commentaire
+        # Dans la chaine de caracteres obj.valeur, on supprime le dernier
+        # saut de ligne
+        sans_saut = re.sub("\n$","",obj.valeur)
+        l_lignes = sans_saut.split('\n')
+        txt=''
+        i=1
+        for ligne in l_lignes:
+            txt = txt + '#'+ligne+'\n'
+
+        # suppression du dernier saut de ligne
+        #txt = re.sub("\n$","",txt)
+        # on ajoute un saut de ligne avant
+        pattern=re.compile(" ?\#")
+        m=pattern.match(txt)
+        if m:
+            txt="\n"+txt
+        return txt
+
+    def generPARAMETRE_EVAL(self,obj):
+        """
+           Cette methode convertit un PARAMETRE_EVAL
+           en une liste de chaines de caracteres a la syntaxe python
+        """
+        if obj.valeur == None:
+            return obj.nom + ' = None ;\n'
+        else:
+            return obj.nom + ' = '+ self.generator(obj.valeur) +';\n'
+
+    def generITEM_PARAMETRE(self,obj):
+        return repr(obj)
+
+    def generFormula(self,obj):
+        #return repr(obj)
+        return str(obj)
+
+    def generPARAMETRE(self,obj):
+        """
+           Cette methode convertit un PARAMETRE
+           en une liste de chaines de caracteres a la syntaxe python
+        """
+        return repr(obj) + ";\n"
+
+    def generETAPE_NIVEAU(self,obj):
+        """
+           Cette methode convertit une etape niveau
+           en une liste de chaines de caracteres a la syntaxe python
+        """
+        l=[]
+        if obj.etapes_niveaux == []:
+            for etape in obj.etapes:
+                l.append(self.generator(etape))
+        else:
+            for etape_niveau in obj.etapes_niveaux:
+                l.extend(self.generator(etape_niveau))
+        return l
+
+    def generETAPE(self,obj):
+        """
+           Cette methode convertit une etape
+           en une liste de chaines de caracteres a la syntaxe python
+        """
+        try:
+            sdname= self.generator(obj.sd)
+            if  sdname.find('SD_') != -1: sdname='sansnom'
+        except:
+            sdname='sansnom'
+        l=[]
+        label=sdname + '='+obj.definition.nom+'('
+        l.append(label)
+        if obj.reuse != None :
+            str = 'reuse ='+ self.generator(obj.reuse) + ','
+            l.append(str)
+        for v in obj.mcListe:
+            if isinstance(v,Accas.MCBLOC) :
+                liste=self.generator(v)
+                for mocle in liste :
+                    l.append(mocle)
+            elif isinstance(v,Accas.MCSIMP) :
+                text=self.generator(v)
+                l.append(v.nom+'='+text)
+            else:
+                # MCFACT ou MCList
+                liste=self.generator(v)
+                liste[0]=v.nom+'='+liste[0]
+                l.append(liste)
+        if len(l) == 1:
+            l[0]=label+');'
+        else :
+            l.append(');')
+        return l
 
-   def generFORM_ETAPE(self,obj):
+    def generFORM_ETAPE(self,obj):
         """
             Methode particuliere pour les objets de type FORMULE
         """
@@ -348,266 +358,270 @@ class PythonGenerator(object):
         l.append(');')
         return l
 
-   def generMACRO_ETAPE(self,obj):
-      """
-         Cette methode convertit une macro-etape
-         en une liste de chaines de caracteres a la syntaxe python
-      """
-      try:
-        if obj.sd == None:
-          sdname=''
-        else:
-          sdname= self.generator(obj.sd)+'='
-        if  sdname.find('SD_') != -1: sdname=''
-      except:
-        sdname='sansnom='
-      l=[]
-      label = sdname + obj.definition.nom+'('
-      l.append(label)
-      if obj.reuse != None:
-         # XXX faut il la virgule ou pas ????
-         str = "reuse =" + self.generator(obj.reuse) + ','
-         l.append(str)
-      for v in obj.mcListe:
-        if isinstance(v,Accas.MCBLOC) :
-          liste=self.generator(v)
-          for mocle in liste :
-            l.append(mocle)
-        elif isinstance(v,Accas.MCSIMP) :
-          text=self.generator(v)
-          l.append(v.nom+'='+text)
-        else:
-          # MCFACT ou MCList
-          liste=self.generator(v)
-          liste[0]=v.nom+'='+liste[0]
-          l.append(liste)
-
-      if len(l) == 1:
-        l[0]=label+');'
-      else :
-        l.append(');')
-      return l
-
-   def generPROC_ETAPE(self,obj):
-      """
-         Cette methode convertit une PROC etape
-         en une liste de chaines de caracteres a la syntaxe python
-      """
-      l=[]
-      label=obj.definition.nom+'('
-      l.append(label)
-      for v in obj.mcListe:
-        if isinstance(v,Accas.MCBLOC) :
-          liste=self.generator(v)
-          for mocle in liste :
-            l.append(mocle)
-        elif isinstance(v,Accas.MCSIMP) :
-          text=self.generator(v)
-          if text==None : text= ""
-          l.append(v.nom+'='+text)
-        else:
-          # MCFACT ou MCList
-          liste=self.generator(v)
-          liste[0]=v.nom+'='+liste[0]
-          l.append(liste)
-
-      if len(l) == 1:
-        l[0]=label+');'
-      else :
-        l.append(');')
-      return l
-
-   def generASSD(self,obj):
-      """
-          Convertit un objet derive d'ASSD en une chaine de caracteres a la
-          syntaxe python
-      """
-      return obj.getName()
-
-   def generMCFACT(self,obj):
-      """
-          Convertit un objet MCFACT en une liste de chaines de caracteres a la
-          syntaxe python
-      """
-      l=[]
-      l.append('_F(')
-      for v in obj.mcListe:
-         if not isinstance(v,Accas.MCSIMP) and not isinstance (v,Accas.MCBLOC) :
-           # on est en presence d'une entite composee : on recupere une liste
-           liste=self.generator(v)
-           liste[0]=v.nom+'='+liste[0]
-           l.append(liste)
-         elif isinstance(v,Accas.MCBLOC):
-           liste=self.generator(v)
-           for arg in liste :
-             l.append(arg)
-         else:
-           # on est en presence d'un MCSIMP : on recupere une string
-           text =self.generator(v)
-           if text== None : text =""
-           if v.nom != "Consigne" :  l.append(v.nom+'='+text)
-      # il faut etre plus subtil dans l'ajout de la virgule en differenciant 
-      # le cas ou elle est obligatoire (si self a des freres cadets 
-      # dans self.parent) ou non
-      # (cas ou self est seul ou le benjamin de self.parent)
-      l.append('),')
-      return l
-
-   def generMCList(self,obj):
-      """
-          Convertit un objet MCList en une liste de chaines de caracteres a la
-          syntaxe python
-      """
-      if len(obj.data) > 1:
-         l=['(']
-         for mcfact in obj.data: l.append(self.generator(mcfact))
-         l.append('),')
-      else:
-         l= self.generator(obj.data[0])
-      return l
-
-   def generMCBLOC(self,obj):
-      """
-          Convertit un objet MCBLOC en une liste de chaines de caracteres a la
-          syntaxe python
-      """
-      l=[]
-      for v in obj.mcListe:
-        if isinstance(v,Accas.MCBLOC) :
-          liste=self.generator(v)
-          for mocle in liste :
-            l.append(mocle)
-        elif isinstance(v,Accas.MCFACT):
-          liste=self.generator(v)
-        elif isinstance(v,Accas.MCList):
-          liste=self.generator(v)
-          liste[0]=v.nom+'='+liste[0]
-          # PN  essai de correction bug identation
-          if (hasattr(v,'data')) :
-            if (isinstance(v.data[0],Accas.MCFACT) and (len(v.data) == 1)):
-               l.append(liste)
+    def generMACRO_ETAPE(self,obj):
+        """
+           Cette methode convertit une macro-etape
+           en une liste de chaines de caracteres a la syntaxe python
+        """
+        try:
+            if obj.sd == None:
+                sdname=''
+            else:
+                sdname= self.generator(obj.sd)+'='
+            if  sdname.find('SD_') != -1: sdname=''
+        except:
+            sdname='sansnom='
+        l=[]
+        label = sdname + obj.definition.nom+'('
+        l.append(label)
+        if obj.reuse != None:
+            # XXX faut il la virgule ou pas ????
+            str = "reuse =" + self.generator(obj.reuse) + ','
+            l.append(str)
+        for v in obj.mcListe:
+            if isinstance(v,Accas.MCBLOC) :
+                liste=self.generator(v)
+                for mocle in liste :
+                    l.append(mocle)
+            elif isinstance(v,Accas.MCSIMP) :
+                text=self.generator(v)
+                l.append(v.nom+'='+text)
             else:
-               for mocle in liste :
-                 l.append(mocle)
-          else :
-             for mocle in liste :
-               l.append(mocle)
+                # MCFACT ou MCList
+                liste=self.generator(v)
+                liste[0]=v.nom+'='+liste[0]
+                l.append(liste)
+
+        if len(l) == 1:
+            l[0]=label+');'
+        else :
+            l.append(');')
+        return l
+
+    def generPROC_ETAPE(self,obj):
+        """
+           Cette methode convertit une PROC etape
+           en une liste de chaines de caracteres a la syntaxe python
+        """
+        l=[]
+        label=obj.definition.nom+'('
+        l.append(label)
+        for v in obj.mcListe:
+            if isinstance(v,Accas.MCBLOC) :
+                liste=self.generator(v)
+                for mocle in liste :
+                    l.append(mocle)
+            elif isinstance(v,Accas.MCSIMP) :
+                text=self.generator(v)
+                if text==None : text= ""
+                l.append(v.nom+'='+text)
+            else:
+                # MCFACT ou MCList
+                liste=self.generator(v)
+                liste[0]=v.nom+'='+liste[0]
+                l.append(liste)
+
+        if len(l) == 1:
+            l[0]=label+');'
+        else :
+            l.append(');')
+        return l
+
+    def generASSD(self,obj):
+        """
+            Convertit un objet derive d'ASSD en une chaine de caracteres a la
+            syntaxe python
+        """
+        return obj.getName()
+
+
+    def generMCFACT(self,obj):
+        """
+            Convertit un objet MCFACT en une liste de chaines de caracteres a la
+            syntaxe python
+        """
+        l=[]
+        l.append('_F(')
+        for v in obj.mcListe:
+            if not isinstance(v,Accas.MCSIMP) and not isinstance (v,Accas.MCBLOC) :
+                # on est en presence d'une entite composee : on recupere une liste
+                liste=self.generator(v)
+                liste[0]=v.nom+'='+liste[0]
+                l.append(liste)
+            elif isinstance(v,Accas.MCBLOC):
+                liste=self.generator(v)
+                for arg in liste :
+                    l.append(arg)
+            else:
+                # on est en presence d'un MCSIMP : on recupere une string
+                text =self.generator(v)
+                if text== None : text =""
+                if v.nom != "Consigne" :  l.append(v.nom+'='+text)
+        # il faut etre plus subtil dans l'ajout de la virgule en differenciant
+        # le cas ou elle est obligatoire (si self a des freres cadets
+        # dans self.parent) ou non
+        # (cas ou self est seul ou le benjamin de self.parent)
+        l.append('),')
+        return l
+
+    def generMCList(self,obj):
+        """
+            Convertit un objet MCList en une liste de chaines de caracteres a la
+            syntaxe python
+        """
+        if len(obj.data) > 1:
+            l=['(']
+            for mcfact in obj.data: l.append(self.generator(mcfact))
+            l.append('),')
         else:
-          data=self.generator(v)
-          if data==None : data= ""
-          if type(data) == list:
-            data[0]=v.nom+'='+data[0]
-          else:
-            data=v.nom+'='+data
-          l.append(data)
-      return l
-
-
-   def formatItem(self,valeur,etape,obj,vientDeListe=0):
-      if (type(valeur) == float or 'R' in obj.definition.type) and not(isinstance(valeur,Accas.PARAMETRE)) :
-         # Pour un flottant on utilise str ou repr si on vient d une liste
-         # ou la notation scientifique
-         # On ajoute un . si il n y en a pas dans la valeur
-         s = str(valeur)
-         if vientDeListe and repr(valeur) != str(valeur) : s=repr(valeur)
-         if (s.find('.')== -1 and s.find('e')== -1 and s.find('E')==-1) : s=s+'.0'
-         clefobj=etape.getSdname()
-         if self.appli.appliEficas and clefobj in self.appli.appliEficas.dict_reels:
-           if valeur in self.appli.appliEficas.dict_reels[clefobj]:
-             s=self.appli.appliEficas.dict_reels[clefobj][valeur]
-         
-      elif type(valeur) == bytes or type(valeur) == str :
-         if valeur.find('\n') == -1:
-            # pas de retour chariot, on utilise repr
-            s = repr(valeur)
-         elif valeur.find('"""') == -1:
-            # retour chariot mais pas de triple ", on formatte
-            s='"""'+valeur+'"""'
-         else:
-            s = repr(valeur)
-      elif isinstance(valeur,Accas.CO) or hasattr(etape,'sdprods') and valeur in etape.sdprods:
-         s = "CO('"+ self.generator(valeur) +"')"
-      elif isinstance(valeur,Accas.ASSD):
-         s = self.generator(valeur)
-      elif isinstance(valeur,Accas.PARAMETRE):
-         # il ne faut pas prendre la string que retourne gener
-         # mais seulement le nom dans le cas d'un parametre
-         s = valeur.nom
-
-      #elif type(valeur) == types.InstanceType or isinstance(valeur,object):
-      #   if valeur.__class__.__name__ == 'CO' or hasattr(etape,'sdprods') and valeur in etape.sdprods :
-      #      s = "CO('"+ self.generator(valeur) +"')"
-      #   elif isinstance(valeur,Accas.PARAMETRE):
+            l= self.generator(obj.data[0])
+        return l
+
+    def generMCBLOC(self,obj):
+        """
+            Convertit un objet MCBLOC en une liste de chaines de caracteres a la
+            syntaxe python
+        """
+        l=[]
+        for v in obj.mcListe:
+            if isinstance(v,Accas.MCBLOC) :
+                liste=self.generator(v)
+                for mocle in liste :
+                    l.append(mocle)
+            elif isinstance(v,Accas.MCFACT):
+                liste=self.generator(v)
+            elif isinstance(v,Accas.MCList):
+                liste=self.generator(v)
+                liste[0]=v.nom+'='+liste[0]
+                # PN  essai de correction bug identation
+                if (hasattr(v,'data')) :
+                    if (isinstance(v.data[0],Accas.MCFACT) and (len(v.data) == 1)):
+                        l.append(liste)
+                    else:
+                        for mocle in liste :
+                            l.append(mocle)
+                else :
+                    for mocle in liste :
+                        l.append(mocle)
+            else:
+                data=self.generator(v)
+                if data==None : data= ""
+                if type(data) == list:
+                    data[0]=v.nom+'='+data[0]
+                else:
+                    data=v.nom+'='+data
+                l.append(data)
+        return l
+
+
+    def formatItem(self,valeur,etape,obj,vientDeListe=0):
+        if (type(valeur) == float or 'R' in obj.definition.type) and not(isinstance(valeur,Accas.PARAMETRE)) :
+            # Pour un flottant on utilise str ou repr si on vient d une liste
+            # ou la notation scientifique
+            # On ajoute un . si il n y en a pas dans la valeur
+            s = str(valeur)
+            if vientDeListe and repr(valeur) != str(valeur) : s=repr(valeur)
+            if (s.find('.')== -1 and s.find('e')== -1 and s.find('E')==-1) : s=s+'.0'
+            clefobj=etape.getSdname()
+            if self.appliEficas and clefobj in self.appliEficas.dict_reels:
+                if valeur in self.appliEficas.dict_reels[clefobj]:
+                    s=self.appliEficas.dict_reels[clefobj][valeur]
+
+        elif type(valeur) == bytes or type(valeur) == str :
+            if valeur.find('\n') == -1:
+                    # pas de retour chariot, on utilise repr
+                s = repr(valeur)
+            elif valeur.find('"""') == -1:
+                # retour chariot mais pas de triple ", on formatte
+                s='"""'+valeur+'"""'
+            else:
+                s = repr(valeur)
+        elif isinstance(valeur,Accas.CO) or hasattr(etape,'sdprods') and valeur in etape.sdprods:
+            s = "CO('"+ self.generator(valeur) +"')"
+        elif isinstance(valeur,Accas.UserASSD):
+        # ici on ne prend que la reference
+            s = valeur.nom
+        elif isinstance(valeur,Accas.ASSD):
+            s = self.generator(valeur)
+        elif isinstance(valeur,Accas.PARAMETRE):
             # il ne faut pas prendre la string que retourne gener
             # mais seulement le nom dans le cas d'un parametre
-      #      s = valeur.nom
-      #   else:
-      #      s = self.generator(valeur)
-
-      else :
-         # Pour les autres types on utilise repr
-         s = repr(valeur)
-      return s
-
-   def generMCSIMP(self,obj) :
-      """
-          Convertit un objet MCSIMP en une liste de chaines de caracteres a la
-          syntaxe python
-      """
-      waitTuple=0
-      if type(obj.valeur) in (tuple,list) :
-         s = ''
-         for ss_type in obj.definition.type:
-          if repr(ss_type).find('Tuple') != -1 :
-             waitTuple=1
-             break
-
-         if waitTuple :
-            #s = str(obj.valeur) +','
-            #obj.valeurFormatee=obj.valeur
-            s = obj.getText() +','
-            obj.valeurFormatee=obj.getText()
-         else :
-            obj.valeurFormatee=[]
-            for val in obj.valeur :
-               s =s +self.formatItem(val,obj.etape,obj,1) + ','
-               if obj.waitTxm() :
-                  obj.valeurFormatee.append(val)
-               else :
-                 obj.valeurFormatee.append(self.formatItem(val,obj.etape,obj))
-            if len(obj.valeur) >= 1:
-               s = '(' + s + '),'
-            if obj.valeur==[] or obj.valeur==() : s="(),"
-         if obj.nbrColonnes() :
-            s=self.formatColonnes(obj.nbrColonnes(),obj.valeur,obj)
-      else :
-         obj.valeurFormatee=obj.valeur
-         s=self.formatItem(obj.valeur,obj.etape,obj) + ','
-      return s
-
-
-   def formatColonnes(self,nbrColonnes,listeValeurs,obj):
-      #try :
-      if 1 == 1 :
-        indice=0
-        textformat="("
-        while ( indice < len(listeValeurs) ) :
-          try :
-          #if 1 :
-            for l in range(nbrColonnes) :
-                texteVariable=self.formatItem(listeValeurs[indice],obj.etape,obj)
-                textformat=textformat+texteVariable+" ,"
-                indice=indice+1
-            textformat=textformat+"\n"
-          except :
-          #else :
+            s = valeur.nom
+
+        #elif type(valeur) == types.InstanceType or isinstance(valeur,object):
+        #   if valeur.__class__.__name__ == 'CO' or hasattr(etape,'sdprods') and valeur in etape.sdprods :
+        #      s = "CO('"+ self.generator(valeur) +"')"
+        #   elif isinstance(valeur,Accas.PARAMETRE):
+                # il ne faut pas prendre la string que retourne gener
+                # mais seulement le nom dans le cas d'un parametre
+        #      s = valeur.nom
+        #   else:
+        #      s = self.generator(valeur)
+
+        else :
+            # Pour les autres types on utilise repr
+            s = repr(valeur)
+        return s
+
+    def generMCSIMP(self,obj) :
+        """
+            Convertit un objet MCSIMP en une liste de chaines de caracteres a la
+            syntaxe python
+        """
+        waitTuple=0
+        if type(obj.valeur) in (tuple,list) :
+            s = ''
+            for ss_type in obj.definition.type:
+                if repr(ss_type).find('Tuple') != -1 :
+                    waitTuple=1
+                    break
+
+            if waitTuple :
+                #s = str(obj.valeur) +','
+                #obj.valeurFormatee=obj.valeur
+                s = obj.getText() +','
+                obj.valeurFormatee=obj.getText()
+            else :
+                obj.valeurFormatee=[]
+                for val in obj.valeur :
+                    s =s +self.formatItem(val,obj.etape,obj,1) + ','
+                    if obj.waitTxm() :
+                        obj.valeurFormatee.append(val)
+                    else :
+                        obj.valeurFormatee.append(self.formatItem(val,obj.etape,obj))
+                if len(obj.valeur) >= 1:
+                    s = '(' + s + '),'
+                if obj.valeur==[] or obj.valeur==() : s="(),"
+            if obj.nbrColonnes() :
+                s=self.formatColonnes(obj.nbrColonnes(),obj.valeur,obj)
+        else :
+            obj.valeurFormatee=obj.valeur
+            s=self.formatItem(obj.valeur,obj.etape,obj) + ','
+        return s
+
+
+    def formatColonnes(self,nbrColonnes,listeValeurs,obj):
+        try :
+        #if 1 == 1 :
+            indice=0
+            textformat="("
             while ( indice < len(listeValeurs) ) :
-                texteVariable=self.formatItem(listeValeurs[indice],obj.etape,obj)
-                textformat=textformat+texteVariable+", "
-                indice=indice+1
-            textformat=textformat+"\n"
-        textformat=textformat[0:-1]+"),\n"
-      #except :
-      else :
-         textformat=str(obj.valeur)
-      return textformat
+                try :
+                #if 1 :
+                    for l in range(nbrColonnes) :
+                        texteVariable=self.formatItem(listeValeurs[indice],obj.etape,obj)
+                        textformat=textformat+texteVariable+" ,"
+                        indice=indice+1
+                    textformat=textformat+"\n"
+                except :
+                #else :
+                    while ( indice < len(listeValeurs) ) :
+                        texteVariable=self.formatItem(listeValeurs[indice],obj.etape,obj)
+                        textformat=textformat+texteVariable+", "
+                        indice=indice+1
+                    textformat=textformat+"\n"
+            textformat=textformat[0:-1]+"),\n"
+        except :
+        #else :
+            textformat=str(obj.valeur)
+        return textformat
index 331cbfbe0b3a9d0748d30f7392ea53ad805133eb..05b2dc14d3e46c8a38c097864a6117d804d4de10 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -18,7 +18,7 @@
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 """
-    Ce module contient le plugin generateur de fichier au format 
+    Ce module contient le plugin generateur de fichier au format
     python pour EFICAS.
     PN
 
@@ -27,9 +27,9 @@ from __future__ import absolute_import
 from __future__ import print_function
 from __future__ import division
 try :
-  from builtins import range
+    from builtins import range
 except :
-  pass
+    pass
 import traceback
 import types,re
 import math
@@ -45,199 +45,199 @@ from six.moves import range
 #from Editeur.widgets import showerror
 
 def entryPoint():
-   """
-       Retourne les informations necessaires pour le chargeur de plugins
+    """
+        Retourne les informations necessaires pour le chargeur de plugins
 
-       Ces informations sont retournees dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'vers3DSalome',
-        # La factory pour creer une instance du plugin
-          'factory' : vers3DSalomeGenerator,
-          }
+        Ces informations sont retournees dans un dictionnaire
+    """
+    return {
+         # Le nom du plugin
+           'name' : 'vers3DSalome',
+         # La factory pour creer une instance du plugin
+           'factory' : vers3DSalomeGenerator,
+           }
 
 
 class vers3DSalomeGenerator(PythonGenerator):
-   """
-       Ce generateur parcourt un objet AFFE-CARA_ELEM
-       et produit un fichier au format texte contenant
-       les instructions idl pour PAL 
-   """
-
-   def __init__(self,cr=None):
-      self.list_commandes=[];
-      self.jdc=None
-      self.node=None
-      self.clefs=None
-      self.liste_motetat = ("AFFE_CARA_ELEM", "ORIG_AXE", "AXE" , 
-                            "BARRE", "CABLE", "CARA", "COQUE", "EPAIS", 
-                            "EXCENTREMENT", "GROUP_MA", "ORIENTATION", 
-                            "POUTRE", "SECTION", "VALE", "VARI_SECT",
-                            "GRILLE", "ANGL_REP", "VECTEUR",
-                             "b_constant", "b_homothetique", 
-                            "b_rectangle", "b_affine", "b_cercle", "b_generale" )
-      self.dict_deb_com={"POUTRE":"VisuPoutre", "CABLE" : "VisuCable",
-                         "COQUE" : "VisuCoque", "GRILLE" : "VisuGrille",
-                         "ORIENTATION" : "Orientation", "BARRE" : "VisuBarre"}
-
-      self.dict_suite_com={"RECTANGLE":"Rectangle","GENERALE":"Generale",
-                           "CERCLE":"Cercle"}
-
-      self.dict_traduit={"VARI_SECT":"extrusion","EXCENTREMENT":"Excentre","EPAIS":"Epais","VECTEUR":"Vecteur"}
-
-      self.initLigne () 
-
-   def initJdc(self,jdc) :
-      self.jdc=jdc
-
-   def initLigne  (self) :
-      self.boolGpMa = 0
-      self.commande = ""
-      self.dict_attributs = {} 
-
-   def gener(self,node,config=None,appli=None):
-      """
-      """
-      self.node=node
-      self.list_commandes=[];
-      self.generator(self.node.object)
-      return self.list_commandes
-
-   def generator(self,obj):
-      if (obj.nom in self.liste_motetat) and (self.calculeOuiNon(obj)):
-         PythonGenerator.generator(self,obj)
-      """
-        f1=PythonGenerator.generator(self,obj)
-      else :
-        return ""
-      """
-
-   def calculeOuiNon(self,obj):
-      ouinon=1
-      for l in obj.getGenealogie() :
-          if not l in self.liste_motetat :
-             ouinon=0
-             break
-      return ouinon
-
-       
-   def generETAPE(self,obj):
-      """
-      """
-      if obj.isValid() == 0 :
-         #showerror("Element non valide","Salome ne sait pas traiter les elements non valides")
-         return
-      for v in obj.mcListe:
-         liste=self.generator(v)
-
-   def generMACRO_ETAPE(self,obj):
-      """
-      """
-      if obj.isValid() == 0 :
-         #showerror("Element non valide","Salome ne sait pas traiter les elements non valides")
-         return
-      for v in obj.mcListe:
-         liste=self.generator(v)
-
-
-   def generMCSIMP(self,obj) :
-      """
-      """
-      if obj.nom in dir(self) :
-         suite = self.__class__.__dict__[obj.nom](self,obj)
-      else :
-         clef=self.dict_traduit[obj.nom]
-         # traitement des parametres
-         try :
-             self.dict_attributs[clef]=obj.val.eval()
-         except :
-             self.dict_attributs[clef]=obj.val
-
-
-   def generMCFACT(self,obj):
-      """
-          Convertit un objet MCFACT en une liste de chaines de caracteres a la
-          syntaxe python
-      """
-      self.initLigne ()
-      self.commande=self.dict_deb_com[obj.nom]
-      for v in obj.mcListe:
-         self.generator(v)
-      if self.boolGpMa == 1:
-         self.list_commandes.append((self.commande,self.dict_attributs)) 
-      else :
-         #showerror("Elements ne portant pas sur un Groupe de Maille","Salome ne sait pas montrer ce type d' element")
-         print(("Elements ne portant pas sur un Groupe de Maille","Salome ne sait pas montrer ce type d' element"))
-         pass
-
-   def generMCList(self,obj):
-      """
-      """
-      for mcfact in obj.data:
-          self.generator(mcfact)
-
-   def generMCBLOC(self,obj):
-      """
-      """
-      for v in obj.mcListe:
-         self.generator(v)
-
-   def GROUP_MA(self,obj):
-      self.boolGpMa = 1
-      self.dict_attributs["Group_Maille"]=obj.val
-
-   def SECTION(self,obj):
-      assert (self.commande != "" )
-      if self.commande == "VisuCable" :
-         self.dict_attributs["R"]= math.sqrt(obj.val/math.pi).eval()
-      elif (self.commande !="VisuGrille")  :
-         self.commande=self.commande+self.dict_suite_com[obj.valeur]
-
-   def CARA(self,obj) :
-       self.clefs=obj.val
-       if type(self.clefs) == bytes or  type(self.clefs) == str:
-          self.clefs=(obj.val,)
-
-   def VALE(self,obj) :
-       atraiter=obj.val
-       if len(self.clefs) > 1 :
-           assert (len(atraiter) == len(self.clefs))
-       else :
-           atraiter=(atraiter,)
-       for k in range(len(atraiter)) :
-           clef=self.clefs[k]
-           val =atraiter[k] 
-           if isinstance(val, (tuple, list)) and len(val) == 1:
-               val = val[0]
-           if isinstance (val, Extensions.parametre.PARAMETRE):
-              val=val.valeur
-              print(( val.__class))
-              context={}
-              if type(val) == type("aaa") :
-                 for p in self.jdc.params:
-                     context[p.nom]=eval(p.val,self.jdc.const_context, context)
-                     print((context[p.nom]))
-                 res=eval(val,self.jdc.const_context, context)
-                 val=res
-           self.dict_attributs[clef]=val
-
-   def ANGL_REP(self,obj) :
-      assert (len(obj.val) == 2)
-      alpha,beta=obj.val
-      self.dict_attributs["angleAlpha"]=alpha
-      self.dict_attributs["angleBeta"]=beta
-
-   def ORIG_AXE(self,obj) :
-      assert (len(obj.val) == 3)
-      alpha,beta,gamma=obj.val
-      self.dict_attributs["origAxeX"]=alpha
-      self.dict_attributs["origAxeY"]=beta
-      self.dict_attributs["origAxeZ"]=gamma
-
-   def AXE(self,obj) :
-      assert (len(obj.val) == 3)
-      alpha,beta,gamma=obj.val
-      self.dict_attributs["axeX"]=alpha
-      self.dict_attributs["axeY"]=beta
-      self.dict_attributs["axeZ"]=gamma
+    """
+        Ce generateur parcourt un objet AFFE-CARA_ELEM
+        et produit un fichier au format texte contenant
+        les instructions idl pour PAL
+    """
+
+    def __init__(self,cr=None):
+        self.list_commandes=[];
+        self.jdc=None
+        self.node=None
+        self.clefs=None
+        self.liste_motetat = ("AFFE_CARA_ELEM", "ORIG_AXE", "AXE" ,
+                              "BARRE", "CABLE", "CARA", "COQUE", "EPAIS",
+                              "EXCENTREMENT", "GROUP_MA", "ORIENTATION",
+                              "POUTRE", "SECTION", "VALE", "VARI_SECT",
+                              "GRILLE", "ANGL_REP", "VECTEUR",
+                               "b_constant", "b_homothetique",
+                              "b_rectangle", "b_affine", "b_cercle", "b_generale" )
+        self.dict_deb_com={"POUTRE":"VisuPoutre", "CABLE" : "VisuCable",
+                           "COQUE" : "VisuCoque", "GRILLE" : "VisuGrille",
+                           "ORIENTATION" : "Orientation", "BARRE" : "VisuBarre"}
+
+        self.dict_suite_com={"RECTANGLE":"Rectangle","GENERALE":"Generale",
+                             "CERCLE":"Cercle"}
+
+        self.dict_traduit={"VARI_SECT":"extrusion","EXCENTREMENT":"Excentre","EPAIS":"Epais","VECTEUR":"Vecteur"}
+
+        self.initLigne ()
+
+    def initJdc(self,jdc) :
+        self.jdc=jdc
+
+    def initLigne  (self) :
+        self.boolGpMa = 0
+        self.commande = ""
+        self.dict_attributs = {}
+
+    def gener(self,node,config=None,appliEficas=None):
+        """
+        """
+        self.node=node
+        self.list_commandes=[];
+        self.generator(self.node.object)
+        return self.list_commandes
+
+    def generator(self,obj):
+        if (obj.nom in self.liste_motetat) and (self.calculeOuiNon(obj)):
+            PythonGenerator.generator(self,obj)
+        """
+          f1=PythonGenerator.generator(self,obj)
+        else :
+          return ""
+        """
+
+    def calculeOuiNon(self,obj):
+        ouinon=1
+        for l in obj.getGenealogie() :
+            if not l in self.liste_motetat :
+                ouinon=0
+                break
+        return ouinon
+
+
+    def generETAPE(self,obj):
+        """
+        """
+        if obj.isValid() == 0 :
+            #showerror("Element non valide","Salome ne sait pas traiter les elements non valides")
+            return
+        for v in obj.mcListe:
+            liste=self.generator(v)
+
+    def generMACRO_ETAPE(self,obj):
+        """
+        """
+        if obj.isValid() == 0 :
+            #showerror("Element non valide","Salome ne sait pas traiter les elements non valides")
+            return
+        for v in obj.mcListe:
+            liste=self.generator(v)
+
+
+    def generMCSIMP(self,obj) :
+        """
+        """
+        if obj.nom in dir(self) :
+            suite = self.__class__.__dict__[obj.nom](self,obj)
+        else :
+            clef=self.dict_traduit[obj.nom]
+            # traitement des parametres
+            try :
+                self.dict_attributs[clef]=obj.val.eval()
+            except :
+                self.dict_attributs[clef]=obj.val
+
+
+    def generMCFACT(self,obj):
+        """
+            Convertit un objet MCFACT en une liste de chaines de caracteres a la
+            syntaxe python
+        """
+        self.initLigne ()
+        self.commande=self.dict_deb_com[obj.nom]
+        for v in obj.mcListe:
+            self.generator(v)
+        if self.boolGpMa == 1:
+            self.list_commandes.append((self.commande,self.dict_attributs))
+        else :
+            #showerror("Elements ne portant pas sur un Groupe de Maille","Salome ne sait pas montrer ce type d' element")
+            print(("Elements ne portant pas sur un Groupe de Maille","Salome ne sait pas montrer ce type d' element"))
+            pass
+
+    def generMCList(self,obj):
+        """
+        """
+        for mcfact in obj.data:
+            self.generator(mcfact)
+
+    def generMCBLOC(self,obj):
+        """
+        """
+        for v in obj.mcListe:
+            self.generator(v)
+
+    def GROUP_MA(self,obj):
+        self.boolGpMa = 1
+        self.dict_attributs["Group_Maille"]=obj.val
+
+    def SECTION(self,obj):
+        assert (self.commande != "" )
+        if self.commande == "VisuCable" :
+            self.dict_attributs["R"]= math.sqrt(obj.val/math.pi).eval()
+        elif (self.commande !="VisuGrille")  :
+            self.commande=self.commande+self.dict_suite_com[obj.valeur]
+
+    def CARA(self,obj) :
+        self.clefs=obj.val
+        if type(self.clefs) == bytes or  type(self.clefs) == str:
+            self.clefs=(obj.val,)
+
+    def VALE(self,obj) :
+        atraiter=obj.val
+        if len(self.clefs) > 1 :
+            assert (len(atraiter) == len(self.clefs))
+        else :
+            atraiter=(atraiter,)
+        for k in range(len(atraiter)) :
+            clef=self.clefs[k]
+            val =atraiter[k]
+            if isinstance(val, (tuple, list)) and len(val) == 1:
+                val = val[0]
+            if isinstance (val, Extensions.parametre.PARAMETRE):
+                val=val.valeur
+                print(( val.__class))
+                context={}
+                if type(val) == type("aaa") :
+                    for p in self.jdc.params:
+                        context[p.nom]=eval(p.val,self.jdc.const_context, context)
+                        print((context[p.nom]))
+                    res=eval(val,self.jdc.const_context, context)
+                    val=res
+            self.dict_attributs[clef]=val
+
+    def ANGL_REP(self,obj) :
+        assert (len(obj.val) == 2)
+        alpha,beta=obj.val
+        self.dict_attributs["angleAlpha"]=alpha
+        self.dict_attributs["angleBeta"]=beta
+
+    def ORIG_AXE(self,obj) :
+        assert (len(obj.val) == 3)
+        alpha,beta,gamma=obj.val
+        self.dict_attributs["origAxeX"]=alpha
+        self.dict_attributs["origAxeY"]=beta
+        self.dict_attributs["origAxeZ"]=gamma
+
+    def AXE(self,obj) :
+        assert (len(obj.val) == 3)
+        alpha,beta,gamma=obj.val
+        self.dict_attributs["axeX"]=alpha
+        self.dict_attributs["axeY"]=beta
+        self.dict_attributs["axeZ"]=gamma
index 7a120f32bdcb78e4a5fd4dbd767aa8f1280947c3..d2c02a365f1cf70d0aa4779bcd4c744f9131a04e 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 465c6f8dcfdfee07ec9c4da54bc69376b53889a9..1c3a2d25425fdac68ce8109eacf03d09d0d9637e 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index f2659e1c777c437c41fd7b65b7190288426ef827..88c63af46e06a991f0b7dc5556ee056ae675a856 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -109,7 +109,7 @@ class STDGenerateur :
     print "ListeVariablesOut= %s", ListeVariablesOut
     #print "DictLois=", DictLois
     self.texteSTD = defaultSTD
-    self.OpenTURNS_path = appli.CONFIGURATION.OpenTURNS_path
+    self.OpenTURNS_path = appli.maConfiguration.OpenTURNS_path
 
     # Ce dictionnaire fait la correspondance entre le mot lu dans le dictionnaire des mots-clefs et la methode a appeler
     self.traitement = {
@@ -247,13 +247,13 @@ class STDGenerateur :
     if ( self.DictMCVal.has_key( 'Type' ) ):
       TypeAnalyse =  self.DictMCVal[ 'Type' ]
 
-    Traitement = None
+    traitement = None
     subDict = {}
     if ( self.traitement.has_key( TypeAnalyse ) ):
-      (Traitement, subDict) =  self.traitement[ TypeAnalyse ]
+      (traitement, subDict) =  self.traitement[ TypeAnalyse ]
 
-    if ( Traitement is not None ):
-      self.texteSTD = apply( STDGenerateur.__dict__[ Traitement ], (self, subDict) )
+    if ( traitement is not None ):
+      self.texteSTD = apply( STDGenerateur.__dict__[ traitement ], (self, subDict) )
     
     return self.texteSTD
 
@@ -293,12 +293,12 @@ class STDGenerateur :
     if ( self.DictMCVal.has_key( 'Method' ) ):
       Methode =  self.DictMCVal[ 'Method' ]
 
-    Traitement = None
+    traitement = None
     if ( subDict.has_key( Methode ) ):
-      Traitement =  subDict[ Methode ]
+      traitement =  subDict[ Methode ]
 
-    if ( Traitement is not None ):
-      txt += apply( STDGenerateur.__dict__[ Traitement ], (self,) )
+    if ( traitement is not None ):
+      txt += apply( STDGenerateur.__dict__[ traitement ], (self,) )
 
     txt += self.MinMaxResult()
     
@@ -382,7 +382,7 @@ class STDGenerateur :
 
     dictVariables = {}
     for variable in self.ListeVariablesIn:
-      nomVar = variable['ModelVariable'].get_name()
+      nomVar = variable['ModelVariable'].getName()
       dictVariables[ nomVar ] = variable['Distribution']
 
     i = 0
@@ -395,7 +395,7 @@ class STDGenerateur :
         marginale = "%s_%d" % (self.variable["marginal"], i)
         txt += "# Definit la loi marginale de la composante %d\n" % i
         txt += "%s = %s\n" % (marginale, apply( STDGenerateur.__dict__[ loi[ 'Kind' ] ], (self, loi) ))
-        txt += "%s.setName( '%s' )\n" % (marginale, conceptloi.get_name())
+        txt += "%s.setName( '%s' )\n" % (marginale, conceptloi.getName())
         txt += "%s[ %d ] = '%s'\n" % (self.variable["description"], i, variable)
         txt += "%s[ %d ] = Distribution( %s )\n" % (self.variable["collection"], i, marginale)
         txt += "\n"
@@ -449,7 +449,7 @@ class STDGenerateur :
     '''
     nomVar = "output"
     for variable in self.ListeVariablesOut:
-      nomVar = variable['ModelVariable'].get_name()
+      nomVar = variable['ModelVariable'].getName()
 
     txt  = "# Definit le vecteur aleatoire de sortie\n"
     txt += "%s = RandomVector( %s, %s )\n" % (self.variable["outputRandomVector"], self.variable["model"], self.variable["inputRandomVector"])
@@ -548,13 +548,13 @@ class STDGenerateur :
     if ( self.DictMCVal.has_key( 'Method' ) ):
       Methode =  self.DictMCVal[ 'Method' ]
 
-    Traitement = None
+    traitement = None
     if ( subDict.has_key( Methode ) ):
-      Traitement =  subDict[ Methode ]
+      traitement =  subDict[ Methode ]
 
-    if ( Traitement is not None ):
+    if ( traitement is not None ):
       txt += "# Etude 'Central Uncertainty'\n"
-      txt += apply( STDGenerateur.__dict__[ Traitement ], (self,) )
+      txt += apply( STDGenerateur.__dict__[ traitement ], (self,) )
 
     txt += self.Footer()
     return txt
@@ -711,12 +711,12 @@ class STDGenerateur :
     if ( self.DictMCVal.has_key( 'Method' ) ):
       Methode =  self.DictMCVal[ 'Method' ]
 
-    Traitement = None
+    traitement = None
     if ( subDict.has_key( Methode ) ):
-      Traitement =  subDict[ Methode ]
+      traitement =  subDict[ Methode ]
 
-    if ( Traitement is not None ):
-      txt += apply( STDGenerateur.__dict__[ Traitement ], (self, subDict) )
+    if ( traitement is not None ):
+      txt += apply( STDGenerateur.__dict__[ traitement ], (self, subDict) )
 
     txt += self.Footer()
     return txt
@@ -729,12 +729,12 @@ class STDGenerateur :
     if ( self.DictMCVal.has_key( 'Algorithm' ) ):
       Algorithme =  self.DictMCVal[ 'Algorithm' ]
 
-    Traitement = None
+    traitement = None
     if ( subDict.has_key( Algorithme ) ):
-      Traitement =  subDict[ Algorithme ]
+      traitement =  subDict[ Algorithme ]
 
-    if ( Traitement is not None ):
-      txt = apply( STDGenerateur.__dict__[ Traitement ], (self,) )
+    if ( traitement is not None ):
+      txt = apply( STDGenerateur.__dict__[ traitement ], (self,) )
 
     maxOuterSampling = None
     if ( self.DictMCVal.has_key( 'MaximumOuterSampling' ) ):
@@ -813,12 +813,12 @@ class STDGenerateur :
     if ( self.DictMCVal.has_key( 'OptimizationAlgorithm' ) ):
       OptimizationAlgo =  self.DictMCVal[ 'OptimizationAlgorithm' ]
 
-    Traitement = None
+    traitement = None
     if ( subDict.has_key( OptimizationAlgo ) ):
-      Traitement =  subDict[ OptimizationAlgo ]
+      traitement =  subDict[ OptimizationAlgo ]
 
-    if ( Traitement is not None ):
-      txt += apply( STDGenerateur.__dict__[ Traitement ], (self,) )
+    if ( traitement is not None ):
+      txt += apply( STDGenerateur.__dict__[ traitement ], (self,) )
 
     txt += self.OptimizerSettings()
     txt += self.PhysicalStartingPoint()
@@ -827,12 +827,12 @@ class STDGenerateur :
     if ( self.DictMCVal.has_key( 'Approximation' ) ):
       Approximation =  self.DictMCVal[ 'Approximation' ]
 
-    Traitement = None
+    traitement = None
     if ( subDict.has_key( Approximation ) ):
-      Traitement =  subDict[ Approximation ]
+      traitement =  subDict[ Approximation ]
 
-    if ( Traitement is not None ):
-      txt += apply( STDGenerateur.__dict__[ Traitement ], (self,) )
+    if ( traitement is not None ):
+      txt += apply( STDGenerateur.__dict__[ traitement ], (self,) )
 
     txt += self.RunAlgorithm()
     txt += self.AnalyticalResult()
index 860508deb46026004d06f07e2c3c680ceb3dabd4..084e0aa2980b7745365c6b1683c70f61b772b0eb 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 66dd503de018307ab86789eaeb0130ac3db50cf2..717d73bd12a74f3b737fa9d16863439a25f2b21e 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -86,7 +86,7 @@ class CARMEL3DGenerator(PythonGenerator):
 
       # Cette instruction genere le contenu du fichier de parametres pour le code Carmel3D
       # si le jdc est valide (sinon cela n a pas de sens)
-      if obj.isvalid() : 
+      if obj.isValid() : 
            # constitution du bloc VERSION du fichier PHYS (existe toujours)
            try :
              self.generBLOC_VERSION(obj)
@@ -242,9 +242,9 @@ class CARMEL3DGenerator(PythonGenerator):
 
         try:
             if usePrefix:
-                nomGroupeMaillage = self.nomReelGroupeMaillage(obj.get_sdname()) # nom du groupe de maillage, i.e. nom du concept, avec prefixes enleves
+                nomGroupeMaillage = self.nomReelGroupeMaillage(obj.getSdname()) # nom du groupe de maillage, i.e. nom du concept, avec prefixes enleves
             else:
-                nomGroupeMaillage = obj.get_sdname() # nom du groupe de maillage, i.e. nom du concept
+                nomGroupeMaillage = obj.getSdname() # nom du groupe de maillage, i.e. nom du concept
             # test: un et un seul nom de materiau ou source doit etre associe a ce groupe de maillage, via les cles MATERIAL et SOURCE, respectivement.
             # test sur un seul attribut, non pertinent car il peut y en avoir plusieurs.
             #assert len(obj.valeur.keys())==1,"Un et un seul nom de materiau ou source doit etre associe a ce groupe du maillage :"+nomGroupeMaillage
@@ -328,7 +328,7 @@ class CARMEL3DGenerator(PythonGenerator):
              texte+="         ]"+"\n"
        if self.debug: 
            print "texte = %s", texte
-       self.dictMaterConductor[obj.get_sdname()]=texte # sauvegarde du texte pour ce bloc
+       self.dictMaterConductor[obj.getSdname()]=texte # sauvegarde du texte pour ce bloc
 
    def generMATERIAL_DIELECTRIC(self,obj):
        """preparation du sous bloc DIELECTRIC"""
@@ -370,7 +370,7 @@ class CARMEL3DGenerator(PythonGenerator):
              texte+="         ]"+"\n"
        if self.debug: 
            print "texte = %s", texte
-       self.dictMaterDielectric[obj.get_sdname()]=texte # sauvegarde du texte pour ce bloc
+       self.dictMaterDielectric[obj.getSdname()]=texte # sauvegarde du texte pour ce bloc
 
    def generMATERIAL_ZSURFACIC(self,obj):
        """preparation du sous bloc ZSURFACIC"""
@@ -402,7 +402,7 @@ class CARMEL3DGenerator(PythonGenerator):
              texte+="         ]"+"\n"
        if self.debug: 
            print "texte = %s", texte
-       self.dictMaterZsurfacic[obj.get_sdname()]=texte # sauvegarde du texte pour ce bloc
+       self.dictMaterZsurfacic[obj.getSdname()]=texte # sauvegarde du texte pour ce bloc
 
    def generMATERIAL_EMISO(self,obj):
        """preparation du sous bloc EM_ISOTROPIC_FILES.
@@ -415,11 +415,11 @@ class CARMEL3DGenerator(PythonGenerator):
        #from os.path import basename
        #texte ="        CONDUCTIVITY MED "+basename(str(obj.valeur["CONDUCTIVITY_File"]))+"\n"
        #texte+="        PERMEABILITY MED "+basename(str(obj.valeur["PERMEABILITY_File"]))+"\n"
-       #      print "obj get sdname= ", obj.get_sdname()
-       #   if obj.get_sdname() in self.dictMaterEmIso.keys() :
-       #    self.dictMaterEmIso[obj.get_sdname()].append(texte) 
+       #      print "obj get sdname= ", obj.getSdname()
+       #   if obj.getSdname() in self.dictMaterEmIso.keys() :
+       #    self.dictMaterEmIso[obj.getSdname()].append(texte) 
        # else :
-       self.dictMaterEmIso[obj.get_sdname()]=texte
+       self.dictMaterEmIso[obj.getSdname()]=texte
   
    def generMATERIAL_EMANISO(self,obj):
        """preparation du sous bloc EM_ANISOTROPIC_FILES.
@@ -428,21 +428,21 @@ class CARMEL3DGenerator(PythonGenerator):
        """
        texte ="        CONDUCTIVITY MATER "+str(obj.valeur["CONDUCTIVITY_File"])+"\n"
        texte+="        PERMEABILITY MATER "+str(obj.valeur["PERMEABILITY_File"])+"\n"
-       #  print "obj get sdname= ", obj.get_sdname()
-       #  if obj.get_sdname() in self.dictMaterEmAnIso.keys() :
-       #    self.dictMaterEmAnIso[obj.get_sdname()].append(texte) 
+       #  print "obj get sdname= ", obj.getSdname()
+       #  if obj.getSdname() in self.dictMaterEmAnIso.keys() :
+       #    self.dictMaterEmAnIso[obj.getSdname()].append(texte) 
        #  else :
-       self.dictMaterEmAnIso[obj.get_sdname()]=texte
+       self.dictMaterEmAnIso[obj.getSdname()]=texte
    
    def generMATERIAL_NILMAT(self,obj):
        """preparation du sous bloc NILMAT"""
        texte=""
-       self.dictMaterNilmat[obj.get_sdname()]=texte
+       self.dictMaterNilmat[obj.getSdname()]=texte
    
    def generMATERIAL_ZINSULATOR(self,obj):
        """"preparation du sous bloc ZINSULATOR"""
        texte=""
-       self.dictMaterZinsulator[obj.get_sdname()]=texte
+       self.dictMaterZinsulator[obj.getSdname()]=texte
 
 #-------------------------------------------------------------------
 
@@ -490,7 +490,7 @@ class CARMEL3DGenerator(PythonGenerator):
             else:
                print tr("ERREUR! Une forme de la source du \
                                type WAVEFORM_CONSTANT ou WAVEFORM_SINUS est attendue.")
-            self.dictSourceStInd[obj.get_sdname()]=texte
+            self.dictSourceStInd[obj.getSdname()]=texte
             if self.debug: 
                 print texte
         except Exception:
@@ -519,7 +519,7 @@ class CARMEL3DGenerator(PythonGenerator):
             else:
                print tr("ERREUR! Une forme de la source du type \
                                WAVEFORM_CONSTANT ou WAVEFORM_SINUS est attendue.")
-            self.dictSourceHport[obj.get_sdname()]=texte
+            self.dictSourceHport[obj.getSdname()]=texte
             if self.debug: 
                 print texte
         except:
@@ -547,7 +547,7 @@ class CARMEL3DGenerator(PythonGenerator):
             else:
                print tr("ERREUR! Une forme de la source du type \
                                WAVEFORM_CONSTANT ou WAVEFORM_SINUS est attendue.")
-            self.dictSourceEport[obj.get_sdname()]=texte
+            self.dictSourceEport[obj.getSdname()]=texte
             if self.debug: 
                 print texte
         except:
@@ -561,14 +561,14 @@ class CARMEL3DGenerator(PythonGenerator):
       # constitution du bloc VERSION du fichier PHYS
       # creation d une entite  VERSION ; elle sera du type PROC car decrit ainsi
       # dans le du catalogue
-      version=obj.addentite('VERSION',pos=None)
+      version=obj.addEntite('VERSION',pos=None)
       self.generPROC_ETAPE(obj.etapes[0])
       self.texteCarmel3D+="["+obj.etapes[0].nom+"\n"
       for cle in obj.etapes[0].valeur :
           self.texteCarmel3D+="   "+cle+" "+str(obj.etapes[0].valeur[cle])+"\n"
       self.texteCarmel3D+="]\n"
       # destruction de l entite creee 
-      obj.suppentite(version)
+      obj.suppEntite(version)
 
 #----------------------------------------------------------------------------------------
    def generBLOC_MATERIALS(self) :
index 5c98cb5ad1d6c6122c14492c99541c45611faa69..5747e8154750ce9beff210c48579fc2dd71c7c1a 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -68,7 +68,7 @@ class CARMEL3DTV0Generator(PythonGenerator):
       self.text=PythonGenerator.gener(self,obj,format)
 
       if self.debug:
-         print ("self.text = ", self.text)
+         print "self.text = %s" % self.text
 
       # Cette instruction genere le contenu du fichier de parametres pour le code Carmel3D
       # si le jdc est valide (sinon cela n a pas de sens)
@@ -77,7 +77,7 @@ class CARMEL3DTV0Generator(PythonGenerator):
              # constitution du bloc VERSION du fichier PHYS (existe toujours)
              self.generBLOC_VERSION(obj)
 
-           except ValueError as err:
+           except ValueError, err:
              raise ValueError(str(err))
 
       return self.text
@@ -181,11 +181,11 @@ class CARMEL3DTV0Generator(PythonGenerator):
         
         fileXML = os.path.join(repertory, 'configuration.xml') # nom du fichier de configuration XML (chemin complet)
         if self.debug: 
-            print ("\necriture du fichier XML : ", fileXML)
-            print ("self.dictMaterial = ",self.dictMaterial)
-            print ("self.dictSource = ",self.dictSource)
-            print ("self.dictGroupes = ",self.dictGroupes)
-            print ("self.dictMacroGroupes = ",self.dictMacroGroupes)
+            print "\necriture du fichier XML : ", fileXML
+            print "self.dictMaterial = ",self.dictMaterial
+            print "self.dictSource = ",self.dictSource
+            print "self.dictGroupes = ",self.dictGroupes
+            print "self.dictMacroGroupes = ",self.dictMacroGroupes
 
         root = ET.Element("configuration")
 
@@ -323,7 +323,7 @@ class CARMEL3DTV0Generator(PythonGenerator):
         #Bloc <TermeSourceElectrique>...</TermeSourceElectrique>
         TermeSourceElectrique=ET.SubElement(root, "TermeSourceElectrique")
         i=0 # ?
-        if self.debug: print ('self.dictSource = ',  self.dictSource)
+        if self.debug: print 'self.dictSource = ',  self.dictSource
         for source in self.dictSource.keys(): # parcours des sources
             if len(self.dictSource[source]['milieux']) > 0: # on continue si au moins un groupe de maillage, i.e., milieux est associé à cette source
                 if self.dictSource[source].has_key('STRANDED_INDUCTOR'): # inducteur bobiné
@@ -487,7 +487,7 @@ class CARMEL3DTV0Generator(PythonGenerator):
        # print "le dico complet=%s" %(self.dictGroupes)
 
         if self.debug: 
-            print ("ecriture du fichier d'execution (SH)")
+            print "ecriture du fichier d'execution (SH)"
         RepCarmel=os.path.join(repertory,"lancer.sh")
         f = open( RepCarmel, 'wb')
         self.texteCarmel3D_SH+='cd ' + repertory + ' \n'
@@ -506,12 +506,12 @@ class CARMEL3DTV0Generator(PythonGenerator):
    def generMCSIMP(self,obj) :
         """recuperation de l objet MCSIMP"""
         if self.debug: 
-            print ("MCSIMP", obj.nom, obj.valeur)
+            print "MCSIMP %(v_1)s  %(v_2)s" % {'v_1': obj.nom, "v_2": obj.valeur}
         s=PythonGenerator.generMCSIMP(self,obj)
         try:
             self.dicoCourant[obj.nom]=obj.valeurFormatee
         except:
-            print ("Oubli des messages texte homo='information'")
+            print "Oubli des messages texte homo='information'"
         return s
 
 
@@ -538,7 +538,7 @@ class CARMEL3DTV0Generator(PythonGenerator):
         obj.valeur=self.dicoEtapeCourant
 
         if self.debug: 
-            print ("PROC_ETAPE " ,obj.nom, str(obj.valeur))
+            print "PROC_ETAPE %(v_1)s  %(v_2)s" % {'v_1': unicode(obj.nom), "v_2": unicode(obj.valeur)}
         s=PythonGenerator.generPROC_ETAPE(self,obj)
         if obj.nom=="PARAMETERS" : self.generBLOC_PARAMETERS(obj)
         if obj.nom=="SOLVEUR" : self.generSOLVEUR(obj)
@@ -557,7 +557,7 @@ class CARMEL3DTV0Generator(PythonGenerator):
         s=PythonGenerator.generETAPE(self,obj)
         obj.valeur=self.dicoEtapeCourant
         if self.debug: 
-            print ("ETAPE " ,obj.nom, str(obj.valeur))
+            print "ETAPE : obj.nom = %(v_1)s , obj.valeur= %(v_2)s" % {'v_1': obj.nom, 'v_2': obj.valeur}
         if obj.nom=="MESHGROUP" : self.generMESHGROUP(obj)
         if obj.nom=="MATERIAL" : self.generMATERIAL(obj)
         if obj.nom=="SOURCE" : self.generSOURCE(obj)
@@ -577,7 +577,7 @@ class CARMEL3DTV0Generator(PythonGenerator):
         monGenerateur=generator.plugins[nomPlugin]()
         jdc_aux_texte=monGenerateur.gener(obj.jdc_aux)
         if self.debug: 
-            print ("jdc_aux_texte : ", jdc_aux_texte)
+            print "jdc_aux_texte : %s" % jdc_aux_texte
 
         # sauvegarde de tous les matériaux trouvés dans les bibliothèques INCLUDE
         for cle in monGenerateur.dictMaterial:
@@ -586,7 +586,7 @@ class CARMEL3DTV0Generator(PythonGenerator):
         for cle in monGenerateur.dictSource:
             self.dictSource[cle] = monGenerateur.dictSource[cle]
 
-        print ("________FIN MACRO______________________________________")
+        print "________FIN MACRO______________________________________"
         s=PythonGenerator.generMACRO_ETAPE(self,obj)
         return s
 
@@ -599,7 +599,7 @@ class CARMEL3DTV0Generator(PythonGenerator):
         """
         try:
             nomGroupe = obj.getSdname() # nom du groupe de maillage, i.e. nom du concept
-            print ("liste des noms sans prefixes", nomGroupe)
+            print "liste des noms sans prefixes %s" %(nomGroupe)
 
             # test: un et un seul nom de materiau ou source doit etre associe a ce groupe de maillage, via les cles MATERIAL et SOURCE, respectivement.
             # test sur un seul attribut, non pertinent car il peut y en avoir plusieurs.
@@ -608,7 +608,7 @@ class CARMEL3DTV0Generator(PythonGenerator):
             # on utilise le fait que obj.valeur est un dictionnaire
             self.dictGroupes[nomGroupe] = {}   
             if self.debug: 
-                print ("obj.valeur.keys()" , obj.valeur.keys())
+                print "obj.valeur.keys()= %s" % obj.valeur.keys()
             #if 'MATERIAL' in obj.valeur.keys() and 'SOURCE' in obj.valeur.keys(): # test d'erreur lors de presence de materiau et source a la fois
             #    raise ValueError,tr(" ce groupe de maillage %s est associe a au moins un materiau  et au moins une source." % nomGroupe)
             # association a un materiau
@@ -631,9 +631,9 @@ class CARMEL3DTV0Generator(PythonGenerator):
             #    self.dictGroupes['ordreDomaineJdC'].append(nomGroupe)
                 texte=""
                 texte+="%s"%(obj.valeur['Domaine'])
-                print ("le texte=", texte)
+                print"le texte=%s" %(texte)
                 self.dictDomaine[obj.getSdname()]=texte  
-                print ("liste des domaines " ,self.dictGroupes[nomGroupe]['DOMAINE'])
+                print "liste des domaines =%s" %(self.dictGroupes[nomGroupe]['DOMAINE'])
             if 'Potentiel_Flottant' in obj.valeur.keys():
                 self.dictGroupes[nomGroupe]['Potentiel_Flottant'] = True
             if 'Spire_Exploratrice' in obj.valeur.keys():
@@ -642,9 +642,9 @@ class CARMEL3DTV0Generator(PythonGenerator):
 #            else:
 #                raise ValueError, tr("ce groupe de maillage %s n'est associe a aucun materiau, source ou stranded_inductor_geometry." % nomGroupe)
             if self.debug:
-                print ("self.dictGroupes" , repr(self.dictGroupes))
-        except ValueError as err:
-            raise ValueError (str(err))
+                print "self.dictGroupes= %s" % repr(self.dictGroupes)
+        except ValueError, err:
+            raise ValueError, str(err)
 
    def generMACRO_GROUPE(self, obj):
         """preparation de la ligne NAME referencant le groupe de mailles 
@@ -653,11 +653,11 @@ class CARMEL3DTV0Generator(PythonGenerator):
         """
         try:
             nomMacroGroupe = obj.getSdname() # nom du macro groupe
-            print ("liste des noms sans prefixes " ,nomMacroGroupe)
+            print "liste des noms sans prefixes %s" %(nomMacroGroupe)
             self.dictMacroGroupes[nomMacroGroupe] = obj.valeur # sauvegarde des propriétés du macro-groupe
 
             if self.debug: 
-                print ("obj.valeur.keys()" , obj.valeur.keys())
+                print "obj.valeur.keys()= %s" % obj.valeur.keys()
             # association a une source
             if 'LISTE_MESHGROUP' in obj.valeur.keys(): # test de liste définie dans la macro-groupe, sinon erreur
                 listeGroupesMauvaisFormat = obj.valeur['LISTE_MESHGROUP'] # sauvegarde de l'association entre ce macro groupe et un materiau ou source, par son nom, i.e. nom du concept du materiau ou de la source
@@ -667,57 +667,56 @@ class CARMEL3DTV0Generator(PythonGenerator):
                     groupe = groupe.replace('"', "") # suppression des guillement doubles
                     self.dictMacroGroupes[nomMacroGroupe]['LISTE'].append(groupe) # sauvegarde du nom au formatage correct
             else:
-                raise ValueError (tr(" : ce MACRO_GROUPE doit contenir une liste de groupes LISTE_MESHGROUP."))
+                raise ValueError, nomMacroGroupe + tr(" : ce MACRO_GROUPE doit contenir une liste de groupes LISTE_MESHGROUP.")
 
             for nomGroupe in self.dictMacroGroupes[nomMacroGroupe]['LISTE']: # liste des groupes MESHGROUP de ce macro-groupe. On leur associe les propriétés du MACRO_GROUPE
                 for propriete in ('SOURCE', 'MATERIAL',  'STRANDED_INDUCTOR_GEOMETRY'): # liste des propriétés automatiques à copier du MACRO_GROUPE à chaque MESHGROUP de la liste
                     if  propriete in obj.valeur.keys(): # ce macro-groupe est associé à cette propriété
                         if self.dictGroupes[nomGroupe].has_key(propriete) and self.dictGroupes[nomGroupe][propriete] != self.dictGroupes[nomGroupe][propriete].nom: # erreur, ce meshgroup a déjà une telle propriéte définie, différente
-                            print ("ERREUR! Conflit entre la  MACRO_GROUPE et celle :  du MESHGROUP  associé à ce macro-groupe." ,\
-                             ( propriete, obj.valeur[propriete].nom,  nomMacroGroupe, self.dictGroupes[nomGroupe][propriete],  nomGroupe ))
-                            raise ValueError( propriete + ',' + obj.valeur[propriete].nom + ',' + nomMacroGroupe + ',' + self.dictGroupes[nomGroupe][propriete] + ',' +  nomGroupe\
-                            + tr(" : conflit entre la propriete (#1:#2) du MACRO_GROUPE (de nom #3) et celle (#4) du MESHGROUP (#5) associe a ce macro-groupe."))
+                            print u"ERREUR! Conflit entre la %s : %s du MACRO_GROUPE %s et celle : %s du MESHGROUP %s associé à ce macro-groupe." % \
+                             ( propriete, obj.valeur[propriete].nom,  nomMacroGroupe, self.dictGroupes[nomGroupe][propriete],  nomGroupe )
+                            raise ValueError, propriete + ',' + obj.valeur[propriete].nom + ',' + nomMacroGroupe + ',' + self.dictGroupes[nomGroupe][propriete] + ',' +  nomGroupe\
+                            + tr(" : conflit entre la propriete (#1:#2) du MACRO_GROUPE (de nom #3) et celle (#4) du MESHGROUP (#5) associe a ce macro-groupe.")
                         else : # pas de conflit de cette propriété, alors copie, meme si les propriétés sont les memes pour simplifier
                             self.dictGroupes[nomGroupe][propriete] = obj.valeur[propriete].nom # sauvegarde du nom de la propriété du macro-groupe dans le meshgroup
                 for propriete in ('CONDITION_LIMITE', ): # liste des propriétés définies à l'avance automatiques à copier du MACRO_GROUPE à chaque MESHGROUP de la liste
                     if  propriete in obj.valeur.keys(): # ce macro-groupe est associé à cette propriété
                         if self.dictGroupes[nomGroupe].has_key(propriete) and self.dictGroupes[nomGroupe][propriete] != self.dictGroupes[nomGroupe][propriete]: # erreur, ce meshgroup a déjà une telle propriéte définie, différente
-                            print ("ERREUR! Conflit entre la  MACRO_GROUPE et celle :  du MESHGROUP  associé à ce macro-groupe.") 
-                             #( propriete, obj.valeur[propriete],  nomMacroGroupe, self.dictGroupes[nomGroupe][propriete],  nomGroupe )
-                            #raise ValueError( propriete + ',' + obj.valeur[propriete].nom + ',' + nomMacroGroupe + ',' + self.dictGroupes[nomGroupe][propriete] + ',' +  nomGroupe\
-                            #+ tr(" : conflit entre la propriete (#1:#2) du MACRO_GROUPE (de nom #3) et celle (#4) du MESHGROUP (#5) associe a ce macro-groupe."))
-                            raise ValueError()
+                            print u"ERREUR! Conflit entre la %s : %s du MACRO_GROUPE %s et celle : %s du MESHGROUP %s associé à ce macro-groupe." % \
+                             ( propriete, obj.valeur[propriete],  nomMacroGroupe, self.dictGroupes[nomGroupe][propriete],  nomGroupe )
+                            raise ValueError, propriete + ',' + obj.valeur[propriete].nom + ',' + nomMacroGroupe + ',' + self.dictGroupes[nomGroupe][propriete] + ',' +  nomGroupe\
+                            + tr(" : conflit entre la propriete (#1:#2) du MACRO_GROUPE (de nom #3) et celle (#4) du MESHGROUP (#5) associe a ce macro-groupe.")
                         else : # pas de conflit de cette propriété, alors copie, meme si les propriétés sont les memes pour simplifier
                             self.dictGroupes[nomGroupe][propriete] = obj.valeur[propriete] # sauvegarde du nom de la propriété du macro-groupe dans le meshgroup
-        except ValueError as err:
-            raise ValueError( str(err))
+        except ValueError, err:
+            raise ValueError, str(err)
 
 
    def generSOLVEUR(self, obj):
         if self.debug:
-            print ("generation solveur", obj.valeur )
+            print "generation solveur obj.valeur = %s" % obj.valeur
         try :
             self.typeSolveur = obj.valeur['Type']
             if self.typeSolveur == "Solveur_lineaire" : self.generSOLVEUR_LINEAIRE(obj)
             if self.typeSolveur == "Solveur_non_lineaire" :
                 self.generSOLVEUR_LINEAIRE(obj)
                 self.generSOLVEUR_NON_LINEAIRE(obj)
-        except ValueError as  err:
-            raise ValueError( str(err))
+        except ValueError,  err:
+            raise ValueError,  str(err)
 
    def generSOLVEUR_LINEAIRE(self, obj):
         if self.debug:
-            print ("generation material" , obj.valeur    )
+            print "generation material obj.valeur = %s" % obj.valeur    
         try :
             nature = obj.valeur['Methode_lineaire']
             if nature =="Methode iterative BICGCR" : self.generMETHODE_ITERATIVE_BICGCR(obj)
             if nature  =="Methode directe MUMPS" : self.generMETHODE_DIRECTE_MUMPS(obj)
-        except ValueError as  err:
-            raise ValueError( str(err))
+        except ValueError,  err:
+            raise ValueError,  str(err)
 
    def generMETHODE_ITERATIVE_BICGCR(self, obj):
         if self.debug: 
-            print ("generation methode iterative BICGCR " , obj.valeur)
+            print "generation methode iterative BICGCR obj.valeur = %s" % obj.valeur
         self.kEpsilonGCP =  obj.valeur["Precision"]   
         self.precond=obj.valeur["Preconditionneur"]
         self.nbIterationMax=obj.valeur["Nombre_iterations_max"]
@@ -726,11 +725,11 @@ class CARMEL3DTV0Generator(PythonGenerator):
    def generMETHODE_DIRECTE_MUMPS(self, obj):
         texte=""
         if self.debug:
-            print ("_____________directe_____________")
+            print "_____________directe_____________"
 
    def generSOLVEUR_NON_LINEAIRE(self, obj):
         if self.debug: 
-            print ("generation solveur_non_lineaire",  obj.valeur)
+            print "generation solveur_non_lineaire obj.valeur = %s" % obj.valeur
         correspondance_methodeNonLineaire = {"Methode de Newton":2,"Methode de substitution":1} # correspondance sur la méthode non-linéaire entre le catalogue et le XML    
         self.methodeNonLineaire = correspondance_methodeNonLineaire[obj.valeur["Methode_non_lineaire"]]
         self.kEpsilonNonLinearite=obj.valeur["PrecisionNonLineaire"]
@@ -740,27 +739,27 @@ class CARMEL3DTV0Generator(PythonGenerator):
         """preparation du bloc correspondant a un materiau du fichier PHYS"""
         texte=""
         if self.debug: 
-            print ("generation material obj.valeur" , obj.valeur)
+            print "generation material obj.valeur = %s" % obj.valeur
         try :
             nomMaterial = obj.getSdname() 
             self.dictMaterial[nomMaterial]=obj.valeur
-            print ("self.dictMaterial=" ,self.dictMaterial)
-        except ValueError as  err:
-            raise ValueError( str(err))
+            print"self.dictMaterial=%s" %(self.dictMaterial)
+        except ValueError, err:
+            raise ValueError, str(err)
 #-------------------------------------------------------------------
 
    def generSOURCE(self,obj):
         """preparation du bloc correspondant a une source du fichier PHYS"""
         if self.debug: 
-            print ("generation source obj valeur " , obj.valeur)
+            print "generation source obj valeur = %s" % obj.valeur
         texte=""
         try :
             nomSource = obj.getSdname() 
             self.dictSource[nomSource]=obj.valeur # dictionnaire
             self.dictSource[nomSource]['milieux'] = [] # liste ordonnée des groupes associés à cette source
-            print ("mon dico des sources=" ,self.dictSource)
-        except ValueError as  err:
-            raise ValueError( str(err))
+            print"mon dico des sources=%s" %(self.dictSource)
+        except ValueError, err:
+            raise ValueError, str(err)
 
 #---------------------------------------------------------------------------------------
 # traitement fichier PHYS
@@ -783,7 +782,7 @@ class CARMEL3DTV0Generator(PythonGenerator):
 
    def generBLOC_PARAMETERS(self,obj):
         if self.debug: 
-            print ("generation parameters " , obj.valeur    )
+            print "generation parameters obj.valeur = %s" % obj.valeur    
 
         self.identification = obj.valeur["Identification_du_Modele"]
         self.fichierMaillage = obj.valeur["Fichier_maillage"]
@@ -802,17 +801,18 @@ class CARMEL3DTV0Generator(PythonGenerator):
 
    def generBLOC_SYMETRIE(self, obj): 
         if self.debug: 
-            print ("generation de la symetrie obj.valeur " , obj.valeur  )
+            print "generation de la symetrie obj.valeur = %s" % obj.valeur  
 
         try:
             self.listSymetrie.append(obj.valeur)
-        except ValueError as  err:
-            raise ValueError( str(err))
+            print"ma liste symetrie =%s" %(self.listSymetrie)
+        except ValueError, err:
+            raise ValueError, str(err)
 #----------------------------------------------------------------------------------------
 
    def generMOUVEMENT(self, obj):
         if self.debug:
-            print ("generation du mouvement obj.valeur " , obj.valeur  )
+            print "generation du mouvement obj.valeur = %s" % obj.valeur
         
         try:
             nom = obj.getSdname()
@@ -820,26 +820,26 @@ class CARMEL3DTV0Generator(PythonGenerator):
             self.dictMouvement[nom] = {'ordre': self.nombreMouvements, 'valeurs': obj.valeur}
             self.dictMouvement['ordre'].append(nom)
             if self.debug:
-                print ("self.dictMouvement " ,self.dictMouvement)
-                print ("self.nombreMouvements " ,self.nombreMouvements)
-        except ValueError as  err:
-            raise valueError(  str(err))
+                print "self.dictMouvement =%s" %(self.dictMouvement)
+                print "self.nombreMouvements =%i" %(self.nombreMouvements)
+        except ValueError,  err:
+            raise valueError,  str(err)
 #----------------------------------------------------------------------------------------
    def generSTRANDED_INDUCTOR_GEOMETRY(self, obj):
         """preparation du bloc STRANDED_INDUCTOR_GEOMETRY"""
         if self.debug: 
-            print ("generation strand obj valeur =" , obj.valeur)
+            print "generation strand obj valeur = %s" % obj.valeur
         try :
             nomStrand = obj.getSdname() 
             self.dictStrand[nomStrand]=obj.valeur
-            print ("mon dico des stranded inductor geometry" ,self.dictStrand)
+            print"mon dico des stranded inductor geometry=%s" %(self.dictStrand)
 
-        except ValueError as  err:
-            raise valueError(  str(err))
+        except ValueError, err:
+            raise ValueError, str(err)
 
    def generPOST_TRAITEMENT(self, obj):
         if self.debug: 
-            print ("generation post traitement obj.valeur " , obj.valeur    )
+            print "generation post traitement obj.valeur = %s" % obj.valeur    
         self.carteChamp=obj.valeur["Cartes_des_champs"]
         self.carteCourantInduit=obj.valeur["Cartes_des_courants_induits"]
         self.carteForce=obj.valeur["Cartes_des_forces"]
@@ -860,7 +860,8 @@ class CARMEL3DTV0Generator(PythonGenerator):
         3 formats possibles : 2 listes (anciennement tuples?)  et 1 nombre complexe
         """
         if self.debug:
-            print ("formatage")
+            print "formatage"
+            print "type : %(type_nb_c)s pour %(nb_c)s" % {'type_nb_c': type(nbC), 'nb_c': nbC}
         nbformate =""
         if isinstance(nbC,(tuple,list)):
             if nbC[0] == "'RI'" :
@@ -870,7 +871,7 @@ class CARMEL3DTV0Generator(PythonGenerator):
         else:
             nbformate = "COMPLEX " + str(nbC.real)+" "+str(nbC.imag)
         if self.debug: 
-            print ("nbformate " , nbformate)
+            print "nbformate : %s" % nbformate
         return nbformate
 
 
index 4e719c9f3f0d7ab7fba0c64af85fce73ab804fc8..752bb175849683d3627a66af84b0780272f31daa 100755 (executable)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -292,7 +292,7 @@ class CARMELCNDGenerator(PythonGenerator):
         s=PythonGenerator.generMCSIMP(self,obj)
         if hasattr(obj.etape,'sdnom'): clef=obj.etape.sdnom+"____"
         else: clef=""
-        for i in obj.get_genealogie() :
+        for i in obj.getGenealogie() :
             clef=clef+"__"+i
         self.dictMCVal[clef]=obj.valeur
 
index 41a2d45c9d0f1641de3a783987256dd5c4d03084..26aaf2fbf632109239d075e09620a9c4ebb4048b 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -152,7 +152,7 @@ class CARMELCSGenerator(PythonGenerator):
 #        print 'generMCSIMP self.texteDico = ',self.texteDico
         if hasattr(obj.etape,'sdnom'): clef=obj.etape.sdnom+"____"
         else: clef=""
-        for i in obj.get_genealogie() :
+        for i in obj.getGenealogie() :
             clef=clef+"__"+i
         self.dictMCVal[clef]=obj.valeur
 
index 241d0bd9894e2a6f8f5b53dd7a90e04470f6b836..d2bf995af944806c77e96e770eb2ecebc40790eb 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -143,7 +143,7 @@ class SEPGenerator(PythonGenerator):
       Remplit le dictionnaire des MCSIMP si nous ne sommes ni dans une loi, ni dans une variable
       """
       clef=""
-      for i in obj.get_genealogie() :
+      for i in obj.getGenealogie() :
          clef=clef+"__"+i
       #self.dictMCVal[obj.nom]=obj.valeur
       self.dictMCVal[clef]=obj.valeur
index 057d738dda5948a49a96c500dbd9eb0697be1882..780e0b3a4b12ad701c595eaad7bad5db38d1e9ab 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -32,8 +32,8 @@ import traceback
 import types,re,os
 from Extensions.i18n import tr
 from .generator_python import PythonGenerator
-#ListeConcatene=('ridge_names','topo_names','geom_names','elset_names','faset_names','liset_names','nset_names','center','normal','dir')
-ListeConcatene=('ridge_names','topo_names','geom_names','elset_names','faset_names','liset_names','nset_names')
+#ListeConcatene=('ridge_names','topo_names','geom_names','elsetNames','fasetNames','lisetNames','nsetNames','center','normal','dir')
+ListeConcatene=('ridge_names','topo_names','geom_names','elsetNames','fasetNames','lisetNames','nsetNames')
 ListeConcatene2=('center','normal','dir')
 ListeConcatene3=('ra','rb')
 if_ellipse=False
index d544321fa40b8b96ddcb20094c2dd5f2733cc46a..f5f2c4478099b1b77e8891ef0b5a20d04ccb43ce 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -96,7 +96,7 @@ class AsterGenerator:
          self.text=string.join(liste)
       elif format == 'beautifie':
          jdc_formate = Formatage(liste,sep=':',l_max=72)
-         self.text=jdc_formate.formate_jdc()
+         self.text=jdc_formate.formateJdc()
       else:
          raise EficasException(tr("Format pas implemente : %s", format))
       return self.text
@@ -262,7 +262,7 @@ class AsterGenerator:
             Methode particuliere pour les objets de type FORMULE
         """
         l=[]
-        nom = obj.get_nom()
+        nom = obj.getNom()
         if nom == '' : nom = 'sansnom'
         if len(obj.mc_liste)>0:
             l.append(nom + ' = FORMULE(')
@@ -463,7 +463,7 @@ class AsterGenerator:
           Convertit un objet derive d'ASSD en une chaine de caracteres à la
           syntaxe asterv5
       """
-      return obj.get_name()
+      return obj.getName()
 
    def generMCFACT(self,obj):
       """
index 94f901da7e7ba58fcb8519e6ecec39bba828d962..4666fa4ff5cd031d953a7e748fa0b54fb8e02f9c 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -77,7 +77,7 @@ class Cuve2dgGenerator(PythonGenerator):
         "IncrementMaxTemperature" : "DTPREC",
         "ChoixExtractionTransitoires" : "CHOIEXTR",
         "IncrementMaxTempsAffichage" : "DTARCH",
-        "TraitementGeometrie" : "TYPEGEOM",
+        "traitementGeometrie" : "TYPEGEOM",
         "RayonInterne" : "RINT",
         "RayonInterne_mess" : "RINT_MESSAGE",
         "RayonExterne" : "REXT",
@@ -287,7 +287,7 @@ class Cuve2dgGenerator(PythonGenerator):
         "IncrementMaxTemperature" : "increment max de temp/noeud/instant (degC)",
         "ChoixExtractionTransitoires" : "choix d'extraction de transitoires de temp et contraintes",
         "IncrementMaxTempsAffichage" : "increment max de temps pour affichage (s)",
-        "TraitementGeometrie" : "traitement de la geometrie de la cuve : {GEOMETRIE, MAILLAGE}",
+        "traitementGeometrie" : "traitement de la geometrie de la cuve : {GEOMETRIE, MAILLAGE}",
         "RayonInterne" : "rayon interne (m)",
         "RayonInterne_mess" : "affichage ecran du rayon interne (m)",
         "RayonExterne" : "rayon externe (m)",
@@ -428,7 +428,7 @@ class Cuve2dgGenerator(PythonGenerator):
         "IncrementMaxTemperature" : "0.1",
         "ChoixExtractionTransitoires" : "NON",
         "IncrementMaxTempsAffichage" : "1000.",
-        "TraitementGeometrie" : "GEOMETRIE",
+        "traitementGeometrie" : "GEOMETRIE",
         "RayonInterne" : "1.994",
         "RayonInterne_mess" : "NON",
         "RayonExterne" : "2.2015",
@@ -568,7 +568,7 @@ class Cuve2dgGenerator(PythonGenerator):
         "IncrementMaxTemperature" : "OPTIONS",
         "ChoixExtractionTransitoires" : "OPTIONS",
         "IncrementMaxTempsAffichage" : "OPTIONS",
-        "TraitementGeometrie" : "DONNEES DE LA CUVE",
+        "traitementGeometrie" : "DONNEES DE LA CUVE",
         "RayonInterne" : "DONNEES DE LA CUVE",
         "RayonInterne_mess" : "DONNEES DE LA CUVE",
         "RayonExterne" : "DONNEES DE LA CUVE",
@@ -707,7 +707,7 @@ class Cuve2dgGenerator(PythonGenerator):
    def generMCSIMP(self,obj) :
        self.dico_mot[obj.nom]=obj.valeur
        clef=""
-       for i in obj.get_genealogie() :
+       for i in obj.getGenealogie() :
            clef=clef+"_"+i
        self.dico_genea[clef]=obj.valeur
        s=PythonGenerator.generMCSIMP(self,obj)
@@ -888,9 +888,9 @@ class Cuve2dgGenerator(PythonGenerator):
 
       # Rubrique DONNEES DE LA CUVE
       self.texteCuve += self.rubrique('DONNEES DE LA CUVE')
-      if self.dico_mot.has_key('TraitementGeometrie'):
-         self.texteCuve += self.affecteValeur('TraitementGeometrie', self.valeurproposee[str(self.dico_mot["TraitementGeometrie"])])
-         if str(self.dico_mot["TraitementGeometrie"])=='Topologie':
+      if self.dico_mot.has_key('traitementGeometrie'):
+         self.texteCuve += self.affecteValeur('traitementGeometrie', self.valeurproposee[str(self.dico_mot["traitementGeometrie"])])
+         if str(self.dico_mot["traitementGeometrie"])=='Topologie':
             self.texteCuve+="# - si MAILLAGE, fournir NBNO et liste des abscisses (m)"+"\n"
             self.texteCuve+="# - si GEOMETRIE, fournir (RINT, RINT_MESSAGE),"+"\n"
             self.texteCuve+="#                         (REXT, REXT_MESSAGE),"+"\n"
@@ -909,7 +909,7 @@ class Cuve2dgGenerator(PythonGenerator):
             self.texteCuve += self.ecritVariable('LigamentExterneMin_mess')
             self.texteCuve+="#"+"\n"
             self.texteCuve += self.ecritVariable('NombreNoeudsMaillage')
-         if str(self.dico_mot["TraitementGeometrie"])=='Maillage':
+         if str(self.dico_mot["traitementGeometrie"])=='Maillage':
             self.texteCuve+="# - si MAILLAGE, fournir NBNO et liste des abscisses (m)"+"\n"
             self.texteCuve+="# - si GEOMETRIE, fournir (RINT, RINT_MESSAGE),"+"\n"
             self.texteCuve+="#                         (REXT, REXT_MESSAGE),"+"\n"
@@ -920,7 +920,7 @@ class Cuve2dgGenerator(PythonGenerator):
             self.texteCuve += self.ecritVariable('NombreNoeudsMaillage')
             self.imprime(1,(self.dico_mot["ListeAbscisses"]))
       else :
-         self.texteCuve += self.affecteValeurDefaut('TraitementGeometrie')
+         self.texteCuve += self.affecteValeurDefaut('traitementGeometrie')
          self.texteCuve+="# - si MAILLAGE, fournir NBNO et liste des abscisses (m)"+"\n"
          self.texteCuve+="# - si GEOMETRIE, fournir (RINT, RINT_MESSAGE),"+"\n"
          self.texteCuve+="#                         (REXT, REXT_MESSAGE),"+"\n"
index dcbdc9e8754248f2ced691733e96ca14dc715265..a73e84648b2d3cfd1f3756c09b3b89e5427a6347 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -76,7 +76,7 @@ class FileFromTemplateGenerator(PythonGenerator):
         """
         short_keyword = obj.nom.strip()
         long_keyword = ""
-        for i in obj.get_genealogie()[:-1]:
+        for i in obj.getGenealogie()[:-1]:
             long_keyword += i + "."
         long_keyword += short_keyword
         self.kw_dict[short_keyword] = obj.valeur
index 0f1958cccbfa7720f4eec399ea8186c9c02ac4a1..e78628f8f8808b326008beccdff1d78998638974 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 3fa2dd9bd66463ba86e5e1f8ee288f5bdf75d824..11cf9d655256dd9e3073f4357263e272c5d95a59 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -87,7 +87,7 @@ class IniGenerator(object):
          Tous les mots-cles facteurs sont convertis en sections
          Un mot-cle facteur ne peut contenir que des mots-cles simples. Sinon => erreur
       """
-      liste_mcfact=[]
+      listeMcFact=[]
       sect_defaut=''
       if isinstance(obj,MCList):
         if len(obj.data) > 1:
@@ -100,9 +100,9 @@ class IniGenerator(object):
           if len(mocle.data) > 1:
             raise EficasException(tr("Pas supporte"))
           else:
-            liste_mcfact.append(self.generMCFACT(mocle.data[0]))
+            listeMcFact.append(self.generMCFACT(mocle.data[0]))
         elif isinstance(mocle,MCFACT):
-          liste_mcfact.append(self.generMCFACT(mocle))
+          listeMcFact.append(self.generMCFACT(mocle))
         elif isinstance(mocle,MCSIMP):
           sect_defaut=sect_defaut+self.generMCSIMP(mocle)
         else:
@@ -111,7 +111,7 @@ class IniGenerator(object):
       self.text=''
       if sect_defaut != '':
          self.text="[DEFAULT]\n"+sect_defaut
-      self.text=self.text + ''.join(liste_mcfact,'\n')
+      self.text=self.text + ''.join(listeMcFact,'\n')
       return self.text
 
    def generMCFACT(self,obj):
index 2f4b3716ef196400f2c296f0fcb0db7ca33f7145..70e258c9ee7ab94b83ebf4956b4429940b60f7ad 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index e603d902ea5c2871c50a8380b4398f66304c1b26..a2146e227995c95a8372a00caf6be917a092731e 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index bf0d063db9e891c2e5360178ec1c16e0c7ae49d7..ab93e965fdcba18e35199b90af6e51787d12cf96 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -84,7 +84,7 @@ class OpenturnsGenerator(PythonGenerator):
        Remplit le dictionnaire des MCSIMP si nous ne sommes ni dans une loi, ni dans une variable
        """
        s=PythonGenerator.generMCSIMP(self,obj)
-       if not( type(obj.valeur) in (list, tuple)) and (obj.get_min_max()[1] != 1):
+       if not( type(obj.valeur) in (list, tuple)) and (obj.getMinMax()[1] != 1):
           valeur=(obj.valeur,)
        else :
           valeur=obj.valeur
@@ -124,7 +124,7 @@ class OpenturnsGenerator(PythonGenerator):
 
    def genereXML(self):
        print "IDM: genereXML dans generator_openturns_wrapper.py"
-       #print "appli.CONFIGURATION=",self.appli.CONFIGURATION.__dict__
+       #print "appli.maConfiguration=",self.appli.maConfiguration.__dict__
        if self.listeFichiers != [] :
           self.dictMCVal["Files"]=self.listeFichiers
        print "dictMCVal", self.dictMCVal, "dictVariables", self.dictVariables
index 6a2311112af507c3bf7a61c423e8fc07c0e76f93..86b835432c89748cd2b98aa2ad560e92c12fd20f 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index ac9fcf9c29c24f6f77279f12db6c63d5a8522f78..a554bc2ae92912f9447e29f2e9b867669c72639c 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -73,7 +73,7 @@ class PythonGenerator(generator_python.PythonGenerator):
             Méthode particulière pour les objets de type FORMULE
         """
         l=[]
-        nom = obj.get_nom()
+        nom = obj.getNom()
         if nom == '' : nom = 'sansnom'
         l.append(nom + ' = FORMULE(')
         for v in obj.mc_liste:
index 2bc21caec510fca2b00cde00389718efd4a8a590..d7a1dd034a7a4481d3ad30f35dedafb1b0161da8 100755 (executable)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
+# Copyright (C) 2007-2021   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
diff --git a/mascaret/CMakeLists.txt b/mascaret/CMakeLists.txt
deleted file mode 100644 (file)
index deb3c65..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-#  Copyright (C) 2012-2013 EDF
-#
-#  This file is part of SALOME HYDRO module.
-#
-#  SALOME HYDRO module is free software: you can redistribute it and/or modify
-#  it under the terms of the GNU General Public License as published by
-#  the Free Software Foundation, either version 3 of the License, or
-#  (at your option) any later version.
-#
-#  SALOME HYDRO module is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with SALOME HYDRO module.  If not, see <http://www.gnu.org/licenses/>.
-
-# --- Python files ---
-
-SET(PYFILES
-  __init__.py
-  appli.py
-  configuration_mascaret.py
-  prefs_mascaret.py
-  prefs.py
-  mascaret_V7_cata.py
-)
-
-# --- rules ---
-
-SALOME_INSTALL_SCRIPTS("${PYFILES}" ${SALOME_INSTALL_PYTHON}/salome/hydro/mascaret/eficas)
diff --git a/mascaret/__init__.py b/mascaret/__init__.py
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/mascaret/appli.py b/mascaret/appli.py
deleted file mode 100644 (file)
index 1fd1326..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-#  Copyright (C) 2012-2013 EDF
-#
-#  This file is part of SALOME HYDRO module.
-#
-#  SALOME HYDRO module is free software: you can redistribute it and/or modify
-#  it under the terms of the GNU General Public License as published by
-#  the Free Software Foundation, either version 3 of the License, or
-#  (at your option) any later version.
-#
-#  SALOME HYDRO module is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with SALOME HYDRO module.  If not, see <http://www.gnu.org/licenses/>.
-
-import os
-import sys
-import re
-
-from PyQt5.QtWidgets import QMessageBox 
-
-
-import salome
-import SalomePyQt
-sgPyQt = SalomePyQt.SalomePyQt()
-
-from salome.kernel.logger import Logger
-from salome.kernel import termcolor
-logger = Logger("salome.hydro.mascaret.eficas.appli",
-                color = termcolor.GREEN_FG)
-
-import eficasSalome
-
-from salome.hydro.study import HydroStudyEditor
-
-class EficasForMascaretAppli(eficasSalome.MyEficas):
-    """
-    This class launches Eficas and adds entries for the created files in
-    MASCARET component in the study tree. The messages in this class are in
-    french because they are displayed in Eficas interface.
-
-    :type  fichier: string
-    :param fichier: path of an Eficas file to open
-
-    """
-    def __init__(self, fichier = None, version = None):
-        self.ed = HydroStudyEditor()
-        self.codedir = os.path.dirname(__file__)
-        sys.path[:0] = [self.codedir]
-        eficasSalome.MyEficas.__init__(self, sgPyQt.getDesktop(),
-                                       "mascaret",
-                                       fichier, version = version)
-        sgPyQt.createView("Eficas Mascaret", self)
-
-    def addJdcInSalome(self, jdcPath):
-        """
-        Add the newly created file in Salome study
-        """
-        try:
-            self.ed.find_or_create_mascaret_case(jdcPath)
-        except Exception, exc:
-            msgError = "Can't add file to Salome study tree"
-            logger.exception(msgError)
-            QMessageBox.warning(self, self.tr("Warning"),
-                                self.tr("%s. Reason:\n%s\n\nSee logs for "
-                                        "more details." % (msgError, exc)))
-        salome.sg.updateObjBrowser(0)
-
-    def closeEvent(self, event):
-        while self.codedir in sys.path:
-            sys.path.remove(self.codedir)
-        eficasSalome.MyEficas.closeEvent(self, event)
diff --git a/mascaret/configuration_mascaret.py b/mascaret/configuration_mascaret.py
deleted file mode 100644 (file)
index 7695ed4..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-#  Copyright (C) 2012-2013 EDF
-#
-#  This file is part of SALOME HYDRO module.
-#
-#  SALOME HYDRO module is free software: you can redistribute it and/or modify
-#  it under the terms of the GNU General Public License as published by
-#  the Free Software Foundation, either version 3 of the License, or
-#  (at your option) any later version.
-#
-#  SALOME HYDRO module is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with SALOME HYDRO module.  If not, see <http://www.gnu.org/licenses/>.
-
-import os
-
-from Editeur.catadesc import CatalogDescription
-from InterfaceQT4.configuration import CONFIG_BASE
-
-class CONFIG(CONFIG_BASE):
-
-    def __init__(self, appli, repIni):
-        """
-        This class stores the configuration parameters for Eficas
-        """
-        CONFIG_BASE.__init__(self, appli, repIni)
-
-        # Configuration parameters
-        self.savedir    = os.getenv("HOME")
-        self.catalogues = (CatalogDescription("mascaret_V7",
-                                              os.path.join(repIni, "mascaret_V7_cata.py")),)
-        self.lang = 'fr'
-
-    def save_params(self):
-        pass
-
-def make_config(appli, rep):
-    return CONFIG(appli, rep)
-
-def make_config_style(appli, rep):
-    return None
diff --git a/mascaret/mascaret_V7_cata.py b/mascaret/mascaret_V7_cata.py
deleted file mode 100644 (file)
index c3a97a3..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-#  Copyright (C) 2012-2013 EDF
-#
-#  This file is part of SALOME HYDRO module.
-#
-#  SALOME HYDRO module is free software: you can redistribute it and/or modify
-#  it under the terms of the GNU General Public License as published by
-#  the Free Software Foundation, either version 3 of the License, or
-#  (at your option) any later version.
-#
-#  SALOME HYDRO module is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with SALOME HYDRO module.  If not, see <http://www.gnu.org/licenses/>.
-
-from Accas import *
-
-JdC = JDC_CATA(regles = (UN_PARMI('MASCARET',)),
-                        )
-
-MASCARET = PROC(
-    nom = "MASCARET", op = None,
-    fr = u"Définition d'un cas d'étude Mascaret",
-    ang = u"Definition of a Mascaret study case",
-    FICHIER_DICO = SIMP(statut = "o", typ = 'Fichier',
-                        fr = u"Fichier Dictionnaire",
-                        ang = u"Dictionary file"),
-    FICHIER_MOT_CLE = SIMP(statut = "o",
-            typ = ('Fichier', 'Fichiers CAS (*.cas);;Tous les fichiers (*)',),
-            fr = u"Fichier Mot Clé",
-            ang = u"Keyword file"),
-    FICHIER_GEOMETRIE = SIMP(statut = "f",
-            typ = ('Fichier', 'Fichiers GEO (*.geo);;Tous les fichiers (*)',),
-            fr = u"Fichier de géométrie",
-            ang = u"Geometry file"),
-    FICHIER_LOI = FACT(statut = 'f', max = '**',
-        NOM = SIMP(statut = "o",
-                   typ = ('Fichier', 'Fichiers LOI (*.loi);;Tous les fichiers (*)',),
-                   fr = u"Fichier de lois",
-                   ang = u"Laws file"),
-                       ),
-    FICHIER_ABAQUES = SIMP(statut = "f",
-            typ = ('Fichier', 'Tous les fichiers (*)',),
-            fr = u"Fichier abaques",
-            ang = u"Abacus file"),
-    FICHIER_CASIER = SIMP(statut = "f",
-            typ = ('Fichier', 'Tous les fichiers (*)',),
-            fr = u"Fichier casier",
-            ang = u"Compartment file"),
-    FICHIER_DAMOCLE = SIMP(statut = "f",
-            typ = ('Fichier', 'Tous les fichiers (*)',),
-            fr = u"Fichier damocle",
-            ang = u"Damocle file"),
-    FICHIER_LIG = SIMP(statut = "o",
-            typ = ('Fichier', 'Fichiers LIG (*.lig);;Tous les fichiers (*)',),
-            fr = u"Fichier LIG",
-            ang = u"LIG file"),
-    LISTING = SIMP(statut = "f",
-            typ = ('Fichier', 'Tous les fichiers (*)', "Sauvegarde"),
-            fr = u"Fichier de listing",
-            ang = u"Listing file"),
-    LISTING_CASIER = SIMP(statut = "f",
-            typ = ('Fichier', 'Tous les fichiers (*)', "Sauvegarde"),
-            fr = u"Fichier de listing casier",
-            ang = u"Compartment listing file"),
-    LISTING_LIAISON = SIMP(statut = "f",
-            typ = ('Fichier', 'Tous les fichiers (*)', "Sauvegarde"),
-            fr = u"Fichier de listing liaison",
-            ang = u"Link listing file"),
-    RESULTAT = SIMP(statut = "f",
-            typ = ('Fichier', 'Tous les fichiers (*)', "Sauvegarde"),
-            fr = u"Fichier de résultat",
-            ang = u"Result file"),
-    RESULTAT_CASIER = SIMP(statut = "f",
-            typ = ('Fichier', 'Tous les fichiers (*)', "Sauvegarde"),
-            fr = u"Fichier de résultat casier",
-            ang = u"Compartment result file"),
-    RESULTAT_LIAISON = SIMP(statut = "f",
-            typ = ('Fichier', 'Tous les fichiers (*)', "Sauvegarde"),
-            fr = u"Fichier de résultat liaison",
-            ang = u"Link result file"),
-    VARIABLE_SORTIE = FACT(statut = 'f', max = '**',
-                           fr = u"Variable de sortie du calcul",
-                           ang = u"Computation output variable",
-        NOM = SIMP(statut = "o", typ = 'TXM',
-                   fr = u"Nom de la variable",
-                   ang = u"Variable name"),
-        VARIABLE_MASCARET = SIMP(statut = "o", typ = 'TXM',
-                   fr = u'Variable Mascaret (ex : "Etat.Z(1,0,0)")',
-                   ang = u'Mascaret variable (ex : "Etat.Z(1,0,0)")'),
-                           ),
-    VARIABLE_ENTREE = FACT(statut = 'f', max = '**',
-                           fr = u"Variable d'entrée du calcul",
-                           ang = u"Computation input variable",
-        NOM = SIMP(statut = "o", typ = 'TXM',
-                   fr = u"Nom de la variable",
-                   ang = u"Variable name"),
-        VARIABLE_MASCARET = SIMP(statut = "o", typ = 'TXM',
-                   fr = u'Variable Mascaret (ex : "Modele.Lois.Debit(1,1-2,0)")',
-                   ang = u'Mascaret variable (ex : "Modele.Lois.Debit(1,1-2,0)")'),
-                           ),
-)
-TEXTE_NEW_JDC="MASCARET()"
diff --git a/mascaret/prefs.py b/mascaret/prefs.py
deleted file mode 100644 (file)
index d0e8113..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#  Copyright (C) 2012-2013 EDF
-#
-#  This file is part of SALOME HYDRO module.
-#
-#  SALOME HYDRO module is free software: you can redistribute it and/or modify
-#  it under the terms of the GNU General Public License as published by
-#  the Free Software Foundation, either version 3 of the License, or
-#  (at your option) any later version.
-#
-#  SALOME HYDRO module is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with SALOME HYDRO module.  If not, see <http://www.gnu.org/licenses/>.
-
-code = "mascaret"
diff --git a/mascaret/prefs_mascaret.py b/mascaret/prefs_mascaret.py
deleted file mode 100644 (file)
index ed30a09..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-#  Copyright (C) 2012-2013 EDF
-#
-#  This file is part of SALOME HYDRO module.
-#
-#  SALOME HYDRO module is free software: you can redistribute it and/or modify
-#  it under the terms of the GNU General Public License as published by
-#  the Free Software Foundation, either version 3 of the License, or
-#  (at your option) any later version.
-#
-#  SALOME HYDRO module is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with SALOME HYDRO module.  If not, see <http://www.gnu.org/licenses/>.
-
-import os
-import sys
-
-repIni = os.path.dirname(__file__)
-INSTALLDIR = os.getenv("EFICAS_ROOT")
-closeAutreCommande=True
-closeFrameRechercheCommande=True
-closeArbre=True
-closeCopier=True
-suiteTelemac=True
-
diff --git a/monCode/Global_Condition_Cata.py b/monCode/Global_Condition_Cata.py
deleted file mode 100755 (executable)
index 0239634..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-# coding: utf-8
-from Accas import *
-#class myModel(ASSD): pass
-
-JdC = JDC_CATA(code='GLOB_COND',
-               execmodul=None,
-               regles=(AU_PLUS_UN('TYPES',),
-                       AU_PLUS_UN('INITS',),
-                                          AU_PLUS_UN('DATAS',),
-                       #A_CLASSER('TYPES','INITS','DATAS')
-                       )
-);
-
-TYPES=PROC(nom='TYPES',op=None,UIinfo={"groupes":("Global_Workflow",)}, #sd_prod=myModel,
-    MODE=SIMP(
-               typ='TXM',
-               statut='o',
-                position='global_jdc',
-               into=("MANUAL","AUTOMATIC","MIXED"),
-               defaut="AUTOMATIC",
-               ),
-);
-
-liste_condition=('INITS', 'DATAS')  
-
-INITS=PROC(nom='INITS',op=None,UIinfo={"groupes":("INI_param",)},
-       ini_manual=BLOC(condition="MODE == 'MANUAL'",
-               Informer=SIMP(statut='o',typ='TXM', defaut="INITS MANUAL"),
-       ),
-       ini_auto=BLOC(condition="MODE == 'AUTOMATIC'",
-               Informer=SIMP(statut='o', typ='TXM', defaut="INITS AUTOMATIC",),
-       ),
-       ini_mixed=BLOC(condition="MODE == 'MIXED'",
-               Informer=SIMP(statut='o',typ='TXM', defaut="INITS MIXED",),
-       ),
-);
-DATAS=PROC(nom='DATAS',op=None,UIinfo={"groupes":("DATAS",)},
-    data_manual=BLOC(condition="MODE == 'MANUAL'",
-               Informer=SIMP(statut='o',typ='TXM', defaut="DATAS MANUAL",
-                       ),
-       ),
-       data_auto=BLOC(condition="MODE == 'AUTOMATIC'",
-               Informer=SIMP(statut='o', typ='TXM', defaut="DATAS AUTOMATIC",
-                       ),
-       ),
-       data_mixed=BLOC(condition="MODE == 'MIXED'",
-               Informer=SIMP(statut='o',typ='TXM', defaut="DATAS MIXED",
-                       ),
-       ),
-);
-
-Classement_Commandes_Ds_Arbre=('TYPES','INITS','DATAS')
-Ordre_Des_Commandes = ('TYPES','INITS','DATAS')
diff --git a/monCode/Many_Concepts_52992_Cata.py b/monCode/Many_Concepts_52992_Cata.py
deleted file mode 100644 (file)
index 13145b9..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-# coding: utf-8
-
-from Accas import *
-
-#class myMesh(ASSD): pass
-class myModel(ASSD): pass
-
-JdC = JDC_CATA(code='PATTERNS',
-               execmodul=None,
-               regles=(AU_PLUS_UN('DEBUT', 'POURSUITE'),
-                       AU_PLUS_UN('AFFE_MODELE'),
-                       AU_PLUS_UN('FIN'),
-                       A_CLASSER(('DEBUT', 'POURSUITE'), 'FIN')))
-
-def mySeveral(suffix,num):
-    out=list()
-    for i in range(1,num+1):
-        out.append(suffix+str(i).zfill(2))
-    return out
-
-switch_facultatif=True #change 'o' to 'f' of some widgets in the loop
-#empty_defauts=True
-
-def myBloc(num):
-    myNum=str(num).zfill(2)
-    list_item_body="Item_"+myNum+"_"
-    defauts0=["","",True,"'phenomena_"+myNum+"'",mySeveral(list_item_body,2)] #presence of default values
-    defauts_mask=[False,False,True,True,False] #switch off defaults of some types
-    defauts=list()
-    for id0 in range(len(defauts0)):
-        if defauts_mask[id0]:
-            item=", defaut="+str(defauts0[id0])
-        else:
-            item=""
-        defauts.append(item)
-    #print defauts
-
-    opt=['o','o','o','o','o'] #initial default obligation of items in FACT groups
-    #make different widgets optional, one by one:
-    myLen=len(opt)
-    if switch_facultatif:
-        make_f=(num)%myLen
-        opt[make_f]='f'
-    #print opt
-    #if empty_defauts:
-    #    clean_defaut=num%myLen
-
-    myString="BLOC(condition=\"MESH==\'mesh_"+myNum+"'\""+defauts[0]+", AFFE=FACT(statut='"+opt[1]+"'"+defauts[1]+", ALL=SIMP(statut='"+opt[2]+"', typ=bool,ang='ALL "+myNum+" help EN'"+defauts[2]+"),PHENOMENA=SIMP(statut='"+opt[3]+"',typ='TXM',into=mySeveral('phenomena_',"+str(num)+")"+defauts[3]+"), MODELISATION=SIMP(statut='"+opt[4]+"',typ='TXM', min=4,max='**',into=mySeveral('"+list_item_body+"',"+str(num*4)+")"+defauts[4]+", ang='Input "+myNum+" list EN', fr='Input "+myNum+" list FR'),),)"
-    print myString
-    return eval(myString)
-
-DEBUT=PROC(nom="DEBUT", op=10, repetable='n', UIinfo={"groupes":("Group1",)}, ang="Debut Eng help",
-        PAR_LOT=SIMP(ang="Debut Par Lot help En",statut='o',typ=bool, defaut=True),
-);
-
-AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=myModel,
-    UIinfo={"groupes":("Group1",)},
-    ang="Model mesh definition EN",
-    reentrant='n',
-    regles=(AU_MOINS_UN('APPROVED')),
-    MESH=SIMP(statut='o',typ='TXM',into=mySeveral("mesh_",4) ,defaut="mesh_01"),
-       APPROVED=SIMP(statut="f", typ=bool), # presence of this item will validate the whole group
-    block_mesh_01=myBloc(1),
-    block_mesh_02=myBloc(2),
-    block_mesh_03=myBloc(3),
-    block_mesh_04=myBloc(4),
-)
-
-
-FIN=PROC(nom="FIN",op=9999,repetable='n',ang="Finish help EN",UIinfo={"groupes":("Group1",)},
-    FORMAT_HDF =SIMP(ang="Save HDF EN",statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), 
-);
-
-Classement_Commandes_Ds_Arbre=('DEBUT','MESH_TYPES','AFFE_MODELE','FIN')
-
-Ordre_Des_Commandes = ('DEBUT','MESH_TYPES','AFFE_MODELE','FIN')
diff --git a/monCode/Matrix_Cata.py b/monCode/Matrix_Cata.py
deleted file mode 100644 (file)
index 268a77b..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-# coding: utf-8
-from Accas import *
-
-class loi      ( ASSD ) : pass
-class variable ( ASSD ) : pass
-
-class Matrice:
-  def __init__(self,nbLigs=None,nbCols=None,methodeCalculTaille=None,formatSortie="ligne",valSup=None,valMin=None,structure=None):
-      self.nbLigs=nbLigs
-      self.nbCols=nbCols
-      self.methodeCalculTaille=methodeCalculTaille
-      self.formatSortie=formatSortie
-      self.valSup=valSup
-      self.valMin=valMin
-      self.structure=structure
-
-  def __convert__(self,valeur):
-    # Attention ne verifie pas grand chose
-    if type(valeur) != types.ListType :
-      return None
-    return valeur
-
-  def info(self):
-      return "Matrice %s x %s" % (self.nbLigs, self.nbCols)
-
-      __repr__=info
-      __str__=info
-
-
-
-class myModel(ASSD): pass
-
-JdC = JDC_CATA(code='PATTERNS',
-               execmodul=None,
-               regles=(AU_MOINS_UN ( 'CORRELATION' ),
-                )
-)
-
-DETERMINISTICVARIABLE = OPER ( nom = "DETERMINISTICVARIABLE",
-                               sd_prod = variable,
-                               op = None,
-                               fr = "Variable deterministe",
-                               ang = "Deterministic variable",
-            
-  N = SIMP ( statut = 'o', typ = "TXM", fr = "Nom", ang = "Name", defaut = "Var1" ),
-  T = SIMP ( statut = 'o', defaut = "in", into = ( "in" , "out", ), typ = "TXM", fr = "Type", ang = "Type" ),
-  R = SIMP ( statut = 'o', defaut = 0, typ = "I", fr = "Rang", ang = "Rank" ),
-)
-
-DISTRIBUTION = OPER ( nom = "DISTRIBUTION",
-                      sd_prod = loi,
-                      op = 68,
-                      fr = "Definitions des lois marginales utilisees par les variables d'entree", 
-                      
-  R = SIMP ( statut = "o", typ = "R", max = 1, val_min = 0., fr = "Parametre R de la loi | R > 0", ang = "R parameter | R > 0", defaut = 0.5 ),
-  # T > R
-  T = SIMP ( statut = "o", typ = "R", max = 1, val_min = 0., fr = "Parametre T de la loi | T > R", ang = "T parameter | T > R", defaut = 0.7 ),
-  A = SIMP ( statut = "o", typ = "R", max = 1, fr = "Borne inferieure du support de la loi", ang = "Support lower bound", defaut = 0.1 ),
-  # B > A
-  B = SIMP ( statut = "o", typ = "R", max = 1, fr = "Borne superieure du support de la loi", ang = "Support upper bound", defaut = 0.3 ),
-)
-
-VARIABLE = PROC ( nom = "VARIABLE",
-                  op = None,
-                  docu = "",
-                  fr = "Variable probabiliste",
-                  ang = "Probabilistic variable",
-
-  ModelVariable = SIMP ( statut = "o", typ = ( variable, ), fr = "Variable d'entrée du modèle", ang = "Input variable of the model" ),
-  Distribution = SIMP ( statut = "o", typ = ( loi, ), fr = "Modélisation probabiliste", ang = "Probabilistic modelisation" ),
-)
-
-CORRELATION = PROC ( nom = 'CORRELATION',
-                     op = None,
-                     docu = "",
-                     fr = "Correlation entre variables",
-                     ang = "Variable correlation",
-
-  CorrelationMatrix = SIMP ( statut = "o", typ = Matrice(nbLigs=None,
-                                                         nbCols=None,
-                                                         methodeCalculTaille='NbDeVariables',
-                                                         valSup=1,
-                                                         valMin=-1,
-                                                         structure="symetrique"),
-                             fr = "Matrice de correlation entre les variables d'entree",
-                             ang = "Correlation matrix for input variables" ),
-)
diff --git a/monCode/prefs_monCode.py b/monCode/prefs_monCode.py
deleted file mode 100644 (file)
index 819a408..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-# -*- coding: utf-8 -*-
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-#
-#
-# ======================================================================
-
-import os,sys
-# repIni sert a localiser le fichier editeur.ini
-# Obligatoire
-repIni=os.path.dirname(os.path.abspath(__file__))
-INSTALLDIR=os.path.join(repIni,'..')
-sys.path[:0]=[INSTALLDIR]
-
-
-# lang indique la langue utilisee pour les chaines d'aide : fr ou ang
-lang='en'
-
-# Codage des strings qui accepte les accents (en remplacement de 'ascii')
-encoding='iso-8859-1'
-docPath=repIni
-fileName="docMonCode.png"
-image=1
-
-#
-catalogues=(
-   ('monCode','53038',os.path.join(repIni,'Matrix_Cata.py'),'dico','python'), 
-   ('monCode','53036',os.path.join(repIni,'Elementary_Lists_53036_Cata.py'),'dico','python'), 
-   ('monCode','53033',os.path.join(repIni,'Tuples_Cata.py'),'dico','python'), 
-   ('monCode','53031',os.path.join(repIni,'Tuples_Cata.py'),'dico','python'), 
-   ('monCode','53030',os.path.join(repIni,'Tuples_Cata.py'),'dico','python'), 
-   ('monCode','53020',os.path.join(repIni,'Nested_Cond_52945_Cata.py'),'dico','python'), 
-   ('monCode','53013',os.path.join(repIni,'Elementary_Lists_53013_Cata.py'),'dico','python'), 
-   ('monCode','53000',os.path.join(repIni,'Elementary_Lists_53030_Cata.py'),'dico','python'), 
-   ('monCode','52996',os.path.join(repIni,'Elementary_Lists_52996_Cata.py'),'dico','python'), 
-   ('monCode','52992',os.path.join(repIni,'Many_Concepts_52992_Cata.py'),'dico','python'), 
-   ('monCode','52989',os.path.join(repIni,'Many_Concepts_52989_Cata.py'),'dico','python'), 
-   ('monCode','52988',os.path.join(repIni,'Many_Concepts_52988_Cata.py'),'dico','python'), 
-   ('monCode','52985',os.path.join(repIni,'fin_52985_Cata.py'),'dico','python'), 
-   ('monCode','52983',os.path.join(repIni,'Many_Concepts_52983_Cata.py'),'dico','python'), 
-   ('monCode','52975',os.path.join(repIni,'Separate_Blocks_52975_Cata.py'),'dico','python'), 
-   ('monCode','52972',os.path.join(repIni,'Separate_Blocks_52972_Cata.py'),'dico','python'), 
-   ('monCode','52958',os.path.join(repIni,'Separate_Blocks_52958_Cata.py'),'dico','python'), 
-   ('monCode','52952',os.path.join(repIni,'Nested_Cond_52952_Cata.py'),'dico','python'), 
-   ('monCode','52949',os.path.join(repIni,'Nested_Cond_52949_Cata.py'),'dico','python'), 
-   ('monCode','52947',os.path.join(repIni,'Nested_Cond_52947_Cata.py'),'dico','python'), 
-   ('monCode','52946',os.path.join(repIni,'Nested_Cond_52946_Cata.py'),'dico','python'), 
-   ('monCode','52945',os.path.join(repIni,'Nested_Cond_52945_Cata.py'),'dico','python'), 
-   ('monCode','Global',os.path.join(repIni,'Global_Condition_Cata.py'),'dico','python'),
-# resolu ('monCode','52948',os.path.join(repIni,'Nested_Cond_52948_Cata.py'),'dico','python'),
-#  pb d afffichage des optionnels ('monCode','52963',os.path.join(repIni,'Separate_Blocks_52963_Cata.py'),'dico','python'),
-#  pb d afffichage des optionnels ('monCode','52966',os.path.join(repIni,'Separate_Blocks_52966_Cata.py'),'dico','python'),
-
-#   ('monCode','test',os.path.join(repIni,'monCode_Cata1.py'),'dico','python'),
-)
diff --git a/monCode/properties.py b/monCode/properties.py
deleted file mode 100644 (file)
index 1d328a4..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#@ MODIF properties Accas DATE 11/06/2008 AUTEUR aster M.ADMINISTRATEUR
-# RESPONSABLE D6BHHHH J-P.LEFEBVRE
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-#     IDENTIFICATION DU GESTIONNAIRE DE COMMANDE ACCAS A PARTIR
-#     DE LA VERSION DU CODE_ASTER ASSOCIE
-#----------------------------------------------------------------------
-version = "1.2"
-date = "25/05/2010"
-exploit = False